@namzu/sdk 5.1.0 → 6.0.0

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 (188) hide show
  1. package/CHANGELOG.md +465 -0
  2. package/dist/agents/__tests__/run-agent-forwarding.test.d.ts +2 -0
  3. package/dist/agents/__tests__/run-agent-forwarding.test.d.ts.map +1 -0
  4. package/dist/agents/__tests__/run-agent-forwarding.test.js +76 -0
  5. package/dist/agents/__tests__/run-agent-forwarding.test.js.map +1 -0
  6. package/dist/agents/__tests__/run-completed-stop-reason.test.d.ts +2 -0
  7. package/dist/agents/__tests__/run-completed-stop-reason.test.d.ts.map +1 -0
  8. package/dist/agents/__tests__/run-completed-stop-reason.test.js +50 -0
  9. package/dist/agents/__tests__/run-completed-stop-reason.test.js.map +1 -0
  10. package/dist/agents/index.d.ts +1 -0
  11. package/dist/agents/index.d.ts.map +1 -1
  12. package/dist/agents/index.js +4 -0
  13. package/dist/agents/index.js.map +1 -1
  14. package/dist/agents/runAgent.d.ts +34 -0
  15. package/dist/agents/runAgent.d.ts.map +1 -1
  16. package/dist/agents/runAgent.js +5 -3
  17. package/dist/agents/runAgent.js.map +1 -1
  18. package/dist/config/runtime.d.ts +30 -30
  19. package/dist/constants/tools/__tests__/dangerous-patterns.test.d.ts +2 -0
  20. package/dist/constants/tools/__tests__/dangerous-patterns.test.d.ts.map +1 -0
  21. package/dist/constants/tools/__tests__/dangerous-patterns.test.js +54 -0
  22. package/dist/constants/tools/__tests__/dangerous-patterns.test.js.map +1 -0
  23. package/dist/constants/tools/index.d.ts.map +1 -1
  24. package/dist/constants/tools/index.js +28 -1
  25. package/dist/constants/tools/index.js.map +1 -1
  26. package/dist/contracts/a2a.d.ts +44 -44
  27. package/dist/directory/__tests__/derive.test.d.ts +2 -0
  28. package/dist/directory/__tests__/derive.test.d.ts.map +1 -0
  29. package/dist/directory/__tests__/derive.test.js +111 -0
  30. package/dist/directory/__tests__/derive.test.js.map +1 -0
  31. package/dist/directory/__tests__/load-diagnostics.test.d.ts +2 -0
  32. package/dist/directory/__tests__/load-diagnostics.test.d.ts.map +1 -0
  33. package/dist/directory/__tests__/load-diagnostics.test.js +106 -0
  34. package/dist/directory/__tests__/load-diagnostics.test.js.map +1 -0
  35. package/dist/directory/__tests__/load-directory.test.d.ts +2 -0
  36. package/dist/directory/__tests__/load-directory.test.d.ts.map +1 -0
  37. package/dist/directory/__tests__/load-directory.test.js +196 -0
  38. package/dist/directory/__tests__/load-directory.test.js.map +1 -0
  39. package/dist/directory/__tests__/subagents.test.d.ts +2 -0
  40. package/dist/directory/__tests__/subagents.test.d.ts.map +1 -0
  41. package/dist/directory/__tests__/subagents.test.js +117 -0
  42. package/dist/directory/__tests__/subagents.test.js.map +1 -0
  43. package/dist/directory/__tests__/supervisor-budget.test.d.ts +2 -0
  44. package/dist/directory/__tests__/supervisor-budget.test.d.ts.map +1 -0
  45. package/dist/directory/__tests__/supervisor-budget.test.js +97 -0
  46. package/dist/directory/__tests__/supervisor-budget.test.js.map +1 -0
  47. package/dist/directory/derive-supervisor.d.ts +58 -0
  48. package/dist/directory/derive-supervisor.d.ts.map +1 -0
  49. package/dist/directory/derive-supervisor.js +88 -0
  50. package/dist/directory/derive-supervisor.js.map +1 -0
  51. package/dist/directory/derive.d.ts +12 -0
  52. package/dist/directory/derive.d.ts.map +1 -0
  53. package/dist/directory/derive.js +58 -0
  54. package/dist/directory/derive.js.map +1 -0
  55. package/dist/directory/index.d.ts +7 -0
  56. package/dist/directory/index.d.ts.map +1 -0
  57. package/dist/directory/index.js +5 -0
  58. package/dist/directory/index.js.map +1 -0
  59. package/dist/directory/load.d.ts +14 -0
  60. package/dist/directory/load.d.ts.map +1 -0
  61. package/dist/directory/load.js +488 -0
  62. package/dist/directory/load.js.map +1 -0
  63. package/dist/directory/scan.d.ts +36 -0
  64. package/dist/directory/scan.d.ts.map +1 -0
  65. package/dist/directory/scan.js +136 -0
  66. package/dist/directory/scan.js.map +1 -0
  67. package/dist/directory/types.d.ts +215 -0
  68. package/dist/directory/types.d.ts.map +1 -0
  69. package/dist/directory/types.js +8 -0
  70. package/dist/directory/types.js.map +1 -0
  71. package/dist/plugin/__tests__/path-containment.test.d.ts +2 -0
  72. package/dist/plugin/__tests__/path-containment.test.d.ts.map +1 -0
  73. package/dist/plugin/__tests__/path-containment.test.js +91 -0
  74. package/dist/plugin/__tests__/path-containment.test.js.map +1 -0
  75. package/dist/plugin/lifecycle.d.ts.map +1 -1
  76. package/dist/plugin/lifecycle.js +3 -3
  77. package/dist/plugin/lifecycle.js.map +1 -1
  78. package/dist/plugin/loader.d.ts.map +1 -1
  79. package/dist/plugin/loader.js +12 -2
  80. package/dist/plugin/loader.js.map +1 -1
  81. package/dist/provider/__tests__/model-version.test.d.ts +2 -0
  82. package/dist/provider/__tests__/model-version.test.d.ts.map +1 -0
  83. package/dist/provider/__tests__/model-version.test.js +80 -0
  84. package/dist/provider/__tests__/model-version.test.js.map +1 -0
  85. package/dist/provider/__tests__/strict-schema.test.d.ts +2 -0
  86. package/dist/provider/__tests__/strict-schema.test.d.ts.map +1 -0
  87. package/dist/provider/__tests__/strict-schema.test.js +157 -0
  88. package/dist/provider/__tests__/strict-schema.test.js.map +1 -0
  89. package/dist/provider/__tests__/vendor-detail.test.d.ts +2 -0
  90. package/dist/provider/__tests__/vendor-detail.test.d.ts.map +1 -0
  91. package/dist/provider/__tests__/vendor-detail.test.js +89 -0
  92. package/dist/provider/__tests__/vendor-detail.test.js.map +1 -0
  93. package/dist/provider/errors.d.ts +38 -5
  94. package/dist/provider/errors.d.ts.map +1 -1
  95. package/dist/provider/errors.js +107 -5
  96. package/dist/provider/errors.js.map +1 -1
  97. package/dist/provider/model-version.d.ts +60 -0
  98. package/dist/provider/model-version.d.ts.map +1 -0
  99. package/dist/provider/model-version.js +64 -0
  100. package/dist/provider/model-version.js.map +1 -0
  101. package/dist/provider/strict-schema.d.ts +49 -0
  102. package/dist/provider/strict-schema.d.ts.map +1 -0
  103. package/dist/provider/strict-schema.js +168 -0
  104. package/dist/provider/strict-schema.js.map +1 -0
  105. package/dist/public-runtime.d.ts +9 -1
  106. package/dist/public-runtime.d.ts.map +1 -1
  107. package/dist/public-runtime.js +27 -1
  108. package/dist/public-runtime.js.map +1 -1
  109. package/dist/public-types.d.ts +2 -0
  110. package/dist/public-types.d.ts.map +1 -1
  111. package/dist/registry/tool/__tests__/dialect.test.d.ts +2 -0
  112. package/dist/registry/tool/__tests__/dialect.test.d.ts.map +1 -0
  113. package/dist/registry/tool/__tests__/dialect.test.js +143 -0
  114. package/dist/registry/tool/__tests__/dialect.test.js.map +1 -0
  115. package/dist/registry/tool/__tests__/strict-registration.test.d.ts +2 -0
  116. package/dist/registry/tool/__tests__/strict-registration.test.d.ts.map +1 -0
  117. package/dist/registry/tool/__tests__/strict-registration.test.js +82 -0
  118. package/dist/registry/tool/__tests__/strict-registration.test.js.map +1 -0
  119. package/dist/registry/tool/dialect.d.ts +50 -0
  120. package/dist/registry/tool/dialect.d.ts.map +1 -0
  121. package/dist/registry/tool/dialect.js +131 -0
  122. package/dist/registry/tool/dialect.js.map +1 -0
  123. package/dist/registry/tool/execute.d.ts.map +1 -1
  124. package/dist/registry/tool/execute.js +16 -0
  125. package/dist/registry/tool/execute.js.map +1 -1
  126. package/dist/registry/toolset/catalog.d.ts.map +1 -1
  127. package/dist/registry/toolset/catalog.js +10 -5
  128. package/dist/registry/toolset/catalog.js.map +1 -1
  129. package/dist/runtime/query/__tests__/stream-recovery.test.js +6 -0
  130. package/dist/runtime/query/__tests__/stream-recovery.test.js.map +1 -1
  131. package/dist/runtime/query/result.d.ts.map +1 -1
  132. package/dist/runtime/query/result.js +11 -0
  133. package/dist/runtime/query/result.js.map +1 -1
  134. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js +7 -1
  135. package/dist/tools/builtins/__tests__/edit-insert-reachable.test.js.map +1 -1
  136. package/dist/tools/builtins/__tests__/edit.test.js +1 -1
  137. package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
  138. package/dist/tools/builtins/edit.d.ts.map +1 -1
  139. package/dist/tools/builtins/edit.js +20 -2
  140. package/dist/tools/builtins/edit.js.map +1 -1
  141. package/dist/types/plugin/index.d.ts +4 -4
  142. package/dist/types/provider/error.d.ts +20 -4
  143. package/dist/types/provider/error.d.ts.map +1 -1
  144. package/dist/types/run/events.d.ts +17 -2
  145. package/dist/types/run/events.d.ts.map +1 -1
  146. package/dist/types/run/events.js.map +1 -1
  147. package/dist/types/verification/index.d.ts +6 -6
  148. package/package.json +1 -1
  149. package/src/agents/__tests__/run-agent-forwarding.test.ts +85 -0
  150. package/src/agents/__tests__/run-completed-stop-reason.test.ts +59 -0
  151. package/src/agents/index.ts +8 -0
  152. package/src/agents/runAgent.ts +30 -4
  153. package/src/constants/tools/__tests__/dangerous-patterns.test.ts +62 -0
  154. package/src/constants/tools/index.ts +28 -1
  155. package/src/directory/__tests__/derive.test.ts +135 -0
  156. package/src/directory/__tests__/load-diagnostics.test.ts +126 -0
  157. package/src/directory/__tests__/load-directory.test.ts +243 -0
  158. package/src/directory/__tests__/subagents.test.ts +155 -0
  159. package/src/directory/__tests__/supervisor-budget.test.ts +117 -0
  160. package/src/directory/derive-supervisor.ts +149 -0
  161. package/src/directory/derive.ts +70 -0
  162. package/src/directory/index.ts +27 -0
  163. package/src/directory/load.ts +556 -0
  164. package/src/directory/scan.ts +163 -0
  165. package/src/directory/types.ts +254 -0
  166. package/src/plugin/__tests__/path-containment.test.ts +107 -0
  167. package/src/plugin/lifecycle.ts +3 -3
  168. package/src/plugin/loader.ts +12 -2
  169. package/src/provider/__tests__/model-version.test.ts +93 -0
  170. package/src/provider/__tests__/strict-schema.test.ts +189 -0
  171. package/src/provider/__tests__/vendor-detail.test.ts +107 -0
  172. package/src/provider/errors.ts +106 -5
  173. package/src/provider/model-version.ts +98 -0
  174. package/src/provider/strict-schema.ts +182 -0
  175. package/src/public-runtime.ts +38 -0
  176. package/src/public-types.ts +8 -0
  177. package/src/registry/tool/__tests__/dialect.test.ts +197 -0
  178. package/src/registry/tool/__tests__/strict-registration.test.ts +115 -0
  179. package/src/registry/tool/dialect.ts +136 -0
  180. package/src/registry/tool/execute.ts +16 -0
  181. package/src/registry/toolset/catalog.ts +10 -5
  182. package/src/runtime/query/__tests__/stream-recovery.test.ts +6 -0
  183. package/src/runtime/query/result.ts +11 -0
  184. package/src/tools/builtins/__tests__/edit-insert-reachable.test.ts +8 -2
  185. package/src/tools/builtins/__tests__/edit.test.ts +1 -1
  186. package/src/tools/builtins/edit.ts +20 -2
  187. package/src/types/provider/error.ts +20 -4
  188. package/src/types/run/events.ts +15 -2
