@pellux/goodvibes-sdk 0.33.38 → 0.34.1

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 (199) hide show
  1. package/dist/contracts/artifacts/operator-contract.json +1383 -4
  2. package/dist/events/workflows.d.ts +4 -0
  3. package/dist/events/workflows.d.ts.map +1 -1
  4. package/dist/platform/agents/message-bus-core.d.ts +11 -0
  5. package/dist/platform/agents/message-bus-core.d.ts.map +1 -1
  6. package/dist/platform/agents/message-bus-core.js +28 -21
  7. package/dist/platform/agents/orchestrator-runner.d.ts.map +1 -1
  8. package/dist/platform/agents/orchestrator-runner.js +6 -4
  9. package/dist/platform/agents/wrfc-config.d.ts.map +1 -1
  10. package/dist/platform/agents/wrfc-config.js +16 -10
  11. package/dist/platform/agents/wrfc-controller.d.ts +26 -0
  12. package/dist/platform/agents/wrfc-controller.d.ts.map +1 -1
  13. package/dist/platform/agents/wrfc-controller.js +134 -138
  14. package/dist/platform/agents/wrfc-runtime-events.d.ts +1 -0
  15. package/dist/platform/agents/wrfc-runtime-events.d.ts.map +1 -1
  16. package/dist/platform/agents/wrfc-runtime-events.js +4 -1
  17. package/dist/platform/automation/delivery-manager.d.ts.map +1 -1
  18. package/dist/platform/automation/delivery-manager.js +1 -6
  19. package/dist/platform/batch/manager.d.ts.map +1 -1
  20. package/dist/platform/batch/manager.js +1 -3
  21. package/dist/platform/channels/policy-manager.d.ts.map +1 -1
  22. package/dist/platform/channels/policy-manager.js +1 -3
  23. package/dist/platform/channels/reply-pipeline.d.ts.map +1 -1
  24. package/dist/platform/channels/reply-pipeline.js +4 -0
  25. package/dist/platform/config/schema-domain-core.d.ts +1 -1
  26. package/dist/platform/config/schema-domain-core.d.ts.map +1 -1
  27. package/dist/platform/config/schema-domain-core.js +12 -12
  28. package/dist/platform/config/schema-domain-runtime.d.ts +1 -1
  29. package/dist/platform/config/schema-domain-runtime.d.ts.map +1 -1
  30. package/dist/platform/config/schema-domain-runtime.js +19 -18
  31. package/dist/platform/config/schema-domain-surfaces.d.ts +1 -1
  32. package/dist/platform/config/schema-domain-surfaces.d.ts.map +1 -1
  33. package/dist/platform/config/schema-domain-surfaces.js +4 -3
  34. package/dist/platform/config/schema-shared.d.ts +6 -0
  35. package/dist/platform/config/schema-shared.d.ts.map +1 -1
  36. package/dist/platform/config/schema-shared.js +21 -1
  37. package/dist/platform/control-plane/approval-broker.d.ts.map +1 -1
  38. package/dist/platform/control-plane/approval-broker.js +1 -3
  39. package/dist/platform/control-plane/method-catalog-calendar.d.ts +9 -0
  40. package/dist/platform/control-plane/method-catalog-calendar.d.ts.map +1 -0
  41. package/dist/platform/control-plane/method-catalog-calendar.js +117 -0
  42. package/dist/platform/control-plane/method-catalog-channels.d.ts.map +1 -1
  43. package/dist/platform/control-plane/method-catalog-channels.js +174 -0
  44. package/dist/platform/control-plane/method-catalog-email.d.ts +9 -0
  45. package/dist/platform/control-plane/method-catalog-email.d.ts.map +1 -0
  46. package/dist/platform/control-plane/method-catalog-email.js +101 -0
  47. package/dist/platform/control-plane/method-catalog.d.ts.map +1 -1
  48. package/dist/platform/control-plane/method-catalog.js +4 -0
  49. package/dist/platform/control-plane/session-broker-state.d.ts.map +1 -1
  50. package/dist/platform/control-plane/session-broker-state.js +1 -3
  51. package/dist/platform/core/compaction-sections.d.ts +5 -1
  52. package/dist/platform/core/compaction-sections.d.ts.map +1 -1
  53. package/dist/platform/core/compaction-sections.js +73 -66
  54. package/dist/platform/core/context-compaction.d.ts.map +1 -1
  55. package/dist/platform/core/context-compaction.js +9 -16
  56. package/dist/platform/core/orchestrator-context-runtime.d.ts +2 -2
  57. package/dist/platform/core/orchestrator-context-runtime.d.ts.map +1 -1
  58. package/dist/platform/core/orchestrator-context-runtime.js +24 -21
  59. package/dist/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
  60. package/dist/platform/core/orchestrator-tool-runtime.js +2 -1
  61. package/dist/platform/core/session-lineage.d.ts +2 -5
  62. package/dist/platform/core/session-lineage.d.ts.map +1 -1
  63. package/dist/platform/core/session-lineage.js +4 -16
  64. package/dist/platform/core/wrfc-routing.d.ts.map +1 -1
  65. package/dist/platform/core/wrfc-routing.js +1 -3
  66. package/dist/platform/daemon/http/mcp-routes.d.ts.map +1 -1
  67. package/dist/platform/daemon/http/mcp-routes.js +1 -3
  68. package/dist/platform/daemon/http/openai-compatible-routes.d.ts.map +1 -1
  69. package/dist/platform/daemon/http/openai-compatible-routes.js +1 -3
  70. package/dist/platform/daemon/http/runtime-routes.d.ts.map +1 -1
  71. package/dist/platform/daemon/http/runtime-routes.js +1 -3
  72. package/dist/platform/hooks/runners/http.d.ts.map +1 -1
  73. package/dist/platform/hooks/runners/http.js +9 -19
  74. package/dist/platform/integrations/webhooks.js +2 -11
  75. package/dist/platform/knowledge/semantic/self-improvement.d.ts.map +1 -1
  76. package/dist/platform/knowledge/semantic/self-improvement.js +2 -21
  77. package/dist/platform/mcp/client.d.ts.map +1 -1
  78. package/dist/platform/mcp/client.js +1 -3
  79. package/dist/platform/mcp/config.d.ts.map +1 -1
  80. package/dist/platform/mcp/config.js +1 -3
  81. package/dist/platform/media/builtin-generation-providers.d.ts.map +1 -1
  82. package/dist/platform/media/builtin-generation-providers.js +1 -6
  83. package/dist/platform/providers/anthropic-compat.d.ts.map +1 -1
  84. package/dist/platform/providers/anthropic-compat.js +11 -131
  85. package/dist/platform/providers/anthropic-sdk-provider.d.ts.map +1 -1
  86. package/dist/platform/providers/anthropic-sdk-provider.js +8 -42
  87. package/dist/platform/providers/anthropic-sse-assembler.d.ts +80 -0
  88. package/dist/platform/providers/anthropic-sse-assembler.d.ts.map +1 -0
  89. package/dist/platform/providers/anthropic-sse-assembler.js +146 -0
  90. package/dist/platform/providers/anthropic-stream.d.ts +30 -0
  91. package/dist/platform/providers/anthropic-stream.d.ts.map +1 -0
  92. package/dist/platform/providers/anthropic-stream.js +44 -0
  93. package/dist/platform/providers/anthropic-vertex.d.ts.map +1 -1
  94. package/dist/platform/providers/anthropic-vertex.js +1 -3
  95. package/dist/platform/providers/anthropic.d.ts.map +1 -1
  96. package/dist/platform/providers/anthropic.js +15 -151
  97. package/dist/platform/providers/capabilities.d.ts.map +1 -1
  98. package/dist/platform/providers/capabilities.js +11 -7
  99. package/dist/platform/providers/context-discovery.d.ts.map +1 -1
  100. package/dist/platform/providers/context-discovery.js +9 -16
  101. package/dist/platform/providers/context-window-fallback.d.ts +24 -0
  102. package/dist/platform/providers/context-window-fallback.d.ts.map +1 -0
  103. package/dist/platform/providers/context-window-fallback.js +48 -0
  104. package/dist/platform/providers/gemini.d.ts.map +1 -1
  105. package/dist/platform/providers/gemini.js +3 -6
  106. package/dist/platform/providers/json-ttl-cache.d.ts +35 -0
  107. package/dist/platform/providers/json-ttl-cache.d.ts.map +1 -0
  108. package/dist/platform/providers/json-ttl-cache.js +52 -0
  109. package/dist/platform/providers/llama-cpp.d.ts.map +1 -1
  110. package/dist/platform/providers/llama-cpp.js +2 -23
  111. package/dist/platform/providers/lm-studio-helpers.d.ts +1 -1
  112. package/dist/platform/providers/lm-studio-helpers.d.ts.map +1 -1
  113. package/dist/platform/providers/lm-studio-helpers.js +5 -25
  114. package/dist/platform/providers/model-benchmarks.d.ts.map +1 -1
  115. package/dist/platform/providers/model-benchmarks.js +11 -34
  116. package/dist/platform/providers/model-catalog-cache.d.ts.map +1 -1
  117. package/dist/platform/providers/model-catalog-cache.js +15 -38
  118. package/dist/platform/providers/model-catalog-synthetic.d.ts.map +1 -1
  119. package/dist/platform/providers/model-catalog-synthetic.js +3 -2
  120. package/dist/platform/providers/model-catalog.d.ts.map +1 -1
  121. package/dist/platform/providers/model-catalog.js +3 -2
  122. package/dist/platform/providers/model-limits.d.ts.map +1 -1
  123. package/dist/platform/providers/model-limits.js +18 -42
  124. package/dist/platform/providers/ollama.d.ts.map +1 -1
  125. package/dist/platform/providers/ollama.js +3 -24
  126. package/dist/platform/providers/openai-codex.d.ts.map +1 -1
  127. package/dist/platform/providers/openai-codex.js +8 -9
  128. package/dist/platform/providers/openai-compat.d.ts.map +1 -1
  129. package/dist/platform/providers/openai-compat.js +13 -40
  130. package/dist/platform/providers/openai-stream-helpers.d.ts +62 -0
  131. package/dist/platform/providers/openai-stream-helpers.d.ts.map +1 -0
  132. package/dist/platform/providers/openai-stream-helpers.js +73 -0
  133. package/dist/platform/providers/openai.d.ts.map +1 -1
  134. package/dist/platform/providers/openai.js +13 -41
  135. package/dist/platform/providers/provider-error.d.ts +17 -0
  136. package/dist/platform/providers/provider-error.d.ts.map +1 -0
  137. package/dist/platform/providers/provider-error.js +33 -0
  138. package/dist/platform/providers/provider-stop-reason.d.ts +15 -0
  139. package/dist/platform/providers/provider-stop-reason.d.ts.map +1 -0
  140. package/dist/platform/providers/provider-stop-reason.js +15 -0
  141. package/dist/platform/providers/sse-line-buffer.d.ts +13 -0
  142. package/dist/platform/providers/sse-line-buffer.d.ts.map +1 -0
  143. package/dist/platform/providers/sse-line-buffer.js +23 -0
  144. package/dist/platform/providers/tool-formats.d.ts +5 -0
  145. package/dist/platform/providers/tool-formats.d.ts.map +1 -1
  146. package/dist/platform/providers/tool-formats.js +14 -0
  147. package/dist/platform/runtime/bootstrap-runtime-events.d.ts.map +1 -1
  148. package/dist/platform/runtime/bootstrap-runtime-events.js +6 -0
  149. package/dist/platform/runtime/bootstrap-services.d.ts.map +1 -1
  150. package/dist/platform/runtime/bootstrap-services.js +4 -5
  151. package/dist/platform/runtime/emitters/workflows.d.ts +4 -0
  152. package/dist/platform/runtime/emitters/workflows.d.ts.map +1 -1
  153. package/dist/platform/runtime/emitters/workflows.js +3 -0
  154. package/dist/platform/runtime/remote/distributed-runtime-store.d.ts.map +1 -1
  155. package/dist/platform/runtime/remote/distributed-runtime-store.js +1 -3
  156. package/dist/platform/runtime/retention/pruner.js +2 -5
  157. package/dist/platform/runtime/store/helpers/reducers/lifecycle.d.ts.map +1 -1
  158. package/dist/platform/runtime/store/helpers/reducers/lifecycle.js +15 -14
  159. package/dist/platform/runtime/store/helpers/reducers/shared.d.ts +6 -0
  160. package/dist/platform/runtime/store/helpers/reducers/shared.d.ts.map +1 -1
  161. package/dist/platform/runtime/store/helpers/reducers/shared.js +8 -1
  162. package/dist/platform/runtime/telemetry/exporters/queue.d.ts.map +1 -1
  163. package/dist/platform/runtime/telemetry/exporters/queue.js +1 -7
  164. package/dist/platform/runtime/transports/http-helpers.d.ts +0 -1
  165. package/dist/platform/runtime/transports/http-helpers.d.ts.map +1 -1
  166. package/dist/platform/runtime/transports/http-helpers.js +1 -3
  167. package/dist/platform/runtime/ui-read-model-helpers.d.ts +2 -0
  168. package/dist/platform/runtime/ui-read-model-helpers.d.ts.map +1 -1
  169. package/dist/platform/runtime/ui-read-model-helpers.js +8 -0
  170. package/dist/platform/runtime/ui-read-models-core.d.ts.map +1 -1
  171. package/dist/platform/runtime/ui-read-models-core.js +3 -5
  172. package/dist/platform/runtime/ui-read-models-observability-remote.d.ts.map +1 -1
  173. package/dist/platform/runtime/ui-read-models-observability-remote.js +2 -4
  174. package/dist/platform/runtime/ui-read-models-operations.d.ts.map +1 -1
  175. package/dist/platform/runtime/ui-read-models-operations.js +8 -26
  176. package/dist/platform/scheduler/scheduler.d.ts.map +1 -1
  177. package/dist/platform/scheduler/scheduler.js +1 -3
  178. package/dist/platform/tools/exec/runtime.d.ts.map +1 -1
  179. package/dist/platform/tools/exec/runtime.js +1 -7
  180. package/dist/platform/tools/fetch/runtime.d.ts.map +1 -1
  181. package/dist/platform/tools/fetch/runtime.js +9 -20
  182. package/dist/platform/tools/shared/process-manager.d.ts.map +1 -1
  183. package/dist/platform/tools/shared/process-manager.js +1 -6
  184. package/dist/platform/utils/concurrency.d.ts +1 -0
  185. package/dist/platform/utils/concurrency.d.ts.map +1 -1
  186. package/dist/platform/utils/concurrency.js +1 -0
  187. package/dist/platform/utils/error-display.d.ts +9 -0
  188. package/dist/platform/utils/error-display.d.ts.map +1 -1
  189. package/dist/platform/utils/error-display.js +11 -0
  190. package/dist/platform/utils/fetch-with-timeout.d.ts +22 -2
  191. package/dist/platform/utils/fetch-with-timeout.d.ts.map +1 -1
  192. package/dist/platform/utils/fetch-with-timeout.js +33 -15
  193. package/dist/platform/utils/record-coerce.d.ts +5 -0
  194. package/dist/platform/utils/record-coerce.d.ts.map +1 -1
  195. package/dist/platform/utils/record-coerce.js +7 -0
  196. package/dist/platform/utils/retry.d.ts.map +1 -1
  197. package/dist/platform/utils/retry.js +2 -4
  198. package/dist/platform/version.js +1 -1
  199. package/package.json +9 -9
