@slopus/happy-agent-base 0.0.16 → 0.0.18

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 (54) hide show
  1. package/README.md +27 -4
  2. package/dist/Agent.d.ts +6 -4
  3. package/dist/Agent.d.ts.map +1 -1
  4. package/dist/Agent.js +44 -41
  5. package/dist/Agent.js.map +1 -1
  6. package/dist/AgentBase.d.ts +13 -7
  7. package/dist/AgentBase.d.ts.map +1 -1
  8. package/dist/AgentBase.js +291 -149
  9. package/dist/AgentBase.js.map +1 -1
  10. package/dist/AgentBaseHooks.d.ts +21 -2
  11. package/dist/AgentBaseHooks.d.ts.map +1 -1
  12. package/dist/AgentDatabase.d.ts.map +1 -1
  13. package/dist/AgentDatabase.js +27 -14
  14. package/dist/AgentDatabase.js.map +1 -1
  15. package/dist/AgentDatabaseConnection.d.ts +39 -0
  16. package/dist/AgentDatabaseConnection.d.ts.map +1 -0
  17. package/dist/AgentDatabaseConnection.js +199 -0
  18. package/dist/AgentDatabaseConnection.js.map +1 -0
  19. package/dist/AgentModule.d.ts +40 -12
  20. package/dist/AgentModule.d.ts.map +1 -1
  21. package/dist/AgentPersistence.d.ts +4 -4
  22. package/dist/AgentRef.d.ts +1 -1
  23. package/dist/AgentRef.js +1 -1
  24. package/dist/AgentSpanAttributes.d.ts +11 -0
  25. package/dist/AgentSpanAttributes.d.ts.map +1 -0
  26. package/dist/AgentSpanAttributes.js +11 -0
  27. package/dist/AgentSpanAttributes.js.map +1 -0
  28. package/dist/AgentStorage.d.ts.map +1 -1
  29. package/dist/AgentStorage.js +2 -0
  30. package/dist/AgentStorage.js.map +1 -1
  31. package/dist/AgentSystemLocal.d.ts.map +1 -1
  32. package/dist/AgentSystemLocal.js +76 -43
  33. package/dist/AgentSystemLocal.js.map +1 -1
  34. package/dist/inTx.d.ts +0 -7
  35. package/dist/inTx.d.ts.map +1 -1
  36. package/dist/inTx.js +9 -16
  37. package/dist/inTx.js.map +1 -1
  38. package/dist/index.d.ts +6 -2
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +4 -0
  41. package/dist/index.js.map +1 -1
  42. package/dist/openAgentPGliteDatabase.d.ts +10 -0
  43. package/dist/openAgentPGliteDatabase.d.ts.map +1 -0
  44. package/dist/openAgentPGliteDatabase.js +17 -0
  45. package/dist/openAgentPGliteDatabase.js.map +1 -0
  46. package/dist/openAgentPostgresDatabase.d.ts +13 -0
  47. package/dist/openAgentPostgresDatabase.d.ts.map +1 -0
  48. package/dist/openAgentPostgresDatabase.js +10 -0
  49. package/dist/openAgentPostgresDatabase.js.map +1 -0
  50. package/dist/openAgentSQLiteDatabase.d.ts +6 -0
  51. package/dist/openAgentSQLiteDatabase.d.ts.map +1 -0
  52. package/dist/openAgentSQLiteDatabase.js +48 -0
  53. package/dist/openAgentSQLiteDatabase.js.map +1 -0
  54. package/package.json +6 -4
package/README.md CHANGED
@@ -19,6 +19,15 @@ Drizzle SQLite or PostgreSQL/PGlite database plus a hard database-level lock. It
19
19
  record, key-value, and migration tables itself. `AgentSystem.close()` stops its agents and releases
20
20
  the lock; the runtime intentionally contains no CAS or multi-owner coordination.
21
21
 
