@astralyn/pi 1.4.10 → 1.4.11

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.
Files changed (97) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/bundle/chunks/{chunk-MF3T3ETJ.js → chunk-NUQMVNKQ.js} +2 -2
  3. package/dist/bundle/chunks/{chunk-6GTUUUCJ.js → chunk-PUU43PDV.js} +14 -29
  4. package/dist/bundle/chunks/{chunk-UCH27AVQ.js → chunk-TH3QDDPD.js} +1 -1
  5. package/dist/bundle/chunks/{execute-FQKRO4XJ.js → execute-VLAIP26K.js} +1 -1
  6. package/dist/bundle/chunks/{virtual-modules-6IJ6V2CG.js → virtual-modules-63XNTSVN.js} +1 -1
  7. package/dist/bundle/cli.js +1 -1
  8. package/dist/bundle/index.js +1 -1
  9. package/dist/bundle/rpc-entry.js +1 -1
  10. package/dist/core/agent-session.d.ts.map +1 -1
  11. package/dist/core/agent-session.js +0 -3
  12. package/dist/core/agent-session.js.map +1 -1
  13. package/dist/core/extensions/index.d.ts +1 -1
  14. package/dist/core/extensions/index.d.ts.map +1 -1
  15. package/dist/core/extensions/index.js.map +1 -1
  16. package/dist/core/extensions/loader.d.ts.map +1 -1
  17. package/dist/core/extensions/loader.js +14 -7
  18. package/dist/core/extensions/loader.js.map +1 -1
  19. package/dist/core/tasks/delivery.d.ts +4 -20
  20. package/dist/core/tasks/delivery.d.ts.map +1 -1
  21. package/dist/core/tasks/delivery.js +5 -58
  22. package/dist/core/tasks/delivery.js.map +1 -1
  23. package/dist/core/tasks/limits.d.ts +3 -19
  24. package/dist/core/tasks/limits.d.ts.map +1 -1
  25. package/dist/core/tasks/limits.js +3 -24
  26. package/dist/core/tasks/limits.js.map +1 -1
  27. package/dist/core/tasks/runtime.d.ts +1 -12
  28. package/dist/core/tasks/runtime.d.ts.map +1 -1
  29. package/dist/core/tasks/runtime.js +1 -81
  30. package/dist/core/tasks/runtime.js.map +1 -1
  31. package/dist/core/tasks/session.d.ts +0 -3
  32. package/dist/core/tasks/session.d.ts.map +1 -1
  33. package/dist/core/tasks/session.js +0 -16
  34. package/dist/core/tasks/session.js.map +1 -1
  35. package/dist/core/tasks/types.d.ts +2 -74
  36. package/dist/core/tasks/types.d.ts.map +1 -1
  37. package/dist/core/tasks/types.js +2 -2
  38. package/dist/core/tasks/types.js.map +1 -1
  39. package/dist/core/tools/shell-tool.js +1 -1
  40. package/dist/core/tools/shell-tool.js.map +1 -1
  41. package/dist/extensions/cached-compaction/summary.d.ts +1 -1
  42. package/dist/extensions/cached-compaction/summary.d.ts.map +1 -1
  43. package/dist/extensions/cached-compaction/summary.js +13 -16
  44. package/dist/extensions/cached-compaction/summary.js.map +1 -1
  45. package/dist/extensions/tasks/tool/actions.d.ts +1 -2
  46. package/dist/extensions/tasks/tool/actions.d.ts.map +1 -1
  47. package/dist/extensions/tasks/tool/actions.js +7 -79
  48. package/dist/extensions/tasks/tool/actions.js.map +1 -1
  49. package/dist/extensions/tasks/tool/constants.d.ts +1 -3
  50. package/dist/extensions/tasks/tool/constants.d.ts.map +1 -1
  51. package/dist/extensions/tasks/tool/constants.js +1 -3
  52. package/dist/extensions/tasks/tool/constants.js.map +1 -1
  53. package/dist/extensions/tasks/tool/schema.d.ts +1 -2
  54. package/dist/extensions/tasks/tool/schema.d.ts.map +1 -1
  55. package/dist/extensions/tasks/tool/schema.js +6 -14
  56. package/dist/extensions/tasks/tool/schema.js.map +1 -1
  57. package/dist/extensions/tasks/tool/types.d.ts +1 -19
  58. package/dist/extensions/tasks/tool/types.d.ts.map +1 -1
  59. package/dist/extensions/tasks/tool/types.js.map +1 -1
  60. package/dist/extensions/tasks/tool.d.ts +1 -2
  61. package/dist/extensions/tasks/tool.d.ts.map +1 -1
  62. package/dist/extensions/tasks/tool.js +2 -4
  63. package/dist/extensions/tasks/tool.js.map +1 -1
  64. package/dist/extensions/tasks/ui/render.d.ts +2 -16
  65. package/dist/extensions/tasks/ui/render.d.ts.map +1 -1
  66. package/dist/extensions/tasks/ui/render.js +3 -79
  67. package/dist/extensions/tasks/ui/render.js.map +1 -1
  68. package/dist/index.d.ts +1 -1
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/modes/print-mode.d.ts.map +1 -1
  72. package/dist/modes/print-mode.js +1 -0
  73. package/dist/modes/print-mode.js.map +1 -1
  74. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  75. package/dist/modes/rpc/rpc-mode.js +1 -0
  76. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  77. package/docs/bundled/extensions/agent.md +2 -2
  78. package/docs/bundled/extensions/statusline.md +1 -1
  79. package/docs/bundled/tasks.md +10 -23
  80. package/docs/bundled/tool-presentation.md +1 -1
  81. package/docs/extensions.md +5 -7
  82. package/docs/models-configuration.md +1 -1
  83. package/docs/models.md +7 -85
  84. package/docs/sdk.md +3 -3
  85. package/docs/session-format.md +1 -1
  86. package/package.json +3 -4
  87. package/dist/core/tasks/wait.d.ts +0 -19
  88. package/dist/core/tasks/wait.d.ts.map +0 -1
  89. package/dist/core/tasks/wait.js +0 -45
  90. package/dist/core/tasks/wait.js.map +0 -1
  91. package/dist/modes/interactive/tool-view/tool-execution.d.ts +0 -14
  92. package/dist/modes/interactive/tool-view/tool-execution.d.ts.map +0 -1
  93. package/dist/modes/interactive/tool-view/tool-execution.js +0 -13
  94. package/dist/modes/interactive/tool-view/tool-execution.js.map +0 -1
  95. package/docs/images/doom-extension.png +0 -0
  96. package/docs/images/exy.png +0 -0
  97. package/npm-shrinkwrap.json +0 -4207
