@cogitator-ai/studio 0.1.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.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/host/checkpoints.d.ts +11 -0
  4. package/dist/host/checkpoints.d.ts.map +1 -0
  5. package/dist/host/checkpoints.js +43 -0
  6. package/dist/host/checkpoints.js.map +1 -0
  7. package/dist/host/main.d.ts +2 -0
  8. package/dist/host/main.d.ts.map +1 -0
  9. package/dist/host/main.js +49 -0
  10. package/dist/host/main.js.map +1 -0
  11. package/dist/host/project.d.ts +22 -0
  12. package/dist/host/project.d.ts.map +1 -0
  13. package/dist/host/project.js +88 -0
  14. package/dist/host/project.js.map +1 -0
  15. package/dist/host/runner.d.ts +58 -0
  16. package/dist/host/runner.d.ts.map +1 -0
  17. package/dist/host/runner.js +507 -0
  18. package/dist/host/runner.js.map +1 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +5 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/protocol.d.ts +398 -0
  24. package/dist/protocol.d.ts.map +1 -0
  25. package/dist/protocol.js +7 -0
  26. package/dist/protocol.js.map +1 -0
  27. package/dist/registry.d.ts +8 -0
  28. package/dist/registry.d.ts.map +1 -0
  29. package/dist/registry.js +119 -0
  30. package/dist/registry.js.map +1 -0
  31. package/dist/server/host-manager.d.ts +52 -0
  32. package/dist/server/host-manager.d.ts.map +1 -0
  33. package/dist/server/host-manager.js +267 -0
  34. package/dist/server/host-manager.js.map +1 -0
  35. package/dist/server/server.d.ts +41 -0
  36. package/dist/server/server.d.ts.map +1 -0
  37. package/dist/server/server.js +437 -0
  38. package/dist/server/server.js.map +1 -0
  39. package/dist/server/store.d.ts +88 -0
  40. package/dist/server/store.d.ts.map +1 -0
  41. package/dist/server/store.js +602 -0
  42. package/dist/server/store.js.map +1 -0
  43. package/dist/ui/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  44. package/dist/ui/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  45. package/dist/ui/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  46. package/dist/ui/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  47. package/dist/ui/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  48. package/dist/ui/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  49. package/dist/ui/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  50. package/dist/ui/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  51. package/dist/ui/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  52. package/dist/ui/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  53. package/dist/ui/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  54. package/dist/ui/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  55. package/dist/ui/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  56. package/dist/ui/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  57. package/dist/ui/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  58. package/dist/ui/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  59. package/dist/ui/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  60. package/dist/ui/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  61. package/dist/ui/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  62. package/dist/ui/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2 +0 -0
  63. package/dist/ui/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2 +0 -0
  64. package/dist/ui/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2 +0 -0
  65. package/dist/ui/assets/geist-latin-wght-normal-BgDaEnEv.woff2 +0 -0
  66. package/dist/ui/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2 +0 -0
  67. package/dist/ui/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2 +0 -0
  68. package/dist/ui/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2 +0 -0
  69. package/dist/ui/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2 +0 -0
  70. package/dist/ui/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2 +0 -0
  71. package/dist/ui/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2 +0 -0
  72. package/dist/ui/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2 +0 -0
  73. package/dist/ui/assets/icons-f6vmKzId.js +1 -0
  74. package/dist/ui/assets/index-C4hZIqRf.js +8 -0
  75. package/dist/ui/assets/index-D3MDAGJQ.css +1 -0
  76. package/dist/ui/assets/markdown-B0lQtlaX.js +39 -0
  77. package/dist/ui/assets/math-D93AjGz5.css +1 -0
  78. package/dist/ui/assets/math-Dyab3dfo.js +257 -0
  79. package/dist/ui/assets/react-Oh0PCTUB.js +9 -0
  80. package/dist/ui/favicon.svg +1 -0
  81. package/dist/ui/index.html +21 -0
  82. package/dist/ui/theme.js +4 -0
  83. package/package.json +90 -0
