@owlmeans/agent 0.1.18-rc.39 → 0.1.18-rc.40

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.
Files changed (40) hide show
  1. package/README.md +1 -1
  2. package/agent-meta/manifest.json +2 -2
  3. package/agent-meta/skills/agent/SKILL.md +96 -9
  4. package/build/model.d.ts.map +1 -1
  5. package/build/model.js +4 -1
  6. package/build/model.js.map +1 -1
  7. package/build/pipeline/index.d.ts +1 -0
  8. package/build/pipeline/index.d.ts.map +1 -1
  9. package/build/pipeline/index.js +1 -0
  10. package/build/pipeline/index.js.map +1 -1
  11. package/build/pipeline/results.d.ts +121 -0
  12. package/build/pipeline/results.d.ts.map +1 -0
  13. package/build/pipeline/results.js +572 -0
  14. package/build/pipeline/results.js.map +1 -0
  15. package/build/pipeline/runner.d.ts.map +1 -1
  16. package/build/pipeline/runner.js +170 -15
  17. package/build/pipeline/runner.js.map +1 -1
  18. package/build/pipeline/types.d.ts +140 -2
  19. package/build/pipeline/types.d.ts.map +1 -1
  20. package/build/runtime/checkpoint.d.ts +37 -0
  21. package/build/runtime/checkpoint.d.ts.map +1 -0
  22. package/build/runtime/checkpoint.js +52 -0
  23. package/build/runtime/checkpoint.js.map +1 -0
  24. package/build/stores/memory.d.ts +10 -1
  25. package/build/stores/memory.d.ts.map +1 -1
  26. package/build/stores/memory.js +0 -0
  27. package/build/stores/memory.js.map +1 -1
  28. package/build/stores/types.d.ts +23 -1
  29. package/build/stores/types.d.ts.map +1 -1
  30. package/package.json +5 -5
  31. package/src/model.ts +4 -1
  32. package/src/pipeline/index.ts +1 -0
  33. package/src/pipeline/results.ts +827 -0
  34. package/src/pipeline/runner.ts +184 -15
  35. package/src/pipeline/types.ts +155 -2
  36. package/src/stores/memory.ts +0 -0
  37. package/src/stores/types.ts +24 -1
  38. package/tests/pipeline-compat.spec.ts +195 -0
  39. package/tests/pipeline-plugins.spec.ts +194 -0
  40. package/tests/pipeline-results.spec.ts +456 -0