package/docs/sdk.md CHANGED
@@ -250,17 +250,17 @@ Both `steer()` and `followUp()` expand file-based prompt templates but error on
250
250
 
251
251
  ### Background execution
252
252
 
253
- Background is a session-owned capability, not a daemon or a flag on `createAgentSession()`. Interactive mode enables it. Ordinary SDK sessions and the built-in print, JSON, and RPC hosts leave it disabled and reject native shell or extension calls with `background: true`. Normal foreground tools still work, including standalone `createBashTool()` / `createPowerShellTool()` calls without a session context.
253
+ Background is a session-owned capability, not a daemon or a flag on `createAgentSession()`. Interactive mode and the built-in print, JSON, and RPC hosts enable it. Ordinary SDK sessions leave it disabled and reject native shell or extension calls with `background: true`. Normal foreground tools still work, including standalone `createBashTool()` / `createPowerShellTool()` calls without a session context.
254
254
 
255
255
  An embedding can opt in with `await session.bindExtensions({ tasksEnabled: true })`. Bind before prompting; this also binds extensions and emits their session-start lifecycle. When using `AgentSessionRuntime`, rebind the replacement session through the runtime's rebind callback. Setting `mode` or providing a UI alone does not enable Background.
256
256
 
257
- Background work is admitted only while the `tasks` management tool is active in the session, so the model that starts work can always read, wait for and stop it. The bundled `builtin:tasks` extension provides that tool; a session that disables the extension or deactivates the tool rejects `background: true` and every detach path (the error says no work was started), while work already admitted keeps running and delivering.
257
+ Background work is admitted only while the `tasks` management tool is active in the session, so the model that starts work can always read and stop it. The bundled `builtin:tasks` extension provides that tool; a session that disables the extension or deactivates the tool rejects `background: true` and every detach path (the error says no work was started), while work already admitted keeps running and delivering.
258
258
 
259
259
  The host must choose:
260
260
 