@@ -31,6 +31,20 @@ export { resolveTaskModel } from './router/task-router.js';
31
31
  // Every driver accepts `thinking`; one that does not implement it must
32
32
  // refuse rather than drop it. Shared so a new driver inherits the rule.
33
33
  export { assertThinkingUnsupported } from './provider/thinking-support.js';
34
+ // One matcher for versioned model ids. Shared because three drivers had each
35
+ // written their own and all three read an 8-digit date suffix as the MINOR
36
+ // version, which inverted every capability decision keyed on it. The shape
37
+ // lives here; the vocabulary comes from the driver that knows it.
38
+ export { modelVersionAtLeast, parseVersionedModelId } from './provider/model-version.js';
39
+ // Strict tool input is a SUBSET of JSON Schema, and a keyword outside it makes
40
+ // the vendor reject the whole request rather than degrade one field.
41
+ export { assertStrictSchema, findStrictSchemaViolations } from './provider/strict-schema.js';
42
+ // A tool has one schema; what changes per provider is the DIALECT the wire
43
+ // parses, which is the wire's property. Rendered once, converted at the driver.
44
+ export { findDraft07Only, toSchemaDialect } from './registry/tool/dialect.js';
45
+ // The renderer itself, so a driver or a contract test can ask what a tool will
46
+ // actually put on the wire without reaching into the registry.
47
+ export { renderToolSchema } from './registry/tool/schema.js';
34
48
  export { drainQuery, query } from './runtime/query/index.js';
