monomind 1.8.0 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/design/design-monodesign.md +121 -0
- package/.claude/agents/github/issue-tracker.md +12 -12
- package/.claude/agents/github/pr-manager.md +10 -10
- package/.claude/agents/github/release-manager.md +49 -105
- package/.claude/agents/github/repo-architect.md +73 -92
- package/.claude/agents/github/sync-coordinator.md +55 -123
- package/.claude/agents/marketing/marketing-competitive-content.md +155 -0
- package/.claude/agents/marketing/marketing-content-creator.md +13 -0
- package/.claude/agents/marketing/marketing-cro-specialist.md +147 -0
- package/.claude/agents/marketing/marketing-email-specialist.md +90 -0
- package/.claude/agents/marketing/marketing-launch-strategist.md +129 -0
- package/.claude/agents/marketing/marketing-pricing-strategist.md +127 -0
- package/.claude/agents/specialists/integration-architect.md +94 -0
- package/.claude/commands/agents/README.md +4 -0
- package/.claude/commands/agents/agent-capabilities.md +6 -2
- package/.claude/commands/agents/agent-coordination.md +4 -0
- package/.claude/commands/agents/agent-spawning.md +4 -0
- package/.claude/commands/agents/agent-types.md +6 -2
- package/.claude/commands/analysis/README.md +14 -5
- package/.claude/commands/analysis/bottleneck-detect.md +30 -123
- package/.claude/commands/analysis/performance-bottlenecks.md +14 -14
- package/.claude/commands/analysis/performance-report.md +38 -11
- package/.claude/commands/analysis/token-efficiency.md +13 -16
- package/.claude/commands/analysis/token-usage.md +34 -12
- package/.claude/commands/automation/README.md +15 -5
- package/.claude/commands/automation/auto-agent.md +49 -85
- package/.claude/commands/automation/self-healing.md +20 -18
- package/.claude/commands/automation/session-memory.md +28 -29
- package/.claude/commands/automation/smart-agents.md +17 -9
- package/.claude/commands/automation/smart-spawn.md +52 -11
- package/.claude/commands/automation/workflow-select.md +46 -11
- package/.claude/commands/browse.md +5 -0
- package/.claude/commands/coordination/README.md +9 -5
- package/.claude/commands/coordination/agent-spawn.md +53 -9
- package/.claude/commands/coordination/swarm-init.md +39 -42
- package/.claude/commands/coordination/task-orchestrate.md +65 -11
- package/.claude/commands/github/README.md +21 -8
- package/.claude/commands/github/github-modes.md +9 -5
- package/.claude/commands/github/issue-tracker.md +34 -33
- package/.claude/commands/github/pr-manager.md +20 -17
- package/.claude/commands/github/release-manager.md +37 -49
- package/.claude/commands/github/repo-architect.md +39 -41
- package/.claude/commands/github/sync-coordinator.md +45 -49
- package/.claude/commands/hive-mind/README.md +42 -17
- package/.claude/commands/hive-mind/hive-mind-consensus.md +68 -4
- package/.claude/commands/hive-mind/hive-mind-init.md +55 -5
- package/.claude/commands/hive-mind/hive-mind-memory.md +69 -4
- package/.claude/commands/hive-mind/hive-mind-spawn.md +71 -10
- package/.claude/commands/hive-mind/hive-mind-status.md +52 -4
- package/.claude/commands/hive-mind/hive-mind-stop.md +51 -4
- package/.claude/commands/hive-mind/hive-mind.md +74 -14
- package/.claude/commands/hooks/README.md +62 -7
- package/.claude/commands/hooks/overview.md +94 -35
- package/.claude/commands/hooks/post-edit.md +48 -87
- package/.claude/commands/hooks/post-task.md +37 -87
- package/.claude/commands/hooks/pre-edit.md +52 -84
- package/.claude/commands/hooks/pre-task.md +46 -81
- package/.claude/commands/hooks/session-end.md +49 -85
- package/.claude/commands/hooks/setup.md +87 -58
- package/.claude/commands/mastermind/_repeat.md +308 -0
- package/.claude/commands/mastermind/architect.md +49 -0
- package/.claude/commands/mastermind/brain.md +98 -0
- package/.claude/commands/mastermind/build.md +22 -0
- package/.claude/commands/mastermind/content.md +22 -0
- package/.claude/commands/mastermind/createorg.md +94 -0
- package/.claude/commands/mastermind/finance.md +22 -0
- package/.claude/commands/mastermind/idea.md +22 -0
- package/.claude/commands/mastermind/marketing.md +22 -0
- package/.claude/commands/mastermind/master.md +379 -0
- package/.claude/commands/mastermind/ops.md +22 -0
- package/.claude/commands/mastermind/release.md +22 -0
- package/.claude/commands/mastermind/research.md +22 -0
- package/.claude/commands/mastermind/review.md +22 -0
- package/.claude/commands/mastermind/runorg.md +106 -0
- package/.claude/commands/mastermind/sales.md +22 -0
- package/.claude/commands/mastermind/techport.md +17 -0
- package/.claude/commands/memory/README.md +75 -5
- package/.claude/commands/memory/memory-search.md +63 -11
- package/.claude/commands/monitoring/README.md +64 -4
- package/.claude/commands/monitoring/agent-metrics.md +50 -10
- package/.claude/commands/monitoring/agents.md +59 -32
- package/.claude/commands/monitoring/status.md +96 -34
- package/.claude/commands/monograph/README.md +102 -0
- package/.claude/commands/monograph/monograph-build.md +79 -0
- package/.claude/commands/monograph/monograph-search.md +96 -0
- package/.claude/commands/monograph/monograph-stats.md +53 -0
- package/.claude/commands/monograph/monograph-watch.md +63 -0
- package/.claude/commands/monograph/monograph-wiki.md +91 -0
- package/.claude/commands/monomind/createtask.md +277 -0
- package/.claude/commands/{monomind-do.md → monomind/do.md} +21 -8
- package/.claude/commands/monomind/help.md +118 -0
- package/.claude/commands/{monomind-idea.md → monomind/idea.md} +22 -28
- package/.claude/commands/{monomind-improve.md → monomind/improve.md} +21 -27
- package/.claude/commands/monomind/memory.md +230 -0
- package/.claude/commands/monomind/repeat.md +201 -0
- package/.claude/commands/monomind/review.md +313 -0
- package/.claude/commands/monomind/specialagents.md +125 -0
- package/.claude/commands/monomind/swarm.md +161 -0
- package/.claude/commands/monomind/understand.md +148 -0
- package/.claude/commands/optimization/README.md +69 -5
- package/.claude/commands/optimization/auto-topology.md +66 -43
- package/.claude/commands/optimization/parallel-execution.md +65 -39
- package/.claude/commands/optimization/performance-optimize.md +79 -0
- package/.claude/commands/pair/README.md +48 -230
- package/.claude/commands/pair/examples.md +85 -441
- package/.claude/commands/pair/modes.md +77 -303
- package/.claude/commands/pair/session.md +76 -359
- package/.claude/commands/sparc/analyzer.md +9 -26
- package/.claude/commands/sparc/architect.md +8 -25
- package/.claude/commands/sparc/ask.md +27 -68
- package/.claude/commands/sparc/batch-executor.md +8 -25
- package/.claude/commands/sparc/code.md +12 -53
- package/.claude/commands/sparc/coder.md +8 -25
- package/.claude/commands/sparc/debug.md +12 -53
- package/.claude/commands/sparc/debugger.md +8 -25
- package/.claude/commands/sparc/designer.md +8 -25
- package/.claude/commands/sparc/devops.md +16 -57
- package/.claude/commands/sparc/docs-writer.md +12 -53
- package/.claude/commands/sparc/documenter.md +8 -25
- package/.claude/commands/sparc/innovator.md +8 -25
- package/.claude/commands/sparc/integration.md +12 -53
- package/.claude/commands/sparc/mcp.md +12 -53
- package/.claude/commands/sparc/memory-manager.md +28 -25
- package/.claude/commands/sparc/optimizer.md +8 -25
- package/.claude/commands/sparc/orchestrator.md +35 -97
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +13 -54
- package/.claude/commands/sparc/refinement-optimization-mode.md +13 -54
- package/.claude/commands/sparc/researcher.md +8 -25
- package/.claude/commands/sparc/reviewer.md +8 -25
- package/.claude/commands/sparc/security-review.md +13 -54
- package/.claude/commands/sparc/sparc-modes.md +97 -151
- package/.claude/commands/sparc/sparc.md +16 -56
- package/.claude/commands/sparc/spec-pseudocode.md +13 -54
- package/.claude/commands/sparc/supabase-admin.md +19 -66
- package/.claude/commands/sparc/swarm-coordinator.md +21 -25
- package/.claude/commands/sparc/tdd.md +8 -25
- package/.claude/commands/sparc/tester.md +8 -25
- package/.claude/commands/sparc/tutorial.md +12 -53
- package/.claude/commands/sparc/workflow-manager.md +8 -25
- package/.claude/commands/sparc.md +76 -130
- package/.claude/commands/stream-chain/pipeline.md +72 -77
- package/.claude/commands/stream-chain/run.md +133 -47
- package/.claude/commands/swarm/README.md +37 -12
- package/.claude/commands/swarm/analysis.md +47 -69
- package/.claude/commands/swarm/development.md +45 -69
- package/.claude/commands/swarm/examples.md +77 -142
- package/.claude/commands/swarm/maintenance.md +47 -74
- package/.claude/commands/swarm/optimization.md +54 -87
- package/.claude/commands/swarm/research.md +47 -107
- package/.claude/commands/swarm/swarm-analysis.md +58 -4
- package/.claude/commands/swarm/swarm-background.md +61 -4
- package/.claude/commands/swarm/swarm-modes.md +63 -4
- package/.claude/commands/swarm/swarm-monitor.md +50 -4
- package/.claude/commands/swarm/swarm-status.md +40 -4
- package/.claude/commands/swarm/swarm-strategies.md +73 -5
- package/.claude/commands/swarm/swarm.md +70 -18
- package/.claude/commands/swarm/testing.md +51 -102
- package/.claude/commands/tokens.md +6 -1
- package/.claude/commands/training/README.md +36 -6
- package/.claude/commands/training/model-update.md +68 -15
- package/.claude/commands/training/neural-patterns.md +54 -55
- package/.claude/commands/training/neural-train.md +70 -16
- package/.claude/commands/training/pattern-learn.md +60 -16
- package/.claude/commands/training/specialization.md +78 -49
- package/.claude/commands/truth/start.md +87 -109
- package/.claude/commands/ts.md +7 -2
- package/.claude/commands/verify/check.md +90 -34
- package/.claude/commands/verify/start.md +71 -94
- package/.claude/commands/workflows/README.md +62 -6
- package/.claude/commands/workflows/development.md +69 -61
- package/.claude/commands/workflows/research.md +73 -47
- package/.claude/commands/workflows/workflow-create.md +75 -16
- package/.claude/commands/workflows/workflow-execute.md +94 -16
- package/.claude/commands/workflows/workflow-export.md +81 -16
- package/.claude/helpers/control-start.cjs +91 -0
- package/.claude/helpers/extras-registry.json +4104 -1991
- package/.claude/helpers/graphify-freshen.cjs +44 -13
- package/.claude/helpers/hook-handler.cjs +256 -1
- package/.claude/helpers/learning-service.mjs +0 -0
- package/.claude/helpers/loop-tracker.cjs +107 -0
- package/.claude/helpers/metrics-db.mjs +0 -0
- package/.claude/helpers/router.cjs +48 -68
- package/.claude/helpers/skill-registry.json +89 -104
- package/.claude/helpers/statusline.cjs +33 -2
- package/.claude/helpers/swarm-hooks.sh +0 -0
- package/.claude/scheduled_tasks.lock +1 -0
- package/.claude/settings.json +15 -0
- package/.claude/skills/.monomind/data/ranked-context.json +5 -0
- package/.claude/skills/.monomind/sessions/current.json +13 -0
- package/.claude/skills/.monomind/sessions/session-1777829336455.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777831614725.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777832095857.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777839814183.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777841847131.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777843309463.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777880867159.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777881884593.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777884090471.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777884808221.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777885672155.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777886852818.json +15 -0
- package/.claude/skills/.monomind/sessions/session-1777896532690.json +15 -0
- package/.claude/skills/agentdb-advanced/SKILL.md +11 -12
- package/.claude/skills/agentdb-learning/SKILL.md +20 -21
- package/.claude/skills/agentdb-memory-patterns/SKILL.md +28 -30
- package/.claude/skills/agentdb-optimization/SKILL.md +11 -12
- package/.claude/skills/agentdb-vector-search/SKILL.md +37 -41
- package/.claude/skills/{v3-integration-deep → agentic-integration}/SKILL.md +20 -13
- package/.claude/skills/agentic-jujutsu/SKILL.md +22 -22
- package/.claude/skills/{v3-cli-modernization → cli-modernization}/SKILL.md +17 -8
- package/.claude/skills/{v3-core-implementation → core-implementation}/SKILL.md +33 -8
- package/.claude/skills/{v3-ddd-architecture → ddd-architecture}/SKILL.md +18 -25
- package/.claude/skills/github-code-review/SKILL.md +82 -83
- package/.claude/skills/github-multi-repo/SKILL.md +42 -46
- package/.claude/skills/github-project-management/SKILL.md +83 -88
- package/.claude/skills/github-release-management/SKILL.md +12 -18
- package/.claude/skills/github-workflow-automation/SKILL.md +70 -74
- package/.claude/skills/hooks-automation/SKILL.md +9 -13
- package/.claude/skills/mastermind/_intake.md +83 -0
- package/.claude/skills/mastermind/_protocol.md +275 -0
- package/.claude/skills/mastermind/architect.md +847 -0
- package/.claude/skills/mastermind/build.md +158 -0
- package/.claude/skills/mastermind/content.md +185 -0
- package/.claude/skills/mastermind/createorg.md +318 -0
- package/.claude/skills/mastermind/finance.md +154 -0
- package/.claude/skills/mastermind/idea.md +158 -0
- package/.claude/skills/mastermind/marketing.md +216 -0
- package/.claude/skills/mastermind/monotask.md +350 -0
- package/.claude/skills/mastermind/ops.md +156 -0
- package/.claude/skills/mastermind/references/copywriting-frameworks.md +181 -0
- package/.claude/skills/mastermind/references/persuasion-psychology.md +158 -0
- package/.claude/skills/mastermind/release.md +156 -0
- package/.claude/skills/mastermind/research.md +156 -0
- package/.claude/skills/mastermind/review.md +157 -0
- package/.claude/skills/mastermind/runorg.md +308 -0
- package/.claude/skills/mastermind/sales.md +158 -0
- package/.claude/skills/mastermind/techport.md +743 -0
- package/.claude/skills/{v3-mcp-optimization → mcp-optimization}/SKILL.md +35 -14
- package/.claude/skills/{v3-memory-unification → memory-unification}/SKILL.md +20 -4
- package/.claude/skills/monodesign/SKILL.md +302 -0
- package/.claude/skills/monodesign/reference/adapt.md +190 -0
- package/.claude/skills/monodesign/reference/animate.md +175 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +187 -0
- package/.claude/skills/monodesign/reference/audit.md +133 -0
- package/.claude/skills/monodesign/reference/bolder.md +113 -0
- package/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
- package/.claude/skills/monodesign/reference/brand.md +114 -0
- package/.claude/skills/monodesign/reference/clarify.md +174 -0
- package/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
- package/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
- package/.claude/skills/monodesign/reference/colorize.md +154 -0
- package/.claude/skills/monodesign/reference/component-specs.md +260 -0
- package/.claude/skills/monodesign/reference/component-states.md +274 -0
- package/.claude/skills/monodesign/reference/component-system.md +358 -0
- package/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
- package/.claude/skills/monodesign/reference/craft.md +193 -0
- package/.claude/skills/monodesign/reference/critique.md +213 -0
- package/.claude/skills/monodesign/reference/delight.md +302 -0
- package/.claude/skills/monodesign/reference/design-principles.md +246 -0
- package/.claude/skills/monodesign/reference/distill.md +111 -0
- package/.claude/skills/monodesign/reference/document.md +427 -0
- package/.claude/skills/monodesign/reference/extract.md +69 -0
- package/.claude/skills/monodesign/reference/harden.md +347 -0
- package/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +118 -0
- package/.claude/skills/monodesign/reference/interaction-design.md +195 -0
- package/.claude/skills/monodesign/reference/layout.md +141 -0
- package/.claude/skills/monodesign/reference/live.md +622 -0
- package/.claude/skills/monodesign/reference/motion-design.md +109 -0
- package/.claude/skills/monodesign/reference/onboard.md +234 -0
- package/.claude/skills/monodesign/reference/optimize.md +258 -0
- package/.claude/skills/monodesign/reference/overdrive.md +130 -0
- package/.claude/skills/monodesign/reference/personas.md +179 -0
- package/.claude/skills/monodesign/reference/polish.md +233 -0
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
- package/.claude/skills/monodesign/reference/product.md +62 -0
- package/.claude/skills/monodesign/reference/quieter.md +99 -0
- package/.claude/skills/monodesign/reference/responsive-design.md +114 -0
- package/.claude/skills/monodesign/reference/shape.md +151 -0
- package/.claude/skills/monodesign/reference/spatial-design.md +100 -0
- package/.claude/skills/monodesign/reference/teach.md +156 -0
- package/.claude/skills/monodesign/reference/token-architecture.md +222 -0
- package/.claude/skills/monodesign/reference/typeset.md +124 -0
- package/.claude/skills/monodesign/reference/typography.md +159 -0
- package/.claude/skills/monodesign/reference/ux-research.md +143 -0
- package/.claude/skills/monodesign/reference/ux-rules.md +211 -0
- package/.claude/skills/monodesign/reference/ux-writing.md +107 -0
- package/.claude/skills/monomotion/SKILL.md +145 -0
- package/.claude/skills/monomotion/rules/api-control.md +139 -0
- package/.claude/skills/monomotion/rules/effects.md +109 -0
- package/.claude/skills/monomotion/rules/integration.md +140 -0
- package/.claude/skills/monomotion/rules/scroll.md +131 -0
- package/.claude/skills/monomotion/rules/sequencing.md +105 -0
- package/.claude/skills/monomotion/rules/svg.md +101 -0
- package/.claude/skills/monomotion/rules/text.md +119 -0
- package/.claude/skills/pair-programming/SKILL.md +1 -1
- package/.claude/skills/performance-analysis/SKILL.md +3 -3
- package/.claude/skills/{v3-performance-optimization → performance-optimization}/SKILL.md +16 -8
- package/.claude/skills/reasoningbank-agentdb/SKILL.md +17 -19
- package/.claude/skills/reasoningbank-intelligence/SKILL.md +4 -6
- package/.claude/skills/{v3-security-overhaul → security-hardening}/SKILL.md +13 -3
- package/.claude/skills/skill-builder/SKILL.md +19 -19
- package/.claude/skills/sparc-methodology/SKILL.md +55 -211
- package/.claude/skills/stop-slop/SKILL.md +67 -0
- package/.claude/skills/stop-slop/references/examples.md +61 -0
- package/.claude/skills/stop-slop/references/phrases.md +130 -0
- package/.claude/skills/stop-slop/references/structures.md +136 -0
- package/.claude/skills/swarm-advanced/SKILL.md +13 -43
- package/.claude/skills/{v3-swarm-coordination → swarm-coordination}/SKILL.md +39 -21
- package/.claude/skills/swarm-orchestration/SKILL.md +12 -12
- package/.claude/skills/verification-quality/SKILL.md +5 -5
- package/.claude/statusline-command.sh +0 -0
- package/.claude/statusline.sh +0 -0
- package/.claude-plugin/scripts/install.sh +0 -0
- package/.claude-plugin/scripts/uninstall.sh +0 -0
- package/.claude-plugin/scripts/verify.sh +0 -0
- package/README.md +5 -5
- package/package.json +17 -17
- package/packages/@monomind/cli/README.md +441 -0
- package/packages/@monomind/cli/bin/cli.js +78 -13
- package/packages/@monomind/cli/bin/mcp-server.js +0 -0
- package/packages/@monomind/cli/dist/src/agents/halt-signal.js +33 -7
- package/packages/@monomind/cli/dist/src/agents/managed-agent.js +5 -2
- package/packages/@monomind/cli/dist/src/agents/prompt-experiment.d.ts +3 -2
- package/packages/@monomind/cli/dist/src/agents/prompt-experiment.js +1 -1
- package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.d.ts +5 -2
- package/packages/@monomind/cli/dist/src/agents/prompt-version-manager.js +26 -4
- package/packages/@monomind/cli/dist/src/agents/specialization-scorer.js +17 -9
- package/packages/@monomind/cli/dist/src/agents/trigger-scanner.d.ts +5 -3
- package/packages/@monomind/cli/dist/src/agents/trigger-scanner.js +58 -10
- package/packages/@monomind/cli/dist/src/agents/version-store.d.ts +0 -1
- package/packages/@monomind/cli/dist/src/agents/version-store.js +44 -21
- package/packages/@monomind/cli/dist/src/autopilot-state.js +79 -28
- package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.d.ts +7 -2
- package/packages/@monomind/cli/dist/src/benchmarks/benchmark-runner.js +20 -8
- package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.d.ts +2 -1
- package/packages/@monomind/cli/dist/src/benchmarks/metric-evaluators.js +25 -2
- package/packages/@monomind/cli/dist/src/commands/agent.js +6 -4
- package/packages/@monomind/cli/dist/src/commands/appliance-advanced.js +23 -0
- package/packages/@monomind/cli/dist/src/commands/autopilot.js +3 -3
- package/packages/@monomind/cli/dist/src/commands/benchmark.js +119 -8
- package/packages/@monomind/cli/dist/src/commands/claims.js +22 -14
- package/packages/@monomind/cli/dist/src/commands/config.js +32 -0
- package/packages/@monomind/cli/dist/src/commands/daemon.js +13 -11
- package/packages/@monomind/cli/dist/src/commands/deployment.js +21 -2
- package/packages/@monomind/cli/dist/src/commands/doctor.js +5 -4
- package/packages/@monomind/cli/dist/src/commands/embeddings.js +124 -48
- package/packages/@monomind/cli/dist/src/commands/hive-mind.js +15 -14
- package/packages/@monomind/cli/dist/src/commands/hooks.js +45 -41
- package/packages/@monomind/cli/dist/src/commands/index.d.ts +2 -0
- package/packages/@monomind/cli/dist/src/commands/index.js +20 -7
- package/packages/@monomind/cli/dist/src/commands/init.js +53 -19
- package/packages/@monomind/cli/dist/src/commands/mcp.js +31 -44
- package/packages/@monomind/cli/dist/src/commands/memory.js +47 -15
- package/packages/@monomind/cli/dist/src/commands/migrate.js +156 -108
- package/packages/@monomind/cli/dist/src/commands/monograph.d.ts +8 -0
- package/packages/@monomind/cli/dist/src/commands/monograph.js +526 -0
- package/packages/@monomind/cli/dist/src/commands/neural.js +96 -56
- package/packages/@monomind/cli/dist/src/commands/performance.js +30 -8
- package/packages/@monomind/cli/dist/src/commands/plugins.js +13 -37
- package/packages/@monomind/cli/dist/src/commands/process.js +25 -2
- package/packages/@monomind/cli/dist/src/commands/providers.js +37 -5
- package/packages/@monomind/cli/dist/src/commands/replay.js +4 -4
- package/packages/@monomind/cli/dist/src/commands/route.js +37 -5
- package/packages/@monomind/cli/dist/src/commands/ruvector/import.js +12 -2
- package/packages/@monomind/cli/dist/src/commands/ruvector/init.js +15 -0
- package/packages/@monomind/cli/dist/src/commands/ruvector/status.js +16 -3
- package/packages/@monomind/cli/dist/src/commands/security.js +342 -193
- package/packages/@monomind/cli/dist/src/commands/session.js +51 -8
- package/packages/@monomind/cli/dist/src/commands/start.js +18 -4
- package/packages/@monomind/cli/dist/src/commands/swarm.js +47 -36
- package/packages/@monomind/cli/dist/src/commands/tokens.js +11 -11
- package/packages/@monomind/cli/dist/src/commands/transfer-store.js +1 -1
- package/packages/@monomind/cli/dist/src/commands/workflow.js +31 -4
- package/packages/@monomind/cli/dist/src/config-adapter.d.ts +2 -1
- package/packages/@monomind/cli/dist/src/consensus/audit-writer.js +46 -13
- package/packages/@monomind/cli/dist/src/consensus/vote-signer.d.ts +0 -3
- package/packages/@monomind/cli/dist/src/consensus/vote-signer.js +9 -1
- package/packages/@monomind/cli/dist/src/dlq/dlq-reader.d.ts +4 -2
- package/packages/@monomind/cli/dist/src/dlq/dlq-reader.js +25 -8
- package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.d.ts +10 -3
- package/packages/@monomind/cli/dist/src/dlq/dlq-replayer.js +50 -16
- package/packages/@monomind/cli/dist/src/dlq/dlq-writer.js +27 -5
- package/packages/@monomind/cli/dist/src/eval/dataset-manager.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/eval/dataset-manager.js +26 -16
- package/packages/@monomind/cli/dist/src/eval/trace-collector.js +23 -3
- package/packages/@monomind/cli/dist/src/index.js +12 -10
- package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +8 -8
- package/packages/@monomind/cli/dist/src/init/executor.js +153 -70
- package/packages/@monomind/cli/dist/src/init/helpers-generator.js +35 -22
- package/packages/@monomind/cli/dist/src/init/mcp-generator.js +3 -3
- package/packages/@monomind/cli/dist/src/init/settings-generator.js +10 -3
- package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +18 -3
- package/packages/@monomind/cli/dist/src/init/statusline-generator.js +3 -1
- package/packages/@monomind/cli/dist/src/init/types.d.ts +35 -11
- package/packages/@monomind/cli/dist/src/init/types.js +5 -9
- package/packages/@monomind/cli/dist/src/interactive/interrupt.js +8 -3
- package/packages/@monomind/cli/dist/src/mcp/tool-registry.js +38 -4
- package/packages/@monomind/cli/dist/src/mcp-client.js +10 -4
- package/packages/@monomind/cli/dist/src/mcp-server.d.ts +9 -2
- package/packages/@monomind/cli/dist/src/mcp-server.js +182 -35
- package/packages/@monomind/cli/dist/src/mcp-tools/agent-tools.js +66 -34
- package/packages/@monomind/cli/dist/src/mcp-tools/agentdb-tools.js +34 -7
- package/packages/@monomind/cli/dist/src/mcp-tools/analyze-tools.js +25 -16
- package/packages/@monomind/cli/dist/src/mcp-tools/auto-install.js +4 -6
- package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +12 -2
- package/packages/@monomind/cli/dist/src/mcp-tools/browser-tools.js +199 -20
- package/packages/@monomind/cli/dist/src/mcp-tools/claims-tools.js +68 -18
- package/packages/@monomind/cli/dist/src/mcp-tools/config-tools.js +33 -5
- package/packages/@monomind/cli/dist/src/mcp-tools/coordination-tools.js +59 -4
- package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +46 -10
- package/packages/@monomind/cli/dist/src/mcp-tools/embeddings-tools.js +46 -5
- package/packages/@monomind/cli/dist/src/mcp-tools/github-tools.js +29 -16
- package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +38 -10
- package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +96 -33
- package/packages/@monomind/cli/dist/src/mcp-tools/hooks-tools.js +70 -37
- package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +29 -13
- package/packages/@monomind/cli/dist/src/mcp-tools/monograph-tools.js +5867 -56
- package/packages/@monomind/cli/dist/src/mcp-tools/neural-tools.js +121 -37
- package/packages/@monomind/cli/dist/src/mcp-tools/performance-tools.js +21 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +10 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/request-tracker.js +4 -1
- package/packages/@monomind/cli/dist/src/mcp-tools/ruvllm-tools.js +19 -8
- package/packages/@monomind/cli/dist/src/mcp-tools/session-tools.js +57 -17
- package/packages/@monomind/cli/dist/src/mcp-tools/swarm-tools.js +35 -17
- package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +4 -3
- package/packages/@monomind/cli/dist/src/mcp-tools/task-tools.js +53 -13
- package/packages/@monomind/cli/dist/src/mcp-tools/terminal-tools.js +63 -14
- package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +21 -16
- package/packages/@monomind/cli/dist/src/mcp-tools/workflow-tools.js +92 -23
- package/packages/@monomind/cli/dist/src/memory/ewc-consolidation.js +41 -10
- package/packages/@monomind/cli/dist/src/memory/intelligence.d.ts +2 -2
- package/packages/@monomind/cli/dist/src/memory/intelligence.js +39 -13
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +1 -0
- package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +149 -56
- package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +107 -45
- package/packages/@monomind/cli/dist/src/memory/sona-optimizer.d.ts +8 -1
- package/packages/@monomind/cli/dist/src/memory/sona-optimizer.js +25 -8
- package/packages/@monomind/cli/dist/src/observability/replay-reader.d.ts +40 -0
- package/packages/@monomind/cli/dist/src/observability/replay-reader.js +138 -0
- package/packages/@monomind/cli/dist/src/orchestration/routing-modes.js +35 -5
- package/packages/@monomind/cli/dist/src/parser.d.ts +8 -0
- package/packages/@monomind/cli/dist/src/parser.js +48 -14
- package/packages/@monomind/cli/dist/src/plugins/manager.js +112 -19
- package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +80 -62
- package/packages/@monomind/cli/dist/src/production/circuit-breaker.js +8 -1
- package/packages/@monomind/cli/dist/src/production/error-handler.d.ts +4 -2
- package/packages/@monomind/cli/dist/src/production/error-handler.js +27 -5
- package/packages/@monomind/cli/dist/src/production/monitoring.js +8 -4
- package/packages/@monomind/cli/dist/src/production/rate-limiter.js +30 -22
- package/packages/@monomind/cli/dist/src/ruvector/agent-wasm.js +2 -2
- package/packages/@monomind/cli/dist/src/ruvector/coverage-router.js +19 -9
- package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.d.ts +1 -0
- package/packages/@monomind/cli/dist/src/ruvector/diff-classifier.js +26 -6
- package/packages/@monomind/cli/dist/src/ruvector/enhanced-model-router.js +24 -2
- package/packages/@monomind/cli/dist/src/ruvector/index.d.ts +1 -2
- package/packages/@monomind/cli/dist/src/ruvector/index.js +2 -2
- package/packages/@monomind/cli/dist/src/ruvector/model-router.d.ts +4 -2
- package/packages/@monomind/cli/dist/src/ruvector/model-router.js +30 -6
- package/packages/@monomind/cli/dist/src/ruvector/moe-router.d.ts +7 -0
- package/packages/@monomind/cli/dist/src/ruvector/moe-router.js +35 -12
- package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.d.ts +7 -1
- package/packages/@monomind/cli/dist/src/ruvector/q-learning-router.js +40 -9
- package/packages/@monomind/cli/dist/src/services/claim-service.d.ts +3 -1
- package/packages/@monomind/cli/dist/src/services/claim-service.js +33 -2
- package/packages/@monomind/cli/dist/src/services/config-file-manager.d.ts +16 -2
- package/packages/@monomind/cli/dist/src/services/config-file-manager.js +105 -17
- package/packages/@monomind/cli/dist/src/services/container-worker-pool.js +51 -11
- package/packages/@monomind/cli/dist/src/services/headless-worker-executor.d.ts +7 -0
- package/packages/@monomind/cli/dist/src/services/headless-worker-executor.js +188 -45
- package/packages/@monomind/cli/dist/src/services/registry-api.js +62 -9
- package/packages/@monomind/cli/dist/src/services/ruvector-training.js +8 -0
- package/packages/@monomind/cli/dist/src/services/worker-daemon.d.ts +4 -1
- package/packages/@monomind/cli/dist/src/services/worker-daemon.js +112 -28
- package/packages/@monomind/cli/dist/src/services/worker-queue.d.ts +9 -2
- package/packages/@monomind/cli/dist/src/services/worker-queue.js +86 -5
- package/packages/@monomind/cli/dist/src/suggest.js +9 -0
- package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.d.ts +5 -3
- package/packages/@monomind/cli/dist/src/swarm/flow-enforcer.js +17 -5
- package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.d.ts +3 -0
- package/packages/@monomind/cli/dist/src/swarm/flow-visualizer.js +30 -6
- package/packages/@monomind/cli/dist/src/transfer/anonymization/index.js +5 -3
- package/packages/@monomind/cli/dist/src/transfer/export.js +5 -3
- package/packages/@monomind/cli/dist/src/transfer/ipfs/client.js +84 -7
- package/packages/@monomind/cli/dist/src/transfer/ipfs/upload.js +13 -4
- package/packages/@monomind/cli/dist/src/transfer/storage/gcs.js +19 -10
- package/packages/@monomind/cli/dist/src/transfer/store/discovery.d.ts +9 -2
- package/packages/@monomind/cli/dist/src/transfer/store/discovery.js +68 -13
- package/packages/@monomind/cli/dist/src/transfer/store/download.d.ts +15 -6
- package/packages/@monomind/cli/dist/src/transfer/store/download.js +113 -24
- package/packages/@monomind/cli/dist/src/transfer/store/publish.d.ts +1 -1
- package/packages/@monomind/cli/dist/src/transfer/store/publish.js +13 -14
- package/packages/@monomind/cli/dist/src/transfer/store/registry.d.ts +3 -3
- package/packages/@monomind/cli/dist/src/transfer/store/registry.js +32 -16
- package/packages/@monomind/cli/dist/src/update/checker.js +17 -4
- package/packages/@monomind/cli/dist/src/update/executor.js +25 -20
- package/packages/@monomind/cli/dist/src/update/rate-limiter.d.ts +11 -0
- package/packages/@monomind/cli/dist/src/update/rate-limiter.js +23 -3
- package/packages/@monomind/cli/dist/src/utils/parse-jsonl.d.ts +6 -0
- package/packages/@monomind/cli/dist/src/utils/parse-jsonl.js +22 -0
- package/packages/@monomind/cli/dist/src/workflow/condition-evaluator.js +37 -3
- package/packages/@monomind/cli/dist/src/workflow/dag-builder.js +27 -11
- package/packages/@monomind/cli/dist/src/workflow/dag-executor.js +51 -13
- package/packages/@monomind/cli/dist/src/workflow/dsl-schema.d.ts +3 -0
- package/packages/@monomind/cli/dist/src/workflow/dsl-schema.js +6 -2
- package/packages/@monomind/cli/dist/src/workflow/template-engine.js +7 -0
- package/packages/@monomind/cli/dist/src/workflow/workflow-executor.js +95 -14
- package/packages/@monomind/cli/package.json +5 -3
- package/packages/@monomind/guidance/README.md +1192 -0
- package/packages/@monomind/shared/README.md +322 -0
- package/packages/@monomind/shared/dist/types/consensus-audit.d.ts +3 -1
- package/packages/README.md +513 -0
- package/.claude/agents/design/design-brand-guardian.md +0 -323
- package/.claude/agents/design/design-image-prompt-engineer.md +0 -237
- package/.claude/agents/design/design-inclusive-visuals-specialist.md +0 -72
- package/.claude/agents/design/design-ui-designer.md +0 -384
- package/.claude/agents/design/design-ux-architect.md +0 -470
- package/.claude/agents/design/design-ux-researcher.md +0 -330
- package/.claude/agents/design/design-visual-storyteller.md +0 -150
- package/.claude/agents/design/design-whimsy-injector.md +0 -439
- package/.claude/agents/v3/integration-architect.md +0 -338
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/coordination/init.md +0 -44
- package/.claude/commands/coordination/orchestrate.md +0 -43
- package/.claude/commands/coordination/spawn.md +0 -45
- package/.claude/commands/github/code-review-swarm.md +0 -550
- package/.claude/commands/github/code-review.md +0 -25
- package/.claude/commands/github/github-swarm.md +0 -121
- package/.claude/commands/github/issue-triage.md +0 -25
- package/.claude/commands/github/multi-repo-swarm.md +0 -519
- package/.claude/commands/github/pr-enhance.md +0 -26
- package/.claude/commands/github/project-board-sync.md +0 -471
- package/.claude/commands/github/release-swarm.md +0 -590
- package/.claude/commands/github/repo-analyze.md +0 -25
- package/.claude/commands/github/swarm-issue.md +0 -482
- package/.claude/commands/github/swarm-pr.md +0 -310
- package/.claude/commands/github/workflow-automation.md +0 -468
- package/.claude/commands/hive-mind/hive-mind-metrics.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-resume.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-sessions.md +0 -8
- package/.claude/commands/hive-mind/hive-mind-wizard.md +0 -8
- package/.claude/commands/list-agents.md +0 -17
- package/.claude/commands/memory/memory-persist.md +0 -25
- package/.claude/commands/memory/memory-usage.md +0 -25
- package/.claude/commands/memory/neural.md +0 -47
- package/.claude/commands/metrics.md +0 -11
- package/.claude/commands/monitoring/real-time-view.md +0 -25
- package/.claude/commands/monitoring/swarm-monitor.md +0 -25
- package/.claude/commands/monomind-createtask.md +0 -302
- package/.claude/commands/monomind-help.md +0 -103
- package/.claude/commands/monomind-memory.md +0 -107
- package/.claude/commands/monomind-repeat.md +0 -149
- package/.claude/commands/monomind-swarm.md +0 -205
- package/.claude/commands/optimization/cache-manage.md +0 -25
- package/.claude/commands/optimization/topology-optimize.md +0 -25
- package/.claude/commands/pair/commands.md +0 -546
- package/.claude/commands/pair/config.md +0 -510
- package/.claude/commands/pair/start.md +0 -209
- package/.claude/commands/use-agent.md +0 -67
- package/.claude/skills/monomind-createtask/SKILL.md +0 -269
- package/.claude/skills/monomind-task-engine/SKILL.md +0 -358
- /package/.claude/agents/{v3 → specialists}/memory-specialist.md +0 -0
- /package/.claude/agents/{v3 → specialists}/performance-engineer.md +0 -0
- /package/.claude/agents/{v3 → specialists}/queen-coordinator.md +0 -0
- /package/.claude/agents/{v3 → specialists}/security-architect.md +0 -0
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
* DLQ Replayer (Task 37)
|
|
3
3
|
*
|
|
4
4
|
* Replays dead-letter queue entries by re-invoking the original tool call.
|
|
5
|
+
*
|
|
6
|
+
* CONCURRENCY: Uses append-only status records to avoid racing with DLQWriter.enqueue().
|
|
7
|
+
* A status record `{ _statusFor, status, replayedAt, replayResult }` is appended after
|
|
8
|
+
* replay. readAll() merges status records into the base entries — the last status wins.
|
|
9
|
+
* Compaction rewrites the file when status records exceed 20% of total lines.
|
|
5
10
|
*/
|
|
6
11
|
import type { DLQReplayResult } from '../../../shared/src/types/dlq.js';
|
|
7
12
|
/** A function that attempts to call a tool with the original payload */
|
|
@@ -10,10 +15,12 @@ export declare class DLQReplayer {
|
|
|
10
15
|
private readonly filePath;
|
|
11
16
|
private readonly toolCaller;
|
|
12
17
|
constructor(filePath: string, toolCaller: ToolCaller);
|
|
13
|
-
/** Read all entries */
|
|
18
|
+
/** Read all lines, merge status records into entries. Last status wins. */
|
|
14
19
|
private readAll;
|
|
15
|
-
/**
|
|
16
|
-
private
|
|
20
|
+
/** Append a status-change record — never touches existing lines, safe alongside DLQWriter. */
|
|
21
|
+
private appendStatus;
|
|
22
|
+
/** Compact: rewrite file with merged entries only, removing status records. */
|
|
23
|
+
private compact;
|
|
17
24
|
/** Replay a single DLQ entry by messageId */
|
|
18
25
|
replay(messageId: string): Promise<DLQReplayResult>;
|
|
19
26
|
}
|
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
* DLQ Replayer (Task 37)
|
|
3
3
|
*
|
|
4
4
|
* Replays dead-letter queue entries by re-invoking the original tool call.
|
|
5
|
+
*
|
|
6
|
+
* CONCURRENCY: Uses append-only status records to avoid racing with DLQWriter.enqueue().
|
|
7
|
+
* A status record `{ _statusFor, status, replayedAt, replayResult }` is appended after
|
|
8
|
+
* replay. readAll() merges status records into the base entries — the last status wins.
|
|
9
|
+
* Compaction rewrites the file when status records exceed 20% of total lines.
|
|
5
10
|
*/
|
|
6
|
-
import { readFileSync,
|
|
11
|
+
import { appendFileSync, existsSync, readFileSync, renameSync, statSync, writeFileSync } from 'fs';
|
|
7
12
|
export class DLQReplayer {
|
|
8
13
|
filePath;
|
|
9
14
|
toolCaller;
|
|
@@ -11,23 +16,52 @@ export class DLQReplayer {
|
|
|
11
16
|
this.filePath = filePath;
|
|
12
17
|
this.toolCaller = toolCaller;
|
|
13
18
|
}
|
|
14
|
-
/** Read all entries */
|
|
19
|
+
/** Read all lines, merge status records into entries. Last status wins. */
|
|
15
20
|
readAll() {
|
|
16
21
|
if (!existsSync(this.filePath))
|
|
17
|
-
return [];
|
|
22
|
+
return { entries: [], rawLineCount: 0 };
|
|
23
|
+
const stat = statSync(this.filePath);
|
|
24
|
+
if (stat.size > 256 * 1024 * 1024) {
|
|
25
|
+
throw new Error(`DLQ file exceeds 256MB (${stat.size} bytes). Run rotation/cleanup.`);
|
|
26
|
+
}
|
|
18
27
|
const raw = readFileSync(this.filePath, 'utf-8').trim();
|
|
19
28
|
if (!raw)
|
|
20
|
-
return [];
|
|
21
|
-
|
|
29
|
+
return { entries: [], rawLineCount: 0 };
|
|
30
|
+
const lines = raw.split('\n').filter(Boolean);
|
|
31
|
+
const statusMap = new Map();
|
|
32
|
+
const baseEntries = [];
|
|
33
|
+
for (const line of lines) {
|
|
34
|
+
try {
|
|
35
|
+
const parsed = JSON.parse(line);
|
|
36
|
+
if (parsed._statusFor) {
|
|
37
|
+
statusMap.set(parsed._statusFor, parsed);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
baseEntries.push(parsed);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch { /* skip malformed lines */ }
|
|
44
|
+
}
|
|
45
|
+
const entries = baseEntries.map((e) => {
|
|
46
|
+
const s = statusMap.get(e.messageId);
|
|
47
|
+
return s ? { ...e, status: s.status, replayedAt: s.replayedAt, replayResult: s.replayResult } : e;
|
|
48
|
+
});
|
|
49
|
+
return { entries, rawLineCount: lines.length };
|
|
50
|
+
}
|
|
51
|
+
/** Append a status-change record — never touches existing lines, safe alongside DLQWriter. */
|
|
52
|
+
appendStatus(record) {
|
|
53
|
+
appendFileSync(this.filePath, JSON.stringify(record) + '\n', 'utf-8');
|
|
22
54
|
}
|
|
23
|
-
/**
|
|
24
|
-
|
|
55
|
+
/** Compact: rewrite file with merged entries only, removing status records. */
|
|
56
|
+
compact(entries) {
|
|
25
57
|
const content = entries.map((e) => JSON.stringify(e)).join('\n') + (entries.length ? '\n' : '');
|
|
26
|
-
|
|
58
|
+
const tmp = `${this.filePath}.${process.pid}.${Date.now()}.tmp`;
|
|
59
|
+
writeFileSync(tmp, content, 'utf-8');
|
|
60
|
+
renameSync(tmp, this.filePath);
|
|
27
61
|
}
|
|
28
62
|
/** Replay a single DLQ entry by messageId */
|
|
29
63
|
async replay(messageId) {
|
|
30
|
-
const entries = this.readAll();
|
|
64
|
+
const { entries, rawLineCount } = this.readAll();
|
|
31
65
|
const entry = entries.find((e) => e.messageId === messageId);
|
|
32
66
|
if (!entry) {
|
|
33
67
|
throw new Error(`DLQ entry not found: ${messageId}`);
|
|
@@ -38,17 +72,17 @@ export class DLQReplayer {
|
|
|
38
72
|
const now = new Date().toISOString();
|
|
39
73
|
try {
|
|
40
74
|
await this.toolCaller(entry.toolName, entry.originalPayload);
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
75
|
+
this.appendStatus({ _statusFor: messageId, status: 'replayed', replayedAt: now, replayResult: 'success' });
|
|
76
|
+
// Compact when status records inflate file by >20%
|
|
77
|
+
if (rawLineCount > 0 && (rawLineCount - entries.length) / rawLineCount > 0.2) {
|
|
78
|
+
const merged = entries.map((e) => e.messageId === messageId ? { ...e, status: 'replayed', replayedAt: now, replayResult: 'success' } : e);
|
|
79
|
+
this.compact(merged);
|
|
80
|
+
}
|
|
45
81
|
return { messageId, success: true, replayedAt: now };
|
|
46
82
|
}
|
|
47
83
|
catch (err) {
|
|
48
84
|
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
49
|
-
|
|
50
|
-
// status stays 'pending'
|
|
51
|
-
this.writeAll(entries);
|
|
85
|
+
this.appendStatus({ _statusFor: messageId, status: 'pending', replayedAt: now, replayResult: 'failed_again' });
|
|
52
86
|
return { messageId, success: false, errorMessage, replayedAt: now };
|
|
53
87
|
}
|
|
54
88
|
}
|
|
@@ -5,14 +5,19 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { randomUUID } from 'crypto';
|
|
7
7
|
import { existsSync, mkdirSync, appendFileSync } from 'fs';
|
|
8
|
-
import { join } from 'path';
|
|
8
|
+
import { join, resolve, sep } from 'path';
|
|
9
9
|
export class DLQWriter {
|
|
10
10
|
filePath;
|
|
11
11
|
constructor(dataDir) {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const resolvedDataDir = resolve(dataDir);
|
|
13
|
+
const allowedRoot = resolve(process.env.MONOMIND_DATA_DIR ?? process.cwd());
|
|
14
|
+
if (resolvedDataDir !== allowedRoot && !resolvedDataDir.startsWith(allowedRoot + sep)) {
|
|
15
|
+
throw new Error(`DLQ dataDir escapes allowed root: ${resolvedDataDir}`);
|
|
14
16
|
}
|
|
15
|
-
|
|
17
|
+
if (!existsSync(resolvedDataDir)) {
|
|
18
|
+
mkdirSync(resolvedDataDir, { recursive: true });
|
|
19
|
+
}
|
|
20
|
+
this.filePath = join(resolvedDataDir, 'dead-letter-queue.jsonl');
|
|
16
21
|
}
|
|
17
22
|
/** Enqueue a failed message into the DLQ */
|
|
18
23
|
enqueue(input) {
|
|
@@ -32,7 +37,24 @@ export class DLQWriter {
|
|
|
32
37
|
status: 'pending',
|
|
33
38
|
tags: input.tags ?? [],
|
|
34
39
|
};
|
|
35
|
-
|
|
40
|
+
// JSON.stringify can throw on circular references, BigInt, and non-serializable
|
|
41
|
+
// values. originalPayload is `unknown` (caller-controlled), so a malicious or
|
|
42
|
+
// malformed input could otherwise crash the writer mid-flight. Fall back to
|
|
43
|
+
// a sanitized record so the audit trail is preserved.
|
|
44
|
+
let serialized;
|
|
45
|
+
try {
|
|
46
|
+
serialized = JSON.stringify(entry);
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
serialized = JSON.stringify({
|
|
50
|
+
messageId: entry.messageId,
|
|
51
|
+
toolName: entry.toolName,
|
|
52
|
+
archivedAt: entry.archivedAt,
|
|
53
|
+
status: 'pending',
|
|
54
|
+
finalError: 'serialize_failed',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
appendFileSync(this.filePath, serialized + '\n', 'utf-8');
|
|
36
58
|
return entry;
|
|
37
59
|
}
|
|
38
60
|
/** Get the file path (for reader/replayer) */
|
|
@@ -26,8 +26,8 @@ export declare class DatasetManager {
|
|
|
26
26
|
*/
|
|
27
27
|
addTraceToDataset(datasetId: string, traceId: string): EvalDatasetEntry;
|
|
28
28
|
/**
|
|
29
|
-
* Export a dataset to a JSON file.
|
|
29
|
+
* Export a dataset to a JSON file. Output path must be within `allowedRoot`.
|
|
30
30
|
*/
|
|
31
|
-
exportToFile(datasetId: string, outputPath: string): void;
|
|
31
|
+
exportToFile(datasetId: string, outputPath: string, allowedRoot?: string): void;
|
|
32
32
|
}
|
|
33
33
|
//# sourceMappingURL=dataset-manager.d.ts.map
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
* DatasetManager - JSONL-based eval dataset management (Task 33)
|
|
3
3
|
*/
|
|
4
4
|
import { randomUUID } from 'crypto';
|
|
5
|
-
import { appendFileSync, readFileSync, writeFileSync, existsSync } from 'fs';
|
|
5
|
+
import { appendFileSync, readFileSync, writeFileSync, renameSync, existsSync, statSync } from 'fs';
|
|
6
|
+
import { resolve, sep } from 'path';
|
|
7
|
+
import { parseJsonl } from '../utils/parse-jsonl.js';
|
|
6
8
|
export class DatasetManager {
|
|
7
9
|
datasetsPath;
|
|
8
10
|
entriesPath;
|
|
@@ -43,10 +45,11 @@ export class DatasetManager {
|
|
|
43
45
|
listDatasets() {
|
|
44
46
|
if (!existsSync(this.datasetsPath))
|
|
45
47
|
return [];
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
if (statSync(this.datasetsPath).size > 50 * 1024 * 1024) {
|
|
49
|
+
throw new Error('Dataset file exceeds 50MB — run cleanup');
|
|
50
|
+
}
|
|
51
|
+
const content = readFileSync(this.datasetsPath, 'utf-8');
|
|
52
|
+
return parseJsonl(content);
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* Get entries for a specific dataset.
|
|
@@ -54,13 +57,11 @@ export class DatasetManager {
|
|
|
54
57
|
getEntries(datasetId) {
|
|
55
58
|
if (!existsSync(this.entriesPath))
|
|
56
59
|
return [];
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
.map((line) => JSON.parse(line))
|
|
63
|
-
.filter((e) => e.datasetId === datasetId);
|
|
60
|
+
if (statSync(this.entriesPath).size > 50 * 1024 * 1024) {
|
|
61
|
+
throw new Error('Entries file exceeds 50MB — run cleanup');
|
|
62
|
+
}
|
|
63
|
+
const content = readFileSync(this.entriesPath, 'utf-8');
|
|
64
|
+
return parseJsonl(content).filter((e) => e.datasetId === datasetId);
|
|
64
65
|
}
|
|
65
66
|
/**
|
|
66
67
|
* Add a single trace to an existing dataset.
|
|
@@ -73,7 +74,7 @@ export class DatasetManager {
|
|
|
73
74
|
addedAt: new Date().toISOString(),
|
|
74
75
|
};
|
|
75
76
|
appendFileSync(this.entriesPath, JSON.stringify(entry) + '\n', 'utf-8');
|
|
76
|
-
// Update dataset entryCount
|
|
77
|
+
// Update dataset entryCount via atomic write
|
|
77
78
|
const datasets = this.listDatasets();
|
|
78
79
|
const updated = datasets.map((d) => {
|
|
79
80
|
if (d.datasetId === datasetId) {
|
|
@@ -81,13 +82,22 @@ export class DatasetManager {
|
|
|
81
82
|
}
|
|
82
83
|
return d;
|
|
83
84
|
});
|
|
84
|
-
|
|
85
|
+
const tmp = `${this.datasetsPath}.${randomUUID()}.tmp`;
|
|
86
|
+
writeFileSync(tmp, updated.map((d) => JSON.stringify(d)).join('\n') + '\n', 'utf-8');
|
|
87
|
+
renameSync(tmp, this.datasetsPath);
|
|
85
88
|
return entry;
|
|
86
89
|
}
|
|
87
90
|
/**
|
|
88
|
-
* Export a dataset to a JSON file.
|
|
91
|
+
* Export a dataset to a JSON file. Output path must be within `allowedRoot`.
|
|
89
92
|
*/
|
|
90
|
-
exportToFile(datasetId, outputPath) {
|
|
93
|
+
exportToFile(datasetId, outputPath, allowedRoot) {
|
|
94
|
+
if (allowedRoot) {
|
|
95
|
+
const resolvedOut = resolve(outputPath);
|
|
96
|
+
const resolvedRoot = resolve(allowedRoot);
|
|
97
|
+
if (!resolvedOut.startsWith(resolvedRoot + sep) && resolvedOut !== resolvedRoot) {
|
|
98
|
+
throw new Error(`Export path escapes allowed root: ${resolvedOut}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
91
101
|
const datasets = this.listDatasets();
|
|
92
102
|
const dataset = datasets.find((d) => d.datasetId === datasetId);
|
|
93
103
|
const entries = this.getEntries(datasetId);
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* TraceCollector - JSONL-based production trace collection (Task 33)
|
|
3
3
|
*/
|
|
4
4
|
import { randomUUID } from 'crypto';
|
|
5
|
-
import { appendFileSync, readFileSync, existsSync } from 'fs';
|
|
5
|
+
import { appendFileSync, readFileSync, existsSync, statSync } from 'fs';
|
|
6
|
+
import { parseJsonl } from '../utils/parse-jsonl.js';
|
|
6
7
|
export class TraceCollector {
|
|
7
8
|
filePath;
|
|
8
9
|
constructor(filePath) {
|
|
@@ -55,7 +56,22 @@ export class TraceCollector {
|
|
|
55
56
|
correctedOutput: input.correctedOutput,
|
|
56
57
|
tags: this.autoTag(input),
|
|
57
58
|
};
|
|
58
|
-
|
|
59
|
+
// Defensive serialization — agent outputs may contain circular references
|
|
60
|
+
// or BigInt; without this guard the writer crashes mid-trace.
|
|
61
|
+
let serialized;
|
|
62
|
+
try {
|
|
63
|
+
serialized = JSON.stringify(trace);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
serialized = JSON.stringify({
|
|
67
|
+
traceId: trace.traceId,
|
|
68
|
+
agentSlug: trace.agentSlug,
|
|
69
|
+
capturedAt: trace.capturedAt,
|
|
70
|
+
reviewStatus: trace.reviewStatus,
|
|
71
|
+
outcome: 'serialize_failed',
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
appendFileSync(this.filePath, serialized + '\n', 'utf-8');
|
|
59
75
|
return trace;
|
|
60
76
|
}
|
|
61
77
|
/**
|
|
@@ -64,10 +80,14 @@ export class TraceCollector {
|
|
|
64
80
|
readAll() {
|
|
65
81
|
if (!existsSync(this.filePath))
|
|
66
82
|
return [];
|
|
83
|
+
const stat = statSync(this.filePath);
|
|
84
|
+
if (stat.size > 256 * 1024 * 1024) {
|
|
85
|
+
throw new Error(`Trace file exceeds 256MB (${stat.size} bytes). Run rotation/cleanup.`);
|
|
86
|
+
}
|
|
67
87
|
const content = readFileSync(this.filePath, 'utf-8').trim();
|
|
68
88
|
if (!content)
|
|
69
89
|
return [];
|
|
70
|
-
return content
|
|
90
|
+
return parseJsonl(content);
|
|
71
91
|
}
|
|
72
92
|
/**
|
|
73
93
|
* Get traces pending review, with optional limit.
|
|
@@ -206,7 +206,7 @@ export class CLI {
|
|
|
206
206
|
}
|
|
207
207
|
else {
|
|
208
208
|
// No action - show command help
|
|
209
|
-
this.showCommandHelp(commandName);
|
|
209
|
+
await this.showCommandHelp(commandName);
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
catch (error) {
|
|
@@ -386,7 +386,7 @@ export class CLI {
|
|
|
386
386
|
async loadConfig(configPath) {
|
|
387
387
|
try {
|
|
388
388
|
// Import config utilities
|
|
389
|
-
const { loadConfig: loadSystemConfig } = await import('@
|
|
389
|
+
const { loadConfig: loadSystemConfig } = await import('@monomind/shared');
|
|
390
390
|
const { systemConfigToMonomindConfig } = await import('./config-adapter.js');
|
|
391
391
|
// Load configuration
|
|
392
392
|
const loaded = await loadSystemConfig({
|
|
@@ -414,30 +414,32 @@ export class CLI {
|
|
|
414
414
|
/**
|
|
415
415
|
* Initialize optional subsystems at startup (non-blocking, all failures are silent).
|
|
416
416
|
* Wires TierManager, ObservabilityBus + TraceCollector, and SwarmCheckpointer
|
|
417
|
-
* so that packages/@
|
|
417
|
+
* so that packages/@monomind/* actually contribute to the live runtime.
|
|
418
418
|
*/
|
|
419
419
|
async initSubsystems() {
|
|
420
420
|
// GAP-003: TierManager
|
|
421
421
|
try {
|
|
422
|
-
const { TierManager, createPersistentService } = await import('@
|
|
422
|
+
const { TierManager, createPersistentService } = await import('@monomind/memory');
|
|
423
423
|
const backend = createPersistentService('.monomind/memory');
|
|
424
|
-
new TierManager(backend, { shortTermCapacity: 1000 });
|
|
424
|
+
const _tierManager = new TierManager(backend, { shortTermCapacity: 1000 });
|
|
425
|
+
void _tierManager;
|
|
425
426
|
}
|
|
426
427
|
catch { /* optional — monomind/memory may not be installed */ }
|
|
427
428
|
// GAP-004/005/006: Register background workers (EntityExtractor, EpisodeBinner, TraceCollector)
|
|
428
429
|
try {
|
|
429
|
-
const { initDefaultWorkers } = await import('@
|
|
430
|
+
const { initDefaultWorkers } = await import('@monomind/hooks');
|
|
430
431
|
await initDefaultWorkers();
|
|
431
432
|
}
|
|
432
433
|
catch { /* optional */ }
|
|
433
434
|
// GAP-007: SwarmCheckpointer — write checkpoint files so crashed swarms can resume
|
|
434
435
|
try {
|
|
435
|
-
const { SwarmCheckpointer } = await import('@
|
|
436
|
-
new SwarmCheckpointer({
|
|
436
|
+
const { SwarmCheckpointer } = await import('@monomind/memory');
|
|
437
|
+
const _swarmCheckpointer = new SwarmCheckpointer({
|
|
437
438
|
dbPath: '.monomind/checkpoints/swarm.jsonl',
|
|
438
439
|
swarmId: 'default',
|
|
439
440
|
sessionId: `session-${Date.now()}`,
|
|
440
441
|
});
|
|
442
|
+
void _swarmCheckpointer;
|
|
441
443
|
}
|
|
442
444
|
catch { /* optional — monomind/memory may not be installed */ }
|
|
443
445
|
// Task 30: Build unified agent registry — extras (canonical) first, dev copies second.
|
|
@@ -490,7 +492,7 @@ export class CLI {
|
|
|
490
492
|
catch { /* optional */ }
|
|
491
493
|
// Task 01-03: SemanticRouteLayer + LLMFallbackRouting + KeywordRouting
|
|
492
494
|
try {
|
|
493
|
-
const { RouteLayer, ALL_ROUTES } = await import('@
|
|
495
|
+
const { RouteLayer, ALL_ROUTES } = await import('@monomind/routing');
|
|
494
496
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
495
497
|
const routerConfig = { routes: ALL_ROUTES, enableKeywordFilter: true };
|
|
496
498
|
// Task 02: LLMFallback — wire Anthropic Haiku when API key is present
|
|
@@ -513,7 +515,7 @@ export class CLI {
|
|
|
513
515
|
// Expose for router.cjs via process global (router.cjs already checks __monomindRouteLayer)
|
|
514
516
|
process.__monomindRouteLayer = routeLayer;
|
|
515
517
|
}
|
|
516
|
-
catch { /* optional — @
|
|
518
|
+
catch { /* optional — @monomind/routing may not be installed */ }
|
|
517
519
|
}
|
|
518
520
|
/**
|
|
519
521
|
* Handle errors
|
|
@@ -369,18 +369,18 @@ MONOMIND_MEMORY_PATH=./data/memory
|
|
|
369
369
|
\`\`\``;
|
|
370
370
|
}
|
|
371
371
|
function graphifySection() {
|
|
372
|
-
return `## Knowledge Graph (
|
|
372
|
+
return `## Knowledge Graph (Monograph)
|
|
373
373
|
|
|
374
|
-
Built into monomind since v1.
|
|
374
|
+
Built into monomind since v1.8.0 — no separate install needed. Pure TypeScript, no Python required.
|
|
375
375
|
|
|
376
376
|
### MCP Tools (prefix: \`mcp__monomind__\`)
|
|
377
377
|
|
|
378
378
|
| Tool | Description |
|
|
379
379
|
|------|-------------|
|
|
380
|
-
| \`
|
|
381
|
-
| \`
|
|
382
|
-
| \`
|
|
383
|
-
| \`
|
|
380
|
+
| \`monograph_build\` | Build or refresh knowledge graph from codebase |
|
|
381
|
+
| \`monograph_report\` | Generate GRAPH_REPORT.md with community breakdown |
|
|
382
|
+
| \`monograph_suggest\` | Get refactoring/architecture suggestions from graph |
|
|
383
|
+
| \`monograph_health\` | Check graph quality score and experiment status |
|
|
384
384
|
|
|
385
385
|
### How It Works
|
|
386
386
|
|
|
@@ -390,13 +390,13 @@ Built into monomind since v1.3.0 — no separate install needed.
|
|
|
390
390
|
4. **Experiment loop** — tracks BASELINE/KEEP/DISCARD in \`results.tsv\`
|
|
391
391
|
5. **BFD chunking** — efficient Anthropic API calls via bin-packing
|
|
392
392
|
|
|
393
|
-
> If
|
|
393
|
+
> If monograph tools are not available, run \`npx monomind@latest init --force\` then restart Claude Code.`;
|
|
394
394
|
}
|
|
395
395
|
function setupAndBoundary() {
|
|
396
396
|
return `## Quick Setup
|
|
397
397
|
|
|
398
398
|
\`\`\`bash
|
|
399
|
-
# Add MCP server — includes
|
|
399
|
+
# Add MCP server — includes monograph, swarm, memory, hooks, all 200+ tools
|
|
400
400
|
claude mcp add monomind -- npx -y monomind@latest mcp start
|
|
401
401
|
|
|
402
402
|
# Start background workers
|