@openrig/cli 0.3.1 → 0.3.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/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +2 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +36 -0
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +66 -0
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/db/migrations/037_mission_control_actions.d.ts +5 -1
- package/daemon/dist/db/migrations/037_mission_control_actions.d.ts.map +1 -1
- package/daemon/dist/db/migrations/037_mission_control_actions.js +5 -1
- package/daemon/dist/db/migrations/037_mission_control_actions.js.map +1 -1
- package/daemon/dist/db/migrations/041_rig_policy.d.ts +32 -0
- package/daemon/dist/db/migrations/041_rig_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/041_rig_policy.js +47 -0
- package/daemon/dist/db/migrations/041_rig_policy.js.map +1 -0
- package/daemon/dist/domain/agent-images/resume-token-discovery.js +1 -1
- package/daemon/dist/domain/agent-images/resume-token-discovery.js.map +1 -1
- package/daemon/dist/domain/agent-images/snapshot-capturer.d.ts.map +1 -1
- package/daemon/dist/domain/agent-images/snapshot-capturer.js +2 -1
- package/daemon/dist/domain/agent-images/snapshot-capturer.js.map +1 -1
- package/daemon/dist/domain/agent-manifest.js +27 -0
- package/daemon/dist/domain/agent-manifest.js.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/bootstrap-orchestrator.js +86 -6
- package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
- package/daemon/dist/domain/bundle-agent-images-router.d.ts +95 -0
- package/daemon/dist/domain/bundle-agent-images-router.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-agent-images-router.js +140 -0
- package/daemon/dist/domain/bundle-agent-images-router.js.map +1 -0
- package/daemon/dist/domain/bundle-assembler.d.ts +18 -1
- package/daemon/dist/domain/bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-assembler.js +11 -1
- package/daemon/dist/domain/bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/bundle-audit.d.ts +89 -0
- package/daemon/dist/domain/bundle-audit.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-audit.js +87 -0
- package/daemon/dist/domain/bundle-audit.js.map +1 -0
- package/daemon/dist/domain/bundle-conflict-detector.d.ts +57 -0
- package/daemon/dist/domain/bundle-conflict-detector.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-conflict-detector.js +49 -0
- package/daemon/dist/domain/bundle-conflict-detector.js.map +1 -0
- package/daemon/dist/domain/bundle-context-packs-router.d.ts +100 -0
- package/daemon/dist/domain/bundle-context-packs-router.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-context-packs-router.js +158 -0
- package/daemon/dist/domain/bundle-context-packs-router.js.map +1 -0
- package/daemon/dist/domain/bundle-plugins-router.d.ts +69 -0
- package/daemon/dist/domain/bundle-plugins-router.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-plugins-router.js +87 -0
- package/daemon/dist/domain/bundle-plugins-router.js.map +1 -0
- package/daemon/dist/domain/bundle-skills-router.d.ts +62 -0
- package/daemon/dist/domain/bundle-skills-router.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-skills-router.js +90 -0
- package/daemon/dist/domain/bundle-skills-router.js.map +1 -0
- package/daemon/dist/domain/bundle-types.d.ts +106 -0
- package/daemon/dist/domain/bundle-types.d.ts.map +1 -1
- package/daemon/dist/domain/bundle-types.js +375 -0
- package/daemon/dist/domain/bundle-types.js.map +1 -1
- package/daemon/dist/domain/bundle-workflow-specs-router.d.ts +94 -0
- package/daemon/dist/domain/bundle-workflow-specs-router.d.ts.map +1 -0
- package/daemon/dist/domain/bundle-workflow-specs-router.js +144 -0
- package/daemon/dist/domain/bundle-workflow-specs-router.js.map +1 -0
- package/daemon/dist/domain/context-monitor.d.ts +5 -1
- package/daemon/dist/domain/context-monitor.d.ts.map +1 -1
- package/daemon/dist/domain/context-monitor.js +28 -15
- package/daemon/dist/domain/context-monitor.js.map +1 -1
- package/daemon/dist/domain/graph-projection.d.ts +6 -0
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +6 -0
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +7 -7
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +18 -0
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +98 -0
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/node-launcher.d.ts +12 -0
- package/daemon/dist/domain/node-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/node-launcher.js +25 -1
- package/daemon/dist/domain/node-launcher.js.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts +16 -1
- package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/pod-bundle-assembler.js +11 -1
- package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/profile-resolver.d.ts +10 -0
- package/daemon/dist/domain/profile-resolver.d.ts.map +1 -1
- package/daemon/dist/domain/profile-resolver.js +4 -0
- package/daemon/dist/domain/profile-resolver.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +22 -0
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +57 -0
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +37 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +99 -2
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/restore-check-service.d.ts +4 -0
- package/daemon/dist/domain/restore-check-service.d.ts.map +1 -1
- package/daemon/dist/domain/restore-check-service.js +16 -7
- package/daemon/dist/domain/restore-check-service.js.map +1 -1
- package/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts +48 -0
- package/daemon/dist/domain/rig-policy/rig-policy-defaults.d.ts.map +1 -0
- package/daemon/dist/domain/rig-policy/rig-policy-defaults.js +96 -0
- package/daemon/dist/domain/rig-policy/rig-policy-defaults.js.map +1 -0
- package/daemon/dist/domain/rig-policy/rig-policy-store.d.ts +46 -0
- package/daemon/dist/domain/rig-policy/rig-policy-store.d.ts.map +1 -0
- package/daemon/dist/domain/rig-policy/rig-policy-store.js +171 -0
- package/daemon/dist/domain/rig-policy/rig-policy-store.js.map +1 -0
- package/daemon/dist/domain/rig-policy/rig-policy-types.d.ts +145 -0
- package/daemon/dist/domain/rig-policy/rig-policy-types.d.ts.map +1 -0
- package/daemon/dist/domain/rig-policy/rig-policy-types.js +52 -0
- package/daemon/dist/domain/rig-policy/rig-policy-types.js.map +1 -0
- package/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts +58 -0
- package/daemon/dist/domain/rig-policy/rig-policy-validator.d.ts.map +1 -0
- package/daemon/dist/domain/rig-policy/rig-policy-validator.js +211 -0
- package/daemon/dist/domain/rig-policy/rig-policy-validator.js.map +1 -0
- package/daemon/dist/domain/rigspec-instantiator.d.ts +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +109 -18
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/seat-activity-service.d.ts +79 -0
- package/daemon/dist/domain/seat-activity-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-activity-service.js +123 -0
- package/daemon/dist/domain/seat-activity-service.js.map +1 -0
- package/daemon/dist/domain/slices/slice-indexer.d.ts +12 -0
- package/daemon/dist/domain/slices/slice-indexer.d.ts.map +1 -1
- package/daemon/dist/domain/slices/slice-indexer.js +23 -0
- package/daemon/dist/domain/slices/slice-indexer.js.map +1 -1
- package/daemon/dist/domain/spec-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/spec-library-service.js +19 -0
- package/daemon/dist/domain/spec-library-service.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +79 -3
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.d.ts +22 -0
- package/daemon/dist/domain/workflow-spec-cache.d.ts.map +1 -1
- package/daemon/dist/domain/workflow-spec-cache.js +37 -0
- package/daemon/dist/domain/workflow-spec-cache.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts +7 -0
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +156 -3
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts +197 -0
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -0
- package/daemon/dist/domain/workspace/workspace-doctor.js +448 -0
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -0
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +11 -0
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/bundles.d.ts.map +1 -1
- package/daemon/dist/routes/bundles.js +966 -7
- package/daemon/dist/routes/bundles.js.map +1 -1
- package/daemon/dist/routes/config.d.ts.map +1 -1
- package/daemon/dist/routes/config.js +19 -2
- package/daemon/dist/routes/config.js.map +1 -1
- package/daemon/dist/routes/info.d.ts +3 -0
- package/daemon/dist/routes/info.d.ts.map +1 -0
- package/daemon/dist/routes/info.js +20 -0
- package/daemon/dist/routes/info.js.map +1 -0
- package/daemon/dist/routes/queue.d.ts +18 -0
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +97 -5
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/rig-policy.d.ts +9 -0
- package/daemon/dist/routes/rig-policy.d.ts.map +1 -0
- package/daemon/dist/routes/rig-policy.js +174 -0
- package/daemon/dist/routes/rig-policy.js.map +1 -0
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +10 -2
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +26 -3
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/up.d.ts +25 -0
- package/daemon/dist/routes/up.d.ts.map +1 -1
- package/daemon/dist/routes/up.js +70 -3
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/workspace.d.ts.map +1 -1
- package/daemon/dist/routes/workspace.js +80 -1
- package/daemon/dist/routes/workspace.js.map +1 -1
- package/daemon/dist/server.d.ts +10 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +11 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +45 -4
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +28 -4
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +285 -8
- package/daemon/specs/agents/shared/skills/core/rig-lifecycle/SKILL.md +2 -2
- package/daemon/specs/rigs/launch/conveyor/rig.yaml +1 -1
- package/dist/client.d.ts +3 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +13 -1
- package/dist/client.js.map +1 -1
- package/dist/commands/bundle.d.ts.map +1 -1
- package/dist/commands/bundle.js +123 -2
- package/dist/commands/bundle.js.map +1 -1
- package/dist/commands/config-init-workspace.d.ts.map +1 -1
- package/dist/commands/config-init-workspace.js +40 -5
- package/dist/commands/config-init-workspace.js.map +1 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +51 -8
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +6 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +103 -5
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/rig-policy.d.ts +48 -0
- package/dist/commands/rig-policy.d.ts.map +1 -0
- package/dist/commands/rig-policy.js +429 -0
- package/dist/commands/rig-policy.js.map +1 -0
- package/dist/commands/scope.d.ts +6 -0
- package/dist/commands/scope.d.ts.map +1 -0
- package/dist/commands/scope.js +659 -0
- package/dist/commands/scope.js.map +1 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +47 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/workflow.d.ts +9 -0
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +139 -1
- package/dist/commands/workflow.js.map +1 -1
- package/dist/commands/workspace.d.ts +20 -0
- package/dist/commands/workspace.d.ts.map +1 -1
- package/dist/commands/workspace.js +138 -7
- package/dist/commands/workspace.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +25 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +33 -2
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/scope/dot-id.d.ts +43 -0
- package/dist/lib/scope/dot-id.d.ts.map +1 -0
- package/dist/lib/scope/dot-id.js +165 -0
- package/dist/lib/scope/dot-id.js.map +1 -0
- package/dist/lib/scope/scope-fs.d.ts +79 -0
- package/dist/lib/scope/scope-fs.d.ts.map +1 -0
- package/dist/lib/scope/scope-fs.js +468 -0
- package/dist/lib/scope/scope-fs.js.map +1 -0
- package/dist/lib/scope/templates.d.ts +38 -0
- package/dist/lib/scope/templates.d.ts.map +1 -0
- package/dist/lib/scope/templates.js +109 -0
- package/dist/lib/scope/templates.js.map +1 -0
- package/dist/lib/scope/types.d.ts +61 -0
- package/dist/lib/scope/types.d.ts.map +1 -0
- package/dist/lib/scope/types.js +38 -0
- package/dist/lib/scope/types.js.map +1 -0
- package/dist/lib/scope-templates/backlog-deprecation.md +26 -0
- package/dist/lib/scope-templates/backlog-tech-debt.md +22 -0
- package/dist/lib/scope-templates/bug-fix.md +30 -0
- package/dist/lib/scope-templates/mission-notes.md +97 -0
- package/dist/lib/scope-templates/mission-placeholder.md +20 -0
- package/dist/lib/scope-templates/mission-release.md +25 -0
- package/dist/lib/scope-templates/placeholder.md +30 -0
- package/dist/lib/scope-templates/release-feature.md +26 -0
- package/dist/lib/scope-templates/research.md +22 -0
- package/package.json +2 -2
- package/ui/dist/assets/index-GjTxfi9S.js +547 -0
- package/ui/dist/index.html +1 -1
- package/ui/dist/assets/index-Rl3ZBrUg.js +0 -547
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAmC9C,wBAAgB,aAAa,CAAC,YAAY,CAAC,EAAE,UAAU,GAAG,OAAO,CAkMhE"}
|
package/dist/commands/bundle.js
CHANGED
|
@@ -1,8 +1,45 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
1
3
|
import nodePath from "node:path";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
2
5
|
import { Command } from "commander";
|
|
3
6
|
import { DaemonClient } from "../client.js";
|
|
4
7
|
import { getDaemonStatus, getDaemonUrl } from "../daemon-lifecycle.js";
|
|
5
8
|
import { realDeps } from "./daemon.js";
|
|
9
|
+
/**
|
|
10
|
+
* Read the CLI's own package.json version at call time (Item 1 / slice-05).
|
|
11
|
+
* Function-level read on purpose: module-level constants would mask test
|
|
12
|
+
* isolation per the audit-every-layer discipline.
|
|
13
|
+
*/
|
|
14
|
+
function getCliVersion() {
|
|
15
|
+
try {
|
|
16
|
+
const here = fileURLToPath(import.meta.url);
|
|
17
|
+
const pkgPath = nodePath.join(nodePath.dirname(here), "..", "..", "package.json");
|
|
18
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
19
|
+
return typeof pkg.version === "string" ? pkg.version : "unknown";
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return "unknown";
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Build the provenance block the CLI sends to /api/bundles/create. Reads
|
|
27
|
+
* hostname, session name (from canonical OPENRIG_SESSION_NAME env), and
|
|
28
|
+
* CLI version at call time. Operator notes come from the --notes flag.
|
|
29
|
+
* Daemon adds daemonVersion server-side.
|
|
30
|
+
*/
|
|
31
|
+
function buildClientProvenance(notes) {
|
|
32
|
+
const out = {
|
|
33
|
+
sourceHost: os.hostname(),
|
|
34
|
+
cliVersion: getCliVersion(),
|
|
35
|
+
};
|
|
36
|
+
const session = process.env.OPENRIG_SESSION_NAME;
|
|
37
|
+
if (typeof session === "string" && session.length > 0)
|
|
38
|
+
out.authorSession = session;
|
|
39
|
+
if (typeof notes === "string" && notes.length > 0)
|
|
40
|
+
out.notes = notes;
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
6
43
|
export function bundleCommand(depsOverride) {
|
|
7
44
|
const cmd = new Command("bundle").description("Manage rig bundles");
|
|
8
45
|
const getDepsF = () => depsOverride ?? { lifecycleDeps: realDeps(), clientFactory: (url) => new DaemonClient(url) };
|
|
@@ -22,6 +59,9 @@ export function bundleCommand(depsOverride) {
|
|
|
22
59
|
.option("--bundle-version <ver>", "Bundle version", "0.1.0")
|
|
23
60
|
.option("--include-packages <refs...>", "Package refs to include (default: all from spec)")
|
|
24
61
|
.option("--rig-root <root>", "Root directory for pod-aware resolution")
|
|
62
|
+
.option("--notes <text>", "Operator notes captured in bundle provenance metadata")
|
|
63
|
+
.option("--min-daemon-version <ver>", "Minimum daemon version required to install this bundle (Item 2 compatibility)")
|
|
64
|
+
.option("--min-cli-version <ver>", "Minimum CLI version required to install this bundle (Item 2 compatibility)")
|
|
25
65
|
.option("--json", "JSON output")
|
|
26
66
|
.action(async (spec, opts) => {
|
|
27
67
|
const deps = getDepsF();
|
|
@@ -30,11 +70,30 @@ export function bundleCommand(depsOverride) {
|
|
|
30
70
|
process.exitCode = 1;
|
|
31
71
|
return;
|
|
32
72
|
}
|
|
73
|
+
// Item 2 / slice-05: build compatibility from operator flags. Only included
|
|
74
|
+
// in the request body when at least one of the two flags is set.
|
|
75
|
+
const compatibility = {};
|
|
76
|
+
if (opts.minDaemonVersion)
|
|
77
|
+
compatibility.minDaemonVersion = opts.minDaemonVersion;
|
|
78
|
+
if (opts.minCliVersion)
|
|
79
|
+
compatibility.minCliVersion = opts.minCliVersion;
|
|
80
|
+
const hasCompatibility = Object.keys(compatibility).length > 0;
|
|
81
|
+
// QA-20260601 A1 repair (banked banked-create-install-long-running):
|
|
82
|
+
// /create can take seconds-to-minutes (pod-aware assembler walk +
|
|
83
|
+
// Item-6 cross-primitive vendoring + integrity-over-all-content +
|
|
84
|
+
// tar pack). Default 5000ms CLI timeout (client.ts:31) is too short
|
|
85
|
+
// for real-world bundles; daemon completes work but CLI reports
|
|
86
|
+
// failure. Per-call 120s upper bound covers reasonable real-world
|
|
87
|
+
// bundle sizes; if a bundle author hits this, the daemon-side
|
|
88
|
+
// operation is async-completable in a future /bundles/jobs/<id>
|
|
89
|
+
// surface (not in slice-05 scope).
|
|
33
90
|
const res = await client.post("/api/bundles/create", {
|
|
34
91
|
specPath: spec, bundleName: opts.name, bundleVersion: opts.bundleVersion, outputPath: opts.output,
|
|
35
92
|
includePackages: opts.includePackages,
|
|
36
93
|
rigRoot: opts.rigRoot ? nodePath.resolve(opts.rigRoot) : undefined,
|
|
37
|
-
|
|
94
|
+
provenance: buildClientProvenance(opts.notes),
|
|
95
|
+
...(hasCompatibility ? { compatibility } : {}),
|
|
96
|
+
}, { timeoutMs: 120_000 });
|
|
38
97
|
if (opts.json) {
|
|
39
98
|
console.log(JSON.stringify(res.data));
|
|
40
99
|
if (res.status >= 400)
|
|
@@ -97,6 +156,8 @@ export function bundleCommand(depsOverride) {
|
|
|
97
156
|
.option("--plan", "Plan mode")
|
|
98
157
|
.option("--yes", "Auto-approve")
|
|
99
158
|
.option("--target <root>", "Target root directory")
|
|
159
|
+
.option("--skip-version-check", "Operator-explicit override of the Item-2 install-time compatibility check (NOT recommended for routine use)")
|
|
160
|
+
.option("--force", "Operator-explicit override of the Item-3 install-time conflict check (NOT recommended; conflicts may produce partial install state)")
|
|
100
161
|
.option("--json", "JSON output")
|
|
101
162
|
.action(async (bundlePath, opts) => {
|
|
102
163
|
const deps = getDepsF();
|
|
@@ -105,9 +166,23 @@ export function bundleCommand(depsOverride) {
|
|
|
105
166
|
process.exitCode = 1;
|
|
106
167
|
return;
|
|
107
168
|
}
|
|
169
|
+
// QA-20260601 A1 repair: /install completes a full bootstrap run
|
|
170
|
+
// (resolve → vendor sibling primitives → boot rig sessions) which
|
|
171
|
+
// can take many seconds for real bundles. Default 5000ms CLI
|
|
172
|
+
// timeout (client.ts:31) caused CLI to report failure while
|
|
173
|
+
// daemon completed the mutating install — operator-unsafe retry
|
|
174
|
+
// path (rig_name_collision on second attempt). Bumped to 120s.
|
|
108
175
|
const res = await client.post("/api/bundles/install", {
|
|
109
176
|
bundlePath, plan: opts.plan ?? false, autoApprove: opts.yes ?? false, targetRoot: opts.target,
|
|
110
|
-
|
|
177
|
+
// Item 2 / slice-05 Checkpoint 3.3: send CLI version + skip flag for the
|
|
178
|
+
// daemon-side install-time compatibility check. CLI version read at call
|
|
179
|
+
// time (no module-level constant) via the existing getCliVersion helper.
|
|
180
|
+
cliVersion: getCliVersion(),
|
|
181
|
+
skipVersionCheck: opts.skipVersionCheck ?? false,
|
|
182
|
+
// Item 3 / slice-05 Checkpoint 4.2: send force flag for the daemon-side
|
|
183
|
+
// install-time conflict check. Operator-explicit override only.
|
|
184
|
+
force: opts.force ?? false,
|
|
185
|
+
}, { timeoutMs: 120_000 });
|
|
111
186
|
if (opts.json) {
|
|
112
187
|
console.log(JSON.stringify(res.data));
|
|
113
188
|
if (res.status >= 400)
|
|
@@ -124,6 +199,52 @@ export function bundleCommand(depsOverride) {
|
|
|
124
199
|
if (res.data["rigId"])
|
|
125
200
|
console.log(`Rig: ${res.data["rigId"]}`);
|
|
126
201
|
});
|
|
202
|
+
// rig bundle history — Item 4 / slice-05 Checkpoint 5.2
|
|
203
|
+
cmd.command("history")
|
|
204
|
+
.description("List bundle install audit records from ~/.openrig/bundle-audit.jsonl")
|
|
205
|
+
.option("--rig <name>", "Filter to records whose targetRigName matches")
|
|
206
|
+
.option("--since <iso>", "Filter to records installedAt >= this ISO timestamp")
|
|
207
|
+
.option("--json", "JSON output")
|
|
208
|
+
.action(async (opts) => {
|
|
209
|
+
const deps = getDepsF();
|
|
210
|
+
const client = await getClient(deps);
|
|
211
|
+
if (!client) {
|
|
212
|
+
process.exitCode = 1;
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
const qs = new URLSearchParams();
|
|
216
|
+
if (opts.rig)
|
|
217
|
+
qs.set("rig", opts.rig);
|
|
218
|
+
if (opts.since)
|
|
219
|
+
qs.set("since", opts.since);
|
|
220
|
+
const query = qs.toString();
|
|
221
|
+
const path = query.length > 0 ? `/api/bundles/history?${query}` : "/api/bundles/history";
|
|
222
|
+
const res = await client.get(path);
|
|
223
|
+
if (opts.json) {
|
|
224
|
+
console.log(JSON.stringify(res.data));
|
|
225
|
+
if (res.status >= 400)
|
|
226
|
+
process.exitCode = 2;
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (res.status >= 400) {
|
|
230
|
+
console.error(res.data["error"] ?? "History fetch failed");
|
|
231
|
+
process.exitCode = 2;
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
const records = Array.isArray(res.data["records"]) ? res.data["records"] : [];
|
|
235
|
+
if (records.length === 0) {
|
|
236
|
+
console.log("No bundle install audit records found.");
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
console.log(`Bundle install history (${records.length} record${records.length === 1 ? "" : "s"}):`);
|
|
240
|
+
for (const r of records) {
|
|
241
|
+
const at = r["installedAt"] ?? "?";
|
|
242
|
+
const rig = r["targetRigName"] ?? "?";
|
|
243
|
+
const outcome = r["outcome"] ?? "?";
|
|
244
|
+
const bundle = r["bundlePath"] ?? "?";
|
|
245
|
+
console.log(` ${at} ${outcome.toString().padEnd(8)} rig=${rig} ${bundle}`);
|
|
246
|
+
}
|
|
247
|
+
});
|
|
127
248
|
return cmd;
|
|
128
249
|
}
|
|
129
250
|
//# sourceMappingURL=bundle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,UAAU,aAAa,CAAC,YAAyB;IACrD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IAE5H,KAAK,UAAU,SAAS,CAAC,IAAgB;QACvC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,qCAAqC;IACrC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;SACzB,WAAW,CAAC,qCAAqC,CAAC;SAClD,cAAc,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC;SACnD,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,OAAO,CAAC;SAC3D,MAAM,CAAC,8BAA8B,EAAE,kDAAkD,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC;;;;GAIG;AACH,SAAS,aAAa;IACpB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QAClF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAA0B,CAAC;QACnF,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAAC,KAAyB;IACtD,MAAM,GAAG,GAA2B;QAClC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE;QACzB,UAAU,EAAE,aAAa,EAAE;KAC5B,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC;IACnF,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IACrE,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,YAAyB;IACrD,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,YAAY,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC;IAE5H,KAAK,UAAU,SAAS,CAAC,IAAgB;QACvC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3D,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,qCAAqC;IACrC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC;SACzB,WAAW,CAAC,qCAAqC,CAAC;SAClD,cAAc,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;SACnE,MAAM,CAAC,eAAe,EAAE,aAAa,EAAE,WAAW,CAAC;SACnD,MAAM,CAAC,wBAAwB,EAAE,gBAAgB,EAAE,OAAO,CAAC;SAC3D,MAAM,CAAC,8BAA8B,EAAE,kDAAkD,CAAC;SAC1F,MAAM,CAAC,mBAAmB,EAAE,yCAAyC,CAAC;SACtE,MAAM,CAAC,gBAAgB,EAAE,uDAAuD,CAAC;SACjF,MAAM,CAAC,4BAA4B,EAAE,+EAA+E,CAAC;SACrH,MAAM,CAAC,yBAAyB,EAAE,4EAA4E,CAAC;SAC/G,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAA8L,EAAE,EAAE;QAC7N,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE9C,4EAA4E;QAC5E,iEAAiE;QACjE,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,gBAAgB;YAAE,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAClF,IAAI,IAAI,CAAC,aAAa;YAAE,aAAa,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzE,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/D,qEAAqE;QACrE,kEAAkE;QAClE,kEAAkE;QAClE,oEAAoE;QACpE,gEAAgE;QAChE,kEAAkE;QAClE,8DAA8D;QAC9D,gEAAgE;QAChE,mCAAmC;QACnC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,qBAAqB,EAAE;YAC5E,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM;YACjG,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YAClE,UAAU,EAAE,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7C,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEL,4BAA4B;IAC5B,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC1B,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAAwB,EAAE,EAAE;QAC7D,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE9C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAE/F,qEAAqE;QACrE,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;QACvD,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;QACrD,MAAM,eAAe,GAAI,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAyC,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;QAClH,MAAM,QAAQ,GAAG,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe,CAAC;QAE9D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,CAAC;YACrD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAA4B,CAAC;QAC1D,IAAI,CAAC,CAAC,EAAE,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACxD,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAA4B,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,WAAW,IAAI,CAAC,eAAe;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEL,4BAA4B;IAC5B,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC1B,WAAW,CAAC,8CAA8C,CAAC;SAC3D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC;SAC7B,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC;SAC/B,MAAM,CAAC,iBAAiB,EAAE,uBAAuB,CAAC;SAClD,MAAM,CAAC,sBAAsB,EAAE,6GAA6G,CAAC;SAC7I,MAAM,CAAC,SAAS,EAAE,qIAAqI,CAAC;SACxJ,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,IAAqH,EAAE,EAAE;QAC1J,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE9C,iEAAiE;QACjE,kEAAkE;QAClE,6DAA6D;QAC7D,4DAA4D;QAC5D,gEAAgE;QAChE,+DAA+D;QAC/D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAA0B,sBAAsB,EAAE;YAC7E,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,IAAI,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM;YAC7F,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,UAAU,EAAE,aAAa,EAAE;YAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;YAChD,wEAAwE;YACxE,gEAAgE;YAChE,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK;SAC3B,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC;YAC3E,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAW,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;QACjC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEL,wDAAwD;IACxD,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;SACnB,WAAW,CAAC,sEAAsE,CAAC;SACnF,MAAM,CAAC,cAAc,EAAE,+CAA+C,CAAC;SACvE,MAAM,CAAC,eAAe,EAAE,qDAAqD,CAAC;SAC9E,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;SAC/B,MAAM,CAAC,KAAK,EAAE,IAAsD,EAAE,EAAE;QACvE,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;YAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QAE9C,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,IAAI,CAAC,GAAG;YAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,KAAK;YAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,wBAAwB,KAAK,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC;QAEzF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,GAAG,CAA0B,IAAI,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;gBAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,sBAAsB,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,OAAO;QACT,CAAC;QACD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAmC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,MAAM,UAAU,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACpG,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,EAAE,GAAG,CAAC,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC;YACnC,MAAM,GAAG,GAAG,CAAC,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC;YACtC,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC;YACpC,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,MAAM,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-init-workspace.d.ts","sourceRoot":"","sources":["../../src/commands/config-init-workspace.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config-init-workspace.d.ts","sourceRoot":"","sources":["../../src/commands/config-init-workspace.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjE,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC/F,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;CACjB;AAoeD,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED,wBAAgB,sBAAsB,IAAI,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAgDpF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CA8BjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CA+CvG"}
|
|
@@ -18,21 +18,29 @@ import { Command } from "commander";
|
|
|
18
18
|
import { existsSync, mkdirSync, writeFileSync } from "node:fs";
|
|
19
19
|
import { join } from "node:path";
|
|
20
20
|
import { ConfigStore } from "../config-store.js";
|
|
21
|
+
import { renderMissionNotesTemplate } from "../lib/scope/templates.js";
|
|
22
|
+
// Release-0.3.2 slice 01 (OPR.0.3.2.1) — seeded missions/slices now
|
|
23
|
+
// carry §1 dot-IDs in frontmatter so the scaffold coheres with
|
|
24
|
+
// `conventions/scope-and-versioning`. Mirror of the daemon constant;
|
|
25
|
+
// the slice-21 parity test asserts both sides emit identical bodies.
|
|
21
26
|
const DEFAULT_MISSIONS = [
|
|
22
27
|
{
|
|
23
28
|
id: "getting-started",
|
|
29
|
+
dotId: "OPR.99.0.1",
|
|
24
30
|
title: "Getting Started",
|
|
25
31
|
status: "active",
|
|
26
32
|
objective: "Launch the conveyor starter and learn how OpenRig moves work through queue-backed slices.",
|
|
27
33
|
slices: [
|
|
28
34
|
{
|
|
29
35
|
id: "first-conveyor-run",
|
|
36
|
+
dotId: "OPR.99.0.1.1",
|
|
30
37
|
title: "First Conveyor Run",
|
|
31
38
|
status: "active",
|
|
32
39
|
objective: "Move one small packet through intake, planning, build, review, and close on the conveyor starter.",
|
|
33
40
|
},
|
|
34
41
|
{
|
|
35
42
|
id: "inspect-project-evidence",
|
|
43
|
+
dotId: "OPR.99.0.1.2",
|
|
36
44
|
title: "Inspect Project Evidence",
|
|
37
45
|
status: "draft",
|
|
38
46
|
objective: "Open Project, Queue, Story, and Tests to inspect the evidence created by the first conveyor run.",
|
|
@@ -57,7 +65,7 @@ const WORKSPACE_DIRS = [
|
|
|
57
65
|
function subdirReadmeContent(subdir) {
|
|
58
66
|
switch (subdir) {
|
|
59
67
|
case "missions":
|
|
60
|
-
return "# missions\n\nProject missions live here. Each mission folder maps to one Project mission in the UI and owns a `slices/` child folder.\n\nExpected shape:\n\n```text\nmissions/<mission-
|
|
68
|
+
return "# missions\n\nProject missions live here. Each mission folder maps to one Project mission in the UI and owns a `slices/` child folder.\n\nExpected shape:\n\n```text\nmissions/<mission-name>/README.md\nmissions/<mission-name>/PROGRESS.md\nmissions/<mission-name>/slices/<slice-name>/README.md\n```\n\nEvery mission and slice README carries a stable dot-ID in its frontmatter (`id: OPR.<ver>[.<n>]`) per the scope-and-versioning convention. Use `rig scope mission create <name>` and `rig scope slice create <mission> <slug>` to mint conformant artifacts; the CLI handles the dot-ID + auto-numbering for you. The folder name is the operator-facing slug; the `id:` is the stable handle that survives renames.\n";
|
|
61
69
|
case "artifacts":
|
|
62
70
|
return "# artifacts\n\nWork products live here: plans, drafts, generated outputs, and other files that a slice may reference before closure.\n";
|
|
63
71
|
case "evidence":
|
|
@@ -85,7 +93,7 @@ This workspace is file-backed. The Project UI mirrors this structure:
|
|
|
85
93
|
- \`evidence/\` is for proof notes and verification summaries.
|
|
86
94
|
- \`dogfood-evidence/<proof-packet-id>\` becomes Tests proof when the packet id contains the slice id tokens.
|
|
87
95
|
|
|
88
|
-
Use stable kebab-case
|
|
96
|
+
Use stable kebab-case names for mission and slice folders. Every mission/slice README also carries a stable dot-ID in its frontmatter (\`id: OPR.<ver>[.<n>]\`) per the \`scope-and-versioning\` convention; mint conformant artifacts via \`rig scope mission create <name>\` and \`rig scope slice create <mission> <slug>\`. Folder names are operator-facing slugs; the \`id:\` is the rename-proof handle.
|
|
89
97
|
`;
|
|
90
98
|
const STEERING_PLACEHOLDER = `---
|
|
91
99
|
title: Priority Stack
|
|
@@ -114,6 +122,7 @@ alongside your Project workspace.
|
|
|
114
122
|
`;
|
|
115
123
|
function missionReadme(mission) {
|
|
116
124
|
return `---
|
|
125
|
+
id: ${mission.dotId}
|
|
117
126
|
title: ${mission.title}
|
|
118
127
|
status: ${mission.status}
|
|
119
128
|
mission: ${mission.id}
|
|
@@ -371,6 +380,7 @@ function sliceReadme(mission, slice) {
|
|
|
371
380
|
const narrative = GETTING_STARTED_NARRATIVE[slice.id];
|
|
372
381
|
if (narrative) {
|
|
373
382
|
return `---
|
|
383
|
+
id: ${slice.dotId}
|
|
374
384
|
title: ${slice.title}
|
|
375
385
|
status: ${slice.status}
|
|
376
386
|
mission: ${mission.id}
|
|
@@ -381,6 +391,7 @@ slice: ${slice.id}
|
|
|
381
391
|
${narrative.readme}`;
|
|
382
392
|
}
|
|
383
393
|
return `---
|
|
394
|
+
id: ${slice.dotId}
|
|
384
395
|
title: ${slice.title}
|
|
385
396
|
status: ${slice.status}
|
|
386
397
|
mission: ${mission.id}
|
|
@@ -463,7 +474,21 @@ export function workspaceScaffoldFiles() {
|
|
|
463
474
|
{ relPath: "dogfood-evidence/README.md", content: subdirReadmeContent("dogfood-evidence") },
|
|
464
475
|
];
|
|
465
476
|
for (const mission of DEFAULT_MISSIONS) {
|
|
466
|
-
files.push({ relPath: `missions/${mission.id}/README.md`, content: missionReadme(mission) }, { relPath: `missions/${mission.id}/PROGRESS.md`, content: missionProgress(mission) }
|
|
477
|
+
files.push({ relPath: `missions/${mission.id}/README.md`, content: missionReadme(mission) }, { relPath: `missions/${mission.id}/PROGRESS.md`, content: missionProgress(mission) },
|
|
478
|
+
// FR-5e A1 — reuse the FR-3 MISSION_NOTES scaffold helper so a
|
|
479
|
+
// fresh `rig config init-workspace` produces a getting-started
|
|
480
|
+
// mission that doctor check #7 (mission_notes_presence) marks
|
|
481
|
+
// ok. Same env-var-pivot (OPENRIG_MISSION_NOTES_TEMPLATE_PATH >
|
|
482
|
+
// built-in bundled template) FR-3's `rig scope mission create`
|
|
483
|
+
// honors.
|
|
484
|
+
{
|
|
485
|
+
relPath: `missions/${mission.id}/MISSION_NOTES.md`,
|
|
486
|
+
content: renderMissionNotesTemplate({
|
|
487
|
+
mission_id: mission.dotId,
|
|
488
|
+
mission_name: mission.title,
|
|
489
|
+
created_date: new Date().toISOString().slice(0, 10),
|
|
490
|
+
}).rendered,
|
|
491
|
+
});
|
|
467
492
|
for (const slice of mission.slices) {
|
|
468
493
|
files.push({ relPath: `missions/${mission.id}/slices/${slice.id}/README.md`, content: sliceReadme(mission, slice) }, { relPath: `missions/${mission.id}/slices/${slice.id}/PROGRESS.md`, content: sliceProgress(mission, slice) }, { relPath: `missions/${mission.id}/slices/${slice.id}/IMPLEMENTATION-PRD.md`, content: slicePrd(mission, slice) });
|
|
469
494
|
// V0.3.1 slice 21: getting-started slices ship timeline.md.
|
|
@@ -519,6 +544,16 @@ export function runInitWorkspace(opts) {
|
|
|
519
544
|
const root = opts.root ?? store.get("workspace.root");
|
|
520
545
|
const dryRun = !!opts.dryRun;
|
|
521
546
|
const force = !!opts.force;
|
|
547
|
+
// FR-5e BLOCKER-1 — precompute the full scaffold file list BEFORE
|
|
548
|
+
// any filesystem mutation. workspaceScaffoldFiles() now invokes
|
|
549
|
+
// renderMissionNotesTemplate(), which throws on invalid
|
|
550
|
+
// OPENRIG_MISSION_NOTES_TEMPLATE_PATH. If we mkdir first then
|
|
551
|
+
// throw on render, the operator is left with a half-created
|
|
552
|
+
// workspace that the next `rig workspace doctor` will misread as
|
|
553
|
+
// partially-initialized. Verify-first-then-write (banked from
|
|
554
|
+
// FR-3 self-lesson) — fail before any side effect.
|
|
555
|
+
const scaffoldFiles = workspaceScaffoldFiles();
|
|
556
|
+
const scaffoldDirs = workspaceScaffoldDirs();
|
|
522
557
|
const rootExists = existsSync(root);
|
|
523
558
|
const result = {
|
|
524
559
|
root,
|
|
@@ -529,14 +564,14 @@ export function runInitWorkspace(opts) {
|
|
|
529
564
|
};
|
|
530
565
|
if (!rootExists && !dryRun)
|
|
531
566
|
mkdirSync(root, { recursive: true });
|
|
532
|
-
for (const sub of
|
|
567
|
+
for (const sub of scaffoldDirs) {
|
|
533
568
|
const subPath = join(root, sub);
|
|
534
569
|
const subExists = existsSync(subPath);
|
|
535
570
|
if (!subExists && !dryRun)
|
|
536
571
|
mkdirSync(subPath, { recursive: true });
|
|
537
572
|
result.subdirs.push({ name: sub, path: subPath, created: !subExists });
|
|
538
573
|
}
|
|
539
|
-
for (const file of
|
|
574
|
+
for (const file of scaffoldFiles) {
|
|
540
575
|
const absPath = join(root, file.relPath);
|
|
541
576
|
const exists = existsSync(absPath);
|
|
542
577
|
if (exists && !force) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-init-workspace.js","sourceRoot":"","sources":["../../src/commands/config-init-workspace.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,EAAE;AACF,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,2CAA2C;AAC3C,EAAE;AACF,YAAY;AACZ,oEAAoE;AACpE,4FAA4F;AAC5F,uDAAuD;AACvD,+CAA+C;AAC/C,8DAA8D;AAC9D,yEAAyE;AACzE,yBAAyB;AACzB,6EAA6E;AAE7E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-init-workspace.js","sourceRoot":"","sources":["../../src/commands/config-init-workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ps.d.ts","sourceRoot":"","sources":["../../src/commands/ps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAqK9F,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAC/D,YAAY,CAAC,EAAE,CACb,IAAI,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAC/C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,CAAC,EAAE,uBAAuB,KAC3B,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CAC7C;AAyOD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAyOxD"}
|
package/dist/commands/ps.js
CHANGED
|
@@ -53,6 +53,8 @@ const ALLOWED_RIG_FIELDS = new Set([
|
|
|
53
53
|
"rigName",
|
|
54
54
|
"nodeCount",
|
|
55
55
|
"runningCount",
|
|
56
|
+
"activeCount",
|
|
57
|
+
"hasWorkCount",
|
|
56
58
|
"status",
|
|
57
59
|
"lifecycleState",
|
|
58
60
|
"uptime",
|
|
@@ -74,6 +76,9 @@ const ALLOWED_NODE_FIELDS = new Set([
|
|
|
74
76
|
"tmuxAttachCommand",
|
|
75
77
|
"resumeCommand",
|
|
76
78
|
"latestError",
|
|
79
|
+
"terminalActive",
|
|
80
|
+
"hasAssignedWork",
|
|
81
|
+
"pendingWorkCount",
|
|
77
82
|
"agentActivity",
|
|
78
83
|
"contextUsage",
|
|
79
84
|
]);
|
|
@@ -344,11 +349,12 @@ Other keys are rejected. agentActivity.state is node-level (use with --nodes);
|
|
|
344
349
|
allowed values: running, needs_input, idle, unknown.
|
|
345
350
|
|
|
346
351
|
--fields accepts (rig-level): rigId, name, rigName, nodeCount, runningCount,
|
|
347
|
-
status, lifecycleState, uptime, latestSnapshot.
|
|
352
|
+
activeCount, hasWorkCount, status, lifecycleState, uptime, latestSnapshot.
|
|
348
353
|
--fields accepts (node-level, with --nodes): rigId, rigName, logicalId, podId,
|
|
349
354
|
podNamespace, canonicalSessionName, nodeKind, runtime, sessionStatus,
|
|
350
355
|
startupStatus, restoreOutcome, lifecycleState, tmuxAttachCommand,
|
|
351
|
-
resumeCommand, latestError,
|
|
356
|
+
resumeCommand, latestError, terminalActive, hasAssignedWork,
|
|
357
|
+
pendingWorkCount, agentActivity. Other keys are rejected.
|
|
352
358
|
\`name\` is rig-level only; for node entries use \`rigName\`. Nested-field
|
|
353
359
|
projection (e.g. \`agentActivity.state\`) is not supported in this slice; pass
|
|
354
360
|
\`agentActivity\` to project the whole object and read the nested value
|
|
@@ -502,10 +508,12 @@ Exit codes:
|
|
|
502
508
|
// Human output: apply default truncation budget unless --full.
|
|
503
509
|
const humanList = (opts.full || limit !== null) ? limited : limited.slice(0, HUMAN_RIG_BUDGET);
|
|
504
510
|
const humanTruncated = !opts.full && limit === null && filtered.length > HUMAN_RIG_BUDGET;
|
|
505
|
-
const header = padRigRow("RIG", "NODES", "RUNNING", "STATUS", "LIFECYCLE", "UPTIME", "SNAPSHOT");
|
|
511
|
+
const header = padRigRow("RIG", "NODES", "RUNNING", "ACTIVE", "WORK", "STATUS", "LIFECYCLE", "UPTIME", "SNAPSHOT");
|
|
506
512
|
console.log(header);
|
|
507
513
|
for (const e of humanList) {
|
|
508
|
-
console.log(padRigRow(e.rigName ?? e.name, String(e.nodeCount), String(e.runningCount),
|
|
514
|
+
console.log(padRigRow(e.rigName ?? e.name, String(e.nodeCount), String(e.runningCount),
|
|
515
|
+
// Slice 15 — "—" when daemon predates the field; honest absence.
|
|
516
|
+
e.activeCount !== undefined ? String(e.activeCount) : "—", e.hasWorkCount !== undefined ? String(e.hasWorkCount) : "—", e.status, abbrevRigLifecycle(e.lifecycleState), e.uptime ?? "—", e.latestSnapshot ?? "—"));
|
|
509
517
|
}
|
|
510
518
|
if (humanTruncated) {
|
|
511
519
|
const remaining = filtered.length - HUMAN_RIG_BUDGET;
|
|
@@ -578,14 +586,17 @@ async function handleNodes(client, opts, parsedFilter, limit, fields, useEnvelop
|
|
|
578
586
|
}
|
|
579
587
|
const humanList = (opts.full || limit !== null) ? limited : limited.slice(0, HUMAN_NODE_BUDGET);
|
|
580
588
|
const humanTruncated = !opts.full && limit === null && filtered.length > HUMAN_NODE_BUDGET;
|
|
581
|
-
const header = padNodeRow("RIG", "POD", "MEMBER", "SESSION", "RUNTIME", "STATUS", "STARTUP", "LIFECYCLE", "ACTIVITY", "CTX", "RESTORE", "ERROR");
|
|
589
|
+
const header = padNodeRow("RIG", "POD", "MEMBER", "SESSION", "RUNTIME", "STATUS", "STARTUP", "LIFECYCLE", "TERMINAL", "WORK", "ACTIVITY", "CTX", "RESTORE", "ERROR");
|
|
582
590
|
console.log(header);
|
|
583
591
|
for (const n of humanList) {
|
|
584
592
|
const parts = n.logicalId.split(".");
|
|
585
593
|
const pod = n.podNamespace ?? (parts.length > 1 ? parts[0] : "—");
|
|
586
594
|
const member = parts.length > 1 ? parts.slice(1).join(".") : n.logicalId;
|
|
587
595
|
const rig = `${n.rigName}#${n.rigId}`;
|
|
588
|
-
console.log(padNodeRow(rig, pod, member, n.canonicalSessionName ?? "—", n.runtime ?? "—", n.sessionStatus ?? "—", n.startupStatus ?? "—", abbrevNodeLifecycle(n.lifecycleState),
|
|
596
|
+
console.log(padNodeRow(rig, pod, member, n.canonicalSessionName ?? "—", n.runtime ?? "—", n.sessionStatus ?? "—", n.startupStatus ?? "—", abbrevNodeLifecycle(n.lifecycleState),
|
|
597
|
+
// Slice 15 — terminal-active + has-work as DISTINCT columns
|
|
598
|
+
// (non-inference contract: never collapsed into one signal).
|
|
599
|
+
formatTerminalActive(n.terminalActive), formatHasWork(n.hasAssignedWork, n.pendingWorkCount), formatActivity(n.agentActivity), formatContextUsage(n.contextUsage), n.restoreOutcome, n.latestError ? truncate(n.latestError, 30) : "—"));
|
|
589
600
|
}
|
|
590
601
|
if (humanTruncated) {
|
|
591
602
|
const remaining = filtered.length - HUMAN_NODE_BUDGET;
|
|
@@ -614,18 +625,24 @@ function truncate(s, max) {
|
|
|
614
625
|
function fitCell(value, width) {
|
|
615
626
|
return truncate(value, width).padEnd(width);
|
|
616
627
|
}
|
|
617
|
-
function padRigRow(rig, nodes, running, status, lifecycle, uptime, snapshot) {
|
|
628
|
+
function padRigRow(rig, nodes, running, active, work, status, lifecycle, uptime, snapshot) {
|
|
618
629
|
return [
|
|
619
630
|
fitCell(rig, 24),
|
|
620
631
|
fitCell(nodes, 7),
|
|
621
632
|
fitCell(running, 9),
|
|
633
|
+
// Slice 15 — distinct columns for the three orthogonal primitives.
|
|
634
|
+
// RUNNING = process-alive (legacy); ACTIVE = terminal-active (tmux);
|
|
635
|
+
// WORK = has-assigned-work (queue). UI/CLI render them separately so
|
|
636
|
+
// operators see which dimension differs at a glance.
|
|
637
|
+
fitCell(active, 8),
|
|
638
|
+
fitCell(work, 6),
|
|
622
639
|
fitCell(status, 10),
|
|
623
640
|
fitCell(lifecycle, 11),
|
|
624
641
|
fitCell(uptime, 11),
|
|
625
642
|
snapshot,
|
|
626
643
|
].join("");
|
|
627
644
|
}
|
|
628
|
-
function padNodeRow(rig, pod, member, session, runtime, status, startup, lifecycle, activity, ctx, restore, error) {
|
|
645
|
+
function padNodeRow(rig, pod, member, session, runtime, status, startup, lifecycle, terminal, work, activity, ctx, restore, error) {
|
|
629
646
|
return [
|
|
630
647
|
fitCell(rig, 30),
|
|
631
648
|
fitCell(pod, 10),
|
|
@@ -635,12 +652,38 @@ function padNodeRow(rig, pod, member, session, runtime, status, startup, lifecyc
|
|
|
635
652
|
fitCell(status, 10),
|
|
636
653
|
fitCell(startup, 10),
|
|
637
654
|
fitCell(lifecycle, 11),
|
|
655
|
+
// Slice 15 — distinct TERMINAL + WORK columns.
|
|
656
|
+
fitCell(terminal, 9),
|
|
657
|
+
fitCell(work, 6),
|
|
638
658
|
fitCell(activity, 12),
|
|
639
659
|
fitCell(ctx, 6),
|
|
640
660
|
fitCell(restore, 10),
|
|
641
661
|
error,
|
|
642
662
|
].join("");
|
|
643
663
|
}
|
|
664
|
+
// Slice 15 — render the terminal-active primitive honestly.
|
|
665
|
+
// `null` (no signal) is rendered distinctly from `false` (silent past
|
|
666
|
+
// threshold) so an operator can see whether the daemon hasn't observed
|
|
667
|
+
// the seat yet vs has observed and seen no output.
|
|
668
|
+
function formatTerminalActive(t) {
|
|
669
|
+
if (t === true)
|
|
670
|
+
return "active";
|
|
671
|
+
if (t === false)
|
|
672
|
+
return "idle";
|
|
673
|
+
return "—"; // null / undefined → no signal
|
|
674
|
+
}
|
|
675
|
+
// Slice 15 — render has-work with a hint of how much.
|
|
676
|
+
// Pending count appended in parens when known and > 1 keeps the column
|
|
677
|
+
// compact while remaining honest.
|
|
678
|
+
function formatHasWork(has, count) {
|
|
679
|
+
if (has === undefined)
|
|
680
|
+
return "—";
|
|
681
|
+
if (!has)
|
|
682
|
+
return "no";
|
|
683
|
+
if (typeof count === "number" && count > 1)
|
|
684
|
+
return `${count}`;
|
|
685
|
+
return "yes";
|
|
686
|
+
}
|
|
644
687
|
// PL-012: render context-usage as a 5-char cell — "<percent>%" when
|
|
645
688
|
// known + fresh, "<percent>%*" when known but stale, "??" when unknown.
|
|
646
689
|
// 4-char width keeps the table compact without truncating two-digit
|