@cyanheads/mcp-ts-core 0.8.8 → 0.8.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CLAUDE.md +3 -1
- package/README.md +4 -1
- package/biome.json +1 -1
- package/changelog/0.8.x/0.8.10.md +23 -0
- package/changelog/0.8.x/0.8.9.md +34 -0
- package/dist/config/index.d.ts +51 -15
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +44 -0
- package/dist/config/index.js.map +1 -1
- package/dist/core/app.d.ts +8 -0
- package/dist/core/app.d.ts.map +1 -1
- package/dist/core/app.js +11 -0
- package/dist/core/app.js.map +1 -1
- package/dist/core/worker.d.ts +7 -0
- package/dist/core/worker.d.ts.map +1 -1
- package/dist/core/worker.js +1 -0
- package/dist/core/worker.js.map +1 -1
- package/dist/logs/combined.log +4 -4
- package/dist/logs/error.log +4 -4
- package/dist/services/canvas/core/CanvasInstance.d.ts +43 -0
- package/dist/services/canvas/core/CanvasInstance.d.ts.map +1 -0
- package/dist/services/canvas/core/CanvasInstance.js +63 -0
- package/dist/services/canvas/core/CanvasInstance.js.map +1 -0
- package/dist/services/canvas/core/CanvasRegistry.d.ts +96 -0
- package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -0
- package/dist/services/canvas/core/CanvasRegistry.js +250 -0
- package/dist/services/canvas/core/CanvasRegistry.js.map +1 -0
- package/dist/services/canvas/core/DataCanvas.d.ts +49 -0
- package/dist/services/canvas/core/DataCanvas.d.ts.map +1 -0
- package/dist/services/canvas/core/DataCanvas.js +85 -0
- package/dist/services/canvas/core/DataCanvas.js.map +1 -0
- package/dist/services/canvas/core/IDataCanvasProvider.d.ts +47 -0
- package/dist/services/canvas/core/IDataCanvasProvider.d.ts.map +1 -0
- package/dist/services/canvas/core/IDataCanvasProvider.js +10 -0
- package/dist/services/canvas/core/IDataCanvasProvider.js.map +1 -0
- package/dist/services/canvas/core/canvasFactory.d.ts +26 -0
- package/dist/services/canvas/core/canvasFactory.d.ts.map +1 -0
- package/dist/services/canvas/core/canvasFactory.js +63 -0
- package/dist/services/canvas/core/canvasFactory.js.map +1 -0
- package/dist/services/canvas/core/sqlGate.d.ts +107 -0
- package/dist/services/canvas/core/sqlGate.d.ts.map +1 -0
- package/dist/services/canvas/core/sqlGate.js +267 -0
- package/dist/services/canvas/core/sqlGate.js.map +1 -0
- package/dist/services/canvas/index.d.ts +21 -0
- package/dist/services/canvas/index.d.ts.map +1 -0
- package/dist/services/canvas/index.js +19 -0
- package/dist/services/canvas/index.js.map +1 -0
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +56 -0
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -0
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +600 -0
- package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -0
- package/dist/services/canvas/providers/duckdb/exportWriter.d.ts +48 -0
- package/dist/services/canvas/providers/duckdb/exportWriter.d.ts.map +1 -0
- package/dist/services/canvas/providers/duckdb/exportWriter.js +119 -0
- package/dist/services/canvas/providers/duckdb/exportWriter.js.map +1 -0
- package/dist/services/canvas/providers/duckdb/schemaSniffer.d.ts +44 -0
- package/dist/services/canvas/providers/duckdb/schemaSniffer.d.ts.map +1 -0
- package/dist/services/canvas/providers/duckdb/schemaSniffer.js +134 -0
- package/dist/services/canvas/providers/duckdb/schemaSniffer.js.map +1 -0
- package/dist/services/canvas/types.d.ts +134 -0
- package/dist/services/canvas/types.d.ts.map +1 -0
- package/dist/services/canvas/types.js +9 -0
- package/dist/services/canvas/types.js.map +1 -0
- package/package.json +14 -5
- package/skills/add-tool/SKILL.md +1 -0
- package/skills/api-canvas/SKILL.md +260 -0
- package/skills/api-config/SKILL.md +18 -0
- package/skills/api-workers/SKILL.md +6 -0
- package/skills/design-mcp-server/SKILL.md +3 -0
- package/skills/report-issue-framework/SKILL.md +1 -0
- package/skills/report-issue-local/SKILL.md +2 -0
- package/skills/security-pass/SKILL.md +24 -0
- package/templates/.github/ISSUE_TEMPLATE/bug_report.yml +1 -0
- package/templates/.github/ISSUE_TEMPLATE/feature_request.yml +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/core/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EACV,EAAE,EAEF,UAAU,EACV,WAAW,EACX,QAAQ,EACR,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAMvE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,EAAE,CAAC;IACR,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAC7C,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+CAA+C;AAC/C,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,oFAAoF;IACpF,WAAW,CAAC,EAAE,CACZ,UAAU,EAAE,mBAAmB,EAC/B,GAAG,EAAE,kBAAkB,EACvB,GAAG,EAAE,gBAAgB,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/core/worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EACV,EAAE,EAEF,UAAU,EACV,WAAW,EACX,QAAQ,EACR,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,eAAe,CAAC;AAMvE;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,EAAE,CAAC;IACR;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mCAAmC,CAAC,EAAE,MAAM,CAAC;IAC7C,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,SAAS,CAAC,EAAE,QAAQ,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,+CAA+C;AAC/C,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9C,oFAAoF;IACpF,WAAW,CAAC,EAAE,CACZ,UAAU,EAAE,mBAAmB,EAC/B,GAAG,EAAE,kBAAkB,EACvB,GAAG,EAAE,gBAAgB,KAClB,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;AA0ED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB;mBAyFvD,OAAO,OACX,kBAAkB,OAClB,gBAAgB,GACpB,OAAO,CAAC,QAAQ,CAAC;0BA4DN,mBAAmB,OAC1B,kBAAkB,OAClB,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC;EAuCnB"}
|
package/dist/core/worker.js
CHANGED
|
@@ -15,6 +15,7 @@ const CORE_ENV_BINDINGS = [
|
|
|
15
15
|
['SUPABASE_ANON_KEY', 'SUPABASE_ANON_KEY'],
|
|
16
16
|
['SUPABASE_SERVICE_ROLE_KEY', 'SUPABASE_SERVICE_ROLE_KEY'],
|
|
17
17
|
['STORAGE_PROVIDER_TYPE', 'STORAGE_PROVIDER_TYPE'],
|
|
18
|
+
['CANVAS_PROVIDER_TYPE', 'CANVAS_PROVIDER_TYPE'],
|
|
18
19
|
['OAUTH_ISSUER_URL', 'OAUTH_ISSUER_URL'],
|
|
19
20
|
['OAUTH_AUDIENCE', 'OAUTH_AUDIENCE'],
|
|
20
21
|
['OAUTH_JWKS_URI', 'OAUTH_JWKS_URI'],
|
package/dist/core/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/core/worker.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAyB,eAAe,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAoB,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/core/worker.ts"],"names":[],"mappings":"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"}
|
package/dist/logs/combined.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{"level":50,"time":
|
|
2
|
-
{"level":50,"time":
|
|
3
|
-
{"level":50,"time":
|
|
4
|
-
{"level":50,"time":
|
|
1
|
+
{"level":50,"time":1777763887407,"env":"testing","version":"0.0.0-test","pid":81293,"requestId":"20B28-9KSZJ","timestamp":"2026-05-02T23:18:07.406Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"b996074c4739e36f28a703a436eeb51d412f8da14d759120b2ca7e60c371287d","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant"},"errorData":{"sessionId":"b996074c4739e36f28a703a436eeb51d412f8da14d759120b2ca7e60c371287d","toolName":"scoped_echo","requestId":"20B28-9KSZJ","timestamp":"2026-05-02T23:18:07.406Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:61:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:133:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:168:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
2
|
+
{"level":50,"time":1777763888360,"env":"testing","version":"0.8.10","pid":81330,"requestId":"87E3Z-BC5XJ","timestamp":"2026-05-02T23:18:08.359Z","operation":"httpErrorHandler","critical":false,"errorCode":-32006,"originalErrorType":"McpError","finalErrorType":"McpError","path":"/mcp","method":"POST","errorData":{"path":"/mcp","method":"POST","requestId":"87E3Z-BC5XJ","timestamp":"2026-05-02T23:18:08.359Z","operation":"httpErrorHandler","originalErrorName":"McpError","originalMessage":"Missing or invalid Authorization header. Bearer scheme required.","originalStack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at unauthorized (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:86:61)\n at authMiddleware (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/authMiddleware.js:64:19)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpTransport.js:232:22)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at cors2 (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/middleware/cors/index.js:82:11)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpErrorHandler.js:59:39)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:26:25)\n at processTicksAndRejections (native:7:39)","msg":"Error in httpTransport: Missing or invalid Authorization header. Bearer scheme required."}
|
|
3
|
+
{"level":50,"time":1777763888373,"env":"testing","version":"0.8.10","pid":81330,"requestId":"K6M21-2Z6M4","timestamp":"2026-05-02T23:18:08.373Z","operation":"httpErrorHandler","critical":false,"errorCode":-32006,"originalErrorType":"McpError","finalErrorType":"McpError","path":"/mcp","method":"POST","errorData":{"path":"/mcp","method":"POST","requestId":"K6M21-2Z6M4","timestamp":"2026-05-02T23:18:08.373Z","operation":"httpErrorHandler","originalErrorName":"McpError","originalMessage":"Token has expired.","originalStack":"McpError: Token has expired.\n at unauthorized (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:86:61)\n at handleJoseVerifyError (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/claimParser.js:56:11)\n at verify (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/strategies/jwtStrategy.js:91:13)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Token has expired.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpErrorHandler.js:59:39)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:26:25)\n at processTicksAndRejections (native:7:39)","msg":"Error in httpTransport: Token has expired."}
|
|
4
|
+
{"level":50,"time":1777763888377,"env":"testing","version":"0.8.10","pid":81330,"requestId":"9DD0W-FTL9Q","timestamp":"2026-05-02T23:18:08.377Z","operation":"httpErrorHandler","critical":false,"errorCode":-32006,"originalErrorType":"McpError","finalErrorType":"McpError","path":"/mcp","method":"GET","errorData":{"path":"/mcp","method":"GET","requestId":"9DD0W-FTL9Q","timestamp":"2026-05-02T23:18:08.377Z","operation":"httpErrorHandler","originalErrorName":"McpError","originalMessage":"Missing or invalid Authorization header. Bearer scheme required.","originalStack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at unauthorized (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:86:61)\n at authMiddleware (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/authMiddleware.js:64:19)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpTransport.js:232:22)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at cors2 (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/middleware/cors/index.js:82:11)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpErrorHandler.js:59:39)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:26:25)\n at processTicksAndRejections (native:7:39)","msg":"Error in httpTransport: Missing or invalid Authorization header. Bearer scheme required."}
|
package/dist/logs/error.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{"level":50,"time":
|
|
2
|
-
{"level":50,"time":
|
|
3
|
-
{"level":50,"time":
|
|
4
|
-
{"level":50,"time":
|
|
1
|
+
{"level":50,"time":1777763887407,"env":"testing","version":"0.0.0-test","pid":81293,"requestId":"20B28-9KSZJ","timestamp":"2026-05-02T23:18:07.406Z","operation":"HandleToolRequest","critical":false,"errorCode":-32005,"originalErrorType":"McpError","finalErrorType":"McpError","sessionId":"b996074c4739e36f28a703a436eeb51d412f8da14d759120b2ca7e60c371287d","toolName":"scoped_echo","tenantId":"authz-tenant","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant"},"errorData":{"sessionId":"b996074c4739e36f28a703a436eeb51d412f8da14d759120b2ca7e60c371287d","toolName":"scoped_echo","requestId":"20B28-9KSZJ","timestamp":"2026-05-02T23:18:07.406Z","tenantId":"authz-tenant","operation":"HandleToolRequest","auth":{"sub":"authz-user","scopes":["tool:other:read"],"clientId":"authz-client","tenantId":"authz-tenant"},"originalErrorName":"McpError","originalMessage":"Insufficient permissions.","originalStack":"McpError: Insufficient permissions.\n at forbidden (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:84:58)\n at withRequiredScopes (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/authUtils.js:61:15)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:133:17)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Insufficient permissions.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/tools/utils/toolHandlerFactory.js:168:26)\n at executeToolHandler (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:231:34)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js:126:43)\n at processTicksAndRejections (native:7:39)","msg":"Error in tool:scoped_echo: Insufficient permissions."}
|
|
2
|
+
{"level":50,"time":1777763888360,"env":"testing","version":"0.8.10","pid":81330,"requestId":"87E3Z-BC5XJ","timestamp":"2026-05-02T23:18:08.359Z","operation":"httpErrorHandler","critical":false,"errorCode":-32006,"originalErrorType":"McpError","finalErrorType":"McpError","path":"/mcp","method":"POST","errorData":{"path":"/mcp","method":"POST","requestId":"87E3Z-BC5XJ","timestamp":"2026-05-02T23:18:08.359Z","operation":"httpErrorHandler","originalErrorName":"McpError","originalMessage":"Missing or invalid Authorization header. Bearer scheme required.","originalStack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at unauthorized (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:86:61)\n at authMiddleware (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/authMiddleware.js:64:19)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpTransport.js:232:22)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at cors2 (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/middleware/cors/index.js:82:11)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpErrorHandler.js:59:39)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:26:25)\n at processTicksAndRejections (native:7:39)","msg":"Error in httpTransport: Missing or invalid Authorization header. Bearer scheme required."}
|
|
3
|
+
{"level":50,"time":1777763888373,"env":"testing","version":"0.8.10","pid":81330,"requestId":"K6M21-2Z6M4","timestamp":"2026-05-02T23:18:08.373Z","operation":"httpErrorHandler","critical":false,"errorCode":-32006,"originalErrorType":"McpError","finalErrorType":"McpError","path":"/mcp","method":"POST","errorData":{"path":"/mcp","method":"POST","requestId":"K6M21-2Z6M4","timestamp":"2026-05-02T23:18:08.373Z","operation":"httpErrorHandler","originalErrorName":"McpError","originalMessage":"Token has expired.","originalStack":"McpError: Token has expired.\n at unauthorized (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:86:61)\n at handleJoseVerifyError (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/lib/claimParser.js:56:11)\n at verify (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/strategies/jwtStrategy.js:91:13)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Token has expired.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpErrorHandler.js:59:39)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:26:25)\n at processTicksAndRejections (native:7:39)","msg":"Error in httpTransport: Token has expired."}
|
|
4
|
+
{"level":50,"time":1777763888377,"env":"testing","version":"0.8.10","pid":81330,"requestId":"9DD0W-FTL9Q","timestamp":"2026-05-02T23:18:08.377Z","operation":"httpErrorHandler","critical":false,"errorCode":-32006,"originalErrorType":"McpError","finalErrorType":"McpError","path":"/mcp","method":"GET","errorData":{"path":"/mcp","method":"GET","requestId":"9DD0W-FTL9Q","timestamp":"2026-05-02T23:18:08.377Z","operation":"httpErrorHandler","originalErrorName":"McpError","originalMessage":"Missing or invalid Authorization header. Bearer scheme required.","originalStack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at unauthorized (/Users/casey/Developer/github/mcp-ts-core/dist/types-global/errors.js:86:61)\n at authMiddleware (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/auth/authMiddleware.js:64:19)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpTransport.js:232:22)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:22:23)\n at cors2 (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/middleware/cors/index.js:82:11)\n at processTicksAndRejections (native:7:39)"},"stack":"McpError: Missing or invalid Authorization header. Bearer scheme required.\n at handleError (/Users/casey/Developer/github/mcp-ts-core/dist/utils/internal/error-handler/errorHandler.js:170:23)\n at <anonymous> (/Users/casey/Developer/github/mcp-ts-core/dist/mcp-server/transports/http/httpErrorHandler.js:59:39)\n at dispatch (/Users/casey/Developer/github/mcp-ts-core/node_modules/hono/dist/compose.js:26:25)\n at processTicksAndRejections (native:7:39)","msg":"Error in httpTransport: Missing or invalid Authorization header. Bearer scheme required."}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Per-canvas handle returned by {@link DataCanvas.acquire}. Captures
|
|
3
|
+
* `(canvasId, tenantId)` once so callers don't repeat them on every op, and
|
|
4
|
+
* routes each call through the registry's TTL-touch + tenant validation gate
|
|
5
|
+
* before delegating to the provider.
|
|
6
|
+
* @module src/services/canvas/core/CanvasInstance
|
|
7
|
+
*/
|
|
8
|
+
import type { RequestContext } from '../../../utils/internal/requestContext.js';
|
|
9
|
+
import type { DescribeOptions, ExportOptions, ExportResult, ExportTarget, QueryOptions, QueryResult, RegisterRows, RegisterTableOptions, RegisterTableResult, TableInfo } from '../types.js';
|
|
10
|
+
import type { CanvasRegistry } from './CanvasRegistry.js';
|
|
11
|
+
import type { IDataCanvasProvider } from './IDataCanvasProvider.js';
|
|
12
|
+
/** Handle bound to a single canvas. Returned from {@link DataCanvas.acquire}. */
|
|
13
|
+
export declare class CanvasInstance {
|
|
14
|
+
/** Opaque canvas token. Surface this to callers; share it across agents. */
|
|
15
|
+
readonly canvasId: string;
|
|
16
|
+
/** Tenant the canvas is bound to. Resolved by the registry from `RequestContext`. */
|
|
17
|
+
readonly tenantId: string;
|
|
18
|
+
private readonly registry;
|
|
19
|
+
private readonly provider;
|
|
20
|
+
private readonly context;
|
|
21
|
+
/** True when {@link DataCanvas.acquire} created this canvas during the current call. */
|
|
22
|
+
readonly isNew: boolean;
|
|
23
|
+
/** ISO 8601 expiry after the most recent operation extended the sliding TTL. */
|
|
24
|
+
expiresAt: string;
|
|
25
|
+
constructor(
|
|
26
|
+
/** Opaque canvas token. Surface this to callers; share it across agents. */
|
|
27
|
+
canvasId: string,
|
|
28
|
+
/** Tenant the canvas is bound to. Resolved by the registry from `RequestContext`. */
|
|
29
|
+
tenantId: string, isNew: boolean, expiresAt: string, registry: CanvasRegistry, provider: IDataCanvasProvider, context: RequestContext);
|
|
30
|
+
/** Register a table on the canvas. */
|
|
31
|
+
registerTable(name: string, rows: RegisterRows, options?: RegisterTableOptions): Promise<RegisterTableResult>;
|
|
32
|
+
/** Run a SQL query against the canvas. */
|
|
33
|
+
query(sql: string, options?: QueryOptions): Promise<QueryResult>;
|
|
34
|
+
/** Export a canvas table to a path or stream target. */
|
|
35
|
+
export(tableName: string, target: ExportTarget, options?: ExportOptions): Promise<ExportResult>;
|
|
36
|
+
/** Describe one or all canvas tables. */
|
|
37
|
+
describe(options?: DescribeOptions): Promise<TableInfo[]>;
|
|
38
|
+
/** Drop a single canvas table. Returns `true` when found and removed. */
|
|
39
|
+
drop(name: string): Promise<boolean>;
|
|
40
|
+
/** Drop every table on the canvas. Returns the number dropped. */
|
|
41
|
+
clear(): Promise<number>;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=CanvasInstance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasInstance.d.ts","sourceRoot":"","sources":["../../../../src/services/canvas/core/CanvasInstance.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,iFAAiF;AACjF,qBAAa,cAAc;IAOvB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,MAAM;IAGzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,wFAAwF;IACxF,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,SAAS,EAAE,MAAM,CAAC;;IAGhB,4EAA4E;IACnE,QAAQ,EAAE,MAAM;IACzB,qFAAqF;IAC5E,QAAQ,EAAE,MAAM,EACzB,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACA,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,cAAc;IAM1C,sCAAsC;IAChC,aAAa,CACjB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,EAClB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,mBAAmB,CAAC;IAK/B,0CAA0C;IACpC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IAKtE,wDAAwD;IAClD,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,CAAC;IAKxB,yCAAyC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAK/D,yEAAyE;IACnE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1C,kEAAkE;IAC5D,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAI/B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Per-canvas handle returned by {@link DataCanvas.acquire}. Captures
|
|
3
|
+
* `(canvasId, tenantId)` once so callers don't repeat them on every op, and
|
|
4
|
+
* routes each call through the registry's TTL-touch + tenant validation gate
|
|
5
|
+
* before delegating to the provider.
|
|
6
|
+
* @module src/services/canvas/core/CanvasInstance
|
|
7
|
+
*/
|
|
8
|
+
/** Handle bound to a single canvas. Returned from {@link DataCanvas.acquire}. */
|
|
9
|
+
export class CanvasInstance {
|
|
10
|
+
canvasId;
|
|
11
|
+
tenantId;
|
|
12
|
+
registry;
|
|
13
|
+
provider;
|
|
14
|
+
context;
|
|
15
|
+
/** True when {@link DataCanvas.acquire} created this canvas during the current call. */
|
|
16
|
+
isNew;
|
|
17
|
+
/** ISO 8601 expiry after the most recent operation extended the sliding TTL. */
|
|
18
|
+
expiresAt;
|
|
19
|
+
constructor(
|
|
20
|
+
/** Opaque canvas token. Surface this to callers; share it across agents. */
|
|
21
|
+
canvasId,
|
|
22
|
+
/** Tenant the canvas is bound to. Resolved by the registry from `RequestContext`. */
|
|
23
|
+
tenantId, isNew, expiresAt, registry, provider, context) {
|
|
24
|
+
this.canvasId = canvasId;
|
|
25
|
+
this.tenantId = tenantId;
|
|
26
|
+
this.registry = registry;
|
|
27
|
+
this.provider = provider;
|
|
28
|
+
this.context = context;
|
|
29
|
+
this.isNew = isNew;
|
|
30
|
+
this.expiresAt = expiresAt;
|
|
31
|
+
}
|
|
32
|
+
/** Register a table on the canvas. */
|
|
33
|
+
async registerTable(name, rows, options) {
|
|
34
|
+
this.expiresAt = this.registry.touchOrThrow(this.canvasId, this.tenantId);
|
|
35
|
+
return await this.provider.registerTable(this.canvasId, name, rows, this.context, options);
|
|
36
|
+
}
|
|
37
|
+
/** Run a SQL query against the canvas. */
|
|
38
|
+
async query(sql, options) {
|
|
39
|
+
this.expiresAt = this.registry.touchOrThrow(this.canvasId, this.tenantId);
|
|
40
|
+
return await this.provider.query(this.canvasId, sql, this.context, options);
|
|
41
|
+
}
|
|
42
|
+
/** Export a canvas table to a path or stream target. */
|
|
43
|
+
async export(tableName, target, options) {
|
|
44
|
+
this.expiresAt = this.registry.touchOrThrow(this.canvasId, this.tenantId);
|
|
45
|
+
return await this.provider.export(this.canvasId, tableName, target, this.context, options);
|
|
46
|
+
}
|
|
47
|
+
/** Describe one or all canvas tables. */
|
|
48
|
+
async describe(options) {
|
|
49
|
+
this.expiresAt = this.registry.touchOrThrow(this.canvasId, this.tenantId);
|
|
50
|
+
return await this.provider.describe(this.canvasId, this.context, options);
|
|
51
|
+
}
|
|
52
|
+
/** Drop a single canvas table. Returns `true` when found and removed. */
|
|
53
|
+
async drop(name) {
|
|
54
|
+
this.expiresAt = this.registry.touchOrThrow(this.canvasId, this.tenantId);
|
|
55
|
+
return await this.provider.drop(this.canvasId, name, this.context);
|
|
56
|
+
}
|
|
57
|
+
/** Drop every table on the canvas. Returns the number dropped. */
|
|
58
|
+
async clear() {
|
|
59
|
+
this.expiresAt = this.registry.touchOrThrow(this.canvasId, this.tenantId);
|
|
60
|
+
return await this.provider.clear(this.canvasId, this.context);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=CanvasInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasInstance.js","sourceRoot":"","sources":["../../../../src/services/canvas/core/CanvasInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Canvas lifecycle registry. Keys canvases by (tenantId, canvasId),
|
|
3
|
+
* generates crypto-secure 10-char URL-safe IDs, enforces a sliding 24h TTL with
|
|
4
|
+
* a 7-day absolute cap, and runs a periodic sweeper that destroys expired
|
|
5
|
+
* canvases via the underlying provider. Also enforces the per-tenant active
|
|
6
|
+
* canvas cap (default 100).
|
|
7
|
+
*
|
|
8
|
+
* Public access is gated by {@link DataCanvas} — callers never see this class
|
|
9
|
+
* directly. Tests construct it with a fake provider and a mock `Date.now` to
|
|
10
|
+
* exercise expiry/sweep logic.
|
|
11
|
+
* @module src/services/canvas/core/CanvasRegistry
|
|
12
|
+
*/
|
|
13
|
+
import { type RequestContext } from '../../../utils/internal/requestContext.js';
|
|
14
|
+
import type { IDataCanvasProvider } from './IDataCanvasProvider.js';
|
|
15
|
+
/** Tunable lifecycle constants for the registry. */
|
|
16
|
+
export interface CanvasRegistryOptions {
|
|
17
|
+
/** Absolute cap from creation in milliseconds. Default 7d. */
|
|
18
|
+
absoluteCapMs: number;
|
|
19
|
+
/** Maximum active canvases per tenant. Default 100. */
|
|
20
|
+
maxCanvasesPerTenant: number;
|
|
21
|
+
/** Sweeper interval in milliseconds. Default 60s. Set to 0 to disable. */
|
|
22
|
+
sweeperIntervalMs: number;
|
|
23
|
+
/** Sliding TTL in milliseconds. Default 24h. */
|
|
24
|
+
ttlMs: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Default lifecycle constants. Mirrored in the config schema; exported so
|
|
28
|
+
* tests and downstream tooling can reference the same numbers.
|
|
29
|
+
*/
|
|
30
|
+
export declare const DEFAULT_CANVAS_REGISTRY_OPTIONS: CanvasRegistryOptions;
|
|
31
|
+
/** Result of {@link CanvasRegistry.acquire}. */
|
|
32
|
+
export interface AcquireResult {
|
|
33
|
+
canvasId: string;
|
|
34
|
+
/** Wall-clock expiry as ISO 8601, after the sliding extension. */
|
|
35
|
+
expiresAt: string;
|
|
36
|
+
/** True when the registry created the canvas during this acquire call. */
|
|
37
|
+
isNew: boolean;
|
|
38
|
+
tenantId: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Tracks the active canvases for a single process. Not multi-process safe —
|
|
42
|
+
* tokens issued by one process are not portable to another (matches v1 scope
|
|
43
|
+
* in the issue).
|
|
44
|
+
*/
|
|
45
|
+
export declare class CanvasRegistry {
|
|
46
|
+
private readonly provider;
|
|
47
|
+
private readonly options;
|
|
48
|
+
/** Injected for tests. Defaults to `Date.now`. */
|
|
49
|
+
private readonly clock;
|
|
50
|
+
private readonly idGenerator;
|
|
51
|
+
private readonly canvases;
|
|
52
|
+
/** Per-tenant index for cap enforcement and listing. */
|
|
53
|
+
private readonly byTenant;
|
|
54
|
+
private sweeperTimer;
|
|
55
|
+
private isShuttingDown;
|
|
56
|
+
constructor(provider: IDataCanvasProvider, options?: CanvasRegistryOptions,
|
|
57
|
+
/** Injected for tests. Defaults to `Date.now`. */
|
|
58
|
+
clock?: () => number);
|
|
59
|
+
/**
|
|
60
|
+
* Resolve an existing canvas or create a new one when `maybeId` is omitted
|
|
61
|
+
* or the supplied id is unknown for the caller's tenant.
|
|
62
|
+
*
|
|
63
|
+
* - Omitted id → create fresh, return `isNew: true`.
|
|
64
|
+
* - Unknown id → throw `NotFound` (caller should retry without an id).
|
|
65
|
+
* - Known id under wrong tenant → throw `NotFound` (uniform with unknown
|
|
66
|
+
* to avoid leaking existence across tenants).
|
|
67
|
+
* - Known + own tenant → touch (extend TTL), return `isNew: false`.
|
|
68
|
+
*/
|
|
69
|
+
acquire(maybeId: string | undefined, tenantId: string, context: RequestContext): Promise<AcquireResult>;
|
|
70
|
+
/**
|
|
71
|
+
* Validate that `canvasId` belongs to `tenantId` and is not expired, then
|
|
72
|
+
* extend its TTL and return the resolved expiry. Used by {@link CanvasInstance}
|
|
73
|
+
* before every op so individual operations slide the window.
|
|
74
|
+
*/
|
|
75
|
+
touchOrThrow(canvasId: string, tenantId: string): string;
|
|
76
|
+
/**
|
|
77
|
+
* Drop a canvas explicitly (e.g. tenant-initiated cleanup). Returns true
|
|
78
|
+
* when the canvas existed and was destroyed.
|
|
79
|
+
*/
|
|
80
|
+
drop(canvasId: string, tenantId: string, context: RequestContext): Promise<boolean>;
|
|
81
|
+
/** Active canvas count for a tenant (used by tests and metrics surfaces). */
|
|
82
|
+
countForTenant(tenantId: string): number;
|
|
83
|
+
/** Total active canvases (used by tests and metrics surfaces). */
|
|
84
|
+
totalActive(): number;
|
|
85
|
+
/** Stop the sweeper and tear down every active canvas. Idempotent. */
|
|
86
|
+
shutdown(context: RequestContext): Promise<void>;
|
|
87
|
+
/** @internal Test/diagnostic hook — runs one sweep pass synchronously. */
|
|
88
|
+
sweep(): Promise<void>;
|
|
89
|
+
private lookup;
|
|
90
|
+
private touch;
|
|
91
|
+
private enforceTenantCap;
|
|
92
|
+
private mintId;
|
|
93
|
+
private indexByTenant;
|
|
94
|
+
private destroy;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=CanvasRegistry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanvasRegistry.d.ts","sourceRoot":"","sources":["../../../../src/services/canvas/core/CanvasRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,oCAAoC,CAAC;AAEhG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAoBpE,oDAAoD;AACpD,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,oBAAoB,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,EAAE,qBAK7C,CAAC;AAEF,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IASvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,kDAAkD;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK;IAXxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D,wDAAwD;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAC3D,OAAO,CAAC,YAAY,CAA6C;IACjE,OAAO,CAAC,cAAc,CAAS;gBAGZ,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,GAAE,qBAAuD;IACjF,kDAAkD;IACjC,KAAK,GAAE,MAAM,MAAiB;IASjD;;;;;;;;;OASG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,aAAa,CAAC;IAmDzB;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IASxD;;;OAGG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAOzF,6EAA6E;IAC7E,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIxC,kEAAkE;IAClE,WAAW,IAAI,MAAM;IAIrB,sEAAsE;IAChE,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtD,0EAA0E;IACpE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwB5B,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,aAAa;YASP,OAAO;CAiBtB"}
|