qlogicagent 2.10.22 → 2.10.23

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 (262) hide show
  1. package/README.md +29 -4
  2. package/dist/agent.js +11 -11
  3. package/dist/cli.js +701 -604
  4. package/dist/index.js +700 -603
  5. package/dist/permissions.js +1 -0
  6. package/dist/protocol.js +1 -1
  7. package/dist/types/agent/tool-access.d.ts +1 -30
  8. package/dist/types/agent/tunable-defaults.d.ts +1 -249
  9. package/dist/types/agent/types.d.ts +7 -0
  10. package/dist/types/cli/acp-extended-handlers.d.ts +41 -0
  11. package/dist/types/cli/acp-extended-host-adapter.d.ts +28 -0
  12. package/dist/types/cli/acp-extended-host-adapter.test.d.ts +1 -0
  13. package/dist/types/cli/acp-session-handlers.d.ts +39 -0
  14. package/dist/types/cli/acp-session-handlers.test.d.ts +1 -0
  15. package/dist/types/cli/agent-config-coordinator.d.ts +13 -0
  16. package/dist/types/cli/agent-config-runtime.d.ts +11 -0
  17. package/dist/types/cli/agent-runner-factory.d.ts +2 -0
  18. package/dist/types/cli/agent-runtime-bootstrap.d.ts +64 -0
  19. package/dist/types/cli/agent-status-notifier.d.ts +11 -0
  20. package/dist/types/cli/agent-status-notifier.test.d.ts +1 -0
  21. package/dist/types/cli/base-tool-bootstrap.d.ts +7 -0
  22. package/dist/types/cli/cli-acp-request-handler.d.ts +9 -0
  23. package/dist/types/cli/cli-acp-request-handler.test.d.ts +1 -0
  24. package/dist/types/cli/cli-agent-builder.d.ts +35 -0
  25. package/dist/types/cli/community-skill-installer.d.ts +12 -0
  26. package/dist/types/cli/community-skill-installer.test.d.ts +1 -0
  27. package/dist/types/cli/core-tool-coordinator.d.ts +30 -0
  28. package/dist/types/cli/core-tools/agent-tool-bootstrap.d.ts +10 -0
  29. package/dist/types/cli/core-tools/agent-tool-service.d.ts +18 -0
  30. package/dist/types/cli/core-tools/checkpoint-tool-bootstrap.d.ts +7 -0
  31. package/dist/types/cli/core-tools/checkpoint-tool-service.d.ts +7 -0
  32. package/dist/types/cli/core-tools/config-tool-bootstrap.d.ts +7 -0
  33. package/dist/types/cli/core-tools/config-tool-service.d.ts +7 -0
  34. package/dist/types/cli/core-tools/cron-tool-bootstrap.d.ts +7 -0
  35. package/dist/types/cli/core-tools/cron-tool-service.d.ts +22 -0
  36. package/dist/types/cli/core-tools/cron-tool-service.test.d.ts +1 -0
  37. package/dist/types/cli/core-tools/monitor-tool-bootstrap.d.ts +5 -0
  38. package/dist/types/cli/core-tools/monitor-tool-service.d.ts +6 -0
  39. package/dist/types/cli/core-tools/registry.d.ts +9 -0
  40. package/dist/types/cli/core-tools/team-tool-bootstrap.d.ts +7 -0
  41. package/dist/types/cli/core-tools/team-tool-service.d.ts +21 -0
  42. package/dist/types/cli/core-tools/utility-tool-bootstrap.d.ts +8 -0
  43. package/dist/types/cli/default-project-bootstrap.d.ts +8 -0
  44. package/dist/types/cli/dev-tool-bootstrap.d.ts +4 -0
  45. package/dist/types/cli/dev-tools/lsp-tool-service.d.ts +5 -0
  46. package/dist/types/cli/dev-tools/repl-lsp-tool-services.test.d.ts +1 -0
  47. package/dist/types/cli/dev-tools/repl-tool-service.d.ts +5 -0
  48. package/dist/types/cli/dream-host-adapter.d.ts +19 -0
  49. package/dist/types/cli/handlers/agents-handler.d.ts +28 -14
  50. package/dist/types/cli/handlers/community-handler.d.ts +25 -0
  51. package/dist/types/cli/handlers/community-handler.test.d.ts +1 -0
  52. package/dist/types/cli/handlers/config-handler.d.ts +15 -9
  53. package/dist/types/cli/handlers/config-handler.test.d.ts +1 -0
  54. package/dist/types/cli/handlers/control-handler.d.ts +23 -0
  55. package/dist/types/cli/handlers/dream-handler.d.ts +21 -1
  56. package/dist/types/cli/handlers/files-handler.d.ts +15 -9
  57. package/dist/types/cli/handlers/files-handler.instructions.test.d.ts +1 -0
  58. package/dist/types/cli/handlers/media-handler.d.ts +10 -4
  59. package/dist/types/cli/handlers/media-handler.test.d.ts +1 -0
  60. package/dist/types/cli/handlers/memory-handler.d.ts +39 -12
  61. package/dist/types/cli/handlers/pet-confirm-handler.d.ts +7 -0
  62. package/dist/types/cli/handlers/pet-handler.d.ts +29 -4
  63. package/dist/types/cli/handlers/pet-handler.test.d.ts +1 -0
  64. package/dist/types/cli/handlers/product-handler.d.ts +40 -14
  65. package/dist/types/cli/handlers/project-handler.d.ts +23 -14
  66. package/dist/types/cli/handlers/session-handler.d.ts +36 -17
  67. package/dist/types/cli/handlers/session-handler.resume.test.d.ts +1 -0
  68. package/dist/types/cli/handlers/settings-handler.d.ts +16 -12
  69. package/dist/types/cli/handlers/skills-handler.d.ts +19 -10
  70. package/dist/types/cli/handlers/skills-handler.profile.test.d.ts +1 -0
  71. package/dist/types/cli/handlers/solo-handler.d.ts +31 -9
  72. package/dist/types/cli/handlers/turn-handler.approval.test.d.ts +1 -0
  73. package/dist/types/cli/handlers/turn-handler.d.ts +17 -11
  74. package/dist/types/cli/idle-dream-coordinator.d.ts +46 -0
  75. package/dist/types/cli/idle-dream-coordinator.test.d.ts +1 -0
  76. package/dist/types/cli/mcp-plugin-bootstrap.d.ts +27 -0
  77. package/dist/types/cli/mcp-plugin-bootstrap.test.d.ts +1 -0
  78. package/dist/types/cli/mcp-tool-proxy.d.ts +7 -0
  79. package/dist/types/cli/media-file-api-service.d.ts +73 -0
  80. package/dist/types/cli/media-file-api-service.test.d.ts +1 -0
  81. package/dist/types/cli/media-file-tool-service.d.ts +13 -0
  82. package/dist/types/cli/memory-coordinator.d.ts +36 -0
  83. package/dist/types/cli/model-client-resolver.d.ts +22 -0
  84. package/dist/types/cli/multi-agent-handler-host.d.ts +27 -0
  85. package/dist/types/cli/multi-agent-handler-host.test.d.ts +1 -0
  86. package/dist/types/cli/multi-agent-state-coordinator.d.ts +11 -0
  87. package/dist/types/cli/permission-bootstrap.d.ts +33 -0
  88. package/dist/types/cli/permission-bootstrap.test.d.ts +1 -0
  89. package/dist/types/cli/permission-settings-store.d.ts +2 -0
  90. package/dist/types/cli/permission-settings-store.test.d.ts +1 -0
  91. package/dist/types/cli/pet-confirm-coordinator.d.ts +20 -0
  92. package/dist/types/cli/pet-confirm-coordinator.test.d.ts +1 -0
  93. package/dist/types/cli/pet-runtime.d.ts +34 -0
  94. package/dist/types/cli/pet-runtime.test.d.ts +1 -0
  95. package/dist/types/cli/project-context.d.ts +1 -0
  96. package/dist/types/cli/project-memory-store-factory.d.ts +2 -0
  97. package/dist/types/cli/project-template-seeder.d.ts +5 -0
  98. package/dist/types/cli/provider-core-facade.d.ts +27 -0
  99. package/dist/types/cli/rpc-registry.community.test.d.ts +1 -0
  100. package/dist/types/cli/rpc-registry.d.ts +8 -0
  101. package/dist/types/cli/runtime-hook-bootstrap.d.ts +34 -0
  102. package/dist/types/cli/runtime-watcher-bootstrap.d.ts +15 -0
  103. package/dist/types/cli/session-coordinator.d.ts +10 -0
  104. package/dist/types/cli/session-coordinator.test.d.ts +1 -0
  105. package/dist/types/cli/session-history-coordinator.d.ts +11 -0
  106. package/dist/types/cli/session-history-coordinator.test.d.ts +1 -0
  107. package/dist/types/cli/skill-meta-tool-bootstrap.d.ts +25 -0
  108. package/dist/types/cli/skill-meta-tool-bootstrap.test.d.ts +1 -0
  109. package/dist/types/cli/stdio-server.d.ts +17 -134
  110. package/dist/types/cli/tool-bootstrap.d.ts +1 -4
  111. package/dist/types/cli/tool-bootstrap.instructions.test.d.ts +1 -0
  112. package/dist/types/cli/tool-bootstrap.media-provider-alias.test.d.ts +1 -0
  113. package/dist/types/cli/tool-catalog.d.ts +2 -0
  114. package/dist/types/cli/tool-invoker-factory.d.ts +10 -0
  115. package/dist/types/cli/tool-result-processor.d.ts +14 -0
  116. package/dist/types/cli/transport.d.ts +2 -12
  117. package/dist/types/cli/turn-ask-user-setup.d.ts +9 -0
  118. package/dist/types/cli/turn-event-forwarder.d.ts +10 -0
  119. package/dist/types/cli/turn-lifecycle.d.ts +19 -0
  120. package/dist/types/cli/turn-lifecycle.test.d.ts +1 -0
  121. package/dist/types/cli/turn-media-setup.d.ts +16 -0
  122. package/dist/types/cli/turn-permission-sync.d.ts +7 -0
  123. package/dist/types/cli/turn-permission-sync.test.d.ts +1 -0
  124. package/dist/types/cli/turn-project-router.d.ts +22 -0
  125. package/dist/types/cli/turn-project-router.test.d.ts +1 -0
  126. package/dist/types/cli/turn-skill-autopersist.d.ts +47 -0
  127. package/dist/types/cli/turn-skill-autopersist.test.d.ts +1 -0
  128. package/dist/types/cli/turn-suggestion-generator.d.ts +15 -0
  129. package/dist/types/orchestration/agent-instance.d.ts +1 -1
  130. package/dist/types/orchestration/dag-scheduler.d.ts +135 -86
  131. package/dist/types/orchestration/index.d.ts +2 -2
  132. package/dist/types/orchestration/product-budget.d.ts +1 -1
  133. package/dist/types/orchestration/product-persistence.d.ts +3 -12
  134. package/dist/types/orchestration/product-planner.d.ts +1 -1
  135. package/dist/types/orchestration/skill-improvement.d.ts +1 -1
  136. package/dist/types/orchestration/solo-evaluator.d.ts +1 -1
  137. package/dist/types/orchestration/solo-persistence.d.ts +1 -1
  138. package/dist/types/orchestration/subagent/fork-subagent.d.ts +1 -1
  139. package/dist/types/orchestration/subagent/task-types.d.ts +1 -146
  140. package/dist/types/orchestration/tool-cascade.d.ts +2 -2
  141. package/dist/types/orchestration/workflow/budget-permission-gate.d.ts +85 -0
  142. package/dist/types/orchestration/workflow/builtin-executors.d.ts +12 -0
  143. package/dist/types/orchestration/workflow/cron-schedule.d.ts +37 -0
  144. package/dist/types/orchestration/workflow/data-item.d.ts +39 -0
  145. package/dist/types/orchestration/workflow/expression.d.ts +52 -0
  146. package/dist/types/orchestration/workflow/host-executors.d.ts +15 -0
  147. package/dist/types/orchestration/workflow/n8n-import.d.ts +35 -0
  148. package/dist/types/orchestration/workflow/node-registry.d.ts +19 -0
  149. package/dist/types/orchestration/workflow/node-schema.d.ts +119 -0
  150. package/dist/types/orchestration/workflow/run-checkpoint-store.d.ts +53 -0
  151. package/dist/types/orchestration/workflow/trigger-validation.d.ts +22 -0
  152. package/dist/types/orchestration/workflow/workflow-controller.d.ts +143 -0
  153. package/dist/types/orchestration/workflow/workflow-patch.d.ts +101 -0
  154. package/dist/types/orchestration/workflow/workflow-render.d.ts +41 -0
  155. package/dist/types/orchestration/workflow/workflow-runtime.d.ts +127 -0
  156. package/dist/types/orchestration/workflow/workflow-scheduler.d.ts +83 -0
  157. package/dist/types/orchestration/workflow/workflow-store.d.ts +40 -0
  158. package/dist/types/orchestration/workflow/workflow-trigger.d.ts +14 -0
  159. package/dist/types/permissions.d.ts +2 -0
  160. package/dist/types/permissions.public-api.test.d.ts +1 -0
  161. package/dist/types/protocol/methods.d.ts +262 -11
  162. package/dist/types/{runtime/infra/acp-types.d.ts → protocol/wire/acp-agent-management.d.ts} +3 -3
  163. package/dist/types/protocol/wire/agent-methods.d.ts +15 -11
  164. package/dist/types/protocol/wire/agent-rpc.d.ts +11 -0
  165. package/dist/types/protocol/wire/chat-types.d.ts +9 -0
  166. package/dist/types/protocol/wire/gateway-rpc.d.ts +13 -0
  167. package/dist/types/protocol/wire/index.d.ts +2 -1
  168. package/dist/types/protocol/wire/notification-payloads.d.ts +18 -3
  169. package/dist/types/runtime/community/community-consent-client.d.ts +117 -0
  170. package/dist/types/runtime/community/community-consent-client.test.d.ts +1 -0
  171. package/dist/types/runtime/community/community-desensitization-red-team-cli.d.ts +7 -0
  172. package/dist/types/runtime/community/community-desensitization-red-team-cli.test.d.ts +1 -0
  173. package/dist/types/runtime/community/community-desensitization.d.ts +29 -0
  174. package/dist/types/runtime/community/community-desensitization.test.d.ts +1 -0
  175. package/dist/types/runtime/community/community-telemetry-recorder.d.ts +6 -0
  176. package/dist/types/runtime/config/tunable-defaults.d.ts +249 -0
  177. package/dist/types/runtime/execution/dream-agent.d.ts +4 -2
  178. package/dist/types/runtime/execution/dream-category-context.d.ts +1 -1
  179. package/dist/types/runtime/execution/forked-agent.d.ts +3 -1
  180. package/dist/types/runtime/execution/streaming-tool-executor.d.ts +4 -2
  181. package/dist/types/runtime/execution/tool-eligibility.d.ts +1 -1
  182. package/dist/types/runtime/hooks/context-compression.d.ts +2 -2
  183. package/dist/types/runtime/hooks/memory-hooks.d.ts +6 -6
  184. package/dist/types/runtime/infra/acp-detector.d.ts +2 -2
  185. package/dist/types/runtime/infra/acp-protocol-adapter.d.ts +1 -1
  186. package/dist/types/runtime/infra/acp-usage-tracker.d.ts +1 -1
  187. package/dist/types/runtime/infra/agent-config-store.d.ts +2 -2
  188. package/dist/types/runtime/infra/agent-paths.d.ts +14 -10
  189. package/dist/types/runtime/infra/agent-paths.test.d.ts +1 -0
  190. package/dist/types/runtime/infra/agent-process.d.ts +2 -2
  191. package/dist/types/runtime/infra/checkpoint-backend.d.ts +2 -2
  192. package/dist/types/runtime/infra/index.d.ts +1 -1
  193. package/dist/types/runtime/infra/llmrouter-catalog.d.ts +10 -0
  194. package/dist/types/runtime/infra/mcp-bridge.d.ts +1 -1
  195. package/dist/types/runtime/infra/model-registry.d.ts +2 -1
  196. package/dist/types/runtime/infra/profile-storage.test.d.ts +1 -0
  197. package/dist/types/runtime/infra/skill-injector.d.ts +3 -2
  198. package/dist/types/runtime/infra/skill-injector.test.d.ts +1 -0
  199. package/dist/types/runtime/infra/task-runtime.d.ts +1 -1
  200. package/dist/types/runtime/infra/worktree-backend.d.ts +2 -2
  201. package/dist/types/runtime/memory/categories.d.ts +5 -0
  202. package/dist/types/runtime/memory/find-relevant-memories.d.ts +70 -0
  203. package/dist/types/runtime/memory/implicit-extraction.d.ts +58 -0
  204. package/dist/types/runtime/memory/recall-category-filter.d.ts +54 -0
  205. package/dist/types/runtime/pet/index.d.ts +1 -1
  206. package/dist/types/runtime/pet/pet-growth-engine.d.ts +10 -9
  207. package/dist/types/runtime/pet/pet-growth-engine.test.d.ts +1 -0
  208. package/dist/types/runtime/pet/pet-soul-service.d.ts +1 -2
  209. package/dist/types/runtime/pet/pet-soul-service.test.d.ts +1 -0
  210. package/dist/types/runtime/ports/agent-execution-contracts.d.ts +182 -0
  211. package/dist/types/runtime/ports/checkpoint-contracts.d.ts +19 -0
  212. package/dist/types/runtime/ports/index.d.ts +13 -0
  213. package/dist/types/runtime/ports/memory-provider.d.ts +146 -0
  214. package/dist/types/runtime/ports/memory-recall-source.d.ts +3 -0
  215. package/dist/types/runtime/ports/memory-writer.d.ts +21 -0
  216. package/dist/types/runtime/ports/path-service.d.ts +5 -0
  217. package/dist/types/runtime/ports/permission-contracts.d.ts +107 -0
  218. package/dist/types/runtime/ports/project-memory-store.d.ts +44 -0
  219. package/dist/types/runtime/ports/tool-call-contracts.d.ts +16 -0
  220. package/dist/types/runtime/ports/tool-contracts.d.ts +23 -0
  221. package/dist/types/runtime/ports/web-search-contracts.d.ts +17 -0
  222. package/dist/types/runtime/ports/worktree-contracts.d.ts +22 -0
  223. package/dist/types/runtime/prompt/environment-context.test.d.ts +1 -0
  224. package/dist/types/runtime/prompt/fresh-workspace-evidence.d.ts +19 -0
  225. package/dist/types/runtime/prompt/fresh-workspace-evidence.test.d.ts +1 -0
  226. package/dist/types/runtime/prompt/instruction-loader.d.ts +9 -3
  227. package/dist/types/runtime/prompt/instruction-loader.test.d.ts +1 -0
  228. package/dist/types/runtime/session/session-persistence.test.d.ts +1 -0
  229. package/dist/types/runtime/tasks/task-types.d.ts +146 -0
  230. package/dist/types/skills/index.d.ts +2 -2
  231. package/dist/types/skills/mcp/mcp-http-client.d.ts +2 -0
  232. package/dist/types/skills/mcp/mcp-manager.d.ts +7 -4
  233. package/dist/types/skills/mcp/mcp-stdio-client.d.ts +2 -0
  234. package/dist/types/skills/mcp/mcp-tool-metadata.d.ts +18 -0
  235. package/dist/types/skills/memory/categories.d.ts +1 -5
  236. package/dist/types/skills/memory/find-relevant-memories.d.ts +1 -70
  237. package/dist/types/skills/memory/implicit-extraction.d.ts +1 -58
  238. package/dist/types/skills/memory/local-memory-provider.d.ts +4 -10
  239. package/dist/types/skills/memory/local-store.d.ts +4 -4
  240. package/dist/types/skills/memory/memory-consolidation.d.ts +9 -1
  241. package/dist/types/skills/memory/memory-provider-factory.d.ts +2 -0
  242. package/dist/types/skills/memory/memory-tool.d.ts +4 -6
  243. package/dist/types/skills/memory/recall-category-filter.d.ts +1 -54
  244. package/dist/types/skills/permissions/community-sandbox-policy.d.ts +3 -0
  245. package/dist/types/skills/permissions/community-sandbox-red-team-cli.d.ts +7 -0
  246. package/dist/types/skills/permissions/community-sandbox-red-team.d.ts +30 -0
  247. package/dist/types/skills/permissions/hook-runner.d.ts +15 -2
  248. package/dist/types/skills/permissions/settings-watcher.d.ts +2 -0
  249. package/dist/types/skills/permissions/types.d.ts +2 -113
  250. package/dist/types/skills/portable-tool.d.ts +22 -0
  251. package/dist/types/skills/skill-system/skill-lifecycle.d.ts +5 -0
  252. package/dist/types/skills/skill-system/skill-source.d.ts +2 -148
  253. package/dist/types/skills/tool-access.d.ts +30 -0
  254. package/dist/types/skills/tools/skill-tool.d.ts +2 -10
  255. package/dist/types/skills/tools/web-search-tool.d.ts +3 -20
  256. package/dist/types/skills/tools.d.ts +1 -1
  257. package/dist/types/transport/acp-server.d.ts +1 -1
  258. package/dist/types/transport/index.d.ts +1 -0
  259. package/dist/types/transport/io-transport.d.ts +19 -0
  260. package/package.json +93 -80
  261. package/dist/types/llm/index.d.ts +0 -1
  262. /package/dist/types/{orchestration/context/context-compression.d.ts → runtime/context/context-compression-strategies.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ var e=["default","bypassPermissions","acceptEdits","dontAsk","plan","auto"];export{e as PERMISSION_MODES};
package/dist/protocol.js CHANGED
@@ -1 +1 @@
1
- var q="1.0.0",d={PARSE_ERROR:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL_ERROR:-32603,TURN_ABORTED:-32e3,TURN_TIMEOUT:-32001,LLM_ERROR:-32010,LLM_AUTH_ERROR:-32011,LLM_RATE_LIMIT:-32012,LLM_QUOTA_EXHAUSTED:-32013,LLM_MODEL_NOT_FOUND:-32014,TOOL_INVOKE_FAILED:-32020,TOOL_TIMEOUT:-32021,PROTOCOL_MISMATCH:-32030,REQUEST_DEADLINE_EXCEEDED:-32040,REQUEST_CANCELLED:-32041,REQUEST_DEDUPED:-32042,REQUEST_IDEMPOTENCY_REQUIRED:-32043},Y={REQUEST:"tool.approval.request",RESPONSE:"tool.approval.response"};function b(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&t.method.length>0}function C(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&(typeof t.id=="string"||typeof t.id=="number")&&!("method"in t)}function I(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function X(e){let t;try{t=JSON.parse(e)}catch{return null}return C(t)||b(t)||I(t)?t:null}import{randomUUID as H}from"node:crypto";var G=["settings.list","settings.get","settings.validate","provider.list","config.get","config.tunables","tools.list","todos.list","tasks.list","agents.list","agents.get","agents.processes","agents.scan","session.list","session.get","session.resolve","thread.list","project.list","files.list","files.gitStatus","instructions.list","instructions.read","skills.list","skills.stats","memory.atlas","memory.activity","memory.list","memory.read","memory.search","media.listModels","media.status","pet.status","agent.health","agent.metrics"],z=new Set(["thread.turn","memory.dream","memory.propose","memory.consolidate","media.stt","pet.forge","solo.start","solo.evaluate","product.plan","product.create","product.message"]),J=["memory.","pet.","usage."],Q=new Set(["memory.atlas","memory.activity","memory.list","memory.read","memory.search","pet.status"]);function f(e){return z.has(e)?{channel:"task",mutability:"write",defaultTimeoutMs:e==="thread.turn"?3e5:12e4}:G.some(t=>e===t||e.startsWith(`${t}.`)||e.startsWith(t))?{channel:"query",mutability:"read",defaultTimeoutMs:1e4}:{channel:"task",mutability:"write",defaultTimeoutMs:3e4}}function h(e){return Q.has(e)||f(e).mutability==="read"?!1:J.some(t=>e.startsWith(t))}function $(e,t={}){let r=t.now??Date.now(),o=f(e),i=t.timeoutMs??o.defaultTimeoutMs;return{requestId:t.requestId??H(),createdAt:r,deadlineAt:r+i,channel:t.channel??o.channel,idempotencyKey:t.idempotencyKey,traceId:t.traceId}}function v(e,t=Date.now()){let r=e.meta;if(!r||typeof r!="object")return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta is required."}};if(typeof r.requestId!="string"||r.requestId.length===0)return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.requestId is required."}};if(r.channel!=="query"&&r.channel!=="task")return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.channel must be query or task."}};if(typeof r.createdAt!="number"||!Number.isFinite(r.createdAt))return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.createdAt is required."}};if(typeof r.deadlineAt!="number"||!Number.isFinite(r.deadlineAt))return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.deadlineAt is required."}};if(r.deadlineAt<=t)return{ok:!1,error:{code:d.REQUEST_DEADLINE_EXCEEDED,message:"RPC request deadline has already expired."}};let o=f(e.method).channel;return r.channel!==o?{ok:!1,error:{code:d.INVALID_REQUEST,message:`RPC request channel mismatch: expected ${o}, got ${r.channel}.`}}:h(e.method)&&(typeof r.idempotencyKey!="string"||r.idempotencyKey.length===0)?{ok:!1,error:{code:d.REQUEST_IDEMPOTENCY_REQUIRED,message:`RPC method ${e.method} requires meta.idempotencyKey.`}}:{ok:!0,meta:r}}var R=class{now;active=new Map;idempotency=new Map;counters={completedRequests:0,cancelledRequests:0,deadlineExceededRequests:0,dedupedRequests:0,lateResponsesDropped:0,invalidRequests:0};constructor(t={}){this.now=t.now??(()=>Date.now())}begin(t,r){let o=v({method:t,meta:r},this.now());if(!o.ok)return this.counters.invalidRequests+=1,{status:"rejected",error:o.error};if(r.idempotencyKey){let i=this.idempotency.get(r.idempotencyKey);if(i)return this.counters.dedupedRequests+=1,i.error?{status:"deduped",error:i.error}:{status:"deduped",result:i.result}}return this.active.set(r.requestId,{method:t,meta:r,cancelled:!1,startedAt:this.now()}),{status:"started"}}cancel(t,r="cancelled"){let o=this.active.get(t);return!o||o.cancelled?!1:(o.cancelled=!0,o.cancelReason=r,this.counters.cancelledRequests+=1,!0)}expire(t){return this.active.get(t)?(this.active.delete(t),this.counters.deadlineExceededRequests+=1,!0):!1}settle(t,r,o){let i=this.active.get(t);return i?(this.active.delete(t),i.cancelled?(this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"cancelled"}):i.meta.deadlineAt<=this.now()?(this.counters.deadlineExceededRequests+=1,this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"deadline_exceeded"}):(this.counters.completedRequests+=1,i.meta.idempotencyKey&&this.idempotency.set(i.meta.idempotencyKey,{result:r,error:o,settledAt:this.now()}),{accepted:!0})):{accepted:!1,reason:"unknown"}}metrics(){return{activeRequests:this.active.size,...this.counters}}};var Z=["agent.health","agent.metrics","agent.cancel","session.list","session.get","session.create","session.update","session.delete","session.deleteAll","session.archive","session.moveToProject","session.getState","session.switchProject","session.getMessages","project.list","project.create","project.delete","project.rename","project.archive","project.unarchive","project.update","project.archiveByGroup","project.purgeAll","instructions.list","instructions.read","instructions.write","instructions.delete","files.list","files.read","files.create","files.rename","files.delete","files.gitStatus","skills.list","memory.list-files","memory.atlas","memory.activity","memory.observe","memory.propose","memory.consolidate","memory.update"];var M=["turn.start","turn.delta","turn.end","turn.error","turn.recovery","turn.tool_call","turn.tool_result","turn.tool_blocked","turn.reasoning_delta","turn.approval_request","turn.skill_instruction","turn.ask_user","turn.media_result","turn.media_progress","turn.plan_update","turn.suggestions","turn.sidechain_started","turn.subagent_delta","turn.sidechain_completed","turn.task_updated","turn.todos_updated","turn.exec_progress","turn.usage_update","team.member.notification","session.info","memory.updated","skills.updated","pet.soul_ready","pet.reaction","pet.growth","pet.state","pet.confirm","pet.forged","system.activity"],k=["solo.progress","solo.agentDelta","solo.agentUsage","solo.agentDiff","solo.evaluation","product.taskStarted","product.taskOutput","product.taskCompleted","product.taskFailed","product.budgetUpdate","product.checkpointed","product.dagTopology","plan.interrupted"],ee=[...M,...k];var te=1,re={INITIALIZE:"initialize",SESSION_NEW:"session/new",SESSION_PROMPT:"session/prompt",SESSION_END:"session/end",SESSION_SET_CONFIG:"session/set_config_option",SESSION_SET_MODEL:"session/set_model",SESSION_SET_MODE:"session/set_mode",SESSION_UPDATE:"session/update",SESSION_REQUEST_PERMISSION:"session/request_permission",FS_READ_TEXT_FILE:"fs/read_text_file",FS_WRITE_TEXT_FILE:"fs/write_text_file"},oe={ABORT:"x/abort",DREAM:"x/dream",AGENTS_LIST:"x/agents.list",SOLO_START:"x/solo.start",SOLO_STATUS:"x/solo.status",SOLO_SELECT:"x/solo.select",SOLO_CANCEL:"x/solo.cancel",PRODUCT_CREATE:"x/product.create",PRODUCT_PLAN:"x/product.plan",PRODUCT_CONFIRM:"x/product.confirm",PRODUCT_MESSAGE:"x/product.message",PRODUCT_RESUME:"x/product.resume",PRODUCT_PAUSE:"x/product.pause",PRODUCT_CANCEL:"x/product.cancel",PRODUCT_ROLLBACK:"x/product.rollback",PRODUCT_STATUS:"x/product.status",SOLO_SUBSCRIBE:"x/solo.subscribe",SOLO_MESSAGE:"x/solo.message",SOLO_EVALUATE:"x/solo.evaluate",PRODUCT_SUBSCRIBE:"x/product.subscribe",TEAM_DELEGATE:"x/team.delegate"},x={AGENT_MESSAGE_CHUNK:"agent_message_chunk",AGENT_THOUGHT_CHUNK:"agent_thought_chunk",TOOL_CALL:"tool_call",TOOL_CALL_UPDATE:"tool_call_update",PLAN:"plan",USAGE_UPDATE:"usage_update",CONFIG_OPTION_UPDATE:"config_option_update",SESSION_INFO_UPDATE:"session_info_update",AVAILABLE_COMMANDS_UPDATE:"available_commands_update"},ne={X_SUBAGENT_STARTED:"x_subagent_started",X_SUBAGENT_DELTA:"x_subagent_delta",X_SUBAGENT_ENDED:"x_subagent_ended",X_MEDIA_RESULT:"x_media_result",X_MEDIA_PROGRESS:"x_media_progress",X_SKILL_INSTRUCTION:"x_skill_instruction",X_RECOVERY:"x_recovery",X_SIDECHAIN_STARTED:"x_sidechain_started",X_SIDECHAIN_COMPLETED:"x_sidechain_completed",X_SUGGESTIONS:"x_suggestions",X_ASK_USER:"x_ask_user",X_SESSION_INFO:"x_session_info",X_MEMORY_UPDATED:"x_memory_updated",X_TEAM_MEMBER_UPDATE:"x_team_member_update",X_SOLO_STARTED:"x_solo_started",X_SOLO_AGENT_FINISHED:"x_solo_agent_finished",X_SOLO_SELECTED:"x_solo_selected",X_PRODUCT_TASK_STARTED:"x_product_task_started",X_PRODUCT_TASK_COMPLETED:"x_product_task_completed",X_PRODUCT_CHECKPOINT:"x_product_checkpoint"};function O(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&"id"in t}function N(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function D(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&!("method"in t)}function ie(e){let t;try{t=JSON.parse(e)}catch{return null}return D(t)||O(t)||N(t)?t:null}function se(e){return Object.values(x).includes(e)}function ae(e){return e.startsWith("x_")}var E=["gatewayVersion","toolNamespaces","workspaceIds","installedCapabilities","enabledCapabilities","features","approvalMode","toolManifests","skillManifests","pluginManifests","mcpManifests","approvalPolicy","workspaceSummaries"];function g(e){return e?e.map(t=>({...t})):void 0}function _(e){return e?e.map(t=>({...t})):void 0}function pe(e){return e?[...e]:void 0}function w(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].sort((t,r)=>t.localeCompare(r))}function m(e){return{...e,toolNamespaces:[...e.toolNamespaces],workspaceIds:[...e.workspaceIds],...e.changedSections?{changedSections:[...e.changedSections]}:{},...e.installedCapabilities?{installedCapabilities:[...e.installedCapabilities]}:{},...e.enabledCapabilities?{enabledCapabilities:[...e.enabledCapabilities]}:{},...e.features?{features:[...e.features]}:{},...e.toolManifests?{toolManifests:g(e.toolManifests)}:{},...e.skillManifests?{skillManifests:g(e.skillManifests)}:{},...e.pluginManifests?{pluginManifests:g(e.pluginManifests)}:{},...e.mcpManifests?{mcpManifests:g(e.mcpManifests)}:{},...e.approvalPolicy?{approvalPolicy:{...e.approvalPolicy}}:{},...e.workspaceSummaries?{workspaceSummaries:_(e.workspaceSummaries)}:{}}}function ce(e){let{previous:t,update:r}=e;return!(r.syncMode==="diff"&&t&&(!r.baseSnapshotVersion||t.snapshotVersion===r.baseSnapshotVersion))||!t?m(r):{...m(t),snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,...r.gatewayVersion!==void 0?{gatewayVersion:r.gatewayVersion}:{},...r.syncMode?{syncMode:r.syncMode}:{},...r.baseSnapshotVersion?{baseSnapshotVersion:r.baseSnapshotVersion}:{},...r.changedSections?{changedSections:[...r.changedSections]}:{},...r.toolNamespaces?{toolNamespaces:[...r.toolNamespaces]}:{},...r.workspaceIds?{workspaceIds:[...r.workspaceIds]}:{},...r.installedCapabilities?{installedCapabilities:[...r.installedCapabilities]}:{},...r.enabledCapabilities?{enabledCapabilities:[...r.enabledCapabilities]}:{},...r.features?{features:[...r.features]}:{},...r.approvalMode?{approvalMode:r.approvalMode}:{},...r.toolManifests?{toolManifests:g(r.toolManifests)}:{},...r.skillManifests?{skillManifests:g(r.skillManifests)}:{},...r.pluginManifests?{pluginManifests:g(r.pluginManifests)}:{},...r.mcpManifests?{mcpManifests:g(r.mcpManifests)}:{},...r.approvalPolicy?{approvalPolicy:{...r.approvalPolicy}}:{},...r.workspaceSummaries?{workspaceSummaries:_(r.workspaceSummaries)}:{}}}function le(e){return w(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function de(e){return w(e.map(t=>t.id))}function ue(e){let{previous:t,current:r}=e;if(!t)return{...m(r),syncMode:"full"};if(t.snapshotVersion===r.snapshotVersion)return null;let o=E.filter(s=>JSON.stringify(t[s])!==JSON.stringify(r[s]));if(o.length===E.length)return{...m(r),syncMode:"full"};let i={snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:o,toolNamespaces:[...r.toolNamespaces],workspaceIds:[...r.workspaceIds]},c=i;for(let s of o){let n=r[s];if(n!==void 0)switch(s){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":c[s]=pe(n);break;case"approvalPolicy":c[s]={...n};break;case"workspaceSummaries":c[s]=_(n);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":c[s]=g(n);break;default:c[s]=n;break}}return i}var ge=["web_search","web_fetch","deep_research","browser_execution"],me=["web-intelligence","browser-execution"],ye=["discovery","read-url","multi-source-research","interactive-browser"],fe=["stateless","render-backend","interactive-session"],Ae=["stateless","stateless-single-step","stateful-session-required"],Re=["required","conditional","none"],Ee=["browser-read","browser-authenticated-read","browser-state-changing"],_e=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],Se=["web_search","web_fetch","deep_research","blocked"],Te=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],Pe=["none","same-capability-once","degrade-only"];var be=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],Ce=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],Ie=["observe-only","parent-write","deny"];var he=2,a={gatewayImage:"gateway.image.desktop-slim",whisperModelTiny:"speech.whisper.model.tiny",ffmpegWin32X64:"runtime.ffmpeg.win32-x64",nodeWin32X64:"runtime.node.win32-x64",dockerDesktopWin32X64:"runtime.docker-desktop.win32-x64",dockerDesktopDarwinX64:"runtime.docker-desktop.darwin-x64",dockerDesktopDarwinArm64:"runtime.docker-desktop.darwin-arm64"},y={desktopDockerBridge:"desktop.docker-bridge",desktopEmbeddedWin32X64:"desktop.embedded.win32-x64"};function L(e){return{...e,artifacts:e.artifacts.map(t=>({...t}))}}function ve(e){return{...e,assetIds:[...e.assetIds]}}function K(){return{[y.desktopDockerBridge]:{id:y.desktopDockerBridge,title:"Desktop Docker Bridge",platform:"any",assetIds:[a.gatewayImage,a.dockerDesktopWin32X64,a.dockerDesktopDarwinX64,a.dockerDesktopDarwinArm64],description:"Docker bridge mode downloads the desktop slim gateway image on demand."},[y.desktopEmbeddedWin32X64]:{id:y.desktopEmbeddedWin32X64,title:"Desktop Embedded Win32 x64",platform:"win32-x64",assetIds:[a.nodeWin32X64,a.ffmpegWin32X64,a.whisperModelTiny],description:"Embedded desktop mode requires the bundled Node/FFmpeg runtimes and the whisper model asset."}}}function V(e,t){return e.assets[t]}function W(e,t){return e.profiles[t]}function Me(e,t){let r=W(e,t);return r?r.assetIds.map(o=>V(e,o)).filter(o=>!!o):[]}function ke(e,t){return e.assets[t.id]=L(t),F(e)}function S(e){if(!e)return;let t=e.artifacts[0];if(!(!t?.url||!t.sha256||typeof t.size!="number"))return{version:e.version,sha256:t.sha256,size:t.size,url:t.url}}function F(e){let t=S(e.assets[a.gatewayImage]),r=S(e.assets[a.whisperModelTiny]);return{...e,gateway:t,whisperModel:r}}function U(e,t){if(!(typeof e.version!="string"||typeof e.url!="string"))return{...t,version:e.version,artifacts:[{fileName:e.url.split("/").pop()||`${t.id}.bin`,url:e.url,sha256:typeof e.sha256=="string"?e.sha256:void 0,size:typeof e.size=="number"?e.size:void 0}]}}function xe(e){let t=e&&typeof e=="object"?e:{},r={},o=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[n,p]of Object.entries(o)){if(!p||typeof p!="object")continue;let u=p;!u.id||!Array.isArray(u.artifacts)||(r[n]=L(u))}if(!r[a.gatewayImage]&&t.gateway&&typeof t.gateway=="object"){let n=U(t.gateway,{id:a.gatewayImage,title:"OpenClaw Gateway Image (Desktop Slim)",kind:"container-image",delivery:"remote",platform:"any",description:"Desktop Docker mode gateway image."});n&&(r[n.id]=n)}if(!r[a.whisperModelTiny]&&t.whisperModel&&typeof t.whisperModel=="object"){let n=U(t.whisperModel,{id:a.whisperModelTiny,title:"Whisper Tiny Model",kind:"model",delivery:"remote",platform:"any",description:"Shared whisper.cpp tiny model asset for embedded desktop speech recognition."});n&&(r[n.id]=n)}let c={...K()},s=t.profiles&&typeof t.profiles=="object"?t.profiles:{};for(let[n,p]of Object.entries(s)){if(!p||typeof p!="object")continue;let u=p;!u.id||!Array.isArray(u.assetIds)||(c[n]=ve(u))}return F({schemaVersion:typeof t.schemaVersion=="number"?t.schemaVersion:2,channel:typeof t.channel=="string"?t.channel:void 0,publishedAt:typeof t.publishedAt=="string"?t.publishedAt:void 0,minElectronVersion:typeof t.minElectronVersion=="string"?t.minElectronVersion:void 0,releaseNotes:typeof t.releaseNotes=="string"?t.releaseNotes:void 0,assets:r,profiles:c})}var Oe=["pending","captured","failed","restored"],Ne=["file","directory","missing"],De=["metadata-only","workspace-copy","shadow-git"];var we=["api-key","oauth","token","aws-sdk"],Ue=["rate_limit","auth","server_error","timeout","network","unknown"],Le=["requiresOpenAiAnthropicToolPayload"];function Ke(e,t){return!e||typeof e!="object"||Array.isArray(e)?!1:e[t]===!0}var B="openai-codex";function A(e){let t=e.trim().toLowerCase();return t==="z.ai"||t==="z-ai"?"zai":t==="opencode-zen"?"opencode":t==="kimi-code"?"kimi-coding":t==="bedrock"||t==="aws-bedrock"?"amazon-bedrock":t==="bytedance"||t==="doubao"?"volcengine":t}function j(e){let t=A(e);return t==="volcengine-plan"?"volcengine":t==="byteplus-plan"?"byteplus":t}var Ve=j,We={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},Fe={anthropic:{providerFamily:"anthropic"},"amazon-bedrock":{providerFamily:"anthropic"},"kimi-coding":{anthropicToolSchemaMode:"openai-functions",anthropicToolChoiceMode:"openai-string-modes",preserveAnthropicThinkingSignatures:!1},mistral:{transcriptToolCallIdMode:"strict9",transcriptToolCallIdModelHints:["mistral","mixtral","codestral","pixtral","devstral","ministral","mistralai"]},openai:{providerFamily:"openai"},[B]:{providerFamily:"openai"},openrouter:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},opencode:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},kilocode:{providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]}};function T(e,t){let r=(e??"").toLowerCase();return!!r&&t.some(o=>r.includes(o))}function l(e){let t=A(e??"");return{...We,...Fe[t]}}function Be(e){return l(e).preserveAnthropicThinkingSignatures}function je(e){let t=l(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function qe(e){return l(e).anthropicToolSchemaMode==="openai-functions"}function Ye(e){return l(e).anthropicToolChoiceMode==="openai-string-modes"}function Xe(e){return l(e).openAiCompatTurnValidation}function He(e){return l(e).providerFamily==="openai"}function Ge(e){return l(e).providerFamily==="anthropic"}function ze(e){return T(e.modelId,l(e.provider).dropThinkingBlockModelHints)}function Je(e){let t=l(e.provider);return t.providerThoughtSignatureSanitization&&T(e.modelId,t.providerThoughtSignatureModelHints)}function Qe(e,t){let r=l(e),o=r.transcriptToolCallIdMode;if(o==="strict9")return o;if(T(t,r.transcriptToolCallIdModelHints))return"strict9"}var P={anthropic:["ANTHROPIC_OAUTH_TOKEN","ANTHROPIC_API_KEY"],chutes:["CHUTES_OAUTH_TOKEN","CHUTES_API_KEY"],zai:["ZAI_API_KEY","Z_AI_API_KEY"],opencode:["OPENCODE_API_KEY","OPENCODE_ZEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY"],byteplus:["BYTEPLUS_API_KEY"],"byteplus-plan":["BYTEPLUS_API_KEY"],"kimi-coding":["KIMI_API_KEY","KIMICODE_API_KEY"],huggingface:["HUGGINGFACE_HUB_TOKEN","HF_TOKEN"],openai:["OPENAI_API_KEY"],voyage:["VOYAGE_API_KEY"],groq:["GROQ_API_KEY"],deepgram:["DEEPGRAM_API_KEY"],cerebras:["CEREBRAS_API_KEY"],xai:["XAI_API_KEY"],openrouter:["OPENROUTER_API_KEY"],litellm:["LITELLM_API_KEY"],"vercel-ai-gateway":["AI_GATEWAY_API_KEY"],"cloudflare-ai-gateway":["CLOUDFLARE_AI_GATEWAY_API_KEY"],moonshot:["MOONSHOT_API_KEY"],minimax:["MINIMAX_API_KEY"],"minimax-cn":["MINIMAX_CN_API_KEY","MINIMAX_API_KEY"],nvidia:["NVIDIA_API_KEY"],xiaomi:["XIAOMI_API_KEY"],synthetic:["SYNTHETIC_API_KEY"],venice:["VENICE_API_KEY"],mistral:["MISTRAL_API_KEY"],together:["TOGETHER_API_KEY"],qianfan:["QIANFAN_API_KEY"],ollama:["OLLAMA_API_KEY"],vllm:["VLLM_API_KEY"],kilocode:["KILOCODE_API_KEY"]};function $e(){return[...new Set(Object.values(P).flat())]}function Ze(e){let t=A(e.provider),r=e.env??process.env,o=new Set(e.appliedEnvKeys??[]),i=n=>{let p=r[n]?.trim();if(!p)return null;let u=o.has(n)?`shell env: ${n}`:`env: ${n}`;return{apiKey:p,source:u}},c=e.resolveSpecialApiKey?.(t,r,o);if(c)return c;let s=P[t];if(!s||s.length===0)return null;for(let n of s){let p=i(n);if(p)return p}return null}export{oe as ACP_EXTENDED_METHODS,ne as ACP_EXTENDED_SESSION_UPDATE_TYPES,re as ACP_METHODS,te as ACP_PROTOCOL_VERSION,x as ACP_SESSION_UPDATE_TYPES,Y as AGENT_RPC_APPROVAL_METHODS,d as AGENT_RPC_ERROR_CODES,q as AGENT_RPC_PROTOCOL_VERSION,k as AGENT_TEAM_WS_EVENT_NAMES,M as AGENT_WS_EVENT_NAMES,ee as ALL_AGENT_WS_EVENT_NAMES,E as CAPABILITY_MANIFEST_DIFF_SECTIONS,Z as GATEWAY_RPC_METHODS,R as GatewayRpcContract,be as MEMORY_OBSERVATION_HOOK_VALUES,Ce as MEMORY_OBSERVATION_SOURCE_VALUES,Ie as MEMORY_WRITE_ACCESS_VALUES,De as MUTATION_CHECKPOINT_BACKEND_VALUES,Ne as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,Oe as MUTATION_CHECKPOINT_PHASE_VALUES,we as PROVIDER_RUNTIME_AUTH_MODE_VALUES,Le as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,P as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,B as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,Ue as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,he as RESOURCE_MANIFEST_SCHEMA_VERSION,a as RUNTIME_ASSET_IDS,y as RUNTIME_PROFILE_IDS,_e as WEB_ACTION_SCOPE_VALUES,Re as WEB_APPROVAL_DEFAULT_VALUES,me as WEB_CAPABILITY_FAMILY_VALUES,ge as WEB_CAPABILITY_ID_VALUES,Se as WEB_DEGRADATION_TARGET_VALUES,Te as WEB_ESCALATION_REASON_VALUES,fe as WEB_EXECUTION_MODE_VALUES,Ee as WEB_POLICY_RISK_CLASS_VALUES,Pe as WEB_RETRY_POLICY_VALUES,Ae as WEB_STATEFULNESS_VALUES,ye as WEB_TASK_MODE_VALUES,$ as buildAgentRpcMeta,f as classifyGatewayRpcMethod,m as cloneCapabilityManifestSnapshot,ue as createCapabilityManifestDiffPayload,K as createDefaultRuntimeResourceProfiles,le as deriveCapabilityToolNamespaces,de as deriveCapabilityWorkspaceIds,S as getManifestShortcutEntry,V as getRuntimeResourceAsset,W as getRuntimeResourceProfile,Me as getRuntimeResourceProfileAssets,N as isAcpJsonRpcNotification,O as isAcpJsonRpcRequest,D as isAcpJsonRpcResponse,I as isAgentRpcNotification,b as isAgentRpcRequest,C as isAgentRpcResponse,Ge as isAnthropicProviderRuntimeFamily,ae as isExtendedSessionUpdateType,He as isOpenAiProviderRuntimeFamily,se as isStandardSessionUpdateType,$e as listProviderRuntimeEnvApiKeyNames,ce as mergeCapabilityManifestSnapshot,A as normalizeProviderRuntimeId,j as normalizeProviderRuntimeIdForAuth,xe as normalizeRuntimeResourceManifest,ie as parseAcpMessage,X as parseAgentRpcMessage,Be as preservesProviderRuntimeAnthropicThinkingSignatures,Ke as readProviderRuntimeCompatFlag,v as requireGatewayRpcMeta,h as requiresIdempotencyKey,je as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,l as resolveProviderRuntimeCapabilities,Ze as resolveProviderRuntimeEnvApiKey,Ve as resolveProviderRuntimeKeyFamily,Qe as resolveProviderRuntimeTranscriptToolCallIdMode,ze as shouldDropThinkingBlocksForProviderRuntimeModel,Je as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,Xe as supportsOpenAiCompatTurnValidationForProviderRuntime,ke as upsertRuntimeResourceAsset,qe as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,Ye as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
1
+ var q="1.0.0",d={PARSE_ERROR:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL_ERROR:-32603,TURN_ABORTED:-32e3,TURN_TIMEOUT:-32001,LLM_ERROR:-32010,LLM_AUTH_ERROR:-32011,LLM_RATE_LIMIT:-32012,LLM_QUOTA_EXHAUSTED:-32013,LLM_MODEL_NOT_FOUND:-32014,TOOL_INVOKE_FAILED:-32020,TOOL_TIMEOUT:-32021,PROTOCOL_MISMATCH:-32030,REQUEST_DEADLINE_EXCEEDED:-32040,REQUEST_CANCELLED:-32041,REQUEST_DEDUPED:-32042,REQUEST_IDEMPOTENCY_REQUIRED:-32043},Y={REQUEST:"tool.approval.request",RESPONSE:"tool.approval.response"};function b(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&t.method.length>0}function C(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&(typeof t.id=="string"||typeof t.id=="number")&&!("method"in t)}function I(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function X(e){let t;try{t=JSON.parse(e)}catch{return null}return C(t)||b(t)||I(t)?t:null}import{randomUUID as H}from"node:crypto";var G=["settings.list","settings.get","settings.validate","provider.list","config.get","config.tunables","tools.list","todos.list","tasks.list","agents.list","agents.get","agents.processes","agents.scan","session.list","session.get","session.resolve","thread.list","project.list","files.list","files.gitStatus","instructions.list","instructions.read","skills.list","skills.stats","memory.atlas","memory.activity","memory.list","memory.read","memory.search","media.listModels","media.status","pet.status","agent.health","agent.metrics"],z=new Set(["thread.turn","memory.dream","memory.propose","memory.consolidate","media.stt","pet.forge","solo.start","solo.evaluate","product.plan","product.create","product.message"]),J=["memory.","pet.","usage."],Q=new Set(["memory.atlas","memory.activity","memory.list","memory.read","memory.search","pet.status"]);function f(e){return z.has(e)?{channel:"task",mutability:"write",defaultTimeoutMs:e==="thread.turn"?3e5:12e4}:G.some(t=>e===t||e.startsWith(`${t}.`)||e.startsWith(t))?{channel:"query",mutability:"read",defaultTimeoutMs:1e4}:{channel:"task",mutability:"write",defaultTimeoutMs:3e4}}function h(e){return Q.has(e)||f(e).mutability==="read"?!1:J.some(t=>e.startsWith(t))}function $(e,t={}){let r=t.now??Date.now(),o=f(e),i=t.timeoutMs??o.defaultTimeoutMs;return{requestId:t.requestId??H(),createdAt:r,deadlineAt:r+i,channel:t.channel??o.channel,idempotencyKey:t.idempotencyKey,traceId:t.traceId}}function v(e,t=Date.now()){let r=e.meta;if(!r||typeof r!="object")return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta is required."}};if(typeof r.requestId!="string"||r.requestId.length===0)return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.requestId is required."}};if(r.channel!=="query"&&r.channel!=="task")return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.channel must be query or task."}};if(typeof r.createdAt!="number"||!Number.isFinite(r.createdAt))return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.createdAt is required."}};if(typeof r.deadlineAt!="number"||!Number.isFinite(r.deadlineAt))return{ok:!1,error:{code:d.INVALID_REQUEST,message:"RPC request meta.deadlineAt is required."}};if(r.deadlineAt<=t)return{ok:!1,error:{code:d.REQUEST_DEADLINE_EXCEEDED,message:"RPC request deadline has already expired."}};let o=f(e.method).channel;return r.channel!==o?{ok:!1,error:{code:d.INVALID_REQUEST,message:`RPC request channel mismatch: expected ${o}, got ${r.channel}.`}}:h(e.method)&&(typeof r.idempotencyKey!="string"||r.idempotencyKey.length===0)?{ok:!1,error:{code:d.REQUEST_IDEMPOTENCY_REQUIRED,message:`RPC method ${e.method} requires meta.idempotencyKey.`}}:{ok:!0,meta:r}}var R=class{now;active=new Map;idempotency=new Map;counters={completedRequests:0,cancelledRequests:0,deadlineExceededRequests:0,dedupedRequests:0,lateResponsesDropped:0,invalidRequests:0};constructor(t={}){this.now=t.now??(()=>Date.now())}begin(t,r){let o=v({method:t,meta:r},this.now());if(!o.ok)return this.counters.invalidRequests+=1,{status:"rejected",error:o.error};if(r.idempotencyKey){let i=this.idempotency.get(r.idempotencyKey);if(i)return this.counters.dedupedRequests+=1,i.error?{status:"deduped",error:i.error}:{status:"deduped",result:i.result}}return this.active.set(r.requestId,{method:t,meta:r,cancelled:!1,startedAt:this.now()}),{status:"started"}}cancel(t,r="cancelled"){let o=this.active.get(t);return!o||o.cancelled?!1:(o.cancelled=!0,o.cancelReason=r,this.counters.cancelledRequests+=1,!0)}expire(t){return this.active.get(t)?(this.active.delete(t),this.counters.deadlineExceededRequests+=1,!0):!1}settle(t,r,o){let i=this.active.get(t);return i?(this.active.delete(t),i.cancelled?(this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"cancelled"}):i.meta.deadlineAt<=this.now()?(this.counters.deadlineExceededRequests+=1,this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"deadline_exceeded"}):(this.counters.completedRequests+=1,i.meta.idempotencyKey&&this.idempotency.set(i.meta.idempotencyKey,{result:r,error:o,settledAt:this.now()}),{accepted:!0})):{accepted:!1,reason:"unknown"}}metrics(){return{activeRequests:this.active.size,...this.counters}}};var Z=["agent.health","agent.metrics","agent.cancel","session.list","session.get","session.create","session.update","session.delete","session.deleteAll","session.archive","session.moveToProject","session.getState","session.switchProject","session.getMessages","project.list","project.create","project.delete","project.rename","project.archive","project.unarchive","project.update","project.archiveByGroup","project.purgeAll","instructions.list","instructions.read","instructions.write","instructions.delete","files.list","files.read","files.create","files.rename","files.delete","files.gitStatus","skills.list","memory.list-files","memory.atlas","memory.activity","memory.observe","memory.propose","memory.consolidate","memory.update"];var M=["turn.start","turn.delta","turn.end","turn.error","turn.recovery","turn.tool_call","turn.tool_result","turn.tool_blocked","turn.reasoning_delta","turn.approval_request","turn.skill_instruction","turn.ask_user","turn.media_result","turn.media_progress","turn.plan_update","turn.suggestions","turn.sidechain_started","turn.subagent_delta","turn.sidechain_completed","turn.task_updated","turn.todos_updated","turn.exec_progress","turn.usage_update","team.member.notification","session.info","memory.updated","skills.updated","pet.soul_ready","pet.reaction","pet.growth","pet.state","pet.confirm","pet.forged","system.activity"],k=["solo.progress","solo.agentDelta","solo.agentUsage","solo.agentDiff","solo.evaluation","product.taskStarted","product.taskOutput","product.taskCompleted","product.taskFailed","product.budgetUpdate","product.checkpointed","product.dagTopology","plan.interrupted"],ee=[...M,...k];var te=1,re={INITIALIZE:"initialize",SESSION_NEW:"session/new",SESSION_PROMPT:"session/prompt",SESSION_END:"session/end",SESSION_SET_CONFIG:"session/set_config_option",SESSION_SET_MODEL:"session/set_model",SESSION_SET_MODE:"session/set_mode",SESSION_UPDATE:"session/update",SESSION_REQUEST_PERMISSION:"session/request_permission",FS_READ_TEXT_FILE:"fs/read_text_file",FS_WRITE_TEXT_FILE:"fs/write_text_file"},oe={ABORT:"x/abort",DREAM:"x/dream",AGENTS_LIST:"x/agents.list",SOLO_START:"x/solo.start",SOLO_STATUS:"x/solo.status",SOLO_SELECT:"x/solo.select",SOLO_CANCEL:"x/solo.cancel",PRODUCT_CREATE:"x/product.create",PRODUCT_PLAN:"x/product.plan",PRODUCT_CONFIRM:"x/product.confirm",PRODUCT_MESSAGE:"x/product.message",PRODUCT_RESUME:"x/product.resume",PRODUCT_PAUSE:"x/product.pause",PRODUCT_CANCEL:"x/product.cancel",PRODUCT_ROLLBACK:"x/product.rollback",PRODUCT_STATUS:"x/product.status",SOLO_SUBSCRIBE:"x/solo.subscribe",SOLO_MESSAGE:"x/solo.message",SOLO_EVALUATE:"x/solo.evaluate",PRODUCT_SUBSCRIBE:"x/product.subscribe",TEAM_DELEGATE:"x/team.delegate"},x={AGENT_MESSAGE_CHUNK:"agent_message_chunk",AGENT_THOUGHT_CHUNK:"agent_thought_chunk",TOOL_CALL:"tool_call",TOOL_CALL_UPDATE:"tool_call_update",PLAN:"plan",USAGE_UPDATE:"usage_update",CONFIG_OPTION_UPDATE:"config_option_update",SESSION_INFO_UPDATE:"session_info_update",AVAILABLE_COMMANDS_UPDATE:"available_commands_update"},ne={X_SUBAGENT_STARTED:"x_subagent_started",X_SUBAGENT_DELTA:"x_subagent_delta",X_SUBAGENT_ENDED:"x_subagent_ended",X_MEDIA_RESULT:"x_media_result",X_MEDIA_PROGRESS:"x_media_progress",X_SKILL_INSTRUCTION:"x_skill_instruction",X_RECOVERY:"x_recovery",X_SIDECHAIN_STARTED:"x_sidechain_started",X_SIDECHAIN_COMPLETED:"x_sidechain_completed",X_SUGGESTIONS:"x_suggestions",X_ASK_USER:"x_ask_user",X_SESSION_INFO:"x_session_info",X_MEMORY_UPDATED:"x_memory_updated",X_TEAM_MEMBER_UPDATE:"x_team_member_update",X_SOLO_STARTED:"x_solo_started",X_SOLO_AGENT_FINISHED:"x_solo_agent_finished",X_SOLO_SELECTED:"x_solo_selected",X_PRODUCT_TASK_STARTED:"x_product_task_started",X_PRODUCT_TASK_COMPLETED:"x_product_task_completed",X_PRODUCT_CHECKPOINT:"x_product_checkpoint"};function O(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&"id"in t}function N(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function D(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&!("method"in t)}function ie(e){let t;try{t=JSON.parse(e)}catch{return null}return D(t)||O(t)||N(t)?t:null}function se(e){return Object.values(x).includes(e)}function ae(e){return e.startsWith("x_")}var E=["gatewayVersion","toolNamespaces","workspaceIds","installedCapabilities","enabledCapabilities","features","approvalMode","toolManifests","skillManifests","pluginManifests","mcpManifests","approvalPolicy","workspaceSummaries"];function g(e){return e?e.map(t=>({...t})):void 0}function _(e){return e?e.map(t=>({...t})):void 0}function pe(e){return e?[...e]:void 0}function w(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].sort((t,r)=>t.localeCompare(r))}function m(e){return{...e,toolNamespaces:[...e.toolNamespaces],workspaceIds:[...e.workspaceIds],...e.changedSections?{changedSections:[...e.changedSections]}:{},...e.installedCapabilities?{installedCapabilities:[...e.installedCapabilities]}:{},...e.enabledCapabilities?{enabledCapabilities:[...e.enabledCapabilities]}:{},...e.features?{features:[...e.features]}:{},...e.toolManifests?{toolManifests:g(e.toolManifests)}:{},...e.skillManifests?{skillManifests:g(e.skillManifests)}:{},...e.pluginManifests?{pluginManifests:g(e.pluginManifests)}:{},...e.mcpManifests?{mcpManifests:g(e.mcpManifests)}:{},...e.approvalPolicy?{approvalPolicy:{...e.approvalPolicy}}:{},...e.workspaceSummaries?{workspaceSummaries:_(e.workspaceSummaries)}:{}}}function ce(e){let{previous:t,update:r}=e;return!(r.syncMode==="diff"&&t&&(!r.baseSnapshotVersion||t.snapshotVersion===r.baseSnapshotVersion))||!t?m(r):{...m(t),snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,...r.gatewayVersion!==void 0?{gatewayVersion:r.gatewayVersion}:{},...r.syncMode?{syncMode:r.syncMode}:{},...r.baseSnapshotVersion?{baseSnapshotVersion:r.baseSnapshotVersion}:{},...r.changedSections?{changedSections:[...r.changedSections]}:{},...r.toolNamespaces?{toolNamespaces:[...r.toolNamespaces]}:{},...r.workspaceIds?{workspaceIds:[...r.workspaceIds]}:{},...r.installedCapabilities?{installedCapabilities:[...r.installedCapabilities]}:{},...r.enabledCapabilities?{enabledCapabilities:[...r.enabledCapabilities]}:{},...r.features?{features:[...r.features]}:{},...r.approvalMode?{approvalMode:r.approvalMode}:{},...r.toolManifests?{toolManifests:g(r.toolManifests)}:{},...r.skillManifests?{skillManifests:g(r.skillManifests)}:{},...r.pluginManifests?{pluginManifests:g(r.pluginManifests)}:{},...r.mcpManifests?{mcpManifests:g(r.mcpManifests)}:{},...r.approvalPolicy?{approvalPolicy:{...r.approvalPolicy}}:{},...r.workspaceSummaries?{workspaceSummaries:_(r.workspaceSummaries)}:{}}}function le(e){return w(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function de(e){return w(e.map(t=>t.id))}function ue(e){let{previous:t,current:r}=e;if(!t)return{...m(r),syncMode:"full"};if(t.snapshotVersion===r.snapshotVersion)return null;let o=E.filter(s=>JSON.stringify(t[s])!==JSON.stringify(r[s]));if(o.length===E.length)return{...m(r),syncMode:"full"};let i={snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:o,toolNamespaces:[...r.toolNamespaces],workspaceIds:[...r.workspaceIds]},c=i;for(let s of o){let n=r[s];if(n!==void 0)switch(s){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":c[s]=pe(n);break;case"approvalPolicy":c[s]={...n};break;case"workspaceSummaries":c[s]=_(n);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":c[s]=g(n);break;default:c[s]=n;break}}return i}var ge=["web_search","web_fetch","deep_research","browser_execution"],me=["web-intelligence","browser-execution"],ye=["discovery","read-url","multi-source-research","interactive-browser"],fe=["stateless","render-backend","interactive-session"],Ae=["stateless","stateless-single-step","stateful-session-required"],Re=["required","conditional","none"],Ee=["browser-read","browser-authenticated-read","browser-state-changing"],_e=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],Se=["web_search","web_fetch","deep_research","blocked"],Te=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],Pe=["none","same-capability-once","degrade-only"];var be=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],Ce=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],Ie=["observe-only","parent-write","deny"];var he=2,a={gatewayImage:"gateway.image.desktop-slim",whisperModelTiny:"speech.whisper.model.tiny",ffmpegWin32X64:"runtime.ffmpeg.win32-x64",nodeWin32X64:"runtime.node.win32-x64",dockerDesktopWin32X64:"runtime.docker-desktop.win32-x64",dockerDesktopDarwinX64:"runtime.docker-desktop.darwin-x64",dockerDesktopDarwinArm64:"runtime.docker-desktop.darwin-arm64"},y={desktopDockerBridge:"desktop.docker-bridge",desktopEmbeddedWin32X64:"desktop.embedded.win32-x64"};function L(e){return{...e,artifacts:e.artifacts.map(t=>({...t}))}}function ve(e){return{...e,assetIds:[...e.assetIds]}}function K(){return{[y.desktopDockerBridge]:{id:y.desktopDockerBridge,title:"Desktop Docker Bridge",platform:"any",assetIds:[a.gatewayImage,a.dockerDesktopWin32X64,a.dockerDesktopDarwinX64,a.dockerDesktopDarwinArm64],description:"Docker bridge mode downloads the desktop slim gateway image on demand."},[y.desktopEmbeddedWin32X64]:{id:y.desktopEmbeddedWin32X64,title:"Desktop Embedded Win32 x64",platform:"win32-x64",assetIds:[a.nodeWin32X64,a.ffmpegWin32X64,a.whisperModelTiny],description:"Embedded desktop mode requires the bundled Node/FFmpeg runtimes and the whisper model asset."}}}function W(e,t){return e.assets[t]}function V(e,t){return e.profiles[t]}function Me(e,t){let r=V(e,t);return r?r.assetIds.map(o=>W(e,o)).filter(o=>!!o):[]}function ke(e,t){return e.assets[t.id]=L(t),F(e)}function S(e){if(!e)return;let t=e.artifacts[0];if(!(!t?.url||!t.sha256||typeof t.size!="number"))return{version:e.version,sha256:t.sha256,size:t.size,url:t.url}}function F(e){let t=S(e.assets[a.gatewayImage]),r=S(e.assets[a.whisperModelTiny]);return{...e,gateway:t,whisperModel:r}}function U(e,t){if(!(typeof e.version!="string"||typeof e.url!="string"))return{...t,version:e.version,artifacts:[{fileName:e.url.split("/").pop()||`${t.id}.bin`,url:e.url,sha256:typeof e.sha256=="string"?e.sha256:void 0,size:typeof e.size=="number"?e.size:void 0}]}}function xe(e){let t=e&&typeof e=="object"?e:{},r={},o=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[n,p]of Object.entries(o)){if(!p||typeof p!="object")continue;let u=p;!u.id||!Array.isArray(u.artifacts)||(r[n]=L(u))}if(!r[a.gatewayImage]&&t.gateway&&typeof t.gateway=="object"){let n=U(t.gateway,{id:a.gatewayImage,title:"OpenClaw Gateway Image (Desktop Slim)",kind:"container-image",delivery:"remote",platform:"any",description:"Desktop Docker mode gateway image."});n&&(r[n.id]=n)}if(!r[a.whisperModelTiny]&&t.whisperModel&&typeof t.whisperModel=="object"){let n=U(t.whisperModel,{id:a.whisperModelTiny,title:"Whisper Tiny Model",kind:"model",delivery:"remote",platform:"any",description:"Shared whisper.cpp tiny model asset for embedded desktop speech recognition."});n&&(r[n.id]=n)}let c={...K()},s=t.profiles&&typeof t.profiles=="object"?t.profiles:{};for(let[n,p]of Object.entries(s)){if(!p||typeof p!="object")continue;let u=p;!u.id||!Array.isArray(u.assetIds)||(c[n]=ve(u))}return F({schemaVersion:typeof t.schemaVersion=="number"?t.schemaVersion:2,channel:typeof t.channel=="string"?t.channel:void 0,publishedAt:typeof t.publishedAt=="string"?t.publishedAt:void 0,minElectronVersion:typeof t.minElectronVersion=="string"?t.minElectronVersion:void 0,releaseNotes:typeof t.releaseNotes=="string"?t.releaseNotes:void 0,assets:r,profiles:c})}var Oe=["pending","captured","failed","restored"],Ne=["file","directory","missing"],De=["metadata-only","workspace-copy","shadow-git"];var we=["api-key","oauth","token","aws-sdk"],Ue=["rate_limit","auth","server_error","timeout","network","unknown"],Le=["requiresOpenAiAnthropicToolPayload"];function Ke(e,t){return!e||typeof e!="object"||Array.isArray(e)?!1:e[t]===!0}var j="openai-codex";function A(e){let t=e.trim().toLowerCase();return t==="z.ai"||t==="z-ai"?"zai":t==="opencode-zen"?"opencode":t==="kimi-code"?"kimi-coding":t==="bedrock"||t==="aws-bedrock"?"amazon-bedrock":t==="bytedance"||t==="doubao"?"volcengine":t}function B(e){let t=A(e);return t==="volcengine-plan"?"volcengine":t==="byteplus-plan"?"byteplus":t}var We=B,Ve={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},Fe={anthropic:{providerFamily:"anthropic"},"amazon-bedrock":{providerFamily:"anthropic"},"kimi-coding":{anthropicToolSchemaMode:"openai-functions",anthropicToolChoiceMode:"openai-string-modes",preserveAnthropicThinkingSignatures:!1},mistral:{transcriptToolCallIdMode:"strict9",transcriptToolCallIdModelHints:["mistral","mixtral","codestral","pixtral","devstral","ministral","mistralai"]},openai:{providerFamily:"openai"},[j]:{providerFamily:"openai"},openrouter:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},opencode:{openAiCompatTurnValidation:!1,providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]},kilocode:{providerThoughtSignatureSanitization:!0,providerThoughtSignatureModelHints:["gemini"]}};function T(e,t){let r=(e??"").toLowerCase();return!!r&&t.some(o=>r.includes(o))}function l(e){let t=A(e??"");return{...Ve,...Fe[t]}}function je(e){return l(e).preserveAnthropicThinkingSignatures}function Be(e){let t=l(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function qe(e){return l(e).anthropicToolSchemaMode==="openai-functions"}function Ye(e){return l(e).anthropicToolChoiceMode==="openai-string-modes"}function Xe(e){return l(e).openAiCompatTurnValidation}function He(e){return l(e).providerFamily==="openai"}function Ge(e){return l(e).providerFamily==="anthropic"}function ze(e){return T(e.modelId,l(e.provider).dropThinkingBlockModelHints)}function Je(e){let t=l(e.provider);return t.providerThoughtSignatureSanitization&&T(e.modelId,t.providerThoughtSignatureModelHints)}function Qe(e,t){let r=l(e),o=r.transcriptToolCallIdMode;if(o==="strict9")return o;if(T(t,r.transcriptToolCallIdModelHints))return"strict9"}var P={anthropic:["ANTHROPIC_OAUTH_TOKEN","ANTHROPIC_API_KEY"],chutes:["CHUTES_OAUTH_TOKEN","CHUTES_API_KEY"],zai:["ZAI_API_KEY","Z_AI_API_KEY"],opencode:["OPENCODE_API_KEY","OPENCODE_ZEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY"],byteplus:["BYTEPLUS_API_KEY"],"byteplus-plan":["BYTEPLUS_API_KEY"],"kimi-coding":["KIMI_API_KEY","KIMICODE_API_KEY"],huggingface:["HUGGINGFACE_HUB_TOKEN","HF_TOKEN"],openai:["OPENAI_API_KEY"],voyage:["VOYAGE_API_KEY"],groq:["GROQ_API_KEY"],deepgram:["DEEPGRAM_API_KEY"],cerebras:["CEREBRAS_API_KEY"],xai:["XAI_API_KEY"],openrouter:["OPENROUTER_API_KEY"],litellm:["LITELLM_API_KEY"],"vercel-ai-gateway":["AI_GATEWAY_API_KEY"],"cloudflare-ai-gateway":["CLOUDFLARE_AI_GATEWAY_API_KEY"],moonshot:["MOONSHOT_API_KEY"],minimax:["MINIMAX_API_KEY"],"minimax-cn":["MINIMAX_CN_API_KEY","MINIMAX_API_KEY"],nvidia:["NVIDIA_API_KEY"],xiaomi:["XIAOMI_API_KEY"],synthetic:["SYNTHETIC_API_KEY"],venice:["VENICE_API_KEY"],mistral:["MISTRAL_API_KEY"],together:["TOGETHER_API_KEY"],qianfan:["QIANFAN_API_KEY"],ollama:["OLLAMA_API_KEY"],vllm:["VLLM_API_KEY"],kilocode:["KILOCODE_API_KEY"]};function $e(){return[...new Set(Object.values(P).flat())]}function Ze(e){let t=A(e.provider),r=e.env??process.env,o=new Set(e.appliedEnvKeys??[]),i=n=>{let p=r[n]?.trim();if(!p)return null;let u=o.has(n)?`shell env: ${n}`:`env: ${n}`;return{apiKey:p,source:u}},c=e.resolveSpecialApiKey?.(t,r,o);if(c)return c;let s=P[t];if(!s||s.length===0)return null;for(let n of s){let p=i(n);if(p)return p}return null}export{oe as ACP_EXTENDED_METHODS,ne as ACP_EXTENDED_SESSION_UPDATE_TYPES,re as ACP_METHODS,te as ACP_PROTOCOL_VERSION,x as ACP_SESSION_UPDATE_TYPES,Y as AGENT_RPC_APPROVAL_METHODS,d as AGENT_RPC_ERROR_CODES,q as AGENT_RPC_PROTOCOL_VERSION,k as AGENT_TEAM_WS_EVENT_NAMES,M as AGENT_WS_EVENT_NAMES,ee as ALL_AGENT_WS_EVENT_NAMES,E as CAPABILITY_MANIFEST_DIFF_SECTIONS,Z as GATEWAY_RPC_METHODS,R as GatewayRpcContract,be as MEMORY_OBSERVATION_HOOK_VALUES,Ce as MEMORY_OBSERVATION_SOURCE_VALUES,Ie as MEMORY_WRITE_ACCESS_VALUES,De as MUTATION_CHECKPOINT_BACKEND_VALUES,Ne as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,Oe as MUTATION_CHECKPOINT_PHASE_VALUES,we as PROVIDER_RUNTIME_AUTH_MODE_VALUES,Le as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,P as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,j as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,Ue as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,he as RESOURCE_MANIFEST_SCHEMA_VERSION,a as RUNTIME_ASSET_IDS,y as RUNTIME_PROFILE_IDS,_e as WEB_ACTION_SCOPE_VALUES,Re as WEB_APPROVAL_DEFAULT_VALUES,me as WEB_CAPABILITY_FAMILY_VALUES,ge as WEB_CAPABILITY_ID_VALUES,Se as WEB_DEGRADATION_TARGET_VALUES,Te as WEB_ESCALATION_REASON_VALUES,fe as WEB_EXECUTION_MODE_VALUES,Ee as WEB_POLICY_RISK_CLASS_VALUES,Pe as WEB_RETRY_POLICY_VALUES,Ae as WEB_STATEFULNESS_VALUES,ye as WEB_TASK_MODE_VALUES,$ as buildAgentRpcMeta,f as classifyGatewayRpcMethod,m as cloneCapabilityManifestSnapshot,ue as createCapabilityManifestDiffPayload,K as createDefaultRuntimeResourceProfiles,le as deriveCapabilityToolNamespaces,de as deriveCapabilityWorkspaceIds,S as getManifestShortcutEntry,W as getRuntimeResourceAsset,V as getRuntimeResourceProfile,Me as getRuntimeResourceProfileAssets,N as isAcpJsonRpcNotification,O as isAcpJsonRpcRequest,D as isAcpJsonRpcResponse,I as isAgentRpcNotification,b as isAgentRpcRequest,C as isAgentRpcResponse,Ge as isAnthropicProviderRuntimeFamily,ae as isExtendedSessionUpdateType,He as isOpenAiProviderRuntimeFamily,se as isStandardSessionUpdateType,$e as listProviderRuntimeEnvApiKeyNames,ce as mergeCapabilityManifestSnapshot,A as normalizeProviderRuntimeId,B as normalizeProviderRuntimeIdForAuth,xe as normalizeRuntimeResourceManifest,ie as parseAcpMessage,X as parseAgentRpcMessage,je as preservesProviderRuntimeAnthropicThinkingSignatures,Ke as readProviderRuntimeCompatFlag,v as requireGatewayRpcMeta,h as requiresIdempotencyKey,Be as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,l as resolveProviderRuntimeCapabilities,Ze as resolveProviderRuntimeEnvApiKey,We as resolveProviderRuntimeKeyFamily,Qe as resolveProviderRuntimeTranscriptToolCallIdMode,ze as shouldDropThinkingBlocksForProviderRuntimeModel,Je as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,Xe as supportsOpenAiCompatTurnValidationForProviderRuntime,ke as upsertRuntimeResourceAsset,qe as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,Ye as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
@@ -1,30 +1 @@
1
- /**
2
- * Tool access constants for sub-agent tool filtering.
3
- *
4
- * CC-aligned: constants/tools.ts pattern.
5
- * Tool filtering happens at agent SPAWN time (not per-iteration in tool loop).
6
- *
7
- * CC reference: claude-code-haha/src/constants/tools.ts
8
- * CC reference: claude-code-haha/src/tools/AgentTool/agentToolUtils.ts
9
- */
10
- import type { ToolDefinition } from "./types.js";
11
- /**
12
- * Tools that ALL sub-agents are forbidden from using.
13
- * CC: ALL_AGENT_DISALLOWED_TOOLS
14
- */
15
- export declare const AGENT_DISALLOWED_TOOLS: Set<string>;
16
- /**
17
- * Additional tools denied for custom (user-defined) agents.
18
- * CC: CUSTOM_AGENT_DISALLOWED_TOOLS
19
- */
20
- export declare const CUSTOM_AGENT_DISALLOWED_TOOLS: Set<string>;
21
- /**
22
- * Filter tools available to a sub-agent.
23
- *
24
- * CC pattern: tool filtering happens at agent SPAWN time,
25
- * not per-iteration inside the tool loop.
26
- *
27
- * @param tools - Parent's full tool pool
28
- * @param isBuiltIn - Whether the agent is a built-in agent type (vs custom)
29
- */
30
- export declare function filterToolsForAgent(tools: ToolDefinition[], isBuiltIn: boolean): ToolDefinition[];
1
+ export * from "../skills/tool-access.js";
@@ -1,249 +1 @@
1
- /**
2
- * Centralized tunable defaults — single source of truth.
3
- *
4
- * ALL configurable constants that external apps (Electron UI, CLI config)
5
- * may want to read or override are defined here. This enables:
6
- *
7
- * 1. A future `config.tunables` RPC endpoint for visual editing
8
- * 2. Serialization to JSON for persistence (settings.json)
9
- * 3. Environment variable overrides via QLOGICAGENT_* prefix
10
- *
11
- * Consumers import individual constants from this module.
12
- * The full shape is exported as `TunableDefaults` interface for RPC typing.
13
- *
14
- * Grouping follows subsystem boundaries.
15
- */
16
- /** Absolute max rounds any agent can run (hard cap). */
17
- export declare const MAX_ROUNDS_LIMIT = 100;
18
- /** Default rounds for a top-level agent turn. */
19
- export declare const DEFAULT_MAX_ROUNDS = 25;
20
- /** Default temperature for LLM calls (0 = deterministic). */
21
- export declare const DEFAULT_TEMPERATURE = 0;
22
- /** Hard cap on tool calls per round (prevents runaway). */
23
- export declare const MAX_TOOL_BUDGET_CAP = 100;
24
- /** Default tool budget per round. Overridable via TOOL_LOOP_DEFAULT_BUDGET env. */
25
- export declare const DEFAULT_TOOL_BUDGET: number;
26
- /** Max consecutive tool call failures before early exit. */
27
- export declare const MAX_CONSECUTIVE_FAILURES = 3;
28
- /** Max times the exact same (tool_name, arguments) pair can repeat. */
29
- export declare const MAX_IDENTICAL_CALL_REPEATS = 2;
30
- /** Max times the same tool can fail with different args before blocking (variant-loop detection).
31
- * Includes both hard failures (ok=false) and soft empty results (e.g. "No matches found").
32
- * Note: blocked calls still emit tool_call events, so effective max attempts visible to
33
- * client = MAX + 1 (the blocked attempt) + possible 1 alternative tool = MAX + 2. */
34
- export declare const MAX_TOOL_VARIANT_FAILURES = 2;
35
- /** Default context window size (tokens). */
36
- export declare const DEFAULT_CONTEXT_WINDOW_TOKENS = 128000;
37
- /** Reserved tokens for model response output. */
38
- export declare const RESPONSE_BUFFER_TOKENS = 13000;
39
- /** Default max output tokens per LLM API call. */
40
- export declare const DEFAULT_MAX_OUTPUT_TOKENS = 16384;
41
- /** Model's absolute max output tokens (escalation ceiling). */
42
- export declare const DEFAULT_MODEL_MAX_OUTPUT_TOKENS = 65536;
43
- /** Max max_output_tokens recovery attempts (CC: 3). */
44
- export declare const MAX_OUTPUT_TOKENS_RECOVERY_LIMIT = 3;
45
- /** Escalated max output tokens during recovery (CC: 64k). */
46
- export declare const ESCALATED_MAX_OUTPUT_TOKENS = 65536;
47
- /** Delta threshold for "diminishing returns" detection (CC: 500). */
48
- export declare const DIMINISHING_RETURNS_THRESHOLD = 500;
49
- /** Min consecutive continuations before diminishing returns kicks in. */
50
- export declare const DIMINISHING_RETURNS_MIN_CONTINUATIONS = 3;
51
- /** Per-tool result size threshold (chars) for disk persistence. */
52
- export declare const DEFAULT_MAX_RESULT_SIZE_CHARS = 50000;
53
- /** Per-message aggregate tool result budget (chars). */
54
- export declare const MAX_TOOL_RESULTS_PER_MESSAGE_CHARS = 200000;
55
- /** Preview size for persisted tool result references (bytes). */
56
- export declare const TOOL_RESULT_PREVIEW_BYTES = 2000;
57
- /** Heartbeat interval during persistent retry waits (ms). */
58
- export declare const HEARTBEAT_INTERVAL_MS = 30000;
59
- /** Max 529 errors before fallback model switch. */
60
- export declare const MAX_529_RETRIES = 3;
61
- /** Max consecutive API error retries before aborting. */
62
- export declare const MAX_API_RETRIES = 2;
63
- /** Max backoff interval for persistent retry (ms). */
64
- export declare const PERSISTENT_RETRY_MAX_BACKOFF_MS = 300000;
65
- /** Total retry time cap for persistent retry (ms). */
66
- export declare const PERSISTENT_RETRY_RESET_CAP_MS = 21600000;
67
- /** Target usage ratio after compression (0-1). */
68
- export declare const COMPRESSION_TARGET_USAGE_RATIO = 0.75;
69
- /** Min token budget floor after compression. */
70
- export declare const COMPRESSION_MIN_BUDGET = 16000;
71
- /** Max token budget ceiling. */
72
- export declare const COMPRESSION_MAX_BUDGET = 120000;
73
- /** Max consecutive reactive compaction failures. */
74
- export declare const REACTIVE_COMPACT_MAX_FAILURES = 3;
75
- /** Min messages to keep after reactive compaction. */
76
- export declare const REACTIVE_COMPACT_MIN_MESSAGES = 4;
77
- /** Target usage percentage for reactive compaction. */
78
- export declare const REACTIVE_COMPACT_TARGET_PERCENT = 50;
79
- /** Max auto-learned skills per project. */
80
- export declare const MAX_SKILLS_PER_PROJECT = 20;
81
- /** Max global (user-level) skills. */
82
- export declare const MAX_SKILLS_GLOBAL = 50;
83
- /** Min tool calls to consider a turn "complex enough" for skill creation. */
84
- export declare const MIN_TOOL_CALLS_FOR_SKILL = 3;
85
- /** Min distinct tools to suggest a new skill. */
86
- export declare const MIN_DISTINCT_TOOLS_FOR_SKILL = 2;
87
- /** Cooldown between skill creation suggestions (ms). */
88
- export declare const SKILL_CREATION_COOLDOWN_MS: number;
89
- /**
90
- * Project-level pattern repetition threshold.
91
- * The same workflow signature must appear this many times across turns/sessions
92
- * before a skill creation is triggered. Prevents one-off complex turns from
93
- * immediately producing skills.
94
- */
95
- export declare const SKILL_PATTERN_REPETITION_THRESHOLD = 3;
96
- /**
97
- * Max age (ms) for pattern entries. Patterns older than this are pruned.
98
- * Default: 30 days.
99
- */
100
- export declare const SKILL_PATTERN_MAX_AGE_MS: number;
101
- /** Max chars of skill content injected into system prompt. */
102
- export declare const SKILL_INJECTION_MAX_CHARS = 4000;
103
- /** Max skills injected into a single prompt. */
104
- export declare const SKILL_INJECTION_MAX_COUNT = 5;
105
- /** Max skills recalled from other projects per turn. */
106
- export declare const SKILL_RECALL_MAX_SKILLS = 3;
107
- /** Max chars per recalled skill content. */
108
- export declare const SKILL_RECALL_MAX_CONTENT_CHARS = 800;
109
- /** Skill recall index cache TTL (ms). */
110
- export declare const SKILL_RECALL_CACHE_TTL_MS: number;
111
- /** Max nested fork depth for sub-agents. */
112
- export declare const MAX_FORK_DEPTH = 4;
113
- /** Team aggregate budget (total tokens across all forked sub-agents). 0 = unlimited. */
114
- export declare const TEAM_BUDGET_TOKENS = 0;
115
- /** Max historical sessions retained on disk. */
116
- export declare const MAX_SESSIONS = 50;
117
- /** Turn count threshold for triggering task summary. */
118
- export declare const TASK_SUMMARY_TURN_THRESHOLD = 50;
119
- /** Interval (turns) between summary regeneration. */
120
- export declare const TASK_SUMMARY_REGEN_INTERVAL = 30;
121
- /** Idle duration (ms) before a group session is auto-split into a new session. Default: 1 hour. */
122
- export declare const GROUP_SESSION_IDLE_THRESHOLD_MS: number;
123
- /** Hard limit: max turns in a single group session before soft-split. Default: 200 turns. */
124
- export declare const GROUP_SESSION_MAX_TURNS = 200;
125
- /** Max include nesting depth in instruction files. */
126
- export declare const MAX_INCLUDE_DEPTH = 5;
127
- /** Max total chars loaded from instruction files. */
128
- export declare const MAX_INSTRUCTION_CHARS = 40000;
129
- /** Max single instruction file size (bytes). */
130
- export declare const INSTRUCTIONS_MAX_FILE_SIZE: number;
131
- /** Max total instruction directory size (bytes). */
132
- export declare const INSTRUCTIONS_MAX_DIR_SIZE: number;
133
- /** Max single media file download size (bytes, 500 MB). */
134
- export declare const MEDIA_MAX_DOWNLOAD_SIZE: number;
135
- /** Max file size for direct LLM upload (bytes, 50 MB).
136
- * Files larger than this should be chunked or summarized before sending to LLM. */
137
- export declare const MEDIA_MAX_UPLOAD_SIZE: number;
138
- /** Media download timeout (ms). */
139
- export declare const MEDIA_DOWNLOAD_TIMEOUT_MS = 300000;
140
- /** Max retries when spawning an ACP agent process. */
141
- export declare const ACP_MAX_SPAWN_RETRIES = 2;
142
- /** Backoff base for agent spawn retries (ms). */
143
- export declare const ACP_RETRY_BACKOFF_BASE = 3000;
144
- /** Max automatic restarts after agent process crash. */
145
- export declare const ACP_RUNTIME_RESTART_MAX = 3;
146
- /** Backoff base for crash restarts (ms). */
147
- export declare const ACP_RUNTIME_RESTART_BACKOFF_BASE = 5000;
148
- /** Running task poll interval (ms). */
149
- export declare const TASK_POLL_INTERVAL_MS = 1000;
150
- /** How long to display stopped tasks before removal (ms). */
151
- export declare const TASK_STOPPED_DISPLAY_MS = 3000;
152
- /** Terminal task cleanup grace period (ms). */
153
- export declare const TASK_PANEL_GRACE_MS = 30000;
154
- /** Max bytes injected for session memory prefetch. */
155
- export declare const MEMORY_PREFETCH_MAX_SESSION_BYTES: number;
156
- /** Max results per memory recall query. */
157
- export declare const MEMORY_PREFETCH_LIMIT_PER_RECALL = 10;
158
- /** LRU dedup set size for surfaced memory entries. */
159
- export declare const MEMORY_MAX_SURFACED_ENTRIES = 100;
160
- /** Min hours between dream consolidation runs. */
161
- export declare const DREAM_MIN_INTERVAL_HOURS = 24;
162
- /** Min sessions before dream triggers. */
163
- export declare const DREAM_MIN_SESSIONS = 5;
164
- /** Dream scan throttle interval (ms). */
165
- export declare const DREAM_SCAN_INTERVAL_MS = 600000;
166
- /** Idle dream timer (minutes). */
167
- export declare const IDLE_DREAM_MINUTES = 30;
168
- /** Dream cooldown between runs (ms, 4 hours). */
169
- export declare const DREAM_COOLDOWN_MS = 14400000;
170
- /** Max dream run duration (ms). */
171
- export declare const DREAM_MAX_DURATION_MS = 300000;
172
- /**
173
- * Full typed shape of all tunable defaults.
174
- * Used by `config.tunables` RPC for external app visualization.
175
- */
176
- export interface TunableDefaults {
177
- maxRoundsLimit: number;
178
- defaultMaxRounds: number;
179
- defaultTemperature: number;
180
- maxToolBudgetCap: number;
181
- defaultToolBudget: number;
182
- maxConsecutiveFailures: number;
183
- maxIdenticalCallRepeats: number;
184
- defaultContextWindowTokens: number;
185
- responseBufferTokens: number;
186
- defaultMaxOutputTokens: number;
187
- defaultModelMaxOutputTokens: number;
188
- maxOutputTokensRecoveryLimit: number;
189
- escalatedMaxOutputTokens: number;
190
- diminishingReturnsThreshold: number;
191
- diminishingReturnsMinContinuations: number;
192
- defaultMaxResultSizeChars: number;
193
- maxToolResultsPerMessageChars: number;
194
- toolResultPreviewBytes: number;
195
- heartbeatIntervalMs: number;
196
- max529Retries: number;
197
- maxApiRetries: number;
198
- persistentRetryMaxBackoffMs: number;
199
- persistentRetryResetCapMs: number;
200
- compressionTargetUsageRatio: number;
201
- compressionMinBudget: number;
202
- compressionMaxBudget: number;
203
- reactiveCompactMaxFailures: number;
204
- reactiveCompactMinMessages: number;
205
- reactiveCompactTargetPercent: number;
206
- maxSkillsPerProject: number;
207
- maxSkillsGlobal: number;
208
- minToolCallsForSkill: number;
209
- minDistinctToolsForSkill: number;
210
- skillCreationCooldownMs: number;
211
- skillInjectionMaxChars: number;
212
- skillInjectionMaxCount: number;
213
- skillRecallMaxSkills: number;
214
- skillRecallMaxContentChars: number;
215
- skillRecallCacheTtlMs: number;
216
- maxForkDepth: number;
217
- maxSessions: number;
218
- taskSummaryTurnThreshold: number;
219
- taskSummaryRegenInterval: number;
220
- maxIncludeDepth: number;
221
- maxInstructionChars: number;
222
- instructionsMaxFileSize: number;
223
- instructionsMaxDirSize: number;
224
- mediaMaxDownloadSize: number;
225
- mediaMaxUploadSize: number;
226
- mediaDownloadTimeoutMs: number;
227
- acpMaxSpawnRetries: number;
228
- acpRetryBackoffBase: number;
229
- acpRuntimeRestartMax: number;
230
- acpRuntimeRestartBackoffBase: number;
231
- taskPollIntervalMs: number;
232
- taskStoppedDisplayMs: number;
233
- taskPanelGraceMs: number;
234
- memoryPrefetchMaxSessionBytes: number;
235
- memoryPrefetchLimitPerRecall: number;
236
- memoryMaxSurfacedEntries: number;
237
- dreamMinIntervalHours: number;
238
- dreamMinSessions: number;
239
- dreamScanIntervalMs: number;
240
- idleDreamMinutes: number;
241
- dreamCooldownMs: number;
242
- dreamMaxDurationMs: number;
243
- teamBudgetTokens: number;
244
- }
245
- /**
246
- * Snapshot of all current tunable values.
247
- * Use this for RPC serialization and external app display.
248
- */
249
- export declare function getTunableDefaults(): TunableDefaults;
1
+ export * from "../runtime/config/tunable-defaults.js";
@@ -162,6 +162,7 @@ export type TurnEvent = {
162
162
  callId: string;
163
163
  name: string;
164
164
  arguments: string;
165
+ inputSummary?: string;
165
166
  } | {
166
167
  type: "end";
167
168
  turnId: string;
@@ -187,6 +188,11 @@ export type TurnEvent = {
187
188
  ok: boolean;
188
189
  error?: string;
189
190
  outputPreview?: string;
191
+ durationMs?: number;
192
+ exitCode?: number;
193
+ stdout?: string;
194
+ stderr?: string;
195
+ details?: Record<string, unknown>;
190
196
  } | {
191
197
  type: "tool_blocked";
192
198
  turnId: string;
@@ -281,6 +287,7 @@ export interface ToolInvoker {
281
287
  error?: string;
282
288
  toolReferences?: string[];
283
289
  imageUrls?: string[];
290
+ details?: Record<string, unknown>;
284
291
  }>;
285
292
  }
286
293
  /**
@@ -0,0 +1,41 @@
1
+ import { type DreamHandlerHost } from "./handlers/dream-handler.js";
2
+ import { type ProductCoordinatorHost } from "./handlers/product-handler.js";
3
+ import { type SoloHandlerHost } from "./handlers/solo-handler.js";
4
+ import type { LLMTransport } from "./provider-core-facade.js";
5
+ export interface AcpExtendedHost extends DreamHandlerHost, SoloHandlerHost, ProductCoordinatorHost {
6
+ activeTurn?: AbortController | null;
7
+ currentSessionId?: string;
8
+ getActiveProjectRoot(): string;
9
+ log(message: string): void;
10
+ resolveClientForPurpose(purpose: "textGeneration"): {
11
+ transport: LLMTransport;
12
+ apiKey: string;
13
+ model: string;
14
+ } | null;
15
+ }
16
+ export declare function handleAcpDream(host: AcpExtendedHost, params: {
17
+ sessionId: string;
18
+ config?: Record<string, unknown>;
19
+ }): Promise<{
20
+ ok: boolean;
21
+ summary?: string;
22
+ }>;
23
+ export declare function handleAcpSoloStart(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
24
+ export declare function handleAcpSoloStatus(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
25
+ export declare function handleAcpSoloSelect(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
26
+ export declare function handleAcpSoloCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
27
+ export declare function handleAcpSoloSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
28
+ export declare function handleAcpSoloMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
29
+ export declare function handleAcpSoloEvaluate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
30
+ export declare function handleAcpAgentsList(host: AcpExtendedHost): Promise<unknown>;
31
+ export declare function handleAcpProductCreate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
32
+ export declare function handleAcpProductPlan(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
33
+ export declare function handleAcpProductConfirm(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
34
+ export declare function handleAcpProductMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
35
+ export declare function handleAcpProductResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
36
+ export declare function handleAcpProductStatus(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
37
+ export declare function handleAcpProductPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
38
+ export declare function handleAcpProductCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
39
+ export declare function handleAcpProductRollback(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
40
+ export declare function handleAcpProductSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
41
+ export declare function handleAcpTeamDelegate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
@@ -0,0 +1,28 @@
1
+ import type { AgentRpcError } from "../protocol/wire/index.js";
2
+ import type { AcpExtendedHost } from "./acp-extended-handlers.js";
3
+ import type { DreamHandlerHost } from "./handlers/dream-handler.js";
4
+ import type { MultiAgentHandlerHost } from "./multi-agent-handler-host.js";
5
+ type AgentStatusExtra = {
6
+ missedBeats?: number;
7
+ lastActivityAt?: number;
8
+ usage?: {
9
+ inputTokens: number;
10
+ outputTokens: number;
11
+ totalTokens: number;
12
+ };
13
+ };
14
+ export interface AcpExtendedHostAdapterDeps {
15
+ dreamHost: DreamHandlerHost;
16
+ multiAgentHost: MultiAgentHandlerHost;
17
+ getCurrentSessionId(): string;
18
+ getActiveProjectRoot(): string;
19
+ log(message: string): void;
20
+ resolveAgent: DreamHandlerHost["resolveAgent"];
21
+ sendNotification(method: string, params: Record<string, unknown>): void;
22
+ sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
23
+ emitAgentStatus(agentId: string, state: string, extra?: AgentStatusExtra): void;
24
+ handleMcpToolCall(memberId: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
25
+ resolveClientForPurpose: AcpExtendedHost["resolveClientForPurpose"];
26
+ }
27
+ export declare function createAcpExtendedHostAdapter(deps: AcpExtendedHostAdapterDeps): AcpExtendedHost;
28
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ import type { ChatMessage, TurnConfig } from "../agent/types.js";
2
+ import type { HookRegistry } from "../contracts/hooks.js";
3
+ import type { SessionHistoryCoordinator } from "./session-history-coordinator.js";
4
+ import { createMemoryPrefetchState } from "../runtime/hooks/memory-hooks.js";
5
+ import { SessionState } from "../runtime/session/session-state.js";
6
+ import { type AcpInitializeParams, type AcpInitializeResult, type AcpSessionEndParams, type AcpSessionNewParams, type AcpSessionNewResult, type AcpSessionPromptParams, type AcpSessionPromptResult, type AcpSessionSetConfigParams } from "../protocol/wire/index.js";
7
+ export interface AcpSessionHost {
8
+ activeTurn: AbortController | null;
9
+ currentApiKey: string;
10
+ currentBaseUrl: string;
11
+ currentHooks: HookRegistry | null;
12
+ currentModel: string;
13
+ currentProvider: string;
14
+ currentSessionId: string;
15
+ mcpReady: Promise<void>;
16
+ memoryPrefetchState: ReturnType<typeof createMemoryPrefetchState>;
17
+ sessionHistory: Pick<SessionHistoryCoordinator, "appendAcpUserMessage" | "appendAcpAssistantMessage" | "clearAcpSession">;
18
+ sessionState: SessionState | null;
19
+ sessionTaskDomain: unknown;
20
+ cancelIdleDreamTimer(): void;
21
+ disposeSessionRuntime?(): void;
22
+ enableIdleDream(): void;
23
+ ensureDefaultProject(): void;
24
+ getActiveProjectRoot(): string;
25
+ log(message: string): void;
26
+ resolveAgent(config: TurnConfig): {
27
+ run(request: unknown, signal?: AbortSignal): AsyncIterable<any>;
28
+ } | null;
29
+ sendNotification(method: string, params: unknown): void;
30
+ setActiveWorkdir(dir: string): void;
31
+ }
32
+ export declare function handleAcpInitialize(host: AcpSessionHost, params: AcpInitializeParams, packageVersion: string): Promise<AcpInitializeResult>;
33
+ export declare function handleAcpSessionNew(host: AcpSessionHost, params: AcpSessionNewParams): Promise<AcpSessionNewResult>;
34
+ export declare function handleAcpSessionPrompt(host: AcpSessionHost, params: AcpSessionPromptParams): Promise<AcpSessionPromptResult>;
35
+ export declare function runAcpTurn(host: AcpSessionHost, turnId: string, sessionId: string, messages: ChatMessage[]): Promise<AcpSessionPromptResult>;
36
+ export declare function handleAcpSessionEnd(host: AcpSessionHost, params: AcpSessionEndParams): Promise<void>;
37
+ export declare function handleAcpSessionSetConfig(host: AcpSessionHost, params: AcpSessionSetConfigParams): Promise<void>;
38
+ export declare function handleAcpSessionSetModel(host: AcpSessionHost, _sessionId: string, model: string): Promise<void>;
39
+ export declare function handleAcpSessionSetMode(host: AcpSessionHost, _sessionId: string, mode: string): Promise<void>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import { AgentConfigStore } from "../runtime/infra/agent-config-store.js";
2
+ import type { AcpDetector } from "../runtime/infra/acp-detector.js";
3
+ export interface AgentConfigCoordinatorDeps {
4
+ acpDetector: AcpDetector;
5
+ getActiveProjectRoot(): string;
6
+ }
7
+ export declare class AgentConfigCoordinator {
8
+ private readonly deps;
9
+ private store;
10
+ constructor(deps: AgentConfigCoordinatorDeps);
11
+ get currentStore(): AgentConfigStore | null;
12
+ ensureStore(): Promise<AgentConfigStore>;
13
+ }
@@ -0,0 +1,11 @@
1
+ import type { AgentConfigStore } from "../runtime/infra/agent-config-store.js";
2
+ import type { AcpDetector } from "../runtime/infra/acp-detector.js";
3
+ export interface AgentConfigRuntime {
4
+ readonly currentStore: AgentConfigStore | null;
5
+ ensureStore(): Promise<AgentConfigStore>;
6
+ }
7
+ export interface AgentConfigRuntimeDeps {
8
+ acpDetector: AcpDetector;
9
+ getActiveProjectRoot(): string;
10
+ }
11
+ export declare function createAgentConfigRuntime(deps: AgentConfigRuntimeDeps): AgentConfigRuntime;
@@ -0,0 +1,2 @@
1
+ import type { ForkedAgentRunnerFactory } from "../runtime/ports/index.js";
2
+ export declare const createCliForkedAgentRunner: ForkedAgentRunnerFactory;