@namzu/sdk 1.2.0 → 1.4.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 (127) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/dist/compaction/__tests__/verifier-empty-reply.test.d.ts +12 -0
  3. package/dist/compaction/__tests__/verifier-empty-reply.test.d.ts.map +1 -0
  4. package/dist/compaction/__tests__/verifier-empty-reply.test.js +73 -0
  5. package/dist/compaction/__tests__/verifier-empty-reply.test.js.map +1 -0
  6. package/dist/compaction/verifier.d.ts.map +1 -1
  7. package/dist/compaction/verifier.js +10 -1
  8. package/dist/compaction/verifier.js.map +1 -1
  9. package/dist/config/__tests__/compaction-budget-schema.test.d.ts +18 -0
  10. package/dist/config/__tests__/compaction-budget-schema.test.d.ts.map +1 -0
  11. package/dist/config/__tests__/compaction-budget-schema.test.js +96 -0
  12. package/dist/config/__tests__/compaction-budget-schema.test.js.map +1 -0
  13. package/dist/config/runtime.d.ts.map +1 -1
  14. package/dist/config/runtime.js +20 -11
  15. package/dist/config/runtime.js.map +1 -1
  16. package/dist/manager/run/persistence.d.ts +2 -1
  17. package/dist/manager/run/persistence.d.ts.map +1 -1
  18. package/dist/manager/run/persistence.js +3 -1
  19. package/dist/manager/run/persistence.js.map +1 -1
  20. package/dist/provider/__tests__/errors.test.d.ts +2 -0
  21. package/dist/provider/__tests__/errors.test.d.ts.map +1 -0
  22. package/dist/provider/__tests__/errors.test.js +61 -0
  23. package/dist/provider/__tests__/errors.test.js.map +1 -0
  24. package/dist/provider/__tests__/registry.test.d.ts +5 -0
  25. package/dist/provider/__tests__/registry.test.d.ts.map +1 -1
  26. package/dist/provider/__tests__/registry.test.js +186 -1
  27. package/dist/provider/__tests__/registry.test.js.map +1 -1
  28. package/dist/provider/errors.d.ts +108 -0
  29. package/dist/provider/errors.d.ts.map +1 -0
  30. package/dist/provider/errors.js +311 -0
  31. package/dist/provider/errors.js.map +1 -0
  32. package/dist/provider/index.d.ts +3 -1
  33. package/dist/provider/index.d.ts.map +1 -1
  34. package/dist/provider/index.js +2 -1
  35. package/dist/provider/index.js.map +1 -1
  36. package/dist/provider/registry.d.ts +81 -1
  37. package/dist/provider/registry.d.ts.map +1 -1
  38. package/dist/provider/registry.js +173 -7
  39. package/dist/provider/registry.js.map +1 -1
  40. package/dist/public-runtime.d.ts +11 -11
  41. package/dist/public-runtime.d.ts.map +1 -1
  42. package/dist/public-runtime.js +11 -11
  43. package/dist/public-runtime.js.map +1 -1
  44. package/dist/registry/tool/execute.d.ts.map +1 -1
  45. package/dist/registry/tool/execute.js +5 -2
  46. package/dist/registry/tool/execute.js.map +1 -1
  47. package/dist/registry/tool/execute.test.js +11 -0
  48. package/dist/registry/tool/execute.test.js.map +1 -1
  49. package/dist/runtime/query/__tests__/stream-recovery.test.js +54 -1
  50. package/dist/runtime/query/__tests__/stream-recovery.test.js.map +1 -1
  51. package/dist/runtime/query/iteration/phases/compaction-safe-cut.test.d.ts +32 -0
  52. package/dist/runtime/query/iteration/phases/compaction-safe-cut.test.d.ts.map +1 -0
  53. package/dist/runtime/query/iteration/phases/compaction-safe-cut.test.js +152 -0
  54. package/dist/runtime/query/iteration/phases/compaction-safe-cut.test.js.map +1 -0
  55. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -1
  56. package/dist/runtime/query/iteration/phases/compaction.js +52 -12
  57. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -1
  58. package/dist/runtime/query/iteration/stream-turn.d.ts.map +1 -1
  59. package/dist/runtime/query/iteration/stream-turn.js +11 -5
  60. package/dist/runtime/query/iteration/stream-turn.js.map +1 -1
  61. package/dist/runtime/query/result.d.ts.map +1 -1
  62. package/dist/runtime/query/result.js +11 -1
  63. package/dist/runtime/query/result.js.map +1 -1
  64. package/dist/tools/builtins/__tests__/edit.test.js +54 -0
  65. package/dist/tools/builtins/__tests__/edit.test.js.map +1 -1
  66. package/dist/tools/builtins/edit.d.ts +1 -1
  67. package/dist/tools/builtins/edit.d.ts.map +1 -1
  68. package/dist/tools/builtins/edit.js +11 -13
  69. package/dist/tools/builtins/edit.js.map +1 -1
  70. package/dist/tools/coordinator/__tests__/task-list.test.js +14 -0
  71. package/dist/tools/coordinator/__tests__/task-list.test.js.map +1 -1
  72. package/dist/tools/coordinator/agent.d.ts +6 -8
  73. package/dist/tools/coordinator/agent.d.ts.map +1 -1
  74. package/dist/tools/coordinator/agent.js.map +1 -1
  75. package/dist/tools/coordinator/index.d.ts.map +1 -1
  76. package/dist/tools/coordinator/index.js +11 -32
  77. package/dist/tools/coordinator/index.js.map +1 -1
  78. package/dist/tools/defineTool.d.ts +1 -0
  79. package/dist/tools/defineTool.d.ts.map +1 -1
  80. package/dist/tools/defineTool.js +1 -0
  81. package/dist/tools/defineTool.js.map +1 -1
  82. package/dist/types/provider/config.d.ts +33 -0
  83. package/dist/types/provider/config.d.ts.map +1 -1
  84. package/dist/types/provider/error.d.ts +22 -0
  85. package/dist/types/provider/error.d.ts.map +1 -0
  86. package/dist/types/provider/error.js +2 -0
  87. package/dist/types/provider/error.js.map +1 -0
  88. package/dist/types/provider/index.d.ts +2 -1
  89. package/dist/types/provider/index.d.ts.map +1 -1
  90. package/dist/types/run/entity.d.ts +2 -0
  91. package/dist/types/run/entity.d.ts.map +1 -1
  92. package/dist/types/run/events.d.ts +2 -0
  93. package/dist/types/run/events.d.ts.map +1 -1
  94. package/dist/types/run/events.js.map +1 -1
  95. package/dist/types/tool/index.d.ts +6 -0
  96. package/dist/types/tool/index.d.ts.map +1 -1
  97. package/package.json +1 -1
  98. package/src/compaction/__tests__/verifier-empty-reply.test.ts +96 -0
  99. package/src/compaction/verifier.ts +10 -1
  100. package/src/config/__tests__/compaction-budget-schema.test.ts +114 -0
  101. package/src/config/runtime.ts +20 -11
  102. package/src/manager/run/persistence.ts +3 -1
  103. package/src/provider/__tests__/errors.test.ts +85 -0
  104. package/src/provider/__tests__/registry.test.ts +266 -1
  105. package/src/provider/errors.ts +344 -0
  106. package/src/provider/index.ts +22 -1
  107. package/src/provider/registry.ts +202 -7
  108. package/src/public-runtime.ts +55 -10
  109. package/src/registry/tool/execute.test.ts +14 -0
  110. package/src/registry/tool/execute.ts +5 -2
  111. package/src/runtime/query/__tests__/stream-recovery.test.ts +64 -1
  112. package/src/runtime/query/iteration/phases/compaction-safe-cut.test.ts +186 -0
  113. package/src/runtime/query/iteration/phases/compaction.ts +54 -12
  114. package/src/runtime/query/iteration/stream-turn.ts +11 -6
  115. package/src/runtime/query/result.ts +11 -1
  116. package/src/tools/builtins/__tests__/edit.test.ts +76 -0
  117. package/src/tools/builtins/edit.ts +12 -12
  118. package/src/tools/coordinator/__tests__/task-list.test.ts +16 -0
  119. package/src/tools/coordinator/agent.ts +6 -8
  120. package/src/tools/coordinator/index.ts +11 -34
  121. package/src/tools/defineTool.ts +2 -0
  122. package/src/types/provider/config.ts +36 -0
  123. package/src/types/provider/error.ts +29 -0
  124. package/src/types/provider/index.ts +8 -0
  125. package/src/types/run/entity.ts +2 -0
  126. package/src/types/run/events.ts +7 -1
  127. package/src/types/tool/index.ts +6 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,104 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.4.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3fd2524: Normalize request-start and mid-stream failures across all seven provider
