wicked-crew 0.7.40 → 0.7.46
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 +59 -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 +35 -0
- package/dist/api/seat-health.d.ts.map +1 -1
- package/dist/api/seat-health.js +92 -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 +25 -5
- package/dist/api/seat-standing.d.ts.map +1 -1
- package/dist/api/seat-standing.js +76 -9
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"demo-events.js","sourceRoot":"","sources":["../../src/interactive/demo-events.ts"],"names":[],"mappings":"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"}
|
package/dist/qe/gate-events.d.ts
DELETED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Opt-in consumption of the QE gate's wicked-bus events.
|
|
3
|
-
*
|
|
4
|
-
* The QE pipeline announces gate results on the bus — the wire contract the
|
|
5
|
-
* retired wicked-testing package's `lib/gate.mjs` established and garden's qe
|
|
6
|
-
* skills now emit (Phase 6c kept these event names and payload fields STABLE
|
|
7
|
-
* by decision — only the emitters' `domain` stamp rebranded to `qe`):
|
|
8
|
-
*
|
|
9
|
-
* wicked.qe.gate.passed | wicked.qe.gate.failed | wicked.qe.gate.conditional
|
|
10
|
-
* payload (8 canonical fields): run_id, context, gate_verdict, exit_code,
|
|
11
|
-
* verdict_summary, mode, completed_at, scenario_count
|
|
12
|
-
* idempotency key: `qe:gate.result:{context}:{sha256(run_id)[0:16]}:0`
|
|
13
|
-
* wicked.qe.deploy.completed
|
|
14
|
-
* payload: run_id, project_id (emitted alongside a PASS)
|
|
15
|
-
*
|
|
16
|
-
* Consumption is OPT-IN behind crew's existing bus seam (like `--bus-db` /
|
|
17
|
-
* `WICKED_BUS_EXEC`): when armed, a durable wicked-bus subscriber folds each
|
|
18
|
-
* event into this in-memory cache so acceptance reads see gate results the
|
|
19
|
-
* moment they happen; when the bus is absent, nothing here runs and the
|
|
20
|
-
* acceptance route's lazy ledger read is the (always-correct) fallback. The
|
|
21
|
-
* cache is a freshness signal — the ledger stays the system of record for the
|
|
22
|
-
* gate decision, so a lost or replayed event can never flip a verdict.
|
|
23
|
-
*/
|
|
24
|
-
/** The gate-result event types (the old gate.mjs wire contract, verbatim). */
|
|
25
|
-
export declare const QE_GATE_EVENT_TYPES: readonly ["wicked.qe.gate.passed", "wicked.qe.gate.failed", "wicked.qe.gate.conditional"];
|
|
26
|
-
/** The cross-product deploy signal emitted alongside a PASS. */
|
|
27
|
-
export declare const QE_DEPLOY_EVENT_TYPE = "wicked.qe.deploy.completed";
|
|
28
|
-
/**
|
|
29
|
-
* One durable-subscription filter covering both families above
|
|
30
|
-
* (`prefix.**` = one or more remaining segments in wicked-bus filter grammar).
|
|
31
|
-
*/
|
|
32
|
-
export declare const QE_BUS_FILTER = "wicked.qe.**";
|
|
33
|
-
/** Subscriber identity on the bus (registration + cursor resume key). */
|
|
34
|
-
export declare const QE_BUS_PLUGIN = "wicked-crew";
|
|
35
|
-
/** A folded gate/deploy event, as the acceptance route serves it. */
|
|
36
|
-
export interface QeGateEventEntry {
|
|
37
|
-
eventType: string;
|
|
38
|
-
/** The QE run the result is about (`run_id`). */
|
|
39
|
-
runId: string;
|
|
40
|
-
/** The emitter's context — the QE project id (`context` / `project_id`). */
|
|
41
|
-
context: string | null;
|
|
42
|
-
/** PASS | FAIL | CONDITIONAL | SYSTEM_ERROR (gate events; null on deploy). */
|
|
43
|
-
gateVerdict: string | null;
|
|
44
|
-
exitCode: number | null;
|
|
45
|
-
verdictSummary: string | null;
|
|
46
|
-
mode: string | null;
|
|
47
|
-
completedAt: string | null;
|
|
48
|
-
scenarioCount: number | null;
|
|
49
|
-
/** When THIS daemon observed the event (bus delivery time), ISO-8601. */
|
|
50
|
-
observedAt: string;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Latest-gate-result cache, keyed by QE run id and by context.
|
|
54
|
-
*
|
|
55
|
-
* At-least-once delivery means the same logical event may arrive more than
|
|
56
|
-
* once; folding is idempotent by construction (same event ⇒ same entry). No
|
|
57
|
-
* eviction: entries are one small record per QE run/context and the daemon is
|
|
58
|
-
* local-first — a restart simply starts empty and the ledger read covers it.
|
|
59
|
-
*/
|
|
60
|
-
export declare class QeGateCache {
|
|
61
|
-
private readonly byRun;
|
|
62
|
-
private readonly byContext;
|
|
63
|
-
private latestEntry;
|
|
64
|
-
/**
|
|
65
|
-
* Fold one bus event. Returns `true` when the event was a recognized
|
|
66
|
-
* `wicked.qe.*` gate/deploy frame and was cached; unknown types are ignored
|
|
67
|
-
* (the durable filter is a prefix, so future qe events pass through here).
|
|
68
|
-
*/
|
|
69
|
-
ingest(eventType: string, payload: unknown, observedAt?: string): boolean;
|
|
70
|
-
/** The latest cached result for a QE run id. */
|
|
71
|
-
forRun(runId: string): QeGateEventEntry | undefined;
|
|
72
|
-
/** The latest cached result for a context (QE project id). */
|
|
73
|
-
forContext(context: string): QeGateEventEntry | undefined;
|
|
74
|
-
/** The most recently observed event, whatever it was keyed by. */
|
|
75
|
-
latest(): QeGateEventEntry | undefined;
|
|
76
|
-
/** Number of distinct QE runs with a cached result (diagnostics / tests). */
|
|
77
|
-
size(): number;
|
|
78
|
-
}
|
|
79
|
-
/** Options for {@link startQeGateSubscriber}. */
|
|
80
|
-
export interface QeGateSubscriberOptions {
|
|
81
|
-
/**
|
|
82
|
-
* Bus SQLite db path. Omit to let wicked-bus resolve its own default
|
|
83
|
-
* (`~/.something-wicked/wicked-bus/bus.db`) — which is where the QE
|
|
84
|
-
* pipeline's CLI emits unless redirected, so the default is usually right.
|
|
85
|
-
*/
|
|
86
|
-
dbPath?: string;
|
|
87
|
-
/** Poll cadence, ms (default 5000; tests use a short interval). */
|
|
88
|
-
pollIntervalMs?: number;
|
|
89
|
-
/** Diagnostics sink (default: console.error). */
|
|
90
|
-
log?: (message: string) => void;
|
|
91
|
-
/** Error-level logger for connection-fatal subscriber errors (the /diagnostics ring folds it); defaults to `log`. */
|
|
92
|
-
logError?: (message: string) => void;
|
|
93
|
-
}
|
|
94
|
-
/** Handle for a running subscription. */
|
|
95
|
-
export interface QeGateSubscription {
|
|
96
|
-
stop(): Promise<void> | void;
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Start the durable `wicked.qe.**` subscriber and fold events into `cache`.
|
|
100
|
-
*
|
|
101
|
-
* Graceful degradation, matching how other wicked consumers subscribe
|
|
102
|
-
* (wicked-brain's memory subscriber): wicked-bus is dynamically imported, and
|
|
103
|
-
* a missing package / unopenable db returns `null` instead of throwing — the
|
|
104
|
-
* caller opted in, so the degradation is LOGGED, but a daemon must still boot
|
|
105
|
-
* on a machine whose bus is broken (acceptance falls back to lazy ledger
|
|
106
|
-
* reads, which never needed the bus).
|
|
107
|
-
*
|
|
108
|
-
* `cursor_init: 'latest'`: the cache is a live freshness signal, not history —
|
|
109
|
-
* replaying an old bus backlog into it would let a stale event masquerade as
|
|
110
|
-
* fresh. History belongs to the ledger.
|
|
111
|
-
*/
|
|
112
|
-
export declare function startQeGateSubscriber(cache: QeGateCache, opts?: QeGateSubscriberOptions): Promise<QeGateSubscription | null>;
|
|
113
|
-
//# sourceMappingURL=gate-events.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gate-events.d.ts","sourceRoot":"","sources":["../../src/qe/gate-events.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAKH,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB,2FAItB,CAAC;AAEX,gEAAgE;AAChE,eAAO,MAAM,oBAAoB,+BAA+B,CAAC;AAEjE;;;GAGG;AACH,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,yEAAyE;AACzE,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAE3C,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,8EAA8E;IAC9E,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;GAOG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuC;IAC7D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,WAAW,CAA+B;IAElD;;;;OAIG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,SAA2B,GAAG,OAAO;IAoC3F,gDAAgD;IAChD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAInD,8DAA8D;IAC9D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAIzD,kEAAkE;IAClE,MAAM,IAAI,gBAAgB,GAAG,SAAS;IAItC,6EAA6E;IAC7E,IAAI,IAAI,MAAM;CAGf;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,qHAAqH;IACrH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,WAAW,EAClB,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAmDpC"}
|
package/dist/qe/gate-events.js
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Opt-in consumption of the QE gate's wicked-bus events.
|
|
3
|
-
*
|
|
4
|
-
* The QE pipeline announces gate results on the bus — the wire contract the
|
|
5
|
-
* retired wicked-testing package's `lib/gate.mjs` established and garden's qe
|
|
6
|
-
* skills now emit (Phase 6c kept these event names and payload fields STABLE
|
|
7
|
-
* by decision — only the emitters' `domain` stamp rebranded to `qe`):
|
|
8
|
-
*
|
|
9
|
-
* wicked.qe.gate.passed | wicked.qe.gate.failed | wicked.qe.gate.conditional
|
|
10
|
-
* payload (8 canonical fields): run_id, context, gate_verdict, exit_code,
|
|
11
|
-
* verdict_summary, mode, completed_at, scenario_count
|
|
12
|
-
* idempotency key: `qe:gate.result:{context}:{sha256(run_id)[0:16]}:0`
|
|
13
|
-
* wicked.qe.deploy.completed
|
|
14
|
-
* payload: run_id, project_id (emitted alongside a PASS)
|
|
15
|
-
*
|
|
16
|
-
* Consumption is OPT-IN behind crew's existing bus seam (like `--bus-db` /
|
|
17
|
-
* `WICKED_BUS_EXEC`): when armed, a durable wicked-bus subscriber folds each
|
|
18
|
-
* event into this in-memory cache so acceptance reads see gate results the
|
|
19
|
-
* moment they happen; when the bus is absent, nothing here runs and the
|
|
20
|
-
* acceptance route's lazy ledger read is the (always-correct) fallback. The
|
|
21
|
-
* cache is a freshness signal — the ledger stays the system of record for the
|
|
22
|
-
* gate decision, so a lost or replayed event can never flip a verdict.
|
|
23
|
-
*/
|
|
24
|
-
import { busSubscriberErrorReporter } from '../interactive/bus-subscriber-errors.js';
|
|
25
|
-
/** The gate-result event types (the old gate.mjs wire contract, verbatim). */
|
|
26
|
-
export const QE_GATE_EVENT_TYPES = [
|
|
27
|
-
'wicked.qe.gate.passed',
|
|
28
|
-
'wicked.qe.gate.failed',
|
|
29
|
-
'wicked.qe.gate.conditional',
|
|
30
|
-
];
|
|
31
|
-
/** The cross-product deploy signal emitted alongside a PASS. */
|
|
32
|
-
export const QE_DEPLOY_EVENT_TYPE = 'wicked.qe.deploy.completed';
|
|
33
|
-
/**
|
|
34
|
-
* One durable-subscription filter covering both families above
|
|
35
|
-
* (`prefix.**` = one or more remaining segments in wicked-bus filter grammar).
|
|
36
|
-
*/
|
|
37
|
-
export const QE_BUS_FILTER = 'wicked.qe.**';
|
|
38
|
-
/** Subscriber identity on the bus (registration + cursor resume key). */
|
|
39
|
-
export const QE_BUS_PLUGIN = 'wicked-crew';
|
|
40
|
-
function str(v) {
|
|
41
|
-
return typeof v === 'string' ? v : null;
|
|
42
|
-
}
|
|
43
|
-
function num(v) {
|
|
44
|
-
return typeof v === 'number' && Number.isFinite(v) ? v : null;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Latest-gate-result cache, keyed by QE run id and by context.
|
|
48
|
-
*
|
|
49
|
-
* At-least-once delivery means the same logical event may arrive more than
|
|
50
|
-
* once; folding is idempotent by construction (same event ⇒ same entry). No
|
|
51
|
-
* eviction: entries are one small record per QE run/context and the daemon is
|
|
52
|
-
* local-first — a restart simply starts empty and the ledger read covers it.
|
|
53
|
-
*/
|
|
54
|
-
export class QeGateCache {
|
|
55
|
-
byRun = new Map();
|
|
56
|
-
byContext = new Map();
|
|
57
|
-
latestEntry;
|
|
58
|
-
/**
|
|
59
|
-
* Fold one bus event. Returns `true` when the event was a recognized
|
|
60
|
-
* `wicked.qe.*` gate/deploy frame and was cached; unknown types are ignored
|
|
61
|
-
* (the durable filter is a prefix, so future qe events pass through here).
|
|
62
|
-
*/
|
|
63
|
-
ingest(eventType, payload, observedAt = new Date().toISOString()) {
|
|
64
|
-
const isGate = QE_GATE_EVENT_TYPES.includes(eventType);
|
|
65
|
-
const isDeploy = eventType === QE_DEPLOY_EVENT_TYPE;
|
|
66
|
-
if (!isGate && !isDeploy)
|
|
67
|
-
return false;
|
|
68
|
-
if (typeof payload !== 'object' || payload === null)
|
|
69
|
-
return false;
|
|
70
|
-
const p = payload;
|
|
71
|
-
const runId = str(p['run_id']);
|
|
72
|
-
if (runId === null)
|
|
73
|
-
return false; // both contracts require run_id
|
|
74
|
-
const entry = {
|
|
75
|
-
eventType,
|
|
76
|
-
runId,
|
|
77
|
-
// Gate events carry `context`; the deploy signal spells it `project_id`.
|
|
78
|
-
context: str(p['context']) ?? str(p['project_id']),
|
|
79
|
-
gateVerdict: isGate ? str(p['gate_verdict']) : null,
|
|
80
|
-
exitCode: isGate ? num(p['exit_code']) : null,
|
|
81
|
-
verdictSummary: isGate ? str(p['verdict_summary']) : null,
|
|
82
|
-
mode: isGate ? str(p['mode']) : null,
|
|
83
|
-
completedAt: isGate ? str(p['completed_at']) : null,
|
|
84
|
-
scenarioCount: isGate ? num(p['scenario_count']) : null,
|
|
85
|
-
observedAt,
|
|
86
|
-
};
|
|
87
|
-
// The deploy signal must not shadow the gate result it accompanies: for the
|
|
88
|
-
// same run, a gate event always wins the byRun/byContext slots; the deploy
|
|
89
|
-
// frame only fills them when no gate result was seen (e.g. cursor_init
|
|
90
|
-
// 'latest' catching the tail of an emission pair).
|
|
91
|
-
const existing = this.byRun.get(runId);
|
|
92
|
-
if (!(isDeploy && existing !== undefined && existing.gateVerdict !== null)) {
|
|
93
|
-
this.byRun.set(runId, entry);
|
|
94
|
-
if (entry.context !== null)
|
|
95
|
-
this.byContext.set(entry.context, entry);
|
|
96
|
-
}
|
|
97
|
-
this.latestEntry = entry;
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
/** The latest cached result for a QE run id. */
|
|
101
|
-
forRun(runId) {
|
|
102
|
-
return this.byRun.get(runId);
|
|
103
|
-
}
|
|
104
|
-
/** The latest cached result for a context (QE project id). */
|
|
105
|
-
forContext(context) {
|
|
106
|
-
return this.byContext.get(context);
|
|
107
|
-
}
|
|
108
|
-
/** The most recently observed event, whatever it was keyed by. */
|
|
109
|
-
latest() {
|
|
110
|
-
return this.latestEntry;
|
|
111
|
-
}
|
|
112
|
-
/** Number of distinct QE runs with a cached result (diagnostics / tests). */
|
|
113
|
-
size() {
|
|
114
|
-
return this.byRun.size;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Start the durable `wicked.qe.**` subscriber and fold events into `cache`.
|
|
119
|
-
*
|
|
120
|
-
* Graceful degradation, matching how other wicked consumers subscribe
|
|
121
|
-
* (wicked-brain's memory subscriber): wicked-bus is dynamically imported, and
|
|
122
|
-
* a missing package / unopenable db returns `null` instead of throwing — the
|
|
123
|
-
* caller opted in, so the degradation is LOGGED, but a daemon must still boot
|
|
124
|
-
* on a machine whose bus is broken (acceptance falls back to lazy ledger
|
|
125
|
-
* reads, which never needed the bus).
|
|
126
|
-
*
|
|
127
|
-
* `cursor_init: 'latest'`: the cache is a live freshness signal, not history —
|
|
128
|
-
* replaying an old bus backlog into it would let a stale event masquerade as
|
|
129
|
-
* fresh. History belongs to the ledger.
|
|
130
|
-
*/
|
|
131
|
-
export async function startQeGateSubscriber(cache, opts = {}) {
|
|
132
|
-
const log = opts.log ?? ((m) => console.error(m));
|
|
133
|
-
let bus;
|
|
134
|
-
try {
|
|
135
|
-
bus = await import('wicked-bus');
|
|
136
|
-
}
|
|
137
|
-
catch (err) {
|
|
138
|
-
log(`[qe-gate-events] wicked-bus is not importable — gate events disabled, acceptance stays on lazy ledger reads: ${err instanceof Error ? err.message : String(err)}`);
|
|
139
|
-
return null;
|
|
140
|
-
}
|
|
141
|
-
let db;
|
|
142
|
-
try {
|
|
143
|
-
db = bus.openDb(opts.dbPath !== undefined ? { db_path: opts.dbPath } : {});
|
|
144
|
-
}
|
|
145
|
-
catch (err) {
|
|
146
|
-
log(`[qe-gate-events] could not open the bus db${opts.dbPath !== undefined ? ` at ${opts.dbPath}` : ''} — gate events disabled: ${err instanceof Error ? err.message : String(err)}`);
|
|
147
|
-
return null;
|
|
148
|
-
}
|
|
149
|
-
const sub = bus.subscribe({
|
|
150
|
-
db,
|
|
151
|
-
plugin: QE_BUS_PLUGIN,
|
|
152
|
-
filter: QE_BUS_FILTER,
|
|
153
|
-
cursor_init: 'latest',
|
|
154
|
-
pollIntervalMs: opts.pollIntervalMs ?? 5000,
|
|
155
|
-
// The handler only folds into an in-memory map; a retry loop or DLQ entry
|
|
156
|
-
// for it would be noise. It never throws by construction.
|
|
157
|
-
maxRetries: 0,
|
|
158
|
-
handler: (event) => {
|
|
159
|
-
cache.ingest(event.event_type, event.payload);
|
|
160
|
-
},
|
|
161
|
-
onError: busSubscriberErrorReporter({
|
|
162
|
-
describe: (err, event) => `[qe-gate-events] handler error on event ${String(event?.event_id ?? '?')}: ${err.message}`,
|
|
163
|
-
log,
|
|
164
|
-
logError: opts.logError,
|
|
165
|
-
pollIntervalMs: opts.pollIntervalMs ?? 5000,
|
|
166
|
-
}),
|
|
167
|
-
});
|
|
168
|
-
return {
|
|
169
|
-
stop: () => sub.stop(),
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
//# sourceMappingURL=gate-events.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gate-events.js","sourceRoot":"","sources":["../../src/qe/gate-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2014 The xterm.js authors. All rights reserved.
|
|
3
|
-
* Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
|
|
4
|
-
* https://github.com/chjj/term.js
|
|
5
|
-
* @license MIT
|
|
6
|
-
*
|
|
7
|
-
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
8
|
-
* of this software and associated documentation files (the "Software"), to deal
|
|
9
|
-
* in the Software without restriction, including without limitation the rights
|
|
10
|
-
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
11
|
-
* copies of the Software, and to permit persons to whom the Software is
|
|
12
|
-
* furnished to do so, subject to the following conditions:
|
|
13
|
-
*
|
|
14
|
-
* The above copyright notice and this permission notice shall be included in
|
|
15
|
-
* all copies or substantial portions of the Software.
|
|
16
|
-
*
|
|
17
|
-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
18
|
-
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
19
|
-
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
20
|
-
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
21
|
-
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
22
|
-
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
23
|
-
* THE SOFTWARE.
|
|
24
|
-
*
|
|
25
|
-
* Originally forked from (with the author's permission):
|
|
26
|
-
* Fabrice Bellard's javascript vt100 for jslinux:
|
|
27
|
-
* http://bellard.org/jslinux/
|
|
28
|
-
* Copyright (c) 2011 Fabrice Bellard
|
|
29
|
-
* The original design remains. The terminal itself
|
|
30
|
-
* has been extended to include xterm CSI codes, among
|
|
31
|
-
* other features.
|
|
32
|
-
*/.xterm{cursor:text;position:relative;-moz-user-select:none;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::-moz-selection{color:transparent}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;-moz-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:double underline;text-decoration:double underline}.xterm-underline-3{-webkit-text-decoration:wavy underline;text-decoration:wavy underline}.xterm-underline-4{-webkit-text-decoration:dotted underline;text-decoration:dotted underline}.xterm-underline-5{-webkit-text-decoration:dashed underline;text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}:root{--_surface-0: #09090f;--_surface-1: #11111a;--_surface-2: #1a1a26;--_surface-3: #242433;--_surface-4: #2e2e40;--surface-base: var(--_surface-0);--surface-rail: var(--_surface-1);--surface-card: var(--_surface-2);--surface-raised: var(--_surface-3);--surface-overlay: var(--_surface-4);--_ink-a35: rgba(255, 255, 255, .35);--_ink-a55: rgba(255, 255, 255, .55);--_ink-a80: rgba(255, 255, 255, .8);--_ink-100: #ffffff;--ink-dim: var(--_ink-a35);--ink-muted: var(--_ink-a55);--ink-body: var(--_ink-a80);--ink-high: var(--_ink-100);--_accent-h: 258;--_accent-s: 72%;--_accent-l: 62%;--accent: hsl(var(--_accent-h) var(--_accent-s) var(--_accent-l));--accent-dim: hsl(var(--_accent-h) var(--_accent-s) calc(var(--_accent-l) - 18%));--accent-subtle: hsl(var(--_accent-h) calc(var(--_accent-s) * .35) calc(var(--_accent-l) - 30%));--accent-fg: var(--ink-high);--_sg-h: 45;--_sf-h: 4;--_sr-h: 148;--status-gate: hsl(var(--_sg-h) 90% 68%);--status-gate-dim: hsl(var(--_sg-h) 55% 22%);--status-fail: hsl(var(--_sf-h) 88% 62%);--status-fail-dim: hsl(var(--_sf-h) 45% 18%);--status-run: hsl(var(--_sr-h) 58% 58%);--status-run-dim: hsl(var(--_sr-h) 38% 16%);--status-done: var(--_ink-a35);--status-done-dim: transparent;--section-test: hsl(168 62% 55%);--section-vibe: hsl(198 80% 62%);--section-demo: hsl(320 70% 66%);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--text-2xs: 10px;--text-xs: 11px;--text-sm: 13px;--text-md: 15px;--text-lg: 18px;--text-xl: 22px;--text-2xl: 28px;--weight-normal: 400;--weight-medium: 500;--weight-semi: 600;--weight-bold: 700;--leading-tight: 1.2;--leading-body: 1.5;--leading-loose: 1.75;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-card: 0 1px 3px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.05);--shadow-raised: 0 4px 12px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.08);--shadow-overlay: 0 8px 24px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.1);--scrim: rgba(0, 0, 0, .6);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--dur-instant: 80ms;--dur-fast: .12s;--dur-base: .22s;--dur-slow: .3s;--dur-slower: .38s}[data-theme=light]{--_surface-0: #f4f4f8;--_surface-1: #eeeef4;--_surface-2: #e5e5ef;--_surface-3: #d8d8e8;--_surface-4: #ccccdc;--_ink-a35: rgba(0, 0, 0, .3);--_ink-a55: rgba(0, 0, 0, .52);--_ink-a80: rgba(0, 0, 0, .78);--_ink-100: #080810;--status-gate-dim: hsl(var(--_sg-h) 80% 88%);--status-fail-dim: hsl(var(--_sf-h) 75% 91%);--status-run-dim: hsl(var(--_sr-h) 55% 88%)}.deck-ribbon{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin:var(--space-5) 0 var(--space-6)}@media(max-width:1080px){.deck-ribbon{grid-template-columns:1fr}}.deck-group{position:relative;border-radius:var(--radius-xl);padding:15px 17px 16px;overflow:hidden;background:radial-gradient(120% 100% at 0% 0%,var(--deck-gtint, transparent),transparent 46%),linear-gradient(180deg,var(--surface-card),var(--surface-rail));border:1px solid var(--surface-raised);box-shadow:var(--shadow-card)}.deck-group:before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--deck-gcol, var(--accent)),transparent 72%)}.deck-group.flow{--deck-gcol: var(--status-run);--deck-gtint: color-mix(in oklab, var(--status-run) 12%, transparent)}.deck-group.attn{--deck-gcol: var(--status-gate);--deck-gtint: color-mix(in oklab, var(--status-gate) 10%, transparent)}.deck-group.trust{--deck-gcol: var(--accent);--deck-gtint: color-mix(in oklab, var(--accent) 14%, transparent)}.deck-ghead{display:flex;align-items:center;gap:8px;margin-bottom:14px}.deck-tag{font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:.14em;text-transform:uppercase;color:var(--deck-gcol, var(--accent))}.deck-glyph{color:var(--deck-gcol, var(--accent));font-size:11px;filter:drop-shadow(0 0 6px currentColor);opacity:.9}.deck-tiles{display:flex;gap:14px}.deck-tile{flex:1;min-width:0;text-decoration:none;color:inherit;display:block;border-radius:var(--radius-sm);transition:transform var(--dur-instant, 80ms) var(--ease-out)}.deck-tile.lead{flex:1.15}.deck-tile:hover{transform:translateY(-1px)}.deck-tile:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.deck-lab{font-size:var(--text-xs);color:var(--ink-muted);font-weight:var(--weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deck-val{display:flex;align-items:baseline;gap:7px;margin-top:5px}.deck-big{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:32px;font-weight:var(--weight-bold);color:var(--ink-high);line-height:.95;letter-spacing:-.02em;text-shadow:0 0 22px color-mix(in oklab,var(--ink-high) 12%,transparent)}.deck-unit{font-size:13px;color:var(--ink-dim);font-family:var(--font-mono);font-weight:var(--weight-medium)}.deck-delta{font-size:var(--text-xs);font-family:var(--font-mono);font-weight:var(--weight-semi);display:inline-flex;align-items:center;gap:2px;padding:1px 5px;border-radius:var(--radius-sm)}.deck-delta.up{color:var(--status-run);background:var(--status-run-dim)}.deck-delta.down{color:var(--status-fail);background:var(--status-fail-dim)}.deck-delta.flat{color:var(--ink-dim)}.deck-spark{margin-top:10px;height:24px}.deck-bar{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-top:10px;background:var(--surface-raised)}.deck-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-dim));box-shadow:0 0 10px color-mix(in oklab,var(--accent) 50%,transparent)}.deck-sub{font-size:10.5px;color:var(--ink-dim);margin-top:7px;line-height:1.4}.deck-vrbar{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--surface-raised);border:1px solid var(--surface-raised);border-radius:var(--radius-lg);overflow:hidden;margin-top:var(--space-4);box-shadow:var(--shadow-card)}.deck-vrcell{background:linear-gradient(180deg,var(--surface-rail),var(--surface-base));padding:13px 15px;display:flex;flex-direction:column;gap:3px;text-decoration:none;color:inherit;transition:background var(--dur-fast, .12s) var(--ease-out)}.deck-vrcell:hover{background:var(--surface-card)}.deck-vrcell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.deck-vn{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:var(--weight-bold);letter-spacing:-.01em}.deck-vn.ok{color:var(--status-run);text-shadow:0 0 16px color-mix(in oklab,var(--status-run) 28%,transparent)}.deck-vn.warn{color:var(--status-gate)}.deck-vn.bad{color:var(--status-fail)}.deck-vl{font-size:var(--text-xs);color:var(--ink-muted)}.deck-doors{display:flex;gap:10px;flex-wrap:wrap}.deck-door{flex:1 1 0;min-width:132px;display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:var(--radius-lg);border:1px solid var(--surface-raised);cursor:pointer;text-decoration:none;color:inherit;background:linear-gradient(180deg,var(--surface-rail),var(--surface-base));transition:transform var(--dur-instant, 80ms) var(--ease-out),border-color var(--dur-fast, .12s)}.deck-door:hover{border-color:var(--door-col, var(--accent));transform:translateY(-1px)}.deck-door:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.deck-door-glyph{width:30px;height:30px;border-radius:var(--radius-md);display:grid;place-items:center;font-size:14px;color:var(--door-col, var(--accent));flex-shrink:0;background:color-mix(in oklab,var(--door-col, var(--accent)) 16%,transparent);border:1px solid var(--surface-raised)}.deck-door-text{min-width:0;display:flex;flex-direction:column;gap:1px}.deck-door-label{font-size:var(--text-xs);font-weight:var(--weight-semi);color:var(--ink-high)}.deck-door-count{font-size:10.5px;color:var(--ink-muted);font-family:var(--font-mono)}.deck-stat{transition:transform var(--dur-instant, 80ms) var(--ease-out),border-color var(--dur-fast, .12s)}.deck-stat:hover{border-color:var(--accent-subtle)}a.deck-stat:hover,button.deck-stat:hover{transform:translateY(-1px);border-color:var(--accent-dim)}.deck-stat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.deck-pulse{display:flex;flex-direction:column;gap:6px;padding:4px 2px 8px}.deck-pulse-head{display:flex;align-items:baseline;justify-content:space-between}.deck-pulse-t{font-size:var(--text-xs);color:var(--ink-muted);font-weight:var(--weight-medium)}.deck-pulse-v{font-family:var(--font-mono);font-size:var(--text-md);color:var(--ink-high);font-weight:var(--weight-bold);font-variant-numeric:tabular-nums}.deck-pulse-v small{color:var(--ink-dim);font-weight:var(--weight-normal);font-size:var(--text-xs)}.deck-pulse-chart{width:100%;height:96px;display:block}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.right-0{right:0}.right-1{right:.25rem}.right-1\.5{right:.375rem}.right-4{right:1rem}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-3{top:.75rem}.top-6{top:1.5rem}.top-8{top:2rem}.top-full{top:100%}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.col-span-2{grid-column:span 2 / span 2}.m-0{margin:0}.m-4{margin:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-\[1\.625rem\]{margin-left:1.625rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.\!inline{display:inline!important}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.\!hidden{display:none!important}.hidden{display:none}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[80vh\]{height:80vh}.h-\[92vh\]{height:92vh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-36{max-height:9rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-96{max-height:24rem}.max-h-\[28rem\]{max-height:28rem}.max-h-\[45vh\]{max-height:45vh}.max-h-\[60\%\]{max-height:60%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[86vh\]{max-height:86vh}.min-h-0{min-height:0px}.min-h-\[10rem\]{min-height:10rem}.min-h-\[12rem\]{min-height:12rem}.min-h-\[18rem\]{min-height:18rem}.min-h-\[3\.5rem\]{min-height:3.5rem}.min-h-\[3rem\]{min-height:3rem}.min-h-\[4rem\]{min-height:4rem}.w-1{width:.25rem}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-40{width:10rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-96{width:24rem}.w-\[26rem\]{width:26rem}.w-\[280px\]{width:280px}.w-\[28rem\]{width:28rem}.w-\[34rem\]{width:34rem}.w-\[36rem\]{width:36rem}.w-\[380px\]{width:380px}.w-\[420px\]{width:420px}.w-\[44rem\]{width:44rem}.w-\[90vw\]{width:90vw}.w-\[92vw\]{width:92vw}.w-full{width:100%}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-64{min-width:16rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[14rem\]{min-width:14rem}.min-w-\[16rem\]{min-width:16rem}.min-w-\[3\.5rem\]{min-width:3.5rem}.min-w-\[4rem\]{min-width:4rem}.min-w-\[60px\]{min-width:60px}.min-w-\[8rem\]{min-width:8rem}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-\[14rem\]{max-width:14rem}.max-w-\[28rem\]{max-width:28rem}.max-w-\[70\%\]{max-width:70%}.max-w-\[72\%\]{max-width:72%}.max-w-\[80\%\]{max-width:80%}.max-w-\[80px\]{max-width:80px}.max-w-\[85\%\]{max-width:85%}.max-w-\[90\%\]{max-width:90%}.max-w-\[92vw\]{max-width:92vw}.max-w-\[95vw\]{max-width:95vw}.max-w-full{max-width:100%}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-\[16rem\]{flex-basis:16rem}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-x-1\.5{-moz-column-gap:.375rem;column-gap:.375rem}.gap-x-2{-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-x-8{-moz-column-gap:2rem;column-gap:2rem}.gap-y-0\.5{row-gap:.125rem}.gap-y-1{row-gap:.25rem}.gap-y-1\.5{row-gap:.375rem}.gap-y-4{row-gap:1rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.text-wrap{text-wrap:wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-t{border-top-width:1px}.bg-surface-base{background-color:var(--surface-base)}.bg-surface-raised{background-color:var(--surface-raised)}.bg-transparent{background-color:transparent}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-px{padding-top:1px;padding-bottom:1px}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-1{padding-left:.25rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-4{padding-right:1rem}.pr-5{padding-right:1.25rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12\.5px\]{font-size:12.5px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.ordinal{--tw-ordinal: ordinal;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-ink-muted{color:var(--ink-muted)}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}html,body,#root{background:var(--surface-base);color:var(--ink-body);height:100%;font-family:var(--font-sans);-webkit-font-smoothing:antialiased}code,pre,.font-mono{font-family:var(--font-mono)}@keyframes wk-live-pulse{0%,to{opacity:.5}50%{opacity:1}}.wk-live-edge{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--status-run);box-shadow:0 0 8px var(--status-run-dim);animation:wk-live-pulse 2s ease-in-out infinite;pointer-events:none}.wk-live-edge--static{animation:none;opacity:1;width:3px}@media(prefers-reduced-motion:reduce){.wk-live-edge{animation:none;opacity:1;width:3px}}.wk-live-edge--gate{width:3px;background:var(--status-gate);box-shadow:0 0 10px var(--status-gate-dim);animation:none;opacity:1}.wk-live-edge--pill{left:3px;top:4px;bottom:4px;width:2px;border-radius:1px;box-shadow:none}@keyframes wk-palette-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.wk-palette-in{animation:wk-palette-in var(--dur-fast) var(--ease-out)}@media(prefers-reduced-motion:reduce){.wk-palette-in{animation:none}}@keyframes wk-sheet-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.wk-sheet-in{animation:wk-sheet-in var(--dur-fast) var(--ease-out)}@media(prefers-reduced-motion:reduce){.wk-sheet-in{animation:none}}@keyframes wk-feed-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.wk-feed-line{animation:wk-feed-in var(--dur-fast) var(--ease-out)}.wk-feed-block{animation:wk-feed-in var(--dur-base) var(--ease-out)}@media(prefers-reduced-motion:reduce){.wk-feed-line,.wk-feed-block{animation:none}}.wk-fade-in{animation:wk-feed-in var(--dur-fast) var(--ease-out)}.wk-disclose{animation:wk-feed-in var(--dur-base) var(--ease-out)}.wk-composer:focus,.wk-composer:focus-within{outline:none;box-shadow:0 0 0 2px var(--accent-dim)}.wk-chip-x{color:var(--ink-dim)}.wk-chip-x:hover{color:var(--ink-high)}@keyframes wk-anchor-flash{0%{background-color:var(--accent-subtle)}to{background-color:transparent}}.wk-anchor-flash{animation:wk-anchor-flash 1s var(--ease-out)}@media(prefers-reduced-motion:reduce){.wk-fade-in,.wk-disclose,.wk-anchor-flash{animation:none}}.wk-river-gate-waiting{animation:wk-live-pulse 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.wk-river-gate-waiting{animation:none;opacity:1}}.wk-reject-note::-moz-placeholder{color:var(--ink-dim)}.wk-reject-note::placeholder{color:var(--ink-dim)}.wk-annotate::-moz-placeholder{color:var(--ink-muted)}.wk-annotate::placeholder{color:var(--ink-muted)}.wk-switcher-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.wk-feed-link{color:var(--ink-body);text-decoration:none;display:block}.wk-feed-link:hover{color:var(--ink-high)}.wk-feed-link:after{content:"↗";opacity:0;transition:opacity var(--dur-instant) var(--ease-out);margin-left:4px}.wk-feed-link:hover:after{opacity:1}.skip-link{position:fixed;top:-100px;left:12px;z-index:100;padding:6px 12px;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-fg);font-size:12px;font-weight:600;text-decoration:none;transition:top .1s ease-out}.skip-link:focus{top:12px;outline:2px solid var(--accent-dim);outline-offset:2px}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-\[var\(--surface-raised\)\]:hover{background-color:var(--surface-raised)}.hover\:bg-surface-card:hover{background-color:var(--surface-card)}.hover\:bg-surface-raised:hover{background-color:var(--surface-raised)}.hover\:text-ink-body:hover{color:var(--ink-body)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:bg-surface-card:focus-visible{background-color:var(--surface-card)}.focus-visible\:bg-surface-raised:focus-visible{background-color:var(--surface-raised)}.focus-visible\:text-ink-body:focus-visible{color:var(--ink-body)}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:outline:focus-visible{outline-style:solid}.focus-visible\:outline-2:focus-visible{outline-width:2px}.focus-visible\:outline-accent:focus-visible{outline-color:var(--accent)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-accent-dim:focus-visible{--tw-ring-color: var(--accent-dim)}.active\:cursor-grabbing:active{cursor:grabbing}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:640px){.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}
|