@monoes/monomindcli 2.9.23 → 2.9.24
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/dist/src/agents/registry-builder.d.ts.map +1 -1
- package/dist/src/agents/registry-builder.js +8 -9
- package/dist/src/agents/registry-builder.js.map +1 -1
- package/dist/src/autopilot-state.js +6 -6
- package/dist/src/autopilot-state.js.map +1 -1
- package/dist/src/browser/action-builder/analyzer.d.ts.map +1 -1
- package/dist/src/browser/action-builder/analyzer.js +6 -6
- package/dist/src/browser/action-builder/analyzer.js.map +1 -1
- package/dist/src/browser/action-builder/types.d.ts.map +1 -1
- package/dist/src/browser/adapters/gemini.d.ts.map +1 -1
- package/dist/src/browser/adapters/index.d.ts.map +1 -1
- package/dist/src/browser/adapters/index.js +2 -2
- package/dist/src/browser/adapters/index.js.map +1 -1
- package/dist/src/browser/adapters/instagram.d.ts.map +1 -1
- package/dist/src/browser/adapters/linkedin.d.ts.map +1 -1
- package/dist/src/browser/adapters/linkedin.js +9 -1
- package/dist/src/browser/adapters/linkedin.js.map +1 -1
- package/dist/src/browser/adapters/x.d.ts.map +1 -1
- package/dist/src/browser/adapters/x.js +14 -2
- package/dist/src/browser/adapters/x.js.map +1 -1
- package/dist/src/browser/dashboard/server.d.ts.map +1 -1
- package/dist/src/browser/dashboard/server.js +22 -12
- package/dist/src/browser/dashboard/server.js.map +1 -1
- package/dist/src/browser/dashboard/ui.html +3 -3
- package/dist/src/browser/workflow/engine.d.ts +1 -1
- package/dist/src/browser/workflow/engine.d.ts.map +1 -1
- package/dist/src/browser/workflow/engine.js +74 -25
- package/dist/src/browser/workflow/engine.js.map +1 -1
- package/dist/src/browser/workflow/store.d.ts +1 -1
- package/dist/src/browser/workflow/store.d.ts.map +1 -1
- package/dist/src/browser/workflow/store.js +54 -26
- package/dist/src/browser/workflow/store.js.map +1 -1
- package/dist/src/browser/workflow/types.d.ts.map +1 -1
- package/dist/src/capabilities/cap-code.d.ts.map +1 -1
- package/dist/src/capabilities/cap-code.js.map +1 -1
- package/dist/src/capabilities/cap-data.d.ts.map +1 -1
- package/dist/src/capabilities/cap-data.js +28 -8
- package/dist/src/capabilities/cap-data.js.map +1 -1
- package/dist/src/capabilities/cap-documents.d.ts.map +1 -1
- package/dist/src/capabilities/cap-documents.js +93 -22
- package/dist/src/capabilities/cap-documents.js.map +1 -1
- package/dist/src/capabilities/cap-graph.d.ts.map +1 -1
- package/dist/src/capabilities/cap-graph.js +3 -3
- package/dist/src/capabilities/cap-graph.js.map +1 -1
- package/dist/src/capabilities/cap-media.d.ts.map +1 -1
- package/dist/src/capabilities/cap-media.js +1 -1
- package/dist/src/capabilities/cap-media.js.map +1 -1
- package/dist/src/capabilities/cap-timeline.d.ts.map +1 -1
- package/dist/src/capabilities/cap-timeline.js +33 -7
- package/dist/src/capabilities/cap-timeline.js.map +1 -1
- package/dist/src/capabilities/index.d.ts +5 -5
- package/dist/src/capabilities/index.d.ts.map +1 -1
- package/dist/src/capabilities/index.js +5 -5
- package/dist/src/capabilities/index.js.map +1 -1
- package/dist/src/capabilities/manager.d.ts.map +1 -1
- package/dist/src/capabilities/manager.js +6 -6
- package/dist/src/capabilities/manager.js.map +1 -1
- package/dist/src/capabilities/scanner.d.ts.map +1 -1
- package/dist/src/capabilities/scanner.js +103 -14
- package/dist/src/capabilities/scanner.js.map +1 -1
- package/dist/src/commands/agent-lifecycle.d.ts.map +1 -1
- package/dist/src/commands/agent-lifecycle.js +116 -32
- 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 +72 -19
- package/dist/src/commands/agent-ops.js.map +1 -1
- package/dist/src/commands/agent.d.ts.map +1 -1
- package/dist/src/commands/agent.js +11 -3
- package/dist/src/commands/agent.js.map +1 -1
- package/dist/src/commands/analyze-ast.d.ts.map +1 -1
- package/dist/src/commands/analyze-ast.js +41 -16
- package/dist/src/commands/analyze-ast.js.map +1 -1
- package/dist/src/commands/analyze-diff.d.ts.map +1 -1
- package/dist/src/commands/analyze-diff.js +147 -35
- package/dist/src/commands/analyze-diff.js.map +1 -1
- package/dist/src/commands/analyze-imports.d.ts.map +1 -1
- package/dist/src/commands/analyze-imports.js +59 -16
- 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 +48 -20
- package/dist/src/commands/analyze-symbols.js.map +1 -1
- package/dist/src/commands/analyze.d.ts.map +1 -1
- package/dist/src/commands/analyze.js +30 -14
- 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 +2 -2
- package/dist/src/commands/autopilot.js.map +1 -1
- package/dist/src/commands/browse-action.d.ts.map +1 -1
- package/dist/src/commands/browse-action.js +65 -17
- package/dist/src/commands/browse-action.js.map +1 -1
- package/dist/src/commands/browse-platform.d.ts.map +1 -1
- package/dist/src/commands/browse-platform.js +13 -10
- package/dist/src/commands/browse-platform.js.map +1 -1
- package/dist/src/commands/browse-workflow.d.ts.map +1 -1
- package/dist/src/commands/browse-workflow.js +54 -20
- package/dist/src/commands/browse-workflow.js.map +1 -1
- package/dist/src/commands/browse.js +2 -2
- package/dist/src/commands/browse.js.map +1 -1
- package/dist/src/commands/cleanup.d.ts.map +1 -1
- package/dist/src/commands/cleanup.js +111 -47
- 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 +34 -20
- package/dist/src/commands/completions.js.map +1 -1
- package/dist/src/commands/config.d.ts.map +1 -1
- package/dist/src/commands/config.js +90 -49
- package/dist/src/commands/config.js.map +1 -1
- package/dist/src/commands/crash-reporting.d.ts.map +1 -1
- package/dist/src/commands/crash-reporting.js +10 -4
- package/dist/src/commands/crash-reporting.js.map +1 -1
- package/dist/src/commands/design-detect.d.ts.map +1 -1
- package/dist/src/commands/design-detect.js +33 -12
- package/dist/src/commands/design-detect.js.map +1 -1
- package/dist/src/commands/design-palette.d.ts.map +1 -1
- package/dist/src/commands/design-palette.js +770 -380
- package/dist/src/commands/design-palette.js.map +1 -1
- package/dist/src/commands/doc.d.ts.map +1 -1
- package/dist/src/commands/doc.js +272 -60
- package/dist/src/commands/doc.js.map +1 -1
- package/dist/src/commands/doctor-env-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-env-checks.js +130 -31
- package/dist/src/commands/doctor-env-checks.js.map +1 -1
- package/dist/src/commands/doctor-monoes-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-monoes-checks.js +20 -7
- package/dist/src/commands/doctor-monoes-checks.js.map +1 -1
- package/dist/src/commands/doctor-project-checks.d.ts.map +1 -1
- package/dist/src/commands/doctor-project-checks.js +442 -112
- 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 +132 -59
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/download-embeddings.d.ts.map +1 -1
- package/dist/src/commands/download-embeddings.js +1 -1
- package/dist/src/commands/download-embeddings.js.map +1 -1
- package/dist/src/commands/events.d.ts.map +1 -1
- package/dist/src/commands/events.js +5 -2
- package/dist/src/commands/events.js.map +1 -1
- package/dist/src/commands/guidance.d.ts.map +1 -1
- package/dist/src/commands/guidance.js +38 -14
- package/dist/src/commands/guidance.js.map +1 -1
- package/dist/src/commands/hooks-core-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-core-commands.js +71 -44
- package/dist/src/commands/hooks-core-commands.js.map +1 -1
- package/dist/src/commands/hooks-coverage-commands.d.ts +1 -2
- package/dist/src/commands/hooks-coverage-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-commands.js +140 -58
- package/dist/src/commands/hooks-coverage-commands.js.map +1 -1
- package/dist/src/commands/hooks-coverage-gaps.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-gaps.js +74 -36
- package/dist/src/commands/hooks-coverage-gaps.js.map +1 -1
- package/dist/src/commands/hooks-coverage-routing.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-routing.js +139 -66
- package/dist/src/commands/hooks-coverage-routing.js.map +1 -1
- package/dist/src/commands/hooks-coverage-utils.d.ts.map +1 -1
- package/dist/src/commands/hooks-coverage-utils.js +27 -8
- package/dist/src/commands/hooks-coverage-utils.js.map +1 -1
- package/dist/src/commands/hooks-extended-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-extended-commands.js +86 -21
- package/dist/src/commands/hooks-extended-commands.js.map +1 -1
- package/dist/src/commands/hooks-routing-commands.d.ts.map +1 -1
- package/dist/src/commands/hooks-routing-commands.js +174 -82
- 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 +96 -61
- package/dist/src/commands/hooks-workers.js.map +1 -1
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +6 -6
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/init-subcommands.d.ts.map +1 -1
- package/dist/src/commands/init-subcommands.js +12 -5
- package/dist/src/commands/init-subcommands.js.map +1 -1
- package/dist/src/commands/init-upgrade.d.ts.map +1 -1
- package/dist/src/commands/init-upgrade.js +46 -23
- package/dist/src/commands/init-upgrade.js.map +1 -1
- package/dist/src/commands/init-wizard.d.ts.map +1 -1
- package/dist/src/commands/init-wizard.js +161 -36
- 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 +132 -47
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/mcp.d.ts.map +1 -1
- package/dist/src/commands/mcp.js +128 -84
- package/dist/src/commands/mcp.js.map +1 -1
- package/dist/src/commands/memory-admin.d.ts.map +1 -1
- package/dist/src/commands/memory-admin.js +67 -48
- package/dist/src/commands/memory-admin.js.map +1 -1
- package/dist/src/commands/memory-crud.d.ts.map +1 -1
- package/dist/src/commands/memory-crud.js +65 -41
- package/dist/src/commands/memory-crud.js.map +1 -1
- package/dist/src/commands/memory-list.d.ts.map +1 -1
- package/dist/src/commands/memory-list.js +6 -6
- package/dist/src/commands/memory-list.js.map +1 -1
- package/dist/src/commands/memory-transfer.d.ts.map +1 -1
- package/dist/src/commands/memory-transfer.js +46 -23
- package/dist/src/commands/memory-transfer.js.map +1 -1
- package/dist/src/commands/memory.d.ts.map +1 -1
- package/dist/src/commands/memory.js +63 -35
- package/dist/src/commands/memory.js.map +1 -1
- package/dist/src/commands/monograph.d.ts.map +1 -1
- package/dist/src/commands/monograph.js +170 -57
- package/dist/src/commands/monograph.js.map +1 -1
- package/dist/src/commands/monoswarm.d.ts.map +1 -1
- package/dist/src/commands/monoswarm.js +11 -19
- package/dist/src/commands/monoswarm.js.map +1 -1
- package/dist/src/commands/neural-core.d.ts.map +1 -1
- package/dist/src/commands/neural-core.js +114 -31
- 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 +67 -22
- package/dist/src/commands/neural-optimize.js.map +1 -1
- package/dist/src/commands/neural-registry.d.ts.map +1 -1
- package/dist/src/commands/neural-registry.js +50 -14
- package/dist/src/commands/neural-registry.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +180 -92
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org-visualize.d.ts.map +1 -1
- package/dist/src/commands/org-visualize.js +10 -5
- package/dist/src/commands/org-visualize.js.map +1 -1
- package/dist/src/commands/org.d.ts +1 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +580 -188
- 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 +200 -54
- package/dist/src/commands/performance.js.map +1 -1
- package/dist/src/commands/platforms.d.ts +1 -1
- package/dist/src/commands/platforms.d.ts.map +1 -1
- package/dist/src/commands/platforms.js +89 -49
- package/dist/src/commands/platforms.js.map +1 -1
- package/dist/src/commands/providers.d.ts.map +1 -1
- package/dist/src/commands/providers.js +31 -18
- package/dist/src/commands/providers.js.map +1 -1
- package/dist/src/commands/report-crash.d.ts.map +1 -1
- package/dist/src/commands/report-crash.js +17 -5
- package/dist/src/commands/report-crash.js.map +1 -1
- package/dist/src/commands/route.d.ts.map +1 -1
- package/dist/src/commands/route.js +123 -41
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/search-universal.d.ts +1 -1
- package/dist/src/commands/search-universal.d.ts.map +1 -1
- package/dist/src/commands/search-universal.js +29 -14
- package/dist/src/commands/search-universal.js.map +1 -1
- package/dist/src/commands/security-cve.d.ts.map +1 -1
- package/dist/src/commands/security-cve.js +75 -34
- package/dist/src/commands/security-cve.js.map +1 -1
- package/dist/src/commands/security-misc.d.ts.map +1 -1
- package/dist/src/commands/security-misc.js +173 -43
- package/dist/src/commands/security-misc.js.map +1 -1
- package/dist/src/commands/security-scan.d.ts +1 -1
- package/dist/src/commands/security-scan.d.ts.map +1 -1
- package/dist/src/commands/security-scan.js +135 -39
- package/dist/src/commands/security-scan.js.map +1 -1
- package/dist/src/commands/security.d.ts.map +1 -1
- package/dist/src/commands/security.js +9 -2
- package/dist/src/commands/security.js.map +1 -1
- package/dist/src/commands/session.d.ts.map +1 -1
- package/dist/src/commands/session.js +81 -75
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/commands/start.d.ts.map +1 -1
- package/dist/src/commands/start.js +43 -34
- 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 +88 -75
- package/dist/src/commands/status.js.map +1 -1
- package/dist/src/commands/task.d.ts.map +1 -1
- package/dist/src/commands/task.js +115 -84
- package/dist/src/commands/task.js.map +1 -1
- package/dist/src/commands/tokens.d.ts.map +1 -1
- package/dist/src/commands/tokens.js +64 -28
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +3 -5
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/consensus/audit-writer.d.ts +5 -0
- package/dist/src/consensus/audit-writer.d.ts.map +1 -1
- package/dist/src/consensus/audit-writer.js +18 -10
- package/dist/src/consensus/audit-writer.js.map +1 -1
- package/dist/src/consensus/tally.d.ts.map +1 -1
- package/dist/src/consensus/tally.js +2 -2
- package/dist/src/consensus/tally.js.map +1 -1
- package/dist/src/index.d.ts +6 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +41 -35
- package/dist/src/index.js.map +1 -1
- package/dist/src/init/claudemd-generator.d.ts +1 -1
- package/dist/src/init/claudemd-generator.d.ts.map +1 -1
- package/dist/src/init/claudemd-generator.js +22 -7
- package/dist/src/init/claudemd-generator.js.map +1 -1
- package/dist/src/init/codex-generator.d.ts +7 -1
- package/dist/src/init/codex-generator.d.ts.map +1 -1
- package/dist/src/init/codex-generator.js +114 -1
- package/dist/src/init/codex-generator.js.map +1 -1
- package/dist/src/init/copy-assets.d.ts.map +1 -1
- package/dist/src/init/copy-assets.js +13 -12
- package/dist/src/init/copy-assets.js.map +1 -1
- package/dist/src/init/executor.d.ts +1 -1
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +49 -29
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/geminimd-generator.d.ts +1 -1
- package/dist/src/init/geminimd-generator.d.ts.map +1 -1
- package/dist/src/init/geminimd-generator.js +2 -2
- package/dist/src/init/geminimd-generator.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +6 -6
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/index.d.ts +8 -8
- package/dist/src/init/index.d.ts.map +1 -1
- package/dist/src/init/index.js +9 -9
- package/dist/src/init/index.js.map +1 -1
- package/dist/src/init/kimi-generator.d.ts +1 -1
- package/dist/src/init/kimi-generator.d.ts.map +1 -1
- package/dist/src/init/kimi-generator.js +34 -28
- package/dist/src/init/kimi-generator.js.map +1 -1
- package/dist/src/init/mcp-generator.d.ts.map +1 -1
- package/dist/src/init/mcp-generator.js +3 -11
- package/dist/src/init/mcp-generator.js.map +1 -1
- package/dist/src/init/opencode-generator.d.ts.map +1 -1
- package/dist/src/init/opencode-generator.js +33 -20
- 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 +2 -5
- package/dist/src/init/settings-generator.js.map +1 -1
- package/dist/src/init/shared-instructions-generator.d.ts.map +1 -1
- package/dist/src/init/shared-instructions-generator.js +124 -76
- package/dist/src/init/shared-instructions-generator.js.map +1 -1
- package/dist/src/init/shared.d.ts.map +1 -1
- package/dist/src/init/shared.js +23 -18
- package/dist/src/init/shared.js.map +1 -1
- package/dist/src/init/types.js +2 -2
- package/dist/src/init/types.js.map +1 -1
- package/dist/src/init/upgrade.d.ts.map +1 -1
- package/dist/src/init/upgrade.js +19 -17
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/init/write-antigravity.d.ts.map +1 -1
- package/dist/src/init/write-antigravity.js +15 -7
- package/dist/src/init/write-antigravity.js.map +1 -1
- package/dist/src/init/write-capabilities.d.ts.map +1 -1
- package/dist/src/init/write-capabilities.js +3 -3
- package/dist/src/init/write-capabilities.js.map +1 -1
- package/dist/src/init/write-claude.d.ts.map +1 -1
- package/dist/src/init/write-claude.js +18 -14
- package/dist/src/init/write-claude.js.map +1 -1
- package/dist/src/init/write-codex.d.ts.map +1 -1
- package/dist/src/init/write-codex.js +72 -7
- package/dist/src/init/write-codex.js.map +1 -1
- package/dist/src/init/write-kimicode.d.ts.map +1 -1
- package/dist/src/init/write-kimicode.js +10 -6
- package/dist/src/init/write-kimicode.js.map +1 -1
- package/dist/src/init/write-opencode.d.ts.map +1 -1
- package/dist/src/init/write-opencode.js +4 -4
- package/dist/src/init/write-opencode.js.map +1 -1
- package/dist/src/init/write-runtime-config.d.ts.map +1 -1
- package/dist/src/init/write-runtime-config.js +20 -19
- package/dist/src/init/write-runtime-config.js.map +1 -1
- package/dist/src/init/write-sample-org.js +1 -1
- package/dist/src/init/write-sample-org.js.map +1 -1
- package/dist/src/knowledge/document-pipeline.d.ts.map +1 -1
- package/dist/src/knowledge/document-pipeline.js +144 -48
- package/dist/src/knowledge/document-pipeline.js.map +1 -1
- package/dist/src/knowledge/eval/corpus.d.ts.map +1 -1
- package/dist/src/knowledge/eval/corpus.js +18 -9
- package/dist/src/knowledge/eval/corpus.js.map +1 -1
- package/dist/src/knowledge/eval/golden-set.d.ts.map +1 -1
- package/dist/src/knowledge/eval/golden-set.js +4286 -136
- package/dist/src/knowledge/eval/golden-set.js.map +1 -1
- package/dist/src/knowledge/eval/harness.d.ts +2 -2
- package/dist/src/knowledge/eval/harness.d.ts.map +1 -1
- package/dist/src/knowledge/eval/harness.js +163 -70
- package/dist/src/knowledge/eval/harness.js.map +1 -1
- package/dist/src/knowledge/eval/metrics.d.ts.map +1 -1
- package/dist/src/knowledge/eval/metrics.js +25 -18
- package/dist/src/knowledge/eval/metrics.js.map +1 -1
- package/dist/src/knowledge/eval/model-presence.d.ts.map +1 -1
- package/dist/src/knowledge/eval/model-presence.js +40 -14
- package/dist/src/knowledge/eval/model-presence.js.map +1 -1
- package/dist/src/knowledge/eval/network-guard.d.ts.map +1 -1
- package/dist/src/knowledge/eval/network-guard.js +22 -10
- package/dist/src/knowledge/eval/network-guard.js.map +1 -1
- package/dist/src/knowledge/eval/retrievers.d.ts.map +1 -1
- package/dist/src/knowledge/eval/retrievers.js +14 -10
- package/dist/src/knowledge/eval/retrievers.js.map +1 -1
- package/dist/src/knowledge/eval/signals.d.ts.map +1 -1
- package/dist/src/knowledge/eval/signals.js +54 -18
- package/dist/src/knowledge/eval/signals.js.map +1 -1
- package/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +69 -33
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-server.d.ts +1 -9
- package/dist/src/mcp-server.d.ts.map +1 -1
- package/dist/src/mcp-server.js +19 -42
- package/dist/src/mcp-server.js.map +1 -1
- package/dist/src/mcp-tools/agent-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/agent-tools.js +84 -49
- package/dist/src/mcp-tools/agent-tools.js.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/analyze-tools.js +34 -17
- package/dist/src/mcp-tools/analyze-tools.js.map +1 -1
- package/dist/src/mcp-tools/auto-install.d.ts.map +1 -1
- package/dist/src/mcp-tools/auto-install.js +3 -3
- package/dist/src/mcp-tools/auto-install.js.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/autopilot-tools.js +29 -9
- package/dist/src/mcp-tools/autopilot-tools.js.map +1 -1
- package/dist/src/mcp-tools/browser-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/browser-tools.js +119 -37
- package/dist/src/mcp-tools/browser-tools.js.map +1 -1
- package/dist/src/mcp-tools/claims-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/claims-tools.js +100 -44
- package/dist/src/mcp-tools/claims-tools.js.map +1 -1
- package/dist/src/mcp-tools/config-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/config-tools.js +36 -15
- package/dist/src/mcp-tools/config-tools.js.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/embeddings-tools.js +34 -23
- package/dist/src/mcp-tools/embeddings-tools.js.map +1 -1
- package/dist/src/mcp-tools/github-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/github-tools.js +200 -43
- package/dist/src/mcp-tools/github-tools.js.map +1 -1
- package/dist/src/mcp-tools/graphify-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/graphify-tools.js +2 -2
- package/dist/src/mcp-tools/graphify-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 +449 -93
- package/dist/src/mcp-tools/guidance-tools.js.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.d.ts +0 -6
- package/dist/src/mcp-tools/hooks-embedding.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-embedding.js +170 -59
- package/dist/src/mcp-tools/hooks-embedding.js.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.d.ts +0 -8
- package/dist/src/mcp-tools/hooks-intelligence.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-intelligence.js +9 -17
- package/dist/src/mcp-tools/hooks-intelligence.js.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-routing.js +16 -15
- package/dist/src/mcp-tools/hooks-routing.js.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts +1 -1
- package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/hooks-tools.js +2 -2
- package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
- package/dist/src/mcp-tools/index.d.ts +18 -18
- package/dist/src/mcp-tools/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/index.js +18 -18
- package/dist/src/mcp-tools/index.js.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/knowledge-tools.js +88 -28
- package/dist/src/mcp-tools/knowledge-tools.js.map +1 -1
- package/dist/src/mcp-tools/memory-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/memory-tools.js +156 -39
- package/dist/src/mcp-tools/memory-tools.js.map +1 -1
- package/dist/src/mcp-tools/monodesign-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monodesign-tools.js +63 -22
- package/dist/src/mcp-tools/monodesign-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/agent-history-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/agent-history-tools.js +22 -9
- package/dist/src/mcp-tools/monograph/agent-history-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/build-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/build-tools.js +37 -16
- package/dist/src/mcp-tools/monograph/build-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/group-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/group-tools.js +57 -20
- package/dist/src/mcp-tools/monograph/group-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/health-tools.js +13 -7
- package/dist/src/mcp-tools/monograph/health-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/impact-tools.js +6 -6
- package/dist/src/mcp-tools/monograph/impact-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/index.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/index.js +8 -8
- package/dist/src/mcp-tools/monograph/index.js.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/query-tools.js +131 -56
- package/dist/src/mcp-tools/monograph/query-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/shared.js +42 -22
- package/dist/src/mcp-tools/monograph/shared.js.map +1 -1
- package/dist/src/mcp-tools/monograph/visualize-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph/visualize-tools.js +87 -36
- package/dist/src/mcp-tools/monograph/visualize-tools.js.map +1 -1
- package/dist/src/mcp-tools/monograph-compat.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-compat.js +25 -14
- package/dist/src/mcp-tools/monograph-compat.js.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts +1 -1
- package/dist/src/mcp-tools/monograph-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monograph-tools.js +1 -1
- package/dist/src/mcp-tools/monograph-tools.js.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monomind-tools.js +1 -1
- package/dist/src/mcp-tools/monomind-tools.js.map +1 -1
- package/dist/src/mcp-tools/monoswarm-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/monoswarm-tools.js +217 -81
- package/dist/src/mcp-tools/monoswarm-tools.js.map +1 -1
- package/dist/src/mcp-tools/performance-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/performance-tools.js +280 -83
- package/dist/src/mcp-tools/performance-tools.js.map +1 -1
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +9 -4
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +36 -14
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -1
- package/dist/src/mcp-tools/quality-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/quality-tools.js.map +1 -1
- package/dist/src/mcp-tools/request-tracker.d.ts.map +1 -1
- package/dist/src/mcp-tools/request-tracker.js +2 -1
- package/dist/src/mcp-tools/request-tracker.js.map +1 -1
- package/dist/src/mcp-tools/security-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/security-tools.js +117 -53
- package/dist/src/mcp-tools/security-tools.js.map +1 -1
- package/dist/src/mcp-tools/session-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/session-tools.js +22 -13
- package/dist/src/mcp-tools/session-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 +7 -7
- package/dist/src/mcp-tools/system-tools.js.map +1 -1
- package/dist/src/mcp-tools/task-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/task-tools.js +59 -22
- package/dist/src/mcp-tools/task-tools.js.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/terminal-tools.js +43 -16
- package/dist/src/mcp-tools/terminal-tools.js.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.d.ts.map +1 -1
- package/dist/src/mcp-tools/transfer-tools.js +2 -1
- package/dist/src/mcp-tools/transfer-tools.js.map +1 -1
- package/dist/src/mcp-tools/types.d.ts +1 -1
- package/dist/src/mcp-tools/types.d.ts.map +1 -1
- package/dist/src/mcp-tools/types.js +1 -1
- package/dist/src/mcp-tools/types.js.map +1 -1
- package/dist/src/memory/bm25-index.d.ts.map +1 -1
- package/dist/src/memory/bm25-index.js.map +1 -1
- package/dist/src/memory/embedding-operations.d.ts.map +1 -1
- package/dist/src/memory/embedding-operations.js +23 -19
- package/dist/src/memory/embedding-operations.js.map +1 -1
- package/dist/src/memory/ewc-consolidation.d.ts.map +1 -1
- package/dist/src/memory/ewc-consolidation.js +31 -27
- package/dist/src/memory/ewc-consolidation.js.map +1 -1
- package/dist/src/memory/hnsw-operations.d.ts +1 -1
- package/dist/src/memory/hnsw-operations.d.ts.map +1 -1
- package/dist/src/memory/hnsw-operations.js +5 -6
- package/dist/src/memory/hnsw-operations.js.map +1 -1
- package/dist/src/memory/intelligence.d.ts.map +1 -1
- package/dist/src/memory/intelligence.js +122 -84
- package/dist/src/memory/intelligence.js.map +1 -1
- package/dist/src/memory/memory-bridge.d.ts.map +1 -1
- package/dist/src/memory/memory-bridge.js +7 -7
- package/dist/src/memory/memory-bridge.js.map +1 -1
- package/dist/src/memory/memory-crud.d.ts +1 -1
- package/dist/src/memory/memory-crud.d.ts.map +1 -1
- package/dist/src/memory/memory-crud.js +82 -47
- package/dist/src/memory/memory-crud.js.map +1 -1
- package/dist/src/memory/memory-initializer.d.ts +7 -7
- package/dist/src/memory/memory-initializer.d.ts.map +1 -1
- package/dist/src/memory/memory-initializer.js +38 -34
- package/dist/src/memory/memory-initializer.js.map +1 -1
- package/dist/src/memory/memory-kg.d.ts.map +1 -1
- package/dist/src/memory/memory-kg.js +173 -41
- package/dist/src/memory/memory-kg.js.map +1 -1
- package/dist/src/memory/memory-migrations.d.ts.map +1 -1
- package/dist/src/memory/memory-migrations.js +11 -7
- package/dist/src/memory/memory-migrations.js.map +1 -1
- package/dist/src/memory/memory-read.d.ts.map +1 -1
- package/dist/src/memory/memory-read.js +45 -21
- package/dist/src/memory/memory-read.js.map +1 -1
- package/dist/src/memory/query-router.d.ts.map +1 -1
- package/dist/src/memory/query-router.js +29 -12
- package/dist/src/memory/query-router.js.map +1 -1
- package/dist/src/memory/sona-optimizer.d.ts.map +1 -1
- package/dist/src/memory/sona-optimizer.js +163 -41
- package/dist/src/memory/sona-optimizer.js.map +1 -1
- package/dist/src/memory/text-tokens.d.ts.map +1 -1
- package/dist/src/memory/text-tokens.js +78 -8
- package/dist/src/memory/text-tokens.js.map +1 -1
- package/dist/src/monovector/command-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/command-outcomes.js +23 -8
- package/dist/src/monovector/command-outcomes.js.map +1 -1
- package/dist/src/monovector/coverage-router.d.ts.map +1 -1
- package/dist/src/monovector/coverage-router.js +29 -14
- package/dist/src/monovector/coverage-router.js.map +1 -1
- package/dist/src/monovector/coverage-tools.d.ts.map +1 -1
- package/dist/src/monovector/coverage-tools.js +21 -6
- package/dist/src/monovector/coverage-tools.js.map +1 -1
- package/dist/src/monovector/diff-classifier.d.ts +1 -1
- package/dist/src/monovector/diff-classifier.d.ts.map +1 -1
- package/dist/src/monovector/diff-classifier.js +100 -45
- package/dist/src/monovector/diff-classifier.js.map +1 -1
- package/dist/src/monovector/index.d.ts +3 -4
- package/dist/src/monovector/index.d.ts.map +1 -1
- package/dist/src/monovector/index.js +18 -6
- package/dist/src/monovector/index.js.map +1 -1
- package/dist/src/monovector/init-state.d.ts.map +1 -1
- package/dist/src/monovector/init-state.js +15 -5
- package/dist/src/monovector/init-state.js.map +1 -1
- package/dist/src/monovector/model-outcomes.js +2 -2
- package/dist/src/monovector/model-outcomes.js.map +1 -1
- package/dist/src/monovector/route-outcomes.d.ts.map +1 -1
- package/dist/src/monovector/route-outcomes.js +40 -21
- package/dist/src/monovector/route-outcomes.js.map +1 -1
- package/dist/src/observability/replay-reader.d.ts.map +1 -1
- package/dist/src/observability/replay-reader.js +6 -8
- package/dist/src/observability/replay-reader.js.map +1 -1
- package/dist/src/orgrt/agent-runner.d.ts +1 -1
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js +1 -1
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +46 -17
- 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 +24 -8
- package/dist/src/orgrt/approvals.js.map +1 -1
- package/dist/src/orgrt/broker.d.ts.map +1 -1
- package/dist/src/orgrt/broker.js +11 -4
- package/dist/src/orgrt/broker.js.map +1 -1
- package/dist/src/orgrt/bus.d.ts.map +1 -1
- package/dist/src/orgrt/bus.js +28 -15
- package/dist/src/orgrt/bus.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +36 -19
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +3 -1
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts +1 -1
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +45 -18
- package/dist/src/orgrt/codex-runner.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
- package/dist/src/orgrt/copilot-runner.js +48 -16
- 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 +213 -41
- package/dist/src/orgrt/cross-org.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts +1 -1
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +51 -17
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/daemon.d.ts +5 -6
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +55 -47
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/decisions.d.ts +2 -2
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +83 -34
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/fence.d.ts +2 -2
- package/dist/src/orgrt/fence.d.ts.map +1 -1
- package/dist/src/orgrt/fence.js +13 -5
- package/dist/src/orgrt/fence.js.map +1 -1
- package/dist/src/orgrt/forwarder.js +1 -1
- package/dist/src/orgrt/forwarder.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts +1 -1
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
- package/dist/src/orgrt/grok-runner.js +36 -16
- package/dist/src/orgrt/grok-runner.js.map +1 -1
- package/dist/src/orgrt/inbox.d.ts.map +1 -1
- package/dist/src/orgrt/inbox.js +5 -3
- package/dist/src/orgrt/inbox.js.map +1 -1
- package/dist/src/orgrt/kimicode-runner.d.ts +1 -1
- package/dist/src/orgrt/kimicode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/kimicode-runner.js +40 -15
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/mailbox.d.ts.map +1 -1
- package/dist/src/orgrt/mailbox.js +15 -5
- package/dist/src/orgrt/mailbox.js.map +1 -1
- package/dist/src/orgrt/migrate.d.ts.map +1 -1
- package/dist/src/orgrt/migrate.js +38 -25
- package/dist/src/orgrt/migrate.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +16 -5
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/org-memory.d.ts +2 -2
- package/dist/src/orgrt/org-memory.d.ts.map +1 -1
- package/dist/src/orgrt/org-memory.js +66 -26
- package/dist/src/orgrt/org-memory.js.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts +1 -1
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +60 -25
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/pi-runner.d.ts +1 -1
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-runner.js +35 -16
- package/dist/src/orgrt/pi-runner.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +65 -20
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/prechecks.d.ts.map +1 -1
- package/dist/src/orgrt/prechecks.js +9 -4
- package/dist/src/orgrt/prechecks.js.map +1 -1
- package/dist/src/orgrt/provider.d.ts +1 -1
- package/dist/src/orgrt/provider.d.ts.map +1 -1
- package/dist/src/orgrt/provider.js.map +1 -1
- package/dist/src/orgrt/questions.d.ts.map +1 -1
- package/dist/src/orgrt/questions.js +34 -10
- package/dist/src/orgrt/questions.js.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.js +61 -26
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/qwen-runner.d.ts +1 -1
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-runner.js +31 -15
- package/dist/src/orgrt/qwen-runner.js.map +1 -1
- package/dist/src/orgrt/remote.js +1 -1
- package/dist/src/orgrt/remote.js.map +1 -1
- package/dist/src/orgrt/reporting.d.ts.map +1 -1
- package/dist/src/orgrt/reporting.js +61 -27
- package/dist/src/orgrt/reporting.js.map +1 -1
- package/dist/src/orgrt/scheduler-integration.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler-integration.js +57 -20
- package/dist/src/orgrt/scheduler-integration.js.map +1 -1
- package/dist/src/orgrt/scheduler.d.ts.map +1 -1
- package/dist/src/orgrt/scheduler.js +7 -3
- package/dist/src/orgrt/scheduler.js.map +1 -1
- package/dist/src/orgrt/server.js +1 -1
- package/dist/src/orgrt/server.js.map +1 -1
- package/dist/src/orgrt/session.d.ts +3 -3
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +165 -66
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/state-detector.d.ts.map +1 -1
- package/dist/src/orgrt/state-detector.js +6 -2
- package/dist/src/orgrt/state-detector.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +22 -12
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/templates.d.ts.map +1 -1
- package/dist/src/orgrt/templates.js +198 -36
- package/dist/src/orgrt/templates.js.map +1 -1
- package/dist/src/orgrt/test-loop.d.ts.map +1 -1
- package/dist/src/orgrt/test-loop.js +61 -34
- 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 +6 -3
- package/dist/src/orgrt/tool-fence.js.map +1 -1
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +148 -38
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/usage-proxy.d.ts +20 -0
- package/dist/src/orgrt/usage-proxy.d.ts.map +1 -1
- package/dist/src/orgrt/usage-proxy.js +25 -15
- package/dist/src/orgrt/usage-proxy.js.map +1 -1
- package/dist/src/orgrt/vercel-providers.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-providers.js +11 -1
- package/dist/src/orgrt/vercel-providers.js.map +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-runner.js +3 -5
- package/dist/src/orgrt/vercel-runner.js.map +1 -1
- package/dist/src/orgrt/vercel-session-store.d.ts +14 -0
- package/dist/src/orgrt/vercel-session-store.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-session-store.js +3 -3
- package/dist/src/orgrt/vercel-session-store.js.map +1 -1
- package/dist/src/orgrt/visualization.js +3 -4
- package/dist/src/orgrt/visualization.js.map +1 -1
- package/dist/src/output.d.ts +1 -1
- package/dist/src/output.d.ts.map +1 -1
- package/dist/src/output.js +68 -39
- package/dist/src/output.js.map +1 -1
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +35 -24
- package/dist/src/parser.js.map +1 -1
- package/dist/src/pricing/model-pricing.d.ts.map +1 -1
- package/dist/src/pricing/model-pricing.js +3 -3
- package/dist/src/pricing/model-pricing.js.map +1 -1
- package/dist/src/prompt.d.ts +2 -2
- package/dist/src/prompt.d.ts.map +1 -1
- package/dist/src/prompt.js +49 -41
- package/dist/src/prompt.js.map +1 -1
- package/dist/src/routing/embedder.d.ts.map +1 -1
- package/dist/src/routing/embedder.js +0 -0
- package/dist/src/routing/embedder.js.map +1 -1
- package/dist/src/routing/llm-caller.d.ts.map +1 -1
- package/dist/src/routing/llm-caller.js +27 -8
- package/dist/src/routing/llm-caller.js.map +1 -1
- package/dist/src/routing/model-download.d.ts.map +1 -1
- package/dist/src/routing/model-download.js +3 -3
- package/dist/src/routing/model-download.js.map +1 -1
- package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
- package/dist/src/routing/route-layer-factory.js +22 -14
- package/dist/src/routing/route-layer-factory.js.map +1 -1
- package/dist/src/security/audit-log.d.ts.map +1 -1
- package/dist/src/security/audit-log.js +9 -5
- package/dist/src/security/audit-log.js.map +1 -1
- package/dist/src/services/config-file-manager.d.ts.map +1 -1
- package/dist/src/services/config-file-manager.js +40 -15
- package/dist/src/services/config-file-manager.js.map +1 -1
- package/dist/src/services/crash-reporter.d.ts.map +1 -1
- package/dist/src/services/crash-reporter.js +44 -16
- package/dist/src/services/crash-reporter.js.map +1 -1
- package/dist/src/suggest.d.ts +1 -1
- package/dist/src/suggest.d.ts.map +1 -1
- package/dist/src/suggest.js +57 -56
- package/dist/src/suggest.js.map +1 -1
- package/dist/src/sync/checker.d.ts.map +1 -1
- package/dist/src/sync/checker.js +7 -8
- package/dist/src/sync/checker.js.map +1 -1
- package/dist/src/transfer/anonymization/index.js +2 -2
- package/dist/src/transfer/anonymization/index.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/ui/collector.mjs +270 -150
- package/dist/src/ui/dashboard.html +731 -732
- package/dist/src/ui/data/agent-avatars.html +3 -3
- package/dist/src/ui/data/agent-avatars.json +1 -1
- package/dist/src/ui/markdown.js +243 -62
- package/dist/src/ui/mastermind-diagram-fallback.html +29 -29
- package/dist/src/ui/orgs-files.js +99 -46
- package/dist/src/ui/orgs.html +54 -54
- package/dist/src/ui/routes-monograph.mjs +918 -246
- package/dist/src/ui/routes-org.mjs +4237 -2415
- package/dist/src/ui/server.mjs +103 -94
- package/dist/src/update/checker.d.ts.map +1 -1
- package/dist/src/update/checker.js +17 -12
- package/dist/src/update/checker.js.map +1 -1
- package/dist/src/update/executor.d.ts +2 -2
- package/dist/src/update/executor.d.ts.map +1 -1
- package/dist/src/update/executor.js +21 -11
- package/dist/src/update/executor.js.map +1 -1
- package/dist/src/update/index.d.ts +6 -6
- package/dist/src/update/index.d.ts.map +1 -1
- package/dist/src/update/index.js +9 -9
- package/dist/src/update/index.js.map +1 -1
- package/dist/src/update/rate-limiter.d.ts.map +1 -1
- package/dist/src/update/rate-limiter.js +11 -7
- package/dist/src/update/rate-limiter.js.map +1 -1
- package/dist/src/update/validator.d.ts.map +1 -1
- package/dist/src/update/validator.js +8 -12
- package/dist/src/update/validator.js.map +1 -1
- package/dist/src/utils/cosine-similarity.d.ts.map +1 -1
- package/dist/src/utils/cosine-similarity.js.map +1 -1
- package/dist/src/utils/input-guards.d.ts +1 -1
- package/dist/src/utils/input-guards.d.ts.map +1 -1
- package/dist/src/utils/input-guards.js +24 -9
- package/dist/src/utils/input-guards.js.map +1 -1
- package/dist/src/utils/json-file.d.ts.map +1 -1
- package/dist/src/utils/json-file.js +3 -3
- package/dist/src/utils/json-file.js.map +1 -1
- package/dist/src/utils/parse-jsonl.d.ts.map +1 -1
- package/dist/src/utils/parse-jsonl.js +1 -3
- package/dist/src/utils/parse-jsonl.js.map +1 -1
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +2 -2
- package/dist/src/utils/paths.js.map +1 -1
- package/dist/src/utils/redaction.d.ts.map +1 -1
- package/dist/src/utils/redaction.js +1 -1
- package/dist/src/utils/redaction.js.map +1 -1
- package/dist/src/utils/resource-governor.d.ts.map +1 -1
- package/dist/src/utils/resource-governor.js +38 -14
- package/dist/src/utils/resource-governor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -3,15 +3,17 @@
|
|
|
3
3
|
// Kept out of org.ts to respect the 500-line file ceiling.
|
|
4
4
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
|
-
import {
|
|
7
|
-
import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
|
|
8
|
-
import { formatEvent, listRunDirs, readHistory, readRunEvents, summarizeRun } from '../orgrt/reporting.js';
|
|
9
|
-
import { ORG_TEMPLATES, buildFromTemplate } from '../orgrt/templates.js';
|
|
6
|
+
import { branchCheckpoint } from '../orgrt/checkpoint-ops.js';
|
|
10
7
|
import { checkOrgStructure } from '../orgrt/migrate.js';
|
|
8
|
+
import { formatEvent, listRunDirs, readHistory, readRunEvents, summarizeRun, } from '../orgrt/reporting.js';
|
|
11
9
|
import { resolveModel } from '../orgrt/session.js';
|
|
12
|
-
import {
|
|
10
|
+
import { buildFromTemplate, ORG_TEMPLATES } from '../orgrt/templates.js';
|
|
11
|
+
import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
|
|
12
|
+
import { output } from '../output.js';
|
|
13
13
|
import { listOrgConfigFiles, validateOrgName } from './org.js';
|
|
14
|
-
const log = (text) => {
|
|
14
|
+
const log = (text) => {
|
|
15
|
+
console.log(text);
|
|
16
|
+
};
|
|
15
17
|
/** Validate org config(s) against OrgDefSchema — the exact parse `org run`/`org serve`
|
|
16
18
|
* perform — plus the structural invariants the runtime assumes but the schema can't
|
|
17
19
|
* express (single root role, resolvable reports_to, unique ids, parseable schedule). */
|
|
@@ -26,7 +28,10 @@ export const validateAction = async (ctx) => {
|
|
|
26
28
|
}
|
|
27
29
|
else {
|
|
28
30
|
if (!existsSync(orgsDir))
|
|
29
|
-
return {
|
|
31
|
+
return {
|
|
32
|
+
success: false,
|
|
33
|
+
message: 'no orgs directory — create an org first with /mastermind:createorg',
|
|
34
|
+
};
|
|
30
35
|
files = listOrgConfigFiles(orgsDir);
|
|
31
36
|
if (!files.length)
|
|
32
37
|
return { success: false, message: 'no org configs found' };
|
|
@@ -77,11 +82,14 @@ const resolveRun = (cwd, name, runFlag) => {
|
|
|
77
82
|
};
|
|
78
83
|
/** `org logs <name> [--run id] [--role r] [--filter-tool t] [--filter-role r] [--tools-only] [--audit-filter allow|deny] [--follow]` — formatted bus.jsonl tail. */
|
|
79
84
|
export const logsAction = async (ctx, name) => {
|
|
80
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
85
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
81
86
|
if (!run)
|
|
82
|
-
return {
|
|
87
|
+
return {
|
|
88
|
+
success: false,
|
|
89
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
90
|
+
};
|
|
83
91
|
const file = join(ctx.cwd, ORG_DIR, name, run, 'bus.jsonl');
|
|
84
|
-
const roleFilter = typeof ctx.flags
|
|
92
|
+
const roleFilter = typeof ctx.flags.role === 'string' ? ctx.flags.role : null;
|
|
85
93
|
const filterTool = typeof ctx.flags['filter-tool'] === 'string' ? ctx.flags['filter-tool'] : null;
|
|
86
94
|
const filterRole = typeof ctx.flags['filter-role'] === 'string' ? ctx.flags['filter-role'] : null;
|
|
87
95
|
const auditFilter = typeof ctx.flags['audit-filter'] === 'string' ? ctx.flags['audit-filter'] : null;
|
|
@@ -121,13 +129,19 @@ export const logsAction = async (ctx, name) => {
|
|
|
121
129
|
}
|
|
122
130
|
};
|
|
123
131
|
drain();
|
|
124
|
-
if (ctx.flags
|
|
132
|
+
if (ctx.flags.follow !== true)
|
|
125
133
|
return { success: true };
|
|
126
134
|
log(output.info('following — Ctrl-C to stop'));
|
|
127
|
-
await new Promise(resolve => {
|
|
135
|
+
await new Promise((resolve) => {
|
|
128
136
|
const iv = setInterval(drain, 500);
|
|
129
|
-
process.once('SIGINT', () => {
|
|
130
|
-
|
|
137
|
+
process.once('SIGINT', () => {
|
|
138
|
+
clearInterval(iv);
|
|
139
|
+
resolve();
|
|
140
|
+
});
|
|
141
|
+
process.once('SIGTERM', () => {
|
|
142
|
+
clearInterval(iv);
|
|
143
|
+
resolve();
|
|
144
|
+
});
|
|
131
145
|
});
|
|
132
146
|
return { success: true };
|
|
133
147
|
};
|
|
@@ -155,19 +169,22 @@ export const watchAction = async (ctx, name) => {
|
|
|
155
169
|
const role = ctx.args[1];
|
|
156
170
|
if (!role)
|
|
157
171
|
return { success: false, message: 'usage: monomind org watch <org> <role>' };
|
|
158
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
172
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
159
173
|
if (!run)
|
|
160
|
-
return {
|
|
174
|
+
return {
|
|
175
|
+
success: false,
|
|
176
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
177
|
+
};
|
|
161
178
|
const file = join(ctx.cwd, ORG_DIR, name, run, 'bus.jsonl');
|
|
162
|
-
const verbose = ctx.flags
|
|
163
|
-
const stats = ctx.flags
|
|
179
|
+
const verbose = ctx.flags.verbose === true;
|
|
180
|
+
const stats = ctx.flags.stats === true;
|
|
164
181
|
let totalTokens = 0;
|
|
165
182
|
let totalCostUsd = 0;
|
|
166
183
|
const show = (e) => {
|
|
167
184
|
if (e.from !== role)
|
|
168
185
|
return;
|
|
169
186
|
if (e.type === 'chat') {
|
|
170
|
-
log(`${output.info(role
|
|
187
|
+
log(`${output.info(`${role}:`)} ${e.msg ?? ''}`);
|
|
171
188
|
return;
|
|
172
189
|
}
|
|
173
190
|
if (verbose && e.type === 'status') {
|
|
@@ -201,30 +218,38 @@ export const watchAction = async (ctx, name) => {
|
|
|
201
218
|
}
|
|
202
219
|
};
|
|
203
220
|
drain();
|
|
204
|
-
if (ctx.flags
|
|
221
|
+
if (ctx.flags.follow === false)
|
|
205
222
|
return { success: true }; // --follow=false opts out of the default live tail
|
|
206
|
-
await new Promise(resolve => {
|
|
223
|
+
await new Promise((resolve) => {
|
|
207
224
|
const iv = setInterval(drain, 500);
|
|
208
|
-
process.once('SIGINT', () => {
|
|
209
|
-
|
|
225
|
+
process.once('SIGINT', () => {
|
|
226
|
+
clearInterval(iv);
|
|
227
|
+
resolve();
|
|
228
|
+
});
|
|
229
|
+
process.once('SIGTERM', () => {
|
|
230
|
+
clearInterval(iv);
|
|
231
|
+
resolve();
|
|
232
|
+
});
|
|
210
233
|
});
|
|
211
234
|
return { success: true };
|
|
212
235
|
};
|
|
213
236
|
/** `org report <name> [--run id] [--all] [--by-role] [--format mermaid]` — summarize a run (or list run history). */
|
|
214
237
|
export const reportAction = async (ctx, name) => {
|
|
215
|
-
if (ctx.flags
|
|
238
|
+
if (ctx.flags.all === true) {
|
|
216
239
|
const history = readHistory(ctx.cwd, name);
|
|
217
240
|
if (!history.length)
|
|
218
241
|
return { success: false, message: `no run history for org ${name}` };
|
|
219
242
|
log(output.info(`org ${name} — ${history.length} recorded run(s):`));
|
|
220
243
|
for (const h of history) {
|
|
221
244
|
const dur = h.durationMs != null ? `${Math.round(h.durationMs / 1000)}s` : '?';
|
|
222
|
-
const outcome = h.outcome
|
|
245
|
+
const outcome = h.outcome
|
|
246
|
+
? `${h.outcome.status}: ${h.outcome.summary.slice(0, 60)}`
|
|
247
|
+
: 'no outcome recorded';
|
|
223
248
|
log(output.info(` • ${h.run} ${dur} ${h.totalTokens} tokens ${h.messages} msgs — ${outcome}`));
|
|
224
249
|
}
|
|
225
250
|
return { success: true };
|
|
226
251
|
}
|
|
227
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
252
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
228
253
|
if (!run)
|
|
229
254
|
return { success: false, message: `no runs found for org ${name}` };
|
|
230
255
|
const events = readRunEvents(ctx.cwd, name, run);
|
|
@@ -232,9 +257,9 @@ export const reportAction = async (ctx, name) => {
|
|
|
232
257
|
return { success: false, message: `run ${run} has no recorded events` };
|
|
233
258
|
const s = summarizeRun(events);
|
|
234
259
|
// Mermaid flowchart (--format mermaid flag)
|
|
235
|
-
if (ctx.flags
|
|
260
|
+
if (ctx.flags.format === 'mermaid') {
|
|
236
261
|
// Extract message flow from events
|
|
237
|
-
const messageEvents = events.filter(e => e.type === 'message' || e.type === 'xorg');
|
|
262
|
+
const messageEvents = events.filter((e) => e.type === 'message' || e.type === 'xorg');
|
|
238
263
|
const roleSet = new Set();
|
|
239
264
|
const edges = new Set();
|
|
240
265
|
for (const e of messageEvents) {
|
|
@@ -269,15 +294,15 @@ export const reportAction = async (ctx, name) => {
|
|
|
269
294
|
return { success: true, message: `Mermaid flowchart exported for ${name} / ${run}` };
|
|
270
295
|
}
|
|
271
296
|
// Tool audit filter (--audit flag) - show only tool decision events
|
|
272
|
-
if (ctx.flags
|
|
273
|
-
let toolEvents = events.filter(e => e.type === 'tool');
|
|
297
|
+
if (ctx.flags.audit === true) {
|
|
298
|
+
let toolEvents = events.filter((e) => e.type === 'tool');
|
|
274
299
|
// Optional --tool flag filters to a specific tool name
|
|
275
|
-
if (typeof ctx.flags
|
|
276
|
-
const toolName = ctx.flags
|
|
277
|
-
toolEvents = toolEvents.filter(e => e.tool === toolName);
|
|
300
|
+
if (typeof ctx.flags.tool === 'string' && ctx.flags.tool) {
|
|
301
|
+
const toolName = ctx.flags.tool;
|
|
302
|
+
toolEvents = toolEvents.filter((e) => e.tool === toolName);
|
|
278
303
|
}
|
|
279
304
|
if (!toolEvents.length) {
|
|
280
|
-
const toolFilter = typeof ctx.flags
|
|
305
|
+
const toolFilter = typeof ctx.flags.tool === 'string' ? ` for tool "${ctx.flags.tool}"` : '';
|
|
281
306
|
log(output.info(`No tool events found${toolFilter} in ${run}`));
|
|
282
307
|
return { success: true };
|
|
283
308
|
}
|
|
@@ -327,7 +352,9 @@ export const reportAction = async (ctx, name) => {
|
|
|
327
352
|
roleCeiling.set(r.id, max ?? r.budget_tokens ?? perRoleBudget);
|
|
328
353
|
}
|
|
329
354
|
}
|
|
330
|
-
catch {
|
|
355
|
+
catch {
|
|
356
|
+
/* config gone or invalid — report without budget context */
|
|
357
|
+
}
|
|
331
358
|
const budgetNote = (id, tokens) => {
|
|
332
359
|
const cap = roleCeiling.get(id);
|
|
333
360
|
if (!cap)
|
|
@@ -396,9 +423,11 @@ export const questionsAction = async (ctx, name) => {
|
|
|
396
423
|
log(output.error(`Cannot read questions for org ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
397
424
|
return { success: false, message: 'questions.json unreadable' };
|
|
398
425
|
}
|
|
399
|
-
const shown = ctx.flags
|
|
426
|
+
const shown = ctx.flags.all === true ? all : all.filter((q) => q.answer === null);
|
|
400
427
|
if (!shown.length) {
|
|
401
|
-
log(output.info(all.length
|
|
428
|
+
log(output.info(all.length
|
|
429
|
+
? `No pending questions for org ${name} (${all.length} answered — use --all).`
|
|
430
|
+
: `No questions recorded for org ${name}.`));
|
|
402
431
|
return { success: true };
|
|
403
432
|
}
|
|
404
433
|
for (const q of shown) {
|
|
@@ -407,7 +436,7 @@ export const questionsAction = async (ctx, name) => {
|
|
|
407
436
|
if (q.answer !== null)
|
|
408
437
|
log(output.info(` ↳ ${q.answer}`));
|
|
409
438
|
}
|
|
410
|
-
if (shown.some(q => q.answer === null))
|
|
439
|
+
if (shown.some((q) => q.answer === null))
|
|
411
440
|
log(output.info(`\nAnswer with: monomind org answer ${name} <question-id> "your answer"`));
|
|
412
441
|
return { success: true };
|
|
413
442
|
};
|
|
@@ -418,7 +447,10 @@ export const answerAction = async (ctx, name) => {
|
|
|
418
447
|
const questionId = ctx.args[1];
|
|
419
448
|
const answer = ctx.args.slice(2).join(' ').trim();
|
|
420
449
|
if (!questionId || !answer)
|
|
421
|
-
return {
|
|
450
|
+
return {
|
|
451
|
+
success: false,
|
|
452
|
+
message: `usage: monomind org answer ${name} <question-id> "answer text"`,
|
|
453
|
+
};
|
|
422
454
|
let questions;
|
|
423
455
|
try {
|
|
424
456
|
questions = readQuestions(ctx.cwd, name);
|
|
@@ -427,7 +459,7 @@ export const answerAction = async (ctx, name) => {
|
|
|
427
459
|
log(output.error(`Cannot read questions for org ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
428
460
|
return { success: false, message: 'questions.json unreadable — answer not recorded' };
|
|
429
461
|
}
|
|
430
|
-
const q = questions.find(x => x.questionId === questionId);
|
|
462
|
+
const q = questions.find((x) => x.questionId === questionId);
|
|
431
463
|
if (!q) {
|
|
432
464
|
log(output.error(`Question "${questionId}" not found for org ${name} — list with: monomind org questions ${name}`));
|
|
433
465
|
return { success: false, message: 'question not found' };
|
|
@@ -441,11 +473,15 @@ export const answerAction = async (ctx, name) => {
|
|
|
441
473
|
const cred = normalizeCredential(remote.credential);
|
|
442
474
|
try {
|
|
443
475
|
const res = await fetch(`${remote.url}/api/answer-question`, {
|
|
444
|
-
method: 'POST',
|
|
476
|
+
method: 'POST',
|
|
477
|
+
headers: {
|
|
478
|
+
'Content-Type': 'application/json',
|
|
479
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
480
|
+
},
|
|
445
481
|
body: JSON.stringify({ org: name, role: q.role, questionId, answer }),
|
|
446
482
|
signal: AbortSignal.timeout(10_000),
|
|
447
483
|
});
|
|
448
|
-
const data = await res.json().catch(() => ({}));
|
|
484
|
+
const data = (await res.json().catch(() => ({})));
|
|
449
485
|
if (res.ok && data.ok) {
|
|
450
486
|
log(output.success(`Answer delivered to ${name}:${q.role} (live).`));
|
|
451
487
|
return { success: true };
|
|
@@ -472,9 +508,12 @@ export const answerAction = async (ctx, name) => {
|
|
|
472
508
|
log(output.warning(`The answer was NOT recorded. Fix or restore ${join(ctx.cwd, ORG_DIR, name, 'questions.json')}, then retry.`));
|
|
473
509
|
return { success: false, message: 'questions.json unreadable — answer not recorded' };
|
|
474
510
|
}
|
|
475
|
-
const freshQ = fresh.find(x => x.questionId === questionId);
|
|
511
|
+
const freshQ = fresh.find((x) => x.questionId === questionId);
|
|
476
512
|
if (freshQ && freshQ.answer !== null) {
|
|
477
|
-
return {
|
|
513
|
+
return {
|
|
514
|
+
success: false,
|
|
515
|
+
message: `question "${questionId}" was answered while this command was running`,
|
|
516
|
+
};
|
|
478
517
|
}
|
|
479
518
|
// Queue BEFORE marking answered (same rule as daemon.answerQuestion): if the
|
|
480
519
|
// append fails, the question must stay pending and answerable. Marking first meant
|
|
@@ -483,7 +522,8 @@ export const answerAction = async (ctx, name) => {
|
|
|
483
522
|
const { queueMessage } = await import('../orgrt/inbox.js');
|
|
484
523
|
try {
|
|
485
524
|
queueMessage(ctx.cwd, name, {
|
|
486
|
-
fromQualified: 'human',
|
|
525
|
+
fromQualified: 'human',
|
|
526
|
+
toRole: q.role,
|
|
487
527
|
subject: `answer:${questionId}`,
|
|
488
528
|
body: `question: ${q.question}\n\nanswer: ${answer}`,
|
|
489
529
|
ts: Date.now(),
|
|
@@ -493,8 +533,8 @@ export const answerAction = async (ctx, name) => {
|
|
|
493
533
|
log(output.error(`Could not queue the answer for ${name}:${q.role} (${err instanceof Error ? err.message : String(err)}) — answer NOT recorded, retry it.`));
|
|
494
534
|
return { success: false, message: 'queueing failed — answer not recorded' };
|
|
495
535
|
}
|
|
496
|
-
const merged = fresh.some(x => x.questionId === questionId)
|
|
497
|
-
? fresh.map(x => x.questionId === questionId ? { ...x, answer, answeredAt: Date.now() } : x)
|
|
536
|
+
const merged = fresh.some((x) => x.questionId === questionId)
|
|
537
|
+
? fresh.map((x) => (x.questionId === questionId ? { ...x, answer, answeredAt: Date.now() } : x))
|
|
498
538
|
: [...fresh, { ...q, answer, answeredAt: Date.now() }];
|
|
499
539
|
const dest = join(ctx.cwd, ORG_DIR, name, 'questions.json');
|
|
500
540
|
const tmp = `${dest}.${process.pid}.tmp`;
|
|
@@ -513,7 +553,7 @@ export const answerAction = async (ctx, name) => {
|
|
|
513
553
|
* semantics as a queued human answer. */
|
|
514
554
|
export const inboxAction = async (ctx, name) => {
|
|
515
555
|
let payload = {};
|
|
516
|
-
const rawJson = ctx.flags
|
|
556
|
+
const rawJson = ctx.flags.json;
|
|
517
557
|
if (typeof rawJson === 'string') {
|
|
518
558
|
try {
|
|
519
559
|
payload = JSON.parse(rawJson);
|
|
@@ -523,7 +563,7 @@ export const inboxAction = async (ctx, name) => {
|
|
|
523
563
|
}
|
|
524
564
|
}
|
|
525
565
|
else {
|
|
526
|
-
payload = { from: ctx.flags
|
|
566
|
+
payload = { from: ctx.flags.from, subject: ctx.flags.subject, body: ctx.flags.body };
|
|
527
567
|
}
|
|
528
568
|
const from = typeof payload.from === 'string' ? payload.from.trim() : '';
|
|
529
569
|
const subject = typeof payload.subject === 'string' ? payload.subject : '';
|
|
@@ -534,7 +574,7 @@ export const inboxAction = async (ctx, name) => {
|
|
|
534
574
|
}
|
|
535
575
|
// Target role: explicit --to, else the org's coordinator (reports_to == null),
|
|
536
576
|
// else the first role — matching where a role-less cross-org message should land.
|
|
537
|
-
let toRole = typeof ctx.flags
|
|
577
|
+
let toRole = typeof ctx.flags.to === 'string' ? ctx.flags.to : '';
|
|
538
578
|
if (toRole && !/^[a-z0-9][a-z0-9_-]*$/i.test(toRole)) {
|
|
539
579
|
log(output.error(`Invalid role id: ${toRole}`));
|
|
540
580
|
return { success: false, message: 'invalid role id' };
|
|
@@ -548,7 +588,7 @@ export const inboxAction = async (ctx, name) => {
|
|
|
548
588
|
try {
|
|
549
589
|
const def = JSON.parse(readFileSync(defPath, 'utf8'));
|
|
550
590
|
const roles = Array.isArray(def.roles) ? def.roles : [];
|
|
551
|
-
toRole = roles.find(r => r.reports_to == null)?.id ?? roles[0]?.id ?? '';
|
|
591
|
+
toRole = roles.find((r) => r.reports_to == null)?.id ?? roles[0]?.id ?? '';
|
|
552
592
|
}
|
|
553
593
|
catch (err) {
|
|
554
594
|
log(output.error(`Could not read org config for ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
@@ -568,11 +608,14 @@ export const inboxAction = async (ctx, name) => {
|
|
|
568
608
|
try {
|
|
569
609
|
const res = await fetch(`${remote.url}/api/xdeliver`, {
|
|
570
610
|
method: 'POST',
|
|
571
|
-
headers: {
|
|
611
|
+
headers: {
|
|
612
|
+
'Content-Type': 'application/json',
|
|
613
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
614
|
+
},
|
|
572
615
|
body: JSON.stringify({ fromOrg, fromRole, toOrg: name, toRole, subject, body }),
|
|
573
616
|
signal: AbortSignal.timeout(10_000),
|
|
574
617
|
});
|
|
575
|
-
const data = await res.json().catch(() => ({}));
|
|
618
|
+
const data = (await res.json().catch(() => ({})));
|
|
576
619
|
if (res.ok && data.ok) {
|
|
577
620
|
log(output.success(data.receipt ?? `delivered to ${name}:${toRole}`));
|
|
578
621
|
return { success: true, message: data.receipt ?? 'delivered' };
|
|
@@ -585,7 +628,13 @@ export const inboxAction = async (ctx, name) => {
|
|
|
585
628
|
}
|
|
586
629
|
// Offline path: spool; drained into the role's mailbox when the org next starts.
|
|
587
630
|
const { queueMessage } = await import('../orgrt/inbox.js');
|
|
588
|
-
const queued = queueMessage(ctx.cwd, name, {
|
|
631
|
+
const queued = queueMessage(ctx.cwd, name, {
|
|
632
|
+
fromQualified: from,
|
|
633
|
+
toRole,
|
|
634
|
+
subject,
|
|
635
|
+
body,
|
|
636
|
+
ts: Date.now(),
|
|
637
|
+
});
|
|
589
638
|
if (!queued) {
|
|
590
639
|
log(output.error(`Could not queue the message for ${name}:${toRole} (disk full or permissions).`));
|
|
591
640
|
return { success: false, message: 'queueing failed' };
|
|
@@ -596,20 +645,23 @@ export const inboxAction = async (ctx, name) => {
|
|
|
596
645
|
};
|
|
597
646
|
/** `org create <name> --template <t> [--goal g] [--schedule s]` — scaffold a config from a template. */
|
|
598
647
|
export const createAction = async (ctx, name) => {
|
|
599
|
-
const templateName = typeof ctx.flags
|
|
648
|
+
const templateName = typeof ctx.flags.template === 'string' ? ctx.flags.template : '';
|
|
600
649
|
if (!templateName) {
|
|
601
650
|
log(output.info(`Available templates: ${Object.keys(ORG_TEMPLATES).join(', ')}`));
|
|
602
|
-
return {
|
|
651
|
+
return {
|
|
652
|
+
success: false,
|
|
653
|
+
message: 'usage: monomind org create <name> --template <template> [--goal "..."] [--schedule 30m]',
|
|
654
|
+
};
|
|
603
655
|
}
|
|
604
|
-
const def = buildFromTemplate(templateName, name, typeof ctx.flags
|
|
656
|
+
const def = buildFromTemplate(templateName, name, typeof ctx.flags.goal === 'string' ? ctx.flags.goal : undefined);
|
|
605
657
|
if (!def) {
|
|
606
658
|
log(output.error(`Unknown template "${templateName}" — available: ${Object.keys(ORG_TEMPLATES).join(', ')}`));
|
|
607
659
|
return { success: false, message: 'unknown template' };
|
|
608
660
|
}
|
|
609
|
-
if (typeof ctx.flags
|
|
610
|
-
def.schedule = ctx.flags
|
|
661
|
+
if (typeof ctx.flags.schedule === 'string')
|
|
662
|
+
def.schedule = ctx.flags.schedule;
|
|
611
663
|
const file = join(ctx.cwd, ORG_DIR, `${name}.json`);
|
|
612
|
-
if (existsSync(file) && ctx.flags
|
|
664
|
+
if (existsSync(file) && ctx.flags.force !== true) {
|
|
613
665
|
log(output.error(`Org "${name}" already exists — pass --force to overwrite.`));
|
|
614
666
|
return { success: false, message: 'org exists' };
|
|
615
667
|
}
|
|
@@ -631,7 +683,7 @@ export const createAction = async (ctx, name) => {
|
|
|
631
683
|
log(` ${r.id.padEnd(20)} ${r.model}${r.explicit ? '' : ' (default)'}`);
|
|
632
684
|
}
|
|
633
685
|
};
|
|
634
|
-
if (ctx.interactive && ctx.flags
|
|
686
|
+
if (ctx.interactive && ctx.flags.yes !== true) {
|
|
635
687
|
log(output.bold(`\nAbout to create org "${name}" from template "${templateName}" (${def.roles.length} roles):`));
|
|
636
688
|
printModels();
|
|
637
689
|
const { confirm } = await import('../prompt.js');
|
|
@@ -643,19 +695,22 @@ export const createAction = async (ctx, name) => {
|
|
|
643
695
|
}
|
|
644
696
|
const { mkdirSync } = await import('node:fs');
|
|
645
697
|
mkdirSync(join(ctx.cwd, ORG_DIR), { recursive: true });
|
|
646
|
-
writeFileSync(file, JSON.stringify(def, null, 2)
|
|
698
|
+
writeFileSync(file, `${JSON.stringify(def, null, 2)}\n`, 'utf8');
|
|
647
699
|
log(output.success(`Org "${name}" created from template "${templateName}" (${def.roles.length} roles).`));
|
|
648
700
|
log(output.info(` Budget: ${def.run_config.budget_tokens} tokens · Turn limit: ${def.run_config.max_turns_per_message} per message (effectively unlimited by default — set run_config.max_turns_per_message, or a role's own max_turns_per_message, to cap it).`));
|
|
649
|
-
if (!ctx.interactive || ctx.flags
|
|
701
|
+
if (!ctx.interactive || ctx.flags.yes === true)
|
|
650
702
|
printModels();
|
|
651
703
|
log(output.info(` Edit the goal/roles in ${file}, then: monomind org run ${name}`));
|
|
652
704
|
return { success: true };
|
|
653
705
|
};
|
|
654
706
|
/** `org costs <name> [--run id]` — show per-role cost tracking from runtime.json */
|
|
655
707
|
export const costsAction = async (ctx, name) => {
|
|
656
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
708
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
657
709
|
if (!run)
|
|
658
|
-
return {
|
|
710
|
+
return {
|
|
711
|
+
success: false,
|
|
712
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
713
|
+
};
|
|
659
714
|
// Read runtime.json for the per-role metrics
|
|
660
715
|
const rtPath = join(ctx.cwd, ORG_DIR, name, 'runtime.json');
|
|
661
716
|
if (!existsSync(rtPath)) {
|
|
@@ -684,7 +739,7 @@ export const costsAction = async (ctx, name) => {
|
|
|
684
739
|
roleData.set(roleId, {
|
|
685
740
|
tokens: metrics.tokens,
|
|
686
741
|
costUsd: metrics.costUsd,
|
|
687
|
-
messages: 0
|
|
742
|
+
messages: 0,
|
|
688
743
|
});
|
|
689
744
|
}
|
|
690
745
|
}
|
|
@@ -695,7 +750,7 @@ export const costsAction = async (ctx, name) => {
|
|
|
695
750
|
roleData.set(roleId, {
|
|
696
751
|
tokens: existing.tokens || roleStats.tokens,
|
|
697
752
|
costUsd: existing.costUsd || roleStats.costUsd,
|
|
698
|
-
messages: roleStats.messagesSent
|
|
753
|
+
messages: roleStats.messagesSent,
|
|
699
754
|
});
|
|
700
755
|
}
|
|
701
756
|
}
|
|
@@ -722,14 +777,17 @@ export const costsAction = async (ctx, name) => {
|
|
|
722
777
|
};
|
|
723
778
|
/** `org flow <name> [--run id]` — export org flow as Mermaid diagram */
|
|
724
779
|
export const flowAction = async (ctx, name) => {
|
|
725
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
780
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
726
781
|
if (!run)
|
|
727
|
-
return {
|
|
782
|
+
return {
|
|
783
|
+
success: false,
|
|
784
|
+
message: `no runs found for org ${name} — start one with: monomind org run ${name}`,
|
|
785
|
+
};
|
|
728
786
|
const events = readRunEvents(ctx.cwd, name, run);
|
|
729
787
|
if (!events.length)
|
|
730
788
|
return { success: false, message: `run ${run} has no recorded events` };
|
|
731
789
|
// Extract message flow from events
|
|
732
|
-
const messageEvents = events.filter(e => e.type === 'message' || e.type === 'xorg');
|
|
790
|
+
const messageEvents = events.filter((e) => e.type === 'message' || e.type === 'xorg');
|
|
733
791
|
const roleSet = new Set();
|
|
734
792
|
const edges = new Set();
|
|
735
793
|
for (const e of messageEvents) {
|
|
@@ -776,13 +834,19 @@ async function resolveApproval(ctx, name, role, action, approved) {
|
|
|
776
834
|
const cred = normalizeCredential(remote.credential);
|
|
777
835
|
try {
|
|
778
836
|
const res = await fetch(`${remote.url}/api/set-approval`, {
|
|
779
|
-
method: 'POST',
|
|
837
|
+
method: 'POST',
|
|
838
|
+
headers: {
|
|
839
|
+
'Content-Type': 'application/json',
|
|
840
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
841
|
+
},
|
|
780
842
|
body: JSON.stringify({ org: name, role, action, approved }),
|
|
781
843
|
signal: AbortSignal.timeout(10_000),
|
|
782
844
|
});
|
|
783
|
-
const data = await res.json().catch(() => ({}));
|
|
845
|
+
const data = (await res.json().catch(() => ({})));
|
|
784
846
|
if (res.ok && data.ok) {
|
|
785
|
-
log(approved
|
|
847
|
+
log(approved
|
|
848
|
+
? output.success(`Approved: ${role} may execute ${action} (live).`)
|
|
849
|
+
: output.info(`Denied: ${role} may NOT execute ${action} (live).`));
|
|
786
850
|
return { success: true, message: `${verb} ${action} for ${role}` };
|
|
787
851
|
}
|
|
788
852
|
log(output.warning(`Live delivery rejected (${data.error ?? res.status}) — falling back to offline queue.`));
|
|
@@ -800,12 +864,17 @@ async function resolveApproval(ctx, name, role, action, approved) {
|
|
|
800
864
|
const pending = data.approvals ?? [];
|
|
801
865
|
const item = pending.find((a) => a.roleId === role && a.action === action);
|
|
802
866
|
if (!item) {
|
|
803
|
-
return {
|
|
867
|
+
return {
|
|
868
|
+
success: false,
|
|
869
|
+
message: `no pending approval found for role ${role} action ${action}`,
|
|
870
|
+
};
|
|
804
871
|
}
|
|
805
872
|
item.approved = approved;
|
|
806
873
|
item.ts = Date.now();
|
|
807
874
|
writeFileSync(approvalsPath, JSON.stringify({ approvals: pending }, null, 2));
|
|
808
|
-
log(approved
|
|
875
|
+
log(approved
|
|
876
|
+
? output.success(`Approved: ${role} may execute ${action}`)
|
|
877
|
+
: output.info(`Denied: ${role} may NOT execute ${action}`));
|
|
809
878
|
return { success: true, message: `${verb} ${action} for ${role}` };
|
|
810
879
|
}
|
|
811
880
|
/** `org approve <org> <role> <action>` — approve a pending tool/action approval */
|
|
@@ -849,7 +918,10 @@ export const replayAction = async (ctx, name) => {
|
|
|
849
918
|
const daemon = new OrgDaemon(ctx.cwd, { forward: false });
|
|
850
919
|
const resumed = await daemon.replayFrom(name, run);
|
|
851
920
|
if (!resumed) {
|
|
852
|
-
return {
|
|
921
|
+
return {
|
|
922
|
+
success: false,
|
|
923
|
+
message: `replay failed - check bus.jsonl and org config for ${name} are valid`,
|
|
924
|
+
};
|
|
853
925
|
}
|
|
854
926
|
log(output.success(`Org ${name} events replayed from ${run} as run ${resumed.run}`));
|
|
855
927
|
log(output.info(`Use: monomind org logs ${name} --run ${resumed.run} to inspect events.`));
|
|
@@ -866,7 +938,10 @@ export const resumeFromAction = async (ctx, name) => {
|
|
|
866
938
|
const daemon = new OrgDaemon(ctx.cwd, { forward: false });
|
|
867
939
|
const resumed = await daemon.resumeOrg(name);
|
|
868
940
|
if (!resumed) {
|
|
869
|
-
return {
|
|
941
|
+
return {
|
|
942
|
+
success: false,
|
|
943
|
+
message: `resume failed for ${name} - check runtime.json checkpoint is present, unexpired, and valid`,
|
|
944
|
+
};
|
|
870
945
|
}
|
|
871
946
|
log(output.success(`Org ${name} resumed - ${resumed.agents.size} role(s) restored`));
|
|
872
947
|
log(output.info(`Stop with: monomind org stop ${name}`));
|
|
@@ -892,7 +967,7 @@ export const branchAction = async (ctx, name) => {
|
|
|
892
967
|
};
|
|
893
968
|
/** `org decisions <org> [--run id]` — show Rifft-style decision traces */
|
|
894
969
|
export const decisionsAction = async (ctx, name) => {
|
|
895
|
-
const run = resolveRun(ctx.cwd, name, ctx.flags
|
|
970
|
+
const run = resolveRun(ctx.cwd, name, ctx.flags.run);
|
|
896
971
|
if (!run) {
|
|
897
972
|
return { success: false, message: `no runs found for org ${name}` };
|
|
898
973
|
}
|
|
@@ -901,10 +976,7 @@ export const decisionsAction = async (ctx, name) => {
|
|
|
901
976
|
return { success: false, message: `run ${run} has no recorded events` };
|
|
902
977
|
}
|
|
903
978
|
// Filter decision trace events
|
|
904
|
-
const decisionEvents = events.filter(e => e.type === 'audit' &&
|
|
905
|
-
e.reason === 'decision-trace' &&
|
|
906
|
-
e.data &&
|
|
907
|
-
typeof e.data === 'object');
|
|
979
|
+
const decisionEvents = events.filter((e) => e.type === 'audit' && e.reason === 'decision-trace' && e.data && typeof e.data === 'object');
|
|
908
980
|
if (!decisionEvents.length) {
|
|
909
981
|
log(output.info(`No decision traces found in ${run}`));
|
|
910
982
|
return { success: true };
|
|
@@ -962,15 +1034,21 @@ function readGatesFileStrict(cwd, org) {
|
|
|
962
1034
|
}
|
|
963
1035
|
export const gatesAction = async (ctx, name) => {
|
|
964
1036
|
const data = readGatesFile(ctx.cwd, name);
|
|
965
|
-
const showAll = ctx.flags
|
|
966
|
-
const gates = showAll ? data.gates : data.gates.filter(g => g.status === 'pending');
|
|
1037
|
+
const showAll = ctx.flags.all === true;
|
|
1038
|
+
const gates = showAll ? data.gates : data.gates.filter((g) => g.status === 'pending');
|
|
967
1039
|
if (!gates.length) {
|
|
968
|
-
log(output.info(showAll
|
|
1040
|
+
log(output.info(showAll
|
|
1041
|
+
? `No gates for org "${name}"`
|
|
1042
|
+
: `No pending gates for org "${name}" (use --all to include resolved)`));
|
|
969
1043
|
return { success: true };
|
|
970
1044
|
}
|
|
971
1045
|
log(output.info(`${showAll ? 'All' : 'Pending'} gates for org "${name}" (${gates.length}):\n`));
|
|
972
1046
|
for (const g of gates) {
|
|
973
|
-
const status = g.status === 'pending'
|
|
1047
|
+
const status = g.status === 'pending'
|
|
1048
|
+
? '⏳ pending'
|
|
1049
|
+
: g.status === 'approved'
|
|
1050
|
+
? '✅ approved'
|
|
1051
|
+
: '❌ rejected';
|
|
974
1052
|
log(output.info(` ${g.id} ${status} role:${g.roleId}`));
|
|
975
1053
|
log(output.info(` name: ${g.name}`));
|
|
976
1054
|
log(output.info(` desc: ${g.description}`));
|
|
@@ -984,7 +1062,10 @@ export const gateResolveAction = async (ctx, name, approved) => {
|
|
|
984
1062
|
const gateId = ctx.args[1];
|
|
985
1063
|
const resolution = ctx.args.slice(2).join(' ') || undefined;
|
|
986
1064
|
if (!gateId)
|
|
987
|
-
return {
|
|
1065
|
+
return {
|
|
1066
|
+
success: false,
|
|
1067
|
+
message: `usage: monomind org gate-${approved ? 'approve' : 'reject'} ${name} <gate-id> [resolution]`,
|
|
1068
|
+
};
|
|
988
1069
|
let data;
|
|
989
1070
|
try {
|
|
990
1071
|
data = readGatesFileStrict(ctx.cwd, name);
|
|
@@ -993,7 +1074,7 @@ export const gateResolveAction = async (ctx, name, approved) => {
|
|
|
993
1074
|
log(output.error(`Cannot read gates for org ${name}: ${err instanceof Error ? err.message : String(err)}`));
|
|
994
1075
|
return { success: false, message: 'gates.json unreadable — gate not resolved' };
|
|
995
1076
|
}
|
|
996
|
-
const gate = data.gates.find(g => g.id === gateId);
|
|
1077
|
+
const gate = data.gates.find((g) => g.id === gateId);
|
|
997
1078
|
if (!gate)
|
|
998
1079
|
return { success: false, message: `gate "${gateId}" not found for org "${name}"` };
|
|
999
1080
|
if (gate.status !== 'pending')
|
|
@@ -1004,11 +1085,15 @@ export const gateResolveAction = async (ctx, name, approved) => {
|
|
|
1004
1085
|
const cred = normalizeCredential(remote.credential);
|
|
1005
1086
|
try {
|
|
1006
1087
|
const res = await fetch(`${remote.url}/api/resolve-gate`, {
|
|
1007
|
-
method: 'POST',
|
|
1088
|
+
method: 'POST',
|
|
1089
|
+
headers: {
|
|
1090
|
+
'Content-Type': 'application/json',
|
|
1091
|
+
...(cred ? { 'x-monomind-cred': cred } : {}),
|
|
1092
|
+
},
|
|
1008
1093
|
body: JSON.stringify({ org: name, gateId, approved, resolution }),
|
|
1009
1094
|
signal: AbortSignal.timeout(10_000),
|
|
1010
1095
|
});
|
|
1011
|
-
const d = await res.json().catch(() => ({}));
|
|
1096
|
+
const d = (await res.json().catch(() => ({})));
|
|
1012
1097
|
if (res.ok && d.ok) {
|
|
1013
1098
|
log(output.success(`Gate ${gateId} ${approved ? 'approved' : 'rejected'} (live).`));
|
|
1014
1099
|
return { success: true, message: `gate ${approved ? 'approved' : 'rejected'}` };
|
|
@@ -1034,11 +1119,14 @@ export const gateResolveAction = async (ctx, name, approved) => {
|
|
|
1034
1119
|
log(output.warning(`The gate was NOT resolved. Fix or restore ${join(ctx.cwd, ORG_DIR, name, 'gates.json')}, then retry.`));
|
|
1035
1120
|
return { success: false, message: 'gates.json unreadable — gate not resolved' };
|
|
1036
1121
|
}
|
|
1037
|
-
const idx = fresh.gates.findIndex(g => g.id === gateId);
|
|
1122
|
+
const idx = fresh.gates.findIndex((g) => g.id === gateId);
|
|
1038
1123
|
if (idx === -1)
|
|
1039
1124
|
return { success: false, message: `gate "${gateId}" not found for org "${name}"` };
|
|
1040
1125
|
if (fresh.gates[idx].status !== 'pending') {
|
|
1041
|
-
return {
|
|
1126
|
+
return {
|
|
1127
|
+
success: false,
|
|
1128
|
+
message: `gate "${gateId}" already resolved (${fresh.gates[idx].status})`,
|
|
1129
|
+
};
|
|
1042
1130
|
}
|
|
1043
1131
|
fresh.gates[idx] = {
|
|
1044
1132
|
...fresh.gates[idx],
|