@slopus/happy-agent-base 0.0.5 → 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.
Files changed (92) hide show
  1. package/README.md +62 -9
  2. package/dist/Agent.d.ts +27 -22
  3. package/dist/Agent.d.ts.map +1 -1
  4. package/dist/Agent.js +120 -110
  5. package/dist/Agent.js.map +1 -1
  6. package/dist/AgentBase.d.ts +27 -13
  7. package/dist/AgentBase.d.ts.map +1 -1
  8. package/dist/AgentBase.js +657 -151
  9. package/dist/AgentBase.js.map +1 -1
  10. package/dist/AgentBaseHooks.d.ts +58 -32
  11. package/dist/AgentBaseHooks.d.ts.map +1 -1
  12. package/dist/AgentBasePending.d.ts +6 -2
  13. package/dist/AgentBasePending.d.ts.map +1 -1
  14. package/dist/AgentBasePending.js +7 -0
  15. package/dist/AgentBasePending.js.map +1 -1
  16. package/dist/AgentConfig.d.ts +20 -13
  17. package/dist/AgentConfig.d.ts.map +1 -1
  18. package/dist/AgentConfig.js +32 -12
  19. package/dist/AgentConfig.js.map +1 -1
  20. package/dist/AgentContexts.d.ts +18 -1
  21. package/dist/AgentContexts.d.ts.map +1 -1
  22. package/dist/AgentContexts.js +24 -1
  23. package/dist/AgentContexts.js.map +1 -1
  24. package/dist/AgentDatabase.d.ts +35 -0
  25. package/dist/AgentDatabase.d.ts.map +1 -0
  26. package/dist/AgentDatabase.js +30 -0
  27. package/dist/AgentDatabase.js.map +1 -0
  28. package/dist/AgentKV.d.ts +19 -6
  29. package/dist/AgentKV.d.ts.map +1 -1
  30. package/dist/AgentKV.js +110 -43
  31. package/dist/AgentKV.js.map +1 -1
  32. package/dist/AgentMessageAcceptance.d.ts +14 -0
  33. package/dist/AgentMessageAcceptance.d.ts.map +1 -0
  34. package/dist/AgentMessageAcceptance.js +2 -0
  35. package/dist/AgentMessageAcceptance.js.map +1 -0
  36. package/dist/AgentMetadata.d.ts +37 -0
  37. package/dist/AgentMetadata.d.ts.map +1 -0
  38. package/dist/AgentMetadata.js +74 -0
  39. package/dist/AgentMetadata.js.map +1 -0
  40. package/dist/AgentModule.d.ts +209 -0
  41. package/dist/AgentModule.d.ts.map +1 -0
  42. package/dist/AgentModule.js +2 -0
  43. package/dist/AgentModule.js.map +1 -0
  44. package/dist/{AgentFeatureAction.d.ts → AgentModuleAction.d.ts} +7 -2
  45. package/dist/AgentModuleAction.d.ts.map +1 -0
  46. package/dist/AgentModuleAction.js +2 -0
  47. package/dist/AgentModuleAction.js.map +1 -0
  48. package/dist/AgentPermissionMode.d.ts +1 -1
  49. package/dist/AgentPermissionMode.js +1 -1
  50. package/dist/AgentPersistence.d.ts +20 -7
  51. package/dist/AgentPersistence.d.ts.map +1 -1
  52. package/dist/AgentPersistenceDrizzle.d.ts +31 -0
  53. package/dist/AgentPersistenceDrizzle.d.ts.map +1 -0
  54. package/dist/AgentPersistenceDrizzle.js +99 -0
  55. package/dist/AgentPersistenceDrizzle.js.map +1 -0
  56. package/dist/AgentRef.d.ts +17 -9
  57. package/dist/AgentRef.d.ts.map +1 -1
  58. package/dist/AgentRef.js +16 -9
  59. package/dist/AgentRef.js.map +1 -1
  60. package/dist/AgentStorage.d.ts +33 -13
  61. package/dist/AgentStorage.d.ts.map +1 -1
  62. package/dist/AgentStorage.js +174 -3
  63. package/dist/AgentStorage.js.map +1 -1
  64. package/dist/AgentSystem.d.ts +34 -12
  65. package/dist/AgentSystem.d.ts.map +1 -1
  66. package/dist/AgentSystemContext.d.ts +3 -3
  67. package/dist/AgentSystemContext.d.ts.map +1 -1
  68. package/dist/AgentSystemContext.js +4 -4
  69. package/dist/AgentSystemContext.js.map +1 -1
  70. package/dist/AgentSystemLocal.d.ts +30 -21
  71. package/dist/AgentSystemLocal.d.ts.map +1 -1
  72. package/dist/AgentSystemLocal.js +226 -59
  73. package/dist/AgentSystemLocal.js.map +1 -1
  74. package/dist/AgentSystemRef.d.ts +21 -10
  75. package/dist/AgentSystemRef.d.ts.map +1 -1
  76. package/dist/AgentSystemRef.js +41 -9
  77. package/dist/AgentSystemRef.js.map +1 -1
  78. package/dist/AgentTool.d.ts +16 -1
  79. package/dist/AgentTool.d.ts.map +1 -1
  80. package/dist/AgentTool.js.map +1 -1
  81. package/dist/index.d.ts +10 -7
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +9 -6
  84. package/dist/index.js.map +1 -1
  85. package/package.json +4 -3
  86. package/dist/AgentFeature.d.ts +0 -177
  87. package/dist/AgentFeature.d.ts.map +0 -1
  88. package/dist/AgentFeature.js +0 -2
  89. package/dist/AgentFeature.js.map +0 -1
  90. package/dist/AgentFeatureAction.d.ts.map +0 -1
  91. package/dist/AgentFeatureAction.js +0 -2
  92. package/dist/AgentFeatureAction.js.map +0 -1
