@desplega.ai/agent-swarm 1.162.0 → 1.164.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 (240) hide show
  1. package/README.md +2 -1
  2. package/dist/{acp-adapter-74m73ae9.js → acp-adapter-8t22d18g.js} +2 -2
  3. package/dist/{actions-4sr14gnt.js → actions-49xrhww7.js} +32 -29
  4. package/dist/amp-adapter-p230tajt.js +34 -0
  5. package/dist/{anthropic-messages-8xxrzky9.js → anthropic-messages-hst62ws9.js} +3 -3
  6. package/dist/{app-pt68fbwp.js → app-tgzw3f3d.js} +11 -10
  7. package/dist/{assistant-cv3jytks.js → assistant-dgfjm07j.js} +33 -30
  8. package/dist/{azure-openai-responses-f5cqsyj8.js → azure-openai-responses-mh8tvf78.js} +9 -68
  9. package/dist/{boot-reembed-4ht4gqth.js → boot-reembed-0qzs614r.js} +13 -12
  10. package/dist/{boot-reembed-nxpcvpj9.js → boot-reembed-dgp6peyx.js} +12 -11
  11. package/dist/{boot-scrub-logs-k93kyw8k.js → boot-scrub-logs-fxnk021a.js} +10 -9
  12. package/dist/{boot-seeds-1skcrs0e.js → boot-seeds-xe7adjvm.js} +14 -13
  13. package/dist/{claude-adapter-r5g0tzge.js → claude-adapter-hx0n8a31.js} +22 -20
  14. package/dist/{claude-managed-adapter-yxkfxg8j.js → claude-managed-adapter-hskapeen.js} +3 -3
  15. package/dist/{claude-managed-setup-pkyrgshb.js → claude-managed-setup-p7mt6dfq.js} +1 -1
  16. package/dist/{claude-sdk-session-jxyxnrwd.js → claude-sdk-session-d61a9c8x.js} +22 -20
  17. package/dist/{cli-twrh04ap.js → cli-0y30kqz4.js} +3 -3
  18. package/dist/{cli-5xhpb3kv.js → cli-0z9dj97t.js} +9 -9
  19. package/dist/{cli-t845n9xk.js → cli-1nzb8ftr.js} +2 -2
  20. package/dist/{cli-kdkwd3yr.js → cli-1wd1n2ya.js} +38 -10
  21. package/dist/{cli-vxe6qa4h.js → cli-23az412e.js} +1 -1
  22. package/dist/{cli-bsky8g7w.js → cli-26x4d89j.js} +1 -1
  23. package/dist/{cli-swfmp1fx.js → cli-2ar0x7cz.js} +9 -9
  24. package/dist/cli-2ksgp01n.js +933 -0
  25. package/dist/{cli-rnyzn44p.js → cli-2zhhnz2h.js} +1 -1
  26. package/dist/{cli-vc9bp061.js → cli-3qaw32we.js} +5 -5
  27. package/dist/{cli-vy3ed88x.js → cli-402m8btc.js} +31 -3
  28. package/dist/{cli-5bcd7sfy.js → cli-43fh8fzw.js} +3 -3
  29. package/dist/{cli-5k6k8ta3.js → cli-4f7s6k3q.js} +13 -5
  30. package/dist/{cli-sqvfa090.js → cli-4ntg6tkp.js} +6 -5
  31. package/dist/{cli-kh04eqwe.js → cli-4y9bnpvy.js} +1 -1
  32. package/dist/{cli-qjjvzwzd.js → cli-5c2j5yvx.js} +1 -1
  33. package/dist/{cli-2zy95vhm.js → cli-6891ft0y.js} +2 -2
  34. package/dist/{cli-tre4bdgq.js → cli-6behs2bt.js} +1 -1
  35. package/dist/cli-7mm2r1kp.js +17 -0
  36. package/dist/cli-7xcgj20z.js +68 -0
  37. package/dist/{cli-4cwxn7gp.js → cli-812vt3ht.js} +2 -2
  38. package/dist/{cli-mbssg1xv.js → cli-8kt0bmgx.js} +1 -1
  39. package/dist/{cli-wjgs5wxe.js → cli-8rpq35c0.js} +7 -7
  40. package/dist/{cli-jxs2ygaw.js → cli-9m8fk2v7.js} +74 -29
  41. package/dist/{cli-pkd6s2wy.js → cli-9q3wt23f.js} +2 -2
  42. package/dist/{cli-s3hwpt9v.js → cli-9s6fsg07.js} +30 -10
  43. package/dist/{cli-xqpk3rp7.js → cli-9x3bwfd3.js} +28 -5
  44. package/dist/{cli-qrgt5bqf.js → cli-agamgm0p.js} +1 -1
  45. package/dist/{cli-13hw4z91.js → cli-b0f70z24.js} +1 -1
  46. package/dist/{cli-gpqpmns7.js → cli-cgrvsz2t.js} +2 -2
  47. package/dist/{cli-2hhfhfq5.js → cli-cn53e7vc.js} +8 -1
  48. package/dist/{cli-p0r8sxj5.js → cli-crjazzsg.js} +222 -4
  49. package/dist/{cli-tcen9p5w.js → cli-d37n8b7c.js} +5 -5
  50. package/dist/{cli-wxkkd0e0.js → cli-dgh781z9.js} +3 -3
  51. package/dist/cli-dsdg2wrk.js +516 -0
  52. package/dist/{cli-q24re23n.js → cli-e2xnc4m5.js} +4 -4
  53. package/dist/{cli-f7kvq46p.js → cli-erxeg64j.js} +20 -0
  54. package/dist/{cli-8ev9xqnx.js → cli-fajbc7sa.js} +17 -219
  55. package/dist/{cli-g739zqzt.js → cli-fj86xr3c.js} +2 -2
  56. package/dist/{cli-zvhd3f64.js → cli-fpbvcf55.js} +3 -3
  57. package/dist/{cli-kp42yek0.js → cli-fyra5y8k.js} +424 -71
  58. package/dist/{cli-jyy6pm2f.js → cli-g3qgrzck.js} +15 -3
  59. package/dist/{cli-eg0b3p0k.js → cli-g5erf0zt.js} +23 -14
  60. package/dist/{cli-cvatsam7.js → cli-gcvzvq3e.js} +4 -4
  61. package/dist/{cli-89s4ngw3.js → cli-gvcgmx69.js} +1 -1
  62. package/dist/{cli-7tre70zp.js → cli-j261c831.js} +138 -128
  63. package/dist/{cli-sptrj5f5.js → cli-j3me0jw2.js} +2 -2
  64. package/dist/{cli-zxqx25nz.js → cli-k6w44yvq.js} +6 -6
  65. package/dist/cli-ndx5yz5n.js +3299 -0
  66. package/dist/{cli-ykk5jaax.js → cli-nexwh8zg.js} +34 -29
  67. package/dist/{cli-rfjw9jw2.js → cli-ng97fjq7.js} +2 -2
  68. package/dist/{cli-4x0csdjq.js → cli-ngne1dng.js} +2 -2
  69. package/dist/{cli-4dcpaefp.js → cli-pfzrhb8n.js} +2 -2
  70. package/dist/{cli-hb5c2x5y.js → cli-q38n4bq0.js} +2 -2
  71. package/dist/{cli-cebmgwsc.js → cli-r109nq7n.js} +4 -4
  72. package/dist/{cli-nq7yqw7b.js → cli-t7g0vmtc.js} +4 -4
  73. package/dist/{cli-jf7wmv1r.js → cli-tsvj33y0.js} +58 -19
  74. package/dist/{cli-7af8yhav.js → cli-vbr859rz.js} +7 -4
  75. package/dist/{cli-nt8hecg9.js → cli-wk3v6h55.js} +67 -38
  76. package/dist/{cli-vyqs9ya8.js → cli-wwvk0tsy.js} +7 -7
  77. package/dist/{cli-rj0gqwwp.js → cli-y2de3bzp.js} +1 -1
  78. package/dist/{cli-hmsw1gpy.js → cli-y74170pb.js} +4 -4
  79. package/dist/cli-ydt3zkwv.js +70 -0
  80. package/dist/{cli-xk79303e.js → cli-yj790e19.js} +9 -1
  81. package/dist/cli-zt3w1cn1.js +137 -0
  82. package/dist/{cli-trc24wk2.js → cli-zxg80zs9.js} +1 -1
  83. package/dist/cli.js +23 -22
  84. package/dist/{cloudflare-workers-ai-system-one-k8ddqjkq.js → cloudflare-workers-ai-system-one-tt484t61.js} +2 -2
  85. package/dist/{codex-adapter-esvmnhn7.js → codex-adapter-e3pky8aj.js} +14 -13
  86. package/dist/{codex-hook-m73jmqgx.js → codex-hook-b1fb7c2k.js} +4 -3
  87. package/dist/{codex-session-runner-ban9excr.js → codex-session-runner-1gq27w2t.js} +14 -13
  88. package/dist/{commands-75413p2n.js → commands-q07ezjzn.js} +10 -9
  89. package/dist/cursor-adapter-50cz7yba.js +32 -0
  90. package/dist/{db-7f5pecwg.js → db-wwt0sq9q.js} +18 -9
  91. package/dist/{dispatcher-fh9at8nz.js → dispatcher-wrg35vdd.js} +31 -28
  92. package/dist/{dsh-adapter-wpze65d4.js → dsh-adapter-sa6rxfpc.js} +6 -6
  93. package/dist/{e2b-gjgdjp91.js → e2b-v5np73yj.js} +4 -4
  94. package/dist/{easter-egg-3d-3w5c2n4c.js → easter-egg-3d-h2hx9b64.js} +2 -2
  95. package/dist/{event-bus-sfx8dx3t.js → event-bus-vkbhzt4n.js} +1 -1
  96. package/dist/{execute-f50wg9nh.js → execute-6gczxy8v.js} +42 -13
  97. package/dist/{google-generative-ai-jxxpnegy.js → google-generative-ai-d6nphg3q.js} +3 -3
  98. package/dist/{google-vertex-x7q1angm.js → google-vertex-cpshkref.js} +3 -3
  99. package/dist/{handlers-w13787bb.js → handlers-rv3gxvsp.js} +34 -31
  100. package/dist/{hook-46g1jrvx.js → hook-bcf5m80y.js} +15 -13
  101. package/dist/{hook-4tpts2ry.js → hook-z8b1jm2d.js} +16 -14
  102. package/dist/{http-19pzbfrt.js → http-56f7yt97.js} +932 -134
  103. package/dist/{index-scptvdxg.js → index-0kncjnrm.js} +30 -23
  104. package/dist/{index-dqmp15bq.js → index-1e6cg96n.js} +31 -28
  105. package/dist/{index-qb4q1y3e.js → index-8xgdb3k8.js} +31 -28
  106. package/dist/index-adw4zr9j.js +1020 -0
  107. package/dist/{index-h5gs261z.js → index-etdrp7yp.js} +140 -140
  108. package/dist/{index-8fd4dm4h.js → index-f9zscmft.js} +32 -29
  109. package/dist/index-fdk1t4d6.js +91297 -0
  110. package/dist/{index-s75wc4wd.js → index-jvb37h77.js} +12 -11
  111. package/dist/{keepalive-xa5ts9cd.js → keepalive-rp8daj4s.js} +12 -11
  112. package/dist/{lead-qp4xkvjq.js → lead-dfp77erc.js} +45 -40
  113. package/dist/{maintenance-rm5885hm.js → maintenance-wtmw3jqv.js} +13 -12
  114. package/dist/{mistral-conversations-rw7fbt22.js → mistral-conversations-8445ddjn.js} +2 -2
  115. package/dist/{oauth-refresh-sweep-1csdfebf.js → oauth-refresh-sweep-yhzqt95v.js} +11 -10
  116. package/dist/{onboard-r6b78cs4.js → onboard-9z8rwbcy.js} +2 -2
  117. package/dist/{openai-codex-responses-efvrgrq3.js → openai-codex-responses-9ynm88zy.js} +3 -3
  118. package/dist/{openai-completions-bbbrrz4z.js → openai-completions-nhqwjmaw.js} +2 -2
  119. package/dist/{openai-responses-9jjyrcm1.js → openai-responses-xx1c4kgm.js} +3 -3
  120. package/dist/{opencode-adapter-kb3g6pkf.js → opencode-adapter-1nxb6555.js} +5 -5
  121. package/dist/{otel-impl-0y9knpky.js → otel-impl-b83gaxw2.js} +1 -1
  122. package/dist/{pi-mono-adapter-z6s1bme2.js → pi-mono-adapter-ddxz8pjp.js} +18 -17
  123. package/dist/{pricing-refresh-mth26tgp.js → pricing-refresh-tmjvazb6.js} +12 -11
  124. package/dist/{rbac-roles-kwntb23q.js → rbac-roles-pa0gzjws.js} +11 -10
  125. package/dist/{rbac-roles-vpk4ebm8.js → rbac-roles-rhexa9s2.js} +12 -11
  126. package/dist/{render-v2-hcm7h00y.js → render-v2-ask84n8y.js} +11 -10
  127. package/dist/{runtime-vfjsfsc5.js → runtime-ckjnj3vf.js} +4 -4
  128. package/dist/{setup-hbyzd65h.js → setup-5ga5gdsy.js} +2 -2
  129. package/dist/{typesafe-system-one-2ef30pec.js → typesafe-system-one-datfr82p.js} +2 -2
  130. package/dist/{virtual-modules-9bv7ry91.js → virtual-modules-bmp3zwjf.js} +12 -11
  131. package/dist/{work-objects-m09sxnhe.js → work-objects-snnh0t7j.js} +34 -31
  132. package/dist/{worker-0h35rvk4.js → worker-rxyymrhb.js} +45 -40
  133. package/openapi.json +997 -39
  134. package/package.json +6 -5
  135. package/src/be/db/active-sessions.ts +30 -0
  136. package/src/be/db/approvals.ts +54 -0
  137. package/src/be/db.ts +25 -4
  138. package/src/be/mcp-server-checked-update.ts +34 -0
  139. package/src/be/mcp-server-stdio-gate.ts +34 -0
  140. package/src/be/memory/key-browser.ts +304 -0
  141. package/src/be/memory/providers/sqlite-store.ts +16 -3
  142. package/src/be/migrations/194_memory_orphan_chunks.sql +15 -0
  143. package/src/be/migrations/195_approval_request_approvals.sql +6 -0
  144. package/src/be/model-validation.ts +12 -2
  145. package/src/be/multi-runtime.ts +4 -3
  146. package/src/be/pricing-normalize.ts +11 -0
  147. package/src/be/repo-checked-update.ts +37 -0
  148. package/src/be/repo-merge-policy.ts +15 -0
  149. package/src/be/seed-pricing.ts +48 -1
  150. package/src/be/swarm-config-guard.ts +1 -0
  151. package/src/commands/provider-credentials.ts +44 -2
  152. package/src/extensions/contract-types.generated.ts +1 -1
  153. package/src/extensions/contract.ts +100 -0
  154. package/src/extensions/dispatcher.ts +19 -0
  155. package/src/extensions/post-bridge.ts +191 -0
  156. package/src/github/handlers.ts +128 -2
  157. package/src/gitlab/workflow-action-name.ts +15 -0
  158. package/src/heartbeat/heartbeat.ts +4 -3
  159. package/src/http/active-sessions.ts +6 -5
  160. package/src/http/agents.ts +10 -1
  161. package/src/http/approval-requests.ts +271 -35
  162. package/src/http/index.ts +1 -1
  163. package/src/http/mcp-servers.ts +74 -50
  164. package/src/http/memory.ts +275 -6
  165. package/src/http/repos.ts +58 -18
  166. package/src/http/request-principal.ts +19 -0
  167. package/src/http/session-cost-recompute.ts +64 -0
  168. package/src/http/session-data.ts +11 -0
  169. package/src/http/tasks.ts +9 -1
  170. package/src/http/webhooks.ts +17 -5
  171. package/src/prompts/base-prompt.ts +9 -4
  172. package/src/prompts/resolver.ts +1 -1
  173. package/src/prompts/session-templates.ts +28 -0
  174. package/src/providers/amp-adapter.ts +1232 -0
  175. package/src/providers/cursor-adapter.ts +638 -0
  176. package/src/providers/index.ts +9 -1
  177. package/src/providers/pricing-sources.md +39 -0
  178. package/src/providers/reasoning-effort.ts +15 -1
  179. package/src/providers/types.ts +11 -1
  180. package/src/rbac/legacy-policy.ts +23 -8
  181. package/src/rbac/permissions.ts +27 -1
  182. package/src/scripts-runtime/types/swarm-extension.d.ts +119 -0
  183. package/src/tests/amp-adapter.test.ts +822 -0
  184. package/src/tests/amp-budget-export-failed.test.ts +133 -0
  185. package/src/tests/amp-pricing-helpers.ts +16 -0
  186. package/src/tests/amp-pricing.test.ts +218 -0
  187. package/src/tests/api-drain-worker-e2e.test.ts +18 -7
  188. package/src/tests/approval-respond-auth.test.ts +371 -0
  189. package/src/tests/base-prompt.test.ts +13 -0
  190. package/src/tests/claude-adapter-binary.test.ts +24 -0
  191. package/src/tests/claude-adapter.test.ts +8 -0
  192. package/src/tests/cursor-adapter.test.ts +690 -0
  193. package/src/tests/db-task-read-contract.test.ts +5 -0
  194. package/src/tests/db-task-write-contract.test.ts +5 -0
  195. package/src/tests/docs-index-footprint.test.js +3 -3
  196. package/src/tests/extensions-post-bridge.test.ts +669 -0
  197. package/src/tests/extensions-run-context.test.ts +61 -0
  198. package/src/tests/fixtures/fake-amp.ts +304 -0
  199. package/src/tests/github-handlers-inline-comments.test.ts +147 -1
  200. package/src/tests/gitlab-workflow-event-names.test.ts +136 -0
  201. package/src/tests/mcp-input-ergonomics.test.ts +15 -10
  202. package/src/tests/mcp-server-stdio-gate.test.ts +438 -0
  203. package/src/tests/memory-http-access.test.ts +221 -0
  204. package/src/tests/memory-keys-endpoint.test.ts +406 -0
  205. package/src/tests/memory-store.test.ts +166 -0
  206. package/src/tests/model-tier-resolution.test.ts +3 -3
  207. package/src/tests/pricing-refresh.test.ts +5 -4
  208. package/src/tests/prompt-template-session.test.ts +5 -3
  209. package/src/tests/provider-process-group.test.ts +41 -0
  210. package/src/tests/provider-registration.test.ts +3 -1
  211. package/src/tests/rbac-charact-misc-tools.test.ts +18 -3
  212. package/src/tests/rbac-engine.test.ts +15 -11
  213. package/src/tests/rbac-wire-e2e.test.ts +4 -9
  214. package/src/tests/repo-allow-merge-gate.test.ts +382 -0
  215. package/src/tests/script-connections.test.ts +4 -0
  216. package/src/tests/send-task-requester-gate.test.ts +260 -0
  217. package/src/tests/session-activity-liveness.test.ts +248 -0
  218. package/src/tests/session-costs-golden.test.ts +28 -0
  219. package/src/tests/webhooks-task-blocked.test.ts +4 -4
  220. package/src/tests/write-gate.ts +68 -0
  221. package/src/tests/x402-client.test.ts +124 -0
  222. package/src/tests/x402-spending-tracker.test.ts +66 -0
  223. package/src/tools/mcp-servers/mcp-server-create.ts +23 -1
  224. package/src/tools/mcp-servers/mcp-server-update.ts +46 -28
  225. package/src/tools/memory-delete.ts +3 -3
  226. package/src/tools/repos/update-repo.ts +26 -5
  227. package/src/tools/send-task.ts +24 -1
  228. package/src/tools/steer-task.ts +1 -1
  229. package/src/types.ts +37 -2
  230. package/src/utils/amp-models.ts +114 -0
  231. package/src/utils/credentials.ts +8 -0
  232. package/src/utils/process-group.ts +79 -0
  233. package/src/workflows/event-bus.ts +28 -0
  234. package/src/x402/client.ts +36 -14
  235. package/src/x402/spending-tracker.ts +64 -3
  236. package/templates/skills/agent-browser/SKILL.md +5 -0
  237. package/templates/skills/agent-browser/content.md +5 -0
  238. package/templates/skills/heartbeat-runbook/content.md +1 -0
  239. package/templates/skills/swarm-extensions/content.md +4 -0
  240. package/dist/cli-y89t4nca.js +0 -67
