monomind 1.11.11 → 1.11.13

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 (227) hide show
  1. package/.claude/commands/mastermind/idea.md +1 -1
  2. package/.claude/commands/mastermind/master.md +1 -1
  3. package/.claude/skills/mastermind/_protocol.md +4 -4
  4. package/.claude/skills/mastermind/architect.md +7 -4
  5. package/.claude/skills/mastermind/autodev.md +4 -2
  6. package/.claude/skills/mastermind/build.md +3 -3
  7. package/.claude/skills/mastermind/content.md +3 -3
  8. package/.claude/skills/mastermind/createorg.md +2 -2
  9. package/.claude/skills/mastermind/finance.md +3 -3
  10. package/.claude/skills/mastermind/idea.md +8 -0
  11. package/.claude/skills/mastermind/marketing.md +3 -3
  12. package/.claude/skills/mastermind/ops.md +3 -3
  13. package/.claude/skills/mastermind/release.md +3 -3
  14. package/.claude/skills/mastermind/research.md +3 -3
  15. package/.claude/skills/mastermind/review.md +3 -3
  16. package/.claude/skills/mastermind/sales.md +3 -3
  17. package/package.json +1 -1
  18. package/packages/@monomind/cli/dist/src/index.js +19 -14
  19. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +3 -3
  20. package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +1 -1
  21. package/packages/@monomind/cli/dist/src/update/checker.js +24 -7
  22. package/packages/@monomind/cli/dist/src/update/index.d.ts +10 -0
  23. package/packages/@monomind/cli/dist/src/update/index.js +29 -2
  24. package/packages/@monomind/cli/package.json +1 -1
  25. package/packages/@monomind/cli/dist/src/agents/halt-signal.d.ts +0 -25
  26. package/packages/@monomind/cli/dist/src/agents/halt-signal.js +0 -76
  27. package/packages/@monomind/cli/dist/src/agents/index.d.ts +0 -18
  28. package/packages/@monomind/cli/dist/src/agents/index.js +0 -13
  29. package/packages/@monomind/cli/dist/src/agents/managed-agent.d.ts +0 -41
  30. package/packages/@monomind/cli/dist/src/agents/managed-agent.js +0 -69
  31. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +0 -23
  32. package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +0 -49
  33. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +0 -22
  34. package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +0 -80
  35. package/packages/@monomind/cli/dist/src/agents/registry-query.d.ts +0 -71
  36. package/packages/@monomind/cli/dist/src/agents/registry-query.js +0 -125
  37. package/packages/@monomind/cli/dist/src/agents/score-decay.d.ts +0 -19
  38. package/packages/@monomind/cli/dist/src/agents/score-decay.js +0 -22
  39. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.d.ts +0 -13
  40. package/packages/@monomind/cli/dist/src/agents/shared-instructions-loader.js +0 -40
  41. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.d.ts +0 -54
  42. package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +0 -212
  43. package/packages/@monomind/cli/dist/src/agents/termination-watcher.d.ts +0 -30
  44. package/packages/@monomind/cli/dist/src/agents/termination-watcher.js +0 -84
  45. package/packages/@monomind/cli/dist/src/agents/trigger-index.d.ts +0 -20
  46. package/packages/@monomind/cli/dist/src/agents/trigger-index.js +0 -38
  47. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +0 -64
  48. package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +0 -308
  49. package/packages/@monomind/cli/dist/src/agents/version-diff.d.ts +0 -18
  50. package/packages/@monomind/cli/dist/src/agents/version-diff.js +0 -64
  51. package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -60
  52. package/packages/@monomind/cli/dist/src/agents/version-store.js +0 -235
  53. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.d.ts +0 -45
  54. package/packages/@monomind/cli/dist/src/benchmarks/pretrain/index.js +0 -404
  55. package/packages/@monomind/cli/dist/src/commands/agent-wasm.d.ts +0 -14
  56. package/packages/@monomind/cli/dist/src/commands/agent-wasm.js +0 -333
  57. package/packages/@monomind/cli/dist/src/commands/ui.js +0 -68
  58. package/packages/@monomind/cli/dist/src/consensus/index.d.ts +0 -7
  59. package/packages/@monomind/cli/dist/src/consensus/index.js +0 -6
  60. package/packages/@monomind/cli/dist/src/context/context-provider.d.ts +0 -44
  61. package/packages/@monomind/cli/dist/src/context/context-provider.js +0 -25
  62. package/packages/@monomind/cli/dist/src/context/git-state-provider.d.ts +0 -12
  63. package/packages/@monomind/cli/dist/src/context/git-state-provider.js +0 -34
  64. package/packages/@monomind/cli/dist/src/context/index.d.ts +0 -12
  65. package/packages/@monomind/cli/dist/src/context/index.js +0 -12
  66. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.d.ts +0 -15
  67. package/packages/@monomind/cli/dist/src/context/project-conventions-provider.js +0 -19
  68. package/packages/@monomind/cli/dist/src/context/prompt-assembler.d.ts +0 -26
  69. package/packages/@monomind/cli/dist/src/context/prompt-assembler.js +0 -93
  70. package/packages/@monomind/cli/dist/src/context/task-history-provider.d.ts +0 -24
  71. package/packages/@monomind/cli/dist/src/context/task-history-provider.js +0 -32
  72. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.d.ts +0 -14
  73. package/packages/@monomind/cli/dist/src/context/user-preferences-provider.js +0 -27
  74. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +0 -31
  75. package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +0 -81
  76. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.d.ts +0 -24
  77. package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +0 -65
  78. package/packages/@monomind/cli/dist/src/dlq/index.d.ts +0 -10
  79. package/packages/@monomind/cli/dist/src/dlq/index.js +0 -7
  80. package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +0 -33
  81. package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +0 -107
  82. package/packages/@monomind/cli/dist/src/eval/dataset-runner.d.ts +0 -23
  83. package/packages/@monomind/cli/dist/src/eval/dataset-runner.js +0 -59
  84. package/packages/@monomind/cli/dist/src/eval/index.d.ts +0 -10
  85. package/packages/@monomind/cli/dist/src/eval/index.js +0 -7
  86. package/packages/@monomind/cli/dist/src/eval/trace-collector.d.ts +0 -40
  87. package/packages/@monomind/cli/dist/src/eval/trace-collector.js +0 -102
  88. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.d.ts +0 -68
  89. package/packages/@monomind/cli/dist/src/infrastructure/in-memory-repositories.js +0 -264
  90. package/packages/@monomind/cli/dist/src/interactive/interrupt.d.ts +0 -22
  91. package/packages/@monomind/cli/dist/src/interactive/interrupt.js +0 -71
  92. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.d.ts +0 -25
  93. package/packages/@monomind/cli/dist/src/mcp/deprecation-injector.js +0 -48
  94. package/packages/@monomind/cli/dist/src/mcp/tool-registry.d.ts +0 -61
  95. package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +0 -246
  96. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.d.ts +0 -9
  97. package/packages/@monomind/cli/dist/src/mcp-tools/wasm-agent-tools.js +0 -230
  98. package/packages/@monomind/cli/dist/src/model/complexity-scorer.d.ts +0 -21
  99. package/packages/@monomind/cli/dist/src/model/complexity-scorer.js +0 -106
  100. package/packages/@monomind/cli/dist/src/model/index.d.ts +0 -4
  101. package/packages/@monomind/cli/dist/src/model/index.js +0 -4
  102. package/packages/@monomind/cli/dist/src/model/model-settings.d.ts +0 -22
  103. package/packages/@monomind/cli/dist/src/model/model-settings.js +0 -33
  104. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.d.ts +0 -24
  105. package/packages/@monomind/cli/dist/src/model/model-tier-resolver.js +0 -65
  106. package/packages/@monomind/cli/dist/src/monovector/capabilities.d.ts +0 -34
  107. package/packages/@monomind/cli/dist/src/monovector/capabilities.js +0 -37
  108. package/packages/@monomind/cli/dist/src/orchestration/index.d.ts +0 -7
  109. package/packages/@monomind/cli/dist/src/orchestration/index.js +0 -6
  110. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.d.ts +0 -11
  111. package/packages/@monomind/cli/dist/src/orchestration/mode-dispatcher.js +0 -31
  112. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.d.ts +0 -68
  113. package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +0 -180
  114. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  115. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  116. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  117. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +0 -188
  118. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  119. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +0 -206
  120. package/packages/@monomind/cli/dist/src/runtime/headless.d.ts +0 -60
  121. package/packages/@monomind/cli/dist/src/runtime/headless.js +0 -284
  122. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.d.ts +0 -50
  123. package/packages/@monomind/cli/dist/src/services/agentic-flow-bridge.js +0 -95
  124. package/packages/@monomind/cli/dist/src/services/container-worker-pool.d.ts +0 -197
  125. package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +0 -623
  126. package/packages/@monomind/cli/dist/src/services/index.d.ts +0 -13
  127. package/packages/@monomind/cli/dist/src/services/index.js +0 -11
  128. package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +0 -201
  129. package/packages/@monomind/cli/dist/src/services/worker-queue.js +0 -594
  130. package/packages/@monomind/cli/dist/src/swarm/communication-graph.d.ts +0 -25
  131. package/packages/@monomind/cli/dist/src/swarm/communication-graph.js +0 -77
  132. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +0 -31
  133. package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +0 -61
  134. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +0 -19
  135. package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +0 -68
  136. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.d.ts +0 -13
  137. package/packages/@monomind/cli/dist/src/transfer/deploy-seraphine.js +0 -205
  138. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.d.ts +0 -12
  139. package/packages/@monomind/cli/dist/src/transfer/store/tests/standalone-test.js +0 -190
  140. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.d.ts +0 -6
  141. package/packages/@monomind/cli/dist/src/transfer/test-seraphine.js +0 -105
  142. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.d.ts +0 -7
  143. package/packages/@monomind/cli/dist/src/transfer/tests/test-store.js +0 -214
  144. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.d.ts +0 -10
  145. package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +0 -82
  146. package/packages/@monomind/cli/dist/src/workflow/context-resolver.d.ts +0 -12
  147. package/packages/@monomind/cli/dist/src/workflow/context-resolver.js +0 -23
  148. package/packages/@monomind/cli/dist/src/workflow/dag-builder.d.ts +0 -17
  149. package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +0 -129
  150. package/packages/@monomind/cli/dist/src/workflow/dag-executor.d.ts +0 -9
  151. package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +0 -116
  152. package/packages/@monomind/cli/dist/src/workflow/dag-types.d.ts +0 -41
  153. package/packages/@monomind/cli/dist/src/workflow/dag-types.js +0 -8
  154. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.d.ts +0 -12
  155. package/packages/@monomind/cli/dist/src/workflow/dsl-parser.js +0 -20
  156. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +0 -165
  157. package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +0 -82
  158. package/packages/@monomind/cli/dist/src/workflow/index.d.ts +0 -13
  159. package/packages/@monomind/cli/dist/src/workflow/index.js +0 -11
  160. package/packages/@monomind/cli/dist/src/workflow/template-engine.d.ts +0 -11
  161. package/packages/@monomind/cli/dist/src/workflow/template-engine.js +0 -40
  162. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.d.ts +0 -29
  163. package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +0 -227
  164. package/packages/@monomind/guidance/dist/adversarial.d.ts +0 -284
  165. package/packages/@monomind/guidance/dist/adversarial.js +0 -572
  166. package/packages/@monomind/guidance/dist/analyzer.d.ts +0 -530
  167. package/packages/@monomind/guidance/dist/analyzer.js +0 -2518
  168. package/packages/@monomind/guidance/dist/artifacts.d.ts +0 -283
  169. package/packages/@monomind/guidance/dist/artifacts.js +0 -356
  170. package/packages/@monomind/guidance/dist/authority.d.ts +0 -290
  171. package/packages/@monomind/guidance/dist/authority.js +0 -558
  172. package/packages/@monomind/guidance/dist/capabilities.d.ts +0 -209
  173. package/packages/@monomind/guidance/dist/capabilities.js +0 -485
  174. package/packages/@monomind/guidance/dist/coherence.d.ts +0 -233
  175. package/packages/@monomind/guidance/dist/coherence.js +0 -372
  176. package/packages/@monomind/guidance/dist/compiler.d.ts +0 -87
  177. package/packages/@monomind/guidance/dist/compiler.js +0 -419
  178. package/packages/@monomind/guidance/dist/conformance-kit.d.ts +0 -225
  179. package/packages/@monomind/guidance/dist/conformance-kit.js +0 -629
  180. package/packages/@monomind/guidance/dist/continue-gate.d.ts +0 -214
  181. package/packages/@monomind/guidance/dist/continue-gate.js +0 -353
  182. package/packages/@monomind/guidance/dist/crypto-utils.d.ts +0 -17
  183. package/packages/@monomind/guidance/dist/crypto-utils.js +0 -24
  184. package/packages/@monomind/guidance/dist/evolution.d.ts +0 -282
  185. package/packages/@monomind/guidance/dist/evolution.js +0 -500
  186. package/packages/@monomind/guidance/dist/gates.d.ts +0 -79
  187. package/packages/@monomind/guidance/dist/gates.js +0 -302
  188. package/packages/@monomind/guidance/dist/gateway.d.ts +0 -206
  189. package/packages/@monomind/guidance/dist/gateway.js +0 -452
  190. package/packages/@monomind/guidance/dist/generators.d.ts +0 -153
  191. package/packages/@monomind/guidance/dist/generators.js +0 -682
  192. package/packages/@monomind/guidance/dist/headless.d.ts +0 -177
  193. package/packages/@monomind/guidance/dist/headless.js +0 -342
  194. package/packages/@monomind/guidance/dist/hooks.d.ts +0 -109
  195. package/packages/@monomind/guidance/dist/hooks.js +0 -347
  196. package/packages/@monomind/guidance/dist/index.d.ts +0 -205
  197. package/packages/@monomind/guidance/dist/index.js +0 -321
  198. package/packages/@monomind/guidance/dist/ledger.d.ts +0 -162
  199. package/packages/@monomind/guidance/dist/ledger.js +0 -375
  200. package/packages/@monomind/guidance/dist/manifest-validator.d.ts +0 -289
  201. package/packages/@monomind/guidance/dist/manifest-validator.js +0 -838
  202. package/packages/@monomind/guidance/dist/memory-gate.d.ts +0 -222
  203. package/packages/@monomind/guidance/dist/memory-gate.js +0 -382
  204. package/packages/@monomind/guidance/dist/meta-governance.d.ts +0 -265
  205. package/packages/@monomind/guidance/dist/meta-governance.js +0 -348
  206. package/packages/@monomind/guidance/dist/optimizer.d.ts +0 -104
  207. package/packages/@monomind/guidance/dist/optimizer.js +0 -329
  208. package/packages/@monomind/guidance/dist/persistence.d.ts +0 -189
  209. package/packages/@monomind/guidance/dist/persistence.js +0 -464
  210. package/packages/@monomind/guidance/dist/proof.d.ts +0 -185
  211. package/packages/@monomind/guidance/dist/proof.js +0 -238
  212. package/packages/@monomind/guidance/dist/retriever.d.ts +0 -116
  213. package/packages/@monomind/guidance/dist/retriever.js +0 -394
  214. package/packages/@monomind/guidance/dist/ruvbot-integration.d.ts +0 -370
  215. package/packages/@monomind/guidance/dist/ruvbot-integration.js +0 -738
  216. package/packages/@monomind/guidance/dist/temporal.d.ts +0 -426
  217. package/packages/@monomind/guidance/dist/temporal.js +0 -658
  218. package/packages/@monomind/guidance/dist/trust.d.ts +0 -283
  219. package/packages/@monomind/guidance/dist/trust.js +0 -473
  220. package/packages/@monomind/guidance/dist/truth-anchors.d.ts +0 -276
  221. package/packages/@monomind/guidance/dist/truth-anchors.js +0 -488
  222. package/packages/@monomind/guidance/dist/types.d.ts +0 -378
  223. package/packages/@monomind/guidance/dist/types.js +0 -10
  224. package/packages/@monomind/guidance/dist/uncertainty.d.ts +0 -372
  225. package/packages/@monomind/guidance/dist/uncertainty.js +0 -619
  226. package/packages/@monomind/guidance/dist/wasm-kernel.d.ts +0 -48
  227. package/packages/@monomind/guidance/dist/wasm-kernel.js +0 -158
