@code-yeongyu/senpi 2026.8.22 → 2026.8.24

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 (230) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/bun-runtime.d.ts +58 -0
  3. package/dist/bun-runtime.d.ts.map +1 -0
  4. package/dist/bun-runtime.js +163 -0
  5. package/dist/bun-runtime.js.map +1 -0
  6. package/dist/cli.js +45 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/core/agent-abort-provenance.d.ts +5 -5
  9. package/dist/core/agent-abort-provenance.d.ts.map +1 -1
  10. package/dist/core/agent-abort-provenance.js +3 -0
  11. package/dist/core/agent-abort-provenance.js.map +1 -1
  12. package/dist/core/agent-session.d.ts +10 -2
  13. package/dist/core/agent-session.d.ts.map +1 -1
  14. package/dist/core/agent-session.js +85 -26
  15. package/dist/core/agent-session.js.map +1 -1
  16. package/dist/core/agent-settled-delivery.d.ts +13 -1
  17. package/dist/core/agent-settled-delivery.d.ts.map +1 -1
  18. package/dist/core/agent-settled-delivery.js +33 -2
  19. package/dist/core/agent-settled-delivery.js.map +1 -1
  20. package/dist/core/extensions/builtin/goal/agent-end-continuation.d.ts.map +1 -1
  21. package/dist/core/extensions/builtin/goal/agent-end-continuation.js +10 -0
  22. package/dist/core/extensions/builtin/goal/agent-end-continuation.js.map +1 -1
  23. package/dist/core/extensions/builtin/goal/cache-warm-renderer.d.ts.map +1 -1
  24. package/dist/core/extensions/builtin/goal/cache-warm-renderer.js +2 -3
  25. package/dist/core/extensions/builtin/goal/cache-warm-renderer.js.map +1 -1
  26. package/dist/core/extensions/builtin/goal/cache-warm.d.ts +6 -0
  27. package/dist/core/extensions/builtin/goal/cache-warm.d.ts.map +1 -1
  28. package/dist/core/extensions/builtin/goal/cache-warm.js +43 -0
  29. package/dist/core/extensions/builtin/goal/cache-warm.js.map +1 -1
  30. package/dist/core/extensions/builtin/goal/continuation.d.ts +1 -1
  31. package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
  32. package/dist/core/extensions/builtin/goal/continuation.js +1 -1
  33. package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
  34. package/dist/core/extensions/builtin/goal/index.d.ts.map +1 -1
  35. package/dist/core/extensions/builtin/goal/index.js +0 -8
  36. package/dist/core/extensions/builtin/goal/index.js.map +1 -1
  37. package/dist/core/extensions/builtin/goal/monitor-continuation-types.d.ts +1 -0
  38. package/dist/core/extensions/builtin/goal/monitor-continuation-types.d.ts.map +1 -1
  39. package/dist/core/extensions/builtin/goal/monitor-continuation-types.js.map +1 -1
  40. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts +2 -1
  41. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
  42. package/dist/core/extensions/builtin/goal/monitor-continuation.js +31 -3
  43. package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
  44. package/dist/core/extensions/builtin/goal/wait-ticker.d.ts.map +1 -1
  45. package/dist/core/extensions/builtin/goal/wait-ticker.js +14 -9
  46. package/dist/core/extensions/builtin/goal/wait-ticker.js.map +1 -1
  47. package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.d.ts.map +1 -1
  48. package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.js +5 -23
  49. package/dist/core/extensions/builtin/webfetch/webfetch/fetcher.js.map +1 -1
  50. package/dist/core/extensions/builtin/webfetch/webfetch/response-body.d.ts +11 -0
  51. package/dist/core/extensions/builtin/webfetch/webfetch/response-body.d.ts.map +1 -0
  52. package/dist/core/extensions/builtin/webfetch/webfetch/response-body.js +54 -0
  53. package/dist/core/extensions/builtin/webfetch/webfetch/response-body.js.map +1 -0
  54. package/dist/core/model-config-schema.d.ts +12 -12
  55. package/dist/core/model-config-schema.js +2 -2
  56. package/dist/core/model-config-schema.js.map +1 -1
  57. package/dist/core/model-resolver.js +2 -2
  58. package/dist/core/model-resolver.js.map +1 -1
  59. package/dist/core/session-work-barrier.d.ts.map +1 -1
  60. package/dist/core/session-work-barrier.js +38 -1
  61. package/dist/core/session-work-barrier.js.map +1 -1
  62. package/dist/core/tools/read.d.ts.map +1 -1
  63. package/dist/core/tools/read.js +5 -0
  64. package/dist/core/tools/read.js.map +1 -1
  65. package/dist/modes/interactive/aborted-error-label.d.ts +2 -1
  66. package/dist/modes/interactive/aborted-error-label.d.ts.map +1 -1
  67. package/dist/modes/interactive/aborted-error-label.js +20 -5
  68. package/dist/modes/interactive/aborted-error-label.js.map +1 -1
  69. package/dist/modes/interactive/components/status-indicator.d.ts +3 -0
  70. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  71. package/dist/modes/interactive/components/status-indicator.js +7 -1
  72. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  73. package/dist/modes/interactive/interactive-mode.d.ts +2 -0
  74. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  75. package/dist/modes/interactive/interactive-mode.js +50 -10
  76. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  77. package/dist/modes/interactive/streaming-reveal.d.ts +8 -0
  78. package/dist/modes/interactive/streaming-reveal.d.ts.map +1 -1
  79. package/dist/modes/interactive/streaming-reveal.js +12 -0
  80. package/dist/modes/interactive/streaming-reveal.js.map +1 -1
  81. package/dist/senpi +45 -2
  82. package/docs/AGENTS.md +3 -1
  83. package/examples/AGENTS.md +21 -6
  84. package/examples/extensions/AGENTS.md +50 -0
  85. package/node_modules/@anthropic-ai/claude-agent-sdk/bridge.mjs +90 -88
  86. package/node_modules/@anthropic-ai/claude-agent-sdk/browser-sdk.js +40 -40
  87. package/node_modules/@anthropic-ai/claude-agent-sdk/manifest.json +20 -21
  88. package/node_modules/@anthropic-ai/claude-agent-sdk/manifest.zst.json +24 -25
  89. package/node_modules/@anthropic-ai/claude-agent-sdk/package.json +2 -2
  90. package/node_modules/@anthropic-ai/claude-agent-sdk/sdk-tools.d.ts +102 -5
  91. package/node_modules/@anthropic-ai/claude-agent-sdk/sdk.d.ts +31 -15
  92. package/node_modules/@anthropic-ai/claude-agent-sdk/sdk.mjs +80 -78
  93. package/node_modules/@aws-sdk/client-bedrock-runtime/dist-cjs/index.js +1 -1
  94. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +13 -13
  95. package/node_modules/@aws-sdk/core/package.json +5 -5
  96. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  97. package/node_modules/@aws-sdk/credential-provider-http/package.json +7 -7
  98. package/node_modules/@aws-sdk/credential-provider-ini/package.json +12 -12
  99. package/node_modules/@aws-sdk/credential-provider-login/package.json +6 -6
  100. package/node_modules/@aws-sdk/credential-provider-node/package.json +10 -10
  101. package/node_modules/@aws-sdk/credential-provider-process/package.json +5 -5
  102. package/node_modules/@aws-sdk/credential-provider-sso/package.json +7 -7
  103. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +6 -6
  104. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +4 -4
  105. package/node_modules/@aws-sdk/middleware-eventstream/package.json +4 -4
  106. package/node_modules/@aws-sdk/middleware-websocket/package.json +6 -6
  107. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  108. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  109. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  110. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  111. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  112. package/node_modules/@aws-sdk/nested-clients/package.json +8 -8
  113. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +3 -3
  114. package/node_modules/@aws-sdk/token-providers/package.json +6 -6
  115. package/node_modules/@aws-sdk/types/package.json +2 -2
  116. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  117. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +46 -0
  118. package/node_modules/@code-yeongyu/senpi-codemode/README.md +5 -0
  119. package/node_modules/@code-yeongyu/senpi-codemode/package.json +5 -5
  120. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/eval-notifier.ts +16 -4
  121. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/runtime-factory.ts +4 -1
  122. package/node_modules/@code-yeongyu/senpi-codemode/src/extension/runtime-info.ts +41 -0
  123. package/node_modules/@code-yeongyu/senpi-codemode/src/index.ts +9 -3
  124. package/node_modules/@code-yeongyu/senpi-codemode/src/interpreters/detect.ts +17 -4
  125. package/node_modules/@code-yeongyu/senpi-codemode/src/interpreters/resolve-command.ts +68 -0
  126. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/AGENTS.md +40 -0
  127. package/node_modules/@code-yeongyu/senpi-codemode/src/timeouts/idle-timeout.ts +33 -4
  128. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/AGENTS.md +40 -0
  129. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/cell-runtime.ts +5 -1
  130. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-manager.ts +1 -1
  131. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-cell-notification.ts +3 -8
  132. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-notification-queue.ts +2 -6
  133. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool-options.ts +3 -0
  134. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +2 -0
  135. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/render.ts +60 -3
  136. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/runtime-label.ts +49 -0
  137. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/types.ts +13 -0
  138. package/node_modules/@earendil-works/pi-agent-core/package.json +4 -4
  139. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +5 -1
  140. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts.map +1 -1
  141. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +13 -5
  142. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
  143. package/node_modules/@earendil-works/pi-ai/dist/cursor/composer-prompt.d.ts +27 -0
  144. package/node_modules/@earendil-works/pi-ai/dist/cursor/composer-prompt.d.ts.map +1 -0
  145. package/node_modules/@earendil-works/pi-ai/dist/cursor/composer-prompt.js +54 -0
  146. package/node_modules/@earendil-works/pi-ai/dist/cursor/composer-prompt.js.map +1 -0
  147. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  148. package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
  149. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  150. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opengateway.json +1 -1
  151. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  152. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  153. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/markers.d.ts +4 -0
  154. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/markers.d.ts.map +1 -1
  155. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/markers.js +14 -0
  156. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/markers.js.map +1 -1
  157. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.d.ts.map +1 -1
  158. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js +65 -35
  159. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/recovery-stream.js.map +1 -1
  160. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.d.ts.map +1 -1
  161. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js +40 -12
  162. package/node_modules/@earendil-works/pi-ai/dist/tool-call-middleware/protocols/kimi-xtml/thinking-recovery.js.map +1 -1
  163. package/node_modules/@earendil-works/pi-ai/package.json +4 -4
  164. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  165. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  166. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  167. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +7 -4
  168. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  169. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  170. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +19 -7
  171. package/node_modules/@smithy/signature-v4/dist-es/HeaderFormatter.js +4 -1
  172. package/node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js +4 -1
  173. package/node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js +4 -1
  174. package/node_modules/@smithy/signature-v4/dist-es/headerUtil.js +10 -3
  175. package/node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js +4 -1
  176. package/node_modules/@smithy/signature-v4/dist-es/prepareRequest.js +4 -1
  177. package/node_modules/@smithy/signature-v4/package.json +2 -2
  178. package/node_modules/typebox/build/format/email.mjs +1 -1
  179. package/node_modules/typebox/build/format/idna/idn-hostname.mjs +19 -1
  180. package/node_modules/typebox/build/format/json_pointer.d.mts +2 -2
  181. package/node_modules/typebox/build/format/json_pointer.mjs +2 -2
  182. package/node_modules/typebox/build/format/json_pointer_uri_fragment.d.mts +2 -2
  183. package/node_modules/typebox/build/format/json_pointer_uri_fragment.mjs +2 -2
  184. package/node_modules/typebox/build/format/relative_json_pointer.d.mts +2 -2
  185. package/node_modules/typebox/build/format/relative_json_pointer.mjs +2 -2
  186. package/node_modules/typebox/build/system/memory/assign.mjs +2 -1
  187. package/node_modules/typebox/build/system/memory/create.mjs +3 -4
  188. package/node_modules/typebox/build/system/memory/discard.mjs +2 -2
  189. package/node_modules/typebox/build/system/memory/freeze.d.mts +4 -0
  190. package/node_modules/typebox/build/system/memory/freeze.mjs +6 -0
  191. package/node_modules/typebox/build/system/memory/update.mjs +3 -2
  192. package/node_modules/typebox/package.json +1 -1
  193. package/package.json +36 -36
  194. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/LICENSE +0 -201
  195. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/README.md +0 -62
  196. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +0 -154
  197. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/constants.js +0 -2
  198. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromEnvSigningName.js +0 -16
  199. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +0 -80
  200. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js +0 -8
  201. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +0 -11
  202. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +0 -10
  203. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/index.js +0 -4
  204. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/nodeProvider.js +0 -5
  205. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js +0 -7
  206. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js +0 -7
  207. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js +0 -8
  208. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/constants.d.ts +0 -8
  209. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/fromEnvSigningName.d.ts +0 -18
  210. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/fromSso.d.ts +0 -12
  211. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/fromStatic.d.ts +0 -9
  212. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/getNewSsoOidcToken.d.ts +0 -8
  213. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/getSsoOidcClient.d.ts +0 -7
  214. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/index.d.ts +0 -7
  215. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/nodeProvider.d.ts +0 -18
  216. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/constants.d.ts +0 -3
  217. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromEnvSigningName.d.ts +0 -8
  218. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromSso.d.ts +0 -10
  219. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/fromStatic.d.ts +0 -5
  220. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getNewSsoOidcToken.d.ts +0 -9
  221. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/getSsoOidcClient.d.ts +0 -7
  222. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/index.d.ts +0 -7
  223. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/nodeProvider.d.ts +0 -3
  224. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/validateTokenExpiry.d.ts +0 -2
  225. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/validateTokenKey.d.ts +0 -1
  226. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/ts3.4/writeSSOTokenToFile.d.ts +0 -2
  227. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/validateTokenExpiry.d.ts +0 -5
  228. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/validateTokenKey.d.ts +0 -4
  229. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-types/writeSSOTokenToFile.d.ts +0 -5
  230. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +0 -69