22
+ Agent Base also provides production database implementations through `openAgentSQLiteDatabase`,
23
+ `openAgentPGliteDatabase`, and `openAgentPostgresDatabase`. Each returns one
24
+ `AgentDatabaseConnection` that owns its Drizzle facade, driver lifetime, root-operation FIFO, root
25
+ transactions, and awaited close boundary. All three implementations use the same scheduling
26
+ contract: root statements and transactions serialize, while statements already using the active
27
+ transaction facade execute directly. Database work must use `agentDatabaseRows`,
28
+ `agentDatabaseRun`, or `ctx.inTx`; invoking the exposed root Drizzle facade directly bypasses the
29
+ owner and is not a supported persistence path.
30
+
22
31
  Storage uses Drizzle transactions and installs stdlib's universal `afterCommit` scope on their
23
32
  contexts, draining it only after the outer transaction succeeds. Agent contexts expose the root or
24
33
  active Drizzle facade as `ctx.db`; `ctx.inTx(work)` and the exported `inTx(ctx, work)` helper open
@@ -73,10 +82,13 @@ failure aborts system startup. Every module migration and hook context carries t
73
82
  facade in `ctx.db`: a root database outside a transaction and its active transaction facade inside
74
83
  one. A migration also receives that facade explicitly to retain its exact engine-specific type.
75
84
  Driver-only root members such as `$client` and `batch` are deliberately not part of that surface.
76
- Modules may implement `beforeStart(ctx, agents)` and `afterStart(ctx, agents)` hooks.
77
- Every `beforeStart` settles successfully before active agents are restored; every `afterStart`
78
- runs after those agents are restored and started. Both receive the system's `AgentSystemRef`; their
79
- context carries the root database.
85
+ A module is a name, its migrations, and one entry point: `beforeStart(ctx, agents)`. Everything
86
+ the module does at runtime is in the `AgentModuleHooks` object that entry point returns —
87
+ including `afterStart` and every agent and lifecycle hook so implementations close over the
88
+ state `beforeStart` built instead of living on the module object. Returning nothing means the
89
+ module only migrates and initializes. Every `beforeStart` settles successfully before active
90
+ agents are restored; every returned `afterStart` runs after those agents are restored and
91
+ started. Both receive the system's `AgentSystemRef`; their context carries the root database.
80
92
  All hooks may return synchronously or with a promise, including `onEvent`; the runtime awaits each
81
93
  answer and contains failures from observing hooks.
82
94
 
@@ -131,3 +143,14 @@ pnpm --filter @slopus/happy-agent-base check
131
143
  pnpm --filter @slopus/happy-agent-base test
132
144
  pnpm --filter @slopus/happy-agent-base build
