@polpo-ai/channels 0.15.95 → 0.15.97
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/README.md
CHANGED
|
@@ -238,6 +238,146 @@ const handleTurn = createConversationChannelTurnHandler(serverDeps, {
|
|
|
238
238
|
});
|
|
239
239
|
```
|
|
240
240
|
|
|
241
|
+
### Server-side client tools
|
|
242
|
+
|
|
243
|
+
A channel host can execute an allowlisted client tool on behalf of a messaging
|
|
244
|
+
client, then continue the same Polpo Session either directly or in a fixed
|
|
245
|
+
Project Loop. The model cannot select the handler endpoint, credentials, or Loop.
|
|
246
|
+
|
|
247
|
+
```ts
|
|
248
|
+
const handleTurn = createConversationChannelTurnHandler(serverDeps, {
|
|
249
|
+
agent: (turn) => resolveAgentForInstallation(turn.installationId),
|
|
250
|
+
clientTools: [{
|
|
251
|
+
type: "function",
|
|
252
|
+
function: {
|
|
253
|
+
name: "apply_site_change",
|
|
254
|
+
description: "Apply a requested site change",
|
|
255
|
+
parameters: {
|
|
256
|
+
type: "object",
|
|
257
|
+
properties: { instruction: { type: "string" } },
|
|
258
|
+
required: ["instruction"],
|
|
259
|
+
additionalProperties: false,
|
|
260
|
+
},
|
|
261
|
+
strict: true,
|
|
262
|
+
},
|
|
263
|
+
}],
|
|
264
|
+
executeClientTool: async (execution) => {
|
|
265
|
+
const { result, grant, workingCopyId } = await applicationTools.execute({
|
|
266
|
+
idempotencyKey: execution.idempotencyKey,
|
|
267
|
+
invocation: execution.invocation,
|
|
268
|
+
sessionId: execution.sessionId,
|
|
269
|
+
sessionVersion: execution.sessionVersion,
|
|
270
|
+
toolCall: execution.toolCall,
|
|
271
|
+
});
|
|
272
|
+
return execution.toolCall.name === "apply_site_change"
|
|
273
|
+
? {
|
|
274
|
+
result,
|
|
275
|
+
loop: "site-change",
|
|
276
|
+
trustedMetadata: { grant, workingCopyId },
|
|
277
|
+
}
|
|
278
|
+
: { result };
|
|
279
|
+
},
|
|
280
|
+
maxClientToolContinuations: 4,
|
|
281
|
+
});
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
The bridge derives a stable idempotency key from the verified provider event and
|
|
285
|
+
tool call. The handler must treat repeated keys as the same operation. Each
|
|
286
|
+
continuation uses the canonical Session version, appends exactly one tool result,
|
|
287
|
+
and preserves trusted invocation identity and metadata. Handler-provided
|
|
288
|
+
`trustedMetadata` is merged into the immutable invocation context for the next
|
|
289
|
+
direct turn or Loop. It is never appended to the tool result or model history.
|
|
290
|
+
A configured Loop starts only after that atomic continuation succeeds.
|
|
291
|
+
|
|
292
|
+
Reject unknown tools before network or application work, bound the continuation
|
|
293
|
+
count, and fail closed on handler, authorization, or Session-version errors.
|
|
294
|
+
Cloud hosts can authenticate an HTTPS handler through a project Connection; the
|
|
295
|
+
handler request has this provider-neutral shape:
|
|
296
|
+
|
|
297
|
+
```json
|
|
298
|
+
{
|
|
299
|
+
"version": 1,
|
|
300
|
+
"idempotencyKey": "channel-tool:...",
|
|
301
|
+
"channel": {
|
|
302
|
+
"provider": "whatsapp",
|
|
303
|
+
"installationId": "channel_id",
|
|
304
|
+
"threadId": "whatsapp:phone:user",
|
|
305
|
+
"providerEventId": "wamid..."
|
|
306
|
+
},
|
|
307
|
+
"session": { "id": "session_id", "version": 2 },
|
|
308
|
+
"toolCall": {
|
|
309
|
+
"id": "call_id",
|
|
310
|
+
"name": "apply_site_change",
|
|
311
|
+
"arguments": { "siteId": "site_id" }
|
|
312
|
+
},
|
|
313
|
+
"invocation": {
|
|
314
|
+
"user": "stable_user_id",
|
|
315
|
+
"metadata": { "tenantId": "tenant_id" },
|
|
316
|
+
"scope": { "key": "workspace_id", "version": "3" }
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Return one JSON object containing `result` and optional host-trusted metadata:
|
|
322
|
+
|
|
323
|
+
```json
|
|
324
|
+
{
|
|
325
|
+
"result": { "accepted": true },
|
|
326
|
+
"trustedMetadata": {
|
|
327
|
+
"grant": "short-lived-signed-grant",
|
|
328
|
+
"workingCopyId": "working-copy-id"
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
Cloud Channel configuration declares both the continuation policy and the
|
|
334
|
+
OpenAI-compatible function schema. The endpoint, Connection, Loop, and trusted
|
|
335
|
+
metadata remain server-controlled:
|
|
336
|
+
|
|
337
|
+
```json
|
|
338
|
+
{
|
|
339
|
+
"clientToolHandler": {
|
|
340
|
+
"version": 1,
|
|
341
|
+
"type": "http",
|
|
342
|
+
"endpoint": "https://app.example.com/polpo/client-tools",
|
|
343
|
+
"connectionId": "conn_handler",
|
|
344
|
+
"tools": {
|
|
345
|
+
"apply_site_change": {
|
|
346
|
+
"mode": "loop",
|
|
347
|
+
"loop": "site-change",
|
|
348
|
+
"description": "Apply a requested site change",
|
|
349
|
+
"parameters": {
|
|
350
|
+
"type": "object",
|
|
351
|
+
"properties": { "instruction": { "type": "string" } },
|
|
352
|
+
"required": ["instruction"],
|
|
353
|
+
"additionalProperties": false
|
|
354
|
+
},
|
|
355
|
+
"strict": true
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Custom tools inside the Loop consume secrets through existing hidden bindings,
|
|
363
|
+
not model-visible arguments:
|
|
364
|
+
|
|
365
|
+
```ts
|
|
366
|
+
defineTool({
|
|
367
|
+
name: "site_checkout",
|
|
368
|
+
inputSchema: Type.Object({}),
|
|
369
|
+
bindingsSchema: Type.Object({
|
|
370
|
+
grant: Type.String(),
|
|
371
|
+
workingCopyId: Type.String(),
|
|
372
|
+
}),
|
|
373
|
+
serverBindings: {
|
|
374
|
+
grant: { $context: "invocation.metadata.grant" },
|
|
375
|
+
workingCopyId: { $context: "invocation.metadata.workingCopyId" },
|
|
376
|
+
},
|
|
377
|
+
execute: async (_input, ctx) => checkout(ctx.bindings),
|
|
378
|
+
});
|
|
379
|
+
```
|
|
380
|
+
|
|
241
381
|
## Agent-native management
|
|
242
382
|
|
|
243
383
|
The CLI uses the same provider-neutral management contract as the HTTP API and
|
|
@@ -33,10 +33,16 @@ export type ConversationChannelIdentityResolver = Readonly<{
|
|
|
33
33
|
version: 1;
|
|
34
34
|
}>;
|
|
35
35
|
export type ConversationChannelClientToolContinuation = Readonly<{
|
|
36
|
+
description?: string;
|
|
36
37
|
mode: "direct";
|
|
38
|
+
parameters?: Readonly<Record<string, unknown>>;
|
|
39
|
+
strict?: boolean;
|
|
37
40
|
}> | Readonly<{
|
|
41
|
+
description?: string;
|
|
38
42
|
loop: string;
|
|
39
43
|
mode: "loop";
|
|
44
|
+
parameters?: Readonly<Record<string, unknown>>;
|
|
45
|
+
strict?: boolean;
|
|
40
46
|
}>;
|
|
41
47
|
export type ConversationChannelClientToolHandler = Readonly<{
|
|
42
48
|
connectionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/management/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,iBAAiB,EACjB,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtE,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,0BAA0B,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,0BAA0B,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EACH,SAAS,GACT,OAAO,GACP,gBAAgB,GAChB,kBAAkB,GAClB,WAAW,GACX,QAAQ,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AACpF,MAAM,MAAM,mCAAmC,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnE,MAAM,MAAM,mCAAmC,GAAG,QAAQ,CAAC;IACzD,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC,CAAC;AAEH,MAAM,MAAM,yCAAyC,GACjD,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/management/contracts.ts"],"names":[],"mappings":"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"}
|