@@ -1,19 +1,22 @@
1
1
  import { createId } from "@paralleldrive/cuid2";
2
+ import { Type } from "@sinclair/typebox";
2
3
  import { Value } from "@sinclair/typebox/value";
3
- import { asyncLock } from "@steve.kite/stdlib";
4
+ import { afterCommit, asyncLock, withLifetime, } from "@steve.kite/stdlib";
4
5
  import { Agent } from "./Agent.js";
5
6
  import {} from "./AgentBase.js";
6
- import { agentId as agentIdOf } from "./AgentContexts.js";
7
- import { agentConfigSchema, withAgentConfig } from "./AgentConfig.js";
7
+ import { agentDatabase, agentId as agentIdOf, agentStorageTransaction, withAgentDatabase, withAgentKV, } from "./AgentContexts.js";
8
+ import { agentConfigSchema, ownAgentConfig, withAgentConfig, } from "./AgentConfig.js";
9
+ import { cuid2Schema, ownAgentMetadata } from "./AgentMetadata.js";
8
10
  import { withAgentSystem } from "./AgentSystemContext.js";
9
11
  import { AgentSystemRef } from "./AgentSystemRef.js";
12
+ const storedParentSchema = Type.String();
10
13
  /**
11
14
  * The `AgentSystem` backed by this process: it lazily builds and owns the `Agent` instances for
12
15
  * the identities its storage holds. Concurrent resolutions of the same ID share one load, while a
13
16
  * failed load is forgotten so a later resolution can retry.
14
17
  *
15
18
  * Work serializes per agent rather than per collection: a collection-wide lock would make one
16
- * agent's feature load block every other agent, including one that load itself resolves.
19
+ * agent's module load block every other agent, including one that load itself resolves.
17
20
  *
18
21
  * This is the owner's handle, and some of what it offers waits for an agent to reach a point only
19
22
  * that agent's run loop can bring it to. Hand an `AgentSystemRef` to anything running inside an
@@ -28,9 +31,9 @@ export class AgentSystemLocal {
28
31
  * What this collection looks like from inside one of its agents, and the only form of it a
29
32
  * derived context ever carries.
30
33
  */
