@desplega.ai/agent-swarm 2.7.0 → 2.7.1

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 (236) hide show
  1. package/dist/{acp-adapter-ma1js5n7.js → acp-adapter-8dn5tq56.js} +6 -6
  2. package/dist/{actions-1vhmtvg9.js → actions-3r6gw7dy.js} +18 -18
  3. package/dist/{amp-adapter-sxqqvmdk.js → amp-adapter-wjtq413p.js} +3 -3
  4. package/dist/{anthropic-messages-txs190dd.js → anthropic-messages-n4cby1rz.js} +4 -4
  5. package/dist/{app-mwx1d5a9.js → app-d53yhykk.js} +3 -3
  6. package/dist/{assistant-yx1p6g82.js → assistant-ksrawj3k.js} +20 -20
  7. package/dist/{boot-reembed-7h78vmvv.js → boot-reembed-fxfw17m2.js} +10 -3
  8. package/dist/{boot-reembed-5h37a2c2.js → boot-reembed-k5y5xbj0.js} +15 -8
  9. package/dist/{boot-scrub-sweep-8mawd4gw.js → boot-scrub-sweep-se41j9fd.js} +3 -3
  10. package/dist/{boot-seeds-ca84dhnn.js → boot-seeds-r3kwwv8b.js} +4 -4
  11. package/dist/{claude-adapter-wqt4hfkq.js → claude-adapter-ahmyf231.js} +7 -7
  12. package/dist/{claude-managed-adapter-6fjqtr2z.js → claude-managed-adapter-5knamegc.js} +3 -3
  13. package/dist/{claude-managed-setup-rqv98sea.js → claude-managed-setup-mdc7dy6b.js} +2 -2
  14. package/dist/{claude-sdk-session-f29f3b2x.js → claude-sdk-session-n5wen9zk.js} +8728 -8599
  15. package/dist/{cli-m5e802r7.js → cli-0dqtv2jg.js} +2 -2
  16. package/dist/{cli-e1595bgx.js → cli-0tww7dnz.js} +2 -2
  17. package/dist/{cli-2y7v133v.js → cli-0w4e4v58.js} +7 -7
  18. package/dist/{cli-d20qvpr2.js → cli-2sjm3t4r.js} +1 -1
  19. package/dist/{cli-gf2850q7.js → cli-3cywb44q.js} +18 -1
  20. package/dist/{cli-8wkb09q5.js → cli-3k9jej0c.js} +2 -2
  21. package/dist/{cli-twctnkng.js → cli-3v2cyqb8.js} +3 -3
  22. package/dist/{cli-he9gbdx0.js → cli-5qt9vzmq.js} +39 -20
  23. package/dist/{cli-a6ds2epe.js → cli-5rp1w4cr.js} +1 -1
  24. package/dist/{cli-6srv653c.js → cli-6vwjsetx.js} +4 -4
  25. package/dist/{cli-1hhbzkbb.js → cli-6w2yrrc0.js} +8 -8
  26. package/dist/{cli-f12mr20z.js → cli-75tdydgv.js} +1 -1
  27. package/dist/{cli-j3y0x2n4.js → cli-8feswf2v.js} +43 -33
  28. package/dist/{cli-07q03xm2.js → cli-8wd3mbyj.js} +1 -1
  29. package/dist/{cli-ymjpkxgn.js → cli-9csfthbw.js} +8 -6
  30. package/dist/{cli-f1e0ptjj.js → cli-b41p764a.js} +21 -2
  31. package/dist/{cli-kv7sbc2c.js → cli-c1t533hh.js} +3 -3
  32. package/dist/{cli-54sj64fc.js → cli-c28jxpcv.js} +1 -1
  33. package/dist/{cli-8mbc9za9.js → cli-cb50g9cd.js} +1 -1
  34. package/dist/{cli-c668vvcf.js → cli-d8gaphtr.js} +1 -1
  35. package/dist/{cli-86ehn4s5.js → cli-dgtfysne.js} +2 -2
  36. package/dist/{cli-sjctjr48.js → cli-dscnhn18.js} +1 -1
  37. package/dist/{cli-j0ppywdr.js → cli-dv11pgpv.js} +12 -12
  38. package/dist/{cli-1m9x8dr5.js → cli-ekptgk2m.js} +5 -5
  39. package/dist/{cli-9gsm2rzp.js → cli-f3mzy662.js} +17 -17
  40. package/dist/{cli-s0mgx214.js → cli-fk7k8s9x.js} +2 -2
  41. package/dist/{cli-vbhgkw9h.js → cli-h3e7bhvn.js} +3 -3
  42. package/dist/{cli-yd2nreqw.js → cli-hkxqdmnb.js} +2 -2
  43. package/dist/{cli-8wmj18cz.js → cli-hpkvgdad.js} +7 -4
  44. package/dist/{cli-wqr7cea4.js → cli-hq2v4rr5.js} +37 -9
  45. package/dist/{cli-sgqm2582.js → cli-k1zb7raw.js} +5 -5
  46. package/dist/{cli-4rvr7zfx.js → cli-k4awgvzm.js} +5 -0
  47. package/dist/{cli-ay40dnj3.js → cli-k7d3hvya.js} +2 -2
  48. package/dist/{cli-j9bpmykh.js → cli-kbtdftbw.js} +5 -5
  49. package/dist/{cli-x37r7qwf.js → cli-kj69b9tw.js} +25 -5
  50. package/dist/{cli-gsfk58nw.js → cli-kk9jy4nm.js} +1 -1
  51. package/dist/{cli-39aet655.js → cli-m52t4cta.js} +1 -1
  52. package/dist/{cli-h5jeg46p.js → cli-mdadewqp.js} +5 -5
  53. package/dist/{cli-a89zdqz9.js → cli-nf6k60sn.js} +1 -1
  54. package/dist/{cli-v6shg7na.js → cli-nzdf09js.js} +1 -1
  55. package/dist/{cli-rr7zx19j.js → cli-prcyzecg.js} +12 -12
  56. package/dist/{cli-6a9qfa8b.js → cli-pzafyqtk.js} +118 -48
  57. package/dist/{cli-48gxjmcz.js → cli-qvaa1gjp.js} +87 -24
  58. package/dist/{cli-qj442fws.js → cli-rg4b2g6j.js} +1 -1
  59. package/dist/{cli-aypd09nf.js → cli-rm66vqdz.js} +1 -1
  60. package/dist/{cli-9pshx6rd.js → cli-s504c3w7.js} +1 -1
  61. package/dist/{cli-ptfq202x.js → cli-swkx9jm2.js} +3 -3
  62. package/dist/{cli-m30k9777.js → cli-thsaq4pd.js} +16 -16
  63. package/dist/{cli-60sty27p.js → cli-twjnyvs8.js} +2 -2
  64. package/dist/{cli-rd5m70gj.js → cli-typdpe8g.js} +4 -4
  65. package/dist/{cli-yxbsmx56.js → cli-vg8pwmsd.js} +6 -6
  66. package/dist/{cli-s09j9vp5.js → cli-vhpckzvp.js} +1 -1
  67. package/dist/{cli-dv97kdzv.js → cli-wdxgsdz5.js} +2 -2
  68. package/dist/{cli-7a6p4e65.js → cli-wtjg6je3.js} +1 -1
  69. package/dist/{cli-b3yzyc57.js → cli-x3cngb1h.js} +44 -12
  70. package/dist/{cli-6mgdba42.js → cli-xbz6mcg4.js} +2 -2
  71. package/dist/{cli-2pvzmas1.js → cli-y4tdxsqb.js} +3 -3
  72. package/dist/{cli-f4dbh7a5.js → cli-yqrsp3ny.js} +7 -7
  73. package/dist/cli.js +27 -19
  74. package/dist/{codex-adapter-zk59x2zh.js → codex-adapter-7wepzq15.js} +5 -5
  75. package/dist/{codex-hook-xyjhvxwd.js → codex-hook-pbdh4xhx.js} +2 -2
  76. package/dist/{codex-session-runner-kh6s4j3n.js → codex-session-runner-02sb49e4.js} +5 -5
  77. package/dist/{commands-68et1qv2.js → commands-3rcspxct.js} +2 -2
  78. package/dist/{controller-fyrbnzg4.js → controller-8ar4avd6.js} +3 -3
  79. package/dist/{controllers-connect-nep9h2xv.js → controllers-connect-ajvh9h0v.js} +19 -19
  80. package/dist/{cursor-adapter-yss3pg7t.js → cursor-adapter-gd0sa7bh.js} +1 -1
  81. package/dist/{db-28gjyvxj.js → db-dv9j7ts5.js} +2 -2
  82. package/dist/{db-8ftwvzba.js → db-z26vgdvj.js} +3 -3
  83. package/dist/{dispatcher-hayexmkr.js → dispatcher-8m0htjq8.js} +17 -17
  84. package/dist/{dsh-adapter-46wawff9.js → dsh-adapter-y8gyk130.js} +1 -1
  85. package/dist/{e2b-fn3zacvt.js → e2b-74vg9b7e.js} +1 -1
  86. package/dist/{e2b-222hsajc.js → e2b-jyay8wzn.js} +1 -1
  87. package/dist/{easter-egg-3d-8d1e0h4m.js → easter-egg-3d-28f880xx.js} +1 -1
  88. package/dist/{execute-cjrfxfnm.js → execute-9seb79vh.js} +1 -1
  89. package/dist/{external-channel-xbmxcg09.js → external-channel-smz7jyth.js} +2 -2
  90. package/dist/{getMachineId-bsd-brn0xym3.js → getMachineId-bsd-whfre6gr.js} +3 -3
  91. package/dist/{getMachineId-darwin-t339sfxm.js → getMachineId-darwin-5zjynb19.js} +3 -3
  92. package/dist/{getMachineId-linux-5eq95d8b.js → getMachineId-linux-8mksrrsq.js} +3 -3
  93. package/dist/{getMachineId-unsupported-qavrtc7j.js → getMachineId-unsupported-fxtqsdt2.js} +3 -3
  94. package/dist/{getMachineId-win-q7fe1wx7.js → getMachineId-win-nzfmz857.js} +3 -3
  95. package/dist/{grok-adapter-ag4wks2a.js → grok-adapter-z0nnvtbn.js} +7 -7
  96. package/dist/handlers-pspryh6g.js +41 -0
  97. package/dist/{heartbeat-psfvcgwp.js → heartbeat-f928aqyp.js} +20 -20
  98. package/dist/{hook-cyq4mryn.js → hook-d7c605r4.js} +7 -7
  99. package/dist/{hook-8pz04697.js → hook-q9hv5xf9.js} +5 -5
  100. package/dist/{http-haj1nd6k.js → http-q6j4k989.js} +934 -180
  101. package/dist/{index-z5h22pes.js → index-5nb266jr.js} +17 -17
  102. package/dist/{index-ysd45kgc.js → index-8fxt5eah.js} +10 -10
  103. package/dist/{index-zgvqzjsw.js → index-cekzwhez.js} +5 -5
  104. package/dist/{index-zyq8ct52.js → index-ch0c1xff.js} +17 -17
  105. package/dist/{index-syvhnvtw.js → index-ebnjhxh1.js} +1 -1
  106. package/dist/{index-y1ajx04a.js → index-ed8dy8rn.js} +20 -20
  107. package/dist/{index-jwt2bj6f.js → index-ejqdkkqx.js} +11 -10
  108. package/dist/{index-dr94zbnh.js → index-farm1zsn.js} +32661 -29443
  109. package/dist/{index-q52f47pe.js → index-yn1yxg85.js} +1 -1
  110. package/dist/{keepalive-xdvsamvj.js → keepalive-zzc3hks1.js} +3 -3
  111. package/dist/{lead-hqg57kdp.js → lead-c0pjcaw4.js} +36 -36
  112. package/dist/{maintenance-4y2xzh3a.js → maintenance-kqsxzpzx.js} +1 -1
  113. package/dist/{oauth-refresh-sweep-jd4r7zbs.js → oauth-refresh-sweep-7qt0g55z.js} +2 -2
  114. package/dist/{onboard-18447q9q.js → onboard-k7x13fqg.js} +118 -5
  115. package/dist/{opencode-adapter-26b2frdf.js → opencode-adapter-tqvrtter.js} +5 -5
  116. package/dist/{otel-impl-f9tgr8yw.js → otel-impl-sqkf6k3b.js} +97 -97
  117. package/dist/{pi-mono-adapter-qn6qbga1.js → pi-mono-adapter-m2qnafxm.js} +63 -9
  118. package/dist/{pricing-refresh-dw2tgb53.js → pricing-refresh-wkpwhgvs.js} +3 -3
  119. package/dist/{rbac-roles-s4nwj2m3.js → rbac-roles-dpn0c0wj.js} +7 -4
  120. package/dist/{rbac-roles-aygm2760.js → rbac-roles-wk7xd6a6.js} +2 -2
  121. package/dist/{render-v2-yfvdfr0x.js → render-v2-ex2m4g2k.js} +3 -3
  122. package/dist/{resume-1bmvjbf3.js → resume-725g9b0b.js} +7 -7
  123. package/dist/{runtime-f7tpzedy.js → runtime-kajas15g.js} +1 -1
  124. package/dist/{session-access-r5garej6.js → session-access-0j2ezjje.js} +8 -4
  125. package/dist/{session-source-backfill-424wzv0r.js → session-source-backfill-62202awe.js} +2 -2
  126. package/dist/{setup-8tygvxkq.js → setup-9sj11ax6.js} +1 -1
  127. package/dist/{virtual-modules-xsw323b3.js → virtual-modules-c6fcq6zr.js} +2 -2
  128. package/dist/{work-objects-ggnghpgf.js → work-objects-0y07495y.js} +20 -20
  129. package/dist/{worker-sqjd1nqf.js → worker-d4q9sqbc.js} +36 -36
  130. package/openapi.json +1070 -9
  131. package/package.json +3 -3
  132. package/src/be/connector-codes.ts +65 -22
  133. package/src/be/memory/boot-reembed.ts +4 -1
  134. package/src/be/memory/constants.ts +6 -0
  135. package/src/be/memory/embedding-recovery.ts +48 -0
  136. package/src/be/memory/index-content.ts +5 -2
  137. package/src/be/memory/providers/openai-embedding.ts +65 -14
  138. package/src/be/memory/task-learning.ts +110 -8
  139. package/src/be/memory/types.ts +13 -2
  140. package/src/be/migrations/246_connector_code_kind.sql +11 -0
  141. package/src/be/onboarding.ts +125 -15
  142. package/src/be/rbac-roles.ts +4 -1
  143. package/src/be/scripts/embeddings.ts +2 -2
  144. package/src/be/seed/agent-fs-provision.ts +75 -14
  145. package/src/be/swarm-config-guard.ts +3 -0
  146. package/src/cli.tsx +9 -0
  147. package/src/comb/config.ts +6 -1
  148. package/src/commands/onboard/agent-fs-version.ts +5 -0
  149. package/src/commands/onboard/compose-generator.ts +112 -1
  150. package/src/commands/onboard/env-generator.ts +9 -0
  151. package/src/commands/onboard/tei-image.ts +12 -0
  152. package/src/commands/onboard/types.ts +7 -0
  153. package/src/commands/onboard.tsx +11 -1
  154. package/src/commands/runner.ts +14 -1
  155. package/src/http/agentfs-proxy.ts +369 -0
  156. package/src/http/all-routes.ts +1 -0
  157. package/src/http/codex-oauth-device.ts +8 -1
  158. package/src/http/fs.ts +64 -10
  159. package/src/http/inbox-state.ts +27 -1
  160. package/src/http/index.ts +4 -1
  161. package/src/http/memory.ts +7 -4
  162. package/src/http/onboarding.ts +139 -11
  163. package/src/http/session-access.ts +24 -0
  164. package/src/http/sessions.ts +10 -6
  165. package/src/http/tasks.ts +85 -11
  166. package/src/http/telemetry-ui.ts +1 -1
  167. package/src/http/user-roles.ts +4 -1
  168. package/src/http/users.ts +272 -3
  169. package/src/http/utils.ts +22 -3
  170. package/src/prompts/base-prompt.ts +24 -9
  171. package/src/prompts/session-templates.ts +26 -2
  172. package/src/providers/amp-adapter.ts +1 -1
  173. package/src/providers/codex-adapter.ts +6 -1
  174. package/src/providers/cursor-adapter.ts +1 -1
  175. package/src/providers/pi-mono-adapter.ts +58 -3
  176. package/src/rbac/legacy-policy.ts +1 -0
  177. package/src/rbac/permissions.ts +4 -0
  178. package/src/tests/agent-fs-provision-seeder.test.ts +261 -92
  179. package/src/tests/agentfs-proxy.test.ts +1106 -0
  180. package/src/tests/base-prompt.test.ts +69 -2
  181. package/src/tests/codex-adapter.test.ts +46 -8
  182. package/src/tests/codex-oauth-device.test.ts +12 -1
  183. package/src/tests/comb-config-guard.test.ts +20 -0
  184. package/src/tests/comb-links.test.ts +79 -1
  185. package/src/tests/comb-status.test.ts +44 -0
  186. package/src/tests/docs-index-footprint.test.js +3 -3
  187. package/src/tests/fixtures/onboard/baseline-states.ts +68 -0
  188. package/src/tests/fixtures/onboard/content.compose.yml.txt +190 -0
  189. package/src/tests/fixtures/onboard/content.env.txt +29 -0
  190. package/src/tests/fixtures/onboard/dev.compose.yml.txt +155 -0
  191. package/src/tests/fixtures/onboard/dev.env.txt +28 -0
  192. package/src/tests/fixtures/onboard/full-all.compose.yml.txt +582 -0
  193. package/src/tests/fixtures/onboard/full-all.env.txt +59 -0
  194. package/src/tests/fixtures/onboard/full.compose.yml.txt +435 -0
  195. package/src/tests/fixtures/onboard/full.env.txt +36 -0
  196. package/src/tests/fixtures/onboard/research.compose.yml.txt +155 -0
  197. package/src/tests/fixtures/onboard/research.env.txt +28 -0
  198. package/src/tests/fixtures/onboard/solo.compose.yml.txt +85 -0
  199. package/src/tests/fixtures/onboard/solo.env.txt +26 -0
  200. package/src/tests/http-log-scrubbing.test.ts +34 -1
  201. package/src/tests/http-task-write-ownership.test.ts +5 -1
  202. package/src/tests/invites-http.test.ts +464 -0
  203. package/src/tests/memory-embedding-input-cap.test.ts +122 -1
  204. package/src/tests/memory-embedding-recovery.test.ts +137 -0
  205. package/src/tests/onboard-compose.test.ts +142 -0
  206. package/src/tests/onboard-env.test.ts +24 -0
  207. package/src/tests/onboard-non-interactive.test.ts +29 -0
  208. package/src/tests/onboard-tei-image.test.ts +36 -0
  209. package/src/tests/onboarding.test.ts +451 -4
  210. package/src/tests/openai-embedding-provider.test.ts +105 -2
  211. package/src/tests/pi-mono-session-cost-on-abort.test.ts +270 -0
  212. package/src/tests/preload-env.test.ts +4 -0
  213. package/src/tests/preload.ts +4 -0
  214. package/src/tests/prompt-template-session.test.ts +19 -3
  215. package/src/tests/rbac-admission-e2e.test.ts +22 -6
  216. package/src/tests/rbac-admission.test.ts +342 -4
  217. package/src/tests/rbac-engine.test.ts +1 -0
  218. package/src/tests/rbac-roles.test.ts +9 -1
  219. package/src/tests/send-task-requester-gate.test.ts +64 -3
  220. package/src/tests/sessions-move.test.ts +39 -1
  221. package/src/tests/store-progress-learning.test.ts +95 -2
  222. package/src/tests/whoami-route.test.ts +41 -0
  223. package/src/tools/inject-learning.ts +1 -1
  224. package/src/tools/memory-edit.ts +1 -1
  225. package/src/tools/memory-search.ts +1 -1
  226. package/src/tools/store-progress.ts +5 -1
  227. package/src/tools/utils.ts +12 -1
  228. package/src/utils/constants.ts +39 -0
  229. package/src/utils/task-attachment-links.ts +15 -3
  230. package/templates/skills/swarm-docs/content.md +1 -1
  231. package/dist/handlers-tzmevqb5.js +0 -41
  232. package/dist/{azure-openai-responses-9kfwhmn7.js → azure-openai-responses-43asa23s.js} +0 -0
  233. package/dist/{node-vxx896fa.js → node-t28cc56b.js} +0 -0
  234. package/dist/{openai-codex-responses-79s8xnbh.js → openai-codex-responses-jhr3sjtm.js} +3 -3
  235. package/dist/{openai-completions-tdbyts0x.js → openai-completions-gs6yn37k.js} +3 -3
  236. /package/dist/{openai-responses-dm3t5vqp.js → openai-responses-jqm9vwwk.js} +0 -0