261
261
  - **Lifetime and cancellation:** a settled main-agent turn is not the end of background work. `session.abort()` cancels foreground-owned work, not detached work. Use `session.tasks.kill(id)` for a whole execution, or `await session.tasks.shutdown(graceMs?)` to close admission, cancel all owned work and drain within a bounded grace period (default 2 seconds, maximum 60 seconds). A non-cooperating executor can outlive that grace period.
262
262
  - **Result-driven turns and cost:** automatic completions join the host's prompt queue, so a running turn receives them as steering and an idle session starts a completion turn. Use the nestable `session.pauseTaskNotifications()` to defer delivery; its returned release function is idempotent. Pausing does not stop execution or its costs. Budget worker activity and completion-triggered turns explicitly.
263
- - **Observation and delivery:** `session.tasks` exposes the [public supervision methods](extensions.md#ctxtasks). `read()`, `wait()`, and `waitAny()` observe; a terminal snapshot alone does not acknowledge model delivery. `waitAny()` covers only tasks running at call time and reports `no_tasks` for an empty cohort. Both return a typed `outcome` (`settled`, `timed_out`, `interrupted`, or `closed`), and steering interrupts only waits, never execution. The built-in `tasks wait` tool passes its tool-call ID as `toolCallId`, so the runtime holds the observed result back from notifications and the host confirms it only after persisting that tool result, even if extensions rewrite its details. A direct SDK waiter that consumes the result outside model history omits `toolCallId` and can explicitly call `session.acknowledgeTaskDelivery(task.id)` after successful consumption, which stops the session from notifying the model about it (an unknown or already delivered ID is ignored). An undelivered completion keeps its task and output retained until it is delivered or acknowledged, or its runtime closes. A timeout or cancelled wait does not stop the execution. Failed notification delivery leaves the result available for inspection; after fixing the host failure, call `session.retryTaskNotifications()` explicitly. Pi does not retry a failed delivery forever on a timer.
263
+ - **Observation and delivery:** `session.tasks` exposes the [public supervision methods](extensions.md#ctxtasks). `list()`, `get()` and `read()` observe; a terminal snapshot alone does not acknowledge model delivery, and there is no blocking wait: subscribe with `session.tasks.subscribe()` or use `waitForQuiescence()` below. A direct SDK consumer that handles a result outside model history can call `session.acknowledgeTaskDelivery(task.id)` after successful consumption, which stops the session from notifying the model about it (an unknown or already delivered ID is ignored). An undelivered completion keeps its task and output retained until it is delivered or acknowledged, or its runtime closes. Failed notification delivery leaves the result available for inspection; after fixing the host failure, call `session.retryTaskNotifications()` explicitly. Pi does not retry a failed delivery forever on a timer.
264
264
  - **Shutdown:** `await runtime.dispose()` handles background shutdown and extension lifecycle when using the runtime API. For a directly owned session, drain Background, abort the main agent, then dispose; synchronous `session.dispose()` alone is not an awaited drain.
265
265
  - **Waiting for all work:** `prompt()` resolves when its own run settles, before any Background completion turn. `await session.waitForQuiescence(signal?)` resolves once the session is quiescent: no run, compaction, retry or branch summary, no unsettled Background task, and no completion left to deliver (the `session_quiescent` event marks the same moment, once per transition). It uses no timers and rejects when `signal` aborts or the session is disposed. A completion whose delivery failed does not count, since it retries only on the next input; a Background task that never ends keeps the wait open, so pass a signal when that matters.
266
266
 
@@ -385,7 +385,7 @@ A shell completion's `details` can look like this:
385
385
 
386
386
  The message carries everything needed for replay after `/reload`, branch navigation, history eviction or restart; rendering does not open the saved log or query a live task. Unsupported or malformed completion details, including versions 1 and 2, use bounded plain message text. There is no legacy text parser, dual-format reconstruction or migration.
387
387
 
388
- A completion is acknowledged only after its message is persisted. A terminal `tasks wait` binds a host-owned receipt to the tool-call ID. Only persisting that tool result acknowledges delivery, even if its details were rewritten; aborting during an output read cannot consume a notification. Direct `TasksContext.wait()` and `waitAny()` are observational unless given a `toolCallId` in a session host. Snapshots and repeated reads do not create more usage. Historical extension-owned `background-task` notifications and old `bg create` tool results remain transcript history shown as saved text, not new runnable tasks.
388
+ A completion is acknowledged only after its message is persisted; reads and aborting during an output read cannot consume a notification. Snapshots and repeated reads do not create more usage. Historical extension-owned `background-task` notifications and old `bg create` and `tasks wait` tool results remain transcript history shown as saved text, not new runnable tasks.
389
389
 
390
390
  Session-wide statistics aggregate the ledger across all entries; the bundled Statusline uses the active branch. Accrued retries, failures, cancellations and worker compaction count when usage is reported. No usage is invented for a provider that does not expose it, and worker billing does not occupy the parent's context window. See [SDK session statistics](sdk.md#session-statistics).
391
391
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astralyn/pi",
3
- "version": "1.4.10",
3
+ "version": "1.4.11",
4
4
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "piConfig": {
@@ -25,8 +25,7 @@
25
25
  "docs",
26
26
  "examples",
27
27
  "schemas",
28
- "CHANGELOG.md",
29
- "npm-shrinkwrap.json"
28
+ "CHANGELOG.md"
30
29
  ],
31
30
  "scripts": {
32
31
  "clean": "shx rm -rf dist",
@@ -53,7 +52,7 @@
53
52
  "verify:package-install": "node scripts/verify-package-install.mjs",
54
53
  "profile:tui": "node scripts/profile-node.mjs --mode tui",
55
54
  "profile:rpc": "node scripts/profile-node.mjs --mode rpc",
56
- "shrinkwrap": "npm install --package-lock-only --ignore-scripts",
55
+ "lockfile": "npm install --package-lock-only --ignore-scripts",
57
56
  "prepare": "husky",
58
57
  "prepublishOnly": "npm run clean && npm run build"
59
58
  },
@@ -1,19 +0,0 @@
1
- export interface WaitSources {
2
- /** Whether any observed execution has settled. */
3
- hasSettled(): boolean;
4
- /** Subscribe to execution state changes; the returned release must remove the listener. */
5
- subscribe(listener: () => void): () => void;
6
- timeoutMs: number;
7
- /** Rejects the wait with the signal's reason. */
8
- signal?: AbortSignal;
9
- /** Steering: ends the wait without rejecting. */
10
- interrupt?: AbortSignal;
11
- /** The runtime closed: ends the wait without rejecting. */
12
- closed: AbortSignal;
13
- }
14
- /**
15
- * A race of settlement, timeout, abort, interrupt and close. Whichever ends it first, the timer
16
- * and every listener are released, so an observation leaves nothing behind. Only an abort rejects.
17
- */
18
- export declare function waitForFirst({ hasSettled, subscribe, timeoutMs, signal, interrupt, closed, }: WaitSources): Promise<void>;
19
- //# sourceMappingURL=wait.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/core/tasks/wait.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC3B,kDAAkD;IAClD,UAAU,IAAI,OAAO,CAAC;IACtB,2FAA2F;IAC3F,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,iDAAiD;IACjD,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,2DAA2D;IAC3D,MAAM,EAAE,WAAW,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC5B,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,GACN,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+B7B"}
@@ -1,45 +0,0 @@
1
- import { boundWaitMs } from "./limits.js";
2
- /**
3
- * A race of settlement, timeout, abort, interrupt and close. Whichever ends it first, the timer
4
- * and every listener are released, so an observation leaves nothing behind. Only an abort rejects.
5
- */
6
- export function waitForFirst({ hasSettled, subscribe, timeoutMs, signal, interrupt, closed, }) {
7
- if (signal?.aborted)
8
- return Promise.reject(signal.reason ?? new Error("Wait aborted"));
9
- if (hasSettled() || interrupt?.aborted || closed.aborted)
10
- return Promise.resolve();
11
- return new Promise((resolve, reject) => {
12
- const releases = [];
13
- let finished = false;
14
- const end = (reason) => {
15
- if (finished)
16
- return;
17
- finished = true;
18
- for (const release of releases)
19
- release();
20
- if (reason === undefined)
21
- resolve();
22
- else
23
- reject(reason);
24
- };
25
- const on = (source, handler) => {
26
- if (!source)
27
- return;
28
- source.addEventListener("abort", handler, { once: true });
29
- releases.push(() => source.removeEventListener("abort", handler));
30
- };
31
- on(signal, () => end(signal?.reason ?? new Error("Wait aborted")));
32
- on(interrupt, () => end());
33
- on(closed, () => end());
34
- const timer = setTimeout(() => end(), boundWaitMs(timeoutMs));
35
- releases.push(() => clearTimeout(timer));
36
- releases.push(subscribe(() => {
37
- if (hasSettled())
38
- end();
39
- }));
40
- // Close the synchronous gap between the first check and subscription.
41
- if (hasSettled())
42
- end();
43
- });
44
- }
45
- //# sourceMappingURL=wait.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../../src/core/tasks/wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAgB1C;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAC5B,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,EACT,MAAM,GACO;IACb,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;IACvF,IAAI,UAAU,EAAE,IAAI,SAAS,EAAE,OAAO,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IACnF,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,CAAC,MAAgB,EAAE,EAAE;YAChC,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,MAAM,OAAO,IAAI,QAAQ;gBAAE,OAAO,EAAE,CAAC;YAC1C,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,EAAE,CAAC;;gBAC/B,MAAM,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC,CAAC;QACF,MAAM,EAAE,GAAG,CAAC,MAA+B,EAAE,OAAmB,EAAE,EAAE;YACnE,IAAI,CAAC,MAAM;gBAAE,OAAO;YACpB,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1D,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC;QACF,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QACnE,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC3B,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACzC,QAAQ,CAAC,IAAI,CACZ,SAAS,CAAC,GAAG,EAAE;YACd,IAAI,UAAU,EAAE;gBAAE,GAAG,EAAE,CAAC;QACzB,CAAC,CAAC,CACF,CAAC;QACF,sEAAsE;QACtE,IAAI,UAAU,EAAE;YAAE,GAAG,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import { boundWaitMs } from \"./limits.ts\";\n\nexport interface WaitSources {\n\t/** Whether any observed execution has settled. */\n\thasSettled(): boolean;\n\t/** Subscribe to execution state changes; the returned release must remove the listener. */\n\tsubscribe(listener: () => void): () => void;\n\ttimeoutMs: number;\n\t/** Rejects the wait with the signal's reason. */\n\tsignal?: AbortSignal;\n\t/** Steering: ends the wait without rejecting. */\n\tinterrupt?: AbortSignal;\n\t/** The runtime closed: ends the wait without rejecting. */\n\tclosed: AbortSignal;\n}\n\n/**\n * A race of settlement, timeout, abort, interrupt and close. Whichever ends it first, the timer\n * and every listener are released, so an observation leaves nothing behind. Only an abort rejects.\n */\nexport function waitForFirst({\n\thasSettled,\n\tsubscribe,\n\ttimeoutMs,\n\tsignal,\n\tinterrupt,\n\tclosed,\n}: WaitSources): Promise<void> {\n\tif (signal?.aborted) return Promise.reject(signal.reason ?? new Error(\"Wait aborted\"));\n\tif (hasSettled() || interrupt?.aborted || closed.aborted) return Promise.resolve();\n\treturn new Promise<void>((resolve, reject) => {\n\t\tconst releases: Array<() => void> = [];\n\t\tlet finished = false;\n\t\tconst end = (reason?: unknown) => {\n\t\t\tif (finished) return;\n\t\t\tfinished = true;\n\t\t\tfor (const release of releases) release();\n\t\t\tif (reason === undefined) resolve();\n\t\t\telse reject(reason);\n\t\t};\n\t\tconst on = (source: AbortSignal | undefined, handler: () => void) => {\n\t\t\tif (!source) return;\n\t\t\tsource.addEventListener(\"abort\", handler, { once: true });\n\t\t\treleases.push(() => source.removeEventListener(\"abort\", handler));\n\t\t};\n\t\ton(signal, () => end(signal?.reason ?? new Error(\"Wait aborted\")));\n\t\ton(interrupt, () => end());\n\t\ton(closed, () => end());\n\t\tconst timer = setTimeout(() => end(), boundWaitMs(timeoutMs));\n\t\treleases.push(() => clearTimeout(timer));\n\t\treleases.push(\n\t\t\tsubscribe(() => {\n\t\t\t\tif (hasSettled()) end();\n\t\t\t}),\n\t\t);\n\t\t// Close the synchronous gap between the first check and subscription.\n\t\tif (hasSettled()) end();\n\t});\n}\n"]}
@@ -1,14 +0,0 @@
1
- import type { TUI } from "@earendil-works/pi-tui";
2
- import { ToolExecutionComponent as NativeToolExecutionComponent, type ToolExecutionOptions } from "../components/tool-execution.ts";
3
- import { type ToolDefinitionLike } from "./shell.ts";
4
- export type { ToolRenderers } from "../../../core/extensions/types.ts";
5
- export type { ToolExecutionOptions } from "../components/tool-execution.ts";
6
- /**
7
- * Compatibility entry point for the distribution's original tool-view import path.
8
- * Lifecycle and renderer composition live in the native component; this adapter only supplies
9
- * the default shell for callers that construct the old distribution component directly.
10
- */
11
- export declare class ToolExecutionComponent extends NativeToolExecutionComponent {
12
- constructor(toolName: string, toolCallId: string, args: any, options: ToolExecutionOptions | undefined, toolDefinition: ToolDefinitionLike | undefined, ui: TUI, cwd: string);
13
- }
14
- //# sourceMappingURL=tool-execution.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-execution.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/tool-view/tool-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EACN,sBAAsB,IAAI,4BAA4B,EACtD,KAAK,oBAAoB,EACzB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,kBAAkB,EAAiB,MAAM,YAAY,CAAC;AAEpE,YAAY,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,YAAY,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAE5E;;;;GAIG;AACH,qBAAa,sBAAuB,SAAQ,4BAA4B;gBAEtE,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,GAAG,EACT,OAAO,EAAE,oBAAoB,YAAK,EAClC,cAAc,EAAE,kBAAkB,GAAG,SAAS,EAC9C,EAAE,EAAE,GAAG,EACP,GAAG,EAAE,MAAM;CAIZ"}
@@ -1,13 +0,0 @@
1
- import { ToolExecutionComponent as NativeToolExecutionComponent, } from "../components/tool-execution.js";
2
- import { withToolShell } from "./shell.js";
3
- /**
4
- * Compatibility entry point for the distribution's original tool-view import path.
5
- * Lifecycle and renderer composition live in the native component; this adapter only supplies
6
- * the default shell for callers that construct the old distribution component directly.
7
- */
8
- export class ToolExecutionComponent extends NativeToolExecutionComponent {
9
- constructor(toolName, toolCallId, args, options = {}, toolDefinition, ui, cwd) {
10
- super(toolName, toolCallId, args, options, withToolShell(toolName, toolDefinition), ui, cwd);
11
- }
12
- }
13
- //# sourceMappingURL=tool-execution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-execution.js","sourceRoot":"","sources":["../../../../src/modes/interactive/tool-view/tool-execution.ts"],"names":[],"mappings":"AACA,OAAO,EACN,sBAAsB,IAAI,4BAA4B,GAEtD,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAA2B,aAAa,EAAE,MAAM,YAAY,CAAC;AAKpE;;;;GAIG;AACH,MAAM,OAAO,sBAAuB,SAAQ,4BAA4B;IACvE,YACC,QAAgB,EAChB,UAAkB,EAClB,IAAS,EACT,UAAgC,EAAE,EAClC,cAA8C,EAC9C,EAAO,EACP,GAAW;QAEX,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC9F,CAAC;CACD","sourcesContent":["import type { TUI } from \"@earendil-works/pi-tui\";\nimport {\n\tToolExecutionComponent as NativeToolExecutionComponent,\n\ttype ToolExecutionOptions,\n} from \"../components/tool-execution.ts\";\nimport { type ToolDefinitionLike, withToolShell } from \"./shell.ts\";\n\nexport type { ToolRenderers } from \"../../../core/extensions/types.ts\";\nexport type { ToolExecutionOptions } from \"../components/tool-execution.ts\";\n\n/**\n * Compatibility entry point for the distribution's original tool-view import path.\n * Lifecycle and renderer composition live in the native component; this adapter only supplies\n * the default shell for callers that construct the old distribution component directly.\n */\nexport class ToolExecutionComponent extends NativeToolExecutionComponent {\n\tconstructor(\n\t\ttoolName: string,\n\t\ttoolCallId: string,\n\t\targs: any,\n\t\toptions: ToolExecutionOptions = {},\n\t\ttoolDefinition: ToolDefinitionLike | undefined,\n\t\tui: TUI,\n\t\tcwd: string,\n\t) {\n\t\tsuper(toolName, toolCallId, args, options, withToolShell(toolName, toolDefinition), ui, cwd);\n\t}\n}\n"]}
Binary file
Binary file