runling 0.1.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/LICENSE +21 -0
  2. package/README.md +63 -0
  3. package/bin/runling.js +26 -0
  4. package/bin/workflow-loader.js +10 -0
  5. package/dist/extensions/web-fetch.d.ts +8 -0
  6. package/dist/extensions/web-fetch.js +245 -0
  7. package/dist/src/agent.d.ts +78 -0
  8. package/dist/src/agent.js +450 -0
  9. package/dist/src/ansi.d.ts +1 -0
  10. package/dist/src/ansi.js +9 -0
  11. package/dist/src/cli.d.ts +8 -0
  12. package/dist/src/cli.js +46 -0
  13. package/dist/src/config-reloader.d.ts +20 -0
  14. package/dist/src/config-reloader.js +110 -0
  15. package/dist/src/events.d.ts +82 -0
  16. package/dist/src/events.js +21 -0
  17. package/dist/src/git.d.ts +9 -0
  18. package/dist/src/git.js +82 -0
  19. package/dist/src/id.d.ts +1 -0
  20. package/dist/src/id.js +7 -0
  21. package/dist/src/index.d.ts +15 -0
  22. package/dist/src/index.js +14 -0
  23. package/dist/src/input.d.ts +14 -0
  24. package/dist/src/input.js +49 -0
  25. package/dist/src/log.d.ts +35 -0
  26. package/dist/src/log.js +92 -0
  27. package/dist/src/markdown.d.ts +2 -0
  28. package/dist/src/markdown.js +32 -0
  29. package/dist/src/model.d.ts +5 -0
  30. package/dist/src/model.js +10 -0
  31. package/dist/src/paths.d.ts +10 -0
  32. package/dist/src/paths.js +18 -0
  33. package/dist/src/runner.d.ts +43 -0
  34. package/dist/src/runner.js +200 -0
  35. package/dist/src/runtime.d.ts +62 -0
  36. package/dist/src/runtime.js +44 -0
  37. package/dist/src/schema.d.ts +3 -0
  38. package/dist/src/schema.js +17 -0
  39. package/dist/src/shell.d.ts +47 -0
  40. package/dist/src/shell.js +170 -0
  41. package/dist/src/step.d.ts +5 -0
  42. package/dist/src/step.js +39 -0
  43. package/dist/src/system-prompt.d.ts +2 -0
  44. package/dist/src/system-prompt.js +23 -0
  45. package/dist/src/text.d.ts +2 -0
  46. package/dist/src/text.js +6 -0
  47. package/dist/src/tui.d.ts +46 -0
  48. package/dist/src/tui.js +477 -0
  49. package/dist/src/usage.d.ts +35 -0
  50. package/dist/src/usage.js +90 -0
  51. package/dist/src/utils.d.ts +2 -0
  52. package/dist/src/utils.js +16 -0
  53. package/dist/src/web-config.d.ts +16 -0
  54. package/dist/src/web-config.js +22 -0
  55. package/dist/src/web-server.d.ts +8 -0
  56. package/dist/src/web-server.js +91 -0
  57. package/dist/src/workflow.d.ts +11 -0
  58. package/dist/src/workflow.js +39 -0
  59. package/dist/web/client/_app/immutable/assets/0.DkxYLsNr.css +1 -0
  60. package/dist/web/client/_app/immutable/assets/0.DkxYLsNr.css.br +0 -0
  61. package/dist/web/client/_app/immutable/assets/0.DkxYLsNr.css.gz +0 -0
  62. package/dist/web/client/_app/immutable/assets/2.D0D6RatL.css +1 -0
  63. package/dist/web/client/_app/immutable/assets/2.D0D6RatL.css.br +0 -0
  64. package/dist/web/client/_app/immutable/assets/2.D0D6RatL.css.gz +0 -0
  65. package/dist/web/client/_app/immutable/assets/plus-jakarta-sans-latin-ext-wght-italic.DJWiFoht.woff2 +0 -0
  66. package/dist/web/client/_app/immutable/assets/plus-jakarta-sans-latin-ext-wght-normal.DmpS2jIq.woff2 +0 -0
  67. package/dist/web/client/_app/immutable/assets/plus-jakarta-sans-latin-wght-italic.DnD1KgkH.woff2 +0 -0
  68. package/dist/web/client/_app/immutable/assets/plus-jakarta-sans-latin-wght-normal.eXO_dkmS.woff2 +0 -0
  69. package/dist/web/client/_app/immutable/assets/plus-jakarta-sans-vietnamese-wght-italic.CPBsCcxN.woff2 +0 -0
  70. package/dist/web/client/_app/immutable/assets/plus-jakarta-sans-vietnamese-wght-normal.qRpaaN48.woff2 +0 -0
  71. package/dist/web/client/_app/immutable/chunks/DVu8M-Ny.js +1 -0
  72. package/dist/web/client/_app/immutable/chunks/DVu8M-Ny.js.br +0 -0
  73. package/dist/web/client/_app/immutable/chunks/DVu8M-Ny.js.gz +0 -0
  74. package/dist/web/client/_app/immutable/chunks/DZ8VO57n.js +2 -0
  75. package/dist/web/client/_app/immutable/chunks/DZ8VO57n.js.br +0 -0
  76. package/dist/web/client/_app/immutable/chunks/DZ8VO57n.js.gz +0 -0
  77. package/dist/web/client/_app/immutable/chunks/DcSF4jBT.js +2 -0
  78. package/dist/web/client/_app/immutable/chunks/DcSF4jBT.js.br +0 -0
  79. package/dist/web/client/_app/immutable/chunks/DcSF4jBT.js.gz +0 -0
  80. package/dist/web/client/_app/immutable/chunks/DhqrxzQW.js +1 -0
  81. package/dist/web/client/_app/immutable/chunks/DhqrxzQW.js.br +0 -0
  82. package/dist/web/client/_app/immutable/chunks/DhqrxzQW.js.gz +0 -0
  83. package/dist/web/client/_app/immutable/chunks/DqKc9n9r.js +1 -0
  84. package/dist/web/client/_app/immutable/chunks/DqKc9n9r.js.br +0 -0
  85. package/dist/web/client/_app/immutable/chunks/DqKc9n9r.js.gz +0 -0
  86. package/dist/web/client/_app/immutable/chunks/EYhLy6Dm.js +1 -0
  87. package/dist/web/client/_app/immutable/chunks/EYhLy6Dm.js.br +0 -0
  88. package/dist/web/client/_app/immutable/chunks/EYhLy6Dm.js.gz +0 -0
  89. package/dist/web/client/_app/immutable/chunks/Jt-Bo-2J.js +1 -0
  90. package/dist/web/client/_app/immutable/chunks/Jt-Bo-2J.js.br +0 -0
  91. package/dist/web/client/_app/immutable/chunks/Jt-Bo-2J.js.gz +0 -0
  92. package/dist/web/client/_app/immutable/chunks/N_quh2N-.js +1 -0
  93. package/dist/web/client/_app/immutable/chunks/N_quh2N-.js.br +0 -0
  94. package/dist/web/client/_app/immutable/chunks/N_quh2N-.js.gz +0 -0
  95. package/dist/web/client/_app/immutable/chunks/wbPk3Yxo.js +81 -0
  96. package/dist/web/client/_app/immutable/chunks/wbPk3Yxo.js.br +0 -0
  97. package/dist/web/client/_app/immutable/chunks/wbPk3Yxo.js.gz +0 -0
  98. package/dist/web/client/_app/immutable/entry/app.YNAAR_x0.js +2 -0
  99. package/dist/web/client/_app/immutable/entry/app.YNAAR_x0.js.br +0 -0
  100. package/dist/web/client/_app/immutable/entry/app.YNAAR_x0.js.gz +0 -0
  101. package/dist/web/client/_app/immutable/entry/start.BQmDILhe.js +1 -0
  102. package/dist/web/client/_app/immutable/entry/start.BQmDILhe.js.br +0 -0
  103. package/dist/web/client/_app/immutable/entry/start.BQmDILhe.js.gz +0 -0
  104. package/dist/web/client/_app/immutable/nodes/0.DNWnBVC3.js +1 -0
  105. package/dist/web/client/_app/immutable/nodes/0.DNWnBVC3.js.br +0 -0
  106. package/dist/web/client/_app/immutable/nodes/0.DNWnBVC3.js.gz +0 -0
  107. package/dist/web/client/_app/immutable/nodes/1.CZEgzXeT.js +1 -0
  108. package/dist/web/client/_app/immutable/nodes/1.CZEgzXeT.js.br +0 -0
  109. package/dist/web/client/_app/immutable/nodes/1.CZEgzXeT.js.gz +0 -0
  110. package/dist/web/client/_app/immutable/nodes/2.BSE8F3Ef.js +19 -0
  111. package/dist/web/client/_app/immutable/nodes/2.BSE8F3Ef.js.br +0 -0
  112. package/dist/web/client/_app/immutable/nodes/2.BSE8F3Ef.js.gz +0 -0
  113. package/dist/web/client/_app/version.json +1 -0
  114. package/dist/web/client/_app/version.json.br +0 -0
  115. package/dist/web/client/_app/version.json.gz +0 -0
  116. package/dist/web/env.js +70 -0
  117. package/dist/web/env.js.map +1 -0
  118. package/dist/web/handler.js +23 -0
  119. package/dist/web/handler.js.map +1 -0
  120. package/dist/web/index.js +146 -0
  121. package/dist/web/index.js.map +1 -0
  122. package/dist/web/server/chunks/chunks/exports.js-BZBK1HC9.js +161 -0
  123. package/dist/web/server/chunks/chunks/exports.js-BZBK1HC9.js.map +1 -0
  124. package/dist/web/server/chunks/chunks/internal.js-pcXelyRW.js +126 -0
  125. package/dist/web/server/chunks/chunks/internal.js-pcXelyRW.js.map +1 -0
  126. package/dist/web/server/chunks/chunks/root.js-HNgH7zyW.js +4349 -0
  127. package/dist/web/server/chunks/chunks/root.js-HNgH7zyW.js.map +1 -0
  128. package/dist/web/server/chunks/chunks/run-store.js-Dgbf5-M9.js +174 -0
  129. package/dist/web/server/chunks/chunks/run-store.js-Dgbf5-M9.js.map +1 -0
  130. package/dist/web/server/chunks/chunks/runs.js-vPPJr_ta.js +20 -0
  131. package/dist/web/server/chunks/chunks/runs.js-vPPJr_ta.js.map +1 -0
  132. package/dist/web/server/chunks/chunks/server.js-Bf8x1V_n.js +16 -0
  133. package/dist/web/server/chunks/chunks/server.js-Bf8x1V_n.js.map +1 -0
  134. package/dist/web/server/chunks/chunks/state.svelte.js-lAA5-aPf.js +12 -0
  135. package/dist/web/server/chunks/chunks/state.svelte.js-lAA5-aPf.js.map +1 -0
  136. package/dist/web/server/chunks/chunks/stream.js-CHB18nO5.js +51 -0
  137. package/dist/web/server/chunks/chunks/stream.js-CHB18nO5.js.map +1 -0
  138. package/dist/web/server/chunks/chunks/uneval.js-5Y6J9rDU.js +530 -0
  139. package/dist/web/server/chunks/chunks/uneval.js-5Y6J9rDU.js.map +1 -0
  140. package/dist/web/server/chunks/chunks/utils.js-BQzn9ikS.js +38 -0
  141. package/dist/web/server/chunks/chunks/utils.js-BQzn9ikS.js.map +1 -0
  142. package/dist/web/server/chunks/chunks/utils2.js-CPBdgO4h.js +1627 -0
  143. package/dist/web/server/chunks/chunks/utils2.js-CPBdgO4h.js.map +1 -0
  144. package/dist/web/server/chunks/chunks/web-config.js-CAwLL_g4.js +12 -0
  145. package/dist/web/server/chunks/chunks/web-config.js-CAwLL_g4.js.map +1 -0
  146. package/dist/web/server/chunks/chunks/webhook.js-nEb5r1eG.js +62 -0
  147. package/dist/web/server/chunks/chunks/webhook.js-nEb5r1eG.js.map +1 -0
  148. package/dist/web/server/chunks/entries/endpoints/api/config/events/_server.ts.js-DwgI16MG.js +20 -0
  149. package/dist/web/server/chunks/entries/endpoints/api/config/events/_server.ts.js-DwgI16MG.js.map +1 -0
  150. package/dist/web/server/chunks/entries/endpoints/api/runs/_id_/_server.ts.js-BSKmJv3K.js +14 -0
  151. package/dist/web/server/chunks/entries/endpoints/api/runs/_id_/_server.ts.js-BSKmJv3K.js.map +1 -0
  152. package/dist/web/server/chunks/entries/endpoints/api/runs/_id_/events/_server.ts.js-CWWee51l.js +23 -0
  153. package/dist/web/server/chunks/entries/endpoints/api/runs/_id_/events/_server.ts.js-CWWee51l.js.map +1 -0
  154. package/dist/web/server/chunks/entries/endpoints/api/runs/events/_server.ts.js-CY2mz9bH.js +28 -0
  155. package/dist/web/server/chunks/entries/endpoints/api/runs/events/_server.ts.js-CY2mz9bH.js.map +1 -0
  156. package/dist/web/server/chunks/entries/endpoints/api/runs/start/_name_/_server.ts.js-CD4RKiK6.js +30 -0
  157. package/dist/web/server/chunks/entries/endpoints/api/runs/start/_name_/_server.ts.js-CD4RKiK6.js.map +1 -0
  158. package/dist/web/server/chunks/entries/endpoints/api/webhooks/_name_/_server.ts.js-Dgh42cDJ.js +28 -0
  159. package/dist/web/server/chunks/entries/endpoints/api/webhooks/_name_/_server.ts.js-Dgh42cDJ.js.map +1 -0
  160. package/dist/web/server/chunks/entries/fallbacks/error.svelte.js-LEaHcOM2.js +27 -0
  161. package/dist/web/server/chunks/entries/fallbacks/error.svelte.js-LEaHcOM2.js.map +1 -0
  162. package/dist/web/server/chunks/entries/pages/_layout.svelte.js-D_wzPsk8.js +8 -0
  163. package/dist/web/server/chunks/entries/pages/_layout.svelte.js-D_wzPsk8.js.map +1 -0
  164. package/dist/web/server/chunks/entries/pages/_page.server.ts.js-oVQ0hBaN.js +27 -0
  165. package/dist/web/server/chunks/entries/pages/_page.server.ts.js-oVQ0hBaN.js.map +1 -0
  166. package/dist/web/server/chunks/entries/pages/_page.svelte.js-B7fSvh9U.js +141 -0
  167. package/dist/web/server/chunks/entries/pages/_page.svelte.js-B7fSvh9U.js.map +1 -0
  168. package/dist/web/server/chunks/handler-BpKA6eGq.js +1734 -0
  169. package/dist/web/server/chunks/handler-BpKA6eGq.js.map +1 -0
  170. package/dist/web/server/chunks/index.js-CVS44OGr.js +4157 -0
  171. package/dist/web/server/chunks/index.js-CVS44OGr.js.map +1 -0
  172. package/dist/web/server/chunks/manifest.js-CnB5rB3W.js +84 -0
  173. package/dist/web/server/chunks/manifest.js-CnB5rB3W.js.map +1 -0
  174. package/dist/web/server/chunks/nodes/0.js-BqA14fLU.js +9 -0
  175. package/dist/web/server/chunks/nodes/0.js-BqA14fLU.js.map +1 -0
  176. package/dist/web/server/chunks/nodes/1.js-DzvhRJCS.js +9 -0
  177. package/dist/web/server/chunks/nodes/1.js-DzvhRJCS.js.map +1 -0
  178. package/dist/web/server/chunks/nodes/2.js-DmujW_AW.js +20 -0
  179. package/dist/web/server/chunks/nodes/2.js-DmujW_AW.js.map +1 -0
  180. package/dist/web/shims.js +33 -0
  181. package/dist/web/shims.js.map +1 -0
  182. package/package.json +69 -0
