@desplega.ai/agent-swarm 1.166.0 → 1.167.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 (194) hide show
  1. package/dist/acp-adapter-zpvy6321.js +34 -0
  2. package/dist/{actions-qz3m692w.js → actions-fq2zrwtf.js} +25 -25
  3. package/dist/{amp-adapter-j1xbmsqz.js → amp-adapter-5gbk7501.js} +4 -4
  4. package/dist/{anthropic-messages-hst62ws9.js → anthropic-messages-13yn502s.js} +4 -4
  5. package/dist/{app-43vrdmv8.js → app-nctetn1e.js} +10 -9
  6. package/dist/{assistant-ertffmka.js → assistant-0aq8gjvj.js} +26 -26
  7. package/dist/{azure-openai-responses-mh8tvf78.js → azure-openai-responses-9st34pfz.js} +5 -5
  8. package/dist/{boot-reembed-998jtpdg.js → boot-reembed-1ze5853n.js} +9 -8
  9. package/dist/{boot-reembed-s7k7c6v2.js → boot-reembed-fmp5ww69.js} +9 -8
  10. package/dist/{boot-scrub-sweep-nepsk4t1.js → boot-scrub-sweep-cbp8xd4e.js} +10 -9
  11. package/dist/{boot-seeds-vvzs1zhk.js → boot-seeds-22tx8a53.js} +12 -11
  12. package/dist/{claude-adapter-2zvmekrp.js → claude-adapter-0jhgeh1d.js} +24 -22
  13. package/dist/{claude-managed-adapter-s49wbk8t.js → claude-managed-adapter-tzwxy803.js} +4 -4
  14. package/dist/{claude-managed-setup-cvhqq8qn.js → claude-managed-setup-nrhfx5b0.js} +3 -3
  15. package/dist/{claude-sdk-session-kkbxtw5q.js → claude-sdk-session-wh77rh83.js} +22 -22
  16. package/dist/{cli-zsh093hk.js → cli-014vns2y.js} +63 -1
  17. package/dist/{cli-qvfk83fy.js → cli-13xwcqvj.js} +2 -2
  18. package/dist/{cli-dw2q9f7g.js → cli-1yrcfa5s.js} +4 -4
  19. package/dist/{cli-jvj6a0cv.js → cli-577bxkf6.js} +27 -17
  20. package/dist/{cli-zy7vwsne.js → cli-5qkcdv8c.js} +16 -9
  21. package/dist/{cli-cwxhbf43.js → cli-5t5my0h8.js} +85 -2
  22. package/dist/{cli-y59h2pk9.js → cli-69egj654.js} +1 -1
  23. package/dist/{cli-68r1j4sg.js → cli-6bpvv8h4.js} +3 -3
  24. package/dist/{cli-cpfmqz3n.js → cli-6qxmjpem.js} +5 -5
  25. package/dist/{cli-aqcey741.js → cli-6vfz44sr.js} +1 -1
  26. package/dist/{cli-32bca7nr.js → cli-7avy4v8w.js} +1 -1
  27. package/dist/{cli-f2n17zhp.js → cli-7mhy3ths.js} +21 -18
  28. package/dist/{cli-q38n4bq0.js → cli-95zs84qw.js} +3 -3
  29. package/dist/cli-a35hzdve.js +33 -0
  30. package/dist/{cli-x3x0qwky.js → cli-bxqez1p0.js} +51 -23
  31. package/dist/{cli-gt8azyet.js → cli-c2tpw9ck.js} +1 -1
  32. package/dist/{cli-ecknp7p1.js → cli-c8r99akr.js} +10 -10
  33. package/dist/{cli-3qn4r334.js → cli-cexctgn5.js} +20 -14
  34. package/dist/{cli-vzc73wet.js → cli-cf2vgn9d.js} +87 -69
  35. package/dist/{cli-ng97fjq7.js → cli-cmxkbzzs.js} +33 -7
  36. package/dist/{cli-nexwh8zg.js → cli-g7k7zbcz.js} +12 -5
  37. package/dist/{cli-nvvfd8bq.js → cli-jbzbr36n.js} +4091 -3793
  38. package/dist/{cli-3ddybbbx.js → cli-jvmtxqtc.js} +26 -14
  39. package/dist/{cli-pkke6geq.js → cli-km4x66j0.js} +83 -65
  40. package/dist/{cli-j2jbr8af.js → cli-kw0jcfje.js} +1 -1
  41. package/dist/{cli-8t229cmr.js → cli-m7vmeepg.js} +30 -17
  42. package/dist/{cli-yshaazs1.js → cli-mkdsy1nq.js} +62 -20
  43. package/dist/{cli-b0f70z24.js → cli-mn8qkd8v.js} +1 -1
  44. package/dist/{cli-0qjcsxgz.js → cli-mxry91sa.js} +30 -9
  45. package/dist/cli-nkqjj42q.js +104 -0
  46. package/dist/{cli-rggdq8wq.js → cli-p8rt8spp.js} +3 -3
  47. package/dist/{cli-v2a8x45d.js → cli-pkj1w46r.js} +10 -5
  48. package/dist/cli-q1vnz8wv.js +96 -0
  49. package/dist/{cli-fj86xr3c.js → cli-qd97v6z2.js} +2 -2
  50. package/dist/{cli-66zh26sp.js → cli-qzmzwegq.js} +57 -17
  51. package/dist/{cli-p4ztb80h.js → cli-r7eeddkq.js} +13 -8
  52. package/dist/{cli-8ssjez7e.js → cli-rhy7z1rp.js} +22 -11
  53. package/dist/{cli-4mevd1hf.js → cli-s9y81s7j.js} +5 -5
  54. package/dist/{cli-h3x613ze.js → cli-tc5zec7v.js} +6 -6
  55. package/dist/{cli-ttbsse3f.js → cli-tmhsxhb8.js} +1 -1
  56. package/dist/{cli-0nhdwxd5.js → cli-tx2zvn23.js} +3 -3
  57. package/dist/{cli-mwegs4af.js → cli-ty4bzkqr.js} +3 -3
  58. package/dist/{cli-ysnyhws9.js → cli-v1pwxreq.js} +54 -51
  59. package/dist/{cli-feh3dkah.js → cli-v1w7pbd8.js} +2 -1
  60. package/dist/{cli-10zmp1p7.js → cli-vr5avem2.js} +27 -32
  61. package/dist/{cli-bzr0ftht.js → cli-wnb9b2g3.js} +19 -0
  62. package/dist/{cli-df56tqdw.js → cli-wydz3feg.js} +108 -57
  63. package/dist/{cli-krqm5f11.js → cli-xezn9nkh.js} +16 -13
  64. package/dist/{cli-8kt0bmgx.js → cli-xf713zz0.js} +2 -2
  65. package/dist/{cli-x7kpr72a.js → cli-y0kjpfm9.js} +2 -2
  66. package/dist/{cli-6zcfw0x7.js → cli-y195hv1a.js} +1 -1
  67. package/dist/{cli-fn697bnt.js → cli-ykt8f7va.js} +21 -8
  68. package/dist/{cli-4r1sjfc4.js → cli-ymmc1zxg.js} +8 -8
  69. package/dist/{cli-8kgvmkak.js → cli-ypgba1a8.js} +1 -1
  70. package/dist/{cli-rsy933yz.js → cli-z1dqhc9y.js} +30 -19
  71. package/dist/{cli-qbksc292.js → cli-zy39d433.js} +2 -0
  72. package/dist/cli.js +26 -26
  73. package/dist/{cloudflare-workers-ai-system-one-tt484t61.js → cloudflare-workers-ai-system-one-sta45jf9.js} +7 -5
  74. package/dist/{codex-adapter-dw1wxqt8.js → codex-adapter-cgesnjkr.js} +18 -18
  75. package/dist/{codex-login-terbdsqq.js → codex-login-g1cyt5zm.js} +1 -1
  76. package/dist/{codex-session-runner-3cgb8y1g.js → codex-session-runner-8kd7ddhr.js} +18 -18
  77. package/dist/{commands-mhxam6z2.js → commands-h6zaaxym.js} +9 -8
  78. package/dist/{cursor-adapter-2qda3st7.js → cursor-adapter-v8mm6bp5.js} +5 -5
  79. package/dist/{db-sjks418k.js → db-qg3myn53.js} +9 -8
  80. package/dist/{dispatcher-1es759rn.js → dispatcher-7vnwj9qw.js} +24 -24
  81. package/dist/{dsh-adapter-bek4cyw9.js → dsh-adapter-tz6hfp5r.js} +5 -5
  82. package/dist/{easter-egg-3d-mtpnw06s.js → easter-egg-3d-66zxervv.js} +2 -2
  83. package/dist/{execute-s4ccjq3n.js → execute-h4jgevyw.js} +61 -11
  84. package/dist/{google-generative-ai-d6nphg3q.js → google-generative-ai-b8zxrpax.js} +5 -5
  85. package/dist/{google-vertex-cpshkref.js → google-vertex-nrdd697t.js} +5 -5
  86. package/dist/{grok-adapter-ar9cw9jg.js → grok-adapter-jdt2dz2s.js} +18 -8
  87. package/dist/{handlers-1gkbhktr.js → handlers-2qtkpncr.js} +27 -27
  88. package/dist/{hook-ds2zxq9v.js → hook-51yfcgsv.js} +42 -31
  89. package/dist/{hook-vxa3tcsy.js → hook-qnbdgwvd.js} +14 -14
  90. package/dist/{http-3h21z9md.js → http-jsmtag08.js} +320 -98
  91. package/dist/{index-9b65j1m5.js → index-2t9kesn1.js} +9 -8
  92. package/dist/{index-dkfxpkmm.js → index-bt8wkv1w.js} +25 -25
  93. package/dist/{index-f8xnqrye.js → index-cx1sb9bq.js} +33 -24
  94. package/dist/{index-bn6cy8ps.js → index-ekywyv2v.js} +24 -24
  95. package/dist/{index-n99fycq7.js → index-t4g06w93.js} +24 -24
  96. package/dist/{keepalive-3xspa9jw.js → keepalive-4aezx4bj.js} +11 -10
  97. package/dist/{lead-6qphc124.js → lead-r44bkpm5.js} +47 -47
  98. package/dist/{llama-cpp-classify-tgj35k8d.js → llama-cpp-classify-6erb7wwv.js} +3 -1
  99. package/dist/{maintenance-0teem1bb.js → maintenance-grz5jrzh.js} +9 -8
  100. package/dist/{mistral-conversations-8445ddjn.js → mistral-conversations-059y51zt.js} +4 -4
  101. package/dist/{node-9sg7ajby.js → node-qm9eb6z0.js} +1 -1
  102. package/dist/{oauth-refresh-sweep-sh9q25xp.js → oauth-refresh-sweep-wm4ctjfj.js} +10 -9
  103. package/dist/{onboard-54qmnqxe.js → onboard-v60zgqf0.js} +2 -2
  104. package/dist/{openai-codex-responses-9ynm88zy.js → openai-codex-responses-jzxkta9b.js} +8 -7
  105. package/dist/{openai-completions-nhqwjmaw.js → openai-completions-663yncfq.js} +4 -4
  106. package/dist/openai-decisions-vj9nkpf8.js +162 -0
  107. package/dist/{openai-responses-xx1c4kgm.js → openai-responses-m3g43rrt.js} +5 -5
  108. package/dist/{opencode-adapter-wjfa2wvd.js → opencode-adapter-yjyqynzf.js} +7 -7
  109. package/dist/{openrouter-images-8yx3487g.js → openrouter-images-kr60n6b9.js} +1 -1
  110. package/dist/{otel-impl-ycqzp2a1.js → otel-impl-ghh4dyf8.js} +1 -1
  111. package/dist/{pi-messages-vxdt8v7j.js → pi-messages-xszk613n.js} +1 -1
  112. package/dist/{pi-mono-adapter-e77e9zst.js → pi-mono-adapter-0eg8kw2c.js} +68 -51
  113. package/dist/{pricing-refresh-atnkngqs.js → pricing-refresh-mjrqvnvw.js} +11 -10
  114. package/dist/{rbac-roles-j78wdksm.js → rbac-roles-axv4d74x.js} +10 -9
  115. package/dist/{rbac-roles-9pjphh9q.js → rbac-roles-fd5tskj9.js} +9 -8
  116. package/dist/{render-v2-pxjs49fx.js → render-v2-k50j33qd.js} +10 -9
  117. package/dist/{runtime-v2t1r79e.js → runtime-h9ha1mq6.js} +4 -4
  118. package/dist/{setup-ymej0xtx.js → setup-4syh0pd2.js} +2 -2
  119. package/dist/{typesafe-system-one-datfr82p.js → typesafe-system-one-e988vty7.js} +7 -5
  120. package/dist/{virtual-modules-wm8mxdxx.js → virtual-modules-ftr9kwe8.js} +11 -11
  121. package/dist/{work-objects-3nh4ymzb.js → work-objects-jcdbg8rr.js} +27 -27
  122. package/dist/{worker-qa9fkz5s.js → worker-x8j8c9sx.js} +47 -47
  123. package/openapi.json +1 -1
  124. package/package.json +8 -8
  125. package/src/be/memory/providers/openai-embedding.ts +7 -2
  126. package/src/be/memory/raters/llm-summarizer.ts +7 -2
  127. package/src/be/modelsdev-cache.json +61 -0
  128. package/src/be/seed-pricing.ts +84 -53
  129. package/src/be/swarm-config-guard.ts +13 -0
  130. package/src/commands/provider-credentials.ts +28 -5
  131. package/src/commands/runner.ts +7 -12
  132. package/src/heartbeat/heartbeat.ts +91 -19
  133. package/src/hooks/hook.ts +72 -27
  134. package/src/http/mcp.ts +5 -0
  135. package/src/http/onboarding.ts +2 -0
  136. package/src/providers/acp-targets.ts +9 -4
  137. package/src/providers/amp-adapter.ts +1 -1
  138. package/src/providers/claude-adapter.ts +26 -0
  139. package/src/providers/codex-adapter.ts +30 -3
  140. package/src/providers/codex-oauth/auth-json.ts +21 -4
  141. package/src/providers/codex-oauth/types.ts +2 -0
  142. package/src/providers/dsh-adapter.ts +10 -1
  143. package/src/providers/grok-adapter.ts +18 -2
  144. package/src/providers/opencode-adapter.ts +21 -5
  145. package/src/providers/pi-mono-extension.ts +56 -25
  146. package/src/providers/pricing-sources.md +2 -0
  147. package/src/server.ts +63 -3
  148. package/src/tests/acp-adapter.test.ts +152 -12
  149. package/src/tests/ci-unit-test-report.test.ts +73 -0
  150. package/src/tests/claude-default-route.test.ts +75 -0
  151. package/src/tests/claude-hook-output.test.ts +233 -0
  152. package/src/tests/codex-adapter-pool-auth-revalidate.test.ts +4 -2
  153. package/src/tests/codex-adapter.test.ts +166 -26
  154. package/src/tests/codex-oauth-auth-timestamps.test.ts +76 -0
  155. package/src/tests/codex-oauth.test.ts +4 -1
  156. package/src/tests/context-window.test.ts +2 -2
  157. package/src/tests/credential-check.test.ts +51 -1
  158. package/src/tests/dsh-adapter.test.ts +23 -1
  159. package/src/tests/enabled-tools.test.ts +269 -0
  160. package/src/tests/entrypoint-codex-oauth-seed.test.ts +12 -0
  161. package/src/tests/grok-adapter.test.ts +13 -0
  162. package/src/tests/haiku-5-5-pricing.test.ts +38 -0
  163. package/src/tests/heartbeat-checklist.test.ts +158 -1
  164. package/src/tests/onboarding.test.ts +44 -0
  165. package/src/tests/opencode-adapter.test.ts +66 -3
  166. package/src/tests/opencode-plugin.test.ts +37 -0
  167. package/src/tests/openrouter-attribution-call-sites.test.ts +204 -0
  168. package/src/tests/openrouter-base-url.test.ts +30 -39
  169. package/src/tests/pi-mono-extension.test.ts +161 -2
  170. package/src/tests/pricing-refresh.test.ts +70 -1
  171. package/src/tests/reasoning-effort.test.ts +3 -1
  172. package/src/tests/telemetry-trigger.test.ts +12 -1
  173. package/src/tests/workflow-llm.test.ts +14 -0
  174. package/src/tests/workflow-system-one-decision-providers.test.ts +33 -0
  175. package/src/tools/request-human-input.ts +7 -2
  176. package/src/utils/enabled-tools.ts +27 -0
  177. package/src/utils/internal-ai/complete-structured.ts +11 -3
  178. package/src/utils/openrouter-base-url.ts +23 -0
  179. package/src/workflows/executors/raw-llm.ts +1 -0
  180. package/src/workflows/executors/system-one-decision.ts +2 -0
  181. package/src/workflows/executors/validate.ts +1 -0
  182. package/src/workflows/executors/workflow-llm.ts +9 -2
  183. package/templates/skills/agent-browser/SKILL.md +2 -0
  184. package/templates/skills/agent-browser/content.md +2 -0
  185. package/templates/skills/code-quality/content.md +1 -0
  186. package/templates/skills/heartbeat-runbook/content.md +1 -1
  187. package/templates/skills/work-on-task/SKILL.md +4 -0
  188. package/templates/skills/work-on-task/content.md +4 -0
  189. package/templates/skills/workflow-iterate/content.md +9 -0
  190. package/dist/acp-adapter-yzfxn8vj.js +0 -23
  191. package/dist/cli-3dpj7atn.js +0 -11
  192. package/dist/cli-gvcgmx69.js +0 -183
  193. package/dist/{cli-jhm6hzjn.js → cli-mxvnnv5q.js} +7 -7
  194. package/dist/{codex-hook-d2rkvf39.js → codex-hook-15dgc4cb.js} +1 -1
