prefix-safe-json 0.3.0 → 0.4.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 (48) hide show
  1. package/README.md +112 -73
  2. package/dist/coordinator/coordinator.d.ts +1 -0
  3. package/dist/coordinator/coordinator.d.ts.map +1 -1
  4. package/dist/coordinator/coordinator.js +27 -5
  5. package/dist/coordinator/coordinator.js.map +1 -1
  6. package/dist/coordinator/diagnostic-codes.d.ts +18 -0
  7. package/dist/coordinator/diagnostic-codes.d.ts.map +1 -1
  8. package/dist/coordinator/diagnostic-codes.js +26 -0
  9. package/dist/coordinator/diagnostic-codes.js.map +1 -1
  10. package/dist/coordinator/types.d.ts +2 -0
  11. package/dist/coordinator/types.d.ts.map +1 -1
  12. package/dist/gate/decide.d.ts.map +1 -1
  13. package/dist/gate/decide.js +9 -2
  14. package/dist/gate/decide.js.map +1 -1
  15. package/dist/gate/gate.d.ts +4 -2
  16. package/dist/gate/gate.d.ts.map +1 -1
  17. package/dist/gate/gate.js +18 -3
  18. package/dist/gate/gate.js.map +1 -1
  19. package/dist/gate/types.d.ts +7 -1
  20. package/dist/gate/types.d.ts.map +1 -1
  21. package/dist/guard/ai-sdk-execution-lock.d.ts.map +1 -1
  22. package/dist/guard/ai-sdk-execution-lock.js.map +1 -1
  23. package/dist/guard/ai-sdk.d.ts +3 -4
  24. package/dist/guard/ai-sdk.d.ts.map +1 -1
  25. package/dist/guard/ai-sdk.js +3 -4
  26. package/dist/guard/ai-sdk.js.map +1 -1
  27. package/dist/guard/provider-guard.d.ts.map +1 -1
  28. package/dist/guard/provider-guard.js +3 -0
  29. package/dist/guard/provider-guard.js.map +1 -1
  30. package/dist/guard/types.d.ts +3 -1
  31. package/dist/guard/types.d.ts.map +1 -1
  32. package/dist/index.d.ts +5 -4
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -4
  35. package/dist/index.js.map +1 -1
  36. package/dist/providers/ai-sdk.d.ts +2 -0
  37. package/dist/providers/ai-sdk.d.ts.map +1 -1
  38. package/dist/providers/ai-sdk.js +57 -3
  39. package/dist/providers/ai-sdk.js.map +1 -1
  40. package/dist/providers/gemini.d.ts +1 -1
  41. package/dist/providers/gemini.d.ts.map +1 -1
  42. package/dist/providers/gemini.js +35 -8
  43. package/dist/providers/gemini.js.map +1 -1
  44. package/dist/providers/openai-compatible.d.ts +2 -1
  45. package/dist/providers/openai-compatible.d.ts.map +1 -1
  46. package/dist/providers/openai-compatible.js +54 -6
  47. package/dist/providers/openai-compatible.js.map +1 -1
  48. package/package.json +8 -3
