qlogicagent 2.24.1 → 2.24.2

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 (297) hide show
  1. package/README.md +52 -324
  2. package/dist/agent.js +38 -43
  3. package/dist/cli.js +7 -7
  4. package/dist/default-project-knowledge/INSTRUCTIONS.md +7 -7
  5. package/dist/default-project-knowledge/rules/project-workflow.md +6 -6
  6. package/dist/index.js +265 -1018
  7. package/dist/orchestration.js +10 -10
  8. package/dist/types/agent/runtime-vars.d.ts +1 -16
  9. package/dist/types/agent/tool-loop/compression-pipeline.d.ts +0 -2
  10. package/dist/types/agent/tool-loop.d.ts +0 -6
  11. package/dist/types/agent/types.d.ts +3 -22
  12. package/dist/types/cli/acp-commands.d.ts +4 -5
  13. package/dist/types/cli/acp-message-router.d.ts +1 -2
  14. package/dist/types/cli/acp-session-handlers.d.ts +6 -12
  15. package/dist/types/cli/acp-session-host.d.ts +5 -48
  16. package/dist/types/cli/adapter-launch-config.d.ts +14 -0
  17. package/dist/types/cli/agent-runtime-bootstrap.d.ts +2 -23
  18. package/dist/types/cli/agent-runtime-session-state.d.ts +1 -6
  19. package/dist/types/cli/base-tool-bootstrap.d.ts +0 -2
  20. package/dist/types/cli/cli-acp-request-handler.d.ts +3 -5
  21. package/dist/types/cli/core-tool-coordinator.d.ts +0 -4
  22. package/dist/types/cli/core-tools/agent-tool-service.d.ts +0 -3
  23. package/dist/types/cli/core-tools/fork-system-prompt.d.ts +1 -5
  24. package/dist/types/cli/handlers/files-handler.d.ts +0 -6
  25. package/dist/types/cli/handlers/turn-handler.d.ts +7 -83
  26. package/dist/types/cli/main.d.ts +2 -4
  27. package/dist/types/cli/permission-approval-bridge.d.ts +2 -6
  28. package/dist/types/cli/permission-bootstrap.d.ts +2 -12
  29. package/dist/types/cli/plugin-bootstrap.d.ts +2 -4
  30. package/dist/types/cli/runtime-hook-bootstrap.d.ts +0 -21
  31. package/dist/types/cli/session-context.d.ts +4 -14
  32. package/dist/types/cli/session-coordinator.d.ts +1 -9
  33. package/dist/types/cli/stdio-acp-protocol-coordinator.d.ts +2 -9
  34. package/dist/types/cli/stdio-acp-request-host.d.ts +3 -15
  35. package/dist/types/cli/stdio-agent-session-bootstrap.d.ts +3 -23
  36. package/dist/types/cli/stdio-runtime-bootstrap.d.ts +0 -8
  37. package/dist/types/cli/stdio-runtime-services.d.ts +2 -13
  38. package/dist/types/cli/stdio-server.d.ts +6 -128
  39. package/dist/types/cli/tool-bootstrap.d.ts +4 -8
  40. package/dist/types/cli/tool-catalog.d.ts +2 -2
  41. package/dist/types/cli/tool-invoker-factory.d.ts +0 -2
  42. package/dist/types/cli/tool-registry-adapter.d.ts +3 -7
  43. package/dist/types/cli/tool-result-processor.d.ts +0 -1
  44. package/dist/types/cli/turn-core.d.ts +6 -10
  45. package/dist/types/cli/turn-event-forwarder.d.ts +6 -3
  46. package/dist/types/cli/turn-lifecycle.d.ts +0 -3
  47. package/dist/types/cli/turn-project-router.d.ts +0 -7
  48. package/dist/types/contracts/hooks.d.ts +1 -20
  49. package/dist/types/contracts/tool-execution-evidence.d.ts +20 -1
  50. package/dist/types/contracts/turn-event.d.ts +2 -2
  51. package/dist/types/orchestration/index.d.ts +1 -1
  52. package/dist/types/protocol/notifications.d.ts +2 -9
  53. package/dist/types/protocol/wire/acp-protocol.d.ts +12 -186
  54. package/dist/types/protocol/wire/capability-transport.d.ts +0 -2
  55. package/dist/types/protocol/wire/index.d.ts +2 -10
  56. package/dist/types/protocol/wire/notification-payloads.d.ts +4 -989
  57. package/dist/types/protocol/wire/thread-protocol.d.ts +24 -3
  58. package/dist/types/runtime/config/tunable-defaults.d.ts +3 -75
  59. package/dist/types/runtime/execution/forked-agent.d.ts +2 -5
  60. package/dist/types/runtime/execution/streaming-tool-executor.d.ts +0 -2
  61. package/dist/types/runtime/execution/tool-result-storage.d.ts +13 -4
  62. package/dist/types/runtime/infra/agent-paths.d.ts +4 -54
  63. package/dist/types/runtime/infra/agent-project-projection.d.ts +20 -0
  64. package/dist/types/runtime/infra/background-tasks.d.ts +3 -3
  65. package/dist/types/runtime/infra/default-path-service.d.ts +0 -7
  66. package/dist/types/runtime/infra/llmrouter-catalog.d.ts +1 -1
  67. package/dist/types/runtime/infra/model-registry.d.ts +6 -9
  68. package/dist/types/runtime/infra/project-store.d.ts +3 -3
  69. package/dist/types/runtime/infra/subagent-turn-snapshot.d.ts +54 -7
  70. package/dist/types/runtime/infra/task-runtime.d.ts +1 -1
  71. package/dist/types/runtime/ports/agent-runtime-ports.d.ts +1 -3
  72. package/dist/types/runtime/ports/index.d.ts +0 -4
  73. package/dist/types/runtime/ports/path-service.d.ts +1 -9
  74. package/dist/types/runtime/ports/tool-contracts.d.ts +0 -1
  75. package/dist/types/runtime/session/agent-session-projection.d.ts +37 -0
  76. package/dist/types/runtime/tasks/task-types.d.ts +2 -25
  77. package/dist/types/skills/mcp/mcp-manager.d.ts +2 -2
  78. package/dist/types/skills/plugins/plugin-loader.d.ts +1 -1
  79. package/dist/types/skills/skill-system/skill-category.d.ts +4 -2
  80. package/dist/types/skills/tools.d.ts +1 -18
  81. package/dist/types/test-support/project-store-fixture.d.ts +4 -4
  82. package/dist/types/transport/acp-event-emitter.d.ts +1 -20
  83. package/dist/types/transport/acp-server.d.ts +8 -88
  84. package/package.json +4 -96
  85. package/dist/agent-contract.js +0 -1
  86. package/dist/host-contract.js +0 -1
  87. package/dist/host-session-collection-contract.js +0 -1
  88. package/dist/memory-category-contract.js +0 -1
  89. package/dist/permissions.js +0 -1
  90. package/dist/plugin-marketplace-compute.js +0 -1
  91. package/dist/project-memory-host.js +0 -38
  92. package/dist/protocol.js +0 -1
  93. package/dist/skill-category-contract.js +0 -1
  94. package/dist/tunables.js +0 -1
  95. package/dist/types/agent/memory-recall-context.d.ts +0 -22
  96. package/dist/types/agent/memory-recall-injection.d.ts +0 -32
  97. package/dist/types/cli/acp-extended-handlers.d.ts +0 -110
  98. package/dist/types/cli/acp-extended-host-adapter.d.ts +0 -20
  99. package/dist/types/cli/community-resource-installer.d.ts +0 -39
  100. package/dist/types/cli/community-skill-installer.d.ts +0 -18
  101. package/dist/types/cli/community-workflow-installer.d.ts +0 -29
  102. package/dist/types/cli/default-project-bootstrap.d.ts +0 -12
  103. package/dist/types/cli/dream-host-adapter.d.ts +0 -24
  104. package/dist/types/cli/gateway-rpc-connection.d.ts +0 -50
  105. package/dist/types/cli/handlers/community-handler.d.ts +0 -14
  106. package/dist/types/cli/handlers/config-handler.d.ts +0 -19
  107. package/dist/types/cli/handlers/control-handler.d.ts +0 -29
  108. package/dist/types/cli/handlers/dream-handler.d.ts +0 -41
  109. package/dist/types/cli/handlers/goal-handler.d.ts +0 -66
  110. package/dist/types/cli/handlers/memory-handler.d.ts +0 -23
  111. package/dist/types/cli/handlers/product-handler.d.ts +0 -35
  112. package/dist/types/cli/handlers/session-handler.d.ts +0 -29
  113. package/dist/types/cli/handlers/skill-curator-handler.d.ts +0 -8
  114. package/dist/types/cli/handlers/solo-handler.d.ts +0 -25
  115. package/dist/types/cli/handlers/turn-baseline-handler.d.ts +0 -8
  116. package/dist/types/cli/handlers/workflow-compute-handler.d.ts +0 -8
  117. package/dist/types/cli/handlers/working-materials-handler.d.ts +0 -9
  118. package/dist/types/cli/idle-dream-coordinator.d.ts +0 -57
  119. package/dist/types/cli/memory-background-coordinator.d.ts +0 -26
  120. package/dist/types/cli/memory-candidate-service.d.ts +0 -75
  121. package/dist/types/cli/memory-coordinator.d.ts +0 -40
  122. package/dist/types/cli/multi-agent-handler-host.d.ts +0 -16
  123. package/dist/types/cli/multi-agent-state-coordinator.d.ts +0 -8
  124. package/dist/types/cli/orchestration-memory-context.d.ts +0 -23
  125. package/dist/types/cli/product-acp-params.d.ts +0 -30
  126. package/dist/types/cli/product-coordinator.d.ts +0 -21
  127. package/dist/types/cli/project-memory-store-factory.d.ts +0 -12
  128. package/dist/types/cli/project-template-seeder.d.ts +0 -5
  129. package/dist/types/cli/rpc-registry.d.ts +0 -56
  130. package/dist/types/cli/session-history-coordinator.d.ts +0 -8
  131. package/dist/types/cli/session-query-service.d.ts +0 -27
  132. package/dist/types/cli/stdio-rpc-handler-hosts.d.ts +0 -56
  133. package/dist/types/cli/stdio-session-runtime-coordinator.d.ts +0 -17
  134. package/dist/types/cli/task-distillation-coordinator.d.ts +0 -146
  135. package/dist/types/cli/turn-ask-user-setup.d.ts +0 -24
  136. package/dist/types/cli/turn-suggestion-generator.d.ts +0 -15
  137. package/dist/types/contracts/memory-recall-packet.d.ts +0 -31
  138. package/dist/types/contracts/memory-response-contract.d.ts +0 -2
  139. package/dist/types/host-contract/fts-segment.d.ts +0 -20
  140. package/dist/types/host-contract/index.d.ts +0 -1819
  141. package/dist/types/host-contract/memory-category.d.ts +0 -8
  142. package/dist/types/host-contract/skill-category.d.ts +0 -5
  143. package/dist/types/host-session-collection-contract.d.ts +0 -65
  144. package/dist/types/orchestration/agent-instance.d.ts +0 -215
  145. package/dist/types/orchestration/agent-roster.d.ts +0 -32
  146. package/dist/types/orchestration/dag-scheduler.d.ts +0 -219
  147. package/dist/types/orchestration/delegate-approval-policy.d.ts +0 -8
  148. package/dist/types/orchestration/delegate-bridge.d.ts +0 -8
  149. package/dist/types/orchestration/goal-acceptance.d.ts +0 -17
  150. package/dist/types/orchestration/goal-context-envelope.d.ts +0 -7
  151. package/dist/types/orchestration/goal-loop-coordinator.d.ts +0 -151
  152. package/dist/types/orchestration/goal-mode-adapters.d.ts +0 -152
  153. package/dist/types/orchestration/goal-run-persistence.d.ts +0 -21
  154. package/dist/types/orchestration/goal-run-types.d.ts +0 -225
  155. package/dist/types/orchestration/planner-memory-brief.d.ts +0 -39
  156. package/dist/types/orchestration/product-budget.d.ts +0 -94
  157. package/dist/types/orchestration/product-checkpoint.d.ts +0 -50
  158. package/dist/types/orchestration/product-dag-mutation-applier.d.ts +0 -10
  159. package/dist/types/orchestration/product-persistence.d.ts +0 -90
  160. package/dist/types/orchestration/product-planner.d.ts +0 -332
  161. package/dist/types/orchestration/product-run-coordinator.d.ts +0 -49
  162. package/dist/types/orchestration/product-worktree.d.ts +0 -19
  163. package/dist/types/orchestration/run-state-host-authority.d.ts +0 -7
  164. package/dist/types/orchestration/solo-evaluator.d.ts +0 -179
  165. package/dist/types/orchestration/solo-persistence.d.ts +0 -47
  166. package/dist/types/orchestration/solo-spec-builder.d.ts +0 -58
  167. package/dist/types/orchestration/testing/delegate-test-bridge.d.ts +0 -23
  168. package/dist/types/orchestration/testing/host-agent-provider-directory-fixture.d.ts +0 -7
  169. package/dist/types/orchestration/testing/run-state-client-double.d.ts +0 -13
  170. package/dist/types/orchestration/workflow/budget-permission-gate.d.ts +0 -94
  171. package/dist/types/orchestration/workflow/builtin-capabilities.d.ts +0 -3
  172. package/dist/types/orchestration/workflow/builtin-executors.d.ts +0 -18
  173. package/dist/types/orchestration/workflow/capability-catalog.d.ts +0 -72
  174. package/dist/types/orchestration/workflow/cron-schedule.d.ts +0 -36
  175. package/dist/types/orchestration/workflow/data-item.d.ts +0 -39
  176. package/dist/types/orchestration/workflow/expression.d.ts +0 -60
  177. package/dist/types/orchestration/workflow/host-executors.d.ts +0 -15
  178. package/dist/types/orchestration/workflow/n8n-expression.d.ts +0 -48
  179. package/dist/types/orchestration/workflow/n8n-import.d.ts +0 -64
  180. package/dist/types/orchestration/workflow/n8n-template-compat.d.ts +0 -5
  181. package/dist/types/orchestration/workflow/node-registry.d.ts +0 -32
  182. package/dist/types/orchestration/workflow/node-schema.d.ts +0 -249
  183. package/dist/types/orchestration/workflow/params-schema.d.ts +0 -69
  184. package/dist/types/orchestration/workflow/qla-executor-host.d.ts +0 -63
  185. package/dist/types/orchestration/workflow/run-checkpoint-store.d.ts +0 -53
  186. package/dist/types/orchestration/workflow/run-history-store.d.ts +0 -103
  187. package/dist/types/orchestration/workflow/semantic-acceptance.d.ts +0 -65
  188. package/dist/types/orchestration/workflow/trigger-validation.d.ts +0 -22
  189. package/dist/types/orchestration/workflow/workflow-audit-store.d.ts +0 -31
  190. package/dist/types/orchestration/workflow/workflow-authoring.d.ts +0 -74
  191. package/dist/types/orchestration/workflow/workflow-bundle.d.ts +0 -51
  192. package/dist/types/orchestration/workflow/workflow-controller.d.ts +0 -237
  193. package/dist/types/orchestration/workflow/workflow-edit-context.d.ts +0 -46
  194. package/dist/types/orchestration/workflow/workflow-error.d.ts +0 -28
  195. package/dist/types/orchestration/workflow/workflow-intent-contract.d.ts +0 -56
  196. package/dist/types/orchestration/workflow/workflow-patch.d.ts +0 -122
  197. package/dist/types/orchestration/workflow/workflow-render.d.ts +0 -40
  198. package/dist/types/orchestration/workflow/workflow-runtime.d.ts +0 -184
  199. package/dist/types/orchestration/workflow/workflow-scheduler.d.ts +0 -122
  200. package/dist/types/orchestration/workflow/workflow-store.d.ts +0 -85
  201. package/dist/types/orchestration/workflow/workflow-template-setup.d.ts +0 -65
  202. package/dist/types/orchestration/workflow/workflow-trigger.d.ts +0 -43
  203. package/dist/types/orchestration/workflow-chat-builder.d.ts +0 -152
  204. package/dist/types/orchestration/worktree-task-prompt.d.ts +0 -1
  205. package/dist/types/permissions.d.ts +0 -4
  206. package/dist/types/project-memory-host.d.ts +0 -4
  207. package/dist/types/protocol/agent-contract.d.ts +0 -93
  208. package/dist/types/protocol/methods.d.ts +0 -645
  209. package/dist/types/protocol/wire/acp-agent-management.d.ts +0 -533
  210. package/dist/types/protocol/wire/agent-events.d.ts +0 -1
  211. package/dist/types/protocol/wire/agent-methods.d.ts +0 -500
  212. package/dist/types/protocol/wire/agent-rpc.d.ts +0 -100
  213. package/dist/types/protocol/wire/gateway-contract.d.ts +0 -61
  214. package/dist/types/protocol/wire/gateway-rpc.d.ts +0 -1177
  215. package/dist/types/protocol/wire/memory-provider-lifecycle.d.ts +0 -31
  216. package/dist/types/protocol/wire/turn.d.ts +0 -208
  217. package/dist/types/runtime/community/autonomy-budget.d.ts +0 -26
  218. package/dist/types/runtime/community/community-consent-client.d.ts +0 -55
  219. package/dist/types/runtime/community/package-materialize.d.ts +0 -19
  220. package/dist/types/runtime/community/ranged-download.d.ts +0 -21
  221. package/dist/types/runtime/community/registry-signature.d.ts +0 -48
  222. package/dist/types/runtime/execution/dream-agent.d.ts +0 -273
  223. package/dist/types/runtime/execution/dream-category-context.d.ts +0 -47
  224. package/dist/types/runtime/execution/memory-decay.d.ts +0 -73
  225. package/dist/types/runtime/execution/turn-progress-notifier.d.ts +0 -16
  226. package/dist/types/runtime/hooks/memory-hooks.d.ts +0 -111
  227. package/dist/types/runtime/infra/acp-host-handler.d.ts +0 -31
  228. package/dist/types/runtime/infra/acp-protocol-adapter.d.ts +0 -209
  229. package/dist/types/runtime/infra/acp-usage-tracker.d.ts +0 -46
  230. package/dist/types/runtime/infra/cloud-auth-host-authority.d.ts +0 -4
  231. package/dist/types/runtime/infra/feedback-distillation-worker.d.ts +0 -20
  232. package/dist/types/runtime/infra/feedback-distillation.d.ts +0 -32
  233. package/dist/types/runtime/infra/feedback-event-store.d.ts +0 -179
  234. package/dist/types/runtime/infra/feedback-host-authority.d.ts +0 -4
  235. package/dist/types/runtime/infra/feedback-outbox.d.ts +0 -26
  236. package/dist/types/runtime/infra/feedback-redaction.d.ts +0 -71
  237. package/dist/types/runtime/infra/feedback-upload-client.d.ts +0 -39
  238. package/dist/types/runtime/infra/feedback-upload-worker.d.ts +0 -11
  239. package/dist/types/runtime/infra/host-agent-provider-directory.d.ts +0 -17
  240. package/dist/types/runtime/infra/project-authority-facade.d.ts +0 -11
  241. package/dist/types/runtime/infra/project-data-paths.d.ts +0 -24
  242. package/dist/types/runtime/infra/project-host-authority.d.ts +0 -11
  243. package/dist/types/runtime/infra/project-instructions-store.d.ts +0 -30
  244. package/dist/types/runtime/infra/turn-baseline-store.d.ts +0 -102
  245. package/dist/types/runtime/infra/turn-telemetry-store.d.ts +0 -100
  246. package/dist/types/runtime/infra/working-materials-store.d.ts +0 -29
  247. package/dist/types/runtime/memory/find-relevant-memories.d.ts +0 -26
  248. package/dist/types/runtime/memory/implicit-extraction.d.ts +0 -69
  249. package/dist/types/runtime/memory/memory-recall-attribution.d.ts +0 -24
  250. package/dist/types/runtime/ports/memory-provider.d.ts +0 -219
  251. package/dist/types/runtime/ports/memory-recall-source.d.ts +0 -14
  252. package/dist/types/runtime/ports/memory-writer.d.ts +0 -70
  253. package/dist/types/runtime/ports/project-memory-store.d.ts +0 -49
  254. package/dist/types/runtime/prompt/host-skill-directory.d.ts +0 -16
  255. package/dist/types/runtime/session/group-session-split.d.ts +0 -38
  256. package/dist/types/runtime/session/inbound-upload-persistence.d.ts +0 -47
  257. package/dist/types/runtime/session/session-catalog.d.ts +0 -12
  258. package/dist/types/runtime/session/session-deletion-guard.d.ts +0 -4
  259. package/dist/types/runtime/session/session-locator.d.ts +0 -26
  260. package/dist/types/runtime/session/session-metadata-store.d.ts +0 -8
  261. package/dist/types/runtime/session/session-paths.d.ts +0 -8
  262. package/dist/types/runtime/session/session-permission-store.d.ts +0 -6
  263. package/dist/types/runtime/session/session-persistence.d.ts +0 -37
  264. package/dist/types/runtime/session/session-recovery.d.ts +0 -62
  265. package/dist/types/runtime/session/session-resource-key.d.ts +0 -28
  266. package/dist/types/runtime/session/session-resume.d.ts +0 -9
  267. package/dist/types/runtime/session/session-schema.d.ts +0 -10
  268. package/dist/types/runtime/session/session-summary.d.ts +0 -7
  269. package/dist/types/runtime/session/session-title.d.ts +0 -9
  270. package/dist/types/runtime/session/session-transcript-store.d.ts +0 -30
  271. package/dist/types/runtime/session/session-types.d.ts +0 -113
  272. package/dist/types/runtime/session/session-write-queue.d.ts +0 -3
  273. package/dist/types/skills/memory/host-memory-provider.d.ts +0 -235
  274. package/dist/types/skills/memory/memdir.d.ts +0 -111
  275. package/dist/types/skills/memory/memory-content-safety.d.ts +0 -1
  276. package/dist/types/skills/memory/memory-vector-utils.d.ts +0 -2
  277. package/dist/types/skills/memory/task-distillation.d.ts +0 -183
  278. package/dist/types/skills/plugins/plugin-marketplace.d.ts +0 -43
  279. package/dist/types/skills/skill-system/skill-bundles.d.ts +0 -8
  280. package/dist/types/skills/skill-system/skill-lifecycle.d.ts +0 -89
  281. package/dist/types/test-support/run-state-authority-setup.d.ts +0 -1
  282. package/dist/types/transport/delegate-client.d.ts +0 -82
  283. package/dist/types/transport/host-capability-client.d.ts +0 -21
  284. package/dist/types/transport/host-cloud-auth-client.d.ts +0 -10
  285. package/dist/types/transport/host-community-client.d.ts +0 -7
  286. package/dist/types/transport/host-feedback-client.d.ts +0 -25
  287. package/dist/types/transport/host-profile-client.d.ts +0 -19
  288. package/dist/types/transport/host-project-client.d.ts +0 -16
  289. package/dist/types/transport/host-request-client.d.ts +0 -42
  290. package/dist/types/transport/host-run-state-client.d.ts +0 -23
  291. package/dist/types/transport/host-session-client.d.ts +0 -30
  292. package/dist/types/tunables.d.ts +0 -2
  293. package/dist/types/workflow-host.d.ts +0 -38
  294. package/dist/workflow-host.js +0 -11
  295. /package/dist/types/{host-contract → protocol/wire}/acp-content.d.ts +0 -0
  296. /package/dist/types/{host-contract → runtime/infra}/project-id.d.ts +0 -0
  297. /package/dist/types/{host-contract → runtime/infra}/provider-profile.d.ts +0 -0
