@ifc-lite/flow 0.4.1 → 0.6.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.
Files changed (52) hide show
  1. package/README.md +33 -0
  2. package/dist/checkpoint-file.d.ts +13 -0
  3. package/dist/checkpoint-file.d.ts.map +1 -0
  4. package/dist/checkpoint-file.js +92 -0
  5. package/dist/checkpoint-file.js.map +1 -0
  6. package/dist/checkpoint-record.d.ts +97 -0
  7. package/dist/checkpoint-record.d.ts.map +1 -0
  8. package/dist/checkpoint-record.js +255 -0
  9. package/dist/checkpoint-record.js.map +1 -0
  10. package/dist/checkpoint-state.d.ts +53 -0
  11. package/dist/checkpoint-state.d.ts.map +1 -0
  12. package/dist/checkpoint-state.js +190 -0
  13. package/dist/checkpoint-state.js.map +1 -0
  14. package/dist/checkpoint.d.ts +10 -0
  15. package/dist/checkpoint.d.ts.map +1 -0
  16. package/dist/checkpoint.js +11 -0
  17. package/dist/checkpoint.js.map +1 -0
  18. package/dist/document.d.ts +12 -4
  19. package/dist/document.d.ts.map +1 -1
  20. package/dist/document.js +23 -5
  21. package/dist/document.js.map +1 -1
  22. package/dist/index.d.ts +3 -2
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/introspect.d.ts +2 -1
  27. package/dist/introspect.d.ts.map +1 -1
  28. package/dist/introspect.js +1 -1
  29. package/dist/introspect.js.map +1 -1
  30. package/dist/order.d.ts +9 -0
  31. package/dist/order.d.ts.map +1 -0
  32. package/dist/order.js +37 -0
  33. package/dist/order.js.map +1 -0
  34. package/dist/orphans.d.ts.map +1 -1
  35. package/dist/orphans.js +6 -0
  36. package/dist/orphans.js.map +1 -1
  37. package/dist/registry.d.ts +7 -0
  38. package/dist/registry.d.ts.map +1 -1
  39. package/dist/registry.js.map +1 -1
  40. package/dist/scheduler.d.ts +15 -19
  41. package/dist/scheduler.d.ts.map +1 -1
  42. package/dist/scheduler.js +59 -62
  43. package/dist/scheduler.js.map +1 -1
  44. package/dist/tracking-progress.d.ts +7 -0
  45. package/dist/tracking-progress.d.ts.map +1 -0
  46. package/dist/tracking-progress.js +51 -0
  47. package/dist/tracking-progress.js.map +1 -0
  48. package/dist/write-accounting.d.ts +4 -0
  49. package/dist/write-accounting.d.ts.map +1 -0
  50. package/dist/write-accounting.js +15 -0
  51. package/dist/write-accounting.js.map +1 -0
  52. package/package.json +13 -3