@@ -0,0 +1,62 @@
1
+ import type { ChatStopReason, StreamDelta } from './interface.js';
2
+ import type { OpenAIToolCall } from './tool-formats.js';
3
+ import { fromOpenAIToolCalls } from './tool-formats.js';
4
+ /** Accumulated state for one streaming tool-call slot. */
5
+ export interface OpenAIToolCallSlot {
6
+ id: string;
7
+ name: string;
8
+ args: string;
9
+ }
10
+ /** Usage fields found on OpenAI streaming chunks. */
11
+ export interface OpenAIChunkUsage {
12
+ prompt_tokens?: number | undefined;
13
+ completion_tokens?: number | undefined;
14
+ prompt_tokens_details?: {
15
+ cached_tokens?: number;
16
+ } | undefined;
17
+ }
18
+ /**
19
+ * Update the tool-call accumulator map with one streaming tool_call delta.
20
+ * Fires onDelta if provided.
21
+ */
22
+ export declare function accumOpenAIToolCall(acc: Map<number, OpenAIToolCallSlot>, tc: {
23
+ index: number;
24
+ id?: string | undefined;
25
+ function?: {
26
+ name?: string | undefined;
27
+ arguments?: string | undefined;
28
+ } | undefined;
29
+ }, onDelta: ((delta: StreamDelta) => void) | undefined): void;
30
+ /**
31
+ * Finalise accumulated tool-call slots into the raw OpenAI wire format,
32
+ * sorted by stream index.
33
+ */
34
+ export declare function finalizeOpenAIToolCalls(acc: Map<number, OpenAIToolCallSlot>): OpenAIToolCall[];
35
+ /**
36
+ * Apply token counts from a streaming chunk's usage field.
37
+ * Absent fields keep the value from current (so initial 0 stays 0
38
+ * if the provider never sends those fields).
39
+ */
40
+ export declare function applyOpenAIChunkUsage(usage: OpenAIChunkUsage | null | undefined, current: {
41
+ inputTokens: number;
42
+ outputTokens: number;
43
+ cacheReadTokens: number;
44
+ }): {
45
+ inputTokens: number;
46
+ outputTokens: number;
47
+ cacheReadTokens: number;
48
+ };
49
+ /**
50
+ * Convert finalized raw tool-calls to canonical form and apply the text-based
51
+ * tool-call fallback for models that emit tool calls as raw text tokens.
52
+ *
53
+ * Returns the final toolCalls list plus (possibly mutated) response text,
54
+ * stop reason, and raw stop reason.
55
+ */
56
+ export declare function resolveOpenAIToolCallsAndFallback(rawToolCalls: OpenAIToolCall[], responseText: string, stopReason: ChatStopReason, rawStopReason: string | undefined): {
57
+ toolCalls: ReturnType<typeof fromOpenAIToolCalls>;
58
+ responseText: string;
59
+ stopReason: ChatStopReason;
60
+ rawStopReason: string | undefined;
61
+ };
62
+ //# sourceMappingURL=openai-stream-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-stream-helpers.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/openai-stream-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAwB,MAAM,mBAAmB,CAAC;AAE9E,0DAA0D;AAC1D,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,qBAAqB,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAChE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACpC,EAAE,EAAE;IACF,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC;CACtF,EACD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,SAAS,GAClD,IAAI,CAcN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,cAAc,EAAE,CAU9F;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GAC9E;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAOxE;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAC/C,YAAY,EAAE,cAAc,EAAE,EAC9B,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,cAAc,EAC1B,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IACD,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAeA"}
@@ -0,0 +1,73 @@
1
+ import { fromOpenAIToolCalls, extractTextToolCalls } from './tool-formats.js';
2
+ /**
3
+ * Update the tool-call accumulator map with one streaming tool_call delta.
4
+ * Fires onDelta if provided.
5
+ */
6
+ export function accumOpenAIToolCall(acc, tc, onDelta) {
7
+ const idx = tc.index;
8
+ if (!acc.has(idx)) {
9
+ acc.set(idx, { id: tc.id ?? '', name: tc.function?.name ?? '', args: '' });
10
+ }
11
+ const entry = acc.get(idx);
12
+ if (tc.id)
13
+ entry.id = tc.id;
14
+ if (tc.function?.name)
15
+ entry.name = tc.function.name;
16
+ if (tc.function?.arguments)
17
+ entry.args += tc.function.arguments;
18
+ if (onDelta) {
19
+ onDelta({
20
+ toolCalls: [{ index: idx, id: tc.id, name: tc.function?.name, arguments: tc.function?.arguments }],
21
+ });
22
+ }
23
+ }
24
+ /**
25
+ * Finalise accumulated tool-call slots into the raw OpenAI wire format,
26
+ * sorted by stream index.
27
+ */
28
+ export function finalizeOpenAIToolCalls(acc) {
29
+ const result = [];
30
+ for (const [, tc] of [...acc.entries()].sort(([a], [b]) => a - b)) {
31
+ result.push({
32
+ id: tc.id,
33
+ type: 'function',
34
+ function: { name: tc.name, arguments: tc.args },
35
+ });
36
+ }
37
+ return result;
38
+ }
39
+ /**
40
+ * Apply token counts from a streaming chunk's usage field.
41
+ * Absent fields keep the value from current (so initial 0 stays 0
42
+ * if the provider never sends those fields).
43
+ */
44
+ export function applyOpenAIChunkUsage(usage, current) {
45
+ if (!usage)
46
+ return current;
47
+ return {
48
+ inputTokens: usage.prompt_tokens ?? current.inputTokens,
49
+ outputTokens: usage.completion_tokens ?? current.outputTokens,
50
+ cacheReadTokens: usage.prompt_tokens_details?.cached_tokens ?? current.cacheReadTokens,
51
+ };
52
+ }
53
+ /**
54
+ * Convert finalized raw tool-calls to canonical form and apply the text-based
55
+ * tool-call fallback for models that emit tool calls as raw text tokens.
56
+ *
57
+ * Returns the final toolCalls list plus (possibly mutated) response text,
58
+ * stop reason, and raw stop reason.
59
+ */
60
+ export function resolveOpenAIToolCallsAndFallback(rawToolCalls, responseText, stopReason, rawStopReason) {
61
+ let toolCalls = rawToolCalls.length > 0 ? fromOpenAIToolCalls(rawToolCalls) : [];
62
+ if (toolCalls.length === 0 &&
63
+ (responseText.includes('<|toolcallbegin|>') || responseText.includes('<|tool_call_begin|>'))) {
64
+ const extracted = extractTextToolCalls(responseText);
65
+ if (extracted.toolCalls.length > 0) {
66
+ toolCalls = extracted.toolCalls;
67
+ responseText = extracted.cleanedContent;
68
+ stopReason = 'tool_call';
69
+ rawStopReason = rawStopReason ?? 'tool_calls';
70
+ }
71
+ }
72
+ return { toolCalls, responseText, stopReason, rawStopReason };
73
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EAKpB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAYxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQ3D;;;GAGG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAC/B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IAErC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;gBAE1D,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAA0B;IAcnG,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA8HhD,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA8BhF,YAAY,IAAI,OAAO;IAIjB,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;YA+C5E,eAAe;YAyBf,aAAa;YAUb,WAAW;YAUX,eAAe;IAY7B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,oBAAoB;YASd,yBAAyB;IAuBvC,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,6BAA6B;CAkCtC"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/openai.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,YAAY,EAEZ,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EAKpB,uBAAuB,EACvB,2BAA2B,EAC5B,MAAM,gBAAgB,CAAC;AAaxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQ3D;;;GAGG;AACH,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAM;IAC/B,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IAErC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsC;gBAE1D,MAAM,EAAE,MAAM,EAAE,eAAe,GAAE,IAAI,CAAC,eAAe,EAAE,YAAY,CAA0B;IAcnG,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAsGhD,KAAK,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IA8BhF,YAAY,IAAI,OAAO;IAIjB,eAAe,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,uBAAuB,CAAC;YA+C5E,eAAe;YAyBf,aAAa;YAUb,WAAW;YAUX,eAAe;IAY7B,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,oBAAoB;YASd,yBAAyB;IAuBvC,OAAO,CAAC,sBAAsB;IA2B9B,OAAO,CAAC,6BAA6B;CAkCtC"}
@@ -2,7 +2,9 @@ import OpenAI, { toFile } from 'openai';
2
2
  import { mapOpenAIStopReason } from './stop-reason-maps.js';