@@ -0,0 +1,507 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { randomUUID } from 'node:crypto';
3
+ import { join } from 'node:path';
4
+ import { InMemoryAdapter } from '@cogitator-ai/memory';
5
+ import { describeRegistry } from '../registry.js';
6
+ import { openCheckpointStore } from './checkpoints.js';
7
+ import { importFromProject, loadProject } from './project.js';
8
+ const CHECKPOINT_RETENTION_MS = 30 * 24 * 60 * 60 * 1000;
9
+ const STOPPED = 'Stopped in Cogitator Studio';
10
+ function rawSpan(span) {
11
+ return {
12
+ id: span.id,
13
+ traceId: span.traceId,
14
+ ...(span.parentId && { parentId: span.parentId }),
15
+ name: span.name,
16
+ status: span.status,
17
+ startTime: span.startTime,
18
+ endTime: span.endTime,
19
+ duration: span.duration,
20
+ attributes: span.attributes,
21
+ };
22
+ }
23
+ function usageOf(result) {
24
+ return {
25
+ inputTokens: result.usage.inputTokens,
26
+ outputTokens: result.usage.outputTokens,
27
+ cost: result.usage.cost,
28
+ duration: result.usage.duration,
29
+ };
30
+ }
31
+ /** The tool calls of a run with what each returned, from its messages. */
32
+ function toolCallsOf(result) {
33
+ const results = new Map();
34
+ for (const entry of result.messages) {
35
+ if (entry.role === 'tool' && entry.toolCallId && typeof entry.content === 'string') {
36
+ results.set(entry.toolCallId, entry.content);
37
+ }
38
+ }
39
+ return result.toolCalls.map((call) => {
40
+ const raw = results.get(call.id);
41
+ let value = raw;
42
+ if (raw !== undefined) {
43
+ try {
44
+ value = JSON.parse(raw);
45
+ }
46
+ catch {
47
+ value = raw;
48
+ }
49
+ }
50
+ return {
51
+ id: call.id,
52
+ name: call.name,
53
+ arguments: plain(call.arguments),
54
+ ...(raw !== undefined && { result: plain(value) }),
55
+ };
56
+ });
57
+ }
58
+ function message(error) {
59
+ return error instanceof Error ? error.message : String(error);
60
+ }
61
+ /** JSON-safe copy of what a workflow node or a tool returned. */
62
+ function plain(value) {
63
+ if (value instanceof Map)
64
+ return Object.fromEntries(value);
65
+ try {
66
+ return JSON.parse(JSON.stringify(value ?? null));
67
+ }
68
+ catch {
69
+ return String(value);
70
+ }
71
+ }
72
+ /**
73
+ * Runs the project for the studio: chats with its agents, asks the studio
74
+ * to approve tool calls, forks runs from their steps and runs its workflows.
75
+ * Everything that happens is reported through `emit`, from the runtime's own
76
+ * observer, so runs agent tools start show up too.
77
+ */
78
+ export class StudioHost {
79
+ project;
80
+ core;
81
+ options;
82
+ als = new AsyncLocalStorage();
83
+ controllers = new Map();
84
+ approvals = new Map();
85
+ seeded = new Set();
86
+ workflowRunIds = new Map();
87
+ timeTravel;
88
+ manager;
89
+ constructor(project, core, options) {
90
+ this.project = project;
91
+ this.core = core;
92
+ this.options = options;
93
+ }
94
+ static async create(projectDir, studioDir, emit) {
95
+ const project = await loadProject(projectDir);
96
+ const core = await importFromProject(projectDir, '@cogitator-ai/core');
97
+ let memory = 'project';
98
+ if (!(await project.cogitator.getMemory())) {
99
+ const adapter = new InMemoryAdapter({ provider: 'memory' });
100
+ await adapter.connect();
101
+ project.cogitator.memory = adapter;
102
+ memory = 'studio';
103
+ }
104
+ const host = new StudioHost(project, core, { projectDir, studioDir, memory, emit });
105
+ project.cogitator.observe(host.observer());
106
+ return host;
107
+ }
108
+ get memory() {
109
+ return this.options.memory;
110
+ }
111
+ registry() {
112
+ return describeRegistry(this.project.module);
113
+ }
114
+ async close() {
115
+ for (const controller of this.controllers.values())
116
+ controller.abort(new Error(STOPPED));
117
+ await this.project.cogitator.close();
118
+ }
119
+ handle(request) {
120
+ switch (request.type) {
121
+ case 'chat':
122
+ return this.chat(request.agent, request.input, request.threadId, request.history);
123
+ case 'stop':
124
+ return Promise.resolve(this.stop(request.runId));
125
+ case 'approve':
126
+ return Promise.resolve(this.decide(request.approvalId, request.approved, request.reason));
127
+ case 'fork':
128
+ return this.fork(request.run, request.fork);
129
+ case 'workflow.run':
130
+ return this.runWorkflow(request.workflow, request.input);
131
+ case 'workflow.rerun':
132
+ return this.rerunWorkflow(request.run, request.fromNode);
133
+ }
134
+ }
135
+ emit(event) {
136
+ this.options.emit(event);
137
+ }
138
+ /** Reports every run started for a studio request, nested ones included. */
139
+ observer() {
140
+ return {
141
+ onRunStart: (event) => {
142
+ const context = this.als.getStore();
143
+ if (!context)
144
+ return;
145
+ const root = context.rootRunId === undefined;
146
+ if (root) {
147
+ context.rootRunId = event.runId;
148
+ context.started(event.runId);
149
+ }
150
+ this.emit({
151
+ type: 'run.started',
152
+ runId: event.runId,
153
+ kind: root ? context.kind : 'agent',
154
+ target: root ? context.target : event.agentName,
155
+ agentName: event.agentName,
156
+ input: event.input,
157
+ threadId: root && context.threadId ? context.threadId : event.threadId,
158
+ ...(event.model && { model: event.model }),
159
+ rootRunId: context.rootRunId ?? event.runId,
160
+ startedAt: Date.now(),
161
+ ...(root && context.forkOf && { forkOf: context.forkOf }),
162
+ });
163
+ },
164
+ onSpan: (span, run) => {
165
+ if (!this.als.getStore())
166
+ return;
167
+ this.emit({ type: 'run.span', runId: run.runId, span: rawSpan(span) });
168
+ },
169
+ onRunComplete: (result) => {
170
+ const context = this.als.getStore();
171
+ if (!context || result.runId === context.rootRunId)
172
+ return;
173
+ this.emit({
174
+ type: 'run.completed',
175
+ runId: result.runId,
176
+ output: result.output,
177
+ usage: usageOf(result),
178
+ endedAt: Date.now(),
179
+ toolCalls: toolCallsOf(result),
180
+ });
181
+ },
182
+ onRunError: (error, runId) => {
183
+ const context = this.als.getStore();
184
+ if (!context || runId === context.rootRunId)
185
+ return;
186
+ this.emit({
187
+ type: 'run.failed',
188
+ runId,
189
+ error: error.message,
190
+ endedAt: Date.now(),
191
+ stopped: false,
192
+ });
193
+ },
194
+ };
195
+ }
196
+ agent(key) {
197
+ const agent = this.project.agents.get(key);
198
+ if (!agent)
199
+ throw new Error(`There is no agent "${key}" in the registry`);
200
+ return agent;
201
+ }
202
+ workflow(key) {
203
+ const workflow = this.project.workflows.get(key);
204
+ if (!workflow)
205
+ throw new Error(`There is no workflow "${key}" in the registry`);
206
+ return workflow;
207
+ }
208
+ /**
209
+ * Starts `start` under a new studio request and resolves with the id of
210
+ * the run it started, or rejects when it failed before starting one.
211
+ */
212
+ async begin(context, start) {
213
+ let resolveStarted;
214
+ const started = new Promise((resolve) => (resolveStarted = resolve));
215
+ const full = { ...context, started: resolveStarted };
216
+ const done = this.als.run(full, start);
217
+ const runId = await Promise.race([started, done.then(() => started)]);
218
+ return { runId, done };
219
+ }
220
+ /** Replays a thread's earlier messages into the studio's own memory, once per host. */
221
+ async seed(threadId, agent, history) {
222
+ if (this.options.memory !== 'studio' || this.seeded.has(threadId))
223
+ return;
224
+ this.seeded.add(threadId);
225
+ if (history.length === 0)
226
+ return;
227
+ const memory = await this.project.cogitator.getMemory();
228
+ if (!memory)
229
+ return;
230
+ const existing = await memory.getThread(threadId);
231
+ if (!existing.success || !existing.data)
232
+ await memory.createThread(agent.id, {}, threadId);
233
+ for (const entry of history) {
234
+ await memory.addEntry({
235
+ threadId,
236
+ message: { role: entry.role, content: entry.content },
237
+ tokenCount: Math.ceil(entry.content.length / 4),
238
+ });
239
+ }
240
+ }
241
+ async chat(key, input, threadId, history) {
242
+ const agent = this.agent(key);
243
+ await this.seed(threadId, agent, history);
244
+ const controller = new AbortController();
245
+ let current = '';
246
+ const { runId, done } = await this.begin({ kind: 'agent', target: key, threadId }, () => this.project.cogitator.run(agent, {
247
+ input,
248
+ threadId,
249
+ stream: true,
250
+ signal: controller.signal,
251
+ onToken: (text) => this.emit({ type: 'run.token', runId: current, text }),
252
+ onReasoning: (text) => this.emit({ type: 'run.reasoning', runId: current, text }),
253
+ onToolCall: (call) => this.emit({
254
+ type: 'run.tool.call',
255
+ runId: current,
256
+ call: { id: call.id, name: call.name, arguments: call.arguments },
257
+ }),
258
+ onToolResult: (result) => this.emit({
259
+ type: 'run.tool.result',
260
+ runId: current,
261
+ callId: result.callId,
262
+ result: plain(result.result),
263
+ ...(result.error && { error: result.error }),
264
+ }),
265
+ onRunStart: (event) => (current = event.runId),
266
+ onApproval: (request) => this.ask(current, request),
267
+ }));
268
+ this.finish(runId, done, controller);
269
+ return { runId };
270
+ }
271
+ /**
272
+ * Reports how a run the studio started ended, with its fork steps. A run
273
+ * with a controller can be stopped from the studio.
274
+ */
275
+ finish(runId, done, controller) {
276
+ if (controller)
277
+ this.controllers.set(runId, controller);
278
+ void done
279
+ .then(async (result) => {
280
+ if (result.status === 'paused') {
281
+ const tools = (result.pendingApprovals ?? [])
282
+ .map((request) => request.toolName)
283
+ .join(', ');
284
+ this.emit({
285
+ type: 'run.failed',
286
+ runId,
287
+ error: `The run paused for approval of ${tools}: approvals are asked only in chats, mock the tool result in the fork instead`,
288
+ endedAt: Date.now(),
289
+ stopped: false,
290
+ });
291
+ return;
292
+ }
293
+ this.emit({
294
+ type: 'run.completed',
295
+ runId,
296
+ output: result.output,
297
+ usage: usageOf(result),
298
+ endedAt: Date.now(),
299
+ toolCalls: toolCallsOf(result),
300
+ steps: await this.steps(result),
301
+ });
302
+ }, (error) => this.emit({
303
+ type: 'run.failed',
304
+ runId,
305
+ error: controller?.signal.aborted ? STOPPED : message(error),
306
+ endedAt: Date.now(),
307
+ stopped: controller?.signal.aborted === true,
308
+ }))
309
+ .finally(() => {
310
+ this.controllers.delete(runId);
311
+ for (const [id, pending] of this.approvals) {
312
+ if (pending.runId === runId)
313
+ this.decide(id, false, STOPPED);
314
+ }
315
+ });
316
+ }
317
+ /** Holds a tool call until the studio approves or rejects it. */
318
+ ask(runId, request) {
319
+ const approvalId = `${runId}:${request.toolCallId}`;
320
+ return new Promise((resolve) => {
321
+ this.approvals.set(approvalId, { runId, resolve });
322
+ this.emit({
323
+ type: 'run.approval',
324
+ runId,
325
+ approvalId,
326
+ callId: request.toolCallId,
327
+ toolName: request.toolName,
328
+ arguments: plain(request.arguments),
329
+ description: request.description,
330
+ });
331
+ });
332
+ }
333
+ decide(approvalId, approved, reason) {
334
+ const pending = this.approvals.get(approvalId);
335
+ if (!pending)
336
+ return { decided: false };
337
+ this.approvals.delete(approvalId);
338
+ pending.resolve(approved ? { approved: true } : { approved: false, ...(reason && { reason }) });
339
+ this.emit({
340
+ type: 'run.approval.decided',
341
+ runId: pending.runId,
342
+ approvalId,
343
+ approved,
344
+ ...(reason && { reason }),
345
+ });
346
+ return { decided: true };
347
+ }
348
+ stop(runId) {
349
+ const controller = this.controllers.get(runId);
350
+ if (!controller)
351
+ return { stopped: false };
352
+ controller.abort(new Error(STOPPED));
353
+ for (const [id, pending] of this.approvals) {
354
+ if (pending.runId === runId)
355
+ this.decide(id, false, STOPPED);
356
+ }
357
+ return { stopped: true };
358
+ }
359
+ travel() {
360
+ this.timeTravel ??= openCheckpointStore(this.core.InMemoryCheckpointStore, join(this.options.studioDir, 'checkpoints')).then((checkpointStore) => new this.core.TimeTravel(this.project.cogitator, {
361
+ checkpointStore,
362
+ config: { maxCheckpointsPerTrace: 500, checkpointRetention: CHECKPOINT_RETENTION_MS },
363
+ }));
364
+ return this.timeTravel;
365
+ }
366
+ /** The steps a run can be forked from: one before each tool call, or its start. */
367
+ async steps(result) {
368
+ const travel = await this.travel();
369
+ let checkpoints = await travel.checkpointAll(result, 'step');
370
+ if (checkpoints.length === 0)
371
+ checkpoints = [await travel.checkpoint(result, 0, 'start')];
372
+ return checkpoints.map((checkpoint) => ({
373
+ index: checkpoint.stepIndex,
374
+ checkpointId: checkpoint.id,
375
+ label: checkpoint.pendingToolCalls.length > 0
376
+ ? `before ${checkpoint.pendingToolCalls.map((call) => call.name).join(', ')}`
377
+ : 'from the start',
378
+ toolCalls: result.toolCalls.slice(0, checkpoint.stepIndex).map((call) => ({
379
+ name: call.name,
380
+ result: plain(checkpoint.toolResults[call.id]),
381
+ })),
382
+ }));
383
+ }
384
+ async fork(run, request) {
385
+ const step = run.steps?.find((candidate) => candidate.index === request.step);
386
+ if (!step)
387
+ throw new Error(`Run ${run.id} has no step ${request.step} to fork from`);
388
+ const agent = this.agent(run.target);
389
+ const travel = await this.travel();
390
+ const forkOf = {
391
+ runId: run.id,
392
+ step: request.step,
393
+ ...(request.input !== undefined && { input: request.input }),
394
+ ...(request.context !== undefined && { context: request.context }),
395
+ ...(request.toolResults !== undefined && { toolResults: request.toolResults }),
396
+ };
397
+ const { runId, done } = await this.begin({ kind: 'fork', target: run.target, forkOf }, () => travel.fork(agent, step.checkpointId, {
398
+ ...(request.input !== undefined && { input: request.input }),
399
+ ...(request.context !== undefined && { additionalContext: request.context }),
400
+ ...(request.toolResults !== undefined && { mockToolResults: request.toolResults }),
401
+ label: `fork of ${run.id} at step ${request.step}`,
402
+ }));
403
+ this.finish(runId, done.then((forked) => forked.result));
404
+ return { runId };
405
+ }
406
+ workflowManager() {
407
+ this.manager ??= importFromProject(this.options.projectDir, '@cogitator-ai/workflows').then((workflows) => new workflows.DefaultWorkflowManager({
408
+ cogitator: this.project.cogitator,
409
+ checkpointStore: new workflows.FileCheckpointStore(join(this.options.studioDir, 'workflow-checkpoints')),
410
+ runStore: workflows.createFileRunStore({
411
+ directory: join(this.options.studioDir, 'workflow-runs'),
412
+ }),
413
+ onRunStateChange: (run) => {
414
+ const tag = run.tags.find((candidate) => candidate.startsWith('studio:'));
415
+ if (tag)
416
+ this.workflowRunIds.set(tag.slice('studio:'.length), run.id);
417
+ },
418
+ }));
419
+ return this.manager;
420
+ }
421
+ nodeCallbacks(runId) {
422
+ return {
423
+ checkpoint: true,
424
+ tags: [`studio:${runId}`],
425
+ onNodeStart: (node) => this.emit({ type: 'workflow.node', runId, node, status: 'running', at: Date.now() }),
426
+ onNodeComplete: (node, output, duration) => this.emit({
427
+ type: 'workflow.node',
428
+ runId,
429
+ node,
430
+ status: 'completed',
431
+ at: Date.now(),
432
+ duration,
433
+ output: plain(output),
434
+ }),
435
+ onNodeError: (node, error) => this.emit({
436
+ type: 'workflow.node',
437
+ runId,
438
+ node,
439
+ status: 'failed',
440
+ at: Date.now(),
441
+ error: error.message,
442
+ }),
443
+ };
444
+ }
445
+ /** Runs a workflow under a studio id the run is known by from its first event. */
446
+ startWorkflow(key, input, rerunOf, execute) {
447
+ const runId = `wfrun_${randomUUID()}`;
448
+ const context = {
449
+ kind: 'workflow',
450
+ target: key,
451
+ rootRunId: runId,
452
+ ...(rerunOf && { rerunOf }),
453
+ started: () => undefined,
454
+ };
455
+ this.emit({
456
+ type: 'run.started',
457
+ runId,
458
+ kind: 'workflow',
459
+ target: key,
460
+ input: JSON.stringify(input ?? {}),
461
+ rootRunId: runId,
462
+ startedAt: Date.now(),
463
+ ...(rerunOf && { rerunOf }),
464
+ });
465
+ void this.als
466
+ .run(context, () => execute(runId))
467
+ .then((result) => {
468
+ if (result.error)
469
+ throw result.error;
470
+ this.emit({
471
+ type: 'run.completed',
472
+ runId,
473
+ output: JSON.stringify(plain(result.state), null, 2),
474
+ usage: { inputTokens: 0, outputTokens: 0, cost: 0, duration: result.duration },
475
+ endedAt: Date.now(),
476
+ ...(this.workflowRunIds.has(runId) && { workflowRunId: this.workflowRunIds.get(runId) }),
477
+ });
478
+ })
479
+ .catch((error) => this.emit({
480
+ type: 'run.failed',
481
+ runId,
482
+ error: message(error),
483
+ endedAt: Date.now(),
484
+ stopped: false,
485
+ }));
486
+ return { runId };
487
+ }
488
+ async runWorkflow(key, input) {
489
+ const workflow = this.workflow(key);
490
+ const manager = await this.workflowManager();
491
+ const state = typeof input === 'object' && input !== null ? input : {};
492
+ return this.startWorkflow(key, input, undefined, (runId) => manager.execute(workflow, state, this.nodeCallbacks(runId)));
493
+ }
494
+ async rerunWorkflow(run, fromNode) {
495
+ if (!run.workflowRunId) {
496
+ throw new Error(`Run ${run.id} has no checkpoint to rerun from: it did not finish in this studio`);
497
+ }
498
+ const workflow = this.workflow(run.target);
499
+ if (!workflow.nodes.has(fromNode)) {
500
+ throw new Error(`The workflow "${run.target}" has no node "${fromNode}"`);
501
+ }
502
+ const manager = await this.workflowManager();
503
+ const workflowRunId = run.workflowRunId;
504
+ return this.startWorkflow(run.target, JSON.parse(run.input), { runId: run.id, fromNode }, (runId) => manager.replay(workflow, workflowRunId, fromNode, this.nodeCallbacks(runId)));
505
+ }
506
+ }
507
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/host/runner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { startStudio } from './server/server.js';
2
+ export type { StudioOptions, StudioHandle } from './server/server.js';
3
+ export { StudioStore } from './server/store.js';
4
+ export type { Pricer, RunQuery, StoreChange } from './server/store.js';
5
+ export { reloadsProject } from './server/host-manager.js';
6
+ export { describeRegistry, REGISTRY_PATH } from './registry.js';
7
+ export type * from './protocol.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,mBAAmB,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export { startStudio } from './server/server.js';
2
+ export { StudioStore } from './server/store.js';
3
+ export { reloadsProject } from './server/host-manager.js';
4
+ export { describeRegistry, REGISTRY_PATH } from './registry.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}