@irogane/kaji 0.2.0-beta.11 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/README.md +112 -551
  2. package/dist/index.d.mts +253 -0
  3. package/dist/index.mjs +440 -0
  4. package/package.json +28 -166
  5. package/contracts/README.md +0 -14
  6. package/contracts/beta-core-v1.json +0 -52
  7. package/contracts/cli/init-cases-v1.json +0 -27
  8. package/contracts/errors/error-codes.json +0 -48
  9. package/contracts/errors/integration-recovery-v1.json +0 -127
  10. package/contracts/errors/provider-normalization.json +0 -111
  11. package/contracts/events/conformance-invalid.json +0 -20
  12. package/contracts/events/conformance.json +0 -511
  13. package/contracts/events/new-kaji-event-v1.schema.json +0 -1021
  14. package/contracts/events/stored-kaji-event-v1.schema.json +0 -1025
  15. package/contracts/feature-tiers-v1.json +0 -488
  16. package/contracts/integrations/abi-index-v1.json +0 -8
  17. package/contracts/integrations/conformance-invalid.json +0 -443
  18. package/contracts/integrations/conformance-valid.json +0 -121
  19. package/contracts/integrations/copy-provenance-v1.schema.json +0 -61
  20. package/contracts/integrations/echo-tool-abi-v1.json +0 -37
  21. package/contracts/integrations/github-api-conformance-v1.json +0 -644
  22. package/contracts/integrations/github-tool-abi-typescript-v1.json +0 -369
  23. package/contracts/integrations/github-tool-abi-v1.json +0 -146
  24. package/contracts/integrations/gmail-api-conformance-v1.json +0 -750
  25. package/contracts/integrations/gmail-tool-abi-v1.json +0 -62
  26. package/contracts/integrations/index.schema.json +0 -37
  27. package/contracts/integrations/manifest.schema.json +0 -119
  28. package/contracts/parity/expected-normalized.json +0 -4906
  29. package/contracts/parity/scenarios.json +0 -100
  30. package/contracts/parity/scenarios.schema.json +0 -214
  31. package/contracts/providers/cost-conformance.json +0 -112
  32. package/contracts/release/github-proof-v1.schema.json +0 -138
  33. package/contracts/release/gmail-proof-v1.schema.json +0 -138
  34. package/contracts/release/kaji-ts-consumer-handoff-v1.schema.json +0 -1289
  35. package/contracts/release/publisher-identity-receipt-v1.schema.json +0 -319
  36. package/contracts/release/typescript-onboarding-evidence-v1.schema.json +0 -740
  37. package/contracts/tools/conformance-invalid.json +0 -271
  38. package/contracts/tools/conformance-valid.json +0 -78
  39. package/contracts/tools/tool-schema-v1.schema.json +0 -18
  40. package/dist/anthropic.cjs +0 -1231
  41. package/dist/anthropic.cjs.map +0 -1
  42. package/dist/anthropic.d.cts +0 -26
  43. package/dist/anthropic.d.ts +0 -26
  44. package/dist/anthropic.js +0 -270
  45. package/dist/anthropic.js.map +0 -1
  46. package/dist/auth.cjs +0 -1507
  47. package/dist/auth.cjs.map +0 -1
  48. package/dist/auth.d.cts +0 -129
  49. package/dist/auth.d.ts +0 -129
  50. package/dist/auth.js +0 -1039
  51. package/dist/auth.js.map +0 -1
  52. package/dist/base-B9FRMcP8.d.cts +0 -140
  53. package/dist/base-nHQd1VtS.d.ts +0 -140
  54. package/dist/chunk-AAM33KAO.js +0 -4367
  55. package/dist/chunk-AAM33KAO.js.map +0 -1
  56. package/dist/chunk-KAJ6BM64.js +0 -153
  57. package/dist/chunk-KAJ6BM64.js.map +0 -1
  58. package/dist/chunk-KCAXIOZS.js +0 -308
  59. package/dist/chunk-KCAXIOZS.js.map +0 -1
  60. package/dist/chunk-LSJ4AVO2.js +0 -243
  61. package/dist/chunk-LSJ4AVO2.js.map +0 -1
  62. package/dist/chunk-TM7ZGOJX.js +0 -716
  63. package/dist/chunk-TM7ZGOJX.js.map +0 -1
  64. package/dist/cli/bin.d.ts +0 -2
  65. package/dist/cli/bin.js +0 -13
  66. package/dist/cli/bin.js.map +0 -1
  67. package/dist/cli/chunk-2RCWPRVY.js +0 -6277
  68. package/dist/cli/chunk-2RCWPRVY.js.map +0 -1
  69. package/dist/cli/chunk-SEBX54TR.js +0 -681
  70. package/dist/cli/chunk-SEBX54TR.js.map +0 -1
  71. package/dist/cli/index.d.ts +0 -232
  72. package/dist/cli/index.js +0 -11
  73. package/dist/cli/index.js.map +0 -1
  74. package/dist/cli/init-worker.d.ts +0 -2
  75. package/dist/cli/init-worker.js +0 -18
  76. package/dist/cli/init-worker.js.map +0 -1
  77. package/dist/cli/integration-copy-worker.js +0 -48
  78. package/dist/cli/integration-copy-worker.js.map +0 -1
  79. package/dist/cli/package-entry-cjs.cjs +0 -21
  80. package/dist/cli/package-entry-cjs.cjs.map +0 -1
  81. package/dist/cli/package-entry-cjs.d.cts +0 -2
  82. package/dist/cli/package-entry.d.ts +0 -2
  83. package/dist/cli/package-entry.js +0 -13
  84. package/dist/cli/package-entry.js.map +0 -1
  85. package/dist/context-BaFHrQHv.d.cts +0 -21
  86. package/dist/context-BaFHrQHv.d.ts +0 -21
  87. package/dist/context-C-YPY-GS.d.cts +0 -1538
  88. package/dist/context-C-YPY-GS.d.ts +0 -1538
  89. package/dist/index.cjs +0 -12346
  90. package/dist/index.cjs.map +0 -1
  91. package/dist/index.d.cts +0 -1560
  92. package/dist/index.d.ts +0 -1560
  93. package/dist/index.js +0 -7852
  94. package/dist/index.js.map +0 -1
  95. package/dist/integrations/github.cjs +0 -2092
  96. package/dist/integrations/github.cjs.map +0 -1
  97. package/dist/integrations/github.d.cts +0 -21
  98. package/dist/integrations/github.d.ts +0 -21
  99. package/dist/integrations/github.js +0 -2088
  100. package/dist/integrations/github.js.map +0 -1
  101. package/dist/integrations.cjs +0 -3370
  102. package/dist/integrations.cjs.map +0 -1
  103. package/dist/integrations.d.cts +0 -202
  104. package/dist/integrations.d.ts +0 -202
  105. package/dist/integrations.js +0 -2650
  106. package/dist/integrations.js.map +0 -1
  107. package/dist/observability-Cj--OkME.d.cts +0 -96
  108. package/dist/observability-Cj--OkME.d.ts +0 -96
  109. package/dist/openai.cjs +0 -1235
  110. package/dist/openai.cjs.map +0 -1
  111. package/dist/openai.d.cts +0 -32
  112. package/dist/openai.d.ts +0 -32
  113. package/dist/openai.js +0 -272
  114. package/dist/openai.js.map +0 -1
  115. package/dist/testing.cjs +0 -554
  116. package/dist/testing.cjs.map +0 -1
  117. package/dist/testing.d.cts +0 -43
  118. package/dist/testing.d.ts +0 -43
  119. package/dist/testing.js +0 -118
  120. package/dist/testing.js.map +0 -1
  121. package/registry/echo/index.ts +0 -53
  122. package/registry/echo/manifest.json +0 -53
  123. package/registry/github/LICENSE +0 -105
  124. package/registry/github/client.ts +0 -1727
  125. package/registry/github/index.ts +0 -263
  126. package/registry/github/manifest.json +0 -227
  127. package/registry/github/owner-fixtures.json +0 -10
  128. package/registry/github/tests/github.test.ts +0 -32
  129. package/registry/gmail/LICENSE +0 -105
  130. package/registry/gmail/client.ts +0 -548
  131. package/registry/gmail/index.ts +0 -165
  132. package/registry/gmail/manifest.json +0 -102
  133. package/registry/gmail/owner-fixtures.json +0 -10
  134. package/registry/gmail/tests/gmail.test.ts +0 -32
  135. package/registry/index.json +0 -21
  136. package/registry/index.schema.json +0 -37
  137. package/registry/schema.json +0 -119