3
3
  import { ProviderError } from '../types/errors.js';
4
4
  import { withRetry } from '../utils/retry.js';
5
- import { toOpenAITools, toOpenAIMessages, fromOpenAIToolCalls, extractTextToolCalls, } from './tool-formats.js';
5
+ import { toOpenAITools, toOpenAIMessages, fromOpenAIToolCalls, } from './tool-formats.js';
6
+ import { accumOpenAIToolCall, finalizeOpenAIToolCalls, applyOpenAIChunkUsage, resolveOpenAIToolCallsAndFallback } from './openai-stream-helpers.js';
7
+ import { resolveCompletedStopReason, withProviderStopReason } from './provider-stop-reason.js';
6
8
  import { extractOpenAIStreamTextDelta } from './openai-stream-delta.js';
7
9
  import { summarizeError, toProviderError } from '../utils/error-display.js';
8
10
  const NOOP_CACHE_HIT_TRACKER = {
@@ -71,20 +73,7 @@ export class OpenAIProvider {
71
73
  // Accumulate streaming tool_calls deltas
72
74
  if (delta?.tool_calls) {
73
75
  for (const tc of delta.tool_calls) {
74
- const idx = tc.index;
75
- if (!accToolCalls.has(idx)) {
76
- accToolCalls.set(idx, { id: tc.id ?? '', name: tc.function?.name ?? '', args: '' });
77
- }
78
- const entry = accToolCalls.get(idx);
79
- if (tc.id)
80
- entry.id = tc.id;
81
- if (tc.function?.name)
82
- entry.name = tc.function.name;
83
- if (tc.function?.arguments)
84
- entry.args += tc.function.arguments;
85
- if (onDelta) {
86
- onDelta({ toolCalls: [{ index: idx, id: tc.id, name: tc.function?.name, arguments: tc.function?.arguments }] });
87
- }
76
+ accumOpenAIToolCall(accToolCalls, tc, onDelta);
88
77
  }
89
78
  }
90
79
  const finishReason = chunk.choices[0]?.finish_reason;
@@ -92,21 +81,9 @@ export class OpenAIProvider {
92
81
  rawStopReason = finishReason;
93
82
  stopReason = mapOpenAIStopReason(finishReason);
94
83
  }
95
- const usage = chunk.usage;
96
- if (usage) {
97
- inputTokens = usage.prompt_tokens ?? 0;
98
- outputTokens = usage.completion_tokens ?? 0;
99
- cacheReadTokens = usage.prompt_tokens_details?.cached_tokens ?? cacheReadTokens;
100
- }
101
- }
102
- // Finalise accumulated tool calls
103
- for (const [, tc] of [...accToolCalls.entries()].sort(([a], [b]) => a - b)) {
104
- rawToolCalls.push({
105
- id: tc.id,
106
- type: 'function',
107
- function: { name: tc.name, arguments: tc.args },
108
- });
84
+ ({ inputTokens, outputTokens, cacheReadTokens } = applyOpenAIChunkUsage(chunk.usage, { inputTokens, outputTokens, cacheReadTokens }));
109
85
  }
86
+ rawToolCalls = finalizeOpenAIToolCalls(accToolCalls);
110
87
  }
