@dorokuma/herdsman 0.11.6 → 0.13.2
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/README.md +26 -13
- package/dist/src/agent-history/pi-reader.d.ts.map +1 -1
- package/dist/src/agent-history/pi-reader.js +10 -2
- package/dist/src/agent-history/pi-reader.js.map +1 -1
- package/dist/src/agent-history/readers.js +6 -1
- package/dist/src/agent-history/readers.js.map +1 -1
- package/dist/src/agent-history/text.d.ts.map +1 -1
- package/dist/src/agent-history/text.js +3 -0
- package/dist/src/agent-history/text.js.map +1 -1
- package/dist/src/cli/herdsman.d.ts +14 -1
- package/dist/src/cli/herdsman.d.ts.map +1 -1
- package/dist/src/cli/herdsman.js +49 -65
- package/dist/src/cli/herdsman.js.map +1 -1
- package/dist/src/config/schema.d.ts +4 -0
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +5 -0
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/daemon/agent-event-reconciler.d.ts.map +1 -1
- package/dist/src/daemon/agent-event-reconciler.js +53 -2
- package/dist/src/daemon/agent-event-reconciler.js.map +1 -1
- package/dist/src/daemon/herdr-session-watch-manager.d.ts +13 -1
- package/dist/src/daemon/herdr-session-watch-manager.d.ts.map +1 -1
- package/dist/src/daemon/herdr-session-watch-manager.js +52 -15
- package/dist/src/daemon/herdr-session-watch-manager.js.map +1 -1
- package/dist/src/daemon/observability-server.d.ts.map +1 -1
- package/dist/src/daemon/observability-server.js +17 -1
- package/dist/src/daemon/observability-server.js.map +1 -1
- package/dist/src/daemon/process-manager.d.ts +50 -49
- package/dist/src/daemon/process-manager.d.ts.map +1 -1
- package/dist/src/daemon/process-manager.js +246 -204
- package/dist/src/daemon/process-manager.js.map +1 -1
- package/dist/src/daemon/service-supervision.d.ts +68 -0
- package/dist/src/daemon/service-supervision.d.ts.map +1 -0
- package/dist/src/daemon/service-supervision.js +127 -0
- package/dist/src/daemon/service-supervision.js.map +1 -0
- package/dist/src/daemon/service.d.ts +35 -0
- package/dist/src/daemon/service.d.ts.map +1 -1
- package/dist/src/daemon/service.js +185 -27
- package/dist/src/daemon/service.js.map +1 -1
- package/dist/src/db/agent-events.d.ts +31 -0
- package/dist/src/db/agent-events.d.ts.map +1 -1
- package/dist/src/db/agent-events.js +207 -55
- package/dist/src/db/agent-events.js.map +1 -1
- package/dist/src/db/agents.js +1 -1
- package/dist/src/db/agents.js.map +1 -1
- package/dist/src/db/status-event-plans.d.ts +36 -4
- package/dist/src/db/status-event-plans.d.ts.map +1 -1
- package/dist/src/db/status-event-plans.js +96 -11
- package/dist/src/db/status-event-plans.js.map +1 -1
- package/dist/src/herdr/session-list.d.ts +11 -0
- package/dist/src/herdr/session-list.d.ts.map +1 -1
- package/dist/src/herdr/session-list.js +13 -0
- package/dist/src/herdr/session-list.js.map +1 -1
- package/dist/src/herdr/socket-client.d.ts +8 -0
- package/dist/src/herdr/socket-client.d.ts.map +1 -1
- package/dist/src/herdr/socket-client.js +43 -0
- package/dist/src/herdr/socket-client.js.map +1 -1
- package/dist/src/observability/agent-index-service.d.ts +16 -0
- package/dist/src/observability/agent-index-service.d.ts.map +1 -1
- package/dist/src/observability/agent-index-service.js +837 -114
- package/dist/src/observability/agent-index-service.js.map +1 -1
- package/dist/src/observability/agent-orchestrator-service.d.ts.map +1 -1
- package/dist/src/observability/agent-orchestrator-service.js +5 -1
- package/dist/src/observability/agent-orchestrator-service.js.map +1 -1
- package/dist/src/observability/contracts.d.ts +6 -1
- package/dist/src/observability/contracts.d.ts.map +1 -1
- package/dist/src/observability/contracts.js +8 -0
- package/dist/src/observability/contracts.js.map +1 -1
- package/dist/src/observability/schemas.d.ts +1 -0
- package/dist/src/observability/schemas.d.ts.map +1 -1
- package/dist/src/observability/schemas.js +1 -0
- package/dist/src/observability/schemas.js.map +1 -1
- package/dist/src/observability/turn-completion.d.ts +3 -0
- package/dist/src/observability/turn-completion.d.ts.map +1 -1
- package/dist/src/observability/turn-completion.js +12 -2
- package/dist/src/observability/turn-completion.js.map +1 -1
- package/drizzle/0010_legacy_degraded_cleanup.sql +1 -0
- package/drizzle/meta/0010_snapshot.json +975 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +3 -6
- package/README.ja.md +0 -145
|
@@ -67,7 +67,22 @@ export declare class AgentEventStore {
|
|
|
67
67
|
paneGeneration?: string | null;
|
|
68
68
|
invalidatedReason?: string;
|
|
69
69
|
}): void;
|
|
70
|
+
/**
|
|
71
|
+
* Direct invalidatePane without wrapping in a transaction.
|
|
72
|
+
*
|
|
73
|
+
* ONLY call this when the caller already holds an SQLite transaction
|
|
74
|
+
* (for example from AgentStore.replaceForSession). Calling this outside
|
|
75
|
+
* an explicit transaction will leave the two-step invalidation non-atomic
|
|
76
|
+
* with respect to other concurrent writers.
|
|
77
|
+
*/
|
|
78
|
+
invalidatePaneDirect(input: {
|
|
79
|
+
herdrSessionName: string;
|
|
80
|
+
paneId: string;
|
|
81
|
+
paneGeneration?: string | null;
|
|
82
|
+
invalidatedReason?: string;
|
|
83
|
+
}): void;
|
|
70
84
|
listReconcileCandidates(limit?: number, afterId?: number): AgentEventRecord[];
|
|
85
|
+
markRetainedInvalidated(id: number): boolean;
|
|
71
86
|
deleteReconcileCandidate(id: number): boolean;
|
|
72
87
|
/**
|
|
73
88
|
* Physically removes invalidated events older than the given age, measured from
|
|
@@ -91,6 +106,22 @@ export declare class AgentEventStore {
|
|
|
91
106
|
latestStatusTransition(agentId: string, herdrSessionName: string): AgentEventRecord | undefined;
|
|
92
107
|
hasTerminalEventAfter(agentId: string, herdrSessionName: string, afterId: number): boolean;
|
|
93
108
|
latestTerminalEvent(agentId: string, herdrSessionName: string): AgentEventRecord | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Latest event that represents a *completed turn* whose assistant ref may be
|
|
111
|
+
* treated as "already delivered": every `agent.done`, plus `agent.idle` rows
|
|
112
|
+
* that were emitted from `working`. Rows that must never consume the
|
|
113
|
+
* assistant ref of a round are excluded:
|
|
114
|
+
*
|
|
115
|
+
* - `agent.status.changed` (never a delivery), `agent.discarded`,
|
|
116
|
+
* - `agent.idle` rows whose payload `from` is not `working` (startup/unknown
|
|
117
|
+
* idles restored before indexing),
|
|
118
|
+
* - rows whose assistant message is empty.
|
|
119
|
+
*
|
|
120
|
+
* A late `unknown -> idle` plan that finishes after the round already ended
|
|
121
|
+
* would otherwise register the final ref as an `agent.idle` terminal event and
|
|
122
|
+
* make the following `working -> done` plan look like a duplicate.
|
|
123
|
+
*/
|
|
124
|
+
latestCompletedTurnEvent(agentId: string, herdrSessionName: string): AgentEventRecord | undefined;
|
|
94
125
|
listAfter(input: AgentQueryScope & {
|
|
95
126
|
afterEventId?: number;
|
|
96
127
|
limit?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-events.d.ts","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GACrD,OAAO,CAGT;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,KAAK,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACxD,eAAe,EAAE,MAAM,GACtB,OAAO,
|
|
1
|
+
{"version":3,"file":"agent-events.d.ts","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,29 +23,55 @@ export function hasNonEmptyAssistantMessage(compactHistory) {
|
|
|
23
23
|
}
|
|
24
24
|
/** The single delivery predicate shared by pending discovery and acknowledgement. */
|
|
25
25
|
export function isDeliverableAgentEvent(event, agent, scope, ownerTerminalId) {
|
|
26
|
-
const failed = event.type === "agent.failed";
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
event.
|
|
35
|
-
|
|
36
|
-
event.
|
|
37
|
-
event.
|
|
38
|
-
event.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
26
|
+
const failed = event.type === "agent.failed" || event.type === "agent.discarded";
|
|
27
|
+
const isRetainedInvalidated = event.status === "invalidated" && event.deliverable === 1;
|
|
28
|
+
// 1. 状态放行:允许 pending、delivered 以及关页保留的 invalidated 行
|
|
29
|
+
const statusAllowed = event.status === "pending" || event.status === "delivered" || isRetainedInvalidated;
|
|
30
|
+
if (!statusAllowed)
|
|
31
|
+
return false;
|
|
32
|
+
// 2. 基础范围过滤
|
|
33
|
+
if (event.workspaceId !== scope.workspaceId ||
|
|
34
|
+
event.herdrSessionName !== scope.herdrSessionName ||
|
|
35
|
+
event.terminalId === null ||
|
|
36
|
+
event.terminalId === ownerTerminalId ||
|
|
37
|
+
event.type === "agent.status.changed" ||
|
|
38
|
+
(event.type === "agent.idle" && asRecord(event.payload).from !== "working")) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
// 3. 投递重试窗口守卫
|
|
42
|
+
if (event.status !== "delivered" &&
|
|
43
|
+
event.nextAttemptAt !== null &&
|
|
44
|
+
event.nextAttemptAt !== undefined &&
|
|
45
|
+
event.nextAttemptAt > new Date()) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
// 4. 终端归属校验
|
|
49
|
+
if (event.status === "delivered" && event.deliveredToTerminalId !== ownerTerminalId) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
// 5. 核心:解耦对 live agent 表记录的依赖
|
|
53
|
+
// 当 pane 被关闭,retirePane 物理清除了 agents 表记录,此时 agent === undefined。
|
|
54
|
+
// 若该事件已被标记为保留作废态 (isRetainedInvalidated) 或 failed,直接从事件自身元数据验证有效性
|
|
55
|
+
if (failed || isRetainedInvalidated) {
|
|
56
|
+
const payload = asRecord(event.payload);
|
|
57
|
+
const agentKind = typeof payload.agent === "string" ? payload.agent : "pi";
|
|
58
|
+
if (agentKind !== "pi" &&
|
|
59
|
+
(event.type === "agent.idle" || event.type === "agent.done") &&
|
|
60
|
+
!hasNonEmptyAssistantMessage(event.compactHistory)) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
// 6. 正常存活 pane 维持原有的严密代际与所属校验
|
|
66
|
+
if (agent === undefined)
|
|
67
|
+
return false;
|
|
68
|
+
return (!(isInteractivePiAgent(agent) && event.type === "agent.idle") &&
|
|
69
|
+
!(agent.agent !== "pi" &&
|
|
70
|
+
(event.type === "agent.idle" || event.type === "agent.done") &&
|
|
71
|
+
!hasNonEmptyAssistantMessage(event.compactHistory)) &&
|
|
72
|
+
agent.paneId === event.paneId &&
|
|
73
|
+
(event.paneGeneration === null || agent.paneGeneration === event.paneGeneration) &&
|
|
74
|
+
agent.workspaceId === scope.workspaceId);
|
|
49
75
|
}
|
|
50
76
|
function asRecord(value) {
|
|
51
77
|
return value !== null && typeof value === "object" && !Array.isArray(value)
|
|
@@ -96,21 +122,83 @@ export class AgentEventStore {
|
|
|
96
122
|
: undefined;
|
|
97
123
|
if (existing)
|
|
98
124
|
return mapAgentEvent(existing);
|
|
125
|
+
const agentId = this.#resolveAppendAgentId(input.agentId ?? null);
|
|
99
126
|
const result = this.#sqlite
|
|
100
127
|
.prepare(`insert into agent_events
|
|
101
128
|
(herdr_session_name, agent_id, pane_id, pane_generation, workspace_id, terminal_id, type, payload_json, compact_history_json, idempotency_key, deliverable, status, delivery_attempts, created_at)
|
|
102
129
|
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, 'pending', 0, ?)`)
|
|
103
|
-
.run(input.herdrSessionName,
|
|
130
|
+
.run(input.herdrSessionName, agentId, input.paneId ?? null, input.paneGeneration ?? null, input.workspaceId ?? null, input.terminalId ?? null, input.type, JSON.stringify(input.payload), input.compactHistory ? JSON.stringify(input.compactHistory) : null, input.idempotencyKey ?? null, this.#now());
|
|
104
131
|
return this.get(Number(result.lastInsertRowid));
|
|
105
132
|
}
|
|
133
|
+
/**
|
|
134
|
+
* Defence in depth for the terminal-event write path. A status plan can reach
|
|
135
|
+
* its terminal state after the pane was retired and its `agents` row was
|
|
136
|
+
* physically deleted; the foreign key would then reject the insert
|
|
137
|
+
* (`FOREIGN KEY constraint failed`) and the terminal outcome would be lost
|
|
138
|
+
* before it ever reached the store. Instead of throwing, the row is written as
|
|
139
|
+
* an orphan (`agent_id = null`) and logged, so the degradation is explicit
|
|
140
|
+
* rather than silent.
|
|
141
|
+
*/
|
|
142
|
+
#resolveAppendAgentId(agentId) {
|
|
143
|
+
if (agentId === null)
|
|
144
|
+
return null;
|
|
145
|
+
const row = this.#sqlite.prepare("select 1 from agents where id = ? limit 1").get(agentId);
|
|
146
|
+
if (row)
|
|
147
|
+
return agentId;
|
|
148
|
+
console.warn("Herdsman downgrading agent event to orphan because the agents row is gone", {
|
|
149
|
+
agentId,
|
|
150
|
+
});
|
|
151
|
+
return null;
|
|
152
|
+
}
|
|
106
153
|
invalidatePane(input) {
|
|
154
|
+
this.#transaction(() => this.#invalidatePaneCore(input));
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Direct invalidatePane without wrapping in a transaction.
|
|
158
|
+
*
|
|
159
|
+
* ONLY call this when the caller already holds an SQLite transaction
|
|
160
|
+
* (for example from AgentStore.replaceForSession). Calling this outside
|
|
161
|
+
* an explicit transaction will leave the two-step invalidation non-atomic
|
|
162
|
+
* with respect to other concurrent writers.
|
|
163
|
+
*/
|
|
164
|
+
invalidatePaneDirect(input) {
|
|
165
|
+
this.#invalidatePaneCore(input);
|
|
166
|
+
}
|
|
167
|
+
#invalidatePaneCore(input) {
|
|
107
168
|
const legacy = input.paneGeneration == null;
|
|
169
|
+
const now = this.#now();
|
|
170
|
+
const defaultReason = input.invalidatedReason ?? (legacy ? "LEGACY_CLOSE_WITHOUT_GENERATION" : "PANE_CLOSED");
|
|
171
|
+
// 步骤 1:全量作废该 pane 当前所有活跃行,默认置为 deliverable = 0
|
|
172
|
+
// 当指定了明确 paneGeneration 时,只作废该代及更早代(<=)的遗留行,避免误杀新代事件。
|
|
173
|
+
const legacyOrMatched = legacy
|
|
174
|
+
? "1 = 1"
|
|
175
|
+
: "(pane_generation = ? or pane_generation is null or pane_generation < ?)";
|
|
176
|
+
const legacyOrMatchedParams = legacy
|
|
177
|
+
? []
|
|
178
|
+
: [input.paneGeneration ?? null, input.paneGeneration ?? null];
|
|
108
179
|
this.#sqlite
|
|
109
|
-
.prepare(`update agent_events
|
|
110
|
-
|
|
111
|
-
and status not in ('acked', 'invalidated', 'failed')
|
|
112
|
-
|
|
113
|
-
.run(
|
|
180
|
+
.prepare(`update agent_events
|
|
181
|
+
set deliverable = 0, status = 'invalidated', invalidated_reason = ?
|
|
182
|
+
where herdr_session_name = ? and pane_id = ? and status not in ('acked', 'invalidated', 'failed')
|
|
183
|
+
and ${legacyOrMatched}`)
|
|
184
|
+
.run(defaultReason, input.herdrSessionName, input.paneId, ...legacyOrMatchedParams);
|
|
185
|
+
// 步骤 2:对满足保留条件的完成类事件恢复 deliverable = 1
|
|
186
|
+
// 关页保留只保到「首次投递尝试」为止:done/idle 沿用 300s 新鲜度窗口,
|
|
187
|
+
// agent.failed 则以 delivery_attempts = 0(尚未投递过)为界——失败结果常常
|
|
188
|
+
// 是在 pane/agents 行已经消失之后才写出来的,必须有一轮投递机会。
|
|
189
|
+
// agent.discarded 不保留。
|
|
190
|
+
const genCondition = legacy ? "1 = 1" : "pane_generation = ?";
|
|
191
|
+
const genParams = legacy ? [] : [input.paneGeneration ?? null];
|
|
192
|
+
this.#sqlite
|
|
193
|
+
.prepare(`update agent_events
|
|
194
|
+
set deliverable = 1, invalidated_reason = 'RETAINED_OUTCOME_PANE_CLOSED'
|
|
195
|
+
where herdr_session_name = ? and pane_id = ? and status = 'invalidated' and deliverable = 0 and invalidated_reason = ?
|
|
196
|
+
and ((${genCondition})
|
|
197
|
+
and ((type = 'agent.done' and json_extract(payload_json, '$.from') = 'working')
|
|
198
|
+
or (type = 'agent.idle' and json_extract(payload_json, '$.from') = 'working'))
|
|
199
|
+
and created_at >= ?
|
|
200
|
+
or (type = 'agent.failed' and delivery_attempts = 0))`)
|
|
201
|
+
.run(input.herdrSessionName, input.paneId, defaultReason, ...genParams, now - REDELIVERY_FRESHNESS_MS);
|
|
114
202
|
}
|
|
115
203
|
listReconcileCandidates(limit = 100, afterId = 0) {
|
|
116
204
|
const rows = this.#sqlite
|
|
@@ -118,6 +206,13 @@ export class AgentEventStore {
|
|
|
118
206
|
.all(afterId, limit);
|
|
119
207
|
return rows.map(mapAgentEvent);
|
|
120
208
|
}
|
|
209
|
+
markRetainedInvalidated(id) {
|
|
210
|
+
return (Number(this.#sqlite
|
|
211
|
+
.prepare(`update agent_events
|
|
212
|
+
set status = 'invalidated', deliverable = 1, invalidated_reason = 'RETAINED_OUTCOME_PANE_CLOSED'
|
|
213
|
+
where id = ? and status in ('pending', 'delivered')`)
|
|
214
|
+
.run(id).changes) > 0);
|
|
215
|
+
}
|
|
121
216
|
deleteReconcileCandidate(id) {
|
|
122
217
|
return (Number(this.#sqlite
|
|
123
218
|
.prepare("delete from agent_events where id = ? and status in ('pending', 'delivered')")
|
|
@@ -132,7 +227,7 @@ export class AgentEventStore {
|
|
|
132
227
|
deleteInvalidatedOlderThan(ageMs) {
|
|
133
228
|
return Number(this.#sqlite
|
|
134
229
|
.prepare(`delete from agent_events
|
|
135
|
-
where status = 'invalidated' and coalesce(last_attempt_at, created_at) < ?`)
|
|
230
|
+
where status = 'invalidated' and deliverable = 0 and coalesce(last_attempt_at, created_at) < ?`)
|
|
136
231
|
.run(Date.now() - ageMs).changes);
|
|
137
232
|
}
|
|
138
233
|
/**
|
|
@@ -142,7 +237,7 @@ export class AgentEventStore {
|
|
|
142
237
|
*/
|
|
143
238
|
deleteSettledOlderThan(ageMs) {
|
|
144
239
|
return Number(this.#sqlite
|
|
145
|
-
.prepare(`delete from agent_events where status in ('acked', 'failed') and created_at < ?`)
|
|
240
|
+
.prepare(`delete from agent_events where (status in ('acked', 'failed') or (status = 'invalidated' and deliverable = 1)) and created_at < ?`)
|
|
146
241
|
.run(Date.now() - ageMs).changes);
|
|
147
242
|
}
|
|
148
243
|
ackSelfOwned(input) {
|
|
@@ -170,6 +265,7 @@ export class AgentEventStore {
|
|
|
170
265
|
.prepare(`select 1 from agent_events
|
|
171
266
|
where agent_id = ? and herdr_session_name = ? and id > ?
|
|
172
267
|
and type in ('agent.idle', 'agent.done', 'agent.blocked')
|
|
268
|
+
and status != 'invalidated'
|
|
173
269
|
limit 1`)
|
|
174
270
|
.get(agentId, herdrSessionName, afterId);
|
|
175
271
|
return Boolean(row);
|
|
@@ -179,6 +275,33 @@ export class AgentEventStore {
|
|
|
179
275
|
.prepare(`select * from agent_events
|
|
180
276
|
where agent_id = ? and herdr_session_name = ?
|
|
181
277
|
and type in ('agent.idle', 'agent.done', 'agent.blocked')
|
|
278
|
+
and status != 'invalidated'
|
|
279
|
+
order by id desc limit 1`)
|
|
280
|
+
.get(agentId, herdrSessionName);
|
|
281
|
+
return row ? mapAgentEvent(row) : undefined;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Latest event that represents a *completed turn* whose assistant ref may be
|
|
285
|
+
* treated as "already delivered": every `agent.done`, plus `agent.idle` rows
|
|
286
|
+
* that were emitted from `working`. Rows that must never consume the
|
|
287
|
+
* assistant ref of a round are excluded:
|
|
288
|
+
*
|
|
289
|
+
* - `agent.status.changed` (never a delivery), `agent.discarded`,
|
|
290
|
+
* - `agent.idle` rows whose payload `from` is not `working` (startup/unknown
|
|
291
|
+
* idles restored before indexing),
|
|
292
|
+
* - rows whose assistant message is empty.
|
|
293
|
+
*
|
|
294
|
+
* A late `unknown -> idle` plan that finishes after the round already ended
|
|
295
|
+
* would otherwise register the final ref as an `agent.idle` terminal event and
|
|
296
|
+
* make the following `working -> done` plan look like a duplicate.
|
|
297
|
+
*/
|
|
298
|
+
latestCompletedTurnEvent(agentId, herdrSessionName) {
|
|
299
|
+
const row = this.#sqlite
|
|
300
|
+
.prepare(`select * from agent_events
|
|
301
|
+
where agent_id = ? and herdr_session_name = ?
|
|
302
|
+
and (type = 'agent.done'
|
|
303
|
+
or (type = 'agent.idle' and json_extract(payload_json, '$.from') = 'working'))
|
|
304
|
+
and length(trim(coalesce(json_extract(compact_history_json, '$.lastAssistantMessage.text'), ''))) > 0
|
|
182
305
|
order by id desc limit 1`)
|
|
183
306
|
.get(agentId, herdrSessionName);
|
|
184
307
|
return row ? mapAgentEvent(row) : undefined;
|
|
@@ -186,7 +309,7 @@ export class AgentEventStore {
|
|
|
186
309
|
listAfter(input) {
|
|
187
310
|
const clauses = [
|
|
188
311
|
"id > ?",
|
|
189
|
-
"((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and id > ? and last_attempt_at >= ?))",
|
|
312
|
+
"((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and id > ? and last_attempt_at >= ?) or (status = 'invalidated' and deliverable = 1 and (next_attempt_at is null or next_attempt_at <= ?)))",
|
|
190
313
|
];
|
|
191
314
|
const params = [
|
|
192
315
|
input.afterEventId ?? 0,
|
|
@@ -194,6 +317,7 @@ export class AgentEventStore {
|
|
|
194
317
|
input.ownerTerminalId ?? null,
|
|
195
318
|
input.afterEventId ?? 0,
|
|
196
319
|
this.#now() - REDELIVERY_FRESHNESS_MS,
|
|
320
|
+
this.#now(),
|
|
197
321
|
];
|
|
198
322
|
if (input.herdrSessionName) {
|
|
199
323
|
clauses.push("herdr_session_name = ?");
|
|
@@ -211,14 +335,27 @@ export class AgentEventStore {
|
|
|
211
335
|
}
|
|
212
336
|
nextDeliverableAfter(input) {
|
|
213
337
|
const scope = { herdrSessionName: input.herdrSessionName, workspaceId: input.workspaceId };
|
|
338
|
+
// Retained rows (status='invalidated' and deliverable=1) outlive the live
|
|
339
|
+
// `agents` row because pane close physically clears it, so they must never
|
|
340
|
+
// be filtered by the existence guard. Orphan terminal rows (`agent.failed` /
|
|
341
|
+
// `agent.discarded` written after the agents row vanished) have the same
|
|
342
|
+
// problem: they carry `agent_id = null` and still have to be visible here,
|
|
343
|
+
// because otherwise the cursor ack (`markAcked(id <= cursor)`) would silently
|
|
344
|
+
// swallow an event that was never delivered. Every other row keeps the
|
|
345
|
+
// original "the agent is still indexed" check.
|
|
346
|
+
const orphanTerminalFilter = `or type in ('agent.failed', 'agent.discarded')`;
|
|
214
347
|
const agentFilter = input.getAgent
|
|
215
348
|
? ""
|
|
216
|
-
: `and
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
349
|
+
: `and (
|
|
350
|
+
(status = 'invalidated' and deliverable = 1)
|
|
351
|
+
${orphanTerminalFilter}
|
|
352
|
+
or exists (
|
|
353
|
+
select 1 from agents
|
|
354
|
+
where agents.id = agent_events.agent_id
|
|
355
|
+
and agents.herdr_session_name = agent_events.herdr_session_name
|
|
356
|
+
and agents.workspace_id = agent_events.workspace_id
|
|
357
|
+
and agents.pane_id = agent_events.pane_id
|
|
358
|
+
)
|
|
222
359
|
)`;
|
|
223
360
|
let afterEventId = input.afterEventId;
|
|
224
361
|
for (let page = 0; page < 50; page += 1) {
|
|
@@ -227,25 +364,34 @@ export class AgentEventStore {
|
|
|
227
364
|
this.#now(),
|
|
228
365
|
input.ownerTerminalId,
|
|
229
366
|
this.#now() - REDELIVERY_FRESHNESS_MS,
|
|
367
|
+
this.#now(),
|
|
230
368
|
input.herdrSessionName,
|
|
231
369
|
input.workspaceId,
|
|
232
370
|
input.ownerTerminalId,
|
|
233
371
|
];
|
|
234
|
-
const
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
and
|
|
372
|
+
const sql = `select * from agent_events
|
|
373
|
+
where id > ? and ((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and last_attempt_at >= ?) or (status = 'invalidated' and deliverable = 1 and (next_attempt_at is null or next_attempt_at <= ?))) and herdr_session_name = ? and workspace_id = ?
|
|
374
|
+
and terminal_id is not null and terminal_id != ?
|
|
375
|
+
and (agent_id is not null or (status = 'invalidated' and deliverable = 1) ${orphanTerminalFilter})
|
|
238
376
|
${agentFilter}
|
|
239
|
-
order by id asc limit 1000
|
|
240
|
-
|
|
377
|
+
order by id asc limit 1000`;
|
|
378
|
+
const rows = this.#sqlite.prepare(sql).all(...params);
|
|
241
379
|
if (rows.length === 0)
|
|
242
380
|
return undefined;
|
|
243
381
|
for (const row of rows) {
|
|
244
382
|
const event = mapAgentEvent(row);
|
|
245
383
|
const agentId = event.agentId;
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
384
|
+
// Pane close physically removes the agents row and the ON DELETE SET NULL
|
|
385
|
+
// foreign key then clears agent_id on the retained event, so retained rows
|
|
386
|
+
// are evaluated from their own metadata instead of the live agent record.
|
|
387
|
+
// Orphan terminal rows follow the same rule (their own payload/metadata is
|
|
388
|
+
// the only remaining source of truth).
|
|
389
|
+
const retained = event.status === "invalidated" && event.deliverable === 1;
|
|
390
|
+
const orphanTerminal = event.type === "agent.failed" || event.type === "agent.discarded";
|
|
391
|
+
if (agentId === null && !retained && !orphanTerminal)
|
|
392
|
+
continue;
|
|
393
|
+
if (!input.getAgent ||
|
|
394
|
+
isDeliverableAgentEvent(event, agentId === null ? undefined : input.getAgent(agentId), scope, input.ownerTerminalId))
|
|
249
395
|
return event;
|
|
250
396
|
}
|
|
251
397
|
afterEventId = rows.at(-1)?.id ?? afterEventId;
|
|
@@ -257,16 +403,16 @@ export class AgentEventStore {
|
|
|
257
403
|
return this.#transaction(() => {
|
|
258
404
|
const now = this.#now();
|
|
259
405
|
const idClause = ids && ids.length > 0 ? `and id in (${ids.map(() => "?").join(",")})` : "";
|
|
260
|
-
const params = [now, terminalId, now - REDELIVERY_FRESHNESS_MS];
|
|
406
|
+
const params = [now, terminalId, now - REDELIVERY_FRESHNESS_MS, now];
|
|
261
407
|
if (ids && ids.length > 0)
|
|
262
408
|
params.push(...ids);
|
|
263
409
|
params.push(limit);
|
|
264
410
|
const rows = this.#sqlite
|
|
265
|
-
.prepare(`select * from agent_events where ((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and last_attempt_at >= ?)) ${idClause} order by id asc limit ?`)
|
|
411
|
+
.prepare(`select * from agent_events where ((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and last_attempt_at >= ?) or (status = 'invalidated' and deliverable = 1 and (next_attempt_at is null or next_attempt_at <= ?))) ${idClause} order by id asc limit ?`)
|
|
266
412
|
.all(...params);
|
|
267
413
|
for (const row of rows) {
|
|
268
414
|
this.#sqlite
|
|
269
|
-
.prepare(`update agent_events set status = 'delivered', deliverable = 1, delivery_attempts = ?, last_attempt_at = ?, delivered_to_terminal_id = ? where id = ? and status = 'pending'`)
|
|
415
|
+
.prepare(`update agent_events set status = 'delivered', deliverable = 1, delivery_attempts = ?, last_attempt_at = ?, delivered_to_terminal_id = ? where id = ? and (status = 'pending' or (status = 'invalidated' and deliverable = 1))`)
|
|
270
416
|
.run(row.delivery_attempts + 1, now, terminalId, row.id);
|
|
271
417
|
}
|
|
272
418
|
if (rows.length > 0) {
|
|
@@ -293,11 +439,17 @@ export class AgentEventStore {
|
|
|
293
439
|
and agents.pane_id = agent_events.pane_id
|
|
294
440
|
)`;
|
|
295
441
|
// Branch (b): the agent pane is closed/retired, so the delivered event is
|
|
296
|
-
// invalidated instead of being reclaimed and redelivered.
|
|
442
|
+
// invalidated instead of being reclaimed and redelivered. This is also the
|
|
443
|
+
// point where the "retained until the first delivery attempt" window of a
|
|
444
|
+
// terminal `agent.failed` row ends and the ordinary invalidated + 1h
|
|
445
|
+
// collection takes over. `reservePending` is the only writer that sets
|
|
446
|
+
// status = 'delivered' and it always increments delivery_attempts, so the
|
|
447
|
+
// explicit `delivery_attempts >= 1` guard states the invariant that no row
|
|
448
|
+
// may leave the retained window before it was handed to an owner once.
|
|
297
449
|
const invalidated = this.#sqlite
|
|
298
450
|
.prepare(`update agent_events
|
|
299
451
|
set deliverable = 0, status = 'invalidated', invalidated_reason = 'PANE_CLOSED_RECLAIM'
|
|
300
|
-
where status = 'delivered' and last_attempt_at < ? and not ${agentPaneOpen}`)
|
|
452
|
+
where status = 'delivered' and delivery_attempts >= 1 and last_attempt_at < ? and not ${agentPaneOpen}`)
|
|
301
453
|
.run(cutoff).changes;
|
|
302
454
|
// Branch (c): the pane is still open but the delivery terminal no longer
|
|
303
455
|
// holds the orchestrator scope (owner_terminal_id != delivered_to_terminal_id
|
|
@@ -343,12 +495,12 @@ export class AgentEventStore {
|
|
|
343
495
|
if (scope) {
|
|
344
496
|
this.#sqlite
|
|
345
497
|
.prepare(`update agent_events set status = 'acked', deliverable = 0
|
|
346
|
-
where herdr_session_name = ? and workspace_id = ? and id <= ? and status in ('pending', 'delivered')`)
|
|
498
|
+
where herdr_session_name = ? and workspace_id = ? and id <= ? and (status in ('pending', 'delivered') or (status = 'invalidated' and deliverable = 1))`)
|
|
347
499
|
.run(scope.herdrSessionName, scope.workspaceId, id);
|
|
348
500
|
return;
|
|
349
501
|
}
|
|
350
502
|
this.#sqlite
|
|
351
|
-
.prepare(`update agent_events set status = 'acked', deliverable = 0 where id = ? and status in ('pending', 'delivered')`)
|
|
503
|
+
.prepare(`update agent_events set status = 'acked', deliverable = 0 where id = ? and (status in ('pending', 'delivered') or (status = 'invalidated' and deliverable = 1))`)
|
|
352
504
|
.run(id);
|
|
353
505
|
}
|
|
354
506
|
#transaction(operation) {
|
|
@@ -396,7 +548,7 @@ export function mapAgentEvent(row) {
|
|
|
396
548
|
id: row.id,
|
|
397
549
|
paneId: row.pane_id,
|
|
398
550
|
paneGeneration: row.pane_generation,
|
|
399
|
-
deliverable: row.
|
|
551
|
+
deliverable: row.deliverable,
|
|
400
552
|
status: row.status,
|
|
401
553
|
deliveryAttempts: row.delivery_attempts,
|
|
402
554
|
lastAttemptAt: row.last_attempt_at === null ? null : new Date(row.last_attempt_at),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"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"}
|
package/dist/src/db/agents.js
CHANGED
|
@@ -130,7 +130,7 @@ export class AgentStore {
|
|
|
130
130
|
for (const id of removedIds)
|
|
131
131
|
this.#terminalTitleById.delete(id);
|
|
132
132
|
for (const agent of existing.filter((candidate) => removedIds.includes(candidate.id))) {
|
|
133
|
-
this.#agentEvents.
|
|
133
|
+
this.#agentEvents.invalidatePaneDirect({
|
|
134
134
|
herdrSessionName: input.herdrSessionName,
|
|
135
135
|
paneId: agent.pane_id,
|
|
136
136
|
paneGeneration: agent.pane_generation,
|