133
145
  ```
146
+
147
+ The full suite selects its production database backend with
148
+ `HAPPY_AGENT_BASE_TEST_DATABASE=sqlite|pglite|postgres`; SQLite is the local default. PostgreSQL
149
+ also requires `HAPPY_AGENT_BASE_TEST_POSTGRES_URL`:
150
+
151
+ ```sh
152
+ HAPPY_AGENT_BASE_TEST_DATABASE=pglite pnpm --filter @slopus/happy-agent-base test
153
+ HAPPY_AGENT_BASE_TEST_DATABASE=postgres \
154
+ HAPPY_AGENT_BASE_TEST_POSTGRES_URL=postgres://postgres:postgres@127.0.0.1:5432/happy_agent_base \
155
+ pnpm --filter @slopus/happy-agent-base test
156
+ ```
package/dist/Agent.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { Context } from "@steve.kite/stdlib";
3
3
  import { type AgentBaseAwaitOptions, type AgentBaseMessageOptions, type AgentBaseOptions } from "./AgentBase.js";
4
4
  import type { AgentBaseState } from "./AgentBaseState.js";
5
5
  import type { AgentDatabase } from "./AgentDatabase.js";
6
- import type { AgentModule } from "./AgentModule.js";
6
+ import type { AgentModule, AgentModuleRuntime } from "./AgentModule.js";
7
7
  import type { AgentKV } from "./AgentKV.js";
8
8
  import type { AgentMetadata } from "./AgentMetadata.js";
9
9
  import type { AgentMessageAcceptance } from "./AgentMessageAcceptance.js";
@@ -13,8 +13,8 @@ import type { AnyAgentTool } from "./AgentTool.js";
13
13
  * its modules, and the singular hooks the base runs with are merged from them.
14
14
  */
15
15
  export interface AgentOptions<Tool extends AnyAgentTool = AnyAgentTool, Database extends AgentDatabase = AgentDatabase> extends Omit<AgentBaseOptions, "hooks"> {
16
- /** Independent capabilities whose hook implementations are merged, in array order. */
17
- readonly modules?: readonly AgentModule<Tool, Database>[];
16
+ /** Modules resolved by the owning system: each name beside the hooks its beforeStart returned. */
17
+ readonly modules?: readonly AgentModuleRuntime<Tool, Database>[];
18
18
  /**
19
19
  * The store modules share with every other agent built over the same storage. Each module
20
20
  * is handed its own scope of it, which is where anything outliving one conversation belongs.
@@ -45,8 +45,10 @@ export declare class Agent<Tool extends AnyAgentTool = AnyAgentTool, Database ex
45
45
  /**
46
46
  * An agent over an identity that may already have durable state, with that state's one
47
47
  * externally meaningful fact — whether it has work left — read before it is handed back.
48
+ * A caller resolving the agent from inside an open storage transaction passes `loadCtx` so
49
+ * that one read rides the transaction's own connection.
48
50
  */
49
- static load<Tool extends AnyAgentTool = AnyAgentTool, Database extends AgentDatabase = AgentDatabase>(ctx: Context, options: AgentOptions<Tool, Database>): Promise<Agent<Tool, Database>>;
51
+ static load<Tool extends AnyAgentTool = AnyAgentTool, Database extends AgentDatabase = AgentDatabase>(ctx: Context, options: AgentOptions<Tool, Database>, loadCtx?: Context): Promise<Agent<Tool, Database>>;
50
52
  /**
51
53
  * Load the agent and set it going again if it has work left, or answer with nothing when it
52
54
  * has none — how an owner coming up carries on what an earlier process was in the middle of.
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.d.ts","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
package/dist/Agent.js CHANGED
@@ -18,7 +18,7 @@ import { agentDatabase, agentEffort, agentHistoryKV, agentKV, agentModel, agentP
18
18
  export class Agent {
19
19
  /** The session this agent is a facade over; every operation delegates straight to it. */
20
20
  #base;
21
- /** The modules whose hooks were merged into the base, kept in the order they were given. */
21
+ /** The resolved modules whose hooks were merged into the base, in the order they were given. */
22
22
  #modules;
23
23
  /**
24
24
  * A new agent over a fresh identity, with its modules' hooks merged into one set. Touches
@@ -31,10 +31,12 @@ export class Agent {
31
31
  /**
32
32
  * An agent over an identity that may already have durable state, with that state's one
33
33
  * externally meaningful fact — whether it has work left — read before it is handed back.
34
+ * A caller resolving the agent from inside an open storage transaction passes `loadCtx` so
35
+ * that one read rides the transaction's own connection.
34
36
  */
35
- static async load(ctx, options) {
37
+ static async load(ctx, options, loadCtx) {
36
38
  const { modules, base } = split(options);
37
- return new Agent(await AgentBase.load(ctx, base), modules);
39
+ return new Agent(await AgentBase.load(ctx, base, loadCtx), modules);
38
40
  }
39
41
  /**
40
42
  * Load the agent and set it going again if it has work left, or answer with nothing when it
@@ -68,7 +70,7 @@ export class Agent {
68
70
  * it is the collection's instance, serving every agent at once.
69
71
  */
70
72
  module(name) {
71
- return this.#modules.find((module) => module.name === name);
73
+ return this.#modules.find((module) => module.name === name)?.module;
72
74
  }
73
75
  /**
74
76
  * The base's mutable instructions and tools, which every inference reads and every module's
@@ -138,11 +140,11 @@ function split(options) {
138
140
  function mergeModules(modules, options, sharedKV) {
139
141
  /** What one module's hook is handed alongside the context, for this call. */
140
142
  const scopeOf = (ctx, module) => moduleScope(ctx, module, options, sharedKV);
141
- const withInstructions = modules.filter((module) => module.instructions !== undefined);
142
- const withTools = modules.filter((module) => module.tools !== undefined);
143
- const withBeforeToolCall = modules.filter((module) => module.beforeToolCall !== undefined);
144
- const withModelChanged = modules.filter((module) => module.modelChanged !== undefined);
145
- const withEvents = modules.filter((module) => module.onEvent !== undefined);
143
+ const withInstructions = modules.filter((module) => module.hooks.instructions !== undefined);
144
+ const withTools = modules.filter((module) => module.hooks.tools !== undefined);
145
+ const withBeforeToolCall = modules.filter((module) => module.hooks.beforeToolCall !== undefined);
146
+ const withModelChanged = modules.filter((module) => module.hooks.modelChanged !== undefined);
147
+ const withEvents = modules.filter((module) => module.hooks.onEvent !== undefined);
146
148
  // Observing hooks fan out with per-module isolation: one throwing module must never
147
149
  // prevent the modules after it from observing.
148
150
  const fanOut = (pick) => {
@@ -199,7 +201,7 @@ function mergeModules(modules, options, sharedKV) {
199
201
  onEvent: (async (ctx, event) => {
200
202
  for (const module of withEvents) {
201
203
  try {
202
- await module.onEvent?.(moduleCtx(ctx, module), scopeOf(ctx, module), event);
204
+ await module.hooks.onEvent?.(moduleCtx(ctx, module), scopeOf(ctx, module), event);
203
205
  }
204
206
  catch {
205
207
  // Modules observe independently; one failing never silences
@@ -208,7 +210,7 @@ function mergeModules(modules, options, sharedKV) {
208
210
  }
209
211
  }),
210
212
  }),
211
- ...spread("onEventTransact", chain((module) => module.onEventTransact)),
213
+ ...spread("onEventTransact", chain((module) => module.hooks.onEventTransact)),
212
214
  ...(withInstructions.length === 0
213
215
  ? {}
214
216
  : {
@@ -216,7 +218,7 @@ function mergeModules(modules, options, sharedKV) {
216
218
  instructions: async (ctx) => {
217
219
  const texts = [];
218
220
  for (const module of withInstructions) {
219
- texts.push((await module.instructions?.(moduleCtx(ctx, module), scopeOf(ctx, module))) ?? "");
221
+ texts.push((await module.hooks.instructions?.(moduleCtx(ctx, module), scopeOf(ctx, module))) ?? "");
220
222
  }
221
223
  return texts.filter((text) => text.length > 0).join("\n\n");
222
224
  },
@@ -229,15 +231,15 @@ function mergeModules(modules, options, sharedKV) {
229
231
  tools: async (ctx) => {
230
232
  const tools = [];
231
233
  for (const module of withTools) {
232
- tools.push(...((await module.tools?.(moduleCtx(ctx, module), scopeOf(ctx, module))) ?? []));
234
+ tools.push(...((await module.hooks.tools?.(moduleCtx(ctx, module), scopeOf(ctx, module))) ?? []));
233
235
  }
234
236
  return tools;
235
237
  },
236
238
  }),
237
- ...spread("beforeCompaction", fanOut((module) => module.beforeCompaction)),
238
- ...spread("historyErasedTransact", chain((module) => module.historyErasedTransact)),
239
- ...spread("afterCompaction", fanOut((module) => module.afterCompaction)),
240
- ...spread("beforeToolCallTransact", chain((module) => module.beforeToolCallTransact)),
239
+ ...spread("beforeCompaction", fanOut((module) => module.hooks.beforeCompaction)),
240
+ ...spread("historyErasedTransact", chain((module) => module.hooks.historyErasedTransact)),
241
+ ...spread("afterCompaction", fanOut((module) => module.hooks.afterCompaction)),
242
+ ...spread("beforeToolCallTransact", chain((module) => module.hooks.beforeToolCallTransact)),
241
243
  ...(withBeforeToolCall.length === 0
242
244
  ? {}
243
245
  : {
@@ -250,7 +252,7 @@ function mergeModules(modules, options, sharedKV) {
250
252
  // last module to name one is the one that meant it about the run itself.
251
253
  let permissionMode;
252
254
  for (const module of withBeforeToolCall) {
253
- const decision = await module.beforeToolCall?.(moduleCtx(ctx, module), scopeOf(ctx, module), current);
255
+ const decision = await module.hooks.beforeToolCall?.(moduleCtx(ctx, module), scopeOf(ctx, module), current);
254
256
  if (decision === undefined)
255
257
  continue;
256
258
  // An answer settles the call: there is no longer a run for the
@@ -279,8 +281,8 @@ function mergeModules(modules, options, sharedKV) {
279
281
  };
280
282
  },
281
283
  }),
282
- ...spread("afterToolCall", fanOut((module) => module.afterToolCall)),
283
- ...spread("afterToolCallTransact", chain((module) => module.afterToolCallTransact)),
284
+ ...spread("afterToolCall", fanOut((module) => module.hooks.afterToolCall)),
285
+ ...spread("afterToolCallTransact", chain((module) => module.hooks.afterToolCallTransact)),
284
286
  ...(withModelChanged.length === 0
285
287
  ? {}
286
288
  : {
@@ -292,7 +294,7 @@ function mergeModules(modules, options, sharedKV) {
292
294
  // the first returned handoff wins.
293
295
  for (const module of withModelChanged) {
294
296
  try {
295
- const message = await module.modelChanged?.(moduleCtx(ctx, module), scopeOf(ctx, module), change);
297
+ const message = await module.hooks.modelChanged?.(moduleCtx(ctx, module), scopeOf(ctx, module), change);
296
298
  injected ??= message;
297
299
  }
298
300
  catch (error) {
@@ -309,26 +311,27 @@ function mergeModules(modules, options, sharedKV) {
309
311
  return injected;
310
312
  },
311
313
  }),
312
- ...spread("messageAcceptedTransact", chain((module) => module.messageAcceptedTransact)),
313
- ...spread("messageAccepted", fanOut((module) => module.messageAccepted)),
314
- ...spread("permissionModeChangedTransact", chain((module) => module.permissionModeChangedTransact)),
315
- ...spread("permissionModeChanged", fanOut((module) => module.permissionModeChanged)),
316
- ...spread("metadataChangedTransact", chain((module) => module.metadataChangedTransact)),
317
- ...spread("metadataChanged", fanOut((module) => module.metadataChanged)),
318
- ...spread("beforeAgentLoopTransact", chain((module) => module.beforeAgentLoopTransact)),
319
- ...spread("beforeAgentLoop", fanOut((module) => module.beforeAgentLoop)),
320
- ...spread("beforeTurnTransact", chain((module) => module.beforeTurnTransact)),
321
- ...spread("beforeTurn", collect((module) => module.beforeTurn)),
322
- ...spread("beforeInferenceTransact", chain((module) => module.beforeInferenceTransact)),
323
- ...spread("beforeInference", fanOut((module) => module.beforeInference)),
324
- ...spread("afterInferenceTransact", chain((module) => module.afterInferenceTransact)),
325
- ...spread("afterInference", fanOut((module) => module.afterInference)),
326
- ...spread("afterTurnTransact", chain((module) => module.afterTurnTransact)),
327
- ...spread("afterTurn", collect((module) => module.afterTurn)),
328
- ...spread("afterAgentLoopTransact", chain((module) => module.afterAgentLoopTransact)),
329
- ...spread("afterAgentLoop", collect((module) => module.afterAgentLoop)),
330
- ...spread("afterAgentSettledTransact", chain((module) => module.afterAgentSettledTransact)),
331
- ...spread("afterAgentSettled", fanOut((module) => module.afterAgentSettled)),
314
+ ...spread("messageAcceptedTransact", chain((module) => module.hooks.messageAcceptedTransact)),
315
+ ...spread("messageAccepted", fanOut((module) => module.hooks.messageAccepted)),
316
+ ...spread("permissionModeChangedTransact", chain((module) => module.hooks.permissionModeChangedTransact)),
317
+ ...spread("permissionModeChanged", fanOut((module) => module.hooks.permissionModeChanged)),
318
+ ...spread("metadataChangedTransact", chain((module) => module.hooks.metadataChangedTransact)),
319
+ ...spread("metadataChanged", fanOut((module) => module.hooks.metadataChanged)),
320
+ ...spread("afterAgentActivatedTransact", chain((module) => module.hooks.afterAgentActivatedTransact)),
321
+ ...spread("beforeAgentLoopTransact", chain((module) => module.hooks.beforeAgentLoopTransact)),
322
+ ...spread("beforeAgentLoop", fanOut((module) => module.hooks.beforeAgentLoop)),
323
+ ...spread("beforeTurnTransact", chain((module) => module.hooks.beforeTurnTransact)),
324
+ ...spread("beforeTurn", collect((module) => module.hooks.beforeTurn)),
325
+ ...spread("beforeInferenceTransact", chain((module) => module.hooks.beforeInferenceTransact)),
326
+ ...spread("beforeInference", fanOut((module) => module.hooks.beforeInference)),
327
+ ...spread("afterInferenceTransact", chain((module) => module.hooks.afterInferenceTransact)),
328
+ ...spread("afterInference", fanOut((module) => module.hooks.afterInference)),
329
+ ...spread("afterTurnTransact", chain((module) => module.hooks.afterTurnTransact)),
330
+ ...spread("afterTurn", collect((module) => module.hooks.afterTurn)),
331
+ ...spread("afterAgentLoopTransact", chain((module) => module.hooks.afterAgentLoopTransact)),
332
+ ...spread("afterAgentLoop", collect((module) => module.hooks.afterAgentLoop)),
333
+ ...spread("afterAgentSettledTransact", chain((module) => module.hooks.afterAgentSettledTransact)),
334
+ ...spread("afterAgentSettled", fanOut((module) => module.hooks.afterAgentSettled)),
332
335
  };
333
336
  }
334
337
  /**
package/dist/Agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../sources/Agent.ts"],"names":[],"mappings":"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"}
@@ -99,10 +99,10 @@ export interface AgentBaseOptions {
99
99
  *
100
100
  * ## Serialization
101
101
  *
102
- * One lock serializes every persistence operation together with its in-memory effect, so storage
103
- * order always matches history order and a load never overlaps an append. Anything that decides
104
- * from durable state resolves that state inside the lock rather than capturing it beforehand; a
105
- * reference taken before a wait can belong to a history that has since been replaced.
102
+ * Database transactions and ordered keys keep persistence changes aligned with their in-memory
103
+ * publication. Anything that decides from durable state resolves that state inside the committing
104
+ * step rather than capturing it beforehand; a reference taken before a wait can belong to a
105
+ * history that has since been replaced.
106
106
  *
107
107
  * ## Accepting a message
108
108
  *
@@ -155,8 +155,8 @@ export interface AgentBaseOptions {
155
155
  *
156
156
  * An incompatible provider or model change resets the conversation; a compatible one keeps it.
157
157
  * Either way the change lands on one side or the other, never the old history under the new
158
- * model. `modelChanged` runs inside the lock and is lent a store bound to that hold — a
159
- * capability released when the hook returns, so it cannot be retained to bypass the lock later.
158
+ * model. `modelChanged` runs inside the transaction and is lent a store bound to it — a
159
+ * capability released when the hook returns, so it cannot be retained to write after commit.
160
160
  * A failing handoff rejects an incompatible switch outright rather than costing the history.
161
161
  *
162
162
  * ## Permission modes
@@ -266,8 +266,14 @@ export declare class AgentBase {
266
266
  * they are needed by the first turn and by nothing before it, so an owner resuming a hundred
267
267
  * identities at startup pays for a hundred small reads rather than a hundred transcripts.
268
268
  * The rest loads on the way into the turn that actually needs it.
269
+ *
270
+ * The read normally runs on the agent's own context. A caller resolving the agent from
271
+ * inside an open storage transaction passes `loadCtx` to route this one read through that
272
+ * transaction's connection instead, because a single-connection driver cannot serve a read
273
+ * beside the transaction it is holding open. The agent's own lifetime context is detached
274
+ * either way and never carries the caller's transaction.
269
275
  */
270
- static load(ctx: Context, options: AgentBaseOptions): Promise<AgentBase>;
276
+ static load(ctx: Context, options: AgentBaseOptions, loadCtx?: Context): Promise<AgentBase>;
271
277
  /**
272
278
  * Load the agent and set it going again if it has work left, or answer with nothing when it
273
279
  * has none. This is how an owner coming up carries on whatever an earlier process was in the
@@ -1 +1 @@
1
- {"version":3,"file":"AgentBase.d.ts","sourceRoot":"","sources":["../sources/AgentBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentBase.d.ts","sourceRoot":"","sources":["../sources/AgentBase.ts"],"names":[],"mappings":"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"}