@desplega.ai/agent-swarm 1.158.0 → 1.159.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/dist/{acp-adapter-xaq4n6pc.js → acp-adapter-qhch0n2v.js} +1 -1
  2. package/dist/{actions-p9hz5yat.js → actions-dtsh1mfb.js} +33 -29
  3. package/dist/{anthropic-messages-51pz26qe.js → anthropic-messages-f2h06k64.js} +8 -3
  4. package/dist/{app-g26wdcz6.js → app-y1b9srva.js} +10 -9
  5. package/dist/{assistant-wydfqkb3.js → assistant-31hwy5xj.js} +34 -30
  6. package/dist/{azure-openai-responses-8gksqtmz.js → azure-openai-responses-0k1mfax5.js} +12 -13
  7. package/dist/{boot-reembed-se8zmdcp.js → boot-reembed-48d2qpkt.js} +11 -11
  8. package/dist/{boot-reembed-g5ckg9yb.js → boot-reembed-w0bryhkr.js} +12 -12
  9. package/dist/{boot-scrub-logs-wfxqan61.js → boot-scrub-logs-t65wbrn7.js} +9 -8
  10. package/dist/{boot-seeds-s3q01xj3.js → boot-seeds-h7c32hvm.js} +12 -11
  11. package/dist/{claude-adapter-tv2x4f36.js → claude-adapter-1t6611ne.js} +26 -21
  12. package/dist/{claude-managed-adapter-41b2s7fd.js → claude-managed-adapter-werp659j.js} +4 -2
  13. package/dist/{claude-managed-setup-60g8aazx.js → claude-managed-setup-y6rdgbc1.js} +11 -2
  14. package/dist/claude-sdk-session-zhkyk8yw.js +29319 -0
  15. package/dist/{cli-vj6h9kc2.js → cli-0m7wct0d.js} +59 -1
  16. package/dist/{cli-wscdvcqz.js → cli-0n2e4x49.js} +1 -1
  17. package/dist/cli-0xqde53b.js +176 -0
  18. package/dist/{cli-xberxa1r.js → cli-10ym38qc.js} +2 -2
  19. package/dist/{cli-5b6b62tz.js → cli-13hw4z91.js} +1 -1
  20. package/dist/{cli-rqz8qbw7.js → cli-20035trh.js} +50 -18
  21. package/dist/{cli-k0g1sjzm.js → cli-31nkw3g3.js} +3 -3
  22. package/dist/cli-3gvrr8vj.js +1422 -0
  23. package/dist/{cli-c07r9a2m.js → cli-48527fpw.js} +9 -8
  24. package/dist/{cli-24k806sc.js → cli-4aj25szq.js} +2 -2
  25. package/dist/{cli-7gtvvpbh.js → cli-4tvgz99m.js} +7 -7
  26. package/dist/cli-503ya656.js +455 -0
  27. package/dist/{cli-cw9zck8j.js → cli-5f2hq128.js} +8 -4
  28. package/dist/{cli-s8eet254.js → cli-68bmme5p.js} +11078 -27833
  29. package/dist/{cli-ftfvggzx.js → cli-79aq9cgb.js} +794 -563
  30. package/dist/cli-7cxw8b60.js +14910 -0
  31. package/dist/cli-7kyk9jr3.js +22 -0
  32. package/dist/cli-7zttzetj.js +324 -0
  33. package/dist/{cli-y95wp3tg.js → cli-96qd5psa.js} +1 -1
  34. package/dist/{cli-g8djp6qe.js → cli-9yg65c1j.js} +22 -0
  35. package/dist/{cli-3gmcwfyx.js → cli-ardpzhjm.js} +5 -5
  36. package/dist/{cli-7s3syk22.js → cli-b6thtzac.js} +5 -5
  37. package/dist/{cli-00w2c66p.js → cli-bgv70kym.js} +13 -2
  38. package/dist/{cli-j55n64b6.js → cli-bv0a38v9.js} +163 -44
  39. package/dist/cli-ca2w7zv7.js +115 -0
  40. package/dist/cli-cpvsaqsw.js +333 -0
  41. package/dist/cli-cygyqj3b.js +754 -0
  42. package/dist/{cli-x24pshtq.js → cli-dvjpkkjd.js} +6 -6
  43. package/dist/{cli-5d10vd2m.js → cli-e0ndxhtk.js} +4 -4
  44. package/dist/{cli-4198qc9v.js → cli-e4xnc0qp.js} +15 -3
  45. package/dist/{cli-rjehvrts.js → cli-eg7cdg68.js} +8 -8
  46. package/dist/cli-ejpygnqz.js +3815 -0
  47. package/dist/{cli-fgqxwrpv.js → cli-fjtp3463.js} +1631 -127
  48. package/dist/{cli-zt1227k1.js → cli-fkqhbg8g.js} +5 -3
  49. package/dist/{cli-47m6dkd3.js → cli-g9df2m37.js} +409 -168
  50. package/dist/cli-gzyh0j0g.js +8455 -0
  51. package/dist/cli-hgqfttfc.js +183 -0
  52. package/dist/cli-hj65wsts.js +17755 -0
  53. package/dist/cli-j9z8mfx3.js +476 -0
  54. package/dist/{cli-aehm1rbq.js → cli-kc3dp84d.js} +1135 -61
  55. package/dist/{cli-h38x0qhg.js → cli-kdnehe0t.js} +4 -3
  56. package/dist/{cli-20cj37vt.js → cli-m4excttz.js} +136 -2216
  57. package/dist/{cli-8qmme6vd.js → cli-mg24hkt4.js} +2 -2
  58. package/dist/{cli-xhaeg2nc.js → cli-mzkqpxee.js} +1 -1
  59. package/dist/{cli-q67y4wzm.js → cli-phsaj4xq.js} +24 -2
  60. package/dist/{cli-pw9rj5t9.js → cli-pqetb83f.js} +1 -176
  61. package/dist/{cli-rj19hc34.js → cli-qjxy52w7.js} +1 -1
  62. package/dist/{cli-53sz8gkz.js → cli-qv4jv8bx.js} +1 -1
  63. package/dist/cli-qvnnx4ct.js +1051 -0
  64. package/dist/cli-rb9m6rpe.js +4980 -0
  65. package/dist/{cli-tt9k8r35.js → cli-rfezr056.js} +476 -909
  66. package/dist/{cli-ggm92wcn.js → cli-rgjprct3.js} +1 -0
  67. package/dist/{cli-9httdpyq.js → cli-rrqmqr1s.js} +1 -1
  68. package/dist/cli-rykfmgwg.js +102 -0
  69. package/dist/{cli-eetrvv91.js → cli-t3p77qk1.js} +1 -1
  70. package/dist/{cli-68w09sjw.js → cli-vn0qv9cj.js} +25 -88
  71. package/dist/{cli-987hg0aa.js → cli-vwbbaecp.js} +2 -2
  72. package/dist/cli-wd9hz40d.js +69 -0
  73. package/dist/{cli-j57qkrpq.js → cli-wgjx0q33.js} +13 -13
  74. package/dist/cli-xgpf00sk.js +2149 -0
  75. package/dist/{cli-mcnhgnn1.js → cli-ykk5jaax.js} +184 -26
  76. package/dist/{cli-aky8tctm.js → cli-z9x0sh1t.js} +3 -3
  77. package/dist/{cli-1hkrch3k.js → cli-zw65mab6.js} +5 -5
  78. package/dist/cli.js +38 -29
  79. package/dist/cloudflare-workers-ai-system-one-1sg586qv.js +46 -0
  80. package/dist/{codex-adapter-cnm8wk11.js → codex-adapter-jqfqqa21.js} +21 -14
  81. package/dist/{codex-hook-9hptmdhj.js → codex-hook-5eys3dya.js} +2 -2
  82. package/dist/{codex-session-runner-gfg547zj.js → codex-session-runner-zd341dsm.js} +21 -14
  83. package/dist/{commands-e3bn0p75.js → commands-vfsysz4s.js} +9 -8
  84. package/dist/{db-03v9kzr2.js → db-s3znhvbn.js} +15 -10
  85. package/dist/{dispatcher-nrmg8yht.js → dispatcher-5xn0c7rf.js} +32 -28
  86. package/dist/{dsh-adapter-k03nfqa6.js → dsh-adapter-894mgfvs.js} +3 -3
  87. package/dist/{e2b-93x1k0j5.js → e2b-ez07znam.js} +4 -3
  88. package/dist/execute-71ysgv35.js +965 -0
  89. package/dist/{google-generative-ai-bxmv50nc.js → google-generative-ai-1nfcdphp.js} +5 -4
  90. package/dist/{google-vertex-809af514.js → google-vertex-1tqcd7b1.js} +5 -4
  91. package/dist/{handlers-aqcedbyb.js → handlers-5w4jwycr.js} +35 -31
  92. package/dist/{hook-7vkskkre.js → hook-853bxrr6.js} +16 -13
  93. package/dist/{hook-ybvmrmhq.js → hook-z0hbxj85.js} +16 -13
  94. package/dist/{http-2eqa8t24.js → http-akc3wy3m.js} +600 -123
  95. package/dist/{index-f6cryxwe.js → index-4a5njnm1.js} +2 -59
  96. package/dist/{index-a3vn96n8.js → index-5sz16ksh.js} +187 -47
  97. package/dist/{index-c6zsv1bd.js → index-bjmjh9h4.js} +11 -11
  98. package/dist/{index-chgdkq36.js → index-cd151qkq.js} +32 -28
  99. package/dist/{index-x71bvq0p.js → index-k661dzzr.js} +33 -29
  100. package/dist/{index-1yks3qcr.js → index-ttpbhnjg.js} +32 -28
  101. package/dist/{keepalive-vtkf5n99.js → keepalive-8p9rpvz5.js} +11 -10
  102. package/dist/{lead-h3sp357x.js → lead-jp69z5h3.js} +49 -45
  103. package/dist/llama-cpp-classify-t2tccams.js +335 -0
  104. package/dist/{maintenance-jzeqtk3q.js → maintenance-fwx4ev0k.js} +12 -12
  105. package/dist/{mistral-conversations-zx0kn554.js → mistral-conversations-bhvwqcnk.js} +14 -17
  106. package/dist/{oauth-refresh-sweep-qp3dzmdp.js → oauth-refresh-sweep-cwcq1ctx.js} +10 -9
  107. package/dist/{onboard-tmsp0qbz.js → onboard-2b4q0t84.js} +6 -5
  108. package/dist/{openai-codex-responses-4vjqzvjp.js → openai-codex-responses-nekthgks.js} +21 -8
  109. package/dist/{openai-completions-9hjrqbw8.js → openai-completions-hxtzwj0s.js} +8 -11
  110. package/dist/{openai-responses-7b1pn0xt.js → openai-responses-w4r118w7.js} +22 -17
  111. package/dist/{opencode-adapter-x6x2da1z.js → opencode-adapter-zz7xvjj6.js} +6 -4
  112. package/dist/{openrouter-images-9f9ek4rw.js → openrouter-images-b6sqqjgn.js} +4 -6
  113. package/dist/{otel-impl-9mz73q65.js → otel-impl-g8rs4vwr.js} +1 -1
  114. package/dist/{pi-messages-txpjj39q.js → pi-messages-vxdt8v7j.js} +2 -1
  115. package/dist/{pi-mono-adapter-m6dvv0dz.js → pi-mono-adapter-n0me28wt.js} +29 -17
  116. package/dist/pricing-refresh-0v77385v.js +39 -0
  117. package/dist/{rbac-roles-c9wqz83x.js → rbac-roles-krjyazbj.js} +10 -9
  118. package/dist/{render-v2-gryrh9h8.js → render-v2-3wjsp9aw.js} +10 -9
  119. package/dist/runtime-ktjysacx.js +24 -0
  120. package/dist/{setup-q9720bt6.js → setup-yeqryke6.js} +6 -5
  121. package/dist/typesafe-system-one-96960jxp.js +27 -0
  122. package/dist/{virtual-modules-3htpgn8x.js → virtual-modules-dzdeq1sf.js} +21 -13
  123. package/dist/{work-objects-b76x7deb.js → work-objects-3pakpkw0.js} +35 -31
  124. package/dist/{worker-6vrxbv41.js → worker-85testgj.js} +49 -45
  125. package/openapi.json +863 -14
  126. package/package.json +9 -8
  127. package/src/be/db/agents.ts +20 -0
  128. package/src/be/db/tasks/human-free.ts +442 -0
  129. package/src/be/db/tasks/read.ts +56 -1
  130. package/src/be/db/tasks/write.ts +107 -11
  131. package/src/be/db.ts +89 -165
  132. package/src/be/harness-model-support.ts +182 -0
  133. package/src/be/human-free-drain.ts +67 -0
  134. package/src/be/migrations/182_task_human_free_flag.sql +63 -0
  135. package/src/be/migrations/183_human_free_reclassify_queue.sql +25 -0
  136. package/src/be/migrations/184_model_catalog.sql +120 -0
  137. package/src/be/model-catalog-store.ts +644 -0
  138. package/src/be/model-tier-keys.ts +31 -0
  139. package/src/be/model-tier-resolution.ts +489 -0
  140. package/src/be/model-validation.ts +112 -0
  141. package/src/be/models-catalog.ts +61 -7
  142. package/src/be/modelsdev-cache.json +82 -0
  143. package/src/be/modelsdev-cache.ts +2 -0
  144. package/src/be/pricing-refresh.ts +154 -12
  145. package/src/be/scripts/typecheck.ts +15 -0
  146. package/src/be/seed-scripts/catalog/task-failure-audit.ts +61 -9
  147. package/src/be/swarm-config-guard.ts +6 -0
  148. package/src/cli.tsx +10 -0
  149. package/src/commands/claude-managed-setup.ts +3 -1
  150. package/src/commands/runner.ts +76 -2
  151. package/src/extensions/contract-types.generated.ts +1 -1
  152. package/src/heartbeat/heartbeat.ts +64 -15
  153. package/src/heartbeat/templates.ts +2 -2
  154. package/src/http/agents.ts +49 -1
  155. package/src/http/index.ts +8 -0
  156. package/src/http/models-catalog.ts +357 -8
  157. package/src/http/poll.ts +45 -2
  158. package/src/http/schedules.ts +36 -6
  159. package/src/http/session-data.ts +2 -5
  160. package/src/http/stats.ts +6 -8
  161. package/src/http/tasks.ts +26 -1
  162. package/src/http/usage-cache.ts +56 -15
  163. package/src/http/workflows.ts +35 -8
  164. package/src/prompts/session-templates.ts +1 -0
  165. package/src/providers/claude-managed-models.ts +47 -161
  166. package/src/providers/codex-adapter.ts +4 -4
  167. package/src/providers/codex-models.ts +65 -198
  168. package/src/providers/reasoning-effort.ts +44 -140
  169. package/src/rbac/legacy-policy.ts +25 -0
  170. package/src/rbac/permissions.ts +10 -0
  171. package/src/scripts-runtime/sdk-allowlist.ts +4 -0
  172. package/src/scripts-runtime/types/stdlib.d.ts +15 -0
  173. package/src/scripts-runtime/types/swarm-extension.d.ts +3 -0
  174. package/src/scripts-runtime/types/swarm-sdk.d.ts +15 -0
  175. package/src/server.ts +6 -0
  176. package/src/slack/message-text.ts +56 -2
  177. package/src/slack/thread-buffer.ts +10 -2
  178. package/src/tests/agents-list-model-display.test.ts +4 -6
  179. package/src/tests/base-prompt.test.ts +3 -0
  180. package/src/tests/claude-adapter.test.ts +10 -0
  181. package/src/tests/claude-managed-adapter.test.ts +12 -18
  182. package/src/tests/codex-adapter.test.ts +2 -1
  183. package/src/tests/codex-gpt6-release.test.ts +66 -5
  184. package/src/tests/context-window.test.ts +7 -5
  185. package/src/tests/db-extraction-contract.test.ts +1 -0
  186. package/src/tests/db-task-read-contract.test.ts +5 -1
  187. package/src/tests/db-task-write-contract.test.ts +4 -1
  188. package/src/tests/docs-index-footprint.test.js +3 -3
  189. package/src/tests/explicit-model-validation.test.ts +332 -0
  190. package/src/tests/harness-model-support.test.ts +374 -0
  191. package/src/tests/heartbeat-checklist-config.test.ts +71 -0
  192. package/src/tests/heartbeat-checklist.test.ts +4 -2
  193. package/src/tests/heartbeat-orphan-resume.test.ts +48 -0
  194. package/src/tests/human-free-flag.test.ts +279 -0
  195. package/src/tests/human-free-oracle.ts +57 -0
  196. package/src/tests/human-free-reclassify.test.ts +669 -0
  197. package/src/tests/migration-046-budgets.test.ts +3 -3
  198. package/src/tests/model-catalog-migration.test.ts +134 -0
  199. package/src/tests/model-catalog-table.test.ts +249 -0
  200. package/src/tests/model-catalog-write-access.test.ts +387 -0
  201. package/src/tests/model-tier-resolution.test.ts +519 -0
  202. package/src/tests/models-catalog.test.ts +1 -1
  203. package/src/tests/multi-runtime-enabled-stats.test.ts +65 -1
  204. package/src/tests/package-publish.test.ts +137 -36
  205. package/src/tests/pricing-routes.test.ts +2 -2
  206. package/src/tests/rbac-engine.test.ts +42 -2
  207. package/src/tests/reasoning-effort.test.ts +109 -0
  208. package/src/tests/refresh-modelsdev-carryforward.test.ts +5 -5
  209. package/src/tests/runtime-model-catalog.test.ts +86 -0
  210. package/src/tests/script-connections.test.ts +5 -0
  211. package/src/tests/seed-scripts.test.ts +89 -0
  212. package/src/tests/session-costs.test.ts +14 -11
  213. package/src/tests/slack-message-text.test.ts +101 -0
  214. package/src/tests/slack-thread-buffer-context.test.ts +93 -0
  215. package/src/tests/task-cascade-fail.test.ts +148 -2
  216. package/src/tests/tool-annotations.test.ts +1 -1
  217. package/src/tests/usage-cache.test.ts +166 -0
  218. package/src/tests/workflow-executors.test.ts +5 -2
  219. package/src/tests/workflow-system-one-decision-review.test.ts +1021 -0
  220. package/src/tests/workflow-system-one-decision-save-warnings.test.ts +365 -0
  221. package/src/tests/workflow-system-one-decision.test.ts +2063 -0
  222. package/src/tools/model-catalog/index.ts +137 -0
  223. package/src/tools/schedules/create-schedule.ts +16 -1
  224. package/src/tools/schedules/patch-schedule.ts +17 -0
  225. package/src/tools/schedules/update-schedule.ts +17 -0
  226. package/src/tools/send-task.ts +14 -0
  227. package/src/tools/task-action.ts +12 -0
  228. package/src/tools/tool-config.ts +3 -1
  229. package/src/tools/workflows/create-workflow.ts +9 -2
  230. package/src/tools/workflows/patch-workflow-node.ts +17 -7
  231. package/src/tools/workflows/patch-workflow.ts +9 -2
  232. package/src/tools/workflows/update-workflow.ts +9 -2
  233. package/src/types.ts +30 -1
  234. package/src/utils/context-window.ts +47 -53
  235. package/src/utils/harness-cli-version.ts +115 -0
  236. package/src/utils/harness-model-error.ts +33 -0
  237. package/src/utils/runtime-model-catalog.ts +137 -0
  238. package/src/workflows/approval-resolution.ts +39 -0
  239. package/src/workflows/definition.ts +7 -0
  240. package/src/workflows/engine.ts +69 -1
  241. package/src/workflows/executors/agent-task.ts +9 -0
  242. package/src/workflows/executors/base.ts +53 -0
  243. package/src/workflows/executors/human-in-the-loop.ts +8 -8
  244. package/src/workflows/executors/index.ts +1 -0
  245. package/src/workflows/executors/registry.ts +2 -0
  246. package/src/workflows/executors/system-one-decision.ts +1232 -0
  247. package/src/workflows/executors/system-one-providers.ts +301 -0
  248. package/src/workflows/executors/workflow-llm.ts +13 -1
  249. package/src/workflows/readiness.ts +86 -0
  250. package/src/workflows/recovery.ts +12 -12
  251. package/src/workflows/resume.ts +23 -9
  252. package/templates/schedules/daily-blocker-digest/content.md +4 -5
  253. package/templates/skills/agent-browser/SKILL.md +6 -5
  254. package/templates/skills/agent-browser/content.md +6 -5
  255. package/templates/skills/heartbeat-runbook/config.json +1 -1
  256. package/templates/skills/heartbeat-runbook/content.md +2 -2
  257. package/templates/skills/swarm-scripts/SKILL.md +1 -1
  258. package/templates/skills/swarm-scripts/content.md +1 -1
  259. package/templates/skills/workflow-iterate/content.md +81 -1
  260. package/templates/workflows/claude-code-changelog-watch/content.md +2 -0
  261. package/templates/workflows/pr-review-status-sweep/content.md +2 -0
  262. package/dist/claude-sdk-session-t442qz6f.js +0 -39108
  263. package/dist/cli-0xjkj1j7.js +0 -61
  264. package/dist/cli-65hjmev5.js +0 -1141
  265. package/dist/cli-aw1jwp1r.js +0 -14075
  266. package/dist/cli-h967nb6r.js +0 -6603
  267. package/dist/cli-vapyk8sw.js +0 -20
  268. package/dist/cli-ws6rqycm.js +0 -247
  269. package/dist/pricing-refresh-v1cbr9te.js +0 -27
  270. package/src/providers/modelsdev-reasoning.json +0 -6453
  271. package/dist/{codex-login-x3jk4etn.js → codex-login-he9vrn90.js} +3 -3
  272. package/dist/{index-f24115ge.js → index-2wsdsnmm.js} +3 -3
