@fragno-dev/pi-fragment 0.0.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 (87) hide show
  1. package/LICENSE.md +16 -0
  2. package/README.md +107 -0
  3. package/bin/run.js +72 -0
  4. package/dist/browser/client/react.d.ts +264 -0
  5. package/dist/browser/client/react.d.ts.map +1 -0
  6. package/dist/browser/client/react.js +84 -0
  7. package/dist/browser/client/react.js.map +1 -0
  8. package/dist/browser/client/solid.d.ts +266 -0
  9. package/dist/browser/client/solid.d.ts.map +1 -0
  10. package/dist/browser/client/solid.js +122 -0
  11. package/dist/browser/client/solid.js.map +1 -0
  12. package/dist/browser/client/svelte.d.ts +261 -0
  13. package/dist/browser/client/svelte.d.ts.map +1 -0
  14. package/dist/browser/client/svelte.js +126 -0
  15. package/dist/browser/client/svelte.js.map +1 -0
  16. package/dist/browser/client/vanilla.d.ts +238 -0
  17. package/dist/browser/client/vanilla.d.ts.map +1 -0
  18. package/dist/browser/client/vanilla.js +11 -0
  19. package/dist/browser/client/vanilla.js.map +1 -0
  20. package/dist/browser/client/vue.d.ts +264 -0
  21. package/dist/browser/client/vue.d.ts.map +1 -0
  22. package/dist/browser/client/vue.js +125 -0
  23. package/dist/browser/client/vue.js.map +1 -0
  24. package/dist/browser/client-Bk-J98pf.d.ts +679 -0
  25. package/dist/browser/client-Bk-J98pf.d.ts.map +1 -0
  26. package/dist/browser/factory-DKoO_lRA.js +2470 -0
  27. package/dist/browser/factory-DKoO_lRA.js.map +1 -0
  28. package/dist/browser/index.d.ts +776 -0
  29. package/dist/browser/index.d.ts.map +1 -0
  30. package/dist/browser/index.js +3 -0
  31. package/dist/cli/cli.d.ts +1 -0
  32. package/dist/cli/cli.js +10 -0
  33. package/dist/cli/cli.js.map +1 -0
  34. package/dist/cli/config.d.ts +13 -0
  35. package/dist/cli/config.d.ts.map +1 -0
  36. package/dist/cli/config.js +64 -0
  37. package/dist/cli/config.js.map +1 -0
  38. package/dist/cli/http/client.js +95 -0
  39. package/dist/cli/http/client.js.map +1 -0
  40. package/dist/cli/mod.d.ts +62 -0
  41. package/dist/cli/mod.d.ts.map +1 -0
  42. package/dist/cli/mod.js +644 -0
  43. package/dist/cli/mod.js.map +1 -0
  44. package/dist/cli/render/index.d.ts +23 -0
  45. package/dist/cli/render/index.d.ts.map +1 -0
  46. package/dist/cli/render/index.js +37 -0
  47. package/dist/cli/render/index.js.map +1 -0
  48. package/dist/node/index.d.ts +10 -0
  49. package/dist/node/index.js +9 -0
  50. package/dist/node/pi/clients.d.ts +240 -0
  51. package/dist/node/pi/clients.d.ts.map +1 -0
  52. package/dist/node/pi/clients.js +18 -0
  53. package/dist/node/pi/clients.js.map +1 -0
  54. package/dist/node/pi/constants.d.ts +9 -0
  55. package/dist/node/pi/constants.d.ts.map +1 -0
  56. package/dist/node/pi/constants.js +22 -0
  57. package/dist/node/pi/constants.js.map +1 -0
  58. package/dist/node/pi/definition.d.ts +13 -0
  59. package/dist/node/pi/definition.d.ts.map +1 -0
  60. package/dist/node/pi/definition.js +10 -0
  61. package/dist/node/pi/definition.js.map +1 -0
  62. package/dist/node/pi/dsl.d.ts +24 -0
  63. package/dist/node/pi/dsl.d.ts.map +1 -0
  64. package/dist/node/pi/dsl.js +57 -0
  65. package/dist/node/pi/dsl.js.map +1 -0
  66. package/dist/node/pi/factory.d.ts +220 -0
  67. package/dist/node/pi/factory.d.ts.map +1 -0
  68. package/dist/node/pi/factory.js +12 -0
  69. package/dist/node/pi/factory.js.map +1 -0
  70. package/dist/node/pi/mappers.js +47 -0
  71. package/dist/node/pi/mappers.js.map +1 -0
  72. package/dist/node/pi/route-schemas.js +112 -0
  73. package/dist/node/pi/route-schemas.js.map +1 -0
  74. package/dist/node/pi/types.d.ts +67 -0
  75. package/dist/node/pi/types.d.ts.map +1 -0
  76. package/dist/node/pi/workflow.d.ts +31 -0
  77. package/dist/node/pi/workflow.d.ts.map +1 -0
  78. package/dist/node/pi/workflow.js +242 -0
  79. package/dist/node/pi/workflow.js.map +1 -0
  80. package/dist/node/routes.d.ts +217 -0
  81. package/dist/node/routes.d.ts.map +1 -0
  82. package/dist/node/routes.js +328 -0
  83. package/dist/node/routes.js.map +1 -0
  84. package/dist/node/schema.js +12 -0
  85. package/dist/node/schema.js.map +1 -0
  86. package/dist/tsconfig.tsbuildinfo +1 -0
  87. package/package.json +125 -0
