@monoes/monomindcli 2.9.22 → 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-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/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 +1 -1
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +2 -2
- 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 +13 -3
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +134 -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 +98 -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.map +1 -1
- package/dist/src/orgrt/approvals.js +8 -0
- 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.map +1 -1
- package/dist/src/orgrt/copilot-runner.js +12 -2
- package/dist/src/orgrt/copilot-runner.js.map +1 -1
- 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 +4 -1
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +42 -30
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +38 -25
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +150 -28
- 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.map +1 -1
- package/dist/src/orgrt/grok-runner.js +39 -14
- package/dist/src/orgrt/grok-runner.js.map +1 -1
- 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.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +76 -91
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- 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.map +1 -1
- package/dist/src/orgrt/qwen-runner.js +11 -8
- package/dist/src/orgrt/qwen-runner.js.map +1 -1
- 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 +32 -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/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 +30 -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/routes-org.mjs +59 -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 +4 -4
- 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
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 120 120" width="120" height="120">
|
|
2
|
-
<defs>
|
|
3
|
-
<clipPath id="circ">
|
|
4
|
-
<circle cx="60" cy="60" r="58"/>
|
|
5
|
-
</clipPath>
|
|
6
|
-
<clipPath id="headClip">
|
|
7
|
-
<ellipse cx="60" cy="42" rx="24" ry="28"/>
|
|
8
|
-
</clipPath>
|
|
9
|
-
</defs>
|
|
10
|
-
|
|
11
|
-
<!-- Background -->
|
|
12
|
-
<circle cx="60" cy="60" r="58" fill="#EEF9FF"/>
|
|
13
|
-
<circle cx="60" cy="60" r="58" fill="none" stroke="#2196A8" stroke-width="3"/>
|
|
14
|
-
|
|
15
|
-
<g clip-path="url(#circ)">
|
|
16
|
-
|
|
17
|
-
<!-- body -->
|
|
18
|
-
<ellipse cx="60" cy="112" rx="26" ry="36" fill="#2196A8"/>
|
|
19
|
-
<ellipse cx="60" cy="110" rx="22" ry="32" fill="#16707A"/>
|
|
20
|
-
<!-- collar -->
|
|
21
|
-
<path d="M44,96 Q60,108 76,96" fill="#EEF9FF"/>
|
|
22
|
-
<!-- neck -->
|
|
23
|
-
<rect x="54" y="70" width="12" height="10" rx="4" fill="#6B3F2A"/>
|
|
24
|
-
|
|
25
|
-
<!-- head base -->
|
|
26
|
-
<ellipse cx="60" cy="44" rx="22" ry="26" fill="#6B3F2A"/>
|
|
27
|
-
|
|
28
|
-
<circle cx="38" cy="46" r="5" fill="#6B3F2A"/>
|
|
29
|
-
<circle cx="38" cy="46" r="3" fill="#6B3F2A" opacity="0.5"/>
|
|
30
|
-
<circle cx="82" cy="46" r="5" fill="#6B3F2A"/>
|
|
31
|
-
<circle cx="82" cy="46" r="3" fill="#6B3F2A" opacity="0.5"/>
|
|
32
|
-
|
|
33
|
-
<!-- hair -->
|
|
34
|
-
<ellipse cx="60" cy="24" rx="19" ry="8" fill="#3B2314"/>
|
|
35
|
-
<circle cx="60" cy="14" r="10" fill="#3B2314"/>
|
|
36
|
-
<!-- face features -->
|
|
37
|
-
<ellipse cx="51" cy="44" rx="5" ry="2.5" fill="white"/>
|
|
38
|
-
<ellipse cx="69" cy="44" rx="5" ry="2.5" fill="white"/>
|
|
39
|
-
<circle cx="51" cy="44" r="2.2" fill="#1a5c4a"/>
|
|
40
|
-
<circle cx="69" cy="44" r="2.2" fill="#1a5c4a"/>
|
|
41
|
-
<circle cx="52" cy="43.2" r="1" fill="white"/>
|
|
42
|
-
<circle cx="70" cy="43.2" r="1" fill="white"/>
|
|
43
|
-
<ellipse cx="60" cy="52" rx="2.5" ry="1.8" fill="#6B3F2A" opacity="0.7" stroke="#6B3F2A" stroke-width="0.5"/>
|
|
44
|
-
<path d="M54,60 L66,60" stroke="#C4726A" stroke-width="2" stroke-linecap="round"/>
|
|
45
|
-
<ellipse cx="46" cy="52" rx="5" ry="3" fill="#ff9999" opacity="0.3"/>
|
|
46
|
-
<ellipse cx="74" cy="52" rx="5" ry="3" fill="#ff9999" opacity="0.3"/>
|
|
47
|
-
<!-- accessory -->
|
|
48
|
-
|
|
49
|
-
</g>
|
|
50
|
-
|
|
51
|
-
<!-- role badge -->
|
|
52
|
-
<circle cx="88" cy="88" r="16" fill="#2196A8" opacity="0.95"/>
|
|
53
|
-
<text x="88" y="93" text-anchor="middle" font-size="14" fill="white" font-family="sans-serif">💬</text>
|
|
54
|
-
</svg>
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
#
|
|
3
|
-
# Deploy IPFS Node to Google Cloud
|
|
4
|
-
# Provides free IPFS pinning for your users
|
|
5
|
-
#
|
|
6
|
-
# Usage:
|
|
7
|
-
# ./deploy-ipfs-node.sh [PROJECT_ID] [ZONE]
|
|
8
|
-
#
|
|
9
|
-
# Example:
|
|
10
|
-
# ./deploy-ipfs-node.sh my-project us-central1-a
|
|
11
|
-
#
|
|
12
|
-
|
|
13
|
-
set -e
|
|
14
|
-
|
|
15
|
-
PROJECT_ID="${1:-$(gcloud config get-value project)}"
|
|
16
|
-
ZONE="${2:-us-central1-a}"
|
|
17
|
-
INSTANCE_NAME="ipfs-node"
|
|
18
|
-
MACHINE_TYPE="e2-medium" # $25/month, use e2-small for $8/month
|
|
19
|
-
DISK_SIZE="100GB"
|
|
20
|
-
|
|
21
|
-
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
22
|
-
echo "║ IPFS Node Deployment for Monomind ║"
|
|
23
|
-
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
24
|
-
echo ""
|
|
25
|
-
echo "Project: $PROJECT_ID"
|
|
26
|
-
echo "Zone: $ZONE"
|
|
27
|
-
echo "Machine: $MACHINE_TYPE"
|
|
28
|
-
echo "Disk: $DISK_SIZE"
|
|
29
|
-
echo ""
|
|
30
|
-
|
|
31
|
-
# Create firewall rules
|
|
32
|
-
echo "▶ Creating firewall rules..."
|
|
33
|
-
gcloud compute firewall-rules create ipfs-swarm \
|
|
34
|
-
--project="$PROJECT_ID" \
|
|
35
|
-
--allow=tcp:4001,udp:4001 \
|
|
36
|
-
--target-tags=ipfs-node \
|
|
37
|
-
--description="IPFS swarm connections" \
|
|
38
|
-
2>/dev/null || echo " (firewall rule already exists)"
|
|
39
|
-
|
|
40
|
-
gcloud compute firewall-rules create ipfs-api \
|
|
41
|
-
--project="$PROJECT_ID" \
|
|
42
|
-
--allow=tcp:5001 \
|
|
43
|
-
--target-tags=ipfs-node \
|
|
44
|
-
--source-ranges="0.0.0.0/0" \
|
|
45
|
-
--description="IPFS API (consider restricting)" \
|
|
46
|
-
2>/dev/null || echo " (firewall rule already exists)"
|
|
47
|
-
|
|
48
|
-
gcloud compute firewall-rules create ipfs-gateway \
|
|
49
|
-
--project="$PROJECT_ID" \
|
|
50
|
-
--allow=tcp:8080 \
|
|
51
|
-
--target-tags=ipfs-node \
|
|
52
|
-
--description="IPFS Gateway" \
|
|
53
|
-
2>/dev/null || echo " (firewall rule already exists)"
|
|
54
|
-
|
|
55
|
-
# Create startup script
|
|
56
|
-
STARTUP_SCRIPT='#!/bin/bash
|
|
57
|
-
set -e
|
|
58
|
-
|
|
59
|
-
# Install IPFS
|
|
60
|
-
echo "Installing IPFS..."
|
|
61
|
-
wget -q https://dist.ipfs.tech/kubo/v0.24.0/kubo_v0.24.0_linux-amd64.tar.gz
|
|
62
|
-
tar xzf kubo_v0.24.0_linux-amd64.tar.gz
|
|
63
|
-
cd kubo && sudo bash install.sh
|
|
64
|
-
cd .. && rm -rf kubo kubo_v0.24.0_linux-amd64.tar.gz
|
|
65
|
-
|
|
66
|
-
# Create ipfs user
|
|
67
|
-
sudo useradd -m -s /bin/bash ipfs || true
|
|
68
|
-
|
|
69
|
-
# Initialize IPFS
|
|
70
|
-
sudo -u ipfs IPFS_PATH=/home/ipfs/.ipfs ipfs init --profile=server
|
|
71
|
-
|
|
72
|
-
# Configure IPFS for server use
|
|
73
|
-
sudo -u ipfs IPFS_PATH=/home/ipfs/.ipfs ipfs config Addresses.API /ip4/0.0.0.0/tcp/5001
|
|
74
|
-
sudo -u ipfs IPFS_PATH=/home/ipfs/.ipfs ipfs config Addresses.Gateway /ip4/0.0.0.0/tcp/8080
|
|
75
|
-
sudo -u ipfs IPFS_PATH=/home/ipfs/.ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin "[\"*\"]"
|
|
76
|
-
sudo -u ipfs IPFS_PATH=/home/ipfs/.ipfs ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods "[\"PUT\", \"POST\", \"GET\"]"
|
|
77
|
-
|
|
78
|
-
# Set storage limits (adjust as needed)
|
|
79
|
-
sudo -u ipfs IPFS_PATH=/home/ipfs/.ipfs ipfs config Datastore.StorageMax 80GB
|
|
80
|
-
|
|
81
|
-
# Create systemd service
|
|
82
|
-
cat > /etc/systemd/system/ipfs.service << EOF
|
|
83
|
-
[Unit]
|
|
84
|
-
Description=IPFS Daemon
|
|
85
|
-
After=network.target
|
|
86
|
-
|
|
87
|
-
[Service]
|
|
88
|
-
Type=simple
|
|
89
|
-
User=ipfs
|
|
90
|
-
Environment=IPFS_PATH=/home/ipfs/.ipfs
|
|
91
|
-
ExecStart=/usr/local/bin/ipfs daemon --migrate=true
|
|
92
|
-
Restart=on-failure
|
|
93
|
-
RestartSec=10
|
|
94
|
-
|
|
95
|
-
[Install]
|
|
96
|
-
WantedBy=multi-user.target
|
|
97
|
-
EOF
|
|
98
|
-
|
|
99
|
-
# Start IPFS
|
|
100
|
-
systemctl daemon-reload
|
|
101
|
-
systemctl enable ipfs
|
|
102
|
-
systemctl start ipfs
|
|
103
|
-
|
|
104
|
-
echo "IPFS node started successfully!"
|
|
105
|
-
'
|
|
106
|
-
|
|
107
|
-
# Create instance
|
|
108
|
-
echo "▶ Creating VM instance..."
|
|
109
|
-
gcloud compute instances create "$INSTANCE_NAME" \
|
|
110
|
-
--project="$PROJECT_ID" \
|
|
111
|
-
--zone="$ZONE" \
|
|
112
|
-
--machine-type="$MACHINE_TYPE" \
|
|
113
|
-
--image-family=ubuntu-2204-lts \
|
|
114
|
-
--image-project=ubuntu-os-cloud \
|
|
115
|
-
--boot-disk-size="$DISK_SIZE" \
|
|
116
|
-
--boot-disk-type=pd-ssd \
|
|
117
|
-
--tags=ipfs-node \
|
|
118
|
-
--metadata=startup-script="$STARTUP_SCRIPT"
|
|
119
|
-
|
|
120
|
-
# Get external IP
|
|
121
|
-
echo ""
|
|
122
|
-
echo "▶ Waiting for instance to start..."
|
|
123
|
-
sleep 30
|
|
124
|
-
|
|
125
|
-
EXTERNAL_IP=$(gcloud compute instances describe "$INSTANCE_NAME" \
|
|
126
|
-
--project="$PROJECT_ID" \
|
|
127
|
-
--zone="$ZONE" \
|
|
128
|
-
--format='get(networkInterfaces[0].accessConfigs[0].natIP)')
|
|
129
|
-
|
|
130
|
-
echo ""
|
|
131
|
-
echo "═══════════════════════════════════════════════════════════════"
|
|
132
|
-
echo " DEPLOYMENT COMPLETE"
|
|
133
|
-
echo "═══════════════════════════════════════════════════════════════"
|
|
134
|
-
echo ""
|
|
135
|
-
echo " IPFS Node IP: $EXTERNAL_IP"
|
|
136
|
-
echo ""
|
|
137
|
-
echo " Endpoints:"
|
|
138
|
-
echo " API: http://$EXTERNAL_IP:5001"
|
|
139
|
-
echo " Gateway: http://$EXTERNAL_IP:8080"
|
|
140
|
-
echo " Swarm: /ip4/$EXTERNAL_IP/tcp/4001"
|
|
141
|
-
echo ""
|
|
142
|
-
echo " Test commands:"
|
|
143
|
-
echo " curl http://$EXTERNAL_IP:5001/api/v0/id"
|
|
144
|
-
echo " curl http://$EXTERNAL_IP:8080/ipfs/QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG/readme"
|
|
145
|
-
echo ""
|
|
146
|
-
echo " Configure Monomind CLI:"
|
|
147
|
-
echo " export IPFS_API_URL=http://$EXTERNAL_IP:5001"
|
|
148
|
-
echo ""
|
|
149
|
-
echo " SSH into node:"
|
|
150
|
-
echo " gcloud compute ssh $INSTANCE_NAME --zone=$ZONE"
|
|
151
|
-
echo ""
|
|
152
|
-
echo " Monthly cost estimate: ~\$25-54 depending on usage"
|
|
153
|
-
echo ""
|
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
# IPFS Plugin Registry Setup Guide
|
|
2
|
-
|
|
3
|
-
This guide walks through setting up a live IPFS plugin registry using Google Cloud and Pinata.
|
|
4
|
-
|
|
5
|
-
## Prerequisites
|
|
6
|
-
|
|
7
|
-
- Google Cloud account with billing enabled
|
|
8
|
-
- Node.js 20+
|
|
9
|
-
- `gcloud` CLI installed
|
|
10
|
-
|
|
11
|
-
## Step 1: Pinata Setup (IPFS Pinning Service)
|
|
12
|
-
|
|
13
|
-
### 1.1 Create Pinata Account
|
|
14
|
-
|
|
15
|
-
1. Go to https://pinata.cloud and create an account
|
|
16
|
-
2. Navigate to API Keys section
|
|
17
|
-
3. Create a new API key with these permissions:
|
|
18
|
-
- `pinning/pinFileToIPFS`: true
|
|
19
|
-
- `pinning/pinJSONToIPFS`: true
|
|
20
|
-
- `pinning/unpin`: true
|
|
21
|
-
|
|
22
|
-
### 1.2 Save Your Credentials
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
# Add to your shell profile (~/.zshrc or ~/.bashrc)
|
|
26
|
-
export PINATA_JWT="your-jwt-token-here"
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### 1.3 Generate IPNS Key (Optional - for stable addressing)
|
|
30
|
-
|
|
31
|
-
If you have Pinata's paid plan with Dedicated Gateways:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Via Pinata dashboard or API
|
|
35
|
-
curl -X POST "https://api.pinata.cloud/v1/ipfs/keys" \
|
|
36
|
-
-H "Authorization: Bearer $PINATA_JWT" \
|
|
37
|
-
-H "Content-Type: application/json" \
|
|
38
|
-
-d '{"name": "monomind-registry"}'
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Step 2: Google Cloud Setup
|
|
42
|
-
|
|
43
|
-
### 2.1 Create Project
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
# Create new project
|
|
47
|
-
gcloud projects create monomind-registry --name="Monomind Registry"
|
|
48
|
-
|
|
49
|
-
# Set as active project
|
|
50
|
-
gcloud config set project monomind-registry
|
|
51
|
-
|
|
52
|
-
# Enable billing (required for Cloud Functions)
|
|
53
|
-
gcloud beta billing projects link monomind-registry \
|
|
54
|
-
--billing-account=YOUR_BILLING_ACCOUNT_ID
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
### 2.2 Enable Required APIs
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
gcloud services enable \
|
|
61
|
-
cloudfunctions.googleapis.com \
|
|
62
|
-
cloudbuild.googleapis.com \
|
|
63
|
-
storage.googleapis.com \
|
|
64
|
-
secretmanager.googleapis.com
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### 2.3 Create Storage Bucket
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
# Create bucket for registry source data
|
|
71
|
-
gcloud storage buckets create gs://monomind-plugin-registry \
|
|
72
|
-
--location=US \
|
|
73
|
-
--uniform-bucket-level-access
|
|
74
|
-
|
|
75
|
-
# Enable versioning for rollback
|
|
76
|
-
gsutil versioning set on gs://monomind-plugin-registry
|
|
77
|
-
|
|
78
|
-
# Make registry.json publicly readable (optional)
|
|
79
|
-
gsutil iam ch allUsers:objectViewer gs://monomind-plugin-registry
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### 2.4 Create Service Account
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
# Create service account
|
|
86
|
-
gcloud iam service-accounts create plugin-registry-publisher \
|
|
87
|
-
--display-name="Plugin Registry Publisher"
|
|
88
|
-
|
|
89
|
-
# Grant permissions
|
|
90
|
-
gcloud projects add-iam-policy-binding monomind-registry \
|
|
91
|
-
--member="serviceAccount:plugin-registry-publisher@monomind-registry.iam.gserviceaccount.com" \
|
|
92
|
-
--role="roles/storage.objectAdmin"
|
|
93
|
-
|
|
94
|
-
gcloud projects add-iam-policy-binding monomind-registry \
|
|
95
|
-
--member="serviceAccount:plugin-registry-publisher@monomind-registry.iam.gserviceaccount.com" \
|
|
96
|
-
--role="roles/secretmanager.secretAccessor"
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### 2.5 Store Secrets
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
# Store Pinata JWT
|
|
103
|
-
echo -n "$PINATA_JWT" | gcloud secrets create pinata-jwt --data-file=-
|
|
104
|
-
|
|
105
|
-
# Generate and store Ed25519 signing key
|
|
106
|
-
node -e "
|
|
107
|
-
const crypto = require('crypto');
|
|
108
|
-
const { subtle } = require('crypto').webcrypto;
|
|
109
|
-
(async () => {
|
|
110
|
-
const keyPair = await subtle.generateKey(
|
|
111
|
-
{ name: 'Ed25519', namedCurve: 'Ed25519' },
|
|
112
|
-
true,
|
|
113
|
-
['sign', 'verify']
|
|
114
|
-
);
|
|
115
|
-
const privateKey = await subtle.exportKey('pkcs8', keyPair.privateKey);
|
|
116
|
-
const privateKeyHex = Buffer.from(privateKey).toString('hex');
|
|
117
|
-
console.log(privateKeyHex);
|
|
118
|
-
})();
|
|
119
|
-
" | gcloud secrets create registry-private-key --data-file=-
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Step 3: Deploy Cloud Function
|
|
123
|
-
|
|
124
|
-
### 3.1 Create Function Directory
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
mkdir -p cloud-functions/publish-registry
|
|
128
|
-
cd cloud-functions/publish-registry
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### 3.2 Create package.json
|
|
132
|
-
|
|
133
|
-
```json
|
|
134
|
-
{
|
|
135
|
-
"name": "publish-registry",
|
|
136
|
-
"version": "1.0.0",
|
|
137
|
-
"main": "index.js",
|
|
138
|
-
"type": "module",
|
|
139
|
-
"dependencies": {
|
|
140
|
-
"@google-cloud/storage": "^7.0.0",
|
|
141
|
-
"@google-cloud/secret-manager": "^5.0.0",
|
|
142
|
-
"@noble/ed25519": "^2.0.0"
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### 3.3 Create index.js
|
|
148
|
-
|
|
149
|
-
```javascript
|
|
150
|
-
import { Storage } from '@google-cloud/storage';
|
|
151
|
-
import { SecretManagerServiceClient } from '@google-cloud/secret-manager';
|
|
152
|
-
import * as ed from '@noble/ed25519';
|
|
153
|
-
|
|
154
|
-
const storage = new Storage();
|
|
155
|
-
const secretManager = new SecretManagerServiceClient();
|
|
156
|
-
|
|
157
|
-
async function getSecret(name) {
|
|
158
|
-
const [version] = await secretManager.accessSecretVersion({
|
|
159
|
-
name: `projects/monomind-registry/secrets/${name}/versions/latest`,
|
|
160
|
-
});
|
|
161
|
-
return version.payload.data.toString();
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
export async function publishRegistry(req, res) {
|
|
165
|
-
try {
|
|
166
|
-
// Get secrets
|
|
167
|
-
const pinataJwt = await getSecret('pinata-jwt');
|
|
168
|
-
const privateKey = await getSecret('registry-private-key');
|
|
169
|
-
|
|
170
|
-
// Fetch registry from GCS
|
|
171
|
-
const bucket = storage.bucket('monomind-plugin-registry');
|
|
172
|
-
const file = bucket.file('registry.json');
|
|
173
|
-
const [content] = await file.download();
|
|
174
|
-
const registry = JSON.parse(content.toString());
|
|
175
|
-
|
|
176
|
-
// Update timestamp
|
|
177
|
-
registry.updatedAt = new Date().toISOString();
|
|
178
|
-
|
|
179
|
-
// Sign registry
|
|
180
|
-
const registryToSign = { ...registry };
|
|
181
|
-
delete registryToSign.registrySignature;
|
|
182
|
-
delete registryToSign.registryPublicKey;
|
|
183
|
-
|
|
184
|
-
const message = JSON.stringify(registryToSign);
|
|
185
|
-
const signature = await ed.signAsync(
|
|
186
|
-
new TextEncoder().encode(message),
|
|
187
|
-
Buffer.from(privateKey, 'hex')
|
|
188
|
-
);
|
|
189
|
-
const publicKey = await ed.getPublicKeyAsync(Buffer.from(privateKey, 'hex'));
|
|
190
|
-
|
|
191
|
-
registry.registrySignature = Buffer.from(signature).toString('hex');
|
|
192
|
-
registry.registryPublicKey = `ed25519:${Buffer.from(publicKey).toString('hex')}`;
|
|
193
|
-
|
|
194
|
-
// Pin to IPFS
|
|
195
|
-
const pinResponse = await fetch('https://api.pinata.cloud/pinning/pinJSONToIPFS', {
|
|
196
|
-
method: 'POST',
|
|
197
|
-
headers: {
|
|
198
|
-
'Content-Type': 'application/json',
|
|
199
|
-
'Authorization': `Bearer ${pinataJwt}`,
|
|
200
|
-
},
|
|
201
|
-
body: JSON.stringify({
|
|
202
|
-
pinataContent: registry,
|
|
203
|
-
pinataMetadata: {
|
|
204
|
-
name: 'monomind-plugin-registry',
|
|
205
|
-
keyvalues: {
|
|
206
|
-
version: registry.version,
|
|
207
|
-
updatedAt: registry.updatedAt,
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
}),
|
|
211
|
-
});
|
|
212
|
-
|
|
213
|
-
if (!pinResponse.ok) {
|
|
214
|
-
throw new Error(`Pinata error: ${await pinResponse.text()}`);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
const pinResult = await pinResponse.json();
|
|
218
|
-
|
|
219
|
-
res.json({
|
|
220
|
-
success: true,
|
|
221
|
-
cid: pinResult.IpfsHash,
|
|
222
|
-
updatedAt: registry.updatedAt,
|
|
223
|
-
pluginCount: registry.plugins.length,
|
|
224
|
-
gateways: [
|
|
225
|
-
`https://gateway.pinata.cloud/ipfs/${pinResult.IpfsHash}`,
|
|
226
|
-
`https://ipfs.io/ipfs/${pinResult.IpfsHash}`,
|
|
227
|
-
],
|
|
228
|
-
});
|
|
229
|
-
} catch (error) {
|
|
230
|
-
console.error('Publish failed:', error);
|
|
231
|
-
res.status(500).json({ error: error.message });
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### 3.4 Deploy Function
|
|
237
|
-
|
|
238
|
-
```bash
|
|
239
|
-
gcloud functions deploy publish-registry \
|
|
240
|
-
--gen2 \
|
|
241
|
-
--runtime=nodejs20 \
|
|
242
|
-
--region=us-central1 \
|
|
243
|
-
--source=. \
|
|
244
|
-
--entry-point=publishRegistry \
|
|
245
|
-
--trigger-http \
|
|
246
|
-
--allow-unauthenticated \
|
|
247
|
-
--service-account=plugin-registry-publisher@monomind-registry.iam.gserviceaccount.com \
|
|
248
|
-
--set-env-vars=GCP_PROJECT=monomind-registry
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
## Step 4: Create Initial Registry
|
|
252
|
-
|
|
253
|
-
### 4.1 Upload Registry to GCS
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
# Generate initial registry
|
|
257
|
-
npx tsx scripts/publish-registry.ts --dry-run > registry.json
|
|
258
|
-
|
|
259
|
-
# Upload to GCS
|
|
260
|
-
gsutil cp registry.json gs://monomind-plugin-registry/registry.json
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### 4.2 Trigger First Publish
|
|
264
|
-
|
|
265
|
-
```bash
|
|
266
|
-
# Get function URL
|
|
267
|
-
FUNCTION_URL=$(gcloud functions describe publish-registry \
|
|
268
|
-
--gen2 --region=us-central1 --format='value(serviceConfig.uri)')
|
|
269
|
-
|
|
270
|
-
# Trigger publish
|
|
271
|
-
curl -X POST "$FUNCTION_URL"
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
## Step 5: Automate with Cloud Build
|
|
275
|
-
|
|
276
|
-
### 5.1 Create cloudbuild.yaml
|
|
277
|
-
|
|
278
|
-
```yaml
|
|
279
|
-
steps:
|
|
280
|
-
# Update registry from npm stats
|
|
281
|
-
- name: 'node:20'
|
|
282
|
-
entrypoint: 'npx'
|
|
283
|
-
args: ['tsx', 'scripts/publish-registry.ts', '--dry-run']
|
|
284
|
-
dir: 'packages/@monomind/cli'
|
|
285
|
-
|
|
286
|
-
# Upload to GCS
|
|
287
|
-
- name: 'gcr.io/cloud-builders/gsutil'
|
|
288
|
-
args: ['cp', 'registry.json', 'gs://monomind-plugin-registry/registry.json']
|
|
289
|
-
|
|
290
|
-
# Trigger Cloud Function
|
|
291
|
-
- name: 'gcr.io/cloud-builders/curl'
|
|
292
|
-
args: ['-X', 'POST', '${_FUNCTION_URL}']
|
|
293
|
-
|
|
294
|
-
substitutions:
|
|
295
|
-
_FUNCTION_URL: 'https://us-central1-monomind-registry.cloudfunctions.net/publish-registry'
|
|
296
|
-
|
|
297
|
-
# Run daily at 2am UTC
|
|
298
|
-
options:
|
|
299
|
-
logging: CLOUD_LOGGING_ONLY
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
### 5.2 Create Cloud Scheduler Trigger
|
|
303
|
-
|
|
304
|
-
```bash
|
|
305
|
-
gcloud scheduler jobs create http publish-registry-daily \
|
|
306
|
-
--location=us-central1 \
|
|
307
|
-
--schedule="0 2 * * *" \
|
|
308
|
-
--uri="https://us-central1-monomind-registry.cloudfunctions.net/publish-registry" \
|
|
309
|
-
--http-method=POST
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
## Step 6: Update Monomind CLI
|
|
313
|
-
|
|
314
|
-
Update `BOOTSTRAP_REGISTRIES` / `DEFAULT_STORE_CONFIG` in
|
|
315
|
-
`src/transfer/store/registry.ts`:
|
|
316
|
-
|
|
317
|
-
```typescript
|
|
318
|
-
const BOOTSTRAP_REGISTRIES: PatternRegistry[] = [
|
|
319
|
-
{
|
|
320
|
-
name: 'monomind-official',
|
|
321
|
-
// Use the IPNS key or CID from your first publish
|
|
322
|
-
ipnsName: 'YOUR_IPNS_KEY_OR_CID',
|
|
323
|
-
gateway: 'https://gateway.pinata.cloud',
|
|
324
|
-
},
|
|
325
|
-
];
|
|
326
|
-
|
|
327
|
-
export const DEFAULT_STORE_CONFIG: StoreConfig = {
|
|
328
|
-
registries: BOOTSTRAP_REGISTRIES,
|
|
329
|
-
gateway: 'https://gateway.pinata.cloud',
|
|
330
|
-
// ... rest of config
|
|
331
|
-
};
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
## Cost Estimate
|
|
335
|
-
|
|
336
|
-
| Service | Free Tier | Paid Tier |
|
|
337
|
-
|---------|-----------|-----------|
|
|
338
|
-
| Pinata | 1GB storage, 100 pins | $20/mo for 100GB |
|
|
339
|
-
| GCS | 5GB free | ~$0.02/GB/mo |
|
|
340
|
-
| Cloud Functions | 2M invocations free | ~$0.40/million |
|
|
341
|
-
| Cloud Scheduler | 3 jobs free | $0.10/job/mo |
|
|
342
|
-
| **Total** | **$0** | **~$20/mo** |
|
|
343
|
-
|
|
344
|
-
## Troubleshooting
|
|
345
|
-
|
|
346
|
-
### IPNS Resolution Fails
|
|
347
|
-
- Ensure the CID is pinned on Pinata
|
|
348
|
-
- Try different gateways (ipfs.io, cloudflare-ipfs.com)
|
|
349
|
-
- IPNS can take 5-10 minutes to propagate
|
|
350
|
-
|
|
351
|
-
### Signature Verification Fails
|
|
352
|
-
- Ensure the public key in config matches the signing key
|
|
353
|
-
- Check that the registry wasn't modified after signing
|
|
354
|
-
|
|
355
|
-
### Cloud Function Errors
|
|
356
|
-
- Check Cloud Logging for detailed errors
|
|
357
|
-
- Verify service account has correct permissions
|
|
358
|
-
- Test secrets access manually
|
|
359
|
-
|
|
360
|
-
## References
|
|
361
|
-
|
|
362
|
-
- [Pinata Docs](https://docs.pinata.cloud/)
|
|
363
|
-
- [Google Cloud Functions](https://cloud.google.com/functions/docs)
|
|
364
|
-
- [IPFS Gateway Spec](https://docs.ipfs.tech/concepts/ipfs-gateway/)
|
|
365
|
-
- [Ed25519 Signatures](https://ed25519.cr.yp.to/)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|