8
+ drivers with the new public `ProviderRequestError` taxonomy. Errors expose
9
+ `kind` (`throttle`, `network`, `auth`, `context_overflow`, `bad_request`, or
10
+ `server`), `providerId`, and optional `status` / `retryAfterMs`, with
11
+ `isProviderRequestError` available for structural narrowing across package
12
+ copies.
13
+
14
+ Provider error messages and metadata deliberately omit vendor response bodies,
15
+ URLs, messages, and causes because upstream errors can echo credentials. HTTP
16
+ dialect-mismatch diagnostics now keep only the endpoint origin and status.
17
+ Caller-owned aborts remain unchanged instead of being reclassified.
18
+
19
+ The runtime preserves the classified error through streaming and publishes its
20
+ safe metadata as `Run.lastProviderError` and
21
+ `run_failed.providerError`. Bedrock stream-exception events and provider
22
+ iterator/SSE failures no longer appear as clean end-of-stream.
23
+
24
+ `retryAfterMs` is metadata only; this change does not add retries or alter vendor
25
+ SDK retry settings. Provider packages now require `@namzu/sdk >=1.3.0`, the
26
+ first SDK release containing these runtime helpers and types.
27
+
28
+ Ollama now maps `done_reason: "length"` truthfully so runtime continuation can
29
+ run. LM Studio treats content-free `contextLengthReached` as context overflow,
30
+ while preserving `"length"` after partial content, and creates its WebSocket
31
+ client lazily on first use.
32
+
33
+ ### Patch Changes
34
+
35
+ - c7cf4c7: Compaction can no longer delete the turn it is compacting.
36
+
37
+ The recent-window boundary was snapped FORWARD to avoid splitting a tool pair,
38
+ but that walk skips leading `tool` messages with no stop short of the end of the
39
+ transcript. Whenever the whole suffix from the naive boundary is `tool` messages —
40
+ one assistant turn fanning out at least `keepRecentMessages` parallel calls,
41
+ measured at the start of the very next iteration, which is exactly where the
42
+ compaction check runs — the boundary landed on `messages.length`, the recent
43
+ window came back empty, and the rebuilt transcript held no non-system message at
44
+ all. The model was then asked to answer a conversation whose last turn, including
45
+ the user's own message, had been removed. The existing older-message floor guard
46
+ cannot catch it: in that shape the older half is the whole transcript.
47
+
48
+ The boundary is now the largest safe one AT OR BELOW naive, so a pass never
49
+ removes more than the naive cut would and at least `keepRecentMessages` original
50
+ messages always survive verbatim. When no safe boundary exists the pass is
51
+ skipped and the transcript is left intact — one iteration of context headroom is
52
+ cheaper than the live turn, and the condition clears itself as soon as the next
53
+ assistant message moves the boundary past the tool block. The same change stops
54
+ the leading system prompts being duplicated into the recent window when the naive
55
+ boundary lands inside the system prefix. `findSafeTrimIndex` is unchanged and is
56
+ reused as the safety predicate.
57
+
58
+ Two smaller silent losses in the same area:
59
+
60
+ An empty verification reply is now treated like `COMPLETE`. A truncated turn, a
61
+ refusal, or an exhausted `llmVerificationMaxTokens` produced an empty string,
62
+ which fell through to the append path and stamped a bare
63
+ `## LLM Verification Additions` heading with nothing under it — an empty promise
64
+ that then rode in every subsequent system prompt for the rest of the run.
65
+
66
+ Every compaction count is `z.number().int().positive()` instead of
67
+ `z.number().positive()`. Zod's base number check rejects only non-numbers and
68
+ `NaN`, so `Infinity` and fractional values both parsed. `Infinity` was the
69
+ dangerous one: it disarms the budget it guards rather than failing, so
70
+ `convoTextBudget: Infinity` made `truncateMessages` a no-op and the entire older
71
+ history was pasted into the verification prompt.
72
+
73
+ - f002c44: Add tool-specific validation recovery guidance and use it to show complete,
74
+ safe `edit` call shapes when a model omits `path` or supplies an invalid
75
+ `insertLine`.
76
+ - e9c974c: Remove the model-facing `cancel_task` coordinator tool from the default
77
+ blocking worker protocol. A supervisor learns a `create_task` id only after
78
+ that worker is terminal, and the old tool manufactured a successful
79
+ "cancelled" result even when the gateway silently ignored a missing or
80
+ terminal id. Host-owned run interruption remains available through the task
81
+ gateway.
82
+
83
+ Tighten the builtin `edit` contract so `insertLine` accepts only a
84
+ non-negative JSON integer or the exact string `"end"`. Headings, anchors,
85
+ numeric strings, `null`, and empty strings are rejected before execution;
86
+ schema-bypassing callers receive the same refusal. This prevents `null` and
87
+ empty values from being coerced to line `0` and silently inserting content at
88
+ the beginning of a file.
89
+
90
+ ## 1.3.0
91
+
92
+ ### Minor Changes
93
+
94
+ - d7c683e: Add lazy provider registration: `ProviderRegistry.registerLazy(type, loader, options?)` plus async construction via `ProviderRegistry.createAsync()` / `createProviderAsync()`.
95
+
96
+ Hosts that must not bundle every provider client into every entrypoint can now register a dynamic-import loader instead of an eagerly imported class — no more hand-rolled construction switches outside the registry. Registration never invokes the loader; the first `createAsync()` awaits it, validates the resolved `{ create }` module, and caches the factory. Concurrent first-creates share a single in-flight load, and only success is cached: a rejected load surfaces as the new `LazyProviderLoadError` (original failure on `cause`) and the next create retries.
97
+
98
+ Capabilities integrate with capability negotiation: an optional `options.capabilities` hint lets `getCapabilities(type)` answer before the provider is loaded (no hint ⇒ permissive default), the loaded module's declared capabilities replace the hint, and the constructed instance's own `LLMProvider.capabilities` remain what the query runtime negotiates against.
99
+
100
+ Lazy types are deliberately not constructible through the sync `create()` / `createProvider()` — those throw the new `LazyProviderSyncCreateError` deterministically so sync behavior never depends on load timing. Existing eager `register()` / `create()` behavior is unchanged.
101
+
3
102
  ## 1.2.0
