@openrig/cli 0.4.3 → 0.4.4
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/guidance/openrig-start.md +6 -0
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +49 -21
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +12 -12
- package/daemon/dist/build-info.d.ts +12 -0
- package/daemon/dist/build-info.d.ts.map +1 -0
- package/daemon/dist/build-info.js +11 -0
- package/daemon/dist/build-info.js.map +1 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts +18 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.d.ts.map +1 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js +22 -0
- package/daemon/dist/db/migrations/048_queue_item_evidence_ref.js.map +1 -0
- package/daemon/dist/domain/feed/attention-aggregator.d.ts +31 -0
- package/daemon/dist/domain/feed/attention-aggregator.d.ts.map +1 -0
- package/daemon/dist/domain/feed/attention-aggregator.js +119 -0
- package/daemon/dist/domain/feed/attention-aggregator.js.map +1 -0
- package/daemon/dist/domain/files/file-write-service.d.ts +11 -2
- package/daemon/dist/domain/files/file-write-service.d.ts.map +1 -1
- package/daemon/dist/domain/files/file-write-service.js +77 -0
- package/daemon/dist/domain/files/file-write-service.js.map +1 -1
- package/daemon/dist/domain/hosts/fanout-contract.d.ts +33 -0
- package/daemon/dist/domain/hosts/fanout-contract.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/fanout-contract.js +23 -0
- package/daemon/dist/domain/hosts/fanout-contract.js.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts +49 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js +165 -0
- package/daemon/dist/domain/hosts/hosts-registry-reader.js.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts +35 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.d.ts.map +1 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js +105 -0
- package/daemon/dist/domain/hosts/remote-daemon-http.js.map +1 -0
- package/daemon/dist/domain/human-route-enforcer.d.ts +71 -0
- package/daemon/dist/domain/human-route-enforcer.d.ts.map +1 -0
- package/daemon/dist/domain/human-route-enforcer.js +80 -0
- package/daemon/dist/domain/human-route-enforcer.js.map +1 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts +8 -0
- package/daemon/dist/domain/mission-control/audit-browse.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/audit-browse.js +19 -0
- package/daemon/dist/domain/mission-control/audit-browse.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-action-log.js +4 -0
- package/daemon/dist/domain/mission-control/mission-control-action-log.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js +1 -1
- package/daemon/dist/domain/mission-control/mission-control-fleet-cli-capability.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js +1 -1
- package/daemon/dist/domain/mission-control/mission-control-read-layer.js.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts +28 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.d.ts.map +1 -1
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js +125 -0
- package/daemon/dist/domain/mission-control/mission-control-write-contract.js.map +1 -1
- package/daemon/dist/domain/ps-projection.d.ts +28 -1
- package/daemon/dist/domain/ps-projection.d.ts.map +1 -1
- package/daemon/dist/domain/ps-projection.js +39 -0
- package/daemon/dist/domain/ps-projection.js.map +1 -1
- package/daemon/dist/domain/queue-repository.d.ts +25 -1
- package/daemon/dist/domain/queue-repository.d.ts.map +1 -1
- package/daemon/dist/domain/queue-repository.js +111 -7
- package/daemon/dist/domain/queue-repository.js.map +1 -1
- package/daemon/dist/domain/review/brief-spine.d.ts +19 -0
- package/daemon/dist/domain/review/brief-spine.d.ts.map +1 -0
- package/daemon/dist/domain/review/brief-spine.js +86 -0
- package/daemon/dist/domain/review/brief-spine.js.map +1 -0
- package/daemon/dist/domain/review/compose.d.ts +228 -0
- package/daemon/dist/domain/review/compose.d.ts.map +1 -0
- package/daemon/dist/domain/review/compose.js +773 -0
- package/daemon/dist/domain/review/compose.js.map +1 -0
- package/daemon/dist/domain/review/freeze.d.ts +31 -0
- package/daemon/dist/domain/review/freeze.d.ts.map +1 -0
- package/daemon/dist/domain/review/freeze.js +257 -0
- package/daemon/dist/domain/review/freeze.js.map +1 -0
- package/daemon/dist/domain/review/gather.d.ts +100 -0
- package/daemon/dist/domain/review/gather.d.ts.map +1 -0
- package/daemon/dist/domain/review/gather.js +676 -0
- package/daemon/dist/domain/review/gather.js.map +1 -0
- package/daemon/dist/domain/review/types.d.ts +258 -0
- package/daemon/dist/domain/review/types.d.ts.map +1 -0
- package/daemon/dist/domain/review/types.js +35 -0
- package/daemon/dist/domain/review/types.js.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts +64 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.js +153 -0
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -0
- package/daemon/dist/domain/scope/scope-audit.d.ts +9 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +173 -1
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/topology/multi-rig-launcher.d.ts +49 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.d.ts.map +1 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.js +132 -0
- package/daemon/dist/domain/topology/multi-rig-launcher.js.map +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts +29 -0
- package/daemon/dist/domain/topology/remote-up-leaf.d.ts.map +1 -0
- package/daemon/dist/domain/topology/remote-up-leaf.js +60 -0
- package/daemon/dist/domain/topology/remote-up-leaf.js.map +1 -0
- package/daemon/dist/domain/topology/topology-manifest.d.ts +34 -0
- package/daemon/dist/domain/topology/topology-manifest.d.ts.map +1 -0
- package/daemon/dist/domain/topology/topology-manifest.js +195 -0
- package/daemon/dist/domain/topology/topology-manifest.js.map +1 -0
- package/daemon/dist/domain/types.d.ts +5 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/up-command-router.d.ts +1 -1
- package/daemon/dist/domain/up-command-router.d.ts.map +1 -1
- package/daemon/dist/domain/up-command-router.js +34 -2
- package/daemon/dist/domain/up-command-router.js.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.d.ts +17 -0
- package/daemon/dist/domain/user-settings/settings-store.d.ts.map +1 -1
- package/daemon/dist/domain/user-settings/settings-store.js +109 -0
- package/daemon/dist/domain/user-settings/settings-store.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +51 -6
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts +11 -0
- package/daemon/dist/domain/workspace/workspace-doctor.d.ts.map +1 -1
- package/daemon/dist/domain/workspace/workspace-doctor.js +82 -0
- package/daemon/dist/domain/workspace/workspace-doctor.js.map +1 -1
- package/daemon/dist/routes/config.d.ts.map +1 -1
- package/daemon/dist/routes/config.js +15 -6
- package/daemon/dist/routes/config.js.map +1 -1
- package/daemon/dist/routes/files.d.ts.map +1 -1
- package/daemon/dist/routes/files.js +45 -1
- package/daemon/dist/routes/files.js.map +1 -1
- package/daemon/dist/routes/mission-control.d.ts.map +1 -1
- package/daemon/dist/routes/mission-control.js +67 -2
- package/daemon/dist/routes/mission-control.js.map +1 -1
- package/daemon/dist/routes/queue.d.ts +8 -2
- package/daemon/dist/routes/queue.d.ts.map +1 -1
- package/daemon/dist/routes/queue.js +44 -4
- package/daemon/dist/routes/queue.js.map +1 -1
- package/daemon/dist/routes/review.d.ts +3 -0
- package/daemon/dist/routes/review.d.ts.map +1 -0
- package/daemon/dist/routes/review.js +169 -0
- package/daemon/dist/routes/review.js.map +1 -0
- package/daemon/dist/routes/scope-approve.d.ts +3 -0
- package/daemon/dist/routes/scope-approve.d.ts.map +1 -0
- package/daemon/dist/routes/scope-approve.js +55 -0
- package/daemon/dist/routes/scope-approve.js.map +1 -0
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +28 -1
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/slices.d.ts.map +1 -1
- package/daemon/dist/routes/slices.js +49 -9
- package/daemon/dist/routes/slices.js.map +1 -1
- package/daemon/dist/routes/terminal-ws.d.ts.map +1 -1
- package/daemon/dist/routes/terminal-ws.js +58 -21
- package/daemon/dist/routes/terminal-ws.js.map +1 -1
- package/daemon/dist/routes/up.d.ts.map +1 -1
- package/daemon/dist/routes/up.js +84 -0
- package/daemon/dist/routes/up.js.map +1 -1
- package/daemon/dist/routes/workspace.js +2 -2
- package/daemon/dist/server.d.ts +1 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +14 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +18 -3
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/agent-startup-guide.md +1 -1
- package/daemon/docs/reference/product-factory-vps-runbook.md +132 -0
- package/daemon/docs/reference/sdlc-conventions.md +187 -0
- package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/builder/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/lead/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/planner/guidance/role.md +1 -0
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/reviewer/guidance/role.md +1 -0
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
- package/daemon/specs/agents/design/product-designer/guidance/role.md +1 -0
- package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
- package/daemon/specs/agents/development/implementer/guidance/role.md +1 -0
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/development/qa/guidance/role.md +1 -0
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +1 -0
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
- package/daemon/specs/agents/product-management/pm/guidance/role.md +13 -0
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/review/independent-reviewer/guidance/role.md +1 -0
- package/daemon/specs/agents/shared/agent.yaml +2 -0
- package/daemon/specs/agents/shared/skills/core/mission-slice-sop/SKILL.md +115 -0
- package/daemon/specs/agents/shared/skills/core/openrig-operator/SKILL.md +4 -4
- package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +69 -23
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +2 -2
- package/daemon/specs/rigs/focused/pm-team/CULTURE.md +4 -0
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/guidance/role.md +1 -1
- package/daemon/specs/rigs/launch/kernel/agents/operator/agent/startup/context.md +1 -1
- package/daemon/specs/rigs/preview/product-team/CULTURE.md +4 -0
- package/dist/build-info.d.ts +8 -0
- package/dist/build-info.d.ts.map +1 -0
- package/dist/build-info.js +11 -0
- package/dist/build-info.js.map +1 -0
- package/dist/commands/config-init-workspace.d.ts.map +1 -1
- package/dist/commands/config-init-workspace.js +20 -4
- package/dist/commands/config-init-workspace.js.map +1 -1
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/expand.js +1 -1
- package/dist/commands/expand.js.map +1 -1
- package/dist/commands/file.d.ts +7 -0
- package/dist/commands/file.d.ts.map +1 -0
- package/dist/commands/file.js +77 -0
- package/dist/commands/file.js.map +1 -0
- package/dist/commands/host.d.ts +34 -0
- package/dist/commands/host.d.ts.map +1 -0
- package/dist/commands/host.js +448 -0
- package/dist/commands/host.js.map +1 -0
- package/dist/commands/proof.d.ts +54 -0
- package/dist/commands/proof.d.ts.map +1 -0
- package/dist/commands/proof.js +311 -0
- package/dist/commands/proof.js.map +1 -0
- package/dist/commands/ps.d.ts +41 -7
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +343 -131
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +76 -0
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +140 -3
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.js +13 -4
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/up.d.ts +2 -0
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +69 -2
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/workspace.js +6 -6
- package/dist/commands/workspace.js.map +1 -1
- package/dist/config-store.d.ts +4 -0
- package/dist/config-store.d.ts.map +1 -1
- package/dist/config-store.js +68 -0
- package/dist/config-store.js.map +1 -1
- package/dist/cross-host-executor.d.ts +1 -0
- package/dist/cross-host-executor.d.ts.map +1 -1
- package/dist/cross-host-executor.js +4 -1
- package/dist/cross-host-executor.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +4 -1
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/host-registry.d.ts +9 -0
- package/dist/host-registry.d.ts.map +1 -1
- package/dist/host-registry.js +32 -2
- package/dist/host-registry.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/file-transfer.d.ts +89 -0
- package/dist/lib/file-transfer.d.ts.map +1 -0
- package/dist/lib/file-transfer.js +300 -0
- package/dist/lib/file-transfer.js.map +1 -0
- package/dist/lib/hosts/fanout-contract.d.ts +33 -0
- package/dist/lib/hosts/fanout-contract.d.ts.map +1 -0
- package/dist/lib/hosts/fanout-contract.js +23 -0
- package/dist/lib/hosts/fanout-contract.js.map +1 -0
- package/dist/lib/scope/scope-audit.d.ts +9 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +173 -1
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope/templates.d.ts +1 -0
- package/dist/lib/scope/templates.d.ts.map +1 -1
- package/dist/lib/scope/templates.js +9 -0
- package/dist/lib/scope/templates.js.map +1 -1
- package/dist/lib/scope-templates/backlog-deprecation.md +16 -0
- package/dist/lib/scope-templates/backlog-tech-debt.md +16 -0
- package/dist/lib/scope-templates/bug-fix.md +16 -0
- package/dist/lib/scope-templates/implementation-prd.md +33 -0
- package/dist/lib/scope-templates/mission-placeholder.md +1 -1
- package/dist/lib/scope-templates/mission-progress.md +1 -1
- package/dist/lib/scope-templates/mission-release.md +1 -1
- package/dist/lib/scope-templates/placeholder.md +11 -7
- package/dist/lib/scope-templates/proof.md +5 -1
- package/dist/lib/scope-templates/release-feature.md +14 -6
- package/dist/lib/scope-templates/research.md +16 -0
- package/dist/lib/scope-templates/slice-progress.md +1 -1
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +11 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
- package/ui/dist/assets/index-D69ZhNIr.js +598 -0
- package/ui/dist/assets/index-DJYun-8d.css +32 -0
- package/ui/dist/index.html +2 -2
- package/ui/dist/assets/index-DYZniQcc.js +0 -597
- package/ui/dist/assets/index-trcb4Yf_.css +0 -32
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { Command } from "commander";
|
|
4
|
+
import YAML from "yaml";
|
|
5
|
+
import { findSlice, resolveMissionsRoot } from "../lib/scope/scope-fs.js";
|
|
6
|
+
import { ScopeCliError } from "../lib/scope/types.js";
|
|
7
|
+
/**
|
|
8
|
+
* `rig proof` — the proof-drop write path (OPR.0.4.4.19 FR-8 + FR-11;
|
|
9
|
+
* conventions C1 + C2 + C8, D2 attestation).
|
|
10
|
+
*
|
|
11
|
+
* CLI-side filesystem only (plan-review + arch-lead confirmed): the drop
|
|
12
|
+
* validates the C1 header AT THE MOMENT THE EVIDENCE IS IN-HAND, writes the
|
|
13
|
+
* artifact into the slice's proof/ dir, and echoes the parsed header (the
|
|
14
|
+
* seat sees what the composer will see). No daemon involvement, no synthetic
|
|
15
|
+
* qitems, no DB writes.
|
|
16
|
+
*
|
|
17
|
+
* LOAD-BEARING boundaries:
|
|
18
|
+
* - Validation applies ONLY to drops made through this path. An artifact
|
|
19
|
+
* written by any other means (raw file write, existing workflows) is
|
|
20
|
+
* NEVER blocked at write time — the backstop is `rig scope audit`
|
|
21
|
+
* (FR-10), not a write-path gate on ordinary file I/O.
|
|
22
|
+
* - The D2 proof contract + self_check are AGENT JUDGMENT recorded here;
|
|
23
|
+
* the drop path ADVISES (exit 0) and never blocks on them. There is no
|
|
24
|
+
* configuration that makes any advisory blocking (BR-7).
|
|
25
|
+
*/
|
|
26
|
+
/** C1 ratified closed sets (BR-4 — extending them is a convention change
|
|
27
|
+
* owned by pm-lead, not a code decision). */
|
|
28
|
+
export const C1_ARTIFACT_TYPES = ["guard", "qa", "rev1-r1", "rev1-r2", "adjudication"];
|
|
29
|
+
export const C1_VERDICTS = ["CLEAR", "BLOCKING", "CONCERNING", "PASS", "NOT-CLEAR"];
|
|
30
|
+
/** Video extensions for the C8 UX advisory (screencast evidence). */
|
|
31
|
+
const VIDEO_EXTENSIONS = new Set([".mp4", ".mov", ".webm", ".m4v", ".avi", ".mkv"]);
|
|
32
|
+
/** Validate the five required C1 fields + closed sets. Pure. */
|
|
33
|
+
export function validateC1Header(header) {
|
|
34
|
+
const missing = [];
|
|
35
|
+
for (const field of ["slice", "candidate_sha", "artifact_type", "verdict", "money_evidence"]) {
|
|
36
|
+
const value = header[field];
|
|
37
|
+
if (typeof value !== "string" || value.trim().length === 0)
|
|
38
|
+
missing.push(field);
|
|
39
|
+
}
|
|
40
|
+
const invalid = [];
|
|
41
|
+
if (header.artifact_type && !C1_ARTIFACT_TYPES.includes(header.artifact_type)) {
|
|
42
|
+
invalid.push({ field: "artifact_type", value: header.artifact_type, allowed: C1_ARTIFACT_TYPES });
|
|
43
|
+
}
|
|
44
|
+
if (header.verdict && !C1_VERDICTS.includes(header.verdict)) {
|
|
45
|
+
invalid.push({ field: "verdict", value: header.verdict, allowed: C1_VERDICTS });
|
|
46
|
+
}
|
|
47
|
+
return { ok: missing.length === 0 && invalid.length === 0, missing, invalid };
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parse the pinned `## Proof contract` section out of a slice's
|
|
51
|
+
* IMPLEMENTATION-PRD.md (the C7 pinned name; PM-lane authored). Returns the
|
|
52
|
+
* promised items (checkbox-item form, one promised item per line), or null
|
|
53
|
+
* when the slice declares no contract (tier-1 degrade — zero noise).
|
|
54
|
+
*/
|
|
55
|
+
export function parseProofContract(prdContent) {
|
|
56
|
+
const lines = prdContent.split("\n");
|
|
57
|
+
const start = lines.findIndex((l) => /^##\s+Proof contract\s*$/i.test(l.trim()));
|
|
58
|
+
if (start === -1)
|
|
59
|
+
return null;
|
|
60
|
+
const items = [];
|
|
61
|
+
for (let i = start + 1; i < lines.length; i++) {
|
|
62
|
+
const line = lines[i];
|
|
63
|
+
if (/^##\s/.test(line))
|
|
64
|
+
break; // next section
|
|
65
|
+
const m = line.match(/^\s*-\s*(?:\[[ xX]\]\s*)?(.+\S)\s*$/);
|
|
66
|
+
if (m)
|
|
67
|
+
items.push(m[1]);
|
|
68
|
+
}
|
|
69
|
+
return items;
|
|
70
|
+
}
|
|
71
|
+
function isVideoFile(filePath) {
|
|
72
|
+
return VIDEO_EXTENSIONS.has(path.extname(filePath).toLowerCase());
|
|
73
|
+
}
|
|
74
|
+
export function proofCommand() {
|
|
75
|
+
const cmd = new Command("proof").description("Proof artifacts — drop gate/proof evidence into a slice's proof/ dir with the machine-readable C1 header, validated at the natural moment (OPR.0.4.4.19 FR-8). The drop is the SDLC's proof leg: --evidences joins it to the slice's ## Proof contract items (what the Living Notes DELIVERED section pairs + renders); proof-lock afterwards via rig scope slice approve --scope delivery. Conventions SSOT: docs/reference/sdlc-conventions.md.");
|
|
76
|
+
cmd.option("--workspace <path>", "Override workspace root (else cwd walk or $OPENRIG_WORK_ROOT)");
|
|
77
|
+
cmd
|
|
78
|
+
.command("add <slice-path>")
|
|
79
|
+
.description("Drop a proof artifact: authors the C1 frontmatter from flags, writes <slice>/proof/<name>, echoes the parsed header. Contract/self-check/C8 outputs are advisories (exit 0) — never gates.")
|
|
80
|
+
.option("--mission <name>", "Hint mission when slice-path is just NN-slug")
|
|
81
|
+
.requiredOption("--artifact-type <type>", `C1 artifact_type, one of: ${C1_ARTIFACT_TYPES.join(" | ")}`)
|
|
82
|
+
.requiredOption("--verdict <verdict>", `C1 verdict, one of: ${C1_VERDICTS.join(" | ")}`)
|
|
83
|
+
.requiredOption("--candidate-sha <sha>", "C1 candidate_sha — the join key (convention C2): the proven candidate tip this artifact judges")
|
|
84
|
+
.requiredOption("--money-evidence <line>", "C1 money_evidence — the one line of money evidence")
|
|
85
|
+
.option("--slice-id <dot-id>", "C1 slice dot-ID (defaults to the slice frontmatter id)")
|
|
86
|
+
.option("--file <path>", "Artifact body from a file (mutually exclusive with --body)")
|
|
87
|
+
.option("--body <text>", "Artifact body inline (mutually exclusive with --file)")
|
|
88
|
+
.option("--name <filename>", "Artifact filename in proof/ (defaults to the --file basename, else <artifact-type>-<verdict>-<UTC>.md)")
|
|
89
|
+
.option("--evidences <refs>", "D2 attestation: comma-separated proof-contract item refs this artifact covers (item text or 1-based index)")
|
|
90
|
+
.option("--self-check <text>", "D2 attestation: the agent's assertion that it LOOKED at the evidence and confirmed it shows the claim")
|
|
91
|
+
.option("--media <refs>", "Corrective §3.4: comma-separated media refs (relative to the slice proof/ dir) this drop stands behind — appended to the artifact body as markdown refs so the composer curates them into delivered.items[].proof")
|
|
92
|
+
.option("--json", "JSON output for agents")
|
|
93
|
+
.action(async (slicePath, opts, command) => {
|
|
94
|
+
const json = Boolean(opts.json);
|
|
95
|
+
const advisories = [];
|
|
96
|
+
const warns = [];
|
|
97
|
+
try {
|
|
98
|
+
if (opts.file && opts.body) {
|
|
99
|
+
throw new ScopeCliError({
|
|
100
|
+
fact: "Both --file and --body were provided.",
|
|
101
|
+
consequence: "The artifact body is ambiguous.",
|
|
102
|
+
action: "Pass exactly one of --file <path> or --body <text>.",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
const parentOpts = (command.parent?.opts() ?? {});
|
|
106
|
+
const missionsRoot = resolveMissionsRoot({ override: parentOpts.workspace });
|
|
107
|
+
const slice = findSlice(missionsRoot, slicePath, opts.mission ?? null);
|
|
108
|
+
// Resolve the artifact body.
|
|
109
|
+
let body = "";
|
|
110
|
+
if (opts.file) {
|
|
111
|
+
if (!fs.existsSync(opts.file)) {
|
|
112
|
+
throw new ScopeCliError({
|
|
113
|
+
fact: `--file ${opts.file} does not exist.`,
|
|
114
|
+
consequence: "No artifact body to drop.",
|
|
115
|
+
action: "Point --file at the evidence file, or use --body.",
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
body = fs.readFileSync(opts.file, "utf8");
|
|
119
|
+
}
|
|
120
|
+
else if (opts.body) {
|
|
121
|
+
body = opts.body;
|
|
122
|
+
}
|
|
123
|
+
// Corrective §3.4 — attach curated media refs (proof/-relative) to
|
|
124
|
+
// the artifact body as markdown refs; the composer projects them
|
|
125
|
+
// into delivered.items[].proof for the covered deliverables. Same
|
|
126
|
+
// containment discipline as --name: nothing outside the slice dir.
|
|
127
|
+
const sliceProofDir = path.join(slice.absPath, "proof");
|
|
128
|
+
const mediaRefs = opts.media
|
|
129
|
+
? opts.media.split(",").map((s) => s.trim()).filter(Boolean)
|
|
130
|
+
: [];
|
|
131
|
+
const mediaLines = [];
|
|
132
|
+
for (const ref of mediaRefs) {
|
|
133
|
+
if (path.isAbsolute(ref)) {
|
|
134
|
+
throw new ScopeCliError({
|
|
135
|
+
fact: `--media ref '${ref}' is absolute.`,
|
|
136
|
+
consequence: "The artifact was NOT dropped — proof media is co-located slice content (FR-5), referenced relative to the slice's proof/ dir.",
|
|
137
|
+
action: "Copy the media into the slice's proof/ dir and pass the relative name.",
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
const resolved = path.resolve(sliceProofDir, ref);
|
|
141
|
+
if (!resolved.startsWith(path.resolve(slice.absPath) + path.sep)) {
|
|
142
|
+
throw new ScopeCliError({
|
|
143
|
+
fact: `--media ref '${ref}' resolves outside the slice dir.`,
|
|
144
|
+
consequence: "The artifact was NOT dropped — out-of-slice media can never be served or frozen with the review (FR-5).",
|
|
145
|
+
action: "Move the media under the slice dir (proof/ is the natural home) and re-run.",
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
if (!fs.existsSync(resolved)) {
|
|
149
|
+
warns.push(`--media ref '${ref}' does not exist yet (${resolved}) — the review will show it as unavailable until the file lands`);
|
|
150
|
+
}
|
|
151
|
+
const ext = path.extname(ref).toLowerCase();
|
|
152
|
+
if (VIDEO_EXTENSIONS.has(ext))
|
|
153
|
+
mediaLines.push(`<video src="${ref}"></video>`);
|
|
154
|
+
else
|
|
155
|
+
mediaLines.push(``);
|
|
156
|
+
}
|
|
157
|
+
if (mediaLines.length > 0) {
|
|
158
|
+
body = `${body.trimEnd()}\n\n## Media\n\n${mediaLines.join("\n")}\n`;
|
|
159
|
+
}
|
|
160
|
+
// Author the C1 header from flags + slice identity.
|
|
161
|
+
const header = {
|
|
162
|
+
slice: opts.sliceId ?? (typeof slice.id === "string" ? slice.id : undefined),
|
|
163
|
+
candidate_sha: opts.candidateSha,
|
|
164
|
+
artifact_type: opts.artifactType,
|
|
165
|
+
verdict: opts.verdict,
|
|
166
|
+
money_evidence: opts.moneyEvidence,
|
|
167
|
+
};
|
|
168
|
+
const evidences = opts.evidences
|
|
169
|
+
? opts.evidences.split(",").map((s) => s.trim()).filter(Boolean)
|
|
170
|
+
: undefined;
|
|
171
|
+
if (evidences && evidences.length > 0)
|
|
172
|
+
header.evidences = evidences;
|
|
173
|
+
if (opts.selfCheck)
|
|
174
|
+
header.self_check = opts.selfCheck;
|
|
175
|
+
// Validate the closed sets AT DROP TIME (while the evidence is
|
|
176
|
+
// in-hand) — the one REJECTING validation this path performs.
|
|
177
|
+
const validation = validateC1Header(header);
|
|
178
|
+
if (!validation.ok) {
|
|
179
|
+
const parts = [];
|
|
180
|
+
if (validation.missing.length > 0)
|
|
181
|
+
parts.push(`missing required C1 field(s): ${validation.missing.join(", ")}`);
|
|
182
|
+
for (const inv of validation.invalid) {
|
|
183
|
+
parts.push(`${inv.field}='${inv.value}' is not in the ratified closed set (${inv.allowed.join(" | ")})`);
|
|
184
|
+
}
|
|
185
|
+
throw new ScopeCliError({
|
|
186
|
+
fact: `C1 header invalid — ${parts.join("; ")}.`,
|
|
187
|
+
consequence: "The artifact was NOT dropped (post-hoc reconstruction is the failure mode this fights).",
|
|
188
|
+
action: "Provide the named fields with allowed values and re-run while the evidence is in-hand. Extending the closed sets is a pm-lead convention change (BR-4).",
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
// D2 — validate evidences refs against the slice's declared proof
|
|
192
|
+
// contract (unknown refs = a named WARN, never a rejection), and
|
|
193
|
+
// emit the coverage/self_check ADVISORY when a contract exists.
|
|
194
|
+
const prdPath = path.join(slice.absPath, "IMPLEMENTATION-PRD.md");
|
|
195
|
+
const contractItems = fs.existsSync(prdPath)
|
|
196
|
+
? parseProofContract(fs.readFileSync(prdPath, "utf8"))
|
|
197
|
+
: null;
|
|
198
|
+
let coveredItems = [];
|
|
199
|
+
if (contractItems && contractItems.length > 0) {
|
|
200
|
+
if (evidences && evidences.length > 0) {
|
|
201
|
+
for (const ref of evidences) {
|
|
202
|
+
const byIndex = /^\d+$/.test(ref) ? contractItems[Number.parseInt(ref, 10) - 1] : undefined;
|
|
203
|
+
const byText = contractItems.find((item) => item === ref);
|
|
204
|
+
const match = byText ?? byIndex;
|
|
205
|
+
if (match)
|
|
206
|
+
coveredItems.push(match);
|
|
207
|
+
else
|
|
208
|
+
warns.push(`evidences ref '${ref}' matches no declared proof-contract item (known items: ${contractItems.map((_, i) => i + 1).join(", ")} or exact text)`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
if (coveredItems.length === 0 || !header.self_check) {
|
|
212
|
+
const uncovered = contractItems.filter((item) => !coveredItems.includes(item));
|
|
213
|
+
const reasons = [];
|
|
214
|
+
if (coveredItems.length === 0)
|
|
215
|
+
reasons.push("this drop covers no declared contract item");
|
|
216
|
+
if (!header.self_check)
|
|
217
|
+
reasons.push("self_check attestation omitted");
|
|
218
|
+
advisories.push(`ADVISORY (D2, advise-never-block): ${reasons.join(" and ")}. ` +
|
|
219
|
+
`Uncovered contract item(s): ${uncovered.map((u) => `"${u}"`).join(", ")}. ` +
|
|
220
|
+
`The Packet-2 promised→delivered join will show these as MISSING (the ▲ insufficient-proof signal).`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
// FR-11 / C8 — the UX-slice video advisory (SHOULD/steer, exit 0,
|
|
224
|
+
// no configuration can make it blocking). Trigger: slice frontmatter
|
|
225
|
+
// ux-change: true (spec-time flag; never a qitem tag, never
|
|
226
|
+
// diff-inference). Satisfied when this drop is a video or the
|
|
227
|
+
// proof/ dir already holds one.
|
|
228
|
+
const uxChange = slice.frontmatter["ux-change"] === true;
|
|
229
|
+
if (uxChange) {
|
|
230
|
+
const proofDir = path.join(slice.absPath, "proof");
|
|
231
|
+
const existingVideo = fs.existsSync(proofDir)
|
|
232
|
+
&& fs.readdirSync(proofDir).some((f) => isVideoFile(f));
|
|
233
|
+
const droppingVideo = (opts.file ? isVideoFile(opts.file) : false) || mediaRefs.some((r) => isVideoFile(r));
|
|
234
|
+
if (!existingVideo && !droppingVideo) {
|
|
235
|
+
advisories.push("ADVISORY (C8, SHOULD/steer): this slice is UX-tagged (ux-change: true) and its proof set has no video. " +
|
|
236
|
+
"UX-change slices SHOULD produce screenshot + video together — capture a screencast via the agent-browser-screencast method " +
|
|
237
|
+
"and hold it to the money-shot-edit bar. This never blocks a drop.");
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// Write the artifact: YAML frontmatter + body into proof/.
|
|
241
|
+
const proofDir = path.join(slice.absPath, "proof");
|
|
242
|
+
const defaultName = `${opts.artifactType}-${opts.verdict}-${new Date().toISOString().replace(/[:.]/g, "-")}.md`;
|
|
243
|
+
const fileName = opts.name ?? (opts.file ? path.basename(opts.file) : defaultName);
|
|
244
|
+
// rev1-r2 BLOCKING fix (a7dedd93 review): --name is a FILENAME, never
|
|
245
|
+
// a path. Reject separators / dot-dot / absolute shapes BEFORE any
|
|
246
|
+
// filesystem effect, so the drop can only land inside proof/ (the
|
|
247
|
+
// FR-8 contract) — a traversal name like ../README.md must not reach
|
|
248
|
+
// slice control files.
|
|
249
|
+
if (fileName.includes("/") || fileName.includes("\\") || fileName.startsWith("..") || path.isAbsolute(fileName)) {
|
|
250
|
+
throw new ScopeCliError({
|
|
251
|
+
fact: `--name '${fileName}' is not a plain filename (path separators, '..', and absolute paths are rejected).`,
|
|
252
|
+
consequence: "The artifact was NOT dropped — proof drops land inside the slice proof/ dir only (FR-8).",
|
|
253
|
+
action: "Pass a bare filename like qa-clear.md; the drop path owns the directory.",
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
const target = path.resolve(proofDir, fileName);
|
|
257
|
+
// Defense-in-depth: even a name that slips the shape check must
|
|
258
|
+
// resolve INSIDE proof/ (same containment discipline as
|
|
259
|
+
// scope-approve's path-escape guard).
|
|
260
|
+
if (!target.startsWith(path.resolve(proofDir) + path.sep)) {
|
|
261
|
+
throw new ScopeCliError({
|
|
262
|
+
fact: `--name '${fileName}' resolves outside the slice proof/ dir.`,
|
|
263
|
+
consequence: "The artifact was NOT dropped.",
|
|
264
|
+
action: "Pass a bare filename; the drop path owns the directory.",
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
fs.mkdirSync(proofDir, { recursive: true });
|
|
268
|
+
const frontmatter = YAML.stringify(header).trimEnd();
|
|
269
|
+
fs.writeFileSync(target, `---\n${frontmatter}\n---\n\n${body}`, "utf8");
|
|
270
|
+
// Echo the parsed header — the seat sees what the composer will see.
|
|
271
|
+
const echo = {
|
|
272
|
+
dropped: path.relative(process.cwd(), target),
|
|
273
|
+
header: header,
|
|
274
|
+
contractItemsDeclared: contractItems?.length ?? 0,
|
|
275
|
+
contractItemsCovered: coveredItems,
|
|
276
|
+
mediaRefs,
|
|
277
|
+
warnings: warns,
|
|
278
|
+
advisories,
|
|
279
|
+
};
|
|
280
|
+
if (json) {
|
|
281
|
+
console.log(JSON.stringify(echo, null, 2));
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
console.log(`Dropped: ${echo.dropped}`);
|
|
285
|
+
console.log(`Parsed C1 header:\n${frontmatter}`);
|
|
286
|
+
if (contractItems)
|
|
287
|
+
console.log(`Proof contract: ${coveredItems.length}/${contractItems.length} item(s) covered by this drop.`);
|
|
288
|
+
for (const w of warns)
|
|
289
|
+
console.error(`warning: ${w}`);
|
|
290
|
+
for (const a of advisories)
|
|
291
|
+
console.error(a);
|
|
292
|
+
}
|
|
293
|
+
// Advisories + warns NEVER change the exit code (BR-7).
|
|
294
|
+
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
if (err instanceof ScopeCliError) {
|
|
297
|
+
if (json) {
|
|
298
|
+
console.log(JSON.stringify({ ok: false, error: { fact: err.fact, consequence: err.consequence, action: err.action } }, null, 2));
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
console.error(`${err.fact}\n${err.consequence}\n${err.action}`);
|
|
302
|
+
}
|
|
303
|
+
process.exitCode = 1;
|
|
304
|
+
return;
|
|
305
|
+
}
|
|
306
|
+
throw err;
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
return cmd;
|
|
310
|
+
}
|
|
311
|
+
//# sourceMappingURL=proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proof.js","sourceRoot":"","sources":["../../src/commands/proof.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/ps.d.ts
CHANGED
|
@@ -2,6 +2,27 @@ import { Command } from "commander";
|
|
|
2
2
|
import type { StatusDeps } from "./status.js";
|
|
3
3
|
import { loadHostRegistry } from "../host-registry.js";
|
|
4
4
|
import { runCrossHostCommand, type RunCrossHostCommandOpts } from "../cross-host-executor.js";
|
|
5
|
+
interface PsCliOptions {
|
|
6
|
+
json?: boolean;
|
|
7
|
+
nodes?: boolean;
|
|
8
|
+
full?: boolean;
|
|
9
|
+
verbose?: boolean;
|
|
10
|
+
limit?: string;
|
|
11
|
+
fields?: string;
|
|
12
|
+
summary?: boolean;
|
|
13
|
+
filter?: string;
|
|
14
|
+
host?: string;
|
|
15
|
+
allHosts?: boolean;
|
|
16
|
+
hosts?: string;
|
|
17
|
+
active?: boolean;
|
|
18
|
+
running?: boolean;
|
|
19
|
+
allRigs?: boolean;
|
|
20
|
+
rig?: string;
|
|
21
|
+
session?: string;
|
|
22
|
+
/** OPR.0.3.3.19 - include archived rigs (default excludes them). Parity
|
|
23
|
+
* with `rig stream list --include-archived`. */
|
|
24
|
+
includeArchived?: boolean;
|
|
25
|
+
}
|
|
5
26
|
export interface PsDeps extends StatusDeps {
|
|
6
27
|
/**
|
|
7
28
|
* Cross-host hooks. Both default to the production loaders/executors; tests
|
|
@@ -13,14 +34,27 @@ export interface PsDeps extends StatusDeps {
|
|
|
13
34
|
crossHostRun?: (host: Parameters<typeof runCrossHostCommand>[0], argv: readonly string[], opts?: RunCrossHostCommandOpts) => ReturnType<typeof runCrossHostCommand>;
|
|
14
35
|
}
|
|
15
36
|
/**
|
|
16
|
-
*
|
|
37
|
+
* OPR.0.4.4.21 FR-2/FR-3 — THE centralized disclosure-ladder validator.
|
|
38
|
+
* Runs BEFORE the local/HTTP-host/SSH/fan-out dispatch split so every path
|
|
39
|
+
* obeys one grammar (qa1 plan-review: remote mode bypassed the session-rig
|
|
40
|
+
* injection and fanned wide). Principle (arch-ratified): IMPLICIT SCOPE
|
|
41
|
+
* DEFAULTS DON'T CROSS HOST BOUNDARIES — the session-rig default has no
|
|
42
|
+
* stable referent on a remote host (a same-named rig there would silently
|
|
43
|
+
* misresolve), so remote per-node views are explicit-or-error.
|
|
44
|
+
* Returns the teaching error text, or null when the invocation is valid.
|
|
45
|
+
*/
|
|
46
|
+
export declare function validatePsLadder(opts: PsCliOptions, callerRig: string | undefined): string | null;
|
|
47
|
+
/**
|
|
48
|
+
* `rig ps` — the consolidated fleet map + explicit disclosure ladder.
|
|
17
49
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
50
|
+
* OPR.0.4.4.21: the default is ALL active rigs, one compact O(rigs) row each
|
|
51
|
+
* (the current-rig-only default is retired). The token-safety invariant: no
|
|
52
|
+
* invocation returns per-node detail across all rigs unless explicitly
|
|
53
|
+
* flagged (--nodes -A), and even then rows are projected unless --full.
|
|
54
|
+
* Default `rig ps --json` keeps the bare-array shape for back-compat; the
|
|
55
|
+
* truncation/envelope shape only applies when at least one of
|
|
56
|
+
* `--limit`/`--summary`/`--fields`/`--filter` is specified.
|
|
24
57
|
*/
|
|
25
58
|
export declare function psCommand(depsOverride?: PsDeps): Command;
|
|
59
|
+
export {};
|
|
26
60
|
//# sourceMappingURL=ps.d.ts.map
|
|
@@ -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,EAAsH,MAAM,qBAAqB,CAAC;AAC3K,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,EAAsH,MAAM,qBAAqB,CAAC;AAC3K,OAAO,EAAE,mBAAmB,EAAE,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAuL9F,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;qDACiD;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,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;AAwOD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CA4CjG;AA8HD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAyUxD"}
|