@framers/agentos 0.12.6 → 0.12.8

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 (35) hide show
  1. package/dist/api/agentExportRedact.js +12 -6
  2. package/dist/api/agentExportRedact.js.map +1 -1
  3. package/dist/api/runtime/strategies/shared.d.ts.map +1 -1
  4. package/dist/api/runtime/strategies/shared.js +6 -2
  5. package/dist/api/runtime/strategies/shared.js.map +1 -1
  6. package/dist/cognition/emergent/ComposableToolBuilder.d.ts +3 -1
  7. package/dist/cognition/emergent/ComposableToolBuilder.d.ts.map +1 -1
  8. package/dist/cognition/emergent/ComposableToolBuilder.js +9 -5
  9. package/dist/cognition/emergent/ComposableToolBuilder.js.map +1 -1
  10. package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts +33 -4
  11. package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
  12. package/dist/cognition/emergent/EmergentCapabilityEngine.js +190 -48
  13. package/dist/cognition/emergent/EmergentCapabilityEngine.js.map +1 -1
  14. package/dist/cognition/emergent/EmergentToolRegistry.d.ts +107 -20
  15. package/dist/cognition/emergent/EmergentToolRegistry.d.ts.map +1 -1
  16. package/dist/cognition/emergent/EmergentToolRegistry.js +252 -37
  17. package/dist/cognition/emergent/EmergentToolRegistry.js.map +1 -1
  18. package/dist/cognition/emergent/StepGate.d.ts +10 -3
  19. package/dist/cognition/emergent/StepGate.d.ts.map +1 -1
  20. package/dist/cognition/emergent/StepGate.js +13 -2
  21. package/dist/cognition/emergent/StepGate.js.map +1 -1
  22. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts +5 -0
  23. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -1
  24. package/dist/core/llm/providers/implementations/OpenRouterProvider.js +71 -8
  25. package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
  26. package/dist/core/tools/ITool.d.ts +7 -0
  27. package/dist/core/tools/ITool.d.ts.map +1 -1
  28. package/dist/core/tools/ToolExecutor.d.ts +3 -1
  29. package/dist/core/tools/ToolExecutor.d.ts.map +1 -1
  30. package/dist/core/tools/ToolExecutor.js +3 -1
  31. package/dist/core/tools/ToolExecutor.js.map +1 -1
  32. package/dist/core/tools/ToolOrchestrator.d.ts.map +1 -1
  33. package/dist/core/tools/ToolOrchestrator.js +14 -6
  34. package/dist/core/tools/ToolOrchestrator.js.map +1 -1
  35. package/package.json +1 -1
