@monoes/monomindcli 2.15.7 → 2.16.1
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/helpers/build-skill-registry.cjs +23 -2
- package/.claude/helpers/handlers/route-handler.cjs +102 -3
- package/.claude/helpers/handlers/session-restore-handler.cjs +1 -1
- package/.claude/helpers/hook-handler.cjs +17 -2
- package/.claude/helpers/jev-picker.cjs +499 -0
- package/.claude/helpers/redact-secrets.cjs +69 -0
- package/.claude/skills/mastermind-agent-select/SKILL.md +28 -0
- package/.claude/skills/monodesign/SKILL.md +257 -0
- package/.claude/skills/monodesign/adapt.md +53 -0
- package/.claude/skills/monodesign/agents/monodesign-asset-producer.md +100 -0
- package/.claude/skills/monodesign/agents/monodesign-manual-edit-applier.md +103 -0
- package/.claude/skills/monodesign/animate.md +65 -0
- package/.claude/skills/monodesign/audit.md +89 -0
- package/.claude/skills/monodesign/bolder.md +50 -0
- package/.claude/skills/monodesign/clarify.md +64 -0
- package/.claude/skills/monodesign/colorize.md +68 -0
- package/.claude/skills/monodesign/craft.md +51 -0
- package/.claude/skills/monodesign/critique.md +66 -0
- package/.claude/skills/monodesign/delight.md +47 -0
- package/.claude/skills/monodesign/distill.md +56 -0
- package/.claude/skills/monodesign/document.md +83 -0
- package/.claude/skills/monodesign/extract.md +74 -0
- package/.claude/skills/monodesign/harden.md +65 -0
- package/.claude/skills/monodesign/init.md +30 -0
- package/.claude/skills/monodesign/layout.md +36 -0
- package/.claude/skills/monodesign/live.md +34 -0
- package/.claude/skills/monodesign/onboard.md +50 -0
- package/.claude/skills/monodesign/optimize.md +64 -0
- package/.claude/skills/monodesign/overdrive.md +56 -0
- package/.claude/skills/monodesign/polish.md +68 -0
- package/.claude/skills/monodesign/quieter.md +57 -0
- package/.claude/skills/monodesign/reference/adapt.md +312 -0
- package/.claude/skills/monodesign/reference/adapt.native.md +58 -0
- package/.claude/skills/monodesign/reference/android.md +40 -0
- package/.claude/skills/monodesign/reference/animate.md +203 -0
- package/.claude/skills/monodesign/reference/antipatterns-catalog.md +410 -0
- package/.claude/skills/monodesign/reference/audit.md +135 -0
- package/.claude/skills/monodesign/reference/audit.native.md +139 -0
- package/.claude/skills/monodesign/reference/bolder.md +120 -0
- package/.claude/skills/monodesign/reference/brand-workflow.md +180 -0
- package/.claude/skills/monodesign/reference/brand.md +108 -0
- package/.claude/skills/monodesign/reference/clarify.md +288 -0
- package/.claude/skills/monodesign/reference/codex.md +105 -0
- package/.claude/skills/monodesign/reference/cognitive-load.md +106 -0
- package/.claude/skills/monodesign/reference/color-and-contrast.md +105 -0
- package/.claude/skills/monodesign/reference/colorize.md +257 -0
- package/.claude/skills/monodesign/reference/component-specs.md +260 -0
- package/.claude/skills/monodesign/reference/component-states.md +274 -0
- package/.claude/skills/monodesign/reference/component-system.md +358 -0
- package/.claude/skills/monodesign/reference/copy-formulas.md +160 -0
- package/.claude/skills/monodesign/reference/craft.md +123 -0
- package/.claude/skills/monodesign/reference/critique.md +780 -0
- package/.claude/skills/monodesign/reference/delight.md +302 -0
- package/.claude/skills/monodesign/reference/design-principles.md +246 -0
- package/.claude/skills/monodesign/reference/distill.md +111 -0
- package/.claude/skills/monodesign/reference/document.md +429 -0
- package/.claude/skills/monodesign/reference/extract.md +69 -0
- package/.claude/skills/monodesign/reference/harden.md +347 -0
- package/.claude/skills/monodesign/reference/heuristics-scoring.md +234 -0
- package/.claude/skills/monodesign/reference/hooks.md +92 -0
- package/.claude/skills/monodesign/reference/image-prompts.md +130 -0
- package/.claude/skills/monodesign/reference/init.md +221 -0
- package/.claude/skills/monodesign/reference/interaction-design.md +189 -0
- package/.claude/skills/monodesign/reference/ios.md +45 -0
- package/.claude/skills/monodesign/reference/layout.md +185 -0
- package/.claude/skills/monodesign/reference/live.md +710 -0
- package/.claude/skills/monodesign/reference/motion-design.md +109 -0
- package/.claude/skills/monodesign/reference/onboard.md +234 -0
- package/.claude/skills/monodesign/reference/optimize.md +258 -0
- package/.claude/skills/monodesign/reference/overdrive.md +130 -0
- package/.claude/skills/monodesign/reference/personas.md +179 -0
- package/.claude/skills/monodesign/reference/polish.md +241 -0
- package/.claude/skills/monodesign/reference/pre-delivery-checklist.md +108 -0
- package/.claude/skills/monodesign/reference/product.md +60 -0
- package/.claude/skills/monodesign/reference/quieter.md +99 -0
- package/.claude/skills/monodesign/reference/responsive-design.md +114 -0
- package/.claude/skills/monodesign/reference/shape.md +165 -0
- package/.claude/skills/monodesign/reference/spatial-design.md +100 -0
- package/.claude/skills/monodesign/reference/teach.md +10 -0
- package/.claude/skills/monodesign/reference/token-architecture.md +222 -0
- package/.claude/skills/monodesign/reference/typeset.md +301 -0
- package/.claude/skills/monodesign/reference/typography.md +159 -0
- package/.claude/skills/monodesign/reference/ux-research.md +143 -0
- package/.claude/skills/monodesign/reference/ux-rules.md +211 -0
- package/.claude/skills/monodesign/reference/ux-writing.md +107 -0
- package/.claude/skills/monodesign/scripts/command-metadata.json +94 -0
- package/.claude/skills/monodesign/scripts/context-signals.mjs +260 -0
- package/.claude/skills/monodesign/scripts/context.mjs +1065 -0
- package/.claude/skills/monodesign/scripts/critique-storage.mjs +416 -0
- package/.claude/skills/monodesign/scripts/detect-csp.mjs +193 -0
- package/.claude/skills/monodesign/scripts/detect.mjs +33 -0
- package/.claude/skills/monodesign/scripts/detector/browser/injected/index.mjs +1960 -0
- package/.claude/skills/monodesign/scripts/detector/cli/main.mjs +321 -0
- package/.claude/skills/monodesign/scripts/detector/design-system.mjs +814 -0
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns-browser.js +5628 -0
- package/.claude/skills/monodesign/scripts/detector/detect-antipatterns.mjs +50 -0
- package/.claude/skills/monodesign/scripts/detector/engines/browser/detect-url.mjs +259 -0
- package/.claude/skills/monodesign/scripts/detector/engines/browser/drivers.mjs +339 -0
- package/.claude/skills/monodesign/scripts/detector/engines/regex/detect-text.mjs +636 -0
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/css-cascade.mjs +1016 -0
- package/.claude/skills/monodesign/scripts/detector/engines/static-html/detect-html.mjs +253 -0
- package/.claude/skills/monodesign/scripts/detector/engines/visual/screenshot-contrast.mjs +198 -0
- package/.claude/skills/monodesign/scripts/detector/findings.mjs +12 -0
- package/.claude/skills/monodesign/scripts/detector/fix/css-regions.mjs +181 -0
- package/.claude/skills/monodesign/scripts/detector/fix/fixers.mjs +373 -0
- package/.claude/skills/monodesign/scripts/detector/fix/index.mjs +426 -0
- package/.claude/skills/monodesign/scripts/detector/node/file-system.mjs +198 -0
- package/.claude/skills/monodesign/scripts/detector/profile/profiler.mjs +166 -0
- package/.claude/skills/monodesign/scripts/detector/registry/antipatterns.mjs +563 -0
- package/.claude/skills/monodesign/scripts/detector/rules/checks.mjs +3024 -0
- package/.claude/skills/monodesign/scripts/detector/shared/color.mjs +124 -0
- package/.claude/skills/monodesign/scripts/detector/shared/constants.mjs +101 -0
- package/.claude/skills/monodesign/scripts/detector/shared/fonts.mjs +30 -0
- package/.claude/skills/monodesign/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/.claude/skills/monodesign/scripts/detector/shared/page.mjs +7 -0
- package/.claude/skills/monodesign/scripts/hook-admin.mjs +694 -0
- package/.claude/skills/monodesign/scripts/hook-before-edit.mjs +516 -0
- package/.claude/skills/monodesign/scripts/hook-lib.mjs +1785 -0
- package/.claude/skills/monodesign/scripts/hook.mjs +61 -0
- package/.claude/skills/monodesign/scripts/lib/design-parser.mjs +809 -0
- package/.claude/skills/monodesign/scripts/lib/is-generated.mjs +69 -0
- package/.claude/skills/monodesign/scripts/lib/monodesign-config.mjs +640 -0
- package/.claude/skills/monodesign/scripts/lib/monodesign-paths.mjs +129 -0
- package/.claude/skills/monodesign/scripts/lib/provider.mjs +4 -0
- package/.claude/skills/monodesign/scripts/lib/target-args.mjs +42 -0
- package/.claude/skills/monodesign/scripts/live/browser-script-parts.mjs +50 -0
- package/.claude/skills/monodesign/scripts/live/completion.mjs +19 -0
- package/.claude/skills/monodesign/scripts/live/event-validation.mjs +137 -0
- package/.claude/skills/monodesign/scripts/live/insert-ui.mjs +458 -0
- package/.claude/skills/monodesign/scripts/live/manual-apply.mjs +939 -0
- package/.claude/skills/monodesign/scripts/live/manual-edit-routes.mjs +357 -0
- package/.claude/skills/monodesign/scripts/live/manual-edits-buffer.mjs +152 -0
- package/.claude/skills/monodesign/scripts/live/session-store.mjs +293 -0
- package/.claude/skills/monodesign/scripts/live/svelte-component.mjs +826 -0
- package/.claude/skills/monodesign/scripts/live/sveltekit-adapter.mjs +279 -0
- package/.claude/skills/monodesign/scripts/live/ui-core.mjs +180 -0
- package/.claude/skills/monodesign/scripts/live/vocabulary.mjs +36 -0
- package/.claude/skills/monodesign/scripts/live-accept.mjs +812 -0
- package/.claude/skills/monodesign/scripts/live-browser-dom.js +147 -0
- package/.claude/skills/monodesign/scripts/live-browser-session.js +124 -0
- package/.claude/skills/monodesign/scripts/live-browser.js +11213 -0
- package/.claude/skills/monodesign/scripts/live-commit-manual-edits.mjs +1241 -0
- package/.claude/skills/monodesign/scripts/live-complete.mjs +75 -0
- package/.claude/skills/monodesign/scripts/live-copy-edit-agent.mjs +683 -0
- package/.claude/skills/monodesign/scripts/live-discard-manual-edits.mjs +51 -0
- package/.claude/skills/monodesign/scripts/live-inject.mjs +596 -0
- package/.claude/skills/monodesign/scripts/live-insert.mjs +272 -0
- package/.claude/skills/monodesign/scripts/live-manual-edit-evidence.mjs +363 -0
- package/.claude/skills/monodesign/scripts/live-poll.mjs +384 -0
- package/.claude/skills/monodesign/scripts/live-resume.mjs +94 -0
- package/.claude/skills/monodesign/scripts/live-server.mjs +1210 -0
- package/.claude/skills/monodesign/scripts/live-status.mjs +61 -0
- package/.claude/skills/monodesign/scripts/live-target.mjs +30 -0
- package/.claude/skills/monodesign/scripts/live-wrap.mjs +884 -0
- package/.claude/skills/monodesign/scripts/live.mjs +297 -0
- package/.claude/skills/monodesign/scripts/modern-screenshot.umd.js +14 -0
- package/.claude/skills/monodesign/scripts/palette.mjs +635 -0
- package/.claude/skills/monodesign/scripts/pin.mjs +221 -0
- package/.claude/skills/monodesign/shape.md +71 -0
- package/.claude/skills/monodesign/teach.md +18 -0
- package/.claude/skills/monodesign/typeset.md +59 -0
- package/README.md +1 -1
- package/dist/src/capabilities/cap-code.d.ts.map +1 -1
- package/dist/src/capabilities/cap-code.js +10 -5
- package/dist/src/capabilities/cap-code.js.map +1 -1
- package/dist/src/capabilities/manager.d.ts +2 -1
- package/dist/src/capabilities/manager.d.ts.map +1 -1
- package/dist/src/capabilities/manager.js +4 -1
- package/dist/src/capabilities/manager.js.map +1 -1
- package/dist/src/catalog/blueprints.d.ts +39 -0
- package/dist/src/catalog/blueprints.d.ts.map +1 -0
- package/dist/src/catalog/blueprints.js +78 -0
- package/dist/src/catalog/blueprints.js.map +1 -0
- package/dist/src/catalog/digest.d.ts +16 -0
- package/dist/src/catalog/digest.d.ts.map +1 -0
- package/dist/src/catalog/digest.js +62 -0
- package/dist/src/catalog/digest.js.map +1 -0
- package/dist/src/catalog/frontmatter.d.ts +23 -0
- package/dist/src/catalog/frontmatter.d.ts.map +1 -0
- package/dist/src/catalog/frontmatter.js +80 -0
- package/dist/src/catalog/frontmatter.js.map +1 -0
- package/dist/src/catalog/lifecycle.d.ts +31 -0
- package/dist/src/catalog/lifecycle.d.ts.map +1 -0
- package/dist/src/catalog/lifecycle.js +78 -0
- package/dist/src/catalog/lifecycle.js.map +1 -0
- package/dist/src/catalog/projection.d.ts +57 -0
- package/dist/src/catalog/projection.d.ts.map +1 -0
- package/dist/src/catalog/projection.js +272 -0
- package/dist/src/catalog/projection.js.map +1 -0
- package/dist/src/catalog/scan.d.ts +37 -0
- package/dist/src/catalog/scan.d.ts.map +1 -0
- package/dist/src/catalog/scan.js +214 -0
- package/dist/src/catalog/scan.js.map +1 -0
- package/dist/src/catalog/snapshot.d.ts +62 -0
- package/dist/src/catalog/snapshot.d.ts.map +1 -0
- package/dist/src/catalog/snapshot.js +183 -0
- package/dist/src/catalog/snapshot.js.map +1 -0
- package/dist/src/catalog/stage.d.ts +26 -0
- package/dist/src/catalog/stage.d.ts.map +1 -0
- package/dist/src/catalog/stage.js +316 -0
- package/dist/src/catalog/stage.js.map +1 -0
- package/dist/src/catalog/state.d.ts +23 -0
- package/dist/src/catalog/state.d.ts.map +1 -0
- package/dist/src/catalog/state.js +102 -0
- package/dist/src/catalog/state.js.map +1 -0
- package/dist/src/catalog/types.d.ts +289 -0
- package/dist/src/catalog/types.d.ts.map +1 -0
- package/dist/src/catalog/types.js +118 -0
- package/dist/src/catalog/types.js.map +1 -0
- package/dist/src/commands/catalog.d.ts +14 -0
- package/dist/src/commands/catalog.d.ts.map +1 -0
- package/dist/src/commands/catalog.js +392 -0
- package/dist/src/commands/catalog.js.map +1 -0
- package/dist/src/commands/doctor-catalog-checks.d.ts +3 -0
- package/dist/src/commands/doctor-catalog-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-catalog-checks.js +69 -0
- package/dist/src/commands/doctor-catalog-checks.js.map +1 -0
- package/dist/src/commands/doctor-decision-checks.d.ts +10 -0
- package/dist/src/commands/doctor-decision-checks.d.ts.map +1 -0
- package/dist/src/commands/doctor-decision-checks.js +82 -0
- package/dist/src/commands/doctor-decision-checks.js.map +1 -0
- package/dist/src/commands/doctor-project-checks.js +1 -1
- 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 -1
- package/dist/src/commands/doctor.js.map +1 -1
- package/dist/src/commands/index.d.ts +2 -2
- package/dist/src/commands/index.d.ts.map +1 -1
- package/dist/src/commands/index.js +4 -1
- package/dist/src/commands/index.js.map +1 -1
- package/dist/src/commands/init-wizard.d.ts.map +1 -1
- package/dist/src/commands/init-wizard.js +2 -0
- 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 +25 -26
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/org-observe.d.ts.map +1 -1
- package/dist/src/commands/org-observe.js +12 -10
- package/dist/src/commands/org-observe.js.map +1 -1
- package/dist/src/commands/org-run-end.d.ts +26 -0
- package/dist/src/commands/org-run-end.d.ts.map +1 -0
- package/dist/src/commands/org-run-end.js +40 -0
- package/dist/src/commands/org-run-end.js.map +1 -0
- package/dist/src/commands/org-skills.d.ts.map +1 -1
- package/dist/src/commands/org-skills.js +14 -4
- package/dist/src/commands/org-skills.js.map +1 -1
- package/dist/src/commands/org.d.ts +2 -1
- package/dist/src/commands/org.d.ts.map +1 -1
- package/dist/src/commands/org.js +44 -16
- package/dist/src/commands/org.js.map +1 -1
- package/dist/src/commands/pick.d.ts +4 -0
- package/dist/src/commands/pick.d.ts.map +1 -0
- package/dist/src/commands/pick.js +77 -0
- package/dist/src/commands/pick.js.map +1 -0
- package/dist/src/commands/route.js +1 -1
- package/dist/src/commands/route.js.map +1 -1
- package/dist/src/commands/search-universal.d.ts.map +1 -1
- package/dist/src/commands/search-universal.js +1 -2
- package/dist/src/commands/search-universal.js.map +1 -1
- package/dist/src/decision/catalogs.d.ts +20 -0
- package/dist/src/decision/catalogs.d.ts.map +1 -0
- package/dist/src/decision/catalogs.js +64 -0
- package/dist/src/decision/catalogs.js.map +1 -0
- package/dist/src/decision/jev.d.ts +85 -0
- package/dist/src/decision/jev.d.ts.map +1 -0
- package/dist/src/decision/jev.js +72 -0
- package/dist/src/decision/jev.js.map +1 -0
- package/dist/src/decision/picks.d.ts +50 -0
- package/dist/src/decision/picks.d.ts.map +1 -0
- package/dist/src/decision/picks.js +100 -0
- package/dist/src/decision/picks.js.map +1 -0
- package/dist/src/init/executor.d.ts.map +1 -1
- package/dist/src/init/executor.js +7 -0
- package/dist/src/init/executor.js.map +1 -1
- package/dist/src/init/helpers-generator.d.ts.map +1 -1
- package/dist/src/init/helpers-generator.js +7 -0
- package/dist/src/init/helpers-generator.js.map +1 -1
- package/dist/src/init/init-memory.d.ts +14 -0
- package/dist/src/init/init-memory.d.ts.map +1 -0
- package/dist/src/init/init-memory.js +44 -0
- package/dist/src/init/init-memory.js.map +1 -0
- package/dist/src/init/types.d.ts +13 -0
- package/dist/src/init/types.d.ts.map +1 -1
- 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 +9 -0
- package/dist/src/init/upgrade.js.map +1 -1
- package/dist/src/orgrt/agent-runner.d.ts +7 -0
- package/dist/src/orgrt/agent-runner.d.ts.map +1 -1
- package/dist/src/orgrt/agent-runner.js +5 -1
- package/dist/src/orgrt/agent-runner.js.map +1 -1
- package/dist/src/orgrt/antigravity-runner.d.ts.map +1 -1
- package/dist/src/orgrt/antigravity-runner.js +8 -14
- package/dist/src/orgrt/antigravity-runner.js.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint-ops.js +7 -1
- package/dist/src/orgrt/checkpoint-ops.js.map +1 -1
- package/dist/src/orgrt/checkpoint.d.ts +10 -2
- package/dist/src/orgrt/checkpoint.d.ts.map +1 -1
- package/dist/src/orgrt/checkpoint.js +8 -2
- package/dist/src/orgrt/checkpoint.js.map +1 -1
- package/dist/src/orgrt/codex-runner.d.ts.map +1 -1
- package/dist/src/orgrt/codex-runner.js +8 -14
- package/dist/src/orgrt/codex-runner.js.map +1 -1
- package/dist/src/orgrt/completion-gate.d.ts +6 -0
- package/dist/src/orgrt/completion-gate.d.ts.map +1 -1
- package/dist/src/orgrt/completion-gate.js +18 -0
- package/dist/src/orgrt/completion-gate.js.map +1 -1
- package/dist/src/orgrt/copilot-runner.d.ts.map +1 -1
- package/dist/src/orgrt/copilot-runner.js +7 -10
- package/dist/src/orgrt/copilot-runner.js.map +1 -1
- package/dist/src/orgrt/crush-runner.d.ts.map +1 -1
- package/dist/src/orgrt/crush-runner.js +7 -10
- package/dist/src/orgrt/crush-runner.js.map +1 -1
- package/dist/src/orgrt/cumulative-meter.d.ts +26 -0
- package/dist/src/orgrt/cumulative-meter.d.ts.map +1 -0
- package/dist/src/orgrt/cumulative-meter.js +46 -0
- package/dist/src/orgrt/cumulative-meter.js.map +1 -0
- package/dist/src/orgrt/daemon.d.ts +20 -3
- package/dist/src/orgrt/daemon.d.ts.map +1 -1
- package/dist/src/orgrt/daemon.js +55 -28
- package/dist/src/orgrt/daemon.js.map +1 -1
- package/dist/src/orgrt/dashboard-health.d.ts +54 -0
- package/dist/src/orgrt/dashboard-health.d.ts.map +1 -0
- package/dist/src/orgrt/dashboard-health.js +143 -0
- package/dist/src/orgrt/dashboard-health.js.map +1 -0
- package/dist/src/orgrt/decisions.d.ts +13 -1
- package/dist/src/orgrt/decisions.d.ts.map +1 -1
- package/dist/src/orgrt/decisions.js +92 -18
- package/dist/src/orgrt/decisions.js.map +1 -1
- package/dist/src/orgrt/forwarder.d.ts +2 -1
- package/dist/src/orgrt/forwarder.d.ts.map +1 -1
- package/dist/src/orgrt/forwarder.js +87 -27
- package/dist/src/orgrt/forwarder.js.map +1 -1
- package/dist/src/orgrt/grok-runner.d.ts.map +1 -1
- package/dist/src/orgrt/grok-runner.js +7 -12
- package/dist/src/orgrt/grok-runner.js.map +1 -1
- package/dist/src/orgrt/hermes-runner.d.ts.map +1 -1
- package/dist/src/orgrt/hermes-runner.js +9 -15
- package/dist/src/orgrt/hermes-runner.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 +9 -15
- package/dist/src/orgrt/kimicode-runner.js.map +1 -1
- package/dist/src/orgrt/opencode-runner.d.ts.map +1 -1
- package/dist/src/orgrt/opencode-runner.js +7 -13
- package/dist/src/orgrt/opencode-runner.js.map +1 -1
- package/dist/src/orgrt/org-harness-tools.d.ts +8 -0
- package/dist/src/orgrt/org-harness-tools.d.ts.map +1 -0
- package/dist/src/orgrt/org-harness-tools.js +21 -0
- package/dist/src/orgrt/org-harness-tools.js.map +1 -0
- package/dist/src/orgrt/pi-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-rpc-runner.js +9 -13
- package/dist/src/orgrt/pi-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/pi-runner.d.ts.map +1 -1
- package/dist/src/orgrt/pi-runner.js +7 -11
- package/dist/src/orgrt/pi-runner.js.map +1 -1
- package/dist/src/orgrt/policy-git.d.ts +5 -1
- package/dist/src/orgrt/policy-git.d.ts.map +1 -1
- package/dist/src/orgrt/policy-git.js +56 -29
- package/dist/src/orgrt/policy-git.js.map +1 -1
- package/dist/src/orgrt/policy.d.ts +7 -0
- package/dist/src/orgrt/policy.d.ts.map +1 -1
- package/dist/src/orgrt/policy.js +10 -1
- package/dist/src/orgrt/policy.js.map +1 -1
- package/dist/src/orgrt/prompt-vars.d.ts +8 -1
- package/dist/src/orgrt/prompt-vars.d.ts.map +1 -1
- package/dist/src/orgrt/prompt-vars.js +60 -11
- package/dist/src/orgrt/prompt-vars.js.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-rpc-runner.js +9 -14
- package/dist/src/orgrt/qwen-rpc-runner.js.map +1 -1
- package/dist/src/orgrt/qwen-runner.d.ts.map +1 -1
- package/dist/src/orgrt/qwen-runner.js +7 -12
- package/dist/src/orgrt/qwen-runner.js.map +1 -1
- package/dist/src/orgrt/report-budget.d.ts +4 -0
- package/dist/src/orgrt/report-budget.d.ts.map +1 -0
- package/dist/src/orgrt/report-budget.js +12 -0
- package/dist/src/orgrt/report-budget.js.map +1 -0
- package/dist/src/orgrt/reporting.d.ts +4 -0
- package/dist/src/orgrt/reporting.d.ts.map +1 -1
- package/dist/src/orgrt/reporting.js +8 -2
- package/dist/src/orgrt/reporting.js.map +1 -1
- package/dist/src/orgrt/role-sandbox.d.ts +4 -1
- package/dist/src/orgrt/role-sandbox.d.ts.map +1 -1
- package/dist/src/orgrt/role-sandbox.js +24 -10
- package/dist/src/orgrt/role-sandbox.js.map +1 -1
- package/dist/src/orgrt/role-trace.d.ts +27 -0
- package/dist/src/orgrt/role-trace.d.ts.map +1 -0
- package/dist/src/orgrt/role-trace.js +28 -0
- package/dist/src/orgrt/role-trace.js.map +1 -0
- package/dist/src/orgrt/sandbox-deny-write.d.ts +52 -0
- package/dist/src/orgrt/sandbox-deny-write.d.ts.map +1 -0
- package/dist/src/orgrt/sandbox-deny-write.js +89 -0
- package/dist/src/orgrt/sandbox-deny-write.js.map +1 -0
- package/dist/src/orgrt/sandbox-fault.d.ts +40 -0
- package/dist/src/orgrt/sandbox-fault.d.ts.map +1 -0
- package/dist/src/orgrt/sandbox-fault.js +94 -0
- package/dist/src/orgrt/sandbox-fault.js.map +1 -0
- package/dist/src/orgrt/session.d.ts +10 -3
- package/dist/src/orgrt/session.d.ts.map +1 -1
- package/dist/src/orgrt/session.js +124 -64
- package/dist/src/orgrt/session.js.map +1 -1
- package/dist/src/orgrt/skill-library.d.ts +10 -1
- package/dist/src/orgrt/skill-library.d.ts.map +1 -1
- package/dist/src/orgrt/skill-library.js +53 -4
- package/dist/src/orgrt/skill-library.js.map +1 -1
- package/dist/src/orgrt/task-dag.d.ts +9 -1
- package/dist/src/orgrt/task-dag.d.ts.map +1 -1
- package/dist/src/orgrt/task-dag.js +6 -1
- package/dist/src/orgrt/task-dag.js.map +1 -1
- package/dist/src/orgrt/tool-fence.d.ts +21 -3
- package/dist/src/orgrt/tool-fence.d.ts.map +1 -1
- package/dist/src/orgrt/tool-fence.js +45 -7
- package/dist/src/orgrt/tool-fence.js.map +1 -1
- package/dist/src/orgrt/tool-providers.d.ts +4 -0
- package/dist/src/orgrt/tool-providers.d.ts.map +1 -1
- package/dist/src/orgrt/tool-providers.js +10 -0
- package/dist/src/orgrt/tool-providers.js.map +1 -1
- package/dist/src/orgrt/types.d.ts +10 -0
- package/dist/src/orgrt/types.d.ts.map +1 -1
- package/dist/src/orgrt/types.js +15 -0
- package/dist/src/orgrt/types.js.map +1 -1
- package/dist/src/orgrt/vercel-runner.d.ts +23 -0
- package/dist/src/orgrt/vercel-runner.d.ts.map +1 -1
- package/dist/src/orgrt/vercel-runner.js +2 -26
- package/dist/src/orgrt/vercel-runner.js.map +1 -1
- package/dist/src/platform-adapters/merge.d.ts +11 -0
- package/dist/src/platform-adapters/merge.d.ts.map +1 -1
- package/dist/src/platform-adapters/merge.js +28 -0
- package/dist/src/platform-adapters/merge.js.map +1 -1
- package/dist/src/platform-adapters/mutation.d.ts +37 -0
- package/dist/src/platform-adapters/mutation.d.ts.map +1 -0
- package/dist/src/platform-adapters/mutation.js +231 -0
- package/dist/src/platform-adapters/mutation.js.map +1 -0
- package/dist/src/platform-adapters/operations.d.ts +8 -1
- package/dist/src/platform-adapters/operations.d.ts.map +1 -1
- package/dist/src/platform-adapters/operations.js +41 -83
- package/dist/src/platform-adapters/operations.js.map +1 -1
- package/dist/src/platform-adapters/renderers/skills.d.ts.map +1 -1
- package/dist/src/platform-adapters/renderers/skills.js +11 -2
- package/dist/src/platform-adapters/renderers/skills.js.map +1 -1
- package/dist/src/platform-adapters/shared-surface.d.ts +34 -0
- package/dist/src/platform-adapters/shared-surface.d.ts.map +1 -0
- package/dist/src/platform-adapters/shared-surface.js +89 -0
- package/dist/src/platform-adapters/shared-surface.js.map +1 -0
- package/dist/src/platform-adapters/types.d.ts +7 -0
- package/dist/src/platform-adapters/types.d.ts.map +1 -1
- package/dist/src/routing/jev-step.d.ts +17 -0
- package/dist/src/routing/jev-step.d.ts.map +1 -0
- package/dist/src/routing/jev-step.js +27 -0
- package/dist/src/routing/jev-step.js.map +1 -0
- package/dist/src/routing/route-layer-factory.d.ts.map +1 -1
- package/dist/src/routing/route-layer-factory.js +16 -1
- package/dist/src/routing/route-layer-factory.js.map +1 -1
- package/dist/src/utils/redaction.d.ts.map +1 -1
- package/dist/src/utils/redaction.js +19 -4
- package/dist/src/utils/redaction.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// packages/@monomind/cli/src/commands/org-run-end.ts
|
|
2
|
+
// The last line `org run` prints: how the run ended, how long it took and
|
|
3
|
+
// what it cost, so a detached run's log has an ending instead of just
|
|
4
|
+
// stopping.
|
|
5
|
+
import { summarizeRun } from '../orgrt/reporting.js';
|
|
6
|
+
const BUDGET_REASONS = new Set(['org-budget-exhausted', 'budget-exhausted']);
|
|
7
|
+
export function classifyRunEnd(input) {
|
|
8
|
+
const { final, events } = input;
|
|
9
|
+
if (final.closedBy === 'org-complete') {
|
|
10
|
+
return { kind: 'complete', detail: summarizeRun(events).outcome?.status ?? 'org_complete' };
|
|
11
|
+
}
|
|
12
|
+
if (final.status === 'crashed')
|
|
13
|
+
return { kind: 'error', detail: final.error ?? 'unknown error' };
|
|
14
|
+
if (input.stoppedManually)
|
|
15
|
+
return { kind: 'stopped', detail: 'org stop' };
|
|
16
|
+
if (input.signal)
|
|
17
|
+
return { kind: 'stopped', detail: 'signal' };
|
|
18
|
+
const cause = final.closedBy ?? 'without org_complete';
|
|
19
|
+
if (events.some((e) => e.type === 'status' && e.reason && BUDGET_REASONS.has(e.reason))) {
|
|
20
|
+
return { kind: 'budget', detail: cause };
|
|
21
|
+
}
|
|
22
|
+
return { kind: 'stopped', detail: cause };
|
|
23
|
+
}
|
|
24
|
+
function formatWall(ms) {
|
|
25
|
+
const total = Math.round(ms / 1000);
|
|
26
|
+
const h = Math.floor(total / 3600);
|
|
27
|
+
const m = Math.floor((total % 3600) / 60);
|
|
28
|
+
const s = total % 60;
|
|
29
|
+
if (h)
|
|
30
|
+
return `${h}h${m}m${s}s`;
|
|
31
|
+
if (m)
|
|
32
|
+
return `${m}m${s}s`;
|
|
33
|
+
return `${s}s`;
|
|
34
|
+
}
|
|
35
|
+
export function runEndLine(input) {
|
|
36
|
+
const { kind, detail } = classifyRunEnd(input);
|
|
37
|
+
const cost = summarizeRun(input.events).totalCostUsd;
|
|
38
|
+
return `org ${input.name} run ${input.run} ended — outcome: ${kind} (${detail}), wall time ${formatWall(input.wallMs)}, cost $${cost.toFixed(2)}`;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=org-run-end.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"org-run-end.js","sourceRoot":"","sources":["../../../src/commands/org-run-end.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,0EAA0E;AAC1E,sEAAsE;AACtE,YAAY;AACZ,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAgBrD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC,CAAC;AAE7E,MAAM,UAAU,cAAc,CAAC,KAAkB;IAC/C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAChC,IAAI,KAAK,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;IAC9F,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;IACjG,IAAI,KAAK,CAAC,eAAe;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAC1E,IAAI,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,sBAAsB,CAAC;IACvD,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,UAAU,CAAC,EAAU;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;IACrB,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAChC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;IAC3B,OAAO,GAAG,CAAC,GAAG,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,UAAU,CACxB,KAAkE;IAElE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC;IACrD,OAAO,OAAO,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,GAAG,qBAAqB,IAAI,KAAK,MAAM,gBAAgB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACpJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-skills.d.ts","sourceRoot":"","sources":["../../../src/commands/org-skills.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"org-skills.d.ts","sourceRoot":"","sources":["../../../src/commands/org-skills.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoBjE,wBAAsB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAoFjF"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { homedir } from 'node:os';
|
|
6
6
|
import { join } from 'node:path';
|
|
7
|
+
import { rankOrgSkills } from '../decision/picks.js';
|
|
7
8
|
import { importRepo } from '../orgrt/skill-import.js';
|
|
8
9
|
import { getSkill, listSkills, searchSkills } from '../orgrt/skill-library.js';
|
|
9
10
|
import { output } from '../output.js';
|
|
@@ -16,6 +17,8 @@ const csv = (v) => typeof v === 'string' && v.trim()
|
|
|
16
17
|
.map((s) => s.trim())
|
|
17
18
|
.filter(Boolean)
|
|
18
19
|
: undefined;
|
|
20
|
+
/** How many keyword hits the decision model re-ranks. */
|
|
21
|
+
const JEV_SKILL_SHORTLIST = 30;
|
|
19
22
|
const line = (s) => `${output.highlight(s.name)} ${s.tags.length ? `[${s.tags.join(', ')}] ` : ''}— ${s.description.slice(0, 140)}`;
|
|
20
23
|
export async function orgSkillsAction(ctx) {
|
|
21
24
|
const [verb, ...rest] = ctx.args;
|
|
@@ -36,11 +39,18 @@ export async function orgSkillsAction(ctx) {
|
|
|
36
39
|
if (!query)
|
|
37
40
|
return fail('usage: monomind org skills search <text> [--tag <tag>]');
|
|
38
41
|
const limit = typeof ctx.flags.limit === 'number' ? ctx.flags.limit : Number(ctx.flags.limit) || 10;
|
|
39
|
-
const
|
|
42
|
+
const found = searchSkills(query, root, { tag, limit: Math.max(limit, JEV_SKILL_SHORTLIST) });
|
|
43
|
+
const { method, hits } = await rankOrgSkills(query, found, limit, {
|
|
44
|
+
root,
|
|
45
|
+
onError: (err) => process.stderr.write(`[org skills] decision model "${err.provider}" unavailable (${err.message})\n`),
|
|
46
|
+
});
|
|
47
|
+
// Keyword results keep the legacy `{skills}` JSON shape byte-for-byte.
|
|
40
48
|
if (json)
|
|
41
|
-
return print({ skills: hits });
|
|
42
|
-
for (const s of hits)
|
|
43
|
-
log(line(s)
|
|
49
|
+
return print(method === 'jev' ? { skills: hits, method } : { skills: hits });
|
|
50
|
+
for (const s of hits) {
|
|
51
|
+
log(line(s) +
|
|
52
|
+
(s.probability !== undefined ? output.info(` (jev ${s.probability.toFixed(2)})`) : ''));
|
|
53
|
+
}
|
|
44
54
|
if (hits.length === 0)
|
|
45
55
|
log(output.info('no matching skills'));
|
|
46
56
|
return { success: true, data: hits };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org-skills.js","sourceRoot":"","sources":["../../../src/commands/org-skills.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"org-skills.js","sourceRoot":"","sources":["../../../src/commands/org-skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -104,9 +104,10 @@ export declare function checkServeLock(cwd: string): ServeLockCheck;
|
|
|
104
104
|
* `org serve` read the reload file, so `org reload` against an `org run`
|
|
105
105
|
* process printed "picks it up within ~2s", exited 0, and changed nothing —
|
|
106
106
|
* a rotated endpoint URL kept receiving deliveries until it went dead.
|
|
107
|
-
* SIGINT/SIGTERM also end the wait. */
|
|
107
|
+
* SIGINT/SIGTERM also end the wait (reported as `signal: true`). */
|
|
108
108
|
export declare function waitForRunEnd(cwd: string, name: string, daemon: Pick<OrgDaemon, 'getOrg' | 'listRunning' | 'reloadOrgDef'>, intervalMs?: number): Promise<{
|
|
109
109
|
stoppedManually: boolean;
|
|
110
|
+
signal?: true;
|
|
110
111
|
}>;
|
|
111
112
|
/** Just the fields determineRunOutcome needs from runtime.json. */
|
|
112
113
|
type RunTerminalState = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../../src/commands/org.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"org.d.ts","sourceRoot":"","sources":["../../../src/commands/org.ts"],"names":[],"mappings":"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"}
|
package/dist/src/commands/org.js
CHANGED
|
@@ -3,6 +3,7 @@ import { createHash } from 'node:crypto';
|
|
|
3
3
|
import { existsSync, mkdirSync, readdirSync, readFileSync, rmSync, statSync, unlinkSync, writeFileSync, } from 'node:fs';
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
5
|
import { dirname, join, resolve } from 'node:path';
|
|
6
|
+
import { resolveOrgDefBlueprints } from '../catalog/blueprints.js';
|
|
6
7
|
import { resolveRoleCostTier } from '../orgrt/cost-tier.js';
|
|
7
8
|
import { OrgDaemon } from '../orgrt/daemon.js';
|
|
8
9
|
import { readIdleStatus } from '../orgrt/idle-deadline.js';
|
|
@@ -13,6 +14,7 @@ import { resolveModel } from '../orgrt/session.js';
|
|
|
13
14
|
import { ORG_DIR, OrgDefSchema } from '../orgrt/types.js';
|
|
14
15
|
import { output } from '../output.js';
|
|
15
16
|
import { MODEL_PRICING } from '../pricing/model-pricing.js';
|
|
17
|
+
import { runEndLine } from './org-run-end.js';
|
|
16
18
|
const log = (text) => {
|
|
17
19
|
console.log(text);
|
|
18
20
|
};
|
|
@@ -322,7 +324,13 @@ const runAction = async (ctx) => {
|
|
|
322
324
|
if (ctx.flags.dryRun === true) {
|
|
323
325
|
// Validate + preview each role's actual briefing without spawning sessions.
|
|
324
326
|
try {
|
|
325
|
-
const
|
|
327
|
+
const parsedDef = OrgDefSchema.parse(JSON.parse(readFileSync(join(orgsDir, `${name}.json`), 'utf8')));
|
|
328
|
+
const bp = resolveOrgDefBlueprints(parsedDef, ctx.cwd);
|
|
329
|
+
for (const n of bp.notes)
|
|
330
|
+
log(output.info(n));
|
|
331
|
+
if (bp.errors.length)
|
|
332
|
+
throw new Error(bp.errors.join('; '));
|
|
333
|
+
const def = bp.def;
|
|
326
334
|
const { buildRolePrompt, resolveRoleExtraGuidance } = await import('../orgrt/session.js');
|
|
327
335
|
const { agentRoles, endpointBriefingLines } = await import('../orgrt/endpoint-roles.js');
|
|
328
336
|
const { expandRolePromptVars, promptVarsFor } = await import('../orgrt/prompt-vars.js');
|
|
@@ -559,6 +567,19 @@ const runAction = async (ctx) => {
|
|
|
559
567
|
return { success: false, message: 'org start failed' };
|
|
560
568
|
}
|
|
561
569
|
log(output.info(`org ${name} running (${running.def.roles.length} agents, run ${running.run}) — Ctrl-C or "monomind org stop ${name}" to stop`));
|
|
570
|
+
// The run log's last line: outcome, wall time, total cost (every exit path
|
|
571
|
+
// below, crash handlers included), so a detached run's log has an ending.
|
|
572
|
+
const startedAt = Date.now();
|
|
573
|
+
const printRunEnd = (final, how) => {
|
|
574
|
+
try {
|
|
575
|
+
const events = readRunEvents(ctx.cwd, name, running.run);
|
|
576
|
+
const wallMs = Date.now() - startedAt;
|
|
577
|
+
log(output.info(runEndLine({ name, run: running.run, wallMs, final, events, ...how })));
|
|
578
|
+
}
|
|
579
|
+
catch {
|
|
580
|
+
/* best-effort — never mask the run's real exit */
|
|
581
|
+
}
|
|
582
|
+
};
|
|
562
583
|
// #206 follow-up: without this, an uncaught error in this process left
|
|
563
584
|
// runtime.json's status stuck at 'running' (finishStop never runs), and
|
|
564
585
|
// runOutcomeResult's status === 'crashed' branch — the one meant to
|
|
@@ -574,7 +595,9 @@ const runAction = async (ctx) => {
|
|
|
574
595
|
catch {
|
|
575
596
|
/* stderr gone */
|
|
576
597
|
}
|
|
577
|
-
|
|
598
|
+
const error = `uncaughtException: ${err instanceof Error ? err.message : String(err)}`;
|
|
599
|
+
daemon.persistCrashStateAll(error);
|
|
600
|
+
printRunEnd({ status: 'crashed', error }, {});
|
|
578
601
|
process.exit(1);
|
|
579
602
|
});
|
|
580
603
|
process.on('unhandledRejection', (err) => {
|
|
@@ -584,7 +607,9 @@ const runAction = async (ctx) => {
|
|
|
584
607
|
catch {
|
|
585
608
|
/* stderr gone */
|
|
586
609
|
}
|
|
587
|
-
|
|
610
|
+
const error = `unhandledRejection: ${err instanceof Error ? err.message : String(err)}`;
|
|
611
|
+
daemon.persistCrashStateAll(error);
|
|
612
|
+
printRunEnd({ status: 'crashed', error }, {});
|
|
588
613
|
process.exit(1);
|
|
589
614
|
});
|
|
590
615
|
// P1-12: Print the dashboard URL so CLI users know where to look.
|
|
@@ -647,10 +672,11 @@ const runAction = async (ctx) => {
|
|
|
647
672
|
// #206: a human explicitly running `monomind org stop` is a deliberate,
|
|
648
673
|
// successful action regardless of how the run itself ended — capture that
|
|
649
674
|
// BEFORE clearStopfile() below wipes the file, so it isn't lost.
|
|
650
|
-
const { stoppedManually } = await waitForRunEnd(ctx.cwd, name, daemon);
|
|
675
|
+
const { stoppedManually, signal } = await waitForRunEnd(ctx.cwd, name, daemon);
|
|
651
676
|
clearStopfile(ctx.cwd, name);
|
|
652
677
|
await daemon.stopAll();
|
|
653
678
|
srv?.close();
|
|
679
|
+
printRunEnd(runtimeState(ctx.cwd, name), { stoppedManually, signal });
|
|
654
680
|
if (stoppedManually)
|
|
655
681
|
return { success: true, message: `org ${name} stopped` };
|
|
656
682
|
// #206: 'org run' used to exit 0 unconditionally here — a crashed or
|
|
@@ -659,14 +685,7 @@ const runAction = async (ctx) => {
|
|
|
659
685
|
// the daemon's final record (same runtime.json pattern isOrgRunning/
|
|
660
686
|
// statusAction already use below) and only report success for a run that
|
|
661
687
|
// actually finished its goal via org_complete.
|
|
662
|
-
|
|
663
|
-
try {
|
|
664
|
-
final = JSON.parse(readFileSync(join(ctx.cwd, ORG_DIR, name, 'runtime.json'), 'utf8'));
|
|
665
|
-
}
|
|
666
|
-
catch {
|
|
667
|
-
/* best-effort — falls through to the non-clean-stop case below */
|
|
668
|
-
}
|
|
669
|
-
return runOutcomeResult(name, final);
|
|
688
|
+
return runOutcomeResult(name, runtimeState(ctx.cwd, name));
|
|
670
689
|
};
|
|
671
690
|
/** The foreground `org run` wait loop. Every `intervalMs` it ends the wait
|
|
672
691
|
* when `org stop` wrote the stopfile (stoppedManually) or the daemon no
|
|
@@ -675,17 +694,17 @@ const runAction = async (ctx) => {
|
|
|
675
694
|
* `org serve` read the reload file, so `org reload` against an `org run`
|
|
676
695
|
* process printed "picks it up within ~2s", exited 0, and changed nothing —
|
|
677
696
|
* a rotated endpoint URL kept receiving deliveries until it went dead.
|
|
678
|
-
* SIGINT/SIGTERM also end the wait. */
|
|
697
|
+
* SIGINT/SIGTERM also end the wait (reported as `signal: true`). */
|
|
679
698
|
export async function waitForRunEnd(cwd, name, daemon, intervalMs = 2000) {
|
|
680
699
|
const stopfile = join(cwd, ORG_DIR, name, 'stop');
|
|
681
700
|
return new Promise((resolvePromise) => {
|
|
682
|
-
const finish = (stoppedManually) => {
|
|
701
|
+
const finish = (stoppedManually, signal = false) => {
|
|
683
702
|
clearInterval(iv);
|
|
684
703
|
process.removeListener('SIGINT', onSignal);
|
|
685
704
|
process.removeListener('SIGTERM', onSignal);
|
|
686
|
-
resolvePromise({ stoppedManually });
|
|
705
|
+
resolvePromise(signal ? { stoppedManually, signal } : { stoppedManually });
|
|
687
706
|
};
|
|
688
|
-
const onSignal = () => finish(false);
|
|
707
|
+
const onSignal = () => finish(false, true);
|
|
689
708
|
const iv = setInterval(() => {
|
|
690
709
|
if (existsSync(stopfile)) {
|
|
691
710
|
finish(true);
|
|
@@ -703,6 +722,15 @@ export async function waitForRunEnd(cwd, name, daemon, intervalMs = 2000) {
|
|
|
703
722
|
process.once('SIGTERM', onSignal);
|
|
704
723
|
});
|
|
705
724
|
}
|
|
725
|
+
/** runtime.json's final record; {} when unreadable (the non-clean-stop case). */
|
|
726
|
+
const runtimeState = (cwd, name) => {
|
|
727
|
+
try {
|
|
728
|
+
return JSON.parse(readFileSync(join(cwd, ORG_DIR, name, 'runtime.json'), 'utf8'));
|
|
729
|
+
}
|
|
730
|
+
catch {
|
|
731
|
+
return {};
|
|
732
|
+
}
|
|
733
|
+
};
|
|
706
734
|
/** Decides `org run`'s exit-code-bearing CommandResult from the run's final
|
|
707
735
|
* recorded state. Extracted (matching resolvedIdleNudgeCount's precedent for
|
|
708
736
|
* the idle watchdog) so this decision is unit-testable without spinning up a
|