@agent-factory-platform/client 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,343 @@
1
+ import { create, fromJson, toJson } from "@bufbuild/protobuf";
2
+ import { ValueSchema } from "@bufbuild/protobuf/wkt";
3
+ import { CancelRunRequestSchema, FollowEventsRequestSchema, GetSessionRequestSchema, GetRunRequestSchema, InteractionResolutionKind, ResolveInteractionRequestSchema, SubmitInputRequestSchema, TextBlockSchema, ContentBlockSchema, } from "./gen/agentfactory/agent/v1/agent_pb.js";
4
+ export class AgentSessionModel {
5
+ transport;
6
+ #state;
7
+ #listeners = new Set();
8
+ #controller;
9
+ constructor(transport, sessionId) {
10
+ this.transport = transport;
11
+ this.#state = { status: "idle", sessionId, events: [], projection: emptyProjection() };
12
+ }
13
+ getSnapshot = () => this.#state;
14
+ subscribe = (listener) => { this.#listeners.add(listener); return () => this.#listeners.delete(listener); };
15
+ async submitText(text, explicitSkillSlug = "") {
16
+ if (!text.trim())
17
+ throw new Error("message is required");
18
+ return this.submitContent([textBlock(text.trim())], explicitSkillSlug);
19
+ }
20
+ async submitContent(content, explicitSkillSlug = "") {
21
+ if (!content.length)
22
+ throw new Error("content is required");
23
+ if (this.#state.status === "submitting" || this.#state.status === "queued" || this.#state.status === "running" || this.#state.status === "waiting_for_input")
24
+ throw new Error("session already has an active command");
25
+ const blocks = [...content];
26
+ const text = blocks.flatMap((block) => block.block.case === "text" ? [block.block.value.text] : []).join("\n");
27
+ return this.#submit({ text, content: blocks, explicitSkillSlug, idempotencyKey: crypto.randomUUID() });
28
+ }
29
+ async retry() {
30
+ if (this.#state.run?.id)
31
+ return this.resume();
32
+ if (!this.#state.retryDraft)
33
+ throw new Error("no submission is available to retry");
34
+ return this.#submit(this.#state.retryDraft);
35
+ }
36
+ async #submit(draft) {
37
+ const controller = new AbortController();
38
+ this.#controller = controller;
39
+ this.#set({ ...this.#state, status: "submitting", error: undefined, retryDraft: draft });
40
+ let receipt;
41
+ try {
42
+ receipt = await this.transport.submitInput(submitRequest(this.#state.sessionId, draft.content ?? [textBlock(draft.text)], "followup", draft.explicitSkillSlug, draft.idempotencyKey), { signal: controller.signal });
43
+ }
44
+ catch (cause) {
45
+ const error = cause instanceof Error ? cause : new Error(String(cause));
46
+ this.#set({ ...this.#state, status: "disconnected", error, retryDraft: draft });
47
+ throw error;
48
+ }
49
+ this.#set({ ...this.#state, status: "queued", error: undefined, retryDraft: undefined, run: { id: receipt.runId, sessionId: this.#state.sessionId, status: "queued" } });
50
+ return this.#follow(receipt.runId, controller.signal);
51
+ }
52
+ async steerText(text) { return this.#submitActive(text, "steer"); }
53
+ async injectText(text) { return this.#submitActive(text, "inject"); }
54
+ async bootstrap() {
55
+ const controller = new AbortController();
56
+ this.#controller?.abort();
57
+ this.#controller = controller;
58
+ try {
59
+ const session = await this.transport.getSession(create(GetSessionRequestSchema, { sessionId: this.#state.sessionId }), { signal: controller.signal });
60
+ const events = [];
61
+ if (session.lastEventSeq > 0n) {
62
+ for await (const event of this.transport.followEvents(create(FollowEventsRequestSchema, { sessionId: session.id, afterSeq: 0n }), { signal: controller.signal })) {
63
+ events.push(event);
64
+ if (event.seq >= session.lastEventSeq)
65
+ break;
66
+ }
67
+ if (events.at(-1)?.seq !== session.lastEventSeq) {
68
+ throw new Error(`event replay ended before checkpoint ${session.lastEventSeq}`);
69
+ }
70
+ }
71
+ const run = session.activeRunId
72
+ ? await this.transport.getRun(create(GetRunRequestSchema, { sessionId: session.id, runId: session.activeRunId }), { signal: controller.signal })
73
+ : undefined;
74
+ this.hydrate(events, run);
75
+ if (run && (run.status === "queued" || run.status === "running"))
76
+ return this.#follow(run.id, controller.signal);
77
+ return run;
78
+ }
79
+ catch (cause) {
80
+ if (controller.signal.aborted)
81
+ throw cause;
82
+ const error = cause instanceof Error ? cause : new Error(String(cause));
83
+ this.#set({ ...this.#state, status: "disconnected", error });
84
+ throw error;
85
+ }
86
+ }
87
+ async resolveInteraction(interactionId, resolution, payload) {
88
+ const runId = this.#state.run?.id;
89
+ if (!runId || this.#state.status !== "waiting_for_input")
90
+ throw new Error("no interaction is waiting for input");
91
+ const controller = new AbortController();
92
+ this.#controller = controller;
93
+ await this.transport.resolveInteraction(interactionRequest(interactionId, resolution, payload), { signal: controller.signal });
94
+ this.#set({ ...this.#state, status: "running", error: undefined });
95
+ return this.#follow(runId, controller.signal);
96
+ }
97
+ hydrate(events, run) {
98
+ let expected = 1n;
99
+ for (const event of events) {
100
+ if (event.seq !== expected)
101
+ throw new Error(`event sequence gap: expected ${expected}, got ${event.seq}`);
102
+ expected += 1n;
103
+ }
104
+ const normalized = run ? normalizeRun(run) : { status: "idle", error: undefined };
105
+ this.#set({
106
+ ...this.#state,
107
+ events: [...events],
108
+ projection: project(events),
109
+ run,
110
+ ...normalized,
111
+ });
112
+ }
113
+ async resume() {
114
+ const runId = this.#state.run?.id;
115
+ if (!runId)
116
+ throw new Error("no run is available to resume");
117
+ const controller = new AbortController();
118
+ this.#controller = controller;
119
+ this.#set({ ...this.#state, status: "running", error: undefined });
120
+ if (this.#state.events.some((event) => event.runId === runId && event.event.case === "lifecycle" && event.event.value.kind === "run_finished")) {
121
+ const run = await this.transport.getRun(create(GetRunRequestSchema, { sessionId: this.#state.sessionId, runId }), { signal: controller.signal });
122
+ this.#set({ ...this.#state, ...normalizeRun(run), run });
123
+ return run;
124
+ }
125
+ return this.#follow(runId, controller.signal);
126
+ }
127
+ async cancel() {
128
+ this.#controller?.abort();
129
+ const runId = this.#state.run?.id;
130
+ if (!runId) {
131
+ this.#set({ ...this.#state, status: "idle" });
132
+ return;
133
+ }
134
+ const run = await this.transport.cancelRun(create(CancelRunRequestSchema, { sessionId: this.#state.sessionId, runId }));
135
+ this.#set({ ...this.#state, ...normalizeRun(run), run });
136
+ }
137
+ async #submitActive(text, deliveryMode) {
138
+ if (!text.trim())
139
+ throw new Error("message is required");
140
+ if (this.#state.status !== "running")
141
+ throw new Error(`${deliveryMode} requires an active run`);
142
+ return this.transport.submitInput(submitRequest(this.#state.sessionId, [textBlock(text)], deliveryMode, "", crypto.randomUUID()), { signal: this.#controller?.signal });
143
+ }
144
+ async #follow(runId, signal) {
145
+ try {
146
+ for await (const event of this.transport.followEvents(create(FollowEventsRequestSchema, { sessionId: this.#state.sessionId, afterSeq: this.#state.projection.lastSeq }), { signal })) {
147
+ this.#append(event);
148
+ if (event.runId !== runId || event.event.case !== "lifecycle")
149
+ continue;
150
+ if (event.event.value.kind === "run_waiting")
151
+ break;
152
+ if (event.event.value.kind === "run_finished")
153
+ break;
154
+ }
155
+ const run = await this.transport.getRun(create(GetRunRequestSchema, { sessionId: this.#state.sessionId, runId }), { signal });
156
+ this.#set({ ...this.#state, ...normalizeRun(run), run });
157
+ return run;
158
+ }
159
+ catch (cause) {
160
+ if (signal.aborted)
161
+ throw cause;
162
+ const error = cause instanceof Error ? cause : new Error(String(cause));
163
+ this.#set({ ...this.#state, status: "disconnected", error, run: this.#state.run ?? { id: runId } });
164
+ throw error;
165
+ }
166
+ }
167
+ #append(event) {
168
+ const lastSeq = this.#state.projection.lastSeq;
169
+ if (event.seq <= lastSeq)
170
+ return;
171
+ if (event.seq !== lastSeq + 1n)
172
+ throw new Error(`event sequence gap: expected ${lastSeq + 1n}, got ${event.seq}`);
173
+ const events = [...this.#state.events, event];
174
+ this.#set({ ...this.#state, events, projection: project(events) });
175
+ }
176
+ #set(state) { this.#state = state; this.#listeners.forEach((listener) => listener()); }
177
+ }
178
+ function textBlock(text) {
179
+ return create(ContentBlockSchema, { block: { case: "text", value: create(TextBlockSchema, { text }) } });
180
+ }
181
+ function submitRequest(sessionId, content, deliveryMode, explicitSkillSlug, idempotencyKey) {
182
+ const request = create(SubmitInputRequestSchema, {
183
+ sessionId,
184
+ content,
185
+ deliveryMode,
186
+ explicitSkillSlug,
187
+ idempotencyKey,
188
+ });
189
+ return request;
190
+ }
191
+ function interactionRequest(interactionId, resolution, payload) {
192
+ return create(ResolveInteractionRequestSchema, {
193
+ interactionId,
194
+ resolution: resolution === "confirmed" ? InteractionResolutionKind.CONFIRMED : resolution === "rejected" ? InteractionResolutionKind.REJECTED : InteractionResolutionKind.ANSWERED,
195
+ payload: payload === undefined ? undefined : fromJson(ValueSchema, payload),
196
+ });
197
+ }
198
+ export function project(events) {
199
+ const items = [];
200
+ const tools = new Map();
201
+ const actions = new Map();
202
+ const assistantStreams = new Map();
203
+ let text = "";
204
+ events.forEach(assertReplayableEvent);
205
+ const failedAttempts = new Set(events.flatMap((event) => event.event.case === "model" && event.event.value.phase === "attempt_failed"
206
+ ? [executionKey(event, event.event.value.step, event.event.value.attempt)]
207
+ : []));
208
+ for (const event of events) {
209
+ if (event.event.case === "opaque")
210
+ continue;
211
+ switch (event.event.case) {
212
+ case "message": {
213
+ const value = event.event.value;
214
+ const messageText = value.content.flatMap((block) => block.block.case === "text" ? [block.block.value.text] : []).join("\n");
215
+ const streamKey = value.role === "assistant" && value.step > 0
216
+ ? executionKey(event, value.step, value.attempt)
217
+ : "";
218
+ if (value.delta && failedAttempts.has(streamKey))
219
+ break;
220
+ if (messageText) {
221
+ if (value.role === "assistant")
222
+ text = value.delta ? text + messageText : messageText;
223
+ const streamed = value.role === "assistant" && value.step > 0 ? assistantStreams.get(streamKey) : undefined;
224
+ if (streamed) {
225
+ streamed.lastUpdatedSeq = event.seq;
226
+ streamed.text = value.delta ? streamed.text + messageText : messageText;
227
+ }
228
+ else {
229
+ const item = { slot: "message-content", anchorSeq: event.seq, lastUpdatedSeq: event.seq, role: value.role, text: messageText };
230
+ items.push(item);
231
+ if (value.delta && value.role === "assistant" && value.step > 0)
232
+ assistantStreams.set(streamKey, item);
233
+ }
234
+ }
235
+ for (const [blockIndex, block] of value.content.entries()) {
236
+ if (block.block.case === "resource")
237
+ items.push({ slot: "citation", anchorSeq: event.seq, lastUpdatedSeq: event.seq, blockIndex, resourceId: block.block.value.resourceId, mediaType: block.block.value.mediaType });
238
+ if (block.block.case === "citation")
239
+ items.push({
240
+ slot: "citation",
241
+ anchorSeq: event.seq,
242
+ lastUpdatedSeq: event.seq,
243
+ blockIndex,
244
+ resourceId: block.block.value.resourceId,
245
+ label: block.block.value.label,
246
+ uri: block.block.value.uri,
247
+ excerpt: block.block.value.excerpt || undefined,
248
+ });
249
+ if (block.block.case === "data") {
250
+ items.push({ slot: "data", anchorSeq: event.seq, lastUpdatedSeq: event.seq, blockIndex, name: block.block.value.slot, value: jsonValue(block.block.value.value) });
251
+ }
252
+ }
253
+ break;
254
+ }
255
+ case "tool": {
256
+ const value = event.event.value;
257
+ const previous = tools.get(value.callId);
258
+ const item = {
259
+ slot: "tool-card",
260
+ anchorSeq: previous?.anchorSeq ?? event.seq,
261
+ lastUpdatedSeq: event.seq,
262
+ phase: value.phase,
263
+ callId: value.callId,
264
+ name: value.name || previous?.name || "",
265
+ arguments: value.arguments ? jsonValue(value.arguments) : previous?.arguments,
266
+ result: value.result ? jsonValue(value.result) : previous?.result,
267
+ error: Boolean(previous?.error || value.isError),
268
+ };
269
+ if (previous)
270
+ Object.assign(previous, item);
271
+ else {
272
+ tools.set(value.callId, item);
273
+ items.push(item);
274
+ }
275
+ break;
276
+ }
277
+ case "interaction": {
278
+ const value = event.event.value;
279
+ const previous = actions.get(value.interactionId);
280
+ const payload = jsonValue(value.payload);
281
+ const item = {
282
+ slot: "action",
283
+ anchorSeq: previous?.anchorSeq ?? event.seq,
284
+ lastUpdatedSeq: event.seq,
285
+ interactionId: value.interactionId,
286
+ kind: value.kind || previous?.kind || "",
287
+ phase: value.phase,
288
+ payload: value.phase === "resolved" ? previous?.payload : payload ?? previous?.payload,
289
+ resolution: value.phase === "resolved" ? value.resolution : previous?.resolution,
290
+ response: value.phase === "resolved" ? payload : previous?.response,
291
+ };
292
+ if (previous)
293
+ Object.assign(previous, item);
294
+ else {
295
+ actions.set(value.interactionId, item);
296
+ items.push(item);
297
+ }
298
+ break;
299
+ }
300
+ case "lifecycle":
301
+ items.push({ slot: "trace-item", anchorSeq: event.seq, lastUpdatedSeq: event.seq, kind: event.event.value.kind, status: event.event.value.status });
302
+ break;
303
+ }
304
+ }
305
+ return { lastSeq: events.at(-1)?.seq ?? 0n, items, text };
306
+ }
307
+ function assertReplayableEvent(event) {
308
+ if (event.formatVersion !== 1) {
309
+ if (event.event.case === "opaque" && event.ignorable)
310
+ return;
311
+ throw new Error(`unsupported session event format version: ${event.formatVersion}`);
312
+ }
313
+ if (event.event.case === "opaque") {
314
+ if (event.ignorable)
315
+ return;
316
+ throw new Error(`unknown required session event: ${event.eventType || "(empty)"}`);
317
+ }
318
+ if (!event.event.case)
319
+ throw new Error(`unknown required session event: ${event.eventType || "(empty)"}`);
320
+ }
321
+ function executionKey(event, step, attempt) {
322
+ if (!event.runId)
323
+ throw new Error("run_id is required for model attempts and assistant streams");
324
+ return `${event.runId}:${step}:${attempt}`;
325
+ }
326
+ function emptyProjection() { return { lastSeq: 0n, items: [], text: "" }; }
327
+ function jsonValue(value) { return value ? toJson(ValueSchema, value) : undefined; }
328
+ function normalizeRun(run) {
329
+ switch (run.status) {
330
+ case "queued":
331
+ case "running":
332
+ case "waiting_for_input":
333
+ case "completed":
334
+ case "cancelled":
335
+ case "max_steps_reached":
336
+ return { status: run.status };
337
+ case "failed":
338
+ return { status: "failed", error: run.errorCode ? new Error(run.errorCode) : undefined };
339
+ default:
340
+ return { status: "failed", error: new Error(`unknown run status: ${run.status || "(empty)"}`) };
341
+ }
342
+ }
343
+ //# sourceMappingURL=session-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-model.js","sourceRoot":"","sources":["../src/session-model.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "@agent-factory-platform/client",
3
+ "version": "0.2.0",
4
+ "description": "Generated Agent Factory contracts and Connect transports.",
5
+ "license": "MIT OR Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/JingYeoh/agent-factory.git"
9
+ },
10
+ "publishConfig": {
11
+ "access": "public",
12
+ "provenance": true
13
+ },
14
+ "type": "module",
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ },
23
+ "./gen/*": {
24
+ "types": "./dist/gen/*.d.ts",
25
+ "import": "./dist/gen/*.js"
26
+ }
27
+ },
28
+ "dependencies": {
29
+ "@bufbuild/protobuf": "^2.2.3",
30
+ "@connectrpc/connect": "^2.0.0",
31
+ "@connectrpc/connect-web": "^2.0.0"
32
+ },
33
+ "devDependencies": {
34
+ "typescript": "^5.7.2",
35
+ "vitest": "^4.1.9"
36
+ },
37
+ "scripts": {
38
+ "lint": "tsc -p tsconfig.json --noEmit",
39
+ "test": "vitest run",
40
+ "build": "node ../../scripts/clean-package-dist.mjs . && tsc -p tsconfig.build.json",
41
+ "pack:check": "pnpm pack --pack-destination ../../.artifacts/npm"
42
+ }
43
+ }