@@ -1,28 +1,35 @@
1
+ import {
2
+ checkCursorCredentials
3
+ } from "./cli-dsdg2wrk.js";
1
4
  import {
2
5
  renderSteeringDelivery
3
- } from "./cli-pkd6s2wy.js";
6
+ } from "./cli-9q3wt23f.js";
4
7
  import {
5
8
  checkCodexCredentials,
6
9
  codexUserHome
7
- } from "./cli-vyqs9ya8.js";
10
+ } from "./cli-wwvk0tsy.js";
8
11
  import {
9
12
  checkClaudeManagedCredentials
10
- } from "./cli-t845n9xk.js";
13
+ } from "./cli-1nzb8ftr.js";
11
14
  import {
12
15
  checkDevinCredentials
13
16
  } from "./cli-89v6kyq7.js";
14
17
  import {
15
18
  checkOpencodeCredentials
16
- } from "./cli-twrh04ap.js";
19
+ } from "./cli-0y30kqz4.js";
17
20
  import {
18
21
  checkDshCredentials
19
- } from "./cli-cvatsam7.js";
22
+ } from "./cli-gcvzvq3e.js";
23
+ import {
24
+ checkAmpCredentials,
25
+ liveTestAmpCredentials
26
+ } from "./cli-2ksgp01n.js";
20
27
  import {
21
28
  checkClaudeCredentials
22
- } from "./cli-zxqx25nz.js";
29
+ } from "./cli-k6w44yvq.js";
23
30
  import {
24
31
  getContextWindowSize
25
- } from "./cli-tre4bdgq.js";
32
+ } from "./cli-6behs2bt.js";
26
33
  import {
27
34
  isUnknownModelError,
28
35
  renderMemoriesPrompt,
@@ -42,13 +49,13 @@ import {
42
49
  parseAzureDevOpsRepoUrl,
43
50
  resolveScriptsOnlyMode,
44
51
  validateJsonSchema
45
- } from "./cli-kp42yek0.js";
52
+ } from "./cli-fyra5y8k.js";
46
53
  import {
47
54
  getApiKey
48
55
  } from "./cli-f14fvzag.js";
