gauss-ai 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +489 -0
- package/LICENSE +21 -0
- package/README.md +269 -0
- package/dist/a2a/index.cjs +7 -0
- package/dist/a2a/index.cjs.map +1 -0
- package/dist/a2a/index.d.cts +30 -0
- package/dist/a2a/index.d.ts +30 -0
- package/dist/a2a/index.js +7 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/agent-UIQDSYCE.js +16 -0
- package/dist/agent-UIQDSYCE.js.map +1 -0
- package/dist/agent-builder-8W3mBR-N.d.ts +1075 -0
- package/dist/agent-builder-GEMYdb1p.d.cts +1075 -0
- package/dist/agent-graph-AMQYAWNF.js +1422 -0
- package/dist/agent-graph-AMQYAWNF.js.map +1 -0
- package/dist/ai-sdk-mcp.adapter-SEN6KHNU.js +124 -0
- package/dist/ai-sdk-mcp.adapter-SEN6KHNU.js.map +1 -0
- package/dist/browser/index.js +10 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/bun-runtime.adapter-MQDAJLQM.js +8 -0
- package/dist/bun-runtime.adapter-MQDAJLQM.js.map +1 -0
- package/dist/bun-runtime.adapter-XKOUXVAK.cjs +8 -0
- package/dist/bun-runtime.adapter-XKOUXVAK.cjs.map +1 -0
- package/dist/chat-A3XMRPJL.js +129 -0
- package/dist/chat-A3XMRPJL.js.map +1 -0
- package/dist/chunk-2ZRU47NC.js +91 -0
- package/dist/chunk-2ZRU47NC.js.map +1 -0
- package/dist/chunk-3LD3JTH4.cjs +18 -0
- package/dist/chunk-3LD3JTH4.cjs.map +1 -0
- package/dist/chunk-5FE5TG2W.cjs +16 -0
- package/dist/chunk-5FE5TG2W.cjs.map +1 -0
- package/dist/chunk-6XF673YC.cjs +436 -0
- package/dist/chunk-6XF673YC.cjs.map +1 -0
- package/dist/chunk-7CKWZJNS.js +230 -0
- package/dist/chunk-7CKWZJNS.js.map +1 -0
- package/dist/chunk-BI2G665F.js +4588 -0
- package/dist/chunk-BI2G665F.js.map +1 -0
- package/dist/chunk-C5NLWJS2.js +139 -0
- package/dist/chunk-C5NLWJS2.js.map +1 -0
- package/dist/chunk-CJZ66SU3.cjs +4321 -0
- package/dist/chunk-CJZ66SU3.cjs.map +1 -0
- package/dist/chunk-DAMT2CXW.cjs +91 -0
- package/dist/chunk-DAMT2CXW.cjs.map +1 -0
- package/dist/chunk-E7WG3MO5.js +18 -0
- package/dist/chunk-E7WG3MO5.js.map +1 -0
- package/dist/chunk-EFDM6R4J.js +99 -0
- package/dist/chunk-EFDM6R4J.js.map +1 -0
- package/dist/chunk-F7WIPPEO.js +256 -0
- package/dist/chunk-F7WIPPEO.js.map +1 -0
- package/dist/chunk-FAYDE67N.js +6927 -0
- package/dist/chunk-FAYDE67N.js.map +1 -0
- package/dist/chunk-GAE2KKCM.js +21 -0
- package/dist/chunk-GAE2KKCM.js.map +1 -0
- package/dist/chunk-INLNGRXM.cjs +130 -0
- package/dist/chunk-INLNGRXM.cjs.map +1 -0
- package/dist/chunk-JKXKXB5O.js +130 -0
- package/dist/chunk-JKXKXB5O.js.map +1 -0
- package/dist/chunk-K6SAETGP.js +375 -0
- package/dist/chunk-K6SAETGP.js.map +1 -0
- package/dist/chunk-KEASLAYR.js +157 -0
- package/dist/chunk-KEASLAYR.js.map +1 -0
- package/dist/chunk-KKJVNM6O.js +436 -0
- package/dist/chunk-KKJVNM6O.js.map +1 -0
- package/dist/chunk-KYIMVRIM.js +16 -0
- package/dist/chunk-KYIMVRIM.js.map +1 -0
- package/dist/chunk-MB7NXIZD.js +4321 -0
- package/dist/chunk-MB7NXIZD.js.map +1 -0
- package/dist/chunk-MHHDXPGE.js +209 -0
- package/dist/chunk-MHHDXPGE.js.map +1 -0
- package/dist/chunk-NE6JJA5W.js +401 -0
- package/dist/chunk-NE6JJA5W.js.map +1 -0
- package/dist/chunk-PF46XZBF.cjs +6927 -0
- package/dist/chunk-PF46XZBF.cjs.map +1 -0
- package/dist/chunk-PSJIAGDE.cjs +375 -0
- package/dist/chunk-PSJIAGDE.cjs.map +1 -0
- package/dist/chunk-PWOQDXNQ.js +16 -0
- package/dist/chunk-PWOQDXNQ.js.map +1 -0
- package/dist/chunk-QYOMQBBZ.cjs +230 -0
- package/dist/chunk-QYOMQBBZ.cjs.map +1 -0
- package/dist/chunk-UDFXLC4J.cjs +16 -0
- package/dist/chunk-UDFXLC4J.cjs.map +1 -0
- package/dist/chunk-UO4NGXRT.cjs +259 -0
- package/dist/chunk-UO4NGXRT.cjs.map +1 -0
- package/dist/chunk-UPFDFLEW.js +40 -0
- package/dist/chunk-UPFDFLEW.js.map +1 -0
- package/dist/chunk-V55JSQS7.cjs +16 -0
- package/dist/chunk-V55JSQS7.cjs.map +1 -0
- package/dist/chunk-VJADHXZL.cjs +16 -0
- package/dist/chunk-VJADHXZL.cjs.map +1 -0
- package/dist/chunk-VRWD7LCI.js +59 -0
- package/dist/chunk-VRWD7LCI.js.map +1 -0
- package/dist/chunk-WKKQ443C.js +487 -0
- package/dist/chunk-WKKQ443C.js.map +1 -0
- package/dist/chunk-X2GHUHAF.js +436 -0
- package/dist/chunk-X2GHUHAF.js.map +1 -0
- package/dist/chunk-XLGW3XNI.cjs +256 -0
- package/dist/chunk-XLGW3XNI.cjs.map +1 -0
- package/dist/chunk-ZFJKX4DP.js +16 -0
- package/dist/chunk-ZFJKX4DP.js.map +1 -0
- package/dist/chunk-ZM2OEWM2.js +259 -0
- package/dist/chunk-ZM2OEWM2.js.map +1 -0
- package/dist/chunk-ZNAIP2XV.js +16 -0
- package/dist/chunk-ZNAIP2XV.js.map +1 -0
- package/dist/chunk-ZYFAZYSL.js +42 -0
- package/dist/chunk-ZYFAZYSL.js.map +1 -0
- package/dist/cli/index.js +421 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config-4MHT6TQW.js +153 -0
- package/dist/config-4MHT6TQW.js.map +1 -0
- package/dist/config-REERQFK4.cjs +153 -0
- package/dist/config-REERQFK4.cjs.map +1 -0
- package/dist/cost-tracker-JLOU7IZJ.js +7 -0
- package/dist/cost-tracker-JLOU7IZJ.js.map +1 -0
- package/dist/demo-C52GMSYH.js +188 -0
- package/dist/demo-C52GMSYH.js.map +1 -0
- package/dist/deno/index.js +306 -0
- package/dist/deno/index.js.map +1 -0
- package/dist/deno-runtime.adapter-F744HY7K.js +8 -0
- package/dist/deno-runtime.adapter-F744HY7K.js.map +1 -0
- package/dist/deno-runtime.adapter-RFEVNSCV.cjs +8 -0
- package/dist/deno-runtime.adapter-RFEVNSCV.cjs.map +1 -0
- package/dist/dev-D7DDVDA4.js +218 -0
- package/dist/dev-D7DDVDA4.js.map +1 -0
- package/dist/edge/index.js +10 -0
- package/dist/edge/index.js.map +1 -0
- package/dist/edge-runtime.adapter-UQCW2F7X.js +8 -0
- package/dist/edge-runtime.adapter-UQCW2F7X.js.map +1 -0
- package/dist/edge-runtime.adapter-YED6F3AY.cjs +8 -0
- package/dist/edge-runtime.adapter-YED6F3AY.cjs.map +1 -0
- package/dist/graph-MGFAQZ5W.js +50 -0
- package/dist/graph-MGFAQZ5W.js.map +1 -0
- package/dist/graph-visualization-HBSVQXJK.js +9 -0
- package/dist/graph-visualization-HBSVQXJK.js.map +1 -0
- package/dist/index-BRgqNnh3.d.cts +982 -0
- package/dist/index-CZxpYUxZ.d.ts +982 -0
- package/dist/index.cjs +14789 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +10275 -0
- package/dist/index.d.ts +10275 -0
- package/dist/index.js +14789 -0
- package/dist/index.js.map +1 -0
- package/dist/init-CFWXTQ35.js +133 -0
- package/dist/init-CFWXTQ35.js.map +1 -0
- package/dist/llm-VWO4MC7J.cjs +17 -0
- package/dist/llm-VWO4MC7J.cjs.map +1 -0
- package/dist/llm-XLXVSPBI.js +17 -0
- package/dist/llm-XLXVSPBI.js.map +1 -0
- package/dist/logging-WRAK5ZXT.js +33 -0
- package/dist/logging-WRAK5ZXT.js.map +1 -0
- package/dist/metrics-FAHZVVD4.js +47 -0
- package/dist/metrics-FAHZVVD4.js.map +1 -0
- package/dist/node/index.cjs +280 -0
- package/dist/node/index.cjs.map +1 -0
- package/dist/node/index.d.cts +51 -0
- package/dist/node/index.d.ts +51 -0
- package/dist/node/index.js +280 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node-runtime.adapter-5L7PJ6W2.js +8 -0
- package/dist/node-runtime.adapter-5L7PJ6W2.js.map +1 -0
- package/dist/node-runtime.adapter-CCRZVGHB.cjs +8 -0
- package/dist/node-runtime.adapter-CCRZVGHB.cjs.map +1 -0
- package/dist/persist-usage-WTBTCWEF.js +7 -0
- package/dist/persist-usage-WTBTCWEF.js.map +1 -0
- package/dist/plugin-RCPBWUUA.js +207 -0
- package/dist/plugin-RCPBWUUA.js.map +1 -0
- package/dist/plugins/index.cjs +75 -0
- package/dist/plugins/index.cjs.map +1 -0
- package/dist/plugins/index.d.cts +8 -0
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.js +75 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins-L4ING3CX.js +4625 -0
- package/dist/plugins-L4ING3CX.js.map +1 -0
- package/dist/providers/index.cjs +189 -0
- package/dist/providers/index.cjs.map +1 -0
- package/dist/providers/index.d.cts +168 -0
- package/dist/providers/index.d.ts +168 -0
- package/dist/providers/index.js +189 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers-3RNQ5CKZ.js +59 -0
- package/dist/providers-3RNQ5CKZ.js.map +1 -0
- package/dist/providers-66GPXUGQ.cjs +59 -0
- package/dist/providers-66GPXUGQ.cjs.map +1 -0
- package/dist/repl-K6QN4I2S.js +678 -0
- package/dist/repl-K6QN4I2S.js.map +1 -0
- package/dist/rest/index.cjs +17 -0
- package/dist/rest/index.cjs.map +1 -0
- package/dist/rest/index.d.cts +102 -0
- package/dist/rest/index.d.ts +102 -0
- package/dist/rest/index.js +17 -0
- package/dist/rest/index.js.map +1 -0
- package/dist/runtime-deno.js +15 -0
- package/dist/runtime-deno.js.map +1 -0
- package/dist/runtime-edge.js +15 -0
- package/dist/runtime-edge.js.map +1 -0
- package/dist/runtime-node.js +15 -0
- package/dist/runtime-node.js.map +1 -0
- package/dist/scraping/index.cjs +11 -0
- package/dist/scraping/index.cjs.map +1 -0
- package/dist/scraping/index.d.cts +17 -0
- package/dist/scraping/index.d.ts +17 -0
- package/dist/scraping/index.js +11 -0
- package/dist/scraping/index.js.map +1 -0
- package/dist/semantic-scraping.port-CZWUea88.d.cts +54 -0
- package/dist/semantic-scraping.port-CZWUea88.d.ts +54 -0
- package/dist/server/index.js +166 -0
- package/dist/server/index.js.map +1 -0
- package/dist/testing/index.cjs +25 -0
- package/dist/testing/index.cjs.map +1 -0
- package/dist/testing/index.d.cts +63 -0
- package/dist/testing/index.d.ts +63 -0
- package/dist/testing/index.js +25 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/token-counter.port-CRgxZZGe.d.ts +334 -0
- package/dist/token-counter.port-D7BHMCRR.d.cts +334 -0
- package/dist/tools-BZM33OBZ.js +10 -0
- package/dist/tools-BZM33OBZ.js.map +1 -0
- package/dist/tracing-XA3TEWP4.js +48 -0
- package/dist/tracing-XA3TEWP4.js.map +1 -0
- package/dist/types-CVsP7gFI.d.cts +235 -0
- package/dist/types-CVsP7gFI.d.ts +235 -0
- package/dist/virtual-fs.adapter-BBLS-3AY.d.ts +26 -0
- package/dist/virtual-fs.adapter-nb0CTYOj.d.cts +26 -0
- package/dist/workflow/index.cjs +9 -0
- package/dist/workflow/index.cjs.map +1 -0
- package/dist/workflow/index.d.cts +62 -0
- package/dist/workflow/index.d.ts +62 -0
- package/dist/workflow/index.js +9 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow.port-BaCttxrw.d.cts +153 -0
- package/dist/workflow.port-BaCttxrw.d.ts +153 -0
- package/package.json +230 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// src/cli/persist-usage.ts
|
|
2
|
+
async function persistUsage(tracker) {
|
|
3
|
+
const { appendFileSync, existsSync, mkdirSync } = await import("fs");
|
|
4
|
+
const { homedir } = await import("os");
|
|
5
|
+
const { join } = await import("path");
|
|
6
|
+
const dir = join(homedir(), ".gauss");
|
|
7
|
+
const usagePath = join(dir, "usage.ndjson");
|
|
8
|
+
const records = JSON.parse(tracker.exportUsage());
|
|
9
|
+
if (records.length === 0) return;
|
|
10
|
+
if (!existsSync(dir)) {
|
|
11
|
+
mkdirSync(dir, { recursive: true });
|
|
12
|
+
}
|
|
13
|
+
for (const record of records) {
|
|
14
|
+
appendFileSync(usagePath, JSON.stringify(record) + "\n");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export {
|
|
19
|
+
persistUsage
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=chunk-GAE2KKCM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/persist-usage.ts"],"sourcesContent":["// =============================================================================\n// persistUsage — Append session cost data to ~/.gauss/usage.json\n// =============================================================================\n\nimport type { CostTrackerPort } from \"../ports/cost-tracker.port.js\";\n\nexport async function persistUsage(tracker: CostTrackerPort): Promise<void> {\n const { appendFileSync, existsSync, mkdirSync } = await import(\"node:fs\");\n const { homedir } = await import(\"node:os\");\n const { join } = await import(\"node:path\");\n\n const dir = join(homedir(), \".gauss\");\n const usagePath = join(dir, \"usage.ndjson\");\n\n const records: unknown[] = JSON.parse(tracker.exportUsage());\n if (records.length === 0) return;\n\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n\n for (const record of records) {\n appendFileSync(usagePath, JSON.stringify(record) + '\\n');\n }\n}\n"],"mappings":";AAMA,eAAsB,aAAa,SAAyC;AAC1E,QAAM,EAAE,gBAAgB,YAAY,UAAU,IAAI,MAAM,OAAO,IAAS;AACxE,QAAM,EAAE,QAAQ,IAAI,MAAM,OAAO,IAAS;AAC1C,QAAM,EAAE,KAAK,IAAI,MAAM,OAAO,MAAW;AAEzC,QAAM,MAAM,KAAK,QAAQ,GAAG,QAAQ;AACpC,QAAM,YAAY,KAAK,KAAK,cAAc;AAE1C,QAAM,UAAqB,KAAK,MAAM,QAAQ,YAAY,CAAC;AAC3D,MAAI,QAAQ,WAAW,EAAG;AAE1B,MAAI,CAAC,WAAW,GAAG,GAAG;AACpB,cAAU,KAAK,EAAE,WAAW,KAAK,CAAC;AAAA,EACpC;AAEA,aAAW,UAAU,SAAS;AAC5B,mBAAe,WAAW,KAAK,UAAU,MAAM,IAAI,IAAI;AAAA,EACzD;AACF;","names":[]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _class;// src/domain/workflow.builder.ts
|
|
2
|
+
var WorkflowBuilder = (_class = class {
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
__init() {this.steps = []}
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
constructor(id, name) {;_class.prototype.__init.call(this);
|
|
9
|
+
this.id = id;
|
|
10
|
+
this.workflowName = name;
|
|
11
|
+
}
|
|
12
|
+
step(id, name, execute) {
|
|
13
|
+
this.steps.push({ id, name, execute });
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
parallel(id, name, branches, mergeStrategy) {
|
|
17
|
+
const step = { id, name, type: "parallel", branches, mergeStrategy };
|
|
18
|
+
this.steps.push(step);
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
conditional(id, name, opts) {
|
|
22
|
+
const step = {
|
|
23
|
+
id,
|
|
24
|
+
name,
|
|
25
|
+
type: "conditional",
|
|
26
|
+
condition: opts.condition,
|
|
27
|
+
ifTrue: opts.ifTrue,
|
|
28
|
+
ifFalse: opts.ifFalse
|
|
29
|
+
};
|
|
30
|
+
this.steps.push(step);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
loop(id, name, opts) {
|
|
34
|
+
const step = {
|
|
35
|
+
id,
|
|
36
|
+
name,
|
|
37
|
+
type: "loop",
|
|
38
|
+
body: opts.body,
|
|
39
|
+
condition: opts.condition,
|
|
40
|
+
maxIterations: opts.maxIterations
|
|
41
|
+
};
|
|
42
|
+
this.steps.push(step);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
foreach(id, name, opts) {
|
|
46
|
+
const step = {
|
|
47
|
+
id,
|
|
48
|
+
name,
|
|
49
|
+
type: "foreach",
|
|
50
|
+
iterable: opts.iterable,
|
|
51
|
+
step: opts.step,
|
|
52
|
+
itemKey: opts.itemKey,
|
|
53
|
+
indexKey: opts.indexKey,
|
|
54
|
+
aggregateOutputKey: opts.aggregateOutputKey,
|
|
55
|
+
aggregationMode: opts.aggregationMode,
|
|
56
|
+
maxConcurrency: opts.maxConcurrency,
|
|
57
|
+
maxIterations: opts.maxIterations
|
|
58
|
+
};
|
|
59
|
+
this.steps.push(step);
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
map(id, name, opts) {
|
|
63
|
+
const step = {
|
|
64
|
+
id,
|
|
65
|
+
name,
|
|
66
|
+
type: "map",
|
|
67
|
+
input: opts.input,
|
|
68
|
+
transform: opts.transform,
|
|
69
|
+
outputKey: opts.outputKey,
|
|
70
|
+
itemKey: opts.itemKey,
|
|
71
|
+
indexKey: opts.indexKey,
|
|
72
|
+
filter: opts.filter,
|
|
73
|
+
maxConcurrency: opts.maxConcurrency
|
|
74
|
+
};
|
|
75
|
+
this.steps.push(step);
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
agentStep(id, name, prompt, outputKey) {
|
|
79
|
+
const step = { id, name, type: "agent", prompt, outputKey };
|
|
80
|
+
this.steps.push(step);
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/** Apply retry config to the last added step */
|
|
84
|
+
withRetry(config) {
|
|
85
|
+
const last = this.steps[this.steps.length - 1];
|
|
86
|
+
if (!last) throw new Error("withRetry: no step to apply to");
|
|
87
|
+
last.retry = config;
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
/** Apply rollback to the last added step */
|
|
91
|
+
withRollback(fn) {
|
|
92
|
+
const last = this.steps[this.steps.length - 1];
|
|
93
|
+
if (!last) throw new Error("withRollback: no step to apply to");
|
|
94
|
+
last.rollback = fn;
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
/** Apply condition to the last added step */
|
|
98
|
+
withCondition(fn) {
|
|
99
|
+
const last = this.steps[this.steps.length - 1];
|
|
100
|
+
if (!last) throw new Error("withCondition: no step to apply to");
|
|
101
|
+
last.condition = fn;
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
withTimeout(ms) {
|
|
105
|
+
this.timeoutMs = ms;
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
withInitialContext(ctx) {
|
|
109
|
+
this.initCtx = ctx;
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
build() {
|
|
113
|
+
return {
|
|
114
|
+
id: this.id,
|
|
115
|
+
name: this.workflowName,
|
|
116
|
+
steps: this.steps,
|
|
117
|
+
initialContext: this.initCtx,
|
|
118
|
+
maxDurationMs: this.timeoutMs
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
}, _class);
|
|
122
|
+
function defineWorkflow(id, name) {
|
|
123
|
+
return new WorkflowBuilder(id, name);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
exports.WorkflowBuilder = WorkflowBuilder; exports.defineWorkflow = defineWorkflow;
|
|
130
|
+
//# sourceMappingURL=chunk-INLNGRXM.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/giulioleone/Sviluppo/gauss/gauss-flow/dist/chunk-INLNGRXM.cjs","../src/domain/workflow.builder.ts"],"names":[],"mappings":"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","file":"/Users/giulioleone/Sviluppo/gauss/gauss-flow/dist/chunk-INLNGRXM.cjs","sourcesContent":[null,"// =============================================================================\n// WorkflowBuilder — Fluent DSL for defining workflows\n// =============================================================================\n\nimport type {\n WorkflowStep,\n WorkflowContext,\n WorkflowDefinition,\n AnyStep,\n ParallelStep,\n ConditionalStep,\n LoopStep,\n ForeachStep,\n MapStep,\n AgentStep,\n RetryConfig,\n} from \"./workflow.schema.js\";\n\ntype ConditionFn = (ctx: WorkflowContext) => boolean;\ntype RollbackFn = (ctx: WorkflowContext) => Promise<void>;\ntype PromptFn = (ctx: WorkflowContext) => string;\n\ninterface ConditionalOpts {\n condition: ConditionFn;\n ifTrue: WorkflowStep;\n ifFalse?: WorkflowStep;\n}\n\ninterface LoopOpts {\n body: WorkflowStep;\n condition: ConditionFn;\n maxIterations?: number;\n}\n\ninterface ForeachOpts {\n iterable: string;\n step: WorkflowStep;\n itemKey?: string;\n indexKey?: string;\n aggregateOutputKey?: string;\n aggregationMode?: \"array\" | \"concat\" | \"merge\";\n maxConcurrency?: number;\n maxIterations?: number;\n}\n\ninterface MapOpts {\n input: string;\n transform: WorkflowStep;\n outputKey: string;\n itemKey?: string;\n indexKey?: string;\n filter?: (item: unknown, index: number, ctx: WorkflowContext) => boolean;\n maxConcurrency?: number;\n}\n\nexport class WorkflowBuilder {\n private readonly id: string;\n private readonly workflowName: string;\n private readonly steps: AnyStep[] = [];\n private timeoutMs?: number;\n private initCtx?: WorkflowContext;\n\n constructor(id: string, name: string) {\n this.id = id;\n this.workflowName = name;\n }\n\n step(\n id: string,\n name: string,\n execute: (ctx: WorkflowContext) => Promise<WorkflowContext>,\n ): this {\n this.steps.push({ id, name, execute });\n return this;\n }\n\n parallel(id: string, name: string, branches: WorkflowStep[], mergeStrategy?: 'all' | 'first' | 'race'): this {\n const step: ParallelStep = { id, name, type: 'parallel', branches, mergeStrategy };\n this.steps.push(step);\n return this;\n }\n\n conditional(id: string, name: string, opts: ConditionalOpts): this {\n const step: ConditionalStep = {\n id,\n name,\n type: 'conditional',\n condition: opts.condition,\n ifTrue: opts.ifTrue,\n ifFalse: opts.ifFalse,\n };\n this.steps.push(step);\n return this;\n }\n\n loop(id: string, name: string, opts: LoopOpts): this {\n const step: LoopStep = {\n id,\n name,\n type: 'loop',\n body: opts.body,\n condition: opts.condition,\n maxIterations: opts.maxIterations,\n };\n this.steps.push(step);\n return this;\n }\n\n foreach(id: string, name: string, opts: ForeachOpts): this {\n const step: ForeachStep = {\n id,\n name,\n type: \"foreach\",\n iterable: opts.iterable,\n step: opts.step,\n itemKey: opts.itemKey,\n indexKey: opts.indexKey,\n aggregateOutputKey: opts.aggregateOutputKey,\n aggregationMode: opts.aggregationMode,\n maxConcurrency: opts.maxConcurrency,\n maxIterations: opts.maxIterations,\n };\n this.steps.push(step);\n return this;\n }\n\n map(id: string, name: string, opts: MapOpts): this {\n const step: MapStep = {\n id,\n name,\n type: \"map\",\n input: opts.input,\n transform: opts.transform,\n outputKey: opts.outputKey,\n itemKey: opts.itemKey,\n indexKey: opts.indexKey,\n filter: opts.filter,\n maxConcurrency: opts.maxConcurrency,\n };\n this.steps.push(step);\n return this;\n }\n\n agentStep(id: string, name: string, prompt: string | PromptFn, outputKey: string): this {\n const step: AgentStep = { id, name, type: 'agent', prompt, outputKey };\n this.steps.push(step);\n return this;\n }\n\n /** Apply retry config to the last added step */\n withRetry(config: Partial<RetryConfig>): this {\n const last = this.steps[this.steps.length - 1];\n if (!last) throw new Error(\"withRetry: no step to apply to\");\n (last as WorkflowStep).retry = config;\n return this;\n }\n\n /** Apply rollback to the last added step */\n withRollback(fn: RollbackFn): this {\n const last = this.steps[this.steps.length - 1];\n if (!last) throw new Error(\"withRollback: no step to apply to\");\n (last as WorkflowStep).rollback = fn;\n return this;\n }\n\n /** Apply condition to the last added step */\n withCondition(fn: ConditionFn): this {\n const last = this.steps[this.steps.length - 1];\n if (!last) throw new Error(\"withCondition: no step to apply to\");\n (last as WorkflowStep).condition = fn;\n return this;\n }\n\n withTimeout(ms: number): this {\n this.timeoutMs = ms;\n return this;\n }\n\n withInitialContext(ctx: WorkflowContext): this {\n this.initCtx = ctx;\n return this;\n }\n\n build(): WorkflowDefinition {\n return {\n id: this.id,\n name: this.workflowName,\n steps: this.steps,\n initialContext: this.initCtx,\n maxDurationMs: this.timeoutMs,\n };\n }\n}\n\nexport function defineWorkflow(id: string, name: string): WorkflowBuilder {\n return new WorkflowBuilder(id, name);\n}\n"]}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
// src/domain/workflow.builder.ts
|
|
2
|
+
var WorkflowBuilder = class {
|
|
3
|
+
id;
|
|
4
|
+
workflowName;
|
|
5
|
+
steps = [];
|
|
6
|
+
timeoutMs;
|
|
7
|
+
initCtx;
|
|
8
|
+
constructor(id, name) {
|
|
9
|
+
this.id = id;
|
|
10
|
+
this.workflowName = name;
|
|
11
|
+
}
|
|
12
|
+
step(id, name, execute) {
|
|
13
|
+
this.steps.push({ id, name, execute });
|
|
14
|
+
return this;
|
|
15
|
+
}
|
|
16
|
+
parallel(id, name, branches, mergeStrategy) {
|
|
17
|
+
const step = { id, name, type: "parallel", branches, mergeStrategy };
|
|
18
|
+
this.steps.push(step);
|
|
19
|
+
return this;
|
|
20
|
+
}
|
|
21
|
+
conditional(id, name, opts) {
|
|
22
|
+
const step = {
|
|
23
|
+
id,
|
|
24
|
+
name,
|
|
25
|
+
type: "conditional",
|
|
26
|
+
condition: opts.condition,
|
|
27
|
+
ifTrue: opts.ifTrue,
|
|
28
|
+
ifFalse: opts.ifFalse
|
|
29
|
+
};
|
|
30
|
+
this.steps.push(step);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
loop(id, name, opts) {
|
|
34
|
+
const step = {
|
|
35
|
+
id,
|
|
36
|
+
name,
|
|
37
|
+
type: "loop",
|
|
38
|
+
body: opts.body,
|
|
39
|
+
condition: opts.condition,
|
|
40
|
+
maxIterations: opts.maxIterations
|
|
41
|
+
};
|
|
42
|
+
this.steps.push(step);
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
foreach(id, name, opts) {
|
|
46
|
+
const step = {
|
|
47
|
+
id,
|
|
48
|
+
name,
|
|
49
|
+
type: "foreach",
|
|
50
|
+
iterable: opts.iterable,
|
|
51
|
+
step: opts.step,
|
|
52
|
+
itemKey: opts.itemKey,
|
|
53
|
+
indexKey: opts.indexKey,
|
|
54
|
+
aggregateOutputKey: opts.aggregateOutputKey,
|
|
55
|
+
aggregationMode: opts.aggregationMode,
|
|
56
|
+
maxConcurrency: opts.maxConcurrency,
|
|
57
|
+
maxIterations: opts.maxIterations
|
|
58
|
+
};
|
|
59
|
+
this.steps.push(step);
|
|
60
|
+
return this;
|
|
61
|
+
}
|
|
62
|
+
map(id, name, opts) {
|
|
63
|
+
const step = {
|
|
64
|
+
id,
|
|
65
|
+
name,
|
|
66
|
+
type: "map",
|
|
67
|
+
input: opts.input,
|
|
68
|
+
transform: opts.transform,
|
|
69
|
+
outputKey: opts.outputKey,
|
|
70
|
+
itemKey: opts.itemKey,
|
|
71
|
+
indexKey: opts.indexKey,
|
|
72
|
+
filter: opts.filter,
|
|
73
|
+
maxConcurrency: opts.maxConcurrency
|
|
74
|
+
};
|
|
75
|
+
this.steps.push(step);
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
agentStep(id, name, prompt, outputKey) {
|
|
79
|
+
const step = { id, name, type: "agent", prompt, outputKey };
|
|
80
|
+
this.steps.push(step);
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/** Apply retry config to the last added step */
|
|
84
|
+
withRetry(config) {
|
|
85
|
+
const last = this.steps[this.steps.length - 1];
|
|
86
|
+
if (!last) throw new Error("withRetry: no step to apply to");
|
|
87
|
+
last.retry = config;
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
90
|
+
/** Apply rollback to the last added step */
|
|
91
|
+
withRollback(fn) {
|
|
92
|
+
const last = this.steps[this.steps.length - 1];
|
|
93
|
+
if (!last) throw new Error("withRollback: no step to apply to");
|
|
94
|
+
last.rollback = fn;
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
/** Apply condition to the last added step */
|
|
98
|
+
withCondition(fn) {
|
|
99
|
+
const last = this.steps[this.steps.length - 1];
|
|
100
|
+
if (!last) throw new Error("withCondition: no step to apply to");
|
|
101
|
+
last.condition = fn;
|
|
102
|
+
return this;
|
|
103
|
+
}
|
|
104
|
+
withTimeout(ms) {
|
|
105
|
+
this.timeoutMs = ms;
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
withInitialContext(ctx) {
|
|
109
|
+
this.initCtx = ctx;
|
|
110
|
+
return this;
|
|
111
|
+
}
|
|
112
|
+
build() {
|
|
113
|
+
return {
|
|
114
|
+
id: this.id,
|
|
115
|
+
name: this.workflowName,
|
|
116
|
+
steps: this.steps,
|
|
117
|
+
initialContext: this.initCtx,
|
|
118
|
+
maxDurationMs: this.timeoutMs
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
function defineWorkflow(id, name) {
|
|
123
|
+
return new WorkflowBuilder(id, name);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export {
|
|
127
|
+
WorkflowBuilder,
|
|
128
|
+
defineWorkflow
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=chunk-JKXKXB5O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/domain/workflow.builder.ts"],"sourcesContent":["// =============================================================================\n// WorkflowBuilder — Fluent DSL for defining workflows\n// =============================================================================\n\nimport type {\n WorkflowStep,\n WorkflowContext,\n WorkflowDefinition,\n AnyStep,\n ParallelStep,\n ConditionalStep,\n LoopStep,\n ForeachStep,\n MapStep,\n AgentStep,\n RetryConfig,\n} from \"./workflow.schema.js\";\n\ntype ConditionFn = (ctx: WorkflowContext) => boolean;\ntype RollbackFn = (ctx: WorkflowContext) => Promise<void>;\ntype PromptFn = (ctx: WorkflowContext) => string;\n\ninterface ConditionalOpts {\n condition: ConditionFn;\n ifTrue: WorkflowStep;\n ifFalse?: WorkflowStep;\n}\n\ninterface LoopOpts {\n body: WorkflowStep;\n condition: ConditionFn;\n maxIterations?: number;\n}\n\ninterface ForeachOpts {\n iterable: string;\n step: WorkflowStep;\n itemKey?: string;\n indexKey?: string;\n aggregateOutputKey?: string;\n aggregationMode?: \"array\" | \"concat\" | \"merge\";\n maxConcurrency?: number;\n maxIterations?: number;\n}\n\ninterface MapOpts {\n input: string;\n transform: WorkflowStep;\n outputKey: string;\n itemKey?: string;\n indexKey?: string;\n filter?: (item: unknown, index: number, ctx: WorkflowContext) => boolean;\n maxConcurrency?: number;\n}\n\nexport class WorkflowBuilder {\n private readonly id: string;\n private readonly workflowName: string;\n private readonly steps: AnyStep[] = [];\n private timeoutMs?: number;\n private initCtx?: WorkflowContext;\n\n constructor(id: string, name: string) {\n this.id = id;\n this.workflowName = name;\n }\n\n step(\n id: string,\n name: string,\n execute: (ctx: WorkflowContext) => Promise<WorkflowContext>,\n ): this {\n this.steps.push({ id, name, execute });\n return this;\n }\n\n parallel(id: string, name: string, branches: WorkflowStep[], mergeStrategy?: 'all' | 'first' | 'race'): this {\n const step: ParallelStep = { id, name, type: 'parallel', branches, mergeStrategy };\n this.steps.push(step);\n return this;\n }\n\n conditional(id: string, name: string, opts: ConditionalOpts): this {\n const step: ConditionalStep = {\n id,\n name,\n type: 'conditional',\n condition: opts.condition,\n ifTrue: opts.ifTrue,\n ifFalse: opts.ifFalse,\n };\n this.steps.push(step);\n return this;\n }\n\n loop(id: string, name: string, opts: LoopOpts): this {\n const step: LoopStep = {\n id,\n name,\n type: 'loop',\n body: opts.body,\n condition: opts.condition,\n maxIterations: opts.maxIterations,\n };\n this.steps.push(step);\n return this;\n }\n\n foreach(id: string, name: string, opts: ForeachOpts): this {\n const step: ForeachStep = {\n id,\n name,\n type: \"foreach\",\n iterable: opts.iterable,\n step: opts.step,\n itemKey: opts.itemKey,\n indexKey: opts.indexKey,\n aggregateOutputKey: opts.aggregateOutputKey,\n aggregationMode: opts.aggregationMode,\n maxConcurrency: opts.maxConcurrency,\n maxIterations: opts.maxIterations,\n };\n this.steps.push(step);\n return this;\n }\n\n map(id: string, name: string, opts: MapOpts): this {\n const step: MapStep = {\n id,\n name,\n type: \"map\",\n input: opts.input,\n transform: opts.transform,\n outputKey: opts.outputKey,\n itemKey: opts.itemKey,\n indexKey: opts.indexKey,\n filter: opts.filter,\n maxConcurrency: opts.maxConcurrency,\n };\n this.steps.push(step);\n return this;\n }\n\n agentStep(id: string, name: string, prompt: string | PromptFn, outputKey: string): this {\n const step: AgentStep = { id, name, type: 'agent', prompt, outputKey };\n this.steps.push(step);\n return this;\n }\n\n /** Apply retry config to the last added step */\n withRetry(config: Partial<RetryConfig>): this {\n const last = this.steps[this.steps.length - 1];\n if (!last) throw new Error(\"withRetry: no step to apply to\");\n (last as WorkflowStep).retry = config;\n return this;\n }\n\n /** Apply rollback to the last added step */\n withRollback(fn: RollbackFn): this {\n const last = this.steps[this.steps.length - 1];\n if (!last) throw new Error(\"withRollback: no step to apply to\");\n (last as WorkflowStep).rollback = fn;\n return this;\n }\n\n /** Apply condition to the last added step */\n withCondition(fn: ConditionFn): this {\n const last = this.steps[this.steps.length - 1];\n if (!last) throw new Error(\"withCondition: no step to apply to\");\n (last as WorkflowStep).condition = fn;\n return this;\n }\n\n withTimeout(ms: number): this {\n this.timeoutMs = ms;\n return this;\n }\n\n withInitialContext(ctx: WorkflowContext): this {\n this.initCtx = ctx;\n return this;\n }\n\n build(): WorkflowDefinition {\n return {\n id: this.id,\n name: this.workflowName,\n steps: this.steps,\n initialContext: this.initCtx,\n maxDurationMs: this.timeoutMs,\n };\n }\n}\n\nexport function defineWorkflow(id: string, name: string): WorkflowBuilder {\n return new WorkflowBuilder(id, name);\n}\n"],"mappings":"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","names":[]}
|