@desplega.ai/agent-swarm 2.4.4 → 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 (382) hide show
  1. package/README.md +4 -2
  2. package/dist/{acp-adapter-thq04adh.js → acp-adapter-11gp67nr.js} +8 -6
  3. package/dist/{actions-j6ywh6x5.js → actions-8p2kze8j.js} +24 -22
  4. package/dist/{amp-adapter-k8b5xmj8.js → amp-adapter-z4qvhacj.js} +2 -2
  5. package/dist/{anthropic-messages-g6pqmqk4.js → anthropic-messages-txs190dd.js} +17 -20
  6. package/dist/{app-rb7vc02s.js → app-0qp0a2gk.js} +3 -3
  7. package/dist/{assistant-ftta1zjf.js → assistant-jedd3ktm.js} +27 -25
  8. package/dist/{azure-openai-responses-9dbmj346.js → azure-openai-responses-9kfwhmn7.js} +18 -13
  9. package/dist/{boot-reembed-xns7h5h9.js → boot-reembed-4xwq5tg0.js} +1 -1
  10. package/dist/{boot-reembed-srp6v6af.js → boot-reembed-n4wq5dd2.js} +1 -1
  11. package/dist/{boot-scrub-sweep-3qqrh2mz.js → boot-scrub-sweep-69h90xcq.js} +4 -4
  12. package/dist/{boot-seeds-9ks8hce7.js → boot-seeds-3vn0m9sg.js} +4 -4
  13. package/dist/{claude-adapter-k5ksyres.js → claude-adapter-221mvad5.js} +8 -6
  14. package/dist/{claude-managed-adapter-h2y889ge.js → claude-managed-adapter-gt6pa35d.js} +2 -2
  15. package/dist/{claude-managed-setup-n5a5eqks.js → claude-managed-setup-c3hp36ph.js} +4 -4
  16. package/dist/{claude-sdk-session-2j3j4kwn.js → claude-sdk-session-8thjsk5e.js} +9729 -9628
  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-amyhm3gj.js → cli-0y6f0ckq.js} +1 -1
  20. package/dist/{cli-4dg55wsk.js → cli-0z3vjrpm.js} +1 -1
  21. package/dist/{cli-pccfmtb5.js → cli-179xcyky.js} +11 -11
  22. package/dist/{cli-3r8samv3.js → cli-1f0gp9vz.js} +3 -2
  23. package/dist/{cli-hj3debgw.js → cli-1pr672hz.js} +3 -3
  24. package/dist/{cli-0bqteszy.js → cli-2nf3b08t.js} +328 -25
  25. package/dist/{cli-t7cyef5g.js → cli-36j4jnk3.js} +4 -4
  26. package/dist/{cli-er83cjbn.js → cli-3qv8naq8.js} +527 -231
  27. package/dist/cli-3zwye9sn.js +1193 -0
  28. package/dist/{cli-60cgh1rv.js → cli-459fk97x.js} +7 -7
  29. package/dist/{cli-xj0re5tm.js → cli-4w24f7z3.js} +1 -1
  30. package/dist/{cli-v3yr2gbg.js → cli-5kzk3472.js} +2198 -968
  31. package/dist/{cli-h7gc0b4r.js → cli-5m84zd2k.js} +55 -18
  32. package/dist/{cli-w6nadkh4.js → cli-5rvg1ddk.js} +5 -5
  33. package/dist/{cli-dvkmp9bt.js → cli-6ctwrf1z.js} +20 -10
  34. package/dist/{cli-9qtjfd60.js → cli-6rg2jn2y.js} +3 -2
  35. package/dist/{cli-2v045xyf.js → cli-7bwtc6yx.js} +3 -3
  36. package/dist/{cli-3cgngyd8.js → cli-7g40g8hq.js} +35 -17
  37. package/dist/{cli-q6r7t299.js → cli-92mqenkc.js} +2379 -154
  38. package/dist/{cli-cynvc9fj.js → cli-9ce2xw98.js} +8 -8
  39. package/dist/{cli-gqvh8d8a.js → cli-bgdtv62r.js} +36 -22
  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-p20r8w42.js → cli-fcc5qe3f.js} +763 -268
  44. package/dist/{cli-1ephgwnq.js → cli-fes51ya2.js} +3 -3
  45. package/dist/{cli-1d70crsy.js → cli-ftmq4nvk.js} +2 -2
  46. package/dist/{cli-qkhc5aqy.js → cli-fy1jyyym.js} +13 -13
  47. package/dist/{cli-s95dknxh.js → cli-g1cw7xtt.js} +1 -1
  48. package/dist/{cli-qje9k2nh.js → cli-g9ypd5en.js} +12 -2
  49. package/dist/{cli-74c1wpm0.js → cli-gpv60278.js} +1 -1
  50. package/dist/{cli-pemywhfq.js → cli-ha9rmwgq.js} +2 -1
  51. package/dist/{cli-bnz0r3kc.js → cli-j1eghqfm.js} +5 -5
  52. package/dist/{cli-2zqpkvtt.js → cli-jpxsrxcb.js} +1 -1
  53. package/dist/{cli-ejs3m1sx.js → cli-kxpfx2xr.js} +1 -1
  54. package/dist/{cli-37yb7307.js → cli-mbfj11fq.js} +1 -1
  55. package/dist/{cli-pnp2j5zg.js → cli-mmhj8vd7.js} +2 -2
  56. package/dist/{cli-xf234ws8.js → cli-n4c8e3s5.js} +2 -0
  57. package/dist/{cli-a0kcty51.js → cli-n6kmqngw.js} +2 -2
  58. package/dist/{cli-te6b5wvg.js → cli-nnvjb17s.js} +3 -3
  59. package/dist/{cli-1dmcq2eh.js → cli-nzfnt2gs.js} +1 -1
  60. package/dist/{cli-625tb7aq.js → cli-p859hcc8.js} +2 -2
  61. package/dist/{cli-smvcw9z5.js → cli-pasyvjmm.js} +1 -1
  62. package/dist/cli-pkaqk57w.js +128 -0
  63. package/dist/{cli-8nyhf7za.js → cli-qqzmjxkf.js} +129 -105
  64. package/dist/{cli-zrwpctp4.js → cli-r25qpaxt.js} +161 -63
  65. package/dist/{cli-nc35pxb7.js → cli-rh5smt8t.js} +19 -4
  66. package/dist/{cli-qwkcwjdn.js → cli-rycdaj0a.js} +1 -1
  67. package/dist/{cli-esxerzg7.js → cli-s4sntwt4.js} +2 -2
  68. package/dist/{cli-b8k7epj1.js → cli-segs7hx9.js} +8 -8
  69. package/dist/{cli-36ckw0wx.js → cli-stxdrqs2.js} +2 -2
  70. package/dist/{cli-vdm20wej.js → cli-sy8f9705.js} +4 -4
  71. package/dist/{cli-1m17dc9d.js → cli-ta8bd7th.js} +2 -2
  72. package/dist/{cli-2y91wnbh.js → cli-we0ra057.js} +222 -10
  73. package/dist/{cli-55qmbp6z.js → cli-x21dqn18.js} +5 -5
  74. package/dist/{cli-dqb4n629.js → cli-x6vf4sad.js} +11 -11
  75. package/dist/{cli-d2mb5s8a.js → cli-x77gen2p.js} +680 -440
  76. package/dist/{cli-vq97g1jq.js → cli-xawhpgc9.js} +95 -195
  77. package/dist/{cli-82d3nkc3.js → cli-xd4eqtr2.js} +2 -2
  78. package/dist/{cli-9fhkkpj5.js → cli-xt768r5m.js} +2 -2
  79. package/dist/{cli-zrk6jxv8.js → cli-y4x8ww6s.js} +2 -2
  80. package/dist/{cli-xc27fwzg.js → cli-y9jvxfhk.js} +3 -3
  81. package/dist/{cli-44159k28.js → cli-z63a269p.js} +2 -2
  82. package/dist/{cli-sm8rses9.js → cli-zfdp01hn.js} +8 -5
  83. package/dist/cli.js +31 -29
  84. package/dist/{cloudflare-workers-ai-system-one-ch2wxfcp.js → cloudflare-workers-ai-system-one-43v9qkjk.js} +7 -2
  85. package/dist/{codex-adapter-968xwfy7.js → codex-adapter-tcg1q3jk.js} +6 -4
  86. package/dist/{codex-login-m819c41r.js → codex-login-rn7c5gxt.js} +1 -1
  87. package/dist/{codex-session-runner-ht4z99fa.js → codex-session-runner-xfx4wd9x.js} +7 -5
  88. package/dist/{commands-pcymaeg9.js → commands-ew83nj70.js} +2 -2
  89. package/dist/{controller-fpjyk46r.js → controller-gnq1k1mf.js} +4 -4
  90. package/dist/{controllers-connect-mwzx1fh6.js → controllers-connect-tw1dan9r.js} +26 -24
  91. package/dist/{cursor-adapter-cp4s2e2f.js → cursor-adapter-yq5xgfcg.js} +1 -1
  92. package/dist/{db-xsjg9jqq.js → db-7gbc53fd.js} +14 -2
  93. package/dist/{db-sgd12bt9.js → db-t86xrnes.js} +3 -3
  94. package/dist/{devin-adapter-zgqadvnm.js → devin-adapter-4ycy4vrf.js} +1 -1
  95. package/dist/{dispatcher-x0jfw2c9.js → dispatcher-64bdyhps.js} +23 -21
  96. package/dist/{docker-fkgtr75t.js → docker-nfy2gc8t.js} +2 -2
  97. package/dist/{dsh-adapter-jrq7ma7h.js → dsh-adapter-tvhc4k2d.js} +1 -1
  98. package/dist/{e2b-16d6ch39.js → e2b-9gkdhm3c.js} +2 -2
  99. package/dist/{e2b-zn0b4w5w.js → e2b-cjtf8k1z.js} +2 -2
  100. package/dist/{easter-egg-3d-5cgynaja.js → easter-egg-3d-e4qv8dxj.js} +1 -1
  101. package/dist/{event-bus-9vpk8gmq.js → event-bus-3z78ep5n.js} +1 -1
  102. package/dist/{execute-t4e6m3rw.js → execute-0xpz8950.js} +85 -23
  103. package/dist/{external-channel-8njj4h3b.js → external-channel-e9nw24zv.js} +2 -2
  104. package/dist/{google-generative-ai-bmq8gkf3.js → google-generative-ai-mk9vcpe1.js} +15 -15
  105. package/dist/{google-vertex-b1rvp52s.js → google-vertex-q580kz8k.js} +20 -20
  106. package/dist/{grok-adapter-kkr97v2f.js → grok-adapter-v82srhrx.js} +9 -7
  107. package/dist/handlers-c9ajzhbn.js +41 -0
  108. package/dist/{heartbeat-wd03zhn0.js → heartbeat-2vqs1319.js} +26 -24
  109. package/dist/{hook-xzj2ts2p.js → hook-01nk13wx.js} +7 -5
  110. package/dist/{hook-f0vghj42.js → hook-jzpheegg.js} +9 -7
  111. package/dist/{http-4hwxv62p.js → http-fc1k6ec8.js} +859 -252
  112. package/dist/index-07ef7nkm.js +42 -0
  113. package/dist/{index-g6tbb6ve.js → index-31ceyf42.js} +1 -1
  114. package/dist/index-7yts8n9s.js +43 -0
  115. package/dist/{index-c4ykd0f1.js → index-dr94zbnh.js} +13348 -11611
  116. package/dist/index-q3t40ryv.js +46 -0
  117. package/dist/{index-ww2vznkp.js → index-sepja052.js} +1 -1
  118. package/dist/{index-97q4xn03.js → index-zdycv3ja.js} +135 -79
  119. package/dist/{index-g216q6jr.js → index-zsyx51ap.js} +1 -4
  120. package/dist/{keepalive-hrh7xnr9.js → keepalive-5nh2rhmr.js} +4 -4
  121. package/dist/lead-aayq64jn.js +79 -0
  122. package/dist/{llama-cpp-classify-vv43gswy.js → llama-cpp-classify-ee7vmd7q.js} +4 -1
  123. package/dist/{maintenance-e8wnwnqx.js → maintenance-hjhzdt3k.js} +1 -1
  124. package/dist/{mistral-conversations-1medfwv7.js → mistral-conversations-sd0xf1tn.js} +13 -13
  125. package/dist/{node-3v3f08f7.js → node-jzjj7r9x.js} +10 -9
  126. package/dist/{oauth-refresh-sweep-zm0yj4sj.js → oauth-refresh-sweep-y3n1knmd.js} +3 -3
  127. package/dist/{onboard-dtwcq603.js → onboard-1zq3m7db.js} +2 -2
  128. package/dist/{openai-codex-responses-de9pvs4d.js → openai-codex-responses-79s8xnbh.js} +29 -23
  129. package/dist/{openai-completions-mtqge3nf.js → openai-completions-tdbyts0x.js} +21 -20
  130. package/dist/{openai-decisions-ygk4kkxd.js → openai-decisions-bqhnjyfz.js} +2 -1
  131. package/dist/{openai-responses-dkyng71g.js → openai-responses-dm3t5vqp.js} +26 -17
  132. package/dist/{opencode-adapter-x4tqzhkh.js → opencode-adapter-e56086m1.js} +7 -5
  133. package/dist/{openrouter-images-wvv7camj.js → openrouter-images-ssttr1y4.js} +6 -3
  134. package/dist/{otel-impl-w3fbhpn0.js → otel-impl-h9yyza47.js} +2 -2
  135. package/dist/{pi-messages-nhh1pkz2.js → pi-messages-3nf8bq1a.js} +6 -4
  136. package/dist/{pi-mono-adapter-mcfkn9vf.js → pi-mono-adapter-tzps8f38.js} +9 -37
  137. package/dist/{pricing-refresh-j38dehfs.js → pricing-refresh-nevhat8h.js} +3 -3
  138. package/dist/{rbac-roles-ae8yttq4.js → rbac-roles-4y6ngvzq.js} +1 -1
  139. package/dist/{rbac-roles-ejxx9b35.js → rbac-roles-exbg8xb6.js} +2 -2
  140. package/dist/{registry-rxw10xzg.js → registry-ajhexe44.js} +1 -1
  141. package/dist/{render-v2-n16n0phe.js → render-v2-cfsh13z3.js} +3 -3
  142. package/dist/{resume-z0fgjc38.js → resume-5s2t0dbs.js} +10 -8
  143. package/dist/{runtime-xe3aqy4x.js → runtime-bt5pkpm1.js} +1 -1
  144. package/dist/{session-access-cv3mq6mc.js → session-access-dnbyp3cn.js} +6 -4
  145. package/dist/{setup-mafhj3yt.js → setup-1wj1y77j.js} +1 -1
  146. package/dist/{typesafe-system-one-2hgpayzy.js → typesafe-system-one-bre38hvs.js} +4 -2
  147. package/dist/{virtual-modules-4r3zkc20.js → virtual-modules-mnfbh5mr.js} +8 -2
  148. package/dist/{work-objects-8b86mgjp.js → work-objects-7mg6216g.js} +26 -24
  149. package/dist/worker-nwb789mg.js +79 -0
  150. package/dist/{x-y45mthwn.js → x-pbpezr0s.js} +2 -2
  151. package/openapi.json +793 -6
  152. package/package.json +11 -11
  153. package/src/apps/catalog.generated.json +206 -4
  154. package/src/apps/page-validator.ts +13 -1
  155. package/src/assets/key.ts +17 -0
  156. package/src/azure-devops/handlers.ts +1 -1
  157. package/src/be/chunking.ts +42 -9
  158. package/src/be/db/approvals.ts +18 -0
  159. package/src/be/db/session-moves.ts +164 -0
  160. package/src/be/db/session-tree.ts +384 -0
  161. package/src/be/db/tasks/draft-text.ts +15 -0
  162. package/src/be/db/tasks/read.ts +54 -5
  163. package/src/be/db/workflow-runs.ts +96 -0
  164. package/src/be/db.ts +85 -237
  165. package/src/be/memory/index-content.ts +36 -17
  166. package/src/be/memory/providers/openai-embedding.ts +115 -61
  167. package/src/be/memory/providers/sqlite-store.ts +69 -23
  168. package/src/be/memory/reranker.ts +31 -1
  169. package/src/be/memory/search-candidates.ts +47 -0
  170. package/src/be/memory/types.ts +14 -0
  171. package/src/be/onboarding.ts +3 -0
  172. package/src/be/scripts/typecheck.ts +2 -0
  173. package/src/be/seed-scripts/catalog/heartbeat-jev-gate.ts +106 -54
  174. package/src/be/seed-scripts/index.ts +2 -2
  175. package/src/be/skill-sync.ts +43 -2
  176. package/src/be/swarm-config-guard.ts +25 -1
  177. package/src/be/task-attachment-store.ts +30 -0
  178. package/src/bitbucket/api.ts +81 -0
  179. package/src/bitbucket/auth.ts +64 -0
  180. package/src/bitbucket/handlers.ts +434 -0
  181. package/src/bitbucket/index.ts +28 -0
  182. package/src/bitbucket/templates.ts +134 -0
  183. package/src/bitbucket/types.ts +65 -0
  184. package/src/commands/runner.ts +55 -3
  185. package/src/e2b/env.ts +1 -0
  186. package/src/extensions/catalog.generated.json +4 -4
  187. package/src/extensions/contract-types.generated.ts +1 -1
  188. package/src/extensions/contract.ts +9 -2
  189. package/src/extensions/post-bridge.ts +1 -0
  190. package/src/fs/provider.ts +13 -1
  191. package/src/github/handlers.ts +6 -6
  192. package/src/gitlab/handlers.ts +5 -5
  193. package/src/heartbeat/heartbeat.ts +31 -11
  194. package/src/http/assets.ts +14 -2
  195. package/src/http/core.ts +12 -0
  196. package/src/http/fs.ts +54 -34
  197. package/src/http/index.ts +4 -0
  198. package/src/http/mcp-body.ts +37 -0
  199. package/src/http/mcp-user.ts +3 -5
  200. package/src/http/mcp.ts +6 -7
  201. package/src/http/memory.ts +26 -15
  202. package/src/http/onboarding.ts +1 -0
  203. package/src/http/page-proxy.ts +61 -5
  204. package/src/http/pages-public.ts +27 -44
  205. package/src/http/pages.ts +4 -4
  206. package/src/http/script-runs.ts +2 -0
  207. package/src/http/sessions.ts +366 -12
  208. package/src/http/skills.ts +48 -1
  209. package/src/http/tasks.ts +1 -1
  210. package/src/http/users.ts +13 -1
  211. package/src/http/webhooks.ts +141 -0
  212. package/src/integrations/chat-sdk/adapters.ts +24 -4
  213. package/src/integrations/chat-sdk/attachments.ts +90 -12
  214. package/src/integrations/chat-sdk/facts.ts +138 -0
  215. package/src/integrations/chat-sdk/inbound.ts +156 -8
  216. package/src/integrations/chat-sdk/limits.ts +24 -0
  217. package/src/integrations/chat-sdk/outbound-files.ts +186 -0
  218. package/src/integrations/chat-sdk/outbound.ts +272 -5
  219. package/src/integrations/chat-sdk/relay.ts +4 -1
  220. package/src/integrations/chat-sdk/router.ts +28 -2
  221. package/src/integrations/chat-sdk/steering.ts +9 -0
  222. package/src/integrations/chat-sdk/templates.ts +14 -0
  223. package/src/integrations/chat-sdk/thread-buffer.ts +4 -0
  224. package/src/mcp-limits.ts +20 -0
  225. package/src/pages/browser-sdk.ts +8 -3
  226. package/src/pages/feedback-overlay.ts +1 -1
  227. package/src/providers/acp-targets.ts +1 -1
  228. package/src/providers/amp-adapter.ts +1 -1
  229. package/src/providers/codex-adapter.ts +106 -119
  230. package/src/providers/codex-agents-md.ts +35 -229
  231. package/src/providers/cursor-adapter.ts +1 -1
  232. package/src/providers/pi-mono-adapter.ts +5 -53
  233. package/src/realtime/transport.ts +1 -2
  234. package/src/script-workflows/workflow-ctx.ts +1 -0
  235. package/src/scripts-runtime/types/stdlib.d.ts +2 -0
  236. package/src/scripts-runtime/types/swarm-extension.d.ts +14 -4
  237. package/src/scripts-runtime/types/swarm-sdk.d.ts +2 -0
  238. package/src/server-user.ts +2 -0
  239. package/src/server.ts +2 -0
  240. package/src/slack/assistant.ts +2 -2
  241. package/src/slack/files.ts +2 -0
  242. package/src/slack/handlers.test.ts +158 -0
  243. package/src/slack/handlers.ts +23 -32
  244. package/src/slack/inbound-files.ts +39 -6
  245. package/src/slack/thread-buffer.ts +2 -1
  246. package/src/tasks/context-key.ts +61 -1
  247. package/src/tasks/task-terminal-effects.ts +21 -17
  248. package/src/tests/apps-card-grid.test.ts +197 -0
  249. package/src/tests/apps-catalog-additions.test.ts +120 -0
  250. package/src/tests/apps-tree.test.ts +129 -0
  251. package/src/tests/bitbucket-auth.test.ts +156 -0
  252. package/src/tests/bitbucket-handlers.test.ts +425 -0
  253. package/src/tests/bitbucket-webhook.test.ts +220 -0
  254. package/src/tests/chat-sdk-attachments-reply.test.ts +52 -0
  255. package/src/tests/chat-sdk-config.test.ts +11 -0
  256. package/src/tests/chat-sdk-facts.test.ts +23 -0
  257. package/src/tests/chat-sdk-inbound.test.ts +597 -4
  258. package/src/tests/chat-sdk-outbound-files.test.ts +652 -0
  259. package/src/tests/chat-sdk-telegram-markdown.test.ts +92 -0
  260. package/src/tests/codex-adapter.test.ts +167 -242
  261. package/src/tests/config-api-only-keys.test.ts +9 -0
  262. package/src/tests/context-key.test.ts +50 -0
  263. package/src/tests/core-auth.test.ts +5 -0
  264. package/src/tests/cors-allowlist.test.ts +1 -1
  265. package/src/tests/db-task-read-contract.test.ts +7 -0
  266. package/src/tests/db-task-write-contract.test.ts +6 -0
  267. package/src/tests/docs-index-footprint.test.js +3 -3
  268. package/src/tests/extensions-example-slack-reply-gate.test.ts +262 -91
  269. package/src/tests/fixtures/bitbucket/pullrequest-comment-created-inline.json +174 -0
  270. package/src/tests/fixtures/bitbucket/pullrequest-comment-created.json +170 -0
  271. package/src/tests/fixtures/bitbucket/pullrequest-created-mention.json +132 -0
  272. package/src/tests/fixtures/bitbucket/pullrequest-created-reviewer.json +140 -0
  273. package/src/tests/fixtures/bitbucket/pullrequest-fulfilled.json +134 -0
  274. package/src/tests/fixtures/bitbucket/pullrequest-rejected.json +133 -0
  275. package/src/tests/generate-mcp-docs.test.ts +101 -0
  276. package/src/tests/gitlab-handlers.test.ts +3 -3
  277. package/src/tests/gitlab-vcs-db.test.ts +4 -4
  278. package/src/tests/heartbeat-checklist.test.ts +33 -0
  279. package/src/tests/heartbeat-jev-gate-credentials.test.ts +44 -0
  280. package/src/tests/heartbeat-jev-gate.test.ts +242 -1
  281. package/src/tests/integration-disable-flags.test.ts +36 -0
  282. package/src/tests/kv-page-proxy.test.ts +91 -5
  283. package/src/tests/launch-password-rejection.test.ts +2 -2
  284. package/src/tests/mcp-input-caps.test.ts +294 -0
  285. package/src/tests/mcp-tools.test.ts +1 -1
  286. package/src/tests/memory-chunked-search-starvation.test.ts +200 -0
  287. package/src/tests/memory-embedding-input-cap.test.ts +114 -0
  288. package/src/tests/memory.test.ts +14 -0
  289. package/src/tests/onboarding.test.ts +12 -0
  290. package/src/tests/page-guest-session.test.ts +19 -8
  291. package/src/tests/page-proxy-authed.test.ts +1 -1
  292. package/src/tests/page-proxy.test.ts +17 -10
  293. package/src/tests/page-session.test.ts +102 -1
  294. package/src/tests/pages-authed-mode.test.ts +82 -12
  295. package/src/tests/pages-password-mode.test.ts +5 -5
  296. package/src/tests/pi-codemode.test.ts +8 -2
  297. package/src/tests/preload-env.test.ts +57 -0
  298. package/src/tests/preload.ts +21 -0
  299. package/src/tests/prompt-template-remaining.test.ts +38 -0
  300. package/src/tests/realtime-transport.test.ts +13 -7
  301. package/src/tests/run-root-coverage.test.ts +39 -0
  302. package/src/tests/runner-bitbucket-vcs.test.ts +191 -0
  303. package/src/tests/runner-skills-refresh.test.ts +58 -0
  304. package/src/tests/script-runs-http.test.ts +84 -0
  305. package/src/tests/scripts-http.test.ts +10 -1
  306. package/src/tests/secret-scrubber.test.ts +15 -0
  307. package/src/tests/sessions-move.test.ts +576 -0
  308. package/src/tests/sessions-tree.test.ts +493 -0
  309. package/src/tests/skill-files-http.test.ts +50 -0
  310. package/src/tests/skills-bundle.test.ts +99 -0
  311. package/src/tests/swarm-config-export-to-env.test.ts +23 -3
  312. package/src/tests/task-audio-transcription.test.ts +299 -0
  313. package/src/tests/task-completion-memory-chunking.test.ts +434 -0
  314. package/src/tests/task-terminal-secret-scrub.test.ts +6 -1
  315. package/src/tests/transcription.test.ts +299 -0
  316. package/src/tests/vcs-bitbucket.test.ts +91 -0
  317. package/src/tests/vcs-provider-isolation.test.ts +123 -0
  318. package/src/tests/vcs-provider.test.ts +16 -1
  319. package/src/tests/vcs-tracking.test.ts +3 -3
  320. package/src/tests/workflow-foreach-bodies.test.ts +637 -0
  321. package/src/tests/workflow-foreach-concurrency.test.ts +342 -0
  322. package/src/tests/workflow-foreach-retry.test.ts +537 -0
  323. package/src/tests/workflow-foreach.test.ts +44 -23
  324. package/src/tests/workflow-step-claims.test.ts +6 -6
  325. package/src/tests/workflow-system-one-decision-providers.test.ts +98 -1
  326. package/src/tests/workflow-system-one-decision.test.ts +2 -1
  327. package/src/tests/workflow-tla-races.test.ts +2 -2
  328. package/src/tools/chat-access.ts +10 -0
  329. package/src/tools/chat-post.ts +31 -11
  330. package/src/tools/chat-reply.ts +32 -10
  331. package/src/tools/memory-search.ts +3 -1
  332. package/src/tools/script-delete.ts +1 -1
  333. package/src/tools/system-one-decide.ts +17 -4
  334. package/src/tools/workflows/create-workflow.ts +5 -3
  335. package/src/types.ts +9 -2
  336. package/src/utils/config-env-export.ts +4 -1
  337. package/src/utils/page-session.ts +133 -20
  338. package/src/utils/secret-scrubber.ts +4 -0
  339. package/src/utils/skills-refresh.ts +83 -43
  340. package/src/utils/transcription.ts +246 -0
  341. package/src/vcs/bitbucket.ts +58 -0
  342. package/src/vcs/index.ts +2 -0
  343. package/src/vcs/types.ts +2 -2
  344. package/src/workflows/approval-resolution.ts +4 -1
  345. package/src/workflows/checkpoint.ts +9 -1
  346. package/src/workflows/constants.ts +3 -0
  347. package/src/workflows/definition.ts +48 -17
  348. package/src/workflows/engine.ts +25 -15
  349. package/src/workflows/executors/foreach.ts +45 -99
  350. package/src/workflows/executors/system-one-decision.ts +28 -7
  351. package/src/workflows/executors/system-one-providers.ts +39 -4
  352. package/src/workflows/foreach-body.ts +146 -0
  353. package/src/workflows/foreach-driver.ts +552 -0
  354. package/src/workflows/foreach-join.ts +206 -7
  355. package/src/workflows/node-timeout.ts +21 -0
  356. package/src/workflows/recovery.ts +68 -3
  357. package/src/workflows/resume.ts +221 -43
  358. package/src/workflows/retry-poller.ts +39 -24
  359. package/src/workflows/step-input.ts +59 -0
  360. package/src/workflows/task-step-routing.ts +114 -56
  361. package/templates/extensions/slack-reply-gate/README.md +24 -22
  362. package/templates/extensions/slack-reply-gate/hooks.ts +146 -95
  363. package/templates/extensions/slack-reply-gate/manifest.json +2 -2
  364. package/templates/skills/apps/SKILL.md +28 -6
  365. package/templates/skills/apps/content.md +28 -6
  366. package/templates/skills/chat-sdk/content.md +6 -2
  367. package/templates/skills/code-quality/content.md +2 -1
  368. package/templates/skills/heartbeat-runbook/content.md +5 -5
  369. package/templates/skills/pages/content.md +6 -4
  370. package/templates/skills/slack-interaction/content.md +5 -0
  371. package/templates/skills/swarm-scripts/SKILL.md +2 -2
  372. package/templates/skills/swarm-scripts/content.md +2 -2
  373. package/templates/skills/work-on-task/SKILL.md +1 -1
  374. package/templates/skills/work-on-task/content.md +1 -1
  375. package/dist/cli-51y09c6p.js +0 -2657
  376. package/dist/cli-yw91rnmw.js +0 -13
  377. package/dist/handlers-0pvee9nw.js +0 -39
  378. package/dist/index-gdh8jrdm.js +0 -43
  379. package/dist/index-hg0x2cdv.js +0 -40
  380. package/dist/index-thm0y6a8.js +0 -41
  381. package/dist/lead-ee8vazz2.js +0 -77
  382. package/dist/worker-16s75hm5.js +0 -77
