@framers/agentos 0.11.4 → 0.11.6

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 (27) hide show
  1. package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts +11 -0
  2. package/dist/cognition/emergent/EmergentCapabilityEngine.d.ts.map +1 -1
  3. package/dist/cognition/emergent/EmergentCapabilityEngine.js +88 -14
  4. package/dist/cognition/emergent/EmergentCapabilityEngine.js.map +1 -1
  5. package/dist/cognition/emergent/EmergentToolRegistry.d.ts +13 -5
  6. package/dist/cognition/emergent/EmergentToolRegistry.d.ts.map +1 -1
  7. package/dist/cognition/emergent/EmergentToolRegistry.js +33 -22
  8. package/dist/cognition/emergent/EmergentToolRegistry.js.map +1 -1
  9. package/dist/cognition/emergent/types.d.ts +4 -2
  10. package/dist/cognition/emergent/types.d.ts.map +1 -1
  11. package/dist/cognition/emergent/types.js.map +1 -1
  12. package/dist/cognition/rag/multimodal/SpeechProviderAdapter.d.ts +4 -4
  13. package/dist/cognition/rag/multimodal/SpeechProviderAdapter.js +4 -4
  14. package/dist/core/llm/providers/implementations/OpenRouterProvider.d.ts.map +1 -1
  15. package/dist/core/llm/providers/implementations/OpenRouterProvider.js +4 -2
  16. package/dist/core/llm/providers/implementations/OpenRouterProvider.js.map +1 -1
  17. package/dist/io/media/images/imageToBuffer.d.ts.map +1 -1
  18. package/dist/io/media/images/imageToBuffer.js +3 -2
  19. package/dist/io/media/images/imageToBuffer.js.map +1 -1
  20. package/dist/io/speech/SpeechProviderResolver.d.ts +15 -13
  21. package/dist/io/speech/SpeechProviderResolver.d.ts.map +1 -1
  22. package/dist/io/speech/SpeechProviderResolver.js +28 -25
  23. package/dist/io/speech/SpeechProviderResolver.js.map +1 -1
  24. package/dist/io/speech/SpeechRuntime.d.ts.map +1 -1
  25. package/dist/io/speech/SpeechRuntime.js +55 -8
  26. package/dist/io/speech/SpeechRuntime.js.map +1 -1
  27. package/package.json +1 -1