@@ -1,53 +1,51 @@
1
1
  {
2
- "version": "2.1.238",
3
- "commit": "46283063a4c23f7afadb8440f549264ad93b7c06",
4
- "buildDate": "2026-08-20T15:26:31Z",
2
+ "version": "2.1.241",
3
+ "commit": "c87e2742fc9ad269ec8920460d00a091b1e410f0",
4
+ "buildDate": "2026-08-22T23:04:33Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude",
8
- "checksum": "1c196c456373b57818ae87df84aecee96cb659448c0d6a6bbb401ac5758431b2",
9
- "size": 321263536
8
+ "checksum": "1495eb7c42d3b4451f5f1cd38b6d498d22a4a38c802bc2be5c1cf1795e64820d",
9
+ "size": 325055632
10
10
  },
11
11
  "darwin-x64": {
12
12
  "binary": "claude",
13
- "checksum": "d10bc7bb1720435f8830aa3ee74085f09348d2b1a2a152bdee251b770d76cc73",
14
- "size": 329970544
13
+ "checksum": "cf01b8cace66485ef5b476f14d96f69af61194a38c3df8412a80eb8f1316c10d",
14
+ "size": 333784816
15
15
  },
16
16
  "linux-arm64": {
17
17
  "binary": "claude",
18
- "checksum": "28d736120a6b14c5eae1ad1470e73371818c9c2fa41e0b3c7040207aa2d4edee",
19
- "size": 335993064
18
+ "checksum": "2db0cb893ebed8ef8aee46656da45bc6801fa2586293dae64abfa3ade894a2fe",
19
+ "size": 339794152
20
20
  },