35
49
  // Mid-run guidance. A host holds the channel and the loop drains it at the
36
50
  // tool-result boundary; see the module for why that is the only legal slot.
@@ -59,12 +73,24 @@ export { buildLimitConfig, checkLimitsDetailed, createRunReporter, } from './run
59
73
  // ─── personas, skills, advisory ──────────────────────────────────────────
60
74
  export { assembleSystemPrompt, mergePersonas, withSessionContext, } from './persona/index.js';
61
75
  export { discoverSkills, loadSkill, resolveSkillChain, SkillRegistry, } from './skills/index.js';
76
+ // ─── the agent directory ─────────────────────────────────────────────────
77
+ //
78
+ // Reading a conventional `agent/` directory — its instructions, tools, skills
79
+ // and delegates — into the same options `runAgent` and `SupervisorAgent`
80
+ // already take. A loader, not a second engine: everything it produces is an
81
+ // ordinary option, so a caller who outgrows the convention passes overrides
82
+ // or stops calling it and keeps everything else.
83
+ //
84
+ // It shipped briefly as its own package. The name was the tell — nothing fit,
85
+ // because a directory reader that needs the kernel to be useful is a function
86
+ // of the kernel, not a product beside it.
87
+ export { ALL_SLOTS, deriveRunOptions, deriveSupervisorOptions, loadDirectory, } from './directory/index.js';
62
88
  export { AdvisorRegistry, AdvisoryContext, AdvisoryExecutor, TriggerEvaluator, } from './advisory/index.js';
63
89
  // ─── agents ──────────────────────────────────────────────────────────────
64
90
  export { AbstractAgent, ConcurrentInvocationError, defineAgent, InvocationLock, PipelineAgent, ReactiveAgent, RouterAgent,
65
91
  // The short path: provider + model + prompt. Assembles the identity and
66
92
  // budgets `drainQuery` requires and hands the generated identity back.
67
- runAgent, SupervisorAgent, } from './agents/index.js';
93
+ runAgent, DEFAULT_MAX_ITERATIONS, DEFAULT_TIMEOUT_MS, DEFAULT_TOKEN_BUDGET, SupervisorAgent, } from './agents/index.js';
68
94
  // ─── registries, stores, managers, plugin, gateway ───────────────────────
69
95
  export { ActivityStore, DiskCheckpointStore, DiskMemoryStore, DiskTaskStore, InMemoryMemoryIndex, InMemoryMemoryStore, InMemoryStore, InMemoryTaskStore, RunDiskStore, } from './store/index.js';
