@slopus/happy-agent-base 0.0.6 → 0.0.7
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/README.md +49 -11
- package/dist/Agent.d.ts +24 -22
- package/dist/Agent.d.ts.map +1 -1
- package/dist/Agent.js +113 -111
- package/dist/Agent.js.map +1 -1
- package/dist/AgentBase.d.ts +18 -14
- package/dist/AgentBase.d.ts.map +1 -1
- package/dist/AgentBase.js +476 -122
- package/dist/AgentBase.js.map +1 -1
- package/dist/AgentBaseHooks.d.ts +41 -28
- package/dist/AgentBaseHooks.d.ts.map +1 -1
- package/dist/AgentBasePending.d.ts +6 -2
- package/dist/AgentBasePending.d.ts.map +1 -1
- package/dist/AgentBasePending.js +7 -0
- package/dist/AgentBasePending.js.map +1 -1
- package/dist/AgentConfig.d.ts +9 -9
- package/dist/AgentConfig.d.ts.map +1 -1
- package/dist/AgentConfig.js +8 -8
- package/dist/AgentConfig.js.map +1 -1
- package/dist/AgentContexts.d.ts +18 -1
- package/dist/AgentContexts.d.ts.map +1 -1
- package/dist/AgentContexts.js +24 -1
- package/dist/AgentContexts.js.map +1 -1
- package/dist/AgentDatabase.d.ts +35 -0
- package/dist/AgentDatabase.d.ts.map +1 -0
- package/dist/AgentDatabase.js +30 -0
- package/dist/AgentDatabase.js.map +1 -0
- package/dist/AgentKV.d.ts +19 -6
- package/dist/AgentKV.d.ts.map +1 -1
- package/dist/AgentKV.js +110 -43
- package/dist/AgentKV.js.map +1 -1
- package/dist/AgentMessageAcceptance.d.ts +14 -0
- package/dist/AgentMessageAcceptance.d.ts.map +1 -0
- package/dist/AgentMessageAcceptance.js +2 -0
- package/dist/AgentMessageAcceptance.js.map +1 -0
- package/dist/AgentMetadata.d.ts +3 -3
- package/dist/AgentMetadata.js +3 -3
- package/dist/AgentModule.d.ts +209 -0
- package/dist/AgentModule.d.ts.map +1 -0
- package/dist/AgentModule.js +2 -0
- package/dist/AgentModule.js.map +1 -0
- package/dist/{AgentFeatureAction.d.ts → AgentModuleAction.d.ts} +2 -2
- package/dist/AgentModuleAction.d.ts.map +1 -0
- package/dist/AgentModuleAction.js +2 -0
- package/dist/AgentModuleAction.js.map +1 -0
- package/dist/AgentPermissionMode.d.ts +1 -1
- package/dist/AgentPermissionMode.js +1 -1
- package/dist/AgentPersistence.d.ts +7 -4
- package/dist/AgentPersistence.d.ts.map +1 -1
- package/dist/AgentPersistenceDrizzle.d.ts +31 -0
- package/dist/AgentPersistenceDrizzle.d.ts.map +1 -0
- package/dist/AgentPersistenceDrizzle.js +99 -0
- package/dist/AgentPersistenceDrizzle.js.map +1 -0
- package/dist/AgentRef.d.ts +12 -9
- package/dist/AgentRef.d.ts.map +1 -1
- package/dist/AgentRef.js +8 -8
- package/dist/AgentRef.js.map +1 -1
- package/dist/AgentStorage.d.ts +33 -13
- package/dist/AgentStorage.d.ts.map +1 -1
- package/dist/AgentStorage.js +174 -3
- package/dist/AgentStorage.js.map +1 -1
- package/dist/AgentSystem.d.ts +10 -7
- package/dist/AgentSystem.d.ts.map +1 -1
- package/dist/AgentSystemContext.d.ts +3 -3
- package/dist/AgentSystemContext.d.ts.map +1 -1
- package/dist/AgentSystemContext.js +4 -4
- package/dist/AgentSystemContext.js.map +1 -1
- package/dist/AgentSystemLocal.d.ts +17 -14
- package/dist/AgentSystemLocal.d.ts.map +1 -1
- package/dist/AgentSystemLocal.js +120 -29
- package/dist/AgentSystemLocal.js.map +1 -1
- package/dist/AgentSystemRef.d.ts +9 -7
- package/dist/AgentSystemRef.d.ts.map +1 -1
- package/dist/AgentSystemRef.js +17 -4
- package/dist/AgentSystemRef.js.map +1 -1
- package/dist/AgentTool.d.ts +16 -1
- package/dist/AgentTool.d.ts.map +1 -1
- package/dist/AgentTool.js.map +1 -1
- package/dist/index.d.ts +8 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/package.json +4 -3
- package/dist/AgentFeature.d.ts +0 -184
- package/dist/AgentFeature.d.ts.map +0 -1
- package/dist/AgentFeature.js +0 -2
- package/dist/AgentFeature.js.map +0 -1
- package/dist/AgentFeatureAction.d.ts.map +0 -1
- package/dist/AgentFeatureAction.js +0 -2
- package/dist/AgentFeatureAction.js.map +0 -1
package/dist/AgentSystemLocal.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { createId } from "@paralleldrive/cuid2";
|
|
2
2
|
import { Type } from "@sinclair/typebox";
|
|
3
3
|
import { Value } from "@sinclair/typebox/value";
|
|
4
|
-
import { asyncLock } from "@steve.kite/stdlib";
|
|
4
|
+
import { afterCommit, asyncLock, withLifetime, } from "@steve.kite/stdlib";
|
|
5
5
|
import { Agent } from "./Agent.js";
|
|
6
6
|
import {} from "./AgentBase.js";
|
|
7
|
-
import { agentId as agentIdOf } from "./AgentContexts.js";
|
|
7
|
+
import { agentDatabase, agentId as agentIdOf, agentStorageTransaction, withAgentDatabase, withAgentKV, } from "./AgentContexts.js";
|
|
8
8
|
import { agentConfigSchema, ownAgentConfig, withAgentConfig, } from "./AgentConfig.js";
|
|
9
|
-
import { cuid2Schema } from "./AgentMetadata.js";
|
|
9
|
+
import { cuid2Schema, ownAgentMetadata } from "./AgentMetadata.js";
|
|
10
10
|
import { withAgentSystem } from "./AgentSystemContext.js";
|
|
11
11
|
import { AgentSystemRef } from "./AgentSystemRef.js";
|
|
12
12
|
const storedParentSchema = Type.String();
|
|
@@ -16,7 +16,7 @@ const storedParentSchema = Type.String();
|
|
|
16
16
|
* failed load is forgotten so a later resolution can retry.
|
|
17
17
|
*
|
|
18
18
|
* Work serializes per agent rather than per collection: a collection-wide lock would make one
|
|
19
|
-
* agent's
|
|
19
|
+
* agent's module load block every other agent, including one that load itself resolves.
|
|
20
20
|
*
|
|
21
21
|
* This is the owner's handle, and some of what it offers waits for an agent to reach a point only
|
|
22
22
|
* that agent's run loop can bring it to. Hand an `AgentSystemRef` to anything running inside an
|
|
@@ -32,8 +32,8 @@ export class AgentSystemLocal {
|
|
|
32
32
|
* derived context ever carries.
|
|
33
33
|
*/
|
|
34
34
|
#ref = new AgentSystemRef(this, null);
|
|
35
|
-
/** The collection's
|
|
36
|
-
#
|
|
35
|
+
/** The collection's module instances, every one of them serving every agent it builds. */
|
|
36
|
+
#modules;
|
|
37
37
|
/** Where the collection's identities, configuration, and per-agent state are durable. */
|
|
38
38
|
#storage;
|
|
39
39
|
/** The registry providers are resolved from when an agent is built. */
|
|
@@ -47,10 +47,10 @@ export class AgentSystemLocal {
|
|
|
47
47
|
/** The durable parent of each non-root identity, keyed by child identity. */
|
|
48
48
|
#parents;
|
|
49
49
|
/**
|
|
50
|
-
* The root of the store
|
|
50
|
+
* The root of the store modules share across the collection. Each module works under its
|
|
51
51
|
* own scope of it, which is where anything outliving one agent's conversation belongs.
|
|
52
52
|
*/
|
|
53
|
-
#
|
|
53
|
+
#sharedModuleKV;
|
|
54
54
|
/** The live `Agent` instances this process has built, keyed by identity. */
|
|
55
55
|
#agents = new Map();
|
|
56
56
|
// One agent has one store for the life of the collection, so inspecting an agent's durable
|
|
@@ -60,7 +60,9 @@ export class AgentSystemLocal {
|
|
|
60
60
|
#locks = new Map();
|
|
61
61
|
/** Public operations admitted before shutdown and therefore allowed to finish. */
|
|
62
62
|
#admitted = new Set();
|
|
63
|
-
/**
|
|
63
|
+
/** Post-commit lifecycle observations still running outside per-agent locks. */
|
|
64
|
+
#lifecycleObservations = new Set();
|
|
65
|
+
/** No agent operation is admitted until every module has finished its beforeStart hook. */
|
|
64
66
|
#lifecycle = "initializing";
|
|
65
67
|
/** The shared shutdown, including release of the hard storage lock. */
|
|
66
68
|
#closePromise;
|
|
@@ -74,13 +76,17 @@ export class AgentSystemLocal {
|
|
|
74
76
|
* but running.
|
|
75
77
|
*/
|
|
76
78
|
static async create(ctx, storage, config) {
|
|
77
|
-
const systemCtx = ctx;
|
|
79
|
+
const systemCtx = withAgentDatabase(ctx, storage.database);
|
|
78
80
|
const storageLock = await storage.acquireLock(systemCtx);
|
|
79
81
|
const system = new AgentSystemLocal(systemCtx, storage, storageLock, config);
|
|
80
82
|
try {
|
|
83
|
+
await storage.migrate(systemCtx, system.#modules);
|
|
81
84
|
await system.#beforeStart(systemCtx);
|
|
82
|
-
|
|
85
|
+
// beforeStart is the initialization barrier. Restoration observers receive the
|
|
86
|
+
// system ref next and must be able to reconcile other durable agents through it,
|
|
87
|
+
// even though restored run loops do not start until every observation finishes.
|
|
83
88
|
system.#lifecycle = "open";
|
|
89
|
+
const active = await system.#start(systemCtx);
|
|
84
90
|
for (const agent of active)
|
|
85
91
|
agent.start();
|
|
86
92
|
await system.#afterStart(systemCtx);
|
|
@@ -92,13 +98,13 @@ export class AgentSystemLocal {
|
|
|
92
98
|
}
|
|
93
99
|
}
|
|
94
100
|
/**
|
|
95
|
-
* Wire this collection to its storage, providers, and
|
|
101
|
+
* Wire this collection to its storage, providers, and module configuration, without reading
|
|
96
102
|
* any of it. Private: a collection is brought up by `create`, which also resumes the work
|
|
97
103
|
* the storage was left holding — building one without that is building half of it.
|
|
98
104
|
*/
|
|
99
105
|
constructor(ctx, storage, storageLock, options) {
|
|
100
106
|
this.#ctx = ctx;
|
|
101
|
-
this.#
|
|
107
|
+
this.#modules = options.modules ?? [];
|
|
102
108
|
this.#storage = storage;
|
|
103
109
|
this.#storageLock = storageLock;
|
|
104
110
|
this.#providers = options.providers;
|
|
@@ -106,13 +112,14 @@ export class AgentSystemLocal {
|
|
|
106
112
|
this.models = [...options.models];
|
|
107
113
|
this.#configs = storage.kv.scoped("config");
|
|
108
114
|
this.#parents = storage.kv.scoped("parent");
|
|
109
|
-
this.#
|
|
115
|
+
this.#sharedModuleKV = storage.kv.scoped("modules");
|
|
110
116
|
}
|
|
111
117
|
/**
|
|
112
118
|
* Stop every live agent, wait for operations already admitted by this owner, and only then
|
|
113
119
|
* release the database lock. Repeated callers join the same shutdown.
|
|
114
120
|
*/
|
|
115
121
|
async close(ctx) {
|
|
122
|
+
this.#assertOutsideStorageTransaction(ctx, "closed");
|
|
116
123
|
if (this.#closePromise === undefined) {
|
|
117
124
|
this.#lifecycle = "closing";
|
|
118
125
|
this.#closePromise = this.#shutdown();
|
|
@@ -181,12 +188,13 @@ export class AgentSystemLocal {
|
|
|
181
188
|
* it. Configuration and parentage are persisted before the agent runs, so every later process
|
|
182
189
|
* resolves the same agent; only its metadata may subsequently change.
|
|
183
190
|
*
|
|
184
|
-
* Nothing here is undone: an agent whose
|
|
191
|
+
* Nothing here is undone: an agent whose modules refuse to load leaves an identity that
|
|
185
192
|
* exists, is resolvable, and will be built the next time something wants it. Taking a
|
|
186
193
|
* provisional identity back after a failed build would add a compensation that can itself
|
|
187
194
|
* fail.
|
|
188
195
|
*/
|
|
189
196
|
async create(ctx, config, options) {
|
|
197
|
+
this.#assertOutsideStorageTransaction(ctx, "created");
|
|
190
198
|
return await this.#admit(async () => {
|
|
191
199
|
const agentId = options?.id ?? createId();
|
|
192
200
|
if (!Value.Check(cuid2Schema, agentId)) {
|
|
@@ -199,6 +207,7 @@ export class AgentSystemLocal {
|
|
|
199
207
|
// The caller keeps its own object, and may go on editing it. What was created is what
|
|
200
208
|
// was passed at this moment, so storage and this agent's context both get a copy.
|
|
201
209
|
const owned = ownAgentConfig(config);
|
|
210
|
+
const lifecycle = lifecycleAgent(agentId, owned);
|
|
202
211
|
return await this.#lockFor(agentId).runInLock(ctx, async (lockCtx) => {
|
|
203
212
|
if ((await this.#configs.read(lockCtx, agentId)) !== undefined) {
|
|
204
213
|
throw new Error(`Agent "${agentId}" already exists.`);
|
|
@@ -218,6 +227,7 @@ export class AgentSystemLocal {
|
|
|
218
227
|
await this.#configs.write(txCtx, agentId, owned);
|
|
219
228
|
if (parent !== null)
|
|
220
229
|
await this.#parents.write(txCtx, agentId, parent);
|
|
230
|
+
await this.#recordLifecycle(txCtx, lifecycle, (module) => module.agentCreatedTransact, (module) => module.agentCreated);
|
|
221
231
|
});
|
|
222
232
|
const agent = await this.#instantiate(lockCtx, agentId, owned);
|
|
223
233
|
if (agent === undefined)
|
|
@@ -237,8 +247,10 @@ export class AgentSystemLocal {
|
|
|
237
247
|
* what clears it.
|
|
238
248
|
*/
|
|
239
249
|
async delete(ctx, agentId) {
|
|
250
|
+
this.#assertOutsideStorageTransaction(ctx, "archived");
|
|
240
251
|
await this.#admit(async () => {
|
|
241
252
|
await this.#lockFor(agentId).runInLock(ctx, async (lockCtx) => {
|
|
253
|
+
const config = await this.#config(lockCtx, agentId);
|
|
242
254
|
const agent = this.#agents.get(agentId);
|
|
243
255
|
this.#agents.delete(agentId);
|
|
244
256
|
await agent?.close();
|
|
@@ -250,6 +262,9 @@ export class AgentSystemLocal {
|
|
|
250
262
|
if (child.value === agentId)
|
|
251
263
|
await this.#parents.delete(txCtx, child.key);
|
|
252
264
|
}
|
|
265
|
+
if (config !== undefined) {
|
|
266
|
+
await this.#recordLifecycle(txCtx, lifecycleAgent(agentId, config), (module) => module.agentArchivedTransact, (module) => module.agentArchived);
|
|
267
|
+
}
|
|
253
268
|
});
|
|
254
269
|
this.#persistences.delete(agentId);
|
|
255
270
|
});
|
|
@@ -293,6 +308,7 @@ export class AgentSystemLocal {
|
|
|
293
308
|
}
|
|
294
309
|
/** Shallow-merge fields into one agent's immutable metadata. */
|
|
295
310
|
async updateMetadata(ctx, agentId, update) {
|
|
311
|
+
this.#assertOutsideStorageTransaction(ctx, "updated");
|
|
296
312
|
await this.#admit(async () => {
|
|
297
313
|
const agent = await this.#resolve(ctx, agentId);
|
|
298
314
|
await agent.updateMetadata(ctx, update);
|
|
@@ -329,10 +345,23 @@ export class AgentSystemLocal {
|
|
|
329
345
|
* Concurrent resolutions of the same ID share one load.
|
|
330
346
|
*/
|
|
331
347
|
async resolve(ctx, agentId) {
|
|
348
|
+
this.#assertOutsideStorageTransaction(ctx, "resolved");
|
|
332
349
|
return await this.#admit(async () => await this.#resolve(ctx, agentId));
|
|
333
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Live Agent objects cannot be published or removed until an enclosing transaction commits,
|
|
353
|
+
* while waiting for stdlib afterCommit from inside that transaction would deadlock its
|
|
354
|
+
* callback. Keep those lifetime operations outside host-owned transactions; durable storage
|
|
355
|
+
* and module transactional hooks remain fully composable.
|
|
356
|
+
*/
|
|
357
|
+
#assertOutsideStorageTransaction(ctx, operation) {
|
|
358
|
+
if (agentStorageTransaction(ctx) !== undefined) {
|
|
359
|
+
throw new Error(`An agent cannot be ${operation} from inside an outer storage transaction.`);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
334
362
|
/** Resolve one agent while its owning public operation is already admitted. */
|
|
335
363
|
async #resolve(ctx, agentId) {
|
|
364
|
+
this.#assertOutsideStorageTransaction(ctx, "resolved");
|
|
336
365
|
const existing = this.#agents.get(agentId);
|
|
337
366
|
if (existing !== undefined)
|
|
338
367
|
return existing;
|
|
@@ -355,16 +384,16 @@ export class AgentSystemLocal {
|
|
|
355
384
|
* that has no live instance yet.
|
|
356
385
|
*/
|
|
357
386
|
async #instantiate(ctx, agentId, config, onlyIfActive = false, start = true) {
|
|
358
|
-
const agentCtx = withAgentConfig(withAgentSystem(ctx, new AgentSystemRef(this, agentId)), config);
|
|
387
|
+
const agentCtx = withAgentDatabase(withAgentConfig(withAgentSystem(ctx, new AgentSystemRef(this, agentId)), config), this.#storage.database);
|
|
359
388
|
const options = {
|
|
360
389
|
id: agentId,
|
|
361
390
|
providers: this.#providers,
|
|
362
391
|
provider: this.#provider,
|
|
363
392
|
persistence: this.#persistenceFor(agentId),
|
|
364
|
-
sharedKV: this.#
|
|
365
|
-
// The collection's
|
|
393
|
+
sharedKV: this.#sharedModuleKV,
|
|
394
|
+
// The collection's modules come first, so the instructions they contribute — the
|
|
366
395
|
// system prompt above all — open every agent's prompt.
|
|
367
|
-
|
|
396
|
+
modules: this.#modules,
|
|
368
397
|
};
|
|
369
398
|
// An identity built here may already have durable state — this is the path a restart
|
|
370
399
|
// resolves through — so the agent is loaded rather than created, and knows whether it
|
|
@@ -401,22 +430,76 @@ export class AgentSystemLocal {
|
|
|
401
430
|
const config = await this.#config(lockCtx, agentId);
|
|
402
431
|
if (config === undefined)
|
|
403
432
|
return undefined;
|
|
433
|
+
await this.#storage.transaction(lockCtx, async (txCtx) => {
|
|
434
|
+
await this.#recordLifecycle(txCtx, lifecycleAgent(agentId, config), (module) => module.agentRestoredTransact, (module) => module.agentRestored);
|
|
435
|
+
});
|
|
404
436
|
return await this.#instantiate(lockCtx, agentId, config, true, false);
|
|
405
437
|
});
|
|
406
438
|
}));
|
|
407
439
|
throwFirstStartFailure(results);
|
|
440
|
+
await Promise.allSettled([...this.#lifecycleObservations]);
|
|
408
441
|
return results.flatMap((result) => result.status === "fulfilled" && result.value !== undefined ? [result.value] : []);
|
|
409
442
|
}
|
|
410
|
-
/**
|
|
443
|
+
/** Run one lifecycle projection in its durable transaction and observe it after commit. */
|
|
444
|
+
async #recordLifecycle(txCtx, agent, transact, observe) {
|
|
445
|
+
for (const module of this.#modules) {
|
|
446
|
+
const hook = transact(module);
|
|
447
|
+
if (hook === undefined)
|
|
448
|
+
continue;
|
|
449
|
+
await this.#invokeLifecycleHook(txCtx, module, hook, agent, true);
|
|
450
|
+
}
|
|
451
|
+
afterCommit(txCtx, () => {
|
|
452
|
+
const observed = (async () => {
|
|
453
|
+
for (const module of this.#modules) {
|
|
454
|
+
const hook = observe(module);
|
|
455
|
+
if (hook === undefined)
|
|
456
|
+
continue;
|
|
457
|
+
try {
|
|
458
|
+
await this.#invokeLifecycleHook(this.#ctx, module, hook, agent);
|
|
459
|
+
}
|
|
460
|
+
catch {
|
|
461
|
+
// The durable change already committed; observers cannot undo it.
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
})();
|
|
465
|
+
this.#admitted.add(observed);
|
|
466
|
+
this.#lifecycleObservations.add(observed);
|
|
467
|
+
void observed.finally(() => {
|
|
468
|
+
this.#admitted.delete(observed);
|
|
469
|
+
this.#lifecycleObservations.delete(observed);
|
|
470
|
+
});
|
|
471
|
+
});
|
|
472
|
+
}
|
|
473
|
+
/** Give one lifecycle hook its module-scoped shared KV and active Drizzle facade. */
|
|
474
|
+
async #invokeLifecycleHook(ctx, module, hook, agent, blockAgent = false) {
|
|
475
|
+
const lifetime = new AbortController();
|
|
476
|
+
const database = (agentDatabase(ctx) ??
|
|
477
|
+
this.#storage.database);
|
|
478
|
+
const sharedKV = this.#sharedModuleKV.scoped(module.name);
|
|
479
|
+
const agents = new AgentSystemRef(this, null, blockAgent ? agent.id : undefined);
|
|
480
|
+
const hookCtx = withLifetime(withAgentKV(withAgentSystem(withAgentDatabase(ctx, database), agents), sharedKV), lifetime.signal);
|
|
481
|
+
const scope = {
|
|
482
|
+
database,
|
|
483
|
+
agents,
|
|
484
|
+
sharedKV,
|
|
485
|
+
};
|
|
486
|
+
try {
|
|
487
|
+
await hook(hookCtx, scope, agent);
|
|
488
|
+
}
|
|
489
|
+
finally {
|
|
490
|
+
lifetime.abort();
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
/** Initialize every module before any active agent is restored or started. */
|
|
411
494
|
async #beforeStart(ctx) {
|
|
412
495
|
const startCtx = withAgentSystem(ctx, this.#ref);
|
|
413
|
-
const results = await Promise.allSettled(this.#
|
|
496
|
+
const results = await Promise.allSettled(this.#modules.map(async (module) => await module.beforeStart?.(startCtx, this.#ref, this.#storage.database)));
|
|
414
497
|
throwFirstStartFailure(results);
|
|
415
498
|
}
|
|
416
|
-
/** Notify every
|
|
499
|
+
/** Notify every module after all active agents have been restored and started. */
|
|
417
500
|
async #afterStart(ctx) {
|
|
418
501
|
const startCtx = withAgentSystem(ctx, this.#ref);
|
|
419
|
-
const results = await Promise.allSettled(this.#
|
|
502
|
+
const results = await Promise.allSettled(this.#modules.map(async (module) => await module.afterStart?.(startCtx, this.#ref, this.#storage.database)));
|
|
420
503
|
throwFirstStartFailure(results);
|
|
421
504
|
}
|
|
422
505
|
/** The durable store for one agent, created once and reused for the life of the collection. */
|
|
@@ -430,7 +513,7 @@ export class AgentSystemLocal {
|
|
|
430
513
|
}
|
|
431
514
|
/**
|
|
432
515
|
* The lock serializing this collection's work on one identity. It is per agent because the
|
|
433
|
-
* work it guards — building an agent, which loads every
|
|
516
|
+
* work it guards — building an agent, which loads every module — may itself resolve another
|
|
434
517
|
* agent from this same collection, and a collection-wide lock would deadlock on it.
|
|
435
518
|
*/
|
|
436
519
|
#lockFor(agentId) {
|
|
@@ -443,16 +526,16 @@ export class AgentSystemLocal {
|
|
|
443
526
|
}
|
|
444
527
|
/** Queue a steered message for an agent. */
|
|
445
528
|
async steer(ctx, agentId, message, options) {
|
|
446
|
-
await this.#admit(async () => {
|
|
529
|
+
return await this.#admit(async () => {
|
|
447
530
|
const agent = await this.#resolve(ctx, agentId);
|
|
448
|
-
await agent.steer(ctx, message, options);
|
|
531
|
+
return await agent.steer(ctx, message, options);
|
|
449
532
|
});
|
|
450
533
|
}
|
|
451
534
|
/** Queue a message for an agent. */
|
|
452
535
|
async send(ctx, agentId, message, options) {
|
|
453
|
-
await this.#admit(async () => {
|
|
536
|
+
return await this.#admit(async () => {
|
|
454
537
|
const agent = await this.#resolve(ctx, agentId);
|
|
455
|
-
await agent.send(ctx, message, options);
|
|
538
|
+
return await agent.send(ctx, message, options);
|
|
456
539
|
});
|
|
457
540
|
}
|
|
458
541
|
/** Cancel an agent's active turn, leaving its queued messages durable for the next one. */
|
|
@@ -468,7 +551,15 @@ export class AgentSystemLocal {
|
|
|
468
551
|
});
|
|
469
552
|
}
|
|
470
553
|
}
|
|
471
|
-
/**
|
|
554
|
+
/** Own and freeze the lifecycle snapshot before any module observes it. */
|
|
555
|
+
function lifecycleAgent(agentId, config) {
|
|
556
|
+
const metadata = config.metadata === undefined ? undefined : ownAgentMetadata(config.metadata);
|
|
557
|
+
if (config.metadata !== undefined && metadata === undefined) {
|
|
558
|
+
throw new Error(`The metadata for agent "${agentId}" is not valid.`);
|
|
559
|
+
}
|
|
560
|
+
return Object.freeze({ id: agentId, metadata });
|
|
561
|
+
}
|
|
562
|
+
/** Start every module even when one fails, then surface the first failure in module order. */
|
|
472
563
|
function throwFirstStartFailure(results) {
|
|
473
564
|
const failure = results.find((result) => result.status === "rejected");
|
|
474
565
|
if (failure !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentSystemLocal.js","sourceRoot":"","sources":["../sources/AgentSystemLocal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentSystemLocal.js","sourceRoot":"","sources":["../sources/AgentSystemLocal.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentSystemRef.d.ts
CHANGED
|
@@ -2,13 +2,15 @@ import type { SessionUserMessage } from "@slopus/happy-providers";
|
|
|
2
2
|
import type { Context } from "@steve.kite/stdlib";
|
|
3
3
|
import type { AgentBaseMessageOptions } from "./AgentBase.js";
|
|
4
4
|
import type { AgentConfig } from "./AgentConfig.js";
|
|
5
|
+
import type { AgentDatabase } from "./AgentDatabase.js";
|
|
5
6
|
import type { AgentMetadata } from "./AgentMetadata.js";
|
|
7
|
+
import type { AgentMessageAcceptance } from "./AgentMessageAcceptance.js";
|
|
6
8
|
import type { AgentModel } from "./AgentModel.js";
|
|
7
9
|
import { AgentRef } from "./AgentRef.js";
|
|
8
10
|
import type { AgentCreateOptions, AgentSystem } from "./AgentSystem.js";
|
|
9
11
|
/**
|
|
10
12
|
* A reference to a collection of agents that cannot deadlock, for code that runs inside an agent
|
|
11
|
-
* — a
|
|
13
|
+
* — a module hook, or a tool the run loop is waiting on. Every operation returns without
|
|
12
14
|
* waiting for any agent's loop to reach a particular point.
|
|
13
15
|
*
|
|
14
16
|
* What is missing is missing on purpose. `delete` closes an agent and `start` resumes whole
|
|
@@ -25,18 +27,18 @@ import type { AgentCreateOptions, AgentSystem } from "./AgentSystem.js";
|
|
|
25
27
|
* for. That is decided from the context, which names the agent the caller is running inside; a
|
|
26
28
|
* context that names none proves nothing, so nothing is waited for there either.
|
|
27
29
|
*/
|
|
28
|
-
export declare class AgentSystemRef {
|
|
30
|
+
export declare class AgentSystemRef<Database extends AgentDatabase = AgentDatabase> {
|
|
29
31
|
#private;
|
|
30
32
|
/** The agent this reference belongs to, or `null` for collection lifecycle code. */
|
|
31
33
|
readonly agentId: string | null;
|
|
32
34
|
/** Wrap a collection as the deadlock-free reference given to code running inside it. */
|
|
33
|
-
constructor(system: AgentSystem
|
|
35
|
+
constructor(system: AgentSystem<Database>, agentId?: string | null, blockedAgentId?: string);
|
|
34
36
|
/** The models this collection offers its agents. */
|
|
35
37
|
get models(): readonly AgentModel[];
|
|
36
38
|
/** Create an agent, inheriting this reference's agent as parent unless options override it. */
|
|
37
|
-
create(ctx: Context, config: AgentConfig, options?: AgentCreateOptions): Promise<AgentRef
|
|
39
|
+
create(ctx: Context, config: AgentConfig, options?: AgentCreateOptions): Promise<AgentRef<Database>>;
|
|
38
40
|
/** A reference to an existing agent; resolving one that was never created is an error. */
|
|
39
|
-
resolve(ctx: Context, agentId: string): Promise<AgentRef
|
|
41
|
+
resolve(ctx: Context, agentId: string): Promise<AgentRef<Database>>;
|
|
40
42
|
/** The current configuration of an agent, or undefined when there is no such agent. */
|
|
41
43
|
config(ctx: Context, agentId: string): Promise<AgentConfig | undefined>;
|
|
42
44
|
/** Shallow-merge fields into an agent's immutable metadata. */
|
|
@@ -50,13 +52,13 @@ export declare class AgentSystemRef {
|
|
|
50
52
|
* accepted and rejects when that write fails; for the caller's own agent it resolves as soon
|
|
51
53
|
* as the agent has taken the request on.
|
|
52
54
|
*/
|
|
53
|
-
steer(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<
|
|
55
|
+
steer(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<AgentMessageAcceptance>;
|
|
54
56
|
/**
|
|
55
57
|
* Queue a sent message. For another agent this resolves once the message is durably accepted
|
|
56
58
|
* and rejects when that write fails; for the caller's own agent it resolves as soon as the
|
|
57
59
|
* agent has taken the request on.
|
|
58
60
|
*/
|
|
59
|
-
send(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<
|
|
61
|
+
send(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<AgentMessageAcceptance>;
|
|
60
62
|
/** Ask an agent to compact, and resolve once it has been asked. */
|
|
61
63
|
compact(ctx: Context, agentId: string): Promise<void>;
|
|
62
64
|
/** Cancel an agent's active turn, and resolve once the cancellation has been signalled. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentSystemRef.d.ts","sourceRoot":"","sources":["../sources/AgentSystemRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAwB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAExE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;;
|
|
1
|
+
{"version":3,"file":"AgentSystemRef.d.ts","sourceRoot":"","sources":["../sources/AgentSystemRef.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAwB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAExE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc,CAAC,QAAQ,SAAS,aAAa,GAAG,aAAa;;IAKtE,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,wFAAwF;IACxF,YACI,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAC7B,OAAO,GAAE,MAAM,GAAG,IAAW,EAC7B,cAAc,CAAC,EAAE,MAAM,EAK1B;IAED,oDAAoD;IACpD,IAAI,MAAM,IAAI,SAAS,UAAU,EAAE,CAElC;IAED,+FAA+F;IACzF,MAAM,CACR,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAI7B;IAED,0FAA0F;IACpF,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAKxE;IAED,uFAAuF;IACjF,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAE5E;IAED,+DAA+D;IACzD,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxF;IAED,6DAA6D;IACvD,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAEvE;IAED,2DAA2D;IACrD,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAEpE;IAED;;;;OAIG;IACG,KAAK,CACP,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAMjC;IAED;;;;OAIG;IACG,IAAI,CACN,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAMjC;IAED,mEAAmE;IAC7D,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;IAED,2FAA2F;IACrF,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;CAUJ"}
|
package/dist/AgentSystemRef.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { acceptanceIsWaitable, AgentRef } from "./AgentRef.js";
|
|
2
2
|
/**
|
|
3
3
|
* A reference to a collection of agents that cannot deadlock, for code that runs inside an agent
|
|
4
|
-
* — a
|
|
4
|
+
* — a module hook, or a tool the run loop is waiting on. Every operation returns without
|
|
5
5
|
* waiting for any agent's loop to reach a particular point.
|
|
6
6
|
*
|
|
7
7
|
* What is missing is missing on purpose. `delete` closes an agent and `start` resumes whole
|
|
@@ -21,12 +21,15 @@ import { acceptanceIsWaitable, AgentRef } from "./AgentRef.js";
|
|
|
21
21
|
export class AgentSystemRef {
|
|
22
22
|
/** The collection this reference forwards every operation to without waiting on its loops. */
|
|
23
23
|
#system;
|
|
24
|
+
/** Identity whose lifecycle lock is held while this scoped reference is in use. */
|
|
25
|
+
#blockedAgentId;
|
|
24
26
|
/** The agent this reference belongs to, or `null` for collection lifecycle code. */
|
|
25
27
|
agentId;
|
|
26
28
|
/** Wrap a collection as the deadlock-free reference given to code running inside it. */
|
|
27
|
-
constructor(system, agentId = null) {
|
|
29
|
+
constructor(system, agentId = null, blockedAgentId) {
|
|
28
30
|
this.#system = system;
|
|
29
31
|
this.agentId = agentId;
|
|
32
|
+
this.#blockedAgentId = blockedAgentId;
|
|
30
33
|
}
|
|
31
34
|
/** The models this collection offers its agents. */
|
|
32
35
|
get models() {
|
|
@@ -40,6 +43,7 @@ export class AgentSystemRef {
|
|
|
40
43
|
}
|
|
41
44
|
/** A reference to an existing agent; resolving one that was never created is an error. */
|
|
42
45
|
async resolve(ctx, agentId) {
|
|
46
|
+
this.#assertNotLifecycleTarget(agentId);
|
|
43
47
|
const agent = await this.#system.resolve(ctx, agentId);
|
|
44
48
|
const parent = await this.#system.parentOf(ctx, agentId);
|
|
45
49
|
return new AgentRef(agent, parent);
|
|
@@ -50,6 +54,7 @@ export class AgentSystemRef {
|
|
|
50
54
|
}
|
|
51
55
|
/** Shallow-merge fields into an agent's immutable metadata. */
|
|
52
56
|
async updateMetadata(ctx, agentId, update) {
|
|
57
|
+
this.#assertNotLifecycleTarget(agentId);
|
|
53
58
|
await this.#system.updateMetadata(ctx, agentId, update);
|
|
54
59
|
}
|
|
55
60
|
/** The direct children of an agent, in durable key order. */
|
|
@@ -66,7 +71,8 @@ export class AgentSystemRef {
|
|
|
66
71
|
* as the agent has taken the request on.
|
|
67
72
|
*/
|
|
68
73
|
async steer(ctx, agentId, message, options) {
|
|
69
|
-
|
|
74
|
+
this.#assertNotLifecycleTarget(agentId);
|
|
75
|
+
return await this.#system.steer(ctx, agentId, message, {
|
|
70
76
|
...options,
|
|
71
77
|
await: acceptanceIsWaitable(ctx, agentId),
|
|
72
78
|
});
|
|
@@ -77,7 +83,8 @@ export class AgentSystemRef {
|
|
|
77
83
|
* agent has taken the request on.
|
|
78
84
|
*/
|
|
79
85
|
async send(ctx, agentId, message, options) {
|
|
80
|
-
|
|
86
|
+
this.#assertNotLifecycleTarget(agentId);
|
|
87
|
+
return await this.#system.send(ctx, agentId, message, {
|
|
81
88
|
...options,
|
|
82
89
|
await: acceptanceIsWaitable(ctx, agentId),
|
|
83
90
|
});
|
|
@@ -90,5 +97,11 @@ export class AgentSystemRef {
|
|
|
90
97
|
async abort(ctx, agentId) {
|
|
91
98
|
await (await this.resolve(ctx, agentId)).abort(ctx);
|
|
92
99
|
}
|
|
100
|
+
/** Fail quickly instead of re-entering an identity lock held by its transactional lifecycle. */
|
|
101
|
+
#assertNotLifecycleTarget(agentId) {
|
|
102
|
+
if (agentId === this.#blockedAgentId) {
|
|
103
|
+
throw new Error(`Agent "${agentId}" cannot be resolved from inside its transactional lifecycle hook.`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
93
106
|
}
|
|
94
107
|
//# sourceMappingURL=AgentSystemRef.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentSystemRef.js","sourceRoot":"","sources":["../sources/AgentSystemRef.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentSystemRef.js","sourceRoot":"","sources":["../sources/AgentSystemRef.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,cAAc;IACvB,8FAA8F;IACrF,OAAO,CAAwB;IACxC,mFAAmF;IAC1E,eAAe,CAAqB;IAC7C,oFAAoF;IAC3E,OAAO,CAAgB;IAEhC,wFAAwF;IACxF,YACI,MAA6B,EAC7B,OAAO,GAAkB,IAAI,EAC7B,cAAuB;QAEvB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;IAC1C,CAAC;IAED,oDAAoD;IACpD,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,+FAA+F;IAC/F,KAAK,CAAC,MAAM,CACR,GAAY,EACZ,MAAmB,EACnB,OAA4B;QAE5B,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,0FAA0F;IAC1F,KAAK,CAAC,OAAO,CAAC,GAAY,EAAE,OAAe;QACvC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,uFAAuF;IACvF,KAAK,CAAC,MAAM,CAAC,GAAY,EAAE,OAAe;QACtC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,cAAc,CAAC,GAAY,EAAE,OAAe,EAAE,MAAqB;QACrE,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,OAAO,CAAC,GAAY,EAAE,OAAe;QACvC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,QAAQ,CAAC,GAAY,EAAE,OAAe;QACxC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAK,CACP,GAAY,EACZ,OAAe,EACf,OAA2B,EAC3B,OAAiC;QAEjC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;YACnD,GAAG,OAAO;YACV,KAAK,EAAE,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC;SAC5C,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACN,GAAY,EACZ,OAAe,EACf,OAA2B,EAC3B,OAAiC;QAEjC,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE;YAClD,GAAG,OAAO;YACV,KAAK,EAAE,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC;SAC5C,CAAC,CAAC;IACP,CAAC;IAED,mEAAmE;IACnE,KAAK,CAAC,OAAO,CAAC,GAAY,EAAE,OAAe;QACvC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,KAAK,CAAC,GAAY,EAAE,OAAe;QACrC,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,gGAAgG;IAChG,yBAAyB,CAAC,OAAe;QACrC,IAAI,OAAO,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACX,UAAU,OAAO,oEAAoE,CACxF,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
|
package/dist/AgentTool.d.ts
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
1
|
import type { SessionOutputBlock, SessionToolLarkGrammar } from "@slopus/happy-providers";
|
|
2
2
|
import type { Static, TSchema } from "@sinclair/typebox";
|
|
3
3
|
import type { Context } from "@steve.kite/stdlib";
|
|
4
|
+
import type { AgentKV } from "./AgentKV.js";
|
|
5
|
+
/** One durable invocation as handed directly to the tool that executes it. */
|
|
6
|
+
export interface AgentToolCall<Result extends TSchema = TSchema> {
|
|
7
|
+
/** Stable internally generated cuid2 identity, reused when an interrupted call resumes. */
|
|
8
|
+
readonly id: string;
|
|
9
|
+
/** Opaque identity supplied by the provider and used only to pair its call and result. */
|
|
10
|
+
readonly providerCallId: string;
|
|
11
|
+
/** State owned by this invocation and erased atomically when its winning result commits. */
|
|
12
|
+
readonly kv: AgentKV;
|
|
13
|
+
/**
|
|
14
|
+
* Atomically stage this structured result using the transaction carried by `ctx`. The first
|
|
15
|
+
* successful commit wins; later commits and the eventual execute return value are ignored.
|
|
16
|
+
*/
|
|
17
|
+
commit(ctx: Context, result: Static<Result>): Promise<Static<Result>>;
|
|
18
|
+
}
|
|
4
19
|
/** A tool-owned decision about one invocation while the agent is in Auto mode. */
|
|
5
20
|
export type AgentToolAutoPermissionPredicate<Args> = {
|
|
6
21
|
bivarianceHack(args: Args, ctx: Context): boolean | Promise<boolean>;
|
|
@@ -75,7 +90,7 @@ export interface AgentTool<Args extends TSchema = TSchema, Result extends TSchem
|
|
|
75
90
|
* The context's lifetime aborts when the turn is aborted, so a long-running tool can
|
|
76
91
|
* observe cancellation and stop its own work.
|
|
77
92
|
*/
|
|
78
|
-
execute(ctx: Context, args: Static<Args>): Promise<Static<Result>>;
|
|
93
|
+
execute(ctx: Context, args: Static<Args>, call: AgentToolCall<Result>): Promise<Static<Result>>;
|
|
79
94
|
/** Renders a validated result into the content blocks the model actually sees. */
|
|
80
95
|
toLLM(result: Static<Result>): readonly SessionOutputBlock[];
|
|
81
96
|
/** Whether a structured result should be reported to the model as an error. */
|
package/dist/AgentTool.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentTool.d.ts","sourceRoot":"","sources":["../sources/AgentTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAElD,kFAAkF;AAClF,MAAM,MAAM,gCAAgC,CAAC,IAAI,IAAI;IACjD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACxE,CAAC,gBAAgB,CAAC,CAAC;AAEpB,sFAAsF;AACtF,MAAM,MAAM,sCAAsC,CAAC,IAAI,IAAI;IACvD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAAC;CACpD,CAAC,gBAAgB,CAAC,CAAC;AAEpB;;;;;;GAMG;AACH,MAAM,WAAW,SAAS,CAAC,IAAI,SAAS,OAAO,GAAG,OAAO,EAAE,MAAM,SAAS,OAAO,GAAG,OAAO;IACvF,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC7E,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sFAAsF;IACtF,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,kFAAkF;IAClF,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,QAAQ,CAAC,OAAO,CAAC,EAAE,sBAAsB,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAC7C;;;OAGG;IACH,QAAQ,CAAC,4BAA4B,CAAC,EAAE,sCAAsC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF;;;OAGG;IACH,QAAQ,CAAC,+BAA+B,CAAC,EAAE,gCAAgC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentTool.d.ts","sourceRoot":"","sources":["../sources/AgentTool.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentTool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentTool.js","sourceRoot":"","sources":["../sources/AgentTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AgentTool.js","sourceRoot":"","sources":["../sources/AgentTool.ts"],"names":[],"mappings":"AA2GA,qEAAqE;AACrE,MAAM,UAAU,eAAe,CAC3B,IAA6B;IAE7B,OAAO,IAAI,CAAC;AAChB,CAAC"}
|