111
88
  catch (err) {
112
89
  const { hasStatus } = await import('../utils/retry.js');
@@ -120,16 +97,11 @@ export class OpenAIProvider {
120
97
  }
121
98
  // Some models may emit tool calls as raw text tokens instead of the
122
99
  // OpenAI function-calling wire format. Fall back to text extraction.
123
- let toolCalls = rawToolCalls.length > 0 ? fromOpenAIToolCalls(rawToolCalls) : [];
124
- if (toolCalls.length === 0 && (responseText.includes('<|toolcallbegin|>') || responseText.includes('<|tool_call_begin|>'))) {
125
- const extracted = extractTextToolCalls(responseText);
126
- if (extracted.toolCalls.length > 0) {
127
- toolCalls = extracted.toolCalls;
128
- responseText = extracted.cleanedContent;
129
- stopReason = 'tool_call';
130
- rawStopReason = rawStopReason ?? 'tool_calls';
131
- }
132
- }
100
+ const resolved = resolveOpenAIToolCallsAndFallback(rawToolCalls, responseText, stopReason, rawStopReason);
101
+ const toolCalls = resolved.toolCalls;
102
+ responseText = resolved.responseText;
103
+ stopReason = resolved.stopReason;
104
+ rawStopReason = resolved.rawStopReason;
133
105
  this.cacheHitTracker.recordTurn({
134
106
  inputTokens,
135
107
  cacheReadTokens,
@@ -142,8 +114,8 @@ export class OpenAIProvider {
142
114
  outputTokens,
143
115
  ...(cacheReadTokens > 0 ? { cacheReadTokens } : {}),
144
116
  },
145
- stopReason: stopReason === 'unknown' && responseText ? 'completed' : stopReason,
146
- ...(rawStopReason !== undefined ? { providerStopReason: rawStopReason } : {}),
117
+ stopReason: resolveCompletedStopReason(stopReason, responseText),
118
+ ...withProviderStopReason(rawStopReason),
147
119
  };
148
120
  });