@@ -1,473 +0,0 @@
1
- /**
2
- * Trust Score Accumulation System
3
- *
4
- * Builds trust gradients from gate outcomes over time. Sits alongside the
5
- * CoherenceScheduler (coherence.ts) but tracks a separate dimension:
6
- * accumulated trust from successful/failed gate evaluations.
7
- *
8
- * TrustAccumulator:
9
- * - Maintains a running trust score per agent (0.0 to 1.0)
10
- * - Accumulates trust from gate outcomes (allow, deny, warn)
11
- * - Applies exponential decay toward the initial value when idle
12
- * - Maps trust scores to privilege tiers (trusted, standard, probation, untrusted)
13
- *
14
- * TrustLedger:
15
- * - Records every trust score change with full context
16
- * - Supports export/import for persistence
17
- * - Querying by agent or threshold
18
- *
19
- * Trust-based rate limiting:
20
- * - Adjusts rate limits proportionally to accumulated trust
21
- *
22
- * @module @monomind/guidance/trust
23
- */
24
- // ============================================================================
25
- // Default Configuration
26
- // ============================================================================
27
- const DEFAULT_TRUST_CONFIG = {
28
- initialTrust: 0.5,
29
- allowDelta: 0.01,
30
- denyDelta: -0.05,
31
- warnDelta: -0.02,
32
- decayRate: 0.01,
33
- decayIntervalMs: 60_000, // 1 minute
34
- };
35
- // ============================================================================
36
- // Trust Tier Thresholds
37
- // ============================================================================
38
- const TIER_THRESHOLDS = {
39
- trusted: 0.8,
40
- standard: 0.5,
41
- probation: 0.3,
42
- };
43
- // ============================================================================
44
- // Rate Limit Multipliers
45
- // ============================================================================
46
- const RATE_LIMIT_MULTIPLIERS = {
47
- trusted: 2.0,
48
- standard: 1.0,
49
- probation: 0.5,
50
- untrusted: 0.1,
51
- };
52
- // ============================================================================
53
- // Trust Accumulator
54
- // ============================================================================
55
- /**
56
- * Maintains running trust scores per agent, accumulates trust from gate
57
- * outcomes, applies time-based exponential decay, and maps scores to
58
- * privilege tiers.
59
- */
60
- export class TrustAccumulator {
61
- config;
62
- agents = new Map();
63
- constructor(config = {}) {
64
- this.config = { ...DEFAULT_TRUST_CONFIG, ...config };
65
- }
66
- /**
67
- * Record a gate outcome for an agent, adjusting their trust score.
68
- *
69
- * - 'allow' increases trust by `allowDelta`
70
- * - 'deny' decreases trust by `denyDelta` (negative value)
71
- * - 'warn' decreases trust by `warnDelta` (negative value)
72
- *
73
- * Before applying the delta, exponential decay is applied if enough
74
- * time has elapsed since the last update.
75
- *
76
- * Returns the trust record describing the change.
77
- */
78
- recordOutcome(agentId, outcome, reason) {
79
- const state = this.getOrCreateState(agentId);
80
- const now = Date.now();
81
- // Apply decay before the outcome delta
82
- this.applyDecay(state, now);
83
- const previousScore = state.score;
84
- // Determine delta from outcome
85
- let delta;
86
- switch (outcome) {
87
- case 'allow':
88
- delta = this.config.allowDelta;
89
- break;
90
- case 'deny':
91
- delta = this.config.denyDelta;
92
- break;
93
- case 'warn':
94
- delta = this.config.warnDelta;
95
- break;
96
- }
97
- // Apply delta and clamp to [0, 1]
98
- state.score = clamp(state.score + delta, 0, 1);
99
- state.totalEvents++;
100
- state.lastUpdated = now;
101
- return {
102
- agentId,
103
- previousScore,
104
- newScore: state.score,
105
- delta,
106
- reason,
107
- timestamp: now,
108
- gateDecision: outcome,
109
- };
110
- }
111
- /**
112
- * Get the current trust score for an agent.
113
- * Returns the configured initial trust if the agent is unknown.
114
- */
115
- getScore(agentId) {
116
- const state = this.agents.get(agentId);
117
- if (!state)
118
- return this.config.initialTrust;
119
- // Apply decay before reading (non-mutating copy for read)
120
- const now = Date.now();
121
- const elapsed = now - state.lastUpdated;
122
- if (elapsed >= this.config.decayIntervalMs) {
123
- this.applyDecay(state, now);
124
- }
125
- return state.score;
126
- }
127
- /**
128
- * Determine the privilege tier for an agent based on their trust score.
129
- *
130
- * - >= 0.8: 'trusted' (expanded privileges, higher rate limits)
131
- * - >= 0.5: 'standard' (normal operation)
132
- * - >= 0.3: 'probation' (restricted tools, lower rate limits)
133
- * - < 0.3: 'untrusted' (read-only, must earn trust back)
134
- */
135
- getTier(agentId) {
136
- const score = this.getScore(agentId);
137
- return scoreToTier(score);
138
- }
139
- /**
140
- * Get a full snapshot of an agent's trust state.
141
- */
142
- getSnapshot(agentId) {
143
- const score = this.getScore(agentId);
144
- const state = this.agents.get(agentId);
145
- return {
146
- agentId,
147
- score,
148
- tier: scoreToTier(score),
149
- totalEvents: state?.totalEvents ?? 0,
150
- lastUpdated: state?.lastUpdated ?? 0,
151
- };
152
- }
153
- /**
154
- * Get snapshots for all tracked agents.
155
- */
156
- getAllSnapshots() {
157
- const snapshots = [];
158
- for (const agentId of this.agents.keys()) {
159
- snapshots.push(this.getSnapshot(agentId));
160
- }
161
- return snapshots;
162
- }
163
- /**
164
- * Get a trust-adjusted rate limit for an agent.
165
- *
166
- * Multipliers by tier:
167
- * - trusted: 2x base limit
168
- * - standard: 1x base limit
169
- * - probation: 0.5x base limit
170
- * - untrusted: 0.1x base limit
171
- */
172
- getTrustBasedRateLimit(agentId, baseLimit) {
173
- const tier = this.getTier(agentId);
174
- return Math.floor(baseLimit * RATE_LIMIT_MULTIPLIERS[tier]);
175
- }
176
- /**
177
- * Manually set an agent's trust score (e.g., from persistence restore).
178
- * Clamps to [0, 1].
179
- */
180
- setScore(agentId, score) {
181
- const state = this.getOrCreateState(agentId);
182
- state.score = clamp(score, 0, 1);
183
- state.lastUpdated = Date.now();
184
- }
185
- /**
186
- * Remove an agent from tracking entirely.
187
- */
188
- removeAgent(agentId) {
189
- return this.agents.delete(agentId);
190
- }
191
- /**
192
- * Get the number of tracked agents.
193
- */
194
- get agentCount() {
195
- return this.agents.size;
196
- }
197
- /**
198
- * Get all tracked agent IDs.
199
- */
200
- getAgentIds() {
201
- return [...this.agents.keys()];
202
- }
203
- /**
204
- * Get the current configuration.
205
- */
206
- getConfig() {
207
- return { ...this.config };
208
- }
209
- /**
210
- * Reset all tracked agents.
211
- */
212
- clear() {
213
- this.agents.clear();
214
- }
215
- // ===== Private =====
216
- getOrCreateState(agentId) {
217
- let state = this.agents.get(agentId);
218
- if (!state) {
219
- state = {
220
- score: this.config.initialTrust,
221
- totalEvents: 0,
222
- lastUpdated: Date.now(),
223
- };
224
- this.agents.set(agentId, state);
225
- }
226
- return state;
227
- }
228
- /**
229
- * Apply exponential decay toward the initial trust value.
230
- *
231
- * The decay formula moves the score toward `initialTrust` by a fraction
232
- * proportional to the number of decay intervals elapsed:
233
- *
234
- * score = score + (initialTrust - score) * (1 - (1 - decayRate)^intervals)
235
- *
236
- * This ensures idle agents gradually return to the baseline.
237
- */
238
- applyDecay(state, now) {
239
- const elapsed = now - state.lastUpdated;
240
- if (elapsed < this.config.decayIntervalMs)
241
- return;
242
- const intervals = Math.floor(elapsed / this.config.decayIntervalMs);
243
- if (intervals <= 0)
244
- return;
245
- const retainFactor = Math.pow(1 - this.config.decayRate, intervals);
246
- const target = this.config.initialTrust;
247
- // Exponential interpolation toward target
248
- state.score = target + (state.score - target) * retainFactor;
249
- state.lastUpdated = now;
250
- }
251
- }
252
- // ============================================================================
253
- // Trust Ledger
254
- // ============================================================================
255
- /**
256
- * Records all trust score changes with full context. Supports persistence
257
- * via export/import and querying by agent or threshold.
258
- */
259
- export class TrustLedger {
260
- records = [];
261
- static MAX_RECORDS = 10_000;
262
- /**
263
- * Append a trust record to the ledger.
264
- */
265
- record(entry) {
266
- this.records.push(entry);
267
- // Evict oldest records when the ledger exceeds capacity
268
- if (this.records.length > TrustLedger.MAX_RECORDS) {
269
- this.records = this.records.slice(-TrustLedger.MAX_RECORDS);
270
- }
271
- }
272
- /**
273
- * Get the full trust history for a specific agent, ordered chronologically.
274
- */
275
- getHistoryForAgent(agentId) {
276
- return this.records.filter(r => r.agentId === agentId);
277
- }
278
- /**
279
- * Get all agents whose most recent score is below the given threshold.
280
- * Returns one record per agent (the most recent).
281
- */
282
- getAgentsBelowThreshold(threshold) {
283
- const latestByAgent = new Map();
284
- for (const record of this.records) {
285
- const existing = latestByAgent.get(record.agentId);
286
- if (!existing || record.timestamp > existing.timestamp) {
287
- latestByAgent.set(record.agentId, record);
288
- }
289
- }
290
- const result = [];
291
- for (const record of latestByAgent.values()) {
292
- if (record.newScore < threshold) {
293
- result.push(record);
294
- }
295
- }
296
- return result;
297
- }
298
- /**
299
- * Get all agents whose most recent score is at or above the given threshold.
300
- * Returns one record per agent (the most recent).
301
- */
302
- getAgentsAboveThreshold(threshold) {
303
- const latestByAgent = new Map();
304
- for (const record of this.records) {
305
- const existing = latestByAgent.get(record.agentId);
306
- if (!existing || record.timestamp > existing.timestamp) {
307
- latestByAgent.set(record.agentId, record);
308
- }
309
- }
310
- const result = [];
311
- for (const record of latestByAgent.values()) {
312
- if (record.newScore >= threshold) {
313
- result.push(record);
314
- }
315
- }
316
- return result;
317
- }
318
- /**
319
- * Get records within a time range.
320
- */
321
- getRecordsInRange(startMs, endMs) {
322
- return this.records.filter(r => r.timestamp >= startMs && r.timestamp <= endMs);
323
- }
324
- /**
325
- * Get the most recent N records.
326
- */
327
- getRecentRecords(count) {
328
- return this.records.slice(-count);
329
- }
330
- /**
331
- * Get the total number of records.
332
- */
333
- get recordCount() {
334
- return this.records.length;
335
- }
336
- /**
337
- * Export all records for persistence.
338
- */
339
- exportRecords() {
340
- return [...this.records];
341
- }
342
- /**
343
- * Import records from persistence. Appends to existing records.
344
- */
345
- importRecords(records) {
346
- this.records.push(...records);
347
- // Re-enforce capacity limit after import
348
- if (this.records.length > TrustLedger.MAX_RECORDS) {
349
- this.records = this.records.slice(-TrustLedger.MAX_RECORDS);
350
- }
351
- }
352
- /**
353
- * Clear all records.
354
- */
355
- clear() {
356
- this.records = [];
357
- }
358
- }
359
- // ============================================================================
360
- // Integrated Trust System
361
- // ============================================================================
362
- /**
363
- * Combines TrustAccumulator and TrustLedger into a single coordinated
364
- * system. Gate outcomes are accumulated and automatically logged.
365
- */
366
- export class TrustSystem {
367
- accumulator;
368
- ledger;
369
- constructor(config = {}) {
370
- this.accumulator = new TrustAccumulator(config);
371
- this.ledger = new TrustLedger();
372
- }
373
- /**
374
- * Record a gate outcome, update the accumulator, and log to the ledger.
375
- */
376
- recordOutcome(agentId, outcome, reason) {
377
- const record = this.accumulator.recordOutcome(agentId, outcome, reason);
378
- this.ledger.record(record);
379
- return record;
380
- }
381
- /**
382
- * Get the current trust score for an agent.
383
- */
384
- getScore(agentId) {
385
- return this.accumulator.getScore(agentId);
386
- }
387
- /**
388
- * Get the current privilege tier for an agent.
389
- */
390
- getTier(agentId) {
391
- return this.accumulator.getTier(agentId);
392
- }
393
- /**
394
- * Get a trust-adjusted rate limit for an agent.
395
- */
396
- getTrustBasedRateLimit(agentId, baseLimit) {
397
- return this.accumulator.getTrustBasedRateLimit(agentId, baseLimit);
398
- }
399
- /**
400
- * Get a full snapshot of an agent's trust state.
401
- */
402
- getSnapshot(agentId) {
403
- return this.accumulator.getSnapshot(agentId);
404
- }
405
- /**
406
- * Get snapshots for all tracked agents.
407
- */
408
- getAllSnapshots() {
409
- return this.accumulator.getAllSnapshots();
410
- }
411
- }
412
- // ============================================================================
413
- // Standalone Rate Limit Helper
414
- // ============================================================================
415
- /**
416
- * Compute a trust-adjusted rate limit from a score and base limit.
417
- *
418
- * This is a stateless utility for cases where you have a trust score
419
- * but no TrustAccumulator instance.
420
- *
421
- * Multipliers by tier:
422
- * - trusted (>= 0.8): 2x
423
- * - standard (>= 0.5): 1x
424
- * - probation (>= 0.3): 0.5x
425
- * - untrusted (< 0.3): 0.1x
426
- */
427
- export function getTrustBasedRateLimit(score, baseLimit) {
428
- const tier = scoreToTier(score);
429
- return Math.floor(baseLimit * RATE_LIMIT_MULTIPLIERS[tier]);
430
- }
431
- // ============================================================================
432
- // Factory Functions
433
- // ============================================================================
434
- /**
435
- * Create a TrustAccumulator with optional configuration.
436
- */
437
- export function createTrustAccumulator(config) {
438
- return new TrustAccumulator(config);
439
- }
440
- /**
441
- * Create an empty TrustLedger.
442
- */
443
- export function createTrustLedger() {
444
- return new TrustLedger();
445
- }
446
- /**
447
- * Create a coordinated TrustSystem (accumulator + ledger).
448
- */
449
- export function createTrustSystem(config) {
450
- return new TrustSystem(config);
451
- }
452
- // ============================================================================
453
- // Helpers
454
- // ============================================================================
455
- /**
456
- * Map a trust score to a privilege tier.
457
- */
458
- function scoreToTier(score) {
459
- if (score >= TIER_THRESHOLDS.trusted)
460
- return 'trusted';
461
- if (score >= TIER_THRESHOLDS.standard)
462
- return 'standard';
463
- if (score >= TIER_THRESHOLDS.probation)
464
- return 'probation';
465
- return 'untrusted';
466
- }
467
- /**
468
- * Clamp a number to the range [min, max].
469
- */
470
- function clamp(value, min, max) {
471
- return Math.min(max, Math.max(min, value));
472
- }
473
- //# sourceMappingURL=trust.js.map