21
21
  "linux-x64": {
22
22
  "binary": "claude",
23
- "checksum": "0933b286cf94e1b2504b35ac165ab76b8f822735d53371c56393988c23040d58",
24
- "size": 338860336
23
+ "checksum": "0771bd866cff82b76581fc0499f6529e1a36845078f144f8c81dccb3bc7037b8",
24
+ "size": 342636848
25
25
  },
26
26
  "linux-arm64-musl": {
27
27
  "binary": "claude",
28
- "checksum": "a47d45149ea7c74e4474bce3c7628c4643b0541801b42053d6e26fd5e3203fdd",
29
- "size": 329137944
28
+ "checksum": "e12c773a5173319f99ceb2b00445d30216e3529e1fd1fe12b4bfced1fc3f8b04",
29
+ "size": 332939032
30
30
  },
31
31
  "linux-x64-musl": {
32
32
  "binary": "claude",
33
- "checksum": "33546c2f7947bbfdb46a969123c5329e607c414045cd3645a29aa3cfe023c6ab",
34
- "size": 332988384
33
+ "checksum": "820351f6b5fd78314240c21c6f20077c77091e5ffbcd7cd246e969ec417ffb2c",
34
+ "size": 336756704
35
35
  },
36
36
  "win32-x64": {
37
37
  "binary": "claude.exe",
38
- "checksum": "223bc058b5aef48138876e28de5d00387e4fd7362a18e733143bf00819c01aab",
39
- "size": 334150816
38
+ "checksum": "c49a05922a787c33478067a5164002932235f6611948523b55ae1fbdb303ac1f",
39
+ "size": 337745056
40
40
  },
41
41
  "win32-arm64": {
42
42
  "binary": "claude.exe",
43
- "checksum": "645800d24201c93e5fd6f4308e0292bba9a75900693667401cdffb4361f8e616",
44
- "size": 322051744
43
+ "checksum": "540f12dd4031fa964cd8f05c7e37d43c13677800faf4cad2fec553bd7bb7833a",
44
+ "size": 325645472
45
45
  }
46
46
  },