@@ -3,52 +3,56 @@ import {
3
3
  } from "./cli-9q3wt23f.js";
4
4
  import {
5
5
  checkCursorCredentials
6
- } from "./cli-68r1j4sg.js";
6
+ } from "./cli-6bpvv8h4.js";
7
7
  import {
8
8
  checkGrokCredentials
9
- } from "./cli-fn697bnt.js";
9
+ } from "./cli-ykt8f7va.js";
10
+ import {
11
+ createSkillInvokeTracker,
12
+ isSkillLoaderCall,
13
+ skillFromToolArgs
14
+ } from "./cli-9k7mqz00.js";
10
15
  import {
11
16
  checkCodexCredentials,
12
17
  codexUserHome
13
- } from "./cli-8t229cmr.js";
18
+ } from "./cli-m7vmeepg.js";
14
19
  import {
15
20
  checkClaudeManagedCredentials
16
- } from "./cli-h3x613ze.js";
21
+ } from "./cli-tc5zec7v.js";
17
22
  import {
18
23
  checkDevinCredentials
19
24
  } from "./cli-hf5s9pgf.js";
20
25
  import {
21
26
  checkOpencodeCredentials
22
- } from "./cli-3ddybbbx.js";
27
+ } from "./cli-jvmtxqtc.js";
23
28
  import {
24
29
  checkDshCredentials
25
- } from "./cli-v2a8x45d.js";
30
+ } from "./cli-pkj1w46r.js";
26
31
  import {
27
32
  checkAmpCredentials,
28
33
  liveTestAmpCredentials
29
- } from "./cli-mwegs4af.js";
30
- import {
31
- createSkillInvokeTracker,
32
- isSkillLoaderCall,
33
- skillFromToolArgs
34
- } from "./cli-9k7mqz00.js";
35
- import {
36
- checkClaudeCredentials
37
- } from "./cli-0qjcsxgz.js";
38
- import {
39
- getContextWindowSize
40
- } from "./cli-32bca7nr.js";
34
+ } from "./cli-ty4bzkqr.js";
41
35
  import {
42
36
  isUnknownModelError,
43
37
  renderMemoriesPrompt,
44
38
  writeSkillsToFilesystem
45
39
  } from "./cli-efnd2kce.js";
