feat(connector-microsoft): vendor in-tree as workspace package#64
feat(connector-microsoft): vendor in-tree as workspace package#64AnishRane wants to merge 5 commits into
Conversation
Bring @boringos/connector-microsoft into the monorepo, mirroring the in-tree placement of @boringos/connector-google. The connector previously lived as a standalone sibling repo depending on the published @boringos/module-sdk@^0.13.0. Changes vs. the standalone repo: - package.json: SDK dep switched from "^0.13.0" to "workspace:*"; added repository field for parity with connector-google. - tsconfig.json: extends ../../../tsconfig.base.json with rootDir/outDir/composite, matching connector-google's setup. Surface unchanged: ConnectorDefinition + typed clients for Outlook Mail, Calendar, Contacts, OneDrive. No agent-facing tools yet — those land in a follow-up createMicrosoftModule factory in @boringos/core. pnpm -r build, pnpm -r typecheck, and the 29 connector-microsoft tests are green. The pre-existing phase3-golden CLI-subprocess test fails identically on main (environment-dependent). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add the built-in Microsoft 365 module — a thin wrapper exposing mail.*, calendar.*, contacts.* and files.* tools over the vendored @boringos/connector-microsoft SDK, mirroring the built-in Google module. - core: new modules/microsoft.ts factory + tests; export createMicrosoftModule from src/index.ts - core: add @boringos/connector-microsoft as a workspace dependency and tsconfig project reference - dev-server: register createMicrosoftModule alongside the other built-in connectors - connector-microsoft: tidy package.json field order; README layout note Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The host auto-discovers connectors by scanning <cwd>/node_modules/@boringos/connector-* at boot (discoverConnectors). pnpm only links a workspace package into the root node_modules when the root package depends on it. @boringos/core declared the dependency but the workspace root did not, so connector-google and connector-slack were discovered while connector-microsoft was silently skipped — its OAuth ConnectorDefinition never registered with the AuthManager. Add the root devDependency so the Microsoft connector is discovered and its OAuth flow works on a fresh clone. Verified end-to-end: both Google and Microsoft accounts connect and persist. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Manually tested the connector end-to-end on a live host — found and fixed one wiring gap. Pushed The fix: the workspace root Evidence (dev host on :3030):
Heads-up (separate, env-only): connecting also requires |
google and slack had display name + description entries; microsoft fell back to the connector's displayName with an empty description, so the Connectors screen showed "Microsoft 365" with no subtitle. Add the entry for parity. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the single-letter tile on each connector card with the official brand glyph (Google, Microsoft, Slack) via a new ConnectorIcon keyed off the provider id. Unknown providers keep the lettered-tile fallback, so new connectors still render cleanly. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Summary
Brings
@boringos/connector-microsoftinto the monorepo as a first-party workspace package, mirroring the in-tree placement of@boringos/connector-google. The connector previously lived as a standalone sibling repo depending on the published@boringos/module-sdk@^0.13.0.This PR is vendoring only — no agent-facing tools yet. Surface is unchanged:
ConnectorDefinition+ typed clients for Outlook Mail, Calendar, Contacts, and OneDrive (Microsoft Graph). A follow-up will addcreateMicrosoftModulein@boringos/core(the Google factory's counterpart).What changed
packages/@boringos/connector-microsoft/— 4 services (Mail / Calendar / Contacts / Files), 29 unit tests.package.json: SDK dep switched from^0.13.0→workspace:*; addedrepositoryfield for parity withconnector-google.tsconfig.json: extends../../../tsconfig.base.jsonwithrootDir/outDir/composite: true, matchingconnector-google's setup.pnpm-lock.yamlregenerated.No changes to existing packages.
Out of scope (follow-ups)
createMicrosoftModulefactory in@boringos/core/src/modules/microsoft.ts(mirrorsgoogle.ts) — wiresoutlook.*/ms_calendar.*/outlook_contacts.*/onedrive.*tools.Test plan
pnpm install— cleanpnpm -r build— all packages green, includingconnector-microsoftpnpm -r typecheck— all packages greenpnpm -F @boringos/connector-microsoft test— 29/29 passpnpm test:run— 542 pass, 1 skipped. The 1 failure (tests/phase3-golden.test.ts) fails identically onmain(pre-existing, environment-dependent CLI-subprocess test).23b5cbein the sibling repo).🤖 Generated with Claude Code