taskflow-core 0.1.5 → 0.1.7
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/LICENSE +21 -0
- package/README.md +122 -30
- package/dist/agents.d.ts +20 -0
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +51 -2
- package/dist/agents.js.map +1 -1
- package/dist/deterministic.d.ts +33 -0
- package/dist/deterministic.d.ts.map +1 -0
- package/dist/deterministic.js +56 -0
- package/dist/deterministic.js.map +1 -0
- package/dist/flowir/translate.d.ts.map +1 -1
- package/dist/flowir/translate.js +25 -7
- package/dist/flowir/translate.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/interpolate.d.ts +18 -0
- package/dist/interpolate.d.ts.map +1 -1
- package/dist/interpolate.js +45 -0
- package/dist/interpolate.js.map +1 -1
- package/dist/jsonc.d.ts +30 -0
- package/dist/jsonc.d.ts.map +1 -0
- package/dist/jsonc.js +108 -0
- package/dist/jsonc.js.map +1 -0
- package/dist/library/meta.d.ts +31 -0
- package/dist/library/meta.d.ts.map +1 -0
- package/dist/library/meta.js +154 -0
- package/dist/library/meta.js.map +1 -0
- package/dist/library/search.d.ts +33 -0
- package/dist/library/search.d.ts.map +1 -0
- package/dist/library/search.js +299 -0
- package/dist/library/search.js.map +1 -0
- package/dist/library/types.d.ts +121 -0
- package/dist/library/types.d.ts.map +1 -0
- package/dist/library/types.js +18 -0
- package/dist/library/types.js.map +1 -0
- package/dist/replay.d.ts +75 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/replay.js +25 -0
- package/dist/replay.js.map +1 -0
- package/dist/runner-core.d.ts +54 -4
- package/dist/runner-core.d.ts.map +1 -1
- package/dist/runner-core.js +237 -10
- package/dist/runner-core.js.map +1 -1
- package/dist/runtime.d.ts +8 -11
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +170 -43
- package/dist/runtime.js.map +1 -1
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +13 -0
- package/dist/schema.js.map +1 -1
- package/dist/scorers.d.ts +11 -3
- package/dist/scorers.d.ts.map +1 -1
- package/dist/scorers.js +38 -7
- package/dist/scorers.js.map +1 -1
- package/dist/store.d.ts +80 -0
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +249 -39
- package/dist/store.js.map +1 -1
- package/dist/trace.d.ts +150 -0
- package/dist/trace.d.ts.map +1 -0
- package/dist/trace.js +191 -0
- package/dist/trace.js.map +1 -0
- package/package.json +6 -7
package/dist/flowir/translate.js
CHANGED
|
@@ -21,7 +21,12 @@ import { collectRefs } from "../schema.js";
|
|
|
21
21
|
// never silently drops a field when the DSL grows (a new field is carried
|
|
22
22
|
// automatically through `Phase` indexing).
|
|
23
23
|
// ---------------------------------------------------------------------------
|
|
24
|
+
// NOTE: keep in sync with PhaseSchema (schema.ts). Every Phase field that is
|
|
25
|
+
// NOT represented on FlowIRNode (id/type/when) must appear here, or it is
|
|
26
|
+
// silently dropped on JSON ↔ DSL round-trip (translateTaskflow copies these
|
|
27
|
+
// verbatim into the sidecar). Missing fields here = data loss on round-trip.
|
|
24
28
|
const SIDECAR_PHASE_FIELDS = [
|
|
29
|
+
"agent",
|
|
25
30
|
"task",
|
|
26
31
|
"over",
|
|
27
32
|
"as",
|
|
@@ -30,9 +35,13 @@ const SIDECAR_PHASE_FIELDS = [
|
|
|
30
35
|
"use",
|
|
31
36
|
"def",
|
|
32
37
|
"with",
|
|
38
|
+
"run",
|
|
39
|
+
"input",
|
|
40
|
+
"timeout",
|
|
33
41
|
"until",
|
|
34
42
|
"maxIterations",
|
|
35
43
|
"convergence",
|
|
44
|
+
"reflexion",
|
|
36
45
|
"variants",
|
|
37
46
|
"judge",
|
|
38
47
|
"judgeAgent",
|
|
@@ -42,19 +51,22 @@ const SIDECAR_PHASE_FIELDS = [
|
|
|
42
51
|
"when",
|
|
43
52
|
"retry",
|
|
44
53
|
"output",
|
|
54
|
+
"expect",
|
|
45
55
|
"model",
|
|
46
56
|
"thinking",
|
|
47
57
|
"tools",
|
|
48
58
|
"cwd",
|
|
59
|
+
"final",
|
|
60
|
+
"optional",
|
|
61
|
+
"idempotent",
|
|
62
|
+
"concurrency",
|
|
49
63
|
"context",
|
|
50
64
|
"contextLimit",
|
|
51
65
|
"onBlock",
|
|
52
66
|
"eval",
|
|
67
|
+
"score",
|
|
53
68
|
"cache",
|
|
54
69
|
"shareContext",
|
|
55
|
-
"optional",
|
|
56
|
-
"final",
|
|
57
|
-
"concurrency",
|
|
58
70
|
];
|
|
59
71
|
/** Build the per-phase sidecar record (verbatim copy of non-IR fields). */
|
|
60
72
|
function sidecarForPhase(phase) {
|
|
@@ -92,9 +104,15 @@ export function translateTaskflow(def) {
|
|
|
92
104
|
const usedFallbackHash = true;
|
|
93
105
|
const nodes = def.phases.map((phase) => {
|
|
94
106
|
const refs = collectRefs(phase);
|
|
95
|
-
// declared reads: the {steps.X} refs this phase statically references
|
|
96
|
-
|
|
97
|
-
|
|
107
|
+
// declared reads: the {steps.X} refs this phase statically references,
|
|
108
|
+
// UNION the phase's explicit dependsOn (a declared-but-unobserved edge —
|
|
109
|
+
// e.g. a semantic ordering that no interpolation captures — still counts
|
|
110
|
+
// as a dependency for staleness propagation; observed ∪ declared).
|
|
111
|
+
const reads = new Set(refs.steps.filter((id) => id !== phase.id));
|
|
112
|
+
for (const d of phase.dependsOn ?? [])
|
|
113
|
+
if (d !== phase.id)
|
|
114
|
+
reads.add(d);
|
|
115
|
+
declaredDeps[phase.id] = { reads: Array.from(reads), writes: [phase.id] };
|
|
98
116
|
// Advisory: a {steps.X} ref whose target doesn't exist (mirrors the
|
|
99
117
|
// validation check but non-fatal here — validation is the source of
|
|
100
118
|
// truth; this is a read-only diagnostic).
|
|
@@ -115,7 +133,7 @@ export function translateTaskflow(def) {
|
|
|
115
133
|
return {
|
|
116
134
|
id: phase.id,
|
|
117
135
|
kind: phase.type ?? "agent",
|
|
118
|
-
inject: reads,
|
|
136
|
+
inject: Array.from(reads),
|
|
119
137
|
emits: [phase.id],
|
|
120
138
|
when: phase.when,
|
|
121
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/flowir/translate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,WAAW,EAA6B,MAAM,cAAc,CAAC;AAUtE,8EAA8E;AAC9E,0EAA0E;AAC1E,sEAAsE;AACtE,2EAA2E;AAC3E,0EAA0E;AAC1E,2CAA2C;AAC3C,8EAA8E;AAE9E,MAAM,oBAAoB,GAAG;IAC5B,MAAM;IACN,MAAM;IACN,IAAI;IACJ,UAAU;IACV,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,eAAe;IACf,aAAa;IACb,UAAU;IACV,OAAO;IACP,YAAY;IACZ,MAAM;IACN,WAAW;IACX,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,OAAO;IACP,KAAK;IACL,SAAS;IACT,cAAc;IACd,SAAS;IACT,MAAM;IACN,OAAO;IACP,
|
|
1
|
+
{"version":3,"file":"translate.js","sourceRoot":"","sources":["../../src/flowir/translate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* Adapters inject their own subagent runner via `RuntimeDeps.runTask`.
|
|
10
10
|
*/
|
|
11
11
|
export * from "./schema.ts";
|
|
12
|
+
export * from "./jsonc.ts";
|
|
12
13
|
export * from "./contract.ts";
|
|
13
14
|
export * from "./scorers.ts";
|
|
14
15
|
export * from "./scorer-runtime.ts";
|
|
@@ -25,7 +26,13 @@ export * from "./context-store.ts";
|
|
|
25
26
|
export * from "./compile.ts";
|
|
26
27
|
export * from "./store.ts";
|
|
27
28
|
export * from "./agents.ts";
|
|
29
|
+
export * from "./library/types.ts";
|
|
30
|
+
export * from "./library/meta.ts";
|
|
31
|
+
export * from "./library/search.ts";
|
|
28
32
|
export * from "./runner-core.ts";
|
|
29
33
|
export * from "./host/runner-types.ts";
|
|
30
34
|
export * from "./flowir/index.ts";
|
|
35
|
+
export * from "./trace.ts";
|
|
36
|
+
export * from "./deterministic.ts";
|
|
37
|
+
export * from "./replay.ts";
|
|
31
38
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAK7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAK7B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* Adapters inject their own subagent runner via `RuntimeDeps.runTask`.
|
|
10
10
|
*/
|
|
11
11
|
export * from "./schema.js";
|
|
12
|
+
export * from "./jsonc.js";
|
|
12
13
|
export * from "./contract.js";
|
|
13
14
|
export * from "./scorers.js";
|
|
14
15
|
export * from "./scorer-runtime.js";
|
|
@@ -29,7 +30,13 @@ export * from "./compile.js";
|
|
|
29
30
|
// spawns it directly by file path.
|
|
30
31
|
export * from "./store.js";
|
|
31
32
|
export * from "./agents.js";
|
|
33
|
+
export * from "./library/types.js";
|
|
34
|
+
export * from "./library/meta.js";
|
|
35
|
+
export * from "./library/search.js";
|
|
32
36
|
export * from "./runner-core.js";
|
|
33
37
|
export * from "./host/runner-types.js";
|
|
34
38
|
export * from "./flowir/index.js";
|
|
39
|
+
export * from "./trace.js";
|
|
40
|
+
export * from "./deterministic.js";
|
|
41
|
+
export * from "./replay.js";
|
|
35
42
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,mCAAmC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,iFAAiF;AACjF,+EAA+E;AAC/E,iFAAiF;AACjF,mCAAmC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
|
package/dist/interpolate.d.ts
CHANGED
|
@@ -41,6 +41,24 @@ export interface InterpolationResult {
|
|
|
41
41
|
}
|
|
42
42
|
export declare function interpolate(template: string | null | undefined, ctx: InterpolationContext): InterpolationResult;
|
|
43
43
|
export declare function safeParse(text: string): unknown;
|
|
44
|
+
/**
|
|
45
|
+
* Strict JSON parse for files the USER authored or pointed at (as opposed to
|
|
46
|
+
* `safeParse`, which is deliberately lenient for LLM/subagent output).
|
|
47
|
+
*
|
|
48
|
+
* Unlike `safeParse`, this THROWS on malformed input and preserves the original
|
|
49
|
+
* `SyntaxError` — V8's message carries the offending byte position and, since
|
|
50
|
+
* Node 17, a `lineNumber`/`columnNumber` pair. File loaders surface that to
|
|
51
|
+
* the user so they can fix a stray bare newline (or similar) in seconds
|
|
52
|
+
* instead of chasing a phantom "file not found".
|
|
53
|
+
*
|
|
54
|
+
* When `allowFence` is set (used by `defineFile`, which may point at a markdown
|
|
55
|
+
* draft wrapping the JSON in a ```json block), a fenced block is tried if the
|
|
56
|
+
* whole-document parse fails — but the *underlying* parse error is still
|
|
57
|
+
* thrown if no block parses, so the position is never lost.
|
|
58
|
+
*/
|
|
59
|
+
export declare function parseStrict(text: string, opts?: {
|
|
60
|
+
allowFence?: boolean;
|
|
61
|
+
}): unknown;
|
|
44
62
|
/** Coerce a parsed value into an array for map fan-out. */
|
|
45
63
|
export declare function coerceArray(value: unknown): unknown[] | null;
|
|
46
64
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolate.d.ts","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;8EAG0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;oDAIgD;IAChD,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAID,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,WAAW,CAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,GAAG,EAAE,oBAAoB,GACvB,mBAAmB,CAarB;AA0FD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiE/C;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,CAU5D;AA8ND;;;;GAIG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,oBAAoB,GACvB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAWpC;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAElF"}
|
|
1
|
+
{"version":3,"file":"interpolate.d.ts","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC1D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC;;;8EAG0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;oDAIgD;IAChD,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B;AAID,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,WAAW,CAC1B,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACnC,GAAG,EAAE,oBAAoB,GACvB,mBAAmB,CAarB;AA0FD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAiE/C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAyBlF;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,EAAE,GAAG,IAAI,CAU5D;AA8ND;;;;GAIG;AACH,wBAAgB,oBAAoB,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,oBAAoB,GACvB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAWpC;AAED,qEAAqE;AACrE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAElF"}
|
package/dist/interpolate.js
CHANGED
|
@@ -182,6 +182,51 @@ export function safeParse(text) {
|
|
|
182
182
|
}
|
|
183
183
|
return undefined;
|
|
184
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Strict JSON parse for files the USER authored or pointed at (as opposed to
|
|
187
|
+
* `safeParse`, which is deliberately lenient for LLM/subagent output).
|
|
188
|
+
*
|
|
189
|
+
* Unlike `safeParse`, this THROWS on malformed input and preserves the original
|
|
190
|
+
* `SyntaxError` — V8's message carries the offending byte position and, since
|
|
191
|
+
* Node 17, a `lineNumber`/`columnNumber` pair. File loaders surface that to
|
|
192
|
+
* the user so they can fix a stray bare newline (or similar) in seconds
|
|
193
|
+
* instead of chasing a phantom "file not found".
|
|
194
|
+
*
|
|
195
|
+
* When `allowFence` is set (used by `defineFile`, which may point at a markdown
|
|
196
|
+
* draft wrapping the JSON in a ```json block), a fenced block is tried if the
|
|
197
|
+
* whole-document parse fails — but the *underlying* parse error is still
|
|
198
|
+
* thrown if no block parses, so the position is never lost.
|
|
199
|
+
*/
|
|
200
|
+
export function parseStrict(text, opts) {
|
|
201
|
+
const trimmed = text.trim();
|
|
202
|
+
if (!trimmed)
|
|
203
|
+
throw new SyntaxError("Cannot parse an empty document.");
|
|
204
|
+
// Keep the FIRST SyntaxError we see — it points at the real problem in the
|
|
205
|
+
// most natural location (whole-document first, then each fence body).
|
|
206
|
+
let firstError;
|
|
207
|
+
try {
|
|
208
|
+
return JSON.parse(trimmed);
|
|
209
|
+
}
|
|
210
|
+
catch (e) {
|
|
211
|
+
firstError = e;
|
|
212
|
+
if (!opts?.allowFence)
|
|
213
|
+
throw e;
|
|
214
|
+
}
|
|
215
|
+
// Same fence regex as safeParse (see comment there for ReDoS safety).
|
|
216
|
+
const fenceRe = /```([^\n`]*)\r?\n([\s\S]*?)```/g;
|
|
217
|
+
let fm;
|
|
218
|
+
while ((fm = fenceRe.exec(trimmed)) !== null) {
|
|
219
|
+
if (fm[1].trim().toLowerCase() === "json") {
|
|
220
|
+
try {
|
|
221
|
+
return JSON.parse(fm[2].trim());
|
|
222
|
+
}
|
|
223
|
+
catch (e) {
|
|
224
|
+
firstError ??= e;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
throw firstError;
|
|
229
|
+
}
|
|
185
230
|
/** Coerce a parsed value into an array for map fan-out. */
|
|
186
231
|
export function coerceArray(value) {
|
|
187
232
|
if (Array.isArray(value))
|
package/dist/interpolate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interpolate.js","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAqBH,MAAM,WAAW,GAAG,4CAA4C,CAAC;AAOjE,MAAM,UAAU,WAAW,CAC1B,QAAmC,EACnC,GAAyB;IAEzB,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAChF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC1B,CAAC;AAED;;;;kEAIkE;AAClE,SAAS,WAAW,CAAC,IAAY,EAAE,GAAyB;IAC3D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,SAAS;QAAE,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,GAAyB;IAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEtB,kBAAkB;IAClB,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,cAAc,IAAI,SAAS,CAAC;QAClE,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,kEAAkE;IAClE,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;QAC1B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;QACvC,OAAO,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC;IACnC,CAAC;IAED,SAAS;IACT,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,gEAAgE;IAChE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxB,wEAAwE;YACxE,mEAAmE;YACnE,sEAAsE;YACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,SAAS,CAAC;YACvC,OAAO,IAAI,CAAC,MAAM,CAAC;QACpB,CAAC;QACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,qDAAqD;IACrD,IAAI,GAAG,CAAC,MAAM,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,SAAS,GAAG,CAAC,GAAY,EAAE,KAAe;IACzC,IAAI,GAAG,GAAY,GAAG,CAAC;IACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACxD,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC;QAC9C,GAAG,GAAI,GAA+B,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,eAAe;IACf,IAAI,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO;IACR,CAAC;IACD,oEAAoE;IACpE,2EAA2E;IAC3E,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,OAAO,GAAG,iCAAiC,CAAC;IAClD,MAAM,MAAM,GAAqC,EAAE,CAAC;IACpD,IAAI,EAA0B,CAAC;IAC/B,OAAO,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;IACzG,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACJ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACR,4BAA4B;QAC7B,CAAC;IACF,CAAC;IACD,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GACV,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACxF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC;gBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;YAAC,MAAM,CAAC;gBACR,OAAO;YACR,CAAC;QACF,CAAC;IACF,CAAC;IACD,yEAAyE;IACzE,yDAAyD;IACzD,2EAA2E;IAC3E,yEAAyE;IACzE,yCAAyC;IACzC,EAAE;IACF,oEAAoE;IACpE,qEAAqE;IACrE,yEAAyE;IACzE,+BAA+B;IAC/B,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,IAAI,CACX,0FAA0F;YACzF,0DAA0D;YAC1D,sFAAsF;YACtF,iCAAiC,CAClC,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,WAAW,CAAC,KAAc;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,iDAAiD;QACjD,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC;YACpE,MAAM,CAAC,GAAI,KAAiC,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AA4BD,MAAM,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,SAAS,QAAQ,CAAC,KAAa;IAC9B,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YACzD,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QACD,8BAA8B;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAClC,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3D,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;YACZ,SAAS;QACV,CAAC;QACD,gBAAgB;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;YAC5B,6EAA6E;YAC7E,wEAAwE;YACxE,gEAAgE;YAChE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACd,IAAI,GAAG,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACd,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpC,GAAG,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpB,CAAC,IAAI,CAAC,CAAC;gBACR,CAAC;qBAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC3B,MAAM;gBACP,CAAC;qBAAM,CAAC;oBACP,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC,EAAE,CAAC;gBACL,CAAC;YACF,CAAC;YACD,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAChC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACV,SAAS;QACV,CAAC;QACD,8BAA8B;QAC9B,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,EAAE,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;YACf,SAAS;QACV,CAAC;QACD,SAAS;QACT,MAAM,QAAQ,GAAG,mCAAmC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,IAAI,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChD,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACxB,SAAS;QACV,CAAC;QACD,6DAA6D;QAC7D,MAAM,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAI,IAAI,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC/C,IAAI,CAAC,KAAK,OAAO;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;iBACtD,IAAI,CAAC,KAAK,MAAM;gBAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;;gBAC3C,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YACd,SAAS;QACV,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,SAAS,CAAC,CAAU;IAC5B,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,MAAM,CAAC,CAAU;IACzB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChD,IAAI,OAAO,CAAC,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACtE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,OAAO,CAAC,CAAU,EAAE,EAAU,EAAE,CAAU;IAClD,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,QAAQ,EAAE,EAAE,CAAC;YACZ,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC1B,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvB,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACvB,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,KAAK,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACF,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,EAAE,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1D,QAAQ,EAAE,EAAE,CAAC;QACZ,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QACzB,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU;IACP,GAAG,GAAG,CAAC,CAAC;IACC,IAAI,CAAQ;IACZ,GAAG,CAAuB;IAC3C,YAAY,IAAW,EAAE,GAAyB;QACjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC;IAED,KAAK;QACJ,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC;IACV,CAAC;IACO,IAAI;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IACO,GAAG,CAAC,EAAU;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACO,OAAO;QACd,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACO,QAAQ;QACf,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACO,QAAQ;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;IACO,eAAe;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,IAAI,CAAC,GAAG,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IACO,YAAY;QACnB,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;YACjD,OAAO,CAAC,CAAC;QACV,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACb,KAAK,KAAK,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACvB,KAAK,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,KAAK,MAAM,CAAC,CAAC,OAAO,IAAI,CAAC;YACzB,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,wBAAyB,CAAmB,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;IACF,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CACnC,IAAY,EACZ,GAAyB;IAEzB,MAAM,OAAO,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACrC,IAAI,CAAC;QACJ,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3E,CAAC;AACF,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,GAAyB;IACxE,OAAO,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"interpolate.js","sourceRoot":"","sources":["../src/interpolate.ts"],"names":[],"mappings":"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"}
|
package/dist/jsonc.d.ts
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zero-dependency JSONC (JSON with Comments) strip + parse.
|
|
3
|
+
*
|
|
4
|
+
* Flow definition files are hand-authored, and authors want to annotate them
|
|
5
|
+
* with `//` line comments and `/* block */` comments just like jsonc/JSON5.
|
|
6
|
+
* Standard `JSON.parse` rejects comments outright. This module strips comments
|
|
7
|
+
* (only those OUTSIDE string literals) and trailing commas before parsing, so
|
|
8
|
+
* a flow `.json` file may legally contain comments.
|
|
9
|
+
*
|
|
10
|
+
* Scope: this is used ONLY for user-authored flow definition files
|
|
11
|
+
* (readFlowFile). It must NOT be used to parse LLM/subagent output — that path
|
|
12
|
+
* (safeParse) stays strict by design, since model output is untrusted and we
|
|
13
|
+
* want structural failures to surface.
|
|
14
|
+
*
|
|
15
|
+
* The algorithm is a single linear scan that tracks whether the cursor is
|
|
16
|
+
* inside a string literal (respecting `\"` escapes). Comments are replaced
|
|
17
|
+
* with spaces so that line/column numbers in any error message stay aligned
|
|
18
|
+
* with the original source. Trailing commas before a closing brace/bracket
|
|
19
|
+
* (like `{"a": 1,}` or `[1, 2,]`) are also removed — a common hand-editing
|
|
20
|
+
* convenience that JSON.parse rejects.
|
|
21
|
+
*/
|
|
22
|
+
/** Strip JSONC comments (// line and block) and trailing commas. Exported for testing. */
|
|
23
|
+
export declare function stripJsonComments(input: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Parse a JSONC string (JSON with comments and trailing commas allowed) into a
|
|
26
|
+
* value of type T. Throws the same SyntaxError `JSON.parse` would throw for any
|
|
27
|
+
* other structural problem, so callers can wrap it in try/catch as usual.
|
|
28
|
+
*/
|
|
29
|
+
export declare function parseJsonc<T = unknown>(input: string): T;
|
|
30
|
+
//# sourceMappingURL=jsonc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../src/jsonc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA6EvD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,CAExD"}
|
package/dist/jsonc.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zero-dependency JSONC (JSON with Comments) strip + parse.
|
|
3
|
+
*
|
|
4
|
+
* Flow definition files are hand-authored, and authors want to annotate them
|
|
5
|
+
* with `//` line comments and `/* block */` comments just like jsonc/JSON5.
|
|
6
|
+
* Standard `JSON.parse` rejects comments outright. This module strips comments
|
|
7
|
+
* (only those OUTSIDE string literals) and trailing commas before parsing, so
|
|
8
|
+
* a flow `.json` file may legally contain comments.
|
|
9
|
+
*
|
|
10
|
+
* Scope: this is used ONLY for user-authored flow definition files
|
|
11
|
+
* (readFlowFile). It must NOT be used to parse LLM/subagent output — that path
|
|
12
|
+
* (safeParse) stays strict by design, since model output is untrusted and we
|
|
13
|
+
* want structural failures to surface.
|
|
14
|
+
*
|
|
15
|
+
* The algorithm is a single linear scan that tracks whether the cursor is
|
|
16
|
+
* inside a string literal (respecting `\"` escapes). Comments are replaced
|
|
17
|
+
* with spaces so that line/column numbers in any error message stay aligned
|
|
18
|
+
* with the original source. Trailing commas before a closing brace/bracket
|
|
19
|
+
* (like `{"a": 1,}` or `[1, 2,]`) are also removed — a common hand-editing
|
|
20
|
+
* convenience that JSON.parse rejects.
|
|
21
|
+
*/
|
|
22
|
+
/** Strip JSONC comments (// line and block) and trailing commas. Exported for testing. */
|
|
23
|
+
export function stripJsonComments(input) {
|
|
24
|
+
let out = "";
|
|
25
|
+
let i = 0;
|
|
26
|
+
const n = input.length;
|
|
27
|
+
while (i < n) {
|
|
28
|
+
const ch = input[i];
|
|
29
|
+
const next = input[i + 1];
|
|
30
|
+
// String literal — copy verbatim, honoring escape sequences. A `//` or
|
|
31
|
+
// `/*` that appears inside a string is part of the value, not a comment,
|
|
32
|
+
// and a `,` inside a string is not a trailing comma.
|
|
33
|
+
if (ch === '"') {
|
|
34
|
+
out += ch;
|
|
35
|
+
i++;
|
|
36
|
+
while (i < n) {
|
|
37
|
+
const c = input[i];
|
|
38
|
+
if (c === "\\" && i + 1 < n) {
|
|
39
|
+
// Keep the escape char and the escaped char together.
|
|
40
|
+
out += c + input[i + 1];
|
|
41
|
+
i += 2;
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
out += c;
|
|
45
|
+
i++;
|
|
46
|
+
if (c === '"')
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
// Line comment `// ... \n` — drop it (do not emit a space, so line
|
|
52
|
+
// numbers stay aligned with the original source).
|
|
53
|
+
if (ch === "/" && next === "/") {
|
|
54
|
+
while (i < n && input[i] !== "\n")
|
|
55
|
+
i++;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
// Block comment `/* ... */` — replace with a single space so that
|
|
59
|
+
// positions of the surrounding tokens are preserved.
|
|
60
|
+
if (ch === "/" && next === "*") {
|
|
61
|
+
i += 2;
|
|
62
|
+
while (i < n && !(input[i] === "*" && input[i + 1] === "/"))
|
|
63
|
+
i++;
|
|
64
|
+
i += 2; // consume the closing */
|
|
65
|
+
out += " ";
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
// Trailing comma: skip the comma when the next non-whitespace char is
|
|
69
|
+
// a closing brace or bracket. Only checked outside string literals.
|
|
70
|
+
// Newlines between the comma and the closer are preserved so that
|
|
71
|
+
// line numbers stay aligned with the original source.
|
|
72
|
+
if (ch === ",") {
|
|
73
|
+
let j = i + 1;
|
|
74
|
+
let sawNewline = false;
|
|
75
|
+
while (j < n) {
|
|
76
|
+
const c = input[j];
|
|
77
|
+
if (c === " " || c === "\t" || c === "\r") {
|
|
78
|
+
j++;
|
|
79
|
+
}
|
|
80
|
+
else if (c === "\n") {
|
|
81
|
+
sawNewline = true;
|
|
82
|
+
j++;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (j < n && (input[j] === "}" || input[j] === "]")) {
|
|
89
|
+
if (sawNewline)
|
|
90
|
+
out += "\n";
|
|
91
|
+
i = j;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
out += ch;
|
|
96
|
+
i++;
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Parse a JSONC string (JSON with comments and trailing commas allowed) into a
|
|
102
|
+
* value of type T. Throws the same SyntaxError `JSON.parse` would throw for any
|
|
103
|
+
* other structural problem, so callers can wrap it in try/catch as usual.
|
|
104
|
+
*/
|
|
105
|
+
export function parseJsonc(input) {
|
|
106
|
+
return JSON.parse(stripJsonComments(input));
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=jsonc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonc.js","sourceRoot":"","sources":["../src/jsonc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library — auto-derived structural metadata.
|
|
3
|
+
*
|
|
4
|
+
* Computed at save time (zero tokens, deterministic) and re-derived live at
|
|
5
|
+
* search time (RFC §5.2.2 staleness). No embedding logic here — that's Phase 2.
|
|
6
|
+
*
|
|
7
|
+
* Refs: docs/rfc-library-reuse.md §3.2 (phaseSignature), §3.3 (generality).
|
|
8
|
+
*/
|
|
9
|
+
import type { Taskflow } from "../schema.ts";
|
|
10
|
+
import type { FlowMeta } from "./types.ts";
|
|
11
|
+
/** Topological phase-type signature, e.g. "agent→map→gate→reduce".
|
|
12
|
+
* Parallel same-layer phases joined with "+". Uses topoLayers() for
|
|
13
|
+
* deterministic ordering. */
|
|
14
|
+
export declare function computePhaseSignature(def: Taskflow): string;
|
|
15
|
+
export declare function countPhases(def: Taskflow): number;
|
|
16
|
+
/** Distinct agent names referenced across phases (sorted, stable). */
|
|
17
|
+
export declare function extractAgentUsage(def: Taskflow): string[];
|
|
18
|
+
/** generality ∈ [0,1]. RFC §3.3 (v2 formula, A8 fix):
|
|
19
|
+
* uses literalTokenRatio = literalChars/(literalChars+placeholderChars)
|
|
20
|
+
* so verbose-but-parameterized flows aren't structurally penalized. */
|
|
21
|
+
export declare function computeGenerality(def: Taskflow): number;
|
|
22
|
+
/** Build a fresh FlowMeta from a def + optional agent-provided fields.
|
|
23
|
+
* Used at save time. reuseCount starts at 0; version starts at 1. */
|
|
24
|
+
export declare function deriveMeta(def: Taskflow, opts: {
|
|
25
|
+
purpose?: string;
|
|
26
|
+
tags?: string[];
|
|
27
|
+
notes?: string;
|
|
28
|
+
derivedFrom?: string;
|
|
29
|
+
prevMeta?: FlowMeta;
|
|
30
|
+
}): FlowMeta;
|
|
31
|
+
//# sourceMappingURL=meta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../src/library/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;8BAE8B;AAC9B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAM3D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAEjD;AAED,sEAAsE;AACtE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,CAazD;AAkFD;;wEAEwE;AACxE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAYvD;AAED;sEACsE;AACtE,wBAAgB,UAAU,CACzB,GAAG,EAAE,QAAQ,EACb,IAAI,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GACpG,QAAQ,CAsBV"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Library — auto-derived structural metadata.
|
|
3
|
+
*
|
|
4
|
+
* Computed at save time (zero tokens, deterministic) and re-derived live at
|
|
5
|
+
* search time (RFC §5.2.2 staleness). No embedding logic here — that's Phase 2.
|
|
6
|
+
*
|
|
7
|
+
* Refs: docs/rfc-library-reuse.md §3.2 (phaseSignature), §3.3 (generality).
|
|
8
|
+
*/
|
|
9
|
+
import { topoLayers } from "../schema.js";
|
|
10
|
+
/** Topological phase-type signature, e.g. "agent→map→gate→reduce".
|
|
11
|
+
* Parallel same-layer phases joined with "+". Uses topoLayers() for
|
|
12
|
+
* deterministic ordering. */
|
|
13
|
+
export function computePhaseSignature(def) {
|
|
14
|
+
if (!Array.isArray(def.phases) || def.phases.length === 0)
|
|
15
|
+
return "";
|
|
16
|
+
const layers = topoLayers(def.phases);
|
|
17
|
+
return layers
|
|
18
|
+
.map((layer) => layer.map((p) => p.type ?? "agent").join("+"))
|
|
19
|
+
.join("→");
|
|
20
|
+
}
|
|
21
|
+
export function countPhases(def) {
|
|
22
|
+
return Array.isArray(def.phases) ? def.phases.length : 0;
|
|
23
|
+
}
|
|
24
|
+
/** Distinct agent names referenced across phases (sorted, stable). */
|
|
25
|
+
export function extractAgentUsage(def) {
|
|
26
|
+
if (!Array.isArray(def.phases))
|
|
27
|
+
return [];
|
|
28
|
+
const set = new Set();
|
|
29
|
+
for (const p of def.phases) {
|
|
30
|
+
if (typeof p.agent === "string" && p.agent.trim())
|
|
31
|
+
set.add(p.agent.trim());
|
|
32
|
+
// parallel branches
|
|
33
|
+
if (Array.isArray(p.branches)) {
|
|
34
|
+
for (const b of p.branches ?? []) {
|
|
35
|
+
if (b && typeof b.agent === "string" && b.agent.trim())
|
|
36
|
+
set.add(b.agent.trim());
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return Array.from(set).sort();
|
|
41
|
+
}
|
|
42
|
+
const PLACEHOLDER_RE = /\{(args|steps|item|previous|loop|reflexion)(\.[^}]{1,200})?\}/g;
|
|
43
|
+
function accountContent(def) {
|
|
44
|
+
const acc = {
|
|
45
|
+
literalChars: 0,
|
|
46
|
+
placeholderChars: 0,
|
|
47
|
+
placeholderRefs: 0,
|
|
48
|
+
argCount: 0,
|
|
49
|
+
hasDescription: typeof def.description === "string" && def.description.trim().length > 0,
|
|
50
|
+
productionKnobs: 0,
|
|
51
|
+
};
|
|
52
|
+
// args
|
|
53
|
+
if (def.args && typeof def.args === "object") {
|
|
54
|
+
acc.argCount = Object.keys(def.args).length;
|
|
55
|
+
}
|
|
56
|
+
// production knobs (cap 0.15, each +0.05)
|
|
57
|
+
if (def.budget)
|
|
58
|
+
acc.productionKnobs += 0.05;
|
|
59
|
+
if (def.concurrency && typeof def.concurrency === "number")
|
|
60
|
+
acc.productionKnobs += 0.05;
|
|
61
|
+
let sawRetry = false;
|
|
62
|
+
let sawExpect = false;
|
|
63
|
+
if (Array.isArray(def.phases)) {
|
|
64
|
+
for (const p of def.phases) {
|
|
65
|
+
if (p.retry)
|
|
66
|
+
sawRetry = true;
|
|
67
|
+
if (p.expect)
|
|
68
|
+
sawExpect = true;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (sawRetry)
|
|
72
|
+
acc.productionKnobs += 0.05;
|
|
73
|
+
if (sawExpect)
|
|
74
|
+
acc.productionKnobs += 0.05;
|
|
75
|
+
acc.productionKnobs = Math.min(0.15, acc.productionKnobs);
|
|
76
|
+
// scan phase string fields for literals vs placeholders
|
|
77
|
+
const scan = (s) => {
|
|
78
|
+
if (typeof s !== "string")
|
|
79
|
+
return;
|
|
80
|
+
PLACEHOLDER_RE.lastIndex = 0;
|
|
81
|
+
let m;
|
|
82
|
+
let lastEnd = 0;
|
|
83
|
+
let placeholderCharsThis = 0;
|
|
84
|
+
let placeholderRefsThis = 0;
|
|
85
|
+
while ((m = PLACEHOLDER_RE.exec(s)) !== null) {
|
|
86
|
+
// literal chunk before this placeholder
|
|
87
|
+
acc.literalChars += m.index - lastEnd;
|
|
88
|
+
placeholderCharsThis += m[0].length;
|
|
89
|
+
placeholderRefsThis += 1;
|
|
90
|
+
lastEnd = m.index + m[0].length;
|
|
91
|
+
}
|
|
92
|
+
acc.literalChars += s.length - lastEnd;
|
|
93
|
+
acc.placeholderChars += placeholderCharsThis;
|
|
94
|
+
acc.placeholderRefs += placeholderRefsThis;
|
|
95
|
+
};
|
|
96
|
+
if (Array.isArray(def.phases)) {
|
|
97
|
+
for (const p of def.phases) {
|
|
98
|
+
scan(p.task);
|
|
99
|
+
scan(p.over);
|
|
100
|
+
scan(p.run);
|
|
101
|
+
scan(p.input);
|
|
102
|
+
// parallel branch tasks
|
|
103
|
+
if (Array.isArray(p.branches)) {
|
|
104
|
+
for (const b of p.branches ?? []) {
|
|
105
|
+
scan(b?.task);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return acc;
|
|
111
|
+
}
|
|
112
|
+
/** generality ∈ [0,1]. RFC §3.3 (v2 formula, A8 fix):
|
|
113
|
+
* uses literalTokenRatio = literalChars/(literalChars+placeholderChars)
|
|
114
|
+
* so verbose-but-parameterized flows aren't structurally penalized. */
|
|
115
|
+
export function computeGenerality(def) {
|
|
116
|
+
const a = accountContent(def);
|
|
117
|
+
const totalChars = a.literalChars + a.placeholderChars;
|
|
118
|
+
const literalTokenRatio = totalChars > 0 ? a.literalChars / totalChars : 1;
|
|
119
|
+
let g = 0.4 * (1 - literalTokenRatio) +
|
|
120
|
+
0.3 * Math.min(1, a.argCount / 3) +
|
|
121
|
+
0.3 * (a.hasDescription ? 0.3 : 0) +
|
|
122
|
+
a.productionKnobs;
|
|
123
|
+
if (g < 0)
|
|
124
|
+
g = 0;
|
|
125
|
+
if (g > 1)
|
|
126
|
+
g = 1;
|
|
127
|
+
return Math.round(g * 100) / 100;
|
|
128
|
+
}
|
|
129
|
+
/** Build a fresh FlowMeta from a def + optional agent-provided fields.
|
|
130
|
+
* Used at save time. reuseCount starts at 0; version starts at 1. */
|
|
131
|
+
export function deriveMeta(def, opts) {
|
|
132
|
+
const now = Date.now();
|
|
133
|
+
const prev = opts.prevMeta;
|
|
134
|
+
return {
|
|
135
|
+
schemaVersion: 1,
|
|
136
|
+
purpose: opts.purpose,
|
|
137
|
+
tags: opts.tags,
|
|
138
|
+
notes: opts.notes,
|
|
139
|
+
phaseSignature: computePhaseSignature(def),
|
|
140
|
+
phaseCount: countPhases(def),
|
|
141
|
+
agentUsage: extractAgentUsage(def),
|
|
142
|
+
generality: computeGenerality(def),
|
|
143
|
+
reuseCount: prev?.reuseCount ?? 0,
|
|
144
|
+
lastUsedAt: prev?.lastUsedAt ?? null,
|
|
145
|
+
createdAt: prev?.createdAt ?? now,
|
|
146
|
+
version: prev ? prev.version + 1 : 1,
|
|
147
|
+
derivedFrom: opts.derivedFrom,
|
|
148
|
+
embedding: prev?.embedding ?? null,
|
|
149
|
+
embeddingModel: prev?.embeddingModel,
|
|
150
|
+
embeddingDim: prev?.embeddingDim,
|
|
151
|
+
embeddedAt: prev?.embeddedAt ?? null,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=meta.js.map
|