@terminals-tech/agent-zero 1.0.1 → 2.0.0

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 (121) hide show
  1. package/dist/agency/commandRouter.d.ts +10 -0
  2. package/dist/agency/commandRouter.d.ts.map +1 -1
  3. package/dist/agency/commandRouter.js +206 -0
  4. package/dist/agency/commandRouter.js.map +1 -1
  5. package/dist/agency/runtime.d.ts +24 -0
  6. package/dist/agency/runtime.d.ts.map +1 -1
  7. package/dist/agency/runtime.js +103 -0
  8. package/dist/agency/runtime.js.map +1 -1
  9. package/dist/channels/gemini.d.ts +73 -0
  10. package/dist/channels/gemini.d.ts.map +1 -0
  11. package/dist/channels/gemini.js +246 -0
  12. package/dist/channels/gemini.js.map +1 -0
  13. package/dist/interop/a2a.d.ts +133 -0
  14. package/dist/interop/a2a.d.ts.map +1 -0
  15. package/dist/interop/a2a.js +357 -0
  16. package/dist/interop/a2a.js.map +1 -0
  17. package/dist/interop/index.d.ts +10 -0
  18. package/dist/interop/index.d.ts.map +1 -0
  19. package/dist/interop/index.js +10 -0
  20. package/dist/interop/index.js.map +1 -0
  21. package/dist/interop/mcp.d.ts +111 -0
  22. package/dist/interop/mcp.d.ts.map +1 -0
  23. package/dist/interop/mcp.js +337 -0
  24. package/dist/interop/mcp.js.map +1 -0
  25. package/dist/moltbook/approvalGate.d.ts +23 -0
  26. package/dist/moltbook/approvalGate.d.ts.map +1 -1
  27. package/dist/moltbook/approvalGate.js +45 -0
  28. package/dist/moltbook/approvalGate.js.map +1 -1
  29. package/dist/moltbook/attentionField.d.ts +14 -0
  30. package/dist/moltbook/attentionField.d.ts.map +1 -1
  31. package/dist/moltbook/attentionField.js +37 -1
  32. package/dist/moltbook/attentionField.js.map +1 -1
  33. package/dist/moltbook/daemon.d.ts +24 -0
  34. package/dist/moltbook/daemon.d.ts.map +1 -1
  35. package/dist/moltbook/daemon.js +164 -0
  36. package/dist/moltbook/daemon.js.map +1 -1
  37. package/dist/moltbook/responseComposer.d.ts +7 -2
  38. package/dist/moltbook/responseComposer.d.ts.map +1 -1
  39. package/dist/moltbook/responseComposer.js +36 -7
  40. package/dist/moltbook/responseComposer.js.map +1 -1
  41. package/dist/moltbook/strategicContext.d.ts +89 -0
  42. package/dist/moltbook/strategicContext.d.ts.map +1 -0
  43. package/dist/moltbook/strategicContext.js +283 -0
  44. package/dist/moltbook/strategicContext.js.map +1 -0
  45. package/dist/primitives/index.d.ts +6 -2
  46. package/dist/primitives/index.d.ts.map +1 -1
  47. package/dist/primitives/index.js +6 -2
  48. package/dist/primitives/index.js.map +1 -1
  49. package/dist/rail/persistence.d.ts +70 -1
  50. package/dist/rail/persistence.d.ts.map +1 -1
  51. package/dist/rail/persistence.js +270 -3
  52. package/dist/rail/persistence.js.map +1 -1
  53. package/dist/rail/plugin.d.ts +76 -0
  54. package/dist/rail/plugin.d.ts.map +1 -0
  55. package/dist/rail/plugin.js +141 -0
  56. package/dist/rail/plugin.js.map +1 -0
  57. package/dist/rail/server.d.ts +121 -30
  58. package/dist/rail/server.d.ts.map +1 -1
  59. package/dist/rail/server.js +404 -28
  60. package/dist/rail/server.js.map +1 -1
  61. package/dist/rail/wsServer.d.ts +7 -0
  62. package/dist/rail/wsServer.d.ts.map +1 -1
  63. package/dist/rail/wsServer.js +233 -11
  64. package/dist/rail/wsServer.js.map +1 -1
  65. package/dist/resonance/globalKuramoto.d.ts +20 -0
  66. package/dist/resonance/globalKuramoto.d.ts.map +1 -1
  67. package/dist/resonance/globalKuramoto.js +93 -2
  68. package/dist/resonance/globalKuramoto.js.map +1 -1
  69. package/dist/routing/index.d.ts +2 -0
  70. package/dist/routing/index.d.ts.map +1 -1
  71. package/dist/routing/index.js +1 -0
  72. package/dist/routing/index.js.map +1 -1
  73. package/dist/routing/modelRegistry.d.ts +54 -0
  74. package/dist/routing/modelRegistry.d.ts.map +1 -0
  75. package/dist/routing/modelRegistry.js +150 -0
  76. package/dist/routing/modelRegistry.js.map +1 -0
  77. package/dist/routing/thermodynamic.d.ts +12 -3
  78. package/dist/routing/thermodynamic.d.ts.map +1 -1
  79. package/dist/routing/thermodynamic.js +19 -9
  80. package/dist/routing/thermodynamic.js.map +1 -1
  81. package/dist/runtime/agent-zero.d.ts +38 -2
  82. package/dist/runtime/agent-zero.d.ts.map +1 -1
  83. package/dist/runtime/agent-zero.js +104 -7
  84. package/dist/runtime/agent-zero.js.map +1 -1
  85. package/dist/runtime/contextWindow.d.ts +62 -0
  86. package/dist/runtime/contextWindow.d.ts.map +1 -0
  87. package/dist/runtime/contextWindow.js +125 -0
  88. package/dist/runtime/contextWindow.js.map +1 -0
  89. package/dist/runtime/identity.d.ts +65 -0
  90. package/dist/runtime/identity.d.ts.map +1 -0
  91. package/dist/runtime/identity.js +199 -0
  92. package/dist/runtime/identity.js.map +1 -0
  93. package/dist/runtime/index.d.ts +6 -0
  94. package/dist/runtime/index.d.ts.map +1 -1
  95. package/dist/runtime/index.js +6 -0
  96. package/dist/runtime/index.js.map +1 -1
  97. package/dist/runtime/sessionStore.d.ts +70 -0
  98. package/dist/runtime/sessionStore.d.ts.map +1 -0
  99. package/dist/runtime/sessionStore.js +134 -0
  100. package/dist/runtime/sessionStore.js.map +1 -0
  101. package/dist/security/capabilities.d.ts +46 -0
  102. package/dist/security/capabilities.d.ts.map +1 -1
  103. package/dist/security/capabilities.js +176 -0
  104. package/dist/security/capabilities.js.map +1 -1
  105. package/dist/security/combinators.d.ts +89 -0
  106. package/dist/security/combinators.d.ts.map +1 -0
  107. package/dist/security/combinators.js +168 -0
  108. package/dist/security/combinators.js.map +1 -0
  109. package/dist/security/index.d.ts +7 -1
  110. package/dist/security/index.d.ts.map +1 -1
  111. package/dist/security/index.js +4 -1
  112. package/dist/security/index.js.map +1 -1
  113. package/dist/security/isolation.d.ts +76 -0
  114. package/dist/security/isolation.d.ts.map +1 -0
  115. package/dist/security/isolation.js +118 -0
  116. package/dist/security/isolation.js.map +1 -0
  117. package/dist/security/sandbox.d.ts +38 -1
  118. package/dist/security/sandbox.d.ts.map +1 -1
  119. package/dist/security/sandbox.js +68 -8
  120. package/dist/security/sandbox.js.map +1 -1
  121. package/package.json +12 -3