@@ -299,6 +299,17 @@ export declare class EmergentCapabilityEngine {
299
299
  */
300
300
  private readmit;
301
301
  private admit;
302
+ /**
303
+ * After the host registered a tool's executable, the registry must still
304
+ * hold that very object. When it does not (the tool was removed, or
305
+ * replaced under its id, while the registration ran), the executor is
306
+ * brought back in line with the registry: the current tool's executable is
307
+ * registered again when there is one, so whichever registration landed
308
+ * last, the current tool is what runs under the name; the stale executable
309
+ * is taken out when there is none. Returns the outcome to report, or
310
+ * undefined when the registration stands.
311
+ */
312
+ private settleRegistration;
302
313
  /**
303
314
  * The library's reason for not running an implementation under the
304
315
  * configuration in force, or `null`. Later steps add their checks here, so
@@ -1 +1 @@
1
- {"version":3,"file":"EmergentCapabilityEngine.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentCapabilityEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmergentCapabilityEngine.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentCapabilityEngine.ts"],"names":[],"mappings":"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"}
@@ -234,6 +234,7 @@ export class EmergentCapabilityEngine {
234
234
  source: `forged by agent ${context.agentId} during session ${context.sessionId}`,
235
235
  };
236
236
  this.registry.register(tool, 'session');
237
+ const registered = this.registry.generation(toolId);
237
238
  let written;
238
239
  try {
239
240
  written = await this.registry.setState(toolId, 'active', null, {
@@ -246,7 +247,7 @@ export class EmergentCapabilityEngine {
246
247
  // is re-derived from its source at the next load.
247
248
  console.warn(`[agentos:emergent] could not store the request of "${request.name}" (${toolId}):`, error instanceof Error ? error.message : error);
248
249
  }
249
- if (this.registry.wasRemoved(toolId)) {
250
+ if (this.registry.generation(toolId) !== registered) {
250
251
  // Removed while it was being forged: nothing is registered.
251
252
  return { success: false, error: 'the tool was removed while it was being forged' };
252
253
  }
@@ -273,8 +274,12 @@ export class EmergentCapabilityEngine {
273
274
  }
274
275
  this.indexTool(toolId, context.agentId, context.sessionId);
275
276
  if (this.onToolForged) {
277
+ // The object the registry holds (a registration stores a stamped copy;
278
+ // an adoption above stores the object itself), so the settlement
279
+ // below compares like with like.
280
+ const live = this.registry.get(toolId) ?? tool;
276
281
  try {
277
- await this.onToolForged(tool, this.createExecutableTool(tool));
282
+ await this.onToolForged(live, this.createExecutableTool(live));
278
283
  }
279
284
  catch (error) {
280
285
  this.registry.remove(toolId);
@@ -284,6 +289,11 @@ export class EmergentCapabilityEngine {
284
289
  error: error instanceof Error ? error.message : 'Failed to activate forged tool.',
285
290
  };
286
291
  }
292
+ const settled = await this.settleRegistration(live);
293
+ if (settled && settled.reason === 'removed') {
294
+ // Removed while the host was registering it: nothing is registered.
295
+ return { success: false, error: 'the tool was removed while it was being forged' };
296
+ }
287
297
  }
288
298
  return {
289
299
  success: true,
@@ -403,6 +413,17 @@ export class EmergentCapabilityEngine {
403
413
  const removedTools = this.getSessionTools(sessionId);
404
414
  this.registry.cleanupSession(sessionId);
405
415
  this.index.bySession.delete(sessionId);
416
+ for (const tool of removedTools) {
417
+ // The agent index too, so a lookup by agent never names a tool that is gone.
418
+ this.removeIndexedToolEverywhere(tool.id);
419
+ }
420
+ if (this.onToolRemoved) {
421
+ // The executables go with the tools, as removeTool does. A host that
422
+ // cleans up through the orchestrator unregisters the same names; a
423
+ // second unregistration of a name finds nothing to do.
424
+ const unregister = this.onToolRemoved;
425
+ void Promise.allSettled(removedTools.map((tool) => unregister(tool)));
426
+ }
406
427
  return removedTools;
407
428
  }
408
429
  /**
@@ -440,6 +461,8 @@ export class EmergentCapabilityEngine {
440
461
  stored,
441
462
  requestStored: stored?.request != null,
442
463
  legacyActive: tool.isActive ?? true,
464
+ tier: tool.tier,
465
+ createdBy: tool.createdBy,
443
466
  buildTool: () => tool,
444
467
  });
445
468
  }
@@ -595,6 +618,8 @@ export class EmergentCapabilityEngine {
595
618
  stored: held,
596
619
  requestStored: held?.request != null,
597
620
  legacyActive: true,
621
+ tier: tool.tier,
622
+ createdBy: tool.createdBy,
598
623
  buildTool: () => tool,
599
624
  }, { force: true });
600
625
  }
@@ -632,6 +657,8 @@ export class EmergentCapabilityEngine {
632
657
  requestStored: row.request_json != null,
633
658
  legacyActive: !(row.is_active === 0 || row.is_active === false),
634
659
  flagSynced: row.flag_synced == null ? undefined : !(row.flag_synced === 0 || row.flag_synced === false),
660
+ tier: row.tier,
661
+ createdBy: row.created_by_agent,
635
662
  buildTool: (implementation) => toolFromRow(row, implementation),
636
663
  }, options);
637
664
  }
@@ -670,6 +697,10 @@ export class EmergentCapabilityEngine {
670
697
  }
671
698
  async admit(candidate, options = {}) {
672
699
  const { toolId, name, source, stored, requestStored } = candidate;
700
+ // The tool's generation as this admission starts: a removal, a
701
+ // registration or a row write after this point makes what it holds stale,
702
+ // and the adoption below is refused.
703
+ const generation = this.registry.generation(toolId);
673
704
  let legacyActive = candidate.legacyActive;
674
705
  // A row whose last state write did not finish its flag write: finish it
675
706
  // first, so the flag reads what the state row says before anything is
@@ -756,6 +787,14 @@ export class EmergentCapabilityEngine {
756
787
  allowlist: source.format === 'code-with-list' ? granted.filter((api) => listed.allowlist.includes(api)) : granted,
757
788
  };
758
789
  }
790
+ // 3a. An agent-tier row from an earlier release is owned by the forging
791
+ // GMI instance's id, which no persona can match, so no caller could
792
+ // ever pass the owner check: it loads suspended rather than running
793
+ // for everyone. Forging the tool again under the persona is the way
794
+ // back; `reactivateTool` goes through this same path.
795
+ if (!refusal && candidate.tier === 'agent' && candidate.createdBy.startsWith('gmi-instance-')) {
796
+ refusal = 'legacy_owner';
797
+ }
759
798
  if (implementation && !refusal) {
760
799
  refusal = this.refusalFor(implementation);
761
800
  }
@@ -852,9 +891,10 @@ export class EmergentCapabilityEngine {
852
891
  setBy: 'library',
853
892
  at: Date.now(),
854
893
  request,
855
- });
894
+ }, generation);
856
895
  if (!adopted) {
857
- // Removed in this process while the row was being admitted.
896
+ // Removed, or replaced under its id, in this process while the row was
897
+ // being admitted: what this admission read is stale.
858
898
  return { toolId, name, state: 'demoted', reason: 'removed' };
859
899
  }
860
900
  this.indexTool(tool.id, tool.createdBy, this.extractSessionId(tool.source) ?? `persisted:${tool.id}`);
@@ -870,17 +910,50 @@ export class EmergentCapabilityEngine {
870
910
  this.removeIndexedToolEverywhere(toolId);
871
911
  throw error;
872
912
  }
873
- if (this.registry.wasRemoved(toolId)) {
874
- // Removed while the host was registering it: the registration goes.
875
- if (this.onToolRemoved) {
876
- await this.onToolRemoved(tool);
877
- }
878
- this.removeIndexedToolEverywhere(toolId);
879
- return { toolId, name, state: 'demoted', reason: 'removed' };
913
+ const settled = await this.settleRegistration(tool);
914
+ if (settled) {
915
+ return settled;
880
916
  }
881
917
  }
882
918
  return { toolId, name, state: 'active', reason: null };
883
919
  }
920
+ /**
921
+ * After the host registered a tool's executable, the registry must still
922
+ * hold that very object. When it does not (the tool was removed, or
923
+ * replaced under its id, while the registration ran), the executor is
924
+ * brought back in line with the registry: the current tool's executable is
925
+ * registered again when there is one, so whichever registration landed
926
+ * last, the current tool is what runs under the name; the stale executable
927
+ * is taken out when there is none. Returns the outcome to report, or
928
+ * undefined when the registration stands.
929
+ */
930
+ async settleRegistration(tool) {
931
+ const current = this.registry.get(tool.id);
932
+ if (current === tool) {
933
+ return undefined;
934
+ }
935
+ try {
936
+ if (current && this.onToolForged) {
937
+ await this.onToolForged(current, this.createExecutableTool(current));
938
+ }
939
+ else if (!current && this.onToolRemoved) {
940
+ await this.onToolRemoved(tool);
941
+ }
942
+ }
943
+ catch (error) {
944
+ console.warn(`[agentos:emergent] could not settle the executable of "${tool.name}" (${tool.id}):`, error instanceof Error ? error.message : error);
945
+ }
946
+ finally {
947
+ if (!current) {
948
+ this.removeIndexedToolEverywhere(tool.id);
949
+ }
950
+ }
951
+ if (!current) {
952
+ return { toolId: tool.id, name: tool.name, state: 'demoted', reason: 'removed' };
953
+ }
954
+ const held = this.registry.getState(tool.id);
955
+ return { toolId: tool.id, name: current.name, state: held?.state ?? 'active', reason: held?.reason ?? null };
956
+ }
884
957
  /**
885
958
  * The library's reason for not running an implementation under the
886
959
  * configuration in force, or `null`. Later steps add their checks here, so
@@ -1064,11 +1137,12 @@ export class EmergentCapabilityEngine {
1064
1137
  // The owner is the persona that forged the tool, compared as it was
1065
1138
  // stored ('unknown' for a caller without one). A row from an earlier
1066
1139
  // release holds the forging GMI instance's id instead, which no
1067
- // persona can match: such a tool runs for any caller of the host that
1068
- // loaded it by that id, as it did before this change.
1140
+ // persona can match; the loader suspends such a row (`legacy_owner`),
1141
+ // and a call to one held in memory is refused here like any other
1142
+ // owner mismatch.
1069
1143
  const owner = current.createdBy;
1070
1144
  const caller = context.personaId ?? 'unknown';
1071
- if (current.tier === 'agent' && !owner.startsWith('gmi-instance-') && caller !== owner) {
1145
+ if (current.tier === 'agent' && caller !== owner) {
1072
1146
  return {
1073
1147
  success: false,
1074
1148
  error: `Emergent tool "${tool.name}" belongs to agent ${owner}; it is not callable as ${caller}.`,
@@ -1 +1 @@
1
- {"version":3,"file":"EmergentCapabilityEngine.js","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentCapabilityEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmergentCapabilityEngine.js","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentCapabilityEngine.ts"],"names":[],"mappings":"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"}
@@ -118,7 +118,14 @@ export declare class EmergentToolRegistry {
118
118
  * a forge that was mid-flight does not put one back. Cleared when the
119
119
  * deletes land, or when a new row is written for the id.
120
120
  */
121
- private readonly removedIds;
121
+ /**
122
+ * Per-tool generation: advanced by every registration, adoption, row write
123
+ * and removal in this process. An admission that read a tool adopts it only
124
+ * while the generation is what it read, so a tool that changed hands in
125
+ * between (removed, or replaced under its id) is never put back from a
126
+ * stale read, with or without storage.
127
+ */
128
+ private readonly generations;
122
129
  /**
123
130
  * Cached promise from the first `ensureSchemaReady()` call.
124
131
  * Guards against the race condition where multiple callers invoke
@@ -274,6 +281,9 @@ export declare class EmergentToolRegistry {
274
281
  * and nothing here claims a tool the executor does not run.
275
282
  */
276
283
  forget(toolId: string): void;
284
+ /** The tool's generation in this process (see {@link adopt}). */
285
+ generation(toolId: string): number;
286
+ private bump;
277
287
  /** Whether a storage adapter is configured. */
278
288
  hasStorage(): boolean;
279
289
  /**
@@ -283,19 +293,17 @@ export declare class EmergentToolRegistry {
283
293
  * rewritten by a load.
284
294
  */
285
295
  writeToolRow(tool: EmergentTool): Promise<void>;
286
- /** Whether the tool was removed in this process and its rows are not yet gone. */
287
- wasRemoved(toolId: string): boolean;
288
296
  /**
289
297
  * The rows of a tool, deleted after every queued state write of the tool,
290
298
  * so a write still in the queue cannot recreate the state row once it is
291
- * deleted; the removal is forgotten once they are gone. Best-effort.
299
+ * deleted. Best-effort.
292
300
  */
293
301
  private queueRowDeletes;
294
302
  /**
295
303
  * Take a tool read from storage into memory without rewriting its row.
296
304
  * `upsert` re-serialises the source; a loaded tool must keep the row it has.
297
305
  */
298
- adopt(tool: EmergentTool, record: ToolStateRecord): boolean;
306
+ adopt(tool: EmergentTool, record: ToolStateRecord, ifGeneration?: number): boolean;
299
307
  private static readonly ROW_COLUMNS;
300
308
  /**
301
309
  * The stored rows of the given tiers, in creation order, with their state
@@ -1 +1 @@
1
- {"version":3,"file":"EmergentToolRegistry.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentToolRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EmergentToolRegistry.d.ts","sourceRoot":"","sources":["../../../src/cognition/emergent/EmergentToolRegistry.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,14 @@ export class EmergentToolRegistry {
65
65
  * a forge that was mid-flight does not put one back. Cleared when the
66
66
  * deletes land, or when a new row is written for the id.
67
67
  */
68
- this.removedIds = new Set();
68
+ /**
69
+ * Per-tool generation: advanced by every registration, adoption, row write
70
+ * and removal in this process. An admission that read a tool adopts it only
71
+ * while the generation is what it read, so a tool that changed hands in
72
+ * between (removed, or replaced under its id) is never put back from a
73
+ * stale read, with or without storage.
74
+ */
75
+ this.generations = new Map();
69
76
  /**
70
77
  * Cached promise from the first `ensureSchemaReady()` call.
71
78
  * Guards against the race condition where multiple callers invoke
@@ -214,7 +221,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_tool_state (
214
221
  `Remove or promote existing tools before registering new ones.`);
215
222
  }
216
223
  }
217
- this.removedIds.delete(tool.id);
224
+ this.bump(tool.id);
218
225
  // Stamp the tier on the tool object; a fresh registration is active, so the
219
226
  // convention property says so whatever the given object carried.
220
227
  const registered = { ...tool, tier };
@@ -551,6 +558,14 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_tool_state (
551
558
  this.sessionTools.delete(toolId);
552
559
  this.persistedTools.delete(toolId);
553
560
  this.states.delete(toolId);
561
+ this.bump(toolId);
562
+ }
563
+ /** The tool's generation in this process (see {@link adopt}). */
564
+ generation(toolId) {
565
+ return this.generations.get(toolId) ?? 0;
566
+ }
567
+ bump(toolId) {
568
+ this.generations.set(toolId, this.generation(toolId) + 1);
554
569
  }
555
570
  /** Whether a storage adapter is configured. */
556
571
  hasStorage() {
@@ -563,42 +578,36 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_tool_state (
563
578
  * rewritten by a load.
564
579
  */
565
580
  async writeToolRow(tool) {
566
- this.removedIds.delete(tool.id);
567
- await this.persistToolToDb(tool);
568
- }
569
- /** Whether the tool was removed in this process and its rows are not yet gone. */
570
- wasRemoved(toolId) {
571
- return this.removedIds.has(toolId);
581
+ this.bump(tool.id);
582
+ // In the tool's write queue: a removal queued before it deletes first, so
583
+ // the row the host asks for is the one that stays.
584
+ await this.queueStateWrite(tool.id, () => this.persistToolToDb(tool));
572
585
  }
573
586
  /**
574
587
  * The rows of a tool, deleted after every queued state write of the tool,
575
588
  * so a write still in the queue cannot recreate the state row once it is
576
- * deleted; the removal is forgotten once they are gone. Best-effort.
589
+ * deleted. Best-effort.
577
590
  */
578
591
  queueRowDeletes(toolId) {
579
592
  const db = this.db;
580
593
  if (!db) {
581
- this.removedIds.delete(toolId);
582
594
  return;
583
595
  }
584
596
  this.queueStateWrite(toolId, async () => {
585
597
  await db.run(`DELETE FROM agentos_emergent_tools WHERE id = ?`, [toolId]);
586
598
  await db.run(`DELETE FROM agentos_emergent_tool_state WHERE tool_id = ?`, [toolId]);
587
- })
588
- .catch(() => {
599
+ }).catch(() => {
589
600
  // Best-effort cleanup only.
590
- })
591
- .finally(() => {
592
- this.removedIds.delete(toolId);
593
601
  });
594
602
  }
595
603
  /**
596
604
  * Take a tool read from storage into memory without rewriting its row.
597
605
  * `upsert` re-serialises the source; a loaded tool must keep the row it has.
598
606
  */
599
- adopt(tool, record) {
600
- if (this.removedIds.has(tool.id)) {
601
- // Removed in this process while the caller had the tool in hand.
607
+ adopt(tool, record, ifGeneration) {
608
+ if (ifGeneration !== undefined && this.generation(tool.id) !== ifGeneration) {
609
+ // The tool changed hands in this process (a removal, a registration, a
610
+ // row write) after the caller read it: what the caller holds is stale.
602
611
  return false;
603
612
  }
604
613
  this.sessionTools.delete(tool.id);
@@ -611,6 +620,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_tool_state (
611
620
  }
612
621
  tool.isActive = record.state === 'active';
613
622
  this.states.set(tool.id, record);
623
+ this.bump(tool.id);
614
624
  return true;
615
625
  }
616
626
  /**
@@ -706,6 +716,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_tool_state (
706
716
  const normalized = { ...tool };
707
717
  // The convention property follows the held state, not the given object.
708
718
  normalized.isActive = this.isActive(normalized.id);
719
+ this.bump(normalized.id);
709
720
  if (normalized.tier === 'session') {
710
721
  this.sessionTools.set(normalized.id, normalized);
711
722
  }
@@ -728,9 +739,9 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_tool_state (
728
739
  const removed = this.sessionTools.delete(toolId) || this.persistedTools.delete(toolId);
729
740
  this.states.delete(toolId);
730
741
  // The rows go whether or not this process held the tool, so a host can
731
- // remove a stored tool it never loaded; the removal is remembered until
732
- // they are gone.
733
- this.removedIds.add(toolId);
742
+ // remove a stored tool it never loaded; the generation moves, so an
743
+ // admission that read the tool before this does not put it back.
744
+ this.bump(toolId);
734
745
  this.queueRowDeletes(toolId);
735
746
  if (removed) {
736
747
  this.logAudit(toolId, 'remove');
@@ -964,7 +975,7 @@ CREATE TABLE IF NOT EXISTS agentos_emergent_tool_state (
964
975
  if (sessionFromSource(tool.source) === sessionId) {
965
976
  this.sessionTools.delete(id);
966
977
  this.states.delete(id);
967
- this.removedIds.add(id);
978
+ this.bump(id);
968
979
  this.queueRowDeletes(id);
969
980
  this.logAudit(id, 'cleanup', { sessionId });
970
981
  removedCount += 1;