@desplega.ai/agent-swarm 2.4.5 → 2.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.
Files changed (272) hide show
  1. package/README.md +4 -2
  2. package/dist/{acp-adapter-2wdkktv6.js → acp-adapter-11gp67nr.js} +8 -6
  3. package/dist/{actions-c40ebcm4.js → actions-8p2kze8j.js} +23 -21
  4. package/dist/{amp-adapter-wb67m95z.js → amp-adapter-z4qvhacj.js} +2 -2
  5. package/dist/{anthropic-messages-g6pqmqk4.js → anthropic-messages-txs190dd.js} +17 -20
  6. package/dist/{app-353vre8g.js → app-0qp0a2gk.js} +3 -3
  7. package/dist/{assistant-sj1njh23.js → assistant-jedd3ktm.js} +24 -22
  8. package/dist/{azure-openai-responses-9dbmj346.js → azure-openai-responses-9kfwhmn7.js} +18 -13
  9. package/dist/{boot-reembed-qdkvxeem.js → boot-reembed-4xwq5tg0.js} +1 -1
  10. package/dist/{boot-reembed-b9c3az3c.js → boot-reembed-n4wq5dd2.js} +1 -1
  11. package/dist/{boot-scrub-sweep-m3wh8eks.js → boot-scrub-sweep-69h90xcq.js} +4 -4
  12. package/dist/{boot-seeds-j2273s54.js → boot-seeds-3vn0m9sg.js} +4 -4
  13. package/dist/{claude-adapter-m7q0a085.js → claude-adapter-221mvad5.js} +8 -6
  14. package/dist/{claude-managed-adapter-5ptb6tzs.js → claude-managed-adapter-gt6pa35d.js} +2 -2
  15. package/dist/{claude-managed-setup-smrqk5j5.js → claude-managed-setup-c3hp36ph.js} +4 -4
  16. package/dist/{claude-sdk-session-38xnz21e.js → claude-sdk-session-8thjsk5e.js} +9012 -8928
  17. package/dist/{cli-b9fcxxev.js → cli-007cnhm1.js} +50 -4
  18. package/dist/{cli-j4rqdf2n.js → cli-03vpq45j.js} +2 -2
  19. package/dist/{cli-dk44dxec.js → cli-0y6f0ckq.js} +1 -1
  20. package/dist/{cli-kpw04va0.js → cli-0z3vjrpm.js} +1 -1
  21. package/dist/{cli-94gwyg7m.js → cli-179xcyky.js} +9 -9
  22. package/dist/{cli-3r8samv3.js → cli-1f0gp9vz.js} +3 -2
  23. package/dist/{cli-4zfqgjc5.js → cli-1pr672hz.js} +2 -2
  24. package/dist/{cli-0bqteszy.js → cli-2nf3b08t.js} +328 -25
  25. package/dist/{cli-43x64hv3.js → cli-36j4jnk3.js} +4 -4
  26. package/dist/{cli-k8g16gz3.js → cli-3qv8naq8.js} +115 -119
  27. package/dist/cli-3zwye9sn.js +1193 -0
  28. package/dist/{cli-60cgh1rv.js → cli-459fk97x.js} +7 -7
  29. package/dist/{cli-v8fjakwf.js → cli-4w24f7z3.js} +1 -1
  30. package/dist/{cli-n72rg53p.js → cli-5kzk3472.js} +812 -418
  31. package/dist/{cli-h7gc0b4r.js → cli-5m84zd2k.js} +55 -18
  32. package/dist/{cli-j99azg3g.js → cli-5rvg1ddk.js} +5 -5
  33. package/dist/{cli-dvkmp9bt.js → cli-6ctwrf1z.js} +20 -10
  34. package/dist/{cli-848hxdwj.js → cli-6rg2jn2y.js} +2 -1
  35. package/dist/{cli-fv5hepyy.js → cli-7bwtc6yx.js} +3 -3
  36. package/dist/{cli-ms85309d.js → cli-7g40g8hq.js} +11 -11
  37. package/dist/{cli-xpa64rek.js → cli-92mqenkc.js} +2362 -159
  38. package/dist/{cli-018r4jq6.js → cli-9ce2xw98.js} +8 -8
  39. package/dist/{cli-1syn2xy1.js → cli-bgdtv62r.js} +32 -18
  40. package/dist/{cli-wxbn3yfx.js → cli-cz5nmdxt.js} +2 -2
  41. package/dist/{cli-wt645v7q.js → cli-dabehxhp.js} +1 -1
  42. package/dist/{cli-vfha21c9.js → cli-e5bxnjps.js} +2 -2
  43. package/dist/{cli-wt0jf9hm.js → cli-fcc5qe3f.js} +553 -193
  44. package/dist/{cli-ftc1g5tj.js → cli-fes51ya2.js} +3 -3
  45. package/dist/{cli-3a45zcgm.js → cli-ftmq4nvk.js} +2 -2
  46. package/dist/{cli-37j04k05.js → cli-fy1jyyym.js} +13 -13
  47. package/dist/{cli-s95dknxh.js → cli-g1cw7xtt.js} +1 -1
  48. package/dist/{cli-74c1wpm0.js → cli-gpv60278.js} +1 -1
  49. package/dist/{cli-pemywhfq.js → cli-ha9rmwgq.js} +2 -1
  50. package/dist/{cli-g35m2xwm.js → cli-j1eghqfm.js} +2 -2
  51. package/dist/{cli-qfxc84gh.js → cli-jpxsrxcb.js} +1 -1
  52. package/dist/{cli-ejs3m1sx.js → cli-kxpfx2xr.js} +1 -1
  53. package/dist/{cli-p14m2cnp.js → cli-mbfj11fq.js} +1 -1
  54. package/dist/{cli-pnp2j5zg.js → cli-mmhj8vd7.js} +2 -2
  55. package/dist/{cli-xf234ws8.js → cli-n4c8e3s5.js} +2 -0
  56. package/dist/{cli-f01h25yt.js → cli-n6kmqngw.js} +2 -2
  57. package/dist/{cli-v0yrfmdh.js → cli-nnvjb17s.js} +3 -3
  58. package/dist/{cli-1dmcq2eh.js → cli-nzfnt2gs.js} +1 -1
  59. package/dist/{cli-625tb7aq.js → cli-p859hcc8.js} +2 -2
  60. package/dist/{cli-smvcw9z5.js → cli-pasyvjmm.js} +1 -1
  61. package/dist/cli-pkaqk57w.js +128 -0
  62. package/dist/{cli-8nyhf7za.js → cli-qqzmjxkf.js} +129 -105
  63. package/dist/{cli-9yqgm9nd.js → cli-r25qpaxt.js} +161 -63
  64. package/dist/{cli-eww120g8.js → cli-rh5smt8t.js} +18 -4
  65. package/dist/{cli-qwkcwjdn.js → cli-rycdaj0a.js} +1 -1
  66. package/dist/{cli-a92r1127.js → cli-s4sntwt4.js} +2 -2
  67. package/dist/{cli-be2161h1.js → cli-segs7hx9.js} +6 -6
  68. package/dist/{cli-36ckw0wx.js → cli-stxdrqs2.js} +2 -2
  69. package/dist/{cli-z7d29rw9.js → cli-sy8f9705.js} +4 -4
  70. package/dist/{cli-1m17dc9d.js → cli-ta8bd7th.js} +2 -2
  71. package/dist/{cli-st8aw1m6.js → cli-we0ra057.js} +4 -4
  72. package/dist/{cli-7c9qs530.js → cli-x21dqn18.js} +5 -5
  73. package/dist/{cli-1sp861s4.js → cli-x6vf4sad.js} +11 -11
  74. package/dist/{cli-d2mb5s8a.js → cli-x77gen2p.js} +680 -440
  75. package/dist/{cli-tw4p90jb.js → cli-xawhpgc9.js} +5 -5
  76. package/dist/{cli-f0g3pgvf.js → cli-xd4eqtr2.js} +2 -2
  77. package/dist/{cli-1f3qzw6y.js → cli-xt768r5m.js} +2 -2
  78. package/dist/{cli-cxxe61f6.js → cli-y4x8ww6s.js} +2 -2
  79. package/dist/{cli-bnes4z6b.js → cli-y9jvxfhk.js} +3 -3
  80. package/dist/{cli-qwhy2qma.js → cli-z63a269p.js} +2 -2
  81. package/dist/{cli-sm8rses9.js → cli-zfdp01hn.js} +8 -5
  82. package/dist/cli.js +29 -27
  83. package/dist/{cloudflare-workers-ai-system-one-ch2wxfcp.js → cloudflare-workers-ai-system-one-43v9qkjk.js} +7 -2
  84. package/dist/{codex-adapter-tn6k5mkg.js → codex-adapter-tcg1q3jk.js} +6 -4
  85. package/dist/{codex-login-m819c41r.js → codex-login-rn7c5gxt.js} +1 -1
  86. package/dist/{codex-session-runner-7vjt7jbw.js → codex-session-runner-xfx4wd9x.js} +7 -5
  87. package/dist/{commands-t7rz9146.js → commands-ew83nj70.js} +2 -2
  88. package/dist/{controller-m2jasma5.js → controller-gnq1k1mf.js} +4 -4
  89. package/dist/{controllers-connect-9ftpex99.js → controllers-connect-tw1dan9r.js} +25 -23
  90. package/dist/{cursor-adapter-mjv79e4z.js → cursor-adapter-yq5xgfcg.js} +1 -1
  91. package/dist/{db-6sfrn9g3.js → db-7gbc53fd.js} +14 -2
  92. package/dist/{db-rn673r06.js → db-t86xrnes.js} +3 -3
  93. package/dist/{devin-adapter-zgqadvnm.js → devin-adapter-4ycy4vrf.js} +1 -1
  94. package/dist/{dispatcher-c155xz0p.js → dispatcher-64bdyhps.js} +22 -20
  95. package/dist/{docker-fkgtr75t.js → docker-nfy2gc8t.js} +2 -2
  96. package/dist/{dsh-adapter-3mmszc1x.js → dsh-adapter-tvhc4k2d.js} +1 -1
  97. package/dist/{e2b-16d6ch39.js → e2b-9gkdhm3c.js} +2 -2
  98. package/dist/{e2b-zn0b4w5w.js → e2b-cjtf8k1z.js} +2 -2
  99. package/dist/{easter-egg-3d-5cgynaja.js → easter-egg-3d-e4qv8dxj.js} +1 -1
  100. package/dist/{event-bus-9vpk8gmq.js → event-bus-3z78ep5n.js} +1 -1
  101. package/dist/{execute-t4e6m3rw.js → execute-0xpz8950.js} +85 -23
  102. package/dist/{external-channel-35k6tkv8.js → external-channel-e9nw24zv.js} +2 -2
  103. package/dist/{google-generative-ai-bmq8gkf3.js → google-generative-ai-mk9vcpe1.js} +15 -15
  104. package/dist/{google-vertex-b1rvp52s.js → google-vertex-q580kz8k.js} +20 -20
  105. package/dist/{grok-adapter-tfrq7tg1.js → grok-adapter-v82srhrx.js} +9 -7
  106. package/dist/handlers-c9ajzhbn.js +41 -0
  107. package/dist/{heartbeat-dyg4npkp.js → heartbeat-2vqs1319.js} +25 -23
  108. package/dist/{hook-x26b31bg.js → hook-01nk13wx.js} +7 -5
  109. package/dist/{hook-drspbwpe.js → hook-jzpheegg.js} +9 -7
  110. package/dist/{http-pk972xyw.js → http-fc1k6ec8.js} +544 -76
  111. package/dist/index-07ef7nkm.js +42 -0
  112. package/dist/{index-g6tbb6ve.js → index-31ceyf42.js} +1 -1
  113. package/dist/index-7yts8n9s.js +43 -0
  114. package/dist/index-q3t40ryv.js +46 -0
  115. package/dist/{index-arytgj5q.js → index-sepja052.js} +1 -1
  116. package/dist/{index-jwxkkex2.js → index-zdycv3ja.js} +13 -11
  117. package/dist/{index-g216q6jr.js → index-zsyx51ap.js} +1 -4
  118. package/dist/{keepalive-7yrng7px.js → keepalive-5nh2rhmr.js} +4 -4
  119. package/dist/lead-aayq64jn.js +79 -0
  120. package/dist/{llama-cpp-classify-vv43gswy.js → llama-cpp-classify-ee7vmd7q.js} +4 -1
  121. package/dist/{maintenance-e6cemdqt.js → maintenance-hjhzdt3k.js} +1 -1
  122. package/dist/{mistral-conversations-1medfwv7.js → mistral-conversations-sd0xf1tn.js} +13 -13
  123. package/dist/{node-de6akczr.js → node-jzjj7r9x.js} +1 -1
  124. package/dist/{oauth-refresh-sweep-yw3xdbcj.js → oauth-refresh-sweep-y3n1knmd.js} +3 -3
  125. package/dist/{onboard-0a9y5yrc.js → onboard-1zq3m7db.js} +2 -2
  126. package/dist/{openai-codex-responses-de9pvs4d.js → openai-codex-responses-79s8xnbh.js} +29 -23
  127. package/dist/{openai-completions-mtqge3nf.js → openai-completions-tdbyts0x.js} +21 -20
  128. package/dist/{openai-decisions-ygk4kkxd.js → openai-decisions-bqhnjyfz.js} +2 -1
  129. package/dist/{openai-responses-dkyng71g.js → openai-responses-dm3t5vqp.js} +26 -17
  130. package/dist/{opencode-adapter-x4tqzhkh.js → opencode-adapter-e56086m1.js} +7 -5
  131. package/dist/{openrouter-images-wvv7camj.js → openrouter-images-ssttr1y4.js} +6 -3
  132. package/dist/{otel-impl-trjpkfb7.js → otel-impl-h9yyza47.js} +2 -2
  133. package/dist/{pi-messages-nhh1pkz2.js → pi-messages-3nf8bq1a.js} +6 -4
  134. package/dist/{pi-mono-adapter-mcfkn9vf.js → pi-mono-adapter-tzps8f38.js} +9 -37
  135. package/dist/{pricing-refresh-d2b5my0y.js → pricing-refresh-nevhat8h.js} +3 -3
  136. package/dist/{rbac-roles-nxh5ahwk.js → rbac-roles-4y6ngvzq.js} +1 -1
  137. package/dist/{rbac-roles-hey3yv9d.js → rbac-roles-exbg8xb6.js} +2 -2
  138. package/dist/{render-v2-rr3p2atg.js → render-v2-cfsh13z3.js} +3 -3
  139. package/dist/{resume-2efkf1s1.js → resume-5s2t0dbs.js} +10 -8
  140. package/dist/{runtime-xe3aqy4x.js → runtime-bt5pkpm1.js} +1 -1
  141. package/dist/{session-access-s2mttxpw.js → session-access-dnbyp3cn.js} +6 -4
  142. package/dist/{setup-vypma5yt.js → setup-1wj1y77j.js} +1 -1
  143. package/dist/{typesafe-system-one-2hgpayzy.js → typesafe-system-one-bre38hvs.js} +4 -2
  144. package/dist/{virtual-modules-4r3zkc20.js → virtual-modules-mnfbh5mr.js} +8 -2
  145. package/dist/{work-objects-rvhckdkp.js → work-objects-7mg6216g.js} +25 -23
  146. package/dist/worker-nwb789mg.js +79 -0
  147. package/dist/{x-y45mthwn.js → x-pbpezr0s.js} +2 -2
  148. package/openapi.json +785 -5
  149. package/package.json +9 -9
  150. package/src/assets/key.ts +17 -0
  151. package/src/azure-devops/handlers.ts +1 -1
  152. package/src/be/db/approvals.ts +18 -0
  153. package/src/be/db/session-moves.ts +164 -0
  154. package/src/be/db/session-tree.ts +384 -0
  155. package/src/be/db/tasks/read.ts +40 -4
  156. package/src/be/db/workflow-runs.ts +96 -0
  157. package/src/be/db.ts +80 -236
  158. package/src/be/onboarding.ts +3 -0
  159. package/src/be/skill-sync.ts +43 -2
  160. package/src/be/swarm-config-guard.ts +1 -0
  161. package/src/bitbucket/api.ts +81 -0
  162. package/src/bitbucket/auth.ts +64 -0
  163. package/src/bitbucket/handlers.ts +434 -0
  164. package/src/bitbucket/index.ts +28 -0
  165. package/src/bitbucket/templates.ts +134 -0
  166. package/src/bitbucket/types.ts +65 -0
  167. package/src/commands/runner.ts +55 -3
  168. package/src/e2b/env.ts +1 -0
  169. package/src/extensions/contract-types.generated.ts +1 -1
  170. package/src/extensions/contract.ts +2 -2
  171. package/src/extensions/post-bridge.ts +1 -0
  172. package/src/github/handlers.ts +6 -6
  173. package/src/gitlab/handlers.ts +5 -5
  174. package/src/http/assets.ts +14 -2
  175. package/src/http/core.ts +12 -0
  176. package/src/http/index.ts +4 -0
  177. package/src/http/onboarding.ts +1 -0
  178. package/src/http/sessions.ts +366 -12
  179. package/src/http/skills.ts +48 -1
  180. package/src/http/tasks.ts +1 -1
  181. package/src/http/users.ts +1 -0
  182. package/src/http/webhooks.ts +141 -0
  183. package/src/integrations/chat-sdk/adapters.ts +19 -3
  184. package/src/integrations/chat-sdk/facts.ts +30 -12
  185. package/src/integrations/chat-sdk/outbound.ts +38 -1
  186. package/src/providers/acp-targets.ts +1 -1
  187. package/src/providers/amp-adapter.ts +1 -1
  188. package/src/providers/pi-mono-adapter.ts +5 -53
  189. package/src/scripts-runtime/types/swarm-extension.d.ts +6 -4
  190. package/src/slack/handlers.test.ts +158 -0
  191. package/src/slack/handlers.ts +19 -28
  192. package/src/tasks/context-key.ts +61 -1
  193. package/src/tests/bitbucket-auth.test.ts +156 -0
  194. package/src/tests/bitbucket-handlers.test.ts +425 -0
  195. package/src/tests/bitbucket-webhook.test.ts +220 -0
  196. package/src/tests/chat-sdk-inbound.test.ts +39 -0
  197. package/src/tests/chat-sdk-telegram-markdown.test.ts +92 -0
  198. package/src/tests/context-key.test.ts +50 -0
  199. package/src/tests/core-auth.test.ts +5 -0
  200. package/src/tests/db-task-read-contract.test.ts +7 -0
  201. package/src/tests/db-task-write-contract.test.ts +6 -0
  202. package/src/tests/docs-index-footprint.test.js +3 -3
  203. package/src/tests/fixtures/bitbucket/pullrequest-comment-created-inline.json +174 -0
  204. package/src/tests/fixtures/bitbucket/pullrequest-comment-created.json +170 -0
  205. package/src/tests/fixtures/bitbucket/pullrequest-created-mention.json +132 -0
  206. package/src/tests/fixtures/bitbucket/pullrequest-created-reviewer.json +140 -0
  207. package/src/tests/fixtures/bitbucket/pullrequest-fulfilled.json +134 -0
  208. package/src/tests/fixtures/bitbucket/pullrequest-rejected.json +133 -0
  209. package/src/tests/generate-mcp-docs.test.ts +101 -0
  210. package/src/tests/gitlab-handlers.test.ts +3 -3
  211. package/src/tests/gitlab-vcs-db.test.ts +4 -4
  212. package/src/tests/integration-disable-flags.test.ts +36 -0
  213. package/src/tests/mcp-tools.test.ts +1 -1
  214. package/src/tests/onboarding.test.ts +12 -0
  215. package/src/tests/pi-codemode.test.ts +8 -2
  216. package/src/tests/preload-env.test.ts +57 -0
  217. package/src/tests/preload.ts +21 -0
  218. package/src/tests/prompt-template-remaining.test.ts +38 -0
  219. package/src/tests/run-root-coverage.test.ts +39 -0
  220. package/src/tests/runner-bitbucket-vcs.test.ts +191 -0
  221. package/src/tests/runner-skills-refresh.test.ts +58 -0
  222. package/src/tests/secret-scrubber.test.ts +15 -0
  223. package/src/tests/sessions-move.test.ts +576 -0
  224. package/src/tests/sessions-tree.test.ts +493 -0
  225. package/src/tests/skill-files-http.test.ts +50 -0
  226. package/src/tests/skills-bundle.test.ts +99 -0
  227. package/src/tests/swarm-config-export-to-env.test.ts +2 -1
  228. package/src/tests/vcs-bitbucket.test.ts +91 -0
  229. package/src/tests/vcs-provider-isolation.test.ts +123 -0
  230. package/src/tests/vcs-provider.test.ts +16 -1
  231. package/src/tests/vcs-tracking.test.ts +3 -3
  232. package/src/tests/workflow-foreach-bodies.test.ts +637 -0
  233. package/src/tests/workflow-foreach-concurrency.test.ts +342 -0
  234. package/src/tests/workflow-foreach-retry.test.ts +537 -0
  235. package/src/tests/workflow-foreach.test.ts +44 -23
  236. package/src/tests/workflow-step-claims.test.ts +6 -6
  237. package/src/tests/workflow-tla-races.test.ts +2 -2
  238. package/src/tools/script-delete.ts +1 -1
  239. package/src/tools/workflows/create-workflow.ts +5 -3
  240. package/src/types.ts +3 -2
  241. package/src/utils/config-env-export.ts +1 -0
  242. package/src/utils/secret-scrubber.ts +4 -0
  243. package/src/utils/skills-refresh.ts +83 -43
  244. package/src/vcs/bitbucket.ts +58 -0
  245. package/src/vcs/index.ts +2 -0
  246. package/src/vcs/types.ts +2 -2
  247. package/src/workflows/approval-resolution.ts +4 -1
  248. package/src/workflows/checkpoint.ts +9 -1
  249. package/src/workflows/constants.ts +3 -0
  250. package/src/workflows/definition.ts +48 -17
  251. package/src/workflows/engine.ts +25 -15
  252. package/src/workflows/executors/foreach.ts +45 -99
  253. package/src/workflows/foreach-body.ts +146 -0
  254. package/src/workflows/foreach-driver.ts +552 -0
  255. package/src/workflows/foreach-join.ts +206 -7
  256. package/src/workflows/node-timeout.ts +21 -0
  257. package/src/workflows/recovery.ts +68 -3
  258. package/src/workflows/resume.ts +221 -43
  259. package/src/workflows/retry-poller.ts +39 -24
  260. package/src/workflows/step-input.ts +59 -0
  261. package/src/workflows/task-step-routing.ts +114 -56
  262. package/templates/skills/slack-interaction/content.md +5 -0
  263. package/templates/skills/work-on-task/SKILL.md +1 -1
  264. package/templates/skills/work-on-task/content.md +1 -1
  265. package/dist/cli-9hstj09h.js +0 -2657
  266. package/dist/cli-yw91rnmw.js +0 -13
  267. package/dist/handlers-7gw64dxw.js +0 -39
  268. package/dist/index-bgdyvcnv.js +0 -40
  269. package/dist/index-gabbcdn2.js +0 -43
  270. package/dist/index-tfb26zhy.js +0 -41
  271. package/dist/lead-7e02z839.js +0 -77
  272. package/dist/worker-5snytpbd.js +0 -77