40
+ import {
41
+ ACP_TARGET_IDS,
42
+ isAcpTarget
43
+ } from "./cli-zp67qg5x.js";
46
44
  import {
47
45
  CODEX_OAUTH_POOL_SLOTS_ENV,
48
46
  countCodexOAuthPoolSlots,
49
47
  hasCodexOAuthPoolSlots,
50
48
  isCodexOAuthConfigKey
51
49
  } from "./cli-bqjfjex4.js";
50
+ import {
51
+ checkClaudeCredentials
52
+ } from "./cli-mxry91sa.js";
53
+ import {
54
+ getContextWindowSize
55
+ } from "./cli-7avy4v8w.js";
52
56
  import {
53
57
  CODEX_CREDITS_EXHAUSTED_COOLDOWN_MS,
54
58
  MAX_RATE_LIMIT_RESET_MS,
@@ -63,21 +67,18 @@ import {
63
67
  parseAzureDevOpsRepoUrl,
64
68
  resolveScriptsOnlyMode,
65
69
  validateJsonSchema
66
- } from "./cli-df56tqdw.js";
70
+ } from "./cli-wydz3feg.js";
67
71
  import {
68
72
  getApiKey
69
73
  } from "./cli-f14fvzag.js";
70
- import {
71
- terminateRegisteredProcessGroups
72
- } from "./cli-zt3w1cn1.js";
73
74
  import {
74
75
  authJsonToCredentialSelection,
75
76
  credentialsToAuthJson,
76
77
  loadAllCodexOAuthSlots
77
- } from "./cli-feh3dkah.js";
78
+ } from "./cli-v1w7pbd8.js";
78
79
  import {
79
- getOpenRouterBaseUrl
80
- } from "./cli-3dpj7atn.js";
80
+ terminateRegisteredProcessGroups
81
+ } from "./cli-zt3w1cn1.js";
81
82
  import {
82
83
  ensure,
83
84
  initOtel,
@@ -87,7 +88,7 @@ import {
87
88
  startSpan,
88
89
  withSpan,
89
90
  withSpanContext
90
- } from "./cli-ecknp7p1.js";
91
+ } from "./cli-c8r99akr.js";
91
92
  import {
92
93
  initTelemetry,
93
94
  init_api_drain,
@@ -98,7 +99,7 @@ import {
98
99
  isCodexAuthFailureReason,
99
100
  mapTriggerSurface,
100
101
  telemetry
101
- } from "./cli-yshaazs1.js";
102
+ } from "./cli-mkdsy1nq.js";
102
103
  import {
103
104
  ProviderNameSchema,
104
105
  init_types,
@@ -127,11 +128,21 @@ import {
127
128
  taskAttachmentFetchCommand,
128
129
  writeIdentityBaselines,
129
130
  writeProfileFileFromDb
130
- } from "./cli-jhm6hzjn.js";
131
+ } from "./cli-mxvnnv5q.js";
131
132
  import {
132
133
  init_steering_enabled,
133
134
  isSteeringEnabled
134
135
  } from "./cli-7mm2r1kp.js";
