Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ convey — dependency moves, notes about the shape of the public API — are add
to the release entry by hand. This project follows
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.1.0] - 2026-07-26
## [0.1.0] - 2026-07-28

### Features

Expand Down Expand Up @@ -38,8 +38,8 @@ to the release entry by hand. This project follows
### Notes

- The transports are subpath-only. `SharePointTransport` is imported from
`@agentic-tooling/polydoc-core/sharepoint` and `GoogleDriveTransport` from
`@agentic-tooling/polydoc-core/google`; neither is re-exported from the root
`@llbbl/polydoc-core/sharepoint` and `GoogleDriveTransport` from
`@llbbl/polydoc-core/google`; neither is re-exported from the root
entry point, types included. The root entry point loads no third-party SDK —
Node builtins plus `execa` and `fflate` — so a Markdown-to-DOCX consumer never
pays for a cloud SDK it will not call. Both transport entry points re-export
Expand Down
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ opt-in: importing the root entry point never loads a cloud SDK.

| Entry point | Contents | Third-party load |
| ------------------------------------------ | ------------------------------------------------------------------------------------- | ------------------------------------------- |
| `@agentic-tooling/polydoc-core` | Conversion core, the `Transport` contract, `TransportError`, and `LocalFileTransport` | `execa` and `fflate` only |
| `@agentic-tooling/polydoc-core/sharepoint` | `SharePointTransport` and its auth helpers | `@azure/msal-node` |
| `@agentic-tooling/polydoc-core/google` | `GoogleDriveTransport` and its Drive helpers | `@googleapis/drive`, loaded on first upload |
| `@llbbl/polydoc-core` | Conversion core, the `Transport` contract, `TransportError`, and `LocalFileTransport` | `execa` and `fflate` only |
| `@llbbl/polydoc-core/sharepoint` | `SharePointTransport` and its auth helpers | `@azure/msal-node` |
| `@llbbl/polydoc-core/google` | `GoogleDriveTransport` and its Drive helpers | `@googleapis/drive`, loaded on first upload |

A consumer doing pure Markdown-to-DOCX conversion should never pay to load a
SharePoint or Drive SDK it will not call, so the transports live behind their
Expand Down Expand Up @@ -71,7 +71,7 @@ import {
SUPPORTED_PANDOC_MAJOR,
convertMarkdownToDocx,
doctor,
} from "@agentic-tooling/polydoc-core";
} from "@llbbl/polydoc-core";

const probe = await doctor();

Expand Down Expand Up @@ -100,14 +100,14 @@ library.
Transports are side-effecting adapters that publish DOCX bytes for a canonical
document ID and return a stable destination handle for later consumers. The
contract and `LocalFileTransport` live in the root entry point; the two cloud
transports are imported from `@agentic-tooling/polydoc-core/sharepoint` and
`@agentic-tooling/polydoc-core/google`.
transports are imported from `@llbbl/polydoc-core/sharepoint` and
`@llbbl/polydoc-core/google`.

```ts
import {
LocalFileTransport,
convertMarkdownToDocx,
} from "@agentic-tooling/polydoc-core";
} from "@llbbl/polydoc-core";

const docx = await convertMarkdownToDocx({
markdown,
Expand Down Expand Up @@ -152,8 +152,8 @@ Microsoft Graph app-only auth. It implements the same create-or-update
`Transport.upload(canonicalId, docx)` contract as `LocalFileTransport`.

```ts
import { convertMarkdownToDocx } from "@agentic-tooling/polydoc-core";
import { SharePointTransport } from "@agentic-tooling/polydoc-core/sharepoint";
import { convertMarkdownToDocx } from "@llbbl/polydoc-core";
import { SharePointTransport } from "@llbbl/polydoc-core/sharepoint";

