@telora/daemon 0.22.144 → 0.22.160
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/build-info.json +8 -3
- package/dist/audit/audit-phase.d.ts +34 -1
- package/dist/audit/audit-phase.d.ts.map +1 -1
- package/dist/audit/audit-phase.js +77 -9
- package/dist/audit/audit-phase.js.map +1 -1
- package/dist/backends/codex/codex-mcp-proxy.d.ts +4 -6
- package/dist/backends/codex/codex-mcp-proxy.d.ts.map +1 -1
- package/dist/backends/codex/codex-mcp-proxy.js.map +1 -1
- package/dist/backends/codex/mcp-preflight.d.ts +2 -2
- package/dist/backends/codex/mcp-preflight.d.ts.map +1 -1
- package/dist/backends/codex/mcp-preflight.js.map +1 -1
- package/dist/completion/completion-phase-registry.d.ts +1 -0
- package/dist/completion/completion-phase-registry.d.ts.map +1 -1
- package/dist/completion/completion-phase-registry.js +7 -5
- package/dist/completion/completion-phase-registry.js.map +1 -1
- package/dist/completion/escalation-provenance.d.ts.map +1 -1
- package/dist/completion/escalation-provenance.js +5 -2
- package/dist/completion/escalation-provenance.js.map +1 -1
- package/dist/completion/exit-classification.d.ts +1 -1
- package/dist/completion/exit-classification.d.ts.map +1 -1
- package/dist/completion/exit-classification.js +7 -1
- package/dist/completion/exit-classification.js.map +1 -1
- package/dist/completion/review-cycle-cap.d.ts +81 -35
- package/dist/completion/review-cycle-cap.d.ts.map +1 -1
- package/dist/completion/review-cycle-cap.js +60 -132
- package/dist/completion/review-cycle-cap.js.map +1 -1
- package/dist/completion/review-exit-deps.d.ts +3 -1
- package/dist/completion/review-exit-deps.d.ts.map +1 -1
- package/dist/completion/review-exit-deps.js +3 -1
- package/dist/completion/review-exit-deps.js.map +1 -1
- package/dist/completion/review-exit-phase.d.ts.map +1 -1
- package/dist/completion/review-exit-phase.js +5 -4
- package/dist/completion/review-exit-phase.js.map +1 -1
- package/dist/completion/state-cascade.d.ts.map +1 -1
- package/dist/completion/state-cascade.js +3 -7
- package/dist/completion/state-cascade.js.map +1 -1
- package/dist/delivery/delivery-review-coverage.d.ts +16 -0
- package/dist/delivery/delivery-review-coverage.d.ts.map +1 -1
- package/dist/delivery/delivery-review-coverage.js +16 -0
- package/dist/delivery/delivery-review-coverage.js.map +1 -1
- package/dist/focus/focus-engine.d.ts +16 -0
- package/dist/focus/focus-engine.d.ts.map +1 -1
- package/dist/focus/focus-engine.js +37 -17
- package/dist/focus/focus-engine.js.map +1 -1
- package/dist/focus/focus-executor.d.ts.map +1 -1
- package/dist/focus/focus-executor.js +7 -0
- package/dist/focus/focus-executor.js.map +1 -1
- package/dist/focus/focus-spawn-decision.d.ts +5 -3
- package/dist/focus/focus-spawn-decision.d.ts.map +1 -1
- package/dist/focus/focus-spawn-decision.js.map +1 -1
- package/dist/focus/listener-spawn.d.ts.map +1 -1
- package/dist/focus/listener-spawn.js +4 -3
- package/dist/focus/listener-spawn.js.map +1 -1
- package/dist/focus/listener.d.ts +15 -0
- package/dist/focus/listener.d.ts.map +1 -1
- package/dist/focus/listener.js +58 -9
- package/dist/focus/listener.js.map +1 -1
- package/dist/focus/review-cycle-cap-hold.d.ts +15 -94
- package/dist/focus/review-cycle-cap-hold.d.ts.map +1 -1
- package/dist/focus/review-cycle-cap-hold.js +54 -112
- package/dist/focus/review-cycle-cap-hold.js.map +1 -1
- package/dist/focus/session-health.d.ts +22 -1
- package/dist/focus/session-health.d.ts.map +1 -1
- package/dist/focus/session-health.js +28 -3
- package/dist/focus/session-health.js.map +1 -1
- package/dist/focus/session-process-reap.d.ts +3 -1
- package/dist/focus/session-process-reap.d.ts.map +1 -1
- package/dist/focus/session-process-reap.js +20 -0
- package/dist/focus/session-process-reap.js.map +1 -1
- package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/index.js +1 -0
- package/dist/focus-stage-lifecycle/index.js.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +10 -0
- package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
- package/dist/focus-stage-lifecycle/wedge-watchdog.js +27 -3
- package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
- package/dist/git/focus-integration-sync.d.ts +42 -3
- package/dist/git/focus-integration-sync.d.ts.map +1 -1
- package/dist/git/focus-integration-sync.js +38 -2
- package/dist/git/focus-integration-sync.js.map +1 -1
- package/dist/merge/abandoned-merge-recovery.d.ts.map +1 -1
- package/dist/merge/abandoned-merge-recovery.js +10 -0
- package/dist/merge/abandoned-merge-recovery.js.map +1 -1
- package/dist/merge/merge-back-loop.d.ts +1 -0
- package/dist/merge/merge-back-loop.d.ts.map +1 -1
- package/dist/merge/merge-back-loop.js +3 -3
- package/dist/merge/merge-back-loop.js.map +1 -1
- package/dist/prompt/team-prompt-base.d.ts +2 -1
- package/dist/prompt/team-prompt-base.d.ts.map +1 -1
- package/dist/prompt/team-prompt-base.js +5 -19
- package/dist/prompt/team-prompt-base.js.map +1 -1
- package/dist/prompt-sections/integration-reconcile-section.d.ts +45 -0
- package/dist/prompt-sections/integration-reconcile-section.d.ts.map +1 -0
- package/dist/prompt-sections/integration-reconcile-section.js +69 -0
- package/dist/prompt-sections/integration-reconcile-section.js.map +1 -0
- package/dist/prompt-sections/persona-sections.d.ts +0 -20
- package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
- package/dist/prompt-sections/persona-sections.js +4 -49
- package/dist/prompt-sections/persona-sections.js.map +1 -1
- package/dist/prompt-sections/testing-standard.d.ts +51 -0
- package/dist/prompt-sections/testing-standard.d.ts.map +1 -0
- package/dist/prompt-sections/testing-standard.js +132 -0
- package/dist/prompt-sections/testing-standard.js.map +1 -0
- package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
- package/dist/queries/agent-resolvable-promotion.js +7 -5
- package/dist/queries/agent-resolvable-promotion.js.map +1 -1
- package/dist/queries/ended-arm.d.ts +47 -0
- package/dist/queries/ended-arm.d.ts.map +1 -0
- package/dist/queries/ended-arm.js +35 -0
- package/dist/queries/ended-arm.js.map +1 -0
- package/dist/queries/escalation-consumption.d.ts.map +1 -1
- package/dist/queries/escalation-consumption.js +0 -1
- package/dist/queries/escalation-consumption.js.map +1 -1
- package/dist/queries/focus-discovery.d.ts +14 -0
- package/dist/queries/focus-discovery.d.ts.map +1 -1
- package/dist/queries/focus-discovery.js +1 -0
- package/dist/queries/focus-discovery.js.map +1 -1
- package/dist/queries/focus-integration-conflict.d.ts +78 -0
- package/dist/queries/focus-integration-conflict.d.ts.map +1 -0
- package/dist/queries/focus-integration-conflict.js +136 -0
- package/dist/queries/focus-integration-conflict.js.map +1 -0
- package/dist/queries/focuses.d.ts +6 -3
- package/dist/queries/focuses.d.ts.map +1 -1
- package/dist/queries/focuses.js +13 -5
- package/dist/queries/focuses.js.map +1 -1
- package/dist/queries/incident-correlation.d.ts +1 -2
- package/dist/queries/incident-correlation.d.ts.map +1 -1
- package/dist/queries/incident-correlation.js +1 -3
- package/dist/queries/incident-correlation.js.map +1 -1
- package/dist/queries/local-models.js +1 -1
- package/dist/queries/local-models.js.map +1 -1
- package/dist/queries/schemas-local-model.d.ts +47 -0
- package/dist/queries/schemas-local-model.d.ts.map +1 -0
- package/dist/queries/schemas-local-model.js +57 -0
- package/dist/queries/schemas-local-model.js.map +1 -0
- package/dist/queries/schemas.d.ts +10 -32
- package/dist/queries/schemas.d.ts.map +1 -1
- package/dist/queries/schemas.js +10 -41
- package/dist/queries/schemas.js.map +1 -1
- package/dist/queries/sessions.d.ts +120 -12
- package/dist/queries/sessions.d.ts.map +1 -1
- package/dist/queries/sessions.js +104 -11
- package/dist/queries/sessions.js.map +1 -1
- package/dist/queries/shared.d.ts +1 -0
- package/dist/queries/shared.d.ts.map +1 -1
- package/dist/queries/shared.js +1 -1
- package/dist/queries/shared.js.map +1 -1
- package/dist/queries/system-session.d.ts.map +1 -1
- package/dist/queries/system-session.js +3 -1
- package/dist/queries/system-session.js.map +1 -1
- package/dist/resolvers/assembly-engine.d.ts +71 -1
- package/dist/resolvers/assembly-engine.d.ts.map +1 -1
- package/dist/resolvers/assembly-engine.js +82 -43
- package/dist/resolvers/assembly-engine.js.map +1 -1
- package/dist/resolvers/branch-work-arming.d.ts +133 -0
- package/dist/resolvers/branch-work-arming.d.ts.map +1 -0
- package/dist/resolvers/branch-work-arming.js +67 -0
- package/dist/resolvers/branch-work-arming.js.map +1 -0
- package/dist/resolvers/focus-review-coverage.d.ts.map +1 -1
- package/dist/resolvers/focus-review-coverage.js +31 -2
- package/dist/resolvers/focus-review-coverage.js.map +1 -1
- package/dist/resolvers/wiki-topic.d.ts +6 -5
- package/dist/resolvers/wiki-topic.d.ts.map +1 -1
- package/dist/resolvers/wiki-topic.js +43 -27
- package/dist/resolvers/wiki-topic.js.map +1 -1
- package/dist/session/session-lineage.d.ts.map +1 -1
- package/dist/session/session-lineage.js +1 -0
- package/dist/session/session-lineage.js.map +1 -1
- package/dist/shell/crash-recovery.d.ts +4 -2
- package/dist/shell/crash-recovery.d.ts.map +1 -1
- package/dist/shell/crash-recovery.js +15 -14
- package/dist/shell/crash-recovery.js.map +1 -1
- package/dist/shell/daemon-instance.d.ts +176 -0
- package/dist/shell/daemon-instance.d.ts.map +1 -0
- package/dist/shell/daemon-instance.js +281 -0
- package/dist/shell/daemon-instance.js.map +1 -0
- package/dist/shell/graceful-shutdown.d.ts +12 -1
- package/dist/shell/graceful-shutdown.d.ts.map +1 -1
- package/dist/shell/graceful-shutdown.js +7 -4
- package/dist/shell/graceful-shutdown.js.map +1 -1
- package/dist/shell/shutdown-ownership.d.ts +34 -0
- package/dist/shell/shutdown-ownership.d.ts.map +1 -0
- package/dist/shell/shutdown-ownership.js +51 -0
- package/dist/shell/shutdown-ownership.js.map +1 -0
- package/dist/shell/unified-shell.d.ts.map +1 -1
- package/dist/shell/unified-shell.js +12 -5
- package/dist/shell/unified-shell.js.map +1 -1
- package/dist/shell/worker-pidfile.d.ts +127 -11
- package/dist/shell/worker-pidfile.d.ts.map +1 -1
- package/dist/shell/worker-pidfile.js +349 -58
- package/dist/shell/worker-pidfile.js.map +1 -1
- package/dist/spawn/lead-launch.d.ts +17 -1
- package/dist/spawn/lead-launch.d.ts.map +1 -1
- package/dist/spawn/lead-launch.js +56 -7
- package/dist/spawn/lead-launch.js.map +1 -1
- package/dist/spawn/lead-process-ownership.d.ts +5 -4
- package/dist/spawn/lead-process-ownership.d.ts.map +1 -1
- package/dist/spawn/lead-process-ownership.js +7 -4
- package/dist/spawn/lead-process-ownership.js.map +1 -1
- package/dist/spawn/lifecycle.d.ts +0 -12
- package/dist/spawn/lifecycle.d.ts.map +1 -1
- package/dist/spawn/lifecycle.js +76 -19
- package/dist/spawn/lifecycle.js.map +1 -1
- package/dist/spawn/liveness.d.ts.map +1 -1
- package/dist/spawn/liveness.js +3 -1
- package/dist/spawn/liveness.js.map +1 -1
- package/dist/spawn/one-shot-process-ownership.d.ts +46 -2
- package/dist/spawn/one-shot-process-ownership.d.ts.map +1 -1
- package/dist/spawn/one-shot-process-ownership.js +78 -3
- package/dist/spawn/one-shot-process-ownership.js.map +1 -1
- package/dist/spawn/process-group-kill.d.ts.map +1 -1
- package/dist/spawn/process-group-kill.js +3 -1
- package/dist/spawn/process-group-kill.js.map +1 -1
- package/dist/spawn/process-spawn.d.ts +5 -15
- package/dist/spawn/process-spawn.d.ts.map +1 -1
- package/dist/spawn/process-spawn.js +2 -1
- package/dist/spawn/process-spawn.js.map +1 -1
- package/dist/spawn/prompt-assembly.d.ts +27 -2
- package/dist/spawn/prompt-assembly.d.ts.map +1 -1
- package/dist/spawn/prompt-assembly.js +65 -43
- package/dist/spawn/prompt-assembly.js.map +1 -1
- package/dist/spawn/worktree-session.d.ts +46 -2
- package/dist/spawn/worktree-session.d.ts.map +1 -1
- package/dist/spawn/worktree-session.js +57 -4
- package/dist/spawn/worktree-session.js.map +1 -1
- package/dist/testing/fixtures/conflicting-repo.d.ts +30 -0
- package/dist/testing/fixtures/conflicting-repo.d.ts.map +1 -0
- package/dist/testing/fixtures/conflicting-repo.js +89 -0
- package/dist/testing/fixtures/conflicting-repo.js.map +1 -0
- package/dist/testing/fixtures/index.d.ts.map +1 -1
- package/dist/testing/fixtures/index.js +2 -1
- package/dist/testing/fixtures/index.js.map +1 -1
- package/dist/testing/fixtures/pending-spawn-world.js +2 -2
- package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
- package/dist/types/exit-category.d.ts +59 -0
- package/dist/types/exit-category.d.ts.map +1 -0
- package/dist/types/exit-category.js +133 -0
- package/dist/types/exit-category.js.map +1 -0
- package/dist/types/index.js +1 -1
- package/dist/types/session.d.ts +5 -1
- package/dist/types/session.d.ts.map +1 -1
- package/dist/types/session.js +1 -1
- package/dist/types/session.js.map +1 -1
- package/dist/verify/stall-detector-config.d.ts +5 -1
- package/dist/verify/stall-detector-config.d.ts.map +1 -1
- package/dist/verify/stall-detector-config.js +5 -1
- package/dist/verify/stall-detector-config.js.map +1 -1
- package/dist/worktree/state.d.ts +75 -1
- package/dist/worktree/state.d.ts.map +1 -1
- package/dist/worktree/state.js +89 -17
- package/dist/worktree/state.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,18 +1,78 @@
|
|
|
1
|
+
import type { AgentSession, ExitCategory, TerminalSessionStatus } from '../types/index.js';
|
|
2
|
+
import { type CallApiDeps } from './shared.js';
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
4
|
+
* Who a session-liveness read is asking about.
|
|
5
|
+
*
|
|
6
|
+
* At least ONE of these must be supplied. An unscoped read of `agent_sessions`
|
|
7
|
+
* returns every live session in the ORGANIZATION -- across products, and across
|
|
8
|
+
* hosts -- and its callers have historically treated that answer as "mine",
|
|
9
|
+
* marking a peer's running session failed. The scope is required precisely so
|
|
10
|
+
* that mistake cannot be made by omission: see `assertSessionScope`.
|
|
11
|
+
*
|
|
12
|
+
* - productId -- sessions belonging to this product's focuses.
|
|
13
|
+
* - focusId -- sessions on one focus (the tightest scope; a focus has one product).
|
|
14
|
+
* - daemonHostname -- sessions created by a daemon on this HOST. Keeps one
|
|
15
|
+
* host's reads off another's; does NOT separate two instances on one host.
|
|
16
|
+
* - daemonInstanceId -- sessions created by ONE daemon instance
|
|
17
|
+
* (<hostname>:<pid>:<startIdentity>, see shell/daemon-instance.ts). The
|
|
18
|
+
* finest ownership scope, and the only one that separates two daemons sharing
|
|
19
|
+
* a host and product. Rows predating the column are NULL and match no
|
|
20
|
+
* instance.
|
|
3
21
|
*/
|
|
4
|
-
|
|
22
|
+
export interface SessionScope {
|
|
23
|
+
productId?: string;
|
|
24
|
+
focusId?: string;
|
|
25
|
+
daemonHostname?: string;
|
|
26
|
+
daemonInstanceId?: string;
|
|
27
|
+
}
|
|
5
28
|
/**
|
|
6
|
-
*
|
|
29
|
+
* Reject a session-liveness read that names nobody. The server rejects it too
|
|
30
|
+
* (400); this throws at the call site so the omission is attributable to the
|
|
31
|
+
* caller that made it rather than surfacing as a generic API failure.
|
|
32
|
+
*/
|
|
33
|
+
export declare function assertSessionScope(scope: SessionScope): void;
|
|
34
|
+
/**
|
|
35
|
+
* Get active sessions (starting/running) within a scope.
|
|
7
36
|
* Used by crash recovery to reconcile worktrees against DB state.
|
|
37
|
+
*
|
|
38
|
+
* The scope is REQUIRED (see SessionScope). Supplying several narrows the read:
|
|
39
|
+
* `{ productId, daemonHostname }` returns this product's live sessions on this host,
|
|
40
|
+
* which is what a crash-recovery sweep is entitled to mark failed.
|
|
41
|
+
*/
|
|
42
|
+
export declare function getActiveSessions(scope: SessionScope): Promise<AgentSession[]>;
|
|
43
|
+
/**
|
|
44
|
+
* The sessions ONE DAEMON owns: this product, on this host.
|
|
45
|
+
*
|
|
46
|
+
* The scope a crash-recovery sweep is entitled to mark failed. Every row that
|
|
47
|
+
* pass reads it stamps failed / recovery_cleanup, so the read must name an
|
|
48
|
+
* OWNER. It used to name none -- the per-product loop built a product-scoped
|
|
49
|
+
* config and the call dropped it -- and the server's no-scope branch filtered
|
|
50
|
+
* on organization_id alone, so a daemon managing N products ran N org-wide
|
|
51
|
+
* sweeps at init, each failing the other products' live sessions and any peer
|
|
52
|
+
* host's. `pid` was the only process identifier on the row, and it is not
|
|
53
|
+
* comparable across machines.
|
|
54
|
+
*
|
|
55
|
+
* Rows predating agent_sessions.daemon_hostname are NULL and match no host, so
|
|
56
|
+
* this scope excludes them -- deliberately: an unattributable row may belong to
|
|
57
|
+
* a peer. A local orphan that predates the column still has a worktree on this
|
|
58
|
+
* host, and the worktree-driven recovery pass reaps it regardless of the column.
|
|
8
59
|
*/
|
|
9
|
-
export declare function
|
|
60
|
+
export declare function ownedSessionScope(productId: string): SessionScope;
|
|
61
|
+
/**
|
|
62
|
+
* True when a session row's status means a process is (or is about to be)
|
|
63
|
+
* writing. Exported so every reader asking "is this worktree being written?"
|
|
64
|
+
* tests the SAME set -- a reader that names a narrower set answers "not being
|
|
65
|
+
* written" for a worktree that is, which is the failure this predicate exists
|
|
66
|
+
* to prevent.
|
|
67
|
+
*/
|
|
68
|
+
export declare function isActiveSessionStatus(status: string): boolean;
|
|
10
69
|
/**
|
|
11
70
|
* Return the first active/starting session for a given focus, or null.
|
|
12
71
|
*
|
|
13
72
|
* Used by worktree/state.ts to gate "is the worktree being written?" — if an
|
|
14
73
|
* agent_sessions row for this focus is still in an active/starting status,
|
|
15
|
-
* the worktree is considered live.
|
|
74
|
+
* the worktree is considered live. Scoped to the focus at the query boundary,
|
|
75
|
+
* so it reads only that focus's rows rather than filtering the whole org's.
|
|
16
76
|
*/
|
|
17
77
|
export declare function getActiveSessionForFocus(focusId: string): Promise<{
|
|
18
78
|
id: string;
|
|
@@ -41,7 +101,7 @@ export declare function countFocusSessionsSince(focusId: string, since: string):
|
|
|
41
101
|
/**
|
|
42
102
|
* Get count of active sessions per role.
|
|
43
103
|
*/
|
|
44
|
-
export declare function getActiveSessionCountByRole(
|
|
104
|
+
export declare function getActiveSessionCountByRole(scope: SessionScope): Promise<Record<string, number>>;
|
|
45
105
|
/**
|
|
46
106
|
* Parameters for creating a new agent session.
|
|
47
107
|
*/
|
|
@@ -68,17 +128,22 @@ export interface CreateSessionParams {
|
|
|
68
128
|
*/
|
|
69
129
|
claudeSessionId?: string | null;
|
|
70
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* The hostname this daemon runs on -- the ownership identity stamped onto every
|
|
133
|
+
* session it creates, and the scope its crash recovery is entitled to reap.
|
|
134
|
+
* Exported so the recovery sweep and the create path cannot disagree about what
|
|
135
|
+
* "this host" means.
|
|
136
|
+
*/
|
|
137
|
+
export declare function daemonHostname(): string;
|
|
71
138
|
/**
|
|
72
139
|
* Create a new agent session.
|
|
73
140
|
*/
|
|
74
|
-
export declare function createSession(params: CreateSessionParams): Promise<AgentSession>;
|
|
141
|
+
export declare function createSession(params: CreateSessionParams, deps?: CallApiDeps): Promise<AgentSession>;
|
|
75
142
|
/**
|
|
76
|
-
*
|
|
143
|
+
* Fields a session update may carry besides the status/category pair.
|
|
77
144
|
*/
|
|
78
|
-
|
|
79
|
-
status: string;
|
|
145
|
+
type SessionUpdateFields = Partial<{
|
|
80
146
|
exit_reason: string;
|
|
81
|
-
exit_category: string;
|
|
82
147
|
started_at: string;
|
|
83
148
|
ended_at: string;
|
|
84
149
|
pid: number;
|
|
@@ -96,7 +161,49 @@ export declare function updateSession(sessionId: string, updates: Partial<{
|
|
|
96
161
|
lines_added: number;
|
|
97
162
|
lines_removed: number;
|
|
98
163
|
claude_session_id: string;
|
|
99
|
-
}
|
|
164
|
+
}>;
|
|
165
|
+
/**
|
|
166
|
+
* A session update. The status/category pair is a UNION, not two independent
|
|
167
|
+
* optional fields, so a CLOSE cannot omit its category.
|
|
168
|
+
*
|
|
169
|
+
* `exit_category` used to be an optional bare `string` alongside an optional
|
|
170
|
+
* `status: string`, which had two consequences. Four categories the daemon
|
|
171
|
+
* actually writes were absent from its own declared union and compiled anyway.
|
|
172
|
+
* And two close paths -- the shutdown-timeout force-close and the session-health
|
|
173
|
+
* reap -- supplied no category at all, so the dashboard fell through to matching
|
|
174
|
+
* English prose in `exit_reason` to decide whether to interrupt an operator: the
|
|
175
|
+
* shutdown case surfaced as a red never-dismissing 'Agent error', and the health
|
|
176
|
+
* reap was silent only because a prefix match happened to catch its wording.
|
|
177
|
+
*
|
|
178
|
+
* Now: moving a session to a terminal status REQUIRES an `ExitCategory` drawn
|
|
179
|
+
* from the vocabulary, and a non-terminal update cannot carry one.
|
|
180
|
+
*/
|
|
181
|
+
export type SessionUpdate = (SessionUpdateFields & {
|
|
182
|
+
status: TerminalSessionStatus;
|
|
183
|
+
exit_category: ExitCategory;
|
|
184
|
+
}) | (SessionUpdateFields & {
|
|
185
|
+
status?: never;
|
|
186
|
+
exit_category?: never;
|
|
187
|
+
}) | (SessionUpdateFields & {
|
|
188
|
+
status: 'starting' | 'running' | 'cancelled';
|
|
189
|
+
exit_category?: never;
|
|
190
|
+
});
|
|
191
|
+
/**
|
|
192
|
+
* The shape a pure helper returns when it describes a session CLOSE: the
|
|
193
|
+
* terminal status and the category it carries, ready for the caller to add
|
|
194
|
+
* `ended_at` and hand to `updateSession`. Declared here, beside the write
|
|
195
|
+
* boundary, so a helper cannot describe a close with an untyped category and
|
|
196
|
+
* have it widen back to `string` at the call.
|
|
197
|
+
*/
|
|
198
|
+
export interface SessionCloseUpdate {
|
|
199
|
+
status: TerminalSessionStatus;
|
|
200
|
+
exit_reason: string;
|
|
201
|
+
exit_category: ExitCategory;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Update session status and metadata.
|
|
205
|
+
*/
|
|
206
|
+
export declare function updateSession(sessionId: string, updates: SessionUpdate): Promise<AgentSession>;
|
|
100
207
|
/**
|
|
101
208
|
* Close a (focus, lineage) pass: stamp it closed so it becomes immutable
|
|
102
209
|
* history and a later re-code opens a fresh pass via find-or-open. Idempotent
|
|
@@ -104,4 +211,5 @@ export declare function updateSession(sessionId: string, updates: Partial<{
|
|
|
104
211
|
* not fail team teardown, so callers swallow the error.
|
|
105
212
|
*/
|
|
106
213
|
export declare function closePass(passId: string): Promise<void>;
|
|
214
|
+
export {};
|
|
107
215
|
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/queries/sessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/queries/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/sessions.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: packages/daemon/src/focus/session-close-producers.test.ts,
|
|
3
|
+
// packages/daemon/src/queries/session-close-category.test.ts,
|
|
4
|
+
// packages/daemon/src/queries/session-create-ownership.test.ts,
|
|
5
|
+
// packages/daemon/src/shell/crash-recovery-session-scope.test.ts,
|
|
6
|
+
// packages/daemon/src/worktree/worktree-state.test.ts
|
|
3
7
|
// PINNED-BY-END
|
|
8
|
+
/**
|
|
9
|
+
* Agent session queries.
|
|
10
|
+
*/
|
|
11
|
+
import { hostname } from 'node:os';
|
|
12
|
+
import { daemonInstanceId } from '../shell/daemon-instance.js';
|
|
4
13
|
import { callApiValidated, createTransform, mapDefinedKeys } from './shared.js';
|
|
5
14
|
import { ActiveSessionsResponseSchema, SessionAggregatesResponseSchema, ActiveSessionCountResponseSchema, FocusSessionCountSinceResponseSchema, SessionCreateResponseSchema, SessionUpdateResponseSchema, } from './schemas.js';
|
|
6
15
|
import { z } from 'zod';
|
|
@@ -31,15 +40,62 @@ const transformSessionFromApi = createTransform({
|
|
|
31
40
|
pass_id: { from: 'passId', default: null },
|
|
32
41
|
claude_session_id: { from: 'claudeSessionId', default: null },
|
|
33
42
|
activity_summary: { from: 'activitySummary', default: null },
|
|
43
|
+
daemon_hostname: { from: 'daemonHostname', default: null },
|
|
44
|
+
daemon_instance_id: { from: 'daemonInstanceId', default: null },
|
|
34
45
|
});
|
|
35
46
|
/**
|
|
36
|
-
*
|
|
47
|
+
* Reject a session-liveness read that names nobody. The server rejects it too
|
|
48
|
+
* (400); this throws at the call site so the omission is attributable to the
|
|
49
|
+
* caller that made it rather than surfacing as a generic API failure.
|
|
50
|
+
*/
|
|
51
|
+
export function assertSessionScope(scope) {
|
|
52
|
+
if (!scope.productId && !scope.focusId && !scope.daemonHostname && !scope.daemonInstanceId) {
|
|
53
|
+
throw new Error('getActiveSessions requires a scope: pass productId, focusId, daemonHostname, or daemonInstanceId. ' +
|
|
54
|
+
'An unscoped read returns every live session in the organization, across products and hosts.');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get active sessions (starting/running) within a scope.
|
|
37
59
|
* Used by crash recovery to reconcile worktrees against DB state.
|
|
60
|
+
*
|
|
61
|
+
* The scope is REQUIRED (see SessionScope). Supplying several narrows the read:
|
|
62
|
+
* `{ productId, daemonHostname }` returns this product's live sessions on this host,
|
|
63
|
+
* which is what a crash-recovery sweep is entitled to mark failed.
|
|
38
64
|
*/
|
|
39
|
-
export async function getActiveSessions(
|
|
40
|
-
|
|
65
|
+
export async function getActiveSessions(scope) {
|
|
66
|
+
assertSessionScope(scope);
|
|
67
|
+
const params = {};
|
|
68
|
+
if (scope.productId)
|
|
69
|
+
params.productId = scope.productId;
|
|
70
|
+
if (scope.focusId)
|
|
71
|
+
params.focusId = scope.focusId;
|
|
72
|
+
if (scope.daemonHostname)
|
|
73
|
+
params.daemonHostname = scope.daemonHostname;
|
|
74
|
+
if (scope.daemonInstanceId)
|
|
75
|
+
params.daemonInstanceId = scope.daemonInstanceId;
|
|
76
|
+
const result = await callApiValidated('daemon_get_active_sessions', ActiveSessionsResponseSchema, params);
|
|
41
77
|
return (result.sessions || []).map(transformSessionFromApi);
|
|
42
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* The sessions ONE DAEMON owns: this product, on this host.
|
|
81
|
+
*
|
|
82
|
+
* The scope a crash-recovery sweep is entitled to mark failed. Every row that
|
|
83
|
+
* pass reads it stamps failed / recovery_cleanup, so the read must name an
|
|
84
|
+
* OWNER. It used to name none -- the per-product loop built a product-scoped
|
|
85
|
+
* config and the call dropped it -- and the server's no-scope branch filtered
|
|
86
|
+
* on organization_id alone, so a daemon managing N products ran N org-wide
|
|
87
|
+
* sweeps at init, each failing the other products' live sessions and any peer
|
|
88
|
+
* host's. `pid` was the only process identifier on the row, and it is not
|
|
89
|
+
* comparable across machines.
|
|
90
|
+
*
|
|
91
|
+
* Rows predating agent_sessions.daemon_hostname are NULL and match no host, so
|
|
92
|
+
* this scope excludes them -- deliberately: an unattributable row may belong to
|
|
93
|
+
* a peer. A local orphan that predates the column still has a worktree on this
|
|
94
|
+
* host, and the worktree-driven recovery pass reaps it regardless of the column.
|
|
95
|
+
*/
|
|
96
|
+
export function ownedSessionScope(productId) {
|
|
97
|
+
return { productId, daemonHostname: daemonHostname() };
|
|
98
|
+
}
|
|
43
99
|
/**
|
|
44
100
|
* Active session statuses for worktree-state observation.
|
|
45
101
|
*
|
|
@@ -50,19 +106,30 @@ export async function getActiveSessions(productId) {
|
|
|
50
106
|
* 'active' as an alias for 'running' for callers that pass in raw rows.
|
|
51
107
|
*/
|
|
52
108
|
const ACTIVE_SESSION_STATUSES = ['active', 'starting', 'running'];
|
|
109
|
+
/**
|
|
110
|
+
* True when a session row's status means a process is (or is about to be)
|
|
111
|
+
* writing. Exported so every reader asking "is this worktree being written?"
|
|
112
|
+
* tests the SAME set -- a reader that names a narrower set answers "not being
|
|
113
|
+
* written" for a worktree that is, which is the failure this predicate exists
|
|
114
|
+
* to prevent.
|
|
115
|
+
*/
|
|
116
|
+
export function isActiveSessionStatus(status) {
|
|
117
|
+
return ACTIVE_SESSION_STATUSES.includes(status);
|
|
118
|
+
}
|
|
53
119
|
/**
|
|
54
120
|
* Return the first active/starting session for a given focus, or null.
|
|
55
121
|
*
|
|
56
122
|
* Used by worktree/state.ts to gate "is the worktree being written?" — if an
|
|
57
123
|
* agent_sessions row for this focus is still in an active/starting status,
|
|
58
|
-
* the worktree is considered live.
|
|
124
|
+
* the worktree is considered live. Scoped to the focus at the query boundary,
|
|
125
|
+
* so it reads only that focus's rows rather than filtering the whole org's.
|
|
59
126
|
*/
|
|
60
127
|
export async function getActiveSessionForFocus(focusId) {
|
|
61
|
-
const sessions = await getActiveSessions();
|
|
128
|
+
const sessions = await getActiveSessions({ focusId });
|
|
62
129
|
for (const s of sessions) {
|
|
63
130
|
if (s.focus_id !== focusId)
|
|
64
131
|
continue;
|
|
65
|
-
if (
|
|
132
|
+
if (isActiveSessionStatus(s.status)) {
|
|
66
133
|
return { id: s.id, status: s.status };
|
|
67
134
|
}
|
|
68
135
|
}
|
|
@@ -92,19 +159,45 @@ export async function countFocusSessionsSince(focusId, since) {
|
|
|
92
159
|
/**
|
|
93
160
|
* Get count of active sessions per role.
|
|
94
161
|
*/
|
|
95
|
-
export async function getActiveSessionCountByRole(
|
|
96
|
-
|
|
162
|
+
export async function getActiveSessionCountByRole(scope) {
|
|
163
|
+
assertSessionScope(scope);
|
|
164
|
+
const params = {};
|
|
165
|
+
if (scope.productId)
|
|
166
|
+
params.productId = scope.productId;
|
|
167
|
+
if (scope.focusId)
|
|
168
|
+
params.focusId = scope.focusId;
|
|
169
|
+
if (scope.daemonHostname)
|
|
170
|
+
params.daemonHostname = scope.daemonHostname;
|
|
171
|
+
if (scope.daemonInstanceId)
|
|
172
|
+
params.daemonInstanceId = scope.daemonInstanceId;
|
|
173
|
+
const result = await callApiValidated('daemon_get_active_session_count', ActiveSessionCountResponseSchema, params);
|
|
97
174
|
return result.counts;
|
|
98
175
|
}
|
|
176
|
+
/**
|
|
177
|
+
* The hostname this daemon runs on -- the ownership identity stamped onto every
|
|
178
|
+
* session it creates, and the scope its crash recovery is entitled to reap.
|
|
179
|
+
* Exported so the recovery sweep and the create path cannot disagree about what
|
|
180
|
+
* "this host" means.
|
|
181
|
+
*/
|
|
182
|
+
export function daemonHostname() {
|
|
183
|
+
return hostname();
|
|
184
|
+
}
|
|
99
185
|
/**
|
|
100
186
|
* Create a new agent session.
|
|
101
187
|
*/
|
|
102
|
-
export async function createSession(params) {
|
|
188
|
+
export async function createSession(params, deps = {}) {
|
|
103
189
|
const apiParams = {
|
|
104
190
|
issueId: params.issueId,
|
|
105
191
|
deliveryId: params.deliveryId ?? null,
|
|
106
192
|
focusId: params.focusId ?? null,
|
|
107
193
|
branchName: params.branchName,
|
|
194
|
+
// Ownership identity, stamped unconditionally -- there is no caller choice
|
|
195
|
+
// to get wrong. The HOST keeps one machine's recovery off another's; the
|
|
196
|
+
// INSTANCE additionally separates two daemons sharing a host and product,
|
|
197
|
+
// and is what a later sweep probes to prove this session's owner has
|
|
198
|
+
// stopped before it writes failed. `pid` alone answers neither.
|
|
199
|
+
daemonHostname: daemonHostname(),
|
|
200
|
+
daemonInstanceId: daemonInstanceId(),
|
|
108
201
|
};
|
|
109
202
|
// Omit roleId for system sessions; the edge handler inserts a NULL role.
|
|
110
203
|
if (params.roleId) {
|
|
@@ -119,7 +212,7 @@ export async function createSession(params) {
|
|
|
119
212
|
if (params.workflowStageId) {
|
|
120
213
|
apiParams.fields = { workflowStageId: params.workflowStageId };
|
|
121
214
|
}
|
|
122
|
-
const result = await callApiValidated('daemon_create_session', SessionCreateResponseSchema, apiParams);
|
|
215
|
+
const result = await (deps.callApiValidated ?? callApiValidated)('daemon_create_session', SessionCreateResponseSchema, apiParams);
|
|
123
216
|
return transformSessionFromApi(result.session);
|
|
124
217
|
}
|
|
125
218
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/queries/sessions.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/queries/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/shared.d.ts
CHANGED
|
@@ -92,6 +92,7 @@ export declare function callApi<T>(action: string, params?: Record<string, unkno
|
|
|
92
92
|
*/
|
|
93
93
|
export interface CallApiDeps {
|
|
94
94
|
callApi?: typeof callApi;
|
|
95
|
+
callApiValidated?: typeof callApiValidated;
|
|
95
96
|
}
|
|
96
97
|
/**
|
|
97
98
|
* Call the product-api edge function and validate the response with a Zod schema.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/queries/shared.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,cAAc,EAEd,eAAe,EAEf,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAuC3C,QAAA,MAAM,eAAe;;;;;;;CA2CX,CAAC;AAEX,KAAK,qBAAqB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,eAAe,CAAC;AAE7D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAOrE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAIpD,CAAC;AAiFH;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAErF;AA2BD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,eAAe,CAE9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAIvD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/queries/shared.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,cAAc,EAEd,eAAe,EAEf,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC;AAuC3C,QAAA,MAAM,eAAe;;;;;;;CA2CX,CAAC;AAEX,KAAK,qBAAqB,GAAG,MAAM,OAAO,eAAe,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,eAAe,CAAC;AAE7D,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAOrE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,CAAC,MAAM,CAIpD,CAAC;AAiFH;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAEzE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAErF;AA2BD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,eAAe,CAE9D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAIvD;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,YAAY,CAKxC;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzD;AAED;;;GAGG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,OAAO,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,CAAC,CAAC,CAEZ"}
|
package/dist/queries/shared.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
|
|
2
|
-
// Pinned by:
|
|
2
|
+
// Pinned by: 41 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/queries/shared.ts
|
|
3
3
|
// PINNED-BY-END
|
|
4
4
|
import { CircuitBreaker, createApiClient, createTransform, loadEnvConfig, mapDefinedKeys, } from '@telora/daemon-core';
|
|
5
5
|
// ---------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/queries/shared.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/queries/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-session.d.ts","sourceRoot":"","sources":["../../src/queries/system-session.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAM/E,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED;;;;GAIG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;CACtC;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,uBAAuB,EAC/B,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BxB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,wBAAwB,EAChC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"system-session.d.ts","sourceRoot":"","sources":["../../src/queries/system-session.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAM/E,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;AAExE,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,iBAAiB,CAAC;CAChC;AAED;;;;GAIG;AACH;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;CACtC;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,uBAAuB,EAC/B,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA4BxB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,wBAAwB,EAChC,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -64,7 +64,9 @@ export async function closeSystemSession(sessionId, params, deps = {}) {
|
|
|
64
64
|
const _updateSession = deps.updateSession ?? updateSession;
|
|
65
65
|
try {
|
|
66
66
|
await _updateSession(sessionId, {
|
|
67
|
-
|
|
67
|
+
...(params.success
|
|
68
|
+
? { status: 'completed', exit_category: 'work_complete' }
|
|
69
|
+
: { status: 'failed', exit_category: 'error' }),
|
|
68
70
|
ended_at: new Date().toISOString(),
|
|
69
71
|
...(params.exitReason ? { exit_reason: params.exitReason } : {}),
|
|
70
72
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-session.js","sourceRoot":"","sources":["../../src/queries/system-session.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAgCvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA+B,EAC/B,OAA0B,EAAE;IAE5B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC/B,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sEAAsE;YACtE,uDAAuD;YACvD,GAAG,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,WAAW,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,OAAO,CAAC,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,WAAW,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAwB,EACxB,MAAgC,EAChC,OAA0B,EAAE;IAE5B,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,SAAS,EAAE;YAC9B,
|
|
1
|
+
{"version":3,"file":"system-session.js","sourceRoot":"","sources":["../../src/queries/system-session.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,gEAAgE;AAChE,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAoB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAgCvD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAA+B,EAC/B,OAA0B,EAAE;IAE5B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC;YACnC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,IAAI;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC/B,MAAM,EAAE,SAAS;gBACjB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACrC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sEAAsE;YACtE,uDAAuD;YACvD,GAAG,CAAC,IAAI,CAAC,gCAAgC,MAAM,CAAC,WAAW,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,OAAO,CAAC,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,WAAW,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,SAAwB,EACxB,MAAgC,EAChC,OAA0B,EAAE;IAE5B,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,SAAS,EAAE;YAC9B,GAAG,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAoB,EAAE,aAAa,EAAE,eAAwB,EAAE;gBAC3E,CAAC,CAAC,EAAE,MAAM,EAAE,QAAiB,EAAE,aAAa,EAAE,OAAgB,EAAE,CAAC;YACnE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,oBAAoB,SAAS,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC"}
|
|
@@ -32,6 +32,51 @@ export interface AssemblyContext {
|
|
|
32
32
|
* full branch diff. Absent for every other caller -> integration base.
|
|
33
33
|
*/
|
|
34
34
|
diffBaseOverride?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The OUT-OF-BAND channel from a resolver back to the caller that requested
|
|
37
|
+
* this assembly. Set by `resolveAssemblyRecipeWithManifest` on the context
|
|
38
|
+
* it hands each resolver, and returned to the caller on the same run -- so a
|
|
39
|
+
* resolver's finding reaches the caller as a TYPED VALUE rather than as text
|
|
40
|
+
* the caller has to recognize in the composed prompt.
|
|
41
|
+
*
|
|
42
|
+
* Optional on the interface only so every existing caller's context literal
|
|
43
|
+
* still compiles; the engine always supplies one, so a resolver can treat it
|
|
44
|
+
* as present in practice and must still tolerate its absence (a resolver
|
|
45
|
+
* called directly by a test, say).
|
|
46
|
+
*/
|
|
47
|
+
signals?: AssemblySignals;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Findings a resolver may report to its caller MECHANICALLY, alongside (never
|
|
51
|
+
* inside) the markdown it returns.
|
|
52
|
+
*
|
|
53
|
+
* WHY THIS EXISTS AS A SEPARATE CHANNEL. The composed prompt is the wrong
|
|
54
|
+
* carrier for a control decision. Most of what lands in it is authored
|
|
55
|
+
* elsewhere -- focus context, delivery names, acceptance criteria, session
|
|
56
|
+
* summaries, tree statements -- so any rule of the form "the caller scans the
|
|
57
|
+
* assembled text for X" can be satisfied by anyone who can put X into any of
|
|
58
|
+
* those. Worse, that content is STORED, so a forgery is re-assembled on every
|
|
59
|
+
* tick: a control that was meant to hold one cycle holds forever, which is a
|
|
60
|
+
* freeze rather than a conservative default. A substring match over text an
|
|
61
|
+
* untrusted party can influence is not a channel, it is a suggestion box.
|
|
62
|
+
*
|
|
63
|
+
* Nothing here is ever derived from resolved text. Each field is set by the
|
|
64
|
+
* resolver that PROVED the fact, in the same process and the same assembly run
|
|
65
|
+
* as the caller that reads it, which is the property that makes the signal
|
|
66
|
+
* worth anything: it needs no durable state and cannot be replayed.
|
|
67
|
+
*/
|
|
68
|
+
export interface AssemblySignals {
|
|
69
|
+
/**
|
|
70
|
+
* Set ONLY by `focus.review_coverage`, and only when its branch read proved
|
|
71
|
+
* committed work for a delivery whose stored columns say it produced nothing
|
|
72
|
+
* AND the write that would have told the delivery-create gate failed. The
|
|
73
|
+
* audit phase consumes it as an ARMING decision. Full argument:
|
|
74
|
+
* `packages/daemon/src/resolvers/branch-work-arming.ts`.
|
|
75
|
+
*/
|
|
76
|
+
unrecordedBranchWorkHold?: {
|
|
77
|
+
readonly provedDeliveryIds: readonly string[];
|
|
78
|
+
readonly cause: string;
|
|
79
|
+
};
|
|
35
80
|
}
|
|
36
81
|
/** A resolver function that hydrates a source reference into markdown. */
|
|
37
82
|
export type SourceResolver = (context: AssemblyContext, params: Record<string, string>) => Promise<string>;
|
|
@@ -50,10 +95,27 @@ export interface AssemblyManifestEntry {
|
|
|
50
95
|
sourceRef: string;
|
|
51
96
|
/** Position of this entry in the recipe (0-based, recipe order). */
|
|
52
97
|
ordinal: number;
|
|
53
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* Raw character count of what this source contributed to the prompt: the
|
|
100
|
+
* resolved section, or -- for a source that FAILED to resolve -- the line it
|
|
101
|
+
* contributed to the missing-context section. 0 for a source that resolved to
|
|
102
|
+
* nothing.
|
|
103
|
+
*/
|
|
54
104
|
charCount: number;
|
|
55
105
|
/** Modeled token estimate (chars / 4, rounded up). Exact for injected context. */
|
|
56
106
|
estimatedTokens: number;
|
|
107
|
+
/**
|
|
108
|
+
* True when this source did NOT resolve -- a resolver threw, or no resolver is
|
|
109
|
+
* registered for its type. Its content is ABSENT from the prompt.
|
|
110
|
+
*
|
|
111
|
+
* Absent (never false) on a source that resolved, INCLUDING one that resolved
|
|
112
|
+
* to nothing: an empty listing or a focus with no prior review report is a
|
|
113
|
+
* truthful answer, not a missing source, and reporting it as failed would bury
|
|
114
|
+
* the real failures in noise.
|
|
115
|
+
*/
|
|
116
|
+
failed?: boolean;
|
|
117
|
+
/** Why it failed, as stated in the prompt's missing-context section. Set iff `failed`. */
|
|
118
|
+
failureReason?: string;
|
|
57
119
|
}
|
|
58
120
|
/** Result of resolving a recipe with attribution: the composed string + manifest. */
|
|
59
121
|
export interface ResolvedAssembly {
|
|
@@ -61,6 +123,12 @@ export interface ResolvedAssembly {
|
|
|
61
123
|
content: string;
|
|
62
124
|
/** One entry per recipe source, in recipe order. */
|
|
63
125
|
manifest: AssemblyManifestEntry[];
|
|
126
|
+
/**
|
|
127
|
+
* Whatever the resolvers signalled out of band on THIS run (see
|
|
128
|
+
* AssemblySignals). Fresh per call -- never shared across assemblies -- so a
|
|
129
|
+
* signal cannot outlive the read that produced it and freeze a later tick.
|
|
130
|
+
*/
|
|
131
|
+
signals: AssemblySignals;
|
|
64
132
|
}
|
|
65
133
|
/**
|
|
66
134
|
* Rough token estimate for a resolved section: ceil(chars / 4).
|
|
@@ -111,4 +179,6 @@ export declare function resolveAssemblyRecipe(recipe: string[], context: Assembl
|
|
|
111
179
|
* and reports charCount 0).
|
|
112
180
|
*/
|
|
113
181
|
export declare function resolveAssemblyRecipeWithManifest(recipe: string[], context: AssemblyContext): Promise<ResolvedAssembly>;
|
|
182
|
+
/** Heading of the missing-context section; the marker its tests and readers key on. */
|
|
183
|
+
export declare const MISSING_CONTEXT_HEADING = "## Missing context";
|
|
114
184
|
//# sourceMappingURL=assembly-engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assembly-engine.d.ts","sourceRoot":"","sources":["../../src/resolvers/assembly-engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assembly-engine.d.ts","sourceRoot":"","sources":["../../src/resolvers/assembly-engine.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE;QACzB,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;QAC9C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;AAErB;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,oFAAoF;IACpF,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,eAAe,EAAE,MAAM,CAAC;IACxB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC;;;;OAIG;IACH,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AAKD,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAEzF;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,EAAE,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAelG;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iCAAiC,CACrD,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAgE3B;AAsCD,uFAAuF;AACvF,eAAO,MAAM,uBAAuB,uBAAuB,CAAC"}
|