@theokit/agents 7.4.0 → 7.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.
- package/dist/{agent-handle-tgyu8J7q.d.ts → agent-handle-BX4oFqfb.d.ts} +10 -10
- package/dist/auth.d.ts +67 -65
- package/dist/auth.js +42 -41
- package/dist/auth.js.map +1 -1
- package/dist/{bridge-entry-ofFpOe-j.d.ts → bridge-entry-Z8GjrwH4.d.ts} +85 -84
- package/dist/bridge.d.ts +1 -1
- package/dist/bridge.js +1 -1
- package/dist/{chunk-7ZQTOTK2.js → chunk-FJA4QQLZ.js} +66 -65
- package/dist/chunk-FJA4QQLZ.js.map +1 -0
- package/dist/{chunk-NSJDG6XE.js → chunk-PHUNONZT.js} +92 -90
- package/dist/chunk-PHUNONZT.js.map +1 -0
- package/dist/client-react.d.ts +1 -1
- package/dist/client-react.js +1 -1
- package/dist/client.d.ts +3 -3
- package/dist/client.js +1 -1
- package/dist/index.d.ts +81 -49
- package/dist/index.js +50 -52
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
- package/LICENSE +0 -201
- package/dist/chunk-7ZQTOTK2.js.map +0 -1
- package/dist/chunk-NSJDG6XE.js.map +0 -1
|
@@ -132,8 +132,8 @@ function generatorToStream(gen) {
|
|
|
132
132
|
});
|
|
133
133
|
}
|
|
134
134
|
var ApprovalAbortedError = class extends Error {
|
|
135
|
-
constructor(approvalId,
|
|
136
|
-
super(`
|
|
135
|
+
constructor(approvalId, reason) {
|
|
136
|
+
super(`Approval '${approvalId}' discarded: ${reason}.`);
|
|
137
137
|
this.approvalId = approvalId;
|
|
138
138
|
this.name = "ApprovalAbortedError";
|
|
139
139
|
}
|
|
@@ -142,33 +142,33 @@ var ApprovalAbortedError = class extends Error {
|
|
|
142
142
|
var InProcessTransport = class {
|
|
143
143
|
#run;
|
|
144
144
|
/**
|
|
145
|
-
*
|
|
145
|
+
* Parked inline approvals: `approvalId` → how to resolve **or reject** the stalled promise.
|
|
146
146
|
*
|
|
147
|
-
* M92 —
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
147
|
+
* M92 — `reject` arrived together with the eviction. Before there was only `resolve`, and nothing
|
|
148
|
+
* erased the entry when the turn aborted: the promise stayed pending **forever**, and the SDK tool
|
|
149
|
+
* call hung with it. A promise that neither resolves **nor** rejects is the quietest way to swallow
|
|
150
|
+
* an error — not even a stack trace exists (`error-handling.md § 2`).
|
|
151
151
|
*/
|
|
152
152
|
#pending = /* @__PURE__ */ new Map();
|
|
153
|
-
/**
|
|
154
|
-
#
|
|
153
|
+
/** The current turn. A new `send()` increments it and sweeps the previous one. */
|
|
154
|
+
#turn = 0;
|
|
155
155
|
constructor(options) {
|
|
156
156
|
this.#run = options.run;
|
|
157
157
|
}
|
|
158
158
|
/**
|
|
159
|
-
*
|
|
159
|
+
* Creates the `awaitApproval` for THIS turn, with the number and the signal closed over.
|
|
160
160
|
*
|
|
161
|
-
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
*
|
|
161
|
+
* A shared field will not do, and the M92 review measured why: a turn-1 runner that parks **after**
|
|
162
|
+
* turn 2's `send` reads the already-overwritten field and is born labelled turn 2 — turn 1's abort
|
|
163
|
+
* does not sweep it, and the promise hangs. M92's first fix swapped "read at approval time" for
|
|
164
|
+
* "read at `send`", and stayed wrong for the same reason: a single field.
|
|
165
165
|
*
|
|
166
|
-
*
|
|
166
|
+
* The closure is the only place a runner's turn can live without another one overwriting it.
|
|
167
167
|
*/
|
|
168
|
-
#
|
|
168
|
+
#createAwaitApproval(turn, signal) {
|
|
169
169
|
return (req) => new Promise((resolve, reject) => {
|
|
170
|
-
if (
|
|
171
|
-
reject(new ApprovalAbortedError(req.approvalId, "
|
|
170
|
+
if (signal?.aborted === true) {
|
|
171
|
+
reject(new ApprovalAbortedError(req.approvalId, "the turn was already aborted"));
|
|
172
172
|
return;
|
|
173
173
|
}
|
|
174
174
|
if (this.#pending.has(req.approvalId)) {
|
|
@@ -177,39 +177,39 @@ var InProcessTransport = class {
|
|
|
177
177
|
);
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
|
-
this.#pending.set(req.approvalId, { resolve, reject,
|
|
180
|
+
this.#pending.set(req.approvalId, { resolve, reject, turn });
|
|
181
181
|
});
|
|
182
182
|
}
|
|
183
183
|
/**
|
|
184
|
-
*
|
|
184
|
+
* Sweeps a turn's approvals, rejecting each one with a TYPED error.
|
|
185
185
|
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
186
|
+
* Reject rather than `resolve(false)`: a `false` is indistinguishable from *"the user denied"*, and
|
|
187
|
+
* the difference matters — denying is a decision, aborting is an interruption. The SDK needs both to
|
|
188
|
+
* unwind the tool call correctly.
|
|
189
189
|
*/
|
|
190
|
-
#
|
|
191
|
-
for (const [id,
|
|
192
|
-
if (
|
|
190
|
+
#sweepTurn(turn, reason) {
|
|
191
|
+
for (const [id, entry] of [...this.#pending]) {
|
|
192
|
+
if (entry.turn !== turn) continue;
|
|
193
193
|
this.#pending.delete(id);
|
|
194
|
-
|
|
194
|
+
entry.reject(new ApprovalAbortedError(id, reason));
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
|
-
/**
|
|
198
|
-
get
|
|
197
|
+
/** How many approvals are parked. Exists so the test can prove the eviction. */
|
|
198
|
+
get pending() {
|
|
199
199
|
return this.#pending.size;
|
|
200
200
|
}
|
|
201
201
|
sendMessages(options) {
|
|
202
202
|
const { messages, abortSignal, metadata } = options;
|
|
203
|
-
this.#
|
|
204
|
-
this.#
|
|
205
|
-
const
|
|
203
|
+
this.#sweepTurn(this.#turn, "a new turn started");
|
|
204
|
+
this.#turn += 1;
|
|
205
|
+
const currentTurn = this.#turn;
|
|
206
206
|
if (abortSignal?.aborted === true) {
|
|
207
|
-
this.#
|
|
207
|
+
this.#sweepTurn(currentTurn, "the turn was already aborted");
|
|
208
208
|
} else {
|
|
209
209
|
abortSignal?.addEventListener(
|
|
210
210
|
"abort",
|
|
211
211
|
() => {
|
|
212
|
-
this.#
|
|
212
|
+
this.#sweepTurn(currentTurn, "the turn was aborted");
|
|
213
213
|
},
|
|
214
214
|
{ once: true }
|
|
215
215
|
);
|
|
@@ -217,7 +217,7 @@ var InProcessTransport = class {
|
|
|
217
217
|
const generator = this.#run({
|
|
218
218
|
message: extractLastUserText(messages),
|
|
219
219
|
signal: abortSignal ?? void 0,
|
|
220
|
-
awaitApproval: this.#
|
|
220
|
+
awaitApproval: this.#createAwaitApproval(currentTurn, abortSignal ?? void 0),
|
|
221
221
|
// M43 — forward per-request context (the seam's `metadata`) to the runner.
|
|
222
222
|
context: metadata
|
|
223
223
|
});
|
|
@@ -227,14 +227,14 @@ var InProcessTransport = class {
|
|
|
227
227
|
return Promise.resolve(null);
|
|
228
228
|
}
|
|
229
229
|
approve(approvalId, decision) {
|
|
230
|
-
const
|
|
231
|
-
if (
|
|
230
|
+
const entry = this.#pending.get(approvalId);
|
|
231
|
+
if (entry === void 0) {
|
|
232
232
|
return Promise.reject(
|
|
233
233
|
new Error(`No pending approval '${approvalId}' (unknown or already settled).`)
|
|
234
234
|
);
|
|
235
235
|
}
|
|
236
236
|
this.#pending.delete(approvalId);
|
|
237
|
-
|
|
237
|
+
entry.resolve(decision);
|
|
238
238
|
return Promise.resolve();
|
|
239
239
|
}
|
|
240
240
|
};
|
|
@@ -358,22 +358,23 @@ var AgentClient = class {
|
|
|
358
358
|
#currentAssistantId = "";
|
|
359
359
|
#snapshot = { messages: [], thread: [], status: "idle", error: void 0 };
|
|
360
360
|
/**
|
|
361
|
-
* M92 —
|
|
361
|
+
* M92 — the committed prefix, materialized ONCE per write instead of once per token delta.
|
|
362
362
|
*
|
|
363
|
-
* `#committed`
|
|
364
|
-
*
|
|
363
|
+
* `#committed` changes in only two places (measured): in `send()`'s `done` and in `reset()`. Between
|
|
364
|
+
* deltas it is constant, so rebuilding it on every `#emit` is work the structure already guarantees
|
|
365
|
+
* is useless.
|
|
365
366
|
*
|
|
366
|
-
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
367
|
+
* Invalidation happens **on write**, not by comparison: comparing would cost the same O(C) this
|
|
368
|
+
* avoids, and memoizing by length would be wrong in `reset()` — equal length with different content
|
|
369
|
+
* is possible, and the bug would be invisible.
|
|
369
370
|
*
|
|
370
|
-
*
|
|
371
|
-
* — 3
|
|
372
|
-
* coalescing
|
|
373
|
-
*
|
|
371
|
+
* Honesty about the size of the win: measured, the spread costs **0.0062 ms per delta @400 messages**
|
|
372
|
+
* — 3.1 ms across a 500-delta turn. It is real and it is micro. The order of magnitude of this
|
|
373
|
+
* milestone is in the coalescing below, because what hangs off each emit (deriving the timeline)
|
|
374
|
+
* costs **3.274 ms per call** at the same thread size (M86).
|
|
374
375
|
*/
|
|
375
|
-
#
|
|
376
|
-
/**
|
|
376
|
+
#committedPrefix = [];
|
|
377
|
+
/** Opt-in coalescing: `0` (the default) emits per delta, as always. */
|
|
377
378
|
#emitIntervalMs;
|
|
378
379
|
#timerDeEmit;
|
|
379
380
|
constructor(transport, contextResolver, options) {
|
|
@@ -391,30 +392,30 @@ var AgentClient = class {
|
|
|
391
392
|
/** The current immutable snapshot (stable reference until the next emit). */
|
|
392
393
|
getSnapshot = () => this.#snapshot;
|
|
393
394
|
/**
|
|
394
|
-
*
|
|
395
|
+
* Emits NOW. Used directly on status transitions — see `#scheduleEmit`.
|
|
395
396
|
*/
|
|
396
397
|
#emit() {
|
|
397
398
|
if (this.#timerDeEmit !== void 0) {
|
|
398
399
|
clearTimeout(this.#timerDeEmit);
|
|
399
400
|
this.#timerDeEmit = void 0;
|
|
400
401
|
}
|
|
401
|
-
const
|
|
402
|
-
const thread = this.#
|
|
402
|
+
const tail = this.#currentUser ? [this.#currentUser, ...this.#messages] : this.#messages;
|
|
403
|
+
const thread = this.#committedPrefix.concat(tail);
|
|
403
404
|
this.#snapshot = { messages: this.#messages, thread, status: this.#status, error: this.#error };
|
|
404
405
|
for (const listener of this.#listeners) listener();
|
|
405
406
|
}
|
|
406
407
|
/**
|
|
407
|
-
*
|
|
408
|
+
* Emits per WINDOW when coalescing is on; immediately when it is off.
|
|
408
409
|
*
|
|
409
|
-
*
|
|
410
|
-
*
|
|
411
|
-
*
|
|
410
|
+
* Trailing edge: the timer emits at the **end** of the window, with the most recent state. What this
|
|
411
|
+
* buys is not a cheaper emit — it is **fewer emits**, and what hangs off each one is the 3.274 ms
|
|
412
|
+
* derivation measured in M86.
|
|
412
413
|
*
|
|
413
|
-
*
|
|
414
|
-
*
|
|
415
|
-
*
|
|
414
|
+
* Status transitions (`done`/`error`/`abort`) do NOT go through here: they call `#emit` directly,
|
|
415
|
+
* because a final state trapped in a 16 ms timer is a final state lost if the process exits first —
|
|
416
|
+
* and `exec` exits right after the turn.
|
|
416
417
|
*/
|
|
417
|
-
#
|
|
418
|
+
#scheduleEmit() {
|
|
418
419
|
if (this.#emitIntervalMs <= 0) {
|
|
419
420
|
this.#emit();
|
|
420
421
|
return;
|
|
@@ -446,7 +447,7 @@ var AgentClient = class {
|
|
|
446
447
|
if (aborted()) return;
|
|
447
448
|
const stamped = message.id ? message : { ...message, id: this.#currentAssistantId };
|
|
448
449
|
this.#upsert(stamped);
|
|
449
|
-
this.#
|
|
450
|
+
this.#scheduleEmit();
|
|
450
451
|
});
|
|
451
452
|
if (aborted()) return;
|
|
452
453
|
this.#status = "done";
|
|
@@ -462,7 +463,7 @@ var AgentClient = class {
|
|
|
462
463
|
send = (input) => {
|
|
463
464
|
if (this.#status === "done" && this.#currentUser) {
|
|
464
465
|
this.#committed = [...this.#committed, this.#currentUser, ...this.#messages];
|
|
465
|
-
this.#
|
|
466
|
+
this.#committedPrefix = this.#committed;
|
|
466
467
|
}
|
|
467
468
|
this.abort();
|
|
468
469
|
const controller = new AbortController();
|
|
@@ -524,7 +525,7 @@ var AgentClient = class {
|
|
|
524
525
|
this.abort();
|
|
525
526
|
this.#messages = [];
|
|
526
527
|
this.#committed = [];
|
|
527
|
-
this.#
|
|
528
|
+
this.#committedPrefix = this.#committed;
|
|
528
529
|
this.#currentUser = void 0;
|
|
529
530
|
this.#error = void 0;
|
|
530
531
|
this.#status = "idle";
|
|
@@ -561,4 +562,4 @@ export {
|
|
|
561
562
|
agentHandle,
|
|
562
563
|
isAgentHandle
|
|
563
564
|
};
|
|
564
|
-
//# sourceMappingURL=chunk-
|
|
565
|
+
//# sourceMappingURL=chunk-FJA4QQLZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/client/consume-ui-message-stream.ts","../src/client/http-transport.ts","../src/client/last-user-text.ts","../src/client/in-process-transport.ts","../src/client/channel-transport.ts","../src/client/agent-client.ts","../src/client/agent-handle.ts"],"mappings":"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","names":[]}
|