@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.
- package/LICENSE.md +16 -0
- package/README.md +107 -0
- package/bin/run.js +72 -0
- package/dist/browser/client/react.d.ts +264 -0
- package/dist/browser/client/react.d.ts.map +1 -0
- package/dist/browser/client/react.js +84 -0
- package/dist/browser/client/react.js.map +1 -0
- package/dist/browser/client/solid.d.ts +266 -0
- package/dist/browser/client/solid.d.ts.map +1 -0
- package/dist/browser/client/solid.js +122 -0
- package/dist/browser/client/solid.js.map +1 -0
- package/dist/browser/client/svelte.d.ts +261 -0
- package/dist/browser/client/svelte.d.ts.map +1 -0
- package/dist/browser/client/svelte.js +126 -0
- package/dist/browser/client/svelte.js.map +1 -0
- package/dist/browser/client/vanilla.d.ts +238 -0
- package/dist/browser/client/vanilla.d.ts.map +1 -0
- package/dist/browser/client/vanilla.js +11 -0
- package/dist/browser/client/vanilla.js.map +1 -0
- package/dist/browser/client/vue.d.ts +264 -0
- package/dist/browser/client/vue.d.ts.map +1 -0
- package/dist/browser/client/vue.js +125 -0
- package/dist/browser/client/vue.js.map +1 -0
- package/dist/browser/client-Bk-J98pf.d.ts +679 -0
- package/dist/browser/client-Bk-J98pf.d.ts.map +1 -0
- package/dist/browser/factory-DKoO_lRA.js +2470 -0
- package/dist/browser/factory-DKoO_lRA.js.map +1 -0
- package/dist/browser/index.d.ts +776 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +3 -0
- package/dist/cli/cli.d.ts +1 -0
- package/dist/cli/cli.js +10 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/config.d.ts +13 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +64 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/http/client.js +95 -0
- package/dist/cli/http/client.js.map +1 -0
- package/dist/cli/mod.d.ts +62 -0
- package/dist/cli/mod.d.ts.map +1 -0
- package/dist/cli/mod.js +644 -0
- package/dist/cli/mod.js.map +1 -0
- package/dist/cli/render/index.d.ts +23 -0
- package/dist/cli/render/index.d.ts.map +1 -0
- package/dist/cli/render/index.js +37 -0
- package/dist/cli/render/index.js.map +1 -0
- package/dist/node/index.d.ts +10 -0
- package/dist/node/index.js +9 -0
- package/dist/node/pi/clients.d.ts +240 -0
- package/dist/node/pi/clients.d.ts.map +1 -0
- package/dist/node/pi/clients.js +18 -0
- package/dist/node/pi/clients.js.map +1 -0
- package/dist/node/pi/constants.d.ts +9 -0
- package/dist/node/pi/constants.d.ts.map +1 -0
- package/dist/node/pi/constants.js +22 -0
- package/dist/node/pi/constants.js.map +1 -0
- package/dist/node/pi/definition.d.ts +13 -0
- package/dist/node/pi/definition.d.ts.map +1 -0
- package/dist/node/pi/definition.js +10 -0
- package/dist/node/pi/definition.js.map +1 -0
- package/dist/node/pi/dsl.d.ts +24 -0
- package/dist/node/pi/dsl.d.ts.map +1 -0
- package/dist/node/pi/dsl.js +57 -0
- package/dist/node/pi/dsl.js.map +1 -0
- package/dist/node/pi/factory.d.ts +220 -0
- package/dist/node/pi/factory.d.ts.map +1 -0
- package/dist/node/pi/factory.js +12 -0
- package/dist/node/pi/factory.js.map +1 -0
- package/dist/node/pi/mappers.js +47 -0
- package/dist/node/pi/mappers.js.map +1 -0
- package/dist/node/pi/route-schemas.js +112 -0
- package/dist/node/pi/route-schemas.js.map +1 -0
- package/dist/node/pi/types.d.ts +67 -0
- package/dist/node/pi/types.d.ts.map +1 -0
- package/dist/node/pi/workflow.d.ts +31 -0
- package/dist/node/pi/workflow.d.ts.map +1 -0
- package/dist/node/pi/workflow.js +242 -0
- package/dist/node/pi/workflow.js.map +1 -0
- package/dist/node/routes.d.ts +217 -0
- package/dist/node/routes.d.ts.map +1 -0
- package/dist/node/routes.js +328 -0
- package/dist/node/routes.js.map +1 -0
- package/dist/node/schema.js +12 -0
- package/dist/node/schema.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- 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"}
|