@polderlabs/bizar-omp 0.7.0 → 0.7.2
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/README.md +8 -4
- package/dist/cli/agents-ink.d.ts.map +1 -1
- package/dist/cli/agents-ink.js +5 -3
- package/dist/cli/agents-ink.js.map +1 -1
- package/dist/cli/agents.d.ts.map +1 -1
- package/dist/cli/agents.js +27 -9
- package/dist/cli/agents.js.map +1 -1
- package/dist/cli/doctor.d.ts +4 -4
- package/dist/cli/main.js +0 -0
- package/dist/cli/omb.js +0 -0
- package/dist/core/recovery.d.ts.map +1 -1
- package/dist/core/recovery.js +10 -5
- package/dist/core/recovery.js.map +1 -1
- package/dist/core/transitions.d.ts +4 -0
- package/dist/core/transitions.d.ts.map +1 -1
- package/dist/core/transitions.js +12 -2
- package/dist/core/transitions.js.map +1 -1
- package/dist/core/types.d.ts +46 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/extension.d.ts +4 -0
- package/dist/extension.d.ts.map +1 -1
- package/dist/extension.js +308 -23
- package/dist/extension.js.map +1 -1
- package/dist/omp/compatibility.d.ts +5 -5
- package/dist/omp/compatibility.d.ts.map +1 -1
- package/dist/omp/compatibility.js +2 -2
- package/dist/omp/compatibility.js.map +1 -1
- package/dist/omp/daemon-service.d.ts.map +1 -1
- package/dist/omp/daemon-service.js +54 -21
- package/dist/omp/daemon-service.js.map +1 -1
- package/dist/omp/daemon.d.ts.map +1 -1
- package/dist/omp/daemon.js +109 -21
- package/dist/omp/daemon.js.map +1 -1
- package/dist/omp/dashboard-html.js +5 -5
- package/dist/omp/dispatch-admission.js +1 -1
- package/dist/omp/dispatch-admission.js.map +1 -1
- package/dist/omp/model-role-assignment.d.ts +4 -0
- package/dist/omp/model-role-assignment.d.ts.map +1 -1
- package/dist/omp/model-role-assignment.js +52 -7
- package/dist/omp/model-role-assignment.js.map +1 -1
- package/dist/omp/omb-sessions.d.ts +65 -7
- package/dist/omp/omb-sessions.d.ts.map +1 -1
- package/dist/omp/omb-sessions.js +329 -34
- package/dist/omp/omb-sessions.js.map +1 -1
- package/dist/omp/omb-settings.d.ts +15 -1
- package/dist/omp/omb-settings.d.ts.map +1 -1
- package/dist/omp/omb-settings.js +107 -31
- package/dist/omp/omb-settings.js.map +1 -1
- package/dist/omp/rpc.d.ts +8 -0
- package/dist/omp/rpc.d.ts.map +1 -1
- package/dist/omp/session-activity.d.ts +5 -0
- package/dist/omp/session-activity.d.ts.map +1 -1
- package/dist/omp/session-activity.js +17 -0
- package/dist/omp/session-activity.js.map +1 -1
- package/dist/omp/tmux.d.ts +3 -1
- package/dist/omp/tmux.d.ts.map +1 -1
- package/dist/omp/tmux.js +195 -31
- package/dist/omp/tmux.js.map +1 -1
- package/dist/services/candidate-verify.d.ts.map +1 -1
- package/dist/services/candidate-verify.js +44 -1
- package/dist/services/candidate-verify.js.map +1 -1
- package/dist/services/inspector.d.ts +5 -1
- package/dist/services/inspector.d.ts.map +1 -1
- package/dist/services/inspector.js +11 -2
- package/dist/services/inspector.js.map +1 -1
- package/dist/services/native-review-ingest.d.ts +35 -0
- package/dist/services/native-review-ingest.d.ts.map +1 -0
- package/dist/services/native-review-ingest.js +14 -0
- package/dist/services/native-review-ingest.js.map +1 -0
- package/dist/storage/journal-recovery.js +1 -1
- package/dist/storage/journal-recovery.js.map +1 -1
- package/dist/storage/resources.js +1 -1
- package/dist/storage/resources.js.map +1 -1
- package/dist/tools/integrate.d.ts.map +1 -1
- package/dist/tools/integrate.js +13 -0
- package/dist/tools/integrate.js.map +1 -1
- package/dist/tools/workflow.d.ts +9 -0
- package/dist/tools/workflow.d.ts.map +1 -1
- package/dist/tools/workflow.js +25 -2
- package/dist/tools/workflow.js.map +1 -1
- package/docs/compatibility/baseline.json +8 -7
- package/docs/compatibility/supported-surfaces.json +2 -1
- package/docs/development/ci-release-implementation-guide.md +1261 -0
- package/docs/development/contributing-and-releasing.md +117 -0
- package/docs/development/omp-compatibility-update-guide.md +117 -0
- package/docs/releases/0.7.1.md +15 -0
- package/docs/releases/0.7.2.md +32 -0
- package/docs/releases/native-stable.md +11 -1
- package/docs/releases/npm-publishing.md +31 -4
- package/docs/releases/support-matrix.md +1 -1
- package/package.json +2 -1
- package/rules/oflow-gitlab.md +6 -0
- package/skills/oflow-gitlab-context/SKILL.md +49 -0
- package/skills/omp-native-development/SKILL.md +1 -1
- package/skills/omp-native-development/references/accuracy-and-versioning.md +1 -1
- package/skills/omp-native-development/references/source-manifest.json +3 -3
- package/dist/src/cli/agents-ink.d.ts +0 -25
- package/dist/src/cli/agents-ink.js +0 -517
- package/dist/src/cli/agents-ink.js.map +0 -1
- package/dist/src/cli/agents.d.ts +0 -14
- package/dist/src/cli/agents.js +0 -197
- package/dist/src/cli/agents.js.map +0 -1
- package/dist/src/cli/directory-selector.d.ts +0 -60
- package/dist/src/cli/directory-selector.js +0 -208
- package/dist/src/cli/directory-selector.js.map +0 -1
- package/dist/src/cli/doctor.d.ts +0 -41
- package/dist/src/cli/doctor.js +0 -31
- package/dist/src/cli/doctor.js.map +0 -1
- package/dist/src/cli/install.d.ts +0 -129
- package/dist/src/cli/install.js +0 -164
- package/dist/src/cli/install.js.map +0 -1
- package/dist/src/cli/main.d.ts +0 -2
- package/dist/src/cli/main.js +0 -117
- package/dist/src/cli/main.js.map +0 -1
- package/dist/src/cli/migrate.d.ts +0 -18
- package/dist/src/cli/migrate.js +0 -14
- package/dist/src/cli/migrate.js.map +0 -1
- package/dist/src/cli/omb-commands.d.ts +0 -29
- package/dist/src/cli/omb-commands.js +0 -107
- package/dist/src/cli/omb-commands.js.map +0 -1
- package/dist/src/cli/omb-daemon.d.ts +0 -2
- package/dist/src/cli/omb-daemon.js +0 -135
- package/dist/src/cli/omb-daemon.js.map +0 -1
- package/dist/src/cli/omb-dashboard.d.ts +0 -12
- package/dist/src/cli/omb-dashboard.js +0 -113
- package/dist/src/cli/omb-dashboard.js.map +0 -1
- package/dist/src/cli/omb-invocation.d.ts +0 -8
- package/dist/src/cli/omb-invocation.js +0 -41
- package/dist/src/cli/omb-invocation.js.map +0 -1
- package/dist/src/cli/omb-runtime.d.ts +0 -41
- package/dist/src/cli/omb-runtime.js +0 -371
- package/dist/src/cli/omb-runtime.js.map +0 -1
- package/dist/src/cli/omb-tray.d.ts +0 -2
- package/dist/src/cli/omb-tray.js +0 -38
- package/dist/src/cli/omb-tray.js.map +0 -1
- package/dist/src/cli/omb.d.ts +0 -2
- package/dist/src/cli/omb.js +0 -31
- package/dist/src/cli/omb.js.map +0 -1
- package/dist/src/cli/omp-theme.d.ts +0 -17
- package/dist/src/cli/omp-theme.js +0 -22
- package/dist/src/cli/omp-theme.js.map +0 -1
- package/dist/src/cli/process.d.ts +0 -6
- package/dist/src/cli/process.js +0 -54
- package/dist/src/cli/process.js.map +0 -1
- package/dist/src/cli/run.d.ts +0 -2
- package/dist/src/cli/run.js +0 -5
- package/dist/src/cli/run.js.map +0 -1
- package/dist/src/cli/setup-ui.d.ts +0 -37
- package/dist/src/cli/setup-ui.js +0 -90
- package/dist/src/cli/setup-ui.js.map +0 -1
- package/dist/src/core/acceptance.d.ts +0 -32
- package/dist/src/core/acceptance.js +0 -87
- package/dist/src/core/acceptance.js.map +0 -1
- package/dist/src/core/errors.d.ts +0 -20
- package/dist/src/core/errors.js +0 -30
- package/dist/src/core/errors.js.map +0 -1
- package/dist/src/core/evidence.d.ts +0 -10
- package/dist/src/core/evidence.js +0 -35
- package/dist/src/core/evidence.js.map +0 -1
- package/dist/src/core/policies.d.ts +0 -10
- package/dist/src/core/policies.js +0 -60
- package/dist/src/core/policies.js.map +0 -1
- package/dist/src/core/recovery.d.ts +0 -6
- package/dist/src/core/recovery.js +0 -56
- package/dist/src/core/recovery.js.map +0 -1
- package/dist/src/core/transitions.d.ts +0 -13
- package/dist/src/core/transitions.js +0 -59
- package/dist/src/core/transitions.js.map +0 -1
- package/dist/src/core/types.d.ts +0 -256
- package/dist/src/core/types.js +0 -2
- package/dist/src/core/types.js.map +0 -1
- package/dist/src/extension.d.ts +0 -60
- package/dist/src/extension.js +0 -538
- package/dist/src/extension.js.map +0 -1
- package/dist/src/index.d.ts +0 -29
- package/dist/src/index.js +0 -30
- package/dist/src/index.js.map +0 -1
- package/dist/src/omp/autonomous-settings.d.ts +0 -14
- package/dist/src/omp/autonomous-settings.js +0 -65
- package/dist/src/omp/autonomous-settings.js.map +0 -1
- package/dist/src/omp/capabilities.d.ts +0 -23
- package/dist/src/omp/capabilities.js +0 -6
- package/dist/src/omp/capabilities.js.map +0 -1
- package/dist/src/omp/compatibility.d.ts +0 -30
- package/dist/src/omp/compatibility.js +0 -34
- package/dist/src/omp/compatibility.js.map +0 -1
- package/dist/src/omp/completion.d.ts +0 -7
- package/dist/src/omp/completion.js +0 -10
- package/dist/src/omp/completion.js.map +0 -1
- package/dist/src/omp/config.d.ts +0 -10
- package/dist/src/omp/config.js +0 -14
- package/dist/src/omp/config.js.map +0 -1
- package/dist/src/omp/context.d.ts +0 -15
- package/dist/src/omp/context.js +0 -3
- package/dist/src/omp/context.js.map +0 -1
- package/dist/src/omp/daemon-service.d.ts +0 -25
- package/dist/src/omp/daemon-service.js +0 -483
- package/dist/src/omp/daemon-service.js.map +0 -1
- package/dist/src/omp/daemon.d.ts +0 -48
- package/dist/src/omp/daemon.js +0 -194
- package/dist/src/omp/daemon.js.map +0 -1
- package/dist/src/omp/dashboard-html.d.ts +0 -3
- package/dist/src/omp/dashboard-html.js +0 -419
- package/dist/src/omp/dashboard-html.js.map +0 -1
- package/dist/src/omp/dispatch-admission.d.ts +0 -2
- package/dist/src/omp/dispatch-admission.js +0 -12
- package/dist/src/omp/dispatch-admission.js.map +0 -1
- package/dist/src/omp/integration-recovery.d.ts +0 -10
- package/dist/src/omp/integration-recovery.js +0 -18
- package/dist/src/omp/integration-recovery.js.map +0 -1
- package/dist/src/omp/isolation-policy.d.ts +0 -14
- package/dist/src/omp/isolation-policy.js +0 -9
- package/dist/src/omp/isolation-policy.js.map +0 -1
- package/dist/src/omp/lifecycle.d.ts +0 -14
- package/dist/src/omp/lifecycle.js +0 -14
- package/dist/src/omp/lifecycle.js.map +0 -1
- package/dist/src/omp/memory.d.ts +0 -16
- package/dist/src/omp/memory.js +0 -4
- package/dist/src/omp/memory.js.map +0 -1
- package/dist/src/omp/model-role-assignment.d.ts +0 -296
- package/dist/src/omp/model-role-assignment.js +0 -559
- package/dist/src/omp/model-role-assignment.js.map +0 -1
- package/dist/src/omp/model-roles.d.ts +0 -19
- package/dist/src/omp/model-roles.js +0 -6
- package/dist/src/omp/model-roles.js.map +0 -1
- package/dist/src/omp/omb-sessions.d.ts +0 -122
- package/dist/src/omp/omb-sessions.js +0 -512
- package/dist/src/omp/omb-sessions.js.map +0 -1
- package/dist/src/omp/omb-settings.d.ts +0 -35
- package/dist/src/omp/omb-settings.js +0 -104
- package/dist/src/omp/omb-settings.js.map +0 -1
- package/dist/src/omp/result-reconciliation.d.ts +0 -2
- package/dist/src/omp/result-reconciliation.js +0 -9
- package/dist/src/omp/result-reconciliation.js.map +0 -1
- package/dist/src/omp/rpc.d.ts +0 -67
- package/dist/src/omp/rpc.js +0 -4
- package/dist/src/omp/rpc.js.map +0 -1
- package/dist/src/omp/run-log.d.ts +0 -25
- package/dist/src/omp/run-log.js +0 -24
- package/dist/src/omp/run-log.js.map +0 -1
- package/dist/src/omp/session-activity.d.ts +0 -70
- package/dist/src/omp/session-activity.js +0 -361
- package/dist/src/omp/session-activity.js.map +0 -1
- package/dist/src/omp/session-controls.d.ts +0 -17
- package/dist/src/omp/session-controls.js +0 -14
- package/dist/src/omp/session-controls.js.map +0 -1
- package/dist/src/omp/tmux.d.ts +0 -89
- package/dist/src/omp/tmux.js +0 -445
- package/dist/src/omp/tmux.js.map +0 -1
- package/dist/src/omp/tray-icons.d.ts +0 -5
- package/dist/src/omp/tray-icons.js +0 -78
- package/dist/src/omp/tray-icons.js.map +0 -1
- package/dist/src/omp/tray.d.ts +0 -23
- package/dist/src/omp/tray.js +0 -167
- package/dist/src/omp/tray.js.map +0 -1
- package/dist/src/services/budget.d.ts +0 -19
- package/dist/src/services/budget.js +0 -10
- package/dist/src/services/budget.js.map +0 -1
- package/dist/src/services/candidate-local.d.ts +0 -13
- package/dist/src/services/candidate-local.js +0 -15
- package/dist/src/services/candidate-local.js.map +0 -1
- package/dist/src/services/candidates.d.ts +0 -20
- package/dist/src/services/candidates.js +0 -100
- package/dist/src/services/candidates.js.map +0 -1
- package/dist/src/services/evidence-bundle.d.ts +0 -17
- package/dist/src/services/evidence-bundle.js +0 -21
- package/dist/src/services/evidence-bundle.js.map +0 -1
- package/dist/src/services/inspector.d.ts +0 -11
- package/dist/src/services/inspector.js +0 -6
- package/dist/src/services/inspector.js.map +0 -1
- package/dist/src/services/lessons.d.ts +0 -13
- package/dist/src/services/lessons.js +0 -11
- package/dist/src/services/lessons.js.map +0 -1
- package/dist/src/services/projection.d.ts +0 -21
- package/dist/src/services/projection.js +0 -10
- package/dist/src/services/projection.js.map +0 -1
- package/dist/src/services/readiness.d.ts +0 -4
- package/dist/src/services/readiness.js +0 -35
- package/dist/src/services/readiness.js.map +0 -1
- package/dist/src/services/recipes.d.ts +0 -15
- package/dist/src/services/recipes.js +0 -42
- package/dist/src/services/recipes.js.map +0 -1
- package/dist/src/services/recovery.d.ts +0 -19
- package/dist/src/services/recovery.js +0 -9
- package/dist/src/services/recovery.js.map +0 -1
- package/dist/src/services/review.d.ts +0 -15
- package/dist/src/services/review.js +0 -9
- package/dist/src/services/review.js.map +0 -1
- package/dist/src/storage/journal-recovery.d.ts +0 -10
- package/dist/src/storage/journal-recovery.js +0 -33
- package/dist/src/storage/journal-recovery.js.map +0 -1
- package/dist/src/storage/journal.d.ts +0 -12
- package/dist/src/storage/journal.js +0 -82
- package/dist/src/storage/journal.js.map +0 -1
- package/dist/src/storage/migrations.d.ts +0 -22
- package/dist/src/storage/migrations.js +0 -107
- package/dist/src/storage/migrations.js.map +0 -1
- package/dist/src/storage/repository-identity.d.ts +0 -11
- package/dist/src/storage/repository-identity.js +0 -67
- package/dist/src/storage/repository-identity.js.map +0 -1
- package/dist/src/storage/resources.d.ts +0 -66
- package/dist/src/storage/resources.js +0 -148
- package/dist/src/storage/resources.js.map +0 -1
- package/dist/src/tools/evidence.d.ts +0 -8
- package/dist/src/tools/evidence.js +0 -9
- package/dist/src/tools/evidence.js.map +0 -1
- package/dist/src/tools/integrate.d.ts +0 -13
- package/dist/src/tools/integrate.js +0 -90
- package/dist/src/tools/integrate.js.map +0 -1
- package/dist/src/tools/result.d.ts +0 -9
- package/dist/src/tools/result.js +0 -2
- package/dist/src/tools/result.js.map +0 -1
- package/dist/src/tools/verify.d.ts +0 -13
- package/dist/src/tools/verify.js +0 -61
- package/dist/src/tools/verify.js.map +0 -1
- package/dist/src/tools/workflow.d.ts +0 -8
- package/dist/src/tools/workflow.js +0 -65
- package/dist/src/tools/workflow.js.map +0 -1
- package/dist/src/workflows/direct.d.ts +0 -9
- package/dist/src/workflows/direct.js +0 -2
- package/dist/src/workflows/direct.js.map +0 -1
- package/dist/src/workflows/implement.d.ts +0 -2
- package/dist/src/workflows/implement.js +0 -4
- package/dist/src/workflows/implement.js.map +0 -1
- package/dist/src/workflows/plan.d.ts +0 -17
- package/dist/src/workflows/plan.js +0 -6
- package/dist/src/workflows/plan.js.map +0 -1
- package/dist/src/workflows/research.d.ts +0 -15
- package/dist/src/workflows/research.js +0 -2
- package/dist/src/workflows/research.js.map +0 -1
- package/dist/src/workflows/review.d.ts +0 -15
- package/dist/src/workflows/review.js +0 -2
- package/dist/src/workflows/review.js.map +0 -1
- package/dist/src/workflows/verify.d.ts +0 -9
- package/dist/src/workflows/verify.js +0 -2
- package/dist/src/workflows/verify.js.map +0 -1
- package/dist/tests/acceptance.test.d.ts +0 -1
- package/dist/tests/acceptance.test.js +0 -27
- package/dist/tests/acceptance.test.js.map +0 -1
- package/dist/tests/agents.test.d.ts +0 -1
- package/dist/tests/agents.test.js +0 -369
- package/dist/tests/agents.test.js.map +0 -1
- package/dist/tests/candidates.test.d.ts +0 -1
- package/dist/tests/candidates.test.js +0 -60
- package/dist/tests/candidates.test.js.map +0 -1
- package/dist/tests/core.test.d.ts +0 -1
- package/dist/tests/core.test.js +0 -39
- package/dist/tests/core.test.js.map +0 -1
- package/dist/tests/daemon.test.d.ts +0 -1
- package/dist/tests/daemon.test.js +0 -157
- package/dist/tests/daemon.test.js.map +0 -1
- package/dist/tests/dashboard.test.d.ts +0 -1
- package/dist/tests/dashboard.test.js +0 -414
- package/dist/tests/dashboard.test.js.map +0 -1
- package/dist/tests/directory-selector.test.d.ts +0 -1
- package/dist/tests/directory-selector.test.js +0 -93
- package/dist/tests/directory-selector.test.js.map +0 -1
- package/dist/tests/doctor.test.d.ts +0 -1
- package/dist/tests/doctor.test.js +0 -32
- package/dist/tests/doctor.test.js.map +0 -1
- package/dist/tests/install.test.d.ts +0 -1
- package/dist/tests/install.test.js +0 -101
- package/dist/tests/install.test.js.map +0 -1
- package/dist/tests/integration.test.d.ts +0 -1
- package/dist/tests/integration.test.js +0 -49
- package/dist/tests/integration.test.js.map +0 -1
- package/dist/tests/journal.test.d.ts +0 -1
- package/dist/tests/journal.test.js +0 -50
- package/dist/tests/journal.test.js.map +0 -1
- package/dist/tests/model-role-assignment.test.d.ts +0 -1
- package/dist/tests/model-role-assignment.test.js +0 -294
- package/dist/tests/model-role-assignment.test.js.map +0 -1
- package/dist/tests/omb-runtime.test.d.ts +0 -1
- package/dist/tests/omb-runtime.test.js +0 -554
- package/dist/tests/omb-runtime.test.js.map +0 -1
- package/dist/tests/omb-session-actions.test.d.ts +0 -1
- package/dist/tests/omb-session-actions.test.js +0 -191
- package/dist/tests/omb-session-actions.test.js.map +0 -1
- package/dist/tests/omb-settings.test.d.ts +0 -1
- package/dist/tests/omb-settings.test.js +0 -82
- package/dist/tests/omb-settings.test.js.map +0 -1
- package/dist/tests/omp-contract.test.d.ts +0 -1
- package/dist/tests/omp-contract.test.js +0 -362
- package/dist/tests/omp-contract.test.js.map +0 -1
- package/dist/tests/process.test.d.ts +0 -1
- package/dist/tests/process.test.js +0 -12
- package/dist/tests/process.test.js.map +0 -1
- package/dist/tests/psmux-windows.test.d.ts +0 -1
- package/dist/tests/psmux-windows.test.js +0 -105
- package/dist/tests/psmux-windows.test.js.map +0 -1
- package/dist/tests/recovery.test.d.ts +0 -1
- package/dist/tests/recovery.test.js +0 -9
- package/dist/tests/recovery.test.js.map +0 -1
- package/dist/tests/resources.test.d.ts +0 -1
- package/dist/tests/resources.test.js +0 -55
- package/dist/tests/resources.test.js.map +0 -1
- package/dist/tests/session-activity.test.d.ts +0 -1
- package/dist/tests/session-activity.test.js +0 -159
- package/dist/tests/session-activity.test.js.map +0 -1
- package/dist/tests/setup-ui.test.d.ts +0 -1
- package/dist/tests/setup-ui.test.js +0 -37
- package/dist/tests/setup-ui.test.js.map +0 -1
- package/dist/tests/storage-integrity.test.d.ts +0 -1
- package/dist/tests/storage-integrity.test.js +0 -88
- package/dist/tests/storage-integrity.test.js.map +0 -1
- package/dist/tests/tmux.test.d.ts +0 -1
- package/dist/tests/tmux.test.js +0 -239
- package/dist/tests/tmux.test.js.map +0 -1
- package/dist/tests/tray.test.d.ts +0 -1
- package/dist/tests/tray.test.js +0 -37
- package/dist/tests/tray.test.js.map +0 -1
- package/dist/tests/verification.test.d.ts +0 -1
- package/dist/tests/verification.test.js +0 -61
- package/dist/tests/verification.test.js.map +0 -1
- package/dist/tests/workflow-features.test.d.ts +0 -1
- package/dist/tests/workflow-features.test.js +0 -82
- package/dist/tests/workflow-features.test.js.map +0 -1
- package/dist/tests/workflow-safety.test.d.ts +0 -1
- package/dist/tests/workflow-safety.test.js +0 -57
- package/dist/tests/workflow-safety.test.js.map +0 -1
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import { clearDaemonLock, daemonLogPath, deferred, readDaemonStatus, readSnapshot, startDaemon, stopDaemon, writeDaemonLock } from "../omp/daemon.js";
|
|
2
|
-
import { startDaemonService } from "../omp/daemon-service.js";
|
|
3
|
-
import { loadOmbSettings } from "../omp/omb-settings.js";
|
|
4
|
-
import { startTray, stopTray } from "../omp/tray.js";
|
|
5
|
-
export const DAEMON_USAGE = `omb daemon [start|stop|restart|status]
|
|
6
|
-
|
|
7
|
-
Controls the detached loopback daemon that serves the browser dashboard and
|
|
8
|
-
keeps the session snapshot fresh without a terminal client.
|
|
9
|
-
|
|
10
|
-
start start the daemon (and the tray, when it is enabled)
|
|
11
|
-
stop stop the daemon and the tray
|
|
12
|
-
restart stop, then start again
|
|
13
|
-
status print the daemon state, pid, port, snapshot age, and log path
|
|
14
|
-
run run the daemon in this process (used by the detached launcher)`;
|
|
15
|
-
function age(iso) {
|
|
16
|
-
const seconds = Math.max(0, Math.floor((Date.now() - iso) / 1000));
|
|
17
|
-
if (seconds < 60)
|
|
18
|
-
return `${seconds}s ago`;
|
|
19
|
-
const minutes = Math.floor(seconds / 60);
|
|
20
|
-
if (minutes < 60)
|
|
21
|
-
return `${minutes}m ago`;
|
|
22
|
-
const hours = Math.floor(minutes / 60);
|
|
23
|
-
if (hours < 24)
|
|
24
|
-
return `${hours}h ago`;
|
|
25
|
-
return `${Math.floor(hours / 24)}d ago`;
|
|
26
|
-
}
|
|
27
|
-
function statusLines(state, env) {
|
|
28
|
-
const lines = [{ label: "daemon", value: state.state.toUpperCase() }];
|
|
29
|
-
if (state.daemon) {
|
|
30
|
-
lines.push({ label: "pid", value: String(state.daemon.pid) });
|
|
31
|
-
lines.push({ label: "port", value: `127.0.0.1:${state.daemon.port}` });
|
|
32
|
-
lines.push({ label: "started", value: age(state.daemon.startedAt) });
|
|
33
|
-
}
|
|
34
|
-
if (state.staleReason) {
|
|
35
|
-
lines.push({ label: "reason", value: state.staleReason === "process-exited" ? "process exited; lock cleared" : "pid reused by another process; lock cleared" });
|
|
36
|
-
}
|
|
37
|
-
const snapshot = readSnapshot(env);
|
|
38
|
-
if (snapshot) {
|
|
39
|
-
lines.push({ label: "sessions", value: `${snapshot.sessions.length} in last scan (${age(snapshot.collectedAt)})` });
|
|
40
|
-
// Report whatever states the session layer currently uses instead of
|
|
41
|
-
// hardcoding a vocabulary this CLI does not own.
|
|
42
|
-
const counts = new Map();
|
|
43
|
-
for (const session of snapshot.sessions)
|
|
44
|
-
counts.set(session.state, (counts.get(session.state) ?? 0) + 1);
|
|
45
|
-
const breakdown = [...counts.entries()]
|
|
46
|
-
.sort((left, right) => right[1] - left[1] || left[0].localeCompare(right[0]))
|
|
47
|
-
.map(([state, count]) => `${count} ${state}`)
|
|
48
|
-
.join(", ");
|
|
49
|
-
lines.push({ label: "states", value: breakdown || "none" });
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
lines.push({ label: "sessions", value: "no scan yet" });
|
|
53
|
-
}
|
|
54
|
-
lines.push({ label: "log", value: daemonLogPath(env) });
|
|
55
|
-
return lines;
|
|
56
|
-
}
|
|
57
|
-
function renderStatus(state, env) {
|
|
58
|
-
const width = Math.max(46, ...statusLines(state, env).map(line => line.label.length + 2 + line.value.length));
|
|
59
|
-
const top = `\u250c\u2500\u2500 OMB Daemon ${"\u2500".repeat(Math.max(2, width - 14))}\u2510`;
|
|
60
|
-
const bottom = `\u2514${"\u2500".repeat(width + 2)}\u2518`;
|
|
61
|
-
const rows = statusLines(state, env).map(line => {
|
|
62
|
-
const pad = " ".repeat(Math.max(1, width - line.label.length - 1 - line.value.length));
|
|
63
|
-
return `\u2502 ${line.label}${pad}${line.value} \u2502`;
|
|
64
|
-
});
|
|
65
|
-
return [top, ...rows, bottom].join("\n");
|
|
66
|
-
}
|
|
67
|
-
export async function runDaemonCommand(args, env = process.env) {
|
|
68
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
69
|
-
process.stdout.write(`${DAEMON_USAGE}\n`);
|
|
70
|
-
return 0;
|
|
71
|
-
}
|
|
72
|
-
const sub = args[0] ?? "status";
|
|
73
|
-
switch (sub) {
|
|
74
|
-
case "start": {
|
|
75
|
-
const info = await startDaemon(env);
|
|
76
|
-
if (loadOmbSettings(env).trayEnabled)
|
|
77
|
-
await startTray(env);
|
|
78
|
-
process.stdout.write(`omb daemon started \u2014 pid ${info.pid}, listening on 127.0.0.1:${info.port}\n`);
|
|
79
|
-
return 0;
|
|
80
|
-
}
|
|
81
|
-
case "stop": {
|
|
82
|
-
const result = await stopDaemon(env);
|
|
83
|
-
if (result === "stopped")
|
|
84
|
-
await stopTray(env);
|
|
85
|
-
process.stdout.write(result === "stopped" ? "omb daemon stopped\n" : "omb daemon is not running\n");
|
|
86
|
-
return 0;
|
|
87
|
-
}
|
|
88
|
-
case "restart": {
|
|
89
|
-
await stopDaemon(env);
|
|
90
|
-
const info = await startDaemon(env);
|
|
91
|
-
if (loadOmbSettings(env).trayEnabled)
|
|
92
|
-
await startTray(env);
|
|
93
|
-
process.stdout.write(`omb daemon restarted \u2014 pid ${info.pid}, listening on 127.0.0.1:${info.port}\n`);
|
|
94
|
-
return 0;
|
|
95
|
-
}
|
|
96
|
-
case "status": {
|
|
97
|
-
process.stdout.write(renderStatus(readDaemonStatus(env), env));
|
|
98
|
-
return 0;
|
|
99
|
-
}
|
|
100
|
-
case "run": {
|
|
101
|
-
// Detached child path: serve until stopped. The lock is written here so
|
|
102
|
-
// the parent observes a fully bound listener before reporting success.
|
|
103
|
-
const service = startDaemonService({ log: line => process.stdout.write(`omb daemon: ${line}\n`) });
|
|
104
|
-
try {
|
|
105
|
-
await service.ready;
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
process.stderr.write(`omb daemon: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
109
|
-
return 1;
|
|
110
|
-
}
|
|
111
|
-
writeDaemonLock(env, {
|
|
112
|
-
pid: process.pid,
|
|
113
|
-
port: service.port,
|
|
114
|
-
token: service.token,
|
|
115
|
-
startedAt: Date.now(),
|
|
116
|
-
exe: process.argv[1] ?? "",
|
|
117
|
-
});
|
|
118
|
-
const exited = deferred();
|
|
119
|
-
const exit = () => {
|
|
120
|
-
void service.close().then(() => {
|
|
121
|
-
clearDaemonLock(env);
|
|
122
|
-
exited.resolve();
|
|
123
|
-
});
|
|
124
|
-
};
|
|
125
|
-
process.once("SIGTERM", exit);
|
|
126
|
-
process.once("SIGINT", exit);
|
|
127
|
-
await exited.promise;
|
|
128
|
-
return 0;
|
|
129
|
-
}
|
|
130
|
-
default:
|
|
131
|
-
process.stderr.write(`omb daemon: unknown subcommand "${sub}" (use start, stop, restart, status)\n\n${DAEMON_USAGE}\n`);
|
|
132
|
-
return 2;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=omb-daemon.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"omb-daemon.js","sourceRoot":"","sources":["../../../src/cli/omb-daemon.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { type DaemonInfo } from "../omp/daemon.js";
|
|
2
|
-
export declare const DASHBOARD_USAGE = "omb dashboard [--open] [--json]\nomb dashboard stop\n\n Opens the local Bizar OMB dashboard. The daemon is started on demand and the\n printed URL carries a single-use access code that expires after five minutes;\n the page trades it for the daemon token and keeps that in session memory only.\n\n --open also launch the URL in the default browser\n --json print { url, port, pid, code } for scripting\n stop stop the dashboard's daemon, which ends daemon-managed sessions";
|
|
3
|
-
export interface DashboardLink {
|
|
4
|
-
url: string;
|
|
5
|
-
port: number;
|
|
6
|
-
code: string;
|
|
7
|
-
daemon: DaemonInfo;
|
|
8
|
-
}
|
|
9
|
-
export declare function dashboardAccessUrl(port: number, path: string, code: string): string;
|
|
10
|
-
/** Mint a one-time dashboard URL from a running (or newly started) daemon. */
|
|
11
|
-
export declare function openDashboard(env?: NodeJS.ProcessEnv): Promise<DashboardLink>;
|
|
12
|
-
export declare function runDashboardCommand(args: string[], env?: NodeJS.ProcessEnv): Promise<number>;
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { spawn } from "node:child_process";
|
|
2
|
-
import { DAEMON_PROTOCOL_VERSION, DaemonError, readDaemonStatus, startDaemon, stopDaemon } from "../omp/daemon.js";
|
|
3
|
-
import { findOnPath } from "../omp/tmux.js";
|
|
4
|
-
export const DASHBOARD_USAGE = `omb dashboard [--open] [--json]
|
|
5
|
-
omb dashboard stop
|
|
6
|
-
|
|
7
|
-
Opens the local Bizar OMB dashboard. The daemon is started on demand and the
|
|
8
|
-
printed URL carries a single-use access code that expires after five minutes;
|
|
9
|
-
the page trades it for the daemon token and keeps that in session memory only.
|
|
10
|
-
|
|
11
|
-
--open also launch the URL in the default browser
|
|
12
|
-
--json print { url, port, pid, code } for scripting
|
|
13
|
-
stop stop the dashboard's daemon, which ends daemon-managed sessions`;
|
|
14
|
-
function parseCodeResponse(value) {
|
|
15
|
-
if (!value || typeof value !== "object")
|
|
16
|
-
throw new DaemonError("daemon returned an invalid dashboard response");
|
|
17
|
-
const record = value;
|
|
18
|
-
const { code, path, port, expiresInMs } = record;
|
|
19
|
-
if (typeof code !== "string" || typeof path !== "string" || typeof port !== "number" || typeof expiresInMs !== "number") {
|
|
20
|
-
throw new DaemonError("daemon returned an invalid dashboard response");
|
|
21
|
-
}
|
|
22
|
-
return { code, path, port, expiresInMs };
|
|
23
|
-
}
|
|
24
|
-
/** Reuse a live daemon, otherwise spawn one so the dashboard has a server. */
|
|
25
|
-
async function ensureDaemon(env) {
|
|
26
|
-
const status = readDaemonStatus(env);
|
|
27
|
-
if (status.state === "running" && status.daemon) {
|
|
28
|
-
try {
|
|
29
|
-
const response = await fetch(`http://127.0.0.1:${status.daemon.port}/ping`, { signal: AbortSignal.timeout(2_000) });
|
|
30
|
-
if (response.headers.get("x-bizar-daemon-protocol") === String(DAEMON_PROTOCOL_VERSION))
|
|
31
|
-
return status.daemon;
|
|
32
|
-
}
|
|
33
|
-
catch { /* restart an unreachable or incompatible daemon below */ }
|
|
34
|
-
await stopDaemon(env);
|
|
35
|
-
}
|
|
36
|
-
try {
|
|
37
|
-
return await startDaemon(env);
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
// A concurrent start won the race; adopt the daemon it produced.
|
|
41
|
-
const retry = readDaemonStatus(env);
|
|
42
|
-
if (retry.state === "running" && retry.daemon)
|
|
43
|
-
return retry.daemon;
|
|
44
|
-
throw error;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
export function dashboardAccessUrl(port, path, code) {
|
|
48
|
-
return `http://127.0.0.1:${port}${path}?oc=${encodeURIComponent(code)}`;
|
|
49
|
-
}
|
|
50
|
-
/** Mint a one-time dashboard URL from a running (or newly started) daemon. */
|
|
51
|
-
export async function openDashboard(env = process.env) {
|
|
52
|
-
const daemon = await ensureDaemon(env);
|
|
53
|
-
const response = await fetch(`http://127.0.0.1:${daemon.port}/dash/code`, {
|
|
54
|
-
method: "POST",
|
|
55
|
-
headers: { authorization: `Bearer ${daemon.token}` },
|
|
56
|
-
});
|
|
57
|
-
if (!response.ok)
|
|
58
|
-
throw new DaemonError(`dashboard link request failed (${response.status})`);
|
|
59
|
-
const payload = parseCodeResponse(await response.json());
|
|
60
|
-
return {
|
|
61
|
-
url: dashboardAccessUrl(payload.port, payload.path, payload.code),
|
|
62
|
-
port: payload.port,
|
|
63
|
-
code: payload.code,
|
|
64
|
-
daemon,
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
function openInBrowser(url, env) {
|
|
68
|
-
for (const bin of ["xdg-open", "open"]) {
|
|
69
|
-
const resolved = findOnPath(bin, env);
|
|
70
|
-
if (!resolved)
|
|
71
|
-
continue;
|
|
72
|
-
const child = spawn(resolved, [url], { detached: true, stdio: "ignore", env });
|
|
73
|
-
child.once("error", () => { });
|
|
74
|
-
child.unref();
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
export async function runDashboardCommand(args, env = process.env) {
|
|
79
|
-
const words = args.filter(word => !word.startsWith("--"));
|
|
80
|
-
if (args.includes("--help") || args.includes("-h")) {
|
|
81
|
-
process.stdout.write(`${DASHBOARD_USAGE}\n`);
|
|
82
|
-
return 0;
|
|
83
|
-
}
|
|
84
|
-
if (words[0] === "stop") {
|
|
85
|
-
const result = await stopDaemon(env);
|
|
86
|
-
process.stdout.write(result === "stopped"
|
|
87
|
-
? "dashboard stopped (daemon stopped; tmux sessions keep running)\n"
|
|
88
|
-
: "dashboard stop: no daemon running\n");
|
|
89
|
-
return 0;
|
|
90
|
-
}
|
|
91
|
-
if (words.length) {
|
|
92
|
-
process.stderr.write(`omb dashboard: unknown argument "${words[0]}"\n\n${DASHBOARD_USAGE}\n`);
|
|
93
|
-
return 2;
|
|
94
|
-
}
|
|
95
|
-
const link = await openDashboard(env);
|
|
96
|
-
if (args.includes("--open"))
|
|
97
|
-
openInBrowser(link.url, env);
|
|
98
|
-
if (args.includes("--json")) {
|
|
99
|
-
process.stdout.write(`${JSON.stringify({ url: link.url, port: link.port, pid: link.daemon.pid, code: link.code }, null, 2)}\n`);
|
|
100
|
-
return 0;
|
|
101
|
-
}
|
|
102
|
-
process.stdout.write([
|
|
103
|
-
"Bizar OMB dashboard",
|
|
104
|
-
` url ${link.url}`,
|
|
105
|
-
` daemon pid ${link.daemon.pid} on 127.0.0.1:${link.port}`,
|
|
106
|
-
` access single use, expires in 5 minutes`,
|
|
107
|
-
"",
|
|
108
|
-
" The link is printed once. Re-run `omb dashboard` for a fresh one.",
|
|
109
|
-
"",
|
|
110
|
-
].join("\n"));
|
|
111
|
-
return 0;
|
|
112
|
-
}
|
|
113
|
-
//# sourceMappingURL=omb-dashboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"omb-dashboard.js","sourceRoot":"","sources":["../../../src/cli/omb-dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export interface ParsedOmbInvocation {
|
|
2
|
-
sessionId?: string;
|
|
3
|
-
ompArgs: string[];
|
|
4
|
-
}
|
|
5
|
-
/** Generate a readable durable id while retaining enough entropy for siblings. */
|
|
6
|
-
export declare function generatedSessionId(seed?: string): string;
|
|
7
|
-
export declare function parseOmbInvocation(args: string[]): ParsedOmbInvocation;
|
|
8
|
-
export declare function parseOmbCommand(args: string[]): ParsedOmbInvocation;
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { randomBytes } from "node:crypto";
|
|
2
|
-
/** Generate a readable durable id while retaining enough entropy for siblings. */
|
|
3
|
-
export function generatedSessionId(seed = "session") {
|
|
4
|
-
const stem = seed
|
|
5
|
-
.trim()
|
|
6
|
-
.toLocaleLowerCase()
|
|
7
|
-
.replace(/[^a-z0-9]+/g, "-")
|
|
8
|
-
.replace(/^-+|-+$/g, "")
|
|
9
|
-
.slice(0, 10) || "session";
|
|
10
|
-
const suffix = `${Date.now().toString(36).slice(-5)}${randomBytes(2).toString("hex")}`;
|
|
11
|
-
return `s-${stem}-${suffix}`.slice(0, 20);
|
|
12
|
-
}
|
|
13
|
-
export function parseOmbInvocation(args) {
|
|
14
|
-
const ompArgs = [];
|
|
15
|
-
let sessionId;
|
|
16
|
-
let generated = false;
|
|
17
|
-
for (let index = 0; index < args.length; index += 1) {
|
|
18
|
-
const arg = args[index];
|
|
19
|
-
if (arg === "--session" || arg === "--session-id") {
|
|
20
|
-
const value = args[++index];
|
|
21
|
-
if (!value || value.startsWith("--"))
|
|
22
|
-
throw new Error(`${arg} requires a value`);
|
|
23
|
-
sessionId = value;
|
|
24
|
-
}
|
|
25
|
-
else if (arg === "--new") {
|
|
26
|
-
generated = true;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
ompArgs.push(arg);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
if (generated && !sessionId)
|
|
33
|
-
sessionId = generatedSessionId(ompArgs.filter(arg => !arg.startsWith("-")).join(" "));
|
|
34
|
-
return { sessionId, ompArgs };
|
|
35
|
-
}
|
|
36
|
-
export function parseOmbCommand(args) {
|
|
37
|
-
return args[0] === "new"
|
|
38
|
-
? parseOmbInvocation(["--new", ...args.slice(1)])
|
|
39
|
-
: parseOmbInvocation(args);
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=omb-invocation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"omb-invocation.js","sourceRoot":"","sources":["../../../src/cli/omb-invocation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAO1C,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,IAAI,GAAG,SAAS;IACjD,MAAM,IAAI,GAAG,IAAI;SACd,IAAI,EAAE;SACN,iBAAiB,EAAE;SACnB,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACvF,OAAO,KAAK,IAAI,IAAI,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAc;IAC/C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,SAA6B,CAAC;IAClC,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,mBAAmB,CAAC,CAAC;YACjF,SAAS,GAAG,KAAK,CAAC;QACpB,CAAC;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC3B,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAc;IAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK;QACtB,CAAC,CAAC,kBAAkB,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { type DaemonStatus } from "../omp/daemon.js";
|
|
2
|
-
import { type TrayStatus } from "../omp/tray.js";
|
|
3
|
-
/**
|
|
4
|
-
* Host services the runtime commands drive.
|
|
5
|
-
*
|
|
6
|
-
* Injected so the daemon and tray rows are exercised without spawning a real
|
|
7
|
-
* daemon or tray process, and so a test can prove what `omb stop` did to them.
|
|
8
|
-
*/
|
|
9
|
-
export interface RuntimeServices {
|
|
10
|
-
readDaemonStatus(env: NodeJS.ProcessEnv): DaemonStatus;
|
|
11
|
-
startDaemon(env: NodeJS.ProcessEnv): Promise<{
|
|
12
|
-
pid: number;
|
|
13
|
-
port: number;
|
|
14
|
-
}>;
|
|
15
|
-
stopDaemon(env: NodeJS.ProcessEnv): Promise<"stopped" | "not-running">;
|
|
16
|
-
readTrayStatus(env: NodeJS.ProcessEnv): TrayStatus;
|
|
17
|
-
startTray(env: NodeJS.ProcessEnv): Promise<{
|
|
18
|
-
pid: number;
|
|
19
|
-
} | undefined>;
|
|
20
|
-
stopTray(env: NodeJS.ProcessEnv): Promise<boolean>;
|
|
21
|
-
openDashboard(env: NodeJS.ProcessEnv): Promise<{
|
|
22
|
-
url: string;
|
|
23
|
-
port: number;
|
|
24
|
-
}>;
|
|
25
|
-
}
|
|
26
|
-
export declare const runtimeServices: RuntimeServices;
|
|
27
|
-
export declare const STOP_USAGE = "omb stop [--all | --sessions | --session NAME | --daemon | --dashboard | --tray]\n [--idle] [--force] [--dry-run] [--json]\n\n Stops the Bizar runtime: every Bizar-owned tmux session and the optional\n services around them. With no target flag, sessions, the daemon, and the tray\n are all stopped.\n\n --all sessions and services (the default)\n --sessions only Bizar-owned tmux sessions\n --session N one session by name, repeatable; Bizar-owned names only\n --daemon only the daemon\n --dashboard only the daemon, which serves the dashboard\n --tray only the tray\n --idle only sessions with no client attached and no work in flight\n --force also stop sessions that have a client attached\n --dry-run report what would stop without stopping it\n --json print { command, dryRun, stopped, skipped, failed, resources }\n\n Only Bizar-owned sessions are ever touched, the session hosting this command\n is never stopped, and \"nothing was running\" is a success.";
|
|
28
|
-
export declare const RESTART_USAGE = "omb restart [--force] [--dry-run] [--json]\n\n Stops the whole runtime like \"omb stop\", then starts the daemon and the tray\n again and prints a fresh dashboard access code. Agent sessions are not\n relaunched: their journals are kept, so \"omb\" in a project or the hub brings\n a session back.\n\n --force also stop sessions that have a client attached\n --dry-run report the plan without stopping or starting anything\n --json print { command, dryRun, stopped, started, skipped, failed,\n resources, url }";
|
|
29
|
-
/** One resource the runtime commands observed, and what they did with it. */
|
|
30
|
-
export interface RuntimeResource {
|
|
31
|
-
target: "session" | "daemon" | "tray" | "dashboard";
|
|
32
|
-
name: string;
|
|
33
|
-
/** State observed before the command acted. */
|
|
34
|
-
state: string;
|
|
35
|
-
action: "stopped" | "started" | "skipped" | "planned" | "failed";
|
|
36
|
-
/** Exit code of the underlying action, when there was one. */
|
|
37
|
-
code?: number;
|
|
38
|
-
reason?: string;
|
|
39
|
-
}
|
|
40
|
-
export declare function runStopCommand(args: string[], env?: NodeJS.ProcessEnv, cwd?: string, services?: RuntimeServices): Promise<number>;
|
|
41
|
-
export declare function runRestartCommand(args: string[], env?: NodeJS.ProcessEnv, cwd?: string, services?: RuntimeServices): Promise<number>;
|