47
47
  "sdkCompat": {
48
48
  "testedWrapperVersions": [
49
- "0.3.201",
50
- "0.3.202",
51
49
  "0.3.204",
52
50
  "0.3.205",
53
51
  "0.3.206",
@@ -67,6 +65,7 @@
67
65
  "0.3.221",
68
66
  "0.3.222",
69
67
  "0.3.223",
68
+ "0.3.224",
70
69
  "0.3.226",
71
70
  "0.3.227"
72
71
  ],
@@ -1,61 +1,59 @@
1
1
  {
2
- "version": "2.1.238",
3
- "commit": "46283063a4c23f7afadb8440f549264ad93b7c06",
4
- "buildDate": "2026-08-20T15:28:38Z",
2
+ "version": "2.1.241",
3
+ "commit": "c87e2742fc9ad269ec8920460d00a091b1e410f0",
4
+ "buildDate": "2026-08-22T23:07:04Z",
5
5
  "platforms": {
6
6
  "darwin-arm64": {
7
7
  "binary": "claude.zst",
8
- "checksum": "d9b3b89dd4a0ce4deb9b35eff326e8aceef957b59ea8170afbbe29e0801d6a22",
9
- "size": 63807531,
8
+ "checksum": "239155f84019476e9624d864769cf6946f94f7a707c33d57246e1e74ab94f817",
9
+ "size": 64578859,
10
10
  "bundle": {
11
- "checksum": "f01e093504e89c6fb3724417f2ebf9a615f1f46770cc6a8fced0daccff55aa47",
12
- "size": 63810771
11
+ "checksum": "a01fb958a662a9a896faaef18a878f1885b7c3b8c81d16b01a7090f57ad879cd",
12
+ "size": 64579256
13
13
  }
14
14
  },
15
15
  "darwin-x64": {
16
16
  "binary": "claude.zst",
17
- "checksum": "c9f5de6fefd0394b21c0e7e037a5471482c440a7780e21fffae512d5fdbcdc30",
18
- "size": 68484623,
17
+ "checksum": "0aaf39f605514391192973c7c97e6c8ae6d432f05e7d91e914dcc5f582cab2b8",
18
+ "size": 69188990,
19
19
  "bundle": {
20
- "checksum": "ef80b7b9e5ef8c9b2a7735782a0ecd67655cb3c847af55215d9cf6bb366b8325",
21
- "size": 68483882
20
+ "checksum": "573ae01fea364f9e29a5d5c0ceba8310854556d237b5974d3c8264d5caebf76d",
21
+ "size": 69175655
22
22
  }
23
23
  },
24
24
  "linux-arm64": {
25
25
  "binary": "claude.zst",
26
- "checksum": "9b4d5e5598b71420a2e31bab26325dacd3b2b2ad7c5c388c6430855ced6a81fe",
27
- "size": 72698452
26
+ "checksum": "af0c1a3e5392c6852f9fc59a337920c8e6efcc9886b87770c9694f460a60dab8",
27
+ "size": 73495746
28
28
  },
29
29
  "linux-x64": {
30
30
  "binary": "claude.zst",
31
- "checksum": "0af6c2cf837dd6c8805f465581718d89b943921f427a2c13fb2577ec8c69e249",
32
- "size": 73796765
31
+ "checksum": "947ceafc4e7593baa87120fdd9bf0859a08d6fc35ce8ceb65e0194a8acce66c3",
32
+ "size": 74487570
33
33
  },
34
34
  "linux-arm64-musl": {
35
35
  "binary": "claude.zst",
36
- "checksum": "db85271f2cc0e6040318b6e8bbd8c3e812829c1c8c50c964f80a76ac83c75a8a",
37
- "size": 71209714
36
+ "checksum": "e5c998409e79245dd3d737284a0e2b676e50e1f90bfa9f0b2ec69767509ee344",
37
+ "size": 72016241
38
38
  },
39
39
  "linux-x64-musl": {
40
40
  "binary": "claude.zst",
41
- "checksum": "e43e05792a1c034dd54ac7c4f43ae2df01c00181c67d362879bdf119a8098e96",
42
- "size": 72251647
41
+ "checksum": "84d6488d6fe327fcd4f9344725f01bf38831769ce0777e8ca99ba1a763e7d689",
42
+ "size": 73100955
43
43
  },
44
44
  "win32-x64": {
45
45
  "binary": "claude.exe.zst",
46
- "checksum": "b558a80984d13bd3bc8fc2eb011f44051b61078367a91f2458b10beaeee55c96",
47
- "size": 76157543
46
+ "checksum": "df55188ea12a03b35a3db7481bd726615dc982eca0b8d0b55fe5c432304384a7",
47
+ "size": 76706997
48
48
  },
49
49
  "win32-arm64": {
50
50
  "binary": "claude.exe.zst",
51
- "checksum": "912b8524477193d0340cc438cd66cea379441dc815efdcfe262e3c39bcf41ed7",
52
- "size": 72467187
51
+ "checksum": "389f2ec9a83a0f8bb90d3a766f3861ef40250aaeb20e5a3404eecd30d0b08178",
52
+ "size": 73204306
53
53
  }
54
54
  },
55
55
  "sdkCompat": {
56
56
  "testedWrapperVersions": [
57
- "0.3.201",
58
- "0.3.202",
59
57
  "0.3.204",
60
58
  "0.3.205",
61
59
  "0.3.206",
@@ -75,6 +73,7 @@
75
73
  "0.3.221",
76
74
  "0.3.222",
77
75
  "0.3.223",
76
+ "0.3.224",
78
77
  "0.3.226",
79
78
  "0.3.227"
80
79
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anthropic-ai/claude-agent-sdk",
3
- "version": "0.3.238",
3
+ "version": "0.3.241",
4
4
  "main": "sdk.mjs",
5
5
  "types": "sdk.d.ts",
6
6
  "exports": {
@@ -71,5 +71,5 @@
71
71
  "manifest.json",
72
72
  "manifest.zst.json"
73
73
  ],
74
- "claudeCodeVersion": "2.1.238"
74
+ "claudeCodeVersion": "2.1.241"
75
75
  }
@@ -426,6 +426,88 @@ export type ArtifactOutput =
426
426
  truncated?: boolean;
427
427
  scope?: "shared" | "all";
428
428
  }
429
+ | {
430
+ read: {
431
+ url: string;
432
+ bytes: number;
433
+ code: number;
434
+ codeText: string;
435
+ result: string;
436
+ durationMs: number;
437
+ };
438
+ artifactRead?: {
439
+ slug: string;
440
+ ver?: string;
441
+ seeded?: false;
442
+ };
443
+ }
444
+ | {
445
+ watch: {
446
+ url: string;
447
+ watching: boolean;
448
+ outcome: string;
449
+ reason?: string;
450
+ durable_skip_reason?: string;
451
+ task_id?: string;
452
+ since?: number;
453
+ token_expires_at?: number;
454
+ rail?: string;
455
+ trigger_id?: string;
456
+ durable_since?: string;
457
+ status?: number;
458
+ note?: string;
459
+ events?: string[];
460
+ };
461
+ }
462
+ | {
463
+ unwatch: {
464
+ url: string;
465
+ was_watching: boolean;
466
+ };
467
+ }
468
+ | {
469
+ watches: (
470
+ | {
471
+ url: string;
472
+ task_id: string;
473
+ since: number;
474
+ explicit: boolean;
475
+ connected: boolean;
476
+ connecting?: boolean;
477
+ token_expires_at: number;
478
+ armed_via?: string;
479
+ }
480
+ | {
481
+ url: string;
482
+ rail: "durable_wake";
483
+ trigger_id: string;
484
+ since: string;
485
+ events?: string[];
486
+ restored?: boolean;
487
+ }
488
+ | {
489
+ url: string;
490
+ rail: "live_stopped";
491
+ since?: number;
492
+ explicit?: boolean;
493
+ armed_via?: string;
494
+ stop_kind: string;
495
+ }
496
+ )[];
497
+ filter_url?: string;
498
+ arms?: {
499
+ url: string;
500
+ rail?: string;
501
+ state: string;
502
+ reconnect?: boolean;
503
+ failures?: number;
504
+ max_failures?: number;
505
+ next_in_s?: number;
506
+ last_failure?: string;
507
+ reason?: string;
508
+ at?: number;
509
+ }[];
510
+ }
429
511
  | {
430
512
  asset_upload: {
431
513
  id: string;
@@ -2927,11 +3009,21 @@ export interface ProposeGoalInput {
2927
3009
  }
2928
3010
  export interface ArtifactInput {
2929
3011
  /**
2930
- * Omit (or 'publish') to publish file_path. 'list' enumerates artifacts — the user's own by default, see `scope`; only `limit` and `scope` may accompany it. 'upload_asset' adds one local media, PDF, or font file to an existing artifact — pass `url` and `file_path`. 'list_assets' lists the files in an artifact's asset store (pass `url`; `after` continues a listing), 'read_asset' saves one of them to a local file named by its id (pass `url` and `asset_id`, optionally `out_dir`), and 'delete_asset' permanently removes one (pass `url` and `asset_id`). See **Artifact assets** above.
3012
+ * Omit (or 'publish') to publish file_path. 'list' enumerates artifacts — the user's own by default, see `scope`; only `limit` and `scope` may accompany it. 'read' returns the content of the published artifact at `url` (raw HTML for the user's own; an isolated summary, steered by the optional `prompt`, for one shared with them, though a page published in this session's own Slack channel can come back in full as untrusted content) — see **To read an existing artifact's content**. 'watch', 'unwatch', and 'status' manage live-update subscriptions that notify a session when an artifact is republished elsewhere, and those aren't available in this session: 'watch' only reports that — no republish notification reaches this session — and 'status' lists this session's artifact watches (pass `url` to check one). 'upload_asset' adds one local media, PDF, or font file to an existing artifact — pass `url` and `file_path`. 'list_assets' lists the files in an artifact's asset store (pass `url`; `after` continues a listing), 'read_asset' saves one of them to a local file named by its id (pass `url` and `asset_id`, optionally `out_dir`), and 'delete_asset' permanently removes one (pass `url` and `asset_id`). See **Artifact assets** above.
2931
3013
  */
2932
- action?: "publish" | "list" | "upload_asset" | "list_assets" | "read_asset" | "delete_asset";
3014
+ action?:
3015
+ | "publish"
3016
+ | "list"
3017
+ | "read"
3018
+ | "watch"
3019
+ | "unwatch"
3020
+ | "status"
3021
+ | "upload_asset"
3022
+ | "list_assets"
3023
+ | "read_asset"
3024
+ | "delete_asset";
2933
3025
  /**
2934
- * Path to an .html or .md file to render. Required to publish (the default action). Use a short, distinctive basename — it is the last-resort title when the HTML has no <title> and no `title` parameter is given. For 'upload_asset', the local image, video, PDF, or font file to upload.
3026
+ * Path to the .html file to render. Required to publish (the default action). Use a short, distinctive basename — it is the last-resort title when the HTML has no <title> and no `title` parameter is given. For 'upload_asset', the local image, video, PDF, or font file to upload.
2935
3027
  */
2936
3028
  file_path?: string;
2937
3029
  /**
@@ -2959,11 +3051,15 @@ export interface ArtifactInput {
2959
3051
  */
2960
3052
  label?: string;
2961
3053
  /**
2962
- * Existing artifact URL to update in place. Pass whenever the user wants to update an artifact this conversation did not publish — "update my artifact", "keep the same link", a pasted artifact URL — and find the URL with action: "list" or ask the user for the link if you don't have it; without this, the publish creates a separate artifact instead of updating the existing one. Omit for new artifacts and same-conversation redeploys. Must be an artifact the user owns.
3054
+ * Existing artifact URL to update in place. Pass whenever the user wants to update an artifact this conversation did not publish — "update my artifact", "keep the same link", a pasted artifact URL — and find the URL with action: "list" or ask the user for the link if you don't have it; without this, the publish creates a separate artifact instead of updating the existing one. Omit for new artifacts and same-conversation redeploys. Must be an artifact the user owns. For 'read' and the other url-addressed actions: the artifact to act on.
2963
3055
  */
2964
3056
  url?: string;
2965
3057
  /**
2966
- * Last-resort overwrite that DISCARDS another session's published version. On a 409 conflict the normal fix is to re-read the artifact, merge your edits on top of the newer content, and publish again not force. Pass force:true only when the user explicitly wants to replace the other session's version. The tracked baseVersion is still sent; with force:true the server treats it as informational and overwrites. Omit (or false) so a concurrent write 409s instead of being silently clobbered.
3058
+ * read only: what to extract from an artifact shared with the user its content reaches you as an isolated summary answering this. Ignored for artifacts the user owns and for a page published in this session's own Slack channel (raw content is returned); optional.
3059
+ */
3060
+ prompt?: string;
3061
+ /**
3062
+ * Last-resort overwrite that DISCARDS the newer published version — another session's publish, or someone's save from a page that can publish new versions of itself. On a conflict the fix is to merge your changes onto the newer content (handed to you in the rejection, or re-read) and publish again — not force. Pass force:true only when the user has explicitly said to discard that specific version; never to get past a conflict on your own judgment. The tracked baseVersion is still sent; with force:true the server treats it as informational and overwrites, unless it refuses force over a version saved from inside the page. Omit (or false) so a concurrent write conflicts instead of being silently clobbered.
2967
3063
  */
2968
3064
  force?: boolean;
2969
3065
  /**
@@ -3479,6 +3575,7 @@ export interface WebFetchOutput {
3479
3575
  artifactRead?: {
3480
3576
  slug: string;
3481
3577
  ver?: string;
3578
+ seeded?: false;
3482
3579
  };
3483
3580
  }
3484
3581
  export interface WebSearchOutput {
@@ -2449,11 +2449,11 @@ export declare interface Query extends AsyncGenerator<SDKMessage, void> {
2449
2449
  *
2450
2450
  * @param maxThinkingTokens - Maximum tokens for thinking, or null to clear the limit
2451
2451
  * @param thinkingDisplay - Optional thinking display mode for the rest of
2452
- * the session: a value replaces the session display mode, `null` clears it
2453
- * back to the API default, and when omitted the display mode from session
2454
- * start (`thinking.display` / `--thinking-display`) is kept note a
2455
- * session started with thinking disabled has none, so re-enabling thinking
2456
- * without this param yields the API's default display.
2452
+ * the session: a value replaces the session display mode, `null` clears
2453
+ * that override so Claude Code's default display handling applies again,
2454
+ * and when omitted the display mode from session start (`thinking.display`
2455
+ * / `--thinking-display`) is kept a session started with thinking
2456
+ * disabled has none, so re-enabling without this param gets that default.
2457
2457
  */
2458
2458
  setMaxThinkingTokens(maxThinkingTokens: number | null, thinkingDisplay?: 'summarized' | 'omitted' | null): Promise<void>;
2459
2459
  /**
@@ -3126,7 +3126,7 @@ export declare type SDKAuthStatusMessage = {
3126
3126
  };
3127
3127
 
3128
3128
  /**
3129
- * The full set of live background tasks, emitted whenever membership changes (start, completion, kill, a foreground agent being backgrounded). A level signal, unlike the task_started/task_notification edge bookends: consumers that only need 'is background work running' should replace their set with each payload rather than pairing edges, so a missed bookend cannot wedge a stale running indicator. Ordering relative to the bookends for the same transition is unspecified (in practice the level precedes them) and the payload carries ids only, so do not correlate it with the edge stream. The level is per-process: nothing is emitted at startup, so consumers must reset to the empty set whenever the session's CLI process (re)starts and let the next membership change repopulate it.
3129
+ * The full set of live background tasks, emitted whenever membership changes (start, completion, kill, a foreground agent being backgrounded). A level signal, unlike the task_started/task_notification edge bookends: consumers that only need 'is background work running' should replace their set with each payload rather than pairing edges, so a missed bookend cannot wedge a stale running indicator. Ordering relative to the bookends for the same transition is unspecified (in practice the level precedes them) and the payload carries ids only, so do not correlate it with the edge stream. The level is per-process: nothing is emitted at startup, so consumers must reset to the empty set whenever the session's CLI process (re)starts and let the next membership change repopulate it. A host that re-initializes an already-running process (a repeated `initialize` control request, e.g. after reconnecting) is sent a snapshot of the current set right behind the success response to that request, even when it is empty, so it need not wait for a change; CLIs that predate this send nothing there.
3130
3130
  */
3131
3131
  export declare type SDKBackgroundTasksChangedMessage = {
3132
3132
  type: 'system';
@@ -3769,7 +3769,7 @@ declare type SDKControlInterruptRequest = {
3769
3769
  subtype: 'interrupt';
3770
3770
 
3771
3771
  /**
3772
- * When true, the interrupt also cancels every uuid-stamped main-thread command still in the queue or already dequeued for the imminent turn but not yet reachable by the abort (the first-command prewait window) — the same set the response would otherwise list under `still_queued`. Each is closed with a terminal 'cancelled' lifecycle and listed on the response's `cancelled` field. `still_queued` is always empty. (The isFoldInFlight guard cancel_async_message uses does not apply here: this request also aborts the running turn, so a fold-in-flight uuid is never delivered and is swept with the rest. A fold-in-flight uuid's queued_command attachment may already appear in the aborted turn's transcript if the abort landed after the fold's attachment yield — pre-existing leave-queued semantics; it never runs as its own turn.) Uuid-less commands (task notifications) still in the queue are also dequeued but cannot be listed; a uuid-less command already in the prewait window is unreachable by either leg and still runs. When false or absent, queued commands survive the interrupt and are listed under `still_queued` — the interrupt_receipt_v1 contract is unchanged. A Stop-means-stop-everything client (a remote UI's Stop button) sets this true so one round-trip halts the session; a wrapper that wants per-uuid control leaves it false and follows up with cancel_async_message. Advertised by the `interrupt_cancel_queued_v1` capability on system/init; older CLIs ignore the field and behave as if false.
3772
+ * When true, the interrupt also cancels every uuid-stamped main-thread command still in the queue or already dequeued for the imminent turn but not yet reachable by the abort (the first-command prewait window) — the same set the response would otherwise list under `still_queued`. Each is closed with a terminal 'cancelled' lifecycle and listed on the response's `cancelled` field. `still_queued` is then empty, except that a client driving a hosted session lists there what it can no longer recall (a send already in flight to that session, or the first prompt the session was created with). (The isFoldInFlight guard cancel_async_message uses does not apply here: this request also aborts the running turn, so a fold-in-flight uuid is never delivered and is swept with the rest. A fold-in-flight uuid's queued_command attachment may already appear in the aborted turn's transcript if the abort landed after the fold's attachment yield — pre-existing leave-queued semantics; it never runs as its own turn.) Uuid-less commands (task notifications) still in the queue are also dequeued but cannot be listed; a uuid-less command already in the prewait window is unreachable by either leg and still runs. When false or absent, queued commands survive the interrupt and are listed under `still_queued` — the interrupt_receipt_v1 contract is unchanged. A Stop-means-stop-everything client (a remote UI's Stop button) sets this true so one round-trip halts the session; a wrapper that wants per-uuid control leaves it false and follows up with cancel_async_message. Advertised by the `interrupt_cancel_queued_v1` capability on system/init; older CLIs ignore the field and behave as if false.
3773
3773
  */
3774
3774
  cancel_queued?: boolean;
3775
3775
  };
@@ -3779,7 +3779,7 @@ declare type SDKControlInterruptRequest = {
3779
3779
  */
3780
3780
  export declare type SDKControlInterruptResponse = {
3781
3781
  /**
3782
- * Uuids of async user messages that survive this interrupt: commands still in the queue, plus any batch already dequeued for the imminent turn but not yet reachable by the abort. These WILL run unless cancelled first (or unless the request set cancel_queued:true, in which case this list is always empty — every uuid-stamped survivor is removed, emitted a terminal `cancelled` synchronously, and listed under `cancelled` instead). Cancellation granularity: uuids still in the queue are individually cancellable via cancel_async_message; once a batch is dequeued and coalesced into one turn, cancelling a NON-representative member uuid is a no-op (its content still runs), while cancelling the batch-representative uuid drops the WHOLE coalesced batch — in both cases the cancel response reports cancelled:false because the message was no longer in the queue. Coverage caveats: only uuid-STAMPED messages appear (a message enqueued without a uuid still runs but is never listed, so [] does not mean "nothing will run"); only main-thread messages are listed (subagent-addressed messages are out of scope); and the list may include internally-enqueued uuids the client never sent (cron triggers, auto-resume continuations) — ignore unknown uuids rather than treating them as an error. Ordering: on a clean interrupt this receipt is written before the interrupted turn result; a turn that crashes during interrupt handling emits its error result on a direct-write path that may precede the receipt. Snapshot is taken synchronously with abort processing — probing the queue after the interrupted result instead always loses the race against the drain loop, which starts the next queued turn immediately.
3782
+ * Uuids of async user messages that survive this interrupt: commands still in the queue, plus any batch already dequeued for the imminent turn but not yet reachable by the abort. These WILL run unless cancelled first (or unless the request set cancel_queued:true, in which case every uuid-stamped survivor this process holds is removed, emitted a terminal `cancelled` synchronously, and listed under `cancelled` instead — leaving here only what a client driving a hosted session can no longer recall: a send already in flight to that session, or the first prompt the session was created with). Cancellation granularity: uuids still in the queue are individually cancellable via cancel_async_message; once a batch is dequeued and coalesced into one turn, cancelling a NON-representative member uuid is a no-op (its content still runs), while cancelling the batch-representative uuid drops the WHOLE coalesced batch — in both cases the cancel response reports cancelled:false because the message was no longer in the queue. Coverage caveats: only uuid-STAMPED messages appear (a message enqueued without a uuid still runs but is never listed, so [] does not mean "nothing will run"); only main-thread messages are listed (subagent-addressed messages are out of scope); and the list may include internally-enqueued uuids the client never sent (cron triggers, auto-resume continuations) — ignore unknown uuids rather than treating them as an error. Ordering: on a clean interrupt this receipt is written before the interrupted turn result; a turn that crashes during interrupt handling emits its error result on a direct-write path that may precede the receipt. Snapshot is taken synchronously with abort processing — probing the queue after the interrupted result instead always loses the race against the drain loop, which starts the next queued turn immediately.
3783
3783
  */
3784
3784
  still_queued: string[];
3785
3785
  /**
@@ -4102,7 +4102,7 @@ declare type SDKControlSetColorRequest = {
4102
4102
  };
4103
4103
 
4104
4104
  /**
4105
- * Sets the maximum number of thinking tokens for extended thinking. When max_thinking_tokens is omitted or null, thinking resets to the session default: any mid-session budget override is cleared (back to the spawn-time budget, if one was set), and thinking stays off for sessions that have it disabled. thinking_display optionally sets the thinking display mode for the rest of the session: a value replaces the session display mode, null clears it back to the API default, and when omitted the display mode from session start (--thinking-display) is kept.
4105
+ * Sets the maximum number of thinking tokens for extended thinking. When max_thinking_tokens is omitted or null, thinking resets to the session default: any mid-session budget override is cleared (back to the spawn-time budget, if one was set), and thinking stays off for sessions that have it disabled. thinking_display optionally sets the thinking display mode for the rest of the session: a value replaces the session display mode, null clears that override so Claude Code's default display handling applies again, and when omitted the display mode from session start (--thinking-display) is kept.
4106
4106
  */
4107
4107
  declare type SDKControlSetMaxThinkingTokensRequest = {
4108
4108
  subtype: 'set_max_thinking_tokens';
@@ -4372,9 +4372,9 @@ export declare type SDKMessageOrigin = {
4372
4372
  } | {
4373
4373
  kind: 'task-notification';
4374
4374
  /**
4375
- * Present when the delivery is the fired stored prompt of a scheduled task/routine ('scheduled-trigger', stamped from server-asserted provenance; the schedule attests storage, not authorship), or a coordinator co-member SendMessage delivery ('peer-send-message': model-authored text from another of the same user's sessions, verified by the server-stamped receiver co-membership — task-notification for prompt authority, but distinguishable so the receive-side crossSessionInbound setting can apply to it). The harness frames a scheduled-trigger delivery as the session's assigned task instead of the generic background-notification frame. Absent on webhook, PR-steward, plugin, and background-event deliveries.
4375
+ * Present when the delivery is the fired stored prompt of a scheduled task/routine ('scheduled-trigger', stamped from server-asserted provenance; the schedule attests storage, not authorship), a coordinator co-member SendMessage delivery ('peer-send-message': model-authored text from another of the same user's sessions, verified by the server-stamped receiver co-membership — task-notification for prompt authority, but distinguishable so the receive-side crossSessionInbound setting can apply to it), or a Claude Code Projects delivery that Anthropic servers composed for the project's coordinator session and addressed to one of its thread sessions ('projects-relay': the thread's first message, or a relay carrying project messages — stamped from server-asserted provenance). The harness frames a scheduled-trigger delivery as the session's assigned task and a projects-relay delivery that carries the server's relay stamps as a message from the coordinator session (one without them keeps the generic background-notification frame), instead of the generic background-notification frame. Absent on webhook, PR-steward, plugin, and background-event deliveries.
4376
4376
  */
4377
- subkind?: 'scheduled-trigger' | 'peer-send-message';
4377
+ subkind?: 'scheduled-trigger' | 'peer-send-message' | 'projects-relay';
4378
4378
  } | {
4379
4379
  kind: 'coordinator';
4380
4380
  } | {
@@ -4815,7 +4815,7 @@ export declare type SDKSystemMessage = {
4815
4815
  */
4816
4816
  effort?: ('low' | 'medium' | 'high' | 'xhigh' | 'max') | null;
4817
4817
  /**
4818
- * Protocol capabilities this CLI supports, so SDK consumers can feature-detect instead of version-sniffing. Open set — ignore unknown values; check each capability for exactly the behavior you use. 'interrupt_receipt_v1' = the interrupt control_response success payload carries still_queued (uuids of async user messages that survive the interrupt). 'interrupt_cancel_queued_v1' = the interrupt control_request honors cancel_queued:true (queued and pending-dispatch commands are cancelled alongside the abort, listed on the response's cancelled field; still_queued is always empty — including any uuid that was mid-fold at the interrupt instant, since this request also aborts and the fold never delivers it). 'queued_notifications' = the CLI accepts inbound queued_notification stream messages and drains them via ReadNotifications (the CCR backend reads this from the persisted init event to decide whether it may send them). Absent on older CLIs.
4818
+ * Protocol capabilities this CLI supports, so SDK consumers can feature-detect instead of version-sniffing. Open set — ignore unknown values; check each capability for exactly the behavior you use. 'interrupt_receipt_v1' = the interrupt control_response success payload carries still_queued (uuids of async user messages that survive the interrupt). 'interrupt_cancel_queued_v1' = the interrupt control_request honors cancel_queued:true (queued and pending-dispatch commands are cancelled alongside the abort, listed on the response's cancelled field; still_queued is then empty — including any uuid that was mid-fold at the interrupt instant, since this request also aborts and the fold never delivers it — except that a client driving a hosted session lists there what it can no longer recall: a send already in flight to that session, or the first prompt the session was created with). 'queued_notifications' = the CLI accepts inbound queued_notification stream messages and drains them via ReadNotifications (the CCR backend reads this from the persisted init event to decide whether it may send them). Absent on older CLIs.
4819
4819
  */
4820
4820
  capabilities?: string[];
4821
4821
 
@@ -5741,7 +5741,7 @@ export declare interface Settings {
5741
5741
  }[];
5742
5742
  };
5743
5743
  /**
5744
- * Git worktree configuration for --worktree flag.
5744
+ * Git worktree configuration: the CLI --worktree flag, EnterWorktree and agent isolation, plus the location Claude Code Desktop uses for SSH-session worktrees on this machine.
5745
5745
  */
5746
5746
  worktree?: {
5747
5747
  /**
@@ -5760,6 +5760,10 @@ export declare interface Settings {
5760
5760
  * Isolation mode for background sessions in this repo. 'worktree' (default) blocks Edit/Write in the main checkout until EnterWorktree is called. 'none' lets background jobs edit the working copy directly.
5761
5761
  */
5762
5762
  bgIsolation?: 'worktree' | 'none';
5763
+ /**
5764
+ * Directory under which Claude Code Desktop creates the worktrees of SSH sessions that run on this machine (an absolute path or one starting with ~/), instead of <project>/.claude/worktrees. Read by the desktop app from the SSH host user settings; a location chosen in the desktop app's SSH connection settings takes precedence. The CLI (--worktree, EnterWorktree, agent isolation) does not read it yet.
5765
+ */
5766
+ location?: string;
5763
5767
  };
5764
5768
  /**
5765
5769
  * Disable all hooks and statusLine execution
@@ -7405,6 +7409,18 @@ export declare interface Settings {
7405
7409
  * Persisted effort level for supported models.
7406
7410
  */
7407
7411
  effortLevel?: 'low' | 'medium' | 'high' | 'xhigh';
7412
+ /**
7413
+ * Per-model settings keyed by canonical model name.
7414
+ */
7415
+ modelSettings?: {
7416
+ [k: string]: {
7417
+ /**
7418
+ * Persisted effort level for this model.
7419
+ */
7420
+ effortLevel?: 'low' | 'medium' | 'high' | 'xhigh';
7421
+ [k: string]: unknown;
7422
+ };
7423
+ };
7408
7424
  /**
7409
7425
  * Enable ultracode for the session: xhigh effort plus standing dynamic-workflow orchestration. Session-scoped — typically provided via --settings or the apply_flag_settings control request; interactive toggles never persist it. Requires workflows to be enabled and an xhigh-capable model.
7410
7426
  */
@@ -7619,7 +7635,7 @@ export declare interface Settings {
7619
7635
  */
7620
7636
  editorMode?: 'normal' | 'vim';
7621
7637
  /**
7622
- * Which conventions the prompt's editing keys follow: "readline" matches Bash and other readline programs (Ctrl+W deletes back to the previous whitespace); "classic" (default) keeps Claude Code's long-standing behavior (Ctrl+W deletes the previous word)
7638
+ * Which conventions the prompt's word-editing keys follow: "readline" matches Bash and other readline programs (Ctrl+W deletes back to the previous whitespace; Alt+F and Alt+D stop at the end of the current word and Ctrl+Y can paste back what Alt+D deleted; for Alt+B, Alt+F, Alt+D, Ctrl/Option+Arrow and Option/Ctrl+Backspace a word is a run of letters and digits, so punctuation separates words); "classic" (default) keeps Claude Code's long-standing behavior (Ctrl+W deletes the previous word; the word keys use Unicode word segmentation, so foo_bar and 3.14 are one word)
7623
7639
  */
7624
7640
  keybindingFlavor?: 'classic' | 'readline';
7625
7641
  /**
@@ -8207,7 +8223,7 @@ export declare type UserPromptSubmitHookInput = BaseHookInput & {
8207
8223
  hook_event_name: 'UserPromptSubmit';
8208
8224
  prompt: string;
8209
8225
  /**
8210
- * Who authored/injected the prompt: `user` = submitted from the interactive composer, `sdk` = non-interactive entrypoint (`-p` / Agent SDK), `loop_wakeup` = dynamic /loop wakeup, `schedule_wakeup` = scheduled-task fire (CronCreate/routine), `system` = other machine-injected turns (peer/channel messages, task notifications, auto-continuation), `poll_event` = the poll-event channel enqueue-time pass (the hook fires when the host submits an event, before its delivery ack exists — a blocking verdict rejects the event). Currently only set for Anthropic-internal sessions while the field is trialed; external payloads omit it.
8226
+ * Who authored/injected the prompt: `user` = submitted from the interactive composer, `sdk` = non-interactive entrypoint (`-p` / Agent SDK), `loop_wakeup` = dynamic /loop wakeup, `schedule_wakeup` = scheduled-task fire (CronCreate/routine), `system` = other machine-injected turns (peer/channel messages, task notifications, auto-continuation), `poll_event` = the poll-event channel enqueue-time pass (the hook fires when the host submits an event, before its delivery ack exists — a blocking verdict rejects the event). Payloads may omit it while the field rolls out.
8211
8227
  */
8212
8228
  source?: 'user' | 'sdk' | 'system' | 'loop_wakeup' | 'schedule_wakeup' | 'poll_event';
8213
8229
  session_title?: string;