@@ -397,6 +397,7 @@ agent-fs is the shared drive between agents and people. Documents (reports, dige
397
397
  Pages: only for polished artifacts shared with a wider audience or explicitly requested; see \`pages\` skill.
398
398
  A tool a person will use, with data and actions: build an app. See the \`apps\` skill.
399
399
  Link env: \`APP_URL\` for pages, \`MCP_BASE_URL\` for the API, \`AGENT_FS_LIVE_URL\` for files. Report missing variables.
400
+ For a file anyone outside the swarm opens, use an \`agent-fs share-create\` link; \`AGENT_FS_LIVE_URL\` links are for signed-in teammates.
400
401
  `,
401
402
  variables: [],
402
403
  category: "system"
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_package,
3
3
  package_default
4
- } from "./cli-c07r9a2m.js";
4
+ } from "./cli-48527fpw.js";
5
5
 
6
6
  // src/commands/shared/client-config.ts
7
7
  init_package();
@@ -0,0 +1,102 @@
1
+ // node_modules/@earendil-works/pi-ai/dist/utils/oauth-page.js
2
+ var LOGO_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800" aria-hidden="true"><path fill="#fff" fill-rule="evenodd" d="M165.29 165.29 H517.36 V400 H400 V517.36 H282.65 V634.72 H165.29 Z M282.65 282.65 V400 H400 V282.65 Z"/><path fill="#fff" d="M517.36 400 H634.72 V634.72 H517.36 Z"/></svg>`;
3
+ function escapeHtml(value) {
4
+ return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll('"', "&quot;").replaceAll("'", "&#39;");
5
+ }
6
+ function renderPage(options) {
7
+ const title = escapeHtml(options.title);
8
+ const heading = escapeHtml(options.heading);
9
+ const message = escapeHtml(options.message);
10
+ const details = options.details ? escapeHtml(options.details) : undefined;
11
+ return `<!doctype html>
12
+ <html lang="en">
13
+ <head>
14
+ <meta charset="utf-8" />
15
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
16
+ <title>${title}</title>
17
+ <style>
18
+ :root {
19
+ --text: #fafafa;
20
+ --text-dim: #a1a1aa;
21
+ --page-bg: #09090b;
22
+ --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
23
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
24
+ }
25
+ * { box-sizing: border-box; }
26
+ html { color-scheme: dark; }
27
+ body {
28
+ margin: 0;
29
+ min-height: 100vh;
30
+ display: flex;
31
+ align-items: center;
32
+ justify-content: center;
33
+ padding: 24px;
34
+ background: var(--page-bg);
35
+ color: var(--text);
36
+ font-family: var(--font-sans);
37
+ text-align: center;
38
+ }
39
+ main {
40
+ width: 100%;
41
+ max-width: 560px;
42
+ display: flex;
43
+ flex-direction: column;
44
+ align-items: center;
45
+ justify-content: center;
46
+ }
47
+ .logo {
48
+ width: 72px;
49
+ height: 72px;
50
+ display: block;
51
+ margin-bottom: 24px;
52
+ }
53
+ h1 {
54
+ margin: 0 0 10px;
55
+ font-size: 28px;
56
+ line-height: 1.15;
57
+ font-weight: 650;
58
+ color: var(--text);
59
+ }
60
+ p {
61
+ margin: 0;
62
+ line-height: 1.7;
63
+ color: var(--text-dim);
64
+ font-size: 15px;
65
+ }
66
+ .details {
67
+ margin-top: 16px;
68
+ font-family: var(--font-mono);
69
+ font-size: 13px;
70
+ color: var(--text-dim);
71
+ white-space: pre-wrap;
72
+ word-break: break-word;
73
+ }
74
+ </style>
75
+ </head>
76
+ <body>
77
+ <main>
78
+ <div class="logo">${LOGO_SVG}</div>
79
+ <h1>${heading}</h1>
80
+ <p>${message}</p>
81
+ ${details ? `<div class="details">${details}</div>` : ""}
82
+ </main>
83
+ </body>
84
+ </html>`;
85
+ }
86
+ function oauthSuccessHtml(message) {
87
+ return renderPage({
88
+ title: "Authentication successful",
89
+ heading: "Authentication successful",
90
+ message
91
+ });
92
+ }
93
+ function oauthErrorHtml(message, details) {
94
+ return renderPage({
95
+ title: "Authentication failed",
96
+ heading: "Authentication failed",
97
+ message,
98
+ details
99
+ });
100
+ }
101
+
102
+ export { oauthSuccessHtml, oauthErrorHtml };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  require_react_jsx_dev_runtime_development
3
- } from "./cli-zt1227k1.js";
3
+ } from "./cli-fkqhbg8g.js";
4
4
  import {
5
5
  __commonJS,
6
6
  __toESM
@@ -7,15 +7,21 @@ import {
7
7
  import {
8
8
  Anthropic
9
9
  } from "./cli-j490egb5.js";
10
+ import {
11
+ checkToolLoop
12
+ } from "./cli-hp1n6zq3.js";
10
13
  import {
11
14
  CONTEXT_FORMULA,
12
15
  clampContextPercent,
13
16
  computeContextUsedUnified,
14
17
  getContextWindowSize
15
- } from "./cli-0xjkj1j7.js";
18
+ } from "./cli-wd9hz40d.js";
16
19
  import {
17
- checkToolLoop
18
- } from "./cli-hp1n6zq3.js";
20
+ runtimeCatalogModel
21
+ } from "./cli-m4excttz.js";
22
+ import {
23
+ init_src
24
+ } from "./cli-7zttzetj.js";
19
25
  import {
20
26
  init_secret_scrubber,
21
27
  scrubSecrets
@@ -25,97 +31,28 @@ import {
25
31
  init_secret_scrubber();
26
32
 
27
33
  // src/providers/claude-managed-models.ts
28
- var CLAUDE_MANAGED_MODEL_PRICING = {
29
- "claude-fable-5-1": {
30
- inputPerMillion: 10,
31
- outputPerMillion: 50,
32
- cacheReadPerMillion: 0.25,
33
- cacheWritePerMillion: 12.5
34
- },
35
- "claude-mythos-5-1": {
36
- inputPerMillion: 10,
37
- outputPerMillion: 50,
38
- cacheReadPerMillion: 0.25,
39
- cacheWritePerMillion: 12.5
40
- },
41
- "claude-opus-5-5": {
42
- inputPerMillion: 4,
43
- outputPerMillion: 20,
44
- cacheReadPerMillion: 0.2,
45
- cacheWritePerMillion: 5
46
- },
47
- "claude-opus-5": {
48
- inputPerMillion: 5,
49
- outputPerMillion: 25,
50
- cacheReadPerMillion: 0.5,
51
- cacheWritePerMillion: 6.25
52
- },
53
- "claude-fable-5": {
54
- inputPerMillion: 10,
55
- outputPerMillion: 50,
56
- cacheReadPerMillion: 1,
57
- cacheWritePerMillion: 12.5
58
- },
59
- "claude-mythos-5": {
60
- inputPerMillion: 10,
61
- outputPerMillion: 50,
62
- cacheReadPerMillion: 1,
63
- cacheWritePerMillion: 12.5
64
- },
65
- "claude-sonnet-5-5": {
66
- inputPerMillion: 2,
67
- outputPerMillion: 10,
68
- cacheReadPerMillion: 0.2,
69
- cacheWritePerMillion: 2.5
70
- },
71
- "claude-sonnet-5": {
72
- inputPerMillion: 2,
73
- outputPerMillion: 10,
74
- cacheReadPerMillion: 0.2,
75
- cacheWritePerMillion: 2.5
76
- },
77
- "claude-sonnet-4-6": {
78
- inputPerMillion: 3,
79
- outputPerMillion: 15,
80
- cacheReadPerMillion: 0.3,
81
- cacheWritePerMillion: 3.75
82
- },
83
- "claude-opus-4-8": {
84
- inputPerMillion: 5,
85
- outputPerMillion: 25,
86
- cacheReadPerMillion: 0.5,
87
- cacheWritePerMillion: 6.25
88
- },
89
- "claude-opus-4-7": {
90
- inputPerMillion: 15,
91
- outputPerMillion: 75,
92
- cacheReadPerMillion: 1.5,
93
- cacheWritePerMillion: 18.75
94
- },
95
- "claude-opus-4-6": {
96
- inputPerMillion: 5,
97
- outputPerMillion: 25,
98
- cacheReadPerMillion: 0.5,
99
- cacheWritePerMillion: 6.25
100
- },
101
- "claude-haiku-4-5": {
102
- inputPerMillion: 1,
103
- outputPerMillion: 5,
104
- cacheReadPerMillion: 0.1,
105
- cacheWritePerMillion: 1.25
106
- }
107
- };
34
+ init_src();
35
+ function getClaudeManagedModelPricing(model) {
36
+ const cost = runtimeCatalogModel("anthropic", model)?.cost ?? runtimeCatalogModel("anthropic", model.replace(/-\d{8}$/, ""))?.cost;
37
+ if (typeof cost?.input !== "number" || typeof cost.output !== "number")
38
+ return;
39
+ return {
40
+ inputPerMillion: cost.input,
41
+ outputPerMillion: cost.output,
42
+ cacheReadPerMillion: typeof cost.cache_read === "number" ? cost.cache_read : cost.input * 0.1,
43
+ cacheWritePerMillion: typeof cost.cache_write === "number" ? cost.cache_write : cost.input * 1.25
44
+ };
45
+ }
108
46
  var warnedUnknownModels = new Set;
109
- function computeClaudeManagedCostUsd(model, inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens, pricedAtMs = Date.now()) {
110
- const configuredPricing = CLAUDE_MANAGED_MODEL_PRICING[model];
111
- if (!configuredPricing) {
47
+ function computeClaudeManagedCostUsd(model, inputTokens, outputTokens, cacheReadTokens, cacheWriteTokens) {
48
+ const pricing = getClaudeManagedModelPricing(model);
49
+ if (!pricing) {
112
50
  if (!warnedUnknownModels.has(model)) {
113
51
  warnedUnknownModels.add(model);
114
- console.warn(`[claude-managed-models] Unknown model "${model}" — returning $0 cost. ` + `Add it to CLAUDE_MANAGED_MODEL_PRICING in src/providers/claude-managed-models.ts.`);
52
+ console.warn(`[claude-managed-models] Unpriced model "${model}" — returning $0 cost. ` + "Add it to the model catalog (refresh or overlay row).");
115
53
  }
116
54
  return 0;
117
55
  }
118
- const pricing = configuredPricing.scheduledChange && pricedAtMs >= Date.parse(configuredPricing.scheduledChange.effectiveAt) ? configuredPricing.scheduledChange.pricing : configuredPricing;
119
56
  const inputCost = inputTokens / 1e6 * pricing.inputPerMillion;
120
57
  const outputCost = outputTokens / 1e6 * pricing.outputPerMillion;
121
58
  const cacheReadCost = cacheReadTokens / 1e6 * pricing.cacheReadPerMillion;
@@ -4,11 +4,11 @@ import {
4
4
  getEmbeddingProvider,
5
5
  init_embedding,
6
6
  serializeEmbedding
7
- } from "./cli-65hjmev5.js";
7
+ } from "./cli-kc3dp84d.js";
8
8
  import {
9
9
  getDbClient,
10
10
  init_db
11
- } from "./cli-47m6dkd3.js";
11
+ } from "./cli-g9df2m37.js";
12
12
  import {
13
13
  init_secret_scrubber,
14
14
  scrubSecrets
@@ -0,0 +1,69 @@
1
+ import {
2
+ runtimeCatalogModel,
3
+ runtimeCatalogSection
4
+ } from "./cli-m4excttz.js";
5
+ import {
6
+ buildClaudeShortnameMap,
7
+ init_src
8
+ } from "./cli-7zttzetj.js";
9
+
10
+ // src/utils/context-window.ts
11
+ init_src();
12
+ var CONTEXT_FORMULA = "input-cache-output";
13
+ var DEFAULT_CONTEXT_WINDOW = 200000;
14
+ function stripAnthropicDateSuffix(model) {
15
+ return model.replace(/-(\d{8})$/, "");
16
+ }
17
+ var shortnameMap = null;
18
+ function resolveClaudeShortname(model) {
19
+ const section = runtimeCatalogSection("anthropic");
20
+ if (!shortnameMap || shortnameMap.section !== section) {
21
+ shortnameMap = { section, map: buildClaudeShortnameMap(section) };
22
+ }
23
+ return shortnameMap.map[model.trim().toLowerCase()];
24
+ }
25
+ function catalogContext(provider, model) {
26
+ const context = runtimeCatalogModel(provider, model)?.limit?.context;
27
+ return typeof context === "number" && context > 0 ? context : undefined;
28
+ }
29
+ function getContextWindowSize(model) {
30
+ if (!model)
31
+ return DEFAULT_CONTEXT_WINDOW;
32
+ const slash = model.indexOf("/");
33
+ if (slash > 0) {
34
+ const scoped = catalogContext(model.slice(0, slash), model.slice(slash + 1));
35
+ if (scoped)
36
+ return scoped;
37
+ }
38
+ for (const provider of ["anthropic", "openai"]) {
39
+ const exact = catalogContext(provider, model);
40
+ if (exact)
41
+ return exact;
42
+ }
43
+ const stripped = stripAnthropicDateSuffix(model);
44
+ if (stripped !== model) {
45
+ const dated = catalogContext("anthropic", stripped);
46
+ if (dated)
47
+ return dated;
48
+ }
49
+ const shortname = resolveClaudeShortname(model);
50
+ if (shortname) {
51
+ const resolved = catalogContext("anthropic", shortname);
52
+ if (resolved)
53
+ return resolved;
54
+ }
55
+ return DEFAULT_CONTEXT_WINDOW;
56
+ }
57
+ function computeContextUsedUnified(parts) {
58
+ return (parts.inputTokens ?? 0) + (parts.cacheReadTokens ?? 0) + (parts.cacheCreateTokens ?? 0) + (parts.outputTokens ?? 0);
59
+ }
60
+ function clampContextPercent(used, total) {
61
+ if (!total || total <= 0)
62
+ return null;
63
+ const raw = used / total * 100;
64
+ if (!Number.isFinite(raw))
65
+ return null;
66
+ return Math.min(100, Math.max(0, raw));
67
+ }
68
+
69
+ export { CONTEXT_FORMULA, getContextWindowSize, computeContextUsedUnified, clampContextPercent };
@@ -57,19 +57,19 @@ import {
57
57
  setSlackMessageTracking,
58
58
  slackContextKey,
59
59
  updateSlackMessageRecord
60
- } from "./cli-47m6dkd3.js";
60
+ } from "./cli-g9df2m37.js";
61
61
  import {
62
62
  init_types,
63
63
  isTerminalTaskStatus
64
- } from "./cli-4198qc9v.js";
65
- import {
66
- getAppUrl,
67
- init_constants
68
- } from "./cli-dv6cdjs2.js";
64
+ } from "./cli-e4xnc0qp.js";
69
65
  import {
70
66
  getSlackConfiguration,
71
67
  init_config
72
68
  } from "./cli-n7h1kqpf.js";
69
+ import {
70
+ getAppUrl,
71
+ init_constants
72
+ } from "./cli-dv6cdjs2.js";
73
73
  import {
74
74
  init_env_flag,
75
75
  isEnvFlagEnabled
@@ -52904,7 +52904,7 @@ async function initOtel(serviceRole = process.env.AGENT_ROLE || "api") {
52904
52904
  return;
52905
52905
  initialized = true;
52906
52906
  try {
52907
- const impl = await import("./otel-impl-9mz73q65.js");
52907
+ const impl = await import("./otel-impl-g8rs4vwr.js");
52908
52908
  await impl.boot(serviceRole, {
52909
52909
  exportConsoleLogs: serviceRole === "api" && isApiLogExportEnabled()
52910
52910
  });
@@ -54341,15 +54341,15 @@ async function initSlackApp() {
54341
54341
  ...clientOptions ? { clientOptions } : {}
54342
54342
  });
54343
54343
  initialized2 = true;
54344
- const { registerMessageHandler } = await import("./handlers-aqcedbyb.js");
54345
- const { registerCommandHandler } = await import("./commands-e3bn0p75.js");
54346
- const { registerActionHandlers } = await import("./actions-p9hz5yat.js");
54347
- const { registerWorkObjectHandlers } = await import("./work-objects-b76x7deb.js");
54344
+ const { registerMessageHandler } = await import("./handlers-5w4jwycr.js");
54345
+ const { registerCommandHandler } = await import("./commands-vfsysz4s.js");
54346
+ const { registerActionHandlers } = await import("./actions-dtsh1mfb.js");
54347
+ const { registerWorkObjectHandlers } = await import("./work-objects-3pakpkw0.js");
54348
54348
  registerMessageHandler(app);
54349
54349
  registerCommandHandler(app);
54350
54350
  registerActionHandlers(app);
54351
54351
  registerWorkObjectHandlers(app);
54352
- const { createAssistant } = await import("./assistant-wydfqkb3.js");
54352
+ const { createAssistant } = await import("./assistant-31hwy5xj.js");
54353
54353
  app.assistant(createAssistant());
54354
54354
  return app;
54355
54355
  }
@@ -54358,7 +54358,7 @@ async function startSlackApp() {
54358
54358
  await initSlackApp();
54359
54359
  }
54360
54360
  if (app) {
54361
- const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-gryrh9h8.js");
54361
+ const { isSlackRenderV2Enabled: isSlackRenderV2Enabled2 } = await import("./render-v2-3wjsp9aw.js");
54362
54362
  if (isSlackRenderV2Enabled2())
54363
54363
  await ensureSlackRenderV2Activation();
54364
54364
  await app.start();