@monoes/monomindcli 1.11.12 → 1.11.14
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.
- package/.claude/commands/mastermind/idea.md +1 -1
- package/.claude/commands/mastermind/master.md +1 -1
- package/.claude/skills/mastermind/_protocol.md +4 -4
- package/.claude/skills/mastermind/architect.md +4 -7
- package/.claude/skills/mastermind/autodev.md +2 -4
- package/.claude/skills/mastermind/build.md +3 -3
- package/.claude/skills/mastermind/content.md +3 -3
- package/.claude/skills/mastermind/createorg.md +2 -2
- package/.claude/skills/mastermind/finance.md +3 -3
- package/.claude/skills/mastermind/idea.md +0 -8
- package/.claude/skills/mastermind/marketing.md +3 -3
- package/.claude/skills/mastermind/monitor.md +2 -2
- package/.claude/skills/mastermind/ops.md +3 -3
- package/.claude/skills/mastermind/release.md +3 -3
- package/.claude/skills/mastermind/research.md +3 -3
- package/.claude/skills/mastermind/review.md +3 -3
- package/.claude/skills/mastermind/sales.md +3 -3
- package/README.md +286 -129
- package/dist/src/agents/halt-signal.d.ts +25 -0
- package/dist/src/agents/halt-signal.d.ts.map +1 -0
- package/dist/src/agents/halt-signal.js +76 -0
- package/dist/src/agents/halt-signal.js.map +1 -0
- package/dist/src/agents/index.d.ts +18 -0
- package/dist/src/agents/index.d.ts.map +1 -0
- package/dist/src/agents/index.js +13 -0
- package/dist/src/agents/index.js.map +1 -0
- package/dist/src/agents/managed-agent.d.ts +41 -0
- package/dist/src/agents/managed-agent.d.ts.map +1 -0
- package/dist/src/agents/managed-agent.js +69 -0
- package/dist/src/agents/managed-agent.js.map +1 -0
- package/dist/src/agents/prompt-experiment.d.ts +23 -0
- package/dist/src/agents/prompt-experiment.d.ts.map +1 -0
- package/dist/src/agents/prompt-experiment.js +49 -0
- package/dist/src/agents/prompt-experiment.js.map +1 -0
- package/dist/src/agents/prompt-version-manager.d.ts +22 -0
- package/dist/src/agents/prompt-version-manager.d.ts.map +1 -0
- package/dist/src/agents/prompt-version-manager.js +80 -0
- package/dist/src/agents/prompt-version-manager.js.map +1 -0
- package/dist/src/agents/registry-query.d.ts +71 -0
- package/dist/src/agents/registry-query.d.ts.map +1 -0
- package/dist/src/agents/registry-query.js +125 -0
- package/dist/src/agents/registry-query.js.map +1 -0
- package/dist/src/agents/score-decay.d.ts +19 -0
- package/dist/src/agents/score-decay.d.ts.map +1 -0
- package/dist/src/agents/score-decay.js +22 -0
- package/dist/src/agents/score-decay.js.map +1 -0
- package/dist/src/agents/shared-instructions-loader.d.ts +13 -0
- package/dist/src/agents/shared-instructions-loader.d.ts.map +1 -0
- package/dist/src/agents/shared-instructions-loader.js +40 -0
- package/dist/src/agents/shared-instructions-loader.js.map +1 -0
- package/dist/src/agents/specialization-scorer.d.ts +54 -0
- package/dist/src/agents/specialization-scorer.d.ts.map +1 -0
- package/dist/src/agents/specialization-scorer.js +212 -0
- package/dist/src/agents/specialization-scorer.js.map +1 -0
- package/dist/src/agents/termination-watcher.d.ts +30 -0
- package/dist/src/agents/termination-watcher.d.ts.map +1 -0
- package/dist/src/agents/termination-watcher.js +84 -0
- package/dist/src/agents/termination-watcher.js.map +1 -0
- package/dist/src/agents/trigger-index.d.ts +20 -0
- package/dist/src/agents/trigger-index.d.ts.map +1 -0
- package/dist/src/agents/trigger-index.js +38 -0
- package/dist/src/agents/trigger-index.js.map +1 -0
- package/dist/src/agents/trigger-scanner.d.ts +64 -0
- package/dist/src/agents/trigger-scanner.d.ts.map +1 -0
- package/dist/src/agents/trigger-scanner.js +308 -0
- package/dist/src/agents/trigger-scanner.js.map +1 -0
- package/dist/src/agents/version-diff.d.ts +18 -0
- package/dist/src/agents/version-diff.d.ts.map +1 -0
- package/dist/src/agents/version-diff.js +64 -0
- package/dist/src/agents/version-diff.js.map +1 -0
- package/dist/src/agents/version-store.d.ts +60 -0
- package/dist/src/agents/version-store.d.ts.map +1 -0
- package/dist/src/agents/version-store.js +235 -0
- package/dist/src/agents/version-store.js.map +1 -0
- package/dist/src/benchmarks/pretrain/index.d.ts +45 -0
- package/dist/src/benchmarks/pretrain/index.d.ts.map +1 -0
- package/dist/src/benchmarks/pretrain/index.js +404 -0
- package/dist/src/benchmarks/pretrain/index.js.map +1 -0
- package/dist/src/commands/agent-wasm.d.ts +14 -0
- package/dist/src/commands/agent-wasm.d.ts.map +1 -0
- package/dist/src/commands/agent-wasm.js +333 -0
- package/dist/src/commands/agent-wasm.js.map +1 -0
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +118 -13
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/embeddings.d.ts.map +1 -0
- package/dist/src/commands/embeddings.js.map +1 -0
- package/dist/src/commands/ui.js +68 -0
- package/dist/src/consensus/index.d.ts +7 -0
- package/dist/src/consensus/index.d.ts.map +1 -0
- package/dist/src/consensus/index.js +6 -0
- package/dist/src/consensus/index.js.map +1 -0
- package/dist/src/context/context-provider.d.ts +44 -0
- package/dist/src/context/context-provider.d.ts.map +1 -0
- package/dist/src/context/context-provider.js +25 -0
- package/dist/src/context/context-provider.js.map +1 -0
- package/dist/src/context/git-state-provider.d.ts +12 -0
- package/dist/src/context/git-state-provider.d.ts.map +1 -0
- package/dist/src/context/git-state-provider.js +34 -0
- package/dist/src/context/git-state-provider.js.map +1 -0
- package/dist/src/context/index.d.ts +12 -0
- package/dist/src/context/index.d.ts.map +1 -0
- package/dist/src/context/index.js +12 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/context/project-conventions-provider.d.ts +15 -0
- package/dist/src/context/project-conventions-provider.d.ts.map +1 -0
- package/dist/src/context/project-conventions-provider.js +19 -0
- package/dist/src/context/project-conventions-provider.js.map +1 -0
- package/dist/src/context/prompt-assembler.d.ts +26 -0
- package/dist/src/context/prompt-assembler.d.ts.map +1 -0
- package/dist/src/context/prompt-assembler.js +93 -0
- package/dist/src/context/prompt-assembler.js.map +1 -0
- package/dist/src/context/task-history-provider.d.ts +24 -0
- package/dist/src/context/task-history-provider.d.ts.map +1 -0
- package/dist/src/context/task-history-provider.js +32 -0
- package/dist/src/context/task-history-provider.js.map +1 -0
- package/dist/src/context/user-preferences-provider.d.ts +14 -0
- package/dist/src/context/user-preferences-provider.d.ts.map +1 -0
- package/dist/src/context/user-preferences-provider.js +27 -0
- package/dist/src/context/user-preferences-provider.js.map +1 -0
- package/dist/src/dlq/dlq-reader.d.ts +31 -0
- package/dist/src/dlq/dlq-reader.d.ts.map +1 -0
- package/dist/src/dlq/dlq-reader.js +81 -0
- package/dist/src/dlq/dlq-reader.js.map +1 -0
- package/dist/src/dlq/dlq-writer.d.ts +24 -0
- package/dist/src/dlq/dlq-writer.d.ts.map +1 -0
- package/dist/src/dlq/dlq-writer.js +65 -0
- package/dist/src/dlq/dlq-writer.js.map +1 -0
- package/dist/src/dlq/index.d.ts +10 -0
- package/dist/src/dlq/index.d.ts.map +1 -0
- package/dist/src/dlq/index.js +7 -0
- package/dist/src/dlq/index.js.map +1 -0
- package/dist/src/eval/dataset-manager.d.ts +33 -0
- package/dist/src/eval/dataset-manager.d.ts.map +1 -0
- package/dist/src/eval/dataset-manager.js +107 -0
- package/dist/src/eval/dataset-manager.js.map +1 -0
- package/dist/src/eval/dataset-runner.d.ts +23 -0
- package/dist/src/eval/dataset-runner.d.ts.map +1 -0
- package/dist/src/eval/dataset-runner.js +59 -0
- package/dist/src/eval/dataset-runner.js.map +1 -0
- package/dist/src/eval/index.d.ts +10 -0
- package/dist/src/eval/index.d.ts.map +1 -0
- package/dist/src/eval/index.js +7 -0
- package/dist/src/eval/index.js.map +1 -0
- package/dist/src/eval/trace-collector.d.ts +40 -0
- package/dist/src/eval/trace-collector.d.ts.map +1 -0
- package/dist/src/eval/trace-collector.js +102 -0
- package/dist/src/eval/trace-collector.js.map +1 -0
- package/dist/src/graph/enrich.mjs +362 -0
- package/dist/src/infrastructure/in-memory-repositories.d.ts +68 -0
- package/dist/src/infrastructure/in-memory-repositories.d.ts.map +1 -0
- package/dist/src/infrastructure/in-memory-repositories.js +264 -0
- package/dist/src/infrastructure/in-memory-repositories.js.map +1 -0
- package/dist/src/init/statusline-generator.js +3 -3
- package/dist/src/interactive/interrupt.d.ts +22 -0
- package/dist/src/interactive/interrupt.d.ts.map +1 -0
- package/dist/src/interactive/interrupt.js +71 -0
- package/dist/src/interactive/interrupt.js.map +1 -0
- package/dist/src/mcp/deprecation-injector.d.ts +25 -0
- package/dist/src/mcp/deprecation-injector.d.ts.map +1 -0
- package/dist/src/mcp/deprecation-injector.js +48 -0
- package/dist/src/mcp/deprecation-injector.js.map +1 -0
- package/dist/src/mcp/tool-registry.d.ts +61 -0
- package/dist/src/mcp/tool-registry.d.ts.map +1 -0
- package/dist/src/mcp/tool-registry.js +246 -0
- package/dist/src/mcp/tool-registry.js.map +1 -0
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts +9 -0
- package/dist/src/mcp-tools/wasm-agent-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js +230 -0
- package/dist/src/mcp-tools/wasm-agent-tools.js.map +1 -0
- package/dist/src/model/complexity-scorer.d.ts +21 -0
- package/dist/src/model/complexity-scorer.d.ts.map +1 -0
- package/dist/src/model/complexity-scorer.js +106 -0
- package/dist/src/model/complexity-scorer.js.map +1 -0
- package/dist/src/model/index.d.ts +4 -0
- package/dist/src/model/index.d.ts.map +1 -0
- package/dist/src/model/index.js +4 -0
- package/dist/src/model/index.js.map +1 -0
- package/dist/src/model/model-settings.d.ts +22 -0
- package/dist/src/model/model-settings.d.ts.map +1 -0
- package/dist/src/model/model-settings.js +33 -0
- package/dist/src/model/model-settings.js.map +1 -0
- package/dist/src/model/model-tier-resolver.d.ts +24 -0
- package/dist/src/model/model-tier-resolver.d.ts.map +1 -0
- package/dist/src/model/model-tier-resolver.js +65 -0
- package/dist/src/model/model-tier-resolver.js.map +1 -0
- package/dist/src/monovector/capabilities.d.ts +34 -0
- package/dist/src/monovector/capabilities.d.ts.map +1 -0
- package/dist/src/monovector/capabilities.js +37 -0
- package/dist/src/monovector/capabilities.js.map +1 -0
- package/dist/src/observability/replay-reader.d.ts +1 -1
- package/dist/src/observability/replay-reader.d.ts.map +1 -1
- package/dist/src/orchestration/index.d.ts +7 -0
- package/dist/src/orchestration/index.d.ts.map +1 -0
- package/dist/src/orchestration/index.js +6 -0
- package/dist/src/orchestration/index.js.map +1 -0
- package/dist/src/orchestration/mode-dispatcher.d.ts +11 -0
- package/dist/src/orchestration/mode-dispatcher.d.ts.map +1 -0
- package/dist/src/orchestration/mode-dispatcher.js +31 -0
- package/dist/src/orchestration/mode-dispatcher.js.map +1 -0
- package/dist/src/orchestration/routing-modes.d.ts +68 -0
- package/dist/src/orchestration/routing-modes.d.ts.map +1 -0
- package/dist/src/orchestration/routing-modes.js +180 -0
- package/dist/src/orchestration/routing-modes.js.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/demo-plugin-store.d.ts.map +1 -0
- package/dist/src/plugins/tests/demo-plugin-store.js +126 -0
- package/dist/src/plugins/tests/demo-plugin-store.js.map +1 -0
- package/dist/src/plugins/tests/standalone-test.d.ts +12 -0
- package/dist/src/plugins/tests/standalone-test.d.ts.map +1 -0
- package/dist/src/plugins/tests/standalone-test.js +188 -0
- package/dist/src/plugins/tests/standalone-test.js.map +1 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts +7 -0
- package/dist/src/plugins/tests/test-plugin-store.d.ts.map +1 -0
- package/dist/src/plugins/tests/test-plugin-store.js +206 -0
- package/dist/src/plugins/tests/test-plugin-store.js.map +1 -0
- package/dist/src/runtime/headless.d.ts +60 -0
- package/dist/src/runtime/headless.d.ts.map +1 -0
- package/dist/src/runtime/headless.js +284 -0
- package/dist/src/runtime/headless.js.map +1 -0
- package/dist/src/services/agentic-flow-bridge.d.ts +50 -0
- package/dist/src/services/agentic-flow-bridge.d.ts.map +1 -0
- package/dist/src/services/agentic-flow-bridge.js +95 -0
- package/dist/src/services/agentic-flow-bridge.js.map +1 -0
- package/dist/src/services/container-worker-pool.d.ts +197 -0
- package/dist/src/services/container-worker-pool.d.ts.map +1 -0
- package/dist/src/services/container-worker-pool.js +623 -0
- package/dist/src/services/container-worker-pool.js.map +1 -0
- package/dist/src/services/index.d.ts +13 -0
- package/dist/src/services/index.d.ts.map +1 -0
- package/dist/src/services/index.js +11 -0
- package/dist/src/services/index.js.map +1 -0
- package/dist/src/services/worker-queue.d.ts +201 -0
- package/dist/src/services/worker-queue.d.ts.map +1 -0
- package/dist/src/services/worker-queue.js +594 -0
- package/dist/src/services/worker-queue.js.map +1 -0
- package/dist/src/swarm/communication-graph.d.ts +25 -0
- package/dist/src/swarm/communication-graph.d.ts.map +1 -0
- package/dist/src/swarm/communication-graph.js +77 -0
- package/dist/src/swarm/communication-graph.js.map +1 -0
- package/dist/src/swarm/flow-enforcer.d.ts +31 -0
- package/dist/src/swarm/flow-enforcer.d.ts.map +1 -0
- package/dist/src/swarm/flow-enforcer.js +61 -0
- package/dist/src/swarm/flow-enforcer.js.map +1 -0
- package/dist/src/swarm/flow-visualizer.d.ts +19 -0
- package/dist/src/swarm/flow-visualizer.d.ts.map +1 -0
- package/dist/src/swarm/flow-visualizer.js +68 -0
- package/dist/src/swarm/flow-visualizer.js.map +1 -0
- package/dist/src/transfer/deploy-seraphine.d.ts +13 -0
- package/dist/src/transfer/deploy-seraphine.d.ts.map +1 -0
- package/dist/src/transfer/deploy-seraphine.js +205 -0
- package/dist/src/transfer/deploy-seraphine.js.map +1 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts +12 -0
- package/dist/src/transfer/store/tests/standalone-test.d.ts.map +1 -0
- package/dist/src/transfer/store/tests/standalone-test.js +190 -0
- package/dist/src/transfer/store/tests/standalone-test.js.map +1 -0
- package/dist/src/transfer/test-seraphine.d.ts +6 -0
- package/dist/src/transfer/test-seraphine.d.ts.map +1 -0
- package/dist/src/transfer/test-seraphine.js +105 -0
- package/dist/src/transfer/test-seraphine.js.map +1 -0
- package/dist/src/transfer/tests/test-store.d.ts +7 -0
- package/dist/src/transfer/tests/test-store.d.ts.map +1 -0
- package/dist/src/transfer/tests/test-store.js +214 -0
- package/dist/src/transfer/tests/test-store.js.map +1 -0
- package/dist/src/ui/collector.mjs +755 -0
- package/dist/src/ui/dashboard.html +10639 -0
- package/dist/src/ui/data/agent-avatars.html +763 -0
- package/dist/src/ui/data/agent-avatars.json +966 -0
- package/dist/src/ui/data/avatars/account-strategist.svg +58 -0
- package/dist/src/ui/data/avatars/accounts-payable.svg +54 -0
- package/dist/src/ui/data/avatars/adaptive-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/adaptive-coordinator2.svg +54 -0
- package/dist/src/ui/data/avatars/ai-citation.svg +57 -0
- package/dist/src/ui/data/avatars/ai-engineer.svg +61 -0
- package/dist/src/ui/data/avatars/analytics-reporter.svg +53 -0
- package/dist/src/ui/data/avatars/api-tester.svg +53 -0
- package/dist/src/ui/data/avatars/architecture.svg +54 -0
- package/dist/src/ui/data/avatars/automation-governance.svg +55 -0
- package/dist/src/ui/data/avatars/backend-dev.svg +53 -0
- package/dist/src/ui/data/avatars/benchmarker.svg +54 -0
- package/dist/src/ui/data/avatars/blockchain-auditor.svg +53 -0
- package/dist/src/ui/data/avatars/byzantine-coord.svg +57 -0
- package/dist/src/ui/data/avatars/case-analyst.svg +57 -0
- package/dist/src/ui/data/avatars/cicd-engineer.svg +55 -0
- package/dist/src/ui/data/avatars/cloud-architect.svg +54 -0
- package/dist/src/ui/data/avatars/code-review-swarm.svg +57 -0
- package/dist/src/ui/data/avatars/coder-v119.svg +57 -0
- package/dist/src/ui/data/avatars/coder.svg +58 -0
- package/dist/src/ui/data/avatars/collective-coord.svg +54 -0
- package/dist/src/ui/data/avatars/compliance-auditor.svg +58 -0
- package/dist/src/ui/data/avatars/consensus-coordinator.svg +54 -0
- package/dist/src/ui/data/avatars/content-creator.svg +54 -0
- package/dist/src/ui/data/avatars/crdt-synchronizer.svg +53 -0
- package/dist/src/ui/data/avatars/cro-specialist.svg +58 -0
- package/dist/src/ui/data/avatars/data-consolidator.svg +54 -0
- package/dist/src/ui/data/avatars/data-engineer.svg +53 -0
- package/dist/src/ui/data/avatars/database-optimizer.svg +61 -0
- package/dist/src/ui/data/avatars/deal-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/defender.svg +53 -0
- package/dist/src/ui/data/avatars/devops-automator.svg +56 -0
- package/dist/src/ui/data/avatars/discovery-coach.svg +54 -0
- package/dist/src/ui/data/avatars/email-marketing.svg +57 -0
- package/dist/src/ui/data/avatars/embedded-firmware.svg +61 -0
- package/dist/src/ui/data/avatars/evidence-collector.svg +57 -0
- package/dist/src/ui/data/avatars/experiment-tracker.svg +53 -0
- package/dist/src/ui/data/avatars/feedback-synthesizer.svg +54 -0
- package/dist/src/ui/data/avatars/finance-tracker.svg +54 -0
- package/dist/src/ui/data/avatars/frontend-developer.svg +54 -0
- package/dist/src/ui/data/avatars/game-audio-engineer.svg +59 -0
- package/dist/src/ui/data/avatars/game-designer.svg +54 -0
- package/dist/src/ui/data/avatars/gossip-coordinator.svg +54 -0
- package/dist/src/ui/data/avatars/hierarchical-coord.svg +54 -0
- package/dist/src/ui/data/avatars/incident-commander.svg +57 -0
- package/dist/src/ui/data/avatars/infrastructure.svg +54 -0
- package/dist/src/ui/data/avatars/input-validator.svg +53 -0
- package/dist/src/ui/data/avatars/ios-developer.svg +54 -0
- package/dist/src/ui/data/avatars/issue-tracker.svg +53 -0
- package/dist/src/ui/data/avatars/judge.svg +55 -0
- package/dist/src/ui/data/avatars/launch-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/legal-compliance.svg +53 -0
- package/dist/src/ui/data/avatars/level-designer.svg +53 -0
- package/dist/src/ui/data/avatars/load-balancer.svg +57 -0
- package/dist/src/ui/data/avatars/mcp-builder.svg +53 -0
- package/dist/src/ui/data/avatars/memory-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/mesh-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/ml-developer.svg +58 -0
- package/dist/src/ui/data/avatars/mobile-app-builder.svg +53 -0
- package/dist/src/ui/data/avatars/mobile-dev.svg +54 -0
- package/dist/src/ui/data/avatars/model-qa.svg +58 -0
- package/dist/src/ui/data/avatars/narrative-designer.svg +58 -0
- package/dist/src/ui/data/avatars/outbound-strategist.svg +55 -0
- package/dist/src/ui/data/avatars/path-validator.svg +54 -0
- package/dist/src/ui/data/avatars/payment-agent.svg +53 -0
- package/dist/src/ui/data/avatars/perf-analyzer.svg +58 -0
- package/dist/src/ui/data/avatars/pipeline-analyst.svg +54 -0
- package/dist/src/ui/data/avatars/planner.svg +55 -0
- package/dist/src/ui/data/avatars/pr-manager.svg +54 -0
- package/dist/src/ui/data/avatars/pricing-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/product-manager.svg +54 -0
- package/dist/src/ui/data/avatars/production-validator.svg +54 -0
- package/dist/src/ui/data/avatars/project-shepherd.svg +54 -0
- package/dist/src/ui/data/avatars/proposal-strategist.svg +54 -0
- package/dist/src/ui/data/avatars/prosecutor.svg +57 -0
- package/dist/src/ui/data/avatars/pseudocode.svg +53 -0
- package/dist/src/ui/data/avatars/queen-coordinator.svg +55 -0
- package/dist/src/ui/data/avatars/quorum-manager.svg +53 -0
- package/dist/src/ui/data/avatars/raft-manager.svg +53 -0
- package/dist/src/ui/data/avatars/reality-checker.svg +58 -0
- package/dist/src/ui/data/avatars/recruitment.svg +58 -0
- package/dist/src/ui/data/avatars/refinement.svg +53 -0
- package/dist/src/ui/data/avatars/release-manager.svg +54 -0
- package/dist/src/ui/data/avatars/repo-architect.svg +54 -0
- package/dist/src/ui/data/avatars/researcher.svg +58 -0
- package/dist/src/ui/data/avatars/resource-allocator.svg +53 -0
- package/dist/src/ui/data/avatars/reviewer.svg +53 -0
- package/dist/src/ui/data/avatars/safe-executor.svg +53 -0
- package/dist/src/ui/data/avatars/sales-coach.svg +53 -0
- package/dist/src/ui/data/avatars/sales-engineer.svg +58 -0
- package/dist/src/ui/data/avatars/scout-explorer.svg +58 -0
- package/dist/src/ui/data/avatars/security-architect.svg +54 -0
- package/dist/src/ui/data/avatars/security-auditor.svg +55 -0
- package/dist/src/ui/data/avatars/senior-developer.svg +58 -0
- package/dist/src/ui/data/avatars/senior-pm.svg +58 -0
- package/dist/src/ui/data/avatars/seo-specialist.svg +57 -0
- package/dist/src/ui/data/avatars/social-media.svg +54 -0
- package/dist/src/ui/data/avatars/solidity-engineer.svg +58 -0
- package/dist/src/ui/data/avatars/sparc-coder.svg +58 -0
- package/dist/src/ui/data/avatars/sparc-coord.svg +56 -0
- package/dist/src/ui/data/avatars/specification.svg +57 -0
- package/dist/src/ui/data/avatars/sprint-prioritizer.svg +53 -0
- package/dist/src/ui/data/avatars/sre.svg +54 -0
- package/dist/src/ui/data/avatars/studio-operations.svg +53 -0
- package/dist/src/ui/data/avatars/studio-producer.svg +55 -0
- package/dist/src/ui/data/avatars/support-responder.svg +56 -0
- package/dist/src/ui/data/avatars/system-architect.svg +54 -0
- package/dist/src/ui/data/avatars/task-orchestrator.svg +56 -0
- package/dist/src/ui/data/avatars/technical-artist.svg +53 -0
- package/dist/src/ui/data/avatars/technical-writer.svg +59 -0
- package/dist/src/ui/data/avatars/tester.svg +53 -0
- package/dist/src/ui/data/avatars/threat-detection.svg +61 -0
- package/dist/src/ui/data/avatars/trend-researcher.svg +54 -0
- package/dist/src/ui/data/avatars/trial-director.svg +55 -0
- package/dist/src/ui/data/avatars/unity-architect.svg +54 -0
- package/dist/src/ui/data/avatars/visionos-engineer.svg +57 -0
- package/dist/src/ui/data/avatars/worker-specialist.svg +55 -0
- package/dist/src/ui/data/avatars/workflow-architect.svg +57 -0
- package/dist/src/ui/data/avatars/workflow-automation.svg +54 -0
- package/dist/src/ui/data/avatars/zk-steward.svg +54 -0
- package/dist/src/ui/data/mastermind-events.jsonl +59 -0
- package/dist/src/ui/data/mastermind-sessions.json +1 -0
- package/dist/src/ui/orgs.html +1360 -0
- package/dist/src/ui/server.mjs +4336 -0
- package/dist/src/workflow/condition-evaluator.d.ts +10 -0
- package/dist/src/workflow/condition-evaluator.d.ts.map +1 -0
- package/dist/src/workflow/condition-evaluator.js +82 -0
- package/dist/src/workflow/condition-evaluator.js.map +1 -0
- package/dist/src/workflow/context-resolver.d.ts +12 -0
- package/dist/src/workflow/context-resolver.d.ts.map +1 -0
- package/dist/src/workflow/context-resolver.js +23 -0
- package/dist/src/workflow/context-resolver.js.map +1 -0
- package/dist/src/workflow/dag-builder.d.ts +17 -0
- package/dist/src/workflow/dag-builder.d.ts.map +1 -0
- package/dist/src/workflow/dag-builder.js +129 -0
- package/dist/src/workflow/dag-builder.js.map +1 -0
- package/dist/src/workflow/dag-executor.d.ts +9 -0
- package/dist/src/workflow/dag-executor.d.ts.map +1 -0
- package/dist/src/workflow/dag-executor.js +116 -0
- package/dist/src/workflow/dag-executor.js.map +1 -0
- package/dist/src/workflow/dag-types.d.ts +41 -0
- package/dist/src/workflow/dag-types.d.ts.map +1 -0
- package/dist/src/workflow/dag-types.js +8 -0
- package/dist/src/workflow/dag-types.js.map +1 -0
- package/dist/src/workflow/dsl-parser.d.ts +12 -0
- package/dist/src/workflow/dsl-parser.d.ts.map +1 -0
- package/dist/src/workflow/dsl-parser.js +20 -0
- package/dist/src/workflow/dsl-parser.js.map +1 -0
- package/dist/src/workflow/dsl-schema.d.ts +165 -0
- package/dist/src/workflow/dsl-schema.d.ts.map +1 -0
- package/dist/src/workflow/dsl-schema.js +82 -0
- package/dist/src/workflow/dsl-schema.js.map +1 -0
- package/dist/src/workflow/index.d.ts +13 -0
- package/dist/src/workflow/index.d.ts.map +1 -0
- package/dist/src/workflow/index.js +11 -0
- package/dist/src/workflow/index.js.map +1 -0
- package/dist/src/workflow/template-engine.d.ts +11 -0
- package/dist/src/workflow/template-engine.d.ts.map +1 -0
- package/dist/src/workflow/template-engine.js +40 -0
- package/dist/src/workflow/template-engine.js.map +1 -0
- package/dist/src/workflow/workflow-executor.d.ts +29 -0
- package/dist/src/workflow/workflow-executor.d.ts.map +1 -0
- package/dist/src/workflow/workflow-executor.js +227 -0
- package/dist/src/workflow/workflow-executor.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trigger Scanner (Task 32)
|
|
3
|
+
*
|
|
4
|
+
* Scans task descriptions against compiled trigger patterns
|
|
5
|
+
* from agent frontmatter and returns matches.
|
|
6
|
+
*
|
|
7
|
+
* - Patterns are tested in descending priority order.
|
|
8
|
+
* - A `takeover` match short-circuits: only that agent is returned.
|
|
9
|
+
* - `inject` matches accumulate as additional candidates.
|
|
10
|
+
* - Invalid regex patterns are silently skipped.
|
|
11
|
+
*/
|
|
12
|
+
import { readFileSync, readdirSync, lstatSync, statSync, realpathSync } from 'fs';
|
|
13
|
+
import { join, extname, resolve, sep } from 'path';
|
|
14
|
+
export class TriggerScanner {
|
|
15
|
+
compiled = [];
|
|
16
|
+
patterns = [];
|
|
17
|
+
totalAgentsScanned = 0;
|
|
18
|
+
buildingIndex = false;
|
|
19
|
+
constructor(patterns = []) {
|
|
20
|
+
for (const p of patterns) {
|
|
21
|
+
this.compileAndAdd(p);
|
|
22
|
+
}
|
|
23
|
+
this.sortByPriority();
|
|
24
|
+
}
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// Public API
|
|
27
|
+
// ---------------------------------------------------------------------------
|
|
28
|
+
/**
|
|
29
|
+
* Test all patterns against `taskDescription` and return matches.
|
|
30
|
+
*
|
|
31
|
+
* Patterns are tested in descending priority order.
|
|
32
|
+
* If a `takeover` pattern matches, scanning stops immediately
|
|
33
|
+
* and only that agent is returned.
|
|
34
|
+
*/
|
|
35
|
+
scan(taskDescription) {
|
|
36
|
+
const matches = [];
|
|
37
|
+
for (const { source, regex } of this.compiled) {
|
|
38
|
+
// Reset lastIndex in case the regex has the global flag
|
|
39
|
+
regex.lastIndex = 0;
|
|
40
|
+
const m = regex.exec(taskDescription);
|
|
41
|
+
if (!m)
|
|
42
|
+
continue;
|
|
43
|
+
const match = {
|
|
44
|
+
agentSlug: source.agentSlug,
|
|
45
|
+
pattern: source.pattern,
|
|
46
|
+
mode: source.mode,
|
|
47
|
+
matchedText: m[0],
|
|
48
|
+
};
|
|
49
|
+
if (source.mode === 'takeover') {
|
|
50
|
+
// Short-circuit: return only this agent
|
|
51
|
+
return [match];
|
|
52
|
+
}
|
|
53
|
+
matches.push(match);
|
|
54
|
+
}
|
|
55
|
+
return matches;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Build an index by scanning agent markdown files under `agentDir`.
|
|
59
|
+
*
|
|
60
|
+
* Reads each `.md` file, extracts YAML frontmatter, and looks for
|
|
61
|
+
* `triggers:` entries with `pattern`, `mode`, and optional `priority`.
|
|
62
|
+
*/
|
|
63
|
+
buildIndex(agentDir, allowedRoot) {
|
|
64
|
+
if (this.buildingIndex) {
|
|
65
|
+
throw new Error('buildIndex is already running; concurrent invocations are not safe');
|
|
66
|
+
}
|
|
67
|
+
this.buildingIndex = true;
|
|
68
|
+
try {
|
|
69
|
+
return this._buildIndex(agentDir, allowedRoot);
|
|
70
|
+
}
|
|
71
|
+
finally {
|
|
72
|
+
this.buildingIndex = false;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
_buildIndex(agentDir, allowedRoot) {
|
|
76
|
+
if (allowedRoot) {
|
|
77
|
+
let resolvedDir;
|
|
78
|
+
let resolvedRoot;
|
|
79
|
+
try {
|
|
80
|
+
resolvedDir = realpathSync(resolve(agentDir));
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
resolvedDir = resolve(agentDir);
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
resolvedRoot = realpathSync(resolve(allowedRoot));
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
resolvedRoot = resolve(allowedRoot);
|
|
90
|
+
}
|
|
91
|
+
if (!resolvedDir.startsWith(resolvedRoot + sep) && resolvedDir !== resolvedRoot) {
|
|
92
|
+
throw new Error(`Agent directory escapes workspace: ${resolvedDir}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const mdFiles = this.collectMdFiles(agentDir);
|
|
96
|
+
this.patterns = [];
|
|
97
|
+
this.compiled = [];
|
|
98
|
+
this.totalAgentsScanned = mdFiles.length;
|
|
99
|
+
const MAX_AGENT_FILE_BYTES = 1 * 1024 * 1024;
|
|
100
|
+
for (const filePath of mdFiles) {
|
|
101
|
+
let content;
|
|
102
|
+
try {
|
|
103
|
+
if (statSync(filePath).size > MAX_AGENT_FILE_BYTES)
|
|
104
|
+
continue;
|
|
105
|
+
content = readFileSync(filePath, 'utf-8');
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const slug = this.slugFromPath(filePath);
|
|
111
|
+
const triggers = this.extractTriggers(content, slug);
|
|
112
|
+
for (const t of triggers) {
|
|
113
|
+
this.compileAndAdd(t);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
this.sortByPriority();
|
|
117
|
+
return {
|
|
118
|
+
patterns: [...this.patterns],
|
|
119
|
+
builtAt: new Date().toISOString(),
|
|
120
|
+
totalAgentsScanned: this.totalAgentsScanned,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/** Add a pattern to the index at runtime. */
|
|
124
|
+
addPattern(pattern) {
|
|
125
|
+
this.compileAndAdd(pattern);
|
|
126
|
+
this.sortByPriority();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Remove a specific pattern for an agent.
|
|
130
|
+
* Returns `true` if the pattern was found and removed.
|
|
131
|
+
*/
|
|
132
|
+
removePattern(agentSlug, pattern) {
|
|
133
|
+
const idx = this.patterns.findIndex((p) => p.agentSlug === agentSlug && p.pattern === pattern);
|
|
134
|
+
if (idx === -1)
|
|
135
|
+
return false;
|
|
136
|
+
this.patterns.splice(idx, 1);
|
|
137
|
+
this.compiled.splice(idx, 1);
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
/** Return a snapshot of the current index. */
|
|
141
|
+
getIndex() {
|
|
142
|
+
return {
|
|
143
|
+
patterns: [...this.patterns],
|
|
144
|
+
builtAt: new Date().toISOString(),
|
|
145
|
+
totalAgentsScanned: this.totalAgentsScanned,
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
/** Number of compiled patterns. */
|
|
149
|
+
get size() {
|
|
150
|
+
return this.compiled.length;
|
|
151
|
+
}
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
// Internal helpers
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
compileAndAdd(pattern) {
|
|
156
|
+
if (pattern.pattern.length > 200)
|
|
157
|
+
return;
|
|
158
|
+
// Reject patterns with nested/repeated quantifiers (ReDoS vectors)
|
|
159
|
+
// Covers: (a+)+, (a|b+)+, (a?){n}, ((a)+)+, [a-z]+{n}
|
|
160
|
+
if (/(\(.*[+*?].*\)|[+*?]){2,}|\{[0-9,]+\}.*[+*?]|(\[[^\]]*\]|\.)[+*?][+*?]/.test(pattern.pattern))
|
|
161
|
+
return;
|
|
162
|
+
if (/\([^)]*([+*][^)]*){2,}\)/.test(pattern.pattern))
|
|
163
|
+
return;
|
|
164
|
+
try {
|
|
165
|
+
const regex = new RegExp(pattern.pattern, 'i');
|
|
166
|
+
this.patterns.push(pattern);
|
|
167
|
+
this.compiled.push({ source: pattern, regex });
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
// Invalid regex — skip silently
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
sortByPriority() {
|
|
174
|
+
// Sort both arrays in-sync by descending priority
|
|
175
|
+
const indexed = this.patterns.map((p, i) => ({ p, c: this.compiled[i], priority: p.priority }));
|
|
176
|
+
indexed.sort((a, b) => b.priority - a.priority);
|
|
177
|
+
this.patterns = indexed.map((x) => x.p);
|
|
178
|
+
this.compiled = indexed.map((x) => x.c);
|
|
179
|
+
}
|
|
180
|
+
/** Recursively collect `.md` files (symlinks skipped, visited inodes tracked). */
|
|
181
|
+
collectMdFiles(dir, visited = new Set()) {
|
|
182
|
+
const results = [];
|
|
183
|
+
let entries;
|
|
184
|
+
try {
|
|
185
|
+
entries = readdirSync(dir);
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return results;
|
|
189
|
+
}
|
|
190
|
+
for (const entry of entries) {
|
|
191
|
+
const full = join(dir, entry);
|
|
192
|
+
let lstat;
|
|
193
|
+
try {
|
|
194
|
+
lstat = lstatSync(full);
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (lstat.isSymbolicLink())
|
|
200
|
+
continue;
|
|
201
|
+
if (lstat.isDirectory()) {
|
|
202
|
+
if (visited.has(lstat.ino))
|
|
203
|
+
continue;
|
|
204
|
+
visited.add(lstat.ino);
|
|
205
|
+
results.push(...this.collectMdFiles(full, visited));
|
|
206
|
+
}
|
|
207
|
+
else if (lstat.isFile() && extname(entry) === '.md') {
|
|
208
|
+
results.push(full);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return results;
|
|
212
|
+
}
|
|
213
|
+
/** Derive slug from filename. */
|
|
214
|
+
slugFromPath(filePath) {
|
|
215
|
+
const base = filePath.split('/').pop() ?? '';
|
|
216
|
+
return base
|
|
217
|
+
.replace(/\.md$/i, '')
|
|
218
|
+
.toLowerCase()
|
|
219
|
+
.replace(/\s+/g, '-')
|
|
220
|
+
.replace(/[^a-z0-9-]/g, '');
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Extract trigger definitions from markdown frontmatter.
|
|
224
|
+
*
|
|
225
|
+
* Looks for a YAML block between `---` markers, then finds lines like:
|
|
226
|
+
* - pattern: "\\b(auth|jwt)\\b"
|
|
227
|
+
* mode: "inject"
|
|
228
|
+
* priority: 10
|
|
229
|
+
*/
|
|
230
|
+
extractTriggers(content, agentSlug) {
|
|
231
|
+
const fmMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
232
|
+
if (!fmMatch)
|
|
233
|
+
return [];
|
|
234
|
+
const block = fmMatch[1];
|
|
235
|
+
const triggers = [];
|
|
236
|
+
// Find trigger blocks: lines starting with "- pattern:" under a triggers: section
|
|
237
|
+
const lines = block.split('\n');
|
|
238
|
+
let inTriggers = false;
|
|
239
|
+
let currentTrigger = null;
|
|
240
|
+
for (const line of lines) {
|
|
241
|
+
const trimmed = line.trim();
|
|
242
|
+
// Measure leading whitespace to distinguish top-level keys from nested props
|
|
243
|
+
const indent = line.length - line.trimStart().length;
|
|
244
|
+
if (trimmed === 'triggers:' || trimmed.startsWith('triggers:')) {
|
|
245
|
+
inTriggers = true;
|
|
246
|
+
continue;
|
|
247
|
+
}
|
|
248
|
+
// Exit triggers section when we hit a non-indented top-level key (indent 0)
|
|
249
|
+
if (inTriggers && indent === 0 && /^[a-zA-Z]/.test(trimmed)) {
|
|
250
|
+
inTriggers = false;
|
|
251
|
+
if (currentTrigger?.pattern) {
|
|
252
|
+
triggers.push(this.finalizeTrigger(currentTrigger, agentSlug));
|
|
253
|
+
}
|
|
254
|
+
currentTrigger = null;
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
if (!inTriggers)
|
|
258
|
+
continue;
|
|
259
|
+
// New list item
|
|
260
|
+
if (trimmed.startsWith('- pattern:')) {
|
|
261
|
+
if (currentTrigger?.pattern) {
|
|
262
|
+
triggers.push(this.finalizeTrigger(currentTrigger, agentSlug));
|
|
263
|
+
}
|
|
264
|
+
currentTrigger = {
|
|
265
|
+
pattern: this.extractYamlValue(trimmed.replace(/^- pattern:\s*/, '')),
|
|
266
|
+
agentSlug,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
else if (currentTrigger && trimmed.startsWith('mode:')) {
|
|
270
|
+
const val = this.extractYamlValue(trimmed.replace(/^mode:\s*/, ''));
|
|
271
|
+
if (val === 'inject' || val === 'takeover') {
|
|
272
|
+
currentTrigger.mode = val;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
else if (currentTrigger && trimmed.startsWith('priority:')) {
|
|
276
|
+
const val = parseInt(trimmed.replace(/^priority:\s*/, ''), 10);
|
|
277
|
+
if (!isNaN(val)) {
|
|
278
|
+
currentTrigger.priority = val;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// Flush last trigger
|
|
283
|
+
if (currentTrigger?.pattern) {
|
|
284
|
+
triggers.push(this.finalizeTrigger(currentTrigger, agentSlug));
|
|
285
|
+
}
|
|
286
|
+
return triggers;
|
|
287
|
+
}
|
|
288
|
+
finalizeTrigger(partial, agentSlug) {
|
|
289
|
+
return {
|
|
290
|
+
pattern: partial.pattern,
|
|
291
|
+
mode: partial.mode ?? 'inject',
|
|
292
|
+
priority: partial.priority ?? 0,
|
|
293
|
+
agentSlug,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
extractYamlValue(raw) {
|
|
297
|
+
let v = raw.trim();
|
|
298
|
+
if (v.startsWith('"') && v.endsWith('"')) {
|
|
299
|
+
// YAML double-quoted: unescape \\ → \ so "\\b" becomes \b (word boundary)
|
|
300
|
+
v = v.slice(1, -1).replace(/\\\\/g, '\\');
|
|
301
|
+
}
|
|
302
|
+
else if (v.startsWith("'") && v.endsWith("'")) {
|
|
303
|
+
v = v.slice(1, -1);
|
|
304
|
+
}
|
|
305
|
+
return v;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=trigger-scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trigger-scanner.js","sourceRoot":"","sources":["../../../src/agents/trigger-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Version Diff Utility (Task 29)
|
|
3
|
+
*
|
|
4
|
+
* Computes a simple unified-style diff between two content strings.
|
|
5
|
+
*/
|
|
6
|
+
export interface LineDiffResult {
|
|
7
|
+
additions: number;
|
|
8
|
+
deletions: number;
|
|
9
|
+
hunks: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Compute a unified diff between two content strings.
|
|
13
|
+
*
|
|
14
|
+
* Uses a simple line-by-line LCS-based approach to produce
|
|
15
|
+
* addition/deletion counts and a unified-style hunk string.
|
|
16
|
+
*/
|
|
17
|
+
export declare function computeUnifiedDiff(oldContent: string, newContent: string): LineDiffResult;
|
|
18
|
+
//# sourceMappingURL=version-diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-diff.d.ts","sourceRoot":"","sources":["../../../src/agents/version-diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,cAAc,CA0DhB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Version Diff Utility (Task 29)
|
|
3
|
+
*
|
|
4
|
+
* Computes a simple unified-style diff between two content strings.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Compute a unified diff between two content strings.
|
|
8
|
+
*
|
|
9
|
+
* Uses a simple line-by-line LCS-based approach to produce
|
|
10
|
+
* addition/deletion counts and a unified-style hunk string.
|
|
11
|
+
*/
|
|
12
|
+
export function computeUnifiedDiff(oldContent, newContent) {
|
|
13
|
+
const oldLines = oldContent.split('\n');
|
|
14
|
+
const newLines = newContent.split('\n');
|
|
15
|
+
// Simple LCS to find common subsequence
|
|
16
|
+
const m = oldLines.length;
|
|
17
|
+
const n = newLines.length;
|
|
18
|
+
// Build LCS table
|
|
19
|
+
const dp = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0));
|
|
20
|
+
for (let i = 1; i <= m; i++) {
|
|
21
|
+
for (let j = 1; j <= n; j++) {
|
|
22
|
+
if (oldLines[i - 1] === newLines[j - 1]) {
|
|
23
|
+
dp[i][j] = dp[i - 1][j - 1] + 1;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
dp[i][j] = Math.max(dp[i - 1][j], dp[i][j - 1]);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Backtrack to produce diff lines
|
|
31
|
+
const diffLines = [];
|
|
32
|
+
let additions = 0;
|
|
33
|
+
let deletions = 0;
|
|
34
|
+
let i = m;
|
|
35
|
+
let j = n;
|
|
36
|
+
const result = [];
|
|
37
|
+
while (i > 0 || j > 0) {
|
|
38
|
+
if (i > 0 && j > 0 && oldLines[i - 1] === newLines[j - 1]) {
|
|
39
|
+
result.push({ type: ' ', line: oldLines[i - 1] });
|
|
40
|
+
i--;
|
|
41
|
+
j--;
|
|
42
|
+
}
|
|
43
|
+
else if (j > 0 && (i === 0 || dp[i][j - 1] >= dp[i - 1][j])) {
|
|
44
|
+
result.push({ type: '+', line: newLines[j - 1] });
|
|
45
|
+
additions++;
|
|
46
|
+
j--;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
result.push({ type: '-', line: oldLines[i - 1] });
|
|
50
|
+
deletions++;
|
|
51
|
+
i--;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
result.reverse();
|
|
55
|
+
for (const entry of result) {
|
|
56
|
+
diffLines.push(`${entry.type} ${entry.line}`);
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
additions,
|
|
60
|
+
deletions,
|
|
61
|
+
hunks: diffLines.join('\n'),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=version-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-diff.js","sourceRoot":"","sources":["../../../src/agents/version-diff.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,UAAkB;IAElB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAExC,wCAAwC;IACxC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1B,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC;IAE1B,kBAAkB;IAClB,MAAM,EAAE,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CACxD,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACrB,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACxC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,MAAM,MAAM,GAAmD,EAAE,CAAC;IAElE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAClD,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAClD,SAAS,EAAE,CAAC;YACZ,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAClD,SAAS,EAAE,CAAC;YACZ,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,OAAO;QACL,SAAS;QACT,SAAS;QACT,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;KAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Version Store (Task 29)
|
|
3
|
+
*
|
|
4
|
+
* JSONL-based append-only storage for agent definition versions.
|
|
5
|
+
* Supports save, list, get, rollback, and diff operations.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentVersionRecord, DiffResult } from '../../../shared/src/types/agent-version.js';
|
|
8
|
+
/**
|
|
9
|
+
* JSONL-based agent version store.
|
|
10
|
+
*
|
|
11
|
+
* Each slug's versions are stored in `<dirPath>/versions.jsonl`, one JSON
|
|
12
|
+
* object per line. Rollback rewrites the file to update `isCurrent` flags.
|
|
13
|
+
*/
|
|
14
|
+
export declare class AgentVersionStore {
|
|
15
|
+
private readonly dirPath;
|
|
16
|
+
private readonly filePath;
|
|
17
|
+
constructor(dirPath: string);
|
|
18
|
+
private readAll;
|
|
19
|
+
private writeAll;
|
|
20
|
+
/**
|
|
21
|
+
* Save a new version for the given agent slug.
|
|
22
|
+
*
|
|
23
|
+
* Computes a SHA-256 hash of the content, marks all previous versions for
|
|
24
|
+
* the same slug as non-current, and appends the new record.
|
|
25
|
+
*/
|
|
26
|
+
saveVersion(slug: string, content: string, version: string, changelog: string, opts?: {
|
|
27
|
+
deprecated?: boolean;
|
|
28
|
+
deprecatedBy?: string;
|
|
29
|
+
capturedBy?: string;
|
|
30
|
+
}): AgentVersionRecord;
|
|
31
|
+
/**
|
|
32
|
+
* List all versions for a slug, sorted by capturedAt DESC (newest first).
|
|
33
|
+
* Uses insertion order (line index) as a stable tiebreaker.
|
|
34
|
+
*/
|
|
35
|
+
listVersions(slug: string): AgentVersionRecord[];
|
|
36
|
+
/**
|
|
37
|
+
* Get the current active version for a slug, or null.
|
|
38
|
+
*/
|
|
39
|
+
getCurrent(slug: string): AgentVersionRecord | null;
|
|
40
|
+
/**
|
|
41
|
+
* Get a specific version by slug and semver string, or null.
|
|
42
|
+
*/
|
|
43
|
+
getVersion(slug: string, version: string): AgentVersionRecord | null;
|
|
44
|
+
/**
|
|
45
|
+
* Roll back to a specific version.
|
|
46
|
+
*
|
|
47
|
+
* Marks the target version as current and all others for that slug as
|
|
48
|
+
* non-current. Rewrites the JSONL file.
|
|
49
|
+
*
|
|
50
|
+
* @throws Error if the target version does not exist.
|
|
51
|
+
*/
|
|
52
|
+
rollback(slug: string, toVersion: string): AgentVersionRecord;
|
|
53
|
+
/**
|
|
54
|
+
* Compute a line-level diff between two versions of the same agent.
|
|
55
|
+
*
|
|
56
|
+
* @throws Error if either version does not exist.
|
|
57
|
+
*/
|
|
58
|
+
diff(slug: string, fromVersion: string, toVersion: string): DiffResult;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=version-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version-store.d.ts","sourceRoot":"","sources":["../../../src/agents/version-store.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,4CAA4C,CAAC;AAsDjG;;;;;GAKG;AACH,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEL,OAAO,EAAE,MAAM;IAW5C,OAAO,CAAC,OAAO;IAmCf,OAAO,CAAC,QAAQ;IAWhB;;;;;OAKG;IACH,WAAW,CACT,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE;QACJ,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KAChB,GACL,kBAAkB;IAoCrB;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAchD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAgBnD;;OAEG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAQpE;;;;;;;OAOG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,kBAAkB;IAyB7D;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU;CA4BvE"}
|