package/dist/testing.cjs DELETED
@@ -1,554 +0,0 @@
1
- 'use strict';
2
-
3
- // src/runtime/cancellation.ts
4
- var CancellationError = class extends Error {
5
- constructor(message = "Agent run was cancelled") {
6
- super(message);
7
- this.name = "CancellationError";
8
- }
9
- };
10
- function throwIfCancellationRequested(token) {
11
- if (!token?.isCancelled) return;
12
- if (typeof token.throwIfCancelled === "function") {
13
- token.throwIfCancelled();
14
- }
15
- throw new CancellationError();
16
- }
17
-
18
- // src/providers/base.ts
19
- var PROVIDER_RESPONSE_DIAGNOSTICS = /* @__PURE__ */ Symbol.for(
20
- "kaji.provider.responseDiagnostics"
21
- );
22
- function withProviderResponseDiagnostics(options, sink) {
23
- const internal = { ...options };
24
- Object.defineProperty(internal, PROVIDER_RESPONSE_DIAGNOSTICS, {
25
- value: sink,
26
- enumerable: false
27
- });
28
- return internal;
29
- }
30
- function getProviderResponseDiagnostics(options) {
31
- return options?.[PROVIDER_RESPONSE_DIAGNOSTICS];
32
- }
33
- var DEFAULT_PROVIDER_RESPONSE_LIMITS = Object.freeze({
34
- textMaxBytes: 262144,
35
- toolArgumentsMaxBytes: 65536,
36
- responseMaxBytes: 524288,
37
- toolCallsMax: 64
38
- });
39
- function resolveProviderResponseLimits(limits) {
40
- const resolved = { ...DEFAULT_PROVIDER_RESPONSE_LIMITS, ...limits };
41
- for (const [name, value] of Object.entries(resolved)) {
42
- if (!Number.isSafeInteger(value) || value < 1) {
43
- throw new RangeError(`${name} must be a positive safe integer`);
44
- }
45
- }
46
- return Object.freeze(resolved);
47
- }
48
- function cloneAndFreezeJson(value) {
49
- return cloneJsonValue(value, /* @__PURE__ */ new WeakSet());
50
- }
51
- function canonicalJsonValue(value, subject = "JSON value") {
52
- const ancestors = /* @__PURE__ */ new WeakSet();
53
- const assertUnicodeScalarString = (text) => {
54
- for (let index = 0; index < text.length; index += 1) {
55
- const unit = text.charCodeAt(index);
56
- if (unit >= 55296 && unit <= 56319) {
57
- const next = text.charCodeAt(index + 1);
58
- if (!(next >= 56320 && next <= 57343)) {
59
- throw new TypeError(`${subject} contains an unpaired Unicode surrogate`);
60
- }
61
- index += 1;
62
- } else if (unit >= 56320 && unit <= 57343) {
63
- throw new TypeError(`${subject} contains an unpaired Unicode surrogate`);
64
- }
65
- }
66
- };
67
- const encode = (item) => {
68
- if (item === null) return "null";
69
- switch (typeof item) {
70
- case "boolean":
71
- return item ? "true" : "false";
72
- case "string":
73
- assertUnicodeScalarString(item);
74
- return JSON.stringify(item);
75
- case "number":
76
- if (!Number.isFinite(item)) throw new TypeError(`${subject} contains a non-finite number`);
77
- if (Number.isInteger(item) && !Number.isSafeInteger(item)) {
78
- throw new TypeError(`${subject} contains an integer outside the I-JSON safe range`);
79
- }
80
- return Object.is(item, -0) ? "0" : item.toString();
81
- case "object": {
82
- if (ancestors.has(item)) throw new TypeError(`${subject} must be acyclic`);
83
- if (Object.getOwnPropertySymbols(item).length > 0) {
84
- throw new TypeError(`${subject} JSON object keys must be strings`);
85
- }
86
- ancestors.add(item);
87
- try {
88
- if (Array.isArray(item)) {
89
- const descriptors = Object.getOwnPropertyDescriptors(item);
90
- const values = [];
91
- for (let index = 0; index < item.length; index += 1) {
92
- const descriptor = descriptors[String(index)];
93
- if (descriptor === void 0 || !descriptor.enumerable || !("value" in descriptor)) {
94
- throw new TypeError(`${subject} array values must be enumerable data values`);
95
- }
96
- values.push(encode(descriptor.value));
97
- }
98
- for (const key of Object.keys(descriptors)) {
99
- if (key === "length") continue;
100
- const index = Number(key);
101
- if (Number.isInteger(index) && index >= 0 && index < item.length && String(index) === key) {
102
- continue;
103
- }
104
- throw new TypeError(`${subject} arrays cannot carry named properties`);
105
- }
106
- return `[${values.join(",")}]`;
107
- }
108
- const prototype = Object.getPrototypeOf(item);
109
- if (prototype !== Object.prototype && prototype !== null) {
110
- throw new TypeError(`${subject} contains a non-plain object`);
111
- }
112
- const keys = Object.getOwnPropertyNames(item);
113
- for (const key of keys) {
114
- assertUnicodeScalarString(key);
115
- const descriptor = Object.getOwnPropertyDescriptor(item, key);
116
- if (descriptor === void 0 || !descriptor.enumerable || !("value" in descriptor)) {
117
- throw new TypeError(
118
- `${subject} JSON object properties must be enumerable data values`
119
- );
120
- }
121
- }
122
- return `{${keys.sort().map((key) => {
123
- const descriptor = Object.getOwnPropertyDescriptor(item, key);
124
- return `${JSON.stringify(key)}:${encode(descriptor.value)}`;
125
- }).join(",")}}`;
126
- } finally {
127
- ancestors.delete(item);
128
- }
129
- }
130
- default:
131
- throw new TypeError(`${subject} contains non-JSON value ${typeof item}`);
132
- }
133
- };
134
- return encode(value);
135
- }
136
- function cloneJsonValue(value, ancestors) {
137
- if (value === null || typeof value === "string" || typeof value === "boolean") return value;
138
- if (typeof value === "number") {
139
- if (!Number.isFinite(value) || Number.isInteger(value) && !Number.isSafeInteger(value)) {
140
- throw new TypeError("Event values must be JSON-safe");
141
- }
142
- return value;
143
- }
144
- if (Array.isArray(value)) {
145
- enter(value, ancestors);
146
- const clone = value.map((item) => cloneJsonValue(item, ancestors));
147
- ancestors.delete(value);
148
- return Object.freeze(clone);
149
- }
150
- if (typeof value === "object") {
151
- assertJsonObject(value);
152
- enter(value, ancestors);
153
- const clone = {};
154
- for (const [key, child] of Object.entries(value)) {
155
- Object.defineProperty(clone, key, {
156
- value: cloneJsonValue(child, ancestors),
157
- enumerable: true,
158
- writable: true,
159
- configurable: true
160
- });
161
- }
162
- ancestors.delete(value);
163
- return Object.freeze(clone);
164
- }
165
- throw new TypeError("Event values must be JSON-safe");
166
- }
167
- function assertJsonObject(value) {
168
- const prototype = Object.getPrototypeOf(value);
169
- if (prototype !== Object.prototype && prototype !== null || Object.getOwnPropertySymbols(value).length > 0) {
170
- throw new TypeError("Event values must be JSON-safe");
171
- }
172
- }
173
- function enter(value, ancestors) {
174
- if (ancestors.has(value)) throw new TypeError("Event values must be JSON-safe and acyclic");
175
- ancestors.add(value);
176
- }
177
-
178
- // src/providers/errors.ts
179
- var PROVIDER_OUTPUT_LIMIT_ERROR_BRAND = /* @__PURE__ */ Symbol.for("kaji.ProviderOutputLimitError.v1");
180
- function brand(value, key) {
181
- Object.defineProperty(value, key, { value: true });
182
- }
183
- function hasBrand(value, key) {
184
- return typeof value === "object" && value !== null && Reflect.get(value, key) === true;
185
- }
186
- var ProviderOutputLimitError = class extends Error {
187
- constructor(dimension, limit) {
188
- if (!["text", "tool_arguments", "total_response", "tool_calls"].includes(dimension)) {
189
- throw new TypeError("unknown provider output dimension");
190
- }
191
- if (!Number.isSafeInteger(limit) || limit < 1) {
192
- throw new RangeError("provider output limit must be a positive safe integer");
193
- }
194
- const unit = dimension === "tool_calls" ? "calls" : "bytes";
195
- super(`Provider output exceeded ${dimension} limit of ${limit} ${unit}`);
196
- this.dimension = dimension;
197
- this.limit = limit;
198
- brand(this, PROVIDER_OUTPUT_LIMIT_ERROR_BRAND);
199
- this.name = "ProviderOutputLimitError";
200
- }
201
- dimension;
202
- limit;
203
- code = "PROVIDER_OUTPUT_LIMIT";
204
- phase = "provider_stream";
205
- retryable = false;
206
- outcome = "unknown";
207
- static [Symbol.hasInstance](value) {
208
- return hasBrand(value, PROVIDER_OUTPUT_LIMIT_ERROR_BRAND);
209
- }
210
- };
211
-
212
- // src/providers/response-budget.ts
213
- function scanUtf8Scalars(fragment, pendingHighSurrogate) {
214
- if (typeof fragment !== "string")
215
- throw new TypeError("provider output fragments must be strings");
216
- const input = `${pendingHighSurrogate ?? ""}${fragment}`;
217
- const scalars = [];
218
- let bytes = 0;
219
- let pending;
220
- for (let index = 0; index < input.length; index += 1) {
221
- const unit = input.charCodeAt(index);
222
- if (unit >= 55296 && unit <= 56319) {
223
- if (index + 1 >= input.length) {
224
- pending = input[index];
225
- break;
226
- }
227
- const low = input.charCodeAt(index + 1);
228
- if (!(low >= 56320 && low <= 57343)) {
229
- throw new TypeError("provider output contains an unpaired Unicode surrogate");
230
- }
231
- scalars.push({ text: input.slice(index, index + 2), bytes: 4 });
232
- bytes += 4;
233
- index += 1;
234
- continue;
235
- }
236
- if (unit >= 56320 && unit <= 57343) {
237
- throw new TypeError("provider output contains an unpaired Unicode surrogate");
238
- }
239
- const scalarBytes = unit <= 127 ? 1 : unit <= 2047 ? 2 : 3;
240
- scalars.push({ text: input[index], bytes: scalarBytes });
241
- bytes += scalarBytes;
242
- }
243
- return pending === void 0 ? { scalars, bytes } : { scalars, bytes, pendingHighSurrogate: pending };
244
- }
245
- function utf8ByteLength(value) {
246
- const scan = scanUtf8Scalars(value);
247
- if (scan.pendingHighSurrogate !== void 0) {
248
- throw new TypeError("provider output contains an unpaired Unicode surrogate");
249
- }
250
- return scan.bytes;
251
- }
252
- var LinearStringParts = class {
253
- parts = [];
254
- _fragmentCount = 0;
255
- _joinOperations = 0;
256
- get fragmentCount() {
257
- return this._fragmentCount;
258
- }
259
- get joinOperations() {
260
- return this._joinOperations;
261
- }
262
- append(fragment) {
263
- if (!fragment) return;
264
- this.parts.push(fragment);
265
- this._fragmentCount += 1;
266
- }
267
- join() {
268
- this._joinOperations += 1;
269
- return this.parts.join("");
270
- }
271
- };
272
- var ProviderResponseBudget = class {
273
- limits;
274
- textBytes = 0;
275
- totalBytes = 0;
276
- callCount = 0;
277
- rawFragments = 0;
278
- argumentJoins = 0;
279
- textPendingHighSurrogate;
280
- rawToolCalls = /* @__PURE__ */ new Map();
281
- constructor(limits) {
282
- this.limits = resolveProviderResponseLimits(limits);
283
- }
284
- get diagnostics() {
285
- return Object.freeze({
286
- textBytes: this.textBytes,
287
- totalResponseBytes: this.totalBytes,
288
- toolCalls: this.callCount,
289
- rawFragments: this.rawFragments,
290
- toolArgumentJoinOperations: this.argumentJoins
291
- });
292
- }
293
- get providerDiagnostics() {
294
- return Object.freeze({
295
- rawFragments: this.rawFragments,
296
- toolArgumentJoinOperations: this.argumentJoins
297
- });
298
- }
299
- acceptRaw(input) {
300
- const text = input.text ?? "";
301
- const textScan = scanUtf8Scalars(text, this.textPendingHighSurrogate);
302
- const nextTextBytes = this.textBytes + textScan.bytes;
303
- if (nextTextBytes > this.limits.textMaxBytes) {
304
- throw new ProviderOutputLimitError("text", this.limits.textMaxBytes);
305
- }
306
- const nextStates = new Map([...this.rawToolCalls].map(([key, state]) => [key, { ...state }]));
307
- let addedTotal = textScan.bytes;
308
- let addedCalls = 0;
309
- let addedFragments = text ? 1 : 0;
310
- for (const fragment of input.toolFragments ?? []) {
311
- let state = nextStates.get(fragment.key);
312
- if (fragment.startsCall) {
313
- if (state !== void 0) throw new TypeError("provider tool call started more than once");
314
- state = { argumentBytes: 0 };
315
- nextStates.set(fragment.key, state);
316
- addedCalls += 1;
317
- } else if (state === void 0) {
318
- throw new TypeError("provider tool fragment must start a call before appending");
319
- }
320
- const id = scanUtf8Scalars(fragment.idFragment ?? "", state.idPending);
321
- const name = scanUtf8Scalars(fragment.nameFragment ?? "", state.namePending);
322
- const args = scanUtf8Scalars(fragment.argumentsFragment ?? "", state.argumentsPending);
323
- state.idPending = id.pendingHighSurrogate;
324
- state.namePending = name.pendingHighSurrogate;
325
- state.argumentsPending = args.pendingHighSurrogate;
326
- state.argumentBytes += args.bytes;
327
- if (state.argumentBytes > this.limits.toolArgumentsMaxBytes) {
328
- throw new ProviderOutputLimitError("tool_arguments", this.limits.toolArgumentsMaxBytes);
329
- }
330
- addedTotal += id.bytes + name.bytes + args.bytes;
331
- addedFragments += Number(Boolean(fragment.idFragment));
332
- addedFragments += Number(Boolean(fragment.nameFragment));
333
- addedFragments += Number(Boolean(fragment.argumentsFragment));
334
- }
335
- const nextCalls = this.callCount + addedCalls;
336
- if (nextCalls > this.limits.toolCallsMax) {
337
- throw new ProviderOutputLimitError("tool_calls", this.limits.toolCallsMax);
338
- }
339
- const nextTotal = this.totalBytes + addedTotal;
340
- if (nextTotal > this.limits.responseMaxBytes) {
341
- throw new ProviderOutputLimitError("total_response", this.limits.responseMaxBytes);
342
- }
343
- this.textBytes = nextTextBytes;
344
- this.totalBytes = nextTotal;
345
- this.callCount = nextCalls;
346
- this.rawFragments += addedFragments;
347
- this.textPendingHighSurrogate = textScan.pendingHighSurrogate;
348
- this.rawToolCalls = nextStates;
349
- }
350
- acceptNormalized(delta, toolCalls) {
351
- const textScan = scanUtf8Scalars(delta, this.textPendingHighSurrogate);
352
- const nextTextBytes = this.textBytes + textScan.bytes;
353
- if (nextTextBytes > this.limits.textMaxBytes) {
354
- throw new ProviderOutputLimitError("text", this.limits.textMaxBytes);
355
- }
356
- let addedTotal = textScan.bytes;
357
- const serializedCalls = [];
358
- for (const call of toolCalls) {
359
- const descriptors = Object.getOwnPropertyDescriptors(call);
360
- const id = dataProperty(descriptors, "id");
361
- const name = dataProperty(descriptors, "name");
362
- const args = dataProperty(descriptors, "args");
363
- if (typeof id !== "string" || typeof name !== "string") {
364
- throw new TypeError("provider tool call id and name must be strings");
365
- }
366
- const encodedArguments = canonicalJsonValue(args ?? {}, "tool arguments");
367
- const argumentBytes = utf8ByteLength(encodedArguments);
368
- if (argumentBytes > this.limits.toolArgumentsMaxBytes) {
369
- throw new ProviderOutputLimitError("tool_arguments", this.limits.toolArgumentsMaxBytes);
370
- }
371
- addedTotal += utf8ByteLength(id) + utf8ByteLength(name) + argumentBytes;
372
- serializedCalls.push({ id, name, encodedArguments });
373
- }
374
- const nextCalls = this.callCount + serializedCalls.length;
375
- if (nextCalls > this.limits.toolCallsMax) {
376
- throw new ProviderOutputLimitError("tool_calls", this.limits.toolCallsMax);
377
- }
378
- const nextTotal = this.totalBytes + addedTotal;
379
- if (nextTotal > this.limits.responseMaxBytes) {
380
- throw new ProviderOutputLimitError("total_response", this.limits.responseMaxBytes);
381
- }
382
- const detached = serializedCalls.map(
383
- ({ id, name, encodedArguments }) => Object.freeze({
384
- id,
385
- name,
386
- args: cloneAndFreezeJson(JSON.parse(encodedArguments))
387
- })
388
- );
389
- this.textBytes = nextTextBytes;
390
- this.totalBytes = nextTotal;
391
- this.callCount = nextCalls;
392
- this.textPendingHighSurrogate = textScan.pendingHighSurrogate;
393
- return Object.freeze({ delta, toolCalls: Object.freeze(detached) });
394
- }
395
- finishRawTool(key) {
396
- const state = this.rawToolCalls.get(key);
397
- if (state === void 0) throw new TypeError("unknown provider tool call");
398
- assertNoPendingSurrogate(state.idPending);
399
- assertNoPendingSurrogate(state.namePending);
400
- assertNoPendingSurrogate(state.argumentsPending);
401
- }
402
- finish() {
403
- assertNoPendingSurrogate(this.textPendingHighSurrogate);
404
- for (const key of this.rawToolCalls.keys()) this.finishRawTool(key);
405
- }
406
- recordToolArgumentJoin() {
407
- this.argumentJoins += 1;
408
- }
409
- };
410
- function dataProperty(descriptors, key) {
411
- const descriptor = descriptors[key];
412
- if (descriptor === void 0) return void 0;
413
- if (!descriptor.enumerable || !("value" in descriptor)) {
414
- throw new TypeError("provider tool calls must contain enumerable data properties");
415
- }
416
- return descriptor.value;
417
- }
418
- function assertNoPendingSurrogate(pending) {
419
- if (pending !== void 0) {
420
- throw new TypeError("provider output contains an unpaired Unicode surrogate");
421
- }
422
- }
423
-
424
- // src/providers/mock.ts
425
- var FINAL_TEXT = "The mock provider has completed the tool loop.";
426
- var JSON_TYPE_PLACEHOLDERS = {
427
- string: "mock",
428
- integer: 0,
429
- number: 0,
430
- boolean: false,
431
- array: [],
432
- object: {},
433
- null: null
434
- };
435
- function hasToolResult(messages) {
436
- return messages.some((m) => m.role === "tool");
437
- }
438
- function placeholderArgs(spec) {
439
- const params = spec.parameters ?? {};
440
- const props = params.properties ?? {};
441
- const required = params.required ?? [];
442
- const args = {};
443
- for (const key of required) {
444
- const type = props[key]?.type ?? "string";
445
- args[key] = JSON_TYPE_PLACEHOLDERS[type] ?? "mock";
446
- }
447
- return args;
448
- }
449
- var MockProvider = class {
450
- streamChunks;
451
- reply;
452
- toolCall;
453
- constructor(options = {}) {
454
- if (options.reply !== void 0 && options.toolCall !== void 0) {
455
- throw new Error("MockProvider: pass reply OR toolCall, not both.");
456
- }
457
- this.streamChunks = options.streamChunks;
458
- this.reply = options.reply;
459
- this.toolCall = options.toolCall;
460
- }
461
- scriptedToolCall() {
462
- if (this.toolCall === void 0) {
463
- throw new Error("scriptedToolCall called without toolCall option");
464
- }
465
- return {
466
- id: "mock-call-1",
467
- name: this.toolCall.name,
468
- args: this.toolCall.args
469
- };
470
- }
471
- async generate(messages, tools, options) {
472
- throwIfCancellationRequested(options?.cancellationToken);
473
- const budget = new ProviderResponseBudget(options?.responseLimits);
474
- try {
475
- const content = new LinearStringParts();
476
- const toolCalls = [];
477
- for (const chunk of this.streamUnbounded(messages, tools)) {
478
- const accepted = budget.acceptNormalized(chunk.delta, chunk.toolCalls);
479
- content.append(accepted.delta);
480
- toolCalls.push(...accepted.toolCalls);
481
- }
482
- budget.finish();
483
- return {
484
- content: content.join(),
485
- toolCalls
486
- };
487
- } finally {
488
- getProviderResponseDiagnostics(options)?.record(budget.providerDiagnostics);
489
- }
490
- }
491
- async *generateStream(messages, tools, options) {
492
- throwIfCancellationRequested(options?.cancellationToken);
493
- const budget = new ProviderResponseBudget(options?.responseLimits);
494
- try {
495
- for (const chunk of this.streamUnbounded(messages, tools)) {
496
- throwIfCancellationRequested(options?.cancellationToken);
497
- const accepted = budget.acceptNormalized(chunk.delta, chunk.toolCalls);
498
- yield { ...chunk, delta: accepted.delta, toolCalls: [...accepted.toolCalls] };
499
- }
500
- budget.finish();
501
- } finally {
502
- getProviderResponseDiagnostics(options)?.record(budget.providerDiagnostics);
503
- }
504
- }
505
- *streamUnbounded(messages, tools) {
506
- if (this.toolCall !== void 0) {
507
- if (!hasToolResult(messages)) {
508
- yield { delta: "", toolCalls: [this.scriptedToolCall()] };
509
- return;
510
- }
511
- yield { delta: FINAL_TEXT, toolCalls: [] };
512
- return;
513
- }
514
- if (this.reply !== void 0) {
515
- yield { delta: this.reply, toolCalls: [] };
516
- return;
517
- }
518
- const first = tools[0];
519
- if (first !== void 0 && !hasToolResult(messages)) {
520
- yield {
521
- delta: "",
522
- toolCalls: [{ id: "mock-call-1", name: first.name, args: placeholderArgs(first) }]
523
- };
524
- return;
525
- }
526
- if (this.streamChunks && this.streamChunks.length > 0) {
527
- for (const delta of this.streamChunks) {
528
- yield { delta, toolCalls: [] };
529
- }
530
- return;
531
- }
532
- yield { delta: FINAL_TEXT, toolCalls: [] };
533
- }
534
- };
535
-
536
- // src/sessions/replay.ts
537
- function createSessionState(sessionId) {
538
- return {
539
- sessionId,
540
- isActive: false,
541
- messages: [],
542
- pendingApprovals: /* @__PURE__ */ new Set(),
543
- approvedApprovals: /* @__PURE__ */ new Set(),
544
- rejectedApprovals: /* @__PURE__ */ new Map(),
545
- totalTokens: { input: 0, output: 0 },
546
- totalCostUsd: 0
547
- };
548
- }
549
-
550
- exports.MockProvider = MockProvider;
551
- exports.createSessionState = createSessionState;
552
- exports.withProviderResponseDiagnostics = withProviderResponseDiagnostics;
553
- //# sourceMappingURL=testing.cjs.map
554
- //# sourceMappingURL=testing.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/runtime/cancellation.ts","../src/providers/base.ts","../src/events/json.ts","../src/providers/errors.ts","../src/providers/response-budget.ts","../src/providers/mock.ts","../src/sessions/replay.ts"],"names":[],"mappings":"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","file":"testing.cjs"}
@@ -1,43 +0,0 @@
1
- import { i as ModelProvider, P as ProviderMessage, g as ToolSpec, j as ModelProviderOptions, k as ModelResponse, l as ModelResponseChunk } from './context-C-YPY-GS.cjs';
2
- export { aA as ProviderResponseDiagnostics, aB as createSessionState, aC as withProviderResponseDiagnostics } from './context-C-YPY-GS.cjs';
3
- import 'zod';
4
- import 'ajv/dist/2020.js';
5
-
6
- /**
7
- * Mock LLM provider, mirroring `kaji.runtime.providers.mock`.
8
- *
9
- * Default behavior (no options): if tools are offered and no tool result is
10
- * yet in history, it calls the first tool with schema-satisfying placeholder
11
- * args; otherwise it returns a fixed text response.
12
- *
13
- * Options (`reply` and `toolCall` are mutually exclusive):
14
- * `reply` literal text returned by `generate` / yielded as one chunk by `generateStream`.
15
- * `toolCall` one canned tool call on the first turn; falls through to FINAL_TEXT
16
- * once a tool-result message appears in history (so the loop terminates).
17
- * `streamChunks` pre-baked deltas for streaming default-text scenarios.
18
- */
19
-
20
- /** Optional configuration for `MockProvider` to drive specific test scenarios. */
21
- interface MockProviderOptions {
22
- /** Pre-baked deltas yielded by `generateStream` instead of one chunk. */
23
- streamChunks?: readonly string[];
24
- /** Literal text the provider returns; mutually exclusive with `toolCall`. */
25
- reply?: string;
26
- /** Canned tool call returned on the first turn; mutually exclusive with `reply`. */
27
- toolCall?: {
28
- name: string;
29
- args: Record<string, unknown>;
30
- };
31
- }
32
- declare class MockProvider implements ModelProvider {
33
- private readonly streamChunks;
34
- private readonly reply;
35
- private readonly toolCall;
36
- constructor(options?: MockProviderOptions);
37
- private scriptedToolCall;
38
- generate(messages: ProviderMessage[], tools: ToolSpec[], options?: ModelProviderOptions): Promise<ModelResponse>;
39
- generateStream(messages: ProviderMessage[], tools: ToolSpec[], options?: ModelProviderOptions): AsyncGenerator<ModelResponseChunk>;
40
- private streamUnbounded;
41
- }
42
-
43
- export { MockProvider };
package/dist/testing.d.ts DELETED
@@ -1,43 +0,0 @@
1
- import { i as ModelProvider, P as ProviderMessage, g as ToolSpec, j as ModelProviderOptions, k as ModelResponse, l as ModelResponseChunk } from './context-C-YPY-GS.js';
2
- export { aA as ProviderResponseDiagnostics, aB as createSessionState, aC as withProviderResponseDiagnostics } from './context-C-YPY-GS.js';
3
- import 'zod';
4
- import 'ajv/dist/2020.js';
5
-
6
- /**
7
- * Mock LLM provider, mirroring `kaji.runtime.providers.mock`.
8
- *
9
- * Default behavior (no options): if tools are offered and no tool result is
10
- * yet in history, it calls the first tool with schema-satisfying placeholder
11
- * args; otherwise it returns a fixed text response.
12
- *
13
- * Options (`reply` and `toolCall` are mutually exclusive):
14
- * `reply` literal text returned by `generate` / yielded as one chunk by `generateStream`.
15
- * `toolCall` one canned tool call on the first turn; falls through to FINAL_TEXT
16
- * once a tool-result message appears in history (so the loop terminates).
17
- * `streamChunks` pre-baked deltas for streaming default-text scenarios.
18
- */
19
-
20
- /** Optional configuration for `MockProvider` to drive specific test scenarios. */
21
- interface MockProviderOptions {
22
- /** Pre-baked deltas yielded by `generateStream` instead of one chunk. */
23
- streamChunks?: readonly string[];
24
- /** Literal text the provider returns; mutually exclusive with `toolCall`. */
25
- reply?: string;
26
- /** Canned tool call returned on the first turn; mutually exclusive with `reply`. */
27
- toolCall?: {
28
- name: string;
29
- args: Record<string, unknown>;
30
- };
31
- }
32
- declare class MockProvider implements ModelProvider {
33
- private readonly streamChunks;
34
- private readonly reply;
35
- private readonly toolCall;
36
- constructor(options?: MockProviderOptions);
37
- private scriptedToolCall;
38
- generate(messages: ProviderMessage[], tools: ToolSpec[], options?: ModelProviderOptions): Promise<ModelResponse>;
39
- generateStream(messages: ProviderMessage[], tools: ToolSpec[], options?: ModelProviderOptions): AsyncGenerator<ModelResponseChunk>;
40
- private streamUnbounded;
41
- }
42
-
43
- export { MockProvider };