@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.
Files changed (182) hide show
  1. package/README.md +4 -4
  2. package/dist/index.d.ts +1750 -19
  3. package/dist/index.js +18480 -36
  4. package/dist/index.js.map +1 -1
  5. package/package.json +5 -3
  6. package/dist/__tests__/apply.test.d.ts +0 -2
  7. package/dist/__tests__/apply.test.d.ts.map +0 -1
  8. package/dist/__tests__/apply.test.js +0 -320
  9. package/dist/__tests__/apply.test.js.map +0 -1
  10. package/dist/__tests__/defaults.test.d.ts +0 -2
  11. package/dist/__tests__/defaults.test.d.ts.map +0 -1
  12. package/dist/__tests__/defaults.test.js +0 -74
  13. package/dist/__tests__/defaults.test.js.map +0 -1
  14. package/dist/__tests__/jcs.test.d.ts +0 -2
  15. package/dist/__tests__/jcs.test.d.ts.map +0 -1
  16. package/dist/__tests__/jcs.test.js +0 -45
  17. package/dist/__tests__/jcs.test.js.map +0 -1
  18. package/dist/core/apply.d.ts +0 -17
  19. package/dist/core/apply.d.ts.map +0 -1
  20. package/dist/core/apply.js +0 -198
  21. package/dist/core/apply.js.map +0 -1
  22. package/dist/core/compute.d.ts +0 -17
  23. package/dist/core/compute.d.ts.map +0 -1
  24. package/dist/core/compute.js +0 -305
  25. package/dist/core/compute.js.map +0 -1
  26. package/dist/core/compute.test.d.ts +0 -2
  27. package/dist/core/compute.test.d.ts.map +0 -1
  28. package/dist/core/compute.test.js +0 -950
  29. package/dist/core/compute.test.js.map +0 -1
  30. package/dist/core/explain.d.ts +0 -14
  31. package/dist/core/explain.d.ts.map +0 -1
  32. package/dist/core/explain.js +0 -78
  33. package/dist/core/explain.js.map +0 -1
  34. package/dist/core/index.d.ts +0 -5
  35. package/dist/core/index.d.ts.map +0 -1
  36. package/dist/core/index.js +0 -5
  37. package/dist/core/index.js.map +0 -1
  38. package/dist/core/validate.d.ts +0 -16
  39. package/dist/core/validate.d.ts.map +0 -1
  40. package/dist/core/validate.js +0 -361
  41. package/dist/core/validate.js.map +0 -1
  42. package/dist/core/validate.test.d.ts +0 -2
  43. package/dist/core/validate.test.d.ts.map +0 -1
  44. package/dist/core/validate.test.js +0 -719
  45. package/dist/core/validate.test.js.map +0 -1
  46. package/dist/core/validation-utils.d.ts +0 -20
  47. package/dist/core/validation-utils.d.ts.map +0 -1
  48. package/dist/core/validation-utils.js +0 -351
  49. package/dist/core/validation-utils.js.map +0 -1
  50. package/dist/errors.d.ts +0 -30
  51. package/dist/errors.d.ts.map +0 -1
  52. package/dist/errors.js +0 -51
  53. package/dist/errors.js.map +0 -1
  54. package/dist/evaluator/computed.d.ts +0 -14
  55. package/dist/evaluator/computed.d.ts.map +0 -1
  56. package/dist/evaluator/computed.js +0 -60
  57. package/dist/evaluator/computed.js.map +0 -1
  58. package/dist/evaluator/context.d.ts +0 -62
  59. package/dist/evaluator/context.d.ts.map +0 -1
  60. package/dist/evaluator/context.js +0 -44
  61. package/dist/evaluator/context.js.map +0 -1
  62. package/dist/evaluator/dag.d.ts +0 -30
  63. package/dist/evaluator/dag.d.ts.map +0 -1
  64. package/dist/evaluator/dag.js +0 -121
  65. package/dist/evaluator/dag.js.map +0 -1
  66. package/dist/evaluator/expr.d.ts +0 -11
  67. package/dist/evaluator/expr.d.ts.map +0 -1
  68. package/dist/evaluator/expr.js +0 -1030
  69. package/dist/evaluator/expr.js.map +0 -1
  70. package/dist/evaluator/expr.test.d.ts +0 -2
  71. package/dist/evaluator/expr.test.d.ts.map +0 -1
  72. package/dist/evaluator/expr.test.js +0 -1235
  73. package/dist/evaluator/expr.test.js.map +0 -1
  74. package/dist/evaluator/flow.d.ts +0 -36
  75. package/dist/evaluator/flow.d.ts.map +0 -1
  76. package/dist/evaluator/flow.js +0 -390
  77. package/dist/evaluator/flow.js.map +0 -1
  78. package/dist/evaluator/flow.test.d.ts +0 -2
  79. package/dist/evaluator/flow.test.d.ts.map +0 -1
  80. package/dist/evaluator/flow.test.js +0 -499
  81. package/dist/evaluator/flow.test.js.map +0 -1
  82. package/dist/evaluator/index.d.ts +0 -6
  83. package/dist/evaluator/index.d.ts.map +0 -1
  84. package/dist/evaluator/index.js +0 -6
  85. package/dist/evaluator/index.js.map +0 -1
  86. package/dist/factories.d.ts +0 -22
  87. package/dist/factories.d.ts.map +0 -1
  88. package/dist/factories.js +0 -44
  89. package/dist/factories.js.map +0 -1
  90. package/dist/index.d.ts.map +0 -1
  91. package/dist/index.test.d.ts +0 -2
  92. package/dist/index.test.d.ts.map +0 -1
  93. package/dist/index.test.js +0 -14
  94. package/dist/index.test.js.map +0 -1
  95. package/dist/schema/action.d.ts +0 -14
  96. package/dist/schema/action.d.ts.map +0 -1
  97. package/dist/schema/action.js +0 -30
  98. package/dist/schema/action.js.map +0 -1
  99. package/dist/schema/common.d.ts +0 -37
  100. package/dist/schema/common.d.ts.map +0 -1
  101. package/dist/schema/common.js +0 -20
  102. package/dist/schema/common.js.map +0 -1
  103. package/dist/schema/computed.d.ts +0 -23
  104. package/dist/schema/computed.d.ts.map +0 -1
  105. package/dist/schema/computed.js +0 -34
  106. package/dist/schema/computed.js.map +0 -1
  107. package/dist/schema/defaults.d.ts +0 -12
  108. package/dist/schema/defaults.d.ts.map +0 -1
  109. package/dist/schema/defaults.js +0 -19
  110. package/dist/schema/defaults.js.map +0 -1
  111. package/dist/schema/domain.d.ts +0 -50
  112. package/dist/schema/domain.d.ts.map +0 -1
  113. package/dist/schema/domain.js +0 -60
  114. package/dist/schema/domain.js.map +0 -1
  115. package/dist/schema/expr.d.ts +0 -483
  116. package/dist/schema/expr.d.ts.map +0 -1
  117. package/dist/schema/expr.js +0 -445
  118. package/dist/schema/expr.js.map +0 -1
  119. package/dist/schema/field.d.ts +0 -48
  120. package/dist/schema/field.d.ts.map +0 -1
  121. package/dist/schema/field.js +0 -31
  122. package/dist/schema/field.js.map +0 -1
  123. package/dist/schema/flow.d.ts +0 -103
  124. package/dist/schema/flow.d.ts.map +0 -1
  125. package/dist/schema/flow.js +0 -82
  126. package/dist/schema/flow.js.map +0 -1
  127. package/dist/schema/host-context.d.ts +0 -12
  128. package/dist/schema/host-context.d.ts.map +0 -1
  129. package/dist/schema/host-context.js +0 -23
  130. package/dist/schema/host-context.js.map +0 -1
  131. package/dist/schema/index.d.ts +0 -15
  132. package/dist/schema/index.d.ts.map +0 -1
  133. package/dist/schema/index.js +0 -28
  134. package/dist/schema/index.js.map +0 -1
  135. package/dist/schema/patch.d.ts +0 -59
  136. package/dist/schema/patch.d.ts.map +0 -1
  137. package/dist/schema/patch.js +0 -60
  138. package/dist/schema/patch.js.map +0 -1
  139. package/dist/schema/result.d.ts +0 -142
  140. package/dist/schema/result.d.ts.map +0 -1
  141. package/dist/schema/result.js +0 -94
  142. package/dist/schema/result.js.map +0 -1
  143. package/dist/schema/snapshot.d.ts +0 -153
  144. package/dist/schema/snapshot.d.ts.map +0 -1
  145. package/dist/schema/snapshot.js +0 -160
  146. package/dist/schema/snapshot.js.map +0 -1
  147. package/dist/schema/trace.d.ts +0 -98
  148. package/dist/schema/trace.d.ts.map +0 -1
  149. package/dist/schema/trace.js +0 -90
  150. package/dist/schema/trace.js.map +0 -1
  151. package/dist/schema/type-spec.d.ts +0 -34
  152. package/dist/schema/type-spec.d.ts.map +0 -1
  153. package/dist/schema/type-spec.js +0 -40
  154. package/dist/schema/type-spec.js.map +0 -1
  155. package/dist/utils/canonical.d.ts +0 -37
  156. package/dist/utils/canonical.d.ts.map +0 -1
  157. package/dist/utils/canonical.js +0 -122
  158. package/dist/utils/canonical.js.map +0 -1
  159. package/dist/utils/canonical.test.d.ts +0 -2
  160. package/dist/utils/canonical.test.d.ts.map +0 -1
  161. package/dist/utils/canonical.test.js +0 -183
  162. package/dist/utils/canonical.test.js.map +0 -1
  163. package/dist/utils/hash.d.ts +0 -55
  164. package/dist/utils/hash.d.ts.map +0 -1
  165. package/dist/utils/hash.js +0 -183
  166. package/dist/utils/hash.js.map +0 -1
  167. package/dist/utils/hash.test.d.ts +0 -2
  168. package/dist/utils/hash.test.d.ts.map +0 -1
  169. package/dist/utils/hash.test.js +0 -253
  170. package/dist/utils/hash.test.js.map +0 -1
  171. package/dist/utils/index.d.ts +0 -4
  172. package/dist/utils/index.d.ts.map +0 -1
  173. package/dist/utils/index.js +0 -4
  174. package/dist/utils/index.js.map +0 -1
  175. package/dist/utils/path.d.ts +0 -42
  176. package/dist/utils/path.d.ts.map +0 -1
  177. package/dist/utils/path.js +0 -170
  178. package/dist/utils/path.js.map +0 -1
  179. package/dist/utils/path.test.d.ts +0 -2
  180. package/dist/utils/path.test.d.ts.map +0 -1
  181. package/dist/utils/path.test.js +0 -248
  182. package/dist/utils/path.test.js.map +0 -1
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"apply.js","sourceRoot":"","sources":["../../src/core/apply.ts"],"names":[],"mappings":"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"}
@@ -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"}
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute.js","sourceRoot":"","sources":["../../src/core/compute.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=compute.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compute.test.d.ts","sourceRoot":"","sources":["../../src/core/compute.test.ts"],"names":[],"mappings":""}