@@ -13,17 +13,17 @@ import {
13
13
  createCodemodeExtension,
14
14
  createMcpExtension,
15
15
  createToolSearchExtension
16
- } from "./cli-2y7v133v.js";
16
+ } from "./cli-0w4e4v58.js";
17
17
  import {
18
18
  Unsafe,
19
19
  getBuiltinModel,
20
20
  getBuiltinModels
21
- } from "./cli-1m9x8dr5.js";
21
+ } from "./cli-ekptgk2m.js";
22
22
  import"./cli-kvzgak7c.js";
23
23
  import {
24
24
  contextBoundNoteThreshold,
25
25
  createContextBoundNote
26
- } from "./cli-sjctjr48.js";
26
+ } from "./cli-dscnhn18.js";
27
27
  import {
28
28
  swarmRuntimeInstanceId
29
29
  } from "./cli-e8xyjvfc.js";
@@ -34,9 +34,9 @@ import"./cli-3h26v7yj.js";
34
34
  import"./cli-0726awxw.js";
35
35
  import {
36
36
  createSwarmHooksExtension
37
- } from "./cli-e1595bgx.js";
37
+ } from "./cli-0tww7dnz.js";
38
38
  import"./cli-0z1xjzwa.js";
39
- import"./cli-c668vvcf.js";
39
+ import"./cli-d8gaphtr.js";
40
40
  import {
41
41
  applyReasoningEffort
42
42
  } from "./cli-c081bj3b.js";