31
- #ref = new AgentSystemRef(this);
32
- /** The collection's feature instances, every one of them serving every agent it builds. */
33
- #features;
34
+ #ref = new AgentSystemRef(this, null);
35
+ /** The collection's module instances, every one of them serving every agent it builds. */
36
+ #modules;
34
37
  /** Where the collection's identities, configuration, and per-agent state are durable. */
35
38
  #storage;
36
39
  /** The registry providers are resolved from when an agent is built. */
@@ -39,13 +42,15 @@ export class AgentSystemLocal {
39
42
  #provider;
40
43
  /** Exclusive database-backed ownership of this collection's whole durable store. */
41
44
  #storageLock;
42
- /** The configuration each identity was created with. */
45
+ /** The identity index and creation-time config fallback; current config lives with the agent. */
43
46
  #configs;
47
+ /** The durable parent of each non-root identity, keyed by child identity. */
48
+ #parents;
44
49
  /**
45
- * The root of the store features share across the collection. Each feature works under its
50
+ * The root of the store modules share across the collection. Each module works under its
46
51
  * own scope of it, which is where anything outliving one agent's conversation belongs.
47
52
  */
48
- #sharedFeatureKV;
53
+ #sharedModuleKV;
49
54
  /** The live `Agent` instances this process has built, keyed by identity. */
50
55
  #agents = new Map();
51
56
  // One agent has one store for the life of the collection, so inspecting an agent's durable
@@ -55,7 +60,9 @@ export class AgentSystemLocal {
55
60
  #locks = new Map();
56
61
  /** Public operations admitted before shutdown and therefore allowed to finish. */
57
62
  #admitted = new Set();
58
- /** No agent operation is admitted until every feature has finished its beforeStart hook. */
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. */
59
66
  #lifecycle = "initializing";
60
67
  /** The shared shutdown, including release of the hard storage lock. */
61
68
  #closePromise;
@@ -69,13 +76,17 @@ export class AgentSystemLocal {
69
76
  * but running.
70
77
  */
71
78
  static async create(ctx, storage, config) {
72
- const systemCtx = ctx;
79
+ const systemCtx = withAgentDatabase(ctx, storage.database);
73
80
  const storageLock = await storage.acquireLock(systemCtx);
74
81
  const system = new AgentSystemLocal(systemCtx, storage, storageLock, config);
75
82
  try {
83
+ await storage.migrate(systemCtx, system.#modules);
76
84
  await system.#beforeStart(systemCtx);
77
- const active = await system.#start(systemCtx);
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.
78
88
  system.#lifecycle = "open";
89
+ const active = await system.#start(systemCtx);
79
90
  for (const agent of active)
80
91
  agent.start();
81
92
  await system.#afterStart(systemCtx);
@@ -87,26 +98,28 @@ export class AgentSystemLocal {
87
98
  }
88
99
  }
89
100
  /**
90
- * Wire this collection to its storage, providers, and feature configuration, without reading
101
+ * Wire this collection to its storage, providers, and module configuration, without reading
91
102
  * any of it. Private: a collection is brought up by `create`, which also resumes the work
92
103
  * the storage was left holding — building one without that is building half of it.
93
104
  */
94
105
  constructor(ctx, storage, storageLock, options) {
95
106
  this.#ctx = ctx;
96
- this.#features = options.features ?? [];
107
+ this.#modules = options.modules ?? [];
97
108
  this.#storage = storage;
98
109
  this.#storageLock = storageLock;
99
110
  this.#providers = options.providers;
100
111
  this.#provider = options.provider;
101
112
  this.models = [...options.models];
102
113
  this.#configs = storage.kv.scoped("config");
103
- this.#sharedFeatureKV = storage.kv.scoped("features");
114
+ this.#parents = storage.kv.scoped("parent");
115
+ this.#sharedModuleKV = storage.kv.scoped("modules");
104
116
  }
105
117
  /**
106
118
  * Stop every live agent, wait for operations already admitted by this owner, and only then
107
119
  * release the database lock. Repeated callers join the same shutdown.
108
120
  */
109
121
  async close(ctx) {
122
+ this.#assertOutsideStorageTransaction(ctx, "closed");
110
123
  if (this.#closePromise === undefined) {
111
124
  this.#lifecycle = "closing";
112
125
  this.#closePromise = this.#shutdown();
@@ -170,31 +183,52 @@ export class AgentSystemLocal {
170
183
  return running;
171
184
  }
172
185
  /**
173
- * Create an agent with the configuration it keeps for its whole life, and resolve it. The
174
- * identity is allocated here and nowhere else: it is a cuid2, globally unique, so a new
175
- * agent never lands on an identity that already exists or on a store something else wrote.
176
- * The configuration is persisted before the agent runs, so every later process resolves the
177
- * agent exactly as it was created.
186
+ * Create and resolve an agent. Its identity is either a validated caller-supplied cuid2 or
187
+ * allocated here, and the transaction refuses an existing identity rather than overwriting
188
+ * it. Configuration and parentage are persisted before the agent runs, so every later process
189
+ * resolves the same agent; only its metadata may subsequently change.
178
190
  *
179
- * Nothing here is undone: an agent whose features refuse to load leaves an identity that
191
+ * Nothing here is undone: an agent whose modules refuse to load leaves an identity that
180
192
  * exists, is resolvable, and will be built the next time something wants it. Taking a
181
193
  * provisional identity back after a failed build would add a compensation that can itself
182
194
  * fail.
183
195
  */
184
- async create(ctx, config, initialContext) {
196
+ async create(ctx, config, options) {
197
+ this.#assertOutsideStorageTransaction(ctx, "created");
185
198
  return await this.#admit(async () => {
186
- const agentId = createId();
199
+ const agentId = options?.id ?? createId();
200
+ if (!Value.Check(cuid2Schema, agentId)) {
201
+ throw new Error("The agent ID must be a cuid2 identity.");
202
+ }
187
203
  if (!Value.Check(agentConfigSchema, config)) {
188
204
  throw new Error(`The configuration for agent "${agentId}" is not valid.`);
189
205
  }
206
+ const parent = options?.parent === undefined ? (agentIdOf(ctx) ?? null) : options.parent;
190
207
  // The caller keeps its own object, and may go on editing it. What was created is what
191
208
  // was passed at this moment, so storage and this agent's context both get a copy.
192
- const owned = structuredClone(config);
209
+ const owned = ownAgentConfig(config);
210
+ const lifecycle = lifecycleAgent(agentId, owned);
193
211
  return await this.#lockFor(agentId).runInLock(ctx, async (lockCtx) => {
194
- await this.#configs.write(lockCtx, agentId, owned);
195
- if (initialContext !== undefined) {
196
- await this.#seedInitialContext(lockCtx, agentId, initialContext.messages);
212
+ if ((await this.#configs.read(lockCtx, agentId)) !== undefined) {
213
+ throw new Error(`Agent "${agentId}" already exists.`);
197
214
  }
215
+ if (parent !== null && (await this.#configs.read(lockCtx, parent)) === undefined) {
216
+ throw new Error(`Agent "${parent}" has not been created.`);
217
+ }
218
+ await this.#preparePersistence(lockCtx, agentId, owned, options?.initialContext?.messages ?? []);
219
+ await this.#configs.transaction(lockCtx, async (_configs, txCtx) => {
220
+ if ((await this.#configs.read(txCtx, agentId)) !== undefined) {
221
+ throw new Error(`Agent "${agentId}" already exists.`);
222
+ }
223
+ if (parent !== null &&
224
+ (await this.#configs.read(txCtx, parent)) === undefined) {
225
+ throw new Error(`Agent "${parent}" has not been created.`);
226
+ }
227
+ await this.#configs.write(txCtx, agentId, owned);
228
+ if (parent !== null)
229
+ await this.#parents.write(txCtx, agentId, parent);
230
+ await this.#recordLifecycle(txCtx, lifecycle, (module) => module.agentCreatedTransact, (module) => module.agentCreated);
231
+ });
198
232
  const agent = await this.#instantiate(lockCtx, agentId, owned);
199
233
  if (agent === undefined)
200
234
  throw new Error(`Agent "${agentId}" could not be built.`);
@@ -213,51 +247,121 @@ export class AgentSystemLocal {
213
247
  * what clears it.
214
248
  */
215
249
  async delete(ctx, agentId) {
250
+ this.#assertOutsideStorageTransaction(ctx, "archived");
216
251
  await this.#admit(async () => {
217
252
  await this.#lockFor(agentId).runInLock(ctx, async (lockCtx) => {
253
+ const config = await this.#config(lockCtx, agentId);
218
254
  const agent = this.#agents.get(agentId);
219
255
  this.#agents.delete(agentId);
220
256
  await agent?.close();
221
- await this.#configs.delete(lockCtx, agentId);
257
+ await this.#configs.transaction(lockCtx, async (_configs, txCtx) => {
258
+ await this.#configs.delete(txCtx, agentId);
259
+ await this.#parents.delete(txCtx, agentId);
260
+ const children = await this.#parents.list(txCtx);
261
+ for (const child of children) {
262
+ if (child.value === agentId)
263
+ await this.#parents.delete(txCtx, child.key);
264
+ }
265
+ if (config !== undefined) {
266
+ await this.#recordLifecycle(txCtx, lifecycleAgent(agentId, config), (module) => module.agentArchivedTransact, (module) => module.agentArchived);
267
+ }
268
+ });
222
269
  this.#persistences.delete(agentId);
223
270
  });
224
271
  });
225
272
  }
226
- /** Install a projected conversation before the new agent is started. */
227
- async #seedInitialContext(ctx, agentId, messages) {
228
- if (messages.length === 0)
229
- return;
273
+ /**
274
+ * Atomically clear an earlier incarnation's isolated store and install the new configuration
275
+ * and projected conversation before publishing the identity in the collection index.
276
+ */
277
+ async #preparePersistence(ctx, agentId, config, messages) {
230
278
  const persistence = this.#persistenceFor(agentId);
231
279
  await persistence.transaction(ctx, async (txCtx) => {
232
- await persistence.append(txCtx, {
233
- type: "compaction",
234
- messages: structuredClone(messages),
235
- });
280
+ await persistence.clearRecords(txCtx);
281
+ for (const { key } of await persistence.readValues(txCtx, "")) {
282
+ await persistence.deleteValue(txCtx, key);
283
+ }
284
+ await persistence.writeValue(txCtx, "agentConfig", config);
285
+ if (messages.length > 0) {
286
+ await persistence.append(txCtx, {
287
+ type: "compaction",
288
+ messages: structuredClone(messages),
289
+ });
290
+ }
236
291
  });
237
292
  }
238
- /** The configuration an agent was created with, or undefined when there is no such agent. */
293
+ /** The current configuration of an agent, or undefined when there is no such agent. */
239
294
  async config(ctx, agentId) {
240
295
  return await this.#admit(async () => await this.#config(ctx, agentId));
241
296
  }
242
297
  /** Read one stored configuration while its owning operation is already admitted. */
243
298
  async #config(ctx, agentId) {
244
- const stored = await this.#configs.read(ctx, agentId);
245
- if (stored === undefined)
299
+ const indexed = await this.#configs.read(ctx, agentId);
300
+ if (indexed === undefined)
246
301
  return undefined;
302
+ const local = await this.#persistenceFor(agentId).readValues(ctx, "agentConfig");
303
+ const stored = local.find(({ key }) => key === "agentConfig")?.value ?? indexed;
247
304
  if (!Value.Check(agentConfigSchema, stored)) {
248
305
  throw new Error(`The stored configuration of agent "${agentId}" is not valid.`);
249
306
  }
250
- return stored;
307
+ return ownAgentConfig(stored);
308
+ }
309
+ /** Shallow-merge fields into one agent's immutable metadata. */
310
+ async updateMetadata(ctx, agentId, update) {
311
+ this.#assertOutsideStorageTransaction(ctx, "updated");
312
+ await this.#admit(async () => {
313
+ const agent = await this.#resolve(ctx, agentId);
314
+ await agent.updateMetadata(ctx, update);
315
+ });
316
+ }
317
+ /** The direct children of an existing agent, in durable key order. */
318
+ async childOf(ctx, agentId) {
319
+ return await this.#admit(async () => {
320
+ await this.#requireAgent(ctx, agentId);
321
+ return (await this.#parents.list(ctx)).flatMap(({ key, value }) => value === agentId ? [key] : []);
322
+ });
323
+ }
324
+ /** The parent of an existing agent, or `null` when it is a root. */
325
+ async parentOf(ctx, agentId) {
326
+ return await this.#admit(async () => {
327
+ await this.#requireAgent(ctx, agentId);
328
+ const parent = await this.#parents.read(ctx, agentId);
329
+ if (parent === undefined)
330
+ return null;
331
+ if (!Value.Check(storedParentSchema, parent)) {
332
+ throw new Error(`The stored parent of agent "${agentId}" is not valid.`);
333
+ }
334
+ return parent;
335
+ });
336
+ }
337
+ /** Refuse relationship queries for an identity that has never been created. */
338
+ async #requireAgent(ctx, agentId) {
339
+ if ((await this.#config(ctx, agentId)) === undefined) {
340
+ throw new Error(`Agent "${agentId}" has not been created.`);
341
+ }
251
342
  }