@@ -1,6 +1,15 @@
1
1
  import {
2
2
  OpenAI
3
3
  } from "./cli-629desp2.js";
4
+ import {
5
+ getSystemMessageText,
6
+ renderSystemMessageUpdate,
7
+ resolveTranscript,
8
+ getDeclaredTools,
9
+ resolveTranscriptTools,
10
+ calculateCost,
11
+ clampThinkingLevel
12
+ } from "./cli-2nf3b08t.js";
4
13
  import {
5
14
  parseToolCallArguments,
6
15
  parseStreamingJson
@@ -21,9 +30,6 @@ import {
21
30
  import {
22
31
  shortHash
23
32
  } from "./cli-j3xf15kq.js";
24
- import {
25
- getPiUserAgent
26
- } from "./cli-yw91rnmw.js";
27
33
  import {
28
34
  normalizeProviderError,
29
35
  formatProviderError
@@ -40,25 +46,19 @@ import {
40
46
  thinkingBudgetForLevel,
41
47
  clampThinkingBudgetToAnswerRoom,
42
48
  transformMessages
43
- } from "./cli-3r8samv3.js";
49
+ } from "./cli-1f0gp9vz.js";
44
50
  import {
45
51
  sanitizeSurrogates
46
52
  } from "./cli-xs8nzjqf.js";
47
53
  import {
48
54
  headersToRecord
49
55
  } from "./cli-hf1b007k.js";
50
- import {
51
- getSystemMessageText,
52
- renderSystemMessageUpdate,
53
- resolveTranscript,
54
- getDeclaredTools,
55
- resolveTranscriptTools,
56
- calculateCost,
57
- clampThinkingLevel
58
- } from "./cli-0bqteszy.js";
59
56
  import {
60
57
  AssistantMessageEventStream
61
58
  } from "./cli-m6m1bvtp.js";
59
+ import {
60
+ getIdentityHeaders
61
+ } from "./cli-pkaqk57w.js";
62
62
 
63
63
  // node_modules/@earendil-works/pi-ai/dist/api/openai-completions.js
64
64
  function hasHeader(headers, name) {
@@ -210,7 +210,7 @@ var stream = (model, context, options) => {
210
210
  const grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(normalizedContext.messages), compat.supportsOpenAIGrammarTools);
211
211
  const cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env);
212
212
  const cacheSessionId = cacheRetention === "none" ? undefined : options?.sessionId;
213
- const client = createClient(model, normalizedContext, apiKey, options?.headers, options?.fetch, cacheSessionId, compat);
213
+ const client = createClient(model, normalizedContext, apiKey, options?.headers, options?.identity, options?.fetch, cacheSessionId, compat);
214
214
  let params = buildParams(model, normalizedContext, options, compat, cacheRetention, grammarToolInputProperties);
215
215
  const nextParams = await options?.onPayload?.(params, model);
216
216
  if (nextParams !== undefined) {
@@ -526,8 +526,8 @@ var streamSimple = (model, context, options) => {
526
526
  thinkingBudgets: options?.thinkingBudgets
527
527
  });
528
528
  };
529
- function createClient(model, context, apiKey, optionsHeaders, fetch, sessionId, compat = getCompat(model)) {
530
- const headers = { "User-Agent": getPiUserAgent(), ...model.headers };
529
+ function createClient(model, context, apiKey, optionsHeaders, identity, fetch, sessionId, compat = getCompat(model)) {
530
+ const headers = { ...getIdentityHeaders(model, identity), ...model.headers };
531
531
  if (model.provider === "github-copilot") {
532
532
  const hasImages = hasCopilotVisionInput(context.messages);
533
533
  const copilotHeaders = buildCopilotDynamicHeaders({
@@ -559,7 +559,7 @@ function createClient(model, context, apiKey, optionsHeaders, fetch, sessionId,
559
559
  });
560
560
  }
561
561
  function buildParams(model, context, options, compat = getCompat(model), cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env), grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(context.messages), compat.supportsOpenAIGrammarTools)) {
562
- const transcriptTools = resolveTranscriptTools(context.messages, compat.supportsMidConvoSystemMessages === true && compat.supportsMidConvoToolAdditions === true);
562
+ const transcriptTools = resolveTranscriptTools(context.messages, compat.supportsMidConvoSystemMessages === true && compat.supportsMidConvoToolAdditions === true ? "additions" : "none");
563
563
  const messages = convertMessages(model, context, compat, {
564
564
  grammarToolInputProperties
565
565
  });
@@ -851,9 +851,10 @@ function convertMessages(model, context, compat, options) {
851
851
  return id;
852
852
  };
853
853
  const transformedMessages = transformMessages(normalizedContext.messages, model, (id) => normalizeToolCallId(id));
854
- const transcriptTools = resolveTranscriptTools(normalizedContext.messages, compat.supportsMidConvoSystemMessages === true && compat.supportsMidConvoToolAdditions === true);
854
+ const transcriptTools = resolveTranscriptTools(normalizedContext.messages, compat.supportsMidConvoSystemMessages === true && compat.supportsMidConvoToolAdditions === true ? "additions" : "none");
855
855
  const instructionRole = model.reasoning && compat.supportsDeveloperRole ? "developer" : "system";
856
856
  let lastRole = null;
857
+ let systemIndex = 0;
857
858
  for (let i = 0;i < transformedMessages.length; i++) {
858
859
  const msg = transformedMessages[i];
859
860
  if (compat.requiresAssistantAfterToolResult && lastRole === "toolResult" && msg.role === "user") {
@@ -863,7 +864,7 @@ function convertMessages(model, context, compat, options) {
863
864
  });
864
865
  }
865
866
  if (msg.role === "system") {
866
- const addedTools = i > 0 && transcriptTools.anchorsAdditions ? msg.toolsAdded ?? [] : [];
867
+ const addedTools = systemIndex++ >= transcriptTools.foldedSystemMessages ? msg.toolsAdded ?? [] : [];
867
868
  if (addedTools.length > 0) {
868
869
  const kimiToolMessage = {
869
870
  role: "system",
@@ -987,7 +988,7 @@ function convertMessages(model, context, compat, options) {
987
988
  const textResult = toolMsg.content.filter(isTextContentBlock).map((block) => block.text).join(`
988
989
  `);
989
990
  const hasImages = toolMsg.content.some((c) => c.type === "image");
990
- const hasText = textResult.length > 0;
991
+ const hasText = textResult.trim().length > 0;
991
992
  const toolResultText = hasText ? textResult : hasImages ? "(see attached image)" : "(no tool output)";
992
993
  const toolResultMsg = {
993
994
  role: "tool",
@@ -1,9 +1,10 @@
1
+ import"./cli-2nf3b08t.js";
1
2
  import {
2
3
  isRecord,
3
4
  requiredNumber,
4
5
  postClassifierRequest,
5
6
  parseClassifierUsage
6
- } from "./cli-sm8rses9.js";
7
+ } from "./cli-zfdp01hn.js";
7
8
  import {
8
9
  normalizeProviderError,
9
10
  formatProviderError
@@ -1,6 +1,12 @@
1
1
  import {
2
2
  OpenAI
3
3
  } from "./cli-629desp2.js";
4
+ import {
5
+ resolveTranscript,
6
+ getDeclaredTools,
7
+ resolveTranscriptTools,
8
+ clampThinkingLevel
9
+ } from "./cli-2nf3b08t.js";
4
10
  import {
5
11
  getProviderEnvValue
6
12
  } from "./cli-445c1vp7.js";
@@ -10,19 +16,17 @@ import {
10
16
  buildCopilotDynamicHeaders
11
17
  } from "./cli-3dxc7bz7.js";
12
18
  import {
19
+ getResponsesToolSupport,
13
20
  convertResponsesMessages,
14
21
  convertResponsesTools,
15
22
  processResponsesStream
16
- } from "./cli-h7gc0b4r.js";
23
+ } from "./cli-5m84zd2k.js";
17
24
  import {
18
25
  clampOpenAIPromptCacheKey
19
26
  } from "./cli-dxqypk0n.js";
20
27
  import {
21
28
  retryProviderRequest
22
29
  } from "./cli-w6pm0v4s.js";
23
- import {
24
- getPiUserAgent
25
- } from "./cli-yw91rnmw.js";
26
30
  import {
27
31
  normalizeProviderError,
28
32
  formatProviderError
@@ -31,24 +35,22 @@ import {
31
35
  createGrammarToolInputProperties,
32
36
  resolveSamplingParams,
33
37
  buildBaseOptions
34
- } from "./cli-3r8samv3.js";
38
+ } from "./cli-1f0gp9vz.js";
35
39
  import {
36
40
  headersToRecord
37
41
  } from "./cli-hf1b007k.js";
38
- import {
39
- resolveTranscript,
40
- getDeclaredTools,
41
- resolveTranscriptTools,
42
- clampThinkingLevel
43
- } from "./cli-0bqteszy.js";
44
42
  import {
45
43
  AssistantMessageEventStream
46
44
  } from "./cli-m6m1bvtp.js";
45
+ import {
46
+ getIdentityHeaders
47
+ } from "./cli-pkaqk57w.js";
47
48
 
48
49
  // node_modules/@earendil-works/pi-ai/dist/api/openai-responses.js
49
50
  var OPENAI_TOOL_CALL_PROVIDERS = new Set(["openai", "openai-codex", "opencode"]);
50
51
  var OPENAI_RESPONSES_MIN_OUTPUT_TOKENS = 16;
51
52
  var CHATGPT_USAGE_URL = "https://chatgpt.com/settings/usage";
53
+ var CHATGPT_WORKSPACE_LIMIT_HINT = "You've reached your ChatGPT workspace's usage limit. Ask your workspace admin to increase it at admin.openai.com → Workspace → Usage limits.";
52
54
  var CONFIGURATION_UPDATE_REQUEST_EFFORT = "medium";
53
55
  function isChatGPTSignIn(model, apiKey) {
54
56
  return model.provider === "openai" && model.baseUrl === "https://api.openai.com/v1" && apiKey !== undefined && !apiKey.startsWith("sk-");
@@ -144,7 +146,7 @@ var stream = (model, context, options) => {
144
146
  const cacheRetention = resolveCacheRetention(options?.cacheRetention, options?.env);
145
147
  const cacheSessionId = cacheRetention === "none" ? undefined : options?.sessionId;
146
148
  const grammarToolInputProperties = createGrammarToolInputProperties(getDeclaredTools(normalizedContext.messages), compat.supportsOpenAIGrammarTools);
147
- const client = createClient(model, normalizedContext, apiKey, options?.headers, options?.fetch, cacheSessionId);
149
+ const client = createClient(model, normalizedContext, apiKey, options?.headers, options?.identity, options?.fetch, cacheSessionId);
148
150
  let params = buildParams(model, normalizedContext, options, compat, grammarToolInputProperties, configurationUpdateEffort);
149
151
  const nextParams = await options?.onPayload?.(params, model);
150
152
  if (nextParams !== undefined) {
@@ -187,8 +189,15 @@ var stream = (model, context, options) => {
187
189
  }
188
190
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
189
191
  const errorMessage = formatProviderError(normalizeProviderError(error), `${model.provider === "openai" ? "OpenAI" : model.provider} API error`);
190
- output.errorMessage = errorMessage.includes("subscription_sharing_usage_limit_exceeded") ? `${errorMessage}
191
- Check your ChatGPT usage: ${CHATGPT_USAGE_URL}` : errorMessage;
192
+ if (errorMessage.includes("subscription_sharing_usage_limit_exceeded")) {
193
+ output.errorMessage = `${errorMessage}
194
+ Check your ChatGPT usage: ${CHATGPT_USAGE_URL}`;
195
+ } else if (errorMessage.includes("subscription_sharing_workplace_individual_usage_limit_exceeded")) {
196
+ output.errorMessage = `${errorMessage}
197
+ ${CHATGPT_WORKSPACE_LIMIT_HINT}`;
198
+ } else {
199
+ output.errorMessage = errorMessage;
200
+ }
192
201
  stream.push({ type: "error", reason: output.stopReason, error: output });
193
202
  stream.end();
194
203
  }
@@ -208,9 +217,9 @@ var streamSimple = (model, context, options) => {
208
217
  reasoningEffort
209
218
  });
210
219
  };
211
- function createClient(model, context, apiKey, optionsHeaders, fetch, sessionId) {
220
+ function createClient(model, context, apiKey, optionsHeaders, identity, fetch, sessionId) {
212
221
  const compat = getCompat(model);
213
- const headers = { "User-Agent": getPiUserAgent(), ...model.headers };
222
+ const headers = { ...getIdentityHeaders(model, identity), ...model.headers };
214
223
  if (model.provider === "github-copilot") {
215
224
  const hasImages = hasCopilotVisionInput(context.messages);
216
225
  const copilotHeaders = buildCopilotDynamicHeaders({
@@ -241,7 +250,7 @@ function createClient(model, context, apiKey, optionsHeaders, fetch, sessionId)
241
250
  });
242
251
  }
243
252
  function buildParams(model, context, options, compat, grammarToolInputProperties, configurationUpdateEffort) {
244
- const transcriptTools = resolveTranscriptTools(context.messages, compat.supportsAdditionalTools || compat.supportsToolSearch);
253
+ const transcriptTools = resolveTranscriptTools(context.messages, getResponsesToolSupport(compat));
245
254
  const messages = convertResponsesMessages(model, context, OPENAI_TOOL_CALL_PROVIDERS, {
246
255
  grammarToolInputProperties,
247
256
  supportsMidConvoSystemMessages: compat.supportsMidConvoSystemMessages,
@@ -3,22 +3,24 @@ import {
3
3
  applyOpenRouterBaseUrlOverride2,
4
4
  buildOpenAICompatibleProviderBlock2,
5
5
  OpencodeAdapter2
6
- } from "./cli-36ckw0wx.js";
7
- import"./cli-vfha21c9.js";
6
+ } from "./cli-stxdrqs2.js";
7
+ import"./cli-e5bxnjps.js";
8
8
  import"./cli-4bd1rck6.js";
9
9
  import"./cli-jc1g9ndz.js";
10
10
  import"./cli-a5ebc95n.js";
11
- import"./cli-pnp2j5zg.js";
11
+ import"./cli-mmhj8vd7.js";
12
12
  import"./cli-0726awxw.js";
13
13
  import"./cli-bn0rewsy.js";
14
14
  import"./cli-3h26v7yj.js";
15
15
  import"./cli-e8xyjvfc.js";
16
- import"./cli-8nyhf7za.js";
17
- import"./cli-ejs3m1sx.js";
16
+ import"./cli-qqzmjxkf.js";
17
+ import"./cli-kxpfx2xr.js";
18
18
  import"./cli-13p25grh.js";
19
19
  import"./cli-0adyhvq2.js";
20
+ import"./cli-rycdaj0a.js";
20
21
  import"./cli-445c1vp7.js";
21
22
  import"./cli-kvzgak7c.js";
23
+ import"./cli-2nf3b08t.js";
22
24
  export {
23
25
  OpencodeAdapter2 as OpencodeAdapter,
24
26
  applyOpenRouterBaseUrlOverride2 as applyOpenRouterBaseUrlOverride,
@@ -15,6 +15,9 @@ import {
15
15
  headersToRecord,
16
16
  providerHeadersToRecord
17
17
  } from "./cli-hf1b007k.js";
18
+ import {
19
+ getIdentityHeaders
20
+ } from "./cli-pkaqk57w.js";
18
21
 
19
22
  // node_modules/@earendil-works/pi-ai/dist/api/openrouter-images.js
20
23
  var generateImages = async (model, context, options) => {
@@ -31,7 +34,7 @@ var generateImages = async (model, context, options) => {
31
34
  if (!apiKey) {
32
35
  throw new Error(`No API key for provider: ${model.provider}`);
33
36
  }
34
- const client = createClient(model, apiKey, options?.headers, options?.fetch);
37
+ const client = createClient(model, apiKey, options?.headers, options?.fetch, options?.identity);
35
38
  let params = buildParams(model, context);
36
39
  const nextParams = await options?.onPayload?.(params, model);
37
40
  if (nextParams !== undefined) {
@@ -80,13 +83,13 @@ var generateImages = async (model, context, options) => {
80
83
  return output;
81
84
  }
82
85
  };
83
- function createClient(model, apiKey, optionsHeaders, fetch) {
86
+ function createClient(model, apiKey, optionsHeaders, fetch, identity) {
84
87
  return new OpenAI({
85
88
  apiKey,
86
89
  baseURL: model.baseUrl,
87
90
  dangerouslyAllowBrowser: true,
88
91
  fetch,
89
- defaultHeaders: providerHeadersToRecord({ ...model.headers, ...optionsHeaders })
92
+ defaultHeaders: providerHeadersToRecord(getIdentityHeaders(model, identity), model.headers, optionsHeaders)
90
93
  });
91
94
  }
92
95
  function buildParams(model, context) {
@@ -14,11 +14,11 @@ import {
14
14
  import {
15
15
  init_package,
16
16
  package_default
17
- } from "./cli-94gwyg7m.js";
17
+ } from "./cli-179xcyky.js";
18
18
  import {
19
19
  scrubSecrets,
20
20
  init_secret_scrubber
21
- } from "./cli-xf234ws8.js";
21
+ } from "./cli-n4c8e3s5.js";
22
22
  import {
23
23
  __toESM,
24
24
  __commonJS,
@@ -13,6 +13,9 @@ import {
13
13
  createAssistantMessageDiagnostic,
14
14
  appendAssistantMessageDiagnostic
15
15
  } from "./cli-m6m1bvtp.js";
16
+ import {
17
+ getIdentityHeaders
18
+ } from "./cli-pkaqk57w.js";
16
19
 
17
20
  // node_modules/@earendil-works/pi-ai/dist/api/pi-messages.js
18
21
  class PiMessagesResponseError extends Error {
@@ -269,12 +272,11 @@ var stream = (model, context, options) => {
269
272
  }
270
273
  const response = await (options?.fetch ?? globalThis.fetch)(url, {
271
274
  method: "POST",
272
- headers: {
275
+ headers: providerHeadersToRecord(getIdentityHeaders(model, options?.identity), {
273
276
  authorization: `Bearer ${apiKey}`,
274
277
  accept: "text/event-stream",
275
- "content-type": "application/json",
276
- ...providerHeadersToRecord(options?.headers)
277
- },
278
+ "content-type": "application/json"
279
+ }, options?.headers),
278
280
  body: JSON.stringify(payload),
279
281
  signal: options?.signal
280
282
  });
@@ -1,3 +1,4 @@
1
+ import"./cli-2nf3b08t.js";
1
2
  import"./cli-445c1vp7.js";
2
3
  import {
3
4
  setEmbeddedQuickJSWasmPath,
@@ -12,12 +13,12 @@ import {
12
13
  createCodemodeExtension,
13
14
  createMcpExtension,
14
15
  createToolSearchExtension
15
- } from "./cli-d2mb5s8a.js";
16
+ } from "./cli-x77gen2p.js";
16
17
  import {
17
18
  Unsafe,
18
19
  getBuiltinModel,
19
20
  getBuiltinModels
20
- } from "./cli-8nyhf7za.js";
21
+ } from "./cli-qqzmjxkf.js";
21
22
  import"./cli-kvzgak7c.js";
22
23
  import {
23
24
  swarmRuntimeInstanceId
@@ -29,9 +30,9 @@ import"./cli-3h26v7yj.js";
29
30
  import"./cli-0726awxw.js";
30
31
  import {
31
32
  createSwarmHooksExtension
32
- } from "./cli-vfha21c9.js";
33
- import"./cli-ejs3m1sx.js";
34
- import"./cli-pnp2j5zg.js";
33
+ } from "./cli-e5bxnjps.js";
34
+ import"./cli-kxpfx2xr.js";
35
+ import"./cli-mmhj8vd7.js";
35
36
  import {
36
37
  applyReasoningEffort
37
38
  } from "./cli-bn0rewsy.js";
@@ -46,6 +47,7 @@ import {
46
47
  } from "./cli-s8d0dmcx.js";
47
48
  import"./cli-13p25grh.js";
48
49
  import"./cli-0adyhvq2.js";
50
+ import"./cli-rycdaj0a.js";
49
51
  import {
50
52
  CORE_TOOLS,
51
53
  init_tool_config
@@ -75,7 +77,7 @@ import {
75
77
  scrubObject,
76
78
  registerEnvSecrets,
77
79
  init_secret_scrubber
78
- } from "./cli-xf234ws8.js";
80
+ } from "./cli-n4c8e3s5.js";
79
81
  import {
80
82
  openAICompatibleProviders,
81
83
  providerKeyVars,
@@ -1008,27 +1010,6 @@ function createBoundedCodemodeExtension(limits = DEFAULT_CODEMODE_LIMITS, option
1008
1010
  }
1009
1011
  }));
1010
1012
  }
1011
- var CODEMODE_WORKER_RETRY_MIN_MS = 25;
1012
- var CODEMODE_WORKER_RETRY_MAX_MS = 250;
1013
- function isCodemodeWorkerLimitRefusal(result) {
1014
- if (!result.isError)
1015
- return false;
1016
- const calls = result.details?.calls;
1017
- if (calls && calls.length > 0)
1018
- return false;
1019
- return result.content.some((item) => item.text?.includes("Script sandbox failed: Codemode worker limit reached"));
1020
- }
1021
- function abortableSleep(ms, signal) {
1022
- return new Promise((resolve) => {
1023
- const timer = setTimeout(done, ms);
1024
- function done() {
1025
- clearTimeout(timer);
1026
- signal.removeEventListener("abort", done);
1027
- resolve();
1028
- }
1029
- signal.addEventListener("abort", done, { once: true });
1030
- });
1031
- }
1032
1013
  function boundCodemodeTool(tool, limits) {
1033
1014
  return {
1034
1015
  ...tool,
@@ -1084,16 +1065,7 @@ function boundCodemodeTool(tool, limits) {
1084
1065
  executeTool: { value: executeTool, enumerable: true }
1085
1066
  }) : ctx;
1086
1067
  try {
1087
- let delayMs = CODEMODE_WORKER_RETRY_MIN_MS;
1088
- for (;; ) {
1089
- const result = await tool.execute(toolCallId, params, script.signal, onUpdate, boundedCtx);
1090
- if (!isCodemodeWorkerLimitRefusal(result) || script.signal.aborted)
1091
- return result;
1092
- await abortableSleep(delayMs, script.signal);
1093
- if (script.signal.aborted)
1094
- return result;
1095
- delayMs = Math.min(delayMs * 2, CODEMODE_WORKER_RETRY_MAX_MS);
1096
- }
1068
+ return await tool.execute(toolCallId, params, script.signal, onUpdate, boundedCtx);
1097
1069
  } finally {
1098
1070
  clearTimeout(timer);
1099
1071
  signal?.removeEventListener("abort", onOuterAbort);
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  requestModelCatalogRefresh2,
3
3
  startPricingRefreshLoop2
4
- } from "./cli-bnes4z6b.js";
5
- import"./cli-dk44dxec.js";
6
- import"./cli-wt0jf9hm.js";
4
+ } from "./cli-y9jvxfhk.js";
5
+ import"./cli-0y6f0ckq.js";
6
+ import"./cli-fcc5qe3f.js";
7
7
  export {
8
8
  requestModelCatalogRefresh2 as requestModelCatalogRefresh,
9
9
  startPricingRefreshLoop2 as startPricingRefreshLoop
@@ -2,7 +2,7 @@ import {
2
2
  getDb2,
3
3
  getDbClient2,
4
4
  init_db3
5
- } from "./cli-wt0jf9hm.js";
5
+ } from "./cli-fcc5qe3f.js";
6
6
  import {
7
7
  PermissionVerbSchema,
8
8
  init_rbac
@@ -2,8 +2,8 @@ import {
2
2
  getUserGrant2,
3
3
  ensureRbacSeedsSynced2,
4
4
  init_rbac_roles
5
- } from "./cli-kpw04va0.js";
6
- import"./cli-wt0jf9hm.js";
5
+ } from "./cli-0z3vjrpm.js";
6
+ import"./cli-fcc5qe3f.js";
7
7
  init_rbac_roles();
8
8
 
9
9
  export {
@@ -2,9 +2,9 @@ import {
2
2
  isSlackRenderV2Enabled2,
3
3
  ensureSlackThreadTree2,
4
4
  processSlackRenderV22
5
- } from "./cli-37j04k05.js";
6
- import"./cli-3a45zcgm.js";
7
- import"./cli-wt0jf9hm.js";
5
+ } from "./cli-fy1jyyym.js";
6
+ import"./cli-ftmq4nvk.js";
7
+ import"./cli-fcc5qe3f.js";
8
8
  export {
9
9
  ensureSlackThreadTree2 as ensureSlackThreadTree,
10
10
  isSlackRenderV2Enabled2 as isSlackRenderV2Enabled,
@@ -9,18 +9,20 @@ import {
9
9
  resumeFromChildRun2,
10
10
  initWaitBusSubscriptions2,
11
11
  subscribeWaitToBus2
12
- } from "./cli-9hstj09h.js";
13
- import"./cli-xpa64rek.js";
14
- import"./cli-8nyhf7za.js";
15
- import"./cli-ejs3m1sx.js";
12
+ } from "./cli-3zwye9sn.js";
13
+ import"./cli-92mqenkc.js";
14
+ import"./cli-qqzmjxkf.js";
15
+ import"./cli-kxpfx2xr.js";
16
16
  import"./cli-13p25grh.js";
17
17
  import"./cli-0adyhvq2.js";
18
- import"./cli-37j04k05.js";
19
- import"./cli-3a45zcgm.js";
18
+ import"./cli-fy1jyyym.js";
19
+ import"./cli-ftmq4nvk.js";
20
+ import"./cli-rycdaj0a.js";
20
21
  import"./cli-445c1vp7.js";
21
22
  import"./cli-kvzgak7c.js";
22
- import"./cli-wt0jf9hm.js";
23
- import"./cli-wt645v7q.js";
23
+ import"./cli-2nf3b08t.js";
24
+ import"./cli-fcc5qe3f.js";
25
+ import"./cli-dabehxhp.js";
24
26
  export {
25
27
  cancelWorkflowRun2 as cancelWorkflowRun,
26
28
  cancelWorkflowRunRows2 as cancelWorkflowRunRows,
@@ -5,7 +5,7 @@ import {
5
5
  McpServerLog2,
6
6
  createDefaultTransport2,
7
7
  McpServerConnection2
8
- } from "./cli-wxbn3yfx.js";
8
+ } from "./cli-cz5nmdxt.js";
9
9
  export {
10
10
  McpOAuthCredentialStore2 as McpOAuthCredentialStore,
11
11
  McpServerConnection2 as McpServerConnection,
@@ -5,20 +5,22 @@ import {
5
5
  canReadSession2,
6
6
  readableByFor2,
7
7
  SESSION_WRITE_DENIED2,
8
+ hasSessionWrite2,
8
9
  denyParentAttach2,
9
10
  pathSessionDenial2,
10
11
  bodySessionDenial2,
11
12
  userAgentIdentityDenial2
12
- } from "./cli-018r4jq6.js";
13
- import"./cli-1f3qzw6y.js";
14
- import"./cli-kpw04va0.js";
15
- import"./cli-wt0jf9hm.js";
13
+ } from "./cli-9ce2xw98.js";
14
+ import"./cli-xt768r5m.js";
15
+ import"./cli-0z3vjrpm.js";
16
+ import"./cli-fcc5qe3f.js";
16
17
  export {
17
18
  SESSION_READ_DENIED2 as SESSION_READ_DENIED,
18
19
  SESSION_WRITE_DENIED2 as SESSION_WRITE_DENIED,
19
20
  bodySessionDenial2 as bodySessionDenial,
20
21
  canReadSession2 as canReadSession,
21
22
  denyParentAttach2 as denyParentAttach,
23
+ hasSessionWrite2 as hasSessionWrite,
22
24
  pathSessionDenial2 as pathSessionDenial,
23
25
  readableByFor2 as readableByFor,
24
26
  resolveSessionActor2 as resolveSessionActor,
@@ -15,7 +15,7 @@ import {
15
15
  createDefaultSettingsLocal,
16
16
  createDefaultMcpJson,
17
17
  createHooksConfig
18
- } from "./cli-p14m2cnp.js";
18
+ } from "./cli-mbfj11fq.js";
19
19
  import {
20
20
  getApiKey,
21
21
  init_api_key
@@ -1,14 +1,16 @@
1
+ import"./cli-2nf3b08t.js";
1
2
  import {
2
3
  classifySystemOne
3
- } from "./cli-b9fcxxev.js";
4
+ } from "./cli-007cnhm1.js";
4
5
  import {
5
6
  isRecord
6
- } from "./cli-sm8rses9.js";
7
+ } from "./cli-zfdp01hn.js";
7
8
 
8
9
  // node_modules/@earendil-works/pi-ai/dist/api/typesafe-system-one.js
9
10
  var transport = {
10
11
  api: "typesafe-system-one",
11
12
  label: "System One API",
13
+ detectCompat: (model) => model.provider === "openrouter" || model.baseUrl.includes("openrouter.ai") ? { imageInput: "state-image-urls", sendImageOptInHeader: false } : { imageInput: "assets", sendImageOptInHeader: true },
12
14
  url: (model) => new URL("systemone", `${model.baseUrl.replace(/\/+$/u, "")}/`),
13
15
  payload: (model, request) => ({ model: model.id, ...request }),
14
16
  output: (body) => {
@@ -4,16 +4,20 @@ import {
4
4
  exports_compile,
5
5
  exports_all,
6
6
  exports_compat
7
- } from "./cli-8nyhf7za.js";
7
+ } from "./cli-qqzmjxkf.js";
8
+ import {
9
+ exports_models
10
+ } from "./cli-2nf3b08t.js";
8
11
  import"./cli-kvzgak7c.js";
9
12
  import"./cli-445c1vp7.js";
10
13
  import {
11
14
  exports_dist,
12
15
  exports_dist2,
13
16
  exports_dist3
14
- } from "./cli-d2mb5s8a.js";
17
+ } from "./cli-x77gen2p.js";
15
18
  import"./cli-13p25grh.js";
16
19
  import"./cli-0adyhvq2.js";
20
+ import"./cli-rycdaj0a.js";
17
21
 
18
22
  // node_modules/@earendil-works/pi-ai/dist/oauth.js
19
23
  var exports_oauth = {};
@@ -30,6 +34,7 @@ var VIRTUAL_MODULES = {
30
34
  "@earendil-works/pi-tui": exports_dist2,
31
35
  "@earendil-works/pi-ai": exports_compat,
32
36
  "@earendil-works/pi-ai/compat": exports_compat,
37
+ "@earendil-works/pi-ai/models": exports_models,
33
38
  "@earendil-works/pi-ai/oauth": exports_oauth,
34
39
  "@earendil-works/pi-ai/providers/all": exports_all,
35
40
  "@earendil-works/pi-coding-agent": exports_dist3,
@@ -37,6 +42,7 @@ var VIRTUAL_MODULES = {
37
42
  "@mariozechner/pi-tui": exports_dist2,
38
43
  "@mariozechner/pi-ai": exports_compat,
39
44
  "@mariozechner/pi-ai/compat": exports_compat,
45
+ "@mariozechner/pi-ai/models": exports_models,
40
46
  "@mariozechner/pi-ai/oauth": exports_oauth,
41
47
  "@mariozechner/pi-ai/providers/all": exports_all,
42
48
  "@mariozechner/pi-coding-agent": exports_dist3