@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,220 @@
1
+ import { PiFragmentConfig, PiWorkflowsService } from "./types.js";
2
+ import * as _fragno_dev_core0 from "@fragno-dev/core";
3
+ import * as _fragno_dev_db0 from "@fragno-dev/db";
4
+ import { FragnoPublicConfigWithDatabase } from "@fragno-dev/db";
5
+ import * as _fragno_dev_db_schema0 from "@fragno-dev/db/schema";
6
+ import * as zod from "zod";
7
+ import * as zod_v4_core0 from "zod/v4/core";
8
+ import * as _standard_schema_spec0 from "@standard-schema/spec";
9
+ import * as _fragno_dev_db_fragment_definition_builder0 from "@fragno-dev/db/fragment-definition-builder";
10
+
11
+ //#region src/pi/factory.d.ts
12
+ type PiFragmentServices = {
13
+ workflows: PiWorkflowsService;
14
+ };
15
+ declare function createPiFragment(config: PiFragmentConfig, options: FragnoPublicConfigWithDatabase, services: PiFragmentServices): _fragno_dev_core0.FragnoInstantiatedFragment<readonly [_fragno_dev_core0.FragnoRouteConfig<"POST", "/sessions", zod.ZodObject<{
16
+ agent: zod.ZodString;
17
+ name: zod.ZodOptional<zod.ZodString>;
18
+ metadata: zod.ZodOptional<zod.ZodAny>;
19
+ tags: zod.ZodOptional<zod.ZodArray<zod.ZodString>>;
20
+ steeringMode: zod.ZodOptional<zod.ZodEnum<{
21
+ all: "all";
22
+ "one-at-a-time": "one-at-a-time";
23
+ }>>;
24
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
25
+ id: zod.ZodString;
26
+ name: zod.ZodNullable<zod.ZodString>;
27
+ status: zod.ZodEnum<{
28
+ active: "active";
29
+ paused: "paused";
30
+ errored: "errored";
31
+ terminated: "terminated";
32
+ complete: "complete";
33
+ waiting: "waiting";
34
+ }>;
35
+ agent: zod.ZodString;
36
+ workflowInstanceId: zod.ZodNullable<zod.ZodString>;
37
+ steeringMode: zod.ZodEnum<{
38
+ all: "all";
39
+ "one-at-a-time": "one-at-a-time";
40
+ }>;
41
+ metadata: zod.ZodNullable<zod.ZodAny>;
42
+ tags: zod.ZodArray<zod.ZodString>;
43
+ createdAt: zod.ZodDate;
44
+ updatedAt: zod.ZodDate;
45
+ }, zod_v4_core0.$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, zod.ZodArray<zod.ZodObject<{
46
+ id: zod.ZodString;
47
+ name: zod.ZodNullable<zod.ZodString>;
48
+ status: zod.ZodEnum<{
49
+ active: "active";
50
+ paused: "paused";
51
+ errored: "errored";
52
+ terminated: "terminated";
53
+ complete: "complete";
54
+ waiting: "waiting";
55
+ }>;
56
+ agent: zod.ZodString;
57
+ workflowInstanceId: zod.ZodNullable<zod.ZodString>;
58
+ steeringMode: zod.ZodEnum<{
59
+ all: "all";
60
+ "one-at-a-time": "one-at-a-time";
61
+ }>;
62
+ metadata: zod.ZodNullable<zod.ZodAny>;
63
+ tags: zod.ZodArray<zod.ZodString>;
64
+ createdAt: zod.ZodDate;
65
+ updatedAt: zod.ZodDate;
66
+ }, zod_v4_core0.$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, zod.ZodObject<{
67
+ id: zod.ZodString;
68
+ name: zod.ZodNullable<zod.ZodString>;
69
+ status: zod.ZodEnum<{
70
+ active: "active";
71
+ paused: "paused";
72
+ errored: "errored";
73
+ terminated: "terminated";
74
+ complete: "complete";
75
+ waiting: "waiting";
76
+ }>;
77
+ agent: zod.ZodString;
78
+ workflowInstanceId: zod.ZodNullable<zod.ZodString>;
79
+ steeringMode: zod.ZodEnum<{
80
+ all: "all";
81
+ "one-at-a-time": "one-at-a-time";
82
+ }>;
83
+ metadata: zod.ZodNullable<zod.ZodAny>;
84
+ tags: zod.ZodArray<zod.ZodString>;
85
+ createdAt: zod.ZodDate;
86
+ updatedAt: zod.ZodDate;
87
+ workflow: zod.ZodObject<{
88
+ status: zod.ZodEnum<{
89
+ active: "active";
90
+ paused: "paused";
91
+ errored: "errored";
92
+ terminated: "terminated";
93
+ complete: "complete";
94
+ waiting: "waiting";
95
+ }>;
96
+ error: zod.ZodOptional<zod.ZodObject<{
97
+ name: zod.ZodString;
98
+ message: zod.ZodString;
99
+ }, zod_v4_core0.$strip>>;
100
+ output: zod.ZodOptional<zod.ZodAny>;
101
+ }, zod_v4_core0.$strip>;
102
+ messages: zod.ZodArray<zod.ZodUnion<readonly [zod.ZodObject<{
103
+ role: zod.ZodLiteral<"user">;
104
+ content: zod.ZodUnion<readonly [zod.ZodString, zod.ZodArray<zod.ZodUnion<readonly [zod.ZodObject<{
105
+ type: zod.ZodLiteral<"text">;
106
+ text: zod.ZodString;
107
+ textSignature: zod.ZodOptional<zod.ZodString>;
108
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
109
+ type: zod.ZodLiteral<"thinking">;
110
+ thinking: zod.ZodString;
111
+ thinkingSignature: zod.ZodOptional<zod.ZodString>;
112
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
113
+ type: zod.ZodLiteral<"image">;
114
+ data: zod.ZodString;
115
+ mimeType: zod.ZodString;
116
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
117
+ type: zod.ZodLiteral<"toolCall">;
118
+ id: zod.ZodString;
119
+ name: zod.ZodString;
120
+ arguments: zod.ZodRecord<zod.ZodString, zod.ZodUnknown>;
121
+ thoughtSignature: zod.ZodOptional<zod.ZodString>;
122
+ }, zod_v4_core0.$strip>]>>]>;
123
+ timestamp: zod.ZodNumber;
124
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
125
+ role: zod.ZodLiteral<"assistant">;
126
+ content: zod.ZodArray<zod.ZodUnion<readonly [zod.ZodObject<{
127
+ type: zod.ZodLiteral<"text">;
128
+ text: zod.ZodString;
129
+ textSignature: zod.ZodOptional<zod.ZodString>;
130
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
131
+ type: zod.ZodLiteral<"thinking">;
132
+ thinking: zod.ZodString;
133
+ thinkingSignature: zod.ZodOptional<zod.ZodString>;
134
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
135
+ type: zod.ZodLiteral<"image">;
136
+ data: zod.ZodString;
137
+ mimeType: zod.ZodString;
138
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
139
+ type: zod.ZodLiteral<"toolCall">;
140
+ id: zod.ZodString;
141
+ name: zod.ZodString;
142
+ arguments: zod.ZodRecord<zod.ZodString, zod.ZodUnknown>;
143
+ thoughtSignature: zod.ZodOptional<zod.ZodString>;
144
+ }, zod_v4_core0.$strip>]>>;
145
+ api: zod.ZodString;
146
+ provider: zod.ZodString;
147
+ model: zod.ZodString;
148
+ usage: zod.ZodObject<{
149
+ input: zod.ZodNumber;
150
+ output: zod.ZodNumber;
151
+ cacheRead: zod.ZodNumber;
152
+ cacheWrite: zod.ZodNumber;
153
+ totalTokens: zod.ZodNumber;
154
+ cost: zod.ZodObject<{
155
+ input: zod.ZodNumber;
156
+ output: zod.ZodNumber;
157
+ cacheRead: zod.ZodNumber;
158
+ cacheWrite: zod.ZodNumber;
159
+ total: zod.ZodNumber;
160
+ }, zod_v4_core0.$strip>;
161
+ }, zod_v4_core0.$strip>;
162
+ stopReason: zod.ZodString;
163
+ errorMessage: zod.ZodOptional<zod.ZodString>;
164
+ timestamp: zod.ZodNumber;
165
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
166
+ role: zod.ZodLiteral<"toolResult">;
167
+ toolCallId: zod.ZodString;
168
+ toolName: zod.ZodString;
169
+ content: zod.ZodArray<zod.ZodUnion<readonly [zod.ZodObject<{
170
+ type: zod.ZodLiteral<"text">;
171
+ text: zod.ZodString;
172
+ textSignature: zod.ZodOptional<zod.ZodString>;
173
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
174
+ type: zod.ZodLiteral<"thinking">;
175
+ thinking: zod.ZodString;
176
+ thinkingSignature: zod.ZodOptional<zod.ZodString>;
177
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
178
+ type: zod.ZodLiteral<"image">;
179
+ data: zod.ZodString;
180
+ mimeType: zod.ZodString;
181
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
182
+ type: zod.ZodLiteral<"toolCall">;
183
+ id: zod.ZodString;
184
+ name: zod.ZodString;
185
+ arguments: zod.ZodRecord<zod.ZodString, zod.ZodUnknown>;
186
+ thoughtSignature: zod.ZodOptional<zod.ZodString>;
187
+ }, zod_v4_core0.$strip>]>>;
188
+ details: zod.ZodOptional<zod.ZodUnknown>;
189
+ isError: zod.ZodBoolean;
190
+ timestamp: zod.ZodNumber;
191
+ }, zod_v4_core0.$strip>]>>;
192
+ trace: zod.ZodArray<zod.ZodObject<{
193
+ type: zod.ZodString;
194
+ timestamp: zod.ZodOptional<zod.ZodNumber>;
195
+ }, zod_v4_core0.$strip>>;
196
+ summaries: zod.ZodArray<zod.ZodObject<{
197
+ turn: zod.ZodNumber;
198
+ assistant: zod.ZodNullable<zod.ZodAny>;
199
+ summary: zod.ZodNullable<zod.ZodString>;
200
+ }, zod_v4_core0.$strip>>;
201
+ }, zod_v4_core0.$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", zod.ZodObject<{
202
+ text: zod.ZodString;
203
+ done: zod.ZodOptional<zod.ZodBoolean>;
204
+ steeringMode: zod.ZodOptional<zod.ZodEnum<{
205
+ all: "all";
206
+ "one-at-a-time": "one-at-a-time";
207
+ }>>;
208
+ }, zod_v4_core0.$strip>, zod.ZodObject<{
209
+ status: zod.ZodEnum<{
210
+ active: "active";
211
+ paused: "paused";
212
+ errored: "errored";
213
+ terminated: "terminated";
214
+ complete: "complete";
215
+ waiting: "waiting";
216
+ }>;
217
+ }, zod_v4_core0.$strip>, "WORKFLOWS_REQUIRED" | "SESSION_NOT_FOUND" | "WORKFLOW_INSTANCE_MISSING", string, _fragno_dev_db0.DatabaseRequestContext<_fragno_dev_db0.HooksMap>>], _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<{}>, _fragno_dev_db0.DatabaseServiceContext<_fragno_dev_db0.HooksMap>, _fragno_dev_db0.DatabaseRequestContext<_fragno_dev_db0.HooksMap>, _fragno_dev_db_fragment_definition_builder0.DatabaseRequestStorage, FragnoPublicConfigWithDatabase>;
218
+ //#endregion
219
+ export { createPiFragment };
220
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","names":[],"sources":["../../../src/pi/factory.ts"],"mappings":";;;;;;;;;;;KAOK,kBAAA;EACH,SAAA,EAAW,kBAAA;AAAA;AAAA,iBAGG,gBAAA,CACd,MAAA,EAAQ,gBAAA,EACR,OAAA,EAAS,8BAAA,EACT,QAAA,EAAU,kBAAA,qBAAkB,0BAAA,6BAAA,iBAAA,0BAAA,SAAA;SAAA,GAAA,CAAA,SAAA;;;;;;;;;MAAA,GAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;iOAAA,sBAAA,CAAA,gBAAA"}
@@ -0,0 +1,12 @@
1
+ import { piFragmentDefinition } from "./definition.js";
2
+ import { piRoutesFactory } from "../routes.js";
3
+ import { instantiate } from "@fragno-dev/core";
4
+
5
+ //#region src/pi/factory.ts
6
+ function createPiFragment(config, options, services) {
7
+ return instantiate(piFragmentDefinition).withConfig(config).withRoutes([piRoutesFactory]).withOptions(options).withServices(services).build();
8
+ }
9
+
10
+ //#endregion
11
+ export { createPiFragment };
12
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.js","names":[],"sources":["../../../src/pi/factory.ts"],"sourcesContent":["import { instantiate } from \"@fragno-dev/core\";\nimport type { FragnoPublicConfigWithDatabase } from \"@fragno-dev/db\";\n\nimport { piFragmentDefinition } from \"./definition\";\nimport { piRoutesFactory } from \"../routes\";\nimport type { PiFragmentConfig, PiWorkflowsService } from \"./types\";\n\ntype PiFragmentServices = {\n workflows: PiWorkflowsService;\n};\n\nexport function createPiFragment(\n config: PiFragmentConfig,\n options: FragnoPublicConfigWithDatabase,\n services: PiFragmentServices,\n) {\n return instantiate(piFragmentDefinition)\n .withConfig(config)\n .withRoutes([piRoutesFactory])\n .withOptions(options)\n .withServices(services)\n .build();\n}\n"],"mappings":";;;;;AAWA,SAAgB,iBACd,QACA,SACA,UACA;AACA,QAAO,YAAY,qBAAqB,CACrC,WAAW,OAAO,CAClB,WAAW,CAAC,gBAAgB,CAAC,CAC7B,YAAY,QAAQ,CACpB,aAAa,SAAS,CACtB,OAAO"}
@@ -0,0 +1,47 @@
1
+ import "../schema.js";
2
+ import { STEERING_MODES } from "./constants.js";
3
+
4
+ //#region src/pi/mappers.ts
5
+ const toId = (value) => {
6
+ if (!value) return null;
7
+ if (typeof value === "string") return value;
8
+ return value.valueOf();
9
+ };
10
+ const normalizeSteeringMode = (value) => {
11
+ return STEERING_MODES.includes(value) ? value : "one-at-a-time";
12
+ };
13
+ const normalizeTags = (value) => {
14
+ if (!Array.isArray(value)) return [];
15
+ return value.filter((item) => typeof item === "string");
16
+ };
17
+ const extractAssistantText = (messages) => {
18
+ const lastAssistant = [...messages].reverse().find((message) => {
19
+ return typeof message === "object" && message !== null && "role" in message && message.role === "assistant";
20
+ });
21
+ if (!lastAssistant || typeof lastAssistant !== "object") return "";
22
+ const content = lastAssistant.content;
23
+ if (!Array.isArray(content)) return "";
24
+ return content.filter((block) => typeof block === "object" && block !== null && block.type === "text").map((block) => block.text ?? "").join("").trim();
25
+ };
26
+ const extractAssistantTextFromMessage = (message) => {
27
+ if (!message) return "";
28
+ return extractAssistantText([message]);
29
+ };
30
+ const toSessionOutput = (row) => {
31
+ return {
32
+ id: toId(row.id) ?? "",
33
+ name: row.name ?? null,
34
+ status: row.status,
35
+ agent: row.agent ?? "unknown",
36
+ workflowInstanceId: row.workflowInstanceId ?? null,
37
+ steeringMode: normalizeSteeringMode(row.steeringMode),
38
+ metadata: row.metadata ?? null,
39
+ tags: normalizeTags(row.tags),
40
+ createdAt: row.createdAt,
41
+ updatedAt: row.updatedAt
42
+ };
43
+ };
44
+
45
+ //#endregion
46
+ export { extractAssistantTextFromMessage, normalizeSteeringMode, toSessionOutput };
47
+ //# sourceMappingURL=mappers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.js","names":[],"sources":["../../../src/pi/mappers.ts"],"sourcesContent":["import type { AgentMessage } from \"@mariozechner/pi-agent-core\";\nimport type { TableToColumnValues } from \"@fragno-dev/db/query\";\n\nimport type { PiSteeringMode } from \"./constants\";\nimport { STEERING_MODES } from \"./constants\";\nimport type { PiSession } from \"./types\";\nimport { piSchema } from \"../schema\";\n\nconst toId = (value: { valueOf: () => string } | string | null | undefined): string | null => {\n if (!value) {\n return null;\n }\n if (typeof value === \"string\") {\n return value;\n }\n return value.valueOf();\n};\n\nconst normalizeSteeringMode = (value: unknown): PiSteeringMode => {\n return STEERING_MODES.includes(value as PiSteeringMode)\n ? (value as PiSteeringMode)\n : \"one-at-a-time\";\n};\n\nconst normalizeTags = (value: unknown): string[] => {\n if (!Array.isArray(value)) {\n return [];\n }\n return value.filter((item): item is string => typeof item === \"string\");\n};\n\nconst extractAssistantText = (messages: AgentMessage[]): string => {\n const lastAssistant = [...messages].reverse().find((message) => {\n return (\n typeof message === \"object\" &&\n message !== null &&\n \"role\" in message &&\n message.role === \"assistant\"\n );\n });\n\n if (!lastAssistant || typeof lastAssistant !== \"object\") {\n return \"\";\n }\n\n const content = (lastAssistant as { content?: unknown }).content;\n if (!Array.isArray(content)) {\n return \"\";\n }\n\n return content\n .filter((block) => typeof block === \"object\" && block !== null && block.type === \"text\")\n .map((block) => (block as { text?: string }).text ?? \"\")\n .join(\"\")\n .trim();\n};\n\nconst extractAssistantTextFromMessage = (message?: AgentMessage | null): string => {\n if (!message) {\n return \"\";\n }\n return extractAssistantText([message]);\n};\n\ntype SessionRow = TableToColumnValues<(typeof piSchema)[\"tables\"][\"session\"]>;\n\nconst toSessionOutput = (row: SessionRow): PiSession => {\n return {\n id: toId(row.id) ?? \"\",\n name: row.name ?? null,\n status: row.status as PiSession[\"status\"],\n agent: row.agent ?? \"unknown\",\n workflowInstanceId: row.workflowInstanceId ?? null,\n steeringMode: normalizeSteeringMode(row.steeringMode),\n metadata: row.metadata ?? null,\n tags: normalizeTags(row.tags),\n createdAt: row.createdAt,\n updatedAt: row.updatedAt,\n };\n};\n\nexport {\n extractAssistantText,\n extractAssistantTextFromMessage,\n normalizeSteeringMode,\n normalizeTags,\n toId,\n toSessionOutput,\n};\n"],"mappings":";;;;AAQA,MAAM,QAAQ,UAAgF;AAC5F,KAAI,CAAC,MACH,QAAO;AAET,KAAI,OAAO,UAAU,SACnB,QAAO;AAET,QAAO,MAAM,SAAS;;AAGxB,MAAM,yBAAyB,UAAmC;AAChE,QAAO,eAAe,SAAS,MAAwB,GAClD,QACD;;AAGN,MAAM,iBAAiB,UAA6B;AAClD,KAAI,CAAC,MAAM,QAAQ,MAAM,CACvB,QAAO,EAAE;AAEX,QAAO,MAAM,QAAQ,SAAyB,OAAO,SAAS,SAAS;;AAGzE,MAAM,wBAAwB,aAAqC;CACjE,MAAM,gBAAgB,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,YAAY;AAC9D,SACE,OAAO,YAAY,YACnB,YAAY,QACZ,UAAU,WACV,QAAQ,SAAS;GAEnB;AAEF,KAAI,CAAC,iBAAiB,OAAO,kBAAkB,SAC7C,QAAO;CAGT,MAAM,UAAW,cAAwC;AACzD,KAAI,CAAC,MAAM,QAAQ,QAAQ,CACzB,QAAO;AAGT,QAAO,QACJ,QAAQ,UAAU,OAAO,UAAU,YAAY,UAAU,QAAQ,MAAM,SAAS,OAAO,CACvF,KAAK,UAAW,MAA4B,QAAQ,GAAG,CACvD,KAAK,GAAG,CACR,MAAM;;AAGX,MAAM,mCAAmC,YAA0C;AACjF,KAAI,CAAC,QACH,QAAO;AAET,QAAO,qBAAqB,CAAC,QAAQ,CAAC;;AAKxC,MAAM,mBAAmB,QAA+B;AACtD,QAAO;EACL,IAAI,KAAK,IAAI,GAAG,IAAI;EACpB,MAAM,IAAI,QAAQ;EAClB,QAAQ,IAAI;EACZ,OAAO,IAAI,SAAS;EACpB,oBAAoB,IAAI,sBAAsB;EAC9C,cAAc,sBAAsB,IAAI,aAAa;EACrD,UAAU,IAAI,YAAY;EAC1B,MAAM,cAAc,IAAI,KAAK;EAC7B,WAAW,IAAI;EACf,WAAW,IAAI;EAChB"}
@@ -0,0 +1,112 @@
1
+ import { SESSION_STATUSES, STEERING_MODES } from "./constants.js";
2
+ import { z } from "zod";
3
+
4
+ //#region src/pi/route-schemas.ts
5
+ const sessionBaseSchema = z.object({
6
+ id: z.string(),
7
+ name: z.string().nullable(),
8
+ status: z.enum(SESSION_STATUSES),
9
+ agent: z.string(),
10
+ workflowInstanceId: z.string().nullable(),
11
+ steeringMode: z.enum(STEERING_MODES),
12
+ metadata: z.any().nullable(),
13
+ tags: z.array(z.string()),
14
+ createdAt: z.date(),
15
+ updatedAt: z.date()
16
+ });
17
+ const TextContentSchema = z.object({
18
+ type: z.literal("text"),
19
+ text: z.string(),
20
+ textSignature: z.string().optional()
21
+ });
22
+ const ThinkingContentSchema = z.object({
23
+ type: z.literal("thinking"),
24
+ thinking: z.string(),
25
+ thinkingSignature: z.string().optional()
26
+ });
27
+ const ImageContentSchema = z.object({
28
+ type: z.literal("image"),
29
+ data: z.string(),
30
+ mimeType: z.string()
31
+ });
32
+ const ToolCallSchema = z.object({
33
+ type: z.literal("toolCall"),
34
+ id: z.string(),
35
+ name: z.string(),
36
+ arguments: z.record(z.string(), z.unknown()),
37
+ thoughtSignature: z.string().optional()
38
+ });
39
+ const ContentSchema = z.union([
40
+ TextContentSchema,
41
+ ThinkingContentSchema,
42
+ ImageContentSchema,
43
+ ToolCallSchema
44
+ ]);
45
+ const UsageSchema = z.object({
46
+ input: z.number(),
47
+ output: z.number(),
48
+ cacheRead: z.number(),
49
+ cacheWrite: z.number(),
50
+ totalTokens: z.number(),
51
+ cost: z.object({
52
+ input: z.number(),
53
+ output: z.number(),
54
+ cacheRead: z.number(),
55
+ cacheWrite: z.number(),
56
+ total: z.number()
57
+ })
58
+ });
59
+ const MessageSchema = z.union([
60
+ z.object({
61
+ role: z.literal("user"),
62
+ content: z.union([z.string(), z.array(ContentSchema)]),
63
+ timestamp: z.number()
64
+ }),
65
+ z.object({
66
+ role: z.literal("assistant"),
67
+ content: z.array(ContentSchema),
68
+ api: z.string(),
69
+ provider: z.string(),
70
+ model: z.string(),
71
+ usage: UsageSchema,
72
+ stopReason: z.string(),
73
+ errorMessage: z.string().optional(),
74
+ timestamp: z.number()
75
+ }),
76
+ z.object({
77
+ role: z.literal("toolResult"),
78
+ toolCallId: z.string(),
79
+ toolName: z.string(),
80
+ content: z.array(ContentSchema),
81
+ details: z.unknown().optional(),
82
+ isError: z.boolean(),
83
+ timestamp: z.number()
84
+ })
85
+ ]);
86
+ const TraceSchema = z.object({
87
+ type: z.string(),
88
+ timestamp: z.number().optional()
89
+ });
90
+ const workflowStatusSchema = z.object({
91
+ status: z.enum(SESSION_STATUSES),
92
+ error: z.object({
93
+ name: z.string(),
94
+ message: z.string()
95
+ }).optional(),
96
+ output: z.any().optional()
97
+ });
98
+ const sessionDetailSchema = sessionBaseSchema.extend({
99
+ workflow: workflowStatusSchema,
100
+ messages: z.array(MessageSchema),
101
+ trace: z.array(TraceSchema),
102
+ summaries: z.array(z.object({
103
+ turn: z.number(),
104
+ assistant: z.any().nullable(),
105
+ summary: z.string().nullable()
106
+ }))
107
+ });
108
+ const messageAckSchema = z.object({ status: z.enum(SESSION_STATUSES) });
109
+
110
+ //#endregion
111
+ export { messageAckSchema, sessionBaseSchema, sessionDetailSchema };
112
+ //# sourceMappingURL=route-schemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-schemas.js","names":[],"sources":["../../../src/pi/route-schemas.ts"],"sourcesContent":["import { z } from \"zod\";\n\nimport { SESSION_STATUSES, STEERING_MODES } from \"./constants\";\n\nconst sessionBaseSchema = z.object({\n id: z.string(),\n name: z.string().nullable(),\n status: z.enum(SESSION_STATUSES),\n agent: z.string(),\n workflowInstanceId: z.string().nullable(),\n steeringMode: z.enum(STEERING_MODES),\n metadata: z.any().nullable(),\n tags: z.array(z.string()),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\nconst TextContentSchema = z.object({\n type: z.literal(\"text\"),\n text: z.string(),\n textSignature: z.string().optional(),\n});\n\nconst ThinkingContentSchema = z.object({\n type: z.literal(\"thinking\"),\n thinking: z.string(),\n thinkingSignature: z.string().optional(),\n});\n\nconst ImageContentSchema = z.object({\n type: z.literal(\"image\"),\n data: z.string(),\n mimeType: z.string(),\n});\n\nconst ToolCallSchema = z.object({\n type: z.literal(\"toolCall\"),\n id: z.string(),\n name: z.string(),\n arguments: z.record(z.string(), z.unknown()),\n thoughtSignature: z.string().optional(),\n});\n\nconst ContentSchema = z.union([\n TextContentSchema,\n ThinkingContentSchema,\n ImageContentSchema,\n ToolCallSchema,\n]);\n\nconst UsageSchema = z.object({\n input: z.number(),\n output: z.number(),\n cacheRead: z.number(),\n cacheWrite: z.number(),\n totalTokens: z.number(),\n cost: z.object({\n input: z.number(),\n output: z.number(),\n cacheRead: z.number(),\n cacheWrite: z.number(),\n total: z.number(),\n }),\n});\n\nconst MessageSchema = z.union([\n z.object({\n role: z.literal(\"user\"),\n content: z.union([z.string(), z.array(ContentSchema)]),\n timestamp: z.number(),\n }),\n z.object({\n role: z.literal(\"assistant\"),\n content: z.array(ContentSchema),\n api: z.string(),\n provider: z.string(),\n model: z.string(),\n usage: UsageSchema,\n stopReason: z.string(),\n errorMessage: z.string().optional(),\n timestamp: z.number(),\n }),\n z.object({\n role: z.literal(\"toolResult\"),\n toolCallId: z.string(),\n toolName: z.string(),\n content: z.array(ContentSchema),\n details: z.unknown().optional(),\n isError: z.boolean(),\n timestamp: z.number(),\n }),\n]);\n\nconst TraceSchema = z.object({\n type: z.string(),\n timestamp: z.number().optional(),\n});\n\nconst workflowStatusSchema = z.object({\n status: z.enum(SESSION_STATUSES),\n error: z\n .object({\n name: z.string(),\n message: z.string(),\n })\n .optional(),\n output: z.any().optional(),\n});\n\nconst sessionDetailSchema = sessionBaseSchema.extend({\n workflow: workflowStatusSchema,\n messages: z.array(MessageSchema),\n trace: z.array(TraceSchema),\n summaries: z.array(\n z.object({\n turn: z.number(),\n assistant: z.any().nullable(),\n summary: z.string().nullable(),\n }),\n ),\n});\n\nconst messageAckSchema = z.object({\n status: z.enum(SESSION_STATUSES),\n});\n\nexport { messageAckSchema, sessionBaseSchema, sessionDetailSchema, workflowStatusSchema };\n"],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { PiSessionStatus, PiSteeringMode } from "./constants.js";
2
+ import { InstantiatedFragmentFromDefinition } from "@fragno-dev/core";
3
+ import { TxResult } from "@fragno-dev/db";
4
+ import { AgentEvent, AgentMessage, AgentOptions, AgentTool, StreamFn, ThinkingLevel } from "@mariozechner/pi-agent-core";
5
+ import { Api, Model } from "@mariozechner/pi-ai";
6
+ import { InstanceStatus, WorkflowsHistoryStep, workflowsFragmentDefinition } from "@fragno-dev/workflows";
7
+
8
+ //#region src/pi/types.d.ts
9
+ type WorkflowsService = InstantiatedFragmentFromDefinition<typeof workflowsFragmentDefinition>["services"];
10
+ type PiSession = {
11
+ id: string;
12
+ name: string | null;
13
+ status: PiSessionStatus;
14
+ agent: string;
15
+ workflowInstanceId: string | null;
16
+ steeringMode: PiSteeringMode;
17
+ metadata: unknown;
18
+ tags: string[];
19
+ createdAt: Date;
20
+ updatedAt: Date;
21
+ };
22
+ type PiTurnSummary = {
23
+ turn: number;
24
+ assistant: AgentMessage | null;
25
+ summary: string | null;
26
+ };
27
+ type PiWorkflowsInstanceStatus = InstanceStatus;
28
+ type PiWorkflowHistoryStep = WorkflowsHistoryStep;
29
+ type PiWorkflowsService = Pick<WorkflowsService, "createInstance" | "getInstanceStatus" | "getInstanceRunNumber" | "sendEvent" | "listHistory"> & {
30
+ getInstanceStatusBatch?: (workflowName: string, instanceIds: string[]) => TxResult<PiWorkflowsInstanceStatus[], PiWorkflowsInstanceStatus[]>;
31
+ };
32
+ type PiAgentDefinition = {
33
+ name: string;
34
+ systemPrompt: string;
35
+ model: Model<Api>;
36
+ thinkingLevel?: ThinkingLevel;
37
+ tools?: string[];
38
+ toolConfig?: unknown;
39
+ maxTraceEvents?: number;
40
+ streamFn?: StreamFn;
41
+ convertToLlm?: AgentOptions["convertToLlm"];
42
+ transformContext?: AgentOptions["transformContext"];
43
+ getApiKey?: AgentOptions["getApiKey"];
44
+ thinkingBudgets?: AgentOptions["thinkingBudgets"];
45
+ maxRetryDelayMs?: AgentOptions["maxRetryDelayMs"];
46
+ onEvent?: (event: AgentEvent, ctx: {
47
+ sessionId: string;
48
+ turnId: string;
49
+ }) => void;
50
+ };
51
+ type PiAgentRegistry = Record<string, PiAgentDefinition>;
52
+ type PiToolFactoryContext = {
53
+ session: PiSession;
54
+ turnId: string;
55
+ toolConfig: unknown;
56
+ messages: AgentMessage[];
57
+ };
58
+ type PiToolFactory = AgentTool | ((ctx: PiToolFactoryContext) => AgentTool | Promise<AgentTool>);
59
+ type PiToolRegistry = Record<string, PiToolFactory>;
60
+ interface PiFragmentConfig {
61
+ agents: PiAgentRegistry;
62
+ tools: PiToolRegistry;
63
+ defaultSteeringMode?: PiSteeringMode;
64
+ }
65
+ //#endregion
66
+ export { PiAgentDefinition, PiAgentRegistry, PiFragmentConfig, PiSession, PiToolFactory, PiToolFactoryContext, PiToolRegistry, PiTurnSummary, PiWorkflowHistoryStep, PiWorkflowsInstanceStatus, PiWorkflowsService };
67
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/pi/types.ts"],"mappings":";;;;;;;;KAoBY,gBAAA,GAAmB,kCAAA,QACtB,2BAAA;AAAA,KAGG,SAAA;EACV,EAAA;EACA,IAAA;EACA,MAAA,EAAQ,eAAA;EACR,KAAA;EACA,kBAAA;EACA,YAAA,EAAc,cAAA;EACd,QAAA;EACA,IAAA;EACA,SAAA,EAAW,IAAA;EACX,SAAA,EAAW,IAAA;AAAA;AAAA,KAGD,aAAA;EACV,IAAA;EACA,SAAA,EAAW,YAAA;EACX,OAAA;AAAA;AAAA,KAGU,yBAAA,GAA4B,cAAA;AAAA,KAE5B,qBAAA,GAAwB,oBAAA;AAAA,KAExB,kBAAA,GAAqB,IAAA,CAC/B,gBAAA;EAGA,sBAAA,IACE,YAAA,UACA,WAAA,eACG,QAAA,CAAS,yBAAA,IAA6B,yBAAA;AAAA;AAAA,KAGjC,iBAAA;EACV,IAAA;EACA,YAAA;EACA,KAAA,EAAO,KAAA,CAAM,GAAA;EACb,aAAA,GAAgB,aAAA;EAChB,KAAA;EACA,UAAA;EACA,cAAA;EACA,QAAA,GAAW,QAAA;EACX,YAAA,GAAe,YAAA;EACf,gBAAA,GAAmB,YAAA;EACnB,SAAA,GAAY,YAAA;EACZ,eAAA,GAAkB,YAAA;EAClB,eAAA,GAAkB,YAAA;EAClB,OAAA,IAAW,KAAA,EAAO,UAAA,EAAY,GAAA;IAAO,SAAA;IAAmB,MAAA;EAAA;AAAA;AAAA,KAG9C,eAAA,GAAkB,MAAA,SAAe,iBAAA;AAAA,KAEjC,oBAAA;EACV,OAAA,EAAS,SAAA;EACT,MAAA;EACA,UAAA;EACA,QAAA,EAAU,YAAA;AAAA;AAAA,KAGA,aAAA,GACR,SAAA,KACE,GAAA,EAAK,oBAAA,KAAyB,SAAA,GAAY,OAAA,CAAQ,SAAA;AAAA,KAE5C,cAAA,GAAiB,MAAA,SAAe,aAAA;AAAA,UAE3B,gBAAA;EACf,MAAA,EAAQ,eAAA;EACR,KAAA,EAAO,cAAA;EACP,mBAAA,GAAsB,cAAA;AAAA"}
@@ -0,0 +1,31 @@
1
+ import { PiAgentRegistry, PiToolRegistry } from "./types.js";
2
+ import { z } from "zod";
3
+ import { AgentMessage } from "@mariozechner/pi-agent-core";
4
+ import * as _fragno_dev_workflows0 from "@fragno-dev/workflows";
5
+
6
+ //#region src/pi/workflow.d.ts
7
+ declare const PI_WORKFLOW_NAME = "agent-loop-workflow";
8
+ type PiAgentLoopParams = {
9
+ sessionId: string;
10
+ agentName: string;
11
+ systemPrompt?: string;
12
+ initialMessages?: AgentMessage[];
13
+ };
14
+ type PiWorkflowsOptions = {
15
+ agents: PiAgentRegistry;
16
+ tools: PiToolRegistry;
17
+ };
18
+ declare const agentLoopWorkflow: (options: PiWorkflowsOptions) => _fragno_dev_workflows0.WorkflowDefinition<PiAgentLoopParams, {
19
+ messages: AgentMessage[];
20
+ }, z.ZodType<PiAgentLoopParams, unknown, z.core.$ZodTypeInternals<PiAgentLoopParams, unknown>>, undefined>;
21
+ type PiWorkflowsRegistry = {
22
+ agentLoop: ReturnType<typeof agentLoopWorkflow>;
23
+ };
24
+ declare const createPiWorkflows: (options: PiWorkflowsOptions) => {
25
+ agentLoop: _fragno_dev_workflows0.WorkflowDefinition<PiAgentLoopParams, {
26
+ messages: AgentMessage[];
27
+ }, z.ZodType<PiAgentLoopParams, unknown, z.core.$ZodTypeInternals<PiAgentLoopParams, unknown>>, undefined>;
28
+ };
29
+ //#endregion
30
+ export { PI_WORKFLOW_NAME, PiWorkflowsRegistry, createPiWorkflows };
31
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","names":[],"sources":["../../../src/pi/workflow.ts"],"mappings":";;;;;;cA4Ba,gBAAA;AAAA,KAED,iBAAA;EACV,SAAA;EACA,SAAA;EACA,YAAA;EACA,eAAA,GAAkB,YAAA;AAAA;AAAA,KAGR,kBAAA;EACV,MAAA,EAAQ,eAAA;EACR,KAAA,EAAO,cAAA;AAAA;AAAA,cA6PH,iBAAA,GAAqB,OAAA,EAAS,kBAAA,4BAAkB,kBAAA,CAAA,iBAAA;;;KAwD1C,mBAAA;EACV,SAAA,EAAW,UAAA,QAAkB,iBAAA;AAAA;AAAA,cAGlB,iBAAA,GAAqB,OAAA,EAAS,kBAAA"}