@@ -58,7 +58,7 @@ import {
58
58
  } from "./cli-2dfbv8qr.js";
59
59
  import {
60
60
  init_templates3
61
- } from "./cli-v6shg7na.js";
61
+ } from "./cli-nzdf09js.js";
62
62
  import {
63
63
  DEFAULT_OPENROUTER_BASE_URL,
64
64
  getOpenRouterBaseUrl,
@@ -67,7 +67,7 @@ import {
67
67
  import {
68
68
  resolveTemplateAsync,
69
69
  init_resolver
70
- } from "./cli-f1e0ptjj.js";
70
+ } from "./cli-b41p764a.js";
71
71
  import {
72
72
  snapshotCatalogRows,
73
73
  init_runtime_model_catalog
@@ -668,6 +668,7 @@ class PiMonoSession {
668
668
  terminalStoreProgressDone = false;
669
669
  emptyTurnReprompted = false;
670
670
  abortRequested = false;
671
+ idleResolvers = new Set;
671
672
  disposeModels;
672
673
  observeContextBound;
673
674
  toolTurnOpen = false;
@@ -813,6 +814,14 @@ class PiMonoSession {
813
814
  case "tool_execution_end":
814
815
  if (this.pendingTerminalStoreProgress.delete(event.toolCallId) && !event.isError) {
815
816
  this.terminalStoreProgressDone = true;
817
+ const snapshotCost = this.safeBuildCostData(false);
818
+ if (snapshotCost) {
819
+ this.emit({
820
+ type: "result",
821
+ cost: snapshotCost,
822
+ isError: false
823
+ });
824
+ }
816
825
  }
817
826
  this.emit({
818
827
  type: "raw_log",
@@ -893,6 +902,24 @@ class PiMonoSession {
893
902
  };
894
903
  } catch (err) {
895
904
  const errorMessage = err instanceof Error ? err.message : String(err);
905
+ if (this.abortRequested && this.terminalStoreProgressDone) {
906
+ const cost = this.safeBuildCostData(false);
907
+ if (cost) {
908
+ this.emit({
909
+ type: "result",
910
+ cost,
911
+ isError: false
912
+ });
913
+ }
914
+ return {
915
+ exitCode: 0,
916
+ sessionId: this._sessionId,
917
+ cost,
918
+ output: this.lastAssistantText || undefined,
919
+ isError: false,
920
+ appliedReasoningEffort: this.appliedReasoningEffort
921
+ };
922
+ }
896
923
  const awsCatchError = classifyAwsSdkError(errorMessage);
897
924
  if (awsCatchError) {
898
925
  this.emit({
@@ -903,9 +930,11 @@ class PiMonoSession {
903
930
  }
904
931
  this.emit({ type: "raw_stderr", content: `[pi-mono] Error: ${errorMessage}
905
932
  ` });
933
+ const cost = this.safeBuildCostData(true);
906
934
  return {
907
935
  exitCode: 1,
908
936
  sessionId: this._sessionId,
937
+ cost,
909
938
  isError: true,
910
939
  errorCategory: awsCatchError?.category,
911
940
  failureReason: scrubSecrets(awsCatchError?.message ?? errorMessage),
@@ -962,14 +991,36 @@ class PiMonoSession {
962
991
  resolve();
963
992
  return;
964
993
  }
994
+ let settled = false;
995
+ const finish = () => {
996
+ if (settled)
997
+ return;
998
+ settled = true;
999
+ unsub();
1000
+ this.idleResolvers.delete(finish);
1001
+ resolve();
1002
+ };
965
1003
  const unsub = this.agentSession.subscribe((event) => {
966
1004
  if (event.type === "agent_end") {
967
- unsub();
968
- resolve();
1005
+ finish();
969
1006
  }
970
1007
  });
1008
+ this.idleResolvers.add(finish);
1009
+ if (this.abortRequested) {
1010
+ finish();
1011
+ }
971
1012
  });
972
1013
  }
1014
+ safeBuildCostData(isError) {
1015
+ try {
1016
+ const stats = this.agentSession.getSessionStats();
1017
+ if (!stats)
1018
+ return;
1019
+ return { ...this.buildCostData(stats), isError };
1020
+ } catch {
1021
+ return;
1022
+ }
1023
+ }
973
1024
  buildCostData(stats) {
974
1025
  return {
975
1026
  sessionId: "",
@@ -1002,6 +1053,9 @@ class PiMonoSession {
1002
1053
  }
1003
1054
  async abort() {
1004
1055
  this.abortRequested = true;
1056
+ for (const resolve of [...this.idleResolvers]) {
1057
+ resolve();
1058
+ }
1005
1059
  await this.agentSession.abort();
1006
1060
  }
1007
1061
  async deliverSteering({ mode, text }) {
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  requestModelCatalogRefresh2,
3
3
  startPricingRefreshLoop2
4
- } from "./cli-60sty27p.js";
5
- import"./cli-d20qvpr2.js";
6
- import"./cli-48gxjmcz.js";
4
+ } from "./cli-twjnyvs8.js";
5
+ import"./cli-2sjm3t4r.js";
6
+ import"./cli-qvaa1gjp.js";
7
7
  export {
8
8
  requestModelCatalogRefresh2 as requestModelCatalogRefresh,
9
9
  startPricingRefreshLoop2 as startPricingRefreshLoop
@@ -3,11 +3,11 @@ import {
3
3
  getDbClient2,
4
4
  init_telemetry_identity,
5
5
  init_db3
6
- } from "./cli-48gxjmcz.js";
6
+ } from "./cli-qvaa1gjp.js";
7
7
  import {
8
8
  PermissionVerbSchema,
9
9
  init_rbac
10
- } from "./cli-4rvr7zfx.js";
10
+ } from "./cli-k4awgvzm.js";
11
11
  import {
12
12
  isEnvFlagEnabled,
13
13
  init_env_flag
@@ -42,7 +42,10 @@ var BUILTIN_ROLES = [
42
42
  "task.fs.mutate",
43
43
  "favorite.write.own",
44
44
  "session.share",
45
- "session.presence"
45
+ "session.presence",
46
+ "task.steer.own",
47
+ "comb.presence",
48
+ "fs.join.own"
46
49
  ]
47
50
  },
48
51
  {
@@ -51,7 +54,7 @@ var BUILTIN_ROLES = [
51
54
  description: "Read-only: no task, approval or script writes.",
52
55
  isBuiltin: true,
53
56
  grantsAll: false,
54
- verbs: ["favorite.write.own", "session.presence"]
57
+ verbs: ["favorite.write.own", "session.presence", "comb.presence", "fs.join.own"]
55
58
  }
56
59
  ];
57
60
  var CREATE_USER_DEFAULT_ROLE_TRIGGER_SQL = `
@@ -9,8 +9,8 @@ import {
9
9
  setUserRoles2,
10
10
  ensureRbacSeedsSynced2,
11
11
  init_rbac_roles
12
- } from "./cli-8wmj18cz.js";
13
- import"./cli-48gxjmcz.js";
12
+ } from "./cli-hpkvgdad.js";
13
+ import"./cli-qvaa1gjp.js";
14
14
  init_rbac_roles();
15
15
 
16
16
  export {
@@ -4,9 +4,9 @@ import {
4
4
  ensureSlackThreadTree2,
5
5
  slackErrorCode2,
6
6
  processSlackRenderV22
7
- } from "./cli-m30k9777.js";
8
- import"./cli-s09j9vp5.js";
9
- import"./cli-48gxjmcz.js";
7
+ } from "./cli-thsaq4pd.js";
8
+ import"./cli-vhpckzvp.js";
9
+ import"./cli-qvaa1gjp.js";
10
10
  export {
11
11
  callSlackWithRetry2 as callSlackWithRetry,
12
12
  ensureSlackThreadTree2 as ensureSlackThreadTree,
@@ -10,22 +10,22 @@ import {
10
10
  resumeFromChildRun2,
11
11
  initWaitBusSubscriptions2,
12
12
  subscribeWaitToBus2
13
- } from "./cli-twctnkng.js";
14
- import"./cli-j0ppywdr.js";
15
- import"./cli-1m9x8dr5.js";
13
+ } from "./cli-3v2cyqb8.js";
14
+ import"./cli-dv11pgpv.js";
15
+ import"./cli-ekptgk2m.js";
16
16
  import"./cli-0z1xjzwa.js";
17
17
  import"./cli-e8xyjvfc.js";
18
18
  import"./cli-13p25grh.js";
19
19
  import"./cli-0adyhvq2.js";
20
- import"./cli-m30k9777.js";
21
- import"./cli-s09j9vp5.js";
22
- import"./cli-a89zdqz9.js";
20
+ import"./cli-thsaq4pd.js";
21
+ import"./cli-vhpckzvp.js";
22
+ import"./cli-nf6k60sn.js";
23
23
  import"./cli-rycdaj0a.js";
24
24
  import"./cli-445c1vp7.js";
25
25
  import"./cli-kvzgak7c.js";
26
26
  import"./cli-2nf3b08t.js";
27
- import"./cli-48gxjmcz.js";
28
27
  import"./cli-kt907da6.js";
28
+ import"./cli-qvaa1gjp.js";
29
29
  export {
30
30
  cancelWorkflowRun2 as cancelWorkflowRun,
31
31
  cancelWorkflowRunRows2 as cancelWorkflowRunRows,
@@ -5,7 +5,7 @@ import {
5
5
  McpServerLog2,
6
6
  createDefaultTransport2,
7
7
  McpServerConnection2
8
- } from "./cli-m5e802r7.js";
8
+ } from "./cli-0dqtv2jg.js";
9
9
  export {
10
10
  McpOAuthCredentialStore2 as McpOAuthCredentialStore,
11
11
  McpServerConnection2 as McpServerConnection,
@@ -6,19 +6,23 @@ import {
6
6
  readableByFor2,
7
7
  SESSION_WRITE_DENIED2,
8
8
  hasSessionWrite2,
9
+ NOT_YOUR_TASK_DENIED2,
10
+ deniesNonOwnerTaskWrite2,
9
11
  denyParentAttach2,
10
12
  pathSessionDenial2,
11
13
  bodySessionDenial2,
12
14
  userAgentIdentityDenial2
13
- } from "./cli-wqr7cea4.js";
14
- import"./cli-a89zdqz9.js";
15
- import"./cli-8wmj18cz.js";
16
- import"./cli-48gxjmcz.js";
15
+ } from "./cli-hq2v4rr5.js";
16
+ import"./cli-nf6k60sn.js";
17
+ import"./cli-hpkvgdad.js";
18
+ import"./cli-qvaa1gjp.js";
17
19
  export {
20
+ NOT_YOUR_TASK_DENIED2 as NOT_YOUR_TASK_DENIED,
18
21
  SESSION_READ_DENIED2 as SESSION_READ_DENIED,
19
22
  SESSION_WRITE_DENIED2 as SESSION_WRITE_DENIED,
20
23
  bodySessionDenial2 as bodySessionDenial,
21
24
  canReadSession2 as canReadSession,
25
+ deniesNonOwnerTaskWrite2 as deniesNonOwnerTaskWrite,
22
26
  denyParentAttach2 as denyParentAttach,
23
27
  hasSessionWrite2 as hasSessionWrite,
24
28
  pathSessionDenial2 as pathSessionDenial,
@@ -7,12 +7,12 @@ import {
7
7
  moveTaskChainKeyInTx2,
8
8
  init_session_moves,
9
9
  init_db3
10
- } from "./cli-48gxjmcz.js";
10
+ } from "./cli-qvaa1gjp.js";
11
11
  import {
12
12
  normalizeAssetKey,
13
13
  defaultAssetKey,
14
14
  init_key
15
- } from "./cli-9pshx6rd.js";
15
+ } from "./cli-s504c3w7.js";
16
16
  import {
17
17
  scrubSecrets,
18
18
  init_secret_scrubber
@@ -15,7 +15,7 @@ import {
15
15
  createDefaultSettingsLocal,
16
16
  createDefaultMcpJson,
17
17
  createHooksConfig
18
- } from "./cli-a6ds2epe.js";
18
+ } from "./cli-5rp1w4cr.js";
19
19
  import {
20
20
  getApiKey,
21
21
  init_api_key
@@ -4,7 +4,7 @@ import {
4
4
  exports_compile,
5
5
  exports_all,
6
6
  exports_compat
7
- } from "./cli-1m9x8dr5.js";
7
+ } from "./cli-ekptgk2m.js";
8
8
  import {
9
9
  exports_models
10
10
  } from "./cli-2nf3b08t.js";
@@ -14,7 +14,7 @@ import {
14
14
  exports_dist,
15
15
  exports_dist2,
16
16
  exports_dist3
17
- } from "./cli-2y7v133v.js";
17
+ } from "./cli-0w4e4v58.js";
18
18
  import"./cli-13p25grh.js";
19
19
  import"./cli-0adyhvq2.js";
20
20
  import"./cli-rycdaj0a.js";
@@ -2,46 +2,46 @@ import {
2
2
  getAgentById2,
3
3
  getTaskById2,
4
4
  init_db3
5
- } from "./cli-48gxjmcz.js";
5
+ } from "./cli-qvaa1gjp.js";
6
6
  import {
7
7
  slackTaskOutput,
8
8
  getTaskUrl
9
- } from "./cli-m30k9777.js";
9
+ } from "./cli-thsaq4pd.js";
10
10
  import {
11
11
  shouldBlockChannel2
12
- } from "./cli-s09j9vp5.js";
13
- import"./cli-6a9qfa8b.js";
14
- import"./cli-j0ppywdr.js";
15
- import"./cli-j9bpmykh.js";
16
- import"./cli-aypd09nf.js";
12
+ } from "./cli-vhpckzvp.js";
13
+ import"./cli-pzafyqtk.js";
14
+ import"./cli-dv11pgpv.js";
15
+ import"./cli-kbtdftbw.js";
16
+ import"./cli-rm66vqdz.js";
17
17
  import"./cli-3ggwdtb0.js";
18
18
  import"./cli-e8xyjvfc.js";
19
- import"./cli-1m9x8dr5.js";
19
+ import"./cli-ekptgk2m.js";
20
20
  import"./cli-2nf3b08t.js";
21
21
  import"./cli-kvzgak7c.js";
22
22
  import"./cli-445c1vp7.js";
23
23
  import"./cli-0z1xjzwa.js";
24
24
  import"./cli-kt907da6.js";
25
- import"./cli-twctnkng.js";
26
- import"./cli-8mbc9za9.js";
27
- import"./cli-d20qvpr2.js";
28
- import"./cli-60sty27p.js";
25
+ import"./cli-3v2cyqb8.js";
26
+ import"./cli-cb50g9cd.js";
27
+ import"./cli-2sjm3t4r.js";
28
+ import"./cli-twjnyvs8.js";
29
29
  import"./cli-qz93y3x5.js";
30
- import"./cli-8wmj18cz.js";
31
- import"./cli-rd5m70gj.js";
30
+ import"./cli-hpkvgdad.js";
31
+ import"./cli-typdpe8g.js";
32
32
  import"./cli-g9ypd5en.js";
33
- import"./cli-6srv653c.js";
34
- import"./cli-wqr7cea4.js";
33
+ import"./cli-6vwjsetx.js";
34
+ import"./cli-hq2v4rr5.js";
35
35
  import"./cli-3h26v7yj.js";
36
36
  import"./cli-737pyqxr.js";
37
- import"./cli-2pvzmas1.js";
38
- import"./cli-sgqm2582.js";
37
+ import"./cli-y4tdxsqb.js";
38
+ import"./cli-k1zb7raw.js";
39
39
  import {
40
40
  isUserAllowed2
41
- } from "./cli-f4dbh7a5.js";
41
+ } from "./cli-yqrsp3ny.js";
42
42
  import"./cli-13p25grh.js";
43
43
  import"./cli-0adyhvq2.js";
44
- import"./cli-a89zdqz9.js";
44
+ import"./cli-nf6k60sn.js";
45
45
  import"./cli-rycdaj0a.js";
46
46
  import {
47
47
  isEnvFlagEnabled,
@@ -1,67 +1,67 @@
1
1
  import"./cli-qz93y3x5.js";
2
2
  import {
3
3
  getEnabledCapabilities
4
- } from "./cli-6a9qfa8b.js";
5
- import"./cli-48gxjmcz.js";
6
- import"./cli-8wmj18cz.js";
7
- import"./cli-rd5m70gj.js";
8
- import"./cli-d20qvpr2.js";
9
- import"./cli-60sty27p.js";
10
- import"./cli-8mbc9za9.js";
4
+ } from "./cli-pzafyqtk.js";
5
+ import"./cli-qvaa1gjp.js";
6
+ import"./cli-hpkvgdad.js";
7
+ import"./cli-typdpe8g.js";
8
+ import"./cli-2sjm3t4r.js";
9
+ import"./cli-twjnyvs8.js";
10
+ import"./cli-cb50g9cd.js";
11
11
  import"./cli-kt907da6.js";
12
- import"./cli-j0ppywdr.js";
13
- import"./cli-j9bpmykh.js";
14
- import"./cli-aypd09nf.js";
12
+ import"./cli-dv11pgpv.js";
13
+ import"./cli-kbtdftbw.js";
14
+ import"./cli-rm66vqdz.js";
15
15
  import"./cli-3ggwdtb0.js";
16
16
  import"./cli-e8xyjvfc.js";
17
- import"./cli-m30k9777.js";
18
- import"./cli-s09j9vp5.js";
19
- import"./cli-1m9x8dr5.js";
17
+ import"./cli-thsaq4pd.js";
18
+ import"./cli-vhpckzvp.js";
19
+ import"./cli-ekptgk2m.js";
20
20
  import"./cli-2nf3b08t.js";
21
21
  import"./cli-kvzgak7c.js";
22
22
  import"./cli-445c1vp7.js";
23
23
  import"./cli-0z1xjzwa.js";
24
- import"./cli-twctnkng.js";
25
- import"./cli-wqr7cea4.js";
24
+ import"./cli-3v2cyqb8.js";
25
+ import"./cli-hq2v4rr5.js";
26
26
  import"./cli-g9ypd5en.js";
27
- import"./cli-6srv653c.js";
27
+ import"./cli-6vwjsetx.js";
28
28
  import"./cli-3h26v7yj.js";
29
29
  import"./cli-737pyqxr.js";
30
- import"./cli-07q03xm2.js";
30
+ import"./cli-8wd3mbyj.js";
31
31
  import"./cli-c081bj3b.js";
32
32
  import"./cli-77cd6gy8.js";
33
- import"./cli-6mgdba42.js";
33
+ import"./cli-xbz6mcg4.js";
34
34
  import {
35
35
  runAgent
36
- } from "./cli-j3y0x2n4.js";
36
+ } from "./cli-8feswf2v.js";
37
37
  import"./cli-vz78s5wm.js";
38
38
  import"./cli-yvy48785.js";
39
- import"./cli-sjctjr48.js";
39
+ import"./cli-dscnhn18.js";
40
40
  import"./cli-jc1g9ndz.js";
41
- import"./cli-kv7sbc2c.js";
42
- import"./cli-54sj64fc.js";
43
- import"./cli-c668vvcf.js";
41
+ import"./cli-c1t533hh.js";
42
+ import"./cli-c28jxpcv.js";
43
+ import"./cli-d8gaphtr.js";
44
44
  import"./cli-d82btycs.js";
45
45
  import"./cli-0726awxw.js";
46
- import"./cli-yxbsmx56.js";
47
- import"./cli-1hhbzkbb.js";
46
+ import"./cli-vg8pwmsd.js";
47
+ import"./cli-6w2yrrc0.js";
48
48
  import"./cli-4bd1rck6.js";
49
- import"./cli-vbhgkw9h.js";
50
- import"./cli-rr7zx19j.js";
51
- import"./cli-yd2nreqw.js";
49
+ import"./cli-h3e7bhvn.js";
50
+ import"./cli-prcyzecg.js";
51
+ import"./cli-hkxqdmnb.js";
52
52
  import"./cli-kr5tjjtz.js";
53
- import"./cli-ymjpkxgn.js";
54
- import"./cli-h5jeg46p.js";
53
+ import"./cli-9csfthbw.js";
54
+ import"./cli-mdadewqp.js";
55
55
  import"./cli-39rrw8yp.js";
56
- import"./cli-gsfk58nw.js";
57
- import"./cli-s0mgx214.js";
58
- import"./cli-e1595bgx.js";
59
- import"./cli-86ehn4s5.js";
60
- import"./cli-f12mr20z.js";
56
+ import"./cli-kk9jy4nm.js";
57
+ import"./cli-fk7k8s9x.js";
58
+ import"./cli-0tww7dnz.js";
59
+ import"./cli-dgtfysne.js";
60
+ import"./cli-75tdydgv.js";
61
61
  import"./cli-4zsenjhy.js";
62
62
  import"./cli-13p25grh.js";
63
63
  import"./cli-0adyhvq2.js";
64
- import"./cli-a89zdqz9.js";
64
+ import"./cli-nf6k60sn.js";
65
65
  import"./cli-rycdaj0a.js";
66
66
 
67
67
  // src/commands/worker.ts