pi-mono/packages/durable/test/examples
Mario Zechner eba8497395 feat(durable): nested tool calls, structured output, callers; storage errors end the Session
Nested tool calls: ToolExecutionApi.executeTool() runs another tool as its own pi.tool task owned by the caller,
keyed for replay-safe reattachment. Results for programs live in the caller's NestedResultDoc until it settles;
pi.live.nestedTools shows each call with the arguments it runs with and a summary. TaskOptions.abandonOnRestart
aborts work its creator awaited only in memory before it runs again after a restart.

Structured output: structuredOutputSchema and structuredOutput, validated; a tool without a schema gives programs its
bounded output (one text as a string, one image as itself, else the list). ToolExecutionResult.content is now output.
callers and modelTools decide who may call a tool.

Storage errors: any error a Storage method throws fails the Session, which closes itself; later calls and waits reject
with SessionFailed, watches end with session_failed, and Session.closed settles. Nothing retries in the Harness.
StorageRejected is removed; StorageRequestError marks invalid reads that fail only their call. Listener and onReport
errors are contained and reported.

Also updates scripts/issues/triage.ts and the vacation experiment for the content -> output rename.
2026-10-09 17:13:34 +00:00
..
00-conversation.ts feat(durable): first runnable chat turn (Package 15) 2026-09-29 14:08:28 +02:00
01-documents.ts feat(durable): first runnable chat turn (Package 15) 2026-09-29 14:08:28 +02:00
02-forks.ts feat(durable): first runnable chat turn (Package 15) 2026-09-29 14:08:28 +02:00
03-owned-conversations.ts feat(durable): structured concurrency: task ownership, waiting, completing holds, bottom-up abort (Package 19) 2026-09-30 13:50:29 +02:00
04-chord-state.ts feat(durable): first runnable chat turn (Package 15) 2026-09-29 14:08:28 +02:00
05-watches.ts feat(durable): first runnable chat turn (Package 15) 2026-09-29 14:08:28 +02:00
06-harness.ts feat(durable): nested tool calls, structured output, callers; storage errors end the Session 2026-10-09 17:13:34 +00:00
07-configuration.ts feat(durable): nested tool calls, structured output, callers; storage errors end the Session 2026-10-09 17:13:34 +00:00
08-harness-conversations.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
09-context.ts feat(ai,durable): add lightweight pi-ai/models entry and avoid TypeBox in durable 2026-09-29 21:24:17 +02:00
10-registry-reload.ts feat(durable): nested tool calls, structured output, callers; storage errors end the Session 2026-10-09 17:13:34 +00:00
11-extension-state.ts feat(durable): nested tool calls, structured output, callers; storage errors end the Session 2026-10-09 17:13:34 +00:00
12-tasks.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
13-recovery.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
14-chat.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
15-system-prompt.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
16-real-model.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
17-coding-tools.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
18-print.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
19-json.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
20-inbox.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
21-late-join.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
22-subagent-foreground.ts feat(durable): nested tool calls, structured output, callers; storage errors end the Session 2026-10-09 17:13:34 +00:00
23-subagent-background.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
24-child-tasks.ts feat(durable): lifecycle conformance and task graph view (Packages 22, 23) 2026-10-01 09:53:21 +02:00
25-compaction.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
26-coding-agent.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
27-plan-mode.ts feat(durable): nested tool calls, structured output, callers; storage errors end the Session 2026-10-09 17:13:34 +00:00
28-reviewer.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
29-sandbox-per-conversation.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
30-tool-override.ts feat(durable): extensions and per-conversation agents (Package 21) 2026-10-01 01:28:22 +02:00
31-reload-and-restart.ts feat(durable): nested tool calls, structured output, callers; storage errors end the Session 2026-10-09 17:13:34 +00:00