Phase 0b slice: monorepo scaffold + shared core + integration packages
The 0a-INDEPENDENT code slice (one-shot via af-0b-package-slice workflow: Haiku
scaffold + Sonnet packages, Sonnet fix-to-green). Nothing deploys; no CDK/servers.
- Monorepo scaffold: npm workspaces, strict TS (NodeNext), vitest (80% gate),
eslint 9 flat config, prettier; ci.yaml/deploy.yaml callers (Node 24, enable-qemu).
- @sh-mcp/shared: transport-agnostic core — Scope/AuthContext/ToolDef, ToolRegistry,
redact()+maskValue() (PII), OpenAPI 3.1 generator. AUTH STUBBED behind an AuthProvider
interface (TODO auth-layer-0a); JWT/aud/client_id/JWKS/deny-list deferred per design.md §2.
- 9 integration packages (qbo, google-maps, internal-data, payments, knowledge-base,
gmail, calendar, tasks, reminders): tools against shared, external deps mocked behind
injected client interfaces; finance handlers call redact().
Verified green: tsc -b clean, vitest 245/245, eslint 0 errors. Auth mechanism intentionally
deferred until the 0a spike resolves it (G16/§0.4).
2026-06-11 14:36:28 -04:00
|
|
|
{
|
|
|
|
|
"name": "@sh-mcp/shared",
|
|
|
|
|
"version": "0.1.0",
|
|
|
|
|
"type": "module",
|
|
|
|
|
"description": "Transport-agnostic core — types, registry, auth interface, redaction, OpenAPI generation",
|
|
|
|
|
"exports": {
|
|
|
|
|
".": {
|
|
|
|
|
"import": "./dist/index.js",
|
|
|
|
|
"types": "./dist/index.d.ts"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"main": "./dist/index.js",
|
|
|
|
|
"types": "./dist/index.d.ts",
|
|
|
|
|
"engines": {
|
|
|
|
|
"node": ">=24.0.0"
|
|
|
|
|
},
|
|
|
|
|
"scripts": {
|
|
|
|
|
"build": "tsc --project tsconfig.json",
|
|
|
|
|
"typecheck": "tsc --noEmit --project tsconfig.json",
|
|
|
|
|
"test": "vitest run",
|
|
|
|
|
"test:watch": "vitest",
|
|
|
|
|
"test:coverage": "vitest run --coverage"
|
|
|
|
|
},
|
|
|
|
|
"devDependencies": {
|
|
|
|
|
"@vitest/coverage-v8": "^2.0.0",
|
|
|
|
|
"typescript": "^5.5.0",
|
|
|
|
|
"vitest": "^2.0.0"
|
2026-06-24 20:08:54 -04:00
|
|
|
},
|
|
|
|
|
"dependencies": {
|
|
|
|
|
"jose": "^6.2.3"
|
Phase 0b slice: monorepo scaffold + shared core + integration packages
The 0a-INDEPENDENT code slice (one-shot via af-0b-package-slice workflow: Haiku
scaffold + Sonnet packages, Sonnet fix-to-green). Nothing deploys; no CDK/servers.
- Monorepo scaffold: npm workspaces, strict TS (NodeNext), vitest (80% gate),
eslint 9 flat config, prettier; ci.yaml/deploy.yaml callers (Node 24, enable-qemu).
- @sh-mcp/shared: transport-agnostic core — Scope/AuthContext/ToolDef, ToolRegistry,
redact()+maskValue() (PII), OpenAPI 3.1 generator. AUTH STUBBED behind an AuthProvider
interface (TODO auth-layer-0a); JWT/aud/client_id/JWKS/deny-list deferred per design.md §2.
- 9 integration packages (qbo, google-maps, internal-data, payments, knowledge-base,
gmail, calendar, tasks, reminders): tools against shared, external deps mocked behind
injected client interfaces; finance handlers call redact().
Verified green: tsc -b clean, vitest 245/245, eslint 0 errors. Auth mechanism intentionally
deferred until the 0a spike resolves it (G16/§0.4).
2026-06-11 14:36:28 -04:00
|
|
|
}
|
|
|
|
|
}
|