@cyanheads/mcp-ts-core 0.13.8 → 0.13.9

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.
Files changed (102) hide show
  1. package/AGENTS.md +17 -13
  2. package/CLAUDE.md +17 -13
  3. package/README.md +2 -2
  4. package/changelog/0.13.x/0.13.9.md +113 -0
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/index.js +20 -9
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/core/app.d.ts +6 -3
  9. package/dist/core/app.d.ts.map +1 -1
  10. package/dist/core/app.js +6 -4
  11. package/dist/core/app.js.map +1 -1
  12. package/dist/core/context.d.ts +25 -1
  13. package/dist/core/context.d.ts.map +1 -1
  14. package/dist/core/context.js.map +1 -1
  15. package/dist/core/serverManifest.d.ts +6 -0
  16. package/dist/core/serverManifest.d.ts.map +1 -1
  17. package/dist/core/serverManifest.js +6 -0
  18. package/dist/core/serverManifest.js.map +1 -1
  19. package/dist/linter/rules/tool-rules.d.ts +2 -1
  20. package/dist/linter/rules/tool-rules.d.ts.map +1 -1
  21. package/dist/linter/rules/tool-rules.js +36 -1
  22. package/dist/linter/rules/tool-rules.js.map +1 -1
  23. package/dist/mcp-server/inputRequired.d.ts +14 -5
  24. package/dist/mcp-server/inputRequired.d.ts.map +1 -1
  25. package/dist/mcp-server/inputRequired.js +15 -8
  26. package/dist/mcp-server/inputRequired.js.map +1 -1
  27. package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts +163 -40
  28. package/dist/mcp-server/tools/utils/inputPrevalidation.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/utils/inputPrevalidation.js +330 -114
  30. package/dist/mcp-server/tools/utils/inputPrevalidation.js.map +1 -1
  31. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +23 -10
  32. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +296 -80
  34. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  35. package/dist/mcp-server/transports/http/httpTransport.d.ts.map +1 -1
  36. package/dist/mcp-server/transports/http/httpTransport.js +65 -9
  37. package/dist/mcp-server/transports/http/httpTransport.js.map +1 -1
  38. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts +9 -5
  39. package/dist/mcp-server/transports/stdio/stdioTransport.d.ts.map +1 -1
  40. package/dist/mcp-server/transports/stdio/stdioTransport.js +9 -5
  41. package/dist/mcp-server/transports/stdio/stdioTransport.js.map +1 -1
  42. package/dist/services/canvas/core/CanvasRegistry.d.ts +6 -2
  43. package/dist/services/canvas/core/CanvasRegistry.d.ts.map +1 -1
  44. package/dist/services/canvas/core/CanvasRegistry.js +7 -3
  45. package/dist/services/canvas/core/CanvasRegistry.js.map +1 -1
  46. package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts +82 -18
  47. package/dist/services/canvas/providers/duckdb/DuckdbProvider.d.ts.map +1 -1
  48. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js +620 -328
  49. package/dist/services/canvas/providers/duckdb/DuckdbProvider.js.map +1 -1
  50. package/dist/services/canvas/providers/duckdb/exportWriter.d.ts +11 -7
  51. package/dist/services/canvas/providers/duckdb/exportWriter.d.ts.map +1 -1
  52. package/dist/services/canvas/providers/duckdb/exportWriter.js +19 -16
  53. package/dist/services/canvas/providers/duckdb/exportWriter.js.map +1 -1
  54. package/dist/services/mirror/core/defineMirror.d.ts +1 -0
  55. package/dist/services/mirror/core/defineMirror.d.ts.map +1 -1
  56. package/dist/services/mirror/core/defineMirror.js +1 -0
  57. package/dist/services/mirror/core/defineMirror.js.map +1 -1
  58. package/dist/utils/index.d.ts +1 -1
  59. package/dist/utils/index.d.ts.map +1 -1
  60. package/dist/utils/index.js.map +1 -1
  61. package/dist/utils/network/pacer.d.ts +38 -5
  62. package/dist/utils/network/pacer.d.ts.map +1 -1
  63. package/dist/utils/network/pacer.js +87 -25
  64. package/dist/utils/network/pacer.js.map +1 -1
  65. package/dist/utils/telemetry/attributes.d.ts +5 -1
  66. package/dist/utils/telemetry/attributes.d.ts.map +1 -1
  67. package/dist/utils/telemetry/attributes.js +5 -1
  68. package/dist/utils/telemetry/attributes.js.map +1 -1
  69. package/framework-skills/add-app-tool/SKILL.md +3 -3
  70. package/framework-skills/add-export/SKILL.md +5 -16
  71. package/framework-skills/add-prompt/SKILL.md +7 -3
  72. package/framework-skills/add-resource/SKILL.md +7 -5
  73. package/framework-skills/add-tool/SKILL.md +12 -10
  74. package/framework-skills/api-auth/SKILL.md +2 -2
  75. package/framework-skills/api-canvas/SKILL.md +17 -8
  76. package/framework-skills/api-config/SKILL.md +4 -4
  77. package/framework-skills/api-context/SKILL.md +14 -3
  78. package/framework-skills/api-errors/SKILL.md +8 -7
  79. package/framework-skills/api-linter/SKILL.md +26 -7
  80. package/framework-skills/api-mirror/SKILL.md +2 -1
  81. package/framework-skills/api-telemetry/SKILL.md +4 -4
  82. package/framework-skills/api-utils/SKILL.md +2 -2
  83. package/framework-skills/design-mcp-server/SKILL.md +2 -2
  84. package/framework-skills/field-test/SKILL.md +4 -4
  85. package/framework-skills/git-wrapup/SKILL.md +8 -6
  86. package/framework-skills/orchestrations/SKILL.md +7 -6
  87. package/framework-skills/orchestrations/workflows/field-test-fix.md +9 -19
  88. package/framework-skills/orchestrations/workflows/fix-wrapup-release.md +7 -7
  89. package/framework-skills/orchestrations/workflows/greenfield-build.md +8 -5
  90. package/framework-skills/orchestrations/workflows/maintenance-release.md +8 -8
  91. package/framework-skills/polish-docs-meta/SKILL.md +4 -4
  92. package/framework-skills/release-and-publish/SKILL.md +6 -4
  93. package/framework-skills/release-pr-review/SKILL.md +37 -23
  94. package/framework-skills/report-issue-framework/SKILL.md +7 -5
  95. package/framework-skills/report-issue-local/SKILL.md +8 -6
  96. package/framework-skills/security-pass/SKILL.md +8 -8
  97. package/package.json +3 -3
  98. package/scripts/devcheck.ts +7 -6
  99. package/scripts/lint-mcp.ts +87 -27
  100. package/scripts/lint-packaging.ts +61 -0
  101. package/scripts/release-github.ts +117 -5
  102. package/templates/_.mcpbignore +2 -0
