@openrig/cli 0.4.7 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/claude-statusline-context.cjs +40 -8
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md +120 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/precompact-hook.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/claude-compaction-restore/scripts/restore-from-jsonl.mjs +0 -0
- package/daemon/assets/plugins/openrig-core/skills/delegating-work/SKILL.md +43 -0
- package/daemon/assets/plugins/openrig-core/skills/forming-an-openrig-mental-model/SKILL.md +2 -0
- package/daemon/assets/plugins/openrig-core/skills/openrig-skills/SKILL.md +50 -57
- package/daemon/assets/plugins/openrig-core/skills/openrig-user/SKILL.md +84 -19
- package/daemon/assets/plugins/openrig-core/skills/queue-handoff/SKILL.md +2 -0
- package/daemon/assets/plugins/openrig-core/skills/seat-continuity-and-handover/SKILL.md +2 -1
- package/daemon/assets/plugins/openrig-core/skills/session-compaction-and-restore/SKILL.md +1 -0
- package/daemon/dist/adapters/claude-code-adapter.d.ts +36 -9
- package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-code-adapter.js +216 -49
- package/daemon/dist/adapters/claude-code-adapter.js.map +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts +1 -1
- package/daemon/dist/adapters/claude-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/claude-resume.js +8 -2
- package/daemon/dist/adapters/claude-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts +1 -1
- package/daemon/dist/adapters/codex-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-resume.js +4 -2
- package/daemon/dist/adapters/codex-resume.js.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +12 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +34 -7
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts +1 -1
- package/daemon/dist/adapters/pi-resume.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-resume.js +7 -2
- package/daemon/dist/adapters/pi-resume.js.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js +4 -1
- package/daemon/dist/adapters/pi-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/yolo-mode.d.ts +23 -0
- package/daemon/dist/adapters/yolo-mode.d.ts.map +1 -0
- package/daemon/dist/adapters/yolo-mode.js +49 -0
- package/daemon/dist/adapters/yolo-mode.js.map +1 -0
- package/daemon/dist/build-info.js +3 -3
- package/daemon/dist/db/migrations/055_node_permission_policy.d.ts +13 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.js +17 -0
- package/daemon/dist/db/migrations/055_node_permission_policy.js.map +1 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts +13 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.d.ts.map +1 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.js +17 -0
- package/daemon/dist/db/migrations/056_rig_permission_policy.js.map +1 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts +19 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.d.ts.map +1 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.js +26 -0
- package/daemon/dist/db/migrations/057_node_policy_provenance.js.map +1 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts +15 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.d.ts.map +1 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.js +22 -0
- package/daemon/dist/db/migrations/058_rig_policy_provenance.js.map +1 -0
- package/daemon/dist/domain/agent-activity-store.d.ts +1 -0
- package/daemon/dist/domain/agent-activity-store.d.ts.map +1 -1
- package/daemon/dist/domain/agent-activity-store.js +2 -2
- package/daemon/dist/domain/agent-activity-store.js.map +1 -1
- package/daemon/dist/domain/builtin-policy-reference.d.ts +13 -0
- package/daemon/dist/domain/builtin-policy-reference.d.ts.map +1 -0
- package/daemon/dist/domain/builtin-policy-reference.js +58 -0
- package/daemon/dist/domain/builtin-policy-reference.js.map +1 -0
- package/daemon/dist/domain/claude-activity-hooks.d.ts +33 -0
- package/daemon/dist/domain/claude-activity-hooks.d.ts.map +1 -0
- package/daemon/dist/domain/claude-activity-hooks.js +60 -0
- package/daemon/dist/domain/claude-activity-hooks.js.map +1 -0
- package/daemon/dist/domain/context-packs/bundle-assembler.d.ts +30 -0
- package/daemon/dist/domain/context-packs/bundle-assembler.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/bundle-assembler.js +31 -1
- package/daemon/dist/domain/context-packs/bundle-assembler.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts +69 -14
- package/daemon/dist/domain/context-packs/context-pack-library-service.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-library-service.js +263 -48
- package/daemon/dist/domain/context-packs/context-pack-library-service.js.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts +2 -2
- package/daemon/dist/domain/context-packs/context-pack-types.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/context-pack-types.js.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.d.ts.map +1 -1
- package/daemon/dist/domain/context-packs/manifest-parser.js +11 -0
- package/daemon/dist/domain/context-packs/manifest-parser.js.map +1 -1
- package/daemon/dist/domain/context-packs/ref-safety.d.ts +11 -0
- package/daemon/dist/domain/context-packs/ref-safety.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/ref-safety.js +46 -0
- package/daemon/dist/domain/context-packs/ref-safety.js.map +1 -0
- package/daemon/dist/domain/context-packs/token-estimate.d.ts +3 -0
- package/daemon/dist/domain/context-packs/token-estimate.d.ts.map +1 -0
- package/daemon/dist/domain/context-packs/token-estimate.js +5 -0
- package/daemon/dist/domain/context-packs/token-estimate.js.map +1 -0
- package/daemon/dist/domain/native-resume-probe.d.ts +1 -1
- package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -1
- package/daemon/dist/domain/native-resume-probe.js +11 -4
- package/daemon/dist/domain/native-resume-probe.js.map +1 -1
- package/daemon/dist/domain/node-inventory.js +2 -2
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts +89 -0
- package/daemon/dist/domain/permission-policy/policy-ref.d.ts.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-ref.js +171 -0
- package/daemon/dist/domain/permission-policy/policy-ref.js.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts +34 -0
- package/daemon/dist/domain/permission-policy/policy-spec.d.ts.map +1 -0
- package/daemon/dist/domain/permission-policy/policy-spec.js +106 -0
- package/daemon/dist/domain/permission-policy/policy-spec.js.map +1 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts +14 -0
- package/daemon/dist/domain/plugin-vendor-service.d.ts.map +1 -1
- package/daemon/dist/domain/plugin-vendor-service.js +26 -2
- package/daemon/dist/domain/plugin-vendor-service.js.map +1 -1
- package/daemon/dist/domain/provider/claude-usage-reader.d.ts +44 -0
- package/daemon/dist/domain/provider/claude-usage-reader.d.ts.map +1 -0
- package/daemon/dist/domain/provider/claude-usage-reader.js +112 -0
- package/daemon/dist/domain/provider/claude-usage-reader.js.map +1 -0
- package/daemon/dist/domain/provider/codex-auth-reader.d.ts +18 -0
- package/daemon/dist/domain/provider/codex-auth-reader.d.ts.map +1 -0
- package/daemon/dist/domain/provider/codex-auth-reader.js +64 -0
- package/daemon/dist/domain/provider/codex-auth-reader.js.map +1 -0
- package/daemon/dist/domain/provider/host-usage-rollup.d.ts +51 -0
- package/daemon/dist/domain/provider/host-usage-rollup.d.ts.map +1 -0
- package/daemon/dist/domain/provider/host-usage-rollup.js +162 -0
- package/daemon/dist/domain/provider/host-usage-rollup.js.map +1 -0
- package/daemon/dist/domain/provider/provider-collect.d.ts +22 -0
- package/daemon/dist/domain/provider/provider-collect.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-collect.js +74 -0
- package/daemon/dist/domain/provider/provider-collect.js.map +1 -0
- package/daemon/dist/domain/provider/provider-policy.d.ts +38 -0
- package/daemon/dist/domain/provider/provider-policy.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-policy.js +76 -0
- package/daemon/dist/domain/provider/provider-policy.js.map +1 -0
- package/daemon/dist/domain/provider/provider-read-model.d.ts +28 -0
- package/daemon/dist/domain/provider/provider-read-model.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-read-model.js +68 -0
- package/daemon/dist/domain/provider/provider-read-model.js.map +1 -0
- package/daemon/dist/domain/provider/provider-service-impl.d.ts +26 -0
- package/daemon/dist/domain/provider/provider-service-impl.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-service-impl.js +83 -0
- package/daemon/dist/domain/provider/provider-service-impl.js.map +1 -0
- package/daemon/dist/domain/provider/provider-service.d.ts +33 -0
- package/daemon/dist/domain/provider/provider-service.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-service.js +6 -0
- package/daemon/dist/domain/provider/provider-service.js.map +1 -0
- package/daemon/dist/domain/provider/provider-signals.d.ts +76 -0
- package/daemon/dist/domain/provider/provider-signals.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-signals.js +144 -0
- package/daemon/dist/domain/provider/provider-signals.js.map +1 -0
- package/daemon/dist/domain/provider/provider-types.d.ts +101 -0
- package/daemon/dist/domain/provider/provider-types.d.ts.map +1 -0
- package/daemon/dist/domain/provider/provider-types.js +7 -0
- package/daemon/dist/domain/provider/provider-types.js.map +1 -0
- package/daemon/dist/domain/provider/reactive-tap.d.ts +29 -0
- package/daemon/dist/domain/provider/reactive-tap.d.ts.map +1 -0
- package/daemon/dist/domain/provider/reactive-tap.js +80 -0
- package/daemon/dist/domain/provider/reactive-tap.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +14 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +90 -6
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -1
- package/daemon/dist/domain/rig-expansion-service.js +10 -1
- package/daemon/dist/domain/rig-expansion-service.js.map +1 -1
- package/daemon/dist/domain/rig-repository.d.ts +45 -0
- package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
- package/daemon/dist/domain/rig-repository.js +75 -1
- package/daemon/dist/domain/rig-repository.js.map +1 -1
- package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-codec.js +6 -0
- package/daemon/dist/domain/rigspec-codec.js.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-exporter.js +8 -0
- package/daemon/dist/domain/rigspec-exporter.js.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.d.ts +25 -24
- package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-instantiator.js +190 -69
- package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.d.ts +22 -0
- package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-preflight.js +76 -0
- package/daemon/dist/domain/rigspec-preflight.js.map +1 -1
- package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
- package/daemon/dist/domain/rigspec-schema.js +25 -0
- package/daemon/dist/domain/rigspec-schema.js.map +1 -1
- package/daemon/dist/domain/runtime-adapter.d.ts +7 -11
- package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/domain/runtime-adapter.js.map +1 -1
- package/daemon/dist/domain/scope/attestation-lineage.generated.d.ts +14 -0
- package/daemon/dist/domain/scope/attestation-lineage.generated.d.ts.map +1 -0
- package/daemon/dist/domain/scope/attestation-lineage.generated.js +26 -0
- package/daemon/dist/domain/scope/attestation-lineage.generated.js.map +1 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts +13 -0
- package/daemon/dist/domain/scope/scope-approve.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-approve.js +50 -10
- package/daemon/dist/domain/scope/scope-approve.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +7 -1
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/startup-validation.d.ts.map +1 -1
- package/daemon/dist/domain/startup-validation.js +18 -54
- package/daemon/dist/domain/startup-validation.js.map +1 -1
- package/daemon/dist/domain/stream-store.d.ts +4 -0
- package/daemon/dist/domain/stream-store.d.ts.map +1 -1
- package/daemon/dist/domain/stream-store.js +15 -2
- package/daemon/dist/domain/stream-store.js.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.d.ts +4 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -1
- package/daemon/dist/domain/successor-session-launcher.js +2 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -1
- package/daemon/dist/domain/types.d.ts +19 -9
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/workspace/default-workspace-scaffold.js +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +2 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/context-packs.d.ts.map +1 -1
- package/daemon/dist/routes/context-packs.js +157 -75
- package/daemon/dist/routes/context-packs.js.map +1 -1
- package/daemon/dist/routes/provider.d.ts +3 -0
- package/daemon/dist/routes/provider.d.ts.map +1 -0
- package/daemon/dist/routes/provider.js +124 -0
- package/daemon/dist/routes/provider.js.map +1 -0
- package/daemon/dist/routes/rigs.js +8 -0
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/scope-approve.d.ts.map +1 -1
- package/daemon/dist/routes/scope-approve.js +6 -3
- package/daemon/dist/routes/scope-approve.js.map +1 -1
- package/daemon/dist/routes/scope-audit.d.ts.map +1 -1
- package/daemon/dist/routes/scope-audit.js +4 -1
- package/daemon/dist/routes/scope-audit.js.map +1 -1
- package/daemon/dist/routes/stream.d.ts.map +1 -1
- package/daemon/dist/routes/stream.js +71 -1
- package/daemon/dist/routes/stream.js.map +1 -1
- package/daemon/dist/server.d.ts +3 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +5 -0
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +38 -12
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/docs/reference/developing.md +39 -0
- package/daemon/docs/reference/rig-spec.md +19 -0
- package/daemon/policies/builtin/locked.policy.md +24 -0
- package/daemon/policies/builtin/open.policy.md +24 -0
- package/daemon/policies/builtin/standard.policy.md +25 -0
- package/daemon/policies/builtin/yolo.policy.md +20 -0
- package/daemon/policies/examples/my-cautious-dev.policy.md +40 -0
- package/daemon/specs/agents/apps/vault-specialist/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/builder/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/lead/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/planner/agent.yaml +1 -1
- package/daemon/specs/agents/conveyor/reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/design/product-designer/agent.yaml +1 -1
- package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
- package/daemon/specs/agents/development/qa/agent.yaml +1 -1
- package/daemon/specs/agents/factory-rsi/dogfood/agent.yaml +1 -1
- package/daemon/specs/agents/factory-rsi/release-manager/agent.yaml +1 -1
- package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
- package/daemon/specs/agents/product-management/pm/agent.yaml +1 -0
- package/daemon/specs/agents/research/analyst/agent.yaml +1 -1
- package/daemon/specs/agents/research/synthesizer/agent.yaml +1 -1
- package/daemon/specs/agents/review/independent-reviewer/agent.yaml +1 -1
- package/daemon/specs/agents/shared/agent.yaml +6 -0
- package/daemon/specs/agents/shared/runtime/claude-activity-hooks.json +4 -0
- package/daemon/specs/agents/shared/runtime/claude-settings.fragment.json +1 -20
- package/daemon/specs/agents/shared/skills/core/openrig-architect/SKILL.md +0 -2
- package/daemon/specs/agents/shared/skills/core/watchdog/SKILL.md +1 -0
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/find-polluter.sh +0 -0
- package/daemon/specs/agents/shared/skills/process/verification-before-completion/SKILL.md +1 -0
- package/dist/bin-wrapper.d.ts.map +1 -1
- package/dist/bin-wrapper.js +7 -0
- package/dist/bin-wrapper.js.map +1 -1
- package/dist/build-info.js +3 -3
- package/dist/commands/agent-image.d.ts.map +1 -1
- package/dist/commands/agent-image.js +2 -1
- package/dist/commands/agent-image.js.map +1 -1
- package/dist/commands/broadcast.d.ts.map +1 -1
- package/dist/commands/broadcast.js +37 -2
- package/dist/commands/broadcast.js.map +1 -1
- package/dist/commands/context.d.ts +2 -7
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +391 -213
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/provider.d.ts +4 -0
- package/dist/commands/provider.d.ts.map +1 -0
- package/dist/commands/provider.js +218 -0
- package/dist/commands/provider.js.map +1 -0
- package/dist/commands/ps.d.ts +7 -0
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +34 -4
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +38 -8
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +48 -4
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +70 -11
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/setup.d.ts +14 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +131 -8
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/stream.d.ts +1 -0
- package/dist/commands/stream.d.ts.map +1 -1
- package/dist/commands/stream.js +93 -0
- package/dist/commands/stream.js.map +1 -1
- package/dist/commands/tui.d.ts +4 -0
- package/dist/commands/tui.d.ts.map +1 -0
- package/dist/commands/tui.js +29 -0
- package/dist/commands/tui.js.map +1 -0
- package/dist/commands/walk.d.ts +19 -0
- package/dist/commands/walk.d.ts.map +1 -0
- package/dist/commands/walk.js +139 -0
- package/dist/commands/walk.js.map +1 -0
- package/dist/context-resolve.d.ts +14 -0
- package/dist/context-resolve.d.ts.map +1 -0
- package/dist/context-resolve.js +40 -0
- package/dist/context-resolve.js.map +1 -0
- package/dist/front-door.d.ts +31 -0
- package/dist/front-door.d.ts.map +1 -0
- package/dist/front-door.js +114 -0
- package/dist/front-door.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -6
- package/dist/index.js.map +1 -1
- package/dist/lib/scope/attestation-lineage.d.ts +14 -0
- package/dist/lib/scope/attestation-lineage.d.ts.map +1 -0
- package/dist/lib/scope/attestation-lineage.js +34 -0
- package/dist/lib/scope/attestation-lineage.js.map +1 -0
- package/package.json +4 -2
- package/tui/dist/daemon-client.d.ts +56 -0
- package/tui/dist/daemon-client.d.ts.map +1 -0
- package/tui/dist/daemon-client.js +99 -0
- package/tui/dist/daemon-client.js.map +1 -0
- package/tui/dist/demo-data.d.ts +3 -0
- package/tui/dist/demo-data.d.ts.map +1 -0
- package/tui/dist/demo-data.js +52 -0
- package/tui/dist/demo-data.js.map +1 -0
- package/tui/dist/detail.d.ts +34 -0
- package/tui/dist/detail.d.ts.map +1 -0
- package/tui/dist/detail.js +47 -0
- package/tui/dist/detail.js.map +1 -0
- package/tui/dist/grammar.d.ts +3 -0
- package/tui/dist/grammar.d.ts.map +1 -0
- package/tui/dist/grammar.js +66 -0
- package/tui/dist/grammar.js.map +1 -0
- package/tui/dist/hydrate.d.ts +78 -0
- package/tui/dist/hydrate.d.ts.map +1 -0
- package/tui/dist/hydrate.js +294 -0
- package/tui/dist/hydrate.js.map +1 -0
- package/tui/dist/index.d.ts +12 -0
- package/tui/dist/index.d.ts.map +1 -0
- package/tui/dist/index.js +12 -0
- package/tui/dist/index.js.map +1 -0
- package/tui/dist/input.d.ts +21 -0
- package/tui/dist/input.d.ts.map +1 -0
- package/tui/dist/input.js +128 -0
- package/tui/dist/input.js.map +1 -0
- package/tui/dist/live.d.ts +20 -0
- package/tui/dist/live.d.ts.map +1 -0
- package/tui/dist/live.js +67 -0
- package/tui/dist/live.js.map +1 -0
- package/tui/dist/main.d.ts +3 -0
- package/tui/dist/main.d.ts.map +1 -0
- package/tui/dist/main.js +184 -0
- package/tui/dist/main.js.map +1 -0
- package/tui/dist/motion.d.ts +13 -0
- package/tui/dist/motion.d.ts.map +1 -0
- package/tui/dist/motion.js +31 -0
- package/tui/dist/motion.js.map +1 -0
- package/tui/dist/navigator.d.ts +21 -0
- package/tui/dist/navigator.d.ts.map +1 -0
- package/tui/dist/navigator.js +168 -0
- package/tui/dist/navigator.js.map +1 -0
- package/tui/dist/refresh.d.ts +3 -0
- package/tui/dist/refresh.d.ts.map +1 -0
- package/tui/dist/refresh.js +9 -0
- package/tui/dist/refresh.js.map +1 -0
- package/tui/dist/render.d.ts +21 -0
- package/tui/dist/render.d.ts.map +1 -0
- package/tui/dist/render.js +807 -0
- package/tui/dist/render.js.map +1 -0
- package/tui/dist/sections.d.ts +4 -0
- package/tui/dist/sections.d.ts.map +1 -0
- package/tui/dist/sections.js +19 -0
- package/tui/dist/sections.js.map +1 -0
- package/tui/dist/socket-server.d.ts +24 -0
- package/tui/dist/socket-server.d.ts.map +1 -0
- package/tui/dist/socket-server.js +85 -0
- package/tui/dist/socket-server.js.map +1 -0
- package/tui/dist/state.d.ts +51 -0
- package/tui/dist/state.d.ts.map +1 -0
- package/tui/dist/state.js +480 -0
- package/tui/dist/state.js.map +1 -0
- package/tui/dist/stylize.d.ts +4 -0
- package/tui/dist/stylize.d.ts.map +1 -0
- package/tui/dist/stylize.js +248 -0
- package/tui/dist/stylize.js.map +1 -0
- package/tui/dist/theme.d.ts +19 -0
- package/tui/dist/theme.d.ts.map +1 -0
- package/tui/dist/theme.js +86 -0
- package/tui/dist/theme.js.map +1 -0
- package/tui/dist/topology/canvas.d.ts +43 -0
- package/tui/dist/topology/canvas.d.ts.map +1 -0
- package/tui/dist/topology/canvas.js +131 -0
- package/tui/dist/topology/canvas.js.map +1 -0
- package/tui/dist/topology/fixture.d.ts +4 -0
- package/tui/dist/topology/fixture.d.ts.map +1 -0
- package/tui/dist/topology/fixture.js +71 -0
- package/tui/dist/topology/fixture.js.map +1 -0
- package/tui/dist/topology/glyphs.d.ts +21 -0
- package/tui/dist/topology/glyphs.d.ts.map +1 -0
- package/tui/dist/topology/glyphs.js +49 -0
- package/tui/dist/topology/glyphs.js.map +1 -0
- package/tui/dist/topology/graph-types.d.ts +39 -0
- package/tui/dist/topology/graph-types.d.ts.map +1 -0
- package/tui/dist/topology/graph-types.js +2 -0
- package/tui/dist/topology/graph-types.js.map +1 -0
- package/tui/dist/topology/layout.d.ts +52 -0
- package/tui/dist/topology/layout.d.ts.map +1 -0
- package/tui/dist/topology/layout.js +118 -0
- package/tui/dist/topology/layout.js.map +1 -0
- package/tui/dist/topology/render-graph.d.ts +8 -0
- package/tui/dist/topology/render-graph.d.ts.map +1 -0
- package/tui/dist/topology/render-graph.js +20 -0
- package/tui/dist/topology/render-graph.js.map +1 -0
- package/tui/dist/topology/runtime-marks.d.ts +53 -0
- package/tui/dist/topology/runtime-marks.d.ts.map +1 -0
- package/tui/dist/topology/runtime-marks.js +185 -0
- package/tui/dist/topology/runtime-marks.js.map +1 -0
- package/tui/dist/topology/styles/braille.d.ts +5 -0
- package/tui/dist/topology/styles/braille.d.ts.map +1 -0
- package/tui/dist/topology/styles/braille.js +84 -0
- package/tui/dist/topology/styles/braille.js.map +1 -0
- package/tui/dist/topology/styles/hatchet.d.ts +41 -0
- package/tui/dist/topology/styles/hatchet.d.ts.map +1 -0
- package/tui/dist/topology/styles/hatchet.js +146 -0
- package/tui/dist/topology/styles/hatchet.js.map +1 -0
- package/tui/dist/types.d.ts +362 -0
- package/tui/dist/types.d.ts.map +1 -0
- package/tui/dist/types.js +6 -0
- package/tui/dist/types.js.map +1 -0
- package/ui/dist/assets/{index-DkNi0RT8.js → index-Dv5VaLCN.js} +135 -135
- package/ui/dist/index.html +1 -1
- package/daemon/specs/agents/shared/skills/pm/backlog-capture/SKILL.md +0 -43
- package/daemon/specs/agents/shared/skills/pm/context-builder/SKILL.md +0 -87
- package/daemon/specs/agents/shared/skills/pm/exec-summary/SKILL.md +0 -84
- package/daemon/specs/agents/shared/skills/pm/office-hours/SKILL.md +0 -129
- package/daemon/specs/agents/shared/skills/pm/plan-review/SKILL.md +0 -98
- package/daemon/specs/agents/shared/skills/pm/requirements-writer/SKILL.md +0 -113
- package/daemon/specs/agents/shared/skills/pm/ui-mockup/SKILL.md +0 -76
- package/daemon/specs/agents/shared/skills/pods/development-team/SKILL.md +0 -148
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +0 -266
- package/daemon/specs/agents/shared/skills/pods/review-team/SKILL.md +0 -213
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/CREATION-LOG.md +0 -119
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-academic.md +0 -14
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-1.md +0 -58
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-2.md +0 -68
- package/daemon/specs/agents/shared/skills/process/systematic-debugging/test-pressure-3.md +0 -69
- package/dist/commands/context-pack.d.ts +0 -4
- package/dist/commands/context-pack.d.ts.map +0 -1
- package/dist/commands/context-pack.js +0 -357
- package/dist/commands/context-pack.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-service-impl.js","sourceRoot":"","sources":["../../../src/domain/provider/provider-service-impl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { FourBlockReadModel, PrecheckResult } from "./provider-types.js";
|
|
2
|
+
export interface ProviderPrecheckInput {
|
|
3
|
+
seat: string;
|
|
4
|
+
toAccount: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ProviderSwitchInput {
|
|
7
|
+
seat: string;
|
|
8
|
+
toAccount: string;
|
|
9
|
+
forceUnsafe: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A discriminated union that TYPE-ENFORCES BR-1 fail-visibility: `succeeded`/`rebind_in_progress`
|
|
13
|
+
* carry NO reasons; `failed_safely` REQUIRES a non-empty reason tuple — a failed switch with no
|
|
14
|
+
* explanation cannot compile. Reasons are string[] so seam D can surface OPERATIONAL failures
|
|
15
|
+
* (auth-switch failure, action-record failure), not only PrecheckReason refusals.
|
|
16
|
+
*/
|
|
17
|
+
export type ProviderSwitchResult = {
|
|
18
|
+
outcome: "succeeded";
|
|
19
|
+
} | {
|
|
20
|
+
outcome: "rebind_in_progress";
|
|
21
|
+
} | {
|
|
22
|
+
outcome: "failed_safely";
|
|
23
|
+
reasons: [string, ...string[]];
|
|
24
|
+
};
|
|
25
|
+
export interface ProviderService {
|
|
26
|
+
/** The ONE four-block read model; the filtered block routes are projections of this. */
|
|
27
|
+
getReadModel(): Promise<FourBlockReadModel>;
|
|
28
|
+
/** Resolve the target/seat state at call time (validate-at-use) and return the safety verdict. */
|
|
29
|
+
precheck(input: ProviderPrecheckInput): Promise<PrecheckResult>;
|
|
30
|
+
/** Precheck-gated switch; returns an explicit business outcome (never a transport error). */
|
|
31
|
+
switchAccount(input: ProviderSwitchInput): Promise<ProviderSwitchResult>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=provider-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-service.d.ts","sourceRoot":"","sources":["../../../src/domain/provider/provider-service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE9E,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,oBAAoB,CAAA;CAAE,GACjC;IAAE,OAAO,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,wFAAwF;IACxF,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC5C,kGAAkG;IAClG,QAAQ,CAAC,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAChE,6FAA6F;IAC7F,aAAa,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC1E"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Slice-04 (OPR.0.5.0.4) — the ProviderService seam. The routes (seam B) are thin over this
|
|
2
|
+
// interface; the real implementation (collection from rig auth + seat registry + the three lanes,
|
|
3
|
+
// switch composition + action recording) is seams C/D. Keeping this an interface lets the routes
|
|
4
|
+
// register and honestly 503 until the production service is wired.
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=provider-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-service.js","sourceRoot":"","sources":["../../../src/domain/provider/provider-service.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,kGAAkG;AAClG,iGAAiG;AACjG,mEAAmE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { ProviderKind, ProviderSignal } from "./provider-types.js";
|
|
2
|
+
/** One provider-native usage window from the Codex app-server `account/rateLimits/read`. */
|
|
3
|
+
export interface CodexWindowReading {
|
|
4
|
+
usedPercent: number;
|
|
5
|
+
windowDurationMins: number;
|
|
6
|
+
resetsAt: string;
|
|
7
|
+
}
|
|
8
|
+
/** Subset of the Codex app-server `account/rateLimits/read` response we consume. */
|
|
9
|
+
export interface CodexRateLimitReading {
|
|
10
|
+
primary?: CodexWindowReading;
|
|
11
|
+
secondary?: CodexWindowReading;
|
|
12
|
+
}
|
|
13
|
+
export interface CodexSignalInput {
|
|
14
|
+
accountRef: string;
|
|
15
|
+
/** Result of feature-probing the app-server generated schema for the rate-limit methods. */
|
|
16
|
+
probe: {
|
|
17
|
+
supported: boolean;
|
|
18
|
+
};
|
|
19
|
+
/** Present only when the probe was supported and a read actually returned. */
|
|
20
|
+
reading?: CodexRateLimitReading;
|
|
21
|
+
asOf: string;
|
|
22
|
+
staleAfter?: string;
|
|
23
|
+
}
|
|
24
|
+
export declare const CODEX_UNKNOWN_REASON: {
|
|
25
|
+
readonly probe_unsupported: "codex_app_server_unavailable";
|
|
26
|
+
readonly empty_reading: "codex_read_returned_no_windows";
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Normalize a Codex app-server rate-limit read into `signals[]` rows.
|
|
30
|
+
* - probe unsupported → one explicit `unknown` row.
|
|
31
|
+
* - supported but no windows → one explicit `unknown` row (never fabricated zeros).
|
|
32
|
+
* - supported with windows → one `provider_structured_read` row per provider-native window,
|
|
33
|
+
* preserving the native primary/secondary distinction.
|
|
34
|
+
*/
|
|
35
|
+
export declare function codexRateLimitSignals(input: CodexSignalInput): ProviderSignal[];
|
|
36
|
+
/** One Claude subscription window from the statusline `rate_limits` object. */
|
|
37
|
+
export interface ClaudeStatuslineWindow {
|
|
38
|
+
usedPercent: number;
|
|
39
|
+
resetsAt: string;
|
|
40
|
+
}
|
|
41
|
+
export interface ClaudeStatuslineReading {
|
|
42
|
+
five_hour?: ClaudeStatuslineWindow;
|
|
43
|
+
seven_day?: ClaudeStatuslineWindow;
|
|
44
|
+
}
|
|
45
|
+
export interface ClaudeSignalInput {
|
|
46
|
+
/** Claude statusline carries session identity but no honest account identity (Option A). */
|
|
47
|
+
seatSession: string;
|
|
48
|
+
/** false = the statusline cache has not been written yet (before the first API response). */
|
|
49
|
+
cachePresent: boolean;
|
|
50
|
+
/** Present only when the cache exists and carried a rate_limits object. */
|
|
51
|
+
reading?: ClaudeStatuslineReading;
|
|
52
|
+
asOf: string;
|
|
53
|
+
staleAfter?: string;
|
|
54
|
+
}
|
|
55
|
+
export declare const CLAUDE_UNKNOWN_REASON: {
|
|
56
|
+
readonly no_statusline_cache_yet: "claude_no_statusline_cache_yet";
|
|
57
|
+
readonly empty_reading: "claude_statusline_cache_had_no_windows";
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Normalize a Claude statusline `rate_limits` reading into `signals[]` rows.
|
|
61
|
+
* - seat before first response (no cache) → explicit unknown row.
|
|
62
|
+
* - seat with subscription windows → one `provider_statusline` row per window (five_hour, and
|
|
63
|
+
* seven_day normalized to "weekly"); a genuine 0 survives as 0.
|
|
64
|
+
* - subscription with cache but no windows → explicit unknown row (never fabricated zeros).
|
|
65
|
+
*/
|
|
66
|
+
export declare function claudeStatuslineSignals(input: ClaudeSignalInput): ProviderSignal[];
|
|
67
|
+
export type ReactiveEventKind = "at_limit" | "stream_failure" | "stop_error";
|
|
68
|
+
export interface ReactiveEventInput {
|
|
69
|
+
provider: ProviderKind;
|
|
70
|
+
accountRef: string;
|
|
71
|
+
kind: ReactiveEventKind;
|
|
72
|
+
asOf: string;
|
|
73
|
+
staleAfter: string;
|
|
74
|
+
}
|
|
75
|
+
export declare function reactiveEventSignal(input: ReactiveEventInput): ProviderSignal;
|
|
76
|
+
//# sourceMappingURL=provider-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-signals.d.ts","sourceRoot":"","sources":["../../../src/domain/provider/provider-signals.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAExE,4FAA4F;AAC5F,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oFAAoF;AACpF,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,KAAK,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;IAC9B,8EAA8E;IAC9E,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AA2BX;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,gBAAgB,GAAG,cAAc,EAAE,CAsC/E;AASD,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,sBAAsB,CAAC;IACnC,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,YAAY,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,qBAAqB;;;CAGxB,CAAC;AAsBX;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,GAAG,cAAc,EAAE,CAkClF;AAQD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAE7E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,CAe7E"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
// Slice-04 (OPR.0.5.0.4) — signals[] normalization (the §2 detection design, encoded).
|
|
2
|
+
// Authority: locked packet 3ffa3c22 IMPLEMENTATION-PRD §2 + the 2026-07-31 RESEARCH verdict.
|
|
3
|
+
// Honesty rules enforced here: feature-probe-negative and empty reads become EXPLICIT
|
|
4
|
+
// `unknown` rows (never silent zeros, never missing rows); only a real structured read is
|
|
5
|
+
// `allow_switch_decision` (BR-2).
|
|
6
|
+
export const CODEX_UNKNOWN_REASON = {
|
|
7
|
+
probe_unsupported: "codex_app_server_unavailable",
|
|
8
|
+
empty_reading: "codex_read_returned_no_windows",
|
|
9
|
+
};
|
|
10
|
+
function codexUnknownSignal(accountRef, asOf, unknownReason, supportsNotification, staleAfter) {
|
|
11
|
+
return {
|
|
12
|
+
provider: "codex",
|
|
13
|
+
accountRef,
|
|
14
|
+
sourceClass: "unknown",
|
|
15
|
+
authority: "unknown",
|
|
16
|
+
asOf,
|
|
17
|
+
staleAfter,
|
|
18
|
+
unknownReason,
|
|
19
|
+
// Unknown DATA must not erase KNOWN transport capability: when the app-server is present
|
|
20
|
+
// (supported-but-empty) `account/rateLimits/updated` still exists, so the notification
|
|
21
|
+
// capability is true; only an absent app-server (probe unsupported) is false.
|
|
22
|
+
supportsNotification,
|
|
23
|
+
automationUse: "do_not_automate",
|
|
24
|
+
// usedPercent / resetsAt / window deliberately OMITTED — an unknown row never carries a
|
|
25
|
+
// fabricated zero (the BR-2 silent-zero trap). A genuine 0 only ever comes from a real read.
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Normalize a Codex app-server rate-limit read into `signals[]` rows.
|
|
30
|
+
* - probe unsupported → one explicit `unknown` row.
|
|
31
|
+
* - supported but no windows → one explicit `unknown` row (never fabricated zeros).
|
|
32
|
+
* - supported with windows → one `provider_structured_read` row per provider-native window,
|
|
33
|
+
* preserving the native primary/secondary distinction.
|
|
34
|
+
*/
|
|
35
|
+
export function codexRateLimitSignals(input) {
|
|
36
|
+
const { accountRef, probe, reading, asOf, staleAfter } = input;
|
|
37
|
+
if (!probe.supported) {
|
|
38
|
+
// App-server absent → no notification transport.
|
|
39
|
+
return [codexUnknownSignal(accountRef, asOf, CODEX_UNKNOWN_REASON.probe_unsupported, false, staleAfter)];
|
|
40
|
+
}
|
|
41
|
+
const windows = [
|
|
42
|
+
["primary", reading?.primary],
|
|
43
|
+
["secondary", reading?.secondary],
|
|
44
|
+
];
|
|
45
|
+
const rows = [];
|
|
46
|
+
for (const [window, w] of windows) {
|
|
47
|
+
if (!w)
|
|
48
|
+
continue;
|
|
49
|
+
rows.push({
|
|
50
|
+
provider: "codex",
|
|
51
|
+
accountRef,
|
|
52
|
+
sourceClass: "provider_structured_read",
|
|
53
|
+
authority: "account_cross_device",
|
|
54
|
+
window,
|
|
55
|
+
usedPercent: w.usedPercent,
|
|
56
|
+
resetsAt: w.resetsAt,
|
|
57
|
+
windowDurationMins: w.windowDurationMins,
|
|
58
|
+
asOf,
|
|
59
|
+
staleAfter,
|
|
60
|
+
supportsNotification: true, // Codex app-server carries account/rateLimits/updated
|
|
61
|
+
automationUse: "allow_switch_decision",
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (rows.length === 0) {
|
|
65
|
+
// App-server present but returned no windows → unknown DATA, but the transport capability
|
|
66
|
+
// (account/rateLimits/updated) is still KNOWN present → supportsNotification stays true.
|
|
67
|
+
return [codexUnknownSignal(accountRef, asOf, CODEX_UNKNOWN_REASON.empty_reading, true, staleAfter)];
|
|
68
|
+
}
|
|
69
|
+
return rows;
|
|
70
|
+
}
|
|
71
|
+
export const CLAUDE_UNKNOWN_REASON = {
|
|
72
|
+
no_statusline_cache_yet: "claude_no_statusline_cache_yet",
|
|
73
|
+
empty_reading: "claude_statusline_cache_had_no_windows",
|
|
74
|
+
};
|
|
75
|
+
function claudeUnknownSignal(seatSession, asOf, unknownReason, staleAfter) {
|
|
76
|
+
return {
|
|
77
|
+
provider: "claude",
|
|
78
|
+
seatSession,
|
|
79
|
+
sourceClass: "unknown",
|
|
80
|
+
authority: "unknown",
|
|
81
|
+
asOf,
|
|
82
|
+
staleAfter,
|
|
83
|
+
unknownReason,
|
|
84
|
+
supportsNotification: false, // Claude statusline has no push transport
|
|
85
|
+
automationUse: "do_not_automate",
|
|
86
|
+
// usedPercent / resetsAt / window OMITTED — never a fabricated zero.
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Normalize a Claude statusline `rate_limits` reading into `signals[]` rows.
|
|
91
|
+
* - seat before first response (no cache) → explicit unknown row.
|
|
92
|
+
* - seat with subscription windows → one `provider_statusline` row per window (five_hour, and
|
|
93
|
+
* seven_day normalized to "weekly"); a genuine 0 survives as 0.
|
|
94
|
+
* - subscription with cache but no windows → explicit unknown row (never fabricated zeros).
|
|
95
|
+
*/
|
|
96
|
+
export function claudeStatuslineSignals(input) {
|
|
97
|
+
const { seatSession, cachePresent, reading, asOf, staleAfter } = input;
|
|
98
|
+
if (!cachePresent) {
|
|
99
|
+
return [claudeUnknownSignal(seatSession, asOf, CLAUDE_UNKNOWN_REASON.no_statusline_cache_yet, staleAfter)];
|
|
100
|
+
}
|
|
101
|
+
const windows = [
|
|
102
|
+
["five_hour", reading?.five_hour],
|
|
103
|
+
["weekly", reading?.seven_day],
|
|
104
|
+
];
|
|
105
|
+
const rows = [];
|
|
106
|
+
for (const [window, w] of windows) {
|
|
107
|
+
if (!w)
|
|
108
|
+
continue;
|
|
109
|
+
rows.push({
|
|
110
|
+
provider: "claude",
|
|
111
|
+
seatSession,
|
|
112
|
+
sourceClass: "provider_statusline",
|
|
113
|
+
authority: "account_cross_device", // Claude.ai Pro/Max subscription windows are account-level
|
|
114
|
+
window,
|
|
115
|
+
usedPercent: w.usedPercent,
|
|
116
|
+
resetsAt: w.resetsAt,
|
|
117
|
+
asOf,
|
|
118
|
+
staleAfter,
|
|
119
|
+
supportsNotification: false, // no push unless OpenRig later supplies a cache-update event
|
|
120
|
+
automationUse: "allow_switch_decision",
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
if (rows.length === 0) {
|
|
124
|
+
return [claudeUnknownSignal(seatSession, asOf, CLAUDE_UNKNOWN_REASON.empty_reading, staleAfter)];
|
|
125
|
+
}
|
|
126
|
+
return rows;
|
|
127
|
+
}
|
|
128
|
+
export function reactiveEventSignal(input) {
|
|
129
|
+
return {
|
|
130
|
+
provider: input.provider,
|
|
131
|
+
accountRef: input.accountRef,
|
|
132
|
+
sourceClass: "provider_event",
|
|
133
|
+
authority: "reactive_error",
|
|
134
|
+
asOf: input.asOf,
|
|
135
|
+
staleAfter: input.staleAfter,
|
|
136
|
+
// supportsNotification is OMITTED: it describes a per-account transport capability (true for
|
|
137
|
+
// Codex account/rateLimits/updated, false/unknown for Claude statusline). A generic reactive
|
|
138
|
+
// event does not establish that capability — hard-coding false would fabricate it.
|
|
139
|
+
// At-limit exhaustion is an actionable switch trigger; stream/stop errors are advisory.
|
|
140
|
+
automationUse: input.kind === "at_limit" ? "allow_switch_decision" : "advisory_only",
|
|
141
|
+
// No usedPercent — a reactive event is exhaustion evidence, not a remaining meter.
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=provider-signals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-signals.js","sourceRoot":"","sources":["../../../src/domain/provider/provider-signals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
export type ProviderKind = "codex" | "claude";
|
|
2
|
+
export type AccountAuthState = "active" | "needs_reauth" | "unknown";
|
|
3
|
+
/** accounts[] — one row per known provider account. */
|
|
4
|
+
export interface ProviderAccount {
|
|
5
|
+
accountId: string;
|
|
6
|
+
label: string;
|
|
7
|
+
provider: ProviderKind;
|
|
8
|
+
authState: AccountAuthState;
|
|
9
|
+
profileRef: string | null;
|
|
10
|
+
asOf: string;
|
|
11
|
+
}
|
|
12
|
+
import type { HostUsageRow } from "./host-usage-rollup.js";
|
|
13
|
+
export type BindingAnomalyKind = "same_account_on_n_seats" | "seat_with_no_account";
|
|
14
|
+
/**
|
|
15
|
+
* First-class binding anomalies — server-computed, not derived client-side. A discriminated
|
|
16
|
+
* union carrying EXACTLY the locked §1 fields for each variant (nothing added).
|
|
17
|
+
*/
|
|
18
|
+
export type SameAccountOnNSeatsAnomaly = {
|
|
19
|
+
kind: "same_account_on_n_seats";
|
|
20
|
+
count: number;
|
|
21
|
+
seats: string[];
|
|
22
|
+
evidence: string;
|
|
23
|
+
asOf: string;
|
|
24
|
+
};
|
|
25
|
+
export type SeatWithNoAccountAnomaly = {
|
|
26
|
+
kind: "seat_with_no_account";
|
|
27
|
+
seat: string;
|
|
28
|
+
evidence: string;
|
|
29
|
+
asOf: string;
|
|
30
|
+
};
|
|
31
|
+
export type BindingAnomaly = SameAccountOnNSeatsAnomaly | SeatWithNoAccountAnomaly;
|
|
32
|
+
/**
|
|
33
|
+
* A `bindings[]` row — a discriminated bound/unbound union over the SAME locked §1 field names
|
|
34
|
+
* (`accountId`, `seatSession`, `rigName`, `boundAt`, `bindingSource`, `anomalies`). A bound row
|
|
35
|
+
* has a non-null `accountId` (+ `boundAt`/`bindingSource`); an unbound seat keeps the same field
|
|
36
|
+
* names but `null` for the absent BINDING data and MUST carry a `seat_with_no_account` anomaly —
|
|
37
|
+
* never a fabricated/sentinel account. Discriminant: `accountId` (string vs null).
|
|
38
|
+
*/
|
|
39
|
+
export type ProviderBinding = {
|
|
40
|
+
accountId: string;
|
|
41
|
+
seatSession: string;
|
|
42
|
+
rigName: string;
|
|
43
|
+
boundAt: string;
|
|
44
|
+
bindingSource: string;
|
|
45
|
+
anomalies: BindingAnomaly[];
|
|
46
|
+
} | {
|
|
47
|
+
accountId: null;
|
|
48
|
+
seatSession: string;
|
|
49
|
+
rigName: string;
|
|
50
|
+
boundAt: null;
|
|
51
|
+
bindingSource: null;
|
|
52
|
+
anomalies: [SeatWithNoAccountAnomaly, ...BindingAnomaly[]];
|
|
53
|
+
};
|
|
54
|
+
export type SignalSourceClass = "provider_structured_read" | "provider_statusline" | "provider_event" | "local_usage_attribution" | "community_probe" | "capture_fallback" | "unknown";
|
|
55
|
+
export type SignalAuthority = "account_cross_device" | "device_local" | "api_workspace" | "reactive_error" | "unknown";
|
|
56
|
+
export type SignalWindow = "five_hour" | "weekly" | "primary" | "secondary" | "monthly_credit" | (string & {});
|
|
57
|
+
export type AutomationUse = "allow_switch_decision" | "advisory_only" | "do_not_automate";
|
|
58
|
+
/**
|
|
59
|
+
* signals[] — the research verdict's normalization. An absent/unknown reading is an EXPLICIT
|
|
60
|
+
* row (`sourceClass`/`authority` = "unknown", `unknownReason` set), never a missing row and
|
|
61
|
+
* never a fabricated zero (`usedPercent` is OMITTED when unknown).
|
|
62
|
+
*/
|
|
63
|
+
export interface ProviderSignal {
|
|
64
|
+
provider: ProviderKind;
|
|
65
|
+
/** Opaque account ref (BR-6). Claude statusline rows omit it: that surface exposes no account identity. */
|
|
66
|
+
accountRef?: string;
|
|
67
|
+
/** Runtime seat identity for seat-keyed lanes such as Claude statusline provider_usage. */
|
|
68
|
+
seatSession?: string;
|
|
69
|
+
sourceClass: SignalSourceClass;
|
|
70
|
+
authority: SignalAuthority;
|
|
71
|
+
window?: SignalWindow;
|
|
72
|
+
usedPercent?: number;
|
|
73
|
+
remaining?: number;
|
|
74
|
+
resetsAt?: string;
|
|
75
|
+
windowDurationMins?: number;
|
|
76
|
+
asOf: string;
|
|
77
|
+
staleAfter?: string;
|
|
78
|
+
unknownReason?: string;
|
|
79
|
+
supportsNotification?: boolean;
|
|
80
|
+
automationUse: AutomationUse;
|
|
81
|
+
}
|
|
82
|
+
export type PrecheckReason = "would_strand_live_conversation" | "target_needs_reauth" | "target_auth_unknown" | "signal_unknown_or_stale" | "rebind_unsupported_for_runtime";
|
|
83
|
+
export type PrecheckResult = {
|
|
84
|
+
safe: true;
|
|
85
|
+
} | {
|
|
86
|
+
safe: false;
|
|
87
|
+
reasons: PrecheckReason[];
|
|
88
|
+
};
|
|
89
|
+
export type SwitchOutcome = "succeeded" | "rebind_in_progress" | "failed_safely";
|
|
90
|
+
/** The whole four-block read model, emitted by `rig provider status --json`. */
|
|
91
|
+
export interface FourBlockReadModel {
|
|
92
|
+
accounts: ProviderAccount[];
|
|
93
|
+
bindings: ProviderBinding[];
|
|
94
|
+
signals: ProviderSignal[];
|
|
95
|
+
asOf: string;
|
|
96
|
+
/** Slice-04 S-A (A2 amendment) — the host-level usage rollup, ADDITIVE: one honest state
|
|
97
|
+
* row per (host, provider) aggregated from the seat-sourced signal rows. Optional so the
|
|
98
|
+
* sealed assembler stays untouched; the collect layer always populates it. */
|
|
99
|
+
hostUsage?: HostUsageRow[];
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=provider-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-types.d.ts","sourceRoot":"","sources":["../../../src/domain/provider/provider-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Slice-04 (OPR.0.5.0.4) provider-interruption-automation — the §1 four-block read model.
|
|
2
|
+
// Schema authority: locked packet 3ffa3c22 IMPLEMENTATION-PRD §1 + the 2026-07-31 RESEARCH
|
|
3
|
+
// verdict's signals[] normalization (adopted verbatim). Field names ARE the contract —
|
|
4
|
+
// additive evolution only after schema lock. BR-6: accountId/profileRef are opaque refs,
|
|
5
|
+
// NEVER a token/header/auth-file content.
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=provider-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-types.js","sourceRoot":"","sources":["../../../src/domain/provider/provider-types.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAC1F,2FAA2F;AAC3F,uFAAuF;AACvF,yFAAyF;AACzF,0CAA0C"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AgentActivity } from "../types.js";
|
|
2
|
+
import type { CodexAuthMetadata } from "./codex-auth-reader.js";
|
|
3
|
+
import type { ProviderSignal } from "./provider-types.js";
|
|
4
|
+
interface ReactiveSeat {
|
|
5
|
+
seatSession: string;
|
|
6
|
+
runtime: string;
|
|
7
|
+
}
|
|
8
|
+
interface ReactiveActivityReader {
|
|
9
|
+
getLatestForNode(input: {
|
|
10
|
+
sessionName: string;
|
|
11
|
+
now: Date;
|
|
12
|
+
}): AgentActivity | null;
|
|
13
|
+
}
|
|
14
|
+
export interface ReactiveTapDeps {
|
|
15
|
+
seats: readonly ReactiveSeat[];
|
|
16
|
+
auth: CodexAuthMetadata;
|
|
17
|
+
activity: ReactiveActivityReader;
|
|
18
|
+
now: string;
|
|
19
|
+
freshnessMs: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Map the current structured activity for each honestly identified Codex seat into reactive
|
|
23
|
+
* provider rows. Generic needs-input activity is deliberately insufficient: permission prompts
|
|
24
|
+
* are blocked seats too, but are not provider interruptions. Only the exact typed vocabulary above
|
|
25
|
+
* is accepted, with raw subtype taking precedence over raw event and normalized reason.
|
|
26
|
+
*/
|
|
27
|
+
export declare function collectReactiveEventSignals(deps: ReactiveTapDeps): ProviderSignal[];
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=reactive-tap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-tap.d.ts","sourceRoot":"","sources":["../../../src/domain/provider/reactive-tap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,UAAU,YAAY;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,sBAAsB;IAC9B,gBAAgB,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG,aAAa,GAAG,IAAI,CAAC;CACnF;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,EAAE,sBAAsB,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAWD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,EAAE,CAkDnF"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { reactiveEventSignal } from "./provider-signals.js";
|
|
2
|
+
const EVENT_KINDS = {
|
|
3
|
+
at_limit: "at_limit",
|
|
4
|
+
rate_limit: "at_limit",
|
|
5
|
+
rate_limited: "at_limit",
|
|
6
|
+
stream_failure: "stream_failure",
|
|
7
|
+
stream_fail: "stream_failure",
|
|
8
|
+
stop_error: "stop_error",
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Map the current structured activity for each honestly identified Codex seat into reactive
|
|
12
|
+
* provider rows. Generic needs-input activity is deliberately insufficient: permission prompts
|
|
13
|
+
* are blocked seats too, but are not provider interruptions. Only the exact typed vocabulary above
|
|
14
|
+
* is accepted, with raw subtype taking precedence over raw event and normalized reason.
|
|
15
|
+
*/
|
|
16
|
+
export function collectReactiveEventSignals(deps) {
|
|
17
|
+
const nowMs = Date.parse(deps.now);
|
|
18
|
+
if (!Number.isFinite(nowMs) || !Number.isFinite(deps.freshnessMs) || deps.freshnessMs <= 0)
|
|
19
|
+
return [];
|
|
20
|
+
// Honest reactive eligibility, centralized. The account ref must name a KNOWN auth
|
|
21
|
+
// profile (a file in auth-profiles/), not merely a nonempty registry token: a registry
|
|
22
|
+
// row that points at an absent profile has no account identity and must produce NO
|
|
23
|
+
// actionable row (explicit-unknown honesty, never a fabricated account).
|
|
24
|
+
const knownProfiles = new Set(deps.auth.profiles);
|
|
25
|
+
const accountBySeat = new Map(deps.auth.seats
|
|
26
|
+
.filter((seat) => seat.runtime === "codex" && knownProfiles.has(seat.authProfile.trim()))
|
|
27
|
+
.map((seat) => [seat.seat, seat.authProfile]));
|
|
28
|
+
const signals = [];
|
|
29
|
+
for (const seat of deps.seats) {
|
|
30
|
+
if (seat.runtime !== "codex")
|
|
31
|
+
continue;
|
|
32
|
+
const accountRef = accountBySeat.get(seat.seatSession);
|
|
33
|
+
if (!accountRef)
|
|
34
|
+
continue;
|
|
35
|
+
const event = deps.activity.getLatestForNode({
|
|
36
|
+
sessionName: seat.seatSession,
|
|
37
|
+
now: new Date(nowMs),
|
|
38
|
+
});
|
|
39
|
+
if (!event || event.stale)
|
|
40
|
+
continue;
|
|
41
|
+
// The PERSISTED activity runtime must itself be Codex. A claude-code activity attached
|
|
42
|
+
// to a Codex inventory/registry seat is NOT Codex provider evidence and must never be
|
|
43
|
+
// relabeled as one — eligibility follows the event, not just the seat.
|
|
44
|
+
if (event.runtime !== "codex")
|
|
45
|
+
continue;
|
|
46
|
+
const kind = eventKind(event);
|
|
47
|
+
const eventAt = event.eventAt;
|
|
48
|
+
if (!kind || typeof eventAt !== "string")
|
|
49
|
+
continue;
|
|
50
|
+
const eventAtMs = Date.parse(eventAt);
|
|
51
|
+
if (!Number.isFinite(eventAtMs))
|
|
52
|
+
continue;
|
|
53
|
+
const staleAfterMs = eventAtMs + deps.freshnessMs;
|
|
54
|
+
// BR-2 expiry is inclusive: at the bound, the event is already stale.
|
|
55
|
+
if (nowMs >= staleAfterMs)
|
|
56
|
+
continue;
|
|
57
|
+
signals.push(reactiveEventSignal({
|
|
58
|
+
provider: "codex",
|
|
59
|
+
accountRef,
|
|
60
|
+
kind,
|
|
61
|
+
asOf: eventAt,
|
|
62
|
+
staleAfter: new Date(staleAfterMs).toISOString(),
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
return signals;
|
|
66
|
+
}
|
|
67
|
+
// Classification binds to the structured provider-interruption PRODUCER CLASS — the
|
|
68
|
+
// event class itself (`rawEvent`), matched exactly against the declared interruption
|
|
69
|
+
// vocabulary. The managed hook relay maps a tool_name into `rawSubtype`, so a generic
|
|
70
|
+
// lifecycle event (e.g. a `PermissionRequest` with a `rate_limit` tool-name subtype) is a
|
|
71
|
+
// permission block, never exhaustion; and a normalized `reason` is a derived field, not a
|
|
72
|
+
// producer. Only an event whose class is an explicit interruption producer is actionable —
|
|
73
|
+
// an unproven producer yields no row (fail-visible, never fabricated).
|
|
74
|
+
function eventKind(activity) {
|
|
75
|
+
const eventClass = activity.rawEvent;
|
|
76
|
+
if (typeof eventClass !== "string")
|
|
77
|
+
return null;
|
|
78
|
+
return EVENT_KINDS[eventClass] ?? null;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=reactive-tap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reactive-tap.js","sourceRoot":"","sources":["../../../src/domain/provider/reactive-tap.ts"],"names":[],"mappings":"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"}
|
|
@@ -143,6 +143,20 @@ export declare class RestoreOrchestrator {
|
|
|
143
143
|
private rollbackToZeroSession;
|
|
144
144
|
private postLaunchRestore;
|
|
145
145
|
private launchedSessionMatchesSnapshotResume;
|
|
146
|
+
/**
|
|
147
|
+
* OPR.0.4.8.3 Seam B — a restored seat's launch posture WITHOUT the in-memory RigSpec
|
|
148
|
+
* (dev-guard restart-provenance ruling):
|
|
149
|
+
* 1. Persisted node provenance (migration 057) is the primary source. For a CUSTOM
|
|
150
|
+
* attachment with readable provenance (declaringDir + the node's raw ref) the policy
|
|
151
|
+
* is REOPENED + re-derived (a custom surface:flag policy restores to full_bypass);
|
|
152
|
+
* an unreadable file degrades to the PERSISTED posture (still restart-stable).
|
|
153
|
+
* 2. No provenance (e.g. organic claim/self-attach seats): the persisted RIG-level ref
|
|
154
|
+
* resolves — builtin refs resolve dirlessly; a custom rig ref without provenance
|
|
155
|
+
* degrades to the resolver's advisory floor (honest absence of a declaring dir).
|
|
156
|
+
* 3. Nothing attached (or a resolution error) → EXPLICIT "floor" — the locked
|
|
157
|
+
* minimum-floor absence contract; never undefined/env-delegation for managed seats.
|
|
158
|
+
*/
|
|
159
|
+
private resolveRestorePosture;
|
|
146
160
|
private attemptResume;
|
|
147
161
|
/**
|
|
148
162
|
* L3 Decision 3: runtime-truth reconciliation. Given a node whose original
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"restore-orchestrator.d.ts","sourceRoot":"","sources":["../../src/domain/restore-orchestrator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"restore-orchestrator.d.ts","sourceRoot":"","sources":["../../src/domain/restore-orchestrator.ts"],"names":[],"mappings":"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"}
|