252
343
  /**
253
344
  * The live agent for an ID, loading and starting it if this process has not seen it yet.
254
345
  * Concurrent resolutions of the same ID share one load.
255
346
  */
256
347
  async resolve(ctx, agentId) {
348
+ this.#assertOutsideStorageTransaction(ctx, "resolved");
257
349
  return await this.#admit(async () => await this.#resolve(ctx, agentId));
258
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
+ }
259
362
  /** Resolve one agent while its owning public operation is already admitted. */
260
363
  async #resolve(ctx, agentId) {
364
+ this.#assertOutsideStorageTransaction(ctx, "resolved");
261
365
  const existing = this.#agents.get(agentId);
262
366
  if (existing !== undefined)
263
367
  return existing;
@@ -280,16 +384,16 @@ export class AgentSystemLocal {
280
384
  * that has no live instance yet.
281
385
  */
282
386
  async #instantiate(ctx, agentId, config, onlyIfActive = false, start = true) {
283
- const agentCtx = withAgentConfig(withAgentSystem(ctx, this.#ref), config);
387
+ const agentCtx = withAgentDatabase(withAgentConfig(withAgentSystem(ctx, new AgentSystemRef(this, agentId)), config), this.#storage.database);
284
388
  const options = {
285
389
  id: agentId,
286
390
  providers: this.#providers,
287
391
  provider: this.#provider,
288
392
  persistence: this.#persistenceFor(agentId),
289
- sharedKV: this.#sharedFeatureKV,
290
- // The collection's features come first, so the instructions they contribute — the
393
+ sharedKV: this.#sharedModuleKV,
394
+ // The collection's modules come first, so the instructions they contribute — the
291
395
  // system prompt above all — open every agent's prompt.
292
- features: this.#features,
396
+ modules: this.#modules,
293
397
  };
294
398
  // An identity built here may already have durable state — this is the path a restart
295
399
  // resolves through — so the agent is loaded rather than created, and knows whether it
@@ -319,28 +423,83 @@ export class AgentSystemLocal {
319
423
  */
320
424
  async #start(ctx) {
321
425
  const created = await this.#configs.list(ctx);
322
- const results = await Promise.allSettled(created.map(async ({ key: agentId, value }) => {
323
- if (!Value.Check(agentConfigSchema, value))
324
- return undefined;
426
+ const results = await Promise.allSettled(created.map(async ({ key: agentId }) => {
325
427
  return await this.#lockFor(agentId).runInLock(ctx, async (lockCtx) => {
326
428
  if (this.#agents.has(agentId))
327
429
  return undefined;
328
- return await this.#instantiate(lockCtx, agentId, value, true, false);
430
+ const config = await this.#config(lockCtx, agentId);
431
+ if (config === undefined)
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
+ });
436
+ return await this.#instantiate(lockCtx, agentId, config, true, false);
329
437
  });
330
438
  }));
331
439
  throwFirstStartFailure(results);
440
+ await Promise.allSettled([...this.#lifecycleObservations]);
332
441
  return results.flatMap((result) => result.status === "fulfilled" && result.value !== undefined ? [result.value] : []);
333
442
  }
334
- /** Initialize every feature before any active agent is restored or started. */
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. */
335
494
  async #beforeStart(ctx) {
336
495
  const startCtx = withAgentSystem(ctx, this.#ref);
337
- const results = await Promise.allSettled(this.#features.map(async (feature) => await feature.beforeStart?.(startCtx, this.#ref)));
496
+ const results = await Promise.allSettled(this.#modules.map(async (module) => await module.beforeStart?.(startCtx, this.#ref, this.#storage.database)));
338
497
  throwFirstStartFailure(results);
339
498
  }
340
- /** Notify every feature after all active agents have been restored and started. */
499
+ /** Notify every module after all active agents have been restored and started. */
341
500
  async #afterStart(ctx) {
342
501
  const startCtx = withAgentSystem(ctx, this.#ref);
343
- const results = await Promise.allSettled(this.#features.map(async (feature) => await feature.afterStart?.(startCtx, this.#ref)));
502
+ const results = await Promise.allSettled(this.#modules.map(async (module) => await module.afterStart?.(startCtx, this.#ref, this.#storage.database)));
344
503
  throwFirstStartFailure(results);
345
504
  }
346
505
  /** The durable store for one agent, created once and reused for the life of the collection. */
@@ -354,7 +513,7 @@ export class AgentSystemLocal {
354
513
  }
355
514
  /**
356
515
  * The lock serializing this collection's work on one identity. It is per agent because the
357
- * work it guards — building an agent, which loads every feature — may itself resolve another
516
+ * work it guards — building an agent, which loads every module — may itself resolve another
358
517
  * agent from this same collection, and a collection-wide lock would deadlock on it.
359
518
  */
360
519
  #lockFor(agentId) {
@@ -367,16 +526,16 @@ export class AgentSystemLocal {
367
526
  }
368
527
  /** Queue a steered message for an agent. */
369
528
  async steer(ctx, agentId, message, options) {
370
- await this.#admit(async () => {
529
+ return await this.#admit(async () => {
371
530
  const agent = await this.#resolve(ctx, agentId);
372
- await agent.steer(ctx, message, options);
531
+ return await agent.steer(ctx, message, options);
373
532
  });
374
533
  }
375
534
  /** Queue a message for an agent. */
376
535
  async send(ctx, agentId, message, options) {
377
- await this.#admit(async () => {
536
+ return await this.#admit(async () => {
378
537
  const agent = await this.#resolve(ctx, agentId);
379
- await agent.send(ctx, message, options);
538
+ return await agent.send(ctx, message, options);
380
539
  });
381
540
  }
382
541
  /** Cancel an agent's active turn, leaving its queued messages durable for the next one. */
@@ -392,7 +551,15 @@ export class AgentSystemLocal {
392
551
  });
393
552
  }
394
553
  }
395
- /** Start every feature even when one fails, then surface the first failure in feature order. */
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. */
396
563
  function throwFirstStartFailure(results) {
397
564
  const failure = results.find((result) => result.status === "rejected");
398
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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"}
@@ -2,12 +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";
6
+ import type { AgentMetadata } from "./AgentMetadata.js";
7
+ import type { AgentMessageAcceptance } from "./AgentMessageAcceptance.js";
5
8
  import type { AgentModel } from "./AgentModel.js";
6
9
  import { AgentRef } from "./AgentRef.js";
7
- import type { AgentInitialContext, AgentSystem } from "./AgentSystem.js";
10
+ import type { AgentCreateOptions, AgentSystem } from "./AgentSystem.js";
8
11
  /**
9
12
  * A reference to a collection of agents that cannot deadlock, for code that runs inside an agent
10
- * — a feature hook, or a tool the run loop is waiting on. Every operation returns without
13
+ * — a module hook, or a tool the run loop is waiting on. Every operation returns without
11
14
  * waiting for any agent's loop to reach a particular point.
12
15
  *
13
16
  * What is missing is missing on purpose. `delete` closes an agent and `start` resumes whole
@@ -24,30 +27,38 @@ import type { AgentInitialContext, AgentSystem } from "./AgentSystem.js";
24
27
  * for. That is decided from the context, which names the agent the caller is running inside; a
25
28
  * context that names none proves nothing, so nothing is waited for there either.
26
29
  */
27
- export declare class AgentSystemRef {
30
+ export declare class AgentSystemRef<Database extends AgentDatabase = AgentDatabase> {
28
31
  #private;
32
+ /** The agent this reference belongs to, or `null` for collection lifecycle code. */
33
+ readonly agentId: string | null;
29
34
  /** Wrap a collection as the deadlock-free reference given to code running inside it. */
30
- constructor(system: AgentSystem);
35
+ constructor(system: AgentSystem<Database>, agentId?: string | null, blockedAgentId?: string);
31
36
  /** The models this collection offers its agents. */
32
37
  get models(): readonly AgentModel[];
33
- /** Create an agent with a new system-generated cuid2 identity. */
34
- create(ctx: Context, config: AgentConfig, initialContext?: AgentInitialContext): Promise<AgentRef>;
38
+ /** Create an agent, inheriting this reference's agent as parent unless options override it. */
39
+ create(ctx: Context, config: AgentConfig, options?: AgentCreateOptions): Promise<AgentRef<Database>>;
35
40
  /** A reference to an existing agent; resolving one that was never created is an error. */
36
- resolve(ctx: Context, agentId: string): Promise<AgentRef>;
37
- /** The configuration an agent was created with, or undefined when there is no such agent. */
41
+ resolve(ctx: Context, agentId: string): Promise<AgentRef<Database>>;
42
+ /** The current configuration of an agent, or undefined when there is no such agent. */
38
43
  config(ctx: Context, agentId: string): Promise<AgentConfig | undefined>;
44
+ /** Shallow-merge fields into an agent's immutable metadata. */
45
+ updateMetadata(ctx: Context, agentId: string, update: AgentMetadata): Promise<void>;
46
+ /** The direct children of an agent, in durable key order. */
47
+ childOf(ctx: Context, agentId: string): Promise<readonly string[]>;
48
+ /** The parent of an agent, or `null` when it is a root. */
49
+ parentOf(ctx: Context, agentId: string): Promise<string | null>;
39
50
  /**
40
51
  * Queue a steered message. For another agent this resolves once the message is durably
41
52
  * accepted and rejects when that write fails; for the caller's own agent it resolves as soon
42
53
  * as the agent has taken the request on.
43
54
  */
44
- steer(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<void>;
55
+ steer(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<AgentMessageAcceptance>;
45
56
  /**
46
57
  * Queue a sent message. For another agent this resolves once the message is durably accepted
47
58
  * and rejects when that write fails; for the caller's own agent it resolves as soon as the
48
59
  * agent has taken the request on.
49
60
  */
50
- send(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<void>;
61
+ send(ctx: Context, agentId: string, message: SessionUserMessage, options?: AgentBaseMessageOptions): Promise<AgentMessageAcceptance>;
51
62
  /** Ask an agent to compact, and resolve once it has been asked. */
52
63
  compact(ctx: Context, agentId: string): Promise<void>;
53
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,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAwB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,cAAc;;IAIvB,wFAAwF;IACxF,YAAY,MAAM,EAAE,WAAW,EAE9B;IAED,oDAAoD;IACpD,IAAI,MAAM,IAAI,SAAS,UAAU,EAAE,CAElC;IAED,kEAAkE;IAC5D,MAAM,CACR,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,WAAW,EACnB,cAAc,CAAC,EAAE,mBAAmB,GACrC,OAAO,CAAC,QAAQ,CAAC,CAEnB;IAED,0FAA0F;IACpF,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAE9D;IAED,6FAA6F;IACvF,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAE5E;IAED;;;;OAIG;IACG,KAAK,CACP,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,GAClC,OAAO,CAAC,IAAI,CAAC,CAKf;IAED;;;;OAIG;IACG,IAAI,CACN,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,GAClC,OAAO,CAAC,IAAI,CAAC,CAKf;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;CACJ"}
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"}