wicked-crew 0.7.40 → 0.7.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/audit.d.ts +3 -0
- package/dist/api/audit.d.ts.map +1 -1
- package/dist/api/audit.js +2 -0
- package/dist/api/audit.js.map +1 -1
- package/dist/api/capture.d.ts +149 -0
- package/dist/api/capture.d.ts.map +1 -0
- package/dist/api/capture.js +330 -0
- package/dist/api/capture.js.map +1 -0
- package/dist/api/chat-citations.d.ts +174 -0
- package/dist/api/chat-citations.d.ts.map +1 -0
- package/dist/api/chat-citations.js +528 -0
- package/dist/api/chat-citations.js.map +1 -0
- package/dist/api/chat-transcripts.d.ts +20 -1
- package/dist/api/chat-transcripts.d.ts.map +1 -1
- package/dist/api/chat-transcripts.js +29 -0
- package/dist/api/chat-transcripts.js.map +1 -1
- package/dist/api/delivery-cache.d.ts +2 -2
- package/dist/api/delivery-freeze.d.ts +66 -0
- package/dist/api/delivery-freeze.d.ts.map +1 -0
- package/dist/api/delivery-freeze.js +104 -0
- package/dist/api/delivery-freeze.js.map +1 -0
- package/dist/api/delivery-index.d.ts +53 -9
- package/dist/api/delivery-index.d.ts.map +1 -1
- package/dist/api/delivery-index.js +115 -22
- package/dist/api/delivery-index.js.map +1 -1
- package/dist/api/demo.d.ts +90 -0
- package/dist/api/demo.d.ts.map +1 -0
- package/dist/api/demo.js +492 -0
- package/dist/api/demo.js.map +1 -0
- package/dist/api/diagnostics.d.ts +64 -1
- package/dist/api/diagnostics.d.ts.map +1 -1
- package/dist/api/diagnostics.js +129 -1
- package/dist/api/diagnostics.js.map +1 -1
- package/dist/api/eval-sample.d.ts +6 -6
- package/dist/api/governance-steering.d.ts +2 -2
- package/dist/api/mcp.d.ts +282 -0
- package/dist/api/mcp.d.ts.map +1 -0
- package/dist/api/mcp.js +521 -0
- package/dist/api/mcp.js.map +1 -0
- package/dist/api/plan-schema.d.ts +56 -0
- package/dist/api/plan-schema.d.ts.map +1 -0
- package/dist/api/plan-schema.js +26 -0
- package/dist/api/plan-schema.js.map +1 -0
- package/dist/api/roster-standing.d.ts +15 -2
- package/dist/api/roster-standing.d.ts.map +1 -1
- package/dist/api/roster-standing.js +55 -3
- package/dist/api/roster-standing.js.map +1 -1
- package/dist/api/routes.d.ts +630 -51
- package/dist/api/routes.d.ts.map +1 -1
- package/dist/api/routes.js +738 -127
- package/dist/api/routes.js.map +1 -1
- package/dist/api/run-files.d.ts.map +1 -1
- package/dist/api/run-files.js +31 -2
- package/dist/api/run-files.js.map +1 -1
- package/dist/api/run-liveness.d.ts +41 -0
- package/dist/api/run-liveness.d.ts.map +1 -0
- package/dist/api/run-liveness.js +166 -0
- package/dist/api/run-liveness.js.map +1 -0
- package/dist/api/seat-health.d.ts.map +1 -1
- package/dist/api/seat-health.js +20 -4
- package/dist/api/seat-health.js.map +1 -1
- package/dist/api/seat-probe.d.ts +141 -0
- package/dist/api/seat-probe.d.ts.map +1 -0
- package/dist/api/seat-probe.js +257 -0
- package/dist/api/seat-probe.js.map +1 -0
- package/dist/api/seat-record.d.ts +40 -0
- package/dist/api/seat-record.d.ts.map +1 -0
- package/dist/api/seat-record.js +218 -0
- package/dist/api/seat-record.js.map +1 -0
- package/dist/api/seat-signin.d.ts.map +1 -1
- package/dist/api/seat-signin.js +3 -1
- package/dist/api/seat-signin.js.map +1 -1
- package/dist/api/seat-standing.d.ts +24 -4
- package/dist/api/seat-standing.d.ts.map +1 -1
- package/dist/api/seat-standing.js +50 -3
- package/dist/api/seat-standing.js.map +1 -1
- package/dist/api/server.d.ts +34 -48
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +283 -107
- package/dist/api/server.js.map +1 -1
- package/dist/api/skills.d.ts +3 -1
- package/dist/api/skills.d.ts.map +1 -1
- package/dist/api/skills.js +7 -2
- package/dist/api/skills.js.map +1 -1
- package/dist/api/stall-watchdog.d.ts +34 -3
- package/dist/api/stall-watchdog.d.ts.map +1 -1
- package/dist/api/stall-watchdog.js +107 -8
- package/dist/api/stall-watchdog.js.map +1 -1
- package/dist/api/steering-landing.d.ts +6 -6
- package/dist/api/steering-landing.d.ts.map +1 -1
- package/dist/api/steering-landing.js +7 -9
- package/dist/api/steering-landing.js.map +1 -1
- package/dist/api/testing.d.ts +6 -4
- package/dist/api/testing.d.ts.map +1 -1
- package/dist/api/testing.js +82 -47
- package/dist/api/testing.js.map +1 -1
- package/dist/campaign/boot-resume.d.ts +34 -0
- package/dist/campaign/boot-resume.d.ts.map +1 -0
- package/dist/campaign/boot-resume.js +45 -0
- package/dist/campaign/boot-resume.js.map +1 -0
- package/dist/campaigns/rollup.d.ts +4 -1
- package/dist/campaigns/rollup.d.ts.map +1 -1
- package/dist/campaigns/rollup.js +6 -1
- package/dist/campaigns/rollup.js.map +1 -1
- package/dist/campaigns/routes.d.ts +2 -2
- package/dist/cli/bearer.d.ts +27 -1
- package/dist/cli/bearer.d.ts.map +1 -1
- package/dist/cli/bearer.js +62 -2
- package/dist/cli/bearer.js.map +1 -1
- package/dist/cli/governance.d.ts +11 -0
- package/dist/cli/governance.d.ts.map +1 -1
- package/dist/cli/governance.js +8 -2
- package/dist/cli/governance.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +140 -75
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/mcp.d.ts +11 -0
- package/dist/cli/mcp.d.ts.map +1 -1
- package/dist/cli/mcp.js +40 -9
- package/dist/cli/mcp.js.map +1 -1
- package/dist/cli/service.d.ts +78 -0
- package/dist/cli/service.d.ts.map +1 -0
- package/dist/cli/service.js +334 -0
- package/dist/cli/service.js.map +1 -0
- package/dist/core/adapter.d.ts +238 -12
- package/dist/core/adapter.d.ts.map +1 -1
- package/dist/core/adapter.js +619 -157
- package/dist/core/adapter.js.map +1 -1
- package/dist/core/bridge-reaper.d.ts +4 -1
- package/dist/core/bridge-reaper.d.ts.map +1 -1
- package/dist/core/bridge-reaper.js +15 -1
- package/dist/core/bridge-reaper.js.map +1 -1
- package/dist/core/bus-notice.d.ts +27 -0
- package/dist/core/bus-notice.d.ts.map +1 -0
- package/dist/core/bus-notice.js +24 -0
- package/dist/core/bus-notice.js.map +1 -0
- package/dist/core/bus.d.ts +99 -0
- package/dist/core/bus.d.ts.map +1 -0
- package/dist/core/bus.js +176 -0
- package/dist/core/bus.js.map +1 -0
- package/dist/core/deliver-exclusions.d.ts +71 -0
- package/dist/core/deliver-exclusions.d.ts.map +1 -0
- package/dist/core/deliver-exclusions.js +110 -0
- package/dist/core/deliver-exclusions.js.map +1 -0
- package/dist/core/deliver-text.d.ts +61 -14
- package/dist/core/deliver-text.d.ts.map +1 -1
- package/dist/core/deliver-text.js +178 -30
- package/dist/core/deliver-text.js.map +1 -1
- package/dist/core/deliver-triage.d.ts +11 -2
- package/dist/core/deliver-triage.d.ts.map +1 -1
- package/dist/core/deliver-triage.js +19 -1
- package/dist/core/deliver-triage.js.map +1 -1
- package/dist/core/deliver.d.ts +161 -3
- package/dist/core/deliver.d.ts.map +1 -1
- package/dist/core/deliver.js +463 -25
- package/dist/core/deliver.js.map +1 -1
- package/dist/core/deliverable-floor.d.ts.map +1 -1
- package/dist/core/deliverable-floor.js +5 -7
- package/dist/core/deliverable-floor.js.map +1 -1
- package/dist/core/engine-bus.d.ts +40 -0
- package/dist/core/engine-bus.d.ts.map +1 -0
- package/dist/core/engine-bus.js +27 -0
- package/dist/core/engine-bus.js.map +1 -0
- package/dist/core/estate-mcp-client.d.ts +87 -5
- package/dist/core/estate-mcp-client.d.ts.map +1 -1
- package/dist/core/estate-mcp-client.js +90 -11
- package/dist/core/estate-mcp-client.js.map +1 -1
- package/dist/core/linked-issues.d.ts +46 -0
- package/dist/core/linked-issues.d.ts.map +1 -0
- package/dist/core/linked-issues.js +123 -0
- package/dist/core/linked-issues.js.map +1 -0
- package/dist/core/run-identity.d.ts +100 -0
- package/dist/core/run-identity.d.ts.map +1 -0
- package/dist/core/run-identity.js +178 -0
- package/dist/core/run-identity.js.map +1 -0
- package/dist/core/shutdown.d.ts +16 -0
- package/dist/core/shutdown.d.ts.map +1 -0
- package/dist/core/shutdown.js +39 -0
- package/dist/core/shutdown.js.map +1 -0
- package/dist/core/types.d.ts +15 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +4 -0
- package/dist/core/types.js.map +1 -1
- package/dist/interactive/bridge-pool.d.ts +67 -3
- package/dist/interactive/bridge-pool.d.ts.map +1 -1
- package/dist/interactive/bridge-pool.js +129 -13
- package/dist/interactive/bridge-pool.js.map +1 -1
- package/dist/interactive/bridge-root.d.ts +9 -0
- package/dist/interactive/bridge-root.d.ts.map +1 -1
- package/dist/interactive/bridge-root.js +11 -4
- package/dist/interactive/bridge-root.js.map +1 -1
- package/dist/interactive/chat-events.d.ts +14 -9
- package/dist/interactive/chat-events.d.ts.map +1 -1
- package/dist/interactive/chat-events.js +55 -57
- package/dist/interactive/chat-events.js.map +1 -1
- package/dist/interactive/council-outcome.d.ts +1 -0
- package/dist/interactive/council-outcome.d.ts.map +1 -1
- package/dist/interactive/council-outcome.js +33 -0
- package/dist/interactive/council-outcome.js.map +1 -1
- package/dist/interactive/draft-events.d.ts +36 -17
- package/dist/interactive/draft-events.d.ts.map +1 -1
- package/dist/interactive/draft-events.js +121 -92
- package/dist/interactive/draft-events.js.map +1 -1
- package/dist/interactive/draft-skill.d.ts +59 -0
- package/dist/interactive/draft-skill.d.ts.map +1 -1
- package/dist/interactive/draft-skill.js +233 -0
- package/dist/interactive/draft-skill.js.map +1 -1
- package/dist/interactive/edit-events.d.ts +1 -14
- package/dist/interactive/edit-events.d.ts.map +1 -1
- package/dist/interactive/edit-events.js +37 -70
- package/dist/interactive/edit-events.js.map +1 -1
- package/dist/interactive/proxy-routes.d.ts +2 -2
- package/dist/interactive/proxy-routes.d.ts.map +1 -1
- package/dist/interactive/proxy-routes.js +4 -13
- package/dist/interactive/proxy-routes.js.map +1 -1
- package/dist/interactive/ws-relay.d.ts +9 -10
- package/dist/interactive/ws-relay.d.ts.map +1 -1
- package/dist/interactive/ws-relay.js +23 -50
- package/dist/interactive/ws-relay.js.map +1 -1
- package/dist/mcp/broker.d.ts +88 -0
- package/dist/mcp/broker.d.ts.map +1 -0
- package/dist/mcp/broker.js +307 -0
- package/dist/mcp/broker.js.map +1 -0
- package/dist/mcp/call-records.d.ts +61 -0
- package/dist/mcp/call-records.d.ts.map +1 -0
- package/dist/mcp/call-records.js +135 -0
- package/dist/mcp/call-records.js.map +1 -0
- package/dist/mcp/classify.d.ts +45 -0
- package/dist/mcp/classify.d.ts.map +1 -0
- package/dist/mcp/classify.js +83 -0
- package/dist/mcp/classify.js.map +1 -0
- package/dist/mcp/discovery.d.ts +24 -0
- package/dist/mcp/discovery.d.ts.map +1 -0
- package/dist/mcp/discovery.js +78 -0
- package/dist/mcp/discovery.js.map +1 -0
- package/dist/mcp/invoke.d.ts +36 -0
- package/dist/mcp/invoke.d.ts.map +1 -0
- package/dist/mcp/invoke.js +80 -0
- package/dist/mcp/invoke.js.map +1 -0
- package/dist/mcp/policies.d.ts +110 -0
- package/dist/mcp/policies.d.ts.map +1 -0
- package/dist/mcp/policies.js +400 -0
- package/dist/mcp/policies.js.map +1 -0
- package/dist/mcp/probe.d.ts +66 -0
- package/dist/mcp/probe.d.ts.map +1 -0
- package/dist/mcp/probe.js +116 -0
- package/dist/mcp/probe.js.map +1 -0
- package/dist/mcp/redact.d.ts +34 -0
- package/dist/mcp/redact.d.ts.map +1 -0
- package/dist/mcp/redact.js +84 -0
- package/dist/mcp/redact.js.map +1 -0
- package/dist/mcp/registry-store.d.ts +69 -0
- package/dist/mcp/registry-store.d.ts.map +1 -0
- package/dist/mcp/registry-store.js +82 -0
- package/dist/mcp/registry-store.js.map +1 -0
- package/dist/mcp/registry.d.ts +147 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +509 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/rest.d.ts +111 -0
- package/dist/mcp/rest.d.ts.map +1 -0
- package/dist/mcp/rest.js +606 -0
- package/dist/mcp/rest.js.map +1 -0
- package/dist/mcp/secrets.d.ts +66 -0
- package/dist/mcp/secrets.d.ts.map +1 -0
- package/dist/mcp/secrets.js +180 -0
- package/dist/mcp/secrets.js.map +1 -0
- package/dist/mcp/tool-list.d.ts +25 -0
- package/dist/mcp/tool-list.d.ts.map +1 -0
- package/dist/mcp/tool-list.js +62 -0
- package/dist/mcp/tool-list.js.map +1 -0
- package/dist/mcp/upstream-error.d.ts +12 -0
- package/dist/mcp/upstream-error.d.ts.map +1 -0
- package/dist/mcp/upstream-error.js +14 -0
- package/dist/mcp/upstream-error.js.map +1 -0
- package/dist/mcp/usage.d.ts +31 -0
- package/dist/mcp/usage.d.ts.map +1 -0
- package/dist/mcp/usage.js +159 -0
- package/dist/mcp/usage.js.map +1 -0
- package/dist/presets/routes.d.ts +53 -0
- package/dist/presets/routes.d.ts.map +1 -0
- package/dist/presets/routes.js +115 -0
- package/dist/presets/routes.js.map +1 -0
- package/dist/projects/activity.d.ts +6 -18
- package/dist/projects/activity.d.ts.map +1 -1
- package/dist/projects/activity.js +17 -60
- package/dist/projects/activity.js.map +1 -1
- package/dist/projects/events.d.ts +6 -5
- package/dist/projects/events.d.ts.map +1 -1
- package/dist/projects/events.js +33 -58
- package/dist/projects/events.js.map +1 -1
- package/dist/projects/routes.d.ts.map +1 -1
- package/dist/projects/routes.js +19 -0
- package/dist/projects/routes.js.map +1 -1
- package/dist/projects/state-home-preflight.d.ts.map +1 -1
- package/dist/projects/state-home-preflight.js +7 -0
- package/dist/projects/state-home-preflight.js.map +1 -1
- package/dist/projects/state-home-registry.d.ts.map +1 -1
- package/dist/projects/state-home-registry.js +9 -1
- package/dist/projects/state-home-registry.js.map +1 -1
- package/dist/qe/acceptance.d.ts +28 -28
- package/dist/qe/acceptance.d.ts.map +1 -1
- package/dist/qe/acceptance.js +60 -61
- package/dist/qe/acceptance.js.map +1 -1
- package/dist/qe/test-sets.d.ts +3 -5
- package/dist/qe/test-sets.d.ts.map +1 -1
- package/dist/qe/test-sets.js +5 -7
- package/dist/qe/test-sets.js.map +1 -1
- package/dist/skills/installed.d.ts +51 -0
- package/dist/skills/installed.d.ts.map +1 -0
- package/dist/skills/installed.js +46 -0
- package/dist/skills/installed.js.map +1 -0
- package/dist/standing-orders/evaluator.d.ts +113 -0
- package/dist/standing-orders/evaluator.d.ts.map +1 -0
- package/dist/standing-orders/evaluator.js +225 -0
- package/dist/standing-orders/evaluator.js.map +1 -0
- package/dist/standing-orders/history.d.ts +58 -0
- package/dist/standing-orders/history.d.ts.map +1 -0
- package/dist/standing-orders/history.js +117 -0
- package/dist/standing-orders/history.js.map +1 -0
- package/dist/standing-orders/parse.d.ts +19 -0
- package/dist/standing-orders/parse.d.ts.map +1 -0
- package/dist/standing-orders/parse.js +75 -0
- package/dist/standing-orders/parse.js.map +1 -0
- package/dist/standing-orders/routes.d.ts +180 -0
- package/dist/standing-orders/routes.d.ts.map +1 -0
- package/dist/standing-orders/routes.js +95 -0
- package/dist/standing-orders/routes.js.map +1 -0
- package/dist/standing-orders/store.d.ts +154 -0
- package/dist/standing-orders/store.d.ts.map +1 -0
- package/dist/standing-orders/store.js +189 -0
- package/dist/standing-orders/store.js.map +1 -0
- package/dist/studio/assets/index-CvV5qITf.css +32 -0
- package/dist/studio/assets/index-jCOy6Ns7.js +568 -0
- package/dist/studio/index.html +3 -3
- package/dist/studio/testid-inventory.json +3274 -894
- package/dist/team/key.d.ts +5 -0
- package/dist/team/key.d.ts.map +1 -0
- package/dist/team/key.js +21 -0
- package/dist/team/key.js.map +1 -0
- package/dist/team/routes.d.ts +196 -0
- package/dist/team/routes.d.ts.map +1 -0
- package/dist/team/routes.js +274 -0
- package/dist/team/routes.js.map +1 -0
- package/dist/team/ws-relay.d.ts +39 -0
- package/dist/team/ws-relay.d.ts.map +1 -0
- package/dist/team/ws-relay.js +63 -0
- package/dist/team/ws-relay.js.map +1 -0
- package/endpoint-manifest.json +502 -6
- package/package.json +6 -6
- package/dist/interactive/demo-events.d.ts +0 -367
- package/dist/interactive/demo-events.d.ts.map +0 -1
- package/dist/interactive/demo-events.js +0 -1293
- package/dist/interactive/demo-events.js.map +0 -1
- package/dist/qe/gate-events.d.ts +0 -113
- package/dist/qe/gate-events.d.ts.map +0 -1
- package/dist/qe/gate-events.js +0 -172
- package/dist/qe/gate-events.js.map +0 -1
- package/dist/studio/assets/index-Bg7Z3BR-.css +0 -32
- package/dist/studio/assets/index-BvOFMjf9.js +0 -554
package/dist/qe/acceptance.js
CHANGED
|
@@ -43,10 +43,9 @@
|
|
|
43
43
|
* GATE decision collapses (everything not PASS denies), and each denial keeps
|
|
44
44
|
* its own reason.
|
|
45
45
|
*/
|
|
46
|
-
import { VERDICT_VALUES } from 'wicked-ledger';
|
|
46
|
+
import { VERDICT_VALUES } from 'wicked-ledger/manifest';
|
|
47
|
+
import { runIdentityOf, runWorkflowDef } from '../core/run-identity.js';
|
|
47
48
|
import { basename } from 'node:path';
|
|
48
|
-
import { DELIVER_PHASE_ID } from '../core/deliver.js';
|
|
49
|
-
import { DELIVERABLE_FLOOR_PHASE_ID } from '../core/deliverable-floor.js';
|
|
50
49
|
import { describeAttribution, readAcceptanceState, summarizeManifest } from './ledger.js';
|
|
51
50
|
import { resolveConformance } from './conformance.js';
|
|
52
51
|
/**
|
|
@@ -71,51 +70,57 @@ export function acceptancePhaseIds(workflow) {
|
|
|
71
70
|
return [];
|
|
72
71
|
return workflow.phases.filter((p) => p.verified_evidence === true).map((p) => p.id);
|
|
73
72
|
}
|
|
73
|
+
/** The unit's phase id — the `<run>:<phase>` suffix. */
|
|
74
|
+
function unitPhaseId(unitId) {
|
|
75
|
+
const at = unitId.indexOf(':');
|
|
76
|
+
return at >= 0 ? unitId.slice(at + 1) : unitId;
|
|
77
|
+
}
|
|
74
78
|
/**
|
|
75
|
-
* Resolve
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
* `sessionsDetail()` patches it back to the definition name by matching phase
|
|
79
|
-
* sequences — against BUILT-INS only, so a run of a user-registered workflow
|
|
80
|
-
* still carries the instance id here. The acceptance requirement lives on the
|
|
81
|
-
* DEFINITION, so this falls back to the same phase-sequence match over the
|
|
82
|
-
* full registry (built-ins + user workflows). Free-text runs are excluded by
|
|
83
|
-
* construction: their planned units are `u1`, `u2`, … — not phase ids — and
|
|
84
|
-
* they declare nothing.
|
|
85
|
-
*
|
|
86
|
-
* PER-RUN COMPOSITION (crew#293/#311, default-on since crew#393): a launch can append run-scoped
|
|
87
|
-
* phases the definition never had — the deliverable floor, then the deliver phase — so a
|
|
88
|
-
* delivered run's unit sequence is `<def's phases…, [verify-deliverables,] [deliver]>`. When the
|
|
89
|
-
* exact sequence matches nothing, the trailing appendages are stripped (in reverse composition
|
|
90
|
-
* order) and the match retried: the acceptance requirement lives on the DEFINITION, and a run
|
|
91
|
-
* must not lose its gate because it also delivered. A def that carries its own `deliver` phase
|
|
92
|
-
* (an operator overlay) still wins the EXACT match first, so stripping never mistakes a declared
|
|
93
|
-
* phase for an appendage.
|
|
79
|
+
* Resolve {@link AcceptanceRequirement} for a run. `verifiedCatalog` is the set of catalog ids whose
|
|
80
|
+
* entry declares `verified_evidence` (`null`: the engine's catalog does not say — fail closed for a
|
|
81
|
+
* plan run). Pure.
|
|
94
82
|
*/
|
|
95
|
-
export function
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const phases = [...run.units]
|
|
102
|
-
.sort((a, b) => a.ord - b.ord)
|
|
103
|
-
.map((u) => {
|
|
104
|
-
const colonIdx = u.id.indexOf(':');
|
|
105
|
-
return colonIdx >= 0 ? u.id.slice(colonIdx + 1) : '';
|
|
83
|
+
export function acceptanceRequirementOf(view, workflows, verifiedCatalog) {
|
|
84
|
+
const identity = runIdentityOf(view);
|
|
85
|
+
const closed = (why) => ({
|
|
86
|
+
declared: true,
|
|
87
|
+
phases: [],
|
|
88
|
+
failClosed: `${why} (unknown ⇒ deny)`,
|
|
106
89
|
});
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
90
|
+
switch (identity.kind) {
|
|
91
|
+
case 'unknown':
|
|
92
|
+
return closed("the run's identity is unknown — the daemon has no record of what its launch named, so its acceptance requirement cannot be read");
|
|
93
|
+
case 'free_text':
|
|
94
|
+
return { declared: false, phases: [] };
|
|
95
|
+
case 'workflow': {
|
|
96
|
+
const def = runWorkflowDef(view, workflows);
|
|
97
|
+
if (def === null) {
|
|
98
|
+
return closed(`the run's workflow \`${identity.name ?? '?'}\` is not registered, so its acceptance requirement cannot be read`);
|
|
99
|
+
}
|
|
100
|
+
const phases = acceptancePhaseIds(def);
|
|
101
|
+
return { declared: phases.length > 0, phases };
|
|
102
|
+
}
|
|
103
|
+
case 'preset':
|
|
104
|
+
case 'user_plan': {
|
|
105
|
+
// X1 (wicked-core#633): while the PA scopes a plan that declared no `touch`, the run's only
|
|
106
|
+
// unit is the read-only `pa-scope` step — what it will contain is not decided yet, so reading
|
|
107
|
+
// its units now would declare no requirement (fail OPEN).
|
|
108
|
+
if (view.session.team_plan?.scope != null) {
|
|
109
|
+
return closed("the run's plan is still being scoped by its PA, so its steps are not decided yet");
|
|
110
|
+
}
|
|
111
|
+
const units = [...(view.units ?? [])].sort((a, b) => a.ord - b.ord);
|
|
112
|
+
if (units.length === 0)
|
|
113
|
+
return closed("the run's plan has no planned steps yet");
|
|
114
|
+
if (units.some((u) => typeof u.catalog !== 'string' || u.catalog === '')) {
|
|
115
|
+
return closed("the run's steps do not all carry a catalog id, so which of them re-verify evidence cannot be read");
|
|
116
|
+
}
|
|
117
|
+
if (verifiedCatalog === null) {
|
|
118
|
+
return closed("the engine's phase catalog does not say which entries declare verified evidence (an engine before `CatalogEntry.verified_evidence`)");
|
|
119
|
+
}
|
|
120
|
+
const phases = units.filter((u) => verifiedCatalog.has(u.catalog)).map((u) => unitPhaseId(u.id));
|
|
121
|
+
return { declared: phases.length > 0, phases };
|
|
122
|
+
}
|
|
123
|
+
}
|
|
119
124
|
}
|
|
120
125
|
/** Narrow an arbitrary string from the store to the ledger's verdict enum. */
|
|
121
126
|
function asVerdict(value) {
|
|
@@ -129,11 +134,15 @@ function asVerdict(value) {
|
|
|
129
134
|
* that cannot be LOCATED is indistinguishable from evidence that does not
|
|
130
135
|
* exist, and neither satisfies a gate.
|
|
131
136
|
*/
|
|
132
|
-
export function resolveAcceptanceGate(required, state) {
|
|
137
|
+
export function resolveAcceptanceGate(required, state, failClosed) {
|
|
133
138
|
const verdictValue = state?.verdict?.verdict ?? null;
|
|
134
139
|
const verdict = verdictValue !== null ? asVerdict(verdictValue) : null;
|
|
135
140
|
const runStatus = verdict !== null ? (VERDICT_TO_STATUS[verdict] ?? 'inconclusive') : null;
|
|
136
|
-
const base = { required, verdict, runStatus };
|
|
141
|
+
const base = { required: required || failClosed !== undefined, verdict, runStatus };
|
|
142
|
+
if (failClosed !== undefined) {
|
|
143
|
+
// The requirement itself could not be read: deny, naming why — never a vacuous pass.
|
|
144
|
+
return { ...base, satisfied: false, reason: failClosed };
|
|
145
|
+
}
|
|
137
146
|
if (!required) {
|
|
138
147
|
// Vacuous, and labeled as such: nothing was required, so nothing is held.
|
|
139
148
|
// NOT a statement that evidence exists — the acceptance body says what was found.
|
|
@@ -333,12 +342,11 @@ export function runWindowFromEvents(events, runId, unreadable) {
|
|
|
333
342
|
/**
|
|
334
343
|
* Assemble the acceptance view for one crew run: read the run's event log,
|
|
335
344
|
* read the ledger SCOPED TO THIS RUN (a read-only canonical-JSON read — the
|
|
336
|
-
*
|
|
337
|
-
* matching bus event when the opt-in subscription has seen one.
|
|
345
|
+
* read that needs no bus) and resolve the gate.
|
|
338
346
|
*/
|
|
339
347
|
export async function buildAcceptanceView(opts) {
|
|
340
|
-
const phases =
|
|
341
|
-
const required =
|
|
348
|
+
const { phases, failClosed } = opts.requirement;
|
|
349
|
+
const required = opts.requirement.declared;
|
|
342
350
|
// The run's durable event log, read FIRST: it is both the conformance section's enforcement
|
|
343
351
|
// record and the ledger read's linkage — a verdict is this run's only if its QE run falls inside
|
|
344
352
|
// the lifetime the log records (or the writer stamped the run id). An unreadable or absent log
|
|
@@ -358,7 +366,7 @@ export async function buildAcceptanceView(opts) {
|
|
|
358
366
|
? { qeRunId: opts.qeRunId }
|
|
359
367
|
: { run: runWindowFromEvents(eventRows, opts.runId, eventsError) };
|
|
360
368
|
const state = opts.repo !== null ? await readAcceptanceState(opts.repo.root_path, subject) : null;
|
|
361
|
-
const gate = resolveAcceptanceGate(required, state);
|
|
369
|
+
const gate = resolveAcceptanceGate(required, state, failClosed);
|
|
362
370
|
// The conformance half. Loader failures are NAMED, not flattened into an empty list — the
|
|
363
371
|
// section's own resolution turns "unreadable" into "not claimed clean" (deny-dominates).
|
|
364
372
|
let claimRows = null;
|
|
@@ -380,14 +388,6 @@ export async function buildAcceptanceView(opts) {
|
|
|
380
388
|
...(claimsError !== undefined ? { claimsError } : {}),
|
|
381
389
|
events: eventRows,
|
|
382
390
|
});
|
|
383
|
-
// Freshness signal only — the ledger stays the system of record for the
|
|
384
|
-
// gate. Keyed by the QE run id when the ledger named one, else by context
|
|
385
|
-
// (the gate emitter's `context` is the QE project id).
|
|
386
|
-
const busEvent = (state?.verdict !== null && state?.verdict !== undefined
|
|
387
|
-
? opts.gateEvents.forRun(state.verdict.run_id)
|
|
388
|
-
: undefined) ??
|
|
389
|
-
(state?.run != null ? opts.gateEvents.forContext(state.run.project_id) : undefined) ??
|
|
390
|
-
null;
|
|
391
391
|
return {
|
|
392
392
|
runId: opts.runId,
|
|
393
393
|
repo: opts.repo !== null
|
|
@@ -430,7 +430,6 @@ export async function buildAcceptanceView(opts) {
|
|
|
430
430
|
: null,
|
|
431
431
|
gate,
|
|
432
432
|
conformance,
|
|
433
|
-
busEvent,
|
|
434
433
|
};
|
|
435
434
|
}
|
|
436
435
|
//# sourceMappingURL=acceptance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acceptance.js","sourceRoot":"","sources":["../../src/qe/acceptance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acceptance.js","sourceRoot":"","sources":["../../src/qe/acceptance.ts"],"names":[],"mappings":"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"}
|
package/dist/qe/test-sets.d.ts
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* `null` report.
|
|
25
25
|
*/
|
|
26
26
|
import type { CoreAdapter } from '../core/adapter.js';
|
|
27
|
-
import type { Actor, AuditEntry, SessionView
|
|
27
|
+
import type { Actor, AuditEntry, SessionView } from '../core/types.js';
|
|
28
28
|
import type { AuditLog } from '../api/audit.js';
|
|
29
29
|
import { QE_AUTHOR_TESTS_WORKFLOW, type QeVerifyReport } from './author-workflow.js';
|
|
30
30
|
/** The audit action a registration writes — the durable record the index hydrates from. */
|
|
@@ -85,16 +85,14 @@ export interface RegisterTestSetDeps {
|
|
|
85
85
|
adapter: Pick<CoreAdapter, 'sessionsDetail' | 'workOutput' | 'listRepos'>;
|
|
86
86
|
audit: AuditLog;
|
|
87
87
|
index: TestSetIndex;
|
|
88
|
-
/** The registry the run's workflow is resolved against (`adapter.listWorkflows()`). */
|
|
89
|
-
workflows: () => WorkflowDef[];
|
|
90
88
|
/** The delivered PR URL for a run, when one is recorded (`DeliveryIndex.urlFor`). */
|
|
91
89
|
deliveryUrlFor?: (runId: string) => string | undefined;
|
|
92
90
|
/** The launch-time label group, when one was filed (`GroupIndex.attachOf`). */
|
|
93
91
|
labelFor?: (runId: string) => string | undefined;
|
|
94
92
|
log?: (msg: string) => void;
|
|
95
93
|
}
|
|
96
|
-
/** Whether this run IS a `qe-author-tests` run
|
|
97
|
-
export declare function isQeAuthorRun(run: SessionView
|
|
94
|
+
/** Whether this run IS a `qe-author-tests` run — by its recorded name (`runNameOf`, seam X2). */
|
|
95
|
+
export declare function isQeAuthorRun(run: SessionView): boolean;
|
|
98
96
|
/** Build the record from the run view + the verify report (pure — tests drive it directly). */
|
|
99
97
|
export declare function buildTestSet(view: SessionView, report: QeVerifyReport | null, extra: {
|
|
100
98
|
registeredAt: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-sets.d.ts","sourceRoot":"","sources":["../../src/qe/test-sets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"test-sets.d.ts","sourceRoot":"","sources":["../../src/qe/test-sets.ts"],"names":[],"mappings":"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"}
|
package/dist/qe/test-sets.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* `null` report.
|
|
25
25
|
*/
|
|
26
26
|
import { coreUnitId } from '../api/evidence.js';
|
|
27
|
-
import {
|
|
27
|
+
import { runNameOf } from '../core/run-identity.js';
|
|
28
28
|
import { QE_AUTHOR_TESTS_WORKFLOW, QE_VERIFY_PHASE_ID, parseQeVerifyOutput, } from './author-workflow.js';
|
|
29
29
|
/** The audit action a registration writes — the durable record the index hydrates from. */
|
|
30
30
|
export const TEST_SET_REGISTERED_ACTION = 'testing.testset.registered';
|
|
@@ -75,11 +75,9 @@ export function qeTestsGroupLabel(repoName) {
|
|
|
75
75
|
const safe = (repoName ?? '').replace(/[^a-zA-Z0-9._-]+/g, '-').replace(/^-+|-+$/g, '').slice(0, 60);
|
|
76
76
|
return safe === '' ? 'qe-tests' : `qe-tests-${safe}`;
|
|
77
77
|
}
|
|
78
|
-
/** Whether this run IS a `qe-author-tests` run
|
|
79
|
-
export function isQeAuthorRun(run
|
|
80
|
-
|
|
81
|
-
return false;
|
|
82
|
-
return resolveRunWorkflow(run, workflows)?.id === QE_AUTHOR_TESTS_WORKFLOW;
|
|
78
|
+
/** Whether this run IS a `qe-author-tests` run — by its recorded name (`runNameOf`, seam X2). */
|
|
79
|
+
export function isQeAuthorRun(run) {
|
|
80
|
+
return runNameOf(run) === QE_AUTHOR_TESTS_WORKFLOW;
|
|
83
81
|
}
|
|
84
82
|
/** Build the record from the run view + the verify report (pure — tests drive it directly). */
|
|
85
83
|
export function buildTestSet(view, report, extra) {
|
|
@@ -130,7 +128,7 @@ export async function registerTestSetForRun(deps, runId) {
|
|
|
130
128
|
const view = views.find((v) => v.session.id === runId);
|
|
131
129
|
if (view === undefined)
|
|
132
130
|
return null;
|
|
133
|
-
if (!isQeAuthorRun(view
|
|
131
|
+
if (!isQeAuthorRun(view))
|
|
134
132
|
return null;
|
|
135
133
|
const verify = view.units.find((u) => u.id.endsWith(`:${QE_VERIFY_PHASE_ID}`));
|
|
136
134
|
let report = null;
|
package/dist/qe/test-sets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-sets.js","sourceRoot":"","sources":["../../src/qe/test-sets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"test-sets.js","sourceRoot":"","sources":["../../src/qe/test-sets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The LIVE installed wicked-garden plugin, as the catalog reports it (wicked-studio#388).
|
|
3
|
+
*
|
|
4
|
+
* The daemon-owned root holds a BASELINE — a content-addressed copy of the plugin as it was when
|
|
5
|
+
* `refresh-baseline` last captured it — and publishes immutable snapshots from it. Nothing said
|
|
6
|
+
* whether the plugin ON DISK had moved since. In the MCP S8 dogfood the published snapshot was
|
|
7
|
+
* generation 5, captured before wicked-garden#1192 added `scripts/mcp/shim.py`, so the first
|
|
8
|
+
* governed run failed with `scripts/mcp/shim.py: not found under the plugin root
|
|
9
|
+
* …/snapshots/000005`. The remedy (Refresh baseline → Publish) worked, but nothing on the page had
|
|
10
|
+
* told the operator the root was behind their install — and every MCP call a worker makes goes
|
|
11
|
+
* through that shim.
|
|
12
|
+
*
|
|
13
|
+
* The comparison is the CONTENT HASH, the same identity `refresh-baseline` decides on
|
|
14
|
+
* (`hashFileSet` over the dependency closure). Not the version string: two installs of one version
|
|
15
|
+
* with different bytes are two baselines, and a checkout that moved without a version bump is the
|
|
16
|
+
* dogfood's exact case. The cost is one bundle read, on a route studio calls when the page loads.
|
|
17
|
+
*/
|
|
18
|
+
import { type FileRecord } from './tree.js';
|
|
19
|
+
import { type PluginSource } from './plugin-source.js';
|
|
20
|
+
import type { SkillSourceKind } from '../core/types.js';
|
|
21
|
+
/** What `GET /skills` reports about the installed plugin (`SkillsManifestResponse.installed`). */
|
|
22
|
+
export interface InstalledPluginState {
|
|
23
|
+
source: {
|
|
24
|
+
kind: SkillSourceKind;
|
|
25
|
+
path: string;
|
|
26
|
+
plugin_version: string;
|
|
27
|
+
};
|
|
28
|
+
/** HEAD sha for a `checkout` source; `null` otherwise (or when git could not answer). */
|
|
29
|
+
git_sha: string | null;
|
|
30
|
+
/**
|
|
31
|
+
* The content hash of the installed bundle — comparable with `SkillManifest.baseline`. `null`
|
|
32
|
+
* when the bundle could not be read, and then `unreadable` says why: a comparison crew could not
|
|
33
|
+
* make is stated, never reported as agreement.
|
|
34
|
+
*/
|
|
35
|
+
baseline: string | null;
|
|
36
|
+
unreadable: string | null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The installed plugin's identity, or `null` when no plugin is installed at all (the unseeded case
|
|
40
|
+
* the catalog's own 503 already covers). `discover` / `bundle` / `hash` are injectable so a test
|
|
41
|
+
* never reads the developer's own config dir.
|
|
42
|
+
*/
|
|
43
|
+
export declare function installedPluginState(opts?: {
|
|
44
|
+
discover?: () => PluginSource | null;
|
|
45
|
+
bundle?: (root: string) => FileRecord[];
|
|
46
|
+
hash?: (files: FileRecord[]) => string;
|
|
47
|
+
git?: (source: PluginSource) => {
|
|
48
|
+
git_sha: string | null;
|
|
49
|
+
};
|
|
50
|
+
}): InstalledPluginState | null;
|
|
51
|
+
//# sourceMappingURL=installed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installed.d.ts","sourceRoot":"","sources":["../../src/skills/installed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEzD,OAAO,EAAkC,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,kGAAkG;AAClG,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QAAE,IAAI,EAAE,eAAe,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IACxE,yFAAyF;IACzF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE;IACzC,QAAQ,CAAC,EAAE,MAAM,YAAY,GAAG,IAAI,CAAC;IACrC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;IACxC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,MAAM,CAAC;IACvC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK;QAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACvD,GAAG,oBAAoB,GAAG,IAAI,CAiBnC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The LIVE installed wicked-garden plugin, as the catalog reports it (wicked-studio#388).
|
|
3
|
+
*
|
|
4
|
+
* The daemon-owned root holds a BASELINE — a content-addressed copy of the plugin as it was when
|
|
5
|
+
* `refresh-baseline` last captured it — and publishes immutable snapshots from it. Nothing said
|
|
6
|
+
* whether the plugin ON DISK had moved since. In the MCP S8 dogfood the published snapshot was
|
|
7
|
+
* generation 5, captured before wicked-garden#1192 added `scripts/mcp/shim.py`, so the first
|
|
8
|
+
* governed run failed with `scripts/mcp/shim.py: not found under the plugin root
|
|
9
|
+
* …/snapshots/000005`. The remedy (Refresh baseline → Publish) worked, but nothing on the page had
|
|
10
|
+
* told the operator the root was behind their install — and every MCP call a worker makes goes
|
|
11
|
+
* through that shim.
|
|
12
|
+
*
|
|
13
|
+
* The comparison is the CONTENT HASH, the same identity `refresh-baseline` decides on
|
|
14
|
+
* (`hashFileSet` over the dependency closure). Not the version string: two installs of one version
|
|
15
|
+
* with different bytes are two baselines, and a checkout that moved without a version bump is the
|
|
16
|
+
* dogfood's exact case. The cost is one bundle read, on a route studio calls when the page loads.
|
|
17
|
+
*/
|
|
18
|
+
import { hashFileSet } from './tree.js';
|
|
19
|
+
import { pluginBundleFiles } from './bundle.js';
|
|
20
|
+
import { discoverLivePlugin, gitStateOf } from './plugin-source.js';
|
|
21
|
+
/**
|
|
22
|
+
* The installed plugin's identity, or `null` when no plugin is installed at all (the unseeded case
|
|
23
|
+
* the catalog's own 503 already covers). `discover` / `bundle` / `hash` are injectable so a test
|
|
24
|
+
* never reads the developer's own config dir.
|
|
25
|
+
*/
|
|
26
|
+
export function installedPluginState(opts = {}) {
|
|
27
|
+
const source = (opts.discover ?? (() => discoverLivePlugin()))();
|
|
28
|
+
if (source === null)
|
|
29
|
+
return null;
|
|
30
|
+
const bundle = opts.bundle ?? pluginBundleFiles;
|
|
31
|
+
const hash = opts.hash ?? hashFileSet;
|
|
32
|
+
const git = opts.git ?? gitStateOf;
|
|
33
|
+
const state = {
|
|
34
|
+
source: { kind: source.kind, path: source.path, plugin_version: source.plugin_version },
|
|
35
|
+
git_sha: git(source).git_sha,
|
|
36
|
+
};
|
|
37
|
+
try {
|
|
38
|
+
return { ...state, baseline: hash(bundle(source.path)), unreadable: null };
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
// A symlink among the bundle's designated entries, a file that vanished mid-walk, a permission
|
|
42
|
+
// refusal. The catalog still answers — this one comparison is simply unavailable, and says so.
|
|
43
|
+
return { ...state, baseline: null, unreadable: err instanceof Error ? err.message : String(err) };
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=installed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installed.js","sourceRoot":"","sources":["../../src/skills/installed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAmB,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AAiBvF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAKjC,EAAE;IACJ,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC,EAAE,CAAC;IACjE,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,UAAU,CAAC;IACnC,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE;QACvF,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO;KAC7B,CAAC;IACF,IAAI,CAAC;QACH,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,+FAA+F;QAC/F,+FAA+F;QAC/F,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACpG,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standing orders (Studio OS behaviour 10) — the daemon evaluator.
|
|
3
|
+
*
|
|
4
|
+
* Fed by the daemon's single CoreEvent subscription (`awaitingHuman`) and the team relay
|
|
5
|
+
* (`wicked.team.finding.raised`), and re-swept over the engine's open gate rows when the away flag
|
|
6
|
+
* turns on or an order is added. For each gate or finding it finds the ACTIVE orders that match
|
|
7
|
+
* (away gating, project scope, the reviewed phase or the finding's severity) and acts:
|
|
8
|
+
*
|
|
9
|
+
* hold — the gate stays open; `standing-order.held` says an order is keeping it for you.
|
|
10
|
+
* A hold wins over an approve on the same gate.
|
|
11
|
+
* approve — answers the gate through `decideGate`, THE gate decision path `POST /runs/:id/gate`
|
|
12
|
+
* uses (ord check, 409 gate_changed / gate_unknown, confirmGate, `gate.decided` audit).
|
|
13
|
+
* The actor is the order. A refusal (a person got there first) is logged, never retried.
|
|
14
|
+
* notify — the message is QUEUED: the store records `standing-order.notified` (its outbox).
|
|
15
|
+
* Nothing is sent: outbound always waits.
|
|
16
|
+
*
|
|
17
|
+
* THE INVARIANT: an order approves only a phase-review gate (`def`, `run_level`, `terminal`), or —
|
|
18
|
+
* as a TRUST RECEIPT (brainstorm idea 13) — the plan approval of a run in its own project, of its
|
|
19
|
+
* own preset, whose OPEN plan gate reports band `0-19` and no high risk (read off the gate's own
|
|
20
|
+
* `gate.opened` row; unreadable = fail closed). The deliver gate, an escalation, a failure and a
|
|
21
|
+
* triage are never answered by an order, and neither is any gate of a steering-author run (its
|
|
22
|
+
* approval lands doctrine).
|
|
23
|
+
*
|
|
24
|
+
* A gate's PHASE, for matching, is the reviewed unit's `phase_ref` (the upcoming unit's when
|
|
25
|
+
* nothing has run). The gate before the run's first unit, with nothing to review, is also
|
|
26
|
+
* `intake` — the name studio and operators use for it (`IntakePlan.isIntakeGate`).
|
|
27
|
+
*/
|
|
28
|
+
import type { AuditLog } from '../api/audit.js';
|
|
29
|
+
import type { RegisteredRoutes } from '../api/routes.js';
|
|
30
|
+
import type { CoreEvent } from '../core/types.js';
|
|
31
|
+
import { type StandingOrderRule, type StandingOrderStore } from './store.js';
|
|
32
|
+
/** The only gate kinds an order may approve. */
|
|
33
|
+
export declare const APPROVABLE_GATE_KINDS: ReadonlySet<string>;
|
|
34
|
+
export interface GateFact {
|
|
35
|
+
runId: string;
|
|
36
|
+
ord: number;
|
|
37
|
+
reviewingOrd: number | null;
|
|
38
|
+
gateKind: string;
|
|
39
|
+
prompt: string;
|
|
40
|
+
}
|
|
41
|
+
export interface FindingFact {
|
|
42
|
+
runId: string;
|
|
43
|
+
findingId: string;
|
|
44
|
+
severity: string;
|
|
45
|
+
claim: string;
|
|
46
|
+
}
|
|
47
|
+
/** What the evaluator needs to know about a run: its project and the phase of a unit. */
|
|
48
|
+
export interface RunFacts {
|
|
49
|
+
projectId: string | undefined;
|
|
50
|
+
problem: string;
|
|
51
|
+
phaseOf: (ord: number) => string | undefined;
|
|
52
|
+
/** The run's first unit ord — the gate before it, with nothing to review, is the INTAKE gate. */
|
|
53
|
+
firstOrd: number | undefined;
|
|
54
|
+
/** Approving this run's gate would land doctrine (a steering-author run): never an order's call. */
|
|
55
|
+
landsDoctrine: boolean;
|
|
56
|
+
/** The band the run's accepted plan landed in (`team_plan.accepted.band`); undefined when unscored. */
|
|
57
|
+
band: string | undefined;
|
|
58
|
+
/** The preset the launch named (`team_plan.preset`); undefined on a user plan or a workflow. */
|
|
59
|
+
preset?: string | undefined;
|
|
60
|
+
}
|
|
61
|
+
/** The OPEN plan gate's own reading of the plan it holds (its `gate.opened` row). */
|
|
62
|
+
export interface PlanGateRisk {
|
|
63
|
+
band: string;
|
|
64
|
+
highRisk: boolean;
|
|
65
|
+
}
|
|
66
|
+
/** Whether an order may answer this plan gate: the trust receipt's every condition, re-read. */
|
|
67
|
+
export declare function planOrderMayApprove(rule: StandingOrderRule, run: Pick<RunFacts, 'landsDoctrine' | 'projectId' | 'preset'>, risk: PlanGateRisk | undefined): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* The phase a gate is matched on: `intake` for the gate before the run's first unit with nothing
|
|
70
|
+
* to review, else the reviewed unit's phase (the upcoming unit's when nothing has run). `unitPhase`
|
|
71
|
+
* is the unit's own phase either way. The ONE reading, shared with the decided-gate history.
|
|
72
|
+
*/
|
|
73
|
+
export declare function gatePhase(run: Pick<RunFacts, 'phaseOf' | 'firstOrd'>, ord: number, reviewingOrd: number | null): {
|
|
74
|
+
phase: string;
|
|
75
|
+
unitPhase: string;
|
|
76
|
+
};
|
|
77
|
+
/** THE INVARIANT as a predicate: an order may approve only a phase-review gate of a run whose
|
|
78
|
+
* approval lands no doctrine. */
|
|
79
|
+
export declare function orderMayApprove(gateKind: string, run: Pick<RunFacts, 'landsDoctrine'>): boolean;
|
|
80
|
+
export interface EvaluatorDeps {
|
|
81
|
+
store: StandingOrderStore;
|
|
82
|
+
decideGate: RegisteredRoutes['decideGate'];
|
|
83
|
+
audit: Pick<AuditLog, 'record'>;
|
|
84
|
+
runFacts: (runId: string) => Promise<RunFacts | undefined>;
|
|
85
|
+
/** The engine's open gate rows (a sweep); `[]` when the engine cannot say. */
|
|
86
|
+
openGates: () => Promise<GateFact[]>;
|
|
87
|
+
/** The run's OPEN plan gate's band and risk; undefined when it cannot be read (fail closed). */
|
|
88
|
+
planGate?: (runId: string) => Promise<PlanGateRisk | undefined>;
|
|
89
|
+
log?: (msg: string) => void;
|
|
90
|
+
}
|
|
91
|
+
export declare class StandingOrderEvaluator {
|
|
92
|
+
private readonly deps;
|
|
93
|
+
/** `<subject>:<order or action>` keys already acted on — one action per gate/finding per order. */
|
|
94
|
+
private readonly done;
|
|
95
|
+
private readonly log;
|
|
96
|
+
constructor(deps: EvaluatorDeps);
|
|
97
|
+
/** Every settled action, for tests: resolves when the evaluation it started is finished. */
|
|
98
|
+
onEvent(event: CoreEvent): Promise<void>;
|
|
99
|
+
/** A team relay frame (`{ type: 'teamEvent', event: <bus row> }`). */
|
|
100
|
+
onTeamFrame(frame: CoreEvent): Promise<void>;
|
|
101
|
+
/** Re-read the engine's open gates (the away flag turned on, or an order was added). */
|
|
102
|
+
sweep(): Promise<void>;
|
|
103
|
+
private active;
|
|
104
|
+
private inScope;
|
|
105
|
+
private once;
|
|
106
|
+
considerGate(g: GateFact): Promise<void>;
|
|
107
|
+
/** The open plan gate's band and risk; undefined (fail closed) when it cannot be read. */
|
|
108
|
+
private planRisk;
|
|
109
|
+
considerFinding(f: FindingFact): Promise<void>;
|
|
110
|
+
/** The store records it (`standing-order.notified`, the order as actor) — queued, never sent. */
|
|
111
|
+
private notify;
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/standing-orders/evaluator.ts"],"names":[],"mappings":"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"}
|