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,233 +0,0 @@
1
- /**
2
- * Coherence Scheduler & Economic Governor
3
- *
4
- * Detects drift in agent behavior and enforces resource budgets.
5
- *
6
- * CoherenceScheduler:
7
- * - Computes a coherence score from violation rate, rework, and intent drift
8
- * - Maps scores to privilege levels (full, restricted, read-only, suspended)
9
- * - Tracks score history and provides human-readable recommendations
10
- *
11
- * EconomicGovernor:
12
- * - Tracks token usage, tool calls, storage, and time
13
- * - Checks budgets and emits alerts when thresholds are crossed
14
- * - Estimates remaining capacity and costs
15
- *
16
- * @module @monomind/guidance/coherence
17
- */
18
- import type { RunEvent, OptimizationMetrics } from './types.js';
19
- /**
20
- * Coherence score computed from recent run metrics and events
21
- */
22
- export interface CoherenceScore {
23
- /** Overall coherence (0-1, 1 = perfectly coherent) */
24
- overall: number;
25
- /** Violation component (0-1, lower violations = higher score) */
26
- violationComponent: number;
27
- /** Rework component (0-1, lower rework = higher score) */
28
- reworkComponent: number;
29
- /** Drift component (0-1, consistent intents = higher score) */
30
- driftComponent: number;
31
- /** Timestamp when this score was computed */
32
- timestamp: number;
33
- /** Number of events evaluated in the window */
34
- windowSize: number;
35
- }
36
- /**
37
- * Thresholds for privilege level determination
38
- */
39
- export interface CoherenceThresholds {
40
- /** Below this overall score the agent is restricted to read-only */
41
- readOnlyThreshold: number;
42
- /** Below this overall score warnings are emitted */
43
- warningThreshold: number;
44
- /** Above this overall score the agent has full privileges */
45
- healthyThreshold: number;
46
- /** Above this overall score privilege escalation is allowed */
47
- privilegeEscalationThreshold: number;
48
- }
49
- /**
50
- * Privilege level derived from a coherence score
51
- */
52
- export type PrivilegeLevel = 'full' | 'restricted' | 'read-only' | 'suspended';
53
- /**
54
- * Budget usage breakdown across all tracked dimensions
55
- */
56
- export interface BudgetUsage {
57
- tokens: {
58
- used: number;
59
- limit: number;
60
- percentage: number;
61
- };
62
- toolCalls: {
63
- used: number;
64
- limit: number;
65
- percentage: number;
66
- };
67
- storage: {
68
- usedBytes: number;
69
- limitBytes: number;
70
- percentage: number;
71
- };
72
- time: {
73
- usedMs: number;
74
- limitMs: number;
75
- percentage: number;
76
- };
77
- cost: {
78
- totalUsd: number;
79
- limitUsd: number;
80
- percentage: number;
81
- };
82
- }
83
- export interface CoherenceSchedulerConfig {
84
- thresholds?: Partial<CoherenceThresholds>;
85
- windowSize?: number;
86
- checkIntervalMs?: number;
87
- }
88
- /**
89
- * Computes coherence scores from run metrics and events, determines privilege
90
- * levels, and provides recommendations when drift is detected.
91
- */
92
- export declare class CoherenceScheduler {
93
- private readonly thresholds;
94
- private readonly windowSize;
95
- private readonly checkIntervalMs;
96
- private readonly scoreHistory;
97
- private static readonly MAX_HISTORY;
98
- constructor(config?: CoherenceSchedulerConfig);
99
- /**
100
- * Compute a coherence score from optimization metrics and recent events.
101
- *
102
- * Components:
103
- * - violationComponent: 1 - (violationRate / 10) clamped to [0, 1]
104
- * - reworkComponent: 1 - (reworkLines / 100) clamped to [0, 1]
105
- * - driftComponent: intent consistency (fewer unique intents relative to window = higher)
106
- * - overall: weighted average (0.4 * violation + 0.3 * rework + 0.3 * drift)
107
- */
108
- computeCoherence(metrics: OptimizationMetrics, recentEvents: RunEvent[]): CoherenceScore;
109
- /**
110
- * Determine the privilege level from a coherence score.
111
- *
112
- * - overall >= healthyThreshold (0.7): 'full'
113
- * - overall >= warningThreshold (0.5): 'restricted'
114
- * - overall >= readOnlyThreshold (0.3): 'read-only'
115
- * - below readOnlyThreshold: 'suspended'
116
- */
117
- getPrivilegeLevel(score: CoherenceScore): PrivilegeLevel;
118
- /**
119
- * Return the last 100 coherence scores (most recent last).
120
- */
121
- getScoreHistory(): CoherenceScore[];
122
- /**
123
- * Whether the score indicates healthy coherence.
124
- */
125
- isHealthy(score: CoherenceScore): boolean;
126
- /**
127
- * Whether the score indicates drift (below warning threshold).
128
- */
129
- isDrifting(score: CoherenceScore): boolean;
130
- /**
131
- * Whether the score warrants restricting agent actions.
132
- */
133
- shouldRestrict(score: CoherenceScore): boolean;
134
- /**
135
- * Produce a human-readable recommendation based on the coherence score.
136
- */
137
- getRecommendation(score: CoherenceScore): string;
138
- /**
139
- * Get the configured check interval in milliseconds.
140
- */
141
- get interval(): number;
142
- /**
143
- * Get the configured thresholds.
144
- */
145
- getThresholds(): CoherenceThresholds;
146
- }
147
- export interface EconomicGovernorConfig {
148
- tokenLimit?: number;
149
- toolCallLimit?: number;
150
- storageLimit?: number;
151
- timeLimit?: number;
152
- costPerToken?: number;
153
- costPerToolCall?: number;
154
- costLimit?: number;
155
- }
156
- interface ToolCallRecord {
157
- toolName: string;
158
- durationMs: number;
159
- timestamp: number;
160
- }
161
- /**
162
- * Tracks resource consumption (tokens, tool calls, storage, time, cost)
163
- * and enforces budget limits with alerts.
164
- */
165
- export declare class EconomicGovernor {
166
- private readonly config;
167
- private tokensUsed;
168
- private toolCallsUsed;
169
- private storageUsed;
170
- private readonly toolCallLog;
171
- private readonly startTime;
172
- private periodStart;
173
- private static readonly ALERT_THRESHOLDS;
174
- constructor(config?: EconomicGovernorConfig);
175
- /**
176
- * Record token consumption.
177
- */
178
- recordTokenUsage(count: number): void;
179
- /**
180
- * Record a tool call with its name and duration.
181
- */
182
- recordToolCall(toolName: string, durationMs: number): void;
183
- /**
184
- * Record storage usage in bytes.
185
- */
186
- recordStorageUsage(bytes: number): void;
187
- /**
188
- * Check whether current usage is within budget limits.
189
- * Returns a summary with alerts for any limits that are near or exceeded.
190
- */
191
- checkBudget(): {
192
- withinBudget: boolean;
193
- usage: BudgetUsage;
194
- alerts: string[];
195
- };
196
- /**
197
- * Get a full usage summary across all tracked dimensions.
198
- */
199
- getUsageSummary(): BudgetUsage;
200
- /**
201
- * Reset all counters for a new billing/tracking period.
202
- */
203
- resetPeriod(): void;
204
- /**
205
- * Estimate remaining capacity before hitting limits.
206
- */
207
- estimateRemainingCapacity(): {
208
- tokensRemaining: number;
209
- callsRemaining: number;
210
- timeRemainingMs: number;
211
- };
212
- /**
213
- * Compute a cost estimate with a breakdown by category.
214
- */
215
- getCostEstimate(): {
216
- totalCost: number;
217
- breakdown: Record<string, number>;
218
- };
219
- /**
220
- * Get the raw tool call log.
221
- */
222
- getToolCallLog(): ReadonlyArray<ToolCallRecord>;
223
- }
224
- /**
225
- * Create a CoherenceScheduler with optional configuration.
226
- */
227
- export declare function createCoherenceScheduler(config?: CoherenceSchedulerConfig): CoherenceScheduler;
228
- /**
229
- * Create an EconomicGovernor with optional configuration.
230
- */
231
- export declare function createEconomicGovernor(config?: EconomicGovernorConfig): EconomicGovernor;
232
- export {};
233
- //# sourceMappingURL=coherence.d.ts.map
@@ -1,372 +0,0 @@
1
- /**
2
- * Coherence Scheduler & Economic Governor
3
- *
4
- * Detects drift in agent behavior and enforces resource budgets.
5
- *
6
- * CoherenceScheduler:
7
- * - Computes a coherence score from violation rate, rework, and intent drift
8
- * - Maps scores to privilege levels (full, restricted, read-only, suspended)
9
- * - Tracks score history and provides human-readable recommendations
10
- *
11
- * EconomicGovernor:
12
- * - Tracks token usage, tool calls, storage, and time
13
- * - Checks budgets and emits alerts when thresholds are crossed
14
- * - Estimates remaining capacity and costs
15
- *
16
- * @module @monomind/guidance/coherence
17
- */
18
- // ============================================================================
19
- // Default Configurations
20
- // ============================================================================
21
- const DEFAULT_THRESHOLDS = {
22
- readOnlyThreshold: 0.3,
23
- warningThreshold: 0.5,
24
- healthyThreshold: 0.7,
25
- privilegeEscalationThreshold: 0.9,
26
- };
27
- const DEFAULT_ECONOMIC_CONFIG = {
28
- tokenLimit: 1_000_000,
29
- toolCallLimit: 10_000,
30
- storageLimit: 1_073_741_824, // 1 GiB
31
- timeLimit: 3_600_000, // 1 hour
32
- costPerToken: 0.000003, // $3 per million tokens
33
- costPerToolCall: 0.0001,
34
- costLimit: 10, // $10 USD
35
- };
36
- /**
37
- * Computes coherence scores from run metrics and events, determines privilege
38
- * levels, and provides recommendations when drift is detected.
39
- */
40
- export class CoherenceScheduler {
41
- thresholds;
42
- windowSize;
43
- checkIntervalMs;
44
- scoreHistory = [];
45
- static MAX_HISTORY = 100;
46
- constructor(config = {}) {
47
- this.thresholds = { ...DEFAULT_THRESHOLDS, ...config.thresholds };
48
- this.windowSize = config.windowSize ?? 20;
49
- this.checkIntervalMs = config.checkIntervalMs ?? 30_000;
50
- }
51
- /**
52
- * Compute a coherence score from optimization metrics and recent events.
53
- *
54
- * Components:
55
- * - violationComponent: 1 - (violationRate / 10) clamped to [0, 1]
56
- * - reworkComponent: 1 - (reworkLines / 100) clamped to [0, 1]
57
- * - driftComponent: intent consistency (fewer unique intents relative to window = higher)
58
- * - overall: weighted average (0.4 * violation + 0.3 * rework + 0.3 * drift)
59
- */
60
- computeCoherence(metrics, recentEvents) {
61
- const window = recentEvents.slice(-this.windowSize);
62
- const windowLen = window.length;
63
- // Violation component: fewer violations per 10 tasks = better
64
- const violationComponent = clamp(1 - metrics.violationRate / 10, 0, 1);
65
- // Rework component: fewer rework lines on average = better
66
- const reworkComponent = clamp(1 - metrics.reworkLines / 100, 0, 1);
67
- // Drift component: consistent intents = better
68
- // A single unique intent across N events means perfect consistency
69
- let driftComponent;
70
- if (windowLen === 0) {
71
- driftComponent = 1; // No events, assume no drift
72
- }
73
- else {
74
- const uniqueIntents = new Set(window.map(e => e.intent)).size;
75
- // 1 unique intent / N events = score 1; N unique / N events = score approaches 0
76
- driftComponent = clamp(1 - (uniqueIntents - 1) / Math.max(windowLen - 1, 1), 0, 1);
77
- }
78
- const overall = 0.4 * violationComponent +
79
- 0.3 * reworkComponent +
80
- 0.3 * driftComponent;
81
- const score = {
82
- overall,
83
- violationComponent,
84
- reworkComponent,
85
- driftComponent,
86
- timestamp: Date.now(),
87
- windowSize: windowLen,
88
- };
89
- this.scoreHistory.push(score);
90
- if (this.scoreHistory.length > CoherenceScheduler.MAX_HISTORY) {
91
- this.scoreHistory.shift();
92
- }
93
- return score;
94
- }
95
- /**
96
- * Determine the privilege level from a coherence score.
97
- *
98
- * - overall >= healthyThreshold (0.7): 'full'
99
- * - overall >= warningThreshold (0.5): 'restricted'
100
- * - overall >= readOnlyThreshold (0.3): 'read-only'
101
- * - below readOnlyThreshold: 'suspended'
102
- */
103
- getPrivilegeLevel(score) {
104
- if (score.overall >= this.thresholds.healthyThreshold) {
105
- return 'full';
106
- }
107
- if (score.overall >= this.thresholds.warningThreshold) {
108
- return 'restricted';
109
- }
110
- if (score.overall >= this.thresholds.readOnlyThreshold) {
111
- return 'read-only';
112
- }
113
- return 'suspended';
114
- }
115
- /**
116
- * Return the last 100 coherence scores (most recent last).
117
- */
118
- getScoreHistory() {
119
- return [...this.scoreHistory];
120
- }
121
- /**
122
- * Whether the score indicates healthy coherence.
123
- */
124
- isHealthy(score) {
125
- return score.overall >= this.thresholds.healthyThreshold;
126
- }
127
- /**
128
- * Whether the score indicates drift (below warning threshold).
129
- */
130
- isDrifting(score) {
131
- return score.overall < this.thresholds.warningThreshold;
132
- }
133
- /**
134
- * Whether the score warrants restricting agent actions.
135
- */
136
- shouldRestrict(score) {
137
- return score.overall < this.thresholds.warningThreshold;
138
- }
139
- /**
140
- * Produce a human-readable recommendation based on the coherence score.
141
- */
142
- getRecommendation(score) {
143
- const level = this.getPrivilegeLevel(score);
144
- const parts = [];
145
- switch (level) {
146
- case 'full':
147
- parts.push(`Coherence is healthy at ${(score.overall * 100).toFixed(1)}%.`);
148
- if (score.overall >= this.thresholds.privilegeEscalationThreshold) {
149
- parts.push('Privilege escalation is permitted.');
150
- }
151
- break;
152
- case 'restricted':
153
- parts.push(`Coherence is degraded at ${(score.overall * 100).toFixed(1)}%. Agent privileges are restricted.`);
154
- break;
155
- case 'read-only':
156
- parts.push(`Coherence is critically low at ${(score.overall * 100).toFixed(1)}%. Agent is limited to read-only operations.`);
157
- break;
158
- case 'suspended':
159
- parts.push(`Coherence has collapsed to ${(score.overall * 100).toFixed(1)}%. Agent operations are suspended.`);
160
- break;
161
- }
162
- // Add component-specific advice
163
- if (score.violationComponent < 0.5) {
164
- parts.push(`High violation rate detected (component: ${(score.violationComponent * 100).toFixed(0)}%). Review and strengthen enforcement gates.`);
165
- }
166
- if (score.reworkComponent < 0.5) {
167
- parts.push(`Excessive rework detected (component: ${(score.reworkComponent * 100).toFixed(0)}%). Consider more prescriptive guidance or smaller task scopes.`);
168
- }
169
- if (score.driftComponent < 0.5) {
170
- parts.push(`Intent drift detected (component: ${(score.driftComponent * 100).toFixed(0)}%). Agent is switching between too many task types. Focus on a single objective.`);
171
- }
172
- return parts.join(' ');
173
- }
174
- /**
175
- * Get the configured check interval in milliseconds.
176
- */
177
- get interval() {
178
- return this.checkIntervalMs;
179
- }
180
- /**
181
- * Get the configured thresholds.
182
- */
183
- getThresholds() {
184
- return { ...this.thresholds };
185
- }
186
- }
187
- /**
188
- * Tracks resource consumption (tokens, tool calls, storage, time, cost)
189
- * and enforces budget limits with alerts.
190
- */
191
- export class EconomicGovernor {
192
- config;
193
- tokensUsed = 0;
194
- toolCallsUsed = 0;
195
- storageUsed = 0;
196
- toolCallLog = [];
197
- startTime;
198
- periodStart;
199
- static ALERT_THRESHOLDS = [0.75, 0.9, 0.95, 1.0];
200
- constructor(config = {}) {
201
- this.config = {
202
- tokenLimit: config.tokenLimit ?? DEFAULT_ECONOMIC_CONFIG.tokenLimit,
203
- toolCallLimit: config.toolCallLimit ?? DEFAULT_ECONOMIC_CONFIG.toolCallLimit,
204
- storageLimit: config.storageLimit ?? DEFAULT_ECONOMIC_CONFIG.storageLimit,
205
- timeLimit: config.timeLimit ?? DEFAULT_ECONOMIC_CONFIG.timeLimit,
206
- costPerToken: config.costPerToken ?? DEFAULT_ECONOMIC_CONFIG.costPerToken,
207
- costPerToolCall: config.costPerToolCall ?? DEFAULT_ECONOMIC_CONFIG.costPerToolCall,
208
- costLimit: config.costLimit ?? DEFAULT_ECONOMIC_CONFIG.costLimit,
209
- };
210
- this.startTime = Date.now();
211
- this.periodStart = Date.now();
212
- }
213
- /**
214
- * Record token consumption.
215
- */
216
- recordTokenUsage(count) {
217
- this.tokensUsed += count;
218
- }
219
- /**
220
- * Record a tool call with its name and duration.
221
- */
222
- recordToolCall(toolName, durationMs) {
223
- this.toolCallsUsed++;
224
- this.toolCallLog.push({
225
- toolName,
226
- durationMs,
227
- timestamp: Date.now(),
228
- });
229
- }
230
- /**
231
- * Record storage usage in bytes.
232
- */
233
- recordStorageUsage(bytes) {
234
- this.storageUsed += bytes;
235
- }
236
- /**
237
- * Check whether current usage is within budget limits.
238
- * Returns a summary with alerts for any limits that are near or exceeded.
239
- */
240
- checkBudget() {
241
- const usage = this.getUsageSummary();
242
- const alerts = [];
243
- // Check each dimension against alert thresholds
244
- const dimensions = [
245
- { name: 'tokens', percentage: usage.tokens.percentage },
246
- { name: 'tool calls', percentage: usage.toolCalls.percentage },
247
- { name: 'storage', percentage: usage.storage.percentage },
248
- { name: 'time', percentage: usage.time.percentage },
249
- { name: 'cost', percentage: usage.cost.percentage },
250
- ];
251
- let withinBudget = true;
252
- for (const dim of dimensions) {
253
- if (dim.percentage >= 100) {
254
- alerts.push(`BUDGET EXCEEDED: ${dim.name} at ${dim.percentage.toFixed(1)}% of limit`);
255
- withinBudget = false;
256
- }
257
- else if (dim.percentage >= 95) {
258
- alerts.push(`CRITICAL: ${dim.name} at ${dim.percentage.toFixed(1)}% of limit`);
259
- }
260
- else if (dim.percentage >= 90) {
261
- alerts.push(`WARNING: ${dim.name} at ${dim.percentage.toFixed(1)}% of limit`);
262
- }
263
- else if (dim.percentage >= 75) {
264
- alerts.push(`NOTICE: ${dim.name} at ${dim.percentage.toFixed(1)}% of limit`);
265
- }
266
- }
267
- return { withinBudget, usage, alerts };
268
- }
269
- /**
270
- * Get a full usage summary across all tracked dimensions.
271
- */
272
- getUsageSummary() {
273
- const elapsedMs = Date.now() - this.periodStart;
274
- const costEstimate = this.getCostEstimate();
275
- return {
276
- tokens: {
277
- used: this.tokensUsed,
278
- limit: this.config.tokenLimit,
279
- percentage: safePercentage(this.tokensUsed, this.config.tokenLimit),
280
- },
281
- toolCalls: {
282
- used: this.toolCallsUsed,
283
- limit: this.config.toolCallLimit,
284
- percentage: safePercentage(this.toolCallsUsed, this.config.toolCallLimit),
285
- },
286
- storage: {
287
- usedBytes: this.storageUsed,
288
- limitBytes: this.config.storageLimit,
289
- percentage: safePercentage(this.storageUsed, this.config.storageLimit),
290
- },
291
- time: {
292
- usedMs: elapsedMs,
293
- limitMs: this.config.timeLimit,
294
- percentage: safePercentage(elapsedMs, this.config.timeLimit),
295
- },
296
- cost: {
297
- totalUsd: costEstimate.totalCost,
298
- limitUsd: this.config.costLimit,
299
- percentage: safePercentage(costEstimate.totalCost, this.config.costLimit),
300
- },
301
- };
302
- }
303
- /**
304
- * Reset all counters for a new billing/tracking period.
305
- */
306
- resetPeriod() {
307
- this.tokensUsed = 0;
308
- this.toolCallsUsed = 0;
309
- this.storageUsed = 0;
310
- this.toolCallLog.length = 0;
311
- this.periodStart = Date.now();
312
- }
313
- /**
314
- * Estimate remaining capacity before hitting limits.
315
- */
316
- estimateRemainingCapacity() {
317
- const elapsedMs = Date.now() - this.periodStart;
318
- return {
319
- tokensRemaining: Math.max(0, this.config.tokenLimit - this.tokensUsed),
320
- callsRemaining: Math.max(0, this.config.toolCallLimit - this.toolCallsUsed),
321
- timeRemainingMs: Math.max(0, this.config.timeLimit - elapsedMs),
322
- };
323
- }
324
- /**
325
- * Compute a cost estimate with a breakdown by category.
326
- */
327
- getCostEstimate() {
328
- const tokenCost = this.tokensUsed * this.config.costPerToken;
329
- const toolCallCost = this.toolCallsUsed * this.config.costPerToolCall;
330
- const breakdown = {
331
- tokens: tokenCost,
332
- toolCalls: toolCallCost,
333
- };
334
- return {
335
- totalCost: tokenCost + toolCallCost,
336
- breakdown,
337
- };
338
- }
339
- /**
340
- * Get the raw tool call log.
341
- */
342
- getToolCallLog() {
343
- return this.toolCallLog;
344
- }
345
- }
346
- // ============================================================================
347
- // Factory Functions
348
- // ============================================================================
349
- /**
350
- * Create a CoherenceScheduler with optional configuration.
351
- */
352
- export function createCoherenceScheduler(config) {
353
- return new CoherenceScheduler(config);
354
- }
355
- /**
356
- * Create an EconomicGovernor with optional configuration.
357
- */
358
- export function createEconomicGovernor(config) {
359
- return new EconomicGovernor(config);
360
- }
361
- // ============================================================================
362
- // Helpers
363
- // ============================================================================
364
- function clamp(value, min, max) {
365
- return Math.min(max, Math.max(min, value));
366
- }
367
- function safePercentage(used, limit) {
368
- if (limit <= 0)
369
- return 0;
370
- return (used / limit) * 100;
371
- }
372
- //# sourceMappingURL=coherence.js.map
@@ -1,87 +0,0 @@
1
- /**
2
- * Guidance Compiler
3
- *
4
- * Parses root CLAUDE.md and optional CLAUDE.local.md into a compiled policy bundle:
5
- * 1. A small always-loaded constitution (first 30-60 lines of invariants)
6
- * 2. A set of task-scoped rule shards tagged by intent, risk, domain, repo path, tool class
7
- * 3. A machine-readable manifest with rule IDs, triggers, and verifiers
8
- *
9
- * @module @monomind/guidance/compiler
10
- */
11
- import type { GuidanceRule, PolicyBundle, RiskClass } from './types.js';
12
- export interface CompilerConfig {
13
- /** Maximum lines for constitution */
14
- maxConstitutionLines: number;
15
- /** Default risk class */
16
- defaultRiskClass: RiskClass;
17
- /** Default priority */
18
- defaultPriority: number;
19
- /** Auto-generate rule IDs for untagged rules */
20
- autoGenerateIds: boolean;
21
- }
22
- export declare class GuidanceCompiler {
23
- private config;
24
- private nextAutoId;
25
- constructor(config?: Partial<CompilerConfig>);
26
- /**
27
- * Compile guidance files into a policy bundle
28
- */
29
- compile(rootContent: string, localContent?: string): PolicyBundle;
30
- /**
31
- * Parse a guidance markdown file into rules
32
- */
33
- parseGuidanceFile(content: string, source: 'root' | 'local'): GuidanceRule[];
34
- /**
35
- * Extract rules from a content block
36
- */
37
- private extractRulesFromBlock;
38
- /**
39
- * Extract implicit rules from bullet points and paragraphs
40
- */
41
- private extractImplicitRules;
42
- /**
43
- * Check if text represents an actionable rule
44
- */
45
- private isActionableRule;
46
- /**
47
- * Parse a single rule from its text content
48
- */
49
- private parseRule;
50
- /**
51
- * Infer intents from rule text
52
- */
53
- private inferIntents;
54
- /**
55
- * Infer domains from rule text
56
- */
57
- private inferDomains;
58
- /**
59
- * Merge root and local rules, local overrides root for same ID
60
- */
61
- private mergeRules;
62
- /**
63
- * Build the constitution from constitution-class rules
64
- */
65
- private buildConstitution;
66
- /**
67
- * Build shards from non-constitution rules
68
- */
69
- private buildShards;
70
- /**
71
- * Build compact text for a shard
72
- */
73
- private buildCompactShardText;
74
- /**
75
- * Build the manifest
76
- */
77
- private buildManifest;
78
- /**
79
- * Hash content for change detection
80
- */
81
- private hashContent;
82
- }
83
- /**
84
- * Create a compiler instance
85
- */
86
- export declare function createCompiler(config?: Partial<CompilerConfig>): GuidanceCompiler;
87
- //# sourceMappingURL=compiler.d.ts.map