@@ -0,0 +1,572 @@
1
+ import { CumulativeResultSource, DEFAULT_RESULT_SUMMARY_CHARS, DEFAULT_RESULTS_MAX_CHARS, DEFAULT_RESULTS_WINDOW, RESULTS_EVERY_STEP, ResultViewMode, compareResultOrder, factKey, orderPipelineSteps, pipelineAncestry, renderResultEntry, renderResultFact, renderResultSummary, resultLabel, rootRunOf, sortFacts, } from '@owlmeans/agent-common';
2
+ import { prefixHash } from '@owlmeans/llm';
3
+ import { createMemoryCumulativeResultStore } from '../stores/memory.js';
4
+ /** The plugin's alias. Seated under it, so wiring it twice replaces rather than doubles. */
5
+ export const CUMULATIVE_RESULTS_PLUGIN = 'cumulative-results';
6
+ /** The answer shape a summary is asked for when its declaration names none. */
7
+ export const DEFAULT_RESULT_SUMMARY_SCHEMA = {
8
+ type: 'object',
9
+ properties: { summary: { type: 'string' } },
10
+ required: ['summary'],
11
+ additionalProperties: false,
12
+ };
13
+ const SEPARATOR = '\n\n';
14
+ const compare = (a, b) => a < b ? -1 : a > b ? 1 : 0;
15
+ const keyOf = (runId, step) => `${runId}\u0000${step}`;
16
+ const normalizePath = (path) => path.trim().replace(/\\/g, '/').replace(/^(\.\/)+/, '').replace(/\/{2,}/g, '/');
17
+ const uniqueSorted = (paths) => [...new Set([...paths].map(normalizePath).filter(path => path !== ''))].sort(compare);
18
+ const pathsOf = (facts) => facts.flatMap(fact => fact.path != null && fact.path !== '' ? [fact.path] : []);
19
+ /** First occurrence of each fact key wins — a step's own recorded facts come first. */
20
+ const dedupe = (facts) => {
21
+ const seen = new Set();
22
+ return facts.filter(fact => {
23
+ const key = factKey(fact);
24
+ if (seen.has(key)) {
25
+ return false;
26
+ }
27
+ seen.add(key);
28
+ return true;
29
+ });
30
+ };
31
+ const copyFact = (fact) => ({
32
+ ...fact,
33
+ ...(fact.members != null ? { members: [...fact.members] } : {}),
34
+ ...(fact.attrs != null ? { attrs: { ...fact.attrs } } : {}),
35
+ });
36
+ /**
37
+ * Deep-frozen, because an entry is handed out by reference — to every view that shows it and to
38
+ * every caller of `entries()` — and one caller editing it in place would edit all of them.
39
+ */
40
+ const freezeEntry = (entry) => Object.freeze({
41
+ ...entry,
42
+ order: Object.freeze([...entry.order]),
43
+ files: Object.freeze([...entry.files]),
44
+ facts: Object.freeze(entry.facts.map(fact => Object.freeze(copyFact(fact)))),
45
+ ...(Array.isArray(entry.fullFor) ? { fullFor: Object.freeze([...entry.fullFor]) } : {}),
46
+ ...(entry.omitFor != null ? { omitFor: Object.freeze([...entry.omitFor]) } : {}),
47
+ });
48
+ const hasExtractors = (spec) => (spec?.extractors?.length ?? 0) > 0;
49
+ const extractFn = (extractor) => typeof extractor === 'function' ? extractor : extractor.extract;
50
+ const summaryPrompt = (spec, label, facts, files, maxChars) => [
51
+ spec.instructions.trim(),
52
+ `The step "${label}" has just finished. For the later steps of the same work, summarize what it `
53
+ + 'decided or produced that the facts below do not already say. Do not repeat the facts and do not '
54
+ + `guess at anything not shown. At most ${maxChars} characters.`,
55
+ `# Facts read from the files after the step finished\n${facts.map(renderResultFact).join('\n') || '(none)'}`,
56
+ `# Files the step answers for\n${files.map(file => `- ${file}`).join('\n') || '(none)'}`,
57
+ ].join(SEPARATOR);
58
+ /**
59
+ * CUMULATIVE PIPELINE RESULTS: every step is told, in its prompt and through a typed query, what
60
+ * the steps before it produced — read from the files by code, not recalled by a model.
61
+ *
62
+ * - `enter` decides the LEDGER the run's entries belong to (its parent's for a composed run, else
63
+ * the root run's id). A fresh start or a restart forgets the run's own earlier entries; a
64
+ * continuation loads them and silently REBUILDS any that are missing from the finished steps'
65
+ * durable inputs — so a resume never depends on the ledger having survived, only the quality
66
+ * of what the next step is told does.
67
+ * - `beforeStep` cuts the step's VIEW once: every predecessor's entry, full within the window or
68
+ * when the producer names the step, names only otherwise, inside a character budget that drops
69
+ * the oldest entries to names only and then out — never cutting an entry's own text.
70
+ * - `afterStep` extracts the step's entry from its durable scope and what it recorded, leaves any
71
+ * fact an earlier entry already owns to that entry, re-extracts earlier entries whose files the
72
+ * step rewrote, and persists — all before the runner marks the step complete.
73
+ * - `passStep` gives a skipped step the entry its files still support, and an optional step that
74
+ * failed a partial one.
75
+ *
76
+ * Everything here is an enhancement. A store that fails, an extractor that throws or a summary
77
+ * that cannot be had costs a step some context and is logged; it never fails the run.
78
+ */
79
+ export const cumulativeResultsPlugin = (options) => {
80
+ const alias = options.alias ?? CUMULATIVE_RESULTS_PLUGIN;
81
+ const store = options.store ?? createMemoryCumulativeResultStore();
82
+ const trace = options.trace ?? (() => undefined);
83
+ const runs = new Map();
84
+ const warn = (what, e) => {
85
+ console.warn(`Cumulative results (${alias}): ${what}`, ...(e != null ? [e] : []));
86
+ };
87
+ const say = (run, line) => {
88
+ trace(`[results:${run.spec.alias}:${run.runId}] ${line}`);
89
+ };
90
+ const orderOf = (run, step) => [...run.trail, run.index.get(step) ?? 0];
91
+ /**
92
+ * The ledger as the store holds it — except this run's own entries, which only this plugin writes
93
+ * and whose in-memory copy is therefore never older than the stored one (a failed `put` leaves
94
+ * the store behind, never ahead). A store that cannot be read leaves what is held untouched.
95
+ */
96
+ const reload = async (run) => {
97
+ let listed;
98
+ try {
99
+ listed = await store.list(run.ledger);
100
+ }
101
+ catch (e) {
102
+ warn(`could not read ledger ${run.ledger}`, e);
103
+ return;
104
+ }
105
+ const next = new Map();
106
+ for (const entry of listed) {
107
+ next.set(keyOf(entry.runId, entry.step), freezeEntry(entry));
108
+ }
109
+ for (const [key, entry] of run.entries) {
110
+ if (entry.runId === run.runId) {
111
+ next.set(key, entry);
112
+ }
113
+ }
114
+ run.entries = next;
115
+ };
116
+ const persist = async (run, entry) => {
117
+ run.entries.set(keyOf(entry.runId, entry.step), entry);
118
+ try {
119
+ // A plain copy: a store adapter may annotate what it is given (an `_id`), and the held entry
120
+ // is frozen.
121
+ await store.put(JSON.parse(JSON.stringify(entry)));
122
+ }
123
+ catch (e) {
124
+ warn(`could not store ${entry.label}; a resume will rebuild it`, e);
125
+ }
126
+ };
127
+ /** The step of THIS run an entry belongs to: its own step, or the step a composed run ran under. */
128
+ const anchorOf = (run, entry) => {
129
+ if (entry.runId === run.runId) {
130
+ return entry.step;
131
+ }
132
+ if (entry.runId.startsWith(`${run.runId}/`)) {
133
+ return entry.runId.slice(run.runId.length + 1).split('/')[0] ?? null;
134
+ }
135
+ return null;
136
+ };
137
+ const modeFor = (run, entry, consumer, depth) => {
138
+ if (entry.omitFor?.includes(consumer) === true) {
139
+ return { mode: ResultViewMode.Omitted, explicit: false };
140
+ }
141
+ if (entry.fullFor === RESULTS_EVERY_STEP) {
142
+ return { mode: ResultViewMode.Full, explicit: false };
143
+ }
144
+ if (Array.isArray(entry.fullFor) && entry.fullFor.includes(consumer)) {
145
+ return { mode: ResultViewMode.Full, explicit: true };
146
+ }
147
+ const window = entry.window ?? run.results.window ?? DEFAULT_RESULTS_WINDOW;
148
+ return { mode: depth <= window ? ResultViewMode.Full : ResultViewMode.Compact, explicit: false };
149
+ };
150
+ /**
151
+ * Every entry a step can see, oldest first, as its producer's declaration shows it: what the run
152
+ * was handed by the step it is composed under, the seeds, then every predecessor's entry and the
153
+ * entries of runs composed under a predecessor. Nothing else — a sibling branch has not
154
+ * necessarily run, so what it says cannot be what a step relies on.
155
+ */
156
+ const visibleTo = (run, step) => {
157
+ const depths = new Map(pipelineAncestry(run.spec, step).map(({ step: name, depth }) => [name, depth]));
158
+ const items = [
159
+ ...run.upstream.map(visible => ({
160
+ entry: visible.entry, mode: visible.mode, explicit: false, dropped: visible.dropped === true,
161
+ })),
162
+ ...run.seeds.map(entry => ({ entry, mode: ResultViewMode.Full, explicit: false, dropped: false })),
163
+ ];
164
+ for (const entry of run.entries.values()) {
165
+ const anchor = anchorOf(run, entry);
166
+ const depth = anchor != null ? depths.get(anchor) : undefined;
167
+ if (depth != null) {
168
+ items.push({ entry, ...modeFor(run, entry, step, depth), dropped: false });
169
+ }
170
+ }
171
+ return items.sort((a, b) => compareResultOrder(a.entry.order, b.entry.order) || compare(a.entry.label, b.entry.label));
172
+ };
173
+ const textOf = (item) => item.mode === ResultViewMode.Full
174
+ ? item.entry.full
175
+ : item.mode === ResultViewMode.Compact ? item.entry.compact : '';
176
+ /** The step's view, inside the budget. See the plugin's own description for the order of cuts. */
177
+ const cut = (run, step) => {
178
+ const items = visibleTo(run, step);
179
+ const maxChars = run.results.maxChars ?? DEFAULT_RESULTS_MAX_CHARS;
180
+ const measure = () => items.map(textOf).filter(text => text !== '').join(SEPARATOR).length;
181
+ let total = measure();
182
+ const downgrade = (explicit, from) => {
183
+ for (const item of items) {
184
+ if (total <= maxChars) {
185
+ return;
186
+ }
187
+ if (item.explicit !== explicit || item.mode !== from || textOf(item) === '') {
188
+ continue;
189
+ }
190
+ if (from === ResultViewMode.Full) {
191
+ item.mode = ResultViewMode.Compact;
192
+ }
193
+ else {
194
+ item.mode = ResultViewMode.Omitted;
195
+ item.dropped = true;
196
+ }
197
+ total = measure();
198
+ }
199
+ };
200
+ // Oldest first, and whatever a producer has not named this step for goes before what it has.
201
+ downgrade(false, ResultViewMode.Full);
202
+ downgrade(false, ResultViewMode.Compact);
203
+ downgrade(true, ResultViewMode.Full);
204
+ downgrade(true, ResultViewMode.Compact);
205
+ const sections = items
206
+ .filter(item => textOf(item) !== '')
207
+ .map(item => Object.freeze({ step: item.entry.label, text: textOf(item) }));
208
+ const omitted = items
209
+ .filter(item => item.mode === ResultViewMode.Omitted && item.dropped && item.entry.full !== '')
210
+ .map(item => item.entry.label);
211
+ const joined = sections.map(section => section.text).join(SEPARATOR);
212
+ const view = Object.freeze({
213
+ step: resultLabel(run.ledger, run.runId, step),
214
+ sections: Object.freeze(sections),
215
+ omitted: Object.freeze(omitted),
216
+ chars: joined.length,
217
+ digest: prefixHash(`${joined}\u0000${omitted.join('\u0000')}`),
218
+ });
219
+ const visible = Object.freeze(items.map(item => Object.freeze({
220
+ entry: item.entry, mode: item.mode, ...(item.dropped ? { dropped: true } : {}),
221
+ })));
222
+ say(run, `${step} view · sections=${sections.length} chars=${view.chars}`
223
+ + ` omitted=${omitted.length} digest=${view.digest}`);
224
+ const results = {
225
+ ledger: run.ledger,
226
+ order: Object.freeze(orderOf(run, step)),
227
+ view,
228
+ entries: () => visible,
229
+ facts: (query = {}) => visible.flatMap(({ entry }) => query.step == null || entry.step === query.step || entry.label === query.step
230
+ ? entry.facts
231
+ .filter(fact => (query.kind == null || fact.kind === query.kind)
232
+ && (query.name == null || fact.name === query.name))
233
+ .map(copyFact)
234
+ : []),
235
+ record: input => {
236
+ const buffer = run.recorded.get(step) ?? { files: new Set(), facts: [] };
237
+ for (const file of input.files ?? []) {
238
+ buffer.files.add(normalizePath(file));
239
+ }
240
+ buffer.facts.push(...(input.facts ?? []).map(copyFact));
241
+ run.recorded.set(step, buffer);
242
+ },
243
+ };
244
+ return Object.freeze(results);
245
+ };
246
+ const take = (run, step) => {
247
+ const buffer = run.recorded.get(step) ?? { files: new Set(), facts: [] };
248
+ run.recorded.delete(step);
249
+ return buffer;
250
+ };
251
+ const scopeOf = async (run, step, state) => {
252
+ const files = [];
253
+ for (const name of run.results.steps?.[step]?.extractors ?? []) {
254
+ const extractor = options.extractors?.[name];
255
+ if (extractor == null || typeof extractor === 'function' || extractor.scope == null) {
256
+ continue;
257
+ }
258
+ try {
259
+ files.push(...await extractor.scope({
260
+ pipeline: run.spec.alias, runId: run.runId, step, state, deps: run.deps,
261
+ }));
262
+ }
263
+ catch (e) {
264
+ warn(`scope of extractor ${name} failed for ${step}`, e);
265
+ }
266
+ }
267
+ return uniqueSorted(files);
268
+ };
269
+ const extract = async (run, step, state, files, changed) => {
270
+ const facts = [];
271
+ for (const name of run.results.steps?.[step]?.extractors ?? []) {
272
+ const extractor = options.extractors?.[name];
273
+ if (extractor == null) {
274
+ warn(`step ${step} names an extractor nobody registered: ${name}`);
275
+ continue;
276
+ }
277
+ try {
278
+ facts.push(...(await extractFn(extractor)({
279
+ pipeline: run.spec.alias, runId: run.runId, step, state, deps: run.deps, files, changed,
280
+ }) ?? []));
281
+ }
282
+ catch (e) {
283
+ warn(`extractor ${name} failed for ${step}`, e);
284
+ }
285
+ }
286
+ return facts;
287
+ };
288
+ /**
289
+ * Facts no earlier entry already owns. "Earlier" is what the step can see, plus the runs composed
290
+ * under the step itself, whose entries are written before the step's own.
291
+ */
292
+ const unowned = (run, step, facts) => {
293
+ const owned = new Set();
294
+ for (const item of visibleTo(run, step)) {
295
+ for (const fact of item.entry.facts) {
296
+ owned.add(factKey(fact));
297
+ }
298
+ }
299
+ for (const entry of run.entries.values()) {
300
+ if (entry.runId.startsWith(`${run.runId}/${step}`) && anchorOf(run, entry) === step) {
301
+ for (const fact of entry.facts) {
302
+ owned.add(factKey(fact));
303
+ }
304
+ }
305
+ }
306
+ return facts.filter(fact => !owned.has(factKey(fact)));
307
+ };
308
+ /** A step's facts and files, from its durable scope, what it recorded, and its extractors. */
309
+ const collect = async (run, step, state, changed, recorded) => {
310
+ const files = uniqueSorted([...await scopeOf(run, step, state), ...changed]);
311
+ const facts = unowned(run, step, dedupe([...recorded, ...await extract(run, step, state, files, changed)]));
312
+ return { facts, files: uniqueSorted([...files, ...pathsOf(facts)]) };
313
+ };
314
+ const compose = (run, step, parts) => {
315
+ const previous = run.entries.get(keyOf(run.runId, step));
316
+ const label = resultLabel(run.ledger, run.runId, step);
317
+ const source = parts.facts.length === 0 && parts.summary != null
318
+ ? CumulativeResultSource.Summarized
319
+ : parts.source;
320
+ const facts = sortFacts(parts.facts);
321
+ const rendered = renderResultEntry({ label, source, facts, ...(parts.partial === true ? { partial: true } : {}), ...(parts.summary != null ? { summary: parts.summary } : {}) }, {
322
+ maxChars: parts.spec?.maxChars ?? run.results.maxEntryChars,
323
+ maxCompactChars: parts.spec?.maxCompactChars ?? run.results.maxCompactChars,
324
+ });
325
+ return freezeEntry({
326
+ ledger: run.ledger,
327
+ pipeline: run.spec.alias,
328
+ runId: run.runId,
329
+ step,
330
+ label,
331
+ order: parts.order,
332
+ revision: (previous?.revision ?? 0) + 1,
333
+ source,
334
+ ...(parts.partial === true ? { partial: true } : {}),
335
+ facts,
336
+ files: parts.files,
337
+ ...(parts.summary != null ? { summary: parts.summary } : {}),
338
+ full: rendered.full,
339
+ compact: rendered.compact,
340
+ ...(parts.spec?.full != null ? { fullFor: parts.spec.full } : {}),
341
+ ...(parts.spec?.omit != null ? { omitFor: parts.spec.omit } : {}),
342
+ ...(parts.spec?.window != null ? { window: parts.spec.window } : {}),
343
+ updatedAt: new Date().toISOString(),
344
+ });
345
+ };
346
+ /**
347
+ * Re-read every earlier entry of this run whose files the step just rewrote — a repair of an
348
+ * earlier step's output would otherwise leave that step's entry describing a file that no longer
349
+ * says it. The refreshed entry keeps what its extractors find now, plus its earlier facts about
350
+ * files the step did not touch.
351
+ */
352
+ const refreshEarlier = async (run, step, changed, state) => {
353
+ if (changed.length === 0) {
354
+ return;
355
+ }
356
+ const mine = orderOf(run, step);
357
+ const earlier = [...run.entries.values()]
358
+ .filter(entry => entry.runId === run.runId && entry.step !== step
359
+ && compareResultOrder(entry.order, mine) < 0)
360
+ .sort((a, b) => compareResultOrder(a.order, b.order));
361
+ for (const entry of earlier) {
362
+ const spec = run.results.steps?.[entry.step];
363
+ if (!hasExtractors(spec) || (spec?.refresh ?? run.results.refresh ?? true) === false) {
364
+ continue;
365
+ }
366
+ const overlap = entry.files.filter(file => changed.includes(file));
367
+ if (overlap.length === 0) {
368
+ continue;
369
+ }
370
+ const fresh = await extract(run, entry.step, state, entry.files, overlap);
371
+ const freshKeys = new Set(fresh.map(factKey));
372
+ const kept = entry.facts.filter(fact => !freshKeys.has(factKey(fact))
373
+ && (fact.path == null || !overlap.includes(normalizePath(fact.path))));
374
+ const facts = unowned(run, entry.step, dedupe([...fresh, ...kept]));
375
+ const refreshed = compose(run, entry.step, {
376
+ facts,
377
+ files: uniqueSorted([...entry.files, ...pathsOf(facts)]),
378
+ source: entry.source === CumulativeResultSource.Summarized
379
+ ? CumulativeResultSource.Extracted
380
+ : entry.source,
381
+ order: [...entry.order],
382
+ ...(spec != null ? { spec } : {}),
383
+ ...(entry.partial === true ? { partial: true } : {}),
384
+ ...(entry.summary != null ? { summary: entry.summary } : {}),
385
+ });
386
+ await persist(run, refreshed);
387
+ say(run, `${step} rewrote ${overlap.length} file(s) of ${entry.label} · revision=${refreshed.revision}`);
388
+ }
389
+ };
390
+ const summaryOf = async (run, step, ctx, state, facts, files) => {
391
+ const spec = run.results.steps?.[step]?.summary;
392
+ if (spec == null || options.summarize == null) {
393
+ return undefined;
394
+ }
395
+ const maxChars = spec.maxChars ?? DEFAULT_RESULT_SUMMARY_CHARS;
396
+ const label = resultLabel(run.ledger, run.runId, step);
397
+ try {
398
+ const answer = await options.summarize({
399
+ ...spec,
400
+ schema: spec.schema ?? DEFAULT_RESULT_SUMMARY_SCHEMA,
401
+ maxChars,
402
+ pipeline: run.spec.alias,
403
+ runId: run.runId,
404
+ step,
405
+ label,
406
+ facts,
407
+ files,
408
+ state,
409
+ deps: run.deps,
410
+ signal: ctx.signal,
411
+ prompt: summaryPrompt(spec, label, facts, files, maxChars),
412
+ });
413
+ const text = renderResultSummary(answer, maxChars);
414
+ return text !== '' ? text : undefined;
415
+ }
416
+ catch (e) {
417
+ // A summary is the unverified extra. Without it the step's facts still stand.
418
+ warn(`summary of ${step} failed; the entry goes without one`, e);
419
+ return undefined;
420
+ }
421
+ };
422
+ return {
423
+ alias,
424
+ ...(options.order != null ? { order: options.order } : {}),
425
+ enter: async (event) => {
426
+ runs.delete(event.runId);
427
+ const info = {
428
+ pipeline: event.spec.alias,
429
+ spec: event.spec,
430
+ runId: event.runId,
431
+ scope: event.scope,
432
+ ...(event.entityId != null ? { entityId: event.entityId } : {}),
433
+ deps: event.deps,
434
+ state: event.state,
435
+ mode: event.mode,
436
+ ...(event.parent != null ? { parent: event.parent } : {}),
437
+ };
438
+ const declared = typeof options.spec === 'function' ? await options.spec(info) : options.spec;
439
+ if (declared == null || declared === false) {
440
+ return;
441
+ }
442
+ const parent = event.parent?.results;
443
+ const ledger = options.ledger?.(info) ?? parent?.ledger ?? rootRunOf(event.runId);
444
+ const run = {
445
+ results: declared,
446
+ spec: event.spec,
447
+ runId: event.runId,
448
+ ledger,
449
+ trail: parent != null ? [...parent.order] : [],
450
+ index: new Map(orderPipelineSteps(event.spec).map((step, at) => [step, at + 1])),
451
+ entries: new Map(),
452
+ upstream: parent != null ? parent.entries() : [],
453
+ seeds: [],
454
+ views: new Map(),
455
+ recorded: new Map(),
456
+ deps: event.deps,
457
+ };
458
+ if (event.mode !== 'continue') {
459
+ try {
460
+ await store.clear(ledger, event.runId);
461
+ }
462
+ catch (e) {
463
+ warn(`could not clear the earlier entries of ${event.runId}`, e);
464
+ }
465
+ }
466
+ await reload(run);
467
+ for (const name of Object.keys(options.seeds ?? {}).sort(compare)) {
468
+ try {
469
+ const facts = dedupe(await options.seeds[name](info));
470
+ run.seeds.push(compose(run, name, {
471
+ facts, files: uniqueSorted(pathsOf(facts)), source: CumulativeResultSource.Seeded,
472
+ order: [...run.trail, 0],
473
+ }));
474
+ }
475
+ catch (e) {
476
+ warn(`seed ${name} failed`, e);
477
+ }
478
+ }
479
+ runs.set(event.runId, run);
480
+ // A continuation's finished steps must have their entries, whether or not the ledger kept
481
+ // them — a store outage, an expiry, a crash between a fact and its `put`. They are read again
482
+ // from the steps' DURABLE inputs; never from what a step once recorded, which is gone.
483
+ let rebuilt = 0;
484
+ for (const step of event.inherited) {
485
+ if (run.entries.has(keyOf(run.runId, step)) || !hasExtractors(run.results.steps?.[step])) {
486
+ continue;
487
+ }
488
+ const collected = await collect(run, step, event.state, [], []);
489
+ await persist(run, compose(run, step, {
490
+ ...collected, source: CumulativeResultSource.Rebuilt, order: orderOf(run, step),
491
+ ...(run.results.steps?.[step] != null ? { spec: run.results.steps[step] } : {}),
492
+ }));
493
+ rebuilt += 1;
494
+ }
495
+ say(run, `enter ${event.mode} · ledger=${ledger} entries=${run.entries.size} rebuilt=${rebuilt}`);
496
+ },
497
+ beforeStep: async ({ step, ctx }) => {
498
+ const run = runs.get(ctx.runId);
499
+ if (run == null) {
500
+ return;
501
+ }
502
+ const memo = run.views.get(step);
503
+ if (memo != null) {
504
+ return { results: memo };
505
+ }
506
+ // A run composed under an earlier step wrote its entries through its own plugin instance.
507
+ await reload(run);
508
+ const results = cut(run, step);
509
+ run.views.set(step, results);
510
+ return { results };
511
+ },
512
+ afterStep: async ({ step, ctx, state }) => {
513
+ const run = runs.get(ctx.runId);
514
+ if (run == null) {
515
+ return;
516
+ }
517
+ const buffer = take(run, step);
518
+ const spec = run.results.steps?.[step];
519
+ if (spec == null && buffer.files.size === 0 && buffer.facts.length === 0
520
+ && !run.entries.has(keyOf(run.runId, step))) {
521
+ return;
522
+ }
523
+ await reload(run);
524
+ const changed = uniqueSorted(buffer.files);
525
+ await refreshEarlier(run, step, changed, state);
526
+ const collected = await collect(run, step, state, changed, buffer.facts);
527
+ const summary = await summaryOf(run, step, ctx, state, collected.facts, collected.files);
528
+ const entry = compose(run, step, {
529
+ ...collected, source: CumulativeResultSource.Extracted, order: orderOf(run, step),
530
+ ...(spec != null ? { spec } : {}), ...(summary != null ? { summary } : {}),
531
+ });
532
+ await persist(run, entry);
533
+ say(run, `${step} entry · facts=${entry.facts.length} files=${entry.files.length} revision=${entry.revision}`);
534
+ },
535
+ passStep: async ({ step, ctx, state, reason }) => {
536
+ const run = runs.get(ctx.runId);
537
+ if (run == null) {
538
+ return;
539
+ }
540
+ const buffer = take(run, step);
541
+ const spec = run.results.steps?.[step];
542
+ await reload(run);
543
+ if (reason === 'skipped') {
544
+ // A guard that skips is saying the work is already there. What its files support is what
545
+ // the step's entry is; what a real earlier run stored stands as it is.
546
+ if (run.entries.has(keyOf(run.runId, step)) || !hasExtractors(spec)) {
547
+ return;
548
+ }
549
+ const collected = await collect(run, step, state, [], []);
550
+ await persist(run, compose(run, step, {
551
+ ...collected, source: CumulativeResultSource.Rebuilt, order: orderOf(run, step),
552
+ ...(spec != null ? { spec } : {}),
553
+ }));
554
+ return;
555
+ }
556
+ if (spec == null && buffer.files.size === 0 && buffer.facts.length === 0) {
557
+ return;
558
+ }
559
+ const changed = uniqueSorted(buffer.files);
560
+ await refreshEarlier(run, step, changed, state);
561
+ const collected = await collect(run, step, state, changed, buffer.facts);
562
+ await persist(run, compose(run, step, {
563
+ ...collected, source: CumulativeResultSource.Extracted, order: orderOf(run, step),
564
+ partial: true, ...(spec != null ? { spec } : {}),
565
+ }));
566
+ },
567
+ exit: async ({ runId }) => {
568
+ runs.delete(runId);
569
+ },
570
+ };
571
+ };
572
+ //# sourceMappingURL=results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/pipeline/results.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACyC,YAAY,EAAE,aAAa,EAC/E,MAAM,wBAAwB,CAAA;AAG/B,OAAO,KAAK,EACU,aAAa,EAAE,eAAe,EAEnD,MAAM,YAAY,CAAA;AAyDnB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,QAC/C,YAAY,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,KACjD,aAAa,CAAC,CAAC,EAAE,CAAC,CAsnBpB,CAAA"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/runner.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACyC,YAAY,EAAE,aAAa,EAC/E,MAAM,wBAAwB,CAAA;AAG/B,OAAO,KAAK,EAC6B,aAAa,EAAE,eAAe,EAGtE,MAAM,YAAY,CAAA;AA+EnB;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,QAC/C,YAAY,WAAW,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,KACjD,aAAa,CAAC,CAAC,EAAE,CAAC,CAwwBpB,CAAA"}