@@ -0,0 +1,190 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * Review checkpoint lifecycle (#6923):
6
+ *
7
+ * prepared ──approve(digest)──▶ reviewed ──claim──▶ applying ──finish──▶ completed
8
+ * │ │ └─finish(failed)─▶ partially-committed
9
+ * └──reject──▶ rejected └─lease expired (recover)─▶ partially-committed
10
+ *
11
+ * Every transition is a pure function that throws a `CheckpointError` when
12
+ * the record is not in the state it requires. `updateCheckpoint` applies one
13
+ * through a store's compare-and-swap write and re-applies it to the fresh
14
+ * record on a conflict, so two tabs or processes racing to claim the same
15
+ * reviewed checkpoint cannot both win: the loser re-reads `applying` and is
16
+ * refused. A claim also re-checks the graph and source digests, so a resume
17
+ * never applies a proposal to a graph or model that changed after review.
18
+ *
19
+ * A checkpoint whose owner vanished mid-resume is not handed to anyone else:
20
+ * the effects it may have committed are unknown, so recovery marks it
21
+ * `partially-committed`, which blocks any further resume until the user runs
22
+ * the graph again as a new root.
23
+ */
24
+ import { digest } from './digest.js';
25
+ import { CHECKPOINT_VERSION, registerOwnedClaim, nonPortable, proposalDigestOf, validPortableOutputs } from './checkpoint-record.js';
26
+ export class CheckpointError extends Error {
27
+ code;
28
+ constructor(code, message) {
29
+ super(message);
30
+ this.code = code;
31
+ this.name = 'CheckpointError';
32
+ }
33
+ }
34
+ const STATES = ['prepared', 'reviewed', 'rejected', 'applying', 'partially-committed', 'completed'];
35
+ function isRecord(v) {
36
+ return !!v && typeof v === 'object' && !Array.isArray(v);
37
+ }
38
+ /**
39
+ * Validate an untrusted checkpoint (a file handed to a headless host, a
40
+ * stored row). The proposal digest is recomputed from the stored outputs, so
41
+ * a bundle whose values were edited after review no longer matches its
42
+ * approval and cannot be claimed.
43
+ */
44
+ export function parseCheckpoint(value) {
45
+ const bad = (why) => { throw new CheckpointError('invalid', `not a Flow review checkpoint: ${why}`); };
46
+ if (!isRecord(value))
47
+ return bad('must be an object');
48
+ if (value.version !== CHECKPOINT_VERSION)
49
+ bad(`unsupported version ${String(value.version)}`);
50
+ for (const key of ['id', 'graphId', 'graphName', 'graphDigest', 'sourceDigest', 'proposalDigest']) {
51
+ if (typeof value[key] !== 'string')
52
+ bad(`"${key}" must be a string`);
53
+ }
54
+ if (!STATES.includes(value.state))
55
+ bad(`unknown state "${String(value.state)}"`);
56
+ if (!Array.isArray(value.reviewNodes) || value.reviewNodes.length === 0 || !value.reviewNodes.every((n) => typeof n === 'string'))
57
+ bad('"reviewNodes" must list node ids');
58
+ if (!isRecord(value.outputs) || !Object.values(value.outputs).every(isRecord))
59
+ bad('"outputs" must map node ids to ports');
60
+ if (typeof value.createdAt !== 'number' || typeof value.updatedAt !== 'number')
61
+ bad('timestamps must be numbers');
62
+ if (!validPortableOutputs(value.outputs))
63
+ bad('outputs contain malformed or non-portable flow data');
64
+ if (!Number.isFinite(value.createdAt) || !Number.isFinite(value.updatedAt))
65
+ bad('timestamps must be finite');
66
+ if (value.claim !== undefined && (!isRecord(value.claim) || typeof value.claim.owner !== 'string' || !value.claim.owner.trim()
67
+ || !Number.isFinite(value.claim.leaseUntil) || !Number.isFinite(value.claim.at)))
68
+ bad('invalid claim');
69
+ if (value.review !== undefined && (!isRecord(value.review) || !['approved', 'rejected'].includes(String(value.review.decision))
70
+ || typeof value.review.proposalDigest !== 'string' || !Number.isFinite(value.review.at)))
71
+ bad('invalid review');
72
+ const problems = [];
73
+ if (value.budget !== undefined)
74
+ nonPortable(value.budget, 'budget', problems);
75
+ if (problems.length)
76
+ bad('budget must be plain JSON');
77
+ const checkpoint = value;
78
+ if (proposalDigestOf(checkpoint.outputs, checkpoint.reviewNodes, checkpoint.budget) !== checkpoint.proposalDigest) {
79
+ bad('the proposal values do not match the proposal digest');
80
+ }
81
+ return checkpoint;
82
+ }
83
+ function requireState(checkpoint, state, code) {
84
+ if (checkpoint.state !== state)
85
+ throw new CheckpointError(code, `the checkpoint is ${checkpoint.state}, not ${state}`);
86
+ }
87
+ function assertTimestamp(now) {
88
+ if (!Number.isFinite(now))
89
+ throw new CheckpointError('invalid', 'the checkpoint timestamp must be finite');
90
+ }
91
+ /** Approve exactly the proposal the reviewer saw, named by its digest. */
92
+ export function approveCheckpoint(checkpoint, proposalDigest, now = Date.now()) {
93
+ assertTimestamp(now);
94
+ requireState(checkpoint, 'prepared', 'not-prepared');
95
+ if (proposalDigest !== checkpoint.proposalDigest) {
96
+ throw new CheckpointError('digest-mismatch', 'the approval names a different proposal than the one awaiting review');
97
+ }
98
+ return { ...checkpoint, state: 'reviewed', updatedAt: now, review: { decision: 'approved', proposalDigest, at: now } };
99
+ }
100
+ export function rejectCheckpoint(checkpoint, now = Date.now()) {
101
+ assertTimestamp(now);
102
+ requireState(checkpoint, 'prepared', 'not-prepared');
103
+ return { ...checkpoint, state: 'rejected', updatedAt: now, review: { decision: 'rejected', proposalDigest: checkpoint.proposalDigest, at: now } };
104
+ }
105
+ const validatedClaims = new WeakMap();
106
+ /** Take single ownership of a reviewed checkpoint for one resume. */
107
+ export function claimCheckpoint(checkpoint, input) {
108
+ requireState(checkpoint, 'reviewed', 'not-reviewed');
109
+ if (!input.owner.trim())
110
+ throw new CheckpointError('invalid', 'the claim owner must be nonempty');
111
+ parseCheckpoint(checkpoint);
112
+ if (checkpoint.review?.decision !== 'approved' || checkpoint.review.proposalDigest !== checkpoint.proposalDigest) {
113
+ throw new CheckpointError('digest-mismatch', 'the approval does not name this proposal');
114
+ }
115
+ if (input.graphDigest !== checkpoint.graphDigest) {
116
+ throw new CheckpointError('graph-changed', 'the graph or its Player inputs changed after review; run it again for a new review');
117
+ }
118
+ if (input.sourceDigest !== checkpoint.sourceDigest) {
119
+ throw new CheckpointError('sources-changed', 'the models or files the run read changed after review; run it again for a new review');
120
+ }
121
+ const now = input.now ?? Date.now();
122
+ if (!Number.isFinite(input.leaseMs) || input.leaseMs <= 0 || !Number.isFinite(now)
123
+ || !Number.isFinite(now + input.leaseMs) || now + input.leaseMs <= now) {
124
+ throw new CheckpointError('invalid', 'the claim needs a finite positive lease and timestamp');
125
+ }
126
+ const next = { ...checkpoint, state: 'applying', updatedAt: now, claim: { owner: input.owner, leaseUntil: now + input.leaseMs, at: now } };
127
+ validatedClaims.set(next, { before: digest(checkpoint), after: digest(next) });
128
+ return next;
129
+ }
130
+ /** Record how the owner's resume ended. A failed resume may have committed some effects. */
131
+ export function finishCheckpoint(checkpoint, owner, outcome, now = Date.now()) {
132
+ assertTimestamp(now);
133
+ requireState(checkpoint, 'applying', 'not-owner');
134
+ if (checkpoint.claim?.owner !== owner)
135
+ throw new CheckpointError('not-owner', 'another owner holds this checkpoint');
136
+ return {
137
+ ...checkpoint,
138
+ state: outcome.ok ? 'completed' : 'partially-committed',
139
+ updatedAt: now,
140
+ outcome: { ok: outcome.ok, at: now, ...(outcome.message ? { message: outcome.message } : {}) },
141
+ };
142
+ }
143
+ /** A claim whose lease ran out without a finish: its effects are unknown, so it can never be applied again. */
144
+ export function recoverCheckpoint(checkpoint, now = Date.now()) {
145
+ assertTimestamp(now);
146
+ if (checkpoint.state !== 'applying' || (checkpoint.claim && checkpoint.claim.leaseUntil > now))
147
+ return null;
148
+ return {
149
+ ...checkpoint,
150
+ state: 'partially-committed',
151
+ updatedAt: now,
152
+ outcome: { ok: false, at: now, message: 'the resume stopped before it finished; downstream effects may be partial' },
153
+ };
154
+ }
155
+ const CAS_ATTEMPTS = 5;
156
+ /** Apply one transition through the store's CAS, re-applying it to the fresh record on conflict. */
157
+ export async function updateCheckpoint(store, id, change) {
158
+ for (let attempt = 0; attempt < CAS_ATTEMPTS; attempt++) {
159
+ const stored = await store.read(id);
160
+ if (!stored)
161
+ throw new CheckpointError('invalid', `no checkpoint ${id}`);
162
+ const before = digest(stored.checkpoint);
163
+ const next = change(stored.checkpoint);
164
+ if (await store.write(next, stored.revision)) {
165
+ const validated = validatedClaims.get(next);
166
+ if (validated?.before === before && validated.after === digest(next)) {
167
+ validatedClaims.delete(next);
168
+ registerOwnedClaim(next);
169
+ }
170
+ return next;
171
+ }
172
+ }
173
+ throw new CheckpointError('conflict', 'the checkpoint kept changing while it was being updated');
174
+ }
175
+ /** An in-process store, for tests and single-process hosts. */
176
+ export class MemoryCheckpointStore {
177
+ rows = new Map();
178
+ async read(id) {
179
+ const row = this.rows.get(id);
180
+ return row ? structuredClone(row) : null;
181
+ }
182
+ async write(checkpoint, expected) {
183
+ const current = this.rows.get(checkpoint.id);
184
+ if ((current?.revision ?? null) !== expected)
185
+ return false;
186
+ this.rows.set(checkpoint.id, { checkpoint: structuredClone(checkpoint), revision: (current?.revision ?? 0) + 1 });
187
+ return true;
188
+ }
189
+ }
190
+ //# sourceMappingURL=checkpoint-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint-state.js","sourceRoot":"","sources":["../src/checkpoint-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * `@ifc-lite/flow/checkpoint`: review checkpoints for runs that paused at a
3
+ * node declaring `review: 'required'` (#6923). A separate entry, so a host
4
+ * that only runs graphs does not load the checkpoint lifecycle.
5
+ */
6
+ export { checkpointProposal, createCheckpoint, graphDigest, resumeOutputs } from './checkpoint-record.js';
7
+ export type { CheckpointState, CreateCheckpointInput, FlowCheckpoint, PortableFlowData, PortableOutputs } from './checkpoint-record.js';
8
+ export { approveCheckpoint, CheckpointError, claimCheckpoint, finishCheckpoint, parseCheckpoint, recoverCheckpoint, rejectCheckpoint, updateCheckpoint, } from './checkpoint-state.js';
9
+ export type { CheckpointErrorCode, CheckpointStore, ClaimInput, StoredCheckpoint } from './checkpoint-state.js';
10
+ //# sourceMappingURL=checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1G,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACxI,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,mBAAmB,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ /**
5
+ * `@ifc-lite/flow/checkpoint`: review checkpoints for runs that paused at a
6
+ * node declaring `review: 'required'` (#6923). A separate entry, so a host
7
+ * that only runs graphs does not load the checkpoint lifecycle.
8
+ */
9
+ export { checkpointProposal, createCheckpoint, graphDigest, resumeOutputs } from './checkpoint-record.js';
10
+ export { approveCheckpoint, CheckpointError, claimCheckpoint, finishCheckpoint, parseCheckpoint, recoverCheckpoint, rejectCheckpoint, updateCheckpoint, } from './checkpoint-state.js';
11
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../src/checkpoint.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE1G,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC"}
@@ -7,10 +7,17 @@
7
7
  * `tracking.ts`).
8
8
  */
9
9
  import type { Lacing } from './values.js';
10
- export declare const FLOW_VERSION = 1;
10
+ export declare const FLOW_VERSION = 2;
11
11
  export type TrackingMode = 'update' | 'replace' | 'disabled';
12
12
  /** Player input kinds — what a form can ask for (Dynamo Player parity). */
13
- export type InputKind = 'scalar' | 'enum' | 'entitySet' | 'storey' | 'file' | 'table';
13
+ export type InputKind = 'scalar' | 'enum' | 'entitySet' | 'storey' | 'file' | 'files' | 'table';
14
+ export interface FlowFileSlot {
15
+ readonly id: string;
16
+ readonly label: string;
17
+ readonly accept: string;
18
+ readonly multiple: boolean;
19
+ readonly required: boolean;
20
+ }
14
21
  export interface FlowNode {
15
22
  readonly id: string;
16
23
  readonly type: string;
@@ -33,6 +40,7 @@ export interface FlowInput {
33
40
  readonly label: string;
34
41
  readonly kind: InputKind;
35
42
  readonly options?: readonly string[];
43
+ readonly fileSlots?: readonly FlowFileSlot[];
36
44
  }
37
45
  /** "Is Output": a node port shown as a result. */
38
46
  export interface FlowOutput {
@@ -66,8 +74,8 @@ export declare function validateFlowDocument(value: unknown): DocumentProblem[];
66
74
  /** Parse + validate; throws with every problem listed. */
67
75
  export declare function parseFlowDocument(text: string): FlowDocument;
68
76
  /**
69
- * Migration chain: each step lifts `flowVersion` by one. There is only
70
- * version 1 today; the chain exists so a v1 file keeps opening after v2.
77
+ * Migration chain: each step lifts `flowVersion` by one. Version 2 adds
78
+ * local file-slot metadata; existing v1 inputs and nodes retain their meaning.
71
79
  */
72
80
  export declare function migrateFlowDocument(value: unknown): unknown;
73
81
  //# sourceMappingURL=document.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"AAIA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtF,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;CACtD;AAED,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,kDAAkD;AAClD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAcD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,EAAE,CA+EtE;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAa5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS3D"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
package/dist/document.js CHANGED
@@ -1,10 +1,10 @@
1
1
  /* This Source Code Form is subject to the terms of the Mozilla Public
2
2
  * License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
- export const FLOW_VERSION = 1;
4
+ export const FLOW_VERSION = 2;
5
5
  const LACINGS = ['shortest', 'longest', 'cross'];
6
6
  const TRACKINGS = ['update', 'replace', 'disabled'];
7
- const INPUT_KINDS = ['scalar', 'enum', 'entitySet', 'storey', 'file', 'table'];
7
+ const INPUT_KINDS = ['scalar', 'enum', 'entitySet', 'storey', 'file', 'files', 'table'];
8
8
  function isRecord(v) {
9
9
  return !!v && typeof v === 'object' && !Array.isArray(v);
10
10
  }
@@ -108,6 +108,22 @@ export function validateFlowDocument(value) {
108
108
  add(`${p}.kind`, `must be one of ${INPUT_KINDS.join(', ')}`);
109
109
  if (inp.options !== undefined && !(Array.isArray(inp.options) && inp.options.every(str)))
110
110
  add(`${p}.options`, 'must be an array of strings');
111
+ if (inp.kind === 'files') {
112
+ if (!Array.isArray(inp.fileSlots) || inp.fileSlots.length === 0 || inp.fileSlots.length > 100)
113
+ add(`${p}.fileSlots`, 'must contain 1–100 slots');
114
+ else {
115
+ const slots = new Set();
116
+ for (const slot of inp.fileSlots) {
117
+ if (!isRecord(slot) || !str(slot.id) || slots.has(slot.id) || !str(slot.label)
118
+ || typeof slot.accept !== 'string' || typeof slot.multiple !== 'boolean' || typeof slot.required !== 'boolean')
119
+ add(`${p}.fileSlots`, 'invalid or duplicate file slot');
120
+ else
121
+ slots.add(slot.id);
122
+ }
123
+ }
124
+ }
125
+ else if (inp.fileSlots !== undefined)
126
+ add(`${p}.fileSlots`, 'only files inputs may define slots');
111
127
  });
112
128
  value.outputs.forEach((o, i) => {
113
129
  const p = `outputs[${i}]`;
@@ -139,8 +155,8 @@ export function parseFlowDocument(text) {
139
155
  return migrated;
140
156
  }
141
157
  /**
142
- * Migration chain: each step lifts `flowVersion` by one. There is only
143
- * version 1 today; the chain exists so a v1 file keeps opening after v2.
158
+ * Migration chain: each step lifts `flowVersion` by one. Version 2 adds
159
+ * local file-slot metadata; existing v1 inputs and nodes retain their meaning.
144
160
  */
145
161
  export function migrateFlowDocument(value) {
146
162
  if (!isRecord(value))
@@ -154,5 +170,7 @@ export function migrateFlowDocument(value) {
154
170
  }
155
171
  return doc;
156
172
  }
157
- const MIGRATIONS = {};
173
+ const MIGRATIONS = {
174
+ 1: (doc) => ({ ...doc, flowVersion: 2 }),
175
+ };
158
176
  //# sourceMappingURL=document.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../src/document.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,7 +8,7 @@ export type { PortDef, ParamDef, ParamKind, LogLevel, LaneTracking, NodeRunConte
8
8
  export { planLift, assemble, CrossProductTooLarge } from './lift.js';
9
9
  export type { LiftInput, Lane, LiftPlan, LiftOptions } from './lift.js';
10
10
  export { FLOW_VERSION, validateFlowDocument, parseFlowDocument, migrateFlowDocument } from './document.js';
11
- export type { TrackingMode, InputKind, FlowNode, FlowEdge, FlowInput, FlowOutput, FlowDocument, DocumentProblem, } from './document.js';
11
+ export type { TrackingMode, InputKind, FlowNode, FlowEdge, FlowInput, FlowFileSlot, FlowOutput, FlowDocument, DocumentProblem, } from './document.js';
12
12
  export { TRACKING_SIDECAR_VERSION, emptyTrackedSet, planTracking, trackedSetFrom, withTrackedSet, TrackingPinMismatch, isTrackedSet, trackedSetsFrom, MemoryTrackingStore, } from './tracking.js';
13
13
  export type { TrackedEntry, TrackedSet, TrackingSidecar, TrackingStore, DesiredLane, TrackingPlan } from './tracking.js';
14
14
  export { validateFlowWiring } from './wiring.js';
@@ -17,7 +17,8 @@ export type { FlowIO, FlowInputInfo, FlowOutputInfo } from './introspect.js';
17
17
  export { nodeAvailability, checkAvailability } from './availability.js';
18
18
  export type { HostFeatures, AvailabilityStatus, NodeAvailability } from './availability.js';
19
19
  export { referencedSecrets, replaceSecretRefs } from './secret-refs.js';
20
- export { runFlow, topologicalOrder, MemoCache, FlowCycleError, DEFAULT_MAX_CROSS } from './scheduler.js';
20
+ export { runFlow, MemoCache, DEFAULT_MAX_CROSS } from './scheduler.js';
21
+ export { topologicalOrder, FlowCycleError } from './order.js';
21
22
  export { trackingKeyOf, ORPHAN_NODE_ID } from './orphans.js';
22
23
  export type { RunOptions, RunResult, RunLogEntry, NodeReport, NodeStatus, GraphOutputValue } from './scheduler.js';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,GACT,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElG,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEhI,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC3G,YAAY,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5G,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,GACT,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC3F,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAElG,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAEhI,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAC3G,YAAY,EACV,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzH,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5G,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ export { validateFlowWiring } from './wiring.js';
12
12
  export { describeFlowIO, declaredInputKeys, resolveDeclaredParam, unknownInputKeys } from './introspect.js';
13
13
  export { nodeAvailability, checkAvailability } from './availability.js';
14
14
  export { referencedSecrets, replaceSecretRefs } from './secret-refs.js';
15
- export { runFlow, topologicalOrder, MemoCache, FlowCycleError, DEFAULT_MAX_CROSS } from './scheduler.js';
15
+ export { runFlow, MemoCache, DEFAULT_MAX_CROSS } from './scheduler.js';
16
+ export { topologicalOrder, FlowCycleError } from './order.js';
16
17
  export { trackingKeyOf, ORPHAN_NODE_ID } from './orphans.js';
17
18
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AAgBrB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAY3G,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAE/D,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,aAAa,GACd,MAAM,aAAa,CAAC;AAgBrB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAG3F,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAElF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAa3G,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -11,7 +11,7 @@
11
11
  * "is this key a declared parameter" in another caller is exactly how that
12
12
  * regresses somewhere else — so both go through {@link resolveDeclaredParam}.
13
13
  */
14
- import type { FlowDocument, InputKind } from './document.js';
14
+ import type { FlowDocument, FlowFileSlot, InputKind } from './document.js';
15
15
  import type { NodeRegistry, ParamDef, ParamKind } from './registry.js';
16
16
  import type { Access, ValueKind } from './values.js';
17
17
  export interface FlowInputInfo {
@@ -19,6 +19,7 @@ export interface FlowInputInfo {
19
19
  readonly label: string;
20
20
  readonly kind: InputKind;
21
21
  readonly options?: readonly string[];
22
+ readonly fileSlots?: readonly FlowFileSlot[];
22
23
  readonly default?: unknown;
23
24
  readonly paramKind?: ParamKind;
24
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CAC7C;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAYzF;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GAAG,SAAS,CAQnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EACrD,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAC9B,SAAS,MAAM,EAAE,CAGnB"}
1
+ {"version":3,"file":"introspect.d.ts","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAC;CAC7C;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,MAAM,CAYzF;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,CAEtE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,GAAG,SAAS,CAQnE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,EACrD,GAAG,EAAE,YAAY,EACjB,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,GAC9B,SAAS,MAAM,EAAE,CAGnB"}
@@ -6,7 +6,7 @@ export function describeFlowIO(doc, registry) {
6
6
  const inputs = doc.inputs.map((i) => {
7
7
  const def = registry.get(doc.nodes.find((n) => n.id === i.nodeId)?.type ?? '');
8
8
  const param = def?.params.find((p) => p.name === i.param);
9
- return { key: `${i.nodeId}.${i.param}`, label: i.label, kind: i.kind, options: i.options, default: param?.default, paramKind: param?.kind };
9
+ return { key: `${i.nodeId}.${i.param}`, label: i.label, kind: i.kind, options: i.options, ...(i.fileSlots ? { fileSlots: i.fileSlots } : {}), default: param?.default, paramKind: param?.kind };
10
10
  });
11
11
  const outputs = doc.outputs.map((o) => {
12
12
  const def = registry.get(doc.nodes.find((n) => n.id === o.nodeId)?.type ?? '');
@@ -1 +1 @@
1
- {"version":3,"file":"introspect.js","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"introspect.js","sourceRoot":"","sources":["../src/introspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /** Evaluation order of a document's nodes. */
2
+ import type { FlowDocument } from './document.js';
3
+ export declare class FlowCycleError extends Error {
4
+ readonly nodeIds: readonly string[];
5
+ constructor(nodeIds: readonly string[]);
6
+ }
7
+ /** Kahn's algorithm; stable with respect to document node order. */
8
+ export declare function topologicalOrder(doc: FlowDocument): string[];
9
+ //# sourceMappingURL=order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.d.ts","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"AAIA,8CAA8C;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,qBAAa,cAAe,SAAQ,KAAK;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE;gBAA1B,OAAO,EAAE,SAAS,MAAM,EAAE;CAIhD;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,EAAE,CAsB5D"}
package/dist/order.js ADDED
@@ -0,0 +1,37 @@
1
+ /* This Source Code Form is subject to the terms of the Mozilla Public
2
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
+ export class FlowCycleError extends Error {
5
+ nodeIds;
6
+ constructor(nodeIds) {
7
+ super(`flow has a cycle through ${nodeIds.join(' → ')}`);
8
+ this.nodeIds = nodeIds;
9
+ this.name = 'FlowCycleError';
10
+ }
11
+ }
12
+ /** Kahn's algorithm; stable with respect to document node order. */
13
+ export function topologicalOrder(doc) {
14
+ const indegree = new Map(doc.nodes.map((n) => [n.id, 0]));
15
+ const out = new Map(doc.nodes.map((n) => [n.id, []]));
16
+ for (const e of doc.edges) {
17
+ out.get(e.from[0]).push(e.to[0]);
18
+ indegree.set(e.to[0], (indegree.get(e.to[0]) ?? 0) + 1);
19
+ }
20
+ const ready = doc.nodes.filter((n) => indegree.get(n.id) === 0).map((n) => n.id);
21
+ const order = [];
22
+ while (ready.length > 0) {
23
+ const id = ready.shift();
24
+ order.push(id);
25
+ for (const next of out.get(id)) {
26
+ const d = indegree.get(next) - 1;
27
+ indegree.set(next, d);
28
+ if (d === 0)
29
+ ready.push(next);
30
+ }
31
+ }
32
+ if (order.length !== doc.nodes.length) {
33
+ throw new FlowCycleError(doc.nodes.map((n) => n.id).filter((id) => !order.includes(id)));
34
+ }
35
+ return order;
36
+ }
37
+ //# sourceMappingURL=order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"AAAA;;+DAE+D;AAM/D,MAAM,OAAO,cAAe,SAAQ,KAAK;IAClB;IAArB,YAAqB,OAA0B;QAC7C,KAAK,CAAC,4BAA4B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QADtC,YAAO,GAAP,OAAO,CAAmB;QAE7C,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,gBAAgB,CAAC,GAAiB;IAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAiB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAmB,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QAC1B,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjF,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAE,GAAG,CAAC,CAAC;YAClC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACtC,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"orphans.d.ts","sourceRoot":"","sources":["../src/orphans.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAgB,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wEAAwE;AACxE,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEvE;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,GAAG,EAAE,WAAW,EAAE,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;CAAE,CAAC,CAoB5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,EAC/B,GAAG,EAAE,WAAW,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB9C"}
1
+ {"version":3,"file":"orphans.d.ts","sourceRoot":"","sources":["../src/orphans.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAgB,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,wEAAwE;AACxE,eAAO,MAAM,cAAc,mBAAmB,CAAC;AAE/C,wBAAgB,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,GAAG,MAAM,CAEvE;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,GAAG,EAAE,UAAU,EACf,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,EAC/B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,GAAG,EAAE,WAAW,EAAE,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,UAAU,GAAG,SAAS,CAAA;CAAE,CAAC,CAqB5E;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,aAAa,GAAG,SAAS,EAChC,QAAQ,EAAE,YAAY,CAAC,OAAO,CAAC,EAC/B,GAAG,EAAE,WAAW,EAAE,EAClB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB9C"}
package/dist/orphans.js CHANGED
@@ -22,6 +22,10 @@ export async function removeSet(set, registry, host, signal, log, nodeId) {
22
22
  let removed = 0;
23
23
  const failed = {};
24
24
  for (const [laneKey, entry] of Object.entries(set.entries)) {
25
+ if (signal?.aborted) {
26
+ failed[laneKey] = entry;
27
+ continue;
28
+ }
25
29
  try {
26
30
  await def.remove({ host, laneKey, tracking: undefined, signal, log: (level, message) => say(level, laneKey, message) }, entry.globalId);
27
31
  removed += 1;
@@ -50,6 +54,8 @@ export async function removeOrphanedSets(doc, host, store, registry, log, signal
50
54
  let errors = 0;
51
55
  let removed = 0;
52
56
  for (const key of store.keys()) {
57
+ if (signal?.aborted)
58
+ break;
53
59
  if (live.has(key))
54
60
  continue;
55
61
  const set = store.load(key);
@@ -1 +1 @@
1
- {"version":3,"file":"orphans.js","sourceRoot":"","sources":["../src/orphans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orphans.js","sourceRoot":"","sources":["../src/orphans.ts"],"names":[],"mappings":"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"}