@polpo-ai/server 0.4.10 → 0.5.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.
@@ -13,13 +13,30 @@
13
13
  * - **Agent-direct mode** (`agent` field): The caller talks directly to a
14
14
  * specific agent. The agent uses its own model, system prompt, and coding
15
15
  * tools — bypassing the orchestrator entirely.
16
+ *
17
+ * LLM calls use Vercel AI SDK's streamText/generateText directly.
18
+ * Tools are passed WITHOUT execute functions — execution is manual via
19
+ * the effectiveToolExecutor callback from deps.
16
20
  */
17
21
  import { OpenAPIHono } from "@hono/zod-openapi";
22
+ import { type LanguageModel } from "ai";
23
+ /**
24
+ * Minimal model info needed by the completions route.
25
+ * Matches the shape returned by resolveAgentModel.
26
+ */
27
+ interface ResolvedModelInfo {
28
+ aiModel: LanguageModel;
29
+ provider: string;
30
+ contextWindow: number;
31
+ maxTokens: number;
32
+ }
18
33
  /**
19
34
  * Completion route dependencies.
20
35
  *
21
36
  * The consumer provides LLM resolution and tool creation — this allows
22
37
  * the route to run on any runtime (Node.js with full tools, or edge with no tools).
38
+ *
39
+ * LLM streaming is handled directly via AI SDK streamText/generateText.
23
40
  */