package/dist/gate/gate.js CHANGED
@@ -20,6 +20,8 @@ class DefaultToolCallExecutionGate {
20
20
  streamEndReason;
21
21
  streamEndProviderReason;
22
22
  streamEndCaptured = false;
23
+ finalResult;
24
+ consumedExecutionIds = new Set();
23
25
  constructor(limits, parserOptions, toolSchemas) {
24
26
  this.coordinator = createToolCallStreamCoordinator(limits, parserOptions, toolSchemas);
25
27
  }
@@ -47,6 +49,16 @@ class DefaultToolCallExecutionGate {
47
49
  drainEvents() {
48
50
  return this.coordinator.drainEvents();
49
51
  }
52
+ takeDecision(internalId) {
53
+ if (this.finalResult === undefined || this.consumedExecutionIds.has(internalId)) {
54
+ return undefined;
55
+ }
56
+ const decision = this.finalResult.decisions.find((candidate) => candidate.internalId === internalId);
57
+ if (decision?.action !== "execute")
58
+ return undefined;
59
+ this.consumedExecutionIds.add(internalId);
60
+ return decision;
61
+ }
50
62
  finish(meta) {
51
63
  if (!this.streamEndCaptured) {
52
64
  this.streamEndCaptured = true;
@@ -67,7 +79,8 @@ class DefaultToolCallExecutionGate {
67
79
  diagnostics,
68
80
  };
69
81
  const decisions = result.calls.map((call) => decideExecution(call, ctx));
70
- return { decisions, diagnostics };
82
+ this.finalResult = { decisions, diagnostics };
83
+ return this.finalResult;
71
84
  }
72
85
  }
73
86
  /**
@@ -85,8 +98,10 @@ class DefaultToolCallExecutionGate {
85
98
  * for (const raw of providerEvents) {
86
99
  * for (const normalized of adapter.push(raw)) gate.push(normalized);
87
100
  * }
88
- * for (const decision of gate.finish().decisions) {
89
- * if (decision.action === "execute") await tools[decision.name](decision.value);
101
+ * const final = gate.finish();
102
+ * for (const observed of final.decisions) {
103
+ * const authority = gate.takeDecision(observed.internalId);
104
+ * if (authority) await tools[authority.name](authority.value);
90
105
  * }
91
106
  * ```
92
107
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/gate/gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gate.js","sourceRoot":"","sources":["../../src/gate/gate.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export type ExecutionAction = "execute" | "retry" | "reject";
18
18
  * Machine-readable classification of *why* an `ExecutionAction` was chosen.
19
19
  * See `docs/EXECUTION_GATE.md` for the full decision table.
20
20
  */
21
- export type ExecutionReason = "complete" | "truncated" | "stream_incomplete" | "schema_invalid" | "malformed" | "resource_limit" | "provider_error" | "content_filtered" | "sdk_execution_observed" | "unknown";
21
+ export type ExecutionReason = "complete" | "truncated" | "stream_incomplete" | "schema_invalid" | "malformed" | "resource_limit" | "provider_error" | "content_filtered" | "sdk_execution_observed" | "projection_only" | "protocol_violation" | "unknown";
22
22
  /**
23
23
  * Why a decision came out the way it did - observability, not a second
24
24
  * decision input. Every field here is read-only, derived state already held
@@ -175,6 +175,12 @@ export interface ToolCallExecutionGate {
175
175
  snapshot(): readonly ExecutionDecision[];
176
176
  /** Drains the underlying coordinator's raw event queue, for advanced/UI consumers. */
177
177
  drainEvents(): readonly ToolCallCoordinatorEvent[];
178
+ /**
179
+ * Takes this call's executable decision at most once. Returns `undefined`
180
+ * before `finish()`, for non-executable/unknown calls, and after the same
181
+ * call's authority has already been taken. Other calls are unaffected.
182
+ */
183
+ takeDecision(internalId: string): ExecuteDecision | undefined;
178
184
  finish(meta?: {
179
185
  reason?: StreamEndReason;
180
186
  providerReason?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gate/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/gate/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-execution-lock.d.ts","sourceRoot":"","sources":["../../src/guard/ai-sdk-execution-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,kBAAkB,GAAG,eAAe,CAAC,GAAG;IAC7H,aAAa,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,8FAA8F;AAC9F,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;KACnE,CAAC,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAChD,CAAC;AA+NF,wBAAgB,wBAAwB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAwBvH"}
1
+ {"version":3,"file":"ai-sdk-execution-lock.d.ts","sourceRoot":"","sources":["../../src/guard/ai-sdk-execution-lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,kBAAkB,GAAG,eAAe,CAAC,GAAG;IAC7H,aAAa,EAAE,IAAI,CAAC;CACrB,CAAC;AAEF,8FAA8F;AAC9F,MAAM,MAAM,gBAAgB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI;KACnE,CAAC,IAAI,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;CAChD,CAAC;AAiOF,wBAAgB,wBAAwB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAwBvH"}
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk-execution-lock.js","sourceRoot":"","sources":["../../src/guard/ai-sdk-execution-lock.ts"],"names":[],"mappings":"AA0KA;;;;;;GAMG;AACH,SAAS,8BAA8B,CAAC,IAAY,EAAE,UAAsB;IAC1E,IAAI,UAAU,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,sDAAsD;YAC3F,0FAA0F;YAC1F,0FAA0F;YAC1F,4FAA4F,CAC/F,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;YAC5C,wEAAwE;YACxE,wDAAwD;YACxD,kEAAkE;YAClE,oEAAoE;YACpE,2CAA2C;YAC3C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,yDAAyD;YAC9F,6FAA6F;YAC7F,0FAA0F;YAC1F,6FAA6F;YAC7F,yFAAyF;YACzF,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,iDAAiD;YACtF,mFAAmF;YACnF,0FAA0F;YAC1F,4FAA4F;YAC5F,4FAA4F;YAC5F,gEAAgE,CACnE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,+BAA+B,CAAC,IAAY,EAAE,UAAsB;IAC3E,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,UAAU;QAAE,OAAO;IACzD,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,0CAA0C;QAC/E,yFAAyF;QACzF,wFAAwF;QACxF,4FAA4F;QAC5F,6FAA6F;QAC7F,4FAA4F,CAC/F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAwC,KAAa;IAC3F,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,UAAwB,CAAC;QACvC,8BAA8B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,+EAA+E;YAC/E,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,mEAAmE;YACnE,+BAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,EACJ,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,oBAAoB,EAClC,YAAY,EAAE,oBAAoB,EAClC,gBAAgB,EAAE,wBAAwB,EAC1C,aAAa,EAAE,qBAAqB,EACpC,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,MAAkC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"ai-sdk-execution-lock.js","sourceRoot":"","sources":["../../src/guard/ai-sdk-execution-lock.ts"],"names":[],"mappings":"AA4KA;;;;;;GAMG;AACH,SAAS,8BAA8B,CAAC,IAAY,EAAE,UAAsB;IAC1E,IAAI,UAAU,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,sDAAsD;YAC3F,0FAA0F;YAC1F,0FAA0F;YAC1F,4FAA4F,CAC/F,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,kBAAkB,KAAK,KAAK,EAAE,CAAC;YAC5C,wEAAwE;YACxE,wDAAwD;YACxD,kEAAkE;YAClE,oEAAoE;YACpE,2CAA2C;YAC3C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,yDAAyD;YAC9F,6FAA6F;YAC7F,0FAA0F;YAC1F,6FAA6F;YAC7F,yFAAyF;YACzF,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,iDAAiD;YACtF,mFAAmF;YACnF,0FAA0F;YAC1F,4FAA4F;YAC5F,4FAA4F;YAC5F,gEAAgE,CACnE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,+BAA+B,CAAC,IAAY,EAAE,UAAsB;IAC3E,IAAI,OAAO,UAAU,CAAC,WAAW,KAAK,UAAU;QAAE,OAAO;IACzD,MAAM,IAAI,KAAK,CACb,mCAAmC,IAAI,0CAA0C;QAC/E,yFAAyF;QACzF,wFAAwF;QACxF,4FAA4F;QAC5F,6FAA6F;QAC7F,4FAA4F,CAC/F,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAwC,KAAa;IAC3F,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,UAAwB,CAAC;QACvC,8BAA8B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,+EAA+E;YAC/E,yEAAyE;YACzE,wEAAwE;YACxE,wEAAwE;YACxE,mEAAmE;YACnE,+BAA+B,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,EACJ,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,oBAAoB,EAClC,YAAY,EAAE,oBAAoB,EAClC,gBAAgB,EAAE,wBAAwB,EAC1C,aAAa,EAAE,qBAAqB,EACpC,GAAG,IAAI,EACR,GAAG,KAAK,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,MAAkC,CAAC;AAC5C,CAAC"}
@@ -23,10 +23,9 @@ import { AiSdkExecutionGuard, ExecutionGuardOptions } from "./types.js";
23
23
  * }
24
24
  *
25
25
  * const final = guard.finish();
26
- * for (const decision of final.decisions) {
27
- * if (decision.action === "execute") {
28
- * await tools[decision.name](decision.value);
29
- * }
26
+ * for (const observed of final.decisions) {
27
+ * const authority = guard.takeDecision(observed.internalId);
28
+ * if (authority) await tools[authority.name](authority.value);
30
29
  * }
31
30
  * ```
32
31
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/guard/ai-sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,mBAAmB,CAE9F"}
1
+ {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/guard/ai-sdk.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,mBAAmB,CAE9F"}
@@ -24,10 +24,9 @@ import { createProviderExecutionGuard } from "./provider-guard.js";
24
24
  * }
25
25
  *
26
26
  * const final = guard.finish();
27
- * for (const decision of final.decisions) {
28
- * if (decision.action === "execute") {
29
- * await tools[decision.name](decision.value);
30
- * }
27
+ * for (const observed of final.decisions) {
28
+ * const authority = guard.takeDecision(observed.internalId);
29
+ * if (authority) await tools[authority.name](authority.value);
31
30
  * }
32
31
  * ```
33
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../../src/guard/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA+B;IACvE,OAAO,4BAA4B,CAAC,IAAI,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../../src/guard/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAGnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAA+B;IACvE,OAAO,4BAA4B,CAAC,IAAI,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider-guard.d.ts","sourceRoot":"","sources":["../../src/guard/provider-guard.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,4BAA4B,CAAC,SAAS,EACpD,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,EACzC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,SAAS,CAAC,CA0B3B"}
1
+ {"version":3,"file":"provider-guard.d.ts","sourceRoot":"","sources":["../../src/guard/provider-guard.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnE,wBAAgB,4BAA4B,CAAC,SAAS,EACpD,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,EACzC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAAC,SAAS,CAAC,CA8B3B"}
@@ -22,6 +22,9 @@ export function createProviderExecutionGuard(adapter, options) {
22
22
  snapshot() {
23
23
  return gate.snapshot();
24
24
  },
25
+ takeDecision(internalId) {
26
+ return gate.takeDecision(internalId);
27
+ },
25
28
  finish(meta) {
26
29
  // If the provider stream already delivered its own terminal event
27
30
  // through push() (the common case), the adapter is already
@@ -1 +1 @@
1
- {"version":3,"file":"provider-guard.js","sourceRoot":"","sources":["../../src/guard/provider-guard.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8DAA8D;AAC9D,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,wEAAwE;AACxE,4EAA4E;AAC5E,+CAA+C;AAC/C,8EAA8E;AAE9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAM9D,MAAM,UAAU,4BAA4B,CAC1C,OAAyC,EACzC,OAA+B;IAE/B,MAAM,IAAI,GAAG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEpG,OAAO;QACL,IAAI,CAAC,QAAmB;YACtB,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,QAAQ;YACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,CAAC,IAA4D;YACjE,kEAAkE;YAClE,2DAA2D;YAC3D,+DAA+D;YAC/D,qEAAqE;YACrE,2DAA2D;YAC3D,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"provider-guard.js","sourceRoot":"","sources":["../../src/guard/provider-guard.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8DAA8D;AAC9D,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,wEAAwE;AACxE,4EAA4E;AAC5E,+CAA+C;AAC/C,8EAA8E;AAE9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAM9D,MAAM,UAAU,4BAA4B,CAC1C,OAAyC,EACzC,OAA+B;IAE/B,MAAM,IAAI,GAAG,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEpG,OAAO;QACL,IAAI,CAAC,QAAmB;YACtB,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,QAAQ;YACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,YAAY,CAAC,UAAkB;YAC7B,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,CAAC,IAA4D;YACjE,kEAAkE;YAClE,2DAA2D;YAC3D,+DAA+D;YAC/D,qEAAqE;YACrE,2DAA2D;YAC3D,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { StreamEndReason } from "../coordinator/protocol.js";
2
2
  import { CoordinatorLimits, JsonSchemaLike } from "../coordinator/types.js";
3
- import { ToolCallExecutionGateFinalResult, ExecutionDecision } from "../gate/types.js";
3
+ import { ToolCallExecutionGateFinalResult, ExecutionDecision, ExecuteDecision } from "../gate/types.js";
4
4
  import { ParserOptions } from "../types.js";
5
5
  /**
6
6
  * High-level, provider-agnostic execution guard: composes a
@@ -18,6 +18,8 @@ export interface ExecutionGuard<TRawEvent = unknown> {
18
18
  * only ever returned from `finish()`.
19
19
  */
20
20
  snapshot(): readonly ExecutionDecision[];
21
+ /** Takes one call's executable decision once, without consuming any other call. */
22
+ takeDecision(internalId: string): ExecuteDecision | undefined;
21
23
  /**
22
24
  * Signals stream completion and returns the final decision for every tool
23
25
  * call the stream ever produced. Safe to call even if the underlying
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guard/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,SAAS,GAAG,OAAO;IACjD,kGAAkG;IAClG,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,IAAI,SAAS,iBAAiB,EAAE,CAAC;IAEzC;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gCAAgC,CAAC;CACxG;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpC,gEAAgE;IAChE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,4GAA4G;AAC5G,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/guard/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EACL,gCAAgC,EAChC,iBAAiB,EACjB,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,cAAc,CAAC,SAAS,GAAG,OAAO;IACjD,kGAAkG;IAClG,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;OAIG;IACH,QAAQ,IAAI,SAAS,iBAAiB,EAAE,CAAC;IAEzC,mFAAmF;IACnF,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IAE9D;;;;;;OAMG;IACH,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gCAAgC,CAAC;CACxG;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAEzC,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAEpC,gEAAgE;IAChE,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,4GAA4G;AAC5G,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -58,7 +58,7 @@ export type { ExecutionGuard, AiSdkExecutionGuard, ExecutionGuardOptions } from
58
58
  * }` are all rejected; `ai@7`'s `{ type: "provider", isProviderExecuted:
59
59
  * false }` (verified to have no `execute` field at all, so the SDK can never
60
60
  * auto-run it) is accepted. Real execution stays exactly where it already
61
- * was: driven manually from `guard.finish().decisions`. See the function's
61
+ * was: driven manually from one-shot `guard.takeDecision()`. See the function's
62
62
  * own doc comment for the exact, precisely-scoped guarantee, its real
63
63
  * limits, and the explicit non-sandbox threat-model boundary around
64
64
  * caller-provided schema/validation code, and
@@ -84,6 +84,7 @@ export { OpenAIStreamAdapter } from "./providers/openai.js";
84
84
  * @public (Experimental)
85
85
  * Generic OpenAI-compatible `choices[].delta.tool_calls[]` streaming
86
86
  * shape, shared by OpenAI's current API and most compatible endpoints.
87
+ * Requires an explicit non-negative integer `choice.index` for identity.
87
88
  */
88
89
  export { OpenAICompatibleStreamAdapter } from "./providers/openai-compatible.js";
89
90
  /**
@@ -97,7 +98,7 @@ export { AnthropicStreamAdapter } from "./providers/anthropic.js";
97
98
  * Gemini's structured `functionCall` shape. Unlike the other adapters,
98
99
  * Gemini delivers function-call arguments as an already-parsed object, not
99
100
  * incremental raw JSON text - see docs/COMPATIBILITY.md for what that
100
- * means for this adapter's guarantees.
101
+ * means for this adapter's inspection-only, non-executable projection.
101
102
  */
102
103
  export { GeminiStreamAdapter } from "./providers/gemini.js";
103
104
  /**
@@ -110,8 +111,8 @@ export { OpenRouterStreamAdapter } from "./providers/openrouter.js";
110
111
  * @public (Experimental)
111
112
  * Vercel AI SDK's `fullStream` tool-call part shape
112
113
  * (`tool-input-start`/`-delta`/`-end`, `tool-call`, `tool-result`,
113
- * `tool-error`, `finish`, `error`, `abort`). Verified against `ai@5.0.240`,
114
- * `ai@6.0.259`, `ai@7.0.70` - see docs/COMPATIBILITY.md. Prefer
114
+ * `tool-error`, `finish`, `error`, `abort`). Verified against `ai@5.0.244`,
115
+ * `ai@6.0.264`, `ai@7.0.77` - see docs/COMPATIBILITY.md. Prefer
115
116
  * `createAiSdkExecutionGuard()` (Stable, above) for the common case; use
116
117
  * this directly only if you need the adapter instance itself.
117
118
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,YAAY,EAEV,qBAAqB,EACrB,aAAa,EAGb,UAAU,EACV,cAAc,EACd,WAAW,EAGX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EAGnB,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,mGAAmG;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,yFAAyF;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD;;;GAGG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,YAAY,EACV,yBAAyB,EACzB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzF;;;;;;GAMG;AACH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAGrF;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EACV,qBAAqB,EACrB,gCAAgC,EAChC,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAG1F;;;;;;GAMG;AACH,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAOpE;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF;;;;GAIG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;;;;GAQG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,YAAY,EAEV,qBAAqB,EACrB,aAAa,EAGb,UAAU,EACV,cAAc,EACd,WAAW,EAGX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EAGnB,SAAS,EACT,UAAU,EACV,SAAS,EACT,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,mGAAmG;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,yFAAyF;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD;;;GAGG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,YAAY,EACV,yBAAyB,EACzB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzF;;;;;;GAMG;AACH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAGrF;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,YAAY,EACV,qBAAqB,EACrB,gCAAgC,EAChC,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAG1F;;;;;;GAMG;AACH,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAOpE;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;GAKG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF;;;;GAIG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;;;;GAQG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -69,7 +69,7 @@ export { createAiSdkExecutionGuard } from "./guard/ai-sdk.js";
69
69
  * }` are all rejected; `ai@7`'s `{ type: "provider", isProviderExecuted:
70
70
  * false }` (verified to have no `execute` field at all, so the SDK can never
71
71
  * auto-run it) is accepted. Real execution stays exactly where it already
72
- * was: driven manually from `guard.finish().decisions`. See the function's
72
+ * was: driven manually from one-shot `guard.takeDecision()`. See the function's
73
73
  * own doc comment for the exact, precisely-scoped guarantee, its real
74
74
  * limits, and the explicit non-sandbox threat-model boundary around
75
75
  * caller-provided schema/validation code, and
@@ -90,6 +90,7 @@ export { OpenAIStreamAdapter } from "./providers/openai.js";
90
90
  * @public (Experimental)
91
91
  * Generic OpenAI-compatible `choices[].delta.tool_calls[]` streaming
92
92
  * shape, shared by OpenAI's current API and most compatible endpoints.
93
+ * Requires an explicit non-negative integer `choice.index` for identity.
93
94
  */
94
95
  export { OpenAICompatibleStreamAdapter } from "./providers/openai-compatible.js";
95
96
  /**
@@ -103,7 +104,7 @@ export { AnthropicStreamAdapter } from "./providers/anthropic.js";
103
104
  * Gemini's structured `functionCall` shape. Unlike the other adapters,
104
105
  * Gemini delivers function-call arguments as an already-parsed object, not
105
106
  * incremental raw JSON text - see docs/COMPATIBILITY.md for what that
106
- * means for this adapter's guarantees.
107
+ * means for this adapter's inspection-only, non-executable projection.
107
108
  */
108
109
  export { GeminiStreamAdapter } from "./providers/gemini.js";
109
110
  /**
@@ -116,8 +117,8 @@ export { OpenRouterStreamAdapter } from "./providers/openrouter.js";
116
117
  * @public (Experimental)
117
118
  * Vercel AI SDK's `fullStream` tool-call part shape
118
119
  * (`tool-input-start`/`-delta`/`-end`, `tool-call`, `tool-result`,
119
- * `tool-error`, `finish`, `error`, `abort`). Verified against `ai@5.0.240`,
120
- * `ai@6.0.259`, `ai@7.0.70` - see docs/COMPATIBILITY.md. Prefer
120
+ * `tool-error`, `finish`, `error`, `abort`). Verified against `ai@5.0.244`,
121
+ * `ai@6.0.264`, `ai@7.0.77` - see docs/COMPATIBILITY.md. Prefer
121
122
  * `createAiSdkExecutionGuard()` (Stable, above) for the common case; use
122
123
  * this directly only if you need the adapter instance itself.
123
124
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gCAAgC;AAChC,EAAE;AACF,sEAAsE;AACtE,iEAAiE;AACjE,gEAAgE;AAChE,sEAAsE;AACtE,0EAA0E;AAC1E,iEAAiE;AACjE,+DAA+D;AAC/D,0EAA0E;AAC1E,oCAAoC;AACpC,8EAA8E;AAE9E;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiC3C,mGAAmG;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,yFAAyF;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,kBAAkB;AAClB;;;GAGG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAS/E;;;;;;GAMG;AACH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAErF,4BAA4B;AAC5B;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAY7D,8BAA8B;AAC9B;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAa5E,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AAExE;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF;;;;GAIG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;;;;GAQG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,gCAAgC;AAChC,EAAE;AACF,sEAAsE;AACtE,iEAAiE;AACjE,gEAAgE;AAChE,sEAAsE;AACtE,0EAA0E;AAC1E,iEAAiE;AACjE,+DAA+D;AAC/D,0EAA0E;AAC1E,oCAAoC;AACpC,8EAA8E;AAE9E;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAiC3C,mGAAmG;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,yFAAyF;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,kBAAkB;AAClB;;;GAGG;AACH,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAS/E;;;;;;GAMG;AACH,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AAErF,4BAA4B;AAC5B;;;;;GAKG;AACH,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAY7D,8BAA8B;AAC9B;;;;;GAKG;AACH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAG9D;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAa5E,0EAA0E;AAC1E,yEAAyE;AACzE,2EAA2E;AAC3E,wEAAwE;AAExE;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;;GAKG;AACH,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF;;;;GAIG;AACH,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;;;;;GAMG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAEpE;;;;;;;;GAQG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -53,6 +53,8 @@ export declare class AiSdkStreamAdapter implements ProviderStreamAdapter<unknown
53
53
  readonly provider: ProviderName;
54
54
  private sequence;
55
55
  private finished;
56
+ private readonly startedCallKeys;
57
+ private readonly endedCallKeys;
56
58
  push(rawEvent: unknown): readonly NormalizedToolStreamEvent[];
57
59
  finish(meta?: {
58
60
  reason?: StreamEndReason;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/providers/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAqBrD,UAAU,uBAAuB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAGnB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAInB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GACvB,uBAAuB,GACvB,uBAAuB,GACvB,qBAAqB,GACrB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,cAAc,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AA4B7C,qBAAa,kBAAmB,YAAW,qBAAqB,CAAC,OAAO,CAAC;IACvE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE;IA6M7D,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,yBAAyB,EAAE;CAW3G"}
1
+ {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../../src/providers/ai-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAyBrD,UAAU,uBAAuB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,qBAAqB;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAGnB;AAED,UAAU,mBAAmB;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAInB;AAED,UAAU,kBAAkB;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,eAAe,GACvB,uBAAuB,GACvB,uBAAuB,GACvB,qBAAqB,GACrB,iBAAiB,GACjB,mBAAmB,GACnB,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,cAAc,GACd;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AA4B7C,qBAAa,kBAAmB,YAAW,qBAAqB,CAAC,OAAO,CAAC;IACvE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE;IAiQ7D,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,yBAAyB,EAAE;CAW3G"}
@@ -1,4 +1,4 @@
1
- import { CONTENT_FILTERED_DIAGNOSTIC_CODE, SDK_EXECUTION_OBSERVED_DIAGNOSTIC_CODE, SDK_EXECUTION_ERROR_DIAGNOSTIC_CODE, } from "../coordinator/diagnostic-codes.js";
1
+ import { CONTENT_FILTERED_DIAGNOSTIC_CODE, SDK_EXECUTION_OBSERVED_DIAGNOSTIC_CODE, SDK_EXECUTION_ERROR_DIAGNOSTIC_CODE, DUPLICATE_TOOL_END_DIAGNOSTIC_CODE, TOOL_ARGUMENTS_AFTER_END_DIAGNOSTIC_CODE, TOOL_ARGUMENTS_BEFORE_START_DIAGNOSTIC_CODE, TOOL_END_BEFORE_START_DIAGNOSTIC_CODE, } from "../coordinator/diagnostic-codes.js";
2
2
  function toolPartId(part) {
3
3
  // "tool-input-start"/"tool-input-delta" carry `id`; "tool-input-end" is
4
4
  // documented with `toolCallId`. Reading both defensively means this
@@ -28,6 +28,8 @@ export class AiSdkStreamAdapter {
28
28
  provider = "ai-sdk";
29
29
  sequence = 0;
30
30
  finished = false;
31
+ startedCallKeys = new Set();
32
+ endedCallKeys = new Set();
31
33
  push(rawEvent) {
32
34
  if (this.finished)
33
35
  return [];
@@ -55,6 +57,7 @@ export class AiSdkStreamAdapter {
55
57
  const id = toolPartId(part);
56
58
  if (id === undefined)
57
59
  break;
60
+ this.startedCallKeys.add(`tool-input:${id}`);
58
61
  events.push({
59
62
  type: "tool_call_start",
60
63
  sequence: ++this.sequence,
@@ -69,11 +72,36 @@ export class AiSdkStreamAdapter {
69
72
  const id = toolPartId(part);
70
73
  if (id === undefined || typeof part.delta !== "string")
71
74
  break;
75
+ const sourceKey = `tool-input:${id}`;
76
+ if (!this.startedCallKeys.has(sourceKey)) {
77
+ events.push({
78
+ type: "provider_diagnostic",
79
+ sequence: ++this.sequence,
80
+ provider: this.provider,
81
+ callRef: { sourceKey },
82
+ code: TOOL_ARGUMENTS_BEFORE_START_DIAGNOSTIC_CODE,
83
+ severity: "error",
84
+ message: "AI SDK tool-input-delta arrived before tool-input-start",
85
+ });
86
+ break;
87
+ }
88
+ if (this.endedCallKeys.has(sourceKey)) {
89
+ events.push({
90
+ type: "provider_diagnostic",
91
+ sequence: ++this.sequence,
92
+ provider: this.provider,
93
+ callRef: { sourceKey },
94
+ code: TOOL_ARGUMENTS_AFTER_END_DIAGNOSTIC_CODE,
95
+ severity: "error",
96
+ message: "AI SDK tool-input-delta arrived after tool-input-end",
97
+ });
98
+ break;
99
+ }
72
100
  events.push({
73
101
  type: "tool_call_arguments_delta",
74
102
  sequence: ++this.sequence,
75
103
  provider: this.provider,
76
- callRef: { sourceKey: `tool-input:${id}` },
104
+ callRef: { sourceKey },
77
105
  delta: part.delta,
78
106
  });
79
107
  break;
@@ -82,11 +110,37 @@ export class AiSdkStreamAdapter {
82
110
  const id = toolPartId(part);
83
111
  if (id === undefined)
84
112
  break;
113
+ const sourceKey = `tool-input:${id}`;
114
+ if (!this.startedCallKeys.has(sourceKey)) {
115
+ events.push({
116
+ type: "provider_diagnostic",
117
+ sequence: ++this.sequence,
118
+ provider: this.provider,
119
+ callRef: { sourceKey },
120
+ code: TOOL_END_BEFORE_START_DIAGNOSTIC_CODE,
121
+ severity: "error",
122
+ message: "AI SDK tool-input-end arrived before tool-input-start",
123
+ });
124
+ break;
125
+ }
126
+ if (this.endedCallKeys.has(sourceKey)) {
127
+ events.push({
128
+ type: "provider_diagnostic",
129
+ sequence: ++this.sequence,
130
+ provider: this.provider,
131
+ callRef: { sourceKey },
132
+ code: DUPLICATE_TOOL_END_DIAGNOSTIC_CODE,
133
+ severity: "error",
134
+ message: "AI SDK emitted duplicate tool-input-end parts for one call",
135
+ });
136
+ break;
137
+ }
138
+ this.endedCallKeys.add(sourceKey);
85
139
  events.push({
86
140
  type: "tool_call_end",
87
141
  sequence: ++this.sequence,
88
142
  provider: this.provider,
89
- callRef: { sourceKey: `tool-input:${id}` },
143
+ callRef: { sourceKey },
90
144
  reason: "complete", // corrected by the stream-level "finish" part below
91
145
  });
92
146
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../../src/providers/ai-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-sdk.js","sourceRoot":"","sources":["../../src/providers/ai-sdk.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { ProviderName, NormalizedToolStreamEvent, StreamEndReason } from "../coo
2
2
  import { ProviderStreamAdapter } from "./adapter.js";
3
3
  interface GeminiFunctionCall {
4
4
  name?: string;
5
- args?: Record<string, unknown>;
5
+ args?: unknown;
6
6
  }
7
7
  interface GeminiPart {
8
8
  functionCall?: GeminiFunctionCall;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAGrD,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAGnC;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,qBAAa,mBAAoB,YAAW,qBAAqB,CAAC,OAAO,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE;IAoF7D,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,yBAAyB,EAAE;CAW3G"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAIrD,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAGnC;AAED,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC;AAED,qBAAa,mBAAoB,YAAW,qBAAqB,CAAC,OAAO,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAY;IAC3C,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE;IA8G7D,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,yBAAyB,EAAE;CAW3G"}
@@ -1,3 +1,4 @@
1
+ import { PROJECTION_ONLY_ARGUMENTS_DIAGNOSTIC_CODE } from "../coordinator/diagnostic-codes.js";
1
2
  export class GeminiStreamAdapter {
2
3
  provider = "gemini";
3
4
  sequence = 0;
@@ -32,17 +33,43 @@ export class GeminiStreamAdapter {
32
33
  callRef: { sourceKey },
33
34
  name: fc.name,
34
35
  });
35
- if (fc.args) {
36
+ events.push({
37
+ type: "provider_diagnostic",
38
+ sequence: ++this.sequence,
39
+ provider: this.provider,
40
+ callRef: { sourceKey },
41
+ code: PROJECTION_ONLY_ARGUMENTS_DIAGNOSTIC_CODE,
42
+ severity: "warning",
43
+ message: "Gemini function-call arguments are a structured projection, not raw streamed argument evidence",
44
+ });
45
+ if (fc.args !== undefined) {
36
46
  // Gemini currently emits structured objects.
37
47
  // We serialize it to emulate a text delta, BUT it is documented in docs/providers/gemini.md
38
48
  // that this is NOT byte-level streaming. It is object-level final delivery.
39
- events.push({
40
- type: "tool_call_arguments_delta",
41
- sequence: ++this.sequence,
42
- provider: this.provider,
43
- callRef: { sourceKey },
44
- delta: JSON.stringify(fc.args),
45
- });
49
+ try {
50
+ const projected = JSON.stringify(fc.args);
51
+ if (projected === undefined) {
52
+ throw new TypeError("structured arguments are not JSON-serializable");
53
+ }
54
+ events.push({
55
+ type: "tool_call_arguments_delta",
56
+ sequence: ++this.sequence,
57
+ provider: this.provider,
58
+ callRef: { sourceKey },
59
+ delta: projected,
60
+ });
61
+ }
62
+ catch {
63
+ events.push({
64
+ type: "provider_diagnostic",
65
+ sequence: ++this.sequence,
66
+ provider: this.provider,
67
+ callRef: { sourceKey },
68
+ code: "E_GEMINI_ARGUMENT_PROJECTION_FAILED",
69
+ severity: "error",
70
+ message: "Gemini structured function-call arguments could not be projected to JSON",
71
+ });
72
+ }
46
73
  }
47
74
  events.push({
48
75
  type: "tool_call_end",
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"AA4BA,MAAM,OAAO,mBAAmB;IACrB,QAAQ,GAAiB,QAAQ,CAAC;IACnC,QAAQ,GAAG,CAAC,CAAC;IACb,QAAQ,GAAG,KAAK,CAAC;IAEzB,IAAI,CAAC,QAAiB;QACpB,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAE7B,MAAM,MAAM,GAAgC,EAAE,CAAC;QAE/C,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,4BAA4B;gBAClC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,4BAA4B;aACtC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,QAAuB,CAAC;QAEtC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;gBACrE,IAAI,SAAS,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBAChE,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;wBAClE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;4BACtB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC;4BAC7B,MAAM,SAAS,GAAG,aAAa,cAAc,SAAS,SAAS,EAAE,CAAC;4BAElE,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,iBAAiB;gCACvB,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ;gCACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,OAAO,EAAE,EAAE,SAAS,EAAE;gCACtB,IAAI,EAAE,EAAE,CAAC,IAAI;6BACd,CAAC,CAAC;4BAEH,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;gCACZ,6CAA6C;gCAC7C,6FAA6F;gCAC7F,4EAA4E;gCAC5E,MAAM,CAAC,IAAI,CAAC;oCACV,IAAI,EAAE,2BAA2B;oCACjC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ;oCACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oCACvB,OAAO,EAAE,EAAE,SAAS,EAAE;oCACtB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC;iCAC/B,CAAC,CAAC;4BACL,CAAC;4BAED,MAAM,CAAC,IAAI,CAAC;gCACV,IAAI,EAAE,eAAe;gCACrB,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ;gCACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gCACvB,OAAO,EAAE,EAAE,SAAS,EAAE;gCACtB,MAAM,EAAE,UAAU;6BACnB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;oBAC3B,IAAI,MAAM,GAAoB,SAAS,CAAC;oBACxC,IAAI,SAAS,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;wBACtC,MAAM,GAAG,UAAU,CAAC;oBACtB,CAAC;yBAAM,IAAI,SAAS,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;wBACnD,MAAM,GAAG,QAAQ,CAAC;oBACpB,CAAC;yBAAM,IAAI,SAAS,CAAC,YAAY,KAAK,QAAQ,IAAI,SAAS,CAAC,YAAY,KAAK,YAAY,IAAI,SAAS,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;wBAChI,MAAM,GAAG,WAAW,CAAC;oBACvB,CAAC;oBAED,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,qBAAqB;wBAC3B,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ;wBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,MAAM;wBACN,cAAc,EAAE,SAAS,CAAC,YAAY;qBACvC,CAAC,CAAC;oBACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,IAA4D;QACjE,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,CAAC;gBACN,IAAI,EAAE,qBAAqB;gBAC3B,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ;gBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,SAAS;gBACjC,cAAc,EAAE,IAAI,EAAE,cAAc;aACrC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ interface OpenAIChoiceDelta {
11
11
  }>;
12
12
  }
13
13
  interface OpenAIChoice {
14
+ index?: number;
14
15
  delta?: OpenAIChoiceDelta;
15
16
  finish_reason?: string | null;
16
17
  }
@@ -20,7 +21,7 @@ export interface OpenAICompatibleEvent {
20
21
  export declare class OpenAICompatibleStreamAdapter implements ProviderStreamAdapter<unknown> {
21
22
  readonly provider: ProviderName;
22
23
  private sequence;
23
- private knownIndices;
24
+ private startedSourceKeys;
24
25
  private knownSourceKeys;
25
26
  private finished;
26
27
  push(rawEvent: unknown): readonly NormalizedToolStreamEvent[];
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE;YACT,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,qBAAa,6BAA8B,YAAW,qBAAqB,CAAC,OAAO,CAAC;IAClF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAK;IAGrB,OAAO,CAAC,YAAY,CAA0B;IAE9C,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE;IAwI7D,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,yBAAyB,EAAE;CAyB3G"}
1
+ {"version":3,"file":"openai-compatible.d.ts","sourceRoot":"","sources":["../../src/providers/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAMrD,UAAU,iBAAiB;IACzB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE;YACT,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC,CAAC;CACJ;AAED,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,qBAAa,6BAA8B,YAAW,qBAAqB,CAAC,OAAO,CAAC;IAClF,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAK;IAGrB,OAAO,CAAC,iBAAiB,CAA0B;IAEnD,OAAO,CAAC,eAAe,CAA0B;IAEjD,OAAO,CAAC,QAAQ,CAAS;IAEzB,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,yBAAyB,EAAE;IAwL7D,MAAM,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,eAAe,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,yBAAyB,EAAE;CAyB3G"}