@@ -0,0 +1,174 @@
1
+ import { mkdir, readdir, readFile, truncate, appendFile, writeFile, stat } from 'node:fs/promises';
2
+ import { resolve } from 'node:path';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { emptyTokenUsage, runWorkflow } from 'runling';
5
+ import { a as applyRecord } from './runs.js-vPPJr_ta.js';
6
+
7
+ const validId = /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/;
8
+ class RunStore {
9
+ constructor(directory, cwd) {
10
+ this.directory = directory;
11
+ this.cwd = cwd;
12
+ }
13
+ directory;
14
+ cwd;
15
+ runs = /* @__PURE__ */ new Map();
16
+ pending = /* @__PURE__ */ new Map();
17
+ listeners = /* @__PURE__ */ new Set();
18
+ async init() {
19
+ await mkdir(this.directory, { recursive: true });
20
+ for (const file of await readdir(this.directory)) {
21
+ const id = file.replace(/\.jsonl$/, "");
22
+ if (!file.endsWith(".jsonl") || !validId.test(id)) continue;
23
+ const path = resolve(this.directory, file);
24
+ const content = await readFile(path, "utf8");
25
+ const end = content.lastIndexOf("\n") + 1;
26
+ try {
27
+ const records = content.slice(0, end).split("\n").filter(Boolean).map((line) => JSON.parse(line));
28
+ const first = records[0];
29
+ if (first?.type !== "started" || first.run.id !== id) continue;
30
+ let run = first.run;
31
+ for (const record of records.slice(1)) run = applyRecord(run, record);
32
+ this.runs.set(id, run);
33
+ if (run.status === "running") {
34
+ if (end < content.length)
35
+ await truncate(path, Buffer.byteLength(content.slice(0, end)));
36
+ await this.append(id, {
37
+ type: "finished",
38
+ status: "interrupted",
39
+ finishedAt: Date.now(),
40
+ durationMs: run.events.at(-1)?.timestamp ?? 0,
41
+ output: null,
42
+ usage: run.usage,
43
+ error: "The server stopped before this run finished."
44
+ });
45
+ }
46
+ } catch (cause) {
47
+ console.error(`Cannot restore run ${id}:`, cause);
48
+ }
49
+ }
50
+ }
51
+ list() {
52
+ return [...this.runs.values()].sort((a, b) => b.startedAt - a.startedAt).slice(0, 100).map(({ input: _, output: _o, error: _e, events: _v, ...run }) => run);
53
+ }
54
+ get(id) {
55
+ return validId.test(id) ? this.runs.get(id) : void 0;
56
+ }
57
+ subscribe(listener) {
58
+ this.listeners.add(listener);
59
+ return () => {
60
+ this.listeners.delete(listener);
61
+ };
62
+ }
63
+ publish(id, record) {
64
+ for (const listener of this.listeners) listener(id, record);
65
+ }
66
+ append(id, record) {
67
+ const next = (this.pending.get(id) ?? Promise.resolve()).then(async () => {
68
+ await appendFile(
69
+ resolve(this.directory, `${id}.jsonl`),
70
+ `${JSON.stringify(record)}
71
+ `
72
+ );
73
+ this.runs.set(id, applyRecord(this.runs.get(id), record));
74
+ this.publish(id, record);
75
+ });
76
+ this.pending.set(id, next);
77
+ return next;
78
+ }
79
+ async start(webhook, workflow, input, source) {
80
+ const id = randomUUID();
81
+ const run = {
82
+ id,
83
+ webhook,
84
+ workflow: workflow.name,
85
+ source,
86
+ input: input === void 0 ? null : JSON.parse(JSON.stringify(input)),
87
+ status: "running",
88
+ startedAt: Date.now(),
89
+ output: null,
90
+ error: null,
91
+ events: [],
92
+ usage: emptyTokenUsage()
93
+ };
94
+ const started = { type: "started", run };
95
+ await writeFile(
96
+ resolve(this.directory, `${id}.jsonl`),
97
+ `${JSON.stringify(started)}
98
+ `,
99
+ { flag: "wx", mode: 384 }
100
+ );
101
+ this.runs.set(id, run);
102
+ this.publish(id, started);
103
+ const completion = this.execute(id, workflow, input);
104
+ void completion.catch((cause) => console.error(`Run ${id} failed:`, cause));
105
+ return { id, completion };
106
+ }
107
+ async execute(id, workflow, input) {
108
+ const base = performance.now();
109
+ const execution = await runWorkflow(workflow, {
110
+ cwd: this.cwd,
111
+ input,
112
+ onEvent: (event) => {
113
+ void this.append(id, {
114
+ type: "event",
115
+ event: { ...event, timestamp: Math.max(0, event.timestamp - base) }
116
+ }).catch(() => {
117
+ });
118
+ }
119
+ });
120
+ try {
121
+ await this.append(id, {
122
+ type: "finished",
123
+ status: execution.ok ? "completed" : "failed",
124
+ finishedAt: Date.now(),
125
+ durationMs: execution.durationMs,
126
+ usage: execution.usage,
127
+ output: execution.output,
128
+ error: execution.error
129
+ });
130
+ } catch (cause) {
131
+ const record = {
132
+ type: "finished",
133
+ status: "failed",
134
+ finishedAt: Date.now(),
135
+ durationMs: execution.durationMs,
136
+ usage: execution.usage,
137
+ output: null,
138
+ error: `Cannot save run history: ${cause instanceof Error ? cause.message : String(cause)}`
139
+ };
140
+ this.runs.set(id, applyRecord(this.runs.get(id), record));
141
+ this.publish(id, record);
142
+ throw new Error(record.error);
143
+ } finally {
144
+ this.pending.delete(id);
145
+ }
146
+ return execution;
147
+ }
148
+ }
149
+ const state = globalThis;
150
+ async function historyDirectory(cwd) {
151
+ const current = resolve(cwd, ".runling/runs");
152
+ const legacy = resolve(cwd, ".factory/runs");
153
+ for (const path of [current, legacy]) {
154
+ try {
155
+ if ((await stat(path)).isDirectory()) return path;
156
+ throw new Error(`Run history path is not a directory: ${path}`);
157
+ } catch (error) {
158
+ if (error.code !== "ENOENT") throw error;
159
+ }
160
+ }
161
+ return current;
162
+ }
163
+ function getRunStore() {
164
+ state.__runlingRunStore ??= (async () => {
165
+ const cwd = process.env.RUNLING_WEB_WORKFLOW_CWD ?? process.cwd();
166
+ const store = new RunStore(await historyDirectory(cwd), cwd);
167
+ await store.init();
168
+ return store;
169
+ })();
170
+ return state.__runlingRunStore;
171
+ }
172
+
173
+ export { getRunStore as g };
174
+ //# sourceMappingURL=run-store.js-Dgbf5-M9.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-store.js-Dgbf5-M9.js","sources":["../../../../.svelte-kit/output/server/chunks/run-store.js"],"sourcesContent":["import { mkdir, readdir, readFile, truncate, appendFile, writeFile, stat } from \"node:fs/promises\";\nimport { resolve } from \"node:path\";\nimport { randomUUID } from \"node:crypto\";\nimport { emptyTokenUsage, runWorkflow } from \"runling\";\nimport { a as applyRecord } from \"./runs.js\";\nconst validId = /^[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/;\nclass RunStore {\n constructor(directory, cwd) {\n this.directory = directory;\n this.cwd = cwd;\n }\n directory;\n cwd;\n runs = /* @__PURE__ */ new Map();\n pending = /* @__PURE__ */ new Map();\n listeners = /* @__PURE__ */ new Set();\n async init() {\n await mkdir(this.directory, { recursive: true });\n for (const file of await readdir(this.directory)) {\n const id = file.replace(/\\.jsonl$/, \"\");\n if (!file.endsWith(\".jsonl\") || !validId.test(id)) continue;\n const path = resolve(this.directory, file);\n const content = await readFile(path, \"utf8\");\n const end = content.lastIndexOf(\"\\n\") + 1;\n try {\n const records = content.slice(0, end).split(\"\\n\").filter(Boolean).map((line) => JSON.parse(line));\n const first = records[0];\n if (first?.type !== \"started\" || first.run.id !== id) continue;\n let run = first.run;\n for (const record of records.slice(1)) run = applyRecord(run, record);\n this.runs.set(id, run);\n if (run.status === \"running\") {\n if (end < content.length)\n await truncate(path, Buffer.byteLength(content.slice(0, end)));\n await this.append(id, {\n type: \"finished\",\n status: \"interrupted\",\n finishedAt: Date.now(),\n durationMs: run.events.at(-1)?.timestamp ?? 0,\n output: null,\n usage: run.usage,\n error: \"The server stopped before this run finished.\"\n });\n }\n } catch (cause) {\n console.error(`Cannot restore run ${id}:`, cause);\n }\n }\n }\n list() {\n return [...this.runs.values()].sort((a, b) => b.startedAt - a.startedAt).slice(0, 100).map(({ input: _, output: _o, error: _e, events: _v, ...run }) => run);\n }\n get(id) {\n return validId.test(id) ? this.runs.get(id) : void 0;\n }\n subscribe(listener) {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n publish(id, record) {\n for (const listener of this.listeners) listener(id, record);\n }\n append(id, record) {\n const next = (this.pending.get(id) ?? Promise.resolve()).then(async () => {\n await appendFile(\n resolve(this.directory, `${id}.jsonl`),\n `${JSON.stringify(record)}\n`\n );\n this.runs.set(id, applyRecord(this.runs.get(id), record));\n this.publish(id, record);\n });\n this.pending.set(id, next);\n return next;\n }\n async start(webhook, workflow, input, source) {\n const id = randomUUID();\n const run = {\n id,\n webhook,\n workflow: workflow.name,\n source,\n input: input === void 0 ? null : JSON.parse(JSON.stringify(input)),\n status: \"running\",\n startedAt: Date.now(),\n output: null,\n error: null,\n events: [],\n usage: emptyTokenUsage()\n };\n const started = { type: \"started\", run };\n await writeFile(\n resolve(this.directory, `${id}.jsonl`),\n `${JSON.stringify(started)}\n`,\n { flag: \"wx\", mode: 384 }\n );\n this.runs.set(id, run);\n this.publish(id, started);\n const completion = this.execute(id, workflow, input);\n void completion.catch((cause) => console.error(`Run ${id} failed:`, cause));\n return { id, completion };\n }\n async execute(id, workflow, input) {\n const base = performance.now();\n const execution = await runWorkflow(workflow, {\n cwd: this.cwd,\n input,\n onEvent: (event) => {\n void this.append(id, {\n type: \"event\",\n event: { ...event, timestamp: Math.max(0, event.timestamp - base) }\n }).catch(() => {\n });\n }\n });\n try {\n await this.append(id, {\n type: \"finished\",\n status: execution.ok ? \"completed\" : \"failed\",\n finishedAt: Date.now(),\n durationMs: execution.durationMs,\n usage: execution.usage,\n output: execution.output,\n error: execution.error\n });\n } catch (cause) {\n const record = {\n type: \"finished\",\n status: \"failed\",\n finishedAt: Date.now(),\n durationMs: execution.durationMs,\n usage: execution.usage,\n output: null,\n error: `Cannot save run history: ${cause instanceof Error ? cause.message : String(cause)}`\n };\n this.runs.set(id, applyRecord(this.runs.get(id), record));\n this.publish(id, record);\n throw new Error(record.error);\n } finally {\n this.pending.delete(id);\n }\n return execution;\n }\n}\nconst state = globalThis;\nasync function historyDirectory(cwd) {\n const current = resolve(cwd, \".runling/runs\");\n const legacy = resolve(cwd, \".factory/runs\");\n for (const path of [current, legacy]) {\n try {\n if ((await stat(path)).isDirectory()) return path;\n throw new Error(`Run history path is not a directory: ${path}`);\n } catch (error) {\n if (error.code !== \"ENOENT\") throw error;\n }\n }\n return current;\n}\nfunction getRunStore() {\n state.__runlingRunStore ??= (async () => {\n const cwd = process.env.RUNLING_WEB_WORKFLOW_CWD ?? process.cwd();\n const store = new RunStore(await historyDirectory(cwd), cwd);\n await store.init();\n return store;\n })();\n return state.__runlingRunStore;\n}\nexport {\n getRunStore as g\n};\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ function applyRecord(run, record) {
2
+ if (record.type === "started") return record.run;
3
+ if (record.type === "event") {
4
+ return {
5
+ ...run,
6
+ events: [...run.events, record.event],
7
+ usage: record.event.type === "usage.updated" ? record.event.usage : run.usage
8
+ };
9
+ }
10
+ const { type: _, ...result } = record;
11
+ return { ...run, ...result };
12
+ }
13
+ function duration(ms) {
14
+ if (ms < 1e3) return `${Math.round(ms)} ms`;
15
+ if (ms < 6e4) return `${(ms / 1e3).toFixed(1)} s`;
16
+ return `${Math.floor(ms / 6e4)}m ${Math.floor(ms % 6e4 / 1e3)}s`;
17
+ }
18
+
19
+ export { applyRecord as a, duration as d };
20
+ //# sourceMappingURL=runs.js-vPPJr_ta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.js-vPPJr_ta.js","sources":["../../../../.svelte-kit/output/server/chunks/runs.js"],"sourcesContent":["function applyRecord(run, record) {\n if (record.type === \"started\") return record.run;\n if (record.type === \"event\") {\n return {\n ...run,\n events: [...run.events, record.event],\n usage: record.event.type === \"usage.updated\" ? record.event.usage : run.usage\n };\n }\n const { type: _, ...result } = record;\n return { ...run, ...result };\n}\nfunction duration(ms) {\n if (ms < 1e3) return `${Math.round(ms)} ms`;\n if (ms < 6e4) return `${(ms / 1e3).toFixed(1)} s`;\n return `${Math.floor(ms / 6e4)}m ${Math.floor(ms % 6e4 / 1e3)}s`;\n}\nexport {\n applyRecord as a,\n duration as d\n};\n"],"names":[],"mappings":"AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE;AAClC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,OAAO,MAAM,CAAC,GAAG;AAClD,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;AAC/B,IAAI,OAAO;AACX,MAAM,GAAG,GAAG;AACZ,MAAM,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;AAC3C,MAAM,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AAC9E,KAAK;AACL,EAAE;AACF,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM;AACvC,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE;AAC9B;AACA,SAAS,QAAQ,CAAC,EAAE,EAAE;AACtB,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;AAC7C,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAClE;;"}
@@ -0,0 +1,16 @@
1
+ let base = "";
2
+ let assets = base;
3
+ const app_dir = "_app";
4
+ const relative = true;
5
+ const initial = { base, assets };
6
+ function override(paths) {
7
+ base = paths.base;
8
+ assets = paths.assets;
9
+ }
10
+ function reset() {
11
+ base = initial.base;
12
+ assets = initial.assets;
13
+ }
14
+
15
+ export { app_dir as a, base as b, assets as c, reset as d, override as o, relative as r };
16
+ //# sourceMappingURL=server.js-Bf8x1V_n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js-Bf8x1V_n.js","sources":["../../../../.svelte-kit/output/server/chunks/server.js"],"sourcesContent":["let prerendering = false;\nfunction set_building() {\n}\nfunction set_prerendering() {\n prerendering = true;\n}\nlet base = \"\";\nlet assets = base;\nconst app_dir = \"_app\";\nconst relative = true;\nconst initial = { base, assets };\nfunction override(paths) {\n base = paths.base;\n assets = paths.assets;\n}\nfunction reset() {\n base = initial.base;\n assets = initial.assets;\n}\nfunction set_assets(path) {\n assets = initial.assets = path;\n}\nexport {\n app_dir as a,\n base as b,\n assets as c,\n reset as d,\n set_building as e,\n set_prerendering as f,\n override as o,\n prerendering as p,\n relative as r,\n set_assets as s\n};\n"],"names":[],"mappings":"AAMG,IAAC,IAAI,GAAG;AACR,IAAC,MAAM,GAAG;AACR,MAAC,OAAO,GAAG;AACX,MAAC,QAAQ,GAAG;AACjB,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE;AAChC,SAAS,QAAQ,CAAC,KAAK,EAAE;AACzB,EAAE,IAAI,GAAG,KAAK,CAAC,IAAI;AACnB,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM;AACvB;AACA,SAAS,KAAK,GAAG;AACjB,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI;AACrB,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM;AACzB;;"}
@@ -0,0 +1,12 @@
1
+ import { n as noop } from './root.js-HNgH7zyW.js';
2
+ import './exports.js-BZBK1HC9.js';
3
+ import './utils2.js-CPBdgO4h.js';
4
+
5
+ const is_legacy = noop.toString().includes("$$") || /function \w+\(\) \{\}/.test(noop.toString());
6
+ const placeholder_url = "a:";
7
+ if (is_legacy) {
8
+ ({
9
+ url: new URL(placeholder_url)
10
+ });
11
+ }
12
+ //# sourceMappingURL=state.svelte.js-lAA5-aPf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.svelte.js-lAA5-aPf.js","sources":["../../../../.svelte-kit/output/server/chunks/state.svelte.js"],"sourcesContent":["import { n as noop } from \"./root.js\";\nimport \"./exports.js\";\nimport \"@sveltejs/kit/internal/server\";\nconst is_legacy = noop.toString().includes(\"$$\") || /function \\w+\\(\\) \\{\\}/.test(noop.toString());\nconst placeholder_url = \"a:\";\nif (is_legacy) {\n ({\n data: {},\n form: null,\n error: null,\n params: {},\n route: { id: null },\n state: {},\n status: -1,\n url: new URL(placeholder_url)\n });\n}\n"],"names":[],"mappings":";;;;AAGA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjG,MAAM,eAAe,GAAG,IAAI;AAC5B,IAAI,SAAS,EAAE;AACf,EAAE,CAAC;AACH,IAOI,GAAG,EAAE,IAAI,GAAG,CAAC,eAAe;AAChC,GAAG;AACH"}
@@ -0,0 +1,51 @@
1
+ function eventStream(request, connect) {
2
+ let cleanup = () => {
3
+ };
4
+ const encoder = new TextEncoder();
5
+ const body = new ReadableStream({
6
+ start(controller) {
7
+ let closed = false;
8
+ const send = (event, data) => {
9
+ if (!closed)
10
+ controller.enqueue(
11
+ encoder.encode(
12
+ `event: ${event}
13
+ data: ${JSON.stringify(data)}
14
+
15
+ `
16
+ )
17
+ );
18
+ };
19
+ const unsubscribe = connect(send);
20
+ const heartbeat = setInterval(() => {
21
+ if (!closed) controller.enqueue(encoder.encode(": keep-alive\n\n"));
22
+ }, 15e3);
23
+ cleanup = () => {
24
+ if (closed) return;
25
+ closed = true;
26
+ clearInterval(heartbeat);
27
+ unsubscribe();
28
+ request.signal.removeEventListener("abort", abort);
29
+ };
30
+ const abort = () => {
31
+ cleanup();
32
+ controller.close();
33
+ };
34
+ request.signal.addEventListener("abort", abort, { once: true });
35
+ if (request.signal.aborted) abort();
36
+ },
37
+ cancel() {
38
+ cleanup();
39
+ }
40
+ });
41
+ return new Response(body, {
42
+ headers: {
43
+ "content-type": "text/event-stream",
44
+ "cache-control": "no-cache, no-transform",
45
+ "x-accel-buffering": "no"
46
+ }
47
+ });
48
+ }
49
+
50
+ export { eventStream as e };
51
+ //# sourceMappingURL=stream.js-CHB18nO5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream.js-CHB18nO5.js","sources":["../../../../.svelte-kit/output/server/chunks/stream.js"],"sourcesContent":["function eventStream(request, connect) {\n let cleanup = () => {\n };\n const encoder = new TextEncoder();\n const body = new ReadableStream({\n start(controller) {\n let closed = false;\n const send = (event, data) => {\n if (!closed)\n controller.enqueue(\n encoder.encode(\n `event: ${event}\ndata: ${JSON.stringify(data)}\n\n`\n )\n );\n };\n const unsubscribe = connect(send);\n const heartbeat = setInterval(() => {\n if (!closed) controller.enqueue(encoder.encode(\": keep-alive\\n\\n\"));\n }, 15e3);\n cleanup = () => {\n if (closed) return;\n closed = true;\n clearInterval(heartbeat);\n unsubscribe();\n request.signal.removeEventListener(\"abort\", abort);\n };\n const abort = () => {\n cleanup();\n controller.close();\n };\n request.signal.addEventListener(\"abort\", abort, { once: true });\n if (request.signal.aborted) abort();\n },\n cancel() {\n cleanup();\n }\n });\n return new Response(body, {\n headers: {\n \"content-type\": \"text/event-stream\",\n \"cache-control\": \"no-cache, no-transform\",\n \"x-accel-buffering\": \"no\"\n }\n });\n}\nexport {\n eventStream as e\n};\n"],"names":[],"mappings":"AAAA,SAAS,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,OAAO,GAAG,MAAM;AACtB,EAAE,CAAC;AACH,EAAE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACnC,EAAE,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC;AAClC,IAAI,KAAK,CAAC,UAAU,EAAE;AACtB,MAAM,IAAI,MAAM,GAAG,KAAK;AACxB,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK;AACpC,QAAQ,IAAI,CAAC,MAAM;AACnB,UAAU,UAAU,CAAC,OAAO;AAC5B,YAAY,OAAO,CAAC,MAAM;AAC1B,cAAc,CAAC,OAAO,EAAE,KAAK;AAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AAE5B;AACA;AACA,WAAW;AACX,MAAM,CAAC;AACP,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM;AAC1C,QAAQ,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC3E,MAAM,CAAC,EAAE,IAAI,CAAC;AACd,MAAM,OAAO,GAAG,MAAM;AACtB,QAAQ,IAAI,MAAM,EAAE;AACpB,QAAQ,MAAM,GAAG,IAAI;AACrB,QAAQ,aAAa,CAAC,SAAS,CAAC;AAChC,QAAQ,WAAW,EAAE;AACrB,QAAQ,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC;AAC1D,MAAM,CAAC;AACP,MAAM,MAAM,KAAK,GAAG,MAAM;AAC1B,QAAQ,OAAO,EAAE;AACjB,QAAQ,UAAU,CAAC,KAAK,EAAE;AAC1B,MAAM,CAAC;AACP,MAAM,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACrE,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE;AACzC,IAAI,CAAC;AACL,IAAI,MAAM,GAAG;AACb,MAAM,OAAO,EAAE;AACf,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC5B,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,mBAAmB;AACzC,MAAM,eAAe,EAAE,wBAAwB;AAC/C,MAAM,mBAAmB,EAAE;AAC3B;AACA,GAAG,CAAC;AACJ;;"}