@monoes/monomindcli 2.9.21 → 2.9.23
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/consensus/quorum-manager.md +35 -54
- package/.claude/agents/core/coordinator.md +14 -18
- package/.claude/agents/core/researcher.md +1 -1
- package/.claude/agents/github/issue-tracker.md +3 -3
- package/.claude/agents/github/{code-review-swarm.md → monoswarm-code-review.md} +1 -1
- package/.claude/agents/github/{swarm-issue.md → monoswarm-issue.md} +1 -1
- package/.claude/agents/github/{multi-repo-swarm.md → monoswarm-multi-repo.md} +1 -1
- package/.claude/agents/github/{swarm-pr.md → monoswarm-pr.md} +1 -1
- package/.claude/agents/github/pr-manager.md +1 -1
- package/.claude/agents/github/release-manager.md +1 -1
- package/.claude/agents/github/repo-architect.md +1 -1
- package/.claude/agents/github/sync-coordinator.md +4 -4
- package/.claude/agents/{hive-mind → monoswarm}/collective-intelligence-coordinator.md +9 -16
- package/.claude/agents/{swarm → monoswarm}/mesh-coordinator.md +19 -24
- package/.claude/agents/{hive-mind/swarm-memory-manager.md → monoswarm/monoswarm-memory-manager.md} +1 -1
- package/.claude/agents/templates/{coordinator-swarm-init.md → coordinator-monoswarm-init.md} +1 -1
- package/.claude/agents/testing/{tdd-london-swarm.md → tdd-london-monoswarm.md} +2 -2
- package/.claude/commands/agents/agent-coordination.md +3 -3
- package/.claude/commands/agents/agent-types.md +1 -1
- package/.claude/commands/automation/self-healing.md +1 -1
- package/.claude/commands/automation/smart-spawn.md +1 -1
- package/.claude/commands/coordination/README.md +1 -1
- package/.claude/commands/coordination/{swarm-init.md → monoswarm-init.md} +2 -2
- package/.claude/commands/coordination/task-orchestrate.md +4 -4
- package/.claude/commands/github/README.md +1 -1
- package/.claude/commands/github/issue-tracker.md +2 -2
- package/.claude/commands/github/pr-manager.md +1 -1
- package/.claude/commands/github/release-manager.md +1 -1
- package/.claude/commands/github/repo-architect.md +1 -1
- package/.claude/commands/github/sync-coordinator.md +2 -2
- package/.claude/commands/hooks/README.md +1 -2
- package/.claude/commands/hooks/overview.md +1 -2
- package/.claude/commands/hooks/setup.md +0 -3
- package/.claude/commands/mastermind/createtask.md +2 -2
- package/.claude/commands/mastermind/do.md +3 -3
- package/.claude/commands/mastermind/help.md +2 -2
- package/.claude/commands/mastermind/ideate.md +1 -1
- package/.claude/commands/mastermind/improve.md +1 -1
- package/.claude/commands/mastermind/memory.md +2 -2
- package/.claude/commands/mastermind/{swarm.md → monoswarm.md} +13 -26
- package/.claude/commands/mastermind/topology.md +1 -1
- package/.claude/commands/memory/README.md +2 -2
- package/.claude/commands/memory/memory-search.md +1 -1
- package/.claude/commands/monoswarm/README.md +59 -0
- package/.claude/commands/monoswarm/consensus.md +61 -0
- package/.claude/commands/monoswarm/init.md +68 -0
- package/.claude/commands/monoswarm/memory.md +55 -0
- package/.claude/commands/monoswarm/monoswarm.md +139 -0
- package/.claude/commands/{swarm → monoswarm}/research.md +2 -2
- package/.claude/commands/monoswarm/spawn.md +49 -0
- package/.claude/commands/monoswarm/status.md +48 -0
- package/.claude/commands/monoswarm/stop.md +46 -0
- package/.claude/commands/optimization/auto-topology.md +9 -9
- package/.claude/commands/stream-chain/run.md +1 -1
- package/.claude/commands/workflows/development.md +1 -1
- package/.claude/commands/workflows/research.md +2 -2
- package/.claude/helpers/audit-log-writer.cjs +72 -0
- package/.claude/helpers/control-start.cjs +84 -26
- package/.claude/helpers/handlers/agent-start-handler.cjs +5 -5
- package/.claude/helpers/handlers/gates-handler.cjs +31 -10
- package/.claude/helpers/handlers/session-restore-handler.cjs +1 -1
- package/.claude/helpers/handlers/task-handler.cjs +4 -4
- package/.claude/helpers/skill-registry.json +4718 -3669
- package/.claude/helpers/statusline.cjs +21 -21
- package/.claude/helpers/token-tracker.cjs +0 -6
- package/.claude/settings.json +2 -3
- package/.claude/skills/hooks-automation/SKILL.md +5 -5
- package/.claude/skills/mastermind-createorg/SKILL.md +26 -3
- package/.claude/skills/mastermind-protocol/SKILL.md +3 -3
- package/.claude/skills/memory-toolkit/SKILL.md +2 -2
- package/.claude/skills/{swarm-orchestration → monoswarm}/SKILL.md +106 -42
- package/.claude/skills/specialagent/SKILL.md +1 -1
- package/README.md +31 -12
- package/dist/src/autopilot-state.d.ts +0 -16
- package/dist/src/autopilot-state.d.ts.map +1 -1
- package/dist/src/autopilot-state.js +0 -15
- package/dist/src/autopilot-state.js.map +1 -1
- package/dist/src/browser/dashboard/server.js +3 -3
- package/dist/src/browser/dashboard/server.js.map +1 -1
- package/dist/src/browser/dashboard/ui.html +2 -2
- package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
- package/dist/src/capabilities/cap-documents.js +49 -38
- package/dist/src/capabilities/cap-documents.js.map +1 -1
- package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
- package/dist/src/commands/agent-lifecycle.js +4 -9
- package/dist/src/commands/agent-lifecycle.js.map +1 -1
- package/dist/src/commands/agent-ops.d.ts.map +1 -1
- package/dist/src/commands/agent-ops.js +37 -24
- package/dist/src/commands/agent-ops.js.map +1 -1
- package/dist/src/commands/analyze-ast.d.ts +1 -1
- package/dist/src/commands/analyze-ast.d.ts.map +1 -1
- package/dist/src/commands/analyze-ast.js +8 -27
- package/dist/src/commands/analyze-ast.js.map +1 -1
- package/dist/src/commands/analyze-imports.d.ts.map +1 -1
- package/dist/src/commands/analyze-imports.js +18 -17
- package/dist/src/commands/analyze-imports.js.map +1 -1
- package/dist/src/commands/analyze-symbols.d.ts.map +1 -1
- package/dist/src/commands/analyze-symbols.js +10 -24
- package/dist/src/commands/analyze-symbols.js.map +1 -1
- package/dist/src/commands/analyze.d.ts +19 -6
- package/dist/src/commands/analyze.d.ts.map +1 -1
- package/dist/src/commands/analyze.js +61 -15
- package/dist/src/commands/analyze.js.map +1 -1
- package/dist/src/commands/autopilot.d.ts.map +1 -1
- package/dist/src/commands/autopilot.js +4 -89
- package/dist/src/commands/autopilot.js.map +1 -1
- package/dist/src/commands/browse.d.ts +1 -1
- package/dist/src/commands/cleanup.d.ts.map +1 -1
- package/dist/src/commands/cleanup.js +4 -2
- package/dist/src/commands/cleanup.js.map +1 -1
- package/dist/src/commands/completions.d.ts.map +1 -1
- package/dist/src/commands/completions.js +0 -1
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.js +7 -7
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts +7 -0
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +37 -5
- package/dist/src/commands/doctor-project-checks.js.map +1 -1
- package/dist/src/commands/doctor.d.ts.map +1 -1
- package/dist/src/commands/doctor.js +9 -3
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/events.d.ts +9 -0
- package/dist/src/commands/events.d.ts.map +1 -0
- package/dist/src/commands/events.js +89 -0
- package/dist/src/commands/events.js.map +1 -0
- package/dist/src/commands/hooks-routing-commands.d.ts +1 -2
- package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-routing-commands.js +1 -101
- package/dist/src/commands/hooks-routing-commands.js.map +1 -1
- package/dist/src/commands/hooks-workers.d.ts.map +1 -1
- package/dist/src/commands/hooks-workers.js +19 -71
- package/dist/src/commands/hooks-workers.js.map +1 -1
- package/dist/src/commands/hooks.d.ts +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +4 -7
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/index.d.ts +2 -2
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +4 -3
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init-subcommands.d.ts.map +1 -1
- package/dist/src/commands/init-subcommands.js +4 -0
- package/dist/src/commands/init-subcommands.js.map +1 -1
- package/dist/src/commands/init-wizard.d.ts.map +1 -1
- package/dist/src/commands/init-wizard.js +0 -8
- package/dist/src/commands/init-wizard.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +53 -23
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts +1 -0
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +111 -60
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory-crud.d.ts.map +1 -1
- package/dist/src/commands/memory-crud.js +33 -20
- package/dist/src/commands/memory-crud.js.map +1 -1
- package/dist/src/commands/monoswarm.d.ts +8 -0
- package/dist/src/commands/monoswarm.d.ts.map +1 -0
- package/dist/src/commands/{swarm.js → monoswarm.js} +83 -297
- package/dist/src/commands/monoswarm.js.map +1 -0
- package/dist/src/commands/neural-core.d.ts.map +1 -1
- package/dist/src/commands/neural-core.js +9 -1
- package/dist/src/commands/neural-core.js.map +1 -1
- package/dist/src/commands/neural-optimize.d.ts.map +1 -1
- package/dist/src/commands/neural-optimize.js +30 -110
- package/dist/src/commands/neural-optimize.js.map +1 -1
- package/dist/src/commands/neural-registry.d.ts +1 -2
- package/dist/src/commands/neural-registry.d.ts.map +1 -1
- package/dist/src/commands/neural-registry.js +21 -168
- package/dist/src/commands/neural-registry.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts +34 -3
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +213 -45
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org.d.ts +14 -0
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +118 -20
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/performance.d.ts.map +1 -1
- package/dist/src/commands/performance.js +38 -31
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/security-misc.d.ts.map +1 -1
- package/dist/src/commands/security-misc.js +220 -90
- package/dist/src/commands/security-misc.js.map +1 -1
- package/dist/src/commands/security-scan.d.ts +13 -0
- package/dist/src/commands/security-scan.d.ts.map +1 -1
- package/dist/src/commands/security-scan.js +96 -27
- package/dist/src/commands/security-scan.js.map +1 -1
- package/dist/src/commands/security.js +1 -1
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +17 -96
- package/dist/src/commands/start.js.map +1 -1
- package/dist/src/commands/status.d.ts.map +1 -1
- package/dist/src/commands/status.js +72 -64
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/tokens.d.ts.map +1 -1
- package/dist/src/commands/tokens.js +4 -5
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/consensus/audit-writer.d.ts +2 -2
- package/dist/src/consensus/audit-writer.d.ts.map +1 -1
- package/dist/src/consensus/audit-writer.js +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +12 -10
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +32 -31
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/codex-generator.d.ts +10 -0
- package/dist/src/init/codex-generator.d.ts.map +1 -0
- package/dist/src/init/codex-generator.js +67 -0
- package/dist/src/init/codex-generator.js.map +1 -0
- package/dist/src/init/copy-assets.d.ts.map +1 -1
- package/dist/src/init/copy-assets.js +4 -8
- package/dist/src/init/copy-assets.js.map +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +9 -2
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.js +1 -1
- package/dist/src/init/index.d.ts +1 -0
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +1 -0
- package/dist/src/init/index.js.map +1 -1
- package/dist/src/init/opencode-generator.js +2 -2
- package/dist/src/init/opencode-generator.js.map +1 -1
- package/dist/src/init/settings-generator.d.ts.map +1 -1
- package/dist/src/init/settings-generator.js +1 -2
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts.map +1 -1
- package/dist/src/init/shared.js +3 -7
- package/dist/src/init/shared.js.map +1 -1
- package/dist/src/init/statusline-generator.js +19 -19
- package/dist/src/init/types.d.ts +9 -10
- package/dist/src/init/types.d.ts.map +1 -1
- package/dist/src/init/types.js +8 -6
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/init/upgrade.js +5 -5
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-capabilities.d.ts.map +1 -1
- package/dist/src/init/write-capabilities.js +36 -49
- package/dist/src/init/write-capabilities.js.map +1 -1
- package/dist/src/init/write-claude.js +1 -1
- package/dist/src/init/write-claude.js.map +1 -1
- package/dist/src/init/write-codex.d.ts +4 -0
- package/dist/src/init/write-codex.d.ts.map +1 -0
- package/dist/src/init/write-codex.js +57 -0
- package/dist/src/init/write-codex.js.map +1 -0
- package/dist/src/init/write-runtime-config.d.ts.map +1 -1
- package/dist/src/init/write-runtime-config.js +4 -5
- package/dist/src/init/write-runtime-config.js.map +1 -1
- package/dist/src/knowledge/eval/golden-set.js +15 -15
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +1 -2
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.js +1 -1
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +3 -3
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.d.ts +1 -1
- package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.js +4 -62
- package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/guidance-tools.js +21 -31
- package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.js +56 -103
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts +1 -2
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +78 -152
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2 -4
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +1 -2
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +1 -2
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +10 -10
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.js +9 -9
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
- package/dist/src/mcp-tools/monoswarm-tools.d.ts +17 -0
- package/dist/src/mcp-tools/monoswarm-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/monoswarm-tools.js +1153 -0
- package/dist/src/mcp-tools/monoswarm-tools.js.map +1 -0
- package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +32 -25
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/system-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/system-tools.js +30 -13
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.d.ts +8 -12
- package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +9 -13
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts.map +1 -1
- package/dist/src/memory/embedding-operations.js +0 -37
- package/dist/src/memory/embedding-operations.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +14 -74
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
- package/dist/src/memory/hnsw-operations.js +22 -262
- package/dist/src/memory/hnsw-operations.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts +2 -2
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +8 -7
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts +24 -24
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +33 -34
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts.map +1 -1
- package/dist/src/memory/memory-crud.js +0 -20
- package/dist/src/memory/memory-crud.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +2 -3
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +2 -3
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-read.d.ts.map +1 -1
- package/dist/src/memory/memory-read.js +5 -14
- package/dist/src/memory/memory-read.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts +1 -1
- package/dist/src/memory/sona-optimizer.js +1 -1
- package/dist/src/monovector/model-outcomes.d.ts +25 -0
- package/dist/src/monovector/model-outcomes.d.ts.map +1 -0
- package/dist/src/monovector/model-outcomes.js +113 -0
- package/dist/src/monovector/model-outcomes.js.map +1 -0
- package/dist/src/orgrt/agent-runner.d.ts +8 -2
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts +25 -2
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +265 -124
- package/dist/src/orgrt/antigravity-runner.js.map +1 -1
- package/dist/src/orgrt/approvals.d.ts +16 -1
- package/dist/src/orgrt/approvals.d.ts.map +1 -1
- package/dist/src/orgrt/approvals.js +47 -2
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts +10 -16
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +12 -18
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts +12 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +19 -3
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts +26 -2
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +359 -128
- package/dist/src/orgrt/codex-runner.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts +14 -0
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -0
- package/dist/src/orgrt/copilot-runner.js +260 -0
- package/dist/src/orgrt/copilot-runner.js.map +1 -0
- package/dist/src/orgrt/cross-org.d.ts.map +1 -1
- package/dist/src/orgrt/cross-org.js +11 -0
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts +27 -0
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -0
- package/dist/src/orgrt/crush-runner.js +263 -0
- package/dist/src/orgrt/crush-runner.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +68 -16
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +212 -29
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +1 -0
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +20 -0
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts +18 -0
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -0
- package/dist/src/orgrt/grok-runner.js +348 -0
- package/dist/src/orgrt/grok-runner.js.map +1 -0
- package/dist/src/orgrt/kimicode-runner.d.ts +53 -7
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +246 -144
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/mailbox.d.ts +26 -1
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +74 -2
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts +68 -0
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -0
- package/dist/src/orgrt/pi-rpc-runner.js +385 -0
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -0
- package/dist/src/orgrt/pi-runner.d.ts +16 -0
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -0
- package/dist/src/orgrt/pi-runner.js +264 -0
- package/dist/src/orgrt/pi-runner.js.map +1 -0
- package/dist/src/orgrt/policy.d.ts +11 -0
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +25 -2
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/provider.d.ts +29 -1
- package/dist/src/orgrt/provider.d.ts.map +1 -1
- package/dist/src/orgrt/provider.js +62 -2
- package/dist/src/orgrt/provider.js.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts +56 -0
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -0
- package/dist/src/orgrt/qwen-rpc-runner.js +346 -0
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -0
- package/dist/src/orgrt/qwen-runner.d.ts +18 -0
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -0
- package/dist/src/orgrt/qwen-runner.js +270 -0
- package/dist/src/orgrt/qwen-runner.js.map +1 -0
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler-integration.js +7 -0
- package/dist/src/orgrt/scheduler-integration.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +29 -1
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +87 -18
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts +29 -1
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +54 -0
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/test-loop.d.ts.map +1 -1
- package/dist/src/orgrt/test-loop.js +86 -9
- package/dist/src/orgrt/test-loop.js.map +1 -1
- package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
- package/dist/src/orgrt/tool-fence.js +15 -0
- package/dist/src/orgrt/tool-fence.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +50 -1
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +47 -4
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/usage-proxy.d.ts +32 -0
- package/dist/src/orgrt/usage-proxy.d.ts.map +1 -0
- package/dist/src/orgrt/usage-proxy.js +226 -0
- package/dist/src/orgrt/usage-proxy.js.map +1 -0
- package/dist/src/pricing/model-pricing.d.ts.map +1 -1
- package/dist/src/pricing/model-pricing.js +0 -4
- package/dist/src/pricing/model-pricing.js.map +1 -1
- package/dist/src/security/audit-log.d.ts +47 -0
- package/dist/src/security/audit-log.d.ts.map +1 -0
- package/dist/src/security/audit-log.js +84 -0
- package/dist/src/security/audit-log.js.map +1 -0
- package/dist/src/services/config-file-manager.d.ts +2 -2
- package/dist/src/services/config-file-manager.d.ts.map +1 -1
- package/dist/src/services/config-file-manager.js +6 -7
- package/dist/src/services/config-file-manager.js.map +1 -1
- package/dist/src/suggest.d.ts.map +1 -1
- package/dist/src/suggest.js +4 -5
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/transfer/anonymization/index.d.ts +1 -1
- package/dist/src/transfer/anonymization/index.js +1 -1
- package/dist/src/types.d.ts +3 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui/collector.mjs +9 -13
- package/dist/src/ui/dashboard.html +93 -10
- package/dist/src/ui/data/agent-avatars.html +0 -12
- package/dist/src/ui/data/agent-avatars.json +10 -26
- package/dist/src/ui/orgs.html +8 -1
- package/dist/src/ui/routes-org.mjs +85 -16
- package/dist/src/ui/server.mjs +50 -23
- package/dist/src/utils/json-file.d.ts +12 -0
- package/dist/src/utils/json-file.d.ts.map +1 -1
- package/dist/src/utils/json-file.js +11 -0
- package/dist/src/utils/json-file.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/.claude/agents/consensus/crdt-synchronizer.md +0 -977
- package/.claude/commands/hive-mind/README.md +0 -42
- package/.claude/commands/hive-mind/hive-mind-consensus.md +0 -72
- package/.claude/commands/hive-mind/hive-mind-init.md +0 -68
- package/.claude/commands/hive-mind/hive-mind-memory.md +0 -73
- package/.claude/commands/hive-mind/hive-mind-spawn.md +0 -82
- package/.claude/commands/hive-mind/hive-mind-status.md +0 -56
- package/.claude/commands/hive-mind/hive-mind-stop.md +0 -55
- package/.claude/commands/hive-mind/hive-mind.md +0 -87
- package/.claude/commands/swarm/README.md +0 -40
- package/.claude/commands/swarm/swarm.md +0 -79
- package/.claude/skills/hive-mind-advanced/SKILL.md +0 -347
- package/.claude/skills/swarm-advanced/SKILL.md +0 -936
- package/dist/src/commands/swarm.d.ts +0 -8
- package/dist/src/commands/swarm.d.ts.map +0 -1
- package/dist/src/commands/swarm.js.map +0 -1
- package/dist/src/mcp-tools/hive-mind-tools.d.ts +0 -17
- package/dist/src/mcp-tools/hive-mind-tools.d.ts.map +0 -1
- package/dist/src/mcp-tools/hive-mind-tools.js +0 -1239
- package/dist/src/mcp-tools/hive-mind-tools.js.map +0 -1
- package/dist/src/mcp-tools/swarm-tools.d.ts +0 -9
- package/dist/src/mcp-tools/swarm-tools.d.ts.map +0 -1
- package/dist/src/mcp-tools/swarm-tools.js +0 -411
- package/dist/src/mcp-tools/swarm-tools.js.map +0 -1
- package/dist/src/ui/data/avatars/crdt-synchronizer.svg +0 -53
- package/dist/src/ui/data/avatars/gossip-coordinator.svg +0 -54
- package/scripts/deploy-ipfs-node.sh +0 -153
- package/scripts/setup-ipfs-registry.md +0 -365
- /package/.claude/agents/{hive-mind → monoswarm}/scout-explorer.md +0 -0
- /package/.claude/agents/{hive-mind → monoswarm}/worker-specialist.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/analysis.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/development.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/examples.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/maintenance.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/optimization.md +0 -0
- /package/.claude/commands/{swarm → monoswarm}/testing.md +0 -0
- /package/dist/src/ui/data/avatars/{code-review-swarm.svg → monoswarm-code-review.svg} +0 -0
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { AgentRunner, AgentRunArgs, AgentMessage } from './agent-runner.js';
|
|
2
|
+
interface QwenRpcContentBlock {
|
|
3
|
+
type: string;
|
|
4
|
+
text?: string;
|
|
5
|
+
thinking?: string;
|
|
6
|
+
}
|
|
7
|
+
interface QwenRpcMessage {
|
|
8
|
+
content?: QwenRpcContentBlock[];
|
|
9
|
+
}
|
|
10
|
+
/** Pure, transport-independent JSONL line decoder — same shape as
|
|
11
|
+
* pi-rpc-runner.ts's JsonlDecoder. Exported for unit testing without a
|
|
12
|
+
* real subprocess. */
|
|
13
|
+
export declare class QwenJsonlDecoder {
|
|
14
|
+
private buf;
|
|
15
|
+
feed(chunk: string): Record<string, unknown>[];
|
|
16
|
+
}
|
|
17
|
+
/** Encode a client→server `user` message as one LF-terminated JSON line —
|
|
18
|
+
* the plain-string content form (see file header for why the
|
|
19
|
+
* content-block-array form isn't used). Exported for unit testing the
|
|
20
|
+
* exact wire format. */
|
|
21
|
+
export declare function encodeQwenRpcUserMessage(text: string): string;
|
|
22
|
+
/** Extract assistant-visible text from an `assistant` event's
|
|
23
|
+
* `message.content` array. `thinking` blocks are dropped (internal
|
|
24
|
+
* reasoning, not meant for the bus). Exported for unit testing against
|
|
25
|
+
* fixture content arrays. */
|
|
26
|
+
export declare function extractQwenRpcText(message: QwenRpcMessage): string;
|
|
27
|
+
/** The subset of a spawned child process this runner needs — same
|
|
28
|
+
* duck-typed seam as pi-rpc-runner.ts's PiRpcProcess, so tests can supply
|
|
29
|
+
* a fake implementation to exercise the full turn-completion state
|
|
30
|
+
* machine without a real `qwen` binary. */
|
|
31
|
+
export interface QwenRpcProcess {
|
|
32
|
+
stdin: {
|
|
33
|
+
write(data: string): void;
|
|
34
|
+
} | null;
|
|
35
|
+
stdout: {
|
|
36
|
+
on(event: 'data', cb: (chunk: Buffer) => void): void;
|
|
37
|
+
} | null;
|
|
38
|
+
stderr: {
|
|
39
|
+
on(event: 'data', cb: (chunk: Buffer) => void): void;
|
|
40
|
+
} | null;
|
|
41
|
+
on(event: 'close', cb: (code: number | null) => void): void;
|
|
42
|
+
on(event: 'error', cb: (err: Error) => void): void;
|
|
43
|
+
kill(signal?: string): void;
|
|
44
|
+
}
|
|
45
|
+
export type SpawnQwenRpc = (bin: string, args: string[], opts: {
|
|
46
|
+
cwd: string;
|
|
47
|
+
env: Record<string, string | undefined>;
|
|
48
|
+
}) => QwenRpcProcess;
|
|
49
|
+
export declare class QwenRpcAgentRunner implements AgentRunner {
|
|
50
|
+
private qwenBin?;
|
|
51
|
+
private spawnFn;
|
|
52
|
+
constructor(qwenBin?: string | undefined, spawnFn?: SpawnQwenRpc);
|
|
53
|
+
run(args: AgentRunArgs): AsyncIterable<AgentMessage>;
|
|
54
|
+
}
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=qwen-rpc-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qwen-rpc-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/qwen-rpc-runner.ts"],"names":[],"mappings":"AA+EA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQjF,UAAU,mBAAmB;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAAE;AACjF,UAAU,cAAc;IAAG,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAAE;AAE7D;;uBAEuB;AACvB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAM;IACjB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAW7C;CACF;AAED;;;yBAGyB;AACzB,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;8BAG8B;AAC9B,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAKlE;AAED;;;4CAG4C;AAC5C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE;QAAE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,EAAE;QAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE,MAAM,EAAE;QAAE,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAE,KAAK,cAAc,CAAC;AAK3I,qBAAa,kBAAmB,YAAW,WAAW;IACxC,OAAO,CAAC,OAAO,CAAC;IAAU,OAAO,CAAC,OAAO;IAArD,YAAoB,OAAO,CAAC,EAAE,MAAM,YAAA,EAAU,OAAO,GAAE,YAAkC,EAAI;IAEtF,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAgN1D;CACF"}
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
// packages/@monomind/cli/src/orgrt/qwen-rpc-runner.ts
|
|
2
|
+
/**
|
|
3
|
+
* QwenRpcAgentRunner — AgentRunner impl backed by the Qwen Code CLI's
|
|
4
|
+
* bidirectional `--input-format stream-json --output-format stream-json`
|
|
5
|
+
* mode (session-lifetime), instead of the default QwenAgentRunner
|
|
6
|
+
* (qwen-runner.ts), which spawns a fresh `qwen -p "<prompt>"` process per
|
|
7
|
+
* mailbox turn.
|
|
8
|
+
*
|
|
9
|
+
* OPT-IN, not the default. Select via role/org `runtime: 'qwen-rpc'`.
|
|
10
|
+
* Prefer plain `runtime: 'qwen'` (QwenAgentRunner) unless you specifically
|
|
11
|
+
* want the benefit this buys: the subprocess stays alive for the WHOLE
|
|
12
|
+
* mailbox session, so conversational context carries naturally (no
|
|
13
|
+
* `--resume <sessionId>` round-trip per turn) and there's no per-turn
|
|
14
|
+
* spawn/bootstrap cost.
|
|
15
|
+
*
|
|
16
|
+
* Protocol — LIVE-VERIFIED against qwen-code v0.21.13 (issue #182). The
|
|
17
|
+
* flag exists but is hidden from `qwen --help`; found by reading the
|
|
18
|
+
* bundled minified source (`packages/cli`'s yargs config,
|
|
19
|
+
* `.option("input-format", { choices: ["text","stream-json"] })`) and
|
|
20
|
+
* confirmed the exact message schema from the CLI's own bundled source
|
|
21
|
+
* (`packages/cli/src/nonInteractive/types.ts`, compiled into
|
|
22
|
+
* `chunks/session-*.js`) — the `isCLIUserMessage`/`extractUserMessageText`
|
|
23
|
+
* predicates there define the client→server shape literally, not from
|
|
24
|
+
* prose docs. Then confirmed LIVE: sent both message forms below on the
|
|
25
|
+
* same persistent subprocess against a z.ai/GLM-5.3 backend — both
|
|
26
|
+
* answered correctly, on the SAME session_id, proving session-lifetime
|
|
27
|
+
* persistence:
|
|
28
|
+
*
|
|
29
|
+
* Client → server (this runner sends):
|
|
30
|
+
* {"type":"user","message":{"content":"<text>"}}
|
|
31
|
+
* (a content-block-array form is also accepted —
|
|
32
|
+
* {"type":"user","message":{"content":[{"type":"text","text":"..."}]}}
|
|
33
|
+
* — but the plain-string form is simpler and was used for all live
|
|
34
|
+
* verification, so this runner sticks to it)
|
|
35
|
+
*
|
|
36
|
+
* Server → client (same vocabulary as QwenAgentRunner's per-spawn
|
|
37
|
+
* stream-json, confirmed identical live under RPC mode too):
|
|
38
|
+
* {"type":"system","subtype":"init","session_id":"...",...}
|
|
39
|
+
* {"type":"assistant","session_id":"...",
|
|
40
|
+
* "message":{"content":[{"type":"text","text":"..."},
|
|
41
|
+
* {"type":"thinking","thinking":"..."}]}}
|
|
42
|
+
* {"type":"result","subtype":"success"|"error","session_id":"...",
|
|
43
|
+
* "usage":{"input_tokens":N,"output_tokens":N,...},
|
|
44
|
+
* "error":{"message":"..."}|"<string>"}
|
|
45
|
+
* `result` is a single-fire-per-turn completion signal — confirmed live
|
|
46
|
+
* (same as the non-RPC QwenAgentRunner already relies on for its
|
|
47
|
+
* per-spawn invocations). A `system`/`init` event was also observed
|
|
48
|
+
* re-emitted at the start of a SECOND turn on the same subprocess — not
|
|
49
|
+
* treated as a new-session signal here, since session_id stayed
|
|
50
|
+
* identical across it in the live test.
|
|
51
|
+
*
|
|
52
|
+
* NOT verified live: a turn where qwen runs multiple of its OWN native
|
|
53
|
+
* tools (read/edit/bash) in sequence before responding — same class of gap
|
|
54
|
+
* pi-rpc-runner.ts disclosed for pi before its own live verification
|
|
55
|
+
* confirmed a single fire-once completion signal there too. `result`
|
|
56
|
+
* firing exactly once per submitted `user` message (not once per internal
|
|
57
|
+
* tool-use cycle) is inferred by symmetry with the non-RPC QwenAgentRunner
|
|
58
|
+
* (which already treats `result` this way across a `-p` invocation that
|
|
59
|
+
* CAN involve multiple internal tool calls) rather than independently
|
|
60
|
+
* re-confirmed here. Revalidate if this runner ends a turn early or hangs
|
|
61
|
+
* on a heavily tool-call-heavy prompt; fall back to plain `runtime: 'qwen'`
|
|
62
|
+
* if it misbehaves.
|
|
63
|
+
*
|
|
64
|
+
* Auth: inherited from the CLI's own login flow — same as QwenAgentRunner.
|
|
65
|
+
* No env vars set here. (Live verification against a custom
|
|
66
|
+
* OpenAI-compatible backend needed `--auth-type openai` plus
|
|
67
|
+
* `OPENAI_API_KEY`/`OPENAI_BASE_URL`/`OPENAI_MODEL` env vars, per
|
|
68
|
+
* qwen-runner.ts's own header — not something this runner forces, since a
|
|
69
|
+
* real deployment's own qwen config/subscription should already be set up
|
|
70
|
+
* the way its operator wants.)
|
|
71
|
+
*
|
|
72
|
+
* Org tools (org_send, knowledge_search, ask_human, …) — FENCE PROTOCOL:
|
|
73
|
+
* Qwen's own native tools (read/edit/bash) execute autonomously inside
|
|
74
|
+
* qwen itself and never reach this runner — only org tools ride the
|
|
75
|
+
* shared tool-fence protocol (tool-fence.ts), extracted from assistant
|
|
76
|
+
* text collected before `result` and fed back as a new `user` message in
|
|
77
|
+
* the SAME session.
|
|
78
|
+
*/
|
|
79
|
+
import { spawn } from 'node:child_process';
|
|
80
|
+
import { buildToolProtocol, parseToolCalls, executeToolCall, formatToolResults, MAX_TOOL_ROUNDS, TOOL_CALL_RE } from './tool-fence.js';
|
|
81
|
+
/** Upper bound on how long a single turn's wait for `result` may run before
|
|
82
|
+
* the mid-session silence watchdog (below) considers qwen wedged. */
|
|
83
|
+
const SETTLE_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
84
|
+
const STARTUP_GRACE_MS = 45_000;
|
|
85
|
+
/** Pure, transport-independent JSONL line decoder — same shape as
|
|
86
|
+
* pi-rpc-runner.ts's JsonlDecoder. Exported for unit testing without a
|
|
87
|
+
* real subprocess. */
|
|
88
|
+
export class QwenJsonlDecoder {
|
|
89
|
+
buf = '';
|
|
90
|
+
feed(chunk) {
|
|
91
|
+
this.buf += chunk;
|
|
92
|
+
const parts = this.buf.split('\n');
|
|
93
|
+
this.buf = parts.pop() ?? '';
|
|
94
|
+
const out = [];
|
|
95
|
+
for (const line of parts) {
|
|
96
|
+
const trimmed = line.trim();
|
|
97
|
+
if (!trimmed)
|
|
98
|
+
continue;
|
|
99
|
+
try {
|
|
100
|
+
out.push(JSON.parse(trimmed));
|
|
101
|
+
}
|
|
102
|
+
catch { /* skip malformed line */ }
|
|
103
|
+
}
|
|
104
|
+
return out;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/** Encode a client→server `user` message as one LF-terminated JSON line —
|
|
108
|
+
* the plain-string content form (see file header for why the
|
|
109
|
+
* content-block-array form isn't used). Exported for unit testing the
|
|
110
|
+
* exact wire format. */
|
|
111
|
+
export function encodeQwenRpcUserMessage(text) {
|
|
112
|
+
return JSON.stringify({ type: 'user', message: { content: text } }) + '\n';
|
|
113
|
+
}
|
|
114
|
+
/** Extract assistant-visible text from an `assistant` event's
|
|
115
|
+
* `message.content` array. `thinking` blocks are dropped (internal
|
|
116
|
+
* reasoning, not meant for the bus). Exported for unit testing against
|
|
117
|
+
* fixture content arrays. */
|
|
118
|
+
export function extractQwenRpcText(message) {
|
|
119
|
+
return (message.content ?? [])
|
|
120
|
+
.filter((b) => b.type === 'text' && typeof b.text === 'string')
|
|
121
|
+
.map((b) => b.text)
|
|
122
|
+
.join('\n');
|
|
123
|
+
}
|
|
124
|
+
const defaultSpawnQwenRpc = (bin, args, opts) => spawn(bin, args, { cwd: opts.cwd, env: opts.env, stdio: ['pipe', 'pipe', 'pipe'] });
|
|
125
|
+
export class QwenRpcAgentRunner {
|
|
126
|
+
qwenBin;
|
|
127
|
+
spawnFn;
|
|
128
|
+
constructor(qwenBin, spawnFn = defaultSpawnQwenRpc) {
|
|
129
|
+
this.qwenBin = qwenBin;
|
|
130
|
+
this.spawnFn = spawnFn;
|
|
131
|
+
}
|
|
132
|
+
async *run(args) {
|
|
133
|
+
const bin = this.qwenBin || process.env.QWEN_CLI_BIN || 'qwen';
|
|
134
|
+
const cliArgs = ['--input-format', 'stream-json', '--output-format', 'stream-json', '--yolo'];
|
|
135
|
+
if (args.model)
|
|
136
|
+
cliArgs.push('-m', args.model);
|
|
137
|
+
const child = this.spawnFn(bin, cliArgs, {
|
|
138
|
+
cwd: args.cwd,
|
|
139
|
+
env: { ...process.env, ...args.env },
|
|
140
|
+
});
|
|
141
|
+
let stderrTail = '';
|
|
142
|
+
child.stderr?.on('data', (c) => { stderrTail = (stderrTail + c.toString()).slice(-4000); });
|
|
143
|
+
const decoder = new QwenJsonlDecoder();
|
|
144
|
+
const eventQueue = [];
|
|
145
|
+
const waiters = [];
|
|
146
|
+
let closed = false;
|
|
147
|
+
let closeCode = null;
|
|
148
|
+
let lastEventAt = Date.now();
|
|
149
|
+
const pushEvents = (evs) => {
|
|
150
|
+
for (const ev of evs) {
|
|
151
|
+
const waiter = waiters.shift();
|
|
152
|
+
if (waiter)
|
|
153
|
+
waiter(ev);
|
|
154
|
+
else
|
|
155
|
+
eventQueue.push(ev);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
child.stdout?.on('data', (c) => { lastEventAt = Date.now(); pushEvents(decoder.feed(c.toString())); });
|
|
159
|
+
let processExited = false;
|
|
160
|
+
child.on('close', (code) => { closed = true; processExited = true; closeCode = code; pushEvents([{ type: '__closed__', code }]); });
|
|
161
|
+
child.on('error', (err) => { closed = true; pushEvents([{ type: '__error__', error: err }]); });
|
|
162
|
+
const nextEvent = () => {
|
|
163
|
+
const queued = eventQueue.shift();
|
|
164
|
+
if (queued)
|
|
165
|
+
return Promise.resolve(queued);
|
|
166
|
+
if (closed)
|
|
167
|
+
return Promise.resolve({ type: '__closed__', code: closeCode });
|
|
168
|
+
return new Promise((resolve) => waiters.push(resolve));
|
|
169
|
+
};
|
|
170
|
+
const send = (text) => {
|
|
171
|
+
child.stdin?.write(encodeQwenRpcUserMessage(text));
|
|
172
|
+
};
|
|
173
|
+
const KILL_GRACE_MS = 5000;
|
|
174
|
+
let killTimer;
|
|
175
|
+
const killChild = () => {
|
|
176
|
+
try {
|
|
177
|
+
child.kill('SIGTERM');
|
|
178
|
+
}
|
|
179
|
+
catch { /* already gone */ }
|
|
180
|
+
killTimer = setTimeout(() => { try {
|
|
181
|
+
child.kill('SIGKILL');
|
|
182
|
+
}
|
|
183
|
+
catch { /* already gone */ } }, KILL_GRACE_MS);
|
|
184
|
+
killTimer.unref?.();
|
|
185
|
+
};
|
|
186
|
+
let sawAnyEvent = false;
|
|
187
|
+
let hangTimer = setTimeout(() => {
|
|
188
|
+
if (!sawAnyEvent) {
|
|
189
|
+
closed = true;
|
|
190
|
+
killChild();
|
|
191
|
+
pushEvents([{ type: '__hang__' }]);
|
|
192
|
+
}
|
|
193
|
+
}, STARTUP_GRACE_MS);
|
|
194
|
+
const disarmHang = () => { if (!sawAnyEvent) {
|
|
195
|
+
sawAnyEvent = true;
|
|
196
|
+
if (hangTimer) {
|
|
197
|
+
clearTimeout(hangTimer);
|
|
198
|
+
hangTimer = undefined;
|
|
199
|
+
}
|
|
200
|
+
} };
|
|
201
|
+
// Rolling watchdog — same rationale/pause logic as pi-rpc-runner.ts:
|
|
202
|
+
// paused whenever an org tool call is in flight (ask_human can
|
|
203
|
+
// legitimately block far longer than the silence window) or there's no
|
|
204
|
+
// turn in flight at all (idling on the role's own mailbox is normal).
|
|
205
|
+
let toolCallInFlight = false;
|
|
206
|
+
let turnInFlight = false;
|
|
207
|
+
const MID_SESSION_SILENCE_MS = SETTLE_TIMEOUT_MS;
|
|
208
|
+
const silenceWatchdog = setInterval(() => {
|
|
209
|
+
if (closed || toolCallInFlight || !turnInFlight)
|
|
210
|
+
return;
|
|
211
|
+
if (Date.now() - lastEventAt > MID_SESSION_SILENCE_MS) {
|
|
212
|
+
closed = true;
|
|
213
|
+
killChild();
|
|
214
|
+
pushEvents([{ type: '__hang__' }]);
|
|
215
|
+
}
|
|
216
|
+
}, 30_000);
|
|
217
|
+
silenceWatchdog.unref?.();
|
|
218
|
+
let sessionId;
|
|
219
|
+
try {
|
|
220
|
+
let first = true;
|
|
221
|
+
for await (const p of args.prompt) {
|
|
222
|
+
const text = typeof p === 'string' ? p : (p?.message?.content ?? String(p ?? ''));
|
|
223
|
+
let nextMessage = first ? `${args.systemPrompt}${buildToolProtocol(args.tools)}\n\n---\n\n${text}` : text;
|
|
224
|
+
first = false;
|
|
225
|
+
let turnInputTokens = 0;
|
|
226
|
+
let turnOutputTokens = 0;
|
|
227
|
+
let round = 0;
|
|
228
|
+
turnInFlight = true;
|
|
229
|
+
try {
|
|
230
|
+
turnLoop: for (;;) {
|
|
231
|
+
send(nextMessage);
|
|
232
|
+
const collectedText = [];
|
|
233
|
+
let sawResult = false;
|
|
234
|
+
let resultError;
|
|
235
|
+
for (;;) {
|
|
236
|
+
const ev = await nextEvent();
|
|
237
|
+
disarmHang();
|
|
238
|
+
const kind = ev.type;
|
|
239
|
+
if (kind === '__closed__' || kind === '__error__' || kind === '__hang__') {
|
|
240
|
+
if (kind === '__error__') {
|
|
241
|
+
throw ev.error;
|
|
242
|
+
}
|
|
243
|
+
const hangSuspected = kind === '__hang__';
|
|
244
|
+
throw new Error(hangSuspected
|
|
245
|
+
? `QwenRpcAgentRunner: qwen produced no output within ${STARTUP_GRACE_MS / 1000}s and was killed. ` +
|
|
246
|
+
'This usually means it is stuck on a prompt headless mode has no way to answer. Run `qwen` ' +
|
|
247
|
+
`once manually in a real terminal in this project to check, then retry.${stderrTail ? `\nstderr: ${stderrTail.slice(-500)}` : ''}`
|
|
248
|
+
: `QwenRpcAgentRunner: qwen rpc process ended unexpectedly (${kind})` +
|
|
249
|
+
(stderrTail ? `\nstderr: ${stderrTail.slice(-500)}` : ''));
|
|
250
|
+
}
|
|
251
|
+
const evSessionId = ev.session_id;
|
|
252
|
+
if (evSessionId)
|
|
253
|
+
sessionId = evSessionId;
|
|
254
|
+
if (kind === 'assistant') {
|
|
255
|
+
const message = ev.message;
|
|
256
|
+
if (message) {
|
|
257
|
+
const t = extractQwenRpcText(message);
|
|
258
|
+
if (t)
|
|
259
|
+
collectedText.push(t);
|
|
260
|
+
}
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
if (kind === 'result') {
|
|
264
|
+
sawResult = true;
|
|
265
|
+
const usage = ev.usage;
|
|
266
|
+
if (usage) {
|
|
267
|
+
turnInputTokens += usage.input_tokens ?? 0;
|
|
268
|
+
turnOutputTokens += usage.output_tokens ?? 0;
|
|
269
|
+
}
|
|
270
|
+
if (ev.subtype === 'error') {
|
|
271
|
+
const err = ev.error;
|
|
272
|
+
resultError = typeof err === 'string' ? err : err?.message ?? 'qwen result: error';
|
|
273
|
+
}
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
// system/init and anything else — drained and ignored.
|
|
277
|
+
}
|
|
278
|
+
if (resultError) {
|
|
279
|
+
throw new Error(`QwenRpcAgentRunner: qwen turn failed: ${resultError}` + (stderrTail ? `\nstderr: ${stderrTail.slice(-500)}` : ''));
|
|
280
|
+
}
|
|
281
|
+
if (!sawResult)
|
|
282
|
+
break turnLoop; // process closed before result — nothing to extract this round
|
|
283
|
+
const rawText = collectedText.join('\n');
|
|
284
|
+
const visibleText = rawText.replace(TOOL_CALL_RE, '').trim();
|
|
285
|
+
if (visibleText)
|
|
286
|
+
yield { type: 'assistant', session_id: sessionId, text: visibleText };
|
|
287
|
+
const malformed = [];
|
|
288
|
+
const calls = parseToolCalls([rawText], (raw, err) => malformed.push(`[monomind] ignored malformed tool_call fence (${err}): ${raw.slice(0, 200)}`));
|
|
289
|
+
for (const note of malformed)
|
|
290
|
+
yield { type: 'assistant', session_id: sessionId, text: note };
|
|
291
|
+
if (calls.length === 0)
|
|
292
|
+
break turnLoop;
|
|
293
|
+
round += 1;
|
|
294
|
+
if (round > MAX_TOOL_ROUNDS) {
|
|
295
|
+
yield { type: 'assistant', session_id: sessionId, text: `[monomind] tool-call round cap (${MAX_TOOL_ROUNDS}) reached — dropping ${calls.length} pending tool call(s)` };
|
|
296
|
+
break turnLoop;
|
|
297
|
+
}
|
|
298
|
+
toolCallInFlight = true;
|
|
299
|
+
const results = [];
|
|
300
|
+
try {
|
|
301
|
+
for (const call of calls)
|
|
302
|
+
results.push(await executeToolCall(args.tools, call, args.canUseTool));
|
|
303
|
+
}
|
|
304
|
+
finally {
|
|
305
|
+
toolCallInFlight = false;
|
|
306
|
+
lastEventAt = Date.now();
|
|
307
|
+
}
|
|
308
|
+
nextMessage = formatToolResults(calls, results);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
finally {
|
|
312
|
+
turnInFlight = false;
|
|
313
|
+
}
|
|
314
|
+
yield {
|
|
315
|
+
type: 'result',
|
|
316
|
+
session_id: sessionId,
|
|
317
|
+
subtype: 'success',
|
|
318
|
+
input_tokens: turnInputTokens,
|
|
319
|
+
output_tokens: turnOutputTokens,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
catch (err) {
|
|
324
|
+
if (err.code === 'ENOENT') {
|
|
325
|
+
throw new Error('QwenRpcAgentRunner requires the Qwen Code CLI (qwen) on PATH. ' +
|
|
326
|
+
'Install it: npm install -g @qwen-code/qwen-code, then run `qwen` once ' +
|
|
327
|
+
'to authenticate. Or unset the runtime to use Claude.');
|
|
328
|
+
}
|
|
329
|
+
throw err;
|
|
330
|
+
}
|
|
331
|
+
finally {
|
|
332
|
+
if (hangTimer)
|
|
333
|
+
clearTimeout(hangTimer);
|
|
334
|
+
clearInterval(silenceWatchdog);
|
|
335
|
+
if (processExited) {
|
|
336
|
+
if (killTimer)
|
|
337
|
+
clearTimeout(killTimer);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
if (!killTimer)
|
|
341
|
+
killChild();
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
//# sourceMappingURL=qwen-rpc-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qwen-rpc-runner.js","sourceRoot":"","sources":["../../../src/orgrt/qwen-rpc-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AgentRunner, AgentRunArgs, AgentMessage } from './agent-runner.js';
|
|
2
|
+
/** Pure stream-json parser — exported for unit testing against fixture lines
|
|
3
|
+
* built from Qwen Code's documented event schema (qwen-runner.test.ts). */
|
|
4
|
+
export declare function parseQwenEvents(lines: string[]): {
|
|
5
|
+
texts: string[];
|
|
6
|
+
rawTexts: string[];
|
|
7
|
+
sessionId?: string;
|
|
8
|
+
inputTokens: number;
|
|
9
|
+
outputTokens: number;
|
|
10
|
+
error?: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class QwenAgentRunner implements AgentRunner {
|
|
13
|
+
private qwenBin?;
|
|
14
|
+
constructor(qwenBin?: string | undefined);
|
|
15
|
+
run(args: AgentRunArgs): AsyncIterable<AgentMessage>;
|
|
16
|
+
private runTurn;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=qwen-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qwen-runner.d.ts","sourceRoot":"","sources":["../../../src/orgrt/qwen-runner.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAyCjF;4EAC4E;AAC5E,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG;IAChD,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACpH,CAoCA;AAED,qBAAa,eAAgB,YAAW,WAAW;IACrC,OAAO,CAAC,OAAO,CAAC;IAA5B,YAAoB,OAAO,CAAC,EAAE,MAAM,YAAA,EAAI;IAEjC,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,CAsF1D;IAED,OAAO,CAAC,OAAO;CAgGhB"}
|