4
103
 
5
104
  ### Minor Changes
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The EMPTY VERIFIER REPLY.
3
+ *
4
+ * `buildVerifiedSummary` treats only the literal `COMPLETE` as "nothing to add".
5
+ * Anything else is appended under a `## LLM Verification Additions` heading —
6
+ * including the empty string, which is what a truncated turn, a refusal, or an
7
+ * exhausted `llmVerificationMaxTokens` produces. The result is a heading with
8
+ * nothing under it, and because the summary becomes a leading system message it
9
+ * then rides in EVERY subsequent prompt of the run.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=verifier-empty-reply.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifier-empty-reply.test.d.ts","sourceRoot":"","sources":["../../../src/compaction/__tests__/verifier-empty-reply.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * The EMPTY VERIFIER REPLY.
3
+ *
4
+ * `buildVerifiedSummary` treats only the literal `COMPLETE` as "nothing to add".
5
+ * Anything else is appended under a `## LLM Verification Additions` heading —
6
+ * including the empty string, which is what a truncated turn, a refusal, or an
7
+ * exhausted `llmVerificationMaxTokens` produces. The result is a heading with
8
+ * nothing under it, and because the summary becomes a leading system message it
9
+ * then rides in EVERY subsequent prompt of the run.
10
+ */
11
+ import { describe, expect, it } from 'vitest';
12
+ import { CompactionConfigSchema } from '../../config/runtime.js';
13
+ import { createAssistantMessage, createUserMessage, } from '../../types/message/index.js';
14
+ import { WorkingStateManager } from '../manager.js';
15
+ import { buildVerifiedSummary } from '../verifier.js';
16
+ const ADDITIONS_HEADING = '## LLM Verification Additions';
17
+ function makeProvider(chunks) {
18
+ const calls = [];
19
+ return {
20
+ id: 'mock',
21
+ name: 'mock',
22
+ calls,
23
+ chatStream(params) {
24
+ calls.push(params);
25
+ return (async function* () {
26
+ for (const c of chunks)
27
+ yield c;
28
+ })();
29
+ },
30
+ };
31
+ }
32
+ function makeManager() {
33
+ const config = CompactionConfigSchema.parse({ llmVerification: true });
34
+ const manager = new WorkingStateManager(config);
35
+ manager.setTask('write the quarterly report');
36
+ manager.addDecision('built the report as .docx');
37
+ return { config, manager };
38
+ }
39
+ const OLDER = [
40
+ createUserMessage('write the quarterly report'),
41
+ createAssistantMessage('on it — reading the source numbers first'),
42
+ ];
43
+ describe('buildVerifiedSummary — empty verifier reply', () => {
44
+ it('does not append an empty "Additions" section when the verifier returns nothing', async () => {
45
+ const { config, manager } = makeManager();
46
+ const provider = makeProvider([]);
47
+ const result = await buildVerifiedSummary(manager, OLDER, provider, config);
48
+ expect(result).not.toContain(ADDITIONS_HEADING);
49
+ });
50
+ it('does not append an empty "Additions" section when the turn is truncated by maxTokens', async () => {
51
+ const { config, manager } = makeManager();
52
+ // `length` finish reason with no content — llmVerificationMaxTokens exhausted.
53
+ const provider = makeProvider([{ id: 'c1', delta: { content: '' }, finishReason: 'length' }]);
54
+ const result = await buildVerifiedSummary(manager, OLDER, provider, config);
55
+ expect(result).not.toContain(ADDITIONS_HEADING);
56
+ });
57
+ it('does not append an "Additions" section for a whitespace-only reply', async () => {
58
+ const { config, manager } = makeManager();
59
+ const provider = makeProvider([{ id: 'c1', delta: { content: ' \n\n ' } }]);
60
+ const result = await buildVerifiedSummary(manager, OLDER, provider, config);
61
+ expect(result).not.toContain(ADDITIONS_HEADING);
62
+ });
63
+ it('still appends real additions', async () => {
64
+ const { config, manager } = makeManager();
65
+ const provider = makeProvider([
66
+ { id: 'c1', delta: { content: '- the user asked for EUR, not USD' } },
67
+ ]);
68
+ const result = await buildVerifiedSummary(manager, OLDER, provider, config);
69
+ expect(result).toContain(ADDITIONS_HEADING);
70
+ expect(result).toContain('EUR, not USD');
71
+ });
72
+ });
73
+ //# sourceMappingURL=verifier-empty-reply.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verifier-empty-reply.test.js","sourceRoot":"","sources":["../../../src/compaction/__tests__/verifier-empty-reply.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAEN,sBAAsB,EACtB,iBAAiB,GACjB,MAAM,8BAA8B,CAAA;AAIrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAErD,MAAM,iBAAiB,GAAG,+BAA+B,CAAA;AAEzD,SAAS,YAAY,CAAC,MAAqB;IAC1C,MAAM,KAAK,GAA2B,EAAE,CAAA;IACxC,OAAO;QACN,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,KAAK;QACL,UAAU,CAAC,MAA4B;YACtC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAClB,OAAO,CAAC,KAAK,SAAS,CAAC;gBACtB,KAAK,MAAM,CAAC,IAAI,MAAM;oBAAE,MAAM,CAAC,CAAA;YAChC,CAAC,CAAC,EAAE,CAAA;QACL,CAAC;KACD,CAAA;AACF,CAAC;AAED,SAAS,WAAW;IACnB,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;IACtE,MAAM,OAAO,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAA;IAC/C,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAA;IAC7C,OAAO,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAA;IAChD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;AAC3B,CAAC;AAED,MAAM,KAAK,GAAc;IACxB,iBAAiB,CAAC,4BAA4B,CAAC;IAC/C,sBAAsB,CAAC,0CAA0C,CAAC;CAClE,CAAA;AAED,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IAC5D,EAAE,CAAC,gFAAgF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAA;QAEjC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE3E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sFAAsF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAA;QACzC,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QAE7F,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE3E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAA;QAE9E,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE3E,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,KAAK,IAAI,EAAE;QAC7C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE,CAAA;QACzC,MAAM,QAAQ,GAAG,YAAY,CAAC;YAC7B,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,EAAE;SACrE,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QAE3E,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/compaction/verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAwCvD,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,mBAAmB,EAC5B,aAAa,EAAE,OAAO,EAAE,EACxB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CA4CjB"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../src/compaction/verifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAE5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAwCvD,wBAAsB,oBAAoB,CACzC,OAAO,EAAE,mBAAmB,EAC5B,aAAa,EAAE,OAAO,EAAE,EACxB,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,gBAAgB,GACtB,OAAO,CAAC,MAAM,CAAC,CAqDjB"}
@@ -61,7 +61,16 @@ export async function buildVerifiedSummary(manager, olderMessages, provider, con
61
61
  temperature: 0,
62
62
  }));