const docx = await convertMarkdownToDocx({
markdown,
Expand All @@ -179,7 +179,7 @@ console.log(destination.webUrl); // optional Graph driveItem webUrl

Auth uses `@azure/msal-node` with the Microsoft Graph scope
`https://graph.microsoft.com/.default`. The SDK is a static import here, which is
why this is a separate entry point: importing `@agentic-tooling/polydoc-core`
why this is a separate entry point: importing `@llbbl/polydoc-core`
loads no part of it. `Sites.Selected` is the required Entra application
permission to admin-consent on the app registration, and a separate
site-specific `write` grant must be provisioned out of band. The library does
Expand Down Expand Up @@ -257,11 +257,11 @@ contract as the other transports.

```ts
import { OAuth2Client } from "google-auth-library";
import { convertMarkdownToDocx } from "@agentic-tooling/polydoc-core";
import { convertMarkdownToDocx } from "@llbbl/polydoc-core";
import {
GOOGLE_DRIVE_FILE_SCOPE,
GoogleDriveTransport,
} from "@agentic-tooling/polydoc-core/google";
} from "@llbbl/polydoc-core/google";

const docx = await convertMarkdownToDocx({
markdown,
Expand Down Expand Up @@ -423,7 +423,7 @@ not DOCX generation.
GitHub-Flavored Markdown, and reports what it could not bring with it.

```ts
import { convertDocxToMarkdown } from "@agentic-tooling/polydoc-core";
import { convertDocxToMarkdown } from "@llbbl/polydoc-core";

const { markdown, report } = await convertDocxToMarkdown({
docx: "./out/word/handbook-intro.docx", // bytes or a path
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@agentic-tooling/polydoc-core",
"version": "0.0.0",
"name": "@llbbl/polydoc-core",
"version": "0.1.0",
"description": "Reusable TypeScript Markdown-to-DOCX conversion core for polydoc and TeamWiki.",
"type": "module",
"license": "MIT",
Expand Down
4 changes: 2 additions & 2 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
* converts Markdown to DOCX never loads a cloud SDK. The cloud transports live
* behind their own entry points and are opt-in:
*
* - `@agentic-tooling/polydoc-core/sharepoint` — `SharePointTransport`
* - `@agentic-tooling/polydoc-core/google` — `GoogleDriveTransport`
* - `@llbbl/polydoc-core/sharepoint` — `SharePointTransport`
* - `@llbbl/polydoc-core/google` — `GoogleDriveTransport`
*
* Both re-export the shared transport contract, so a consumer of one transport
* never has to reach back into this barrel for the types it needs. Adding a
Expand Down
2 changes: 1 addition & 1 deletion tests/entrypoints.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
const distDir = join(repoRoot, "dist");
const supportDir = join(repoRoot, "tests", "support");

const PACKAGE_NAME = "@agentic-tooling/polydoc-core";
const PACKAGE_NAME = "@llbbl/polydoc-core";

/**
* Every third-party package the root entry point may load. This list is the
Expand Down
2 changes: 1 addition & 1 deletion tests/support/entrypoint-probe.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*
* node tests/support/entrypoint-probe.mjs <specifier> <recordPath>
*
* The specifier is the public one — `@agentic-tooling/polydoc-core/google`, not
* The specifier is the public one — `@llbbl/polydoc-core/google`, not
* a guessed `dist/` path — so the probe exercises the package.json `exports`
* map through Node's own resolver by self-reference. A typo in an export key or
* target fails here the same way it would fail for a consumer after publish.
Expand Down
6 changes: 3 additions & 3 deletions tests/support/shared-bindings-probe.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
* same `dist/transport.js` module instance — otherwise `instanceof` would fail
* across entry points and the duplicate exports would be a real hazard.
*/
import * as core from "@agentic-tooling/polydoc-core";
import * as google from "@agentic-tooling/polydoc-core/google";
import * as sharepoint from "@agentic-tooling/polydoc-core/sharepoint";
import * as core from "@llbbl/polydoc-core";
import * as google from "@llbbl/polydoc-core/google";
import * as sharepoint from "@llbbl/polydoc-core/sharepoint";

const googleError = new google.GoogleDriveTransportError(
"GOOGLE_DRIVE_API_FAILED",
Expand Down