@@ -4,7 +4,7 @@
4
4
  * Network-wide phase synchronization with TTL enforcement,
5
5
  * adaptive coupling, and flood attack detection.
6
6
  */
7
- import { KuramotoEngine } from './kuramoto.js';
7
+ import { KuramotoEngine, computeCoherence } from './kuramoto.js';
8
8
  const DEFAULT_GLOBAL_CONFIG = {
9
9
  frequencyVariance: 0.1,
10
10
  couplingStrength: 0.5,
@@ -19,6 +19,7 @@ const DEFAULT_GLOBAL_CONFIG = {
19
19
  minCoupling: 0.1,
20
20
  maxCoupling: 1.5,
21
21
  groupthinkThreshold: 0.95,
22
+ crossModelCouplingFactor: 0.7,
22
23
  };
23
24
  export class GlobalKuramotoEngine {
24
25
  engine;
@@ -62,6 +63,7 @@ export class GlobalKuramotoEngine {
62
63
  lastReported: Date.now(),
63
64
  networkLatency: 0,
64
65
  trustScore: 1.0,
66
+ modelType: observer.modelType,
65
67
  });
66
68
  }
67
69
  removeAgent(agentId) {
@@ -71,10 +73,63 @@ export class GlobalKuramotoEngine {
71
73
  }
72
74
  tick() {
73
75
  const result = this.engine.tick();
76
+ // Post-tick: apply cross-model coupling reduction
77
+ this.applyCrossModelCorrection();
74
78
  if (this.config.adaptiveCoupling) {
75
79
  this.adaptCoupling(result.coherence);
76
80
  }
77
- return { ...result, adaptedK: this.currentCoupling };
81
+ // Recompute coherence after correction
82
+ const correctedCoherence = this.engine.getCoherence();
83
+ return { coherence: correctedCoherence, phases: result.phases, adaptedK: this.currentCoupling };
84
+ }
85
+ /**
86
+ * Apply reduced coupling between oscillators of different model types.
87
+ * The base KuramotoEngine applies uniform coupling K to all pairs.
88
+ * This post-tick step partially reverts phase changes from cross-model
89
+ * pairs so they effectively couple at K * crossModelCouplingFactor.
90
+ */
91
+ applyCrossModelCorrection() {
92
+ const oscillators = this.engine.getOscillators();
93
+ const factor = this.config.crossModelCouplingFactor ?? 0.7;
94
+ const N = oscillators.length;
95
+ // No correction needed if factor is 1 or fewer than 2 oscillators
96
+ if (factor >= 1.0 || N < 2)
97
+ return;
98
+ // Check if any oscillators have model types assigned
99
+ let hasModelTypes = false;
100
+ for (const osc of oscillators) {
101
+ const meta = this.networkMeta.get(osc.id);
102
+ if (meta?.modelType) {
103
+ hasModelTypes = true;
104
+ break;
105
+ }
106
+ }
107
+ if (!hasModelTypes)
108
+ return;
109
+ for (const osc of oscillators) {
110
+ const meta = this.networkMeta.get(osc.id);
111
+ if (!meta?.modelType)
112
+ continue;
113
+ let crossModelInfluence = 0;
114
+ for (const other of oscillators) {
115
+ if (other.id === osc.id)
116
+ continue;
117
+ const otherMeta = this.networkMeta.get(other.id);
118
+ if (otherMeta?.modelType && otherMeta.modelType !== meta.modelType) {
119
+ crossModelInfluence += Math.sin(other.phase - osc.phase);
120
+ }
121
+ }
122
+ // The engine applied full coupling K/N * sin(diff) * dt to all pairs.
123
+ // Cross-model pairs should only couple at factor * K, so revert (1-factor) portion.
124
+ if (crossModelInfluence !== 0) {
125
+ const revertAmount = (this.currentCoupling / N) *
126
+ crossModelInfluence *
127
+ (1 - factor) *
128
+ (this.config.dt / 1000);
129
+ osc.phase -= revertAmount;
130
+ osc.observer.phase = osc.phase;
131
+ }
132
+ }
78
133
  }
79
134
  adaptCoupling(coherence) {
80
135
  if (coherence < this.config.coherenceThreshold) {
@@ -118,6 +173,42 @@ export class GlobalKuramotoEngine {
118
173
  }
119
174
  return false;
120
175
  }
176
+ /**
177
+ * Calculate per-model-type Kuramoto order parameter.
178
+ * Groups oscillators by modelType and computes coherence within each group.
179
+ * Oscillators without a modelType are grouped under the key 'unknown'.
180
+ */
181
+ getCoherenceByModel() {
182
+ const oscillators = this.engine.getOscillators();
183
+ const groups = new Map();
184
+ for (const osc of oscillators) {
185
+ const meta = this.networkMeta.get(osc.id);
186
+ const modelType = meta?.modelType ?? 'unknown';
187
+ const group = groups.get(modelType);
188
+ if (group) {
189
+ group.push(osc);
190
+ }
191
+ else {
192
+ groups.set(modelType, [osc]);
193
+ }
194
+ }
195
+ const result = new Map();
196
+ for (const [modelType, oscs] of groups) {
197
+ result.set(modelType, computeCoherence(oscs));
198
+ }
199
+ return result;
200
+ }
201
+ /**
202
+ * Check if any model-specific cluster exceeds the groupthink threshold.
203
+ */
204
+ getGroupthinkByModel() {
205
+ const coherenceByModel = this.getCoherenceByModel();
206
+ const result = new Map();
207
+ for (const [modelType, coherence] of coherenceByModel) {
208
+ result.set(modelType, coherence > this.config.groupthinkThreshold);
209
+ }
210
+ return result;
211
+ }
121
212
  // Compatibility methods for drop-in replacement of KuramotoEngine in server.ts
122
213
  addObserver(observer) {
123
214
  this.addAgent({
@@ -1 +1 @@
1
- {"version":3,"file":"globalKuramoto.js","sourceRoot":"","sources":["../../src/resonance/globalKuramoto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"globalKuramoto.js","sourceRoot":"","sources":["../../src/resonance/globalKuramoto.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,6 @@
5
5
  */
6
6
  export { ThermodynamicRouter, computeEnergy, softmax, sample, cosineSimilarity, findNearestWell, DEFAULT_ROUTER_CONFIG, } from './thermodynamic.js';
7
7
  export type { RouterConfig } from './thermodynamic.js';
8
+ export { ModelRegistry, generateDeterministicEmbedding, } from './modelRegistry.js';
9
+ export type { ModelEntry, ModelCapability, } from './modelRegistry.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,EACL,aAAa,EACb,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,UAAU,EACV,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
@@ -4,4 +4,5 @@
4
4
  * Thermodynamic message routing via Boltzmann sampling.
5
5
  */
6
6
  export { ThermodynamicRouter, computeEnergy, softmax, sample, cosineSimilarity, findNearestWell, DEFAULT_ROUTER_CONFIG, } from './thermodynamic.js';
7
+ export { ModelRegistry, generateDeterministicEmbedding, } from './modelRegistry.js';
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,MAAM,EACN,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,aAAa,EACb,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Model Registry
3
+ *
4
+ * Registry of available AI models with capabilities, costs, and identity
5
+ * embeddings for semantic routing. Identity embeddings enable the
6
+ * thermodynamic router to factor model affinity into energy calculations.
7
+ */
8
+ export interface ModelCapability {
9
+ name: string;
10
+ strength: number;
11
+ }
12
+ export interface ModelEntry {
13
+ id: string;
14
+ provider: 'anthropic' | 'google' | 'openai' | 'openrouter';
15
+ name: string;
16
+ capabilities: ModelCapability[];
17
+ costPer1kTokens: number;
18
+ maxContextTokens: number;
19
+ supportsStreaming: boolean;
20
+ supportsTools: boolean;
21
+ identityEmbedding: number[];
22
+ metadata?: Record<string, unknown>;
23
+ }
24
+ /**
25
+ * Generate a deterministic 768-dim unit embedding from a seed string.
26
+ * Uses a simple LCG seeded from the string hash for reproducibility.
27
+ */
28
+ export declare function generateDeterministicEmbedding(seed: string): number[];
29
+ export declare class ModelRegistry {
30
+ private models;
31
+ register(entry: ModelEntry): void;
32
+ unregister(modelId: string): void;
33
+ get(modelId: string): ModelEntry | undefined;
34
+ /**
35
+ * Find models that have a specific capability, optionally above a minimum strength.
36
+ */
37
+ findByCapability(capabilityName: string, minStrength?: number): ModelEntry[];
38
+ /**
39
+ * Find the model whose identity embedding is closest to the task embedding.
40
+ * Optionally filters by max cost per 1k tokens.
41
+ */
42
+ findBestMatch(taskEmbedding: number[], maxCost?: number): ModelEntry | null;
43
+ /**
44
+ * Estimate cost in USD for a given model and token counts.
45
+ * Returns 0 if model is not found.
46
+ */
47
+ estimateCost(modelId: string, inputTokens: number, outputTokens: number): number;
48
+ listAll(): ModelEntry[];
49
+ /**
50
+ * Create a registry pre-populated with default model entries.
51
+ */
52
+ static createWithDefaults(): ModelRegistry;
53
+ }
54
+ //# sourceMappingURL=modelRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelRegistry.d.ts","sourceRoot":"","sources":["../../src/routing/modelRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAcrE;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsC;IAEpD,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAIjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI5C;;OAEG;IACH,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,GAAE,MAAU,GAAG,UAAU,EAAE;IAW/E;;;OAGG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAiB3E;;;OAGG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAMhF,OAAO,IAAI,UAAU,EAAE;IAIvB;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,aAAa;CAmE3C"}
@@ -0,0 +1,150 @@
1
+ /**
2
+ * Model Registry
3
+ *
4
+ * Registry of available AI models with capabilities, costs, and identity
5
+ * embeddings for semantic routing. Identity embeddings enable the
6
+ * thermodynamic router to factor model affinity into energy calculations.
7
+ */
8
+ import { cosineSimilarity } from './thermodynamic.js';
9
+ /**
10
+ * Generate a deterministic 768-dim unit embedding from a seed string.
11
+ * Uses a simple LCG seeded from the string hash for reproducibility.
12
+ */
13
+ export function generateDeterministicEmbedding(seed) {
14
+ let hash = 0;
15
+ for (let i = 0; i < seed.length; i++) {
16
+ hash = ((hash << 5) - hash + seed.charCodeAt(i)) | 0;
17
+ }
18
+ const embedding = new Array(768);
19
+ for (let i = 0; i < 768; i++) {
20
+ hash = (hash * 1103515245 + 12345) & 0x7fffffff;
21
+ embedding[i] = (hash / 0x7fffffff) * 2 - 1;
22
+ }
23
+ // Normalize to unit vector
24
+ const norm = Math.sqrt(embedding.reduce((s, v) => s + v * v, 0));
25
+ if (norm === 0)
26
+ return embedding;
27
+ return embedding.map(v => v / norm);
28
+ }
29
+ export class ModelRegistry {
30
+ models = new Map();
31
+ register(entry) {
32
+ this.models.set(entry.id, entry);
33
+ }
34
+ unregister(modelId) {
35
+ this.models.delete(modelId);
36
+ }
37
+ get(modelId) {
38
+ return this.models.get(modelId);
39
+ }
40
+ /**
41
+ * Find models that have a specific capability, optionally above a minimum strength.
42
+ */
43
+ findByCapability(capabilityName, minStrength = 0) {
44
+ const results = [];
45
+ for (const model of this.models.values()) {
46
+ const cap = model.capabilities.find(c => c.name === capabilityName);
47
+ if (cap && cap.strength >= minStrength) {
48
+ results.push(model);
49
+ }
50
+ }
51
+ return results;
52
+ }
53
+ /**
54
+ * Find the model whose identity embedding is closest to the task embedding.
55
+ * Optionally filters by max cost per 1k tokens.
56
+ */
57
+ findBestMatch(taskEmbedding, maxCost) {
58
+ let bestModel = null;
59
+ let bestSimilarity = -Infinity;
60
+ for (const model of this.models.values()) {
61
+ if (maxCost !== undefined && model.costPer1kTokens > maxCost)
62
+ continue;
63
+ const similarity = cosineSimilarity(taskEmbedding, model.identityEmbedding);
64
+ if (similarity > bestSimilarity) {
65
+ bestSimilarity = similarity;
66
+ bestModel = model;
67
+ }
68
+ }
69
+ return bestModel;
70
+ }
71
+ /**
72
+ * Estimate cost in USD for a given model and token counts.
73
+ * Returns 0 if model is not found.
74
+ */
75
+ estimateCost(modelId, inputTokens, outputTokens) {
76
+ const model = this.models.get(modelId);
77
+ if (!model)
78
+ return 0;
79
+ return model.costPer1kTokens * ((inputTokens + outputTokens) / 1000);
80
+ }
81
+ listAll() {
82
+ return Array.from(this.models.values());
83
+ }
84
+ /**
85
+ * Create a registry pre-populated with default model entries.
86
+ */
87
+ static createWithDefaults() {
88
+ const registry = new ModelRegistry();
89
+ registry.register({
90
+ id: 'claude-opus-4',
91
+ provider: 'anthropic',
92
+ name: 'Claude Opus 4',
93
+ capabilities: [
94
+ { name: 'reasoning', strength: 0.95 },
95
+ { name: 'code', strength: 0.9 },
96
+ ],
97
+ costPer1kTokens: 0.015,
98
+ maxContextTokens: 200000,
99
+ supportsStreaming: true,
100
+ supportsTools: true,
101
+ identityEmbedding: generateDeterministicEmbedding('claude-opus-4'),
102
+ });
103
+ registry.register({
104
+ id: 'claude-sonnet-4',
105
+ provider: 'anthropic',
106
+ name: 'Claude Sonnet 4',
107
+ capabilities: [
108
+ { name: 'reasoning', strength: 0.85 },
109
+ { name: 'code', strength: 0.85 },
110
+ ],
111
+ costPer1kTokens: 0.003,
112
+ maxContextTokens: 200000,
113
+ supportsStreaming: true,
114
+ supportsTools: true,
115
+ identityEmbedding: generateDeterministicEmbedding('claude-sonnet-4'),
116
+ });
117
+ registry.register({
118
+ id: 'gemini-2.5-flash',
119
+ provider: 'google',
120
+ name: 'Gemini 2.5 Flash',
121
+ capabilities: [
122
+ { name: 'reasoning', strength: 0.8 },
123
+ { name: 'code', strength: 0.75 },
124
+ { name: 'search', strength: 0.9 },
125
+ ],
126
+ costPer1kTokens: 0.0001,
127
+ maxContextTokens: 1000000,
128
+ supportsStreaming: true,
129
+ supportsTools: true,
130
+ identityEmbedding: generateDeterministicEmbedding('gemini-2.5-flash'),
131
+ });
132
+ registry.register({
133
+ id: 'gemini-2.5-pro',
134
+ provider: 'google',
135
+ name: 'Gemini 2.5 Pro',
136
+ capabilities: [
137
+ { name: 'reasoning', strength: 0.9 },
138
+ { name: 'code', strength: 0.85 },
139
+ { name: 'vision', strength: 0.9 },
140
+ ],
141
+ costPer1kTokens: 0.00125,
142
+ maxContextTokens: 1000000,
143
+ supportsStreaming: true,
144
+ supportsTools: true,
145
+ identityEmbedding: generateDeterministicEmbedding('gemini-2.5-pro'),
146
+ });
147
+ return registry;
148
+ }
149
+ }
150
+ //# sourceMappingURL=modelRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelRegistry.js","sourceRoot":"","sources":["../../src/routing/modelRegistry.ts"],"names":[],"mappings":"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"}
@@ -20,14 +20,20 @@ export interface RouterConfig {
20
20
  coherenceWeight: number;
21
21
  /** Weight for semantic distance */
22
22
  semanticWeight: number;
23
+ /** Weight for model affinity bonus (default 0) */
24
+ modelWeight?: number;
23
25
  /** Annealing schedule */
24
26
  annealingSchedule: 'none' | 'linear' | 'exponential' | 'adaptive';
25
27
  }
26
28
  export declare const DEFAULT_ROUTER_CONFIG: RouterConfig;
27
29
  /**
28
- * Compute energy for routing a message to a specific agent
30
+ * Compute energy for routing a message to a specific agent.
31
+ * Lower energy = higher probability of selection.
32
+ *
33
+ * Model affinity is an optional bonus: when the model's identity embedding
34
+ * is semantically close to the message, energy decreases (better fit).
29
35
  */
30
- export declare function computeEnergy(messageEmbedding: number[], agent: Observer, agentLoad: number, agentCoherence: number, agentAttractor: number[], config: RouterConfig): number;
36
+ export declare function computeEnergy(messageEmbedding: number[], agent: Observer, agentLoad: number, agentCoherence: number, agentAttractor: number[], config: RouterConfig, modelEmbedding?: number[]): number;
31
37
  /**
32
38
  * Softmax with temperature for Boltzmann distribution
33
39
  */
@@ -53,13 +59,15 @@ export declare class ThermodynamicRouter {
53
59
  private step;
54
60
  constructor(config?: Partial<RouterConfig>);
55
61
  /**
56
- * Route a message to the optimal agent using thermodynamic sampling
62
+ * Route a message to the optimal agent using thermodynamic sampling.
63
+ * Agents may optionally carry a modelEmbedding for model-affinity routing.
57
64
  */
58
65
  route(message: Message, agents: Array<{
59
66
  observer: Observer;
60
67
  load: number;
61
68
  coherence: number;
62
69
  attractor: number[];
70
+ modelEmbedding?: number[];
63
71
  }>): Observer;
64
72
  /**
65
73
  * Get energy landscape for visualization
@@ -69,6 +77,7 @@ export declare class ThermodynamicRouter {
69
77
  load: number;
70
78
  coherence: number;
71
79
  attractor: number[];
80
+ modelEmbedding?: number[];
72
81
  }>): Map<string, {
73
82
  energy: number;
74
83
  probability: number;
@@ -1 +1 @@
1
- {"version":3,"file":"thermodynamic.d.ts","sourceRoot":"","sources":["../../src/routing/thermodynamic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAsB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjG,wEAAwE;AACxE,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB;IACzB,iBAAiB,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC;CACnE;AAED,eAAO,MAAM,qBAAqB,EAAE,YAMnC,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAC3B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EAAE,EACxB,MAAM,EAAE,YAAY,GACnB,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAYzE;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,CAYhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAmBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,WAAW,EAAE,GACnB,WAAW,GAAG,IAAI,CAepB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAa;gBAEb,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAK9C;;OAEG;IACH,KAAK,CACH,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,QAAQ,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC,GACD,QAAQ;IAmCX;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,QAAQ,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC,GACD,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IA2BvD;;OAEG;IACH,OAAO,CAAC,MAAM;IAqBd;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
1
+ {"version":3,"file":"thermodynamic.d.ts","sourceRoot":"","sources":["../../src/routing/thermodynamic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAsB,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEjG,wEAAwE;AACxE,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,iBAAiB,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC;CACnE;AAED,eAAO,MAAM,qBAAqB,EAAE,YAOnC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,gBAAgB,EAAE,MAAM,EAAE,EAC1B,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,MAAM,EAAE,EACxB,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,MAAM,CAiBR;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAYzE;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,CAAC,CAYhE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAmBjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,WAAW,EAAE,GACnB,WAAW,GAAG,IAAI,CAepB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAa;gBAEb,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAK9C;;;OAGG;IACH,KAAK,CACH,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,QAAQ,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC,GACD,QAAQ;IAoCX;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,KAAK,CAAC;QACZ,QAAQ,EAAE,QAAQ,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC,GACD,GAAG,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IA4BvD;;OAEG;IACH,OAAO,CAAC,MAAM;IAqBd;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId"}
@@ -12,23 +12,32 @@
12
12
  export const MIN_TEMPERATURE = 0.01;
13
13
  export const DEFAULT_ROUTER_CONFIG = {
14
14
  temperature: 1.0,
15
- loadWeight: 0.3,
15
+ loadWeight: 0.2,
16
16
  coherenceWeight: 0.2,
17
- semanticWeight: 0.5,
17
+ semanticWeight: 0.3,
18
+ modelWeight: 0.3,
18
19
  annealingSchedule: 'adaptive',
19
20
  };
20
21
  /**
21
- * Compute energy for routing a message to a specific agent
22
+ * Compute energy for routing a message to a specific agent.
23
+ * Lower energy = higher probability of selection.
24
+ *
25
+ * Model affinity is an optional bonus: when the model's identity embedding
26
+ * is semantically close to the message, energy decreases (better fit).
22
27
  */
23
- export function computeEnergy(messageEmbedding, agent, agentLoad, agentCoherence, agentAttractor, config) {
28
+ export function computeEnergy(messageEmbedding, agent, agentLoad, agentCoherence, agentAttractor, config, modelEmbedding) {
24
29
  // Semantic distance (cosine similarity inverted)
25
30
  const semanticDistance = 1 - cosineSimilarity(messageEmbedding, agentAttractor);
26
31
  // Load penalty (busy agents cost more)
27
32
  const loadPenalty = agentLoad * config.loadWeight;
28
33
  // Coherence bonus (aligned agents cost less)
29
34
  const coherenceBonus = agentCoherence * config.coherenceWeight;
30
- // Total energy
31
- return (semanticDistance * config.semanticWeight) + loadPenalty - coherenceBonus;
35
+ // Model affinity bonus: how well does the model's identity match the task?
36
+ const modelAffinity = modelEmbedding
37
+ ? cosineSimilarity(messageEmbedding, modelEmbedding) * (config.modelWeight ?? 0)
38
+ : 0;
39
+ // Total energy (affinity is a bonus, so subtracted)
40
+ return (semanticDistance * config.semanticWeight) + loadPenalty - coherenceBonus - modelAffinity;
32
41
  }
33
42
  /**
34
43
  * Softmax with temperature for Boltzmann distribution
@@ -107,7 +116,8 @@ export class ThermodynamicRouter {
107
116
  this.temperature = this.config.temperature;
108
117
  }
109
118
  /**
110
- * Route a message to the optimal agent using thermodynamic sampling
119
+ * Route a message to the optimal agent using thermodynamic sampling.
120
+ * Agents may optionally carry a modelEmbedding for model-affinity routing.
111
121
  */
112
122
  route(message, agents) {
113
123
  if (agents.length === 0) {
@@ -118,7 +128,7 @@ export class ThermodynamicRouter {
118
128
  }
119
129
  const messageEmbedding = message.embedding ?? new Array(768).fill(0);
120
130
  // Compute energies for all agents
121
- const energies = agents.map(agent => computeEnergy(messageEmbedding, agent.observer, agent.load, agent.coherence, agent.attractor, this.config));
131
+ const energies = agents.map(agent => computeEnergy(messageEmbedding, agent.observer, agent.load, agent.coherence, agent.attractor, this.config, agent.modelEmbedding));
122
132
  // Convert to probabilities via Boltzmann distribution
123
133
  const probabilities = softmax(energies, this.temperature);
124
134
  // Sample from distribution
@@ -132,7 +142,7 @@ export class ThermodynamicRouter {
132
142
  */
133
143
  energyLandscape(message, agents) {
134
144
  const messageEmbedding = message.embedding ?? new Array(768).fill(0);
135
- const energies = agents.map(agent => computeEnergy(messageEmbedding, agent.observer, agent.load, agent.coherence, agent.attractor, this.config));
145
+ const energies = agents.map(agent => computeEnergy(messageEmbedding, agent.observer, agent.load, agent.coherence, agent.attractor, this.config, agent.modelEmbedding));
136
146
  const probabilities = softmax(energies, this.temperature);
137
147
  const landscape = new Map();
138
148
  for (let i = 0; i < agents.length; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"thermodynamic.js","sourceRoot":"","sources":["../../src/routing/thermodynamic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thermodynamic.js","sourceRoot":"","sources":["../../src/routing/thermodynamic.ts"],"names":[],"mappings":"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"}
@@ -13,9 +13,14 @@ import { EventEmitter } from 'eventemitter3';
13
13
  import type { AgentZeroState, AgentState, Message, MessageKind, Token, Realizability } from '../primitives/types.js';
14
14
  import { type RouterConfig } from '../routing/thermodynamic.js';
15
15
  import { type KuramotoConfig } from '../resonance/kuramoto.js';
16
+ import { AgentIsolationManager } from '../security/isolation.js';
17
+ import type { SessionStore, SessionSnapshot } from './sessionStore.js';
18
+ import { type ContextWindowConfig } from './contextWindow.js';
16
19
  export interface AgentZeroConfig {
17
20
  /** Agent name */
18
21
  name: string;
22
+ /** Parent agent ID (set when spawned as a child) */
23
+ parentId?: string;
19
24
  /** Observation frequency (Hz) */
20
25
  frequency?: number;
21
26
  /** Thermodynamic router config */
@@ -28,8 +33,14 @@ export interface AgentZeroConfig {
28
33
  darkSensitivity?: number;
29
34
  /** Tick rate (ms) */
30
35
  tickRate?: number;
36
+ /** Session persistence store */
37
+ sessionStore?: SessionStore;
38
+ /** Context window management config */
39
+ contextWindow?: Partial<ContextWindowConfig>;
31
40
  }
32
- export declare const DEFAULT_AGENT_ZERO_CONFIG: Required<Omit<AgentZeroConfig, 'name'>>;
41
+ /** Phase correction coupling strength for resonate messages */
42
+ export declare const RESONANCE_COUPLING = 0.3;
43
+ export declare const DEFAULT_AGENT_ZERO_CONFIG: Required<Omit<AgentZeroConfig, 'name' | 'parentId' | 'sessionStore' | 'contextWindow'>>;
33
44
  export interface AgentZeroEvents {
34
45
  'state:change': (oldState: AgentState, newState: AgentState) => void;
35
46
  'message:received': (message: Message) => void;
@@ -50,6 +61,7 @@ export interface TickStats {
50
61
  export declare class AgentZero extends EventEmitter<AgentZeroEvents> {
51
62
  readonly id: string;
52
63
  readonly name: string;
64
+ readonly parentId?: string;
53
65
  private state;
54
66
  private observer;
55
67
  private tokens;
@@ -60,6 +72,9 @@ export declare class AgentZero extends EventEmitter<AgentZeroEvents> {
60
72
  private kuramoto;
61
73
  private sandbox;
62
74
  private capability;
75
+ private isolationManager;
76
+ private sessionStore?;
77
+ private contextWindow?;
63
78
  private inbox;
64
79
  private outbox;
65
80
  private children;
@@ -107,7 +122,12 @@ export declare class AgentZero extends EventEmitter<AgentZeroEvents> {
107
122
  private handleSpawn;
108
123
  private handleHalt;
109
124
  /**
110
- * Spawn a child agent
125
+ * Spawn a child agent.
126
+ *
127
+ * Enforces:
128
+ * - Sandbox capability check for 'spawn' scope
129
+ * - maxSpawnDepth limit via isolation boundaries
130
+ * - Creates isolation boundary with attenuated capabilities
111
131
  */
112
132
  spawn(config: AgentZeroConfig): AgentZero | null;
113
133
  /**
@@ -122,6 +142,22 @@ export declare class AgentZero extends EventEmitter<AgentZeroEvents> {
122
142
  getTemperature(): number;
123
143
  setTemperature(temp: number): void;
124
144
  getChildren(): AgentZero[];
145
+ getIsolationManager(): AgentIsolationManager;
146
+ /**
147
+ * Save current agent state as a session snapshot.
148
+ * Requires a sessionStore to be configured.
149
+ */
150
+ saveSession(): Promise<SessionSnapshot>;
151
+ /**
152
+ * Restore agent state from a session snapshot.
153
+ * Requires a sessionStore to be configured.
154
+ */
155
+ restoreSession(snapshotId: string): Promise<void>;
156
+ /**
157
+ * Apply a snapshot to this agent's internal state.
158
+ * Called by SessionStore.restore().
159
+ */
160
+ restoreFromSnapshot(snapshot: SessionSnapshot): void;
125
161
  /**
126
162
  * Start the agent
127
163
  */