@manifesto-ai/core 2.6.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/index.d.ts +1750 -19
- package/dist/index.js +18480 -36
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
- package/dist/__tests__/apply.test.d.ts +0 -2
- package/dist/__tests__/apply.test.d.ts.map +0 -1
- package/dist/__tests__/apply.test.js +0 -320
- package/dist/__tests__/apply.test.js.map +0 -1
- package/dist/__tests__/defaults.test.d.ts +0 -2
- package/dist/__tests__/defaults.test.d.ts.map +0 -1
- package/dist/__tests__/defaults.test.js +0 -74
- package/dist/__tests__/defaults.test.js.map +0 -1
- package/dist/__tests__/jcs.test.d.ts +0 -2
- package/dist/__tests__/jcs.test.d.ts.map +0 -1
- package/dist/__tests__/jcs.test.js +0 -45
- package/dist/__tests__/jcs.test.js.map +0 -1
- package/dist/core/apply.d.ts +0 -17
- package/dist/core/apply.d.ts.map +0 -1
- package/dist/core/apply.js +0 -198
- package/dist/core/apply.js.map +0 -1
- package/dist/core/compute.d.ts +0 -17
- package/dist/core/compute.d.ts.map +0 -1
- package/dist/core/compute.js +0 -305
- package/dist/core/compute.js.map +0 -1
- package/dist/core/compute.test.d.ts +0 -2
- package/dist/core/compute.test.d.ts.map +0 -1
- package/dist/core/compute.test.js +0 -950
- package/dist/core/compute.test.js.map +0 -1
- package/dist/core/explain.d.ts +0 -14
- package/dist/core/explain.d.ts.map +0 -1
- package/dist/core/explain.js +0 -78
- package/dist/core/explain.js.map +0 -1
- package/dist/core/index.d.ts +0 -5
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/index.js +0 -5
- package/dist/core/index.js.map +0 -1
- package/dist/core/validate.d.ts +0 -16
- package/dist/core/validate.d.ts.map +0 -1
- package/dist/core/validate.js +0 -361
- package/dist/core/validate.js.map +0 -1
- package/dist/core/validate.test.d.ts +0 -2
- package/dist/core/validate.test.d.ts.map +0 -1
- package/dist/core/validate.test.js +0 -719
- package/dist/core/validate.test.js.map +0 -1
- package/dist/core/validation-utils.d.ts +0 -20
- package/dist/core/validation-utils.d.ts.map +0 -1
- package/dist/core/validation-utils.js +0 -351
- package/dist/core/validation-utils.js.map +0 -1
- package/dist/errors.d.ts +0 -30
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -51
- package/dist/errors.js.map +0 -1
- package/dist/evaluator/computed.d.ts +0 -14
- package/dist/evaluator/computed.d.ts.map +0 -1
- package/dist/evaluator/computed.js +0 -60
- package/dist/evaluator/computed.js.map +0 -1
- package/dist/evaluator/context.d.ts +0 -62
- package/dist/evaluator/context.d.ts.map +0 -1
- package/dist/evaluator/context.js +0 -44
- package/dist/evaluator/context.js.map +0 -1
- package/dist/evaluator/dag.d.ts +0 -30
- package/dist/evaluator/dag.d.ts.map +0 -1
- package/dist/evaluator/dag.js +0 -121
- package/dist/evaluator/dag.js.map +0 -1
- package/dist/evaluator/expr.d.ts +0 -11
- package/dist/evaluator/expr.d.ts.map +0 -1
- package/dist/evaluator/expr.js +0 -1030
- package/dist/evaluator/expr.js.map +0 -1
- package/dist/evaluator/expr.test.d.ts +0 -2
- package/dist/evaluator/expr.test.d.ts.map +0 -1
- package/dist/evaluator/expr.test.js +0 -1235
- package/dist/evaluator/expr.test.js.map +0 -1
- package/dist/evaluator/flow.d.ts +0 -36
- package/dist/evaluator/flow.d.ts.map +0 -1
- package/dist/evaluator/flow.js +0 -390
- package/dist/evaluator/flow.js.map +0 -1
- package/dist/evaluator/flow.test.d.ts +0 -2
- package/dist/evaluator/flow.test.d.ts.map +0 -1
- package/dist/evaluator/flow.test.js +0 -499
- package/dist/evaluator/flow.test.js.map +0 -1
- package/dist/evaluator/index.d.ts +0 -6
- package/dist/evaluator/index.d.ts.map +0 -1
- package/dist/evaluator/index.js +0 -6
- package/dist/evaluator/index.js.map +0 -1
- package/dist/factories.d.ts +0 -22
- package/dist/factories.d.ts.map +0 -1
- package/dist/factories.js +0 -44
- package/dist/factories.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.test.d.ts +0 -2
- package/dist/index.test.d.ts.map +0 -1
- package/dist/index.test.js +0 -14
- package/dist/index.test.js.map +0 -1
- package/dist/schema/action.d.ts +0 -14
- package/dist/schema/action.d.ts.map +0 -1
- package/dist/schema/action.js +0 -30
- package/dist/schema/action.js.map +0 -1
- package/dist/schema/common.d.ts +0 -37
- package/dist/schema/common.d.ts.map +0 -1
- package/dist/schema/common.js +0 -20
- package/dist/schema/common.js.map +0 -1
- package/dist/schema/computed.d.ts +0 -23
- package/dist/schema/computed.d.ts.map +0 -1
- package/dist/schema/computed.js +0 -34
- package/dist/schema/computed.js.map +0 -1
- package/dist/schema/defaults.d.ts +0 -12
- package/dist/schema/defaults.d.ts.map +0 -1
- package/dist/schema/defaults.js +0 -19
- package/dist/schema/defaults.js.map +0 -1
- package/dist/schema/domain.d.ts +0 -50
- package/dist/schema/domain.d.ts.map +0 -1
- package/dist/schema/domain.js +0 -60
- package/dist/schema/domain.js.map +0 -1
- package/dist/schema/expr.d.ts +0 -483
- package/dist/schema/expr.d.ts.map +0 -1
- package/dist/schema/expr.js +0 -445
- package/dist/schema/expr.js.map +0 -1
- package/dist/schema/field.d.ts +0 -48
- package/dist/schema/field.d.ts.map +0 -1
- package/dist/schema/field.js +0 -31
- package/dist/schema/field.js.map +0 -1
- package/dist/schema/flow.d.ts +0 -103
- package/dist/schema/flow.d.ts.map +0 -1
- package/dist/schema/flow.js +0 -82
- package/dist/schema/flow.js.map +0 -1
- package/dist/schema/host-context.d.ts +0 -12
- package/dist/schema/host-context.d.ts.map +0 -1
- package/dist/schema/host-context.js +0 -23
- package/dist/schema/host-context.js.map +0 -1
- package/dist/schema/index.d.ts +0 -15
- package/dist/schema/index.d.ts.map +0 -1
- package/dist/schema/index.js +0 -28
- package/dist/schema/index.js.map +0 -1
- package/dist/schema/patch.d.ts +0 -59
- package/dist/schema/patch.d.ts.map +0 -1
- package/dist/schema/patch.js +0 -60
- package/dist/schema/patch.js.map +0 -1
- package/dist/schema/result.d.ts +0 -142
- package/dist/schema/result.d.ts.map +0 -1
- package/dist/schema/result.js +0 -94
- package/dist/schema/result.js.map +0 -1
- package/dist/schema/snapshot.d.ts +0 -153
- package/dist/schema/snapshot.d.ts.map +0 -1
- package/dist/schema/snapshot.js +0 -160
- package/dist/schema/snapshot.js.map +0 -1
- package/dist/schema/trace.d.ts +0 -98
- package/dist/schema/trace.d.ts.map +0 -1
- package/dist/schema/trace.js +0 -90
- package/dist/schema/trace.js.map +0 -1
- package/dist/schema/type-spec.d.ts +0 -34
- package/dist/schema/type-spec.d.ts.map +0 -1
- package/dist/schema/type-spec.js +0 -40
- package/dist/schema/type-spec.js.map +0 -1
- package/dist/utils/canonical.d.ts +0 -37
- package/dist/utils/canonical.d.ts.map +0 -1
- package/dist/utils/canonical.js +0 -122
- package/dist/utils/canonical.js.map +0 -1
- package/dist/utils/canonical.test.d.ts +0 -2
- package/dist/utils/canonical.test.d.ts.map +0 -1
- package/dist/utils/canonical.test.js +0 -183
- package/dist/utils/canonical.test.js.map +0 -1
- package/dist/utils/hash.d.ts +0 -55
- package/dist/utils/hash.d.ts.map +0 -1
- package/dist/utils/hash.js +0 -183
- package/dist/utils/hash.js.map +0 -1
- package/dist/utils/hash.test.d.ts +0 -2
- package/dist/utils/hash.test.d.ts.map +0 -1
- package/dist/utils/hash.test.js +0 -253
- package/dist/utils/hash.test.js.map +0 -1
- package/dist/utils/index.d.ts +0 -4
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js +0 -4
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/path.d.ts +0 -42
- package/dist/utils/path.d.ts.map +0 -1
- package/dist/utils/path.js +0 -170
- package/dist/utils/path.js.map +0 -1
- package/dist/utils/path.test.d.ts +0 -2
- package/dist/utils/path.test.d.ts.map +0 -1
- package/dist/utils/path.test.js +0 -248
- package/dist/utils/path.test.js.map +0 -1
package/dist/core/apply.js
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
import { mergeAtPath, parsePath, setByPath, unsetByPath } from "../utils/path.js";
|
|
2
|
-
import { evaluateComputed } from "../evaluator/computed.js";
|
|
3
|
-
import { isOk, isErr } from "../schema/common.js";
|
|
4
|
-
import { createError } from "../errors.js";
|
|
5
|
-
import { getFieldSpecAtPath, validateValueAgainstFieldSpec } from "./validation-utils.js";
|
|
6
|
-
const PLATFORM_NAMESPACE_PREFIX = "$";
|
|
7
|
-
const PLATFORM_NAMESPACE_SPEC = { type: "object", required: false };
|
|
8
|
-
/**
|
|
9
|
-
* Apply patches to a snapshot
|
|
10
|
-
*
|
|
11
|
-
* This function:
|
|
12
|
-
* 1. Applies all patches to the data
|
|
13
|
-
* 2. Recomputes all computed values
|
|
14
|
-
* 3. Increments the version number
|
|
15
|
-
* 4. Updates the timestamp
|
|
16
|
-
*
|
|
17
|
-
* Note: Version and timestamp are Core-owned - Host MUST NOT modify these directly.
|
|
18
|
-
*/
|
|
19
|
-
export function apply(schema, snapshot, patches, context) {
|
|
20
|
-
// 1. Apply patches to data/system/input (data is default root)
|
|
21
|
-
let newData = snapshot.data;
|
|
22
|
-
let newSystem = snapshot.system;
|
|
23
|
-
let newInput = snapshot.input;
|
|
24
|
-
const validationErrors = [];
|
|
25
|
-
const rootSpec = { type: "object", required: true, fields: schema.state.fields };
|
|
26
|
-
for (const patch of patches) {
|
|
27
|
-
const { root, subPath } = splitPatchPath(patch.path);
|
|
28
|
-
switch (root) {
|
|
29
|
-
case "data":
|
|
30
|
-
{
|
|
31
|
-
const platformNamespace = getPlatformNamespace(subPath);
|
|
32
|
-
if (platformNamespace) {
|
|
33
|
-
if (patch.op !== "unset") {
|
|
34
|
-
// Platform namespaces ($*) are opaque to Core. Only root object shape is validated.
|
|
35
|
-
if (subPath === platformNamespace) {
|
|
36
|
-
const platformRootResult = validateValueAgainstFieldSpec(patch.value, PLATFORM_NAMESPACE_SPEC, {
|
|
37
|
-
allowPartial: patch.op === "merge",
|
|
38
|
-
allowUndefined: false,
|
|
39
|
-
});
|
|
40
|
-
if (!platformRootResult.ok) {
|
|
41
|
-
validationErrors.push(createError("TYPE_MISMATCH", `Invalid patch value at ${patch.path}: ${platformRootResult.message ?? "type mismatch"}`, snapshot.system.currentAction ?? "", patch.path, context.now, { patch }));
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (patch.op === "merge" && !isMergeTargetCompatible(newData, subPath)) {
|
|
46
|
-
validationErrors.push(createError("TYPE_MISMATCH", `Invalid merge target at ${patch.path}: target path must be an object or absent`, snapshot.system.currentAction ?? "", patch.path, context.now, { patch }));
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
newData = applyPatch(newData, patch, subPath);
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
const fieldSpec = getFieldSpecAtPath(rootSpec, subPath);
|
|
54
|
-
if (!fieldSpec) {
|
|
55
|
-
validationErrors.push(createError("PATH_NOT_FOUND", `Unknown patch path: ${patch.path}`, snapshot.system.currentAction ?? "", patch.path, context.now, { patch }));
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
if (patch.op === "merge" && !isMergeTargetCompatible(newData, subPath)) {
|
|
59
|
-
validationErrors.push(createError("TYPE_MISMATCH", `Invalid merge target at ${patch.path}: target path must be an object or absent`, snapshot.system.currentAction ?? "", patch.path, context.now, { patch }));
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
if (patch.op !== "unset") {
|
|
63
|
-
const result = validateValueAgainstFieldSpec(patch.value, fieldSpec, {
|
|
64
|
-
allowPartial: patch.op === "merge",
|
|
65
|
-
allowUndefined: false,
|
|
66
|
-
});
|
|
67
|
-
if (!result.ok) {
|
|
68
|
-
validationErrors.push(createError("TYPE_MISMATCH", `Invalid patch value at ${patch.path}: ${result.message ?? "type mismatch"}`, snapshot.system.currentAction ?? "", patch.path, context.now, { patch }));
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
newData = applyPatch(newData, patch, subPath);
|
|
73
|
-
}
|
|
74
|
-
break;
|
|
75
|
-
case "system":
|
|
76
|
-
newSystem = applyPatch(newSystem, patch, subPath);
|
|
77
|
-
break;
|
|
78
|
-
case "input":
|
|
79
|
-
newInput = applyPatch(newInput, patch, subPath);
|
|
80
|
-
break;
|
|
81
|
-
case "computed":
|
|
82
|
-
case "meta":
|
|
83
|
-
// Computed/meta are Core-owned; ignore external patch attempts.
|
|
84
|
-
break;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (validationErrors.length > 0) {
|
|
88
|
-
const lastError = validationErrors[validationErrors.length - 1];
|
|
89
|
-
newSystem = {
|
|
90
|
-
...newSystem,
|
|
91
|
-
status: "error",
|
|
92
|
-
lastError,
|
|
93
|
-
errors: [...newSystem.errors, ...validationErrors],
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
|
-
// 2. Create intermediate snapshot with new data
|
|
97
|
-
const intermediateSnapshot = {
|
|
98
|
-
...snapshot,
|
|
99
|
-
data: newData,
|
|
100
|
-
system: newSystem,
|
|
101
|
-
input: newInput,
|
|
102
|
-
};
|
|
103
|
-
// 3. Recompute all computed values
|
|
104
|
-
const computedResult = evaluateComputed(schema, intermediateSnapshot);
|
|
105
|
-
let computed = snapshot.computed;
|
|
106
|
-
if (isOk(computedResult)) {
|
|
107
|
-
computed = computedResult.value;
|
|
108
|
-
}
|
|
109
|
-
else if (isErr(computedResult)) {
|
|
110
|
-
const error = computedResult.error;
|
|
111
|
-
computed = {};
|
|
112
|
-
newSystem = {
|
|
113
|
-
...newSystem,
|
|
114
|
-
status: "error",
|
|
115
|
-
lastError: error,
|
|
116
|
-
errors: [...newSystem.errors, error],
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
// 4. Return new snapshot with updated metadata
|
|
120
|
-
return {
|
|
121
|
-
data: newData,
|
|
122
|
-
computed,
|
|
123
|
-
system: newSystem,
|
|
124
|
-
input: newInput,
|
|
125
|
-
meta: {
|
|
126
|
-
...snapshot.meta,
|
|
127
|
-
version: snapshot.meta.version + 1,
|
|
128
|
-
timestamp: context.now,
|
|
129
|
-
randomSeed: context.randomSeed,
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
function splitPatchPath(path) {
|
|
134
|
-
if (path === "system" || path.startsWith("system.")) {
|
|
135
|
-
return { root: "system", subPath: path === "system" ? "" : path.slice(7) };
|
|
136
|
-
}
|
|
137
|
-
if (path === "input" || path.startsWith("input.")) {
|
|
138
|
-
return { root: "input", subPath: path === "input" ? "" : path.slice(6) };
|
|
139
|
-
}
|
|
140
|
-
if (path === "computed" || path.startsWith("computed.")) {
|
|
141
|
-
return { root: "computed", subPath: path === "computed" ? "" : path.slice(9) };
|
|
142
|
-
}
|
|
143
|
-
if (path === "meta" || path.startsWith("meta.")) {
|
|
144
|
-
return { root: "meta", subPath: path === "meta" ? "" : path.slice(5) };
|
|
145
|
-
}
|
|
146
|
-
return { root: "data", subPath: path };
|
|
147
|
-
}
|
|
148
|
-
function getPlatformNamespace(path) {
|
|
149
|
-
if (!path) {
|
|
150
|
-
return null;
|
|
151
|
-
}
|
|
152
|
-
const [segment] = parsePath(path);
|
|
153
|
-
if (segment && segment.startsWith(PLATFORM_NAMESPACE_PREFIX)) {
|
|
154
|
-
return segment;
|
|
155
|
-
}
|
|
156
|
-
return null;
|
|
157
|
-
}
|
|
158
|
-
function isObjectRecord(value) {
|
|
159
|
-
return value !== null && !Array.isArray(value) && typeof value === "object";
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Merge target is valid when:
|
|
163
|
-
* - path is absent (Core will create `{}` chain as needed), or
|
|
164
|
-
* - existing target is an object.
|
|
165
|
-
*
|
|
166
|
-
* Any non-object value on the traversal path is a runtime contract violation.
|
|
167
|
-
*/
|
|
168
|
-
function isMergeTargetCompatible(root, path) {
|
|
169
|
-
if (!path) {
|
|
170
|
-
return isObjectRecord(root);
|
|
171
|
-
}
|
|
172
|
-
const segments = parsePath(path);
|
|
173
|
-
let current = root;
|
|
174
|
-
for (const segment of segments) {
|
|
175
|
-
if (current === undefined) {
|
|
176
|
-
return true;
|
|
177
|
-
}
|
|
178
|
-
if (!isObjectRecord(current)) {
|
|
179
|
-
return false;
|
|
180
|
-
}
|
|
181
|
-
current = current[segment];
|
|
182
|
-
}
|
|
183
|
-
if (current === undefined) {
|
|
184
|
-
return true;
|
|
185
|
-
}
|
|
186
|
-
return isObjectRecord(current);
|
|
187
|
-
}
|
|
188
|
-
function applyPatch(value, patch, subPath) {
|
|
189
|
-
switch (patch.op) {
|
|
190
|
-
case "set":
|
|
191
|
-
return setByPath(value, subPath, patch.value);
|
|
192
|
-
case "unset":
|
|
193
|
-
return unsetByPath(value, subPath);
|
|
194
|
-
case "merge":
|
|
195
|
-
return mergeAtPath(value, subPath, patch.value);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
//# sourceMappingURL=apply.js.map
|
package/dist/core/apply.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/core/apply.ts"],"names":[],"mappings":"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"}
|
package/dist/core/compute.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import type { DomainSchema } from "../schema/domain.js";
|
|
2
|
-
import type { Snapshot } from "../schema/snapshot.js";
|
|
3
|
-
import type { Intent } from "../schema/patch.js";
|
|
4
|
-
import type { ComputeResult } from "../schema/result.js";
|
|
5
|
-
import type { HostContext } from "../schema/host-context.js";
|
|
6
|
-
/**
|
|
7
|
-
* Compute the result of dispatching an intent (synchronous).
|
|
8
|
-
*
|
|
9
|
-
* This is the canonical computation path. Each call is independent -
|
|
10
|
-
* there is no suspended context.
|
|
11
|
-
*/
|
|
12
|
-
export declare function computeSync(schema: DomainSchema, snapshot: Snapshot, intent: Intent, context: HostContext): ComputeResult;
|
|
13
|
-
/**
|
|
14
|
-
* Compute the result of dispatching an intent (async wrapper).
|
|
15
|
-
*/
|
|
16
|
-
export declare function compute(schema: DomainSchema, snapshot: Snapshot, intent: Intent, context: HostContext): Promise<ComputeResult>;
|
|
17
|
-
//# sourceMappingURL=compute.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compute.d.ts","sourceRoot":"","sources":["../../src/core/compute.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,qBAAqB,CAAC;AASxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,GACnB,aAAa,CAkLf;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAExB"}
|
package/dist/core/compute.js
DELETED
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
import { createError } from "../errors.js";
|
|
2
|
-
import { createContext } from "../evaluator/context.js";
|
|
3
|
-
import { evaluateExpr } from "../evaluator/expr.js";
|
|
4
|
-
import { evaluateFlowSync, createFlowState } from "../evaluator/flow.js";
|
|
5
|
-
import { evaluateComputed } from "../evaluator/computed.js";
|
|
6
|
-
import { isOk, isErr } from "../schema/common.js";
|
|
7
|
-
/**
|
|
8
|
-
* Compute the result of dispatching an intent (synchronous).
|
|
9
|
-
*
|
|
10
|
-
* This is the canonical computation path. Each call is independent -
|
|
11
|
-
* there is no suspended context.
|
|
12
|
-
*/
|
|
13
|
-
export function computeSync(schema, snapshot, intent, context) {
|
|
14
|
-
// 0. Ensure computed values are up-to-date before availability check
|
|
15
|
-
let currentSnapshot = snapshot;
|
|
16
|
-
const initialComputedResult = evaluateComputed(schema, snapshot);
|
|
17
|
-
if (isOk(initialComputedResult)) {
|
|
18
|
-
currentSnapshot = {
|
|
19
|
-
...snapshot,
|
|
20
|
-
computed: initialComputedResult.value,
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
// 1. Look up the action
|
|
24
|
-
const action = schema.actions[intent.type];
|
|
25
|
-
if (!action) {
|
|
26
|
-
return createErrorResult(currentSnapshot, intent, "UNKNOWN_ACTION", `Unknown action: ${intent.type}`, context);
|
|
27
|
-
}
|
|
28
|
-
// 1.5 Validate intentId (must be non-empty)
|
|
29
|
-
if (!intent.intentId || intent.intentId === "") {
|
|
30
|
-
return createErrorResult(currentSnapshot, intent, "INVALID_INPUT", "Intent must have a non-empty intentId", context);
|
|
31
|
-
}
|
|
32
|
-
// 1.6 Validate input against action's input schema
|
|
33
|
-
if (action.input) {
|
|
34
|
-
const inputError = validateInput(action.input, intent.input);
|
|
35
|
-
if (inputError) {
|
|
36
|
-
return createErrorResult(currentSnapshot, intent, "INVALID_INPUT", inputError, context);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// 2. Check availability condition
|
|
40
|
-
// Skip availability check on re-entry: when system.currentAction matches
|
|
41
|
-
// the intent type, this is a ContinueCompute cycle (the action was already
|
|
42
|
-
// admitted at StartIntent time). Re-checking against the mutated snapshot
|
|
43
|
-
// would cause self-invalidation (see issue #134).
|
|
44
|
-
//
|
|
45
|
-
// NOTE: This guard uses action type, not intentId. A different intent of
|
|
46
|
-
// the same action type could theoretically bypass availability if
|
|
47
|
-
// currentAction is non-null (e.g. after a LOOP_MAX_ITERATIONS error exit).
|
|
48
|
-
// This is acceptable because:
|
|
49
|
-
// 1. currentAction is only non-null in error/edge states — normal
|
|
50
|
-
// dispatch always resets it to null on completion.
|
|
51
|
-
// 2. Flow state guards (once/if-isNull patterns) provide a second line
|
|
52
|
-
// of defense against duplicate patches/effects per the constitution
|
|
53
|
-
// (§10.5 Re-Entry Unsafe Flow).
|
|
54
|
-
// 3. Scoping to intentId would require adding currentIntentId to
|
|
55
|
-
// SystemState (~30 file changes) for minimal practical benefit.
|
|
56
|
-
// See: https://github.com/manifesto-ai/core/pull/137
|
|
57
|
-
const isReEntry = currentSnapshot.system.currentAction === intent.type;
|
|
58
|
-
if (action.available && !isReEntry) {
|
|
59
|
-
const ctx = createContext(currentSnapshot, schema, intent.type, "available", intent.intentId, context.now);
|
|
60
|
-
const availResult = evaluateExpr(action.available, ctx);
|
|
61
|
-
if (isErr(availResult)) {
|
|
62
|
-
return createErrorResult(currentSnapshot, intent, "INTERNAL_ERROR", `Error evaluating availability: ${availResult.error.message}`, context);
|
|
63
|
-
}
|
|
64
|
-
// Availability must return a boolean (A28: available conditions must be pure)
|
|
65
|
-
if (typeof availResult.value !== "boolean") {
|
|
66
|
-
return createErrorResult(currentSnapshot, intent, "TYPE_MISMATCH", `Availability condition must return boolean, got ${typeof availResult.value}`, context);
|
|
67
|
-
}
|
|
68
|
-
if (!availResult.value) {
|
|
69
|
-
return createErrorResult(currentSnapshot, intent, "ACTION_UNAVAILABLE", `Action "${intent.type}" is not available`, context);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
// 3. Prepare snapshot with input and system state
|
|
73
|
-
const preparedSnapshot = {
|
|
74
|
-
...currentSnapshot,
|
|
75
|
-
input: intent.input,
|
|
76
|
-
system: {
|
|
77
|
-
...currentSnapshot.system,
|
|
78
|
-
status: "computing",
|
|
79
|
-
currentAction: intent.type,
|
|
80
|
-
},
|
|
81
|
-
};
|
|
82
|
-
// 4. Create evaluation context and flow state
|
|
83
|
-
const ctx = createContext(preparedSnapshot, schema, intent.type, `actions.${intent.type}.flow`, intent.intentId, context.now);
|
|
84
|
-
const flowState = createFlowState(preparedSnapshot);
|
|
85
|
-
// 5. Evaluate the flow
|
|
86
|
-
const flowResult = evaluateFlowSync(action.flow, ctx, flowState, `actions.${intent.type}.flow`);
|
|
87
|
-
// 6. Get final snapshot from flow state
|
|
88
|
-
let finalSnapshot = flowResult.state.snapshot;
|
|
89
|
-
// 7. Recompute all computed values
|
|
90
|
-
const computedResult = evaluateComputed(schema, finalSnapshot);
|
|
91
|
-
if (isOk(computedResult)) {
|
|
92
|
-
finalSnapshot = {
|
|
93
|
-
...finalSnapshot,
|
|
94
|
-
computed: computedResult.value,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
// 8. Update system state based on flow result
|
|
98
|
-
const systemStatus = mapFlowStatus(flowResult.state.status);
|
|
99
|
-
const systemState = {
|
|
100
|
-
status: systemStatus === "complete" || systemStatus === "halted" ? "idle" : systemStatus,
|
|
101
|
-
lastError: flowResult.state.error,
|
|
102
|
-
errors: flowResult.state.error
|
|
103
|
-
? [...finalSnapshot.system.errors, flowResult.state.error]
|
|
104
|
-
: finalSnapshot.system.errors,
|
|
105
|
-
pendingRequirements: [...flowResult.state.requirements],
|
|
106
|
-
currentAction: systemStatus === "pending" ? intent.type : null,
|
|
107
|
-
};
|
|
108
|
-
finalSnapshot = {
|
|
109
|
-
...finalSnapshot,
|
|
110
|
-
system: systemState,
|
|
111
|
-
meta: {
|
|
112
|
-
...finalSnapshot.meta,
|
|
113
|
-
version: finalSnapshot.meta.version + 1,
|
|
114
|
-
timestamp: context.now,
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
// 9. Build trace graph
|
|
118
|
-
const trace = {
|
|
119
|
-
root: flowResult.trace,
|
|
120
|
-
nodes: collectTraceNodes(flowResult.trace),
|
|
121
|
-
intent: { type: intent.type, input: intent.input },
|
|
122
|
-
baseVersion: currentSnapshot.meta.version,
|
|
123
|
-
resultVersion: finalSnapshot.meta.version,
|
|
124
|
-
duration: context.durationMs ?? 0,
|
|
125
|
-
terminatedBy: mapFlowStatusToTermination(flowResult.state.status),
|
|
126
|
-
};
|
|
127
|
-
return {
|
|
128
|
-
snapshot: finalSnapshot,
|
|
129
|
-
requirements: [...flowResult.state.requirements],
|
|
130
|
-
trace,
|
|
131
|
-
status: systemStatus,
|
|
132
|
-
};
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Compute the result of dispatching an intent (async wrapper).
|
|
136
|
-
*/
|
|
137
|
-
export async function compute(schema, snapshot, intent, context) {
|
|
138
|
-
return computeSync(schema, snapshot, intent, context);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Map flow status to compute status
|
|
142
|
-
*/
|
|
143
|
-
function mapFlowStatus(status) {
|
|
144
|
-
switch (status) {
|
|
145
|
-
case "running":
|
|
146
|
-
case "complete":
|
|
147
|
-
return "complete";
|
|
148
|
-
case "pending":
|
|
149
|
-
return "pending";
|
|
150
|
-
case "halted":
|
|
151
|
-
return "halted";
|
|
152
|
-
case "error":
|
|
153
|
-
return "error";
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Map flow status to trace termination
|
|
158
|
-
*/
|
|
159
|
-
function mapFlowStatusToTermination(status) {
|
|
160
|
-
switch (status) {
|
|
161
|
-
case "running":
|
|
162
|
-
case "complete":
|
|
163
|
-
return "complete";
|
|
164
|
-
case "pending":
|
|
165
|
-
return "effect";
|
|
166
|
-
case "halted":
|
|
167
|
-
return "halt";
|
|
168
|
-
case "error":
|
|
169
|
-
return "error";
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Collect all trace nodes into a flat map
|
|
174
|
-
*/
|
|
175
|
-
function collectTraceNodes(root) {
|
|
176
|
-
const nodes = {};
|
|
177
|
-
function collect(node) {
|
|
178
|
-
nodes[node.id] = node;
|
|
179
|
-
for (const child of node.children) {
|
|
180
|
-
collect(child);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
collect(root);
|
|
184
|
-
return nodes;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Create an error result
|
|
188
|
-
*/
|
|
189
|
-
function createErrorResult(snapshot, intent, code, message, context) {
|
|
190
|
-
const error = createError(code, message, intent.type, "", context.now);
|
|
191
|
-
const errorSnapshot = {
|
|
192
|
-
...snapshot,
|
|
193
|
-
input: intent.input,
|
|
194
|
-
system: {
|
|
195
|
-
...snapshot.system,
|
|
196
|
-
status: "error",
|
|
197
|
-
lastError: error,
|
|
198
|
-
errors: [...snapshot.system.errors, error],
|
|
199
|
-
currentAction: null,
|
|
200
|
-
},
|
|
201
|
-
meta: {
|
|
202
|
-
...snapshot.meta,
|
|
203
|
-
version: snapshot.meta.version + 1,
|
|
204
|
-
timestamp: context.now,
|
|
205
|
-
},
|
|
206
|
-
};
|
|
207
|
-
const trace = {
|
|
208
|
-
root: {
|
|
209
|
-
id: `trace-error-${intent.intentId}`,
|
|
210
|
-
kind: "error",
|
|
211
|
-
sourcePath: "",
|
|
212
|
-
inputs: {},
|
|
213
|
-
output: error,
|
|
214
|
-
children: [],
|
|
215
|
-
timestamp: context.now,
|
|
216
|
-
},
|
|
217
|
-
nodes: {},
|
|
218
|
-
intent: { type: intent.type, input: intent.input },
|
|
219
|
-
baseVersion: snapshot.meta.version,
|
|
220
|
-
resultVersion: errorSnapshot.meta.version,
|
|
221
|
-
duration: context.durationMs ?? 0,
|
|
222
|
-
terminatedBy: "error",
|
|
223
|
-
};
|
|
224
|
-
return {
|
|
225
|
-
snapshot: errorSnapshot,
|
|
226
|
-
requirements: [],
|
|
227
|
-
trace,
|
|
228
|
-
status: "error",
|
|
229
|
-
};
|
|
230
|
-
}
|
|
231
|
-
/**
|
|
232
|
-
* Validate input against action's input schema
|
|
233
|
-
* Returns error message if invalid, null if valid
|
|
234
|
-
*/
|
|
235
|
-
function validateInput(inputSpec, input) {
|
|
236
|
-
// Check type
|
|
237
|
-
if (inputSpec.type === "object") {
|
|
238
|
-
if (typeof input !== "object" || input === null || Array.isArray(input)) {
|
|
239
|
-
return `Expected object input, got ${typeof input}`;
|
|
240
|
-
}
|
|
241
|
-
const inputObj = input;
|
|
242
|
-
const fields = inputSpec.fields ?? {};
|
|
243
|
-
// Check for required fields
|
|
244
|
-
for (const [fieldName, fieldSpec] of Object.entries(fields)) {
|
|
245
|
-
if (fieldSpec.required && !(fieldName in inputObj)) {
|
|
246
|
-
return `Missing required field: ${fieldName}`;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
// Check for unknown fields
|
|
250
|
-
for (const key of Object.keys(inputObj)) {
|
|
251
|
-
if (!(key in fields)) {
|
|
252
|
-
return `Unknown field: ${key}`;
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
// Recursively validate nested fields
|
|
256
|
-
for (const [fieldName, fieldSpec] of Object.entries(fields)) {
|
|
257
|
-
if (fieldName in inputObj) {
|
|
258
|
-
const error = validateFieldValue(fieldSpec, inputObj[fieldName], fieldName);
|
|
259
|
-
if (error)
|
|
260
|
-
return error;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
return null;
|
|
265
|
-
}
|
|
266
|
-
/**
|
|
267
|
-
* Validate a field value against its spec
|
|
268
|
-
*/
|
|
269
|
-
function validateFieldValue(spec, value, path) {
|
|
270
|
-
if (value === undefined || value === null) {
|
|
271
|
-
if (spec.required) {
|
|
272
|
-
return `Missing required field: ${path}`;
|
|
273
|
-
}
|
|
274
|
-
return null;
|
|
275
|
-
}
|
|
276
|
-
switch (spec.type) {
|
|
277
|
-
case "string":
|
|
278
|
-
if (typeof value !== "string") {
|
|
279
|
-
return `Expected string for ${path}, got ${typeof value}`;
|
|
280
|
-
}
|
|
281
|
-
break;
|
|
282
|
-
case "number":
|
|
283
|
-
if (typeof value !== "number") {
|
|
284
|
-
return `Expected number for ${path}, got ${typeof value}`;
|
|
285
|
-
}
|
|
286
|
-
break;
|
|
287
|
-
case "boolean":
|
|
288
|
-
if (typeof value !== "boolean") {
|
|
289
|
-
return `Expected boolean for ${path}, got ${typeof value}`;
|
|
290
|
-
}
|
|
291
|
-
break;
|
|
292
|
-
case "array":
|
|
293
|
-
if (!Array.isArray(value)) {
|
|
294
|
-
return `Expected array for ${path}, got ${typeof value}`;
|
|
295
|
-
}
|
|
296
|
-
break;
|
|
297
|
-
case "object":
|
|
298
|
-
if (typeof value !== "object" || Array.isArray(value)) {
|
|
299
|
-
return `Expected object for ${path}, got ${typeof value}`;
|
|
300
|
-
}
|
|
301
|
-
break;
|
|
302
|
-
}
|
|
303
|
-
return null;
|
|
304
|
-
}
|
|
305
|
-
//# sourceMappingURL=compute.js.map
|
package/dist/core/compute.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/core/compute.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"compute.test.d.ts","sourceRoot":"","sources":["../../src/core/compute.test.ts"],"names":[],"mappings":""}
|