49
56
  import {
50
57
  terminateRegisteredProcessGroups
51
- } from "./cli-y89t4nca.js";
58
+ } from "./cli-zt3w1cn1.js";
52
59
  import {
53
60
  authJsonToCredentialSelection,
54
61
  credentialsToAuthJson,
@@ -69,7 +76,7 @@ import {
69
76
  syncProfileFilesToServer,
70
77
  writeIdentityBaselines,
71
78
  writeProfileFileFromDb
72
- } from "./cli-cebmgwsc.js";
79
+ } from "./cli-r109nq7n.js";
73
80
  import {
74
81
  ensure,
75
82
  initOtel,
@@ -79,7 +86,7 @@ import {
79
86
  startSpan,
80
87
  withSpan,
81
88
  withSpanContext
82
- } from "./cli-swfmp1fx.js";
89
+ } from "./cli-2ar0x7cz.js";
83
90
  import {
84
91
  init_task_attachment_links,
85
92
  taskAttachmentFetchCommand
@@ -94,14 +101,14 @@ import {
94
101
  isCodexAuthFailureReason,
95
102
  mapTriggerSurface,
96
103
  telemetry
97
- } from "./cli-jf7wmv1r.js";
104
+ } from "./cli-tsvj33y0.js";
98
105
  import {
99
106
  ProviderNameSchema,
100
107
  init_types,
101
108
  isTerminalTaskStatus,
102
109
  parseWorkerModelTierOverrides,
103
110
  resolveTaskModelSelection
104
- } from "./cli-xqpk3rp7.js";
111
+ } from "./cli-9x3bwfd3.js";
105
112
  import {
106
113
  generateDefaultClaudeMd,
107
114
  generateDefaultIdentityMd,
@@ -110,17 +117,17 @@ import {
110
117
  getBasePrompt,
111
118
  init_base_prompt,
112
119
  init_defaults
113
- } from "./cli-7af8yhav.js";
120
+ } from "./cli-vbr859rz.js";
114
121
  import {
115
122
  init_steering_enabled,
116
123
  isSteeringEnabled
117
- } from "./cli-eg0b3p0k.js";
124
+ } from "./cli-7mm2r1kp.js";
118
125
  import {
119
126
  CLAUDE_CREDENTIALS_HINT,
120
127
  ModelWindowExhaustedError,
121
128
  init_credentials,
122
129
  resolveCredentialPools
123
- } from "./cli-xk79303e.js";
130
+ } from "./cli-yj790e19.js";
124
131
  import {
125
132
  init_model_rate_limit_windows,
126
133
  modelFamilyOf,
@@ -134,14 +141,14 @@ import {
134
141
  } from "./cli-gd4favx9.js";
135
142
  import {
136
143
  init_templates
137
- } from "./cli-qrgt5bqf.js";
144
+ } from "./cli-agamgm0p.js";
138
145
  import {
139
146
  configureHttpResolver,
140
147
  init_resolver,
141
148
  init_template,
142
149
  interpolate,
143
150
  resolveTemplateAsync
144
- } from "./cli-qjjvzwzd.js";
151
+ } from "./cli-5c2j5yvx.js";
145
152
  import {
146
153
  deriveDefaultRoute,
147
154
  init_src,
@@ -153,7 +160,7 @@ import {
153
160
  init_src as init_src2,
154
161
  refreshRuntimeModelCatalog,
155
162
  runtimeHarnessSections
156
- } from "./cli-jyy6pm2f.js";
163
+ } from "./cli-g3qgrzck.js";
157
164
  import {
158
165
  init_secret_scrubber,
159
166
  scrubSecrets
@@ -194,19 +201,19 @@ async function materializeCodexAuthJson(_slot, creds, deps = {}) {
194
201
  async function createProviderAdapter(provider) {
195
202
  switch (provider) {
196
203
  case "claude": {
197
- const { ClaudeAdapter } = await import("./claude-adapter-r5g0tzge.js");
204
+ const { ClaudeAdapter } = await import("./claude-adapter-hx0n8a31.js");
198
205
  return new ClaudeAdapter;
199
206
  }
200
207
  case "pi": {
201
- const { PiMonoAdapter } = await import("./pi-mono-adapter-z6s1bme2.js");
208
+ const { PiMonoAdapter } = await import("./pi-mono-adapter-ddxz8pjp.js");
202
209
  return new PiMonoAdapter;
203
210
  }
204
211
  case "codex": {
205
- const { CodexAdapter } = await import("./codex-adapter-esvmnhn7.js");
212
+ const { CodexAdapter } = await import("./codex-adapter-e3pky8aj.js");
206
213
  return new CodexAdapter;
207
214
  }
208
215
  case "claude-managed": {
209
- const { ClaudeManagedAdapter } = await import("./claude-managed-adapter-yxkfxg8j.js");
216
+ const { ClaudeManagedAdapter } = await import("./claude-managed-adapter-hskapeen.js");
210
217
  return new ClaudeManagedAdapter;
211
218
  }
212
219
  case "devin": {
@@ -214,19 +221,27 @@ async function createProviderAdapter(provider) {
214
221
  return new DevinAdapter;
215
222
  }
216
223
  case "opencode": {
217
- const { OpencodeAdapter } = await import("./opencode-adapter-kb3g6pkf.js");
224
+ const { OpencodeAdapter } = await import("./opencode-adapter-1nxb6555.js");
218
225
  return new OpencodeAdapter;
219
226
  }
220
227
  case "dsh": {
221
- const { DshAdapter } = await import("./dsh-adapter-wpze65d4.js");
228
+ const { DshAdapter } = await import("./dsh-adapter-sa6rxfpc.js");
222
229
  return new DshAdapter;
223
230
  }
231
+ case "amp": {
232
+ const { AmpAdapter } = await import("./amp-adapter-p230tajt.js");
233
+ return new AmpAdapter;
234
+ }
235
+ case "cursor": {
236
+ const { CursorAdapter } = await import("./cursor-adapter-50cz7yba.js");
237
+ return new CursorAdapter;
238
+ }
224
239
  case "acp": {
225
- const { ACPAdapter } = await import("./acp-adapter-74m73ae9.js");
240
+ const { ACPAdapter } = await import("./acp-adapter-8t22d18g.js");
226
241
  return new ACPAdapter;
227
242
  }
228
243
  default:
229
- throw new Error(`Unknown HARNESS_PROVIDER: "${provider}". Supported: claude, pi, codex, devin, claude-managed, opencode, acp, dsh`);
244
+ throw new Error(`Unknown HARNESS_PROVIDER: "${provider}". Supported: claude, pi, codex, devin, claude-managed, opencode, acp, dsh, cursor, amp`);
230
245
  }
231
246
  }
232
247
 
@@ -913,13 +928,15 @@ function shouldRefreshBedrockStatus(opts) {
913
928
  }
914
929
  var CREDENTIAL_PROVIDER_CHECKERS = {
915
930
  dsh: (env) => checkDshCredentials(env),
931
+ amp: (env) => checkAmpCredentials(env),
932
+ cursor: (env) => checkCursorCredentials(env),
916
933
  claude: (env) => checkClaudeCredentials(env),
917
934
  "claude-managed": (env) => checkClaudeManagedCredentials(env),
918
935
  codex: (env, opts) => checkCodexCredentials(env, opts),
919
936
  devin: (env) => checkDevinCredentials(env),
920
937
  opencode: (env, opts) => checkOpencodeCredentials(env, opts),
921
938
  pi: async (env, opts) => {
922
- const { checkPiMonoCredentials } = await import("./pi-mono-adapter-z6s1bme2.js");
939
+ const { checkPiMonoCredentials } = await import("./pi-mono-adapter-ddxz8pjp.js");
923
940
  return checkPiMonoCredentials(env, opts);
924
941
  },
925
942
  acp: () => ({ ready: true, missing: [], satisfiedBy: "sdk-delegated" })
@@ -1109,12 +1126,40 @@ async function validateProviderCredentials(provider, env = process.env) {
1109
1126
  error: "Set DEEPSEEK_API_KEY or OPENROUTER_API_KEY for dsh.",
1110
1127
  latency_ms: Date.now() - startedAt
1111
1128
  };
1129
+ case "amp": {
1130
+ if (!checkAmpCredentials(env).ready) {
1131
+ return {
1132
+ ok: false,
1133
+ error: "AMP_API_KEY is not set.",
1134
+ latency_ms: Date.now() - startedAt
1135
+ };
1136
+ }
1137
+ const live = await liveTestAmpCredentials(env);
1138
+ return live.ok ? { ok: true, latency_ms: Date.now() - startedAt } : {
1139
+ ok: false,
1140
+ error: live.error ?? "amp usage failed",
1141
+ latency_ms: Date.now() - startedAt
1142
+ };
1143
+ }
1144
+ case "cursor": {
1145
+ const apiKey = env.CURSOR_API_KEY?.trim();
1146
+ if (!apiKey) {
1147
+ return {
1148
+ ok: false,
1149
+ error: "CURSOR_API_KEY is not set.",
1150
+ latency_ms: Date.now() - startedAt
1151
+ };
1152
+ }
1153
+ const { liveTestCursorKey } = await import("./cursor-adapter-50cz7yba.js");
1154
+ const result = await liveTestCursorKey(apiKey);
1155
+ return result.ok ? { ok: true, latency_ms: Date.now() - startedAt } : { ok: false, error: result.error, latency_ms: Date.now() - startedAt };
1156
+ }
1112
1157
  case "acp":
1113
1158
  return presenceCheckOk();
1114
1159
  default:
1115
1160
  return {
1116
1161
  ok: false,
1117
- error: `Unknown provider "${provider}". Supported: claude, claude-managed, codex, devin, opencode, pi, acp, dsh.`,
1162
+ error: `Unknown provider "${provider}". Supported: claude, claude-managed, codex, devin, opencode, pi, acp, dsh, cursor, amp.`,
1118
1163
  latency_ms: Date.now() - startedAt
1119
1164
  };
1120
1165
  }
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  init_session_templates
3
- } from "./cli-eg0b3p0k.js";
3
+ } from "./cli-g5erf0zt.js";
4
4
  import {
5
5
  init_resolver,
6
6
  resolveTemplateAsync
7
- } from "./cli-qjjvzwzd.js";
7
+ } from "./cli-5c2j5yvx.js";
8
8
 
