@blxzer/cursor-trellis-core 0.5.0-beta.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/channel.d.ts +1 -0
- package/channel.js +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/package.json +27 -47
- package/task.d.ts +1 -0
- package/task.js +1 -0
- package/testing.d.ts +1 -0
- package/testing.js +1 -0
- package/dist/channel/api/assert.d.ts +0 -3
- package/dist/channel/api/assert.d.ts.map +0 -1
- package/dist/channel/api/assert.js +0 -11
- package/dist/channel/api/assert.js.map +0 -1
- package/dist/channel/api/context.d.ts +0 -21
- package/dist/channel/api/context.d.ts.map +0 -1
- package/dist/channel/api/context.js +0 -99
- package/dist/channel/api/context.js.map +0 -1
- package/dist/channel/api/create.d.ts +0 -9
- package/dist/channel/api/create.d.ts.map +0 -1
- package/dist/channel/api/create.js +0 -104
- package/dist/channel/api/create.js.map +0 -1
- package/dist/channel/api/inbox.d.ts +0 -51
- package/dist/channel/api/inbox.d.ts.map +0 -1
- package/dist/channel/api/inbox.js +0 -176
- package/dist/channel/api/inbox.js.map +0 -1
- package/dist/channel/api/interrupt.d.ts +0 -31
- package/dist/channel/api/interrupt.d.ts.map +0 -1
- package/dist/channel/api/interrupt.js +0 -102
- package/dist/channel/api/interrupt.js.map +0 -1
- package/dist/channel/api/post-thread.d.ts +0 -14
- package/dist/channel/api/post-thread.d.ts.map +0 -1
- package/dist/channel/api/post-thread.js +0 -109
- package/dist/channel/api/post-thread.js.map +0 -1
- package/dist/channel/api/read.d.ts +0 -17
- package/dist/channel/api/read.d.ts.map +0 -1
- package/dist/channel/api/read.js +0 -44
- package/dist/channel/api/read.js.map +0 -1
- package/dist/channel/api/resolve.d.ts +0 -21
- package/dist/channel/api/resolve.d.ts.map +0 -1
- package/dist/channel/api/resolve.js +0 -28
- package/dist/channel/api/resolve.js.map +0 -1
- package/dist/channel/api/runtime.d.ts +0 -70
- package/dist/channel/api/runtime.d.ts.map +0 -1
- package/dist/channel/api/runtime.js +0 -11
- package/dist/channel/api/runtime.js.map +0 -1
- package/dist/channel/api/send.d.ts +0 -4
- package/dist/channel/api/send.d.ts.map +0 -1
- package/dist/channel/api/send.js +0 -52
- package/dist/channel/api/send.js.map +0 -1
- package/dist/channel/api/spawn.d.ts +0 -13
- package/dist/channel/api/spawn.d.ts.map +0 -1
- package/dist/channel/api/spawn.js +0 -54
- package/dist/channel/api/spawn.js.map +0 -1
- package/dist/channel/api/title.d.ts +0 -5
- package/dist/channel/api/title.d.ts.map +0 -1
- package/dist/channel/api/title.js +0 -40
- package/dist/channel/api/title.js.map +0 -1
- package/dist/channel/api/types.d.ts +0 -65
- package/dist/channel/api/types.d.ts.map +0 -1
- package/dist/channel/api/types.js +0 -2
- package/dist/channel/api/types.js.map +0 -1
- package/dist/channel/api/watch-channels.d.ts +0 -40
- package/dist/channel/api/watch-channels.d.ts.map +0 -1
- package/dist/channel/api/watch-channels.js +0 -143
- package/dist/channel/api/watch-channels.js.map +0 -1
- package/dist/channel/api/watch.d.ts +0 -11
- package/dist/channel/api/watch.d.ts.map +0 -1
- package/dist/channel/api/watch.js +0 -17
- package/dist/channel/api/watch.js.map +0 -1
- package/dist/channel/api/workers.d.ts +0 -69
- package/dist/channel/api/workers.d.ts.map +0 -1
- package/dist/channel/api/workers.js +0 -145
- package/dist/channel/api/workers.js.map +0 -1
- package/dist/channel/index.d.ts +0 -38
- package/dist/channel/index.d.ts.map +0 -1
- package/dist/channel/index.js +0 -23
- package/dist/channel/index.js.map +0 -1
- package/dist/channel/internal/store/channel-metadata.d.ts +0 -23
- package/dist/channel/internal/store/channel-metadata.d.ts.map +0 -1
- package/dist/channel/internal/store/channel-metadata.js +0 -94
- package/dist/channel/internal/store/channel-metadata.js.map +0 -1
- package/dist/channel/internal/store/delivery.d.ts +0 -27
- package/dist/channel/internal/store/delivery.d.ts.map +0 -1
- package/dist/channel/internal/store/delivery.js +0 -37
- package/dist/channel/internal/store/delivery.js.map +0 -1
- package/dist/channel/internal/store/events.d.ts +0 -215
- package/dist/channel/internal/store/events.d.ts.map +0 -1
- package/dist/channel/internal/store/events.js +0 -206
- package/dist/channel/internal/store/events.js.map +0 -1
- package/dist/channel/internal/store/filter.d.ts +0 -21
- package/dist/channel/internal/store/filter.d.ts.map +0 -1
- package/dist/channel/internal/store/filter.js +0 -75
- package/dist/channel/internal/store/filter.js.map +0 -1
- package/dist/channel/internal/store/inbox.d.ts +0 -17
- package/dist/channel/internal/store/inbox.d.ts.map +0 -1
- package/dist/channel/internal/store/inbox.js +0 -30
- package/dist/channel/internal/store/inbox.js.map +0 -1
- package/dist/channel/internal/store/lock.d.ts +0 -17
- package/dist/channel/internal/store/lock.d.ts.map +0 -1
- package/dist/channel/internal/store/lock.js +0 -88
- package/dist/channel/internal/store/lock.js.map +0 -1
- package/dist/channel/internal/store/paths.d.ts +0 -43
- package/dist/channel/internal/store/paths.d.ts.map +0 -1
- package/dist/channel/internal/store/paths.js +0 -233
- package/dist/channel/internal/store/paths.js.map +0 -1
- package/dist/channel/internal/store/schema.d.ts +0 -77
- package/dist/channel/internal/store/schema.d.ts.map +0 -1
- package/dist/channel/internal/store/schema.js +0 -127
- package/dist/channel/internal/store/schema.js.map +0 -1
- package/dist/channel/internal/store/seq.d.ts +0 -12
- package/dist/channel/internal/store/seq.d.ts.map +0 -1
- package/dist/channel/internal/store/seq.js +0 -133
- package/dist/channel/internal/store/seq.js.map +0 -1
- package/dist/channel/internal/store/thread-state.d.ts +0 -37
- package/dist/channel/internal/store/thread-state.d.ts.map +0 -1
- package/dist/channel/internal/store/thread-state.js +0 -206
- package/dist/channel/internal/store/thread-state.js.map +0 -1
- package/dist/channel/internal/store/watch.d.ts +0 -10
- package/dist/channel/internal/store/watch.d.ts.map +0 -1
- package/dist/channel/internal/store/watch.js +0 -122
- package/dist/channel/internal/store/watch.js.map +0 -1
- package/dist/channel/internal/store/worker-state.d.ts +0 -56
- package/dist/channel/internal/store/worker-state.d.ts.map +0 -1
- package/dist/channel/internal/store/worker-state.js +0 -220
- package/dist/channel/internal/store/worker-state.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/task/adapter-middleware.d.ts +0 -118
- package/dist/task/adapter-middleware.d.ts.map +0 -1
- package/dist/task/adapter-middleware.js +0 -508
- package/dist/task/adapter-middleware.js.map +0 -1
- package/dist/task/contract-migrate.d.ts +0 -29
- package/dist/task/contract-migrate.d.ts.map +0 -1
- package/dist/task/contract-migrate.js +0 -207
- package/dist/task/contract-migrate.js.map +0 -1
- package/dist/task/full-quality.d.ts +0 -89
- package/dist/task/full-quality.d.ts.map +0 -1
- package/dist/task/full-quality.js +0 -379
- package/dist/task/full-quality.js.map +0 -1
- package/dist/task/index.d.ts +0 -31
- package/dist/task/index.d.ts.map +0 -1
- package/dist/task/index.js +0 -20
- package/dist/task/index.js.map +0 -1
- package/dist/task/kernel-cli.d.ts +0 -44
- package/dist/task/kernel-cli.d.ts.map +0 -1
- package/dist/task/kernel-cli.js +0 -287
- package/dist/task/kernel-cli.js.map +0 -1
- package/dist/task/kernel-contract.d.ts +0 -113
- package/dist/task/kernel-contract.d.ts.map +0 -1
- package/dist/task/kernel-contract.js +0 -332
- package/dist/task/kernel-contract.js.map +0 -1
- package/dist/task/kernel-store.d.ts +0 -99
- package/dist/task/kernel-store.d.ts.map +0 -1
- package/dist/task/kernel-store.js +0 -735
- package/dist/task/kernel-store.js.map +0 -1
- package/dist/task/kernel-surface.d.ts +0 -39
- package/dist/task/kernel-surface.d.ts.map +0 -1
- package/dist/task/kernel-surface.js +0 -73
- package/dist/task/kernel-surface.js.map +0 -1
- package/dist/task/lite-context-pack.d.ts +0 -71
- package/dist/task/lite-context-pack.d.ts.map +0 -1
- package/dist/task/lite-context-pack.js +0 -175
- package/dist/task/lite-context-pack.js.map +0 -1
- package/dist/task/ondemand-topology.d.ts +0 -108
- package/dist/task/ondemand-topology.d.ts.map +0 -1
- package/dist/task/ondemand-topology.js +0 -453
- package/dist/task/ondemand-topology.js.map +0 -1
- package/dist/task/p36-artifact-migrate.d.ts +0 -61
- package/dist/task/p36-artifact-migrate.d.ts.map +0 -1
- package/dist/task/p36-artifact-migrate.js +0 -336
- package/dist/task/p36-artifact-migrate.js.map +0 -1
- package/dist/task/p36-wave-c.d.ts +0 -39
- package/dist/task/p36-wave-c.d.ts.map +0 -1
- package/dist/task/p36-wave-c.js +0 -100
- package/dist/task/p36-wave-c.js.map +0 -1
- package/dist/task/paths.d.ts +0 -37
- package/dist/task/paths.d.ts.map +0 -1
- package/dist/task/paths.js +0 -49
- package/dist/task/paths.js.map +0 -1
- package/dist/task/phase.d.ts +0 -27
- package/dist/task/phase.d.ts.map +0 -1
- package/dist/task/phase.js +0 -24
- package/dist/task/phase.js.map +0 -1
- package/dist/task/records.d.ts +0 -48
- package/dist/task/records.d.ts.map +0 -1
- package/dist/task/records.js +0 -100
- package/dist/task/records.js.map +0 -1
- package/dist/task/schema.d.ts +0 -77
- package/dist/task/schema.d.ts.map +0 -1
- package/dist/task/schema.js +0 -220
- package/dist/task/schema.js.map +0 -1
- package/dist/testing/index.d.ts +0 -2
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -4
- package/dist/testing/index.js.map +0 -1
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
import { isContextEvent, isThreadEvent, } from "./events.js";
|
|
2
|
-
import { asContextEntries, asStringArray, contextEntryKey, } from "./schema.js";
|
|
3
|
-
export function buildThreadAliasResolver(events) {
|
|
4
|
-
// Map from any historical key -> current key (chain-flattened).
|
|
5
|
-
const aliasToCurrent = new Map();
|
|
6
|
-
// Reverse index: current key -> set of historical aliases (excluding self).
|
|
7
|
-
const aliasesByCurrent = new Map();
|
|
8
|
-
const currentFor = (key) => {
|
|
9
|
-
let cur = aliasToCurrent.get(key) ?? key;
|
|
10
|
-
// Flatten any chain that may form if the same key was renamed more
|
|
11
|
-
// than once. We rebuild on each call so callers do not see stale
|
|
12
|
-
// pointers when this function is called mid-stream.
|
|
13
|
-
const seen = new Set();
|
|
14
|
-
while (aliasToCurrent.has(cur) && !seen.has(cur)) {
|
|
15
|
-
seen.add(cur);
|
|
16
|
-
cur = aliasToCurrent.get(cur);
|
|
17
|
-
}
|
|
18
|
-
return cur;
|
|
19
|
-
};
|
|
20
|
-
for (const ev of events) {
|
|
21
|
-
if (!isThreadEvent(ev) || ev.action !== "rename")
|
|
22
|
-
continue;
|
|
23
|
-
const newKey = typeof ev.newThread === "string" ? ev.newThread.trim() : undefined;
|
|
24
|
-
const oldKey = ev.thread;
|
|
25
|
-
if (!newKey || !oldKey || newKey === oldKey)
|
|
26
|
-
continue;
|
|
27
|
-
const oldCurrent = currentFor(oldKey);
|
|
28
|
-
const targetCurrent = currentFor(newKey);
|
|
29
|
-
if (oldCurrent === targetCurrent)
|
|
30
|
-
continue;
|
|
31
|
-
// Migrate the alias group rooted at `oldCurrent` onto `targetCurrent`.
|
|
32
|
-
const movingAliases = aliasesByCurrent.get(oldCurrent) ?? new Set();
|
|
33
|
-
movingAliases.add(oldCurrent);
|
|
34
|
-
aliasesByCurrent.delete(oldCurrent);
|
|
35
|
-
const targetAliases = aliasesByCurrent.get(targetCurrent) ?? new Set();
|
|
36
|
-
for (const alias of movingAliases) {
|
|
37
|
-
if (alias !== targetCurrent)
|
|
38
|
-
targetAliases.add(alias);
|
|
39
|
-
aliasToCurrent.set(alias, targetCurrent);
|
|
40
|
-
}
|
|
41
|
-
aliasesByCurrent.set(targetCurrent, targetAliases);
|
|
42
|
-
}
|
|
43
|
-
return {
|
|
44
|
-
resolve(key) {
|
|
45
|
-
return currentFor(key);
|
|
46
|
-
},
|
|
47
|
-
aliasesFor(currentKey) {
|
|
48
|
-
const set = aliasesByCurrent.get(currentKey);
|
|
49
|
-
return set ? [...set] : [];
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export function reduceThreads(events) {
|
|
54
|
-
const resolver = buildThreadAliasResolver(events);
|
|
55
|
-
const states = new Map();
|
|
56
|
-
const ensure = (key, seq) => {
|
|
57
|
-
const current = states.get(key);
|
|
58
|
-
if (current)
|
|
59
|
-
return current;
|
|
60
|
-
const fresh = {
|
|
61
|
-
thread: key,
|
|
62
|
-
status: "open",
|
|
63
|
-
labels: [],
|
|
64
|
-
assignees: [],
|
|
65
|
-
lastSeq: seq,
|
|
66
|
-
comments: 0,
|
|
67
|
-
aliases: [],
|
|
68
|
-
contextMap: new Map(),
|
|
69
|
-
};
|
|
70
|
-
states.set(key, fresh);
|
|
71
|
-
return fresh;
|
|
72
|
-
};
|
|
73
|
-
for (const ev of events) {
|
|
74
|
-
if (isThreadEvent(ev)) {
|
|
75
|
-
const current = resolver.resolve(ev.thread);
|
|
76
|
-
const state = ensure(current, ev.seq);
|
|
77
|
-
if (typeof ev.ts === "string")
|
|
78
|
-
state.updatedAt = ev.ts;
|
|
79
|
-
if (!state.openedAt && typeof ev.ts === "string") {
|
|
80
|
-
state.openedAt = ev.ts;
|
|
81
|
-
}
|
|
82
|
-
state.lastSeq = ev.seq;
|
|
83
|
-
applyThreadAction(state, ev);
|
|
84
|
-
continue;
|
|
85
|
-
}
|
|
86
|
-
if (isContextEvent(ev) && ev.target === "thread" && ev.thread) {
|
|
87
|
-
const current = resolver.resolve(ev.thread);
|
|
88
|
-
const state = states.get(current);
|
|
89
|
-
if (!state)
|
|
90
|
-
continue;
|
|
91
|
-
const entries = asContextEntries(ev.context);
|
|
92
|
-
if (!entries)
|
|
93
|
-
continue;
|
|
94
|
-
if (ev.action === "add") {
|
|
95
|
-
for (const entry of entries) {
|
|
96
|
-
state.contextMap.set(contextEntryKey(entry), entry);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
else if (ev.action === "delete") {
|
|
100
|
-
for (const entry of entries) {
|
|
101
|
-
state.contextMap.delete(contextEntryKey(entry));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
if (typeof ev.ts === "string")
|
|
105
|
-
state.updatedAt = ev.ts;
|
|
106
|
-
state.lastSeq = ev.seq;
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return [...states.entries()]
|
|
111
|
-
.map(([currentKey, state]) => {
|
|
112
|
-
const aliases = resolver.aliasesFor(currentKey);
|
|
113
|
-
const context = state.contextMap.size > 0 ? [...state.contextMap.values()] : undefined;
|
|
114
|
-
const result = {
|
|
115
|
-
thread: state.thread,
|
|
116
|
-
...(state.title !== undefined ? { title: state.title } : {}),
|
|
117
|
-
status: state.status,
|
|
118
|
-
labels: state.labels,
|
|
119
|
-
assignees: state.assignees,
|
|
120
|
-
...(state.description !== undefined
|
|
121
|
-
? { description: state.description }
|
|
122
|
-
: {}),
|
|
123
|
-
...(context !== undefined ? { context } : {}),
|
|
124
|
-
...(state.summary !== undefined ? { summary: state.summary } : {}),
|
|
125
|
-
...(state.openedAt !== undefined ? { openedAt: state.openedAt } : {}),
|
|
126
|
-
...(state.updatedAt !== undefined ? { updatedAt: state.updatedAt } : {}),
|
|
127
|
-
lastSeq: state.lastSeq,
|
|
128
|
-
comments: state.comments,
|
|
129
|
-
aliases,
|
|
130
|
-
};
|
|
131
|
-
return result;
|
|
132
|
-
})
|
|
133
|
-
.sort((a, b) => (b.updatedAt ?? "").localeCompare(a.updatedAt ?? ""));
|
|
134
|
-
}
|
|
135
|
-
function applyThreadAction(current, ev) {
|
|
136
|
-
switch (ev.action) {
|
|
137
|
-
case "opened":
|
|
138
|
-
current.status = typeof ev.status === "string" ? ev.status : "open";
|
|
139
|
-
if (typeof ev.title === "string")
|
|
140
|
-
current.title = ev.title;
|
|
141
|
-
if (typeof ev.description === "string") {
|
|
142
|
-
current.description = ev.description;
|
|
143
|
-
}
|
|
144
|
-
{
|
|
145
|
-
const initial = asContextEntries(ev.context) ?? asContextEntries(ev.linkedContext);
|
|
146
|
-
if (initial) {
|
|
147
|
-
current.contextMap.clear();
|
|
148
|
-
for (const entry of initial) {
|
|
149
|
-
current.contextMap.set(contextEntryKey(entry), entry);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
current.labels = asStringArray(ev.labels) ?? current.labels;
|
|
154
|
-
current.assignees = asStringArray(ev.assignees) ?? current.assignees;
|
|
155
|
-
return;
|
|
156
|
-
case "comment":
|
|
157
|
-
current.comments += 1;
|
|
158
|
-
return;
|
|
159
|
-
case "status":
|
|
160
|
-
if (typeof ev.status === "string")
|
|
161
|
-
current.status = ev.status;
|
|
162
|
-
return;
|
|
163
|
-
case "labels":
|
|
164
|
-
current.labels = asStringArray(ev.labels) ?? current.labels;
|
|
165
|
-
return;
|
|
166
|
-
case "assignees":
|
|
167
|
-
current.assignees = asStringArray(ev.assignees) ?? current.assignees;
|
|
168
|
-
return;
|
|
169
|
-
case "summary":
|
|
170
|
-
if (typeof ev.summary === "string")
|
|
171
|
-
current.summary = ev.summary;
|
|
172
|
-
return;
|
|
173
|
-
case "processed":
|
|
174
|
-
current.status = typeof ev.status === "string" ? ev.status : "processed";
|
|
175
|
-
return;
|
|
176
|
-
case "rename":
|
|
177
|
-
// Rename handled by the alias resolver; nothing to do here.
|
|
178
|
-
return;
|
|
179
|
-
default:
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Return the timeline events that belong to a given thread (or any of
|
|
185
|
-
* its rename aliases), in seq order. Includes thread events and
|
|
186
|
-
* thread-targeted context events.
|
|
187
|
-
*/
|
|
188
|
-
export function collectThreadTimeline(events, threadKey) {
|
|
189
|
-
const resolver = buildThreadAliasResolver(events);
|
|
190
|
-
const current = resolver.resolve(threadKey);
|
|
191
|
-
const aliases = new Set([current, ...resolver.aliasesFor(current)]);
|
|
192
|
-
const out = [];
|
|
193
|
-
for (const ev of events) {
|
|
194
|
-
if (isThreadEvent(ev)) {
|
|
195
|
-
if (aliases.has(ev.thread))
|
|
196
|
-
out.push(ev);
|
|
197
|
-
continue;
|
|
198
|
-
}
|
|
199
|
-
if (isContextEvent(ev) && ev.target === "thread" && ev.thread) {
|
|
200
|
-
if (aliases.has(ev.thread))
|
|
201
|
-
out.push(ev);
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return out;
|
|
205
|
-
}
|
|
206
|
-
//# sourceMappingURL=thread-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"thread-state.js","sourceRoot":"","sources":["../../../../src/channel/internal/store/thread-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ChannelEvent } from "./events.js";
|
|
2
|
-
import { type ChannelEventFilter } from "./filter.js";
|
|
3
|
-
export type WatchFilter = ChannelEventFilter;
|
|
4
|
-
export declare function watchEvents(channelName: string, filter: WatchFilter, opts?: {
|
|
5
|
-
signal?: AbortSignal;
|
|
6
|
-
fromStart?: boolean;
|
|
7
|
-
sinceSeq?: number;
|
|
8
|
-
project?: string;
|
|
9
|
-
}): AsyncGenerator<ChannelEvent, void, unknown>;
|
|
10
|
-
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../src/channel/internal/store/watch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAgD7C,wBAAuB,WAAW,CAChC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,OAAO,CAAC,CA6E7C"}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import fs from "node:fs";
|
|
2
|
-
import { matchesEventFilter } from "./filter.js";
|
|
3
|
-
import { channelDir, eventsPath } from "./paths.js";
|
|
4
|
-
async function readNewEvents(filePath, state) {
|
|
5
|
-
if (!fs.existsSync(filePath)) {
|
|
6
|
-
state.byteOffset = 0;
|
|
7
|
-
state.carry = "";
|
|
8
|
-
return [];
|
|
9
|
-
}
|
|
10
|
-
const stat = await fs.promises.stat(filePath);
|
|
11
|
-
if (stat.size < state.byteOffset) {
|
|
12
|
-
state.byteOffset = 0;
|
|
13
|
-
state.carry = "";
|
|
14
|
-
}
|
|
15
|
-
if (stat.size <= state.byteOffset)
|
|
16
|
-
return [];
|
|
17
|
-
const fh = await fs.promises.open(filePath, "r");
|
|
18
|
-
try {
|
|
19
|
-
const length = stat.size - state.byteOffset;
|
|
20
|
-
const buf = Buffer.alloc(length);
|
|
21
|
-
await fh.read(buf, 0, length, state.byteOffset);
|
|
22
|
-
state.byteOffset = stat.size;
|
|
23
|
-
const text = state.carry + buf.toString("utf-8");
|
|
24
|
-
const lines = text.split("\n");
|
|
25
|
-
state.carry = lines.pop() ?? "";
|
|
26
|
-
const events = [];
|
|
27
|
-
for (const line of lines) {
|
|
28
|
-
const t = line.trim();
|
|
29
|
-
if (!t)
|
|
30
|
-
continue;
|
|
31
|
-
try {
|
|
32
|
-
events.push(JSON.parse(t));
|
|
33
|
-
}
|
|
34
|
-
catch {
|
|
35
|
-
continue;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return events;
|
|
39
|
-
}
|
|
40
|
-
finally {
|
|
41
|
-
await fh.close();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
export async function* watchEvents(channelName, filter, opts = {}) {
|
|
45
|
-
const file = eventsPath(channelName, opts.project);
|
|
46
|
-
if (!fs.existsSync(channelDir(channelName, opts.project))) {
|
|
47
|
-
await fs.promises.mkdir(channelDir(channelName, opts.project), {
|
|
48
|
-
recursive: true,
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
let initialOffset = 0;
|
|
52
|
-
if (!opts.fromStart && opts.sinceSeq === undefined) {
|
|
53
|
-
try {
|
|
54
|
-
if (fs.existsSync(file)) {
|
|
55
|
-
initialOffset = (await fs.promises.stat(file)).size;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
catch {
|
|
59
|
-
initialOffset = 0;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
const state = { byteOffset: initialOffset, carry: "" };
|
|
63
|
-
const sinceSeq = opts.sinceSeq;
|
|
64
|
-
let resolveNext = null;
|
|
65
|
-
const wake = () => {
|
|
66
|
-
if (resolveNext) {
|
|
67
|
-
const r = resolveNext;
|
|
68
|
-
resolveNext = null;
|
|
69
|
-
r();
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
let watcher = null;
|
|
73
|
-
try {
|
|
74
|
-
watcher = fs.watch(channelDir(channelName, opts.project), () => wake());
|
|
75
|
-
watcher.on("error", () => {
|
|
76
|
-
try {
|
|
77
|
-
watcher?.close();
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// already closed
|
|
81
|
-
}
|
|
82
|
-
watcher = null;
|
|
83
|
-
// Keep the generator alive; the 200ms poll remains the fallback.
|
|
84
|
-
wake();
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
catch {
|
|
88
|
-
// ignore — fall back to polling
|
|
89
|
-
}
|
|
90
|
-
const poll = setInterval(wake, 200);
|
|
91
|
-
const abortHandler = () => wake();
|
|
92
|
-
opts.signal?.addEventListener("abort", abortHandler);
|
|
93
|
-
try {
|
|
94
|
-
while (true) {
|
|
95
|
-
if (opts.signal?.aborted)
|
|
96
|
-
return;
|
|
97
|
-
const fresh = await readNewEvents(file, state);
|
|
98
|
-
for (const ev of fresh) {
|
|
99
|
-
if (sinceSeq !== undefined && ev.seq <= sinceSeq)
|
|
100
|
-
continue;
|
|
101
|
-
if (matchesEventFilter(ev, filter))
|
|
102
|
-
yield ev;
|
|
103
|
-
if (opts.signal?.aborted)
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
await new Promise((resolve) => {
|
|
107
|
-
resolveNext = resolve;
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
finally {
|
|
112
|
-
clearInterval(poll);
|
|
113
|
-
try {
|
|
114
|
-
watcher?.close();
|
|
115
|
-
}
|
|
116
|
-
catch {
|
|
117
|
-
// already closed
|
|
118
|
-
}
|
|
119
|
-
opts.signal?.removeEventListener("abort", abortHandler);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//# sourceMappingURL=watch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/channel/internal/store/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EAAE,kBAAkB,EAA2B,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AASpD,KAAK,UAAU,aAAa,CAC1B,QAAgB,EAChB,KAAmB;IAEnB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QACjC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;IACnB,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE7C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC;QAC5C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAChD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAChC,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC;gBAAE,SAAS;YACjB,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC,CAAC;YAC7C,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,WAAW,CAChC,WAAmB,EACnB,MAAmB,EACnB,OAKI,EAAE;IAEN,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE;YAC7D,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,aAAa,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,aAAa,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,MAAM,KAAK,GAAiB,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAE/B,IAAI,WAAW,GAAwB,IAAI,CAAC;IAE5C,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,GAAG,WAAW,CAAC;YACtB,WAAW,GAAG,IAAI,CAAC;YACnB,CAAC,EAAE,CAAC;QACN,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,OAAO,GAAwB,IAAI,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC;gBACH,OAAO,EAAE,KAAK,EAAE,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;YACD,OAAO,GAAG,IAAI,CAAC;YACf,iEAAiE;YACjE,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEpC,MAAM,YAAY,GAAG,GAAS,EAAE,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;gBAAE,OAAO;YAEjC,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,IAAI,QAAQ;oBAAE,SAAS;gBAC3D,IAAI,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC;oBAAE,MAAM,EAAE,CAAC;gBAC7C,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;oBAAE,OAAO;YACnC,CAAC;YAED,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,WAAW,GAAG,OAAO,CAAC;YACxB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;YAAS,CAAC;QACT,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { ChannelEvent } from "./events.js";
|
|
2
|
-
import type { ChannelRef, InboxPolicy } from "./schema.js";
|
|
3
|
-
/**
|
|
4
|
-
* Process lifecycle of a worker, projected purely from durable channel
|
|
5
|
-
* events. Distinct from {@link WorkerActivity}, which tracks whether the
|
|
6
|
-
* worker is mid-turn.
|
|
7
|
-
*/
|
|
8
|
-
export type WorkerLifecycle = "starting" | "running" | "done" | "error" | "killed" | "crashed";
|
|
9
|
-
/** Turn activity of a worker — is it currently running a turn? */
|
|
10
|
-
export type WorkerActivity = "idle" | "mid-turn";
|
|
11
|
-
export interface WorkerState {
|
|
12
|
-
workerId: string;
|
|
13
|
-
/** Channel the worker belongs to. Stamped by the API layer. */
|
|
14
|
-
channel?: ChannelRef;
|
|
15
|
-
agent?: string;
|
|
16
|
-
provider?: string;
|
|
17
|
-
lifecycle: WorkerLifecycle;
|
|
18
|
-
terminal: boolean;
|
|
19
|
-
activity: WorkerActivity;
|
|
20
|
-
activeTurnId?: string;
|
|
21
|
-
activeTurnStartedAt?: string;
|
|
22
|
-
/**
|
|
23
|
-
* Count of deliverable `message` events (matching the worker inbox
|
|
24
|
-
* policy) with seq greater than the latest consumed `turn_started.inputSeq`.
|
|
25
|
-
* Derived only from durable events — never from host-local cursors.
|
|
26
|
-
* Always 0 for terminal workers.
|
|
27
|
-
*/
|
|
28
|
-
pendingMessageCount: number;
|
|
29
|
-
inboxPolicy: InboxPolicy;
|
|
30
|
-
spawnedAt?: string;
|
|
31
|
-
updatedAt: string;
|
|
32
|
-
startedBy?: string;
|
|
33
|
-
exitCode?: number;
|
|
34
|
-
signal?: string;
|
|
35
|
-
reason?: string;
|
|
36
|
-
error?: string;
|
|
37
|
-
/**
|
|
38
|
-
* ISO timestamp of the latest durable event that put this worker into
|
|
39
|
-
* the `idle` activity (spawn, turn finish, or interrupt). Cleared while
|
|
40
|
-
* the worker is `mid-turn`, and on terminal lifecycles. Derived purely
|
|
41
|
-
* from the event log — never from pid files or host clocks.
|
|
42
|
-
*/
|
|
43
|
-
idleSince?: string;
|
|
44
|
-
/** Seq of the last event applied to this worker. */
|
|
45
|
-
lastSeq: number;
|
|
46
|
-
}
|
|
47
|
-
export interface WorkerRegistry {
|
|
48
|
-
workers: WorkerState[];
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* Project durable channel events into the worker registry. Pure — only
|
|
52
|
-
* the event log feeds the projection (no pid files, no inbox cursors).
|
|
53
|
-
*/
|
|
54
|
-
export declare function reduceWorkerRegistry(events: ChannelEvent[], channel?: ChannelRef): WorkerRegistry;
|
|
55
|
-
export declare function isTerminalLifecycle(lifecycle: WorkerLifecycle): boolean;
|
|
56
|
-
//# sourceMappingURL=worker-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-state.d.ts","sourceRoot":"","sources":["../../../../src/channel/internal/store/worker-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB,UAAU,GACV,SAAS,GACT,MAAM,GACN,OAAO,GACP,QAAQ,GACR,SAAS,CAAC;AAEd,kEAAkE;AAClE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AASjD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,cAAc,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AA4ED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,EAAE,EACtB,OAAO,CAAC,EAAE,UAAU,GACnB,cAAc,CA0IhB;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAEvE"}
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { matchesInboxPolicy, DEFAULT_INBOX_POLICY } from "./inbox.js";
|
|
2
|
-
const TERMINAL_LIFECYCLES = new Set([
|
|
3
|
-
"done",
|
|
4
|
-
"error",
|
|
5
|
-
"killed",
|
|
6
|
-
"crashed",
|
|
7
|
-
]);
|
|
8
|
-
function strField(ev, key) {
|
|
9
|
-
const v = ev[key];
|
|
10
|
-
return typeof v === "string" ? v : undefined;
|
|
11
|
-
}
|
|
12
|
-
function numField(ev, key) {
|
|
13
|
-
const v = ev[key];
|
|
14
|
-
return typeof v === "number" ? v : undefined;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Resolve the worker id an event refers to, and whether the event kind
|
|
18
|
-
* is allowed to *create* a worker entry (only `spawned` and clearly
|
|
19
|
-
* worker-identified terminal events can — this avoids phantom workers
|
|
20
|
-
* from plain `by` aliases).
|
|
21
|
-
*/
|
|
22
|
-
function identifyWorker(ev) {
|
|
23
|
-
switch (ev.kind) {
|
|
24
|
-
case "spawned": {
|
|
25
|
-
const id = strField(ev, "as");
|
|
26
|
-
return id ? { id, canCreate: true } : null;
|
|
27
|
-
}
|
|
28
|
-
case "turn_started":
|
|
29
|
-
case "turn_finished":
|
|
30
|
-
case "interrupt_requested":
|
|
31
|
-
case "interrupted": {
|
|
32
|
-
const id = strField(ev, "worker");
|
|
33
|
-
return id ? { id, canCreate: false } : null;
|
|
34
|
-
}
|
|
35
|
-
case "killed": {
|
|
36
|
-
const explicit = strField(ev, "worker") ?? strField(ev, "as");
|
|
37
|
-
if (explicit)
|
|
38
|
-
return { id: explicit, canCreate: true };
|
|
39
|
-
const by = ev.by;
|
|
40
|
-
if (by.startsWith("supervisor:")) {
|
|
41
|
-
return { id: by.slice("supervisor:".length), canCreate: true };
|
|
42
|
-
}
|
|
43
|
-
return { id: by, canCreate: false };
|
|
44
|
-
}
|
|
45
|
-
case "done":
|
|
46
|
-
case "error": {
|
|
47
|
-
const explicit = strField(ev, "worker") ?? strField(ev, "as");
|
|
48
|
-
if (explicit)
|
|
49
|
-
return { id: explicit, canCreate: true };
|
|
50
|
-
const by = ev.by;
|
|
51
|
-
if (by.startsWith("supervisor:")) {
|
|
52
|
-
return { id: by.slice("supervisor:".length), canCreate: true };
|
|
53
|
-
}
|
|
54
|
-
return { id: by, canCreate: false };
|
|
55
|
-
}
|
|
56
|
-
default:
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
function blankWorker(id, ev) {
|
|
61
|
-
return {
|
|
62
|
-
workerId: id,
|
|
63
|
-
lifecycle: "running",
|
|
64
|
-
terminal: false,
|
|
65
|
-
activity: "idle",
|
|
66
|
-
pendingMessageCount: 0,
|
|
67
|
-
inboxPolicy: DEFAULT_INBOX_POLICY,
|
|
68
|
-
updatedAt: ev.ts,
|
|
69
|
-
lastSeq: ev.seq,
|
|
70
|
-
consumedInputSeq: 0,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Project durable channel events into the worker registry. Pure — only
|
|
75
|
-
* the event log feeds the projection (no pid files, no inbox cursors).
|
|
76
|
-
*/
|
|
77
|
-
export function reduceWorkerRegistry(events, channel) {
|
|
78
|
-
const acc = new Map();
|
|
79
|
-
for (const ev of events) {
|
|
80
|
-
const ident = identifyWorker(ev);
|
|
81
|
-
if (!ident)
|
|
82
|
-
continue;
|
|
83
|
-
let w = acc.get(ident.id);
|
|
84
|
-
if (!w) {
|
|
85
|
-
if (!ident.canCreate)
|
|
86
|
-
continue;
|
|
87
|
-
w = blankWorker(ident.id, ev);
|
|
88
|
-
acc.set(ident.id, w);
|
|
89
|
-
}
|
|
90
|
-
w.updatedAt = ev.ts;
|
|
91
|
-
w.lastSeq = ev.seq;
|
|
92
|
-
switch (ev.kind) {
|
|
93
|
-
case "spawned": {
|
|
94
|
-
w.lifecycle = "running";
|
|
95
|
-
w.terminal = false;
|
|
96
|
-
w.activity = "idle";
|
|
97
|
-
delete w.activeTurnId;
|
|
98
|
-
delete w.activeTurnStartedAt;
|
|
99
|
-
delete w.exitCode;
|
|
100
|
-
delete w.signal;
|
|
101
|
-
delete w.reason;
|
|
102
|
-
delete w.error;
|
|
103
|
-
w.spawnedAt = ev.ts;
|
|
104
|
-
w.idleSince = ev.ts;
|
|
105
|
-
w.startedBy = ev.by;
|
|
106
|
-
w.provider = strField(ev, "provider") ?? w.provider;
|
|
107
|
-
w.agent = strField(ev, "agent") ?? w.agent;
|
|
108
|
-
w.inboxPolicy =
|
|
109
|
-
strField(ev, "inboxPolicy") ??
|
|
110
|
-
w.inboxPolicy;
|
|
111
|
-
break;
|
|
112
|
-
}
|
|
113
|
-
case "turn_started": {
|
|
114
|
-
w.activity = "mid-turn";
|
|
115
|
-
w.activeTurnId = strField(ev, "turnId");
|
|
116
|
-
w.activeTurnStartedAt = ev.ts;
|
|
117
|
-
delete w.idleSince;
|
|
118
|
-
const inputSeq = numField(ev, "inputSeq");
|
|
119
|
-
if (inputSeq !== undefined && inputSeq > w.consumedInputSeq) {
|
|
120
|
-
w.consumedInputSeq = inputSeq;
|
|
121
|
-
}
|
|
122
|
-
break;
|
|
123
|
-
}
|
|
124
|
-
case "turn_finished": {
|
|
125
|
-
w.activity = "idle";
|
|
126
|
-
delete w.activeTurnId;
|
|
127
|
-
delete w.activeTurnStartedAt;
|
|
128
|
-
w.idleSince = ev.ts;
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
case "interrupted": {
|
|
132
|
-
// An interrupt aborts the active turn.
|
|
133
|
-
w.activity = "idle";
|
|
134
|
-
delete w.activeTurnId;
|
|
135
|
-
delete w.activeTurnStartedAt;
|
|
136
|
-
w.idleSince = ev.ts;
|
|
137
|
-
break;
|
|
138
|
-
}
|
|
139
|
-
case "interrupt_requested":
|
|
140
|
-
// Durable intent only — no lifecycle/activity change.
|
|
141
|
-
break;
|
|
142
|
-
case "done": {
|
|
143
|
-
w.activity = "idle";
|
|
144
|
-
delete w.activeTurnId;
|
|
145
|
-
delete w.activeTurnStartedAt;
|
|
146
|
-
if (ev.synthesized === true) {
|
|
147
|
-
w.lifecycle = "done";
|
|
148
|
-
w.terminal = true;
|
|
149
|
-
w.exitCode = numField(ev, "exit_code") ?? w.exitCode;
|
|
150
|
-
delete w.idleSince;
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
w.idleSince = ev.ts;
|
|
154
|
-
}
|
|
155
|
-
break;
|
|
156
|
-
}
|
|
157
|
-
case "error": {
|
|
158
|
-
w.activity = "idle";
|
|
159
|
-
delete w.activeTurnId;
|
|
160
|
-
delete w.activeTurnStartedAt;
|
|
161
|
-
w.error = strField(ev, "message") ?? w.error;
|
|
162
|
-
if (ev.synthesized === true ||
|
|
163
|
-
ev.by.startsWith("supervisor:")) {
|
|
164
|
-
w.lifecycle = "error";
|
|
165
|
-
w.terminal = true;
|
|
166
|
-
w.exitCode = numField(ev, "exit_code") ?? w.exitCode;
|
|
167
|
-
w.signal = strField(ev, "exit_signal") ?? w.signal;
|
|
168
|
-
delete w.idleSince;
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
w.idleSince = ev.ts;
|
|
172
|
-
}
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
case "killed": {
|
|
176
|
-
const reason = strField(ev, "reason");
|
|
177
|
-
w.lifecycle = reason === "crash" ? "crashed" : "killed";
|
|
178
|
-
w.terminal = true;
|
|
179
|
-
w.activity = "idle";
|
|
180
|
-
delete w.activeTurnId;
|
|
181
|
-
delete w.activeTurnStartedAt;
|
|
182
|
-
delete w.idleSince;
|
|
183
|
-
w.reason = reason ?? w.reason;
|
|
184
|
-
w.signal = strField(ev, "signal") ?? w.signal;
|
|
185
|
-
break;
|
|
186
|
-
}
|
|
187
|
-
default:
|
|
188
|
-
break;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
// Second pass: pending message count from durable events only.
|
|
192
|
-
for (const w of acc.values()) {
|
|
193
|
-
if (w.terminal) {
|
|
194
|
-
w.pendingMessageCount = 0;
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
let pending = 0;
|
|
198
|
-
for (const ev of events) {
|
|
199
|
-
if (ev.seq <= w.consumedInputSeq)
|
|
200
|
-
continue;
|
|
201
|
-
if (matchesInboxPolicy(ev, w.workerId, w.inboxPolicy))
|
|
202
|
-
pending++;
|
|
203
|
-
}
|
|
204
|
-
w.pendingMessageCount = pending;
|
|
205
|
-
}
|
|
206
|
-
const workers = [];
|
|
207
|
-
for (const w of acc.values()) {
|
|
208
|
-
const { consumedInputSeq: _drop, ...state } = w;
|
|
209
|
-
void _drop;
|
|
210
|
-
if (channel)
|
|
211
|
-
state.channel = channel;
|
|
212
|
-
workers.push(state);
|
|
213
|
-
}
|
|
214
|
-
workers.sort((a, b) => a.workerId.localeCompare(b.workerId));
|
|
215
|
-
return { workers };
|
|
216
|
-
}
|
|
217
|
-
export function isTerminalLifecycle(lifecycle) {
|
|
218
|
-
return TERMINAL_LIFECYCLES.has(lifecycle);
|
|
219
|
-
}
|
|
220
|
-
//# sourceMappingURL=worker-state.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"worker-state.js","sourceRoot":"","sources":["../../../../src/channel/internal/store/worker-state.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
DELETED