@openrig/cli 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/daemon/assets/plugins/openrig-core/hooks/scripts/activity-relay.cjs +42 -2
- package/daemon/assets/plugins/openrig-core/skills/mission-slice-sop/SKILL.md +87 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts +46 -0
- package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -1
- package/daemon/dist/adapters/codex-runtime-adapter.js +167 -3
- package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -1
- package/daemon/dist/adapters/tmux.d.ts +31 -0
- package/daemon/dist/adapters/tmux.d.ts.map +1 -1
- package/daemon/dist/adapters/tmux.js +62 -0
- package/daemon/dist/adapters/tmux.js.map +1 -1
- package/daemon/dist/db/migrations/045_resume_verification.d.ts +29 -0
- package/daemon/dist/db/migrations/045_resume_verification.d.ts.map +1 -0
- package/daemon/dist/db/migrations/045_resume_verification.js +34 -0
- package/daemon/dist/db/migrations/045_resume_verification.js.map +1 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts +41 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.d.ts.map +1 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.js +56 -0
- package/daemon/dist/db/migrations/046_seat_identity_verdicts.js.map +1 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.d.ts +48 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.d.ts.map +1 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.js +52 -0
- package/daemon/dist/db/migrations/047_events_node_type_index.js.map +1 -0
- package/daemon/dist/domain/activity-endpoint.d.ts +25 -0
- package/daemon/dist/domain/activity-endpoint.d.ts.map +1 -0
- package/daemon/dist/domain/activity-endpoint.js +91 -0
- package/daemon/dist/domain/activity-endpoint.js.map +1 -0
- package/daemon/dist/domain/claim-service.d.ts +36 -0
- package/daemon/dist/domain/claim-service.d.ts.map +1 -1
- package/daemon/dist/domain/claim-service.js +90 -0
- package/daemon/dist/domain/claim-service.js.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts +57 -0
- package/daemon/dist/domain/claude-compaction-enforcer.d.ts.map +1 -1
- package/daemon/dist/domain/claude-compaction-enforcer.js +149 -3
- package/daemon/dist/domain/claude-compaction-enforcer.js.map +1 -1
- package/daemon/dist/domain/event-loop-monitor.d.ts +100 -0
- package/daemon/dist/domain/event-loop-monitor.d.ts.map +1 -0
- package/daemon/dist/domain/event-loop-monitor.js +127 -0
- package/daemon/dist/domain/event-loop-monitor.js.map +1 -0
- package/daemon/dist/domain/gate-predicate.d.ts +29 -0
- package/daemon/dist/domain/gate-predicate.d.ts.map +1 -0
- package/daemon/dist/domain/gate-predicate.js +73 -0
- package/daemon/dist/domain/gate-predicate.js.map +1 -0
- package/daemon/dist/domain/graph-projection.d.ts +7 -1
- package/daemon/dist/domain/graph-projection.d.ts.map +1 -1
- package/daemon/dist/domain/graph-projection.js +19 -1
- package/daemon/dist/domain/graph-projection.js.map +1 -1
- package/daemon/dist/domain/node-inventory.d.ts +7 -1
- package/daemon/dist/domain/node-inventory.d.ts.map +1 -1
- package/daemon/dist/domain/node-inventory.js +84 -5
- package/daemon/dist/domain/node-inventory.js.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts +4 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.d.ts.map +1 -1
- package/daemon/dist/domain/periodic-snapshot-scheduler.js +11 -0
- package/daemon/dist/domain/periodic-snapshot-scheduler.js.map +1 -1
- package/daemon/dist/domain/policies/idle-gate-qitem.d.ts +14 -0
- package/daemon/dist/domain/policies/idle-gate-qitem.d.ts.map +1 -0
- package/daemon/dist/domain/policies/idle-gate-qitem.js +114 -0
- package/daemon/dist/domain/policies/idle-gate-qitem.js.map +1 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts +8 -0
- package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/restore-orchestrator.js +109 -27
- package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts +25 -1
- package/daemon/dist/domain/restore-plan-preview.d.ts.map +1 -1
- package/daemon/dist/domain/restore-plan-preview.js +72 -4
- package/daemon/dist/domain/restore-plan-preview.js.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.d.ts +44 -2
- package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -1
- package/daemon/dist/domain/resume-metadata-refresher.js +92 -6
- package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -1
- package/daemon/dist/domain/resume-token-capture.d.ts +50 -0
- package/daemon/dist/domain/resume-token-capture.d.ts.map +1 -0
- package/daemon/dist/domain/resume-token-capture.js +63 -0
- package/daemon/dist/domain/resume-token-capture.js.map +1 -0
- package/daemon/dist/domain/rig-status-compose.d.ts +62 -0
- package/daemon/dist/domain/rig-status-compose.d.ts.map +1 -0
- package/daemon/dist/domain/rig-status-compose.js +149 -0
- package/daemon/dist/domain/rig-status-compose.js.map +1 -0
- package/daemon/dist/domain/rig-teardown.d.ts +3 -1
- package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
- package/daemon/dist/domain/rig-teardown.js +4 -19
- package/daemon/dist/domain/rig-teardown.js.map +1 -1
- package/daemon/dist/domain/route-timing-recorder.d.ts +42 -0
- package/daemon/dist/domain/route-timing-recorder.d.ts.map +1 -0
- package/daemon/dist/domain/route-timing-recorder.js +62 -0
- package/daemon/dist/domain/route-timing-recorder.js.map +1 -0
- package/daemon/dist/domain/scope/scope-audit.d.ts +3 -1
- package/daemon/dist/domain/scope/scope-audit.d.ts.map +1 -1
- package/daemon/dist/domain/scope/scope-audit.js +30 -1
- package/daemon/dist/domain/scope/scope-audit.js.map +1 -1
- package/daemon/dist/domain/seat-handover-service.d.ts +50 -7
- package/daemon/dist/domain/seat-handover-service.d.ts.map +1 -1
- package/daemon/dist/domain/seat-handover-service.js +273 -33
- package/daemon/dist/domain/seat-handover-service.js.map +1 -1
- package/daemon/dist/domain/seat-identity-reconciler.d.ts +59 -0
- package/daemon/dist/domain/seat-identity-reconciler.d.ts.map +1 -0
- package/daemon/dist/domain/seat-identity-reconciler.js +207 -0
- package/daemon/dist/domain/seat-identity-reconciler.js.map +1 -0
- package/daemon/dist/domain/seat-identity-store.d.ts +27 -0
- package/daemon/dist/domain/seat-identity-store.d.ts.map +1 -0
- package/daemon/dist/domain/seat-identity-store.js +106 -0
- package/daemon/dist/domain/seat-identity-store.js.map +1 -0
- package/daemon/dist/domain/seat-switch-client-service.d.ts +57 -0
- package/daemon/dist/domain/seat-switch-client-service.d.ts.map +1 -0
- package/daemon/dist/domain/seat-switch-client-service.js +168 -0
- package/daemon/dist/domain/seat-switch-client-service.js.map +1 -0
- package/daemon/dist/domain/self-attach-service.d.ts +8 -0
- package/daemon/dist/domain/self-attach-service.d.ts.map +1 -1
- package/daemon/dist/domain/self-attach-service.js +20 -7
- package/daemon/dist/domain/self-attach-service.js.map +1 -1
- package/daemon/dist/domain/session-registry.d.ts +35 -4
- package/daemon/dist/domain/session-registry.d.ts.map +1 -1
- package/daemon/dist/domain/session-registry.js +89 -10
- package/daemon/dist/domain/session-registry.js.map +1 -1
- package/daemon/dist/domain/session-transport.d.ts +8 -1
- package/daemon/dist/domain/session-transport.d.ts.map +1 -1
- package/daemon/dist/domain/session-transport.js +143 -37
- package/daemon/dist/domain/session-transport.js.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -1
- package/daemon/dist/domain/startup-orchestrator.js +34 -2
- package/daemon/dist/domain/startup-orchestrator.js.map +1 -1
- package/daemon/dist/domain/startup-proof.d.ts +63 -0
- package/daemon/dist/domain/startup-proof.d.ts.map +1 -0
- package/daemon/dist/domain/startup-proof.js +165 -0
- package/daemon/dist/domain/startup-proof.js.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts +103 -0
- package/daemon/dist/domain/successor-session-launcher.d.ts.map +1 -0
- package/daemon/dist/domain/successor-session-launcher.js +246 -0
- package/daemon/dist/domain/successor-session-launcher.js.map +1 -0
- package/daemon/dist/domain/types.d.ts +81 -0
- package/daemon/dist/domain/types.d.ts.map +1 -1
- package/daemon/dist/domain/types.js +8 -0
- package/daemon/dist/domain/types.js.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts +2 -2
- package/daemon/dist/domain/watchdog-jobs-repository.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-jobs-repository.js +4 -0
- package/daemon/dist/domain/watchdog-jobs-repository.js.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.d.ts.map +1 -1
- package/daemon/dist/domain/watchdog-policy-engine.js +19 -0
- package/daemon/dist/domain/watchdog-policy-engine.js.map +1 -1
- package/daemon/dist/index.d.ts.map +1 -1
- package/daemon/dist/index.js +18 -1
- package/daemon/dist/index.js.map +1 -1
- package/daemon/dist/routes/activity.d.ts.map +1 -1
- package/daemon/dist/routes/activity.js +26 -0
- package/daemon/dist/routes/activity.js.map +1 -1
- package/daemon/dist/routes/agent-images.d.ts.map +1 -1
- package/daemon/dist/routes/agent-images.js +139 -0
- package/daemon/dist/routes/agent-images.js.map +1 -1
- package/daemon/dist/routes/compaction.d.ts +17 -0
- package/daemon/dist/routes/compaction.d.ts.map +1 -0
- package/daemon/dist/routes/compaction.js +125 -0
- package/daemon/dist/routes/compaction.js.map +1 -0
- package/daemon/dist/routes/restore-check.d.ts +10 -0
- package/daemon/dist/routes/restore-check.d.ts.map +1 -1
- package/daemon/dist/routes/restore-check.js +46 -37
- package/daemon/dist/routes/restore-check.js.map +1 -1
- package/daemon/dist/routes/rigs.d.ts.map +1 -1
- package/daemon/dist/routes/rigs.js +70 -1
- package/daemon/dist/routes/rigs.js.map +1 -1
- package/daemon/dist/routes/seat.d.ts.map +1 -1
- package/daemon/dist/routes/seat.js +53 -2
- package/daemon/dist/routes/seat.js.map +1 -1
- package/daemon/dist/routes/sessions.d.ts.map +1 -1
- package/daemon/dist/routes/sessions.js +44 -9
- package/daemon/dist/routes/sessions.js.map +1 -1
- package/daemon/dist/routes/snapshots.d.ts.map +1 -1
- package/daemon/dist/routes/snapshots.js +16 -1
- package/daemon/dist/routes/snapshots.js.map +1 -1
- package/daemon/dist/routes/transport.d.ts.map +1 -1
- package/daemon/dist/routes/transport.js +12 -5
- package/daemon/dist/routes/transport.js.map +1 -1
- package/daemon/dist/server.d.ts +32 -0
- package/daemon/dist/server.d.ts.map +1 -1
- package/daemon/dist/server.js +28 -1
- package/daemon/dist/server.js.map +1 -1
- package/daemon/dist/startup.d.ts +1 -0
- package/daemon/dist/startup.d.ts.map +1 -1
- package/daemon/dist/startup.js +91 -18
- package/daemon/dist/startup.js.map +1 -1
- package/daemon/specs/agents/shared/skills/pods/orchestration-team/SKILL.md +1 -1
- package/dist/commands/compact.d.ts +15 -0
- package/dist/commands/compact.d.ts.map +1 -0
- package/dist/commands/compact.js +62 -0
- package/dist/commands/compact.js.map +1 -0
- package/dist/commands/daemon.d.ts.map +1 -1
- package/dist/commands/daemon.js +18 -2
- package/dist/commands/daemon.js.map +1 -1
- package/dist/commands/fork.d.ts +4 -0
- package/dist/commands/fork.d.ts.map +1 -0
- package/dist/commands/fork.js +101 -0
- package/dist/commands/fork.js.map +1 -0
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +34 -4
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/ps.d.ts.map +1 -1
- package/dist/commands/ps.js +14 -4
- package/dist/commands/ps.js.map +1 -1
- package/dist/commands/queue.d.ts +6 -0
- package/dist/commands/queue.d.ts.map +1 -1
- package/dist/commands/queue.js +78 -4
- package/dist/commands/queue.js.map +1 -1
- package/dist/commands/reconcile-session.d.ts.map +1 -1
- package/dist/commands/reconcile-session.js +2 -2
- package/dist/commands/reconcile-session.js.map +1 -1
- package/dist/commands/restore-check.d.ts.map +1 -1
- package/dist/commands/restore-check.js +93 -0
- package/dist/commands/restore-check.js.map +1 -1
- package/dist/commands/scope.d.ts.map +1 -1
- package/dist/commands/scope.js +51 -1
- package/dist/commands/scope.js.map +1 -1
- package/dist/commands/seat.d.ts +17 -0
- package/dist/commands/seat.d.ts.map +1 -1
- package/dist/commands/seat.js +145 -32
- package/dist/commands/seat.js.map +1 -1
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +151 -10
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/start.d.ts +5 -0
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/startup-proof.d.ts +24 -0
- package/dist/commands/startup-proof.d.ts.map +1 -0
- package/dist/commands/startup-proof.js +100 -0
- package/dist/commands/startup-proof.js.map +1 -0
- package/dist/commands/unclaim.js +2 -2
- package/dist/commands/unclaim.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +10 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/commands/watchdog.js +2 -2
- package/dist/commands/watchdog.js.map +1 -1
- package/dist/daemon-lifecycle.d.ts +23 -0
- package/dist/daemon-lifecycle.d.ts.map +1 -1
- package/dist/daemon-lifecycle.js +50 -5
- package/dist/daemon-lifecycle.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/codex-auth.d.ts +24 -0
- package/dist/lib/codex-auth.d.ts.map +1 -1
- package/dist/lib/codex-auth.js +89 -17
- package/dist/lib/codex-auth.js.map +1 -1
- package/dist/lib/scope/scope-audit.d.ts +3 -1
- package/dist/lib/scope/scope-audit.d.ts.map +1 -1
- package/dist/lib/scope/scope-audit.js +30 -1
- package/dist/lib/scope/scope-audit.js.map +1 -1
- package/dist/lib/scope-templates/mission-placeholder.md +41 -0
- package/dist/lib/scope-templates/mission-progress.md +2 -0
- package/dist/lib/scope-templates/mission-release.md +41 -0
- package/dist/lib/scope-templates/placeholder.md +4 -0
- package/dist/lib/scope-templates/proof.md +2 -0
- package/dist/lib/scope-templates/slice-progress.md +2 -0
- package/dist/openrig-compat.d.ts +19 -0
- package/dist/openrig-compat.d.ts.map +1 -1
- package/dist/openrig-compat.js +31 -1
- package/dist/openrig-compat.js.map +1 -1
- package/package.json +1 -1
- package/ui/dist/assets/index-DYZniQcc.js +597 -0
- package/ui/dist/assets/index-trcb4Yf_.css +32 -0
- package/ui/dist/index.html +23 -2
- package/ui/dist/assets/index-CnqRX7A3.css +0 -32
- package/ui/dist/assets/index-CtL9jXFt.js +0 -582
|
@@ -8,6 +8,7 @@ export class SelfAttachService {
|
|
|
8
8
|
tmuxAdapter;
|
|
9
9
|
transcriptStore;
|
|
10
10
|
claudeContextProvisioner;
|
|
11
|
+
activityEnv;
|
|
11
12
|
constructor(deps) {
|
|
12
13
|
if (deps.db !== deps.rigRepo.db)
|
|
13
14
|
throw new Error("SelfAttachService: rigRepo must share the same db handle");
|
|
@@ -24,6 +25,7 @@ export class SelfAttachService {
|
|
|
24
25
|
this.eventBus = deps.eventBus;
|
|
25
26
|
this.tmuxAdapter = deps.tmuxAdapter ?? null;
|
|
26
27
|
this.transcriptStore = deps.transcriptStore ?? null;
|
|
28
|
+
this.activityEnv = deps.activityEnv ?? {};
|
|
27
29
|
this.claudeContextProvisioner = deps.claudeContextProvisioner ?? null;
|
|
28
30
|
}
|
|
29
31
|
async attachToNode(opts) {
|
|
@@ -96,7 +98,7 @@ export class SelfAttachService {
|
|
|
96
98
|
this.maybeProvisionContextCollector(opts.runtime, opts.cwd, result.sessionName, result.attachmentType);
|
|
97
99
|
await this.maybeStartTranscriptCapture(rig.rig.name, result.sessionName, result.attachmentType);
|
|
98
100
|
this.eventBus.notifySubscribers(result.event);
|
|
99
|
-
return this.toSuccess(result.nodeId, result.logicalId, result.sessionId, result.sessionName, result.attachmentType);
|
|
101
|
+
return this.toSuccess(result.nodeId, result.logicalId, result.sessionId, result.sessionName, result.attachmentType, runtime);
|
|
100
102
|
}
|
|
101
103
|
catch (error) {
|
|
102
104
|
return { ok: false, code: "duplicate_logical_id", error: error.message };
|
|
@@ -122,7 +124,7 @@ export class SelfAttachService {
|
|
|
122
124
|
this.maybeProvisionContextCollector(runtime, cwd, result.sessionName, result.attachmentType);
|
|
123
125
|
await this.maybeStartTranscriptCapture(rigName, result.sessionName, result.attachmentType);
|
|
124
126
|
this.eventBus.notifySubscribers(result.event);
|
|
125
|
-
return this.toSuccess(result.nodeId, result.logicalId, result.sessionId, result.sessionName, result.attachmentType);
|
|
127
|
+
return this.toSuccess(result.nodeId, result.logicalId, result.sessionId, result.sessionName, result.attachmentType, runtime);
|
|
126
128
|
}
|
|
127
129
|
catch (error) {
|
|
128
130
|
return { ok: false, code: "already_bound", error: error.message };
|
|
@@ -184,7 +186,21 @@ export class SelfAttachService {
|
|
|
184
186
|
}
|
|
185
187
|
catch { /* best-effort */ }
|
|
186
188
|
}
|
|
187
|
-
toSuccess(nodeId, logicalId, sessionId, sessionName, attachmentType) {
|
|
189
|
+
toSuccess(nodeId, logicalId, sessionId, sessionName, attachmentType, runtime) {
|
|
190
|
+
// OPR.0.4.3.28 B3 — echo the activity env so the caller's shell (and any
|
|
191
|
+
// agent it starts) produces activity signal: OPENRIG_RUNTIME is required by
|
|
192
|
+
// the relay to build a payload; url+token let it reach the ingest endpoint
|
|
193
|
+
// directly (file-discovery is the fallback when they are absent).
|
|
194
|
+
const env = {
|
|
195
|
+
OPENRIG_NODE_ID: nodeId,
|
|
196
|
+
OPENRIG_SESSION_NAME: sessionName,
|
|
197
|
+
};
|
|
198
|
+
if (runtime)
|
|
199
|
+
env.OPENRIG_RUNTIME = runtime;
|
|
200
|
+
if (this.activityEnv.url)
|
|
201
|
+
env.OPENRIG_URL = this.activityEnv.url;
|
|
202
|
+
if (this.activityEnv.token)
|
|
203
|
+
env.OPENRIG_ACTIVITY_HOOK_TOKEN = this.activityEnv.token;
|
|
188
204
|
return {
|
|
189
205
|
ok: true,
|
|
190
206
|
nodeId,
|
|
@@ -192,10 +208,7 @@ export class SelfAttachService {
|
|
|
192
208
|
sessionId,
|
|
193
209
|
sessionName,
|
|
194
210
|
attachmentType,
|
|
195
|
-
env
|
|
196
|
-
OPENRIG_NODE_ID: nodeId,
|
|
197
|
-
OPENRIG_SESSION_NAME: sessionName,
|
|
198
|
-
},
|
|
211
|
+
env,
|
|
199
212
|
};
|
|
200
213
|
}
|
|
201
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-attach-service.js","sourceRoot":"","sources":["../../src/domain/self-attach-service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"self-attach-service.js","sourceRoot":"","sources":["../../src/domain/self-attach-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,28 @@ interface BindingFields {
|
|
|
9
9
|
cmuxWorkspace?: string;
|
|
10
10
|
cmuxSurface?: string;
|
|
11
11
|
}
|
|
12
|
-
/** Resume-token provenance precedence (OPR.0.4.0.22
|
|
13
|
-
* a lower-rank write never overwrites a
|
|
14
|
-
*
|
|
12
|
+
/** Resume-token provenance precedence (OPR.0.4.0.22; adoption rung added by
|
|
13
|
+
* OPR.0.4.3.20 FR-3). Higher rank wins; a lower-rank write never overwrites a
|
|
14
|
+
* higher-rank persisted token.
|
|
15
|
+
* operator/attested (deliberate set) > hook (runtime self-report) >
|
|
16
|
+
* adoption (captured at the reconcile/adopt/bind boundary) > scrape (pane).
|
|
17
|
+
* adoption sits BELOW hook deliberately: a live runtime hook self-report is
|
|
18
|
+
* fresher than an adoption-time snapshot, so hook must be able to refresh an
|
|
19
|
+
* adoption token (FR-3 §2.4 — do not freeze the token at adoption time and
|
|
20
|
+
* reintroduce the staleness the survive slice exists to kill). */
|
|
15
21
|
export declare const RESUME_PROVENANCE_RANK: Record<string, number>;
|
|
22
|
+
/** OPR.0.4.3.20 FR-4 — the latest live session per node, shape needed by the
|
|
23
|
+
* resume-metadata refresher (structurally compatible with ResumeRefreshSession). */
|
|
24
|
+
export interface LatestLiveSession {
|
|
25
|
+
nodeId: string;
|
|
26
|
+
sessionId: string;
|
|
27
|
+
sessionName: string;
|
|
28
|
+
status: string;
|
|
29
|
+
runtime: string | null;
|
|
30
|
+
resumeType: string | null;
|
|
31
|
+
resumeToken: string | null;
|
|
32
|
+
cwd: string | null;
|
|
33
|
+
}
|
|
16
34
|
export declare class SessionRegistry {
|
|
17
35
|
readonly db: Database.Database;
|
|
18
36
|
constructor(db: Database.Database);
|
|
@@ -21,7 +39,15 @@ export declare class SessionRegistry {
|
|
|
21
39
|
registerClaimedSession(nodeId: string, sessionName: string): Session;
|
|
22
40
|
updateStatus(sessionId: string, status: string): void;
|
|
23
41
|
updateStartupStatus(sessionId: string, status: "pending" | "ready" | "attention_required" | "failed", completedAt?: string): void;
|
|
24
|
-
updateResumeToken(sessionId: string, type: string, token: string, provenance?: "hook" | "scrape" | "operator"):
|
|
42
|
+
updateResumeToken(sessionId: string, type: string, token: string, provenance?: "hook" | "scrape" | "operator" | "adoption"): boolean;
|
|
43
|
+
/** OPR.0.4.3.20 FR-6 — record a live resume-probe outcome WITHOUT clearing the
|
|
44
|
+
* token. On `resumable` it stamps the freshness marker (equal-value-refresh);
|
|
45
|
+
* on `not_resumable` / `inconclusive` it marks the PRESENT token stale so the
|
|
46
|
+
* restore plan surfaces it as `stale/unverified — re-verify` (never a silent
|
|
47
|
+
* null). This replaces the old clear-on-not-resumable behavior (§2.1b) — the
|
|
48
|
+
* token stays put; FR-7's blank/fresh rollback catches an actually-unresumable
|
|
49
|
+
* token at restore time. */
|
|
50
|
+
markResumeProbeResult(sessionId: string, status: "resumable" | "not_resumable" | "inconclusive"): void;
|
|
25
51
|
/** OPR.0.4.0.22 — resolve a canonical session name to the context needed to
|
|
26
52
|
* set its resume token: the latest session row + its node's runtime + the
|
|
27
53
|
* current resume provenance. Returns null when no session matches. */
|
|
@@ -37,6 +63,11 @@ export declare class SessionRegistry {
|
|
|
37
63
|
markSuperseded(sessionId: string): void;
|
|
38
64
|
clearBinding(nodeId: string): void;
|
|
39
65
|
getSessionsForRig(rigId: string): Session[];
|
|
66
|
+
/** OPR.0.4.3.20 FR-4 — the latest session PER NODE, filtered to live statuses
|
|
67
|
+
* (running / idle / unknown), with the fields the resume-metadata refresher
|
|
68
|
+
* needs. Lifted from rig-teardown so both the teardown pre-down path and the
|
|
69
|
+
* FR-4 periodic/manual snapshot refresh call ONE query (no duplication). */
|
|
70
|
+
getLatestLiveSessions(rigId: string): LatestLiveSession[];
|
|
40
71
|
getBindingForNode(nodeId: string): Binding | null;
|
|
41
72
|
updateBinding(nodeId: string, fields: BindingFields): Binding;
|
|
42
73
|
private rowToSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-registry.d.ts","sourceRoot":"","sources":["../../src/domain/session-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAI3C,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAGnD,UAAU,aAAa;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED
|
|
1
|
+
{"version":3,"file":"session-registry.d.ts","sourceRoot":"","sources":["../../src/domain/session-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { monotonicFactory } from "ulid";
|
|
2
2
|
const ulid = monotonicFactory();
|
|
3
3
|
import { validateSessionName } from "./session-name.js";
|
|
4
|
-
/** Resume-token provenance precedence (OPR.0.4.0.22
|
|
5
|
-
* a lower-rank write never overwrites a
|
|
6
|
-
*
|
|
4
|
+
/** Resume-token provenance precedence (OPR.0.4.0.22; adoption rung added by
|
|
5
|
+
* OPR.0.4.3.20 FR-3). Higher rank wins; a lower-rank write never overwrites a
|
|
6
|
+
* higher-rank persisted token.
|
|
7
|
+
* operator/attested (deliberate set) > hook (runtime self-report) >
|
|
8
|
+
* adoption (captured at the reconcile/adopt/bind boundary) > scrape (pane).
|
|
9
|
+
* adoption sits BELOW hook deliberately: a live runtime hook self-report is
|
|
10
|
+
* fresher than an adoption-time snapshot, so hook must be able to refresh an
|
|
11
|
+
* adoption token (FR-3 §2.4 — do not freeze the token at adoption time and
|
|
12
|
+
* reintroduce the staleness the survive slice exists to kill). */
|
|
7
13
|
export const RESUME_PROVENANCE_RANK = {
|
|
8
14
|
scrape: 0,
|
|
9
|
-
|
|
10
|
-
|
|
15
|
+
adoption: 1,
|
|
16
|
+
hook: 2,
|
|
17
|
+
operator: 3,
|
|
11
18
|
};
|
|
12
19
|
export class SessionRegistry {
|
|
13
20
|
db;
|
|
@@ -50,10 +57,23 @@ export class SessionRegistry {
|
|
|
50
57
|
}
|
|
51
58
|
}
|
|
52
59
|
// OPR.0.4.0.22 — resume-token provenance precedence. A deliberate
|
|
53
|
-
// operator/attested set is authoritative and OUTRANKS
|
|
54
|
-
//
|
|
60
|
+
// operator/attested set is authoritative and OUTRANKS the runtime hook, the
|
|
61
|
+
// adoption-boundary capture, and the pane scrape (hook > adoption > scrape).
|
|
55
62
|
// A lower-rank write must never clobber a higher-rank persisted token.
|
|
63
|
+
//
|
|
64
|
+
// OPR.0.4.3.20 FR-3 — validity-before-rank guard: an empty/whitespace token
|
|
65
|
+
// is a SKIP, never a write. "Flakiness = missing = no-write, not a bad
|
|
66
|
+
// write." This runs BEFORE the rank comparison so NO caller (a flaky hook,
|
|
67
|
+
// adoption capture, or scrape) can ever replace a valid stored token with an
|
|
68
|
+
// empty one, even from a higher-provenance source.
|
|
69
|
+
//
|
|
70
|
+
// Returns whether a write actually happened: `true` on UPDATE, `false` on an
|
|
71
|
+
// empty-token skip or a lower-rank no-op. Callers that only set-and-forget can
|
|
72
|
+
// ignore it; the adoption-capture path uses it so its audit event never
|
|
73
|
+
// falsely claims a captured write when the provenance guard refused it.
|
|
56
74
|
updateResumeToken(sessionId, type, token, provenance) {
|
|
75
|
+
if (typeof token !== "string" || token.trim().length === 0)
|
|
76
|
+
return false;
|
|
57
77
|
if (provenance) {
|
|
58
78
|
const existing = this.db.prepare("SELECT resume_provenance FROM sessions WHERE id = ?").get(sessionId);
|
|
59
79
|
const existingProv = existing?.resume_provenance ?? null;
|
|
@@ -61,13 +81,38 @@ export class SessionRegistry {
|
|
|
61
81
|
const existingRank = RESUME_PROVENANCE_RANK[existingProv] ?? -1;
|
|
62
82
|
const newRank = RESUME_PROVENANCE_RANK[provenance] ?? -1;
|
|
63
83
|
if (newRank < existingRank)
|
|
64
|
-
return; // lower-rank cannot overwrite higher-rank
|
|
84
|
+
return false; // lower-rank cannot overwrite higher-rank
|
|
65
85
|
}
|
|
66
86
|
}
|
|
67
87
|
const prov = provenance ?? null;
|
|
88
|
+
// OPR.0.4.3.20 FR-6 — stamp-on-verify (+ equal-value-refresh): a token
|
|
89
|
+
// (re-)derived from live state IS a verification, so refresh the freshness
|
|
90
|
+
// marker + mark the last probe `resumable` on EVERY successful write, even
|
|
91
|
+
// when the token value is unchanged (a re-verified-but-unchanged token must
|
|
92
|
+
// not look untouched). The plan reads these to compute present/stale.
|
|
68
93
|
this.db
|
|
69
|
-
.prepare("UPDATE sessions SET resume_type = ?, resume_token = ?, resume_provenance = COALESCE(?, resume_provenance)
|
|
94
|
+
.prepare("UPDATE sessions SET resume_type = ?, resume_token = ?, resume_provenance = COALESCE(?, resume_provenance), " +
|
|
95
|
+
"resume_last_verified = datetime('now'), resume_last_probe_status = 'resumable' WHERE id = ?")
|
|
70
96
|
.run(type, token, prov, sessionId);
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
/** OPR.0.4.3.20 FR-6 — record a live resume-probe outcome WITHOUT clearing the
|
|
100
|
+
* token. On `resumable` it stamps the freshness marker (equal-value-refresh);
|
|
101
|
+
* on `not_resumable` / `inconclusive` it marks the PRESENT token stale so the
|
|
102
|
+
* restore plan surfaces it as `stale/unverified — re-verify` (never a silent
|
|
103
|
+
* null). This replaces the old clear-on-not-resumable behavior (§2.1b) — the
|
|
104
|
+
* token stays put; FR-7's blank/fresh rollback catches an actually-unresumable
|
|
105
|
+
* token at restore time. */
|
|
106
|
+
markResumeProbeResult(sessionId, status) {
|
|
107
|
+
if (status === "resumable") {
|
|
108
|
+
this.db
|
|
109
|
+
.prepare("UPDATE sessions SET resume_last_verified = datetime('now'), resume_last_probe_status = 'resumable' WHERE id = ?")
|
|
110
|
+
.run(sessionId);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.db
|
|
114
|
+
.prepare("UPDATE sessions SET resume_last_probe_status = ? WHERE id = ?")
|
|
115
|
+
.run(status, sessionId);
|
|
71
116
|
}
|
|
72
117
|
/** OPR.0.4.0.22 — resolve a canonical session name to the context needed to
|
|
73
118
|
* set its resume token: the latest session row + its node's runtime + the
|
|
@@ -89,8 +134,12 @@ export class SessionRegistry {
|
|
|
89
134
|
};
|
|
90
135
|
}
|
|
91
136
|
clearResumeToken(sessionId) {
|
|
137
|
+
// OPR.0.4.3.20 FR-6 — also null the verification-freshness columns so a
|
|
138
|
+
// cleared slot carries no orphan freshness. NOTE: after §2.1b the refresher
|
|
139
|
+
// validate path marks-stale instead of clearing, so this has no in-tree
|
|
140
|
+
// caller on the live path; kept for explicit-clear callers/tests.
|
|
92
141
|
this.db
|
|
93
|
-
.prepare("UPDATE sessions SET resume_type = NULL, resume_token = NULL, resume_provenance = NULL WHERE id = ?")
|
|
142
|
+
.prepare("UPDATE sessions SET resume_type = NULL, resume_token = NULL, resume_provenance = NULL, resume_last_verified = NULL, resume_last_probe_status = NULL WHERE id = ?")
|
|
94
143
|
.run(sessionId);
|
|
95
144
|
}
|
|
96
145
|
markDetached(sessionId) {
|
|
@@ -111,6 +160,30 @@ export class SessionRegistry {
|
|
|
111
160
|
.all(rigId);
|
|
112
161
|
return rows.map((r) => this.rowToSession(r));
|
|
113
162
|
}
|
|
163
|
+
/** OPR.0.4.3.20 FR-4 — the latest session PER NODE, filtered to live statuses
|
|
164
|
+
* (running / idle / unknown), with the fields the resume-metadata refresher
|
|
165
|
+
* needs. Lifted from rig-teardown so both the teardown pre-down path and the
|
|
166
|
+
* FR-4 periodic/manual snapshot refresh call ONE query (no duplication). */
|
|
167
|
+
getLatestLiveSessions(rigId) {
|
|
168
|
+
const rows = this.db.prepare(`
|
|
169
|
+
SELECT n.id as node_id, s.id as session_id, s.session_name, s.status, n.runtime, n.cwd, s.resume_type, s.resume_token
|
|
170
|
+
FROM nodes n
|
|
171
|
+
JOIN sessions s ON s.node_id = n.id
|
|
172
|
+
WHERE n.rig_id = ?
|
|
173
|
+
AND s.id = (SELECT s2.id FROM sessions s2 WHERE s2.node_id = n.id ORDER BY s2.created_at DESC, s2.id DESC LIMIT 1)
|
|
174
|
+
AND s.status IN ('running', 'idle', 'unknown')
|
|
175
|
+
`).all(rigId);
|
|
176
|
+
return rows.map((r) => ({
|
|
177
|
+
nodeId: r.node_id,
|
|
178
|
+
sessionId: r.session_id,
|
|
179
|
+
sessionName: r.session_name,
|
|
180
|
+
status: r.status,
|
|
181
|
+
runtime: r.runtime,
|
|
182
|
+
resumeType: r.resume_type,
|
|
183
|
+
resumeToken: r.resume_token,
|
|
184
|
+
cwd: r.cwd,
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
114
187
|
getBindingForNode(nodeId) {
|
|
115
188
|
const row = this.db
|
|
116
189
|
.prepare("SELECT * FROM bindings WHERE node_id = ?")
|
|
@@ -158,6 +231,12 @@ export class SessionRegistry {
|
|
|
158
231
|
status: row.status,
|
|
159
232
|
resumeType: row.resume_type ?? null,
|
|
160
233
|
resumeToken: row.resume_token ?? null,
|
|
234
|
+
// OPR.0.4.3.20 FR-6 — carry provenance + verification freshness so a
|
|
235
|
+
// snapshot's serialized sessions (and getSessionsForRig) surface token
|
|
236
|
+
// state in the restore plan. Nullable/degrading for pre-45 rows.
|
|
237
|
+
resumeProvenance: row.resume_provenance ?? null,
|
|
238
|
+
resumeLastVerified: row.resume_last_verified ?? null,
|
|
239
|
+
resumeLastProbeStatus: row.resume_last_probe_status ?? null,
|
|
161
240
|
restorePolicy: row.restore_policy ?? "resume_if_possible",
|
|
162
241
|
lastSeenAt: row.last_seen_at,
|
|
163
242
|
createdAt: row.created_at,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-registry.js","sourceRoot":"","sources":["../../src/domain/session-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAYxD
|
|
1
|
+
{"version":3,"file":"session-registry.js","sourceRoot":"","sources":["../../src/domain/session-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AAExC,MAAM,IAAI,GAAG,gBAAgB,EAAE,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAYxD;;;;;;;;mEAQmE;AACnE,MAAM,CAAC,MAAM,sBAAsB,GAA2B;IAC5D,MAAM,EAAE,CAAC;IACT,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,CAAC;CACZ,CAAC;AAeF,MAAM,OAAO,eAAe;IACjB,EAAE,CAAoB;IAC/B,YAAY,EAAqB;QAC/B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,eAAe,CAAC,MAAc,EAAE,WAAmB;QACjD,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CACb,yBAAyB,WAAW,kIAAkI,CACvK,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,mEAAmE,CACpE;aACA,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,YAAY,CACtB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAe,CAC7E,CAAC;IACJ,CAAC;IAED,2GAA2G;IAC3G,sBAAsB,CAAC,MAAc,EAAE,WAAmB;QACxD,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,kIAAkI,CACnI;aACA,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,YAAY,CACtB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAe,CAC7E,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,MAAc;QAC5C,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,6EAA6E,CAAC;aACtF,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,MAA6D,EAAE,WAAoB;QACxH,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,+EAA+E,CAAC;iBACxF,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,qDAAqD,CAAC;iBAC9D,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,4EAA4E;IAC5E,6EAA6E;IAC7E,uEAAuE;IACvE,EAAE;IACF,4EAA4E;IAC5E,uEAAuE;IACvE,2EAA2E;IAC3E,6EAA6E;IAC7E,mDAAmD;IACnD,EAAE;IACF,6EAA6E;IAC7E,+EAA+E;IAC/E,wEAAwE;IACxE,wEAAwE;IACxE,iBAAiB,CAAC,SAAiB,EAAE,IAAY,EAAE,KAAa,EAAE,UAAwD;QACxH,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACzE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC9B,qDAAqD,CACtD,CAAC,GAAG,CAAC,SAAS,CAAqD,CAAC;YACrE,MAAM,YAAY,GAAG,QAAQ,EAAE,iBAAiB,IAAI,IAAI,CAAC;YACzD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,YAAY,GAAG,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACzD,IAAI,OAAO,GAAG,YAAY;oBAAE,OAAO,KAAK,CAAC,CAAC,0CAA0C;YACtF,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,IAAI,IAAI,CAAC;QAChC,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,4EAA4E;QAC5E,sEAAsE;QACtE,IAAI,CAAC,EAAE;aACJ,OAAO,CACN,6GAA6G;YAC3G,6FAA6F,CAChG;aACA,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;iCAM6B;IAC7B,qBAAqB,CAAC,SAAiB,EAAE,MAAsD;QAC7F,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;YAC3B,IAAI,CAAC,EAAE;iBACJ,OAAO,CAAC,iHAAiH,CAAC;iBAC1H,GAAG,CAAC,SAAS,CAAC,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED;;2EAEuE;IACvE,uBAAuB,CAAC,WAAmB;QAOzC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB;;;;qDAI+C,CAChD,CAAC,GAAG,CAAC,WAAW,CAMJ,CAAC;QACd,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,IAAI;SACjD,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAChC,wEAAwE;QACxE,4EAA4E;QAC5E,wEAAwE;QACxE,kEAAkE;QAClE,IAAI,CAAC,EAAE;aACJ,OAAO,CAAC,kKAAkK,CAAC;aAC3K,GAAG,CAAC,SAAS,CAAC,CAAC;IACpB,CAAC;IAED,YAAY,CAAC,SAAiB;QAC5B,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,iBAAiB,CAAC,KAAa;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE;aACjB,OAAO,CACN;;;+BAGuB,CACxB;aACA,GAAG,CAAC,KAAK,CAAiB,CAAC;QAE9B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;;iFAG6E;IAC7E,qBAAqB,CAAC,KAAa;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;KAO5B,CAAC,CAAC,GAAG,CAAC,KAAK,CAA8L,CAAC;QAE3M,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,CAAC,CAAC,OAAO;YACjB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,UAAU,EAAE,CAAC,CAAC,WAAW;YACzB,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,GAAG,EAAE,CAAC,CAAC,GAAG;SACX,CAAC,CAAC,CAAC;IACN,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,0CAA0C,CAAC;aACnD,GAAG,CAAC,MAAM,CAA2B,CAAC;QAEzC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,MAAqB;QACjD,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;iBACrB,OAAO,CAAC,0CAA0C,CAAC;iBACnD,GAAG,CAAC,MAAM,CAA2B,CAAC;YAEzC,IAAI,QAAQ,EAAE,CAAC;gBACb,0DAA0D;gBAC1D,IAAI,CAAC,EAAE;qBACJ,OAAO,CACN;;;;;;;;;8BASkB,CACnB;qBACA,GAAG,CACF,MAAM,CAAC,cAAc,IAAI,QAAQ,CAAC,eAAe,IAAI,MAAM,EAC3D,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,YAAY,EAC3C,MAAM,CAAC,UAAU,IAAI,QAAQ,CAAC,WAAW,EACzC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EACrC,MAAM,CAAC,mBAAmB,IAAI,QAAQ,CAAC,qBAAqB,EAC5D,MAAM,CAAC,aAAa,IAAI,QAAQ,CAAC,cAAc,EAC/C,MAAM,CAAC,WAAW,IAAI,QAAQ,CAAC,YAAY,EAC3C,MAAM,CACP,CAAC;YACN,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;gBAClB,IAAI,CAAC,EAAE;qBACJ,OAAO,CACN;gDACoC,CACrC;qBACA,GAAG,CACF,EAAE,EACF,MAAM,EACN,MAAM,CAAC,cAAc,IAAI,MAAM,EAC/B,MAAM,CAAC,WAAW,IAAI,IAAI,EAC1B,MAAM,CAAC,UAAU,IAAI,IAAI,EACzB,MAAM,CAAC,QAAQ,IAAI,IAAI,EACvB,MAAM,CAAC,mBAAmB,IAAI,IAAI,EAClC,MAAM,CAAC,aAAa,IAAI,IAAI,EAC5B,MAAM,CAAC,WAAW,IAAI,IAAI,CAC3B,CAAC;YACN,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,EAAE,CAAC;QAET,OAAO,IAAI,CAAC,YAAY,CACtB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC,GAAG,CAAC,MAAM,CAAe,CACtF,CAAC;IACJ,CAAC;IAED,8BAA8B;IAEtB,YAAY,CAAC,GAAe;QAClC,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,UAAU,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;YACnC,WAAW,EAAE,GAAG,CAAC,YAAY,IAAI,IAAI;YACrC,qEAAqE;YACrE,uEAAuE;YACvE,iEAAiE;YACjE,gBAAgB,EAAE,GAAG,CAAC,iBAAiB,IAAI,IAAI;YAC/C,kBAAkB,EAAE,GAAG,CAAC,oBAAoB,IAAI,IAAI;YACpD,qBAAqB,EAAE,GAAG,CAAC,wBAAwB,IAAI,IAAI;YAC3D,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,oBAAoB;YACzD,UAAU,EAAE,GAAG,CAAC,YAAY;YAC5B,SAAS,EAAE,GAAG,CAAC,UAAU;YACzB,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;YAC3D,aAAa,EAAG,GAAG,CAAC,cAA2C,IAAI,SAAS;YAC5E,kBAAkB,EAAE,GAAG,CAAC,oBAAoB,IAAI,IAAI;SACrD,CAAC;IACJ,CAAC;IAEO,YAAY,CAAC,GAAe;QAClC,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,GAAG,CAAC,OAAO;YACnB,cAAc,EAAG,GAAG,CAAC,eAA6C,IAAI,MAAM;YAC5E,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,QAAQ,EAAE,GAAG,CAAC,SAAS;YACvB,mBAAmB,EAAE,GAAG,CAAC,qBAAqB,IAAI,IAAI;YACtD,aAAa,EAAE,GAAG,CAAC,cAAc;YACjC,WAAW,EAAE,GAAG,CAAC,YAAY;YAC7B,SAAS,EAAE,GAAG,CAAC,UAAU;SAC1B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -20,6 +20,8 @@ export declare function probeSessionActivity(input: {
|
|
|
20
20
|
}): Promise<AgentActivity>;
|
|
21
21
|
export type TargetSpec = {
|
|
22
22
|
session: string;
|
|
23
|
+
} | {
|
|
24
|
+
sessions: string[];
|
|
23
25
|
} | {
|
|
24
26
|
rig: string;
|
|
25
27
|
} | {
|
|
@@ -48,6 +50,9 @@ export interface SendOpts {
|
|
|
48
50
|
reason?: string;
|
|
49
51
|
actorSession?: string | null;
|
|
50
52
|
}
|
|
53
|
+
export interface BroadcastOpts extends SendOpts {
|
|
54
|
+
envelopeSender?: string;
|
|
55
|
+
}
|
|
51
56
|
export interface SendResult {
|
|
52
57
|
ok: boolean;
|
|
53
58
|
sessionName: string;
|
|
@@ -117,6 +122,7 @@ export declare class SessionTransport {
|
|
|
117
122
|
resolveSessions(target: TargetSpec): Promise<ResolveResult>;
|
|
118
123
|
private resolveGlobal;
|
|
119
124
|
private resolveBySessionName;
|
|
125
|
+
private resolveByList;
|
|
120
126
|
private resolveByRig;
|
|
121
127
|
private resolveByPod;
|
|
122
128
|
private collectTransportTargetsForRig;
|
|
@@ -124,11 +130,12 @@ export declare class SessionTransport {
|
|
|
124
130
|
private waitForIdle;
|
|
125
131
|
private classifySendReadiness;
|
|
126
132
|
private hookFreshForSend;
|
|
133
|
+
private diagnoseProducerLink;
|
|
127
134
|
private recordPromptOverride;
|
|
128
135
|
capture(sessionName: string, opts?: {
|
|
129
136
|
lines?: number;
|
|
130
137
|
}): Promise<CaptureResult>;
|
|
131
|
-
broadcast(target: TargetSpec, text: string, opts?:
|
|
138
|
+
broadcast(target: TargetSpec, text: string, opts?: BroadcastOpts): Promise<BroadcastResult>;
|
|
132
139
|
}
|
|
133
140
|
export {};
|
|
134
141
|
//# sourceMappingURL=session-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-transport.d.ts","sourceRoot":"","sources":["../../src/domain/session-transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session-transport.d.ts","sourceRoot":"","sources":["../../src/domain/session-transport.ts"],"names":[],"mappings":"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"}
|