136
+ import {
137
+ init_templates
138
+ } from "./cli-agamgm0p.js";
139
+ import {
140
+ configureHttpResolver,
141
+ init_resolver,
142
+ init_template,
143
+ interpolate,
144
+ resolveTemplateAsync
145
+ } from "./cli-5c2j5yvx.js";
135
146
  import {
136
147
  CLAUDE_CREDENTIALS_HINT,
137
148
  ModelWindowExhaustedError,
@@ -145,32 +156,27 @@ import {
145
156
  parseModelLimitMessage,
146
157
  windowForModelFamily
147
158
  } from "./cli-ywybs5as.js";
148
- import {
149
- getMcpBaseUrl,
150
- init_constants
151
- } from "./cli-gd4favx9.js";
152
- import {
153
- init_templates
154
- } from "./cli-agamgm0p.js";
155
- import {
156
- configureHttpResolver,
157
- init_resolver,
158
- init_template,
159
- interpolate,
160
- resolveTemplateAsync
161
- } from "./cli-5c2j5yvx.js";
162
159
  import {
163
160
  deriveDefaultRoute,
164
161
  init_src,
165
162
  validateRoute
166
163
  } from "./cli-f9w1semm.js";
164
+ import {
165
+ getOpenRouterAttributionHeaders,
166
+ getOpenRouterBaseUrl,
167
+ init_openrouter_base_url
168
+ } from "./cli-a35hzdve.js";
169
+ import {
170
+ getMcpBaseUrl,
171
+ init_constants
172
+ } from "./cli-gd4favx9.js";
167
173
  import {
168
174
  harnessModelMismatch,
169
175
  init_runtime_model_catalog,
170
176
  init_src as init_src2,
171
177
  refreshRuntimeModelCatalog,
172
178
  runtimeHarnessSections
173
- } from "./cli-zsh093hk.js";
179
+ } from "./cli-014vns2y.js";
174
180
  import {
175
181
  init_secret_scrubber,
176
182
  registerSensitiveKeyName,
@@ -212,19 +218,19 @@ async function materializeCodexAuthJson(_slot, creds, deps = {}) {
212
218
  async function createProviderAdapter(provider) {
213
219
  switch (provider) {
214
220
  case "claude": {
215
- const { ClaudeAdapter } = await import("./claude-adapter-2zvmekrp.js");
221
+ const { ClaudeAdapter } = await import("./claude-adapter-0jhgeh1d.js");
216
222
  return new ClaudeAdapter;
217
223
  }
218
224
  case "pi": {
219
- const { PiMonoAdapter } = await import("./pi-mono-adapter-e77e9zst.js");
225
+ const { PiMonoAdapter } = await import("./pi-mono-adapter-0eg8kw2c.js");
220
226
  return new PiMonoAdapter;
221
227
  }
222
228
  case "codex": {
223
- const { CodexAdapter } = await import("./codex-adapter-dw1wxqt8.js");
229
+ const { CodexAdapter } = await import("./codex-adapter-cgesnjkr.js");
224
230
  return new CodexAdapter;
225
231
  }
226
232
  case "claude-managed": {
227
- const { ClaudeManagedAdapter } = await import("./claude-managed-adapter-s49wbk8t.js");
233
+ const { ClaudeManagedAdapter } = await import("./claude-managed-adapter-tzwxy803.js");
228
234
  return new ClaudeManagedAdapter;
229
235
  }
230
236
  case "devin": {
@@ -232,27 +238,27 @@ async function createProviderAdapter(provider) {
232
238
  return new DevinAdapter;
233
239
  }
234
240
  case "opencode": {
235
- const { OpencodeAdapter } = await import("./opencode-adapter-wjfa2wvd.js");
241
+ const { OpencodeAdapter } = await import("./opencode-adapter-yjyqynzf.js");
236
242
  return new OpencodeAdapter;
237
243
  }
238
244
  case "dsh": {
239
- const { DshAdapter } = await import("./dsh-adapter-bek4cyw9.js");
245
+ const { DshAdapter } = await import("./dsh-adapter-tz6hfp5r.js");
240
246
  return new DshAdapter;
241
247
  }
242
248
  case "amp": {
243
- const { AmpAdapter } = await import("./amp-adapter-j1xbmsqz.js");
249
+ const { AmpAdapter } = await import("./amp-adapter-5gbk7501.js");
244
250
  return new AmpAdapter;
245
251
  }
246
252
  case "cursor": {
247
- const { CursorAdapter } = await import("./cursor-adapter-2qda3st7.js");
253
+ const { CursorAdapter } = await import("./cursor-adapter-v8mm6bp5.js");
248
254
  return new CursorAdapter;
249
255
  }
250
256
  case "grok": {
251
- const { GrokAdapter } = await import("./grok-adapter-ar9cw9jg.js");
257
+ const { GrokAdapter } = await import("./grok-adapter-jdt2dz2s.js");
252
258
  return new GrokAdapter;
253
259
  }
254
260
  case "acp": {
255
- const { ACPAdapter } = await import("./acp-adapter-yzfxn8vj.js");
261
+ const { ACPAdapter } = await import("./acp-adapter-zpvy6321.js");
256
262
  return new ACPAdapter;
257
263
  }
258
264
  default:
@@ -933,6 +939,7 @@ async function reportCredentialOutcomeThenFinish(input, finish) {
933
939
  // src/commands/provider-credentials.ts
934
940
  init_src();
935
941
  init_credentials();
942
+ init_openrouter_base_url();
936
943
  init_secret_scrubber();
937
944
  function isBedrockMode(env) {
938
945
  const mode = env.BEDROCK_AUTH_MODE?.toLowerCase();
@@ -952,10 +959,28 @@ var CREDENTIAL_PROVIDER_CHECKERS = {
952
959
  devin: (env) => checkDevinCredentials(env),
953
960
  opencode: (env, opts) => checkOpencodeCredentials(env, opts),
954
961
  pi: async (env, opts) => {
955
- const { checkPiMonoCredentials } = await import("./pi-mono-adapter-e77e9zst.js");
962
+ const { checkPiMonoCredentials } = await import("./pi-mono-adapter-0eg8kw2c.js");
956
963
  return checkPiMonoCredentials(env, opts);
957
964
  },
958
- acp: () => ({ ready: true, missing: [], satisfiedBy: "sdk-delegated" })
965
+ acp: (env) => {
966
+ const target = env.ACP_TARGET ?? "custom";
967
+ if (!isAcpTarget(target)) {
968
+ return {
969
+ ready: false,
970
+ missing: ["ACP_TARGET"],
971
+ hint: `Set ACP_TARGET to one of: ${ACP_TARGET_IDS.join(", ")}.`
972
+ };
973
+ }
974
+ const command = env.ACP_TARGET_COMMAND ?? env.ACP_COMMAND;
975
+ if (target === "custom" && !command?.trim()) {
976
+ return {
977
+ ready: false,
978
+ missing: ["ACP_TARGET_COMMAND"],
979
+ hint: "Set ACP_TARGET_COMMAND (or ACP_COMMAND) to an ACP-compatible executable, or select a preset with ACP_TARGET."
980
+ };
981
+ }
982
+ return { ready: true, missing: [], satisfiedBy: "sdk-delegated" };
983
+ }
959
984
  };
960
985
  async function checkProviderCredentials(provider, env, opts) {
961
986
  const checker = CREDENTIAL_PROVIDER_CHECKERS[provider];
@@ -1036,9 +1061,10 @@ async function checkXaiApiKey(apiKey) {
1036
1061
  };
1037
1062
  }
1038
1063
  async function checkOpenRouter(apiKey) {
1039
- const r = await timedFetch(`${getOpenRouterBaseUrl()}/models`, {
1064
+ const url = `${getOpenRouterBaseUrl()}/models`;
1065
+ const r = await timedFetch(url, {
1040
1066
  method: "GET",
1041
- headers: { Authorization: `Bearer ${apiKey}` }
1067
+ headers: { ...getOpenRouterAttributionHeaders(url), Authorization: `Bearer ${apiKey}` }
1042
1068
  });
1043
1069
  if (r.ok)
1044
1070
  return { ok: true, latency_ms: r.latency_ms };
@@ -1183,7 +1209,7 @@ async function validateProviderCredentials(provider, env = process.env, presence
1183
1209
  latency_ms: Date.now() - startedAt
1184
1210
  };
1185
1211
  }
1186
- const { liveTestCursorKey } = await import("./cursor-adapter-2qda3st7.js");
1212
+ const { liveTestCursorKey } = await import("./cursor-adapter-v8mm6bp5.js");
1187
1213
  const result = await liveTestCursorKey(apiKey);
1188
1214
  return result.ok ? { ok: true, latency_ms: Date.now() - startedAt } : { ok: false, error: result.error, latency_ms: Date.now() - startedAt };
1189
1215
  }
@@ -2510,17 +2536,9 @@ async function resolveCodexOAuthCredentialInfo(apiUrl, apiKey) {
2510
2536
  await materializeCodexAuthJson(selectedSlot, slotEntry.creds, {
2511
2537
  includeRefreshToken: false
2512
2538
  });
2513
- const authJson = {
2514
- auth_mode: "chatgpt",
2515
- OPENAI_API_KEY: null,
2516
- tokens: {
2517
- id_token: slotEntry.creds.access,
2518
- access_token: slotEntry.creds.access,
2519
- refresh_token: slotEntry.creds.refresh,
2520
- account_id: slotEntry.creds.accountId
2521
- },
2522
- last_refresh: new Date(slotEntry.creds.expires).toISOString()
2523
- };
2539
+ const authJson = credentialsToAuthJson(slotEntry.creds, {
2540
+ includeRefreshToken: false
2541
+ });
2524
2542
  const sel = {
2525
2543
  ...authJsonToCredentialSelection(authJson, selectedSlot, slots.length),
2526
2544
  authFailureFence
@@ -32,7 +32,7 @@ import {
32
32
  getJsonSchemaToolParameters,
33
33
  resolveJsonSchemaStrictSampling,
34
34
  transformMessages
35
- } from "./cli-8kt0bmgx.js";
35
+ } from "./cli-xf713zz0.js";
36
36
  import {
37
37
  sanitizeSurrogates
38
38
  } from "./cli-y2apkfe2.js";
@@ -46,7 +46,7 @@ import {
46
46
  getInitialSystemMessage,
47
47
  getSystemMessageText,
48
48
  withoutInitialSystemMessage
49
- } from "./cli-nexwh8zg.js";
49
+ } from "./cli-g7k7zbcz.js";
50
50
  import {
51
51
  getProviderEnvValue
52
52
  } from "./cli-btbzvq95.js";
@@ -56,7 +56,7 @@ import {
56
56
  import {
57
57
  AssistantMessageEventStream,
58
58
  appendAssistantMessageDiagnostic
59
- } from "./cli-bzr0ftht.js";
59
+ } from "./cli-wnb9b2g3.js";
60
60
  import {
61
61
  exports_supports_color,
62
62
  init_supports_color
@@ -6489,15 +6489,15 @@ function getModelMatchCandidates(modelId, modelName) {
6489
6489
  }
6490
6490
  function supportsAdaptiveThinking(modelId, modelName) {
6491
6491
  const candidates = getModelMatchCandidates(modelId, modelName);
6492
- return candidates.some((s) => s.includes("opus-4-6") || s.includes("opus-4-7") || s.includes("opus-4-8") || s.includes("opus-5") || s.includes("sonnet-4-6") || s.includes("sonnet-5") || s.includes("fable-5"));
6492
+ return candidates.some((s) => s.includes("opus-4-6") || s.includes("opus-4-7") || s.includes("opus-4-8") || s.includes("opus-5") || s.includes("sonnet-4-6") || s.includes("sonnet-5") || s.includes("haiku-5") || s.includes("fable-5"));
6493
6493
  }
6494
6494
  function supportsNativeXhighEffort(model) {
6495
6495
  const candidates = getModelMatchCandidates(model.id, model.name);
6496
- return candidates.some((s) => s.includes("opus-4-7") || s.includes("opus-4-8") || s.includes("opus-5") || s.includes("sonnet-5") || s.includes("fable-5"));
6496
+ return candidates.some((s) => s.includes("opus-4-7") || s.includes("opus-4-8") || s.includes("opus-5") || s.includes("sonnet-5") || s.includes("haiku-5") || s.includes("fable-5"));
6497
6497
  }
6498
6498
  function supportsThinkingBlockBinding(model) {
6499
6499
  const candidates = getModelMatchCandidates(model.id, model.name);
6500
- return candidates.some((s) => s.includes("opus-4-7") || s.includes("opus-4-8") || s.includes("opus-5") || s.includes("sonnet-5") || s.includes("fable-5"));
6500
+ return candidates.some((s) => s.includes("opus-4-7") || s.includes("opus-4-8") || s.includes("opus-5") || s.includes("sonnet-5") || s.includes("haiku-5") || s.includes("fable-5"));
6501
6501
  }
6502
6502
  function mapThinkingLevelToEffort(model, level) {
6503
6503
  if (level === "xhigh" && supportsNativeXhighEffort(model))
@@ -6539,7 +6539,7 @@ function supportsPromptCaching(model, env) {
6539
6539
  return true;
6540
6540
  return false;
6541
6541
  }
6542
- if (candidates.some((s) => s.includes("fable-5") || s.includes("opus-5") || s.includes("sonnet-5")))
6542
+ if (candidates.some((s) => s.includes("fable-5") || s.includes("opus-5") || s.includes("sonnet-5") || s.includes("haiku-5")))
6543
6543
  return true;
6544
6544
  if (candidates.some((s) => s.includes("-4-")))
6545
6545
  return true;
@@ -6865,8 +6865,34 @@ function buildAdditionalModelRequestFields(model, options) {
6865
6865
  }
6866
6866
  return result;
6867
6867
  }
6868
+ const candidates = getModelMatchCandidates(model.id, model.name);
6869
+ if (candidates.some((s) => s.includes("gpt-oss"))) {
6870
+ return { reasoning_effort: OPENAI_GPT_OSS_EFFORT[options.reasoning] };
6871
+ }
6872
+ if (candidates.some((s) => s.includes("gpt-"))) {
6873
+ const mapped = model.thinkingLevelMap?.[options.reasoning];
6874
+ return {
6875
+ reasoning: { effort: typeof mapped === "string" ? mapped : OPENAI_GPT_EFFORT[options.reasoning] }
6876
+ };
6877
+ }
6868
6878
  return;
6869
6879
  }
6880
+ var OPENAI_GPT_EFFORT = {
6881
+ minimal: "low",
6882
+ low: "low",
6883
+ medium: "medium",
6884
+ high: "high",
6885
+ xhigh: "xhigh",
6886
+ max: "max"
6887
+ };
6888
+ var OPENAI_GPT_OSS_EFFORT = {
6889
+ minimal: "low",
6890
+ low: "low",
6891
+ medium: "medium",
6892
+ high: "high",
6893
+ xhigh: "high",
6894
+ max: "high"
6895
+ };
6870
6896
  function createImageBlock(mimeType, data) {
6871
6897
  let format;
6872
6898
  switch (mimeType) {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AssistantMessageEventStream,
3
3
  formatThrownValue
4
- } from "./cli-bzr0ftht.js";
4
+ } from "./cli-wnb9b2g3.js";
5
5
 
6
6
  // node_modules/@earendil-works/pi-ai/dist/utils/text.js
7
7
  function contentText(content, separator = `
@@ -191,7 +191,7 @@ function resolveTranscriptTools(messages, supportsToolAdditions) {
191
191
  }
192
192
 
193
193
  // node_modules/@earendil-works/pi-ai/dist/api/lazy.js
194
- function createSetupErrorMessage(model, error) {
194
+ function createSetupErrorMessage(model, error, timestamp) {
195
195
  return {
196
196
  role: "assistant",
197
197
  content: [],
@@ -208,7 +208,7 @@ function createSetupErrorMessage(model, error) {
208
208
  },
209
209
  stopReason: "error",
210
210
  errorMessage: error instanceof Error ? error.message : String(error),
211
- timestamp: Date.now()
211
+ timestamp
212
212
  };
213
213
  }
214
214
  function hasResult(source) {
@@ -221,9 +221,10 @@ async function forwardStream(target, source) {
221
221
  target.end(hasResult(source) ? await source.result() : undefined);
222
222
  }
223
223
  function lazyStream(model, setup) {
224
+ const startedAt = Date.now();
224
225
  const outer = new AssistantMessageEventStream;
225
226
  setup().then((inner) => forwardStream(outer, inner)).catch((error) => {
226
- const message = createSetupErrorMessage(model, error);
227
+ const message = createSetupErrorMessage(model, error, startedAt);
227
228
  outer.push({ type: "error", reason: "error", error: message });
228
229
  outer.end(message);
229
230
  });
@@ -539,6 +540,11 @@ function assertClassifierModel(model) {
539
540
  throw new ModelsError("provider", `Model ${model.provider}/${model.id} is not a classifier model`);
540
541
  }
541
542
  }
543
+ function assertClassifierInputSupported(model, context) {
544
+ if (context.images?.length && !model.input.includes("image")) {
545
+ throw new ModelsError("provider", `Model ${model.provider}/${model.id} does not accept image input`);
546
+ }
547
+ }
542
548
  function imageErrorResult(model, error, aborted = false) {
543
549
  return {
544
550
  api: model.api,
@@ -1028,6 +1034,7 @@ class ModelsImpl {
1028
1034
  async classify(model, context, options) {
1029
1035
  try {
1030
1036
  assertClassifierModel(model);
1037
+ assertClassifierInputSupported(model, context);
1031
1038
  const provider = this.requireProvider(model);
1032
1039
  if (!provider.classify) {
1033
1040
  throw new ModelsError("provider", `Provider ${model.provider} does not support classification`);
@@ -1212,4 +1219,4 @@ function modelsAreEqual(a, b) {
1212
1219
  return getModelType(a) === getModelType(b) && a.id === b.id && a.provider === b.provider;
1213
1220
  }
1214
1221
 
1215
- export { lazyStream, lazyApi, defaultProviderAuthContext, InMemoryCredentialStore, ModelsError, InMemoryModelsStore, getModelType, isModelType, assertChatModel, assertImageModel, assertClassifierModel, imageErrorResult, classifierErrorResult, contentText, getSystemMessageText, renderSystemMessageUpdate, createInitialSystemMessage, normalizeContext, getInitialSystemMessage, withoutInitialSystemMessage, getCurrentTools, getCurrentSystemMessage, getCurrentSystemPrompt, collapseSystemMessages, resolveTranscript, toToolDeclaration, declarationsEqual, getToolStateChanges, getDeclaredTools, hasToolRedefinitions, hasNonAdditiveToolChanges, resolveTranscriptTools, createModels, createProvider, hasApi, calculateCost, getSupportedThinkingLevels, clampThinkingLevel, modelsAreEqual };
1222
+ export { lazyStream, lazyApi, defaultProviderAuthContext, InMemoryCredentialStore, ModelsError, InMemoryModelsStore, getModelType, isModelType, assertChatModel, assertImageModel, assertClassifierModel, assertClassifierInputSupported, imageErrorResult, classifierErrorResult, contentText, getSystemMessageText, renderSystemMessageUpdate, createInitialSystemMessage, normalizeContext, getInitialSystemMessage, withoutInitialSystemMessage, getCurrentTools, getCurrentSystemMessage, getCurrentSystemPrompt, collapseSystemMessages, resolveTranscript, toToolDeclaration, declarationsEqual, getToolStateChanges, getDeclaredTools, hasToolRedefinitions, hasNonAdditiveToolChanges, resolveTranscriptTools, createModels, createProvider, hasApi, calculateCost, getSupportedThinkingLevels, clampThinkingLevel, modelsAreEqual };