@relayflows/sdk 2.0.51 → 2.0.52
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/dist/authored-budget.d.ts +1 -1
- package/dist/authored-budget.d.ts.map +1 -1
- package/dist/authored-budget.js +3 -3
- package/dist/authored-budget.js.map +1 -1
- package/dist/authored-flow-error.d.ts +3 -1
- package/dist/authored-flow-error.d.ts.map +1 -1
- package/dist/authored-flow-error.js.map +1 -1
- package/dist/authored-flow-executor.d.ts +2 -0
- package/dist/authored-flow-executor.d.ts.map +1 -1
- package/dist/authored-flow-executor.js +93 -12
- package/dist/authored-flow-executor.js.map +1 -1
- package/dist/authored-flow-lifecycle.d.ts +28 -3
- package/dist/authored-flow-lifecycle.d.ts.map +1 -1
- package/dist/authored-flow-lifecycle.js +206 -10
- package/dist/authored-flow-lifecycle.js.map +1 -1
- package/dist/authored-node-entry.js +2 -0
- package/dist/authored-node-entry.js.map +1 -1
- package/dist/authored-parallel-body.d.ts +10 -0
- package/dist/authored-parallel-body.d.ts.map +1 -0
- package/dist/authored-parallel-body.js +68 -0
- package/dist/authored-parallel-body.js.map +1 -0
- package/dist/authored-parallel-eligibility.d.ts +8 -0
- package/dist/authored-parallel-eligibility.d.ts.map +1 -0
- package/dist/authored-parallel-eligibility.js +287 -0
- package/dist/authored-parallel-eligibility.js.map +1 -0
- package/dist/authored-promise-graph.d.ts +16 -0
- package/dist/authored-promise-graph.d.ts.map +1 -1
- package/dist/authored-promise-graph.js +36 -0
- package/dist/authored-promise-graph.js.map +1 -1
- package/dist/authored-root-readback.d.ts +1 -2
- package/dist/authored-root-readback.d.ts.map +1 -1
- package/dist/authored-root-readback.js +1 -1
- package/dist/authored-root-readback.js.map +1 -1
- package/dist/authored-root.d.ts +6 -1
- package/dist/authored-root.d.ts.map +1 -1
- package/dist/authored-root.js +55 -8
- package/dist/authored-root.js.map +1 -1
- package/dist/authored-step-graph.d.ts +19 -4
- package/dist/authored-step-graph.d.ts.map +1 -1
- package/dist/authored-step-graph.js +49 -6
- package/dist/authored-step-graph.js.map +1 -1
- package/dist/authored-step-index.d.ts +2 -1
- package/dist/authored-step-index.d.ts.map +1 -1
- package/dist/authored-step-index.js +2 -1
- package/dist/authored-step-index.js.map +1 -1
- package/dist/authored-verdict.d.ts +2 -0
- package/dist/authored-verdict.d.ts.map +1 -1
- package/dist/authored-verdict.js +4 -1
- package/dist/authored-verdict.js.map +1 -1
- package/dist/authored-worker-step.d.ts +2 -1
- package/dist/authored-worker-step.d.ts.map +1 -1
- package/dist/authored-worker-step.js +12 -5
- package/dist/authored-worker-step.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +4 -2
- package/dist/cli/run.js.map +1 -1
- package/dist/failure-kinds.d.ts +1 -1
- package/dist/failure-kinds.d.ts.map +1 -1
- package/dist/failure-kinds.js +2 -0
- package/dist/failure-kinds.js.map +1 -1
- package/dist/journal-client.d.ts +3 -1
- package/dist/journal-client.d.ts.map +1 -1
- package/dist/journal-client.js +18 -1
- package/dist/journal-client.js.map +1 -1
- package/package.json +3 -2
- package/src/authored-budget.ts +4 -3
- package/src/authored-flow-error.ts +2 -0
- package/src/authored-flow-executor.ts +85 -11
- package/src/authored-flow-lifecycle.ts +215 -9
- package/src/authored-node-entry.ts +2 -0
- package/src/authored-parallel-body.ts +67 -0
- package/src/authored-parallel-eligibility.ts +245 -0
- package/src/authored-promise-graph.ts +35 -0
- package/src/authored-root-readback.ts +1 -2
- package/src/authored-root.ts +62 -9
- package/src/authored-step-graph.ts +50 -5
- package/src/authored-step-index.ts +2 -1
- package/src/authored-verdict.ts +4 -1
- package/src/authored-worker-step.ts +12 -3
- package/src/cli/run.ts +4 -2
- package/src/failure-kinds.ts +2 -0
- package/src/journal-client.ts +19 -0
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { authoredFunctionSource } from './authored-flow-lifecycle.js';
|
|
3
|
+
const reservedCertifier = '__certifyParallelBranch';
|
|
4
|
+
/** Keep admission and call-site instrumentation in agreement on parentheses. */
|
|
5
|
+
export function unwrapParallelExpression(node) {
|
|
6
|
+
return ts.isParenthesizedExpression(node) ? unwrapParallelExpression(node.expression) : node;
|
|
7
|
+
}
|
|
8
|
+
/** A closed grammar for deterministic Promise.all branches. Unknown bodies stay serial. */
|
|
9
|
+
export function parallelRunEligible(body, moduleSource) {
|
|
10
|
+
// Promise.all is intercepted only when `Promise` resolves to the intrinsic.
|
|
11
|
+
// Function.toString cannot see a module-level lexical binding, so inspect
|
|
12
|
+
// the complete source before using the body's narrower grammar.
|
|
13
|
+
const bodySource = authoredFunctionSource(body);
|
|
14
|
+
return moduleUsesIntrinsicPromise(moduleSource, bodySource) && parallelBodySyntaxEligible(body);
|
|
15
|
+
}
|
|
16
|
+
/** Independently re-check the closed body grammar at execution time. */
|
|
17
|
+
export function parallelBodySyntaxEligible(body) {
|
|
18
|
+
const bodySource = authoredFunctionSource(body);
|
|
19
|
+
const file = ts.createSourceFile('authored-body.js', `const body = ${bodySource};`, ts.ScriptTarget.ES2022, true, ts.ScriptKind.JS);
|
|
20
|
+
if (file.statements.length !== 1)
|
|
21
|
+
return false;
|
|
22
|
+
const declaration = file.statements[0];
|
|
23
|
+
if (!declaration || !ts.isVariableStatement(declaration))
|
|
24
|
+
return false;
|
|
25
|
+
const expression = declaration.declarationList.declarations[0]?.initializer;
|
|
26
|
+
// Function expressions can obtain the context through `arguments[0]`.
|
|
27
|
+
if (expression === undefined || !ts.isArrowFunction(expression) || !ts.isBlock(expression.body)
|
|
28
|
+
|| expression.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.AsyncKeyword) !== true)
|
|
29
|
+
return false;
|
|
30
|
+
const parameter = expression.parameters[0]?.name;
|
|
31
|
+
if (parameter === undefined || !ts.isIdentifier(parameter) || expression.parameters.length !== 1)
|
|
32
|
+
return false;
|
|
33
|
+
const context = parameter.text;
|
|
34
|
+
if (['Promise', 'globalThis', 'global'].includes(context))
|
|
35
|
+
return false;
|
|
36
|
+
// The instrumented body is re-evaluated with a private callback parameter.
|
|
37
|
+
// A lexical binding or reference with that spelling could capture it.
|
|
38
|
+
let namesCertifier = false;
|
|
39
|
+
const checkCertifierName = (node) => {
|
|
40
|
+
if (ts.isIdentifier(node) && node.text === reservedCertifier)
|
|
41
|
+
namesCertifier = true;
|
|
42
|
+
ts.forEachChild(node, checkCertifierName);
|
|
43
|
+
};
|
|
44
|
+
checkCertifierName(expression);
|
|
45
|
+
if (namesCertifier)
|
|
46
|
+
return false;
|
|
47
|
+
const branches = new Map();
|
|
48
|
+
const rootValues = new Set();
|
|
49
|
+
let groups = 0;
|
|
50
|
+
let runs = 0;
|
|
51
|
+
const unwrap = unwrapParallelExpression;
|
|
52
|
+
const method = (node, owner, name) => {
|
|
53
|
+
const value = unwrap(node);
|
|
54
|
+
return ts.isCallExpression(value) && ts.isPropertyAccessExpression(value.expression)
|
|
55
|
+
&& ts.isIdentifier(value.expression.expression) && value.expression.expression.text === owner
|
|
56
|
+
&& value.expression.name.text === name;
|
|
57
|
+
};
|
|
58
|
+
const pure = (node, values) => {
|
|
59
|
+
const value = unwrap(node);
|
|
60
|
+
if (ts.isStringLiteral(value) || ts.isNumericLiteral(value) || ts.isNoSubstitutionTemplateLiteral(value)
|
|
61
|
+
|| value.kind === ts.SyntaxKind.TrueKeyword || value.kind === ts.SyntaxKind.FalseKeyword
|
|
62
|
+
|| value.kind === ts.SyntaxKind.NullKeyword)
|
|
63
|
+
return true;
|
|
64
|
+
if (ts.isIdentifier(value))
|
|
65
|
+
return values.has(value.text);
|
|
66
|
+
if (ts.isTemplateExpression(value))
|
|
67
|
+
return value.templateSpans.every(span => pure(span.expression, values));
|
|
68
|
+
if (ts.isPrefixUnaryExpression(value))
|
|
69
|
+
return [ts.SyntaxKind.PlusToken, ts.SyntaxKind.MinusToken,
|
|
70
|
+
ts.SyntaxKind.ExclamationToken].includes(value.operator) && pure(value.operand, values);
|
|
71
|
+
if (ts.isBinaryExpression(value))
|
|
72
|
+
return [ts.SyntaxKind.PlusToken, ts.SyntaxKind.MinusToken,
|
|
73
|
+
ts.SyntaxKind.AsteriskToken, ts.SyntaxKind.SlashToken, ts.SyntaxKind.EqualsEqualsEqualsToken,
|
|
74
|
+
ts.SyntaxKind.ExclamationEqualsEqualsToken, ts.SyntaxKind.LessThanToken,
|
|
75
|
+
ts.SyntaxKind.GreaterThanToken].includes(value.operatorToken.kind)
|
|
76
|
+
&& pure(value.left, values) && pure(value.right, values);
|
|
77
|
+
if (ts.isConditionalExpression(value))
|
|
78
|
+
return pure(value.condition, values)
|
|
79
|
+
&& pure(value.whenTrue, values) && pure(value.whenFalse, values);
|
|
80
|
+
if (ts.isElementAccessExpression(value))
|
|
81
|
+
return value.argumentExpression !== undefined
|
|
82
|
+
&& pure(value.expression, values) && pure(value.argumentExpression, values);
|
|
83
|
+
if (ts.isPropertyAccessExpression(value))
|
|
84
|
+
return pure(value.expression, values);
|
|
85
|
+
if (ts.isArrayLiteralExpression(value))
|
|
86
|
+
return value.elements.every(element => ts.isExpression(element) && pure(element, values));
|
|
87
|
+
if (ts.isObjectLiteralExpression(value))
|
|
88
|
+
return value.properties.every(property => ts.isPropertyAssignment(property) && (ts.isIdentifier(property.name) || ts.isStringLiteral(property.name))
|
|
89
|
+
&& pure(property.initializer, values));
|
|
90
|
+
return false;
|
|
91
|
+
};
|
|
92
|
+
const run = (node, values) => {
|
|
93
|
+
const value = unwrap(node);
|
|
94
|
+
if (!method(value, context, 'run') || value.arguments.length < 1 || value.arguments.length > 2
|
|
95
|
+
|| !value.arguments.every(argument => pure(argument, values)))
|
|
96
|
+
return false;
|
|
97
|
+
runs++;
|
|
98
|
+
return true;
|
|
99
|
+
};
|
|
100
|
+
const group = (node, values, depth) => {
|
|
101
|
+
const value = unwrap(node);
|
|
102
|
+
if (!method(value, 'Promise', 'all') || value.arguments.length !== 1 || depth > 4)
|
|
103
|
+
return false;
|
|
104
|
+
groups++;
|
|
105
|
+
const members = value.arguments[0];
|
|
106
|
+
if (ts.isArrayLiteralExpression(members)) {
|
|
107
|
+
if (members.elements.length < 2)
|
|
108
|
+
return false;
|
|
109
|
+
return members.elements.every(member => {
|
|
110
|
+
if (!ts.isExpression(member))
|
|
111
|
+
return false;
|
|
112
|
+
if (run(member, values))
|
|
113
|
+
return true;
|
|
114
|
+
const call = unwrap(member);
|
|
115
|
+
if (depth === 0 && ts.isCallExpression(call) && ts.isIdentifier(call.expression)
|
|
116
|
+
&& call.arguments.length === 0 && branches.has(call.expression.text)) {
|
|
117
|
+
return branch(branches.get(call.expression.text), depth + 1);
|
|
118
|
+
}
|
|
119
|
+
if (depth === 0 && ts.isCallExpression(call) && call.arguments.length === 0
|
|
120
|
+
&& ts.isParenthesizedExpression(call.expression) && ts.isArrowFunction(call.expression.expression)) {
|
|
121
|
+
return branch(call.expression.expression, depth + 1);
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
return false;
|
|
127
|
+
};
|
|
128
|
+
const awaitStep = (node, values, depth) => {
|
|
129
|
+
const value = unwrap(node);
|
|
130
|
+
if (!ts.isAwaitExpression(value))
|
|
131
|
+
return false;
|
|
132
|
+
return run(value.expression, values) || group(value.expression, values, depth);
|
|
133
|
+
};
|
|
134
|
+
const statements = (block, values, depth) => {
|
|
135
|
+
for (const statement of block.statements) {
|
|
136
|
+
if (ts.isExpressionStatement(statement)) {
|
|
137
|
+
if (awaitStep(statement.expression, values, depth))
|
|
138
|
+
continue;
|
|
139
|
+
const value = unwrap(statement.expression);
|
|
140
|
+
if (depth === 0 && method(value, context, 'done') && value.arguments.length >= 1
|
|
141
|
+
&& value.arguments.every(argument => pure(argument, values))
|
|
142
|
+
&& statement === block.statements[block.statements.length - 1])
|
|
143
|
+
continue;
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
if (ts.isReturnStatement(statement) && depth > 0 && statement.expression !== undefined
|
|
147
|
+
&& awaitStep(statement.expression, values, depth))
|
|
148
|
+
continue;
|
|
149
|
+
if (!ts.isVariableStatement(statement) || (statement.declarationList.flags & ts.NodeFlags.Const) === 0)
|
|
150
|
+
return false;
|
|
151
|
+
for (const item of statement.declarationList.declarations) {
|
|
152
|
+
if (!ts.isIdentifier(item.name) || item.initializer === undefined)
|
|
153
|
+
return false;
|
|
154
|
+
if (['Promise', 'globalThis', 'global'].includes(item.name.text))
|
|
155
|
+
return false;
|
|
156
|
+
if (depth === 0 && ts.isArrowFunction(item.initializer)) {
|
|
157
|
+
if (branches.has(item.name.text) || item.initializer.parameters.length !== 0
|
|
158
|
+
|| item.initializer.modifiers?.some(modifier => modifier.kind === ts.SyntaxKind.AsyncKeyword) !== true)
|
|
159
|
+
return false;
|
|
160
|
+
branches.set(item.name.text, item.initializer);
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
if (!awaitStep(item.initializer, values, depth))
|
|
164
|
+
return false;
|
|
165
|
+
values.add(item.name.text);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
return true;
|
|
169
|
+
};
|
|
170
|
+
const branch = (arrow, depth) => {
|
|
171
|
+
if (arrow.parameters.length !== 0)
|
|
172
|
+
return false;
|
|
173
|
+
const before = runs;
|
|
174
|
+
const valid = ts.isBlock(arrow.body) ? statements(arrow.body, new Set(rootValues), depth)
|
|
175
|
+
: awaitStep(arrow.body, rootValues, depth);
|
|
176
|
+
// An empty async branch creates a join with no causal step predecessor.
|
|
177
|
+
return valid && runs > before;
|
|
178
|
+
};
|
|
179
|
+
if (!statements(expression.body, rootValues, 0))
|
|
180
|
+
return false;
|
|
181
|
+
return groups > 0 && runs > 0;
|
|
182
|
+
}
|
|
183
|
+
/** Reject any source that can change what a free `Promise` identifier means. */
|
|
184
|
+
function moduleUsesIntrinsicPromise(source, bodySource) {
|
|
185
|
+
const file = ts.createSourceFile('authored-module.ts', source, ts.ScriptTarget.ES2022, true, ts.ScriptKind.TS);
|
|
186
|
+
if ((file.parseDiagnostics?.length ?? 0) > 0) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
// Top-level code can alter the constructor or its methods without binding
|
|
190
|
+
// the name. Leave these modules on the established serial scheduler too.
|
|
191
|
+
const touchesPromiseOutsideDefinition = (node) => {
|
|
192
|
+
if (ts.isIdentifier(node) && ['Promise', 'globalThis', 'global'].includes(node.text))
|
|
193
|
+
return true;
|
|
194
|
+
return ts.forEachChild(node, touchesPromiseOutsideDefinition) === true;
|
|
195
|
+
};
|
|
196
|
+
let definesDefaultBody = false;
|
|
197
|
+
let importsSurfaceFlow = false;
|
|
198
|
+
for (const statement of file.statements) {
|
|
199
|
+
if (ts.isImportDeclaration(statement)) {
|
|
200
|
+
// Imports can execute code before the body starts. Only the direct,
|
|
201
|
+
// immutable Surface binding can certify the exported body's identity.
|
|
202
|
+
if (statement.moduleSpecifier.getText(file) !== "'@relayflows/surface'"
|
|
203
|
+
&& statement.moduleSpecifier.getText(file) !== '"@relayflows/surface"')
|
|
204
|
+
return false;
|
|
205
|
+
const bindings = statement.importClause?.namedBindings;
|
|
206
|
+
if (statement.importClause?.name !== undefined || bindings === undefined
|
|
207
|
+
|| !ts.isNamedImports(bindings) || bindings.elements.length !== 1
|
|
208
|
+
|| bindings.elements[0]?.name.text !== 'flow'
|
|
209
|
+
|| bindings.elements[0]?.propertyName !== undefined || importsSurfaceFlow)
|
|
210
|
+
return false;
|
|
211
|
+
importsSurfaceFlow = true;
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
if (ts.isExportAssignment(statement)) {
|
|
215
|
+
// Only the final body argument is allowed to mention Promise.all. Do
|
|
216
|
+
// not let an expression around flow() mutate Promise while we skip it.
|
|
217
|
+
const call = statement.expression;
|
|
218
|
+
if (statement.isExportEquals || !ts.isCallExpression(call)
|
|
219
|
+
|| !ts.isIdentifier(call.expression) || call.expression.text !== 'flow')
|
|
220
|
+
return false;
|
|
221
|
+
const args = call.arguments;
|
|
222
|
+
if (args.length !== 2 || !ts.isStringLiteral(args[0]))
|
|
223
|
+
return false;
|
|
224
|
+
if (!ts.isArrowFunction(args[args.length - 1]))
|
|
225
|
+
return false;
|
|
226
|
+
if (args[args.length - 1].getText(file) !== bodySource)
|
|
227
|
+
return false;
|
|
228
|
+
if (args.slice(0, -1).some(touchesPromiseOutsideDefinition))
|
|
229
|
+
return false;
|
|
230
|
+
if (definesDefaultBody)
|
|
231
|
+
return false;
|
|
232
|
+
definesDefaultBody = true;
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
// The certified body cannot use module captures. Other top-level code is
|
|
236
|
+
// unnecessary for it and may schedule a later mutation through an alias.
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
const forbidden = new Set(['Promise', 'globalThis']);
|
|
240
|
+
const bindsForbidden = (name) => ts.isIdentifier(name)
|
|
241
|
+
? forbidden.has(name.text)
|
|
242
|
+
: name.elements.some(element => ts.isBindingElement(element) && bindsForbidden(element.name));
|
|
243
|
+
const isGlobalPromise = (node) => {
|
|
244
|
+
if (ts.isIdentifier(node))
|
|
245
|
+
return forbidden.has(node.text);
|
|
246
|
+
if (ts.isPropertyAccessExpression(node))
|
|
247
|
+
return ts.isIdentifier(node.expression)
|
|
248
|
+
&& node.expression.text === 'globalThis' && node.name.text === 'Promise';
|
|
249
|
+
return ts.isElementAccessExpression(node) && ts.isIdentifier(node.expression)
|
|
250
|
+
&& node.expression.text === 'globalThis' && ts.isStringLiteral(node.argumentExpression)
|
|
251
|
+
&& node.argumentExpression.text === 'Promise';
|
|
252
|
+
};
|
|
253
|
+
let unsafe = false;
|
|
254
|
+
const visit = (node) => {
|
|
255
|
+
if (unsafe)
|
|
256
|
+
return;
|
|
257
|
+
if ((ts.isVariableDeclaration(node) || ts.isParameter(node) || ts.isBindingElement(node))
|
|
258
|
+
&& bindsForbidden(node.name))
|
|
259
|
+
unsafe = true;
|
|
260
|
+
if ((ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node)
|
|
261
|
+
|| ts.isClassDeclaration(node) || ts.isClassExpression(node)
|
|
262
|
+
|| ts.isEnumDeclaration(node) || ts.isImportEqualsDeclaration(node)
|
|
263
|
+
|| ts.isTypeAliasDeclaration(node) || ts.isInterfaceDeclaration(node))
|
|
264
|
+
&& node.name !== undefined && forbidden.has(node.name.text))
|
|
265
|
+
unsafe = true;
|
|
266
|
+
if (ts.isImportClause(node) && node.name !== undefined && forbidden.has(node.name.text))
|
|
267
|
+
unsafe = true;
|
|
268
|
+
if (ts.isNamespaceImport(node) && forbidden.has(node.name.text))
|
|
269
|
+
unsafe = true;
|
|
270
|
+
if (ts.isImportSpecifier(node) && forbidden.has(node.name.text))
|
|
271
|
+
unsafe = true;
|
|
272
|
+
if (ts.isBinaryExpression(node)
|
|
273
|
+
&& node.operatorToken.kind >= ts.SyntaxKind.FirstAssignment
|
|
274
|
+
&& node.operatorToken.kind <= ts.SyntaxKind.LastAssignment
|
|
275
|
+
&& isGlobalPromise(node.left))
|
|
276
|
+
unsafe = true;
|
|
277
|
+
if ((ts.isPrefixUnaryExpression(node) || ts.isPostfixUnaryExpression(node))
|
|
278
|
+
&& isGlobalPromise(node.operand))
|
|
279
|
+
unsafe = true;
|
|
280
|
+
ts.forEachChild(node, visit);
|
|
281
|
+
};
|
|
282
|
+
visit(file);
|
|
283
|
+
// The body may come from another module, where a free Promise name can be
|
|
284
|
+
// shadowed without appearing in this source. In that case use serial IDs.
|
|
285
|
+
return importsSurfaceFlow && definesDefaultBody && !unsafe;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=authored-parallel-eligibility.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authored-parallel-eligibility.js","sourceRoot":"","sources":["../src/authored-parallel-eligibility.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,12 +29,15 @@ export declare class AuthoredPromiseGraph {
|
|
|
29
29
|
private readonly triggers;
|
|
30
30
|
private readonly creationContexts;
|
|
31
31
|
private readonly resolutionCauses;
|
|
32
|
+
/** Promises attributed only when another promise's reaction resolved them. */
|
|
33
|
+
private readonly adoptedFromResolvingContext;
|
|
32
34
|
private readonly promiseIds;
|
|
33
35
|
private readonly handles;
|
|
34
36
|
private readonly unattributedChildren;
|
|
35
37
|
private readonly attributedRoots;
|
|
36
38
|
private readonly roots;
|
|
37
39
|
private readonly pending;
|
|
40
|
+
private readonly combinatorCaptures;
|
|
38
41
|
private dependencyCache;
|
|
39
42
|
/** Bumped by every graph change, so derived answers can be cached between changes. */
|
|
40
43
|
private changes;
|
|
@@ -42,6 +45,12 @@ export declare class AuthoredPromiseGraph {
|
|
|
42
45
|
enable(): void;
|
|
43
46
|
disable(): void;
|
|
44
47
|
idOf(value: object): number | undefined;
|
|
48
|
+
isPending(asyncId: number): boolean;
|
|
49
|
+
/** The intrinsic creates per-member reaction promises as well as its aggregate. */
|
|
50
|
+
captureCombinator<T>(call: () => T): {
|
|
51
|
+
readonly value: T;
|
|
52
|
+
readonly created: ReadonlySet<number>;
|
|
53
|
+
};
|
|
45
54
|
/** Mark a promise whose descendants belong to an authored operation. */
|
|
46
55
|
registerRoot(asyncId: number): void;
|
|
47
56
|
/** The roots that still have derived promises in flight. One pass over `pending`. */
|
|
@@ -53,6 +62,13 @@ export declare class AuthoredPromiseGraph {
|
|
|
53
62
|
}>;
|
|
54
63
|
/** The three recorded edges out of one promise, for walks that stop early. */
|
|
55
64
|
causesOf(asyncId: number): number[];
|
|
65
|
+
/**
|
|
66
|
+
* A promise created directly in one async context but settled in another
|
|
67
|
+
* can be a join. Its resolution edge names only the settling member, so a
|
|
68
|
+
* frontier may use it only when a combinator registered all members.
|
|
69
|
+
*/
|
|
70
|
+
hasUnobservedJoinShape(asyncId: number): boolean;
|
|
71
|
+
wasAdoptedFromResolvingContext(asyncId: number): boolean;
|
|
56
72
|
dependsOn(descendant: number, ancestor: number): boolean;
|
|
57
73
|
/** A counter that changes whenever the graph does; equal values mean equal answers. */
|
|
58
74
|
get version(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-promise-graph.d.ts","sourceRoot":"","sources":["../src/authored-promise-graph.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,oBAAoB;
|
|
1
|
+
{"version":3,"file":"authored-promise-graph.d.ts","sourceRoot":"","sources":["../src/authored-promise-graph.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,oBAAoB;IAmB7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAnBnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6B;IAC9D,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAqB;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAiC;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA+B;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAC7D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,eAAe,CAAwG;IAC/H,sFAAsF;IACtF,OAAO,CAAC,OAAO,CAAK;gBAGD,OAAO,EAAE,MAAM,OAAO,EACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI;IAgD9D,MAAM,IAAI,IAAI;IAId,OAAO,IAAI,IAAI;IAIf,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAInC,mFAAmF;IACnF,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;KAAE;IAOjG,wEAAwE;IACxE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUnC,qFAAqF;IACrF,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC;IAS5B,mFAAmF;IACnF,gBAAgB,IAAI,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAUvF,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE;IAYnC;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOhD,8BAA8B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIxD,uFAAuF;IACvF,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAI1G,KAAK,IAAI,IAAI;IAcb,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,IAAI;IAMZ;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,cAAc;CAcvB"}
|
|
@@ -31,12 +31,15 @@ export class AuthoredPromiseGraph {
|
|
|
31
31
|
triggers = new Map();
|
|
32
32
|
creationContexts = new Map();
|
|
33
33
|
resolutionCauses = new Map();
|
|
34
|
+
/** Promises attributed only when another promise's reaction resolved them. */
|
|
35
|
+
adoptedFromResolvingContext = new Set();
|
|
34
36
|
promiseIds = new WeakMap();
|
|
35
37
|
handles = new Map();
|
|
36
38
|
unattributedChildren = new Map();
|
|
37
39
|
attributedRoots = new Map();
|
|
38
40
|
roots = new Set();
|
|
39
41
|
pending = new Set();
|
|
42
|
+
combinatorCaptures = [];
|
|
40
43
|
dependencyCache;
|
|
41
44
|
/** Bumped by every graph change, so derived answers can be cached between changes. */
|
|
42
45
|
changes = 0;
|
|
@@ -53,6 +56,8 @@ export class AuthoredPromiseGraph {
|
|
|
53
56
|
this.triggers.set(asyncId, triggerAsyncId);
|
|
54
57
|
this.creationContexts.set(asyncId, executionAsyncId());
|
|
55
58
|
this.promiseIds.set(resource, asyncId);
|
|
59
|
+
for (const capture of this.combinatorCaptures)
|
|
60
|
+
capture.add(asyncId);
|
|
56
61
|
this.handles.set(asyncId, resource);
|
|
57
62
|
this.pending.add(asyncId);
|
|
58
63
|
const root = this.roots.has(triggerAsyncId)
|
|
@@ -83,6 +88,7 @@ export class AuthoredPromiseGraph {
|
|
|
83
88
|
// success. Measured; see ops/probes/pr134-repair-0903/combinators.mjs.
|
|
84
89
|
const adopted = this.attributedRoots.get(cause);
|
|
85
90
|
if (adopted !== undefined) {
|
|
91
|
+
this.adoptedFromResolvingContext.add(asyncId);
|
|
86
92
|
this.attribute(asyncId, adopted);
|
|
87
93
|
return;
|
|
88
94
|
}
|
|
@@ -102,6 +108,20 @@ export class AuthoredPromiseGraph {
|
|
|
102
108
|
idOf(value) {
|
|
103
109
|
return this.promiseIds.get(value);
|
|
104
110
|
}
|
|
111
|
+
isPending(asyncId) {
|
|
112
|
+
return this.pending.has(asyncId);
|
|
113
|
+
}
|
|
114
|
+
/** The intrinsic creates per-member reaction promises as well as its aggregate. */
|
|
115
|
+
captureCombinator(call) {
|
|
116
|
+
const created = new Set();
|
|
117
|
+
this.combinatorCaptures.push(created);
|
|
118
|
+
try {
|
|
119
|
+
return { value: call(), created };
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
this.combinatorCaptures.pop();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
105
125
|
/** Mark a promise whose descendants belong to an authored operation. */
|
|
106
126
|
registerRoot(asyncId) {
|
|
107
127
|
if (asyncId <= 0 || this.roots.has(asyncId))
|
|
@@ -150,6 +170,20 @@ export class AuthoredPromiseGraph {
|
|
|
150
170
|
}
|
|
151
171
|
return causes;
|
|
152
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* A promise created directly in one async context but settled in another
|
|
175
|
+
* can be a join. Its resolution edge names only the settling member, so a
|
|
176
|
+
* frontier may use it only when a combinator registered all members.
|
|
177
|
+
*/
|
|
178
|
+
hasUnobservedJoinShape(asyncId) {
|
|
179
|
+
const trigger = this.triggers.get(asyncId);
|
|
180
|
+
const resolution = this.resolutionCauses.get(asyncId);
|
|
181
|
+
return trigger !== undefined && trigger === this.creationContexts.get(asyncId)
|
|
182
|
+
&& resolution !== undefined && resolution !== trigger;
|
|
183
|
+
}
|
|
184
|
+
wasAdoptedFromResolvingContext(asyncId) {
|
|
185
|
+
return this.adoptedFromResolvingContext.has(asyncId);
|
|
186
|
+
}
|
|
153
187
|
dependsOn(descendant, ancestor) {
|
|
154
188
|
return this.dependenciesOf(descendant).has(ancestor);
|
|
155
189
|
}
|
|
@@ -169,11 +203,13 @@ export class AuthoredPromiseGraph {
|
|
|
169
203
|
this.triggers.clear();
|
|
170
204
|
this.creationContexts.clear();
|
|
171
205
|
this.resolutionCauses.clear();
|
|
206
|
+
this.adoptedFromResolvingContext.clear();
|
|
172
207
|
this.handles.clear();
|
|
173
208
|
this.unattributedChildren.clear();
|
|
174
209
|
this.attributedRoots.clear();
|
|
175
210
|
this.roots.clear();
|
|
176
211
|
this.pending.clear();
|
|
212
|
+
this.combinatorCaptures.length = 0;
|
|
177
213
|
this.dependencyCache = undefined;
|
|
178
214
|
}
|
|
179
215
|
attribute(start, root) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-promise-graph.js","sourceRoot":"","sources":["../src/authored-promise-graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAkB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,oBAAoB;
|
|
1
|
+
{"version":3,"file":"authored-promise-graph.js","sourceRoot":"","sources":["../src/authored-promise-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { AuthoredFlowExecutionResult } from './authored-flow-executor.js';
|
|
2
2
|
import { type JournalClient } from './journal-client.js';
|
|
3
|
-
import type { RunOutcome } from './protocol.js';
|
|
4
3
|
export declare function rootKernelStep(journal: JournalClient, runId: string): Promise<Record<string, unknown>>;
|
|
5
4
|
/**
|
|
6
5
|
* The root step of `runId`, or undefined when the daemon definitively answered
|
|
@@ -15,7 +14,7 @@ export declare function rootStepIfPresent(journal: JournalClient, runId: string)
|
|
|
15
14
|
* it back is interrupted, the outcome is still known: say so, rather than
|
|
16
15
|
* recasting a finished run as resumable.
|
|
17
16
|
*/
|
|
18
|
-
export declare function completedResult(journal: JournalClient,
|
|
17
|
+
export declare function completedResult(journal: JournalClient, rootRunId: string): Promise<AuthoredFlowExecutionResult & {
|
|
19
18
|
readonly rootRunId: string;
|
|
20
19
|
}>;
|
|
21
20
|
//# sourceMappingURL=authored-root-readback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-root-readback.d.ts","sourceRoot":"","sources":["../src/authored-root-readback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAG/E,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"authored-root-readback.d.ts","sourceRoot":"","sources":["../src/authored-root-readback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAG/E,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAUlG,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAO5G;AAKD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAK3H;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAchJ"}
|
|
@@ -38,7 +38,7 @@ export async function rootStepIfPresent(journal, runId) {
|
|
|
38
38
|
* it back is interrupted, the outcome is still known: say so, rather than
|
|
39
39
|
* recasting a finished run as resumable.
|
|
40
40
|
*/
|
|
41
|
-
export function completedResult(journal,
|
|
41
|
+
export function completedResult(journal, rootRunId) {
|
|
42
42
|
return completedRootResult(journal, rootRunId).catch(error => {
|
|
43
43
|
// A bad frame or a journal with no stored result is a definite fact; any
|
|
44
44
|
// other failure — interrupted, canceled, or a daemon-side read error such
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-root-readback.js","sourceRoot":"","sources":["../src/authored-root-readback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE1F,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAsB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"authored-root-readback.js","sourceRoot":"","sources":["../src/authored-root-readback.ts"],"names":[],"mappings":"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"}
|
package/dist/authored-root.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type AuthoredFlowExecutionResult, type AuthoredFlowSuspendedResult } from './authored-flow-executor.js';
|
|
2
|
+
import { AUTHORED_PARALLEL_ROOT_KIND } from './authored-verdict.js';
|
|
2
3
|
import { type LoadedAuthoredFlow, type SurfaceModuleAuthority } from './authored-flow-loader.js';
|
|
3
4
|
import { JournalClient } from './journal-client.js';
|
|
4
5
|
import type { RunLifecycleOptions } from './cli/run.js';
|
|
@@ -19,7 +20,7 @@ export interface AuthoredRootExtension {
|
|
|
19
20
|
readonly ref: string;
|
|
20
21
|
}
|
|
21
22
|
export interface AuthoredRootMetadata {
|
|
22
|
-
readonly kind: typeof ROOT_KIND;
|
|
23
|
+
readonly kind: typeof ROOT_KIND | typeof AUTHORED_PARALLEL_ROOT_KIND;
|
|
23
24
|
readonly flowName: string;
|
|
24
25
|
readonly flowPath: string;
|
|
25
26
|
readonly sourceSha256: string;
|
|
@@ -27,6 +28,10 @@ export interface AuthoredRootMetadata {
|
|
|
27
28
|
readonly sources: readonly AuthoredRootSourceAuthority[];
|
|
28
29
|
/** Plugin-level provenance in lock order; empty when the project declares none. */
|
|
29
30
|
readonly extensions: readonly AuthoredRootExtension[];
|
|
31
|
+
/** Absent on roots admitted before causal identities existed. */
|
|
32
|
+
readonly identityVersion?: 2;
|
|
33
|
+
/** Immutable admission choice; serial uses the 2.0.50 child identity contract. */
|
|
34
|
+
readonly executionMode?: 'serial' | 'parallel';
|
|
30
35
|
readonly localAgentStream?: string;
|
|
31
36
|
readonly inputPresent: boolean;
|
|
32
37
|
readonly input?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-root.d.ts","sourceRoot":"","sources":["../src/authored-root.ts"],"names":[],"mappings":"AAOA,OAAO,EAAuB,KAAK,2BAA2B,EAAE,KAAK,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"authored-root.d.ts","sourceRoot":"","sources":["../src/authored-root.ts"],"names":[],"mappings":"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"}
|