70
96
  export { AgentRegistry, ManagedRegistry, PluginRegistry, Registry, ToolCatalog, ToolNameCollisionError, ToolRegistry, createToolCatalogFromRegistry, loadingFromAvailability, toolDefinitionToCatalogEntry, } from './registry/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"public-runtime.js","sourceRoot":"","sources":["../src/public-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-runtime.js","sourceRoot":"","sources":["../src/public-runtime.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export type * from './types/message/index.js';
3
3
  export type * from './types/common/index.js';
4
4
  export type * from './types/bidi/index.js';
5
5
  export type * from './types/tool/index.js';
6
+ export type * from './directory/types.js';
7
+ export type { DelegatePlan, DeriveSupervisorInput, SupervisorPlan, } from './directory/derive-supervisor.js';
6
8
  export type * from './types/toolset/index.js';
7
9
  export type * from './types/permission/index.js';
8
10
  export type * from './types/run/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public-types.d.ts","sourceRoot":"","sources":["../src/public-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dialect.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.test.d.ts","sourceRoot":"","sources":["../../../../src/registry/tool/__tests__/dialect.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,143 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { z } from 'zod';
3
+ import { findDraft07Only, toSchemaDialect } from '../dialect.js';
4
+ import { renderToolSchema } from '../schema.js';
5
+ /**
6
+ * The mechanism, tested in the kernel that owns it.
7
+ *
8
+ * The drivers each have their own test proving the conversion reaches their
9
+ * wire. This one is about the conversion itself: what it rewrites, what it
10
+ * deliberately leaves alone, and the two properties the prompt cache depends
11
+ * on — a stable reference and a frozen result.
12
+ */
13
+ describe('saying a schema in the dialect a wire parses', () => {
14
+ it('moves a tuple from `items` to `prefixItems`', () => {
15
+ const draft07 = {
16
+ type: 'object',
17
+ properties: {
18
+ range: {
19
+ type: 'array',
20
+ items: [{ type: 'integer' }, { type: 'integer' }],
21
+ minItems: 2,
22
+ maxItems: 2,
23
+ },
24
+ },
25
+ };
26
+ expect(toSchemaDialect(draft07, '2020-12')).toEqual({
27
+ type: 'object',
28
+ properties: {
29
+ range: {
30
+ type: 'array',
31
+ prefixItems: [{ type: 'integer' }, { type: 'integer' }],
32
+ minItems: 2,
33
+ maxItems: 2,
34
+ },
35
+ },
36
+ });
37
+ });
38
+ it('leaves a homogeneous array alone, where `items` means the same thing', () => {
39
+ // The distinction the whole conversion turns on: `items` is only a
40
+ // tuple when it holds an ARRAY of schemas. One schema means "every
41
+ // element", which both dialects spell identically.
42
+ const schema = { type: 'array', items: { type: 'string' } };
43
+ expect(toSchemaDialect(schema, '2020-12')).toEqual(schema);
44
+ });
45
+ it('turns `additionalItems` into the 2020-12 `items`', () => {
46
+ // `additionalItems` only ever qualified an array-form `items` — it says
47
+ // what the elements AFTER the tuple look like. 2020-12 gave that job to
48
+ // `items` once `prefixItems` holds the positional schemas.
49
+ const converted = toSchemaDialect({
50
+ type: 'array',
51
+ items: [{ type: 'integer' }],
52
+ additionalItems: { type: 'string' },
53
+ }, '2020-12');
54
+ expect(converted).toEqual({
55
+ type: 'array',
56
+ prefixItems: [{ type: 'integer' }],
57
+ items: { type: 'string' },
58
+ });
59
+ });
60
+ it('drops `additionalItems: false`, which both dialects already imply', () => {
61
+ // Not a lossy shortcut: once `prefixItems` is set, a closed tuple is the
62
+ // default in 2020-12, so emitting `items: false` would add a byte to
63
+ // every request to say what was already true.
64
+ expect(toSchemaDialect({ type: 'array', items: [{ type: 'integer' }], additionalItems: false }, '2020-12')).toEqual({ type: 'array', prefixItems: [{ type: 'integer' }] });
65
+ });
66
+ it('ignores `additionalItems` with no tuple to qualify', () => {
67
+ // Meaningless in draft-07 too, so carrying it forward would be inventing
68
+ // a constraint the author did not write.
69
+ expect(toSchemaDialect({ type: 'array', items: { type: 'string' }, additionalItems: { type: 'integer' } }, '2020-12')).toEqual({ type: 'array', items: { type: 'string' } });
70
+ });
71
+ it('converts a tuple nested inside another tuple', () => {
72
+ const converted = toSchemaDialect({ type: 'array', items: [{ type: 'array', items: [{ type: 'integer' }] }] }, '2020-12');
73
+ expect(converted.prefixItems?.[0]).toEqual({
74
+ type: 'array',
75
+ prefixItems: [{ type: 'integer' }],
76
+ });
77
+ });
78
+ it('hands back the very same object for draft-07', () => {
79
+ // Not an equal object — the SAME one. The tools block sits at position 0
80
+ // of the prompt-cache prefix, so a driver that speaks draft-07 must not
81
+ // pay an allocation or risk a differently-ordered copy per request.
82
+ const schema = { type: 'object' };
83
+ expect(toSchemaDialect(schema, 'draft-07')).toBe(schema);
84
+ });
85
+ it('returns the same converted object every time it is asked', () => {
86
+ // Same reason. Conversion runs once per schema per dialect; a fresh
87
+ // object each iteration would invalidate the cache for the whole run
88
+ // even though the bytes were equal.
89
+ const schema = { type: 'array', items: [{ type: 'integer' }] };
90
+ expect(toSchemaDialect(schema, '2020-12')).toBe(toSchemaDialect(schema, '2020-12'));
91
+ });
92
+ it('freezes what it hands out, all the way down', () => {
93
+ // A caller that mutates a cached schema would poison every later render,
94
+ // and the symptom would be a silently invalidated prompt cache rather
95
+ // than an error. Freezing turns that into a throw at the mutation site.
96
+ const converted = toSchemaDialect({ type: 'object', properties: { a: { type: 'array', items: [{ type: 'integer' }] } } }, '2020-12');
97
+ expect(Object.isFrozen(converted)).toBe(true);
98
+ expect(Object.isFrozen(converted.properties.a)).toBe(true);
99
+ expect(Object.isFrozen(converted.properties.a.prefixItems)).toBe(true);
100
+ });
101
+ });
102
+ describe('finding what a 2020-12 wire will refuse', () => {
103
+ it('names the path to an array-form `items`', () => {
104
+ expect(findDraft07Only({
105
+ type: 'object',
106
+ properties: { range: { type: 'array', items: [{ type: 'integer' }] } },
107
+ })).toEqual(['properties.range.items']);
108
+ });
109
+ it('names `additionalItems` too', () => {
110
+ expect(findDraft07Only({ additionalItems: false })).toEqual(['additionalItems']);
111
+ });
112
+ it('walks into arrays, indexing the branch', () => {
113
+ expect(findDraft07Only({
114
+ anyOf: [{ type: 'string' }, { type: 'array', items: [{ type: 'integer' }] }],
115
+ })).toEqual(['anyOf[1].items']);
116
+ });
117
+ it('does not descend into a tuple it has already reported', () => {
118
+ // Reporting the tuple and then each of its positional schemas would
119
+ // turn one fixable finding into a list nobody reads.
120
+ expect(findDraft07Only({ type: 'array', items: [{ type: 'integer' }, { type: 'string' }] })).toEqual(['items']);
121
+ });
122
+ it('says nothing about a schema that is already 2020-12', () => {
123
+ expect(findDraft07Only({
124
+ type: 'array',
125
+ prefixItems: [{ type: 'integer' }],
126
+ items: { type: 'string' },
127
+ })).toEqual([]);
128
+ });
129
+ it('tolerates the leaves', () => {
130
+ expect(findDraft07Only(null)).toEqual([]);
131
+ expect(findDraft07Only('a string')).toEqual([]);
132
+ expect(findDraft07Only(42)).toEqual([]);
133
+ });
134
+ });
135
+ describe('the round trip a real tool takes', () => {
136
+ it('renders a Zod tuple as draft-07 and converts it clean', () => {
137
+ // The actual defect, end to end: this is what `read.readRange` is.
138
+ const rendered = renderToolSchema(z.object({ readRange: z.tuple([z.number(), z.number()]).optional() }));
139
+ expect(findDraft07Only(rendered)).not.toEqual([]);
140
+ expect(findDraft07Only(toSchemaDialect(rendered, '2020-12'))).toEqual([]);
141
+ });
142
+ });
143
+ //# sourceMappingURL=dialect.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.test.js","sourceRoot":"","sources":["../../../../src/registry/tool/__tests__/dialect.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=strict-registration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict-registration.test.d.ts","sourceRoot":"","sources":["../../../../src/registry/tool/__tests__/strict-registration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,82 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { z } from 'zod';
3
+ import { ToolRegistry } from '../execute.js';
4
+ /**
5
+ * A tool that asks for constrained generation and hands over a schema the
6
+ * constrained dialect cannot express is wrong at the moment it is DECLARED,
7
+ * whichever model it later meets.
8
+ *
9
+ * The first attempt at this check lived in a provider driver. That caught the
10
+ * bug — but per request, in one of the two drivers that mark tools strict, and
11
+ * only once something actually ran. The registry already refused
12
+ * `enforceModelInput` without a `modelInputSchema`, with a comment stating the
13
+ * principle exactly: "Refusing at registration puts the error where the author
14
+ * can fix it rather than at the first request." The rule was written down; the
15
+ * check was in the wrong place.
16
+ *
17
+ * So the pair is here now. One asks whether a model schema EXISTS, the other
18
+ * whether it can carry the guarantee the tool just requested.
19
+ */
20
+ function tool(overrides) {
21
+ return {
22
+ name: 'sample',
23
+ description: 'a tool',
24
+ inputSchema: z.object({}),
25
+ execute: async () => ({ success: true, output: 'ok' }),
26
+ ...overrides,
27
+ };
28
+ }
29
+ describe('a tool cannot register a schema its own guarantee cannot carry', () => {
30
+ it('refuses a keyword outside the strict subset, naming the path', () => {
31
+ const registry = new ToolRegistry();
32
+ expect(() => registry.register(tool({
33
+ name: 'edit',
34
+ enforceModelInput: true,
35
+ modelInputSchema: {
36
+ type: 'object',
37
+ properties: { insertLine: { oneOf: [{ type: 'integer' }, { const: 'end' }] } },
38
+ },
39
+ }))).toThrow(/edit\.properties\.insertLine\.oneOf/);
40
+ });
41
+ it('names the remedy, not just the offence', () => {
42
+ const registry = new ToolRegistry();
43
+ expect(() => registry.register(tool({ enforceModelInput: true, modelInputSchema: { properties: { n: { minimum: 0 } } } }))).toThrow(/enforce at execution/);
44
+ });
45
+ it('admits the same union spelled the way the subset accepts', () => {
46
+ const registry = new ToolRegistry();
47
+ expect(() => registry.register(tool({
48
+ enforceModelInput: true,
49
+ modelInputSchema: {
50
+ type: 'object',
51
+ properties: { insertLine: { anyOf: [{ type: 'integer' }, { const: 'end' }] } },
52
+ additionalProperties: false,
53
+ },
54
+ }))).not.toThrow();
55
+ });
56
+ it('leaves a tool that never asked for the guarantee alone', () => {
57
+ // Without `enforceModelInput` nothing is marked strict, so the schema is
58
+ // sent as ordinary JSON Schema and `oneOf` is perfectly legal there.
59
+ // Refusing it would break working setups for no reason.
60
+ const registry = new ToolRegistry();
61
+ expect(() => registry.register(tool({ modelInputSchema: { properties: { a: { oneOf: [{ type: 'string' }] } } } }))).not.toThrow();
62
+ });
63
+ it('still refuses enforcement with no model schema at all', () => {
64
+ // The check this one was added beside. Kept in the same file so a
65
+ // future edit sees both halves of the pair together.
66
+ const registry = new ToolRegistry();
67
+ expect(() => registry.register(tool({ enforceModelInput: true }))).toThrow(/does not define modelInputSchema/);
68
+ });
69
+ it('refuses through every registration shape', () => {
70
+ // `register` has three overloads and only one of them was exercised
71
+ // above; a check on the wrong one would look like coverage.
72
+ const bad = tool({
73
+ name: 'bad',
74
+ enforceModelInput: true,
75
+ modelInputSchema: { properties: { a: { oneOf: [] } } },
76
+ });
77
+ expect(() => new ToolRegistry().register(bad)).toThrow(/oneOf/);
78
+ expect(() => new ToolRegistry().register('bad', bad)).toThrow(/oneOf/);
79
+ expect(() => new ToolRegistry().register([bad])).toThrow(/oneOf/);
80
+ });
81
+ });
82
+ //# sourceMappingURL=strict-registration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict-registration.test.js","sourceRoot":"","sources":["../../../../src/registry/tool/__tests__/strict-registration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAE5C;;;;;;;;;;;;;;;GAeG;AAEH,SAAS,IAAI,CAAC,SAAkC;IAC/C,OAAO;QACN,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACtD,GAAG,SAAS;KACM,CAAA;AACpB,CAAC;AAED,QAAQ,CAAC,gEAAgE,EAAE,GAAG,EAAE;IAC/E,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACvE,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;QAEnC,MAAM,CAAC,GAAG,EAAE,CACX,QAAQ,CAAC,QAAQ,CAChB,IAAI,CAAC;YACJ,IAAI,EAAE,MAAM;YACZ,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;aAC9E;SACD,CAAC,CACF,CACD,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACjD,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;QAEnC,MAAM,CAAC,GAAG,EAAE,CACX,QAAQ,CAAC,QAAQ,CAChB,IAAI,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAC1F,CACD,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QACnE,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;QAEnC,MAAM,CAAC,GAAG,EAAE,CACX,QAAQ,CAAC,QAAQ,CAChB,IAAI,CAAC;YACJ,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9E,oBAAoB,EAAE,KAAK;aAC3B;SACD,CAAC,CACF,CACD,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QACjE,yEAAyE;QACzE,qEAAqE;QACrE,wDAAwD;QACxD,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;QAEnC,MAAM,CAAC,GAAG,EAAE,CACX,QAAQ,CAAC,QAAQ,CAChB,IAAI,CAAC,EAAE,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAClF,CACD,CAAC,GAAG,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAChE,kEAAkE;QAClE,qDAAqD;QACrD,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAA;QAEnC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACzE,kCAAkC,CAClC,CAAA;IACF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QACnD,oEAAoE;QACpE,4DAA4D;QAC5D,MAAM,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,EAAE,KAAK;YACX,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE;SACtD,CAAC,CAAA;QAEF,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC/D,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACtE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAClE,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * The dialect a wire speaks, and how to say the same schema in it.
3
+ *
4
+ * A tool has one Zod schema. What changes between providers is not the tool —
5
+ * it is the JSON Schema dialect the wire parses, which is a property of the
6
+ * wire. So the shape is rendered once, canonically, and each driver converts
7
+ * at the boundary where it knows which wire it is about to talk to.
8
+ *
9
+ * This exists because that layering was missing and it cost a production
10
+ * outage. `renderToolSchema` emits draft-07 (zod-to-json-schema's
11
+ * `jsonSchema7` target), every driver forwarded it verbatim, and one of the
12
+ * wires namzu speaks requires draft 2020-12. Measured against that live
13
+ * endpoint:
14
+ *
15
+ * | tool schema | result |
16
+ * |--------------------------------|-----------------------------------------|
17
+ * | `items: [a, b]` (draft-07) | 400 — "must match JSON Schema draft 2020-12" |
18
+ * | `prefixItems: [a, b]` (2020-12)| accepted |
19
+ * | `items: { a }` | accepted |
20
+ *
21
+ * The failure is NOT about strict tool use. It fires with strict validation
22
+ * unset, and with it on the dialect error arrives *before* the strict-subset
23
+ * error — so a guard scoped to strict misses it entirely. One was, and did.
24
+ *
25
+ * Which wires want which dialect is the drivers' knowledge, not this file's:
26
+ * the vocabulary lives beside the wire that speaks it, and only the mechanism
27
+ * lives here.
28
+ *
29
+ * Only the conversions namzu can actually emit are implemented. The renderer
30
+ * runs with `$refStrategy: 'none'`, so there are no `$ref`/`definitions` to
31
+ * rewrite; a construct that cannot appear is not worth code that cannot be
32
+ * tested.
33
+ */
34
+ /** Which spelling of JSON Schema a wire accepts. */
35
+ export type JsonSchemaDialect = 'draft-07' | '2020-12';
36
+ /**
37
+ * Say this schema in the dialect the wire parses.
38
+ *
39
+ * Returns the input unchanged — same reference — when nothing needs saying
40
+ * differently, so the common case costs one map lookup and no allocation.
41
+ */
42
+ export declare function toSchemaDialect(schema: Record<string, unknown>, dialect: JsonSchemaDialect): Record<string, unknown>;
43
+ /**
44
+ * Whether a schema still carries a construct the 2020-12 wire refuses.
45
+ *
46
+ * Exported so a test can sweep every shipped tool without reaching into the
47
+ * conversion, and so a driver can assert rather than hope.
48
+ */
49
+ export declare function findDraft07Only(schema: unknown, path?: string): string[];
50
+ //# sourceMappingURL=dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../src/registry/tool/dialect.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,oDAAoD;AACpD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,SAAS,CAAA;AAetD;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,iBAAiB,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,SAAK,GAAG,MAAM,EAAE,CAsBpE"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * The dialect a wire speaks, and how to say the same schema in it.
3
+ *
4
+ * A tool has one Zod schema. What changes between providers is not the tool —
5
+ * it is the JSON Schema dialect the wire parses, which is a property of the
6
+ * wire. So the shape is rendered once, canonically, and each driver converts
7
+ * at the boundary where it knows which wire it is about to talk to.
8
+ *
9
+ * This exists because that layering was missing and it cost a production
10
+ * outage. `renderToolSchema` emits draft-07 (zod-to-json-schema's
11
+ * `jsonSchema7` target), every driver forwarded it verbatim, and one of the
12
+ * wires namzu speaks requires draft 2020-12. Measured against that live
13
+ * endpoint:
14
+ *
15
+ * | tool schema | result |
16
+ * |--------------------------------|-----------------------------------------|
17
+ * | `items: [a, b]` (draft-07) | 400 — "must match JSON Schema draft 2020-12" |
18
+ * | `prefixItems: [a, b]` (2020-12)| accepted |
19
+ * | `items: { a }` | accepted |
20
+ *
21
+ * The failure is NOT about strict tool use. It fires with strict validation
22
+ * unset, and with it on the dialect error arrives *before* the strict-subset
23
+ * error — so a guard scoped to strict misses it entirely. One was, and did.
24
+ *
25
+ * Which wires want which dialect is the drivers' knowledge, not this file's:
26
+ * the vocabulary lives beside the wire that speaks it, and only the mechanism
27
+ * lives here.
28
+ *
29
+ * Only the conversions namzu can actually emit are implemented. The renderer
30
+ * runs with `$refStrategy: 'none'`, so there are no `$ref`/`definitions` to
31
+ * rewrite; a construct that cannot appear is not worth code that cannot be
32
+ * tested.
33
+ */
34
+ /**
35
+ * Rendered schemas are memoized and deeply frozen, so their identity is
36
+ * stable for the life of the tool — which makes them a sound `WeakMap` key.
37
+ *
38
+ * Converting per request would re-walk every tool's tree on every iteration,
39
+ * which is the waste `renderToolSchema`'s own cache exists to remove, and it
40
+ * would hand a fresh object to the wire each time. The tools block renders at
41
+ * position 0 of the prompt-cache prefix, so a differently-ordered but equal
42
+ * object still invalidates the cache for the whole run. Caching the conversion
43
+ * keeps the bytes identical across iterations.
44
+ */
45
+ const CONVERTED = new Map();
46
+ /**
47
+ * Say this schema in the dialect the wire parses.
48
+ *
49
+ * Returns the input unchanged — same reference — when nothing needs saying
50
+ * differently, so the common case costs one map lookup and no allocation.
51
+ */
52
+ export function toSchemaDialect(schema, dialect) {
53
+ if (dialect === 'draft-07')
54
+ return schema;
55
+ let cache = CONVERTED.get(dialect);
56
+ if (!cache) {
57
+ cache = new WeakMap();
58
+ CONVERTED.set(dialect, cache);
59
+ }
60
+ const hit = cache.get(schema);
61
+ if (hit)
62
+ return hit;
63
+ const converted = to2020(schema);
64
+ const frozen = deepFreeze(converted);
65
+ cache.set(schema, frozen);
66
+ return frozen;
67
+ }
68
+ /**
69
+ * Whether a schema still carries a construct the 2020-12 wire refuses.
70
+ *
71
+ * Exported so a test can sweep every shipped tool without reaching into the
72
+ * conversion, and so a driver can assert rather than hope.
73
+ */
74
+ export function findDraft07Only(schema, path = '') {
75
+ if (Array.isArray(schema)) {
76
+ return schema.flatMap((item, i) => findDraft07Only(item, `${path}[${i}]`));
77
+ }
78
+ if (typeof schema !== 'object' || schema === null)
79
+ return [];
80
+ const node = schema;
81
+ const found = [];
82
+ // A tuple. In draft-07 the positional schemas live in `items`; 2020-12
83
+ // moved them to `prefixItems` and kept `items` for the rest, so the array
84
+ // form is not merely old — it means something else now, and the wire
85
+ // rejects the whole request rather than one field.
86
+ if (Array.isArray(node.items))
87
+ found.push(`${path ? `${path}.` : ''}items`);
88
+ // `additionalItems` only ever qualified an array-form `items`; 2020-12
89
+ // spells that `items`.
90
+ if ('additionalItems' in node)
91
+ found.push(`${path ? `${path}.` : ''}additionalItems`);
92
+ for (const [key, value] of Object.entries(node)) {
93
+ if (key === 'items' && Array.isArray(value))
94
+ continue;
95
+ found.push(...findDraft07Only(value, path ? `${path}.${key}` : key));
96
+ }
97
+ return found;
98
+ }
99
+ function to2020(value) {
100
+ if (Array.isArray(value))
101
+ return value.map(to2020);
102
+ if (typeof value !== 'object' || value === null)
103
+ return value;
104
+ const node = value;
105
+ const out = {};
106
+ for (const [key, child] of Object.entries(node)) {
107
+ if (key === 'items' && Array.isArray(child)) {
108
+ out.prefixItems = child.map(to2020);
109
+ continue;
110
+ }
111
+ if (key === 'additionalItems') {
112
+ // Only meaningful alongside an array-form `items`, where 2020-12
113
+ // calls the same thing `items`. `false` is the default in both
114
+ // dialects once `prefixItems` is set, so it carries nothing.
115
+ if (Array.isArray(node.items) && child !== false)
116
+ out.items = to2020(child);
117
+ continue;
118
+ }
119
+ out[key] = to2020(child);
120
+ }
121
+ return out;
122
+ }
123
+ function deepFreeze(value) {
124
+ if (typeof value !== 'object' || value === null || Object.isFrozen(value))
125
+ return value;
126
+ for (const key of Object.keys(value)) {
127
+ deepFreeze(value[key]);
128
+ }
129
+ return Object.freeze(value);
130
+ }
131
+ //# sourceMappingURL=dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../../src/registry/tool/dialect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/registry/tool/execute.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAElB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,YAAY,EAAE,mBAAmB,EAAE,CAAA;AAmCnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,QAA0B,CAAA;AAExD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASjD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;gBAEb,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAO7C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC/C,MAAM,CAGR;AAED,qBAAa,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IAChE,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,UAAU,CAAC,CAAgB;gBAEvB,MAAM,CAAC,EAAE,kBAAkB;IAK9B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAChD,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI;IACrE,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI;IA2BjF,OAAO,CAAC,WAAW;IAuBV,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK/B,KAAK,IAAI,IAAI;IAKtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ/B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5B,UAAU,IAAI,IAAI;IASlB,YAAY,IAAI,OAAO;IAOvB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAI/C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAkC/C,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAelD,cAAc,IAAI,MAAM,GAAG,IAAI;IAK/B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAuC7C,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE;IAwBjD,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE;IAIlD,OAAO,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,WAAW,GAClB,OAAO,CAAC,mBAAmB,CAAC;IAwK/B,OAAO,CAAC,iBAAiB;CAIzB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAO9E"}
1
+ {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../../src/registry/tool/execute.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAElB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,YAAY,EAAE,mBAAmB,EAAE,CAAA;AAmCnC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,iBAAiB,QAA0B,CAAA;AAExD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CASjD;AAED;;;;;;;;;;GAUG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;gBAEb,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAO7C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CACjC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC/C,MAAM,CAGR;AAED,qBAAa,YAAa,SAAQ,eAAe,CAAC,cAAc,CAAC;IAChE,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,UAAU,CAAC,CAAgB;gBAEvB,MAAM,CAAC,EAAE,kBAAkB;IAK9B,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAChD,QAAQ,CAAC,IAAI,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI;IACrE,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,YAAY,CAAC,EAAE,gBAAgB,GAAG,IAAI;IA2BjF,OAAO,CAAC,WAAW;IAsCV,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAK/B,KAAK,IAAI,IAAI;IAKtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ/B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAQ5B,UAAU,IAAI,IAAI;IASlB,YAAY,IAAI,OAAO;IAOvB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB;IAI/C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE;IAkC/C,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAelD,cAAc,IAAI,MAAM,GAAG,IAAI;IAK/B,SAAS,IAAI,MAAM,EAAE;IAIrB,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM;IAuC7C,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,aAAa,EAAE;IAwBjD,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE;IAIlD,OAAO,CACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,WAAW,GAClB,OAAO,CAAC,mBAAmB,CAAC;IAwK/B,OAAO,CAAC,iBAAiB;CAIzB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAO9E"}
@@ -1,4 +1,5 @@
1
1
  import { SpanStatusCode, context as otelContext, trace } from '@opentelemetry/api';
2
+ import { assertStrictSchema } from '../../provider/strict-schema.js';
2
3
  import { GENAI, NAMZU, toolSpanName } from '../../telemetry/attributes.js';
3
4
  import { recordToolCall } from '../../telemetry/metrics.js';
4
5
  import { getTracer } from '../../telemetry/runtime-accessors.js';
@@ -138,6 +139,21 @@ export class ToolRegistry extends ManagedRegistry {
138
139
  if (tool.enforceModelInput && !tool.modelInputSchema) {
139
140
  throw new Error(`Tool "${id}" enables enforceModelInput but does not define modelInputSchema. Constrained input generation requires an explicit provider-safe model schema.`);
140
141
  }
142
+ // …and the schema has to be one a constrained decoder can actually be
143
+ // given. The check above asks whether a model schema EXISTS; this asks
144
+ // whether it can carry the guarantee the tool just requested.
145
+ //
146
+ // Both belong here for the reason the comment above already states.
147
+ // Strict validation runs against a SUBSET of JSON Schema, and a keyword
148
+ // outside it is not degraded — the request is rejected whole, so one
149
+ // unexpressible field takes down every other tool in the call. The
150
+ // first version of this check lived in a provider driver, which meant
151
+ // it fired per request, in one driver, long after the author had moved
152
+ // on. A tool that asks for a guarantee its own schema cannot carry is
153
+ // wrong at the moment it is declared, whichever model it later meets.
154
+ if (tool.enforceModelInput) {
155
+ assertStrictSchema(id, tool.modelInputSchema);
156
+ }
141
157
  if (tool.tier && this.tierConfig) {
142
158
  const validIds = this.tierConfig.tiers.map((t) => t.id);
143
159
  if (!validIds.includes(tool.tier)) {