@@ -68,19 +68,29 @@ export class EmergentToolRegistry {
68
68
  * deletes land, or when a new row is written for the id.
69
69
  */
70
70
  /**
71
- * Change points. `epoch` advances on every registration, adoption, row
72
- * write and removal of any tool in this process, and once more when a
73
- * removal's row deletes land; `changedAt` holds, per tool, the epoch of its
74
- * last change. A read of stored rows notes the epoch it started at
75
- * ({@link beginRead}), and an admission adopts what it read only while the
76
- * tool has not changed since and no removal of it is still deleting its
77
- * rows ({@link adopt}), so a row read before a removal, or during one, is
78
- * never put back, with or without storage.
71
+ * Change points. `epoch` advances on every registration, adoption,
72
+ * promotion, row write and removal of any tool in this process, and once
73
+ * more when a removal's row deletes or a rewrite of the tool row from
74
+ * memory (a promotion, an `upsert`) land; `changedAt` holds, per tool, the
75
+ * epoch of its last change. A read of stored rows notes the epoch it
76
+ * started at ({@link beginRead}), and an admission adopts what it read only
77
+ * while the tool has not changed since and no removal or rewrite of its
78
+ * rows is still pending ({@link adopt}), so a row read before a removal or
79
+ * a promotion, or during one, is never put back, with or without storage.
79
80
  */
80
81
  this.epoch = 0;
81
82
  this.changedAt = new Map();
82
83
  /** Removals whose row deletes have not landed yet, counted per tool. */
83
84
  this.removing = new Map();
85
+ /** Rewrites of the tool row from memory that have not landed yet, counted per tool. */
86
+ this.rewriting = new Map();
87
+ /**
88
+ * Restrictions this process requested, per tool: how many of their writes
89
+ * are queued or running, and the read point at which the tool's last state
90
+ * write settled (`Infinity` while a host's restriction whose write failed
91
+ * is in force here). See {@link restrictionUnread}.
92
+ */
93
+ this.restrictionWrites = new Map();
84
94
  /** Reads in flight; change points are forgotten only when none is. */
85
95
  this.openReads = 0;
86
96
  /**
@@ -352,6 +362,12 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
352
362
  * another process stored meanwhile is what is returned and held, and a tool
353
363
  * another process removed reads as `demoted` with the reason `removed`.
354
364
  *
365
+ * `options.yieldToHost` makes the write give way to the host's word: a row
366
+ * that holds a host's suspension, or a demotion, is not changed, and its
367
+ * record is returned and held instead. The library's suspensions from a run
368
+ * or a promotion check use it, so they never replace a restriction a host
369
+ * set, in this process or in another.
370
+ *
355
371
  * @returns the record now in force for the tool.
356
372
  * @throws If the storage adapter rejects.
357
373
  */
@@ -375,13 +391,28 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
375
391
  }
376
392
  this.logAudit(toolId, 'state', { state, reason, setBy });
377
393
  };