9
9
  // src/prompts/steering-delivery.ts
10
10
  init_session_templates();
@@ -1088,12 +1088,13 @@ function getInteractiveAssetsDir() {
1088
1088
  function getBundledInteractiveAssetPath(name) {
1089
1089
  return join2(getInteractiveAssetsDir(), name);
1090
1090
  }
1091
- var embeddedQuickJSWasmPath;
1091
+ var quickJSWasmPath;
1092
1092
  function setEmbeddedQuickJSWasmPath(path) {
1093
- embeddedQuickJSWasmPath = path;
1093
+ quickJSWasmPath = path;
1094
1094
  }
1095
1095
  function getQuickJSWasmPath() {
1096
- return embeddedQuickJSWasmPath ?? createRequire(import.meta.url).resolve("quickjs-wasi/quickjs.wasm");
1096
+ quickJSWasmPath ??= createRequire(import.meta.url).resolve("quickjs-wasi/quickjs.wasm");
1097
+ return quickJSWasmPath;
1097
1098
  }
1098
1099
  function resolveCodemodeWorkerSpecifier(runtime, moduleUrl) {
1099
1100
  if (runtime === "bun-binary")
@@ -1102,13 +1103,32 @@ function resolveCodemodeWorkerSpecifier(runtime, moduleUrl) {
1102
1103
  return new URL("./codemode-worker.js", moduleUrl);
1103
1104
  return;
1104
1105
  }
1106
+ var codemodeWorkerDataUrl;
1105
1107
  function getCodemodeWorkerSpecifier() {
1106
1108
  const runtime = isBunBinary ? "bun-binary" : isBundledNode ? "bundled-node" : "unbundled";
1107
- return resolveCodemodeWorkerSpecifier(runtime, import.meta.url);
1109
+ const specifier = resolveCodemodeWorkerSpecifier(runtime, import.meta.url);
1110
+ if (runtime !== "bundled-node" || !(specifier instanceof URL))
1111
+ return specifier;
1112
+ codemodeWorkerDataUrl ??= new URL(`data:text/javascript;base64,${readFileSync(specifier).toString("base64")}`);
1113
+ return codemodeWorkerDataUrl;
1114
+ }
1115
+ function detectInstallChange(packageJsonPath = startupPackageJsonPath) {
1116
+ if (isBunBinary || !packageJsonPath)
1117
+ return;
1118
+ let installed;
1119
+ try {
1120
+ installed = JSON.parse(stripBom(readFileSync(packageJsonPath, "utf-8")));
1121
+ } catch (error) {
1122
+ return error.code === "ENOENT" ? { kind: "removed" } : undefined;
1123
+ }
1124
+ return installed.version && installed.version !== VERSION ? { kind: "updated", version: installed.version } : undefined;
1108
1125
  }
1109
1126
  var pkg = {};
1127
+ var startupPackageJsonPath;
1110
1128
  try {
1111
- pkg = JSON.parse(stripBom(readFileSync(getPackageJsonPath(), "utf-8")));
1129
+ const packageJsonPath = getPackageJsonPath();
1130
+ pkg = JSON.parse(stripBom(readFileSync(packageJsonPath, "utf-8")));
1131
+ startupPackageJsonPath = packageJsonPath;
1112
1132
  } catch (e) {
1113
1133
  const err = e;
1114
1134
  if (err.code !== "ENOENT")
@@ -3536,11 +3556,11 @@ var TUI_KEYBINDINGS = {
3536
3556
  description: "Move cursor word right"
3537
3557
  },
3538
3558
  "tui.editor.cursorLineStart": {
3539
- defaultKeys: ["home", "ctrl+home", "ctrl+a"],
3559
+ defaultKeys: ["home", "ctrl+a"],
3540
3560
  description: "Move to line start"
3541
3561
  },
3542
3562
  "tui.editor.cursorLineEnd": {
3543
- defaultKeys: ["end", "ctrl+end", "ctrl+e"],
3563
+ defaultKeys: ["end", "ctrl+e"],
3544
3564
  description: "Move to line end"
3545
3565
  },
3546
3566
  "tui.editor.jumpForward": {
@@ -3644,8 +3664,8 @@ var TUI_KEYBINDINGS = {
3644
3664
  defaultKeys: "escape",
3645
3665
  description: "Close transcript search"
3646
3666
  },
3647
- "tui.altScreen.top": { defaultKeys: "home", description: "Scroll viewport to top" },
3648
- "tui.altScreen.bottom": { defaultKeys: "end", description: "Scroll viewport to bottom" }
3667
+ "tui.altScreen.top": { defaultKeys: "ctrl+home", description: "Scroll viewport to top" },
3668
+ "tui.altScreen.bottom": { defaultKeys: "ctrl+end", description: "Scroll viewport to bottom" }
3649
3669
  };
3650
3670
  function normalizeKeys(keys) {
3651
3671
  if (keys === undefined)
@@ -17611,4 +17631,4 @@ function rawKeyHint(key, description) {
17611
17631
  return theme.fg("dim", formatKeyText(key)) + theme.fg("muted", ` ${description}`);
17612
17632
  }
17613
17633
 
17614
- export { source_default, spawnProcess, spawnProcessSync, waitForChildProcess, canonicalizePath, getFileRevision, isLocalPath, normalizePath, resolvePath, getCwdRelativePath, formatPathRelativeToCwdOrAbsolute, markPathIgnoredByCloudSync, splitBom, stripBom, isBunBinary, isBundledNode, detectInstallMethod, getSelfUpdateCommand, getSelfUpdateUnavailableInstruction, getPackageDir, getExportTemplateDir, getReadmePath, getDocsPath, getExamplesPath, getChangelogPath, getBundledInteractiveAssetPath, setEmbeddedQuickJSWasmPath, getQuickJSWasmPath, getCodemodeWorkerSpecifier, PACKAGE_NAME, APP_NAME, APP_TITLE, CONFIG_DIR_NAME, VERSION, ENV_AGENT_DIR, ENV_SESSION_DIR, expandTildePath, getShareViewerUrl, getAgentDir, getAuthPath, getSettingsPath, getBinDir, getSessionsDir, getDebugLogPath, Z, fuzzyMatch, fuzzyFilter, visibleWidth, wrapTextWithAnsi, truncateToWidth, sliceByColumn, CombinedAutocompleteProvider, indexedColor, rgbColor, parseColor, colorToRgb, mixColors, foregroundAnsi, backgroundAnsi, Key, matchesKey, detectCapabilities, getCapabilities, getTerminalColorMode, setCapabilityOverrides, getImageDimensions, hyperlink, imageFallback, Container, isViewportTUI, Box, TUI_KEYBINDINGS, KeybindingsManager, setKeybindings, getKeybindings, Text, Loader, CancellableLoader, SelectList, Editor, setImageTranscoder, Image, Input, Markdown, MouseRegion, ScrollView, SettingsList, Spacer, TruncatedText, VStack, getNativeClipboard, isAppleTerminalSession, ProcessTerminal, TuiAltScreen, TuiMainScreen, exports_dist, FS_WATCH_RETRY_DELAY_MS, closeWatcher, watchWithErrorHandler, loadAllHighlightLanguages, SYSTEM_THEME_NAME, setThemeJsonValidator, setTerminalColors, setTerminalColorScheme, markTerminalColorsPending, Theme, getAvailableThemes, getAvailableThemesWithPaths, loadThemeFromPath, getThemeByName, parseAutoThemeSetting, resolveThemeSetting, getTerminalTheme, theme, setRegisteredThemes, initTheme, setTheme, setThemeInstance, onThemeChange, stopThemeWatcher, getResolvedThemeColors, getThemeExportColors, highlightCode, getLanguageFromPath, getMarkdownTheme, getSelectListTheme, getEditorTheme, getSettingsListTheme, formatKeyText, keyText, keyDisplayText, keyHint, rawKeyHint };
17634
+ export { source_default, spawnProcess, spawnProcessSync, waitForChildProcess, canonicalizePath, getFileRevision, isLocalPath, normalizePath, resolvePath, getCwdRelativePath, formatPathRelativeToCwdOrAbsolute, markPathIgnoredByCloudSync, splitBom, stripBom, isBunBinary, isBundledNode, detectInstallMethod, getSelfUpdateCommand, getSelfUpdateUnavailableInstruction, getPackageDir, getExportTemplateDir, getReadmePath, getDocsPath, getExamplesPath, getChangelogPath, getBundledInteractiveAssetPath, setEmbeddedQuickJSWasmPath, getQuickJSWasmPath, getCodemodeWorkerSpecifier, detectInstallChange, PACKAGE_NAME, APP_NAME, APP_TITLE, CONFIG_DIR_NAME, VERSION, ENV_AGENT_DIR, ENV_SESSION_DIR, expandTildePath, getShareViewerUrl, getAgentDir, getAuthPath, getSettingsPath, getBinDir, getSessionsDir, getDebugLogPath, Z, fuzzyMatch, fuzzyFilter, visibleWidth, wrapTextWithAnsi, truncateToWidth, sliceByColumn, CombinedAutocompleteProvider, indexedColor, rgbColor, parseColor, colorToRgb, mixColors, foregroundAnsi, backgroundAnsi, Key, matchesKey, detectCapabilities, getCapabilities, getTerminalColorMode, setCapabilityOverrides, getImageDimensions, hyperlink, imageFallback, Container, isViewportTUI, Box, TUI_KEYBINDINGS, KeybindingsManager, setKeybindings, getKeybindings, Text, Loader, CancellableLoader, SelectList, Editor, setImageTranscoder, Image, Input, Markdown, MouseRegion, ScrollView, SettingsList, Spacer, TruncatedText, VStack, getNativeClipboard, isAppleTerminalSession, ProcessTerminal, TuiAltScreen, TuiMainScreen, exports_dist, FS_WATCH_RETRY_DELAY_MS, closeWatcher, watchWithErrorHandler, loadAllHighlightLanguages, SYSTEM_THEME_NAME, setThemeJsonValidator, setTerminalColors, setTerminalColorScheme, markTerminalColorsPending, Theme, getAvailableThemes, getAvailableThemesWithPaths, loadThemeFromPath, getThemeByName, parseAutoThemeSetting, resolveThemeSetting, getTerminalTheme, theme, setRegisteredThemes, initTheme, setTheme, setThemeInstance, onThemeChange, stopThemeWatcher, getResolvedThemeColors, getThemeExportColors, highlightCode, getLanguageFromPath, getMarkdownTheme, getSelectListTheme, getEditorTheme, getSettingsListTheme, formatKeyText, keyText, keyDisplayText, keyHint, rawKeyHint };
@@ -1718,12 +1718,24 @@ var init_types = __esm(() => {
1718
1718
  smart: "openrouter/deepseek/deepseek-v4-pro-0813",
1719
1719
  ultra: "openrouter/anthropic/claude-opus-5.5"
1720
1720
  },
1721
+ cursor: {
1722
+ smol: "gpt-5.4-mini",
1723
+ regular: "claude-sonnet-5-5",
1724
+ smart: "claude-opus-5-5",
1725
+ ultra: "claude-fable-5-1"
1726
+ },
1721
1727
  devin: {
1722
1728
  smol: "devin",
1723
1729
  regular: "devin",
1724
1730
  smart: "devin",
1725
1731
  ultra: "devin"
1726
1732
  },
1733
+ amp: {
1734
+ smol: "low",
1735
+ regular: "medium",
1736
+ smart: "high",
1737
+ ultra: "ultra"
1738
+ },
1727
1739
  acp: {
1728
1740
  smol: "",
1729
1741
  regular: "",
@@ -1800,7 +1812,9 @@ var init_types = __esm(() => {
1800
1812
  "claude-managed",
1801
1813
  "opencode",
1802
1814
  "acp",
1803
- "dsh"
1815
+ "dsh",
1816
+ "amp",
1817
+ "cursor"
1804
1818
  ]);
1805
1819
  SteerModeSchema = exports_zod.enum(["steer", "queue"]);
1806
1820
  SteeringStatusSchema = exports_zod.enum([
@@ -1846,7 +1860,9 @@ var init_types = __esm(() => {
1846
1860
  claude: ["queue"],
1847
1861
  codex: ["steer", "queue"],
1848
1862
  acp: [],
1849
- dsh: []
1863
+ dsh: [],
1864
+ amp: ["queue"],
1865
+ cursor: ["steer", "queue"]
1850
1866
  };
1851
1867
  FollowUpConfigSchema = exports_zod.object({
1852
1868
  disabled: exports_zod.boolean().optional(),
@@ -2365,7 +2381,12 @@ var init_types = __esm(() => {
2365
2381
  lineNumber: exports_zod.number().int().min(0),
2366
2382
  createdAt: exports_zod.iso.datetime()
2367
2383
  }).openapi("SessionLog");
2368
- SessionCostSourceSchema = exports_zod.enum(["harness", "pricing-table", "unpriced"]);
2384
+ SessionCostSourceSchema = exports_zod.enum([
2385
+ "harness",
2386
+ "pricing-table",
2387
+ "unpriced",
2388
+ "estimated"
2389
+ ]);
2369
2390
  SessionCostModelBreakdownSchema = exports_zod.object({
2370
2391
  model: exports_zod.string(),
2371
2392
  inputTokens: exports_zod.number().int().nonnegative(),
@@ -2654,7 +2675,7 @@ var init_types = __esm(() => {
2654
2675
  id: exports_zod.string().describe("Unique node identifier, used in 'next' and 'inputs' mappings"),
2655
2676
  type: exports_zod.string().describe("Executor type: 'agent-task', 'script', 'swarm-script', 'raw-llm', 'system-one-decision', 'validate', 'property-match'"),
2656
2677
  label: exports_zod.string().optional().describe("Human-readable label for UI display"),
2657
- config: exports_zod.record(exports_zod.string(), exports_zod.unknown()).describe("Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. " + "For script: { runtime, script, args?, timeout? }. " + "For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. " + "For system-one-decision (typed decisions, Jev by default): { provider? ('typesafe' default | 'openrouter' | 'laya'; a literal, never a {{token}}), state, questions: { <id>: { type: 'noul'|'choice'|'score', instructions, criteria? } }, returns: { <id>: { type } }, model? (provider-specific; unset = the provider's default, and laya has none so it sends no model and picks its own checkpoint), timeoutMs?, maxRetries? (0-3), humanReview? { band: { min, max } (0-1, inclusive), approvers: { users?, roles?, policy }, title?, timeout?, notifications? } }; each provider needs its own global secret (TYPESAFE_API_KEY, OPENROUTER_API_KEY, or LAYA_API_KEY; laya also needs the global config LAYA_URL), and a save warns and a run fails before any node executes when one is missing; system-one-decision nodes must not set retry or validation.retry. With humanReview, an answer whose confidence is inside the band waits for a person (human-in-the-loop approval), and next must map ports { approved, rejected?, timeout? }. " + "Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. " + "SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. " + "Pass dynamic values through config.args instead (inline script receives them as argv; swarm-script receives its args object). " + "NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, " + "while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."),
2678
+ config: exports_zod.record(exports_zod.string(), exports_zod.unknown()).describe("Executor-specific config. For agent-task: { template, outputSchema?, agentId?, routingReason?, routingNote?, tags?, priority?, dir?, vcsRepo?, model? }; configured agentId defaults routingReason to human_pinned. " + "For script: { runtime, script, args?, timeout? }. " + "For swarm-script: { scriptName, scope?, pinHash?, args?, fsMode?, timeoutMs? (1000-300000) }. " + "For system-one-decision (typed decisions, Jev by default): { provider? ('typesafe' default | 'openrouter' | 'laya'; a literal, never a {{token}}), state, questions: { <id>: { type: 'noul'|'choice'|'score', instructions, criteria? } }, returns: { <id>: { type } }, model? (provider-specific; unset = the provider's default, and laya has none so it sends no model and picks its own checkpoint), timeoutMs?, maxRetries? (0-3), humanReview? { band: { min, max } (0-1, inclusive), approvers: { users?, roles?, policy }, title?, timeout?, notifications? } }; each provider needs its own global secret (TYPESAFE_API_KEY, OPENROUTER_API_KEY, or LAYA_API_KEY; laya also needs the global config LAYA_URL), and a save warns and a run fails before any node executes when one is missing; system-one-decision nodes must not set retry or validation.retry. With humanReview, an answer whose confidence is inside the band waits for a person (human-in-the-loop approval), and next must map ports { approved, rejected?, timeout? }. " + "Agent-task templates and ordinary config values support {{interpolation}} from the node's inputs context, including trigger and declared upstream aliases. " + "SECURITY: executable source for script/swarm-script nodes does not interpolate trigger.* or upstream node outputs; only input/workflow/swarm/run values are allowed in inline script source, and named swarm-script source is not workflow-interpolated. " + 'Pass dynamic values through config.args instead (inline script receives them as argv, with runtime: "bash" running bash -c <script> ...args so args[0] is $0 and args[1] is $1; swarm-script receives its args object). ' + "NOTE: config.outputSchema on agent-task nodes validates the AGENT's raw JSON output, " + "while node-level outputSchema validates the EXECUTOR's return value ({taskId, taskOutput})."),
2658
2679
  next: exports_zod.union([exports_zod.string(), exports_zod.array(exports_zod.string()), exports_zod.record(exports_zod.string(), exports_zod.string())]).optional().describe("Next node(s): string for simple chaining, string[] for fan-out to parallel nodes, or record for port-based routing ({pass: 'a', fail: 'b'})"),
2659
2680
  validation: StepValidationConfigSchema.optional(),
2660
2681
  retry: RetryPolicySchema.optional(),
@@ -3389,7 +3410,9 @@ var init_types = __esm(() => {
3389
3410
  "devin",
3390
3411
  "gemini",
3391
3412
  "acp",
3392
- "dsh"
3413
+ "dsh",
3414
+ "amp",
3415
+ "cursor"
3393
3416
  ]);
3394
3417
  PricingTokenClassSchema = exports_zod.enum([
3395
3418
  "input",
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  init_registry,
3
3
  registerTemplate
4
- } from "./cli-qjjvzwzd.js";
4
+ } from "./cli-5c2j5yvx.js";
5
5
  import {
6
6
  __esm
7
7
  } from "./cli-bc05qbss.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  lazyApi
3
- } from "./cli-ykk5jaax.js";
3
+ } from "./cli-nexwh8zg.js";
4
4
 
5
5
  // node_modules/@earendil-works/pi-ai/dist/api/bedrock-converse-stream.lazy.js
6
6
  var __rewriteRelativeImportExtension = function(path, preserveJsx) {
@@ -4,12 +4,12 @@ import {
4
4
  linkIdentity,
5
5
  recordUnmappedIdentity,
6
6
  resolveIdentity
7
- } from "./cli-kp42yek0.js";
7
+ } from "./cli-fyra5y8k.js";
8
8
  import {
9
9
  getKv,
10
10
  init_db,
11
11
  upsertKv
12
- } from "./cli-jf7wmv1r.js";
12
+ } from "./cli-tsvj33y0.js";
13
13
 
14
14
  // src/slack/enrich.ts
15
15
  init_db();
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  claudeCatalogModelId,
3
+ cursorCatalogRef,
3
4
  dshCatalogRef,
4
5
  init_runtime_model_catalog,
5
6
  init_src,
6
7
  reasoningLevelsFor,
7
8
  runtimeCatalogModel,
8
9
  runtimeCatalogSection
9
- } from "./cli-jyy6pm2f.js";
10
+ } from "./cli-g3qgrzck.js";
10
11
 
11
12
  // src/providers/reasoning-effort.ts
12
13
  init_src();
@@ -30,6 +31,8 @@ function lookupModel(harness, model) {
30
31
  modelId = model;
31
32
  } else if (harness === "dsh") {
32
33
  ({ providerId, modelId } = dshCatalogRef(model));
34
+ } else if (harness === "cursor") {
35
+ ({ providerId, modelId } = cursorCatalogRef(model));
33
36
  } else {
34
37
  ({ providerId, modelId } = splitProviderModel(model));
35
38
  if (!providerId)
@@ -110,6 +113,10 @@ function applyReasoningEffort(harness, model, level) {
110
113
  return applyOpencodeEffort(model, level);
111
114
  case "dsh":
112
115
  return { kind: "dsh-effort", reasoningEffort: level };
116
+ case "amp":
117
+ return { kind: "amp-effort", reasoningEffort: level };
118
+ case "cursor":
119
+ return { kind: "cursor-effort", reasoningEffort: level };
113
120
  default: {
114
121
  const _exhaustive = harness;
115
122
  return _exhaustive;