@@ -1 +0,0 @@
1
- import{MODEL_PURPOSES as Zt}from"@xiaozhiclaw/module-sdk/model-access";function f(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function y(e,t){let n=new Set(t);return Object.keys(e).every(o=>n.has(o))}function l(e){return typeof e=="string"&&e.trim()===e&&e.length>0&&e.length<=512&&!e.includes("\0")}function b(e){return Number.isSafeInteger(e)&&Number(e)>0}function w(e){return f(e)&&y(e,["agentId","projectId","nativeId"])&&l(e.agentId)&&l(e.projectId)&&l(e.nativeId)}function M(e){if(!f(e)||!y(e,["resourceId","canonicalSessionId","source","projectId","agentId","title","titleSource","lastActiveAt","pinnedAt","lifecycle","availableCommands","nativeRef"])||!l(e.resourceId)||!l(e.projectId)||!l(e.agentId)||!l(e.lastActiveAt)||e.source!=="host"&&e.source!=="native-unadopted"||e.source==="host"&&!l(e.canonicalSessionId)||e.source==="native-unadopted"&&!w(e.nativeRef)||e.canonicalSessionId!==void 0&&!l(e.canonicalSessionId)||e.nativeRef!==void 0&&!w(e.nativeRef))return!1;let t=new Set(["host.setPinned","host.rename","host.setArchived","host.deleteRecord"]);return!Array.isArray(e.availableCommands)||!e.availableCommands.every(n=>typeof n=="string"&&t.has(n))||new Set(e.availableCommands).size!==e.availableCommands.length||e.source==="native-unadopted"&&e.availableCommands.length>0||e.title!==void 0&&typeof e.title!="string"||e.pinnedAt!==void 0&&!l(e.pinnedAt)||e.titleSource!==void 0&&e.titleSource!=="prompt"&&e.titleSource!=="generated"&&e.titleSource!=="user"&&e.titleSource!=="native"&&e.titleSource!=="repaired"?!1:e.lifecycle==="active"||e.lifecycle==="archived"||e.lifecycle==="source-missing"||e.lifecycle==="resume-unavailable"}function _(e){return f(e)&&y(e,["agentId","projectId","code","message","lastGoodRevision"])&&l(e.agentId)&&l(e.projectId)&&l(e.code)&&typeof e.message=="string"&&e.message.length>0&&e.message.length<=2e4&&(e.lastGoodRevision===void 0||b(e.lastGoodRevision))}function $(e){return typeof e=="string"&&e.length>0&&!Number.isNaN(Date.parse(e))}function X(e){return f(e)&&y(e,["id","role","content","createdAt"])&&Object.prototype.hasOwnProperty.call(e,"content")&&(e.id===void 0||l(e.id))&&(e.role==="user"||e.role==="assistant"||e.role==="tool")&&(e.createdAt===void 0||$(e.createdAt))}function W(e){return f(e)&&y(e,["messages","diagnostics"])&&Array.isArray(e.messages)&&e.messages.every(X)&&(e.diagnostics===void 0||Array.isArray(e.diagnostics))}function v(e){return f(e)&&y(e,["revision","scopeGeneration","items","diagnostics"])&&b(e.revision)&&b(e.scopeGeneration)&&Array.isArray(e.items)&&e.items.every(M)&&Array.isArray(e.diagnostics)&&e.diagnostics.every(_)}function Q(e){return f(e)&&y(e,["revision","scopeGeneration","addedOrUpdated","removed","diagnostics"])&&b(e.revision)&&b(e.scopeGeneration)&&(e.addedOrUpdated===void 0||Array.isArray(e.addedOrUpdated)&&e.addedOrUpdated.every(M))&&(e.removed===void 0||Array.isArray(e.removed)&&e.removed.every(l))&&(e.diagnostics===void 0||Array.isArray(e.diagnostics)&&e.diagnostics.every(_))}var P="llmrouter";function T(e){return e.baseUrl??e.base_url}function O(e){return{zhipu:"Zhipu GLM","zhipu-openai":"Zhipu GLM OpenAI","zhipu-coding":"Zhipu GLM Coding",qwen:"Alibaba Qwen (DashScope)","qwen-coding":"Alibaba Qwen (Coding Plan)",volcengine:"Doubao / Volcengine","volcengine-plan":"Doubao / Volcengine Plan"}[e.id]??e.displayName??e.name??e.id}function A(e){return e.id===P?P:e.group?.trim()||e.id}function J(e){return e.id===A(e)}function E(e){return O({...e,id:A(e)})}function Z(e){return{volcengine:"\u5E38\u89C4 Ark API Key","volcengine-plan":"\u8BA2\u9605 / Plan \u901A\u9053",qwen:"\u5E38\u89C4 DashScope API Key","qwen-coding":"Coding Plan \u901A\u9053",zhipu:"Anthropic \u901A\u9053","zhipu-openai":"OpenAI \u517C\u5BB9\u901A\u9053","zhipu-coding":"Coding \u901A\u9053"}[e.id]??O(e)}function ee(e){return e.authType==="none"?!1:e.apiKeyEnvVars===void 0||e.apiKeyEnvVars.length>0}function te(e){return{id:e.id,displayName:Z(e),baseUrl:T(e)??"",modelCount:e.models?.length??0}}function dt(e){let t=new Map;for(let n of e){if(!ee(n))continue;let o=A(n);if(o===P)continue;let d=n.models?.length??0,m=te(n),c=t.get(o);if(!c){t.set(o,{id:o,displayName:E(n),baseUrl:T(n)??"",modelCount:d,variants:[m]});continue}c.modelCount+=d,c.variants??=[],c.variants.some(p=>p.id===m.id)||c.variants.push(m),J(n)&&(c.displayName=E(n),c.baseUrl=T(n)??c.baseUrl)}return Array.from(t.values()).map(({variants:n,...o})=>({...o,...n&&n.length>1?{variants:n}:{}}))}function ne(e){return e.defaultModel??e.models?.find(t=>!!t.id)?.id}function re(e){let t=e.replace(/\/+$/,"");return[...new Set([`${t}/models`,/\/v\d+$/.test(t)?`${t}/models`:`${t}/v1/models`])]}function ct(e){return e===404||e===405||e===410||e===501}function x(e){return{accept:"application/json",Authorization:`Bearer ${e}`}}function se(e,t){let n=e.trim(),o=t?.baseUrl?.trim();return t?.transport==="anthropic-messages"&&o&&/\/anthropic\/?$/.test(o)&&!/\/anthropic\/?$/.test(n)?o:n}function ie(e){let t=e.trim().replace(/\/+$/,"");return t.endsWith("/v1")?`${t}/models`:`${t}/v1/models`}function pt(e,t,n,o){if(e===P)return[{method:"GET",url:ie(n),headers:x(t)}];let d=se(n,o).replace(/\/+$/,""),m=o?.transport,c=ne(o??{id:e}),p=[];if(m==="anthropic-messages")return/\/anthropic$/.test(d)&&p.push({method:"GET",url:`${d.replace(/\/anthropic$/,"")}/models`,headers:x(t)}),c&&p.push({method:"POST",url:`${d}/v1/messages`,headers:{"Content-Type":"application/json","x-api-key":t,"anthropic-version":"2023-06-01"},body:{model:c,messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1}}),p;if(m==="gemini-generatecontent")return c?[{method:"POST",url:`${d}/models/${encodeURIComponent(c)}:generateContent`,headers:{"Content-Type":"application/json","x-goog-api-key":t},body:{contents:[{role:"user",parts:[{text:"ping"}]}],generationConfig:{maxOutputTokens:1}}}]:p;if(m==="volcengine-responses")return c?[{method:"POST",url:`${d.replace(/\/v\d+$/,"")}/v3/responses`,headers:{"Content-Type":"application/json",Authorization:`Bearer ${t}`},body:{model:c,input:[{role:"user",content:[{type:"input_text",text:"ping"}]}],max_output_tokens:1,stream:!1,store:!1}}]:p;for(let h of re(d))p.push({method:"GET",url:h,headers:x(t)});return p}var oe=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],ae=new Set(oe),de=["equals","includes","excludes"],ce=new Set(de);function gt(e,t="general"){if(typeof e!="string")return t;let n=e.trim().toLowerCase().replace(/\s+/g,"_");return ae.has(n)?n:t}function mt(e,t="equals"){if(typeof e!="string")return t;let n=e.trim().toLowerCase();return ce.has(n)?n:t}import{createHash as pe}from"node:crypto";import{resolve as le}from"node:path";function ge(e){return pe("sha256").update(le(e).toLowerCase()).digest("hex").slice(0,16)}var me=/[一-鿿]/;function D(e){let t=[],n=e.toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[];for(let o of n){let d="",m=!1,c=()=>{if(d){if(m){d.length===1&&t.push(d);for(let p=0;p+1<d.length;p++)t.push(d.slice(p,p+2))}else t.push(d);d=""}};for(let p of o){let h=me.test(p);d&&h!==m&&c(),m=h,d+=p}c()}return t}function ue(e){return D(e).join(" ")}var j=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"],fe={efficiency:"\u529E\u516C\u534F\u4F5C",dev:"\u5F00\u53D1\u7F16\u7A0B",cloud:"\u4E91\u4E0E\u8FD0\u7EF4",data:"\u6570\u636E\u5206\u6790",industrial:"\u5DE5\u4E1A\u81EA\u52A8\u5316",marketing:"\u8425\u9500\u9500\u552E",ecommerce:"\u7535\u5546\u8FD0\u8425",procurement:"\u91C7\u8D2D\u4F9B\u5E94\u94FE",hr:"\u4EBA\u529B\u884C\u653F",accounting:"\u8D22\u52A1\u4F1A\u8BA1",finance:"\u91D1\u878D\u6295\u8D44",legal:"\u6CD5\u52A1\u5408\u89C4",lifestyle:"\u4E2A\u4EBA\u751F\u6D3B"},ye=new Set(j);function Ie(e){return typeof e=="string"&&ye.has(e)}var k=":";function bt(e){for(let[t,n]of[["kind",e.kind],["owner",e.owner],["name",e.name]])if(n.includes(k))throw new Error(`memberKey: field "${t}" contains reserved separator "${k}": ${n}`);return`${e.kind}${k}${e.owner}${k}${e.name}${k}${e.seq}`}function kt(e,t){return e.kind===t.kind&&e.owner===t.owner&&e.name===t.name&&e.seq===t.seq}var Pt=["CANCELLED","PROCESS_EXIT","HEARTBEAT_TIMEOUT","TURN_TIMEOUT","PROTOCOL_MISMATCH","UNKNOWN"],Rt=[["onboarding-v1","preference"],["onboarding-v1","boundary"],["onboarding-v1","workspace"],["onboarding-v1","identity"]],Se=1,xt={request:"x/delegate",update:"x/delegate.update",respond:"x/delegate.respond",cancel:"x/delegate.cancel"},he=["search","embedText","ingestExtracted","proposeExtracted","consumePendingProposals","feedback","findRelatedEvents","synthesizeTimeline","getActivitySummary","getAllProfiles","setProfile","getAtlas","setMemoryArchived","triggerDecay","resolveConflicts","readProcedureUsage","writeProcedureUsage","readDistillCandidates","writeDistillCandidates","readPromotionProposals","writePromotionProposals","listActiveMemoriesByTag","readDistilledProcedure","promoteDistilledProcedure","demoteDistilledProcedure","recordInjectedAccess","recordRecallOutcome","enqueueExtractionTurn","claimPendingExtractionTurns","completeExtractionTurn","releaseExtractionTurn","recordExtractionTurnFailure"],be=["initialize","getIndex","addToIndex","replaceInIndex","removeFromIndex","createFile","writeFile","readFile","deleteFile","listFiles","searchLocal"],ke=["getSkillSnapshot","readSkillFile","recordSkillInvocation","commitSkillMutation","applyCuratorPlan","prepareSkillInstall","finalizeSkillInstall"],Pe=["loadForResume","appendTranscript","updateTitle","saveState","saveTaskSummary","groupSplit"],Re=["commitTurnTelemetry","listDistillableFeedback","markFeedbackDistilled","runUploadSweep"],xe=["getSnapshot","create","switch","update"],Tt=1024*1024,Te=["resolveInstall","listResourceVersions"],Ae=["probeSession"],He=["list","get","diagnose"],Ce=["navigate","snapshot","click","type","screenshot","console","network"],At=["navigate","click","type"],Ht=["snapshot","screenshot","console","network"];function Ct(e){if(typeof e!="string")return!1;let t=/^preview:([1-9]\d*)$/.exec(e);return t!==null&&Number.isSafeInteger(Number(t[1]))}var we=["open","openWithCheckpoint","recordEvent","checkpoint","get","list","delete","getCheckpoint","listCheckpoints","restoreCheckpoint"],Me=["getTunables","updateTunable","clearTunable","appendDirectoryAllowRule"],wt={request:"x/host.request"},H=new Set(["memory","projectMemory","profile","preview","capability","session","feedback","project","runState","provider","community","cloudAuth"]),_e=new Set(he),Ee=new Set(be),Oe=new Set(Me),De=new Set(ke),je=new Set(Pe),Fe=new Set(Re),Ne=new Set(xe),Le=new Set(we),qe=new Set(He),Ue=new Set(Te),Be=new Set(Ae),Ve=new Set(Ce);function s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function R(e){return Array.isArray(e)&&e.every(t=>typeof t=="string")}function q(e,t){return t.every(n=>e[n]===void 0||typeof e[n]=="string")}function Ke(e){return s(e)?typeof e.name=="string"&&e.name.length>0&&(e.state==="active"||e.state==="stale"||e.state==="archived")&&typeof e.createdAt=="string"&&typeof e.pinned=="boolean"&&typeof e.useCount=="number"&&Number.isFinite(e.useCount)&&(e.source==="learned"||e.source==="created"||e.source==="installed"||e.source==="promoted")&&q(e,["lastUsedAt","lastViewedAt","lastPatchedAt","staleAt","archivedAt","resourceType","artifactDigest","contentTreeDigest","registryResourceId","registryVersion","registryKeptSignalAt","routingSummary","capabilityClass"])&&["launcherRequired","manualReviewRequired"].every(t=>e[t]===void 0||typeof e[t]=="boolean")&&["positiveCount","negativeCount"].every(t=>e[t]===void 0||typeof e[t]=="number"&&Number.isFinite(e[t]))&&["sourceTier","registrySourceTier"].every(t=>e[t]===void 0||e[t]==="official"||e[t]==="community")&&["riskTier","registryRiskTier","registryEffectiveRiskTier"].every(t=>e[t]===void 0||e[t]==="R0"||e[t]==="R1"||e[t]==="R2"||e[t]==="R3"):!1}function Ye(e){return s(e)?r(e,["name","filePath","baseDir","fileRevision","globallyDisabled","projectDisabled","active","systemGenerated","description","version","category","author","environments","source","registryVersion"])&&typeof e.name=="string"&&e.name.length>0&&typeof e.filePath=="string"&&e.filePath.length>0&&typeof e.baseDir=="string"&&e.baseDir.length>0&&typeof e.fileRevision=="string"&&e.fileRevision.length>0&&typeof e.globallyDisabled=="boolean"&&typeof e.projectDisabled=="boolean"&&typeof e.active=="boolean"&&typeof e.systemGenerated=="boolean"&&q(e,["description","version","category","author","registryVersion"])&&(e.source===void 0||e.source==="learned"||e.source==="created"||e.source==="installed"||e.source==="promoted")&&(e.environments===void 0||R(e.environments)):!1}function ze(e){return s(e)&&r(e,["name","skills","filePath"])&&typeof e.name=="string"&&e.name.length>0&&R(e.skills)&&typeof e.filePath=="string"&&e.filePath.length>0}function Mt(e){return!s(e)||typeof e.revision!="string"||e.revision.length===0?!1:e.notModified===!0?r(e,["revision","notModified"]):e.notModified!==!1||!r(e,["revision","notModified","skills","lifecycle","bundles"])?!1:Array.isArray(e.skills)&&e.skills.every(Ye)&&Array.isArray(e.lifecycle)&&e.lifecycle.every(Ke)&&Array.isArray(e.bundles)&&e.bundles.every(ze)}function _t(e){return s(e)&&r(e,["name","relativePath","content","baseDir","revision"])&&typeof e.name=="string"&&e.name.length>0&&typeof e.relativePath=="string"&&e.relativePath.length>0&&typeof e.content=="string"&&typeof e.baseDir=="string"&&e.baseDir.length>0&&typeof e.revision=="string"&&e.revision.length>0}function Et(e){return s(e)&&r(e,["name","lastUsedAt","useCount","positiveCount","negativeCount"])&&u(e.name)&&typeof e.lastUsedAt=="string"&&e.lastUsedAt.length>0&&["useCount","positiveCount","negativeCount"].every(t=>typeof e[t]=="number"&&Number.isFinite(e[t])&&e[t]>=0)}function Ot(e){return!s(e)||!u(e.name)||typeof e.kind!="string"?!1:e.kind==="create"||e.kind==="editContent"||e.kind==="editSupportingFile"?r(e,["kind","name","revision","changed"])&&typeof e.revision=="string"&&e.revision.length>0&&e.changed===!0:e.kind==="delete"?r(e,["kind","name","deleted"])&&e.deleted===!0:e.kind==="setGlobalDisabled"||e.kind==="setProjectDisabled"?r(e,["kind","name","disabled","changed"])&&typeof e.disabled=="boolean"&&typeof e.changed=="boolean":e.kind==="setPinned"?r(e,["kind","name","pinned","changed"])&&typeof e.pinned=="boolean"&&typeof e.changed=="boolean":e.kind==="promote"?r(e,["kind","name","promoted","changed"])&&e.promoted===!0&&typeof e.changed=="boolean":!1}function Ge(e,t){return e==="active"&&t==="stale"||e==="stale"&&(t==="archived"||t==="active")||e==="archived"&&t==="active"}function U(e){return s(e)&&r(e,["name","from","to"])&&u(e.name)&&Ge(e.from,e.to)}function Dt(e){return s(e)&&r(e,["revision","changed","transitioned"])&&typeof e.revision=="string"&&e.revision.length>0&&typeof e.changed=="boolean"&&Array.isArray(e.transitioned)&&e.transitioned.every(U)}function jt(e){return s(e)&&r(e,["installationId","artifactPath","contentDir","expiresAt"])&&["installationId","artifactPath","contentDir","expiresAt"].every(t=>typeof e[t]=="string"&&e[t].length>0)}function Ft(e){return s(e)?e.action==="discard"?r(e,["action","discarded"])&&e.discarded===!0:e.action==="adopt"&&r(e,["action","resourceId","version","skillName","installDir","checksum","replaced"])&&u(e.resourceId)&&e.skillName===e.resourceId&&typeof e.version=="string"&&e.version.length>0&&typeof e.installDir=="string"&&e.installDir.length>0&&typeof e.checksum=="string"&&/^[a-f0-9]{64}$/.test(e.checksum)&&typeof e.replaced=="boolean":!1}function r(e,t){let n=new Set(t);return Object.keys(e).every(o=>n.has(o))}function S(e,t){return e[t]===void 0||typeof e[t]=="string"}function g(e,t){return e[t]===void 0||typeof e[t]=="string"&&e[t].trim().length>0}function u(e){return typeof e=="string"&&/^[A-Za-z0-9_.-]+$/.test(e)&&e!=="."&&e!==".."}function B(e){return typeof e!="string"||e.trim()!==e||e.length===0||e.includes("\0")||/^(?:[A-Za-z]:[\\/]|[\\/])/.test(e)?!1:e.split(/[\\/]/).every(n=>n.length>0&&n!=="."&&n!=="..")}function F(e){return B(e)&&e.toLowerCase()!=="skill.md"}function $e(e,t){if(!s(t))return!1;if(e==="getSkillSnapshot")return r(t,["projectId","knownRevision"])&&g(t,"projectId")&&g(t,"knownRevision");if(e==="readSkillFile")return r(t,["name","relativePath","expectedRevision"])&&u(t.name)&&(t.relativePath===void 0||B(t.relativePath))&&g(t,"expectedRevision");if(e==="commitSkillMutation"){if(!r(t,["mutation"])||!s(t.mutation))return!1;let n=t.mutation;return!u(n.name)||typeof n.kind!="string"?!1:n.kind==="create"?!r(n,["kind","name","content","source","supportingFile"])||typeof n.content!="string"||n.source!==void 0&&n.source!=="created"&&n.source!=="learned"?!1:n.supportingFile===void 0?!0:s(n.supportingFile)&&r(n.supportingFile,["relativePath","content"])&&F(n.supportingFile.relativePath)&&typeof n.supportingFile.content=="string":n.kind==="editContent"?r(n,["kind","name","expectedRevision","content"])&&typeof n.expectedRevision=="string"&&n.expectedRevision.length>0&&typeof n.content=="string":n.kind==="editSupportingFile"?r(n,["kind","name","relativePath","expectedRevision","content"])&&F(n.relativePath)&&(n.expectedRevision===null||typeof n.expectedRevision=="string"&&n.expectedRevision.length>0)&&typeof n.content=="string":n.kind==="delete"?r(n,["kind","name"]):n.kind==="setGlobalDisabled"?r(n,["kind","name","disabled"])&&typeof n.disabled=="boolean":n.kind==="setProjectDisabled"?r(n,["kind","name","projectId","disabled"])&&typeof n.projectId=="string"&&n.projectId.length>0&&typeof n.disabled=="boolean":n.kind==="setPinned"?r(n,["kind","name","pinned"])&&typeof n.pinned=="boolean":n.kind==="promote"?r(n,["kind","name"]):!1}if(e==="applyCuratorPlan"){if(!r(t,["expectedRevision","transitions"])||typeof t.expectedRevision!="string"||t.expectedRevision.length===0||!Array.isArray(t.transitions)||t.transitions.length>500||!t.transitions.every(U))return!1;let n=t.transitions.map(o=>o.name);return new Set(n).size===n.length}if(e==="prepareSkillInstall"){if(!r(t,["name","version","checksum","sizeBytes","allowReplace","replacementPolicy","provenance","manifestSchemaVersion","manifestDigest","requiredCapabilities","credentials","searchTerms","routingSummary","capabilityClass"])||!u(t.name)||typeof t.version!="string"||!t.version.trim()||typeof t.checksum!="string"||!/^[a-f0-9]{64}$/.test(t.checksum)||!Number.isSafeInteger(t.sizeBytes)||t.sizeBytes<=0||t.sizeBytes>20*1024*1024||typeof t.allowReplace!="boolean"||(t.allowReplace===!0?t.replacementPolicy!=="managed-unmodified"&&t.replacementPolicy!=="user-confirmed":t.replacementPolicy!==void 0)||!s(t.provenance)||t.manifestSchemaVersion!==18||typeof t.manifestDigest!="string"||!/^sha256:[a-f0-9]{64}$/.test(t.manifestDigest)||!Array.isArray(t.requiredCapabilities)||!t.requiredCapabilities.every(o=>s(o)&&r(o,["capabilityId","optional","reason"])&&typeof o.capabilityId=="string"&&/^[a-z][a-z0-9]*(?:[._:-][a-z0-9-]+)*$/u.test(o.capabilityId)&&(o.optional===void 0||typeof o.optional=="boolean")&&(o.reason===void 0||typeof o.reason=="string"&&o.reason.trim().length>0))||t.credentials!==void 0&&(!Array.isArray(t.credentials)||t.credentials.length>32||!t.credentials.every(o=>s(o)&&r(o,["key","label","envKey","placeholder","secret","helpUrl"])&&typeof o.key=="string"&&o.key.trim().length>0&&o.key.length<=128&&typeof o.label=="string"&&o.label.trim().length>0&&o.label.length<=256&&typeof o.envKey=="string"&&/^[A-Z][A-Z0-9_]*$/.test(o.envKey)&&(o.placeholder===void 0||typeof o.placeholder=="string"&&o.placeholder.length<=256)&&(o.secret===void 0||typeof o.secret=="boolean")&&(o.helpUrl===void 0||typeof o.helpUrl=="string"&&/^https:\/\/[^\s]+$/i.test(o.helpUrl))))||t.searchTerms!==void 0&&(!Array.isArray(t.searchTerms)||t.searchTerms.length>64||t.searchTerms.some(o=>typeof o!="string"||!o.trim()||o.length>256))||t.routingSummary!==void 0&&(typeof t.routingSummary!="string"||!t.routingSummary.trim()||t.routingSummary.length>256||/[\r\n]/u.test(t.routingSummary))||t.capabilityClass!==void 0&&(typeof t.capabilityClass!="string"||!/^[a-z][a-z0-9-]{0,63}$/u.test(t.capabilityClass))||!r(t.provenance,["sourceTier","resourceRiskTier","effectiveRiskTier"]))return!1;let n=o=>o==="R0"||o==="R1"||o==="R2"||o==="R3";return(t.provenance.sourceTier==="official"||t.provenance.sourceTier==="community")&&n(t.provenance.resourceRiskTier)&&n(t.provenance.effectiveRiskTier)}return e==="finalizeSkillInstall"?r(t,["installationId","action"])&&typeof t.installationId=="string"&&t.installationId.trim().length>0&&(t.action==="adopt"||t.action==="discard"):r(t,["name","success"])&&u(t.name)&&typeof t.success=="boolean"}function i(e){return typeof e=="string"&&e.trim()===e&&e.length>0&&e.length<=512&&!e.includes("\0")}function a(e){return Number.isSafeInteger(e)&&e>=0}function V(e){return e==="installed"||e==="auth_required"||e==="ready"||e==="disabled"||e==="incompatible"||e==="unresponsive"||e==="failed"||e==="not_installed"}function Xe(e){return V(e)&&e!=="not_installed"}function We(e){return!s(e)||!r(e,["providerId","state","stage","code","message","retryable","providerVersion","payloadVersion"])?!1:i(e.providerId)&&V(e.state)&&["install","manifest","auth","launch","initialize","models","native_sessions","request"].includes(String(e.stage))&&i(e.code)&&typeof e.message=="string"&&typeof e.retryable=="boolean"&&g(e,"providerVersion")&&g(e,"payloadVersion")}function N(e,t){return s(e)&&r(e,t)&&t.every(n=>typeof e[n]=="boolean")}function ve(e){return s(e)?e.kind==="provider"?r(e,["kind","enumeration"])&&(e.enumeration==="protocol"||e.enumeration==="implicit-default"):e.kind==="host"&&r(e,["kind","managedPurposes"])&&R(e.managedPurposes):!1}function K(e){if(!s(e)||!r(e,["providerId","displayName","version","state","capabilities","diagnostic"])||!i(e.providerId)||!i(e.displayName)||!i(e.version)||!Xe(e.state)||e.diagnostic!==void 0&&!We(e.diagnostic)||!s(e.capabilities)||!r(e.capabilities,["execution","auth","models","nativeSessions","diagnostics"]))return!1;let t=e.capabilities;return!N(t.execution,["streaming","approvals","cancellation","resume"])||!s(t.auth)||!r(t.auth,["modes","terminal","logout"])||!Array.isArray(t.auth.modes)||!t.auth.modes.every(n=>n==="account"||n==="userKey"||n==="managed")||typeof t.auth.terminal!="boolean"||typeof t.auth.logout!="boolean"||!ve(t.models)||!N(t.nativeSessions,["discover","transcript","resume"])?!1:s(t.diagnostics)&&r(t.diagnostics,["readiness","version","structuredErrors"])&&t.diagnostics.readiness===!0&&t.diagnostics.version===!0&&t.diagnostics.structuredErrors===!0}function Nt(e){return s(e)&&r(e,["revision","providers"])&&a(e.revision)&&Array.isArray(e.providers)&&e.providers.every(K)}function Lt(e){return s(e)&&r(e,["revision","provider"])&&a(e.revision)&&(e.provider===null||K(e.provider))}function I(e,t=0){return t>12?!1:e===null||typeof e=="string"||typeof e=="boolean"?!0:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.length<=1e4&&e.every(n=>I(n,t+1)):!s(e)||Object.keys(e).length>1e3?!1:Object.values(e).every(n=>I(n,t+1))}function Qe(e){return e===void 0||R(e)}function Y(e){return s(e)&&r(e,["inputTokens","outputTokens","totalTokens"])&&["inputTokens","outputTokens","totalTokens"].every(t=>e[t]===void 0||a(e[t]))}function z(e){if(!s(e)||!r(e,["role","content","threadId","turnId","itemId","contextAnchors","tool_calls","tool_call_id","name","is_error","reasoning_content","toolReferences","thinkingBlocks","imageUrls","imageDetail","imagePixelLimit","videoUrls","contentBlocks","structuredContent","mcpMeta","mcpIsError","videoFps","audioFormat","audioUrls","fileIds","blocks","attachmentEntries","timestamp","usage","displayMetadata"])||e.role!=="system"&&e.role!=="user"&&e.role!=="assistant"&&e.role!=="tool"||e.content!==null&&typeof e.content!="string"||!["threadId","turnId","itemId","tool_call_id","name","reasoning_content","timestamp"].every(t=>S(e,t))||e.contextAnchors!==void 0&&(!Array.isArray(e.contextAnchors)||!e.contextAnchors.every(t=>s(t)&&r(t,["category","value"])&&["objective","acceptance","decision","constraint","task","blocker","artifact"].includes(String(t.category))&&typeof t.value=="string"))||e.is_error!==void 0&&typeof e.is_error!="boolean"||e.mcpIsError!==void 0&&typeof e.mcpIsError!="boolean"||e.contentBlocks!==void 0&&(!Array.isArray(e.contentBlocks)||!e.contentBlocks.every(t=>s(t)&&I(t)))||!["structuredContent","mcpMeta"].every(t=>e[t]===void 0||s(e[t])&&I(e[t]))||!["toolReferences","imageUrls","videoUrls","audioUrls"].every(t=>Qe(e[t]))||e.imageDetail!==void 0&&e.imageDetail!=="auto"&&e.imageDetail!=="low"&&e.imageDetail!=="high"&&e.imageDetail!=="xhigh"||e.audioFormat!==void 0&&e.audioFormat!=="mp3"&&e.audioFormat!=="wav"&&e.audioFormat!=="aac"&&e.audioFormat!=="m4a"||e.videoFps!==void 0&&(typeof e.videoFps!="number"||!Number.isFinite(e.videoFps)||e.videoFps<.2||e.videoFps>5)||e.tool_calls!==void 0&&(!Array.isArray(e.tool_calls)||!e.tool_calls.every(t=>s(t)&&r(t,["id","type","function"])&&i(t.id)&&t.type==="function"&&s(t.function)&&r(t.function,["name","arguments"])&&i(t.function.name)&&typeof t.function.arguments=="string"))||e.thinkingBlocks!==void 0&&(!Array.isArray(e.thinkingBlocks)||!e.thinkingBlocks.every(t=>s(t)&&r(t,["thinking","signature"])&&typeof t.thinking=="string"&&typeof t.signature=="string")))return!1;if(e.imagePixelLimit!==void 0){if(!s(e.imagePixelLimit))return!1;let t=e.imagePixelLimit;if(!r(t,["minPixels","maxPixels"])||!["minPixels","maxPixels"].every(n=>t[n]===void 0||a(t[n])))return!1}return e.fileIds!==void 0&&(!Array.isArray(e.fileIds)||!e.fileIds.every(t=>s(t)&&r(t,["id","mimeType","size"])&&i(t.id)&&S(t,"mimeType")&&(t.size===void 0||a(t.size))))||e.usage!==void 0&&!Y(e.usage)?!1:["blocks","attachmentEntries","displayMetadata"].every(t=>e[t]===void 0||I(e[t]))}function Je(e,t){if(!s(t))return!1;if(e==="loadForResume")return r(t,["sessionId","projectId","includeMessages"])&&i(t.sessionId)&&g(t,"projectId")&&(t.includeMessages===void 0||typeof t.includeMessages=="boolean");if(e==="appendTranscript")return r(t,["sessionId","turnId","messageId","sequence","message","usage","displayMetadata"])&&i(t.sessionId)&&i(t.turnId)&&i(t.messageId)&&a(t.sequence)&&z(t.message)&&(t.usage===void 0||Y(t.usage))&&(t.displayMetadata===void 0||I(t.displayMetadata));if(e==="updateTitle")return r(t,["sessionId","operationId","title"])&&i(t.sessionId)&&i(t.operationId)&&typeof t.title=="string"&&t.title.length<=2e3;if(e==="saveState"){if(!r(t,["sessionId","turnId","operationId","model","usage"])||!i(t.sessionId)||!i(t.turnId)||!i(t.operationId)||!S(t,"model")||!s(t.usage))return!1;let n=t.usage;return r(n,["turnCount","totalInputTokens","totalOutputTokens"])&&["turnCount","totalInputTokens","totalOutputTokens"].every(o=>a(n[o]))}return e==="saveTaskSummary"?r(t,["sessionId","operationId","summary","generatedAtTurn"])&&i(t.sessionId)&&i(t.operationId)&&typeof t.summary=="string"&&t.summary.length<=2e5&&a(t.generatedAtTurn):r(t,["sessionId","operationId","reason","expectedLastActiveAt","expectedTurnCount"])&&i(t.sessionId)&&i(t.operationId)&&(t.reason==="idle"||t.reason==="turn-limit")&&S(t,"expectedLastActiveAt")&&(t.expectedTurnCount===void 0||a(t.expectedTurnCount))}function qt(e){if(!s(e)||!r(e,["session"]))return!1;if(e.session===null)return!0;if(!s(e.session)||!r(e.session,["metadata","messages","corruptLines"])||!s(e.session.metadata))return!1;let t=e.session.metadata;return r(t,["sessionId","projectId","createdAt","lastActiveAt","turnCount","messageCount","type","title","agentId","model","taskSummary","carryoverSummary","previousSessionId","pinnedAt","archivedAt","sealedAt"])&&["sessionId","projectId","createdAt","lastActiveAt"].every(n=>i(t[n]))&&["turnCount","messageCount"].every(n=>a(t[n]))&&(t.type===void 0||t.type==="personal"||t.type==="group")&&["title","agentId","model","taskSummary","carryoverSummary","previousSessionId","pinnedAt","archivedAt","sealedAt"].every(n=>S(t,n))&&Array.isArray(e.session.messages)&&e.session.messages.every(z)&&(e.session.corruptLines===void 0||a(e.session.corruptLines))}function Ut(e){return s(e)&&r(e,["status","messageCount"])&&(e.status==="appended"||e.status==="duplicate"||e.status==="session-deleted")&&a(e.messageCount)}function Bt(e){return s(e)&&r(e,["status"])&&(e.status==="updated"||e.status==="duplicate"||e.status==="session-deleted")}function Vt(e){return s(e)&&r(e,["status","nextSessionId"])&&(e.status==="updated"||e.status==="duplicate"||e.status==="session-deleted")&&(e.nextSessionId===void 0||i(e.nextSessionId))}function Ze(e,t){if(!s(t)||!S(t,"viewId")||!g(t,"sessionId"))return!1;switch(e){case"navigate":return r(t,["url","viewId","sessionId"])&&typeof t.url=="string";case"click":return r(t,["ref","viewId","sessionId"])&&typeof t.ref=="string";case"type":return r(t,["ref","text","submit","viewId","sessionId"])&&typeof t.ref=="string"&&typeof t.text=="string"&&(t.submit===void 0||typeof t.submit=="boolean");case"snapshot":case"screenshot":case"console":case"network":return r(t,["viewId","sessionId"])}}function C(e,t){return e[t]===void 0||a(e[t])}function et(e){if(!s(e)||!r(e,["schemaVersion","launched","completed","failed","cancelled","backgroundCount","automaticDeliveryCount","byAgentType","decisionCounts","argumentCorrections","durationMs","tokenUsage"])||e.schemaVersion!==1)return!1;for(let t of["launched","completed","failed","cancelled","backgroundCount","automaticDeliveryCount"])if(!a(e[t]))return!1;return!s(e.byAgentType)||!r(e.byAgentType,["general","explore","plan","code","research","verify"])||!Object.values(e.byAgentType).every(a)||!s(e.decisionCounts)||!r(e.decisionCounts,["adopted","partiallyAdopted","rejected","unreported"])||!Object.values(e.decisionCounts).every(a)||!s(e.argumentCorrections)||!r(e.argumentCorrections,["roleAlias","promptAlias","backgroundAlias","agentValue","backgroundValue"])||!Object.values(e.argumentCorrections).every(a)||!s(e.durationMs)||!r(e.durationMs,["total","max"])||!a(e.durationMs.total)||!a(e.durationMs.max)?!1:s(e.tokenUsage)&&r(e.tokenUsage,["total"])&&a(e.tokenUsage.total)}function tt(e){if(!s(e)||!r(e,["model","provider","agentMode","sourceChannel","usage","toolSummary","fileContext","delegationSummary","capabilityContext"]))return!1;for(let t of["model","provider","sourceChannel"])if(e[t]!==void 0&&!i(e[t]))return!1;if(e.agentMode!==void 0&&!["chat","solo","product","workflow","unknown"].includes(String(e.agentMode))||e.usage!==void 0&&(!s(e.usage)||!r(e.usage,["inputTokens","outputTokens","totalTokens"])||!["inputTokens","outputTokens","totalTokens"].every(t=>C(e.usage,t))))return!1;if(e.toolSummary!==void 0){if(!s(e.toolSummary)||!r(e.toolSummary,["calledTools","failedTools","blockedTools"]))return!1;for(let t of["calledTools","failedTools","blockedTools"]){let n=e.toolSummary[t];if(!Array.isArray(n)||!n.every(i))return!1}}if(e.fileContext!==void 0&&(!s(e.fileContext)||!r(e.fileContext,["changedFileCount","changedPathsPreview","hasTurnFileChanges"])||!C(e.fileContext,"changedFileCount")||e.fileContext.changedPathsPreview!==void 0&&(!Array.isArray(e.fileContext.changedPathsPreview)||!e.fileContext.changedPathsPreview.every(i))||e.fileContext.hasTurnFileChanges!==void 0&&typeof e.fileContext.hasTurnFileChanges!="boolean")||e.delegationSummary!==void 0&&!et(e.delegationSummary))return!1;if(e.capabilityContext!==void 0){if(!s(e.capabilityContext)||!r(e.capabilityContext,["skillDirectoryProjected","skillDirectoryRevision","skillDirectoryChars"])||typeof e.capabilityContext.skillDirectoryProjected!="boolean")return!1;if(e.capabilityContext.skillDirectoryProjected){if(typeof e.capabilityContext.skillDirectoryRevision!="string"||!/^sha256:[a-f0-9]{64}$/.test(e.capabilityContext.skillDirectoryRevision)||!a(e.capabilityContext.skillDirectoryChars))return!1}else if(e.capabilityContext.skillDirectoryRevision!==void 0||e.capabilityContext.skillDirectoryChars!==void 0)return!1}return!0}function nt(e,t){return s(t)?e==="commitTurnTelemetry"?r(t,["projectId","sessionId","turnId","telemetry"])&&i(t.projectId)&&i(t.sessionId)&&i(t.turnId)&&tt(t.telemetry):e==="listDistillableFeedback"||e==="runUploadSweep"?r(t,["projectId"])&&i(t.projectId):r(t,["projectId","turnId","clusterKey","idempotencyKey"])&&i(t.projectId)&&i(t.turnId)&&i(t.clusterKey)&&i(t.idempotencyKey):!1}function rt(e,t){if(!s(t))return!1;if(e==="getSnapshot")return Object.keys(t).length===0;if(e==="switch")return r(t,["projectIdOrQuery"])&&i(t.projectIdOrQuery);if(e==="create"){let n=t.workspaceDir!==void 0||typeof t.name=="string"&&t.name!=="."&&t.name!==".."&&!/[\\/]/.test(t.name);return r(t,["name","workspaceDir","type","groupId"])&&i(t.name)&&n&&g(t,"workspaceDir")&&g(t,"groupId")&&(t.type===void 0||["personal","group","solo","product","automation"].includes(String(t.type)))}return!r(t,["projectId","planStatus","planAgents","planWinnerId","leaderSessionId","primaryWorkflowId"])||!i(t.projectId)||t.planStatus!==void 0&&!["creating","running","completed","failed","cancelled"].includes(String(t.planStatus))||t.planAgents!==void 0&&(!Array.isArray(t.planAgents)||!t.planAgents.every(i))?!1:["planWinnerId","leaderSessionId","primaryWorkflowId"].every(n=>g(t,n))}function st(e){if(!s(e)||!r(e,["schemaVersion","at","sequence","threadId","turnId","item"])||e.schemaVersion!==Se||!i(e.at)||!C(e,"sequence")||!i(e.threadId)||!i(e.turnId)||!s(e.item))return!1;let t=e.item;return r(t,["id","type","kind","domain","role","state","text","data"])&&i(t.id)&&["message","state","plan","task","checklist","budget","input_request","summary","tool_call","tool_result","artifact","receipt"].includes(String(t.type))&&i(t.kind)&&["chat","solo","product","goal","workflow","system"].includes(String(t.domain))&&["user","assistant","system","tool"].includes(String(t.role))&&["pending","in_progress","completed","failed","blocked","cancelled"].includes(String(t.state))&&(t.text===void 0||typeof t.text=="string")&&s(t.data)}function it(e,t){return!s(t)||!i(t.sessionId)?!1:e==="open"?r(t,["runId","kind","projectId","sessionId"])&&i(t.runId)&&i(t.projectId)&&(t.kind==="solo"||t.kind==="product"||t.kind==="goal"):e==="openWithCheckpoint"?r(t,["runId","kind","projectId","snapshot","checkpointId","sessionId"])&&i(t.runId)&&i(t.projectId)&&(t.kind==="solo"||t.kind==="product"||t.kind==="goal")&&g(t,"checkpointId")&&Object.prototype.hasOwnProperty.call(t,"snapshot")&&t.snapshot!==void 0:e==="recordEvent"?r(t,["runId","event","sessionId"])&&i(t.runId)&&st(t.event):e==="checkpoint"?r(t,["runId","checkpointId","snapshot","sessionId"])&&i(t.runId)&&g(t,"checkpointId")&&Object.prototype.hasOwnProperty.call(t,"snapshot")&&t.snapshot!==void 0:e==="list"?r(t,["projectId","kind","sessionId"])&&i(t.projectId)&&(t.kind===void 0||t.kind==="solo"||t.kind==="product"||t.kind==="goal"):e==="getCheckpoint"||e==="restoreCheckpoint"?r(t,["runId","checkpointId","sessionId"])&&i(t.runId)&&i(t.checkpointId):e==="listCheckpoints"?r(t,["runId","sessionId"])&&i(t.runId):(e==="get"||e==="delete")&&r(t,["runId","sessionId"])&&i(t.runId)}function L(e){return typeof e=="string"&&/^[a-z0-9][a-z0-9._-]*\.md$/i.test(e)&&e!=="INDEX.md"&&!e.includes("..")&&!e.includes("/")&&!e.includes("\\")}function ot(e,t){return!s(t)||typeof t.sessionId!="string"||t.sessionId.trim().length===0?!1:e==="initialize"||e==="getIndex"||e==="listFiles"?r(t,["sessionId"]):e==="addToIndex"?r(t,["sessionId","content"])&&typeof t.content=="string"&&t.content.length>0:e==="replaceInIndex"?r(t,["sessionId","oldText","newText"])&&typeof t.oldText=="string"&&t.oldText.length>0&&typeof t.newText=="string"&&t.newText.length>0:e==="removeFromIndex"?r(t,["sessionId","oldText"])&&typeof t.oldText=="string"&&t.oldText.length>0:e==="createFile"||e==="writeFile"?r(t,["sessionId","name","content"])&&L(t.name)&&typeof t.content=="string":e==="readFile"||e==="deleteFile"?r(t,["sessionId","name"])&&L(t.name):e==="searchLocal"&&r(t,["sessionId","query"])&&typeof t.query=="string"&&t.query.length>0}function Kt(e){if(!s(e)||!r(e,["service","method","params","sessionId"])||typeof e.service!="string"||!H.has(e.service)||typeof e.method!="string"||e.method.length===0)return!1;if(e.service==="memory")return _e.has(e.method)&&Array.isArray(e.params)&&(e.sessionId===void 0||i(e.sessionId));if(e.sessionId!==void 0)return!1;if(e.service==="projectMemory")return Ee.has(e.method)&&ot(e.method,e.params);if(e.service==="profile"){if(!Oe.has(e.method)||!Array.isArray(e.params))return!1;switch(e.method){case"getTunables":return e.params.length===0;case"updateTunable":return e.params.length===2&&typeof e.params[0]=="string"&&e.params[0].trim().length>0&&e.params[1]!==void 0;case"clearTunable":case"appendDirectoryAllowRule":return e.params.length===1&&typeof e.params[0]=="string"&&e.params[0].trim().length>0}}return e.service==="capability"?De.has(e.method)&&$e(e.method,e.params):e.service==="session"?je.has(e.method)&&Je(e.method,e.params):e.service==="feedback"?Fe.has(e.method)&&nt(e.method,e.params):e.service==="project"?Ne.has(e.method)&&rt(e.method,e.params):e.service==="runState"?Le.has(e.method)&&it(e.method,e.params):e.service==="provider"?!qe.has(e.method)||!Array.isArray(e.params)?!1:e.method==="list"?e.params.length===0:e.params.length===1&&i(e.params[0]):e.service==="community"?!Ue.has(e.method)||!s(e.params)?!1:e.method==="resolveInstall"?r(e.params,["resourceId","version"])&&i(e.params.resourceId)&&g(e.params,"version"):e.method==="listResourceVersions"?r(e.params,["resourceId"])&&i(e.params.resourceId):r(e.params,["id","platform"])&&i(e.params.id)&&i(e.params.platform):e.service==="cloudAuth"?Be.has(e.method)&&e.method==="probeSession"&&s(e.params)&&Object.keys(e.params).length===0:Ve.has(e.method)?Ze(e.method,e.params):!1}function Yt(e){return s(e)&&r(e,["ok"])&&e.ok===!0}function zt(e){return!s(e)||!r(e,["events"])||!Array.isArray(e.events)?!1:e.events.every(t=>s(t)&&r(t,["feedbackId","rating","reason","state","sessionId","turnId"])&&i(t.feedbackId)&&(t.rating==="up"||t.rating==="down")&&(t.reason===void 0||["missed_requirement","incomplete","broken_file_link_or_panel","code_or_test_failed","factually_wrong","too_verbose","too_short","wrong_style","other"].includes(String(t.reason)))&&t.state==="active"&&i(t.sessionId)&&i(t.turnId))}function Gt(e){return s(e)&&r(e,["ok","updated"])&&e.ok===!0&&typeof e.updated=="boolean"}function $t(e){return s(e)&&r(e,["uploaded","queued","retried","exhausted"])&&["uploaded","queued","retried","exhausted"].every(t=>a(e[t]))}function G(e){return!s(e)||!r(e,["id","name","workspaceDir","type","status","groupId","createdAt","updatedAt","planStatus","planAgents","planWinnerId","leaderSessionId","primaryWorkflowId"])||!i(e.id)||!i(e.name)||!i(e.workspaceDir)||!["default","personal","group","solo","product","automation"].includes(String(e.type))||e.status!=="active"&&e.status!=="archived"||!i(e.createdAt)||!i(e.updatedAt)||!["groupId","planWinnerId","leaderSessionId","primaryWorkflowId"].every(t=>g(e,t))||e.planStatus!==void 0&&!["creating","running","completed","failed","cancelled"].includes(String(e.planStatus))?!1:e.planAgents===void 0||Array.isArray(e.planAgents)&&e.planAgents.every(i)}function Xt(e){return s(e)&&r(e,["activeProjectId","projects"])&&(e.activeProjectId===null||i(e.activeProjectId))&&Array.isArray(e.projects)&&e.projects.every(G)}function Wt(e){return s(e)&&r(e,["ok","project","deduplicated"])&&e.ok===!0&&G(e.project)&&(e.deduplicated===void 0||typeof e.deduplicated=="boolean")}function vt(e,t){return!s(e)||e.version!==1||!Array.isArray(e.services)||typeof t!="string"||!H.has(t)||!e.services.every(n=>typeof n=="string"&&H.has(n))?!1:e.services.includes(t)}export{xt as DELEGATE_WIRE_METHODS,ke as HOST_CAPABILITY_PROXY_METHODS,Ae as HOST_CLOUD_AUTH_PROXY_METHODS,Te as HOST_COMMUNITY_PROXY_METHODS,Re as HOST_FEEDBACK_PROXY_METHODS,he as HOST_MEMORY_PROXY_METHODS,Me as HOST_PROFILE_PROXY_METHODS,be as HOST_PROJECT_MEMORY_PROXY_METHODS,xe as HOST_PROJECT_PROXY_METHODS,He as HOST_PROVIDER_PROXY_METHODS,wt as HOST_REQUEST_WIRE_METHODS,we as HOST_RUN_STATE_PROXY_METHODS,Pe as HOST_SESSION_PROXY_METHODS,Tt as HOST_SKILL_FILE_MAX_BYTES,j as HUB_SKILL_CATEGORIES,fe as HUB_SKILL_CATEGORY_LABELS,Pt as LIFECYCLE_CODES,oe as LONG_TERM_MEMORY_CATEGORIES,de as MEMORY_CLAIM_RELATIONS,Rt as MEMORY_RESIDENT_TAG_GROUPS,Zt as MODEL_PURPOSES,Ce as PREVIEW_BROWSER_ACTIONS,At as PREVIEW_BROWSER_MUTATION_ACTIONS,Ht as PREVIEW_BROWSER_READ_ACTIONS,Se as THREAD_ITEM_PROTOCOL_VERSION,pt as buildProviderValidationProbes,ge as deriveProjectId,We as isHostAgentProviderDiagnostic,Lt as isHostAgentProviderGetResult,Nt as isHostAgentProviderListResult,K as isHostAgentProviderSnapshot,Dt as isHostApplyCuratorPlanResult,zt as isHostDistillableFeedbackResult,Yt as isHostFeedbackCommitResult,Gt as isHostFeedbackMarkResult,$t as isHostFeedbackSweepResult,Ft as isHostFinalizeSkillInstallResult,jt as isHostPrepareSkillInstallResult,Wt as isHostProjectMutationResult,Xt as isHostProjectSnapshotResult,Kt as isHostRequestParams,Ut as isHostSessionAppendResult,Q as isHostSessionCollectionDelta,v as isHostSessionCollectionSnapshot,Vt as isHostSessionGroupSplitResult,qt as isHostSessionLoadForResumeResult,Bt as isHostSessionMutationResult,_t as isHostSkillFileResponse,Et as isHostSkillInvocationResult,Ot as isHostSkillMutationResult,Mt as isHostSkillSnapshotResponse,Ie as isHubSkillCategory,W as isNativeTranscript,Ct as isPreviewTargetKey,ct as isProviderProbeEndpointUnavailable,dt as listSettingsProviderOptions,kt as memberEquals,bt as memberKey,gt as normalizeLongTermMemoryCategory,mt as normalizeMemoryClaimRelation,T as providerCatalogBaseUrl,O as providerCatalogDisplayName,D as segmentForFts,ue as segmentTextForFts,vt as supportsHostRequestService};
@@ -1 +0,0 @@
1
- function t(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function s(e,r){let o=new Set(r);return Object.keys(e).every(f=>o.has(f))}function n(e){return typeof e=="string"&&e.trim()===e&&e.length>0&&e.length<=512&&!e.includes("\0")}function i(e){return Number.isSafeInteger(e)&&Number(e)>0}function d(e){return t(e)&&s(e,["agentId","projectId","nativeId"])&&n(e.agentId)&&n(e.projectId)&&n(e.nativeId)}function c(e){if(!t(e)||!s(e,["resourceId","canonicalSessionId","source","projectId","agentId","title","titleSource","lastActiveAt","pinnedAt","lifecycle","availableCommands","nativeRef"])||!n(e.resourceId)||!n(e.projectId)||!n(e.agentId)||!n(e.lastActiveAt)||e.source!=="host"&&e.source!=="native-unadopted"||e.source==="host"&&!n(e.canonicalSessionId)||e.source==="native-unadopted"&&!d(e.nativeRef)||e.canonicalSessionId!==void 0&&!n(e.canonicalSessionId)||e.nativeRef!==void 0&&!d(e.nativeRef))return!1;let r=new Set(["host.setPinned","host.rename","host.setArchived","host.deleteRecord"]);return!Array.isArray(e.availableCommands)||!e.availableCommands.every(o=>typeof o=="string"&&r.has(o))||new Set(e.availableCommands).size!==e.availableCommands.length||e.source==="native-unadopted"&&e.availableCommands.length>0||e.title!==void 0&&typeof e.title!="string"||e.pinnedAt!==void 0&&!n(e.pinnedAt)||e.titleSource!==void 0&&e.titleSource!=="prompt"&&e.titleSource!=="generated"&&e.titleSource!=="user"&&e.titleSource!=="native"&&e.titleSource!=="repaired"?!1:e.lifecycle==="active"||e.lifecycle==="archived"||e.lifecycle==="source-missing"||e.lifecycle==="resume-unavailable"}function a(e){return t(e)&&s(e,["agentId","projectId","code","message","lastGoodRevision"])&&n(e.agentId)&&n(e.projectId)&&n(e.code)&&typeof e.message=="string"&&e.message.length>0&&e.message.length<=2e4&&(e.lastGoodRevision===void 0||i(e.lastGoodRevision))}function p(e){return typeof e=="string"&&e.length>0&&!Number.isNaN(Date.parse(e))}function g(e){return t(e)&&s(e,["id","role","content","createdAt"])&&Object.prototype.hasOwnProperty.call(e,"content")&&(e.id===void 0||n(e.id))&&(e.role==="user"||e.role==="assistant"||e.role==="tool")&&(e.createdAt===void 0||p(e.createdAt))}function m(e){return t(e)&&s(e,["messages","diagnostics"])&&Array.isArray(e.messages)&&e.messages.every(g)&&(e.diagnostics===void 0||Array.isArray(e.diagnostics))}function S(e){return t(e)&&s(e,["revision","scopeGeneration","items","diagnostics"])&&i(e.revision)&&i(e.scopeGeneration)&&Array.isArray(e.items)&&e.items.every(c)&&Array.isArray(e.diagnostics)&&e.diagnostics.every(a)}function y(e){return t(e)&&s(e,["revision","scopeGeneration","addedOrUpdated","removed","diagnostics"])&&i(e.revision)&&i(e.scopeGeneration)&&(e.addedOrUpdated===void 0||Array.isArray(e.addedOrUpdated)&&e.addedOrUpdated.every(c))&&(e.removed===void 0||Array.isArray(e.removed)&&e.removed.every(n))&&(e.diagnostics===void 0||Array.isArray(e.diagnostics)&&e.diagnostics.every(a))}export{y as isHostSessionCollectionDelta,S as isHostSessionCollectionSnapshot,m as isNativeTranscript};
@@ -1 +0,0 @@
1
- var n=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],t=new Set(n),i=["equals","includes","excludes"],a=new Set(i);function s(e,r="general"){if(typeof e!="string")return r;let o=e.trim().toLowerCase().replace(/\s+/g,"_");return t.has(o)?o:r}function m(e,r="equals"){if(typeof e!="string")return r;let o=e.trim().toLowerCase();return a.has(o)?o:r}export{n as LONG_TERM_MEMORY_CATEGORIES,i as MEMORY_CLAIM_RELATIONS,s as normalizeLongTermMemoryCategory,m as normalizeMemoryClaimRelation};
@@ -1 +0,0 @@
1
- var s=["default","auto","full_access"];var r=[{id:"default",label:"\u9ED8\u8BA4",summary:"\u5DE5\u4F5C\u533A",description:"\u5DE5\u4F5C\u533A\u5185\u81EA\u52A8\uFF1B\u8DE8\u533A/\u9AD8\u5371\u786E\u8BA4\u3002"},{id:"auto",label:"\u81EA\u52A8",summary:"\u5E38\u89C4",description:"\u5E38\u89C4\u64CD\u4F5C\u81EA\u52A8\uFF1B\u9AD8\u5371\u786E\u8BA4\u3002"},{id:"full_access",label:"\u5B8C\u5168\u8BBF\u95EE",summary:"\u5168\u653E\u884C",description:"\u672C\u8F6E\u5168\u90E8\u81EA\u52A8\uFF0C\u4E0D\u518D\u786E\u8BA4\u3002"}],i=["cross_workspace","high_risk_delete","high_risk_egress","destructive"];function n(e){return e==="cross_workspace"?[{optionId:"allow_dir",name:"\u5141\u8BB8\u6B64\u6587\u4EF6\u5939\uFF08\u672C\u6B21\u4F1A\u8BDD\u4E0D\u518D\u95EE\uFF09",kind:"allow_always",scope:"directory"},{optionId:"allow_dir_forever",name:"\u59CB\u7EC8\u5141\u8BB8\u6B64\u6587\u4EF6\u5939",kind:"allow_always",scope:"directory_persistent"},{optionId:"allow",name:"\u4EC5\u5141\u8BB8\u4E00\u6B21",kind:"allow_once",scope:"once"},{optionId:"deny",name:"\u62D2\u7EDD",kind:"reject_once"}]:e==="destructive"?[{optionId:"allow_dir",name:"\u5141\u8BB8\u6B64\u6587\u4EF6\u5939\uFF08\u672C\u6B21\u4F1A\u8BDD\u4E0D\u518D\u95EE\uFF09",kind:"allow_always",scope:"directory"},{optionId:"allow",name:"\u4EC5\u5141\u8BB8\u4E00\u6B21",kind:"allow_once",scope:"once"},{optionId:"deny",name:"\u62D2\u7EDD",kind:"reject_once"}]:[{optionId:"allow",name:e==="high_risk_egress"?"\u4ECD\u8981\u53D1\u9001":"\u5141\u8BB8\u4E00\u6B21",kind:"allow_once",scope:"once"},{optionId:"deny",name:"\u62D2\u7EDD",kind:"reject_once"}]}function t(){let e=Object.fromEntries(i.map(o=>[o,n(o)]));return{modes:r,promptOptions:e}}export{s as PERMISSION_MODES,t as buildPermissionModel};
@@ -1 +0,0 @@
1
- import*as r from"node:fs";import*as t from"node:path";import{execFile as h}from"node:child_process";import{promisify as y}from"node:util";function N(e){return/(?:^|[\\/])node(?:\.exe)?$/i.test(e)}function k(){let e=process.env.XIAOZHICLAW_NODE_EXE,n=process.env.XIAOZHICLAW_NPM_CLI;if(!e||!n)return null;if(!N(e))throw new Error("XIAOZHICLAW_NODE_EXE must reference the Host-vetted standard Node executable");return{nodeExe:e,npmCli:n,prefix:process.env.XIAOZHICLAW_NPM_GLOBAL_PREFIX||void 0}}function E(e){let n={...process.env};return delete n.ELECTRON_RUN_AS_NODE,e.prefix&&(n.npm_config_prefix=e.prefix),n}function w(e,n){return e?{file:e.nodeExe,argv:[e.npmCli,...n],env:E(e)}:{file:"npm",argv:n}}function S(e){if(!t.isAbsolute(e))throw new Error("marketplace compute requires an absolute gateway stageDir");let n=t.resolve(e);if(!r.statSync(n).isDirectory())throw new Error(`marketplace compute stageDir is not a directory: ${n}`);return n}async function A(e,n,d={}){let i=e.specifier.trim();if(!i||i.includes("\0"))throw new Error("marketplace compute requires a non-empty npm specifier");let c=S(e.stageDir),a=t.join(c,"content");if(r.existsSync(a))throw new Error(`marketplace compute content stage already exists: ${a}`);let u=d.execFile??y(h),g=(d.resolveNpm??k)(),f=e.version?`${i}@${e.version}`:i,l=w(g,["pack",f,"--pack-destination",c]),p=(await u(l.file,l.argv,{cwd:c,timeout:6e4,windowsHide:!0,...l.env?{env:l.env}:{}})).stdout.trim().split(/\r?\n/).at(-1)?.trim();if(!p||t.basename(p)!==p||!p.endsWith(".tgz"))throw new Error(`marketplace compute npm pack returned an invalid artifact name for ${f}`);let v=t.join(c,p);r.mkdirSync(a);try{await u("tar",["xzf",v,"-C",a,"--strip-components=1"],{cwd:c,timeout:3e4,windowsHide:!0})}finally{try{r.unlinkSync(v)}catch{}}let x=t.join(a,"package.json"),s;try{s=JSON.parse(r.readFileSync(x,"utf8"))}catch(o){throw new Error(`marketplace compute unpacked package has no valid package.json: ${o instanceof Error?o.message:String(o)}`)}if(s.name!==i)throw new Error(`marketplace compute package identity mismatch: requested ${i}, unpacked ${String(s.name)}`);if(typeof s.version!="string"||!s.version.trim())throw new Error("marketplace compute unpacked package has no version");let m=w(g,["install","--production","--no-save"]);try{await u(m.file,m.argv,{cwd:a,timeout:12e4,windowsHide:!0,...m.env?{env:m.env}:{}})}catch(o){throw n.warn(`[marketplace] npm install for ${i} failed; staged plugin may be incomplete: ${o instanceof Error?o.message:String(o)}`),o}return n.info(`[marketplace] staged ${i}@${s.version} for gateway adoption`),{name:i,version:s.version,contentDir:a}}export{w as resolveNpmExec,A as stageMarketplaceNpmPlugin};
@@ -1,38 +0,0 @@
1
- import{readFile as _,readdir as et,unlink as rt,stat as nt,mkdir as Ut}from"node:fs/promises";import{existsSync as p,readFileSync as it,mkdirSync as st,writeFileSync as At}from"node:fs";import{join as f}from"node:path";import{resolve as xt}from"node:path";import{join as wt}from"node:path";import{homedir as gt}from"node:os";import{join as g}from"node:path";import{existsSync as zt}from"node:fs";import{createHash as ut}from"node:crypto";import{resolve as lt}from"node:path";function A(r){return ut("sha256").update(lt(r).toLowerCase()).digest("hex").slice(0,16)}var O=".qlogicagent";function j(){return process.env.QLOGICAGENT_HOME||g(gt(),O)}function S(){let r=process.env.QLOGIC_LLMROUTER_USER_ID?.trim();if(r)return r;let t=process.env.QLOGIC_IMPLICIT_OWNER_ID?.trim();if(t)return t;let e=process.env.QLOGIC_DEVICE_ID?.trim();return e?`oc_${e}`:"oc_local"}function ft(r){let t=r.trim();if(!t)throw new Error("ownerUserId is required for profile-scoped storage");return encodeURIComponent(t).replace(/\./g,"%2E")}function $(r=S()){return g(j(),"profiles",ft(r))}function W(r=S()){return g($(r),"memory")}var dt="projectData";function X(){return g(j(),dt)}function b(r){if(!r)throw new Error("getProjectDataDirById: projectId is required");return g(X(),r)}function T(){return g(j(),"plugins")}function B(){return g($(),"settings.json")}function G(){return g(j(),"plugin-cache")}function J(){return g(j(),"marketplace.json")}function v(r){if(!r)throw new Error("getProjectAgentDir: cwd is required (must not fall back to process.cwd())");return g(r,O)}function q(r){return g(v(r),"plugins")}function z(r){return g(v(r),"settings.json")}function Q(r){return g(v(r),"INSTRUCTIONS.md")}function V(r){return g(v(r),"rules")}import{resolve as Yt}from"node:path";var mt=()=>{},M;function K(){if(pt(),!M)throw new Error("host project authority negotiated but snapshot is not hydrated");return{activeProjectId:M.activeProjectId,projects:M.projects.map(r=>({...r}))}}function pt(){let r=mt();if(!r)throw new Error("gateway project authority is not available");return r}function ht(){let r=K();return{activeProjectId:r.activeProjectId,projects:r.projects.map(t=>({...t}))}}function Z(r){return ht().projects.find(t=>t.id===r)??null}function It(r){return Z(r)?r:A(r)}function jt(r){return b(It(r))}function Y(r){return wt(jt(r),"sessions")}var F=class{constructor(t={}){this.options=t}options;lastActiveWorkdir=null;getActiveProjectRoot(){return this.options.getActiveProjectRoot?.()??process.cwd()}setActiveWorkdir(t){let e=xt(t);this.lastActiveWorkdir=e,this.options.setActiveWorkdir?.(e)}getActiveWorkdir(){return this.lastActiveWorkdir??this.getActiveProjectRoot()}resolveProjectDir(t){return this.options.resolveProjectDir?.(t)}resolveActiveOwnerUserId(){return S()}getUserAgentHome(){return j()}getOwnerProfileDir(t){return $(t)}getProfileMemoryDir(t){return W(t)}getUserSettingsPath(){return B()}getUserPluginsDir(){return T()}getUserPluginCacheDir(){return G()}getUserMarketplaceConfigPath(){return J()}getProjectAgentDir(t=this.getActiveProjectRoot()){return v(t)}getProjectSettingsPath(t=this.getActiveProjectRoot()){return z(t)}getProjectInstructionsPath(t=this.getActiveProjectRoot()){return Q(t)}getProjectPluginsDir(t=this.getActiveProjectRoot()){return q(t)}getProjectRulesDir(t=this.getActiveProjectRoot()){return V(t)}getProjectSessionDataRoot(t=this.getActiveProjectRoot()){return Y(t)}},yt=new F;function tt(){return yt}import{readFile as ge,writeFile as vt,mkdir as Dt,rename as Et,unlink as kt}from"node:fs/promises";import{dirname as St,join as $t}from"node:path";import{randomUUID as Rt}from"node:crypto";async function D(r,t){let e=St(r);await Dt(e,{recursive:!0});let i=$t(e,`.tmp-${Rt()}`);try{await vt(i,t,"utf-8");let n;for(let o=0;o<3;o++)try{await Et(i,r);return}catch(s){if(n=s,s.code!=="EPERM")throw s;await new Promise(a=>setTimeout(a,50*(o+1)))}throw n}catch(n){throw await kt(i).catch(()=>{}),n}}var Nt=/[一-鿿]/;function R(r){let t=[],e=r.toLowerCase().match(/[\p{L}\p{N}_]+/gu)??[];for(let i of e){let n="",o=!1,s=()=>{if(n){if(o){n.length===1&&t.push(n);for(let a=0;a+1<n.length;a++)t.push(n.slice(a,a+2))}else t.push(n);n=""}};for(let a of i){let m=Nt.test(a);n&&m!==o&&s(),o=m,n+=a}s()}return t}var Ct=[/ignore\s+(previous|all|above|prior)\s+instructions/i,/you\s+are\s+now\s+/i,/do\s+not\s+tell\s+the\s+user/i,/system\s+prompt\s+override/i,/忽略(之前|以上|上面|前面|所有|全部)的?.{0,4}(指令|指示|提示|设定|规则)/,/你现在(是|就是|扮演)/,/不要(告诉|透露给?)用户/,/系统提示词?.{0,6}(覆盖|无效|作废|重写)/];function x(r){return!Ct.some(t=>t.test(r))}var u=12288,L=200,N=8192,bt="memory",I="INDEX.md";function Mt(r){return f(tt().getProjectAgentDir(r),bt)}var Ft=/^[a-z0-9][a-z0-9\-_.]*\.md$/i;function C(r){return!(!Ft.test(r)||r===I||r.includes("..")||r.includes("/")||r.includes("\\"))}function _t(r){return r.trim().match(/^([A-Za-z][A-Za-z0-9_-]{2,})\s*:/)?.[1]??null}function Lt(r,t){let e=r.split(`
2
- `),i=[],n=!1;for(let o=0;o<e.length;o++){let s=e[o];if(Ht(s)&&s.includes(t)){for(n=!0;o+1<e.length&&at(e[o+1]);)o++;continue}i.push(s)}return n?i.join(`
3
- `):null}function Ht(r){return r.trim()!==""&&!r.startsWith("#")&&!r.startsWith("<!--")&&!at(r)}function at(r){return r.startsWith(" ")||r.startsWith(" ")}var U=new Map;async function y(r,t){let e=U.get(r)??Promise.resolve(),i,n=new Promise(s=>{i=s}),o=e.catch(()=>{}).then(()=>n);U.set(r,o),await e.catch(()=>{});try{return await t()}finally{i(),U.get(r)===o&&U.delete(r)}}function Ot(r){return r.split(`
4
- `).every(t=>{let e=t.trim();return e===""||e.startsWith("#")||e.startsWith("<!--")&&e.endsWith(">")})}var H=class{root;constructor(t){this.root=Mt(t)}getRootPath(){return this.root}ensureInitialized(){p(this.root)||st(this.root,{recursive:!0});let t=f(this.root,I);if(!p(t)){let e=["# Memory Index","","<!-- Host-managed project memory. Lines here are visible in the agent context.>","<!-- Use the Host project-memory capability to add notes or manage topic files.>","","## User Profile","","## Notes",""].join(`
5
- `);Wt(t,e)}}getIndexForPrompt(){let t=f(this.root,I);if(!p(t))return"";let e;try{e=it(t,"utf-8")}catch(n){return n?.code!=="ENOENT"&&console.error(`[memdir] INDEX.md read failed \u2014 injected as empty this turn: ${n instanceof Error?n.message:String(n)}`),""}if(Ot(e))return"";let i=e.split(`
6
- `);return i.length>L&&(e=i.slice(0,L).join(`
7
- `)+`
8
-
9
- <!-- INDEX.md truncated: ${i.length} lines total, showing first ${L}>`),Buffer.byteLength(e,"utf-8")>u&&(e=Buffer.from(e,"utf-8").subarray(0,u).toString("utf-8")+`
10
-
11
- <!-- INDEX.md truncated at ${u} bytes>`),e}getIndexRaw(){let t=f(this.root,I);if(!p(t))return"";try{return it(t,"utf-8")}catch(e){return e?.code!=="ENOENT"&&console.error(`[memdir] INDEX.md read failed \u2014 treated as empty: ${e instanceof Error?e.message:String(e)}`),""}}getIndexUsage(){let t=this.getIndexRaw(),e=Buffer.byteLength(t,"utf-8"),i=t.split(`
12
- `).length;return{chars:e,lines:i,percent:Math.round(e/u*100)}}async addToIndex(t){return t.trim()?x(t)?y(this.root,async()=>{let e=this.getIndexRaw(),i=e.endsWith(`
13
- `)?e+t.trim()+`
14
- `:e+`
15
- `+t.trim()+`
16
- `;if(Buffer.byteLength(i,"utf-8")>u){let o=this.autoCompactIndex(e,t.trim());if(o){await this.writeIndexUnlocked(o);let a=this.getIndexUsage();return{ok:!0,message:`Added to INDEX.md (auto-compacted old entries). [${a.chars}/${u} chars, ${a.percent}%]`,indexUsage:`${a.chars}/${u}`}}return{ok:!1,message:`INDEX.md would exceed limit (${this.getIndexUsage().chars}/${u} bytes) even after compaction. Create a topic file instead.`}}await this.writeIndexUnlocked(i);let n=this.getIndexUsage();return{ok:!0,message:`Added to INDEX.md. [${n.chars}/${u} chars, ${n.percent}%]`,indexUsage:`${n.chars}/${u}`}}):{ok:!1,message:"Content rejected: potential injection detected."}:{ok:!1,message:"Content cannot be empty."}}autoCompactIndex(t,e){let i=t.split(`
17
- `),n=Buffer.byteLength(e+`
18
- `,"utf-8"),o=u-n-64;if(o<256)return null;let s=l=>l.startsWith("#")||l.startsWith("<!--")||l.trim()==="",a=l=>l.startsWith(" ")||l.startsWith(" "),m=4,h=[...i],P=0;for(;Buffer.byteLength(h.join(`
19
- `),"utf-8")>o&&P<i.length;){let l=h.findIndex((E,k)=>k>=m&&!s(E)&&!a(E));if(l===-1)break;let w=1;for(;l+w<h.length&&a(h[l+w]);)w++;h.splice(l,w),P++}let c=h.join(`
20
- `),d=c.endsWith(`
21
- `)?c+e+`
22
- `:c+`
23
- `+e+`
24
- `;return Buffer.byteLength(d,"utf-8")<=u?d:null}async replaceInIndex(t,e){return t.trim()?e.trim()?x(e)?y(this.root,async()=>{let i=this.getIndexRaw(),n=i.split(t).length-1;if(n===0)return{ok:!1,message:`No match found for: "${t.slice(0,80)}"`};if(n>1)return{ok:!1,message:`Multiple matches (${n}) for: "${t.slice(0,80)}". Be more specific.`};let o=i.replace(t,e);if(Buffer.byteLength(o,"utf-8")>u)return{ok:!1,message:`Replacement would exceed INDEX.md limit (${Buffer.byteLength(o,"utf-8")}/${u} bytes).`};await this.writeIndexUnlocked(o);let s=this.getIndexUsage();return{ok:!0,message:`Replaced in INDEX.md. [${s.chars}/${u} chars]`,indexUsage:`${s.chars}/${u}`}}):{ok:!1,message:"Content rejected: potential injection detected."}:{ok:!1,message:"new_text cannot be empty. Use 'remove' to delete."}:{ok:!1,message:"old_text cannot be empty."}}async removeFromIndex(t){return t.trim()?y(this.root,async()=>{let e=this.getIndexRaw(),i=_t(t),n=i?Lt(e,i):null;if(n===null){if(!e.includes(t))return{ok:!1,message:`No match found for: "${t.slice(0,80)}"`};n=e.replace(t,"")}n=n.replace(/\n{3,}/g,`
25
-
26
- `),await this.writeIndexUnlocked(n);let o=this.getIndexUsage();return{ok:!0,message:`Removed from INDEX.md. [${o.chars}/${u} chars]`,indexUsage:`${o.chars}/${u}`}}):{ok:!1,message:"old_text cannot be empty."}}async listFiles(){if(!p(this.root))return[];let t=await et(this.root),e=[];for(let i of t){if(i===I||!i.endsWith(".md"))continue;let n=f(this.root,i);try{let o=await nt(n);if(!o.isFile())continue;let a=(await _(n,"utf-8")).split(`
27
- `).find(m=>m.trim()&&!m.startsWith("#"))?.trim();e.push({name:i,size:o.size,modifiedAt:o.mtime.toISOString(),preview:a?.slice(0,100)})}catch{}}return e.sort((i,n)=>n.modifiedAt.localeCompare(i.modifiedAt))}async createFile(t,e){if(!C(t))return{ok:!1,message:`Invalid filename: "${t}". Use kebab-case .md files (e.g. "project-notes.md").`};if(!x(e))return{ok:!1,message:"Content rejected: potential injection detected."};if(e.length>N)return{ok:!1,message:`Content too long (${e.length} chars, max ${N}).`};let i=f(this.root,t);if(p(i))return{ok:!1,message:`File already exists: "${t}". Use write_file to update.`};await this.ensureDir(),await D(i,e);let n=`- [${t}] \u2014 created ${new Date().toISOString().slice(0,10)}`;return{ok:!0,message:await this.appendIndexEntry(n)?`Created "${t}" (${e.length} chars). Entry added to INDEX.md.`:`Created "${t}" (${e.length} chars). WARNING: INDEX.md is full \u2014 the index entry was NOT added, so this file will not surface automatically. Remove stale INDEX.md entries, then add one for [${t}].`,file:t}}async writeFile(t,e){if(!C(t))return{ok:!1,message:`Invalid filename: "${t}". Use kebab-case .md files.`};if(!x(e))return{ok:!1,message:"Content rejected: potential injection detected."};if(e.length>N)return this.writeFileSplit(t,e);let i=f(this.root,t),n=!p(i);await this.ensureDir(),await D(i,e);let o=!0;if(n){let s=`- [${t}] \u2014 created ${new Date().toISOString().slice(0,10)}`;o=await this.appendIndexEntry(s)}return{ok:!0,message:`${n?"Created":"Updated"} "${t}" (${e.length} chars).`+(o?"":" WARNING: INDEX.md is full \u2014 no index entry was added, so this file will not surface automatically."),file:t}}async writeFileSplit(t,e){let i=t.replace(/\.md$/,""),n=e.split(/\n{2,}/),o=[],s="";for(let c of n)s.length+c.length+2>N*.9&&s.length>0?(o.push(s),s=c):s=s?s+`
28
-
29
- `+c:c;s&&o.push(s);let a=[];for(let c=0;c<o.length;c++){let d=`${i}-${c+1}.md`,l=f(this.root,d);await this.ensureDir(),await D(l,o[c]),a.push(d)}let m=f(this.root,t);p(m)&&(await rt(m),await y(this.root,async()=>{let c=this.getIndexRaw(),d=new RegExp(`^.*\\[${ot(t)}\\].*$\\n?`,"m");d.test(c)&&await this.writeIndexUnlocked(c.replace(d,"").replace(/\n{3,}/g,`
30
-
31
- `))}));let h=this.getIndexRaw(),P=0;for(let c of a)if(!h.includes(`[${c}]`)){let d=`- [${c}] \u2014 auto-split ${new Date().toISOString().slice(0,10)}`;await this.appendIndexEntry(d)||P++}return{ok:!0,message:`Auto-split "${t}" into ${o.length} parts (${e.length} chars total): ${a.join(", ")}`+(P>0?` WARNING: INDEX.md is full \u2014 ${P} part(s) got no index entry and will not surface automatically.`:""),file:a[0]}}async readFile(t){if(!C(t)&&t!==I)return{ok:!1,message:`Invalid filename: "${t}".`};let e=f(this.root,t);try{let i=await _(e,"utf-8");return{ok:!0,content:i,message:`Read "${t}" (${i.length} chars).`}}catch(i){return i.code==="ENOENT"?{ok:!1,message:`File not found: "${t}".`}:{ok:!1,message:`Error reading "${t}": ${i.message}`}}}async deleteFile(t){if(t===I)return{ok:!1,message:"Cannot delete INDEX.md. Use 'remove' to clear entries."};if(!C(t))return{ok:!1,message:`Invalid filename: "${t}".`};let e=f(this.root,t);return p(e)?(await rt(e),await y(this.root,async()=>{let i=this.getIndexRaw(),n=new RegExp(`^.*\\[${ot(t)}\\].*$\\n?`,"m");if(n.test(i)){let o=i.replace(n,"").replace(/\n{3,}/g,`
32
-
33
- `);await this.writeIndexUnlocked(o)}}),{ok:!0,message:`Deleted "${t}" and removed INDEX.md entry.`,file:t}):{ok:!1,message:`File not found: "${t}".`}}async searchLocal(t){if(!p(this.root))return[];let e=Array.from(new Set(R(t)));if(e.length===0)return[];let i=await et(this.root),n=[];for(let o of i){if(!o.endsWith(".md")||o===I)continue;let s=f(this.root,o);try{let[a,m]=await Promise.all([_(s,"utf-8"),nt(s)]),h=new Set(R(a)),P=e.filter(w=>h.has(w)).length;if(P===0)continue;let c=a.split(`
34
- `),d="",l=0;for(let w of c){let E=new Set(R(w)),k=e.filter(ct=>E.has(ct)).length;k>l&&(l=k,d=w.trim())}n.push({file:o,snippet:d.slice(0,200),score:P/e.length,mtimeMs:m.mtimeMs})}catch{}}return n.sort((o,s)=>s.score-o.score).slice(0,10)}async writeIndex(t){await y(this.root,()=>this.writeIndexUnlocked(t))}async writeIndexUnlocked(t){await this.ensureDir(),await D(f(this.root,I),t)}async ensureDir(){p(this.root)||await Ut(this.root,{recursive:!0})}async appendIndexEntry(t){return y(this.root,async()=>{let e=this.getIndexRaw();if(e.includes(t))return!0;let i=e.endsWith(`
35
- `)?e+t+`
36
- `:e+`
37
- `+t+`
38
- `;if(Buffer.byteLength(i,"utf-8")<=u)return await this.writeIndexUnlocked(i),!0;let n=this.autoCompactIndex(e,t);return n?(await this.writeIndexUnlocked(n),!0):(console.error(`[memdir] INDEX.md full \u2014 entry not added (file stays invisible to recall): ${t.slice(0,80)}`),!1)})}};function Wt(r,t){let e=f(r,"..");p(e)||st(e,{recursive:!0}),At(r,t,"utf-8")}function ot(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}export{H as Memdir,x as isMemoryContentSafe};
package/dist/protocol.js DELETED
@@ -1 +0,0 @@
1
- var G="1.0.0",l={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},z={REQUEST:"tool.approval.request"};function _(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 x(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)||_(t)||x(t)?t:null}import{randomUUID as $}from"node:crypto";var J=["settings.list","settings.get","settings.validate","provider.list","tools.list","todos.list","tasks.list","session.list","session.get","session.resolve","session.loadNativeTranscript","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","agent.health","agent.metrics"],Q=new Set(["memory.dream","memory.propose","memory.consolidate"]),Z=["memory.","usage."],ee=new Set(["memory.atlas","memory.activity","memory.list","memory.read","memory.search","memory.attachment.locate","memory.attachment.adopt"]);function A(e){return Q.has(e)?{channel:"task",mutability:"write",defaultTimeoutMs:12e4}:J.some(t=>e===t||e.startsWith(`${t}.`)||e.startsWith(t))?{channel:"query",mutability:"read",defaultTimeoutMs:1e4}:{channel:"task",mutability:"write",defaultTimeoutMs:3e4}}function M(e){return ee.has(e)||A(e).mutability==="read"?!1:Z.some(t=>e.startsWith(t))}function te(e,t={}){let r=t.now??Date.now(),n=A(e),o=t.timeoutMs??n.defaultTimeoutMs;return{requestId:t.requestId??$(),createdAt:r,deadlineAt:r+o,channel:t.channel??n.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:l.INVALID_REQUEST,message:"RPC request meta is required."}};if(typeof r.requestId!="string"||r.requestId.length===0)return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.requestId is required."}};if(r.channel!=="query"&&r.channel!=="task")return{ok:!1,error:{code:l.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:l.INVALID_REQUEST,message:"RPC request meta.createdAt is required."}};if(typeof r.deadlineAt!="number"||!Number.isFinite(r.deadlineAt))return{ok:!1,error:{code:l.INVALID_REQUEST,message:"RPC request meta.deadlineAt is required."}};if(r.deadlineAt<=t)return{ok:!1,error:{code:l.REQUEST_DEADLINE_EXCEEDED,message:"RPC request deadline has already expired."}};let n=A(e.method).channel;return r.channel!==n?{ok:!1,error:{code:l.INVALID_REQUEST,message:`RPC request channel mismatch: expected ${n}, got ${r.channel}.`}}:M(e.method)&&(typeof r.idempotencyKey!="string"||r.idempotencyKey.length===0)?{ok:!1,error:{code:l.REQUEST_IDEMPOTENCY_REQUIRED,message:`RPC method ${e.method} requires meta.idempotencyKey.`}}:{ok:!0,meta:r}}var I=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 n=v({method:t,meta:r},this.now());if(!n.ok)return this.counters.invalidRequests+=1,{status:"rejected",error:n.error};if(r.idempotencyKey){let o=this.idempotency.get(r.idempotencyKey);if(o)return this.counters.dedupedRequests+=1,o.error?{status:"deduped",error:o.error}:{status:"deduped",result:o.result}}return this.active.set(r.requestId,{method:t,meta:r,cancelled:!1,startedAt:this.now()}),{status:"started"}}cancel(t,r="cancelled"){let n=this.active.get(t);return!n||n.cancelled?!1:(n.cancelled=!0,n.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,n){let o=this.active.get(t);return o?(this.active.delete(t),o.cancelled?(this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"cancelled"}):o.meta.deadlineAt<=this.now()?(this.counters.deadlineExceededRequests+=1,this.counters.lateResponsesDropped+=1,{accepted:!1,reason:"deadline_exceeded"}):(this.counters.completedRequests+=1,o.meta.idempotencyKey&&this.idempotency.set(o.meta.idempotencyKey,{result:r,error:n,settledAt:this.now()}),{accepted:!0})):{accepted:!1,reason:"unknown"}}metrics(){return{activeRequests:this.active.size,...this.counters}}};var re=["agent.health","agent.metrics","agent.cancel","provider.catalog","provider.list","provider.get","provider.install","provider.install.cancel","provider.update","provider.uninstall","provider.enable","provider.disable","provider.diagnose","provider.auth.status","provider.auth.setPreference","provider.auth.setUserKey","provider.auth.methods","provider.auth.start","provider.auth.attach","provider.auth.input","provider.auth.resize","provider.auth.cancel","provider.auth.logout","provider.models.list","provider.nativeSessions.list","provider.nativeSessions.load","provider.nativeSessions.resume","delegation.cancel","delegation.reset","session.list","session.get","session.create","session.update","session.delete","session.deleteAll","session.archive","session.loadNativeTranscript","session.adoptNative","session.moveToProject","session.getState","session.switchProject","session.getMessages","project.list","project.create","project.detach","project.delete","project.rename","project.archive","project.unarchive","project.update","instructions.list","instructions.read","instructions.write","instructions.delete","files.list","files.read","files.create","files.rename","files.move","files.copy","files.delete","files.search","files.undoOperation","files.gitStatus","turnBaseline.getSummary","turnBaseline.getFileDiff","turnBaseline.listRecent","turnBaseline.getFileBaseline","workingMaterials.get","workingMaterials.replace","workingMaterials.upsert","workingMaterials.remove","workingMaterials.reorder","skills.list","memory.list-files","memory.atlas","memory.activity","memory.propose","memory.consolidate","memory.update","memory.attachment.adopt","memory.attachment.locate"];var R=["turn.start","turn.delta","turn.end","turn.error","turn.recovery","turn.text_rollback","turn.file_changes","turn.tool_call","turn.tool_result","turn.tool_blocked","turn.reasoning_delta","turn.approval_request","turn.ask_user","turn.media_result","turn.plan_update","turn.suggestions","turn.sidechain_started","turn.subagent_started","turn.subagent_delta","turn.subagent_activity","turn.subagent_ended","turn.subagent_completed","turn.subagent_decision","turn.sidechain_completed","turn.task_updated","turn.todos_updated","turn.exec_progress","turn.progress","turn.tool_use_summary","turn.tool_selection_policy","turn.lifecycle","turn.document_maintenance","turn.artifact_contract","turn.usage_update","team.member.notification","session.info","session.recovery_pending","thread.item","memory.updated","skills.updated","turn.memory_recall","turn.memory_written","system.activity","workflow.created","workflow.updated","workflow.deleted","workflow.runStarted","workflow.runCompleted","workflow.runFailed","workflow.nodeStatus","workflow.triggerDropped","workflow.alert","workflow.approvalRequested","workflow.approvalTimedOut"],b=["solo.progress","solo.specProgress","solo.agentDelta","solo.agentActivity","solo.agentUsage","solo.evaluation","solo.agentDiff","solo.state","product.taskStarted","product.taskOutput","product.members","product.agentActivity","product.taskCompleted","product.taskFailed","product.taskHandoff","product.budgetUpdate","product.budgetWarning","product.budgetExceeded","product.checkpointed","product.completed","product.dagTopology","plan.interrupted","product.planReady","product.planningDelta","product.leaderMessage","product.planFailed","product.planningAsk","mention.delegate_started","mention.delegate_activity","mention.delegate_settled"],ne=[...R,...b],w=ne;import{MODEL_PURPOSES as dr}from"@xiaozhiclaw/module-sdk/model-access";var ie=["fact","preference","insight","lesson","decision","plan","event","pattern","context","procedure","general"],Ct=new Set(ie),oe=["equals","includes","excludes"],xt=new Set(oe);import{createHash as wt}from"node:crypto";import{resolve as Nt}from"node:path";var O=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"];var Lt=new Set(O);var m={request:"x/delegate",update:"x/delegate.update",respond:"x/delegate.respond",cancel:"x/delegate.cancel"},se=["search","embedText","ingestExtracted","proposeExtracted","consumePendingProposals","feedback","findRelatedEvents","synthesizeTimeline","getActivitySummary","getAllProfiles","setProfile","getAtlas","setMemoryArchived","triggerDecay","resolveConflicts","readProcedureUsage","writeProcedureUsage","readDistillCandidates","writeDistillCandidates","readPromotionProposals","writePromotionProposals","listActiveMemoriesByTag","readDistilledProcedure","promoteDistilledProcedure","demoteDistilledProcedure","recordInjectedAccess","recordRecallOutcome","enqueueExtractionTurn","claimPendingExtractionTurns","completeExtractionTurn","releaseExtractionTurn","recordExtractionTurnFailure"],ae=["initialize","getIndex","addToIndex","replaceInIndex","removeFromIndex","createFile","writeFile","readFile","deleteFile","listFiles","searchLocal"],de=["getSkillSnapshot","readSkillFile","recordSkillInvocation","commitSkillMutation","applyCuratorPlan","prepareSkillInstall","finalizeSkillInstall"],ce=["loadForResume","appendTranscript","updateTitle","saveState","saveTaskSummary","groupSplit"],pe=["commitTurnTelemetry","listDistillableFeedback","markFeedbackDistilled","runUploadSweep"],le=["getSnapshot","create","switch","update"],Gt=1024*1024,ue=["resolveInstall","listResourceVersions"],ge=["probeSession"],me=["list","get","diagnose"],fe=["navigate","snapshot","click","type","screenshot","console","network"];var ye=["open","openWithCheckpoint","recordEvent","checkpoint","get","list","delete","getCheckpoint","listCheckpoints","restoreCheckpoint"],Ae=["getTunables","updateTunable","clearTunable","appendDirectoryAllowRule"];var zt=new Set(se),Xt=new Set(ae),$t=new Set(Ae),Jt=new Set(de),Qt=new Set(ce),Zt=new Set(pe),er=new Set(le),tr=new Set(ye),rr=new Set(me),nr=new Set(ue),ir=new Set(ge),or=new Set(fe);var Se=1,Ie={INITIALIZE:"initialize",SESSION_NEW:"session/new",SESSION_PROMPT:"session/prompt",SESSION_CLOSE:"session/close",SESSION_SET_CONFIG:"session/set_config_option",SESSION_SET_MODEL:"session/set_model",SESSION_SET_MODE:"session/set_mode",SESSION_LOAD:"session/load",SESSION_CANCEL:"session/cancel",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"},Re={ABORT:"x/abort",DREAM:"x/dream",SOLO_START:"x/solo.start",SOLO_SELECT:"x/solo.select",SOLO_CANCEL:"x/solo.cancel",SOLO_DELETE:"x/solo.delete",PRODUCT_CREATE:"x/product.create",PRODUCT_PLAN:"x/product.plan",PRODUCT_CONFIRM:"x/product.confirm",PRODUCT_MESSAGE:"x/product.message",PRODUCT_MUTATE_DAG:"x/product.mutateDag",PRODUCT_RESUME:"x/product.resume",PRODUCT_PAUSE:"x/product.pause",PRODUCT_CANCEL:"x/product.cancel",PRODUCT_ROLLBACK:"x/product.rollback",PRODUCT_REPLAY:"x/product.replay",SOLO_SUBSCRIBE:"x/solo.subscribe",SOLO_MESSAGE:"x/solo.message",SOLO_EVALUATE:"x/solo.evaluate",SOLO_SPEC_CHAT:"x/solo.specChat",SOLO_SPEC_JUDGE:"x/solo.specJudge",WORKFLOW_CHAT:"x/workflow.chat",WORKFLOW_MATCH_INTENT:"x/workflow.matchIntent",WORKFLOW_PLAN_COMMAND:"x/workflow.planCommand",PRODUCT_SUBSCRIBE:"x/product.subscribe",GOAL_START:"x/goal.start",GOAL_PAUSE:"x/goal.pause",GOAL_RESUME:"x/goal.resume",GOAL_UPDATE_GOAL:"x/goal.updateGoal",GOAL_STOP:"x/goal.stop",GOAL_MESSAGE:"x/goal.message",GOAL_RECOVER:"x/goal.recover",GOAL_DISMISS:"x/goal.dismiss",DELEGATE:m.request,DELEGATE_UPDATE:m.update,DELEGATE_RESPOND:m.respond,DELEGATE_CANCEL:m.cancel},N={USER_MESSAGE_CHUNK:"user_message_chunk",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",CURRENT_MODE_UPDATE:"current_mode_update"},be={X_SESSION_INFO:"x_session_info",X_RELAY:"x_relay"},he="xiaozhiclaw/permissionPresentation";function D(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&"id"in t}function H(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function L(e){if(!e||typeof e!="object")return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&!("method"in t)}function Ee(e){let t;try{t=JSON.parse(e)}catch{return null}return L(t)||D(t)||H(t)?t:null}function Pe(e){return Object.values(N).includes(e)}function ke(e){return e.startsWith("x_")}var h=["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(e){return e?e.map(t=>({...t})):void 0}function Te(e){return e?[...e]:void 0}function U(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))].sort((t,r)=>t.localeCompare(r))}function f(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(e.workspaceSummaries)}:{}}}function _e(e){let{previous:t,update:r}=e;return!(r.syncMode==="diff"&&t&&(!r.baseSnapshotVersion||t.snapshotVersion===r.baseSnapshotVersion))||!t?f(r):{...f(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:E(r.workspaceSummaries)}:{}}}function Ce(e){return U(e.map(t=>t.name.split(".")[0]??"").filter(Boolean))}function xe(e){return U(e.map(t=>t.id))}function Me(e){let{previous:t,current:r}=e;if(!t)return{...f(r),syncMode:"full"};if(t.snapshotVersion===r.snapshotVersion)return null;let n=h.filter(s=>JSON.stringify(t[s])!==JSON.stringify(r[s]));if(n.length===h.length)return{...f(r),syncMode:"full"};let o={snapshotVersion:r.snapshotVersion,updatedAt:r.updatedAt,syncMode:"diff",baseSnapshotVersion:t.snapshotVersion,changedSections:n,toolNamespaces:[...r.toolNamespaces],workspaceIds:[...r.workspaceIds]},c=o;for(let s of n){let i=r[s];if(i!==void 0)switch(s){case"toolNamespaces":case"workspaceIds":case"installedCapabilities":case"enabledCapabilities":case"features":c[s]=Te(i);break;case"approvalPolicy":c[s]={...i};break;case"workspaceSummaries":c[s]=E(i);break;case"toolManifests":case"skillManifests":case"pluginManifests":case"mcpManifests":c[s]=g(i);break;default:c[s]=i;break}}return o}var ve=["web_search","web_fetch","web_research","browser_execution"],we=["web-intelligence","browser-execution"],Oe=["discovery","read-url","multi-source-research","interactive-browser"],Ne=["stateless","render-backend","interactive-session"],De=["stateless","stateless-single-step","stateful-session-required"],He=["required","conditional","none"],Le=["browser-read","browser-authenticated-read","browser-state-changing"];var Ue=["read-page","read-authenticated-page","fill-form","submit-form","download-file","reuse-session"],je=["web_search","web_fetch","web_research","blocked"],Ke=["requires-interaction","requires-login-state","requires-rendered-dom","requires-persistent-session","requires-state-changing-action"],Ve=["none","same-capability-once","degrade-only"];var Fe=["prefetch","sync_turn","on_pre_compress","on_session_end","on_delegation","on_memory_write"],We=["turn","sidechain","compress","session-end","agent-remember","auto-extract","implicit-extract","profile-extraction","dream"],qe=["observe-only","parent-write","deny"];var Be=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 K(e){return{...e,artifacts:e.artifacts.map(t=>({...t}))}}function Ye(e){return{...e,assetIds:[...e.assetIds]}}function V(){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 F(e,t){return e.assets[t]}function W(e,t){return e.profiles[t]}function Ge(e,t){let r=W(e,t);return r?r.assetIds.map(n=>F(e,n)).filter(n=>!!n):[]}function ze(e,t){return e.assets[t.id]=K(t),q(e)}function P(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 q(e){let t=P(e.assets[a.gatewayImage]),r=P(e.assets[a.whisperModelTiny]);return{...e,gateway:t,whisperModel:r}}function j(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={},n=t.assets&&typeof t.assets=="object"?t.assets:{};for(let[i,d]of Object.entries(n)){if(!d||typeof d!="object")continue;let u=d;!u.id||!Array.isArray(u.artifacts)||(r[i]=K(u))}if(!r[a.gatewayImage]&&t.gateway&&typeof t.gateway=="object"){let i=j(t.gateway,{id:a.gatewayImage,title:"XiaoZhiClaw Gateway Image (Desktop Slim)",kind:"container-image",delivery:"remote",platform:"any",description:"Desktop Docker mode gateway image."});i&&(r[i.id]=i)}if(!r[a.whisperModelTiny]&&t.whisperModel&&typeof t.whisperModel=="object"){let i=j(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."});i&&(r[i.id]=i)}let c={...V()},s=t.profiles&&typeof t.profiles=="object"?t.profiles:{};for(let[i,d]of Object.entries(s)){if(!d||typeof d!="object")continue;let u=d;!u.id||!Array.isArray(u.assetIds)||(c[i]=Ye(u))}return q({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 $e=["pending","captured","failed","restored"],Je=["file","directory","missing"],Qe=["metadata-only","workspace-copy","shadow-git"];var Ze=["api-key","oauth","token","aws-sdk"],et=["rate_limit","auth","server_error","timeout","network","unknown"],tt=["requiresOpenAiAnthropicToolPayload"];function rt(e,t){return!e||typeof e!="object"||Array.isArray(e)?!1:e[t]===!0}var B="openai-codex";function S(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 Y(e){let t=S(e);return t==="volcengine-plan"?"volcengine":t==="qwen-coding"?"qwen":t==="byteplus-plan"?"byteplus":t}var nt=Y,it={anthropicToolSchemaMode:"native",anthropicToolChoiceMode:"native",providerFamily:"default",preserveAnthropicThinkingSignatures:!0,openAiCompatTurnValidation:!0,providerThoughtSignatureSanitization:!1,transcriptToolCallIdMode:"default",transcriptToolCallIdModelHints:[],providerThoughtSignatureModelHints:[],dropThinkingBlockModelHints:[]},ot={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 k(e,t){let r=(e??"").toLowerCase();return!!r&&t.some(n=>r.includes(n))}function p(e){let t=S(e??"");return{...it,...ot[t]}}function st(e){return p(e).preserveAnthropicThinkingSignatures}function at(e){let t=p(e);return t.anthropicToolSchemaMode!=="native"||t.anthropicToolChoiceMode!=="native"}function dt(e){return p(e).anthropicToolSchemaMode==="openai-functions"}function ct(e){return p(e).anthropicToolChoiceMode==="openai-string-modes"}function pt(e){return p(e).openAiCompatTurnValidation}function lt(e){return p(e).providerFamily==="openai"}function ut(e){return p(e).providerFamily==="anthropic"}function gt(e){return k(e.modelId,p(e.provider).dropThinkingBlockModelHints)}function mt(e){let t=p(e.provider);return t.providerThoughtSignatureSanitization&&k(e.modelId,t.providerThoughtSignatureModelHints)}function ft(e,t){let r=p(e),n=r.transcriptToolCallIdMode;if(n==="strict9")return n;if(k(t,r.transcriptToolCallIdModelHints))return"strict9"}var T={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"],qwen:["DASHSCOPE_API_KEY","QWEN_API_KEY"],"qwen-coding":["DASHSCOPE_API_KEY","QWEN_API_KEY"],volcengine:["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_API_KEY"],"volcengine-plan":["VOLCANO_ENGINE_API_KEY","ARK_API_KEY","DOUBAO_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 yt(){return[...new Set(Object.values(T).flat())]}function At(e){let t=S(e.provider),r=e.env??process.env,n=new Set(e.appliedEnvKeys??[]),o=i=>{let d=r[i]?.trim();if(!d)return null;let u=n.has(i)?`shell env: ${i}`:`env: ${i}`;return{apiKey:d,source:u}},c=e.resolveSpecialApiKey?.(t,r,n);if(c)return c;let s=T[t];if(!s||s.length===0)return null;for(let i of s){let d=o(i);if(d)return d}return null}export{Re as ACP_EXTENDED_METHODS,be as ACP_EXTENDED_SESSION_UPDATE_TYPES,Ie as ACP_METHODS,he as ACP_PERMISSION_PRESENTATION_META_KEY,Se as ACP_PROTOCOL_VERSION,N as ACP_SESSION_UPDATE_TYPES,z as AGENT_RPC_APPROVAL_METHODS,l as AGENT_RPC_ERROR_CODES,G as AGENT_RPC_PROTOCOL_VERSION,b as AGENT_TEAM_WS_EVENT_NAMES,R as AGENT_WS_EVENT_NAMES,w as ALL_AGENT_WS_EVENT_NAMES,h as CAPABILITY_MANIFEST_DIFF_SECTIONS,re as GATEWAY_RPC_METHODS,I as GatewayRpcContract,Fe as MEMORY_OBSERVATION_HOOK_VALUES,We as MEMORY_OBSERVATION_SOURCE_VALUES,qe as MEMORY_WRITE_ACCESS_VALUES,Qe as MUTATION_CHECKPOINT_BACKEND_VALUES,Je as MUTATION_CHECKPOINT_ENTRY_KIND_VALUES,$e as MUTATION_CHECKPOINT_PHASE_VALUES,Ze as PROVIDER_RUNTIME_AUTH_MODE_VALUES,tt as PROVIDER_RUNTIME_COMPAT_FLAG_VALUES,T as PROVIDER_RUNTIME_ENV_API_KEY_CANDIDATES,B as PROVIDER_RUNTIME_OPENAI_CODEX_PROVIDER_ID,et as PROVIDER_RUNTIME_VAULT_ERROR_TYPE_VALUES,Be as RESOURCE_MANIFEST_SCHEMA_VERSION,a as RUNTIME_ASSET_IDS,y as RUNTIME_PROFILE_IDS,Ue as WEB_ACTION_SCOPE_VALUES,He as WEB_APPROVAL_DEFAULT_VALUES,we as WEB_CAPABILITY_FAMILY_VALUES,ve as WEB_CAPABILITY_ID_VALUES,je as WEB_DEGRADATION_TARGET_VALUES,Ke as WEB_ESCALATION_REASON_VALUES,Ne as WEB_EXECUTION_MODE_VALUES,Le as WEB_POLICY_RISK_CLASS_VALUES,Ve as WEB_RETRY_POLICY_VALUES,De as WEB_STATEFULNESS_VALUES,Oe as WEB_TASK_MODE_VALUES,te as buildAgentRpcMeta,A as classifyGatewayRpcMethod,f as cloneCapabilityManifestSnapshot,Me as createCapabilityManifestDiffPayload,V as createDefaultRuntimeResourceProfiles,Ce as deriveCapabilityToolNamespaces,xe as deriveCapabilityWorkspaceIds,P as getManifestShortcutEntry,F as getRuntimeResourceAsset,W as getRuntimeResourceProfile,Ge as getRuntimeResourceProfileAssets,H as isAcpJsonRpcNotification,D as isAcpJsonRpcRequest,L as isAcpJsonRpcResponse,x as isAgentRpcNotification,_ as isAgentRpcRequest,C as isAgentRpcResponse,ut as isAnthropicProviderRuntimeFamily,ke as isExtendedSessionUpdateType,lt as isOpenAiProviderRuntimeFamily,Pe as isStandardSessionUpdateType,yt as listProviderRuntimeEnvApiKeyNames,_e as mergeCapabilityManifestSnapshot,S as normalizeProviderRuntimeId,Y as normalizeProviderRuntimeIdForAuth,Xe as normalizeRuntimeResourceManifest,Ee as parseAcpMessage,X as parseAgentRpcMessage,st as preservesProviderRuntimeAnthropicThinkingSignatures,rt as readProviderRuntimeCompatFlag,v as requireGatewayRpcMeta,M as requiresIdempotencyKey,at as requiresOpenAiCompatibleAnthropicToolPayloadForProviderRuntime,p as resolveProviderRuntimeCapabilities,At as resolveProviderRuntimeEnvApiKey,nt as resolveProviderRuntimeKeyFamily,ft as resolveProviderRuntimeTranscriptToolCallIdMode,gt as shouldDropThinkingBlocksForProviderRuntimeModel,mt as shouldSanitizeProviderRuntimeThoughtSignaturesForModel,pt as supportsOpenAiCompatTurnValidationForProviderRuntime,ze as upsertRuntimeResourceAsset,dt as usesOpenAiFunctionAnthropicToolSchemaForProviderRuntime,ct as usesOpenAiStringModeAnthropicToolChoiceForProviderRuntime};
@@ -1 +0,0 @@
1
- var t=["efficiency","dev","cloud","data","industrial","marketing","ecommerce","procurement","hr","accounting","finance","legal","lifestyle"],r={efficiency:"\u529E\u516C\u534F\u4F5C",dev:"\u5F00\u53D1\u7F16\u7A0B",cloud:"\u4E91\u4E0E\u8FD0\u7EF4",data:"\u6570\u636E\u5206\u6790",industrial:"\u5DE5\u4E1A\u81EA\u52A8\u5316",marketing:"\u8425\u9500\u9500\u552E",ecommerce:"\u7535\u5546\u8FD0\u8425",procurement:"\u91C7\u8D2D\u4F9B\u5E94\u94FE",hr:"\u4EBA\u529B\u884C\u653F",accounting:"\u8D22\u52A1\u4F1A\u8BA1",finance:"\u91D1\u878D\u6295\u8D44",legal:"\u6CD5\u52A1\u5408\u89C4",lifestyle:"\u4E2A\u4EBA\u751F\u6D3B"},n=new Set(t);function i(e){return typeof e=="string"&&n.has(e)}export{t as HUB_SKILL_CATEGORIES,r as HUB_SKILL_CATEGORY_LABELS,i as isHubSkillCategory};
package/dist/tunables.js DELETED
@@ -1 +0,0 @@
1
- var _=Math.min(Math.max(1,Number(process.env.TOOL_LOOP_DEFAULT_BUDGET)||25),100),u=Math.max(1e3,Number(process.env.TOOL_LOOP_TOOL_TIMEOUT_MS)||24e4),T=3,i=2;var m=128e3,M=13e3,E=16384,c=65536,S=3,p=65536,R=500,l=3,x=5e4,A=2e5,O=2e3,I=3e4,d=3,b=2,D=3e5,f=216e5,L=.75,N=16e3,C=12e4,U=3,P=4,k=50,B=3,F=2;var me=720*60*60*1e3,y=4,g=0,X=50,h=50,w=30,Me=3600*1e3;var K=5,G=4e4,H=50*1024,v=500*1024,V=500*1024*1024,Y=50*1024*1024,z=3e5,W=2,$=3e3,j=3,Z=5e3,q=1e3,J=3e3,Q=3e4,ee=60*1024,te=10,ne=100,re=24,oe=5,se=6e5,ae=30,_e=144e5,ue=3e5;function o(){return{maxRoundsLimit:100,defaultMaxRounds:25,defaultTemperature:0,maxToolBudgetCap:100,defaultToolBudget:_,defaultToolExecutionTimeoutMs:u,maxConsecutiveFailures:T,maxIdenticalCallRepeats:i,defaultContextWindowTokens:m,responseBufferTokens:M,defaultMaxOutputTokens:E,defaultModelMaxOutputTokens:c,maxOutputTokensRecoveryLimit:S,escalatedMaxOutputTokens:p,diminishingReturnsThreshold:R,diminishingReturnsMinContinuations:l,defaultMaxResultSizeChars:x,maxToolResultsPerMessageChars:A,toolResultPreviewBytes:O,heartbeatIntervalMs:I,max529Retries:d,maxApiRetries:b,persistentRetryMaxBackoffMs:D,persistentRetryResetCapMs:f,compressionTargetUsageRatio:L,compressionMinBudget:N,compressionMaxBudget:C,reactiveCompactMaxFailures:U,reactiveCompactMinMessages:P,reactiveCompactTargetPercent:k,minToolCallsForSkill:B,minDistinctToolsForSkill:F,maxForkDepth:y,maxSessions:X,taskSummaryTurnThreshold:h,taskSummaryRegenInterval:w,maxIncludeDepth:K,maxInstructionChars:G,instructionsMaxFileSize:H,instructionsMaxDirSize:v,mediaMaxDownloadSize:V,mediaMaxUploadSize:Y,mediaDownloadTimeoutMs:z,acpMaxSpawnRetries:W,acpRetryBackoffBase:$,acpRuntimeRestartMax:j,acpRuntimeRestartBackoffBase:Z,taskPollIntervalMs:q,taskStoppedDisplayMs:J,taskPanelGraceMs:Q,memoryPrefetchMaxSessionBytes:ee,memoryPrefetchLimitPerRecall:te,memoryMaxSurfacedEntries:ne,dreamMinIntervalHours:re,dreamMinSessions:oe,dreamScanIntervalMs:se,idleDreamMinutes:ae,dreamCooldownMs:_e,dreamMaxDurationMs:ue,teamBudgetTokens:g}}function a(t){let e=o();return Object.prototype.hasOwnProperty.call(e,t)?null:`Unknown tunable key: "${t}". Valid keys: ${Object.keys(e).join(", ")}`}function Te(t,e){let r=a(t);if(r)return r;let n=typeof o()[t];return e==null||typeof e!==n?`Invalid value for "${t}": expected ${n}, got ${e===null?"null":typeof e}`:n==="number"&&!Number.isFinite(e)?`Invalid value for "${t}": expected a finite number`:null}function ie(t,e){if(typeof e!="string")return e;let r=o();if(!Object.prototype.hasOwnProperty.call(r,t))return e;let s=typeof r[t];if(s==="number"){let n=Number(e);if(Number.isFinite(n)&&e.trim()!=="")return n}else if(s==="boolean"){if(e==="true")return!0;if(e==="false")return!1}return e}export{ie as coerceTunableValue,o as getTunableDefaults,a as validateTunableKey,Te as validateTunableUpdate};
@@ -1,22 +0,0 @@
1
- export type RecalledMemorySource = "l1-project-md" | "l2-long-term" | "skill" | "system" | "unknown";
2
- export interface RecalledMemoryForPrompt {
3
- id?: string;
4
- text: string;
5
- score?: number;
6
- category?: string | null;
7
- source?: RecalledMemorySource | string;
8
- label?: string;
9
- metadata?: Record<string, unknown>;
10
- }
11
- /**
12
- * Formats Host-selected memory for the answer model. Relevance, status,
13
- * validity and abstention are decided by the Host retrieval chain; this layer
14
- * only preserves the normalized evidence packet and its trust boundary.
15
- */
16
- export declare function buildRecalledMemorySystemContent(memories: RecalledMemoryForPrompt[]): string;
17
- /**
18
- * Serializes one memory exactly as it will be shown to the answer model.
19
- * L2 has no raw-text fallback: identity, schema, and canonical fact must all
20
- * match the Host-owned claim packet before the entry is renderable.
21
- */
22
- export declare function renderRecalledMemoryEntry(memory: RecalledMemoryForPrompt): string | null;
@@ -1,32 +0,0 @@
1
- /**
2
- * Turn-time QMemory recall orchestration (hippocampus bridge).
3
- *
4
- * Impure counterpart to the pure memory-recall-context.ts: it drives the
5
- * `memory.before_recall` hook, caps the recalled set by a per-turn byte budget,
6
- * and fires `memory.after_recall`. Kept out of Agent.run so the turn entrypoint
7
- * stays a thin lifecycle wrapper; the pure prompt-building (and conflict
8
- * detection) stays in memory-recall-context.ts.
9
- *
10
- * Returns the system-message content to inject, or null when
11
- * there is nothing to inject. Recall failures are swallowed — a recall miss must
12
- * never block the turn. The caller decides WHERE to splice the message; this
13
- * module only decides WHAT (if anything) to inject.
14
- */
15
- import type { AgentLogger, HookRegistry } from "./types.js";
16
- export interface RecallMemoriesDeps {
17
- hooks: HookRegistry;
18
- log: AgentLogger;
19
- sessionId: string;
20
- turnId: string;
21
- /** Last user message (already truncated by the caller). */
22
- query: string;
23
- /** Turn lifetime. Aborted recall must not be reported or injected as consumed. */
24
- signal?: AbortSignal;
25
- }
26
- /**
27
- * Recall long-term memories for this turn and build the system-message content
28
- * to inject. Always fires `memory.after_recall` (with the real injected/dropped
29
- * split — a pre-cap count would misreport what the model actually sees) when the
30
- * recall hook runs. Returns null when there is nothing worth injecting.
31
- */
32
- export declare function recallMemoriesForTurn(deps: RecallMemoriesDeps): Promise<string | null>;
@@ -1,110 +0,0 @@
1
- import type { SoloSpecChatResult, SoloSpecJudgeResult, WorkflowChatResult } from "../protocol/wire/acp-agent-management.js";
2
- import { GoalHandler } from "./handlers/goal-handler.js";
3
- import type { DelegateBridge } from "../orchestration/delegate-bridge.js";
4
- import { type DreamHandlerHost } from "./handlers/dream-handler.js";
5
- import { type ProductCoordinatorHost } from "./handlers/product-handler.js";
6
- import { type SoloHandlerHost } from "./handlers/solo-handler.js";
7
- import type { LLMTransport } from "./provider-core-facade.js";
8
- export interface AcpExtendedHost extends DreamHandlerHost, SoloHandlerHost, ProductCoordinatorHost {
9
- activeTurn?: AbortController | null;
10
- currentTurnId?: string;
11
- currentSessionId?: string;
12
- getActiveProjectRoot(): string;
13
- log(message: string): void;
14
- /**
15
- * Lazily reads the Gateway delegate bridge because ACP negotiation completes after host creation.
16
- * A missing or unsupported bridge makes orchestration fail loud; there is no local spawn rail.
17
- */
18
- getDelegateBridge?(): DelegateBridge | undefined;
19
- resolveClientForPurpose(purpose: "textGeneration"): {
20
- transport: LLMTransport;
21
- apiKey: string;
22
- model: string;
23
- } | null;
24
- /** Parked ask_user resolvers, keyed by requestId; resolved by thread.user_response. */
25
- pendingAskUser: Map<string, {
26
- resolve: (answers: Record<string, string> | null) => void;
27
- }>;
28
- }
29
- interface GatewayProjectContext {
30
- projectId: string;
31
- canonicalSessionId: string;
32
- cwd: string;
33
- }
34
- export declare function handleAcpDream(host: AcpExtendedHost, params: {
35
- sessionId: string;
36
- config?: Record<string, unknown>;
37
- }): Promise<{
38
- ok: boolean;
39
- summary?: string;
40
- }>;
41
- /**
42
- * Resolve a plan run's cwd from its project's workspaceDir (mutates params.cwd when unset), so
43
- * Solo/Product worktrees land in the user's workspace (e.g. ~/.qlogicagent/workspaces/default) —
44
- * not the gateway's own process.cwd(), which polluted xiaozhiclaw-runtime/.worktrees. The
45
- * rpc-registry handler did this; the x/ ACP entry (the one the gateway actually calls) didn't.
46
- */
47
- export declare function handleAcpSoloStart(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
48
- export declare function handleAcpSoloSelect(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
49
- export declare function handleAcpSoloCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
50
- export declare function handleAcpSoloDelete(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
51
- export declare function handleAcpSoloSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
52
- export declare function handleAcpSoloMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
53
- export declare function handleAcpSoloEvaluate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
54
- /**
55
- * R3 多轮对话式 spec(x/solo.specChat):每轮带全量 history 跑一次 runSpecChatRound(受限工具
56
- * ask_user + set_spec,纯推理不改文件)。澄清走 Cut6 的 turn.ask_user/thread.user_response 往返。
57
- * 成功返回 { reply, spec };LLM/连接级失败降级 { error }(不抛,前端可重发)。
58
- */
59
- export declare function handleAcpSoloSpecChat(host: AcpExtendedHost, params: Record<string, unknown>): Promise<SoloSpecChatResult>;
60
- /**
61
- * R3 启动软门防呆(x/solo.specJudge):用 host LLM 一次性评判 spec 是否达可开赛标准。
62
- * 无 LLM → 降级放行({ ok:true })(软门本就"警告可走")。返回 { ok, issues[] }。
63
- */
64
- export declare function handleAcpSoloSpecJudge(host: AcpExtendedHost, params: Record<string, unknown>): Promise<SoloSpecJudgeResult>;
65
- /**
66
- * 自动化页对话式搭图/改图:Agent 只提交有界 operations,确定性编译器产出唯一 proposal。
67
- * 本计算面无持久化副作用;Runtime Host 是 proposal 的唯一校验和应用者。
68
- */
69
- export declare function handleAcpWorkflowChat(host: AcpExtendedHost, params: Record<string, unknown>): Promise<WorkflowChatResult>;
70
- /**
71
- * x/workflow.matchIntent(spec D22 语义兜底)— 确定性短语在客户端已查过且未命中,且存在
72
- * semantic:true 的活跃意图工作流时才会被调用:对 Gateway 提供的跨项目候选集做**一次**轻量
73
- * LLM 分类(单发,非 agent turn)。本方法不读取 Workflow store。
74
- * 无 LLM / 分类失败 → {matched:null}(放行进正常聊天,绝不拦死用户消息)。
75
- */
76
- export declare function handleAcpWorkflowMatchIntent(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
77
- /**
78
- * Interpret an explicit workflow-management request from the ordinary chat surface.
79
- * This is stateless classification only: Runtime supplies the authoritative candidate snapshot,
80
- * stores the confirmation plan, and remains the sole project/workflow mutation owner.
81
- */
82
- export declare function handleAcpWorkflowPlanCommand(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
83
- export declare function handleAcpProductCreate(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
84
- export declare function handleAcpProductPlan(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
85
- export declare function handleAcpProductConfirm(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
86
- export declare function handleAcpProductMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
87
- export declare function handleAcpProductMutateDag(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
88
- export declare function handleAcpProductResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
89
- export declare function handleAcpProductPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
90
- export declare function handleAcpProductCancel(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
91
- export declare function handleAcpProductRollback(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
92
- export declare function handleAcpProductReplay(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
93
- /** Test-only reset. */
94
- export declare function __resetGoalHandler(): void;
95
- export declare function __setGoalHandlerForTests(context: GatewayProjectContext, handler: GoalHandler, host: AcpExtendedHost, leaderAgentId?: string): void;
96
- export declare function goalLeaderMemberOwner(context: GatewayProjectContext, leaderAgentId?: string): string;
97
- export declare function handleAcpGoalStart(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
98
- export declare function handleAcpGoalPause(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
99
- export declare function handleAcpGoalResume(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
100
- export declare function handleAcpGoalUpdateGoal(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
101
- export declare function handleAcpGoalStop(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
102
- export declare function handleAcpGoalMessage(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
103
- export declare function emitThreadItem(method: string, payload: Record<string, unknown>, hosts: {
104
- currentSessionId?: string;
105
- sendNotification: (m: string, p: Record<string, unknown>) => void;
106
- }[]): void;
107
- export declare function handleAcpGoalRecover(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
108
- export declare function handleAcpGoalDismiss(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
109
- export declare function handleAcpProductSubscribe(host: AcpExtendedHost, params: Record<string, unknown>): Promise<unknown>;
110
- export {};
@@ -1,20 +0,0 @@
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
- export interface AcpExtendedHostAdapterDeps {
6
- dreamHost: DreamHandlerHost;
7
- multiAgentHost: MultiAgentHandlerHost;
8
- getCurrentSessionId(): string;
9
- getActiveProjectRoot(): string;
10
- log(message: string): void;
11
- resolveAgent: DreamHandlerHost["resolveAgent"];
12
- sendNotification(method: string, params: Record<string, unknown>): void;
13
- sendResponse(id: string | number, result?: unknown, error?: AgentRpcError): void;
14
- handleMcpToolCall(memberId: string, toolName: string, args: Record<string, unknown>): Promise<unknown>;
15
- resolveClientForPurpose: AcpExtendedHost["resolveClientForPurpose"];
16
- pendingAskUser: AcpExtendedHost["pendingAskUser"];
17
- /** Lazily resolves the required Gateway delegate rail from AcpServer. */
18
- getDelegateBridge?: AcpExtendedHost["getDelegateBridge"];
19
- }
20
- export declare function createAcpExtendedHostAdapter(deps: AcpExtendedHostAdapterDeps): AcpExtendedHost;
@@ -1,39 +0,0 @@
1
- import type { CommunityInstallResolution } from "../runtime/community/community-consent-client.js";
2
- import { type CommunityInstalledResource, type InstallCommunitySkillOptions } from "./community-skill-installer.js";
3
- import { type CommunityWorkflowBundlePayload } from "./community-workflow-installer.js";
4
- export type CommunityInstalledAnyResource = CommunityInstalledResource | CommunityPetAdoptionProposal | CommunityWorkflowBundlePayload;
5
- export interface CommunityPetAdoptionProposal {
6
- kind: "pet";
7
- mode: "gateway-adoption";
8
- resourceId: string;
9
- version: string;
10
- checksum: string;
11
- fileName: string;
12
- /** Verified package bytes only. Runtime owns PET validation and adoption. */
13
- packageBase64: string;
14
- }
15
- export interface CommunityMcpInstallPreview {
16
- kind: "mcp";
17
- mode: "preview";
18
- resourceId: string;
19
- version: string;
20
- sourceTier: string;
21
- perUseConsentRequired: true;
22
- declaredPermissions: string[];
23
- manifest: unknown;
24
- }
25
- export interface CommunityExecutableLauncherGate {
26
- kind: "executable";
27
- mode: "launcher-required" | "manual-review-required";
28
- resourceId: string;
29
- version: string;
30
- resourceType: string;
31
- sourceTier: string;
32
- riskTier: string;
33
- artifactDigest: string;
34
- launcherRequired: true;
35
- manualReviewRequired: boolean;
36
- autoRunBlocked: true;
37
- manifest: unknown;
38
- }
39
- export declare function installCommunityResource(install: CommunityInstallResolution, options?: InstallCommunitySkillOptions): Promise<CommunityInstalledAnyResource | CommunityMcpInstallPreview | CommunityExecutableLauncherGate>;
@@ -1,18 +0,0 @@
1
- import type { CommunityInstallResolution } from "../runtime/community/community-consent-client.js";
2
- import type { HostCapabilityClient } from "../transport/host-capability-client.js";
3
- export interface CommunityInstalledResource {
4
- resourceId: string;
5
- version: string;
6
- skillName: string;
7
- installDir: string;
8
- checksum: string;
9
- }
10
- export interface InstallCommunitySkillOptions {
11
- fetchFn?: typeof fetch;
12
- /** Replace an existing install in place (update flow) instead of erroring. */
13
- allowReplace?: boolean;
14
- /** Required for replacement. Automated updaters use managed-unmodified. */
15
- replacementPolicy?: "managed-unmodified" | "user-confirmed";
16
- hostCapabilityClient?: Pick<HostCapabilityClient, "prepareSkillInstall" | "finalizeSkillInstall">;
17
- }
18
- export declare function installCommunitySkillResource(install: CommunityInstallResolution, options?: InstallCommunitySkillOptions): Promise<CommunityInstalledResource>;