63
63
  const responseText = response.message.content?.trim() ?? '';
64
- if (responseText === 'COMPLETE') {
64
+ // `COMPLETE` is the verifier saying it found nothing to add. An EMPTY reply
65
+ // says the same thing by accident — a turn truncated at
66
+ // `llmVerificationMaxTokens`, a refusal, or a provider that returned no
67
+ // content at all — and used to fall through to the append below, stamping a
68
+ // bare `## LLM Verification Additions` heading with nothing under it. That
69
+ // empty promise then rides in the compaction summary, and therefore in every
70
+ // subsequent system prompt, for the rest of the run. A heading with no body
71
+ // is not a verification result; treat a silent verifier the same as one that
72
+ // had nothing to say.
73
+ if (responseText === 'COMPLETE' || responseText.length === 0) {
65
74
  return serialized;
66
75
  }
67
76
  return `${serialized}\n\n## LLM Verification Additions\n\n${responseText}`;
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/compaction/verifier.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAIhD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEhD,MAAM,mBAAmB,GAAG;;;;;;;;;;;2KAW+I,CAAA;AAE3K,SAAS,gBAAgB,CAAC,QAAmB,EAAE,MAAc;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,SAAS,GAAG,CAAC,CAAA;IAEjB,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,SAAQ;QAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAA;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAA;QAE3B,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;YACpD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;YACzD,CAAC;YACD,MAAK;QACN,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC,CAAA;QACjC,SAAS,IAAI,MAAM,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAC5C,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,OAA4B,EAC5B,aAAwB,EACxB,QAAqB,EACrB,MAAwB;IAExB,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;IAErD,IAAI,OAAO,CAAC,SAAS,EAAE,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QACtD,OAAO,UAAU,CAAA;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAA;IAClB,CAAC;IAED,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IAEnF,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,EAAE,CAAC;QACjC,OAAO,UAAU,CAAA;IAClB,CAAC;IAED,MAAM,oBAAoB,GAAc;QACvC;YACC,IAAI,EAAE,QAAiB;YACvB,OAAO,EAAE,mBAAmB;SAC5B;QACD;YACC,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE,0BAA0B,UAAU,kCAAkC,mBAAmB,EAAE;SACpG;KACD,CAAA;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAC7B,QAAQ,CAAC,UAAU,CAAC;QACnB,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,oBAAoB;QAC9B,SAAS,EAAE,MAAM,CAAC,wBAAwB;QAC1C,WAAW,EAAE,CAAC;KACd,CAAC,CACF,CAAA;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;IAE3D,IAAI,YAAY,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,UAAU,CAAA;IAClB,CAAC;IAED,OAAO,GAAG,UAAU,wCAAwC,YAAY,EAAE,CAAA;AAC3E,CAAC"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../../src/compaction/verifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The BUDGET SCHEMA.
3
+ *
4
+ * Every compaction count used to be `z.number().positive()`. Zod's base number
5
+ * check rejects only non-numbers and `NaN`, so `Infinity` and `0.5` both parsed.
6
+ * These are counts of messages, characters, sentences and tokens: a non-integer
7
+ * is meaningless, and `Infinity` does something worse than being meaningless —
8
+ * it turns a bound into a no-op rather than an error. `truncateMessages` compares
9
+ * `charCount > budget`, never true against `Infinity`, so the WHOLE older history
10
+ * was pasted into the verification prompt.
11
+ *
12
+ * They are `.int().positive()` now. `Number.isInteger` is false for `Infinity`
13
+ * and for any fraction, so one validator closes both. These tests are the guard:
14
+ * every count is checked against both illegal shapes, and the documented
15
+ * defaults are pinned so tightening the validator cannot have moved them.
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=compaction-budget-schema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-budget-schema.test.d.ts","sourceRoot":"","sources":["../../../src/config/__tests__/compaction-budget-schema.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * The BUDGET SCHEMA.
3
+ *
4
+ * Every compaction count used to be `z.number().positive()`. Zod's base number
5
+ * check rejects only non-numbers and `NaN`, so `Infinity` and `0.5` both parsed.
6
+ * These are counts of messages, characters, sentences and tokens: a non-integer
7
+ * is meaningless, and `Infinity` does something worse than being meaningless —
8
+ * it turns a bound into a no-op rather than an error. `truncateMessages` compares
9
+ * `charCount > budget`, never true against `Infinity`, so the WHOLE older history
10
+ * was pasted into the verification prompt.
11
+ *
12
+ * They are `.int().positive()` now. `Number.isInteger` is false for `Infinity`
13
+ * and for any fraction, so one validator closes both. These tests are the guard:
14
+ * every count is checked against both illegal shapes, and the documented
15
+ * defaults are pinned so tightening the validator cannot have moved them.
16
+ */
17
+ import { describe, expect, it } from 'vitest';
18
+ import { WorkingStateManager } from '../../compaction/manager.js';
19
+ import { buildVerifiedSummary } from '../../compaction/verifier.js';
20
+ import { createUserMessage } from '../../types/message/index.js';
21
+ import { CompactionConfigSchema, RuntimeConfigSchema } from '../runtime.js';
22
+ /** Every integer count on CompactionConfigSchema. */
23
+ const COUNT_FIELDS = [
24
+ 'contextWindowTokens',
25
+ 'keepRecentMessages',
26
+ 'maxToolResults',
27
+ 'maxListSize',
28
+ 'llmVerificationMaxTokens',
29
+ 'richStateThreshold',
30
+ 'convoTextBudget',
31
+ 'maxSentencesPerTurn',
32
+ 'maxCharsPerNote',
33
+ 'maxCharsPerRequirement',
34
+ 'maxCharsPerTask',
35
+ ];
36
+ describe('CompactionConfigSchema — count fields', () => {
37
+ for (const field of COUNT_FIELDS) {
38
+ it(`rejects Infinity for ${field}`, () => {
39
+ expect(() => CompactionConfigSchema.parse({ [field]: Number.POSITIVE_INFINITY })).toThrow();
40
+ });
41
+ it(`rejects a fractional value for ${field}`, () => {
42
+ expect(() => CompactionConfigSchema.parse({ [field]: 0.5 })).toThrow();
43
+ });
44
+ }
45
+ it('rejects Infinity through the RuntimeConfigSchema envelope', () => {
46
+ expect(() => RuntimeConfigSchema.parse({ compaction: { convoTextBudget: Number.POSITIVE_INFINITY } })).toThrow();
47
+ });
48
+ it('still accepts the documented defaults', () => {
49
+ const parsed = CompactionConfigSchema.parse({});
50
+ expect(parsed.convoTextBudget).toBe(12_000);
51
+ expect(parsed.keepRecentMessages).toBe(4);
52
+ });
53
+ });
54
+ /**
55
+ * Why the schema is the only defence, and what that leaves open.
56
+ *
57
+ * `truncateMessages` bounds the verification prompt with `charCount > budget`,
58
+ * which is never true against `Infinity` — that is the consequence the schema
59
+ * fix above exists to prevent, and it can no longer be reached THROUGH the
60
+ * schema. It is still reachable by a host that hand-builds a `CompactionConfig`
61
+ * object literal, because the inferred type is plain `number`; that is a stated
62
+ * limitation, not a covered case. No silent clamp was added inside
63
+ * `truncateMessages` — a budget that quietly repairs an illegal value hides the
64
+ * caller's bug instead of surfacing it, and the schema is where the boundary
65
+ * belongs.
66
+ *
67
+ * What this test does pin: with a LEGAL budget the prompt really is bounded, so
68
+ * the truncation the schema now guarantees is actually performed.
69
+ */
70
+ describe('truncateMessages bounds the verification prompt at a legal budget', () => {
71
+ it('does not paste the entire older history into the verification prompt', async () => {
72
+ const config = CompactionConfigSchema.parse({
73
+ llmVerification: true,
74
+ convoTextBudget: 12_000,
75
+ });
76
+ const manager = new WorkingStateManager(config);
77
+ manager.setTask('write the quarterly report');
78
+ const calls = [];
79
+ const provider = {
80
+ id: 'mock',
81
+ name: 'mock',
82
+ chatStream(params) {
83
+ calls.push(params);
84
+ return (async function* () {
85
+ yield { id: 'c1', delta: { content: 'COMPLETE' } };
86
+ })();
87
+ },
88
+ };
89
+ // ~200 KB of older history — far past any sane verification budget.
90
+ const older = Array.from({ length: 200 }, (_, i) => createUserMessage(`turn ${i} ${'y'.repeat(1000)}`));
91
+ await buildVerifiedSummary(manager, older, provider, config);
92
+ const promptChars = (calls[0]?.messages ?? []).reduce((n, m) => n + (m.content?.length ?? 0), 0);
93
+ expect(promptChars).toBeLessThan(100_000);
94
+ });
95
+ });
96
+ //# sourceMappingURL=compaction-budget-schema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-budget-schema.test.js","sourceRoot":"","sources":["../../../src/config/__tests__/compaction-budget-schema.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/config/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;GAUvB,CAAA;AAEZ,eAAO,MAAM,sBAAsB;;IAElC;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeF,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAKpC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAnD/B;;;;;;;WAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyDF,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAiC,CAAA"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/config/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,EAAE,mBAAmB,EAAE,CAAA;AAE9B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;GAUvB,CAAA;AAEZ,eAAO,MAAM,sBAAsB;;IAElC;;;;;;;OAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBF,CAAA;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAO/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAEjE,eAAO,MAAM,uBAAuB;;;;;;;;;EAGlC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;EAKpC,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA5D/B;;;;;;;WAOG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkEF,CAAA;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAiC,CAAA"}
@@ -23,20 +23,29 @@ export const CompactionConfigSchema = z.object({
23
23
  * `tokenBudget` unlimited (0) set this so compaction fires on
24
24
  * window-pressure instead of being a silent no-op.
25
25
  */
26
- contextWindowTokens: z.number().positive().optional(),
26
+ // Every field below counts something — tokens, messages, characters,
27
+ // sentences. `z.number().positive()` was the wrong validator for all of them:
28
+ // Zod's base number check rejects only non-numbers and NaN, so `Infinity` and
29
+ // `0.5` both passed. `Infinity` is the dangerous one, because it turns a bound
30
+ // into a no-op rather than an error — `convoTextBudget: Infinity` makes the
31
+ // verifier's `charCount > budget` test never true, so `truncateMessages` stops
32
+ // truncating and the WHOLE history is pasted into the verification prompt.
33
+ // A fraction is merely nonsense (`keepRecentMessages: 2.5`). `.int()` rejects
34
+ // both: `Number.isInteger` is false for Infinity and for any fraction.
35
+ contextWindowTokens: z.number().int().positive().optional(),
27
36
  triggerThreshold: z.number().min(0).max(1).default(0.7),
28
37
  resetThreshold: z.number().min(0).max(1).default(0.4),
29
- keepRecentMessages: z.number().positive().default(4),
30
- maxToolResults: z.number().positive().default(30),
31
- maxListSize: z.number().positive().default(25),
38
+ keepRecentMessages: z.number().int().positive().default(4),
39
+ maxToolResults: z.number().int().positive().default(30),
40
+ maxListSize: z.number().int().positive().default(25),
32
41
  llmVerification: z.boolean().default(true),
33
- llmVerificationMaxTokens: z.number().positive().default(2048),
34
- richStateThreshold: z.number().positive().default(15),
35
- convoTextBudget: z.number().positive().default(12_000),
36
- maxSentencesPerTurn: z.number().positive().default(5),
37
- maxCharsPerNote: z.number().positive().default(500),
38
- maxCharsPerRequirement: z.number().positive().default(300),
39
- maxCharsPerTask: z.number().positive().default(400),
42
+ llmVerificationMaxTokens: z.number().int().positive().default(2048),
43
+ richStateThreshold: z.number().int().positive().default(15),
44
+ convoTextBudget: z.number().int().positive().default(12_000),
45
+ maxSentencesPerTurn: z.number().int().positive().default(5),
46
+ maxCharsPerNote: z.number().int().positive().default(500),
47
+ maxCharsPerRequirement: z.number().int().positive().default(300),
48
+ maxCharsPerTask: z.number().int().positive().default(400),
40
49
  });
41
50
  export const AgentBusConfigSchema = z.object({
42
51
  enabled: z.boolean().default(false),
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/config/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/config/runtime.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { RunDiskStore } from '../../store/run/disk.js';
2
2
  import { type CostInfo, type TokenUsage } from '../../types/common/index.js';
3
3
  import type { RunId, SessionId, TenantId } from '../../types/ids/index.js';
4
4
  import type { Message } from '../../types/message/index.js';
5
+ import type { ProviderErrorInfo } from '../../types/provider/index.js';
5
6
  import type { CheckpointRunScope, CheckpointStore } from '../../types/run/checkpoint-store.js';
6
7
  import type { EmergencySaveData } from '../../types/run/emergency.js';
7
8
  import type { Run, RunPersistenceConfig, StopReason } from '../../types/run/index.js';
@@ -44,7 +45,7 @@ export declare class RunPersistence {
44
45
  init(): Promise<void>;
45
46
  markRunning(): void;
46
47
  markCompleted(stopReason?: StopReason): void;
47
- markFailed(error: string): void;
48
+ markFailed(error: string, providerError?: ProviderErrorInfo): void;
48
49
  markCancelled(): void;
49
50
  setStopReason(reason: StopReason): void;
50
51
  setLastError(error: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAwB,MAAM,6BAA6B,CAAA;AAClG,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAKrE,qBAAa,cAAc;IAC1B,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAE1B,MAAM,EAAE,oBAAoB;IAyCxC,IAAI,EAAE,IAAI,KAAK,CAEd;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,MAAM,sDAET;IAED,IAAI,UAAU,2BAEb;IAED,IAAI,QAAQ,IAAI,OAAO,EAAE,CAExB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC;IAIvB,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC;IAI3B,WAAW,IAAI,YAAY;IAI3B;;;;;OAKG;IACH,kBAAkB,IAAI,eAAe;IAIrC,sEAAsE;IACtE,WAAW,IAAI,kBAAkB;IAUjC,SAAS,IAAI,MAAM,GAAG,IAAI;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,WAAW,IAAI,IAAI;IAInB,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAS5C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO/B,aAAa,IAAI,IAAI;IAMrB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAIvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,kBAAkB,IAAI,MAAM;IAK5B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQxC,OAAO,CAAC,aAAa;IAqCrB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAchD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc9B"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAwB,MAAM,6BAA6B,CAAA;AAClG,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAA;AAC9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,EAAE,GAAG,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AAKrE,qBAAa,cAAc;IAC1B,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAC,CAAc;IAC9B,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;gBAE1B,MAAM,EAAE,oBAAoB;IAyCxC,IAAI,EAAE,IAAI,KAAK,CAEd;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,IAAI,MAAM,sDAET;IAED,IAAI,UAAU,2BAEb;IAED,IAAI,QAAQ,IAAI,OAAO,EAAE,CAExB;IAED,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC;IAIvB,UAAU,IAAI,QAAQ,CAAC,GAAG,CAAC;IAI3B,WAAW,IAAI,YAAY;IAI3B;;;;;OAKG;IACH,kBAAkB,IAAI,eAAe;IAIrC,sEAAsE;IACtE,WAAW,IAAI,kBAAkB;IAUjC,SAAS,IAAI,MAAM,GAAG,IAAI;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,WAAW,IAAI,IAAI;IAInB,aAAa,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAS5C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAQlE,aAAa,IAAI,IAAI;IAMrB,aAAa,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAIvC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,kBAAkB,IAAI,MAAM;IAK5B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAQxC,OAAO,CAAC,aAAa;IAqCrB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB;IAchD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc9B"}
@@ -131,10 +131,12 @@ export class RunPersistence {
131
131
  this.run.endedAt = Date.now();
132
132
  this.resolveResult();
133
133
  }
134
- markFailed(error) {
134
+ markFailed(error, providerError) {
135
135
  this.run.status = 'failed';
136
136
  this.run.stopReason = 'error';
137
137
  this.run.lastError = error;
138
+ if (providerError)
139
+ this.run.lastProviderError = providerError;
138
140
  this.run.endedAt = Date.now();
139
141
  }
140
142
  markCancelled() {
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/manager/run/persistence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/provider/__tests__/errors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,61 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { ProviderRequestError, bodySaysContextOverflow, classifyProviderHttpStatus, isCallerAbortError, isProviderRequestError, parseRetryAfterMs, providerVendorError, } from '../errors.js';
3
+ describe('provider error taxonomy', () => {
4
+ it('classifies only context-specific limit messages as context overflow', () => {
5
+ expect(bodySaysContextOverflow('input token count exceeds the maximum for this model')).toBe(true);
6
+ expect(bodySaysContextOverflow('tool count exceeds the maximum allowed')).toBe(false);
7
+ expect(bodySaysContextOverflow('reduce the tool list length')).toBe(false);
8
+ });
9
+ it('does not treat a generic HTTP 413 as model context overflow', () => {
10
+ expect(classifyProviderHttpStatus(413, 'request body too large at reverse proxy')).toBe('bad_request');
11
+ expect(classifyProviderHttpStatus(413, 'prompt is too long for requested model')).toBe('context_overflow');
12
+ });
13
+ it('parses both Retry-After forms and rejects stale or invalid values', () => {
14
+ expect(parseRetryAfterMs('2', 0)).toBe(2000);
15
+ expect(parseRetryAfterMs('Thu, 01 Jan 1970 00:00:05 GMT', 1000)).toBe(4000);
16
+ expect(parseRetryAfterMs('Thu, 01 Jan 1970 00:00:01 GMT', 1000)).toBeUndefined();
17
+ expect(parseRetryAfterMs('later', 0)).toBeUndefined();
18
+ });
19
+ it('drops the vendor object and its non-enumerable cause entirely', () => {
20
+ const secret = 'sk-FAKE-DO-NOT-LOG';
21
+ const vendor = new Error(`invalid api key ${secret}`, {
22
+ cause: new Error(`response body ${secret}`),
23
+ });
24
+ Object.assign(vendor, { status: 401 });
25
+ const classified = providerVendorError({
26
+ providerId: 'test-provider',
27
+ error: vendor,
28
+ });
29
+ expect(classified).toMatchObject({
30
+ name: 'ProviderRequestError',
31
+ kind: 'auth',
32
+ status: 401,
33
+ providerId: 'test-provider',
34
+ });
35
+ expect(classified.message).not.toContain(secret);
36
+ expect('cause' in classified).toBe(false);
37
+ });
38
+ it('recognizes a caller abort only when that signal actually aborted', () => {
39
+ const controller = new AbortController();
40
+ const sdkAbort = Object.assign(new Error('request aborted'), {
41
+ name: 'APIUserAbortError',
42
+ });
43
+ expect(isCallerAbortError(sdkAbort, controller.signal)).toBe(false);
44
+ controller.abort(new Error('user stopped'));
45
+ expect(isCallerAbortError(sdkAbort, controller.signal)).toBe(true);
46
+ expect(isCallerAbortError(controller.signal.reason, controller.signal)).toBe(true);
47
+ });
48
+ it('requires the complete structural contract when SDK copies differ', () => {
49
+ const classified = new ProviderRequestError({
50
+ kind: 'server',
51
+ providerId: 'test-provider',
52
+ });
53
+ expect(isProviderRequestError(classified)).toBe(true);
54
+ const impostor = Object.assign(new Error('not classified'), {
55
+ name: 'ProviderRequestError',
56
+ kind: 'anything',
57
+ });
58
+ expect(isProviderRequestError(impostor)).toBe(false);
59
+ });
60
+ });
61
+ //# sourceMappingURL=errors.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/provider/__tests__/errors.test.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,14 @@ interface TestProviderConfig {
2
2
  type: 'test';
3
3
  value?: string;
4
4
  }
5
+ interface LazyTestProviderConfig {
6
+ type: 'lazytest';
7
+ value?: string;
8
+ }
5
9
  declare module '../../types/provider/config.js' {
6
10
  interface ProviderConfigRegistry {
7
11
  test: TestProviderConfig;
12
+ lazytest: LazyTestProviderConfig;
8
13
  }
9
14
  }
10
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../src/provider/__tests__/registry.test.ts"],"names":[],"mappings":"AAaA,UAAU,kBAAkB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,OAAO,QAAQ,gCAAgC,CAAC;IAC/C,UAAU,sBAAsB;QAC/B,IAAI,EAAE,kBAAkB,CAAA;KACxB;CACD"}
1
+ {"version":3,"file":"registry.test.d.ts","sourceRoot":"","sources":["../../../src/provider/__tests__/registry.test.ts"],"names":[],"mappings":"AAoBA,UAAU,kBAAkB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,UAAU,sBAAsB;IAC/B,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,OAAO,QAAQ,gCAAgC,CAAC;IAC/C,UAAU,sBAAsB;QAC/B,IAAI,EAAE,kBAAkB,CAAA;QACxB,QAAQ,EAAE,sBAAsB,CAAA;KAChC;CACD"}