378
- if (state !== 'active') {
394
+ const restriction = state !== 'active';
395
+ if (restriction) {
379
396
  hold();
397
+ const entry = this.restrictionWrites.get(toolId);
398
+ if (entry) {
399
+ entry.pending += 1;
400
+ }
401
+ else {
402
+ this.restrictionWrites.set(toolId, { pending: 1, settledAt: 0 });
403
+ }
380
404
  }
381
405
  let inForce = record;
382
- if (this.db) {
383
- inForce = await this.queueStateWrite(toolId, () => this.writeStateRow(toolId, record, named, options.ifRow));
406
+ try {
407
+ if (this.db) {
408
+ inForce = await this.queueStateWrite(toolId, () => this.writeStateRow(toolId, record, named, options.ifRow, options.yieldToHost === true));
409
+ }
384
410
  }
411
+ catch (error) {
412
+ this.noteStateWriteSettled(toolId, restriction, false, setBy);
413
+ throw error;
414
+ }
415
+ this.noteStateWriteSettled(toolId, restriction, true, setBy);
385
416
  if (inForce !== record) {
386
417
  // The row changed under the condition: the write was refused, and the
387
418
  // row's own state is what holds. A restriction read that way is held here.
@@ -410,6 +441,42 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
410
441
  }
411
442
  return record;
412
443
  }
444
+ /**
445
+ * Book a settled state write of a tool requested here: a restriction's
446
+ * write is no longer pending; a write that landed (applied, or refused by
447
+ * the row, whose word is then held) moves the tool's settle point to a new
448
+ * read point; a host's restriction whose write failed stays in force here
449
+ * until a later write of the tool lands. A library restriction whose write
450
+ * failed leaves the settle point where it was, so the row decides.
451
+ */
452
+ noteStateWriteSettled(toolId, restriction, landed, setBy) {
453
+ const entry = this.restrictionWrites.get(toolId);
454
+ if (!entry) {
455
+ return;
456
+ }
457
+ if (restriction) {
458
+ entry.pending = Math.max(0, entry.pending - 1);
459
+ }
460
+ if (landed) {
461
+ this.epoch += 1;
462
+ entry.settledAt = this.epoch;
463
+ }
464
+ else if (restriction && setBy === 'host') {
465
+ entry.settledAt = Number.POSITIVE_INFINITY;
466
+ }
467
+ }
468
+ /**
469
+ * Whether a restriction this process requested for a tool may be missing
470
+ * from a row read that began at `readAt` (a {@link beginRead} point): its
471
+ * write is still queued or running, or settled after the read began, or it
472
+ * is a host's restriction whose write failed. A held restriction for which
473
+ * none of these is true is older than the row the read saw, whatever the
474
+ * clocks of the processes that wrote them say: the row decides.
475
+ */
476
+ restrictionUnread(toolId, readAt) {
477
+ const entry = this.restrictionWrites.get(toolId);
478
+ return entry !== undefined && (entry.pending > 0 || entry.settledAt > readAt);
479
+ }
413
480
  /** Runs `write` after every earlier state write of the same tool has settled. */
414
481
  queueStateWrite(toolId, write) {
415
482
  const prior = this.stateWrites.get(toolId) ?? Promise.resolve();
@@ -432,11 +499,12 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
432
499
  * pending, and the next state write or load finishes the flag write, so a
433
500
  * crash or a failed write between the two never leaves the pair apart
434
501
  * beyond the next load. With `ifRow`, an existing row is changed only while
435
- * its state, setter and time are the ones given (`'absent'`: never); a
502
+ * its state, setter and time are the ones given (`'absent'`: never); with
503
+ * `yieldToHost`, only while it is active or the library's suspension. A
436
504
  * refused write changes nothing, flag included, and the row as it stands
437
505
  * afterwards is returned, so it shows as a record other than the one given.
438
506
  */
439
- async writeStateRow(toolId, record, named, ifRow) {
507
+ async writeStateRow(toolId, record, named, ifRow, yieldToHost = false) {
440
508
  const db = this.db;
441
509
  if (!db) {
442
510
  return record;
@@ -457,25 +525,33 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
457
525
  state_at = excluded.state_at,
458
526
  updated_at = excluded.updated_at,
459
527
  write_id = excluded.write_id`;
460
- let guard = '';
461
528
  // state_at is the call's time; updated_at the write's own.
462
529
  // Every write has an id of its own: the row read back tells this write
463
530
  // from another of the same content in the same millisecond.
464
531
  const writeId = randomUUID();
465
532
  record.writeId = writeId;
466
533
  const values = [toolId, record.state, record.reason, record.setBy, record.at, requestJson, Date.now(), writeId];
534
+ const conditions = [];
467
535
  const guardParams = [];
468
536
  if (ifRow === 'absent') {
469
- guard = `
470
- WHERE 0 = 1`;
537
+ conditions.push('0 = 1');
471
538
  }
472
539
  else if (ifRow !== undefined) {
473
- guard = `
474
- WHERE agentos_emergent_tool_state.state = ?
540
+ conditions.push(`agentos_emergent_tool_state.state = ?
475
541
  AND agentos_emergent_tool_state.set_by = ?
476
- AND agentos_emergent_tool_state.state_at = ?`;
542
+ AND agentos_emergent_tool_state.state_at = ?`);
477
543
  guardParams.push(ifRow.state, ifRow.setBy, ifRow.at);
478
544
  }
545
+ if (yieldToHost) {
546
+ // A host's suspension and a demotion stay; only an active row or the
547
+ // library's own suspension is changed.
548
+ conditions.push(`(agentos_emergent_tool_state.state = 'active'
549
+ OR (agentos_emergent_tool_state.state = 'suspended' AND agentos_emergent_tool_state.set_by = 'library'))`);
550
+ }
551
+ const guard = conditions.length > 0
552
+ ? `
553
+ WHERE ${conditions.join('\n AND ')}`
554
+ : '';
479
555
  const readRow = async () => (await db.get(`SELECT s.state, s.state_reason, s.set_by, s.state_at, s.request_json, s.write_id,
480
556
  EXISTS (SELECT 1 FROM agentos_emergent_tools t WHERE t.id = s.tool_id) AS tool_exists
481
557
  FROM agentos_emergent_tool_state s
@@ -544,8 +620,16 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
544
620
  // stored meanwhile, or a removal, is what holds, not the record written
545
621
  // here. Read for every write, conditional or not, so a host's reactivation
546
622
  // overtaken by another process's suspension yields to it in memory too.
547
- const after = await readRow();
623
+ let after = await readRow();
548
624
  if (!matches(after)) {
625
+ if (after?.state && after.tool_exists) {
626
+ // Overtaken after this write's upsert: this write's flag statement
627
+ // may have landed after the newer write's own, with this write's
628
+ // state (see flagAfterOvertaking), so the flag is written again from
629
+ // the newer state.
630
+ await this.flagAfterOvertaking(toolId, after.state, writeId);
631
+ after = await readRow();
632
+ }
549
633
  return after?.state && after.tool_exists ? rowRecord(after) : removed();
550
634
  }
551
635
  return record;
@@ -557,6 +641,36 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
557
641
  FROM agentos_emergent_tool_state WHERE tool_id = ?), ?)
558
642
  WHERE id = ?`, [toolId, state === 'active' ? 1 : 0, toolId]);
559
643
  }
644
+ /** The id of the state row's last write, or null when the row has none (or there is no row). */
645
+ async readStateWriteId(toolId) {
646
+ const row = (await this.db.get(`SELECT write_id FROM agentos_emergent_tool_state WHERE tool_id = ?`, [
647
+ toolId,
648
+ ]));
649
+ return row?.write_id ?? null;
650
+ }
651
+ /**
652
+ * After a statement that set the legacy flag from the state row read inside
653
+ * it: when another state write landed since `seen` (the state row's write
654
+ * id when the statement was sent), the flag is written again from the state
655
+ * row, until a flag write is not overtaken (three rounds at most). On
656
+ * PostgreSQL under READ COMMITTED a statement reads the state row from its
657
+ * own snapshot and applies its update to the newest row version, so a flag
658
+ * statement that started before another write's upsert can land after that
659
+ * write's own flag statement, with the older state; a new statement reads
660
+ * the newer one. On SQLite every statement reads the newest row, and a
661
+ * round here only writes the flag the state row already gives.
662
+ */
663
+ async flagAfterOvertaking(toolId, fallback, seen) {
664
+ let last = seen;
665
+ for (let round = 0; round < 3; round += 1) {
666
+ const now = await this.readStateWriteId(toolId);
667
+ if (now === last) {
668
+ return;
669
+ }
670
+ last = now;
671
+ await this.writeLegacyFlag(toolId, fallback);
672
+ }
673
+ }
560
674
  /**
561
675
  * Finish a state write whose flag write did not: the legacy flag from the
562
676
  * state row, then the row's mark cleared, under the record the row holds so
@@ -595,12 +709,14 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
595
709
  /**
596
710
  * Drop a tool from memory without touching its rows: for a load whose
597
711
  * registration with the host failed, so the row is there for the next load
598
- * and nothing here claims a tool the executor does not run.
712
+ * and nothing here claims a tool the executor does not run; and for a state
713
+ * held for a tool that has neither a row nor an object here any more.
599
714
  */
600
715
  forget(toolId) {
601
716
  this.sessionTools.delete(toolId);
602
717
  this.persistedTools.delete(toolId);
603
718
  this.states.delete(toolId);
719
+ this.restrictionWrites.delete(toolId);
604
720
  this.bump(toolId);
605
721
  }
606
722
  /**
@@ -631,15 +747,22 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
631
747
  return;
632
748
  }
633
749
  // No read in flight can hold a stale row: forget the change points of
634
- // tools this process neither holds nor is removing.
750
+ // tools this process neither holds nor is removing or rewriting.
635
751
  for (const toolId of [...this.changedAt.keys()]) {
636
752
  if (!this.sessionTools.has(toolId) &&
637
753
  !this.persistedTools.has(toolId) &&
638
754
  !this.states.has(toolId) &&
639
- !this.removing.has(toolId)) {
755
+ !this.removing.has(toolId) &&
756
+ !this.rewriting.has(toolId)) {
640
757
  this.changedAt.delete(toolId);
641
758
  }
642
759
  }
760
+ // A settle point matters only to a read that began before it.
761
+ for (const [toolId, entry] of [...this.restrictionWrites]) {
762
+ if (entry.pending === 0 && Number.isFinite(entry.settledAt)) {
763
+ this.restrictionWrites.delete(toolId);
764
+ }
765
+ }
643
766
  }
644
767
  /** Whether a storage adapter is configured. */
645
768
  hasStorage() {
@@ -697,19 +820,49 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
697
820
  this.bump(toolId);
698
821
  });
699
822
  }
823
+ /**
824
+ * A rewrite of the tool row from the object held in memory (a promotion,
825
+ * an `upsert`), in the tool's write queue: after the tool's earlier state
826
+ * writes, and before the deletes of a removal that comes after it, so a
827
+ * removal is never undone by a row write that lands late. The write is
828
+ * skipped when the registry no longer holds that object by the time it
829
+ * runs (the tool was removed, or replaced under its id). Until it lands an
830
+ * admission does not adopt the tool, and when it lands the tool counts as
831
+ * changed, so a row read before it is read again.
832
+ */
833
+ queueToolRowWrite(tool, approvedBy) {
834
+ this.rewriting.set(tool.id, (this.rewriting.get(tool.id) ?? 0) + 1);
835
+ return this.queueStateWrite(tool.id, async () => {
836
+ try {
837
+ if (this.get(tool.id) === tool) {
838
+ await this.persistToolToDb(tool, approvedBy);
839
+ }
840
+ }
841
+ finally {
842
+ const left = (this.rewriting.get(tool.id) ?? 1) - 1;
843
+ if (left > 0) {
844
+ this.rewriting.set(tool.id, left);
845
+ }
846
+ else {
847
+ this.rewriting.delete(tool.id);
848
+ }
849
+ this.bump(tool.id);
850
+ }
851
+ });
852
+ }
700
853
  /**
701
854
  * Take a tool read from storage into memory without rewriting its row.
702
855
  * `upsert` re-serialises the source; a loaded tool must keep the row it has.
703
856
  *
704
857
  * @param ifUnchangedSince - The point the caller's read started at
705
858
  * ({@link beginRead}), or a {@link generation} reading. The adoption is
706
- * refused when the tool changed in this process after it, or a removal of
707
- * the tool is still deleting its rows: the row the caller holds may then
708
- * be one that is gone.
859
+ * refused when the tool changed in this process after it, or a removal or
860
+ * a rewrite of the tool's rows is still pending: the row the caller holds
861
+ * may then be one that is gone or about to change.
709
862
  */
710
863
  adopt(tool, record, ifUnchangedSince) {
711
864
  if (ifUnchangedSince !== undefined &&
712
- (this.generation(tool.id) > ifUnchangedSince || this.removing.has(tool.id))) {
865
+ (this.generation(tool.id) > ifUnchangedSince || this.removing.has(tool.id) || this.rewriting.has(tool.id))) {
713
866
  return false;
714
867
  }
715
868
  this.sessionTools.delete(tool.id);
@@ -775,6 +928,16 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
775
928
  }
776
929
  return this.readStoredState(toolId);
777
930
  }
931
+ /**
932
+ * Hold a stored state for a tool this process holds no object for: a load
933
+ * that finds a restriction already stored on a row it does not activate
934
+ * takes it in here, so {@link listStates} carries it (a registration of a
935
+ * composition's missing step tool re-checks the composition from it).
936
+ * Nothing is written.
937
+ */
938
+ holdState(record) {
939
+ this.states.set(record.toolId, record);
940
+ }
778
941
  /** Every state held in memory: the tools this process forged, loaded or suspended. */
779
942
  listStates() {
780
943
  return [...this.states.values()];
@@ -811,10 +974,11 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
811
974
  /**
812
975
  * Replace the in-memory copy of a tool and mirror it to storage.
813
976
  *
814
- * The row is rewritten from the object given. To bring stored tools back
815
- * after a restart, call the engine's `loadPersistedTools`, which reads each
816
- * row, checks it and never rewrites it. A tool whose state this process does
817
- * not hold keeps the `is_active` its row has.
977
+ * The row is rewritten from the object given, in the tool's write queue.
978
+ * To bring stored tools back after a restart, call the engine's
979
+ * `loadPersistedTools`, which reads each row, checks it and never rewrites
980
+ * it. A tool whose state this process does not hold keeps the `is_active`
981
+ * its row has.
818
982
  */
819
983
  upsert(tool) {
820
984
  this.sessionTools.delete(tool.id);
@@ -830,7 +994,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
830
994
  this.persistedTools.set(normalized.id, normalized);
831
995
  }
832
996
  if (this.db && this.schemaReady) {
833
- this.persistToolToDb(normalized).catch(() => {
997
+ this.queueToolRowWrite(normalized).catch(() => {
834
998
  // Best-effort persistence mirror only.
835
999
  });
836
1000
  }
@@ -844,6 +1008,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
844
1008
  remove(toolId) {
845
1009
  const removed = this.sessionTools.delete(toolId) || this.persistedTools.delete(toolId);
846
1010
  this.states.delete(toolId);
1011
+ this.restrictionWrites.delete(toolId);
847
1012
  // The rows go whether or not this process held the tool, so a host can
848
1013
  // remove a stored tool it never loaded; the generation moves, so an
849
1014
  // admission that read the tool before this does not put it back.
@@ -979,7 +1144,10 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
979
1144
  * Moves the tool from its current tier to `targetTier`. If the tool was at
980
1145
  * session tier, it is removed from the session map and added to the persisted
981
1146
  * map. If a storage adapter is available and the target tier is agent or
982
- * shared, the tool is persisted to the database.
1147
+ * shared, the tool is persisted to the database. The promotion is a change
1148
+ * point, and its row write runs in the tool's write queue: an admission that
1149
+ * read the row before it reads the row again, and a removal that comes
1150
+ * after it deletes the promoted row.
983
1151
  *
984
1152
  * @param toolId - The ID of the tool to promote.
985
1153
  * @param targetTier - The target tier to promote to. Must be strictly higher
@@ -1017,9 +1185,10 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
1017
1185
  else {
1018
1186
  tool.tier = targetTier;
1019
1187
  }
1188
+ this.bump(toolId);
1020
1189
  // Persist to DB if adapter is available and target is a persisted tier.
1021
1190
  if (this.db && this.schemaReady) {
1022
- await this.persistToolToDb(tool, approvedBy);
1191
+ await this.queueToolRowWrite(tool, approvedBy);
1023
1192
  }
1024
1193
  this.logAudit(toolId, 'promote', {
1025
1194
  from: previousTier,
@@ -1074,11 +1243,14 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
1074
1243
  *
1075
1244
  * Iterates the session map and deletes every tool whose `source` names the
1076
1245
  * given session; the rows go after the tool's queued writes. Logs a cleanup
1077
- * audit event for each removed tool.
1246
+ * audit event for each removed tool. The session's rows that a load in this
1247
+ * process admitted without activating (suspended or demoted: their state is
1248
+ * held here, the tool is not) go too, with the state held for them; that
1249
+ * part reads the rows first, so it completes after this returns.
1078
1250
  *
1079
1251
  * @param sessionId - The session identifier to match against tool `source`
1080
1252
  * strings.
1081
- * @returns The number of tools removed.
1253
+ * @returns The number of live tools removed.
1082
1254
  */
1083
1255
  cleanupSession(sessionId) {
1084
1256
  let removedCount = 0;
@@ -1087,14 +1259,49 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
1087
1259
  if (sessionFromSource(tool.source) === sessionId) {
1088
1260
  this.sessionTools.delete(id);
1089
1261
  this.states.delete(id);
1262
+ this.restrictionWrites.delete(id);
1090
1263
  this.bump(id);
1091
1264
  this.queueRowDeletes(id);
1092
1265
  this.logAudit(id, 'cleanup', { sessionId });
1093
1266
  removedCount += 1;
1094
1267
  }
1095
1268
  }
1269
+ if (this.db && [...this.states.keys()].some((id) => !this.sessionTools.has(id) && !this.persistedTools.has(id))) {
1270
+ void this.cleanupHeldSessionRows(sessionId);
1271
+ }
1096
1272
  return removedCount;
1097
1273
  }
1274
+ /**
1275
+ * The rows of the session whose tool this process holds a state for but
1276
+ * not the tool itself (a load admitted them suspended or demoted): deleted
1277
+ * after their queued writes, with the held state, so they neither stay in
1278
+ * storage after the session nor bring the tool back when a step tool it
1279
+ * names registers. Rows this process never loaded are left to the process
1280
+ * that holds them. Best-effort, as the live tools' row deletes are.
1281
+ */
1282
+ async cleanupHeldSessionRows(sessionId) {
1283
+ const db = this.db;
1284
+ if (!db) {
1285
+ return;
1286
+ }
1287
+ try {
1288
+ await this.ensureSchemaReady();
1289
+ const rows = (await db.all(`SELECT id FROM agentos_emergent_tools WHERE tier = 'session' AND created_by_session = ?`, [sessionId]));
1290
+ for (const { id } of rows) {
1291
+ if (!this.states.has(id) || this.sessionTools.has(id) || this.persistedTools.has(id)) {
1292
+ continue;
1293
+ }
1294
+ this.states.delete(id);
1295
+ this.restrictionWrites.delete(id);
1296
+ this.bump(id);
1297
+ this.queueRowDeletes(id);
1298
+ this.logAudit(id, 'cleanup', { sessionId });
1299
+ }
1300
+ }
1301
+ catch {
1302
+ // Best-effort cleanup only.
1303
+ }
1304
+ }
1098
1305
  // --------------------------------------------------------------------------
1099
1306
  // AUDIT LOG ACCESSORS
1100
1307
  // --------------------------------------------------------------------------
@@ -1205,7 +1412,12 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
1205
1412
  // reactivates the tool. A process that holds no state writes 1 for a new
1206
1413
  // row and leaves an existing row's flag as it stands at write time, not
1207
1414
  // as it read it earlier: a whole-row write is never a reactivation, and
1208
- // never a disable either.
1415
+ // never a disable either. A state write another process lands while the
1416
+ // statement runs can leave it with the older state (PostgreSQL, READ
1417
+ // COMMITTED): the state row's write id is read before it, and when it has
1418
+ // moved the flag is written again from the state row, as that state
1419
+ // write's own flag write does.
1420
+ const stateWriteBefore = this.states.has(tool.id) ? await this.readStateWriteId(tool.id) : null;
1209
1421
  const heldNow = this.states.get(tool.id);
1210
1422
  const flagExpr = heldNow
1211
1423
  ? `COALESCE((SELECT CASE WHEN state = 'active' THEN 1 ELSE 0 END
@@ -1252,6 +1464,9 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_effects (
1252
1464
  // The flag of a new row; on conflict, see flagOnConflict above.
1253
1465
  ...flagParams,
1254
1466
  ]);
1467
+ if (heldNow) {
1468
+ await this.flagAfterOvertaking(tool.id, heldNow.state, stateWriteBefore);
1469
+ }
1255
1470
  }
1256
1471
  /**
1257
1472
  * The `implementation_source` to write for a tool. With source persistence
@@ -1 +1 @@
1
- {"version":3,"file":"EmergentToolRegistry.js","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentToolRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmergentToolRegistry.js","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentToolRegistry.ts"],"names":[],"mappings":"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"}