@@ -0,0 +1,242 @@
1
+ import { normalizeSteeringMode } from "./mappers.js";
2
+ import { z } from "zod";
3
+ import { Agent } from "@mariozechner/pi-agent-core";
4
+ import { createAssistantMessageEventStream } from "@mariozechner/pi-ai";
5
+ import { NonRetryableError, defineWorkflow } from "@fragno-dev/workflows";
6
+
7
+ //#region src/pi/workflow.ts
8
+ const PI_WORKFLOW_NAME = "agent-loop-workflow";
9
+ const agentLoopParamsSchema = z.object({
10
+ sessionId: z.string(),
11
+ agentName: z.string(),
12
+ systemPrompt: z.string().optional(),
13
+ initialMessages: z.array(z.custom()).optional()
14
+ });
15
+ const userMessageSchema = z.object({
16
+ text: z.string().optional(),
17
+ done: z.boolean().optional(),
18
+ steeringMode: z.enum(["all", "one-at-a-time"]).optional()
19
+ });
20
+ const findLastAssistantMessage = (messages) => {
21
+ for (let i = messages.length - 1; i >= 0; i -= 1) {
22
+ const message = messages[i];
23
+ if (message && typeof message === "object" && "role" in message && message.role === "assistant") return message;
24
+ }
25
+ return null;
26
+ };
27
+ const buildUserMessage = (text) => ({
28
+ role: "user",
29
+ content: [{
30
+ type: "text",
31
+ text
32
+ }],
33
+ timestamp: Date.now()
34
+ });
35
+ const buildErrorMessage = (model, error) => ({
36
+ role: "assistant",
37
+ content: [{
38
+ type: "text",
39
+ text: ""
40
+ }],
41
+ api: model.api,
42
+ provider: model.provider,
43
+ model: model.id,
44
+ usage: {
45
+ input: 0,
46
+ output: 0,
47
+ cacheRead: 0,
48
+ cacheWrite: 0,
49
+ totalTokens: 0,
50
+ cost: {
51
+ input: 0,
52
+ output: 0,
53
+ cacheRead: 0,
54
+ cacheWrite: 0,
55
+ total: 0
56
+ }
57
+ },
58
+ stopReason: "error",
59
+ errorMessage: error instanceof Error ? error.message : String(error),
60
+ timestamp: Date.now()
61
+ });
62
+ const wrapStreamFn = (streamFn) => streamFn ? async (...args) => {
63
+ try {
64
+ return await streamFn(...args);
65
+ } catch (error) {
66
+ const stream = createAssistantMessageEventStream();
67
+ const [model] = args;
68
+ stream.push({
69
+ type: "error",
70
+ reason: "error",
71
+ error: buildErrorMessage(model, error)
72
+ });
73
+ return stream;
74
+ }
75
+ } : void 0;
76
+ const getAssistantErrorMessage = (assistant) => {
77
+ if (!assistant || typeof assistant !== "object") return;
78
+ if ("errorMessage" in assistant && typeof assistant.errorMessage === "string") return assistant.errorMessage;
79
+ };
80
+ const buildSessionContext = (options) => {
81
+ const now = /* @__PURE__ */ new Date();
82
+ return {
83
+ id: options.params.sessionId,
84
+ name: null,
85
+ status: "active",
86
+ agent: options.params.agentName,
87
+ workflowInstanceId: options.instanceId,
88
+ steeringMode: options.steeringMode,
89
+ metadata: null,
90
+ tags: [],
91
+ createdAt: now,
92
+ updatedAt: now
93
+ };
94
+ };
95
+ const resolveTool = async (name, factory, context) => {
96
+ if (!factory) throw new NonRetryableError(`Tool ${name} not found.`);
97
+ if (typeof factory === "function") {
98
+ const tool = await factory(context);
99
+ if (!tool) throw new NonRetryableError(`Tool ${name} returned no definition.`);
100
+ return tool;
101
+ }
102
+ return factory;
103
+ };
104
+ const resolveTools = async (options) => {
105
+ const toolNames = options.agent.tools ?? [];
106
+ if (toolNames.length === 0) return [];
107
+ const toolConfig = options.agent.toolConfig ?? null;
108
+ const context = {
109
+ session: options.session,
110
+ turnId: options.turnId,
111
+ toolConfig,
112
+ messages: options.messages
113
+ };
114
+ const resolved = [];
115
+ for (const name of toolNames) {
116
+ const tool = await resolveTool(name, options.tools[name], context);
117
+ resolved.push(tool);
118
+ }
119
+ return resolved;
120
+ };
121
+ const createAgent = async (options) => {
122
+ const session = buildSessionContext({
123
+ params: options.params,
124
+ instanceId: options.instanceId,
125
+ steeringMode: options.steeringMode
126
+ });
127
+ const agentTools = await resolveTools({
128
+ agent: options.agent,
129
+ tools: options.tools,
130
+ session,
131
+ turnId: options.turnId,
132
+ messages: options.messages
133
+ });
134
+ const initialState = {
135
+ systemPrompt: options.params.systemPrompt ?? options.agent.systemPrompt,
136
+ model: options.agent.model,
137
+ tools: agentTools,
138
+ messages: options.messages
139
+ };
140
+ if (options.agent.thinkingLevel) initialState.thinkingLevel = options.agent.thinkingLevel;
141
+ const agent = new Agent({
142
+ initialState,
143
+ streamFn: wrapStreamFn(options.agent.streamFn),
144
+ convertToLlm: options.agent.convertToLlm,
145
+ transformContext: options.agent.transformContext,
146
+ getApiKey: options.agent.getApiKey,
147
+ thinkingBudgets: options.agent.thinkingBudgets,
148
+ maxRetryDelayMs: options.agent.maxRetryDelayMs,
149
+ sessionId: options.params.sessionId
150
+ });
151
+ agent.setSteeringMode(options.steeringMode);
152
+ const trace = [];
153
+ const unsubscribe = agent.subscribe((event) => {
154
+ trace.push(event);
155
+ if (!options.agent.onEvent) return;
156
+ try {
157
+ options.agent.onEvent(event, {
158
+ sessionId: options.params.sessionId,
159
+ turnId: options.turnId
160
+ });
161
+ } catch (error) {
162
+ console.warn("Agent onEvent hook failed.", {
163
+ error,
164
+ sessionId: options.params.sessionId,
165
+ turnId: options.turnId,
166
+ agent: options.agent.name
167
+ });
168
+ }
169
+ });
170
+ await agent.continue();
171
+ unsubscribe();
172
+ const assistant = findLastAssistantMessage(agent.state.messages);
173
+ const assistantError = getAssistantErrorMessage(assistant);
174
+ if (agent.state.error || assistantError) throw new Error(assistantError || agent.state.error || "Agent error");
175
+ return {
176
+ agent,
177
+ trace,
178
+ assistant
179
+ };
180
+ };
181
+ const runAgentTurn = async (options) => {
182
+ const result = await createAgent({
183
+ agent: options.agent,
184
+ tools: options.tools,
185
+ params: options.params,
186
+ messages: options.messages,
187
+ steeringMode: options.steeringMode,
188
+ turnId: options.turnId,
189
+ instanceId: options.instanceId
190
+ });
191
+ return {
192
+ messages: result.agent.state.messages,
193
+ trace: result.trace,
194
+ assistant: result.assistant
195
+ };
196
+ };
197
+ const agentLoopWorkflow = (options) => defineWorkflow({
198
+ name: PI_WORKFLOW_NAME,
199
+ schema: agentLoopParamsSchema
200
+ }, async (event, step) => {
201
+ const params = agentLoopParamsSchema.parse(event.payload ?? {});
202
+ const agentDefinition = options.agents[params.agentName];
203
+ if (!agentDefinition) throw new NonRetryableError(`Agent ${params.agentName} not found.`);
204
+ let messages = Array.isArray(params.initialMessages) ? params.initialMessages : [];
205
+ let turn = 0;
206
+ while (true) {
207
+ const userEvent = await step.waitForEvent(`wait-user-${turn}`, {
208
+ type: "user_message",
209
+ timeout: "1 hour"
210
+ });
211
+ const payload = userMessageSchema.parse(userEvent.payload ?? {});
212
+ const steeringMode = normalizeSteeringMode(payload.steeringMode);
213
+ const turnId = `${event.instanceId}:${turn}`;
214
+ messages = (await step.do(`user-${turn}`, async () => {
215
+ const userMessage = buildUserMessage(payload.text ?? "");
216
+ return {
217
+ messages: [...messages, userMessage],
218
+ user: userMessage
219
+ };
220
+ })).messages;
221
+ messages = (await step.do(`assistant-${turn}`, { retries: {
222
+ limit: 1,
223
+ delay: "10 ms",
224
+ backoff: "constant"
225
+ } }, async () => await runAgentTurn({
226
+ params,
227
+ agent: agentDefinition,
228
+ tools: options.tools,
229
+ messages,
230
+ steeringMode,
231
+ turnId,
232
+ instanceId: event.instanceId
233
+ }))).messages;
234
+ if (payload.done) return { messages };
235
+ turn += 1;
236
+ }
237
+ });
238
+ const createPiWorkflows = (options) => ({ agentLoop: agentLoopWorkflow(options) });
239
+
240
+ //#endregion
241
+ export { PI_WORKFLOW_NAME, createPiWorkflows };
242
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","names":[],"sources":["../../../src/pi/workflow.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n Agent,\n type AgentEvent,\n type AgentMessage,\n type AgentState,\n type AgentTool,\n} from \"@mariozechner/pi-agent-core\";\nimport { createAssistantMessageEventStream } from \"@mariozechner/pi-ai\";\nimport type { Api, AssistantMessage, Model } from \"@mariozechner/pi-ai\";\nimport {\n defineWorkflow,\n NonRetryableError,\n type WorkflowEvent,\n type WorkflowStep,\n type WorkflowsRegistry,\n} from \"@fragno-dev/workflows\";\n\nimport { normalizeSteeringMode } from \"./mappers\";\nimport type {\n PiAgentDefinition,\n PiAgentRegistry,\n PiSession,\n PiToolFactory,\n PiToolFactoryContext,\n PiToolRegistry,\n} from \"./types\";\n\nexport const PI_WORKFLOW_NAME = \"agent-loop-workflow\";\n\nexport type PiAgentLoopParams = {\n sessionId: string;\n agentName: string;\n systemPrompt?: string;\n initialMessages?: AgentMessage[];\n};\n\nexport type PiWorkflowsOptions = {\n agents: PiAgentRegistry;\n tools: PiToolRegistry;\n};\n\nconst agentLoopParamsSchema: z.ZodType<PiAgentLoopParams> = z.object({\n sessionId: z.string(),\n agentName: z.string(),\n systemPrompt: z.string().optional(),\n initialMessages: z.array(z.custom<AgentMessage>()).optional(),\n});\n\nconst userMessageSchema = z.object({\n text: z.string().optional(),\n done: z.boolean().optional(),\n steeringMode: z.enum([\"all\", \"one-at-a-time\"]).optional(),\n});\n\nconst findLastAssistantMessage = (messages: AgentMessage[]): AgentMessage | null => {\n for (let i = messages.length - 1; i >= 0; i -= 1) {\n const message = messages[i];\n if (\n message &&\n typeof message === \"object\" &&\n \"role\" in message &&\n (message as { role?: unknown }).role === \"assistant\"\n ) {\n return message;\n }\n }\n return null;\n};\n\nconst buildUserMessage = (text: string): AgentMessage => ({\n role: \"user\",\n content: [{ type: \"text\", text }],\n timestamp: Date.now(),\n});\n\nconst buildErrorMessage = (model: Model<Api>, error: unknown): AssistantMessage => ({\n role: \"assistant\",\n content: [{ type: \"text\", text: \"\" }],\n api: model.api,\n provider: model.provider,\n model: model.id,\n usage: {\n input: 0,\n output: 0,\n cacheRead: 0,\n cacheWrite: 0,\n totalTokens: 0,\n cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n },\n stopReason: \"error\",\n errorMessage: error instanceof Error ? error.message : String(error),\n timestamp: Date.now(),\n});\n\ntype AgentStreamFn = NonNullable<PiAgentDefinition[\"streamFn\"]>;\n\ntype AgentStreamFnArgs = Parameters<AgentStreamFn>;\n\nconst wrapStreamFn = (streamFn: PiAgentDefinition[\"streamFn\"]) =>\n streamFn\n ? async (...args: AgentStreamFnArgs) => {\n try {\n return await streamFn(...args);\n } catch (error) {\n const stream = createAssistantMessageEventStream();\n const [model] = args;\n stream.push({ type: \"error\", reason: \"error\", error: buildErrorMessage(model, error) });\n return stream;\n }\n }\n : undefined;\n\nconst getAssistantErrorMessage = (assistant: AgentMessage | null) => {\n if (!assistant || typeof assistant !== \"object\") {\n return undefined;\n }\n if (\"errorMessage\" in assistant && typeof assistant.errorMessage === \"string\") {\n return assistant.errorMessage;\n }\n return undefined;\n};\n\nconst buildSessionContext = (options: {\n params: PiAgentLoopParams;\n instanceId: string;\n steeringMode: \"all\" | \"one-at-a-time\";\n}): PiSession => {\n const now = new Date();\n return {\n id: options.params.sessionId,\n name: null,\n status: \"active\",\n agent: options.params.agentName,\n workflowInstanceId: options.instanceId,\n steeringMode: options.steeringMode,\n metadata: null,\n tags: [],\n createdAt: now,\n updatedAt: now,\n };\n};\n\nconst resolveTool = async (\n name: string,\n factory: PiToolFactory | undefined,\n context: PiToolFactoryContext,\n): Promise<AgentTool> => {\n if (!factory) {\n throw new NonRetryableError(`Tool ${name} not found.`);\n }\n if (typeof factory === \"function\") {\n const tool = await factory(context);\n if (!tool) {\n throw new NonRetryableError(`Tool ${name} returned no definition.`);\n }\n return tool;\n }\n return factory;\n};\n\nconst resolveTools = async (options: {\n agent: PiAgentDefinition;\n tools: PiToolRegistry;\n session: PiSession;\n turnId: string;\n messages: AgentMessage[];\n}): Promise<AgentTool[]> => {\n const toolNames = options.agent.tools ?? [];\n if (toolNames.length === 0) {\n return [];\n }\n\n const toolConfig = options.agent.toolConfig ?? null;\n const context = {\n session: options.session,\n turnId: options.turnId,\n toolConfig,\n messages: options.messages,\n };\n\n const resolved: AgentTool[] = [];\n for (const name of toolNames) {\n const tool = await resolveTool(name, options.tools[name], context);\n resolved.push(tool);\n }\n\n return resolved;\n};\n\nconst createAgent = async (options: {\n agent: PiAgentDefinition;\n tools: PiToolRegistry;\n params: PiAgentLoopParams;\n messages: AgentMessage[];\n steeringMode: \"all\" | \"one-at-a-time\";\n turnId: string;\n instanceId: string;\n}): Promise<{ agent: Agent; trace: AgentEvent[]; assistant: AgentMessage | null }> => {\n const session = buildSessionContext({\n params: options.params,\n instanceId: options.instanceId,\n steeringMode: options.steeringMode,\n });\n\n const agentTools = await resolveTools({\n agent: options.agent,\n tools: options.tools,\n session,\n turnId: options.turnId,\n messages: options.messages,\n });\n\n const initialState: Partial<AgentState> = {\n systemPrompt: options.params.systemPrompt ?? options.agent.systemPrompt,\n model: options.agent.model,\n tools: agentTools,\n messages: options.messages,\n };\n\n if (options.agent.thinkingLevel) {\n initialState.thinkingLevel = options.agent.thinkingLevel;\n }\n\n const agent = new Agent({\n initialState,\n streamFn: wrapStreamFn(options.agent.streamFn),\n convertToLlm: options.agent.convertToLlm,\n transformContext: options.agent.transformContext,\n getApiKey: options.agent.getApiKey,\n thinkingBudgets: options.agent.thinkingBudgets,\n maxRetryDelayMs: options.agent.maxRetryDelayMs,\n sessionId: options.params.sessionId,\n });\n\n agent.setSteeringMode(options.steeringMode);\n\n const trace: AgentEvent[] = [];\n const unsubscribe = agent.subscribe((event) => {\n trace.push(event);\n if (!options.agent.onEvent) {\n return;\n }\n try {\n options.agent.onEvent(event, { sessionId: options.params.sessionId, turnId: options.turnId });\n } catch (error) {\n console.warn(\"Agent onEvent hook failed.\", {\n error,\n sessionId: options.params.sessionId,\n turnId: options.turnId,\n agent: options.agent.name,\n });\n }\n });\n\n await agent.continue();\n unsubscribe();\n\n const assistant = findLastAssistantMessage(agent.state.messages);\n const assistantError = getAssistantErrorMessage(assistant);\n if (agent.state.error || assistantError) {\n throw new Error(assistantError || agent.state.error || \"Agent error\");\n }\n return { agent, trace, assistant };\n};\n\nconst runAgentTurn = async (options: {\n params: PiAgentLoopParams;\n agent: PiAgentDefinition;\n tools: PiToolRegistry;\n messages: AgentMessage[];\n steeringMode: \"all\" | \"one-at-a-time\";\n turnId: string;\n instanceId: string;\n}) => {\n const result = await createAgent({\n agent: options.agent,\n tools: options.tools,\n params: options.params,\n messages: options.messages,\n steeringMode: options.steeringMode,\n turnId: options.turnId,\n instanceId: options.instanceId,\n });\n\n return {\n messages: result.agent.state.messages,\n trace: result.trace,\n assistant: result.assistant,\n };\n};\n\nconst agentLoopWorkflow = (options: PiWorkflowsOptions) =>\n defineWorkflow(\n { name: PI_WORKFLOW_NAME, schema: agentLoopParamsSchema },\n async (event: WorkflowEvent<PiAgentLoopParams>, step: WorkflowStep) => {\n const params = agentLoopParamsSchema.parse(event.payload ?? {});\n const agentDefinition = options.agents[params.agentName];\n if (!agentDefinition) {\n throw new NonRetryableError(`Agent ${params.agentName} not found.`);\n }\n\n let messages: AgentMessage[] = Array.isArray(params.initialMessages)\n ? params.initialMessages\n : [];\n let turn = 0;\n\n while (true) {\n const userEvent = await step.waitForEvent(`wait-user-${turn}`, {\n type: \"user_message\",\n timeout: \"1 hour\",\n });\n const payload = userMessageSchema.parse(userEvent.payload ?? {});\n const steeringMode = normalizeSteeringMode(payload.steeringMode);\n const turnId = `${event.instanceId}:${turn}`;\n\n const userResult = await step.do(`user-${turn}`, async () => {\n const userMessage = buildUserMessage(payload.text ?? \"\");\n return { messages: [...messages, userMessage], user: userMessage };\n });\n messages = userResult.messages;\n\n const assistantResult = await step.do(\n `assistant-${turn}`,\n { retries: { limit: 1, delay: \"10 ms\", backoff: \"constant\" } },\n async () =>\n await runAgentTurn({\n params,\n agent: agentDefinition,\n tools: options.tools,\n messages,\n steeringMode,\n turnId,\n instanceId: event.instanceId,\n }),\n );\n\n messages = (assistantResult as { messages: AgentMessage[] }).messages;\n\n if (payload.done) {\n return { messages };\n }\n\n turn += 1;\n }\n },\n );\n\nexport type PiWorkflowsRegistry = {\n agentLoop: ReturnType<typeof agentLoopWorkflow>;\n};\n\nexport const createPiWorkflows = (options: PiWorkflowsOptions) =>\n ({\n agentLoop: agentLoopWorkflow(options),\n }) satisfies WorkflowsRegistry;\n"],"mappings":"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"}
@@ -0,0 +1,217 @@
1
+ import { PiFragmentConfig, PiWorkflowsService } from "./pi/types.js";
2
+ import "./index.js";
3
+ import * as _fragno_dev_core0 from "@fragno-dev/core";
4
+ import * as _fragno_dev_db0 from "@fragno-dev/db";
5
+ import * as _fragno_dev_db_schema0 from "@fragno-dev/db/schema";
6
+ import { z } from "zod";
7
+ import * as _standard_schema_spec0 from "@standard-schema/spec";
8
+
9
+ //#region src/routes.d.ts
10
+ declare const piRoutesFactory: _fragno_dev_core0.RouteFactory<PiFragmentConfig, _fragno_dev_db0.ImplicitDatabaseDependencies<_fragno_dev_db_schema0.Schema<Record<"session", _fragno_dev_db_schema0.Table<Record<string, _fragno_dev_db_schema0.AnyColumn> & Record<"id", _fragno_dev_db_schema0.IdColumn<"varchar(128)", string | _fragno_dev_db_schema0.FragnoId | null, _fragno_dev_db_schema0.FragnoId>> & Record<"name", _fragno_dev_db_schema0.Column<"string", string | null, string | null>> & Record<"agent", _fragno_dev_db_schema0.Column<"string", string, string>> & Record<"status", _fragno_dev_db_schema0.Column<"string", string, string>> & Record<"workflowInstanceId", _fragno_dev_db_schema0.Column<"string", string | null, string | null>> & Record<"steeringMode", _fragno_dev_db_schema0.Column<"string", string, string>> & Record<"metadata", _fragno_dev_db_schema0.Column<"json", unknown, unknown>> & Record<"tags", _fragno_dev_db_schema0.Column<"json", unknown, unknown>> & Record<"createdAt", _fragno_dev_db_schema0.Column<"timestamp", (_fragno_dev_db0.DbNow | Date) | null, Date>> & Record<"updatedAt", _fragno_dev_db_schema0.Column<"timestamp", (_fragno_dev_db0.DbNow | Date) | null, Date>>, Record<string, _fragno_dev_db_schema0.AnyRelation>, Record<string, _fragno_dev_db_schema0.Index<_fragno_dev_db_schema0.AnyColumn[], readonly string[]>> & Record<"idx_session_status", _fragno_dev_db_schema0.Index<readonly [_fragno_dev_db_schema0.Column<"string", string, string>] & _fragno_dev_db_schema0.AnyColumn[], readonly ["status"]>> & Record<"idx_session_created", _fragno_dev_db_schema0.Index<readonly [_fragno_dev_db_schema0.Column<"timestamp", (_fragno_dev_db0.DbNow | Date) | null, Date>] & _fragno_dev_db_schema0.AnyColumn[], readonly ["createdAt"]>>>>>>, _fragno_dev_core0.BoundServices<{}>, {
11
+ workflows: PiWorkflowsService;
12
+ }, readonly [_fragno_dev_core0.FragnoRouteConfig<"POST", "/sessions", z.ZodObject<{
13
+ agent: z.ZodString;
14
+ name: z.ZodOptional<z.ZodString>;
15
+ metadata: z.ZodOptional<z.ZodAny>;
16
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
17
+ steeringMode: z.ZodOptional<z.ZodEnum<{
18
+ all: "all";
19
+ "one-at-a-time": "one-at-a-time";
20
+ }>>;
21
+ }, z.core.$strip>, z.ZodObject<{
22
+ id: z.ZodString;
23
+ name: z.ZodNullable<z.ZodString>;
24
+ status: z.ZodEnum<{
25
+ active: "active";
26
+ paused: "paused";
27
+ errored: "errored";
28
+ terminated: "terminated";
29
+ complete: "complete";
30
+ waiting: "waiting";
31
+ }>;
32
+ agent: z.ZodString;
33
+ workflowInstanceId: z.ZodNullable<z.ZodString>;
34
+ steeringMode: z.ZodEnum<{
35
+ all: "all";
36
+ "one-at-a-time": "one-at-a-time";
37
+ }>;
38
+ metadata: z.ZodNullable<z.ZodAny>;
39
+ tags: z.ZodArray<z.ZodString>;
40
+ createdAt: z.ZodDate;
41
+ updatedAt: z.ZodDate;
42
+ }, z.core.$strip>, "AGENT_NOT_FOUND" | "WORKFLOWS_REQUIRED" | "WORKFLOW_CREATE_FAILED", string, _fragno_dev_db0.DatabaseRequestContext<_fragno_dev_db0.HooksMap>>, _fragno_dev_core0.FragnoRouteConfig<"GET", "/sessions", _standard_schema_spec0.StandardSchemaV1<unknown, unknown> | undefined, z.ZodArray<z.ZodObject<{
43
+ id: z.ZodString;
44
+ name: z.ZodNullable<z.ZodString>;
45
+ status: z.ZodEnum<{
46
+ active: "active";
47
+ paused: "paused";
48
+ errored: "errored";
49
+ terminated: "terminated";
50
+ complete: "complete";
51
+ waiting: "waiting";
52
+ }>;
53
+ agent: z.ZodString;
54
+ workflowInstanceId: z.ZodNullable<z.ZodString>;
55
+ steeringMode: z.ZodEnum<{
56
+ all: "all";
57
+ "one-at-a-time": "one-at-a-time";
58
+ }>;
59
+ metadata: z.ZodNullable<z.ZodAny>;
60
+ tags: z.ZodArray<z.ZodString>;
61
+ createdAt: z.ZodDate;
62
+ updatedAt: z.ZodDate;
63
+ }, z.core.$strip>>, string, "limit", _fragno_dev_db0.DatabaseRequestContext<_fragno_dev_db0.HooksMap>>, _fragno_dev_core0.FragnoRouteConfig<"GET", "/sessions/:sessionId", _standard_schema_spec0.StandardSchemaV1<unknown, unknown> | undefined, z.ZodObject<{
64
+ id: z.ZodString;
65
+ name: z.ZodNullable<z.ZodString>;
66
+ status: z.ZodEnum<{
67
+ active: "active";
68
+ paused: "paused";
69
+ errored: "errored";
70
+ terminated: "terminated";
71
+ complete: "complete";
72
+ waiting: "waiting";
73
+ }>;
74
+ agent: z.ZodString;
75
+ workflowInstanceId: z.ZodNullable<z.ZodString>;
76
+ steeringMode: z.ZodEnum<{
77
+ all: "all";
78
+ "one-at-a-time": "one-at-a-time";
79
+ }>;
80
+ metadata: z.ZodNullable<z.ZodAny>;
81
+ tags: z.ZodArray<z.ZodString>;
82
+ createdAt: z.ZodDate;
83
+ updatedAt: z.ZodDate;
84
+ workflow: z.ZodObject<{
85
+ status: z.ZodEnum<{
86
+ active: "active";
87
+ paused: "paused";
88
+ errored: "errored";
89
+ terminated: "terminated";
90
+ complete: "complete";
91
+ waiting: "waiting";
92
+ }>;
93
+ error: z.ZodOptional<z.ZodObject<{
94
+ name: z.ZodString;
95
+ message: z.ZodString;
96
+ }, z.core.$strip>>;
97
+ output: z.ZodOptional<z.ZodAny>;
98
+ }, z.core.$strip>;
99
+ messages: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
100
+ role: z.ZodLiteral<"user">;
101
+ content: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
102
+ type: z.ZodLiteral<"text">;
103
+ text: z.ZodString;
104
+ textSignature: z.ZodOptional<z.ZodString>;
105
+ }, z.core.$strip>, z.ZodObject<{
106
+ type: z.ZodLiteral<"thinking">;
107
+ thinking: z.ZodString;
108
+ thinkingSignature: z.ZodOptional<z.ZodString>;
109
+ }, z.core.$strip>, z.ZodObject<{
110
+ type: z.ZodLiteral<"image">;
111
+ data: z.ZodString;
112
+ mimeType: z.ZodString;
113
+ }, z.core.$strip>, z.ZodObject<{
114
+ type: z.ZodLiteral<"toolCall">;
115
+ id: z.ZodString;
116
+ name: z.ZodString;
117
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
118
+ thoughtSignature: z.ZodOptional<z.ZodString>;
119
+ }, z.core.$strip>]>>]>;
120
+ timestamp: z.ZodNumber;
121
+ }, z.core.$strip>, z.ZodObject<{
122
+ role: z.ZodLiteral<"assistant">;
123
+ content: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
124
+ type: z.ZodLiteral<"text">;
125
+ text: z.ZodString;
126
+ textSignature: z.ZodOptional<z.ZodString>;
127
+ }, z.core.$strip>, z.ZodObject<{
128
+ type: z.ZodLiteral<"thinking">;
129
+ thinking: z.ZodString;
130
+ thinkingSignature: z.ZodOptional<z.ZodString>;
131
+ }, z.core.$strip>, z.ZodObject<{
132
+ type: z.ZodLiteral<"image">;
133
+ data: z.ZodString;
134
+ mimeType: z.ZodString;
135
+ }, z.core.$strip>, z.ZodObject<{
136
+ type: z.ZodLiteral<"toolCall">;
137
+ id: z.ZodString;
138
+ name: z.ZodString;
139
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
140
+ thoughtSignature: z.ZodOptional<z.ZodString>;
141
+ }, z.core.$strip>]>>;
142
+ api: z.ZodString;
143
+ provider: z.ZodString;
144
+ model: z.ZodString;
145
+ usage: z.ZodObject<{
146
+ input: z.ZodNumber;
147
+ output: z.ZodNumber;
148
+ cacheRead: z.ZodNumber;
149
+ cacheWrite: z.ZodNumber;
150
+ totalTokens: z.ZodNumber;
151
+ cost: z.ZodObject<{
152
+ input: z.ZodNumber;
153
+ output: z.ZodNumber;
154
+ cacheRead: z.ZodNumber;
155
+ cacheWrite: z.ZodNumber;
156
+ total: z.ZodNumber;
157
+ }, z.core.$strip>;
158
+ }, z.core.$strip>;
159
+ stopReason: z.ZodString;
160
+ errorMessage: z.ZodOptional<z.ZodString>;
161
+ timestamp: z.ZodNumber;
162
+ }, z.core.$strip>, z.ZodObject<{
163
+ role: z.ZodLiteral<"toolResult">;
164
+ toolCallId: z.ZodString;
165
+ toolName: z.ZodString;
166
+ content: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
167
+ type: z.ZodLiteral<"text">;
168
+ text: z.ZodString;
169
+ textSignature: z.ZodOptional<z.ZodString>;
170
+ }, z.core.$strip>, z.ZodObject<{
171
+ type: z.ZodLiteral<"thinking">;
172
+ thinking: z.ZodString;
173
+ thinkingSignature: z.ZodOptional<z.ZodString>;
174
+ }, z.core.$strip>, z.ZodObject<{
175
+ type: z.ZodLiteral<"image">;
176
+ data: z.ZodString;
177
+ mimeType: z.ZodString;
178
+ }, z.core.$strip>, z.ZodObject<{
179
+ type: z.ZodLiteral<"toolCall">;
180
+ id: z.ZodString;
181
+ name: z.ZodString;
182
+ arguments: z.ZodRecord<z.ZodString, z.ZodUnknown>;
183
+ thoughtSignature: z.ZodOptional<z.ZodString>;
184
+ }, z.core.$strip>]>>;
185
+ details: z.ZodOptional<z.ZodUnknown>;
186
+ isError: z.ZodBoolean;
187
+ timestamp: z.ZodNumber;
188
+ }, z.core.$strip>]>>;
189
+ trace: z.ZodArray<z.ZodObject<{
190
+ type: z.ZodString;
191
+ timestamp: z.ZodOptional<z.ZodNumber>;
192
+ }, z.core.$strip>>;
193
+ summaries: z.ZodArray<z.ZodObject<{
194
+ turn: z.ZodNumber;
195
+ assistant: z.ZodNullable<z.ZodAny>;
196
+ summary: z.ZodNullable<z.ZodString>;
197
+ }, z.core.$strip>>;
198
+ }, z.core.$strip>, "WORKFLOWS_REQUIRED" | "SESSION_NOT_FOUND" | "WORKFLOW_INSTANCE_MISSING", string, _fragno_dev_db0.DatabaseRequestContext<_fragno_dev_db0.HooksMap>>, _fragno_dev_core0.FragnoRouteConfig<"POST", "/sessions/:sessionId/messages", z.ZodObject<{
199
+ text: z.ZodString;
200
+ done: z.ZodOptional<z.ZodBoolean>;
201
+ steeringMode: z.ZodOptional<z.ZodEnum<{
202
+ all: "all";
203
+ "one-at-a-time": "one-at-a-time";
204
+ }>>;
205
+ }, z.core.$strip>, z.ZodObject<{
206
+ status: z.ZodEnum<{
207
+ active: "active";
208
+ paused: "paused";
209
+ errored: "errored";
210
+ terminated: "terminated";
211
+ complete: "complete";
212
+ waiting: "waiting";
213
+ }>;
214
+ }, z.core.$strip>, "WORKFLOWS_REQUIRED" | "SESSION_NOT_FOUND" | "WORKFLOW_INSTANCE_MISSING", string, _fragno_dev_db0.DatabaseRequestContext<_fragno_dev_db0.HooksMap>>]>;
215
+ //#endregion
216
+ export { piRoutesFactory };
217
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","names":[],"sources":["../../src/routes.ts"],"mappings":";;;;;;;;;cA4Ha,eAAA,oBAAe,YAAA,CAwX3B,gBAAA,EAxX2B,eAAA,CAAA,4BAAA,CAAA,sBAAA,CAAA,MAAA,CAAA,MAAA,YAAA,sBAAA,CAAA,KAAA,CAAA,MAAA,SAAA,sBAAA,CAAA,SAAA,IAAA,MAAA,OAAA,sBAAA,CAAA,QAAA,0BAAA,sBAAA,CAAA,QAAA,SAAA,sBAAA,CAAA,QAAA,KAAA,MAAA,SAAA,sBAAA,CAAA,MAAA,4CAAA,MAAA,UAAA,sBAAA,CAAA,MAAA,8BAAA,MAAA,WAAA,sBAAA,CAAA,MAAA,8BAAA,MAAA,uBAAA,sBAAA,CAAA,MAAA,4CAAA,MAAA,iBAAA,sBAAA,CAAA,MAAA,8BAAA,MAAA,aAAA,sBAAA,CAAA,MAAA,8BAAA,MAAA,SAAA,sBAAA,CAAA,MAAA,8BAAA,MAAA,cAAA,sBAAA,CAAA,MAAA,eAAA,eAAA,CAAA,KAAA,GAAA,IAAA,UAAA,IAAA,KAAA,MAAA,cAAA,sBAAA,CAAA,MAAA,eAAA,eAAA,CAAA,KAAA,GAAA,IAAA,UAAA,IAAA,IAAA,MAAA,SAAA,sBAAA,CAAA,WAAA,GAAA,MAAA,SAAA,sBAAA,CAAA,KAAA,CAAA,sBAAA,CAAA,SAAA,0BAAA,MAAA,uBAAA,sBAAA,CAAA,KAAA,WAAA,sBAAA,CAAA,MAAA,8BAAA,sBAAA,CAAA,SAAA,4BAAA,MAAA,wBAAA,sBAAA,CAAA,KAAA,WAAA,sBAAA,CAAA,MAAA,eAAA,eAAA,CAAA,KAAA,GAAA,IAAA,UAAA,IAAA,KAAA,sBAAA,CAAA,SAAA,kCAAA,iBAAA,CAAA,aAAA;aAAA,kBAAA;AAAA"}