149
121
  }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Shared provider-error helpers.
3
+ *
4
+ * Consolidated from three verbatim copies in lm-studio-helpers.ts,
5
+ * llama-cpp.ts, and ollama.ts into a single definition.
6
+ */
7
+ import type { ProviderError } from '../types/errors.js';
8
+ /**
9
+ * Extract an HTTP status code from an error object.
10
+ * Checks `.status` before `.statusCode` to preserve provider-error convention.
11
+ */
12
+ export declare function getErrorStatus(err: unknown): number | undefined;
13
+ /**
14
+ * Wrap an error into a ProviderError, attaching the HTTP status if present.
15
+ */
16
+ export declare function normalizeProviderError(err: unknown, provider: string, operation: string, phase?: string): ProviderError;
17
+ //# sourceMappingURL=provider-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-error.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/provider-error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAO/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,KAAK,SAAY,GAChB,aAAa,CAQf"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Shared provider-error helpers.
3
+ *
4
+ * Consolidated from three verbatim copies in lm-studio-helpers.ts,
5
+ * llama-cpp.ts, and ollama.ts into a single definition.
6
+ */
7
+ import { toProviderError } from '../utils/error-display.js';
8
+ /**
9
+ * Extract an HTTP status code from an error object.
10
+ * Checks `.status` before `.statusCode` to preserve provider-error convention.
11
+ */
12
+ export function getErrorStatus(err) {
13
+ if (err && typeof err === 'object') {
14
+ const record = err;
15
+ if (typeof record.status === 'number')
16
+ return record.status;
17
+ if (typeof record.statusCode === 'number')
18
+ return record.statusCode;
19
+ }
20
+ return undefined;
21
+ }
22
+ /**
23
+ * Wrap an error into a ProviderError, attaching the HTTP status if present.
24
+ */
25
+ export function normalizeProviderError(err, provider, operation, phase = 'request') {
26
+ const status = getErrorStatus(err);
27
+ return toProviderError(err, {
28
+ ...(status !== undefined ? { statusCode: status } : {}),
29
+ provider,
30
+ operation,
31
+ phase,
32
+ });
33
+ }
@@ -0,0 +1,15 @@
1
+ import type { ChatStopReason } from './interface.js';
2
+ /**
3
+ * Resolve an 'unknown' stop reason to 'completed' when the model produced text.
4
+ * Providers use this when the stream ended without an explicit finish reason
5
+ * but content was generated.
6
+ */
7
+ export declare function resolveCompletedStopReason(stopReason: ChatStopReason, content: string | undefined): ChatStopReason;
8
+ /**
9
+ * Build the providerStopReason spread for ChatResponse.
10
+ * Returns { providerStopReason } when the raw value is known, otherwise {}.
11
+ */
12
+ export declare function withProviderStopReason(rawStopReason: string | undefined): {
13
+ providerStopReason?: string;
14
+ };
15
+ //# sourceMappingURL=provider-stop-reason.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-stop-reason.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/provider-stop-reason.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,cAAc,CAEhB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAE,CAEjC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Resolve an 'unknown' stop reason to 'completed' when the model produced text.
3
+ * Providers use this when the stream ended without an explicit finish reason
4
+ * but content was generated.
5
+ */
6
+ export function resolveCompletedStopReason(stopReason, content) {
7
+ return stopReason === 'unknown' && content ? 'completed' : stopReason;
8
+ }
9
+ /**
10
+ * Build the providerStopReason spread for ChatResponse.
11
+ * Returns { providerStopReason } when the raw value is known, otherwise {}.
12
+ */
13
+ export function withProviderStopReason(rawStopReason) {
14
+ return rawStopReason !== undefined ? { providerStopReason: rawStopReason } : {};
15
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Canonical SSE line-buffer — handles both LF (\n) and CRLF (\r\n) line endings.
3
+ * Standardised on /\r?\n/ per RFC 7230 and the W3C SSE spec.
4
+ */
5
+ export declare class SseLineBuffer {
6
+ private readonly decoder;
7
+ private buffer;
8
+ /** Feed a raw chunk and return all complete lines (without line endings). */
9
+ feed(chunk: Uint8Array): string[];
10
+ /** Return any buffered incomplete line after the stream ends. */
11
+ flush(): string[];
12
+ }
13
+ //# sourceMappingURL=sse-line-buffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-line-buffer.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/sse-line-buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAM;IAEpB,6EAA6E;IAC7E,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,EAAE;IAOjC,iEAAiE;IACjE,KAAK,IAAI,MAAM,EAAE;CAMlB"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Canonical SSE line-buffer — handles both LF (\n) and CRLF (\r\n) line endings.
3
+ * Standardised on /\r?\n/ per RFC 7230 and the W3C SSE spec.
4
+ */
5
+ export class SseLineBuffer {
6
+ decoder = new TextDecoder();
7
+ buffer = '';
8
+ /** Feed a raw chunk and return all complete lines (without line endings). */
9
+ feed(chunk) {
10
+ this.buffer += this.decoder.decode(chunk, { stream: true });
11
+ const parts = this.buffer.split(/\r?\n/);
12
+ this.buffer = parts.pop() ?? '';
13
+ return parts;
14
+ }
15
+ /** Return any buffered incomplete line after the stream ends. */
16
+ flush() {
17
+ if (!this.buffer)
18
+ return [];
19
+ const line = this.buffer;
20
+ this.buffer = '';
21
+ return [line];
22
+ }
23
+ }
@@ -139,5 +139,10 @@ export declare function extractTextToolCalls(content: string): {
139
139
  toolCalls: ToolCall[];
140
140
  cleanedContent: string;
141
141
  };
142
+ /**
143
+ * Strip the `anthropic:` or `anthropic/` prefix from an Anthropic model identifier.
144
+ * Single canonical location — imported by anthropic.ts and anthropic-sdk-provider.ts.
145
+ */
146
+ export declare function normalizeAnthropicModel(model: string): string;
142
147
  export declare function parseToolCallArguments(raw: string, context?: ToolArgumentParseContext): Record<string, unknown> | undefined;
143
148
  //# sourceMappingURL=tool-formats.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-formats.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/tool-formats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAInE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAMD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CASnE;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,CAevE;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,GACpB,aAAa,EAAE,CAuCjB;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChI;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;CAC3C;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAMzE;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAaA;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,gBAAgB,EAAE,CAoDnF;AAMD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC/D,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACpE;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAgBD,uEAAuE;AACvE,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,cAAc,EAAE,GACtB,yBAAyB,EAAE,CAM7B;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAiBA;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,GACpB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,iBAAiB,CAAC,EAAE;QAAE,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;CAAE,CAkDxF;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAuDA;AAMD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAarC"}
1
+ {"version":3,"file":"tool-formats.d.ts","sourceRoot":"","sources":["../../../src/platform/providers/tool-formats.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAe,MAAM,gBAAgB,CAAC;AAInE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAMD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/C;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAEtD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,GAAG,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAC1C,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CASnE;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,QAAQ,EAAE,CAevE;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,GACpB,aAAa,EAAE,CAuCjB;AAMD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAChI;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAC9E;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAAC;CAC3C;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAMzE;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,EAAE,GAAG;IACtE,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAaA;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,gBAAgB,EAAE,CAoDnF;AAMD,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC;IAC/D,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACpE;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAgBD,uEAAuE;AACvE,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,cAAc,EAAE,GACtB,yBAAyB,EAAE,CAM7B;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAiBA;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EAAE,EAC3B,YAAY,CAAC,EAAE,MAAM,GACpB;IAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAAC,iBAAiB,CAAC,EAAE;QAAE,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,GAAG,SAAS,CAAA;CAAE,CAkDxF;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAuDA;AAMD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAI7D;AAMD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,wBAA6B,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAarC"}
@@ -311,6 +311,20 @@ export function extractTextToolCalls(content) {
311
311
  return { toolCalls, cleanedContent };
312
312
  }
313
313
  // ---------------------------------------------------------------------------
314
+ // Anthropic model-id helpers
315
+ // ---------------------------------------------------------------------------
316
+ /**
317
+ * Strip the `anthropic:` or `anthropic/` prefix from an Anthropic model identifier.
318
+ * Single canonical location — imported by anthropic.ts and anthropic-sdk-provider.ts.
319
+ */
320
+ export function normalizeAnthropicModel(model) {
321
+ if (model.startsWith('anthropic:'))
322
+ return model.slice('anthropic:'.length);
323
+ if (model.startsWith('anthropic/'))
324
+ return model.slice('anthropic/'.length);
325
+ return model;
326
+ }
327
+ // ---------------------------------------------------------------------------
314
328
  // Shared helper
315
329
  // ---------------------------------------------------------------------------
316
330
  export function parseToolCallArguments(raw, context = {}) {
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-runtime-events.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/bootstrap-runtime-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,KAAK,EAA6B,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI5D,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACjE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,wBAAwB,GAAG,IAAI,CAAC;IACvE,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5F,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAoED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,6BAA6B,GACrC;IAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAAC,sBAAsB,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CAsKzG;AAED,MAAM,MAAM,kCAAkC,GAAG,6BAA6B,CAAC;AAC/E,eAAO,MAAM,8BAA8B,kCAA4B,CAAC"}
1
+ {"version":3,"file":"bootstrap-runtime-events.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/bootstrap-runtime-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,KAAK,EAA6B,eAAe,EAAiB,MAAM,mBAAmB,CAAC;AACnG,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAI5D,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC;IACrC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IACjE,QAAQ,CAAC,sBAAsB,EAAE,MAAM,wBAAwB,GAAG,IAAI,CAAC;IACvE,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5F,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;CACzC;AAoED,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,6BAA6B,GACrC;IAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAAC,sBAAsB,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,IAAI,CAAA;KAAE,CAAA;CAAE,CA6KzG;AAED,MAAM,MAAM,kCAAkC,GAAG,6BAA6B,CAAC;AAC/E,eAAO,MAAM,8BAA8B,kCAA4B,CAAC"}
@@ -74,6 +74,12 @@ export function registerHostRuntimeEvents(options) {
74
74
  unsubs.push(runtimeBus.onDomain('transport', (env) => {
75
75
  domainDispatch.dispatchTransportEvent(env.payload);
76
76
  }));
77
+ unsubs.push(runtimeBus.on('WORKFLOW_SCORE_REGRESSION', ({ payload }) => {
78
+ withRouter(getSystemMessageRouter, (router) => {
79
+ router.wrfc(`[WRFC] Score regression warning: ${payload.reason} (chain ${payload.chainId})`);
80
+ });
81
+ requestRender();
82
+ }));
77
83
  unsubs.push(runtimeBus.on('WORKFLOW_CASCADE_ABORTED', ({ payload }) => {
78
84
  withRouter(getSystemMessageRouter, (router) => {
79
85
  router.wrfc(`[WRFC] Cascade abort: ${payload.reason} (chain ${payload.chainId})`);
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap-services.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/bootstrap-services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bootstrap-services.d.ts","sourceRoot":"","sources":["../../../src/platform/runtime/bootstrap-services.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ConfigurationError } from '@pellux/goodvibes-errors';
2
2
  import { logger } from '../utils/logger.js';
3
3
  import net from 'node:net';
4
4
  import { summarizeError } from '../utils/error-display.js';
5
+ import { createTimeoutController } from '../utils/fetch-with-timeout.js';
5
6
  const DEFAULT_SERVICE_START_TIMEOUT_MS = 1500;
6
7
  const TCP_PORT_PROBE_TIMEOUT_MS = 250;
7
8
  const DAEMON_IDENTITY_PROBE_TIMEOUT_MS = 750;
@@ -104,16 +105,14 @@ function createServiceStatus(mode, host, port, details = {}) {
104
105
  };
105
106
  }
106
107
  async function probeGoodVibesDaemonIdentity(host, port, token) {
107
- const controller = new AbortController();
108
- const timeout = setTimeout(() => controller.abort(), DAEMON_IDENTITY_PROBE_TIMEOUT_MS);
109
- timeout.unref?.();
108
+ const { signal, dispose } = createTimeoutController(DAEMON_IDENTITY_PROBE_TIMEOUT_MS);
110
109
  try {
111
110
  const headers = new Headers();
112
111
  if (token?.trim())
113
112
  headers.set('Authorization', `Bearer ${token.trim()}`);
114
113
  const response = await fetch(`${formatBaseUrl(host, port)}/status`, {
115
114
  headers,
116
- signal: controller.signal,
115
+ signal,
117
116
  });
118
117
  if (response.status === 401 || response.status === 403) {
119
118
  return {
@@ -145,7 +144,7 @@ async function probeGoodVibesDaemonIdentity(host, port, token) {
145
144
  return { kind: 'unknown', reason: summarizeError(error) };
146
145
  }
147
146
  finally {
148
- clearTimeout(timeout);
147
+ dispose();
149
148
  }
150
149
  }
151
150
  async function startWithTimeout(label, start, timeoutMs, cleanup) {
@@ -54,4 +54,8 @@ export declare function emitWorkflowConstraintsEnumerated(bus: RuntimeEventBus,
54
54
  chainId: string;
55
55
  constraints: Constraint[];
56
56
  }): void;
57
+ export declare function emitWorkflowScoreRegression(bus: RuntimeEventBus, ctx: EmitterContext, data: {
58
+ chainId: string;
59
+ reason: string;
60
+ }): void;
57
61
  //# sourceMappingURL=workflows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/emitters/workflows.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACtC,IAAI,CAEN;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,SAAS,CAAA;CAAE,GACxD,IAAI,CAEN;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,wBAAwB,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CACjD,GACA,IAAI,CAEN;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9F,IAAI,CAEN;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACvD,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GACxB,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC,IAAI,CAEN;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACzD,IAAI,CAEN;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC,IAAI,CAEN;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,GACnD,IAAI,CAEN"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/emitters/workflows.ts"],"names":[],"mappings":"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"}
@@ -37,3 +37,6 @@ export function emitWorkflowCascadeAborted(bus, ctx, data) {
37
37
  export function emitWorkflowConstraintsEnumerated(bus, ctx, data) {
38
38
  bus.emit('workflows', createEventEnvelope('WORKFLOW_CONSTRAINTS_ENUMERATED', { type: 'WORKFLOW_CONSTRAINTS_ENUMERATED', ...data }, ctx));
39
39
  }
40
+ export function emitWorkflowScoreRegression(bus, ctx, data) {
41
+ bus.emit('workflows', createEventEnvelope('WORKFLOW_SCORE_REGRESSION', { type: 'WORKFLOW_SCORE_REGRESSION', ...data }, ctx));
42
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"distributed-runtime-store.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/remote/distributed-runtime-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAE7B,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AA8LxC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE;IACL,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACrF,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACvF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CACxF,GACA,IAAI,CAKN;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlG;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAGjC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,IAAI,CAAC,EAAE,mBAAmB,EAC1B,KAAK,SAAM,GACV,qBAAqB,EAAE,CAKzB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,EAAE,CAK1B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAEjC;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS5G;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE3H;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,6BAA6B,GACpC,IAAI,CAKN;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CA0B3G;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CAyC7G;AAWD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAexC;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAQ1H;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,GAC3C,IAAI,CAMN;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5G;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG"}
1
+ {"version":3,"file":"distributed-runtime-store.d.ts","sourceRoot":"","sources":["../../../../src/platform/runtime/remote/distributed-runtime-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,sBAAsB,EACtB,6BAA6B,EAC7B,8BAA8B,EAC9B,6BAA6B,EAE7B,mBAAmB,EACnB,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,gCAAgC,CAAC;AA4LxC,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,8BAA8B,EACrC,KAAK,EAAE;IACL,QAAQ,CAAC,aAAa,CAAC,EAAE,8BAA8B,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;IACrF,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;IACvF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,8BAA8B,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC;IAC3F,QAAQ,CAAC,cAAc,CAAC,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;CACxF,GACA,IAAI,CAKN;AAED,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBlG;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAGjC;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,IAAI,CAAC,EAAE,mBAAmB,EAC1B,KAAK,SAAM,GACV,qBAAqB,EAAE,CAKzB;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,EACX,MAAM,CAAC,EAAE,MAAM,GACd,sBAAsB,EAAE,CAK1B;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,8BAA8B,EACrC,KAAK,SAAM,GACV,6BAA6B,EAAE,CAEjC;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS5G;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE3H;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,6BAA6B,GACpC,IAAI,CAKN;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CA0B3G;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,8BAA8B,EAAE,GAAG,SAAa,GAAG,IAAI,CAyC7G;AAWD,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAexC;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,8BAA8B,EAAE,IAAI,EAAE,sBAAsB,GAAG,IAAI,CAQ1H;AAED,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,8BAA8B,EACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,wBAAwB,CAAC,SAAS,CAAC,GAC3C,IAAI,CAMN;AAED,wBAAsB,iCAAiC,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkB5G;AAED,wBAAsB,yBAAyB,CAAC,KAAK,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpG"}
@@ -1,6 +1,7 @@
1
1
  import { summarizeError } from '../../utils/error-display.js';
2
2
  import { logger } from '../../utils/logger.js';
3
3
  import { normalizeAudit, normalizePairRequest, normalizePeer, normalizeToken, normalizeWork, sanitizePairRequest, sanitizePeer, sortPairRequests, sortPeers, sortWork, } from './distributed-runtime-utils.js';
4
+ import { isRecord } from '../../utils/record-coerce.js';
4
5
  const MAX_AUDIT = 500;
5
6
  const MAX_WORK_HISTORY = 500;
6
7
  const MAX_PAIR_REQUESTS = 250;
@@ -40,9 +41,6 @@ const AUDIT_ACTIONS = new Set([
40
41
  'work-cancelled',
41
42
  'work-expired',
42
43
  ]);
43
- function isRecord(value) {
44
- return typeof value === 'object' && value !== null && !Array.isArray(value);
45
- }
46
44
  function isFiniteNumber(value) {
47
45
  return typeof value === 'number' && Number.isFinite(value);
48
46
  }
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import * as fs from 'node:fs/promises';
13
13
  import * as path from 'node:path';
14
- import { summarizeError } from '../../utils/error-display.js';
14
+ import { redactedErrorMessage } from '../../utils/error-display.js';
15
15
  // ---------------------------------------------------------------------------
16
16
  // SnapshotPruner
17
17
  // ---------------------------------------------------------------------------
@@ -146,8 +146,5 @@ export class SnapshotPruner {
146
146
  * Extract a human-readable message from an unknown thrown value.
147
147
  */
148
148
  function errorMessage(err) {
149
- if (err instanceof Error) {
150
- return err.message;
151
- }
152
- return summarizeError(err);
149
+ return redactedErrorMessage(err);
153
150
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,gCAAgC,CAAC;AA+BxC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,eAAe,GACrB,kBAAkB,CAyBpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,eAAe,GACrB,qBAAqB,CAmCvB;AAiCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,GAAG,eAAe,CA0D1F;AAED,iBAAS,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAQ/G;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,GACb,eAAe,CAIjB;AA2CD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB,CA0F9F;AAED,iBAAS,2BAA2B,CAClC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,GACb,gBAAgB,CAgBlB;AAgBD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,kBAAkB,GACxB,wBAAwB,CA4G1B;AAED,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,CAAC"}
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../../../../../src/platform/runtime/store/helpers/reducers/lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAChH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,KAAK,EACV,wBAAwB,EAGzB,MAAM,gCAAgC,CAAC;AA+BxC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,eAAe,GACrB,kBAAkB,CAyBpB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,qBAAqB,EAC7B,KAAK,EAAE,eAAe,GACrB,qBAAqB,CAmCvB;AAiCD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,GAAG,eAAe,CA0D1F;AAED,iBAAS,0BAA0B,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAQ/G;AAED,iBAAS,0BAA0B,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,SAAS,EACvC,MAAM,EAAE,MAAM,GACb,eAAe,CAIjB;AAkED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,UAAU,GAAG,gBAAgB,CAgF9F;AAED,iBAAS,2BAA2B,CAClC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,EACxC,MAAM,EAAE,MAAM,GACb,gBAAgB,CAYlB;AAgBD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,wBAAwB,EAChC,KAAK,EAAE,kBAAkB,GACxB,wBAAwB,CA4G1B;AAED,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,CAAC"}