@@ -3450,9 +3450,6 @@ var TelegramAdapter = class {
3450
3450
  }
3451
3451
  }
3452
3452
  };
3453
- function createTelegramAdapter(config) {
3454
- return new TelegramAdapter(config ?? {});
3455
- }
3456
3453
  export {
3457
- createTelegramAdapter
3454
+ TelegramAdapter
3458
3455
  };
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  listKeepAliveAuthorizations,
3
3
  init_oauth
4
- } from "./cli-p20r8w42.js";
4
+ } from "./cli-fcc5qe3f.js";
5
5
  import {
6
6
  ensureAuthorizationTokenOrThrow
7
- } from "./cli-esxerzg7.js";
7
+ } from "./cli-s4sntwt4.js";
8
8
  import {
9
9
  scrubSecrets,
10
10
  init_secret_scrubber
11
- } from "./cli-xf234ws8.js";
11
+ } from "./cli-n4c8e3s5.js";
12
12
 
13
13
  // src/oauth/keepalive.ts
14
14
  init_oauth();
@@ -57,7 +57,7 @@ async function notifySlack(text) {
57
57
  return;
58
58
  }
59
59
  try {
60
- const { getSlackApp } = await import("./app-rb7vc02s.js");
60
+ const { getSlackApp } = await import("./app-0qp0a2gk.js");
61
61
  const app = getSlackApp();
62
62
  if (!app) {
63
63
  console.warn("[OAuth Keepalive] Slack not available, cannot send notification");
@@ -0,0 +1,79 @@
1
+ import"./cli-qz93y3x5.js";
2
+ import {
3
+ getEnabledCapabilities
4
+ } from "./cli-5kzk3472.js";
5
+ import"./cli-fcc5qe3f.js";
6
+ import"./cli-0z3vjrpm.js";
7
+ import"./cli-36j4jnk3.js";
8
+ import"./cli-0y6f0ckq.js";
9
+ import"./cli-y9jvxfhk.js";
10
+ import"./cli-jpxsrxcb.js";
11
+ import"./cli-92mqenkc.js";
12
+ import"./cli-we0ra057.js";
13
+ import"./cli-s4sntwt4.js";
14
+ import"./cli-3ggwdtb0.js";
15
+ import"./cli-fy1jyyym.js";
16
+ import"./cli-ftmq4nvk.js";
17
+ import"./cli-qqzmjxkf.js";
18
+ import"./cli-2nf3b08t.js";
19
+ import"./cli-kvzgak7c.js";
20
+ import"./cli-445c1vp7.js";
21
+ import"./cli-kxpfx2xr.js";
22
+ import"./cli-dabehxhp.js";
23
+ import"./cli-3zwye9sn.js";
24
+ import"./cli-9ce2xw98.js";
25
+ import"./cli-e8xyjvfc.js";
26
+ import"./cli-g9ypd5en.js";
27
+ import"./cli-5rvg1ddk.js";
28
+ import"./cli-3h26v7yj.js";
29
+ import"./cli-pasyvjmm.js";
30
+ import"./cli-0xk505e8.js";
31
+ import"./cli-bn0rewsy.js";
32
+ import"./cli-77cd6gy8.js";
33
+ import"./cli-4w24f7z3.js";
34
+ import {
35
+ runAgent
36
+ } from "./cli-r25qpaxt.js";
37
+ import"./cli-a5ebc95n.js";
38
+ import"./cli-gx4rm0qx.js";
39
+ import"./cli-5kqnemen.js";
40
+ import"./cli-jc1g9ndz.js";
41
+ import"./cli-fes51ya2.js";
42
+ import"./cli-ta8bd7th.js";
43
+ import"./cli-mmhj8vd7.js";
44
+ import"./cli-d82btycs.js";
45
+ import"./cli-0726awxw.js";
46
+ import"./cli-x21dqn18.js";
47
+ import"./cli-sy8f9705.js";
48
+ import"./cli-4bd1rck6.js";
49
+ import"./cli-vbhgkw9h.js";
50
+ import"./cli-3qv8naq8.js";
51
+ import"./cli-n6kmqngw.js";
52
+ import"./cli-kr5tjjtz.js";
53
+ import"./cli-xawhpgc9.js";
54
+ import"./cli-j1eghqfm.js";
55
+ import"./cli-g1cw7xtt.js";
56
+ import"./cli-z63a269p.js";
57
+ import"./cli-nnvjb17s.js";
58
+ import"./cli-e5bxnjps.js";
59
+ import"./cli-stxdrqs2.js";
60
+ import"./cli-y4x8ww6s.js";
61
+ import"./cli-4zsenjhy.js";
62
+ import"./cli-13p25grh.js";
63
+ import"./cli-0adyhvq2.js";
64
+ import"./cli-xt768r5m.js";
65
+ import"./cli-rycdaj0a.js";
66
+
67
+ // src/commands/lead.ts
68
+ var leadConfig = {
69
+ role: "lead",
70
+ defaultPrompt: "/start-leader",
71
+ metadataType: "lead_metadata",
72
+ capabilities: getEnabledCapabilities()
73
+ };
74
+ async function runLead(opts) {
75
+ return runAgent(leadConfig, opts);
76
+ }
77
+ export {
78
+ runLead
79
+ };
@@ -9,6 +9,9 @@ import {
9
9
  headersToRecord,
10
10
  providerHeadersToRecord
11
11
  } from "./cli-hf1b007k.js";
12
+ import {
13
+ getIdentityHeaders
14
+ } from "./cli-pkaqk57w.js";
12
15
 
13
16
  // node_modules/@earendil-works/pi-ai/dist/api/llama-cpp-classify.js
14
17
  var LABEL = "llama.cpp";
@@ -161,7 +164,7 @@ async function post(request, path, body, observe) {
161
164
  payload = transformed;
162
165
  }
163
166
  const requestFetch = options?.fetch ?? globalThis.fetch;
164
- const headers = providerHeadersToRecord({
167
+ const headers = providerHeadersToRecord(getIdentityHeaders(model, options?.identity), {
165
168
  "content-type": "application/json",
166
169
  ...options?.apiKey ? { authorization: `Bearer ${options.apiKey}` } : {}
167
170
  }, model.headers, options?.headers) ?? {};
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  reembedAllScripts,
3
3
  init_embeddings
4
- } from "./cli-p20r8w42.js";
4
+ } from "./cli-fcc5qe3f.js";
5
5
 
6
6
  // src/be/scripts/maintenance.ts
7
7
  init_embeddings();
@@ -1,3 +1,11 @@
1
+ import {
2
+ getSystemMessageText,
3
+ renderSystemMessageUpdate,
4
+ getCurrentTools,
5
+ resolveTranscript,
6
+ calculateCost,
7
+ clampThinkingLevel
8
+ } from "./cli-2nf3b08t.js";
1
9
  import {
2
10
  parseToolCallArguments,
3
11
  parseStreamingJson
@@ -8,32 +16,24 @@ import {
8
16
  import {
9
17
  shortHash
10
18
  } from "./cli-j3xf15kq.js";
11
- import {
12
- getPiUserAgent
13
- } from "./cli-yw91rnmw.js";
14
19
  import {
15
20
  getJsonSchemaToolParameters,
16
21
  resolveJsonSchemaStrictSampling,
17
22
  buildBaseOptions,
18
23
  transformMessages
19
- } from "./cli-3r8samv3.js";
24
+ } from "./cli-1f0gp9vz.js";
20
25
  import {
21
26
  sanitizeSurrogates
22
27
  } from "./cli-xs8nzjqf.js";
23
28
  import {
24
29
  headersToRecord
25
30
  } from "./cli-hf1b007k.js";
26
- import {
27
- getSystemMessageText,
28
- renderSystemMessageUpdate,
29
- getCurrentTools,
30
- resolveTranscript,
31
- calculateCost,
32
- clampThinkingLevel
33
- } from "./cli-0bqteszy.js";
34
31
  import {
35
32
  AssistantMessageEventStream
36
33
  } from "./cli-m6m1bvtp.js";
34
+ import {
35
+ getIdentityHeaders
36
+ } from "./cli-pkaqk57w.js";
37
37
 
38
38
  // node_modules/@earendil-works/pi-ai/dist/api/mistral-conversations.js
39
39
  var MISTRAL_TOOL_CALL_ID_LENGTH = 9;
@@ -221,7 +221,7 @@ class MistralHttpError extends Error {
221
221
  }
222
222
  function buildMistralHeaders(model, apiKey, options) {
223
223
  const headers = new Headers({
224
- "User-Agent": getPiUserAgent(),
224
+ ...getIdentityHeaders(model, options?.identity),
225
225
  accept: "text/event-stream",
226
226
  authorization: `Bearer ${apiKey}`,
227
227
  "content-type": "application/json"
@@ -18,7 +18,7 @@ import {
18
18
  DEFAULT_MEMORY_SYNC_INTERVAL_MS,
19
19
  checkMemorySyncInterval,
20
20
  promiseWithResolvers
21
- } from "./cli-9qtjfd60.js";
21
+ } from "./cli-6rg2jn2y.js";
22
22
 
23
23
  // node_modules/@anthropic-ai/sdk/tools/agent-toolset/node.mjs
24
24
  import * as fs4 from "node:fs/promises";
@@ -30,17 +30,18 @@ import * as readline from "node:readline";
30
30
 
31
31
  // node_modules/@anthropic-ai/sdk/helpers/beta/json-schema.mjs
32
32
  function betaTool(options) {
33
- if (options.inputSchema.type !== "object") {
34
- throw new Error(`JSON schema for tool "${options.name}" must be an object, but got ${options.inputSchema.type}`);
33
+ const { name, inputSchema, description, run, ...extraProps } = options;
34
+ if (inputSchema.type !== "object") {
35
+ throw new Error(`JSON schema for tool "${name}" must be an object, but got ${inputSchema.type}`);
35
36
  }
36
37
  return {
38
+ ...extraProps,
37
39
  type: "custom",
38
- name: options.name,
39
- input_schema: options.inputSchema,
40
- description: options.description,
41
- run: options.run,
42
- parse: (content) => content,
43
- ...options.close ? { close: options.close } : {}
40
+ name,
41
+ input_schema: inputSchema,
42
+ description,
43
+ run,
44
+ parse: (content) => content
44
45
  };
45
46
  }
46
47
 
@@ -2,14 +2,14 @@ import {
2
2
  getAuthorizationById,
3
3
  listAuthorizationSweepRows,
4
4
  init_oauth
5
- } from "./cli-p20r8w42.js";
5
+ } from "./cli-fcc5qe3f.js";
6
6
  import {
7
7
  forceRefreshAuthorizationOrThrow
8
- } from "./cli-esxerzg7.js";
8
+ } from "./cli-s4sntwt4.js";
9
9
  import {
10
10
  scrubSecrets,
11
11
  init_secret_scrubber
12
- } from "./cli-xf234ws8.js";
12
+ } from "./cli-n4c8e3s5.js";
13
13
 
14
14
  // src/be/oauth-refresh-sweep.ts
15
15
  init_secret_scrubber();
@@ -16,7 +16,7 @@ import {
16
16
  createDefaultSettingsLocal,
17
17
  createDefaultMcpJson,
18
18
  createHooksConfig
19
- } from "./cli-37yb7307.js";
19
+ } from "./cli-mbfj11fq.js";
20
20
  import {
21
21
  getSlackConfiguration,
22
22
  isSlackConfigured,
@@ -25,7 +25,7 @@ import {
25
25
  import {
26
26
  init_package,
27
27
  package_default
28
- } from "./cli-pccfmtb5.js";
28
+ } from "./cli-179xcyky.js";
29
29
  import {
30
30
  getApiKey,
31
31
  init_api_key
@@ -1,19 +1,26 @@
1
+ import {
2
+ getSystemMessageText,
3
+ normalizeContext,
4
+ getInitialSystemMessage,
5
+ resolveTranscript,
6
+ getDeclaredTools,
7
+ resolveTranscriptTools,
8
+ clampThinkingLevel
9
+ } from "./cli-2nf3b08t.js";
1
10
  import"./cli-445c1vp7.js";
2
11
  import"./cli-kvzgak7c.js";
3
12
  import {
13
+ getResponsesToolSupport,
4
14
  convertResponsesMessages,
5
15
  convertResponsesTools,
6
16
  processResponsesStream
7
- } from "./cli-h7gc0b4r.js";
17
+ } from "./cli-5m84zd2k.js";
8
18
  import {
9
19
  clampOpenAIPromptCacheKey
10
20
  } from "./cli-dxqypk0n.js";
11
21
  import {
12
22
  combineAbortSignals
13
23
  } from "./cli-aphet7e8.js";
14
- import {
15
- getPiUserAgent
16
- } from "./cli-yw91rnmw.js";
17
24
  import {
18
25
  registerSessionResourceCleanup,
19
26
  uuidv7
@@ -28,25 +35,19 @@ import {
28
35
  import {
29
36
  createGrammarToolInputProperties,
30
37
  buildBaseOptions
31
- } from "./cli-3r8samv3.js";
38
+ } from "./cli-1f0gp9vz.js";
32
39
  import {
33
40
  headersToRecord
34
41
  } from "./cli-hf1b007k.js";
35
- import {
36
- getSystemMessageText,
37
- normalizeContext,
38
- getInitialSystemMessage,
39
- resolveTranscript,
40
- getDeclaredTools,
41
- resolveTranscriptTools,
42
- clampThinkingLevel
43
- } from "./cli-0bqteszy.js";
44
42
  import {
45
43
  AssistantMessageEventStream,
46
44
  formatThrownValue,
47
45
  createAssistantMessageDiagnostic,
48
46
  appendAssistantMessageDiagnostic
49
47
  } from "./cli-m6m1bvtp.js";
48
+ import {
49
+ getIdentityHeaders
50
+ } from "./cli-pkaqk57w.js";
50
51
 
51
52
  // node_modules/@earendil-works/pi-ai/dist/api/openai-codex-responses.js
52
53
  var DEFAULT_CODEX_BASE_URL = "https://chatgpt.com/backend-api";
@@ -197,8 +198,9 @@ var stream = (model, context, options) => {
197
198
  body = nextBody;
198
199
  }
199
200
  const websocketRequestId = codexSessionId || uuidv7();
200
- const sseHeaders = buildSSEHeaders(model.headers, options?.headers, accountId, apiKey, codexSessionId);
201
- const websocketHeaders = buildWebSocketHeaders(model.headers, options?.headers, accountId, apiKey, websocketRequestId);
201
+ const identityHeaders = { originator: "pi", ...getIdentityHeaders(model, options?.identity) };
202
+ const sseHeaders = buildSSEHeaders(identityHeaders, model.headers, options?.headers, accountId, apiKey, codexSessionId);
203
+ const websocketHeaders = buildWebSocketHeaders(identityHeaders, model.headers, options?.headers, accountId, apiKey, websocketRequestId);
202
204
  const bodyJson = JSON.stringify(body);
203
205
  const httpTimeoutMs = normalizeTimeoutMs(options?.timeoutMs);
204
206
  const websocketConnectTimeoutMs = normalizeTimeoutMs(options?.websocketConnectTimeoutMs);
@@ -377,7 +379,11 @@ function buildRequestBody(model, context, options, cacheSessionId, grammarToolIn
377
379
  const supportsOpenAIGrammarTools = model.compat?.supportsOpenAIGrammarTools ?? false;
378
380
  const supportsAdditionalTools = model.compat?.supportsAdditionalTools ?? false;
379
381
  const supportsToolSearch = model.compat?.supportsToolSearch ?? false;
380
- const transcriptTools = resolveTranscriptTools(context.messages, supportsAdditionalTools || supportsToolSearch);
382
+ const transcriptTools = resolveTranscriptTools(context.messages, getResponsesToolSupport({
383
+ supportsMidConvoSystemMessages: model.compat?.supportsMidConvoSystemMessages ?? false,
384
+ supportsAdditionalTools,
385
+ supportsToolSearch
386
+ }));
381
387
  const messages = convertResponsesMessages(model, context, CODEX_TOOL_CALL_PROVIDERS, {
382
388
  includeSystemPrompt: false,
383
389
  grammarToolInputProperties,
@@ -1235,8 +1241,8 @@ function extractAccountId(token) {
1235
1241
  throw new Error("Failed to extract accountId from token");
1236
1242
  }
1237
1243
  }
1238
- function buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token) {
1239
- const headers = new Headers({ originator: "pi", "User-Agent": getPiUserAgent() });
1244
+ function buildBaseCodexHeaders(defaultHeaders, initHeaders, additionalHeaders, accountId, token) {
1245
+ const headers = new Headers(defaultHeaders);
1240
1246
  for (const [key, value] of Object.entries(initHeaders || {})) {
1241
1247
  headers.set(key, value);
1242
1248
  }
@@ -1251,8 +1257,8 @@ function buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token)
1251
1257
  headers.set("chatgpt-account-id", accountId);
1252
1258
  return headers;
1253
1259
  }
1254
- function buildSSEHeaders(initHeaders, additionalHeaders, accountId, token, sessionId) {
1255
- const headers = buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token);
1260
+ function buildSSEHeaders(defaultHeaders, initHeaders, additionalHeaders, accountId, token, sessionId) {
1261
+ const headers = buildBaseCodexHeaders(defaultHeaders, initHeaders, additionalHeaders, accountId, token);
1256
1262
  headers.set("OpenAI-Beta", "responses=experimental");
1257
1263
  headers.set("accept", "text/event-stream");
1258
1264
  headers.set("content-type", "application/json");
@@ -1262,8 +1268,8 @@ function buildSSEHeaders(initHeaders, additionalHeaders, accountId, token, sessi
1262
1268
  }
1263
1269
  return headers;
1264
1270
  }
1265
- function buildWebSocketHeaders(initHeaders, additionalHeaders, accountId, token, requestId) {
1266
- const headers = buildBaseCodexHeaders(initHeaders, additionalHeaders, accountId, token);
1271
+ function buildWebSocketHeaders(defaultHeaders, initHeaders, additionalHeaders, accountId, token, requestId) {
1272
+ const headers = buildBaseCodexHeaders(defaultHeaders, initHeaders, additionalHeaders, accountId, token);
1267
1273
  headers.delete("accept");
1268
1274
  headers.delete("content-type");
1269
1275
  headers.delete("OpenAI-Beta");
@@ -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,