@@ -20,9 +20,16 @@ export interface DuckdbProviderOptions {
20
20
  /** Number of rows to sniff for schema inference. */
21
21
  schemaSniffRows: number;
22
22
  /**
23
- * Root for scratch I/O — DuckDB's `temp_directory` plus the transient files
24
- * behind stream exports and the spillover round-trip. Defaults to
25
- * `<os.tmpdir()>/mcp-canvas` when unset; never the process cwd.
23
+ * Parent of the provider's private scratch directory. On first use the
24
+ * provider creates `mcp-canvas-XXXXXX` inside it with `mkdtemp` (mode
25
+ * `0700` on POSIX) and keeps every scratch path there: each canvas's DuckDB
26
+ * `temp_directory` and the transient files behind stream exports and
27
+ * `importFrom`. `shutdown()` removes it once the calls still running
28
+ * against it settle. Defaults to `os.tmpdir()`, never the process cwd. A
29
+ * configured parent is created if missing and gets no ownership or mode
30
+ * check, so it must not be a directory another local user controls. On
31
+ * Windows the private directory inherits the parent's ACL, so there the
32
+ * parent must also not grant other users access.
26
33
  */
27
34
  tempRootPath?: string | undefined;
28
35
  }
@@ -30,20 +37,50 @@ export declare class DuckdbProvider implements IDataCanvasProvider {
30
37
  private readonly options;
31
38
  readonly name = "duckdb";
32
39
  private readonly canvases;
40
+ /** One pending promise per held canvas record, resolved on release — see {@link holdCanvas}. */
41
+ private readonly holds;
42
+ /** The private scratch directory once first requested — see {@link ensureTempRoot}. */
43
+ private tempRoot;
33
44
  constructor(options: DuckdbProviderOptions);
34
45
  /**
35
- * Absolute scratch root, created on first use.
46
+ * The provider's private scratch directory, created once on first use.
36
47
  *
37
- * DuckDB defaults an in-memory database's `temp_directory` to a
38
- * cwd-relative `.tmp`, so the first query that spills `mkdir`s under the
39
- * process working directory — which fails with `EACCES` whenever the
40
- * container runs non-root or on a read-only rootfs. Resolving scratch to an
41
- * explicitly writable directory keeps spills working regardless of cwd.
48
+ * `mkdtemp` makes a directory no other local user can have pre-created,
49
+ * planted links in, or read (`0700` on POSIX; on Windows it inherits the
50
+ * parent's ACL, so there the parent must not grant other users access), so
51
+ * no scratch path resolves through a fixed shared name (#554). It also
52
+ * keeps scratch off the process cwd: DuckDB defaults an in-memory
53
+ * database's `temp_directory` to a cwd-relative `.tmp`, which fails on a
54
+ * non-root or read-only rootfs. Concurrent first calls share one directory;
55
+ * a failed attempt is dropped so the next call retries.
42
56
  */
43
57
  private ensureTempRoot;
58
+ private createTempRoot;
44
59
  initCanvas(canvasId: string, _context: RequestContext): Promise<void>;
60
+ /**
61
+ * Close the canvas's instance and remove its spill directory. A call still
62
+ * running on the canvas keeps the database open on its own connection and
63
+ * can still read spilled blocks back from that directory, so the directory
64
+ * goes once the last such call settles, and this does not wait for it.
65
+ * DuckDB removes a `temp_directory` it created when the database finally
66
+ * closes; the removal here covers every other case, so nothing of the
67
+ * canvas outlives it.
68
+ */
45
69
  destroyCanvas(canvasId: string, _context: RequestContext): Promise<void>;
46
70
  healthCheck(): Promise<boolean>;
71
+ /**
72
+ * Destroy every canvas, then remove the private scratch directory. A call
73
+ * that reached a canvas before shutdown began can still be writing there —
74
+ * an open per-query connection outlives its closed instance — so the
75
+ * directory goes once the last such call settles, and shutdown does not
76
+ * wait for it. Until then the directory stays in place and private, which
77
+ * keeps another local user from re-creating its name while that call still
78
+ * writes inside it. A canvas whose creation straddles the shutdown is
79
+ * refused rather than bound to the retired directory. A provider used
80
+ * again afterwards creates a fresh one. After an abnormal exit the
81
+ * directory stays behind, still private; nothing sweeps it on the next
82
+ * start.
83
+ */
47
84
  shutdown(): Promise<void>;
48
85
  registerTable(canvasId: string, name: string, rows: RegisterRows, _context: RequestContext, options?: RegisterTableOptions): Promise<RegisterTableResult>;
49
86
  query(canvasId: string, sql: string, _context: RequestContext, options?: QueryOptions): Promise<QueryResult>;
@@ -54,7 +91,28 @@ export declare class DuckdbProvider implements IDataCanvasProvider {
54
91
  private describeOne;
55
92
  drop(canvasId: string, name: string, _context: RequestContext): Promise<boolean>;
56
93
  clear(canvasId: string, _context: RequestContext): Promise<number>;
57
- private requireCanvas;
94
+ /**
95
+ * `canvasId`'s record, held until the caller's `using` scope exits, on
96
+ * return or throw. {@link destroyCanvas} removes the canvas's spill
97
+ * directory only once every hold on that canvas is released, so a call
98
+ * already running can still read back the blocks it spilled. {@link shutdown}
99
+ * removes the scratch directory only once every hold taken before it began
100
+ * is released, so a call already running finishes inside the private
101
+ * directory, never in one another local user re-created under its name.
102
+ * Every data-plane call reaches its record through a hold.
103
+ */
104
+ private holdCanvas;
105
+ /** Host directories an engine message can quote and a caller must not see. */
106
+ private hostPaths;
107
+ /** {@link classifyDuckdbError} with this canvas's host directories redacted. */
108
+ private classify;
109
+ /**
110
+ * `err` classified and redacted when it is an engine error naming a host
111
+ * directory; anything else as it came. For blocks that also run code other
112
+ * than the engine's — a caller's row source, a cancellation check — whose
113
+ * failures must reach the caller as thrown.
114
+ */
115
+ private redactHostPaths;
58
116
  /**
59
117
  * Runs `fn` on a connection of its own, so an abort interrupts only this
60
118
  * call. A failure after the abort surfaces as `Timeout` (cancelled); any
@@ -67,8 +125,9 @@ export declare class DuckdbProvider implements IDataCanvasProvider {
67
125
  private columnNames;
68
126
  /**
69
127
  * The rejection for a statement that failed to parse or prepare: a
70
- * SELECT-shaped statement surfaces the sanitized binder message (the SQL
71
- * itself is probably wrong), anything else is rejected as non-SELECT.
128
+ * SELECT-shaped statement surfaces the binder message, host directories
129
+ * redacted (the SQL itself is probably wrong), anything else is rejected as
130
+ * non-SELECT.
72
131
  */
73
132
  private prepareFailure;
74
133
  /**
@@ -130,7 +189,10 @@ export declare function toUint8Array(value: unknown, columnName: string): Uint8A
130
189
  export declare const DUCKDB_ERROR_REASONS: {
131
190
  /** SQL the engine could not parse. */
132
191
  readonly sqlParseError: 'sql_parse_error';
133
- /** A write the engine refused, or a permission it denied. */
192
+ /**
193
+ * A write the engine refused, or file access its configuration denies —
194
+ * never the operating system refusing a file, which is an I/O fault.
195
+ */
134
196
  readonly sqlReadOnly: 'sql_read_only';
135
197
  /** A gated SELECT that prepared cleanly and then failed on the staged data. */
136
198
  readonly sqlExecutionError: 'sql_execution_error';
@@ -145,11 +207,13 @@ export type DuckdbErrorReason = (typeof DUCKDB_ERROR_REASONS)[keyof typeof DUCKD
145
207
  * validations) must keep their code and `data.reason` instead of being
146
208
  * reclassified as `DatabaseError`.
147
209
  *
148
- * The three caller-side classes are `ValidationError`; everything else — I/O,
149
- * internal, out-of-memory, transaction, interrupt — stays `DatabaseError`,
150
- * which is what an export or Parquet round-trip failing on the filesystem
151
- * must remain.
210
+ * The three caller-side classes are `ValidationError`, each matched on the
211
+ * engine's own class prefix; everything else — I/O, internal, out-of-memory,
212
+ * transaction conflict, interrupt — stays `DatabaseError`, which is what an
213
+ * export or Parquet round-trip failing on the filesystem must remain (#565).
214
+ * Every `redact` path in the message becomes `[path]`; the raw engine error,
215
+ * paths included, stays on `cause`.
152
216
  * @internal Exported for unit testing.
153
217
  */
154
- export declare function classifyDuckdbError(err: unknown): Error;
218
+ export declare function classifyDuckdbError(err: unknown, redact?: readonly string[]): Error;
155
219
  //# sourceMappingURL=DuckdbProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DuckdbProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/canvas/providers/duckdb/DuckdbProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DuckdbProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/canvas/providers/duckdb/DuckdbProvider.ts"],"names":[],"mappings":"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"}