24
41
  export interface CompletionRouteDeps {
25
42
  getAgents: () => Promise<any[]>;
@@ -29,10 +46,10 @@ export interface CompletionRouteDeps {
29
46
  getAttachmentStore: () => any;
30
47
  getStore: () => any;
31
48
  emit: (event: string, data: any) => void;
32
- /** Resolve agent model + streaming options. */
49
+ /** Resolve agent model. Must return an object with aiModel (LanguageModel), provider, contextWindow, maxTokens, and providerOptions. */
33
50
  resolveAgentModel: (agentConfig: any, settingsReasoning?: string) => Promise<{
34
- model: any;
35
- streamOpts: any;
51
+ model: ResolvedModelInfo;
52
+ providerOptions?: Record<string, any>;
36
53
  }>;
37
54
  /** Build agent system prompt for conversational mode. */
38
55
  buildAgentPrompt: (agentConfig: any) => string | Promise<string>;
@@ -41,21 +58,16 @@ export interface CompletionRouteDeps {
41
58
  tools: any[];
42
59
  executor: (name: string, args: Record<string, unknown>) => Promise<string>;
43
60
  }>;
44
- /** LLM streaming function (streamSimple from pi-ai). */
45
- streamLLM: (model: any, opts: {
46
- systemPrompt: string;
47
- messages: any[];
48
- tools: any[];
49
- }, streamOpts: any) => any;
50
61
  /** Orchestrator mode support (optional — returns 501 if not provided). */
51
62
  resolveOrchestratorContext?: () => Promise<{
52
63
  systemPrompt: string;
53
- model: any;
54
- streamOpts: any;
64
+ model: ResolvedModelInfo;
65
+ providerOptions?: Record<string, any>;
55
66
  tools: any[];
56
67
  executor: (name: string, args: Record<string, unknown>) => Promise<string>;
57
68
  isInteractive: (name: string) => boolean;
58
69
  }>;
59
70
  }
60
71
  export declare function completionRoutes(getDeps: () => CompletionRouteDeps, apiKeys?: string[]): OpenAPIHono;
72
+ export {};
61
73
  //# sourceMappingURL=completions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAwVhE;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,CAAC;IAC3B,kBAAkB,EAAE,MAAM,GAAG,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACzC,+CAA+C;IAC/C,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAC9G,yDAAyD;IACzD,gBAAgB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,gFAAgF;IAChF,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC;QAC/C,KAAK,EAAE,GAAG,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAC5E,CAAC,CAAC;IACH,wDAAwD;IACxD,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,EAAE,GAAG,EAAE,CAAA;KAAE,EAAE,UAAU,EAAE,GAAG,KAAK,GAAG,CAAC;IAC/G,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,MAAM,OAAO,CAAC;QACzC,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,GAAG,CAAC;QACX,UAAU,EAAE,GAAG,CAAC;QAChB,KAAK,EAAE,GAAG,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;KAC1C,CAAC,CAAC;CACJ;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,WAAW,CA2mBpG"}
1
+ {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAIhE,OAAO,EAAwC,KAAK,aAAa,EAA2B,MAAM,IAAI,CAAC;AAsWvG;;;GAGG;AACH,UAAU,iBAAiB;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,CAAC;IACrB,cAAc,EAAE,MAAM,GAAG,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,CAAC;IAC3B,kBAAkB,EAAE,MAAM,GAAG,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,CAAC;IACpB,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACzC,wIAAwI;IACxI,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,iBAAiB,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;QAC3E,KAAK,EAAE,iBAAiB,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACvC,CAAC,CAAC;IACH,yDAAyD;IACzD,gBAAgB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjE,gFAAgF;IAChF,iBAAiB,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC;QAC/C,KAAK,EAAE,GAAG,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;KAC5E,CAAC,CAAC;IACH,0EAA0E;IAC1E,0BAA0B,CAAC,EAAE,MAAM,OAAO,CAAC;QACzC,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,iBAAiB,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACtC,KAAK,EAAE,GAAG,EAAE,CAAC;QACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3E,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;KAC1C,CAAC,CAAC;CACJ;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,mBAAmB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,WAAW,CA8pBpG"}
@@ -13,11 +13,16 @@
13
13
  * - **Agent-direct mode** (`agent` field): The caller talks directly to a
14
14
  * specific agent. The agent uses its own model, system prompt, and coding
15
15
  * tools — bypassing the orchestrator entirely.
16
+ *
17
+ * LLM calls use Vercel AI SDK's streamText/generateText directly.
18
+ * Tools are passed WITHOUT execute functions — execution is manual via
19
+ * the effectiveToolExecutor callback from deps.
16
20
  */
17
21
  import { OpenAPIHono, createRoute, z } from "@hono/zod-openapi";
18
22
  import { streamSSE } from "hono/streaming";
19
23
  import { nanoid } from "nanoid";
20
24
  import { agentMemoryScope, compactIfNeeded } from "@polpo-ai/core";
25
+ import { streamText, generateText, jsonSchema } from "ai";
21
26
  const MAX_TURNS = 20;
22
27
  /** Tools that write/modify files — emit file:changed after successful execution */
23
28
  const FILE_WRITE_TOOLS = {
@@ -183,7 +188,7 @@ function extractText(content) {
183
188
  .map((p) => p.text)
184
189
  .join("\n");
185
190
  }
186
- /** Resolve file content parts → text references. Called before toPiContent to inject attachment paths. */
191
+ /** Resolve file content parts → text references. Called before toAIContent to inject attachment paths. */
187
192
  async function resolveFileContentParts(content, attachmentStore, sessionId) {
188
193
  if (typeof content === "string" || !content.some((p) => p.type === "file"))
189
194
  return content;
@@ -214,8 +219,13 @@ async function resolveFileContentParts(content, attachmentStore, sessionId) {
214
219
  }
215
220
  return resolved;
216
221
  }
217
- /** Convert OpenAI-format content to pi-ai UserMessage content. */
218
- function toPiContent(content) {
222
+ /**
223
+ * Convert OpenAI-format content to AI SDK UserContent.
224
+ *
225
+ * AI SDK ImagePart: { type: "image", image: DataContent | URL, mediaType?: string }
226
+ * AI SDK TextPart: { type: "text", text: string }
227
+ */
228
+ function toAIContent(content) {
219
229
  if (typeof content === "string")
220
230
  return content;
221
231
  // Check if there are any image parts
@@ -224,7 +234,7 @@ function toPiContent(content) {
224
234
  // Text-only array → flatten to plain string
225
235
  return content.map((p) => p.text).join("\n");
226
236
  }
227
- // Mixed content → convert to pi-ai TextContent | ImageContent array
237
+ // Mixed content → convert to AI SDK TextPart | ImagePart array
228
238
  return content.map((p) => {
229
239
  if (p.type === "text") {
230
240
  return { type: "text", text: p.text };
@@ -233,35 +243,38 @@ function toPiContent(content) {
233
243
  const url = p.image_url.url;
234
244
  const match = url.match(/^data:([^;]+);base64,(.+)$/);
235
245
  if (match) {
236
- return { type: "image", data: match[2], mimeType: match[1] };
246
+ return { type: "image", image: match[2], mediaType: match[1] };
237
247
  }
238
- return { type: "image", data: url, mimeType: "image/png" };
248
+ return { type: "image", image: url, mediaType: "image/png" };
239
249
  }
240
250
  // file parts should have been resolved by resolveFileContentParts already
241
251
  return { type: "text", text: "" };
242
252
  }).filter((p) => p.type !== "text" || p.text !== "");
243
253
  }
254
+ /**
255
+ * Convert OpenAI-format messages from the request into AI SDK ModelMessage format.
256
+ *
257
+ * - System messages → extracted as extra context (appended to system prompt)
258
+ * - User messages → { role: "user", content } with AI SDK content parts
259
+ * - Assistant messages → { role: "assistant", content: string }
260
+ */
244
261
  async function convertMessages(messages, attachmentStore, sessionId) {
245
- const piMessages = [];
262
+ const aiMessages = [];
246
263
  const extraSystemParts = [];
247
264
  for (const msg of messages) {
248
265
  if (msg.role === "system") {
249
266
  extraSystemParts.push(extractText(msg.content));
250
267
  }
251
268
  else if (msg.role === "user") {
252
- // Resolve file content parts → text references (only in the pi-ai message, not persisted)
269
+ // Resolve file content parts → text references (only in the AI SDK message, not persisted)
253
270
  const resolvedContent = await resolveFileContentParts(msg.content, attachmentStore, sessionId ?? null);
254
- piMessages.push({ role: "user", content: toPiContent(resolvedContent), timestamp: Date.now() });
271
+ aiMessages.push({ role: "user", content: toAIContent(resolvedContent) });
255
272
  }
256
273
  else if (msg.role === "assistant") {
257
- piMessages.push({
258
- role: "user",
259
- content: `[Previous assistant response]\n${extractText(msg.content)}\n[End previous response]`,
260
- timestamp: Date.now(),
261
- });
274
+ aiMessages.push({ role: "assistant", content: extractText(msg.content) });
262
275
  }
263
276
  }
264
- return { piMessages, extraSystemParts };
277
+ return { aiMessages, extraSystemParts };
265
278
  }
266
279
  function sseChunk(id, delta, finishReason = null, extra) {
267
280
  return JSON.stringify({
@@ -278,26 +291,21 @@ function sseChunk(id, delta, finishReason = null, extra) {
278
291
  });
279
292
  }
280
293
  /**
281
- * Build a SummarizeFn from deps.streamLLM.
282
- * Collects all text deltas from a streaming LLM call and returns the full text.
294
+ * Build a SummarizeFn using AI SDK's generateText.
295
+ * Used by context compaction to summarize conversation history.
283
296
  */
284
- function buildSummarizeFn(deps, model, streamOpts) {
297
+ function buildSummarizeFn(m, providerOptions) {
285
298
  return async (msgs, prompt) => {
286
- const piStream = deps.streamLLM(model, {
287
- systemPrompt: prompt,
299
+ const result = await generateText({
300
+ model: m.aiModel,
301
+ system: prompt,
288
302
  messages: msgs,
289
- tools: [],
290
- }, streamOpts);
291
- let text = "";
292
- for await (const event of piStream) {
293
- if (event.type === "text_delta") {
294
- text += event.delta;
295
- }
296
- }
297
- return text.trim();
303
+ providerOptions,
304
+ });
305
+ return result.text.trim();
298
306
  };
299
307
  }
300
- function completionResponse(id, content, promptTokens, completionTokens) {
308
+ function completionResponse(id, content, usage) {
301
309
  return {
302
310
  id,
303
311
  object: "chat.completion",
@@ -309,12 +317,26 @@ function completionResponse(id, content, promptTokens, completionTokens) {
309
317
  finish_reason: "stop",
310
318
  }],
311
319
  usage: {
312
- prompt_tokens: promptTokens,
313
- completion_tokens: completionTokens,
314
- total_tokens: promptTokens + completionTokens,
320
+ prompt_tokens: usage.inputTokens ?? 0,
321
+ completion_tokens: usage.outputTokens ?? 0,
322
+ total_tokens: usage.totalTokens ?? 0,
315
323
  },
316
324
  };
317
325
  }
326
+ /**
327
+ * Convert Polpo tools to AI SDK tool format (without execute functions).
328
+ *
329
+ * AI SDK tools: Record<string, { description, inputSchema }>
330
+ * Tools without execute are "manual" — tool calls are returned but not auto-executed.
331
+ */
332
+ function toAITools(tools) {
333
+ if (!tools.length)
334
+ return {};
335
+ return Object.fromEntries(tools.map(t => [t.name, {
336
+ description: t.description,
337
+ inputSchema: jsonSchema(t.parameters),
338
+ }]));
339
+ }
318
340
  export function completionRoutes(getDeps, apiKeys) {
319
341
  const app = new OpenAPIHono();
320
342
  app.openapi(chatCompletionsRoute, async (c) => {
@@ -333,13 +355,13 @@ export function completionRoutes(getDeps, apiKeys) {
333
355
  // ── Resolve effective context (orchestrator vs agent-direct) ──
334
356
  let fullSystemPrompt;
335
357
  let m;
336
- let streamOpts;
358
+ let providerOpts;
337
359
  let effectiveTools;
338
360
  let effectiveToolExecutor;
339
361
  let isInteractiveFn;
340
362
  const attachmentStore = deps.getAttachmentStore();
341
363
  const rawSessionId = c.req.header("x-session-id") ?? null;
342
- const { piMessages, extraSystemParts } = await convertMessages(body.messages, attachmentStore, rawSessionId);
364
+ const { aiMessages, extraSystemParts } = await convertMessages(body.messages, attachmentStore, rawSessionId);
343
365
  if (agentMode) {
344
366
  // ── Agent-direct mode ──
345
367
  const agents = await deps.getAgents();
@@ -376,7 +398,7 @@ export function completionRoutes(getDeps, apiKeys) {
376
398
  return c.json({ error: { message: msg, type: "invalid_request_error" } }, 400);
377
399
  }
378
400
  m = resolved.model;
379
- streamOpts = resolved.streamOpts;
401
+ providerOpts = resolved.providerOptions;
380
402
  // Resolve tools via dep
381
403
  const { tools, executor } = await deps.resolveAgentTools(agentConfig);
382
404
  effectiveTools = tools;
@@ -394,7 +416,7 @@ export function completionRoutes(getDeps, apiKeys) {
394
416
  ? `${ctx.systemPrompt}\n\n## Additional context from caller\n\n${extraSystemParts.join("\n\n")}`
395
417
  : ctx.systemPrompt;
396
418
  m = ctx.model;
397
- streamOpts = ctx.streamOpts;
419
+ providerOpts = ctx.providerOptions;
398
420
  effectiveTools = ctx.tools;
399
421
  effectiveToolExecutor = ctx.executor;
400
422
  isInteractiveFn = ctx.isInteractive;
@@ -424,6 +446,8 @@ export function completionRoutes(getDeps, apiKeys) {
424
446
  if (sessionId) {
425
447
  c.header("x-session-id", sessionId);
426
448
  }
449
+ // Convert Polpo tools to AI SDK format (no execute — manual execution)
450
+ const aiTools = toAITools(effectiveTools);
427
451
  if (body.stream) {
428
452
  // ── Streaming mode ──
429
453
  return streamSSE(c, async (stream) => {
@@ -438,8 +462,9 @@ export function completionRoutes(getDeps, apiKeys) {
438
462
  const placeholder = await sessionStore.addMessage(sessionId, "assistant", "");
439
463
  assistantMsgId = placeholder.id;
440
464
  }
441
- const messages = [...piMessages];
465
+ const messages = [...aiMessages];
442
466
  let finalText = "";
467
+ let totalUsage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
443
468
  const toolCallsAccum = [];
444
469
  try {
445
470
  for (let turn = 0; turn < MAX_TURNS; turn++) {
@@ -456,7 +481,7 @@ export function completionRoutes(getDeps, apiKeys) {
456
481
  contextWindow: m.contextWindow ?? 200_000,
457
482
  maxOutputTokens: m.maxTokens ?? 8192,
458
483
  },
459
- summarize: buildSummarizeFn(deps, m, streamOpts),
484
+ summarize: buildSummarizeFn(m, providerOpts),
460
485
  mode: "chat",
461
486
  onCompaction: async (event) => {
462
487
  await stream.writeSSE({
@@ -476,37 +501,41 @@ export function completionRoutes(getDeps, apiKeys) {
476
501
  if (compactionResult.compacted) {
477
502
  messages.splice(0, messages.length, ...compactionResult.messages);
478
503
  }
479
- const piStream = deps.streamLLM(m, {
480
- systemPrompt: fullSystemPrompt,
504
+ const result = streamText({
505
+ model: m.aiModel,
506
+ system: fullSystemPrompt,
481
507
  messages,
482
- tools: effectiveTools,
483
- }, { ...streamOpts, signal: abortController.signal });
508
+ tools: aiTools,
509
+ maxOutputTokens: m.maxTokens,
510
+ providerOptions: providerOpts,
511
+ abortSignal: abortController.signal,
512
+ });
484
513
  let turnText = "";
485
514
  let streamError;
486
- for await (const event of piStream) {
515
+ for await (const part of result.fullStream) {
487
516
  if (abortController.signal.aborted)
488
517
  break;
489
- if (event.type === "thinking_delta") {
490
- await stream.writeSSE({ data: sseChunk(completionId, {}, null, { thinking: event.delta }) });
518
+ if (part.type === "reasoning-delta") {
519
+ await stream.writeSSE({ data: sseChunk(completionId, {}, null, { thinking: part.text }) });
491
520
  }
492
- else if (event.type === "text_delta") {
493
- turnText += event.delta;
494
- await stream.writeSSE({ data: sseChunk(completionId, { content: event.delta }) });
521
+ else if (part.type === "text-delta") {
522
+ turnText += part.text;
523
+ await stream.writeSSE({ data: sseChunk(completionId, { content: part.text }) });
495
524
  }
496
- else if (event.type === "toolcall_start") {
525
+ else if (part.type === "tool-input-start") {
497
526
  // Emit early "preparing" signal — the LLM has started generating a tool call
498
527
  // but arguments are not yet complete. Lets the UI show immediate feedback.
499
- const block = event.partial.content[event.contentIndex];
500
- if (block?.type === "toolCall") {
501
- await stream.writeSSE({
502
- data: sseChunk(completionId, {}, null, {
503
- tool_call: { id: block.id, name: block.name, state: "preparing" },
504
- }),
505
- });
506
- }
528
+ await stream.writeSSE({
529
+ data: sseChunk(completionId, {}, null, {
530
+ tool_call: { id: part.id, name: part.toolName, state: "preparing" },
531
+ }),
532
+ });
507
533
  }
508
- else if (event.type === "error") {
509
- streamError = event.error?.errorMessage ?? "Model returned an error";
534
+ else if (part.type === "finish") {
535
+ // Capture error from finish reason if applicable
536
+ if (part.finishReason === "error") {
537
+ streamError = "Model returned an error";
538
+ }
510
539
  }
511
540
  }
512
541
  // If aborted, stop the loop — skip error/tool processing
@@ -519,30 +548,55 @@ export function completionRoutes(getDeps, apiKeys) {
519
548
  await stream.writeSSE({ data: sseChunk(completionId, { content: `\n\nError: ${streamError}` }) });
520
549
  break;
521
550
  }
522
- const response = await piStream.result();
523
- messages.push(response);
551
+ // Get tool calls and usage after stream completes
552
+ const toolCalls = await result.toolCalls;
553
+ const usage = await result.usage;
554
+ totalUsage = {
555
+ inputTokens: (totalUsage.inputTokens ?? 0) + (usage.inputTokens ?? 0),
556
+ outputTokens: (totalUsage.outputTokens ?? 0) + (usage.outputTokens ?? 0),
557
+ totalTokens: (totalUsage.totalTokens ?? 0) + (usage.totalTokens ?? 0),
558
+ };
559
+ // Push assistant response message into conversation history
560
+ // AI SDK format: assistant message with text + tool calls
561
+ const assistantContent = [];
562
+ if (turnText) {
563
+ assistantContent.push({ type: "text", text: turnText });
564
+ }
565
+ for (const tc of toolCalls) {
566
+ assistantContent.push({
567
+ type: "tool-call",
568
+ toolCallId: tc.toolCallId,
569
+ toolName: tc.toolName,
570
+ input: tc.input,
571
+ });
572
+ }
573
+ messages.push({
574
+ role: "assistant",
575
+ content: assistantContent.length === 1 && assistantContent[0].type === "text"
576
+ ? turnText
577
+ : assistantContent,
578
+ });
524
579
  finalText += turnText;
525
- const toolCalls = response.content.filter((cc) => cc.type === "toolCall");
526
580
  if (toolCalls.length === 0)
527
581
  break;
528
582
  // Check for interactive tools — only in orchestrator mode (agents don't have interactive tools)
529
- const interactiveCall = agentMode ? undefined : toolCalls.find((tc) => isInteractiveFn?.(tc.name));
583
+ const interactiveCall = agentMode ? undefined : toolCalls.find((tc) => isInteractiveFn?.(tc.toolName));
530
584
  if (interactiveCall) {
531
585
  // Persist the interactive tool call so it survives session reload
532
586
  toolCallsAccum.push({
533
- id: interactiveCall.id,
534
- name: interactiveCall.name,
535
- arguments: interactiveCall.arguments,
587
+ id: interactiveCall.toolCallId,
588
+ name: interactiveCall.toolName,
589
+ arguments: interactiveCall.input,
536
590
  state: "interrupted",
537
591
  });
538
- if (interactiveCall.name === "ask_user") {
539
- const questions = interactiveCall.arguments?.questions ?? [];
592
+ if (interactiveCall.toolName === "ask_user") {
593
+ const questions = interactiveCall.input?.questions ?? [];
540
594
  await stream.writeSSE({
541
595
  data: sseChunk(completionId, {}, "ask_user", { ask_user: { questions } }),
542
596
  });
543
597
  }
544
- else if (interactiveCall.name === "create_mission") {
545
- const args = interactiveCall.arguments;
598
+ else if (interactiveCall.toolName === "create_mission") {
599
+ const args = interactiveCall.input;
546
600
  let missionData;
547
601
  try {
548
602
  missionData = JSON.parse(args.data);
@@ -560,8 +614,8 @@ export function completionRoutes(getDeps, apiKeys) {
560
614
  }),
561
615
  });
562
616
  }
563
- else if (interactiveCall.name === "set_vault_entry") {
564
- const args = interactiveCall.arguments;
617
+ else if (interactiveCall.toolName === "set_vault_entry") {
618
+ const args = interactiveCall.input;
565
619
  await stream.writeSSE({
566
620
  data: sseChunk(completionId, {}, "vault_preview", {
567
621
  vault_preview: {
@@ -574,8 +628,8 @@ export function completionRoutes(getDeps, apiKeys) {
574
628
  }),
575
629
  });
576
630
  }
577
- else if (interactiveCall.name === "open_file") {
578
- const args = interactiveCall.arguments;
631
+ else if (interactiveCall.toolName === "open_file") {
632
+ const args = interactiveCall.input;
579
633
  await stream.writeSSE({
580
634
  data: sseChunk(completionId, {}, "open_file", {
581
635
  open_file: {
@@ -584,8 +638,8 @@ export function completionRoutes(getDeps, apiKeys) {
584
638
  }),
585
639
  });
586
640
  }
587
- else if (interactiveCall.name === "navigate_to") {
588
- const args = interactiveCall.arguments;
641
+ else if (interactiveCall.toolName === "navigate_to") {
642
+ const args = interactiveCall.input;
589
643
  await stream.writeSSE({
590
644
  data: sseChunk(completionId, {}, "navigate_to", {
591
645
  navigate_to: {
@@ -598,8 +652,8 @@ export function completionRoutes(getDeps, apiKeys) {
598
652
  }),
599
653
  });
600
654
  }
601
- else if (interactiveCall.name === "open_tab") {
602
- const args = interactiveCall.arguments;
655
+ else if (interactiveCall.toolName === "open_tab") {
656
+ const args = interactiveCall.input;
603
657
  await stream.writeSSE({
604
658
  data: sseChunk(completionId, {}, "open_tab", {
605
659
  open_tab: {
@@ -616,20 +670,21 @@ export function completionRoutes(getDeps, apiKeys) {
616
670
  // Stop executing tools if client disconnected
617
671
  if (abortController.signal.aborted)
618
672
  break;
673
+ const callArgs = call.input;
619
674
  // Notify client that a tool is being called
620
675
  await stream.writeSSE({
621
676
  data: sseChunk(completionId, {}, null, {
622
- tool_call: { id: call.id, name: call.name, arguments: call.arguments, state: "calling" },
677
+ tool_call: { id: call.toolCallId, name: call.toolName, arguments: callArgs, state: "calling" },
623
678
  }),
624
679
  });
625
- const result = await effectiveToolExecutor(call.name, call.arguments);
680
+ const result = await effectiveToolExecutor(call.toolName, callArgs);
626
681
  const isError = result.startsWith("Error:");
627
- emitFileChanged(call.name, call.arguments, result, deps.emit);
682
+ emitFileChanged(call.toolName, callArgs, result, deps.emit);
628
683
  // Accumulate for persistence
629
684
  toolCallsAccum.push({
630
- id: call.id,
631
- name: call.name,
632
- arguments: call.arguments,
685
+ id: call.toolCallId,
686
+ name: call.toolName,
687
+ arguments: callArgs,
633
688
  result,
634
689
  state: isError ? "error" : "completed",
635
690
  });
@@ -637,17 +692,21 @@ export function completionRoutes(getDeps, apiKeys) {
637
692
  if (!abortController.signal.aborted) {
638
693
  await stream.writeSSE({
639
694
  data: sseChunk(completionId, {}, null, {
640
- tool_call: { id: call.id, name: call.name, result, state: isError ? "error" : "completed" },
695
+ tool_call: { id: call.toolCallId, name: call.toolName, result, state: isError ? "error" : "completed" },
641
696
  }),
642
697
  });
643
698
  }
699
+ // Push tool result message in AI SDK format
644
700
  messages.push({
645
- role: "toolResult",
646
- toolCallId: call.id,
647
- toolName: call.name,
648
- content: [{ type: "text", text: result }],
649
- isError,
650
- timestamp: Date.now(),
701
+ role: "tool",
702
+ content: [{
703
+ type: "tool-result",
704
+ toolCallId: call.toolCallId,
705
+ toolName: call.toolName,
706
+ output: isError
707
+ ? { type: "error-text", value: result }
708
+ : { type: "text", value: result },
709
+ }],
651
710
  });
652
711
  }
653
712
  }
@@ -687,8 +746,9 @@ export function completionRoutes(getDeps, apiKeys) {
687
746
  const placeholder = await sessionStore.addMessage(sessionId, "assistant", "");
688
747
  assistantMsgId = placeholder.id;
689
748
  }
690
- const messages = [...piMessages];
749
+ const messages = [...aiMessages];
691
750
  let finalText = "";
751
+ let totalUsage = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
692
752
  const toolCallsAccum = [];
693
753
  try {
694
754
  for (let turn = 0; turn < MAX_TURNS; turn++) {
@@ -702,45 +762,59 @@ export function completionRoutes(getDeps, apiKeys) {
702
762
  contextWindow: m.contextWindow ?? 200_000,
703
763
  maxOutputTokens: m.maxTokens ?? 8192,
704
764
  },
705
- summarize: buildSummarizeFn(deps, m, streamOpts),
765
+ summarize: buildSummarizeFn(m, providerOpts),
706
766
  mode: "chat",
707
767
  // Non-streaming: no SSE to write to, compaction is silent
708
768
  });
709
769
  if (compactionResult.compacted) {
710
770
  messages.splice(0, messages.length, ...compactionResult.messages);
711
771
  }
712
- const piStream = deps.streamLLM(m, {
713
- systemPrompt: fullSystemPrompt,
772
+ const genResult = await generateText({
773
+ model: m.aiModel,
774
+ system: fullSystemPrompt,
714
775
  messages,
715
- tools: effectiveTools,
716
- }, streamOpts);
717
- let turnText = "";
718
- let streamError;
719
- for await (const event of piStream) {
720
- if (event.type === "text_delta") {
721
- turnText += event.delta;
722
- }
723
- else if (event.type === "error") {
724
- streamError = event.error?.errorMessage ?? "Model returned an error";
725
- }
776
+ tools: aiTools,
777
+ maxOutputTokens: m.maxTokens,
778
+ providerOptions: providerOpts,
779
+ });
780
+ const turnText = genResult.text;
781
+ const usage = genResult.usage;
782
+ totalUsage = {
783
+ inputTokens: (totalUsage.inputTokens ?? 0) + (usage.inputTokens ?? 0),
784
+ outputTokens: (totalUsage.outputTokens ?? 0) + (usage.outputTokens ?? 0),
785
+ totalTokens: (totalUsage.totalTokens ?? 0) + (usage.totalTokens ?? 0),
786
+ };
787
+ // Push assistant response message into conversation history
788
+ const assistantContent = [];
789
+ if (turnText) {
790
+ assistantContent.push({ type: "text", text: turnText });
726
791
  }
727
- if (streamError) {
728
- return c.json({ error: { message: streamError, type: "upstream_error" } }, 502);
792
+ for (const tc of genResult.toolCalls) {
793
+ assistantContent.push({
794
+ type: "tool-call",
795
+ toolCallId: tc.toolCallId,
796
+ toolName: tc.toolName,
797
+ input: tc.input,
798
+ });
729
799
  }
730
- const response = await piStream.result();
731
- messages.push(response);
800
+ messages.push({
801
+ role: "assistant",
802
+ content: assistantContent.length === 1 && assistantContent[0].type === "text"
803
+ ? turnText
804
+ : assistantContent,
805
+ });
732
806
  finalText += turnText;
733
- const toolCalls = response.content.filter((cc) => cc.type === "toolCall");
807
+ const toolCalls = genResult.toolCalls;
734
808
  if (toolCalls.length === 0)
735
809
  break;
736
810
  // Check for interactive tools — only in orchestrator mode (agents don't have interactive tools)
737
- const interactiveCall = agentMode ? undefined : toolCalls.find((tc) => isInteractiveFn?.(tc.name));
811
+ const interactiveCall = agentMode ? undefined : toolCalls.find((tc) => isInteractiveFn?.(tc.toolName));
738
812
  if (interactiveCall) {
739
813
  // Persist the interactive tool call so it survives session reload
740
814
  toolCallsAccum.push({
741
- id: interactiveCall.id,
742
- name: interactiveCall.name,
743
- arguments: interactiveCall.arguments,
815
+ id: interactiveCall.toolCallId,
816
+ name: interactiveCall.toolName,
817
+ arguments: interactiveCall.input,
744
818
  state: "interrupted",
745
819
  });
746
820
  const baseResponse = {
@@ -749,13 +823,13 @@ export function completionRoutes(getDeps, apiKeys) {
749
823
  created: Math.floor(Date.now() / 1000),
750
824
  model: "polpo",
751
825
  usage: {
752
- prompt_tokens: Math.ceil(fullSystemPrompt.length / 4),
753
- completion_tokens: Math.ceil(finalText.length / 4),
754
- total_tokens: Math.ceil(fullSystemPrompt.length / 4) + Math.ceil(finalText.length / 4),
826
+ prompt_tokens: totalUsage.inputTokens ?? 0,
827
+ completion_tokens: totalUsage.outputTokens ?? 0,
828
+ total_tokens: totalUsage.totalTokens ?? 0,
755
829
  },
756
830
  };
757
- if (interactiveCall.name === "ask_user") {
758
- const questions = interactiveCall.arguments?.questions ?? [];
831
+ if (interactiveCall.toolName === "ask_user") {
832
+ const questions = interactiveCall.input?.questions ?? [];
759
833
  return c.json({
760
834
  ...baseResponse,
761
835
  choices: [{
@@ -766,8 +840,8 @@ export function completionRoutes(getDeps, apiKeys) {
766
840
  }],
767
841
  });
768
842
  }
769
- if (interactiveCall.name === "create_mission") {
770
- const args = interactiveCall.arguments;
843
+ if (interactiveCall.toolName === "create_mission") {
844
+ const args = interactiveCall.input;
771
845
  let missionData;
772
846
  try {
773
847
  missionData = JSON.parse(args.data);
@@ -789,8 +863,8 @@ export function completionRoutes(getDeps, apiKeys) {
789
863
  }],
790
864
  });
791
865
  }
792
- if (interactiveCall.name === "set_vault_entry") {
793
- const args = interactiveCall.arguments;
866
+ if (interactiveCall.toolName === "set_vault_entry") {
867
+ const args = interactiveCall.input;
794
868
  return c.json({
795
869
  ...baseResponse,
796
870
  choices: [{
@@ -807,8 +881,8 @@ export function completionRoutes(getDeps, apiKeys) {
807
881
  }],
808
882
  });
809
883
  }
810
- if (interactiveCall.name === "open_file") {
811
- const args = interactiveCall.arguments;
884
+ if (interactiveCall.toolName === "open_file") {
885
+ const args = interactiveCall.input;
812
886
  return c.json({
813
887
  ...baseResponse,
814
888
  choices: [{
@@ -821,8 +895,8 @@ export function completionRoutes(getDeps, apiKeys) {
821
895
  }],
822
896
  });
823
897
  }
824
- if (interactiveCall.name === "navigate_to") {
825
- const args = interactiveCall.arguments;
898
+ if (interactiveCall.toolName === "navigate_to") {
899
+ const args = interactiveCall.input;
826
900
  return c.json({
827
901
  ...baseResponse,
828
902
  choices: [{
@@ -839,8 +913,8 @@ export function completionRoutes(getDeps, apiKeys) {
839
913
  }],
840
914
  });
841
915
  }
842
- if (interactiveCall.name === "open_tab") {
843
- const args = interactiveCall.arguments;
916
+ if (interactiveCall.toolName === "open_tab") {
917
+ const args = interactiveCall.input;
844
918
  return c.json({
845
919
  ...baseResponse,
846
920
  choices: [{
@@ -857,30 +931,33 @@ export function completionRoutes(getDeps, apiKeys) {
857
931
  // Note: finally block persists finalText + toolCallsAccum
858
932
  }
859
933
  for (const call of toolCalls) {
860
- const result = await effectiveToolExecutor(call.name, call.arguments);
934
+ const callArgs = call.input;
935
+ const result = await effectiveToolExecutor(call.toolName, callArgs);
861
936
  const isError = result.startsWith("Error:");
862
- emitFileChanged(call.name, call.arguments, result, deps.emit);
937
+ emitFileChanged(call.toolName, callArgs, result, deps.emit);
863
938
  // Accumulate for persistence
864
939
  toolCallsAccum.push({
865
- id: call.id,
866
- name: call.name,
867
- arguments: call.arguments,
940
+ id: call.toolCallId,
941
+ name: call.toolName,
942
+ arguments: callArgs,
868
943
  result,
869
944
  state: isError ? "error" : "completed",
870
945
  });
946
+ // Push tool result message in AI SDK format
871
947
  messages.push({
872
- role: "toolResult",
873
- toolCallId: call.id,
874
- toolName: call.name,
875
- content: [{ type: "text", text: result }],
876
- isError,
877
- timestamp: Date.now(),
948
+ role: "tool",
949
+ content: [{
950
+ type: "tool-result",
951
+ toolCallId: call.toolCallId,
952
+ toolName: call.toolName,
953
+ output: isError
954
+ ? { type: "error-text", value: result }
955
+ : { type: "text", value: result },
956
+ }],
878
957
  });
879
958
  }
880
959
  }
881
- const promptTokens = Math.ceil(fullSystemPrompt.length / 4);
882
- const completionTokens = Math.ceil(finalText.length / 4);
883
- return c.json(completionResponse(completionId, finalText, promptTokens, completionTokens));
960
+ return c.json(completionResponse(completionId, finalText, totalUsage));
884
961
  }
885
962
  finally {
886
963
  // Always persist the final text + tool calls — even on early return (ask_user) or error
@@ -1 +1 @@
1
- {"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/routes/completions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polpo-ai/server",
3
- "version": "0.4.10",
3
+ "version": "0.5.0",
4
4
  "description": "Polpo API route factories — edge-compatible Hono routes for tasks, agents, missions, vault, and more",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -19,9 +19,10 @@
19
19
  "@hono/zod-openapi": ">=1.0.0",
20
20
  "hono": ">=4.0.0",
21
21
  "nanoid": ">=5.0.0",
22
- "@polpo-ai/core": "0.4.10"
22
+ "@polpo-ai/core": "0.5.0"
23
23
  },
24
24
  "peerDependencies": {
25
+ "ai": ">=6.0.0",
25
26
  "zod": ">=3.0.0 || >=4.0.0"
26
27
  },
27
28
  "license": "MIT",