@weavecode/weave 0.1.0 → 0.1.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 (300) hide show
  1. package/node_modules/@weavecode/cli/dist/cli.js +3 -3
  2. package/node_modules/@weavecode/cli/dist/commands/daemon.d.ts +7 -0
  3. package/node_modules/@weavecode/cli/dist/commands/daemon.js +2 -2
  4. package/node_modules/@weavecode/cli/dist/commands/dashboard.d.ts +0 -2
  5. package/node_modules/@weavecode/cli/dist/commands/dashboard.js +2 -1
  6. package/node_modules/@weavecode/cli/dist/commands/doctor.js +1 -1
  7. package/node_modules/@weavecode/cli/dist/commands/init.js +1 -1
  8. package/node_modules/@weavecode/cli/dist/commands/msg.js +2 -2
  9. package/node_modules/@weavecode/cli/dist/commands/scan.js +1 -1
  10. package/node_modules/@weavecode/cli/dist/commands/status.js +2 -2
  11. package/node_modules/@weavecode/cli/dist/i18n/dict/en.js +6 -12
  12. package/node_modules/@weavecode/cli/dist/i18n/dict/zh.d.ts +44 -2
  13. package/node_modules/@weavecode/cli/dist/i18n/dict/zh.js +6 -12
  14. package/node_modules/@weavecode/cli/dist/init/claudemd-gen.d.ts +2 -3
  15. package/node_modules/@weavecode/cli/dist/init/claudemd-gen.js +4 -4
  16. package/node_modules/@weavecode/cli/dist/init/executor.js +3 -3
  17. package/node_modules/@weavecode/cli/dist/init/git-commit.js +1 -1
  18. package/node_modules/@weavecode/cli/dist/init/harnesses/claude.js +7 -7
  19. package/node_modules/@weavecode/cli/dist/init/harnesses/zcode.d.ts +29 -0
  20. package/node_modules/@weavecode/cli/dist/init/harnesses/zcode.js +1 -0
  21. package/node_modules/@weavecode/cli/dist/init/helpers-gen.d.ts +4 -0
  22. package/node_modules/@weavecode/cli/dist/init/helpers-gen.js +1 -20
  23. package/node_modules/@weavecode/cli/dist/init/mcp-gen.d.ts +3 -20
  24. package/node_modules/@weavecode/cli/dist/init/mcp-gen.js +1 -1
  25. package/node_modules/@weavecode/cli/dist/init/prompt.js +4 -4
  26. package/node_modules/@weavecode/cli/dist/init/settings-gen.d.ts +3 -30
  27. package/node_modules/@weavecode/cli/dist/init/settings-gen.js +1 -1
  28. package/node_modules/@weavecode/cli/package.json +5 -5
  29. package/node_modules/@weavecode/core/dist/harness.d.ts +45 -2
  30. package/node_modules/@weavecode/core/dist/harness.js +1 -1
  31. package/node_modules/@weavecode/core/dist/index.d.ts +2 -2
  32. package/node_modules/@weavecode/core/dist/index.js +1 -1
  33. package/node_modules/@weavecode/core/dist/terminal.d.ts +28 -4
  34. package/node_modules/@weavecode/core/dist/terminal.js +1 -1
  35. package/node_modules/@weavecode/core/dist/types.d.ts +188 -19
  36. package/node_modules/@weavecode/core/dist/types.js +1 -1
  37. package/node_modules/@weavecode/core/package.json +1 -1
  38. package/node_modules/@weavecode/harness/dist/claude/assets.d.ts +10 -0
  39. package/node_modules/@weavecode/harness/dist/claude/assets.js +4 -1
  40. package/node_modules/@weavecode/harness/dist/claude/capture.d.ts +15 -3
  41. package/node_modules/@weavecode/harness/dist/claude/capture.js +15 -9
  42. package/node_modules/@weavecode/harness/dist/claude/event-source.d.ts +1 -1
  43. package/node_modules/@weavecode/harness/dist/claude/event-source.js +1 -1
  44. package/node_modules/@weavecode/harness/dist/claude/helpers-gen.d.ts +5 -0
  45. package/node_modules/@weavecode/harness/dist/claude/helpers-gen.js +20 -0
  46. package/node_modules/@weavecode/harness/dist/claude/index.d.ts +10 -1
  47. package/node_modules/@weavecode/harness/dist/claude/index.js +1 -1
  48. package/node_modules/@weavecode/harness/dist/claude/mcp-gen.d.ts +22 -0
  49. package/node_modules/@weavecode/harness/dist/claude/mcp-gen.js +1 -0
  50. package/node_modules/@weavecode/harness/dist/claude/messaging.d.ts +11 -2
  51. package/node_modules/@weavecode/harness/dist/claude/messaging.js +4 -1
  52. package/node_modules/@weavecode/harness/dist/claude/model-aliases.d.ts +39 -0
  53. package/node_modules/@weavecode/harness/dist/claude/model-aliases.js +1 -0
  54. package/node_modules/@weavecode/harness/dist/claude/plan.d.ts +2 -0
  55. package/node_modules/@weavecode/harness/dist/claude/plan.js +1 -0
  56. package/node_modules/@weavecode/harness/dist/claude/questions.js +2 -1
  57. package/node_modules/@weavecode/harness/dist/claude/settings-gen.d.ts +32 -0
  58. package/node_modules/@weavecode/harness/dist/claude/settings-gen.js +1 -0
  59. package/node_modules/@weavecode/harness/dist/claude/side-question.d.ts +12 -0
  60. package/node_modules/@weavecode/harness/dist/claude/side-question.js +1 -0
  61. package/node_modules/@weavecode/harness/dist/claude/statusline/config.d.ts +200 -0
  62. package/node_modules/@weavecode/harness/dist/claude/statusline/config.js +1 -0
  63. package/node_modules/@weavecode/harness/dist/claude/statusline/generator.d.ts +12 -0
  64. package/node_modules/@weavecode/harness/dist/claude/statusline/generator.js +745 -0
  65. package/node_modules/@weavecode/harness/dist/claude/statusline/git-cache.d.ts +10 -0
  66. package/node_modules/@weavecode/harness/dist/claude/statusline/git-cache.js +1 -0
  67. package/node_modules/@weavecode/harness/dist/claude/statusline/surface.d.ts +20 -0
  68. package/node_modules/@weavecode/harness/dist/claude/statusline/surface.js +2 -0
  69. package/node_modules/@weavecode/harness/dist/claude/transcript.d.ts +16 -0
  70. package/node_modules/@weavecode/harness/dist/claude/transcript.js +4 -2
  71. package/node_modules/@weavecode/harness/dist/codex/assets.js +1 -1
  72. package/node_modules/@weavecode/harness/dist/codex/index.d.ts +1 -0
  73. package/node_modules/@weavecode/harness/dist/codex/index.js +1 -1
  74. package/node_modules/@weavecode/harness/dist/codex/mcp.d.ts +30 -0
  75. package/node_modules/@weavecode/harness/dist/codex/mcp.js +1 -0
  76. package/node_modules/@weavecode/harness/dist/codex/messaging.js +1 -1
  77. package/node_modules/@weavecode/harness/dist/driver.d.ts +168 -3
  78. package/node_modules/@weavecode/harness/dist/index.d.ts +1 -0
  79. package/node_modules/@weavecode/harness/dist/index.js +1 -1
  80. package/node_modules/@weavecode/harness/dist/init/generated.d.ts +37 -0
  81. package/node_modules/@weavecode/harness/dist/init/generated.js +2 -0
  82. package/node_modules/@weavecode/harness/dist/registry-wiring.d.ts +3 -1
  83. package/node_modules/@weavecode/harness/dist/zcode/assets.d.ts +8 -0
  84. package/node_modules/@weavecode/harness/dist/zcode/assets.js +1 -0
  85. package/node_modules/@weavecode/harness/dist/zcode/capture.d.ts +36 -0
  86. package/node_modules/@weavecode/harness/dist/zcode/capture.js +3 -0
  87. package/node_modules/@weavecode/harness/dist/zcode/detect.d.ts +2 -0
  88. package/node_modules/@weavecode/harness/dist/zcode/detect.js +1 -0
  89. package/node_modules/@weavecode/harness/dist/zcode/event-source.d.ts +8 -0
  90. package/node_modules/@weavecode/harness/dist/zcode/event-source.js +1 -0
  91. package/node_modules/@weavecode/harness/dist/zcode/index.d.ts +13 -0
  92. package/node_modules/@weavecode/harness/dist/zcode/index.js +1 -0
  93. package/node_modules/@weavecode/harness/dist/zcode/mcp.d.ts +6 -0
  94. package/node_modules/@weavecode/harness/dist/zcode/mcp.js +2 -0
  95. package/node_modules/@weavecode/harness/dist/zcode/messaging.d.ts +13 -0
  96. package/node_modules/@weavecode/harness/dist/zcode/messaging.js +1 -0
  97. package/node_modules/@weavecode/harness/dist/zcode/resume.d.ts +7 -0
  98. package/node_modules/@weavecode/harness/dist/zcode/resume.js +1 -0
  99. package/node_modules/@weavecode/harness/package.json +2 -2
  100. package/node_modules/@weavecode/server/dist/daemon/ai-config.js +2 -2
  101. package/node_modules/@weavecode/server/dist/daemon/ai-context.js +6 -6
  102. package/node_modules/@weavecode/server/dist/daemon/ai-routes.js +4 -4
  103. package/node_modules/@weavecode/server/dist/daemon/api-log.d.ts +48 -0
  104. package/node_modules/@weavecode/server/dist/daemon/api-log.js +3 -0
  105. package/node_modules/@weavecode/server/dist/daemon/auth-routes.js +1 -1
  106. package/node_modules/@weavecode/server/dist/daemon/auto-start.js +6 -6
  107. package/node_modules/@weavecode/server/dist/daemon/capture-routes.js +1 -1
  108. package/node_modules/@weavecode/server/dist/daemon/claude-liveness.js +1 -1
  109. package/node_modules/@weavecode/server/dist/daemon/dashboard-auth.js +2 -2
  110. package/node_modules/@weavecode/server/dist/daemon/data-bus.js +1 -1
  111. package/node_modules/@weavecode/server/dist/daemon/dev-entry.js +1 -1
  112. package/node_modules/@weavecode/server/dist/daemon/fs-browser.js +1 -1
  113. package/node_modules/@weavecode/server/dist/daemon/hook-pipeline.d.ts +13 -1
  114. package/node_modules/@weavecode/server/dist/daemon/hook-pipeline.js +1 -1
  115. package/node_modules/@weavecode/server/dist/daemon/hooks-routes.js +1 -1
  116. package/node_modules/@weavecode/server/dist/daemon/http.js +1 -1
  117. package/node_modules/@weavecode/server/dist/daemon/opener.d.ts +102 -19
  118. package/node_modules/@weavecode/server/dist/daemon/opener.js +97 -7
  119. package/node_modules/@weavecode/server/dist/daemon/port.js +1 -1
  120. package/node_modules/@weavecode/server/dist/daemon/project-harnesses.js +2 -2
  121. package/node_modules/@weavecode/server/dist/daemon/project-updates-refresher.d.ts +4 -3
  122. package/node_modules/@weavecode/server/dist/daemon/project-updates-refresher.js +1 -1
  123. package/node_modules/@weavecode/server/dist/daemon/server.d.ts +15 -0
  124. package/node_modules/@weavecode/server/dist/daemon/server.js +8 -6
  125. package/node_modules/@weavecode/server/dist/daemon/session-probe.d.ts +72 -2
  126. package/node_modules/@weavecode/server/dist/daemon/session-probe.js +1 -1
  127. package/node_modules/@weavecode/server/dist/daemon/settings.d.ts +10 -0
  128. package/node_modules/@weavecode/server/dist/daemon/settings.js +2 -2
  129. package/node_modules/@weavecode/server/dist/daemon/snapshot-refresher.d.ts +7 -1
  130. package/node_modules/@weavecode/server/dist/daemon/snapshot-refresher.js +1 -1
  131. package/node_modules/@weavecode/server/dist/daemon/sse-hub.d.ts +40 -0
  132. package/node_modules/@weavecode/server/dist/daemon/sse-hub.js +1 -0
  133. package/node_modules/@weavecode/server/dist/daemon/start.js +1 -1
  134. package/node_modules/@weavecode/server/dist/daemon/state.js +2 -2
  135. package/node_modules/@weavecode/server/dist/daemon/static.js +1 -1
  136. package/node_modules/@weavecode/server/dist/daemon/terminal-topology-refresher.d.ts +4 -1
  137. package/node_modules/@weavecode/server/dist/daemon/tls.js +1 -1
  138. package/node_modules/@weavecode/server/dist/daemon/toolkit-routes.js +1 -1
  139. package/node_modules/@weavecode/server/dist/db/db.js +38 -2
  140. package/node_modules/@weavecode/server/dist/db/paths.d.ts +4 -0
  141. package/node_modules/@weavecode/server/dist/db/paths.js +1 -1
  142. package/node_modules/@weavecode/server/dist/hooks/answer-keys.js +1 -1
  143. package/node_modules/@weavecode/server/dist/hooks/bus.d.ts +5 -0
  144. package/node_modules/@weavecode/server/dist/hooks/bus.js +1 -1
  145. package/node_modules/@weavecode/server/dist/hooks/dispatcher.js +6 -6
  146. package/node_modules/@weavecode/server/dist/hooks/handlers/webhook.js +1 -1
  147. package/node_modules/@weavecode/server/dist/hooks/headless-runner.js +2 -2
  148. package/node_modules/@weavecode/server/dist/hooks/inbox-socket.d.ts +17 -4
  149. package/node_modules/@weavecode/server/dist/hooks/inbox-socket.js +2 -1
  150. package/node_modules/@weavecode/server/dist/hooks/inbox-worker.d.ts +27 -6
  151. package/node_modules/@weavecode/server/dist/hooks/inbox-worker.js +3 -3
  152. package/node_modules/@weavecode/server/dist/hooks/match.js +1 -1
  153. package/node_modules/@weavecode/server/dist/hooks/message-deliverer.d.ts +200 -13
  154. package/node_modules/@weavecode/server/dist/hooks/message-deliverer.js +3 -2
  155. package/node_modules/@weavecode/server/dist/hooks/mirror.d.ts +9 -4
  156. package/node_modules/@weavecode/server/dist/hooks/mirror.js +4 -4
  157. package/node_modules/@weavecode/server/dist/hooks/plugin-installer.js +3 -3
  158. package/node_modules/@weavecode/server/dist/hooks/plugin-loader.js +1 -1
  159. package/node_modules/@weavecode/server/dist/hooks/plugin-project-state.js +1 -1
  160. package/node_modules/@weavecode/server/dist/hooks/prompt-flusher.js +1 -1
  161. package/node_modules/@weavecode/server/dist/hooks/promptbox.d.ts +13 -0
  162. package/node_modules/@weavecode/server/dist/hooks/promptbox.js +8 -8
  163. package/node_modules/@weavecode/server/dist/hooks/push-notify.js +2 -2
  164. package/node_modules/@weavecode/server/dist/hooks/question-tracker.d.ts +6 -4
  165. package/node_modules/@weavecode/server/dist/hooks/question-tracker.js +1 -1
  166. package/node_modules/@weavecode/server/dist/hooks/registry.js +1 -1
  167. package/node_modules/@weavecode/server/dist/hooks/resume-runner.js +1 -1
  168. package/node_modules/@weavecode/server/dist/hooks/sequence-engine.js +1 -1
  169. package/node_modules/@weavecode/server/dist/hooks/session-purge.d.ts +7 -0
  170. package/node_modules/@weavecode/server/dist/hooks/session-purge.js +1 -1
  171. package/node_modules/@weavecode/server/dist/hooks/session-sweeper.d.ts +5 -8
  172. package/node_modules/@weavecode/server/dist/hooks/session-sweeper.js +1 -1
  173. package/node_modules/@weavecode/server/dist/hooks/side-questions.d.ts +41 -0
  174. package/node_modules/@weavecode/server/dist/hooks/side-questions.js +1 -0
  175. package/node_modules/@weavecode/server/dist/hooks/toolkit-scan.js +1 -1
  176. package/node_modules/@weavecode/server/dist/hooks/toolkit.d.ts +8 -0
  177. package/node_modules/@weavecode/server/dist/hooks/toolkit.js +5 -5
  178. package/node_modules/@weavecode/server/dist/hooks/watch-engine.d.ts +7 -0
  179. package/node_modules/@weavecode/server/dist/hooks/watch-engine.js +1 -1
  180. package/node_modules/@weavecode/server/dist/index.d.ts +1 -1
  181. package/node_modules/@weavecode/server/dist/install/apply-update.d.ts +1 -1
  182. package/node_modules/@weavecode/server/dist/install/apply-update.js +1 -1
  183. package/node_modules/@weavecode/server/dist/install/capabilities.d.ts +10 -0
  184. package/node_modules/@weavecode/server/dist/install/capabilities.js +1 -1
  185. package/node_modules/@weavecode/server/dist/install/codex-toml.d.ts +8 -26
  186. package/node_modules/@weavecode/server/dist/install/codex-toml.js +1 -1
  187. package/node_modules/@weavecode/server/dist/install/file-assets.js +1 -1
  188. package/node_modules/@weavecode/server/dist/install/fingerprint.d.ts +5 -1
  189. package/node_modules/@weavecode/server/dist/install/fingerprint.js +1 -1
  190. package/node_modules/@weavecode/server/dist/install/git-classify.d.ts +30 -0
  191. package/node_modules/@weavecode/server/dist/install/git-classify.js +1 -0
  192. package/node_modules/@weavecode/server/dist/install/global-config.d.ts +2 -4
  193. package/node_modules/@weavecode/server/dist/install/global-config.js +1 -2
  194. package/node_modules/@weavecode/server/dist/install/global-file-assets.js +1 -1
  195. package/node_modules/@weavecode/server/dist/install/init-files.d.ts +46 -0
  196. package/node_modules/@weavecode/server/dist/install/init-files.js +2 -0
  197. package/node_modules/@weavecode/server/dist/install/install-ledger.js +1 -1
  198. package/node_modules/@weavecode/server/dist/install/installer.d.ts +3 -5
  199. package/node_modules/@weavecode/server/dist/install/installer.js +1 -3
  200. package/node_modules/@weavecode/server/dist/install/library-index.js +1 -1
  201. package/node_modules/@weavecode/server/dist/install/mcp-rows.d.ts +5 -5
  202. package/node_modules/@weavecode/server/dist/install/mcp-rows.js +1 -1
  203. package/node_modules/@weavecode/server/dist/install/plugin-install.js +1 -1
  204. package/node_modules/@weavecode/server/dist/install/plugin-rows.js +1 -1
  205. package/node_modules/@weavecode/server/dist/install/plugin-templates.js +1 -1
  206. package/node_modules/@weavecode/server/dist/install/project-config.d.ts +0 -2
  207. package/node_modules/@weavecode/server/dist/install/project-config.js +2 -2
  208. package/node_modules/@weavecode/server/dist/install/reader.js +1 -1
  209. package/node_modules/@weavecode/server/dist/install/scan-cache.js +1 -1
  210. package/node_modules/@weavecode/server/dist/install/scanner.js +1 -1
  211. package/node_modules/@weavecode/server/dist/install/settings-mcp.js +2 -2
  212. package/node_modules/@weavecode/server/dist/install/updates.d.ts +17 -5
  213. package/node_modules/@weavecode/server/dist/install/updates.js +1 -1
  214. package/node_modules/@weavecode/server/dist/market/builtin.js +1 -1
  215. package/node_modules/@weavecode/server/dist/market/identity.js +1 -1
  216. package/node_modules/@weavecode/server/dist/market/import.js +2 -2
  217. package/node_modules/@weavecode/server/dist/market/refresh.js +1 -1
  218. package/node_modules/@weavecode/server/dist/market/resolve.js +1 -1
  219. package/node_modules/@weavecode/server/dist/market/updates.js +1 -1
  220. package/node_modules/@weavecode/server/dist/registry.js +2 -2
  221. package/node_modules/@weavecode/server/dist/repositories/hook-dispatches.js +5 -5
  222. package/node_modules/@weavecode/server/dist/repositories/hook-events.d.ts +7 -0
  223. package/node_modules/@weavecode/server/dist/repositories/hook-events.js +2 -2
  224. package/node_modules/@weavecode/server/dist/repositories/hook-rules.js +4 -4
  225. package/node_modules/@weavecode/server/dist/repositories/libraries.js +1 -1
  226. package/node_modules/@weavecode/server/dist/repositories/plugin-states.js +1 -1
  227. package/node_modules/@weavecode/server/dist/repositories/projects.d.ts +7 -0
  228. package/node_modules/@weavecode/server/dist/repositories/projects.js +2 -2
  229. package/node_modules/@weavecode/server/dist/repositories/push-subscriptions.js +2 -2
  230. package/node_modules/@weavecode/server/dist/repositories/session-watches.js +4 -4
  231. package/node_modules/@weavecode/server/dist/repositories/sessions.d.ts +32 -8
  232. package/node_modules/@weavecode/server/dist/repositories/sessions.js +2 -2
  233. package/node_modules/@weavecode/server/dist/repositories/side-questions.d.ts +50 -0
  234. package/node_modules/@weavecode/server/dist/repositories/side-questions.js +6 -0
  235. package/node_modules/@weavecode/server/dist/repositories/uploads.d.ts +66 -0
  236. package/node_modules/@weavecode/server/dist/repositories/uploads.js +7 -0
  237. package/node_modules/@weavecode/server/dist/statusline/cache-sweeper.js +1 -1
  238. package/node_modules/@weavecode/server/dist/statusline/config.d.ts +4 -198
  239. package/node_modules/@weavecode/server/dist/statusline/config.js +1 -1
  240. package/node_modules/@weavecode/server/dist/statusline/generator.d.ts +5 -0
  241. package/node_modules/@weavecode/server/dist/statusline/generator.js +1 -676
  242. package/node_modules/@weavecode/server/dist/statusline/manager.d.ts +7 -5
  243. package/node_modules/@weavecode/server/dist/statusline/manager.js +3 -4
  244. package/node_modules/@weavecode/server/dist/surfaces.d.ts +11 -1
  245. package/node_modules/@weavecode/server/dist/surfaces.js +1 -1
  246. package/node_modules/@weavecode/server/dist/watch/cache.js +1 -1
  247. package/node_modules/@weavecode/server/dist/watch/classifier.js +1 -1
  248. package/node_modules/@weavecode/server/dist/watch/plugin-mods.js +1 -1
  249. package/node_modules/@weavecode/server/dist/watch/sync-scheduler.d.ts +8 -4
  250. package/node_modules/@weavecode/server/dist/watch/sync-scheduler.js +1 -1
  251. package/node_modules/@weavecode/server/dist/watch/watch-service.js +1 -1
  252. package/node_modules/@weavecode/server/package.json +4 -4
  253. package/node_modules/@weavecode/server/web/dist/assets/index-CHWbLAje.js +594 -0
  254. package/node_modules/@weavecode/server/web/dist/assets/index-D0s5v8QS.css +11 -0
  255. package/node_modules/@weavecode/server/web/dist/index.html +14 -2
  256. package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-plugin-creator/skills/weave-plugin-creator/SKILL.md +2 -2
  257. package/node_modules/@weavecode/templates/package.json +2 -2
  258. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/README.md +50 -32
  259. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/build/index.d.ts +86 -40
  260. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/build/index.es.js +860 -353
  261. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/build/index.js +860 -353
  262. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/package.json +20 -17
  263. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/README.md +50 -32
  264. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/build/index.d.ts +86 -40
  265. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/build/index.es.js +860 -353
  266. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/build/index.js +860 -353
  267. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/package.json +20 -17
  268. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/README.md +50 -32
  269. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/build/index.d.ts +86 -40
  270. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/build/index.es.js +860 -353
  271. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/build/index.js +860 -353
  272. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/package.json +20 -17
  273. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/README.md +50 -32
  274. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/build/index.d.ts +86 -40
  275. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/build/index.es.js +860 -353
  276. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/build/index.js +860 -353
  277. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/package.json +20 -17
  278. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/README.md +50 -32
  279. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/build/index.d.ts +86 -40
  280. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/build/index.es.js +860 -353
  281. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/build/index.js +860 -353
  282. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/package.json +20 -17
  283. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/README.md +50 -32
  284. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/build/index.d.ts +86 -40
  285. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/build/index.es.js +860 -353
  286. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/build/index.js +860 -353
  287. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/package.json +20 -17
  288. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/README.md +50 -32
  289. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/build/index.d.ts +86 -40
  290. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/build/index.es.js +860 -353
  291. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/build/index.js +860 -353
  292. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/package.json +20 -17
  293. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/README.md +50 -32
  294. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/build/index.d.ts +86 -40
  295. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/build/index.es.js +860 -353
  296. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/build/index.js +860 -353
  297. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/package.json +20 -17
  298. package/package.json +6 -6
  299. package/node_modules/@weavecode/server/web/dist/assets/index-BOzaRlQE.js +0 -560
  300. package/node_modules/@weavecode/server/web/dist/assets/index-ChX8G8cT.css +0 -11
@@ -1,7 +1,7 @@
1
- import a from"node:path";import{readFile as f,writeFile as c,readdir as D,unlink as A}from"node:fs/promises";import{DEFAULT_AGENTS as T,DEFAULT_COMMANDS as O,DEFAULT_HOOKS as F,DEFAULT_MCP as J,DEFAULT_SKILLS as N,ensureDir as m,fileExists as w,logger as p,resolveComponents as b,writeFileIfAbsent as y}from"@weavecode/core";import{templateRegistry as d}from"@weavecode/templates";import{generateStatuslineScript as C,readStatuslineConfig as M,WEAVE_VERSION as L}from"@weavecode/server";import{InitPipeline as P,generateHookHandler as U,readUserCapture as _}from"@weavecode/harness";import{generateSettingsJson as I,mergeSettingsJson as H}from"../settings-gen.js";import{generateMcpJson as R,mergeMcpJson as x}from"../mcp-gen.js";import{generateAutoMemoryHook as K}from"../helpers-gen.js";import{registerPluginTemplates as V,collectPluginMcpServers as W}from"../plugin-templates.js";import{t as l}from"../../i18n/index.js";export const WEAVE_HELPER_MARKER="@version weave@";const G={preToolUse:!1,postToolUse:!1,userPromptSubmit:!1,sessionStart:!1,stop:!1,subagentStop:!1,notification:!1,preCompact:!1,timeout:5e3,continueOnError:!0};export class ClaudeInitTemplate extends P{records={created:{directories:[],files:[]},skipped:[],merged:[],updated:[],removed:[]};st;constructor(s){super(s);const r=a.join(s.targetDir,".claude");this.st={targetDir:s.targetDir,force:s.force,platform:s.platform,components:b(s.preset,s.components),hooks:{...F,...s.hooks},skills:{...N,...s.skills},commands:{...O,...s.commands},agents:{...T,...s.agents},mcp:{...J,...s.mcp},claudeDir:r,skillsDir:a.join(r,"skills"),commandsDir:a.join(r,"commands"),agentsDir:a.join(r,"agents"),helpersDir:a.join(r,"helpers"),...this.records}}ensureDirs(){return q(this.st)}writeSettings(){return z(this.st)}writeMcp(){return B(this.st)}copySkills(){return Q(this.st)}copyCommands(){return X(this.st)}copyAgents(){return Y(this.st)}injectPluginTemplates(){return Z(this.st)}writeHelpers(){return $(this.st)}}async function q(t){await m(t.claudeDir),t.created.directories.push(t.claudeDir),t.components.skills&&(await m(t.skillsDir),t.created.directories.push(t.skillsDir)),t.components.commands&&(await m(t.commandsDir),t.created.directories.push(t.commandsDir)),t.components.agents&&(await m(t.agentsDir),t.created.directories.push(t.agentsDir)),t.components.helpers&&(await m(t.helpersDir),t.created.directories.push(t.helpersDir))}async function z(t){if(t.components.settings){const s=await _({home:t.platform.homeDir}),r=s.installed?G:t.hooks;s.installed&&p.dim(l("init.userCaptureActive"));const o=I({components:t.components,hooks:r,platform:t.platform,helpersDir:t.helpersDir}),e=a.join(t.claudeDir,"settings.json");if(t.force)await c(e,JSON.stringify(o,null,2)+`
2
- `,"utf-8"),t.created.files.push(e);else{const i=await S(e);if(i===void 0)await w(e)?(t.skipped.push(e),p.warn(l("init.skippedInvalidJson",{path:e}))):(await c(e,JSON.stringify(o,null,2)+`
3
- `,"utf-8"),t.created.files.push(e));else{const n=H(i,o);await c(e,JSON.stringify(n,null,2)+`
4
- `,"utf-8"),t.merged.push(e)}}}}async function B(t){if(t.components.mcp){const s=R({platform:t.platform,includeWeaveServer:t.mcp.weave}),r=Object.keys(s.mcpServers),o=await W(t.targetDir,void 0,r),e=s.mcpServers;for(const[i,n]of Object.entries(o.servers))e[i]=n;for(const i of o.renamed)p.warn(l("init.pluginMcpRenamed",{renamed:i}));if(Object.keys(e).length>0){const i=a.join(t.targetDir,".mcp.json");if(t.force)await c(i,JSON.stringify(s,null,2)+`
5
- `,"utf-8"),t.created.files.push(i);else{const n=await S(i);if(n===void 0)await w(i)?(t.skipped.push(i),p.warn(l("init.skippedInvalidJson",{path:i}))):(await c(i,JSON.stringify(s,null,2)+`
6
- `,"utf-8"),t.created.files.push(i));else{const u=x(n,s);await c(i,JSON.stringify(u,null,2)+`
7
- `,"utf-8"),t.merged.push(i)}}}else await w(a.join(t.targetDir,".mcp.json"))&&t.skipped.push(a.join(t.targetDir,".mcp.json"))}}async function Q(t){if(t.components.skills&&t.skills.core){const s=d.getSkillsSourceDir();await h(s,t.skillsDir,t.force,t.created,t.skipped)}}async function X(t){if(t.components.commands&&t.commands.core){const s=d.getCommandsSourceDir();await h(s,t.commandsDir,t.force,t.created,t.skipped)}}async function Y(t){if(t.components.agents&&t.agents.core){const s=d.getAgentsSourceDir();await h(s,t.agentsDir,t.force,t.created,t.skipped)}}async function Z(t){try{const{registered:s}=await V(t.targetDir);for(const r of s){const o=d.resolvePath(r);if(r.category==="skill"){await h(o,a.join(t.skillsDir,a.basename(o)),t.force,t.created,t.skipped);continue}const e=r.category==="command"?t.commandsDir:t.agentsDir,i=a.join(e,a.basename(o));try{const n=await f(o,"utf-8");await y(i,n,t.force)?t.created.files.push(i):t.skipped.push(i)}catch(n){p.warn(l("init.copyTemplatesFailed",{srcDir:o,error:String(n)}))}}}catch(s){p.warn(l("init.copyTemplatesFailed",{srcDir:"plugins",error:String(s)}))}}async function $(t){if(t.components.helpers){const s=await M(t.targetDir),r=[["hook-handler.cjs",U(L)],["statusline.cjs",C(s)],["auto-memory-hook.mjs",K()]];for(const[e,i]of r){const n=a.join(t.helpersDir,e);if(t.force){await c(n,i,"utf-8"),t.created.files.push(n);continue}const u=await k(n);u===null?(await c(n,i,"utf-8"),t.created.files.push(n)):u.includes(WEAVE_HELPER_MARKER)?(await c(n,i,"utf-8"),t.updated.push(n)):t.skipped.push(n)}const o=new Set(r.map(([e])=>e));try{for(const e of await D(t.helpersDir,{withFileTypes:!0})){if(!e.isFile()||o.has(e.name))continue;const i=a.join(t.helpersDir,e.name),n=await k(i);n!==null&&n.includes(WEAVE_HELPER_MARKER)&&(await A(i),t.removed.push(i))}}catch{}}}async function k(t){try{return await f(t,"utf-8")}catch(s){if(j(s))return null;throw s}}async function S(t){let s;try{s=await f(t,"utf-8")}catch(r){if(j(r))return;throw r}try{const r=JSON.parse(s);if(typeof r=="object"&&r!==null&&!Array.isArray(r))return r}catch{}}function j(t){return typeof t=="object"&&t!==null&&t.code==="ENOENT"}async function h(t,s,r,o,e){try{const i=await v(t);for(const n of i){const u=a.relative(t,n),g=a.join(s,u),E=await f(n,"utf-8");await y(g,E,r)?o.files.push(g):e.push(g)}}catch(i){p.warn(l("init.copyTemplatesFailed",{srcDir:t,error:String(i)}))}}async function v(t){const s=[];try{const r=await D(t,{withFileTypes:!0});for(const o of r){const e=a.join(t,o.name);o.isDirectory()?s.push(...await v(e)):s.push(e)}}catch{}return s}
1
+ import a from"node:path";import{readFile as f,writeFile as c,readdir as D,unlink as T}from"node:fs/promises";import{DEFAULT_AGENTS as A,DEFAULT_COMMANDS as F,DEFAULT_HOOKS as O,DEFAULT_MCP as J,DEFAULT_SKILLS as N,ensureDir as m,fileExists as w,logger as p,resolveComponents as b,writeFileIfAbsent as y}from"@weavecode/core";import{templateRegistry as d}from"@weavecode/templates";import{generateStatuslineScript as M,readStatuslineConfig as C,WEAVE_VERSION as U}from"@weavecode/server";import{InitPipeline as L,generateHookHandler as P,readUserCapture as _}from"@weavecode/harness";import{generateSettingsJson as I,mergeSettingsJson as R}from"../settings-gen.js";import{generateMcpJson as H,mergeMcpJson as x}from"../mcp-gen.js";import{generateAutoMemoryHook as K}from"../helpers-gen.js";import{registerPluginTemplates as V,collectPluginMcpServers as W}from"../plugin-templates.js";import{t as l}from"../../i18n/index.js";export const WEAVE_HELPER_MARKER="@version weave@";const q={preToolUse:!1,postToolUse:!1,userPromptSubmit:!1,sessionStart:!1,stop:!1,stopFailure:!1,subagentStop:!1,subagentStart:!1,notification:!1,postToolUseFailure:!1,permissionRequest:!1,permissionDenied:!1,preCompact:!1,sessionEnd:!1,preModelSwitch:!1,timeout:5e3,continueOnError:!0};export class ClaudeInitTemplate extends L{records={created:{directories:[],files:[]},skipped:[],merged:[],updated:[],removed:[]};st;constructor(s){super(s);const i=a.join(s.targetDir,".claude");this.st={targetDir:s.targetDir,force:s.force,platform:s.platform,components:b(s.preset,s.components),hooks:{...O,...s.hooks},skills:{...N,...s.skills},commands:{...F,...s.commands},agents:{...A,...s.agents},mcp:{...J,...s.mcp},claudeDir:i,skillsDir:a.join(i,"skills"),commandsDir:a.join(i,"commands"),agentsDir:a.join(i,"agents"),helpersDir:a.join(i,"helpers"),...this.records}}ensureDirs(){return G(this.st)}writeSettings(){return z(this.st)}writeMcp(){return B(this.st)}copySkills(){return Q(this.st)}copyCommands(){return X(this.st)}copyAgents(){return Y(this.st)}injectPluginTemplates(){return Z(this.st)}writeHelpers(){return $(this.st)}}async function G(t){await m(t.claudeDir),t.created.directories.push(t.claudeDir),t.components.skills&&(await m(t.skillsDir),t.created.directories.push(t.skillsDir)),t.components.commands&&(await m(t.commandsDir),t.created.directories.push(t.commandsDir)),t.components.agents&&(await m(t.agentsDir),t.created.directories.push(t.agentsDir)),t.components.helpers&&(await m(t.helpersDir),t.created.directories.push(t.helpersDir))}async function z(t){if(t.components.settings){const s=await _({home:t.platform.homeDir}),i=s.installed?q:t.hooks;s.installed&&p.dim(l("init.userCaptureActive"));const o=I({components:t.components,hooks:i,platform:t.platform,helpersDir:t.helpersDir}),e=a.join(t.claudeDir,"settings.json");if(t.force)await c(e,JSON.stringify(o,null,2)+`
2
+ `,"utf-8"),t.created.files.push(e);else{const r=await S(e);if(r===void 0)await w(e)?(t.skipped.push(e),p.warn(l("init.skippedInvalidJson",{path:e}))):(await c(e,JSON.stringify(o,null,2)+`
3
+ `,"utf-8"),t.created.files.push(e));else{const n=R(r,o);await c(e,JSON.stringify(n,null,2)+`
4
+ `,"utf-8"),t.merged.push(e)}}}}async function B(t){if(t.components.mcp){const s=H({platform:t.platform,includeWeaveServer:t.mcp.weave}),i=Object.keys(s.mcpServers),o=await W(t.targetDir,void 0,i),e=s.mcpServers;for(const[r,n]of Object.entries(o.servers))e[r]=n;for(const r of o.renamed)p.warn(l("init.pluginMcpRenamed",{renamed:r}));if(Object.keys(e).length>0){const r=a.join(t.targetDir,".mcp.json");if(t.force)await c(r,JSON.stringify(s,null,2)+`
5
+ `,"utf-8"),t.created.files.push(r);else{const n=await S(r);if(n===void 0)await w(r)?(t.skipped.push(r),p.warn(l("init.skippedInvalidJson",{path:r}))):(await c(r,JSON.stringify(s,null,2)+`
6
+ `,"utf-8"),t.created.files.push(r));else{const u=x(n,s);await c(r,JSON.stringify(u,null,2)+`
7
+ `,"utf-8"),t.merged.push(r)}}}else await w(a.join(t.targetDir,".mcp.json"))&&t.skipped.push(a.join(t.targetDir,".mcp.json"))}}async function Q(t){if(t.components.skills&&t.skills.core){const s=d.getSkillsSourceDir();await h(s,t.skillsDir,t.force,t.created,t.skipped)}}async function X(t){if(t.components.commands&&t.commands.core){const s=d.getCommandsSourceDir();await h(s,t.commandsDir,t.force,t.created,t.skipped)}}async function Y(t){if(t.components.agents&&t.agents.core){const s=d.getAgentsSourceDir();await h(s,t.agentsDir,t.force,t.created,t.skipped)}}async function Z(t){try{const{registered:s}=await V(t.targetDir);for(const i of s){const o=d.resolvePath(i);if(i.category==="skill"){await h(o,a.join(t.skillsDir,a.basename(o)),t.force,t.created,t.skipped);continue}const e=i.category==="command"?t.commandsDir:t.agentsDir,r=a.join(e,a.basename(o));try{const n=await f(o,"utf-8");await y(r,n,t.force)?t.created.files.push(r):t.skipped.push(r)}catch(n){p.warn(l("init.copyTemplatesFailed",{srcDir:o,error:String(n)}))}}}catch(s){p.warn(l("init.copyTemplatesFailed",{srcDir:"plugins",error:String(s)}))}}async function $(t){if(t.components.helpers){const s=await C(t.targetDir),i=[["hook-handler.cjs",P(U)],["statusline.cjs",M(s)],["auto-memory-hook.mjs",K()]];for(const[e,r]of i){const n=a.join(t.helpersDir,e);if(t.force){await c(n,r,"utf-8"),t.created.files.push(n);continue}const u=await k(n);u===null?(await c(n,r,"utf-8"),t.created.files.push(n)):u.includes(WEAVE_HELPER_MARKER)?(await c(n,r,"utf-8"),t.updated.push(n)):t.skipped.push(n)}const o=new Set(i.map(([e])=>e));try{for(const e of await D(t.helpersDir,{withFileTypes:!0})){if(!e.isFile()||o.has(e.name))continue;const r=a.join(t.helpersDir,e.name),n=await k(r);n!==null&&n.includes(WEAVE_HELPER_MARKER)&&(await T(r),t.removed.push(r))}}catch{}}}async function k(t){try{return await f(t,"utf-8")}catch(s){if(j(s))return null;throw s}}async function S(t){let s;try{s=await f(t,"utf-8")}catch(i){if(j(i))return;throw i}try{const i=JSON.parse(s);if(typeof i=="object"&&i!==null&&!Array.isArray(i))return i}catch{}}function j(t){return typeof t=="object"&&t!==null&&t.code==="ENOENT"}async function h(t,s,i,o,e){try{const r=await v(t);for(const n of r){const u=a.relative(t,n),g=a.join(s,u),E=await f(n,"utf-8");await y(g,E,i)?o.files.push(g):e.push(g)}}catch(r){p.warn(l("init.copyTemplatesFailed",{srcDir:t,error:String(r)}))}}async function v(t){const s=[];try{const i=await D(t,{withFileTypes:!0});for(const o of i){const e=a.join(t,o.name);o.isDirectory()?s.push(...await v(e)):s.push(e)}}catch{}return s}
@@ -0,0 +1,29 @@
1
+ import { InitPipeline, type InitContext } from '@weavecode/harness';
2
+ import { type SurfaceRecords } from '../types.js';
3
+ /**
4
+ * ZCode init 模板:项目侧只有 `.zcode/skills`(它的 skill 根),其余表面
5
+ * (单文件资产、MCP、commands)ZCode 都没有 → `skip(step, 无对等面)`。
6
+ *
7
+ * 采集面**不在项目里**:ZCode 的项目级 hooks 在当前发行版里要过工作区信任、
8
+ * CLI/TUI 路径下恒被拒,故 hook 入口只能写用户级 `~/.zcode/cli/config.json`
9
+ * 并指向一份全局脚本(见 `zcode/capture.ts`)。
10
+ */
11
+ export declare class ZcodeInitTemplate extends InitPipeline {
12
+ readonly records: SurfaceRecords;
13
+ private readonly force;
14
+ private readonly components;
15
+ private readonly skills;
16
+ private readonly zcodeDir;
17
+ private readonly skillsDir;
18
+ constructor(ctx: InitContext);
19
+ protected ensureDirs(): Promise<void>;
20
+ protected writeSettings(): void;
21
+ protected writeMcp(): void;
22
+ protected copySkills(): Promise<void>;
23
+ protected copyCommands(): void;
24
+ protected copyAgents(): void;
25
+ protected injectPluginTemplates(): void;
26
+ protected writeHelpers(): Promise<void>;
27
+ /** 无对等面跳过:步骤名/原因入 `skipped`/`skipReasons`,并即时 dim 提示。 */
28
+ private skipNoFace;
29
+ }
@@ -0,0 +1 @@
1
+ import o from"node:path";import{readdir as d,readFile as f}from"node:fs/promises";import{homedir as k}from"node:os";import{DEFAULT_SKILLS as u,HARNESS_DIRS as D,ensureDir as n,logger as p,resolveComponents as w,writeFileIfAbsent as y}from"@weavecode/core";import{templateRegistry as g}from"@weavecode/templates";import{InitPipeline as F,ZCODE_CAPTURE as S,zcodeConfigFile as N,zcodeHookScript as j}from"@weavecode/harness";import{WEAVE_VERSION as z}from"@weavecode/server";import{t as a}from"../../i18n/index.js";export class ZcodeInitTemplate extends F{records={created:{directories:[],files:[]},skipped:[],merged:[],updated:[],removed:[]};force;components;skills;zcodeDir;skillsDir;constructor(s){super(s);const i=w(s.preset,s.components),e=o.join(s.targetDir,D.zcode.projectDir);this.force=s.force,this.components=i,this.skills={...u,...s.skills},this.zcodeDir=e,this.skillsDir=o.join(e,"skills")}async ensureDirs(){await n(this.zcodeDir),this.records.created.directories.push(this.zcodeDir),this.components.skills&&(await n(this.skillsDir),this.records.created.directories.push(this.skillsDir))}writeSettings(){this.skipNoFace("writeSettings")}writeMcp(){this.skipNoFace("writeMcp")}async copySkills(){if(this.components.skills&&this.skills.core){const s=g.getSkillsSourceDir();await T(s,this.skillsDir,this.force,this.records)}}copyCommands(){this.skipNoFace("copyCommands")}copyAgents(){this.skipNoFace("copyAgents")}injectPluginTemplates(){this.skipNoFace("injectPluginTemplates")}async writeHelpers(){if(!this.components.helpers||!this.components.settings){this.skipNoFace("writeHelpers");return}await S.installUserCapture({version:z}),this.records.created.files.push(j(),N(k()))}skipNoFace(s){const i=a("init.noPeerFace");this.skip(s,i),p.dim(a("init.stepSkipped",{step:s,reason:i}))}}async function T(t,s,i,e){try{for(const r of await l(t)){const h=o.relative(t,r),c=o.join(s,h),m=await f(r,"utf-8");await y(c,m,i)?e.created.files.push(c):e.skipped.push(c)}}catch(r){p.warn(a("init.copyTemplatesFailed",{srcDir:t,error:String(r)}))}}async function l(t){const s=[];try{const i=await d(t,{withFileTypes:!0});for(const e of i){const r=o.join(t,e.name);e.isDirectory()?s.push(...await l(r)):s.push(r)}}catch{return s}return s}
@@ -1 +1,5 @@
1
+ /**
2
+ * 脚本生成器已迁 `@weavecode/harness`(版本号由调用方注入,生成器保持纯字符串)。
3
+ * 这里绑上 cli 自己的 `WEAVE_VERSION`,存量调用点与测试零改动。
4
+ */
1
5
  export declare function generateAutoMemoryHook(): string;
@@ -1,20 +1 @@
1
- import{WEAVE_VERSION as e}from"@weavecode/server";export function generateAutoMemoryHook(){return`#!/usr/bin/env node
2
- /**
3
- * weave auto-memory-hook
4
- * Triggered on UserPromptSubmit to record user context.
5
- * @version weave@${e}
6
- */
7
- 'use strict';
8
-
9
- const chunks = [];
10
- process.stdin.on('data', (c) => chunks.push(c));
11
- process.stdin.on('end', () => {
12
- try {
13
- const input = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
14
- process.stderr.write('[weave] auto-memory: session active\\n');
15
- } catch {
16
- // ignore
17
- }
18
- process.exit(0);
19
- });
20
- `}
1
+ import{generateAutoMemoryHook as o}from"@weavecode/harness";import{WEAVE_VERSION as e}from"@weavecode/server";export function generateAutoMemoryHook(){return o(e)}
@@ -1,22 +1,5 @@
1
- import type { PlatformInfo } from '@weavecode/core';
2
- export interface McpGeneratorInput {
3
- platform: PlatformInfo;
4
- /** Whether to include the weave MCP server entry */
5
- includeWeaveServer: boolean;
6
- }
7
- export declare function generateMcpJson(input: McpGeneratorInput): Record<string, unknown>;
8
1
  /**
9
- * Merge weave's generated servers into an existing user .mcp.json.
10
- *
11
- * Policy (weave init never overwrites user files):
12
- * - user-authored server entries and unknown top-level keys are preserved
13
- * - missing weave entries are appended
14
- * - the `weave` server entry is weave's own config key: when present it is
15
- * refreshed to the current generated value
2
+ * .mcp.json 生成器已迁 `@weavecode/harness`(claude 专属表示法,daemon 的 init
3
+ * 文件漂移检测也要用同一份);此处 re-export 保持存量 import 与测试零改动。
16
4
  */
17
- export declare function mergeMcpJson(existing: Record<string, unknown>, generated: Record<string, unknown>): Record<string, unknown>;
18
- /**
19
- * uninstall 用的剥除:删 `weave` 服务键(weave 自己的配置键);mcpServers 清空
20
- * 删键;顶层清空返回空对象,调用方据此删文件。用户自己的服务键不动。
21
- */
22
- export declare function stripWeaveMcp(existing: Record<string, unknown>): Record<string, unknown>;
5
+ export { generateMcpJson, mergeMcpJson, stripWeaveMcp, type McpGeneratorInput } from '@weavecode/harness';
@@ -1 +1 @@
1
- export function generateMcpJson(e){const r={};if(e.includeWeaveServer){const t=e.platform.os==="windows"?"cmd":"npx",c=e.platform.os==="windows"?["/c","npx","weave","mcp","start"]:["weave","mcp","start"];r.weave={command:t,args:c,env:{WEAVE_MCP:"true"}}}return{mcpServers:r}}export function mergeMcpJson(e,r){const t={...e},c=o(r.mcpServers)?r.mcpServers:{},n=o(t.mcpServers)?{...t.mcpServers}:{};for(const[s,p]of Object.entries(c))(s==="weave"||n[s]===void 0)&&(n[s]=p);return t.mcpServers=n,t}function o(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}export function stripWeaveMcp(e){const r={...e};if(o(r.mcpServers)){const t={...r.mcpServers};delete t.weave,Object.keys(t).length>0?r.mcpServers=t:delete r.mcpServers}return r}
1
+ export{generateMcpJson,mergeMcpJson,stripWeaveMcp}from"@weavecode/harness";
@@ -1,5 +1,5 @@
1
- import{logger as m}from"@weavecode/core";import{t as u}from"../i18n/index.js";export async function confirmPrompt(i,l,t){if(!t||!process.stdin.isTTY||!process.stdout.isTTY)return!0;const{createInterface:s}=await import("node:readline/promises"),n=s({input:process.stdin,output:process.stdout});try{const r=await n.question(`
2
- ${i}
1
+ import{logger as m}from"@weavecode/core";import{t as u}from"../i18n/index.js";export async function confirmPrompt(e,l,t){if(!t||!process.stdin.isTTY||!process.stdout.isTTY)return!0;const{createInterface:s}=await import("node:readline/promises"),n=s({input:process.stdin,output:process.stdout});try{const r=await n.question(`
2
+ ${e}
3
3
  ${l}
4
- ${u("init.proceed")} `);return!/^n(o)?$/i.test(r.trim())}finally{n.close()}}export function createPromptPort(i){const l=()=>i&&!!process.stdin.isTTY&&!!process.stdout.isTTY;return{confirm:(t,s="")=>confirmPrompt(t,s,i),async multiselect(t,s){if(!l())return[...s];if(t.length===0)return[];const{createInterface:n}=await import("node:readline/promises"),r=n({input:process.stdin,output:process.stdout});try{console.log(`
5
- ${u("init.multiselect.title")}`),t.forEach((e,o)=>console.log(` ${o+1}) ${e}`));const p=(await r.question(` ${u("init.multiselect.hint",{defaults:s.join(",")})} `)).trim();if(!p)return[...s];const c=[],a=[];for(const e of p.split(/[,\s]+/).filter(Boolean)){const o=(/^\d+$/.test(e)?t[Number(e)-1]:void 0)??t.find(f=>f.toLowerCase()===e.toLowerCase());o===void 0?a.push(e):c.includes(o)||c.push(o)}return a.length>0&&m.warn(u("init.multiselect.invalid",{keys:a.join(", ")})),c.length>0?c:[...s]}finally{r.close()}}}}
4
+ ${u("init.proceed")} `);return!/^n(o)?$/i.test(r.trim())}finally{n.close()}}export function createPromptPort(e){const l=()=>e&&!!process.stdin.isTTY&&!!process.stdout.isTTY;return{confirm:(t,s="")=>confirmPrompt(t,s,e),async multiselect(t,s){if(!l())return[...s];if(t.length===0)return[];const{createInterface:n}=await import("node:readline/promises"),r=n({input:process.stdin,output:process.stdout});try{console.log(`
5
+ ${u("init.multiselect.title")}`),t.forEach((o,i)=>console.log(` ${i+1}) ${o}`));const p=(await r.question(` ${u("init.multiselect.hint",{defaults:s.join(",")})} `)).trim();if(!p)return[...s];const c=[],a=[];for(const o of p.split(/[,\s]+/).filter(Boolean)){const i=(/^\d+$/.test(o)?t[Number(o)-1]:void 0)??t.find(f=>f.toLowerCase()===o.toLowerCase());i===void 0?a.push(o):c.includes(i)||c.push(i)}return a.length>0&&m.warn(u("init.multiselect.invalid",{keys:a.join(", ")})),c.length>0?c:[...s]}finally{r.close()}}}}
@@ -1,32 +1,5 @@
1
- import type { InitComponents, HooksConfig, PlatformInfo } from '@weavecode/core';
2
- export interface SettingsGeneratorInput {
3
- components: InitComponents;
4
- hooks: HooksConfig;
5
- platform: PlatformInfo;
6
- /** Absolute path to the helpers directory in the target project */
7
- helpersDir: string;
8
- }
9
- export declare function generateSettingsJson(input: SettingsGeneratorInput): Record<string, unknown>;
10
1
  /**
11
- * Merge weave's generated settings into an existing user settings.json.
12
- *
13
- * Policy (weave init never overwrites user files):
14
- * - every existing key is preserved as-is (including unknown keys)
15
- * - weave entries are appended where missing
16
- * - weave's own hooks entries are REPLACED wholesale by this generation: first
17
- * every group carrying the weave marker is dropped from all events (events
18
- * no longer generated no longer linger), then the generated groups are
19
- * appended. User-authored hook groups are never touched.
20
- * - statusLine pointing at `statusline.cjs` is refreshed in place
21
- * - user-authored statusLine, permissions, and env values are never touched
22
- *
23
- * Idempotent: merging the same `generated` twice yields the same result.
2
+ * settings.json 生成器已迁 `@weavecode/harness`(claude 专属表示法,daemon 的
3
+ * init 文件漂移检测也要用同一份);此处 re-export 保持存量 import 与测试零改动。
24
4
  */
25
- export declare function mergeSettingsJson(existing: Record<string, unknown>, generated: Record<string, unknown>): Record<string, unknown>;
26
- /**
27
- * uninstall 用的剥除:把 merge 的加法原样减回去。weave 的 hook 组、weave 的
28
- * statusLine、weave 写入的默认 permissions/env 条目与 $comment 一并移除;
29
- * 用户自己的键(含 weave 之外的一切)永远不动。返回剩余 settings——键全空
30
- * 时为空对象,调用方据此删文件。
31
- */
32
- export declare function stripWeaveSettings(existing: Record<string, unknown>): Record<string, unknown>;
5
+ export { generateSettingsJson, mergeSettingsJson, stripWeaveSettings, type SettingsGeneratorInput, } from '@weavecode/harness';
@@ -1 +1 @@
1
- import{captureHookGroup as u,sweepWeaveHookEvents as f}from"@weavecode/harness";const S=".claude/helpers/statusline.cjs",d="Generated by weave \u2014 do not edit manually",y=["Bash(npx weave:*)","Bash(pnpm:*)","Bash(npm:*)"],h=["Read(./.env)","Read(./.env.*)","Read(./secrets/*)"];export function generateSettingsJson(o){const{components:t,hooks:e,platform:p,helpersDir:s}=o,a={$comment:d};if(t.helpers){const n={};e.preToolUse&&(n.PreToolUse=u("PreToolUse",s)),e.postToolUse&&(n.PostToolUse=u("PostToolUse",s)),e.userPromptSubmit&&(n.UserPromptSubmit=u("UserPromptSubmit",s)),e.sessionStart&&(n.SessionStart=u("SessionStart",s)),e.stop&&(n.Stop=u("Stop",s)),e.subagentStop&&(n.SubagentStop=u("SubagentStop",s)),e.notification&&(n.Notification=u("Notification",s)),e.preCompact&&(n.PreCompact=u("PreCompact",s)),a.hooks=n}return a.permissions={allow:[...y],deny:[...h]},a.env={WEAVE_ENABLED:"true"},t.helpers&&(a.statusLine={type:"command",command:p.os==="windows"?`node "${s}/statusline.cjs"`:"node "+s+"/statusline.cjs",padding:0,refreshInterval:30}),a}export function mergeSettingsJson(o,t){const e={...o},p=t.hooks;if(p&&typeof p=="object"){const r=f(l(e.hooks)?{...e.hooks}:{})??{};for(const[i,c]of Object.entries(p)){const m=r[i];m===void 0?r[i]=c:Array.isArray(m)&&(r[i]=[...m,...Array.isArray(c)?c:[]])}e.hooks=r}const s=e.statusLine;t.statusLine&&(s===void 0||v(s))&&(e.statusLine=t.statusLine);const a=t.permissions;if(a&&typeof a=="object"){const r=l(e.permissions)?e.permissions:{};for(const i of["allow","deny"]){const c=a[i],m=r[i];Array.isArray(c)?r[i]=b(m,c):m===void 0&&(r[i]=c)}e.permissions=r}const n=t.env;if(n&&typeof n=="object"){const r=l(e.env)?e.env:{};for(const[i,c]of Object.entries(n))r[i]===void 0&&(r[i]=c);e.env=r}return e}function l(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function v(o){if(!l(o))return!1;const t=o.command;return typeof t=="string"&&A(t,S)}function A(o,t){return o.replace(/\\/g,"/").includes(t)}function b(o,t){return Array.isArray(o)?[...o,...t.filter(e=>!o.includes(e))]:[...t]}export function stripWeaveSettings(o){const t={...o};if(l(t.hooks)){const e=f(t.hooks);e?t.hooks=e:delete t.hooks}if(v(t.statusLine)&&delete t.statusLine,l(t.permissions)){const e={...t.permissions},p=(s,a)=>{const n=e[s];if(!Array.isArray(n))return;const r=n.filter(i=>!a.includes(i));r.length>0?e[s]=r:delete e[s]};p("allow",y),p("deny",h),Object.keys(e).length>0?t.permissions=e:delete t.permissions}if(l(t.env)){const e={...t.env};delete e.WEAVE_ENABLED,Object.keys(e).length>0?t.env=e:delete t.env}return t.$comment===d&&delete t.$comment,t}
1
+ export{generateSettingsJson,mergeSettingsJson,stripWeaveSettings}from"@weavecode/harness";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weavecode/cli",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "CLI entry point for weave — parser, commands, and init executor",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -22,9 +22,9 @@
22
22
  "node": ">=22.5.0"
23
23
  },
24
24
  "dependencies": {
25
- "@weavecode/core": "^0.1.0",
26
- "@weavecode/harness": "^0.1.0",
27
- "@weavecode/server": "^0.1.0",
28
- "@weavecode/templates": "^0.1.0"
25
+ "@weavecode/core": "^0.1.2",
26
+ "@weavecode/harness": "^0.1.2",
27
+ "@weavecode/server": "^0.1.2",
28
+ "@weavecode/templates": "^0.1.2"
29
29
  }
30
30
  }
@@ -24,7 +24,7 @@ export declare function isHarness(value: unknown): value is Harness;
24
24
  * 并集会造出非法规则、交集会砍掉独有事件)。规范名为 PascalCase。
25
25
  */
26
26
  export declare const HARNESS_EVENTS: {
27
- claude: readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "SessionStart", "Stop", "SubagentStop", "Notification", "PreCompact"];
27
+ claude: readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "SessionStart", "Stop", "StopFailure", "SubagentStop", "Notification", "PostToolUseFailure", "PermissionRequest", "PermissionDenied", "SubagentStart", "PreCompact", "SessionEnd", "PreModelSwitch", "PostModelSwitch"];
28
28
  /** Codex 事件待批 2 B0 调研锁定(BACKLOG §10-6);一期不注册(B0 闸门)。 */
29
29
  codex: readonly [];
30
30
  };
@@ -82,8 +82,10 @@ export type InstructionFile = (typeof HARNESS_INSTRUCTION_FILES)[Harness][number
82
82
  export interface HarnessLifecycle {
83
83
  /** 开启一个 turn 组的事件(组头)。 */
84
84
  open: string;
85
- /** 正常关闭组的事件。 */
85
+ /** 关闭组的事件(一轮对话结束,含失败收尾)。 */
86
86
  close: readonly string[];
87
+ /** `close` 里**非正常**收尾的那部分(组头照「未正常结束」标,不冒充正常闭环)。 */
88
+ closeFailed: readonly string[];
87
89
  /** 只作标记的会话级事件(open 组遇之按中断关组,其余不切组)。 */
88
90
  sessionMarkers: readonly string[];
89
91
  /** 组内计数、不独立成组。 */
@@ -93,6 +95,12 @@ export interface HarnessLifecycle {
93
95
  * 此表——谁是问答工具只说一处)。空数组 = 该 harness 无阻塞问答。
94
96
  */
95
97
  questionTools: readonly string[];
98
+ /**
99
+ * 会话退出事件(旁路事实——inbox 凭据 / pane 定位——随进程作废的信号);
100
+ * null = 该 harness 没有这个概念。与 `close` 不同义:`close` 是一轮对话结束,
101
+ * 这个是一整个会话结束。**只覆盖正常退出**(kill / 关窗口不发)。
102
+ */
103
+ sessionExit: string | null;
96
104
  }
97
105
  /**
98
106
  * 任务分组生命周期表(D7)——server/web 分组一律经表参数,
@@ -102,17 +110,21 @@ export declare const HARNESS_LIFECYCLE: {
102
110
  claude: {
103
111
  open: string;
104
112
  close: string[];
113
+ closeFailed: string[];
105
114
  sessionMarkers: string[];
106
115
  subagentStop: string;
107
116
  questionTools: string[];
117
+ sessionExit: string;
108
118
  };
109
119
  /** Codex 事件待批 2 B0 调研锁定(同 HARNESS_EVENTS 闸);空值占位,类型完整。 */
110
120
  codex: {
111
121
  open: string;
112
122
  close: never[];
123
+ closeFailed: never[];
113
124
  sessionMarkers: never[];
114
125
  subagentStop: string;
115
126
  questionTools: never[];
127
+ sessionExit: null;
116
128
  };
117
129
  };
118
130
  /** 压缩信号表的条目形状(谁在压缩、哪些事件是压缩)——压缩差异是 harness 知识。 */
@@ -145,6 +157,37 @@ export declare const HARNESS_COMPACTION: {
145
157
  endSource: null;
146
158
  };
147
159
  };
160
+ /** 会话控制面的条目形状(执行模式切换 / 模型切换)——差异是 harness 知识。 */
161
+ export interface HarnessSessionControl {
162
+ /**
163
+ * 执行模式取值词表(宿主自己的名字,展示原样)。空 = 该 harness 无执行模式
164
+ * 概念、没有切换这回事。**切换是一记键,不按这张表轮转**——宿主自己算下一个
165
+ * 模式(实测还会被计划提案、auto 闸插手),故表只供识别与展示。
166
+ */
167
+ modeNames: readonly string[];
168
+ /**
169
+ * 模型名候选(宿主**别名**,如 claude 的 default/opus/sonnet/haiku/fable)。
170
+ * 只收稳定别名——网关会增删的具体模型 ID 不进表,由用户按 `/model <名字>` 自填
171
+ * (名字形态由服务端验)。空 = 无模型切换概念。
172
+ */
173
+ modelNames: readonly string[];
174
+ }
175
+ /**
176
+ * 会话控制面表——「怎么切执行模式 / 模型」按 harness 声明(web 经
177
+ * tasks/lifecycle.ts 常量镜像);键序与命令形态不在本表(那是服务端投递键序的
178
+ * 事,见 message-deliverer,同 ESC 先例)。全空 = 该 harness 无此概念。
179
+ */
180
+ export declare const HARNESS_SESSION_CONTROL: {
181
+ claude: {
182
+ modeNames: string[];
183
+ modelNames: string[];
184
+ };
185
+ /** Codex 待调研;空值占位,类型完整。 */
186
+ codex: {
187
+ modeNames: never[];
188
+ modelNames: never[];
189
+ };
190
+ };
148
191
  /**
149
192
  * 可选 harness 键序(= 名单表):`--harness` flag 值域与 init 交互多选的
150
193
  * 选项表共用(批 5)。经名单表派生而非 `Object.keys(HARNESS_EVENTS)`——
@@ -1 +1 @@
1
- export const HARNESS_NAMES=["claude","codex"];export function isHarness(e){return typeof e=="string"&&HARNESS_NAMES.includes(e)}export const HARNESS_EVENTS={claude:["PreToolUse","PostToolUse","UserPromptSubmit","SessionStart","Stop","SubagentStop","Notification","PreCompact"],codex:[]},INJECTABLE_EVENTS={claude:["PostToolUse","UserPromptSubmit","SessionStart","Stop","SubagentStop"],codex:[]},TITLE_EFFECTIVE_EVENTS={claude:["SessionStart","UserPromptSubmit"],codex:[]},HARNESS_EVENT_UNION=[...new Set(Object.values(HARNESS_EVENTS).flat())],HARNESS_DIRS={claude:{projectDir:".claude",userDir:".claude"},codex:{projectDir:".codex",userDir:".codex"}},HARNESS_INSTRUCTION_FILES={claude:["CLAUDE.md"],codex:["AGENTS.md"]},HARNESS_LIFECYCLE={claude:{open:"UserPromptSubmit",close:["Stop"],sessionMarkers:["SessionStart","SessionEnd"],subagentStop:"SubagentStop",questionTools:["AskUserQuestion","ExitPlanMode"]},codex:{open:"",close:[],sessionMarkers:[],subagentStop:"",questionTools:[]}},HARNESS_COMPACTION={claude:{start:"PreCompact",end:"SessionStart",endSource:"compact"},codex:{start:null,end:null,endSource:null}},HARNESS_KEYS=HARNESS_NAMES,INSTRUCTION_FILES=[...new Set(HARNESS_KEYS.flatMap(e=>[...HARNESS_INSTRUCTION_FILES[e]]))];
1
+ export const HARNESS_NAMES=["claude","codex"];export function isHarness(e){return typeof e=="string"&&HARNESS_NAMES.includes(e)}export const HARNESS_EVENTS={claude:["PreToolUse","PostToolUse","UserPromptSubmit","SessionStart","Stop","StopFailure","SubagentStop","Notification","PostToolUseFailure","PermissionRequest","PermissionDenied","SubagentStart","PreCompact","SessionEnd","PreModelSwitch","PostModelSwitch"],codex:[]},INJECTABLE_EVENTS={claude:["PostToolUse","UserPromptSubmit","SessionStart","Stop","SubagentStop"],codex:[]},TITLE_EFFECTIVE_EVENTS={claude:["SessionStart","UserPromptSubmit"],codex:[]},HARNESS_EVENT_UNION=[...new Set(Object.values(HARNESS_EVENTS).flat())],HARNESS_DIRS={claude:{projectDir:".claude",userDir:".claude"},codex:{projectDir:".codex",userDir:".codex"}},HARNESS_INSTRUCTION_FILES={claude:["CLAUDE.md"],codex:["AGENTS.md"]},HARNESS_LIFECYCLE={claude:{open:"UserPromptSubmit",close:["Stop","StopFailure"],closeFailed:["StopFailure"],sessionMarkers:["SessionStart","SessionEnd"],subagentStop:"SubagentStop",questionTools:["AskUserQuestion","ExitPlanMode"],sessionExit:"SessionEnd"},codex:{open:"",close:[],closeFailed:[],sessionMarkers:[],subagentStop:"",questionTools:[],sessionExit:null}},HARNESS_COMPACTION={claude:{start:"PreCompact",end:"SessionStart",endSource:"compact"},codex:{start:null,end:null,endSource:null}},HARNESS_SESSION_CONTROL={claude:{modeNames:["default","acceptEdits","plan","auto","dontAsk","bypassPermissions"],modelNames:["default","opus","sonnet","haiku","fable"]},codex:{modeNames:[],modelNames:[]}},HARNESS_KEYS=HARNESS_NAMES,INSTRUCTION_FILES=[...new Set(HARNESS_KEYS.flatMap(e=>[...HARNESS_INSTRUCTION_FILES[e]]))];
@@ -1,10 +1,10 @@
1
1
  export { type InitOptions, type InitResult, type InitComponents, type Preset } from './types.js';
2
2
  export { type HooksConfig, type SkillsConfig, type CommandsConfig, type AgentsConfig, type MCPConfig } from './types.js';
3
3
  export type { HookRule, HookRuleSource, HookRuleFilter, HookRuleOrigin, HandlerConfig, HookDispatchStatus, HookDispatchMode, PluginRuleEntry, WeavePluginManifest, } from './types.js';
4
- export { HookRuleSchema, HookRuleSourceSchema, HookRuleFilterSchema, HookRuleOriginSchema, HandlerConfigSchema, HookDispatchStatusSchema, HookDispatchModeSchema, PluginRuleEntrySchema, WeavePluginManifestSchema, WEAVE_PLUGIN_MANIFEST, WEAVE_INJECTION_MARKER, CLAUDE_HOOK_EVENTS, INJECTABLE_HOOK_EVENTS, } from './types.js';
4
+ export { HookRuleSchema, HookRuleSourceSchema, HookRuleFilterSchema, HookRuleOriginSchema, HandlerConfigSchema, HookDispatchStatusSchema, HookDispatchModeSchema, PluginRuleEntrySchema, WeavePluginManifestSchema, WEAVE_PLUGIN_MANIFEST, CLAUDE_HOOK_EVENTS, INJECTABLE_HOOK_EVENTS, } from './types.js';
5
5
  export { InitOptionsSchema, PresetSchema, resolveComponents } from './types.js';
6
6
  export { normalizeHookRuleSource, hookSourceHarness } from './types.js';
7
- export { type Harness, type InstructionFile, HARNESS_EVENTS, HARNESS_KEYS, HARNESS_NAMES, HARNESS_EVENT_UNION, HARNESS_INSTRUCTION_FILES, INSTRUCTION_FILES, INJECTABLE_EVENTS, TITLE_EFFECTIVE_EVENTS, HARNESS_DIRS, HARNESS_LIFECYCLE, HARNESS_COMPACTION, type HarnessCompaction, isHarness, } from './harness.js';
7
+ export { type Harness, type InstructionFile, HARNESS_EVENTS, HARNESS_KEYS, HARNESS_NAMES, HARNESS_EVENT_UNION, HARNESS_INSTRUCTION_FILES, INSTRUCTION_FILES, INJECTABLE_EVENTS, TITLE_EFFECTIVE_EVENTS, HARNESS_DIRS, HARNESS_LIFECYCLE, HARNESS_COMPACTION, HARNESS_SESSION_CONTROL, type HarnessCompaction, isHarness, } from './harness.js';
8
8
  export { TERMINAL_LOCATOR_ENV, TERMINAL_LOCATOR_ENV_KEYS } from './terminal.js';
9
9
  export { type ToolScope, type ToolCategory, type EnableOverride, type InstallState, type ToolStateRow, } from './tool.js';
10
10
  export { DEFAULT_COMPONENTS, FULL_COMPONENTS, MINIMAL_COMPONENTS } from './types.js';
@@ -1 +1 @@
1
- export{HookRuleSchema,HookRuleSourceSchema,HookRuleFilterSchema,HookRuleOriginSchema,HandlerConfigSchema,HookDispatchStatusSchema,HookDispatchModeSchema,PluginRuleEntrySchema,WeavePluginManifestSchema,WEAVE_PLUGIN_MANIFEST,WEAVE_INJECTION_MARKER,CLAUDE_HOOK_EVENTS,INJECTABLE_HOOK_EVENTS}from"./types.js";export{InitOptionsSchema,PresetSchema,resolveComponents}from"./types.js";export{normalizeHookRuleSource,hookSourceHarness}from"./types.js";export{HARNESS_EVENTS,HARNESS_KEYS,HARNESS_NAMES,HARNESS_EVENT_UNION,HARNESS_INSTRUCTION_FILES,INSTRUCTION_FILES,INJECTABLE_EVENTS,TITLE_EFFECTIVE_EVENTS,HARNESS_DIRS,HARNESS_LIFECYCLE,HARNESS_COMPACTION,isHarness}from"./harness.js";export{TERMINAL_LOCATOR_ENV,TERMINAL_LOCATOR_ENV_KEYS}from"./terminal.js";export{DEFAULT_COMPONENTS,FULL_COMPONENTS,MINIMAL_COMPONENTS}from"./types.js";export{DEFAULT_HOOKS,DEFAULT_SKILLS,DEFAULT_COMMANDS,DEFAULT_AGENTS,DEFAULT_MCP}from"./types.js";export{detectPlatform}from"./platform.js";export{checkHarness}from"./harness-checks.js";export{ensureDir,writeFileIfAbsent,fileExists}from"./utils/fs.js";export{logger,formatTable}from"./utils/logger.js";
1
+ export{HookRuleSchema,HookRuleSourceSchema,HookRuleFilterSchema,HookRuleOriginSchema,HandlerConfigSchema,HookDispatchStatusSchema,HookDispatchModeSchema,PluginRuleEntrySchema,WeavePluginManifestSchema,WEAVE_PLUGIN_MANIFEST,CLAUDE_HOOK_EVENTS,INJECTABLE_HOOK_EVENTS}from"./types.js";export{InitOptionsSchema,PresetSchema,resolveComponents}from"./types.js";export{normalizeHookRuleSource,hookSourceHarness}from"./types.js";export{HARNESS_EVENTS,HARNESS_KEYS,HARNESS_NAMES,HARNESS_EVENT_UNION,HARNESS_INSTRUCTION_FILES,INSTRUCTION_FILES,INJECTABLE_EVENTS,TITLE_EFFECTIVE_EVENTS,HARNESS_DIRS,HARNESS_LIFECYCLE,HARNESS_COMPACTION,HARNESS_SESSION_CONTROL,isHarness}from"./harness.js";export{TERMINAL_LOCATOR_ENV,TERMINAL_LOCATOR_ENV_KEYS}from"./terminal.js";export{DEFAULT_COMPONENTS,FULL_COMPONENTS,MINIMAL_COMPONENTS}from"./types.js";export{DEFAULT_HOOKS,DEFAULT_SKILLS,DEFAULT_COMMANDS,DEFAULT_AGENTS,DEFAULT_MCP}from"./types.js";export{detectPlatform}from"./platform.js";export{checkHarness}from"./harness-checks.js";export{ensureDir,writeFileIfAbsent,fileExists}from"./utils/fs.js";export{logger,formatTable}from"./utils/logger.js";
@@ -7,14 +7,38 @@
7
7
  *
8
8
  * 新增终端:① 本表加一条;② 该终端后端覆写 `TerminalBackend.locatePane`(env →
9
9
  * 本后端 pane id,**必须含存在性校验**,失效即 null 而不是猜);③ 它还得是
10
- * `textAddressable`——定位只为「往这个 pane 打文本 / 打键序」服务。没有文本通道
11
- * 的 preset 不列:hook 脚本会白捕获一堆永远用不上的 env。
10
+ * `textAddressable` 且覆写 `ownsPaneId`(认领本后端发出的 pane id——击键/文本按
11
+ * id 归后端,故会话的终端操作不随设置里的 preset 变)——定位只为「往这个 pane 打
12
+ * 文本 / 打键序」服务。没有文本通道的 preset 不列:hook 脚本会白捕获一堆永远用
13
+ * 不上的 env。
12
14
  *
13
15
  * 语义限定:只收「同一台机器上能唯一定位一个 pane」的变量。没有这种变量的终端
14
- * (如 Windows Terminal 只有窗口级 session id)不列——层② 回落标题+cwd 启发式,
15
- * 而不是拿一个不唯一的键硬猜。
16
+ * 不列——层② 回落标题+cwd 启发式,而不是拿一个不唯一的键硬猜。
16
17
  */
17
18
  export declare const TERMINAL_LOCATOR_ENV: {
19
+ /**
20
+ * wt(Windows Terminal):WT 注入的 profile 标记(认世界)+ 会话进程号。
21
+ * WT 没有 per-pane 文本通道,它的击键是**附着到该进程的 console 写输入记录**
22
+ * (见 weave-server 的 WtBackend),目标因此是 pid 不是 pane 号;pid 由 claude
23
+ * 自己导出给 hooks/Bash(`CLAUDE_PID`),存在性校验 = 该 pid 还活着。
24
+ *
25
+ * **排在 wezterm 前面**(`locatorPresetOf` 取首个齐全的组):终端套终端时外层
26
+ * 留下的键会一路传下来(在 wezterm 的 shell 里起 wt,WT 里的会话同时带着外层
27
+ * 的 `WEZTERM_*`),两组的键都齐、env 本身分不出谁在里层。而 pid 认的是**会话
28
+ * 进程自己**,套几层都对——故 pid 通道优先,wezterm 的 env 只在没有 pid 时说话。
29
+ */
30
+ readonly wt: readonly ["WT_PROFILE_ID", "CLAUDE_PID"];
31
+ /**
32
+ * Konsole(KDE):每个会话一条 D-Bus 路径,env 直接给全(服务名 + 会话路径),
33
+ * 击键/文本走 `sendText` / `sendKey`——同样与前台焦点无关。也排 wezterm 前面
34
+ * (从 wezterm 里起 konsole 会带着外层的 `WEZTERM_*`,理由同 wt)。
35
+ */
36
+ readonly konsole: readonly ["KONSOLE_DBUS_SERVICE", "KONSOLE_DBUS_SESSION"];
37
+ /**
38
+ * iTerm2:`w<窗口>t<tab>p<pane>:<UUID>`,一条就唯一定位一个会话。只有文本通道
39
+ * (AppleScript `write text`),没有裸键序——中断/作答在这条路上诚实不支持。
40
+ */
41
+ readonly iterm: readonly ["ITERM_SESSION_ID"];
18
42
  /** wezterm:pane 号 + 该实例的 mux socket(两者一起才唯一)。 */
19
43
  readonly wezterm: readonly ["WEZTERM_PANE", "WEZTERM_UNIX_SOCKET"];
20
44
  };
@@ -1 +1 @@
1
- export const TERMINAL_LOCATOR_ENV={wezterm:["WEZTERM_PANE","WEZTERM_UNIX_SOCKET"]},TERMINAL_LOCATOR_ENV_KEYS=[...new Set(Object.values(TERMINAL_LOCATOR_ENV).flat())];
1
+ export const TERMINAL_LOCATOR_ENV={wt:["WT_PROFILE_ID","CLAUDE_PID"],konsole:["KONSOLE_DBUS_SERVICE","KONSOLE_DBUS_SESSION"],iterm:["ITERM_SESSION_ID"],wezterm:["WEZTERM_PANE","WEZTERM_UNIX_SOCKET"]},TERMINAL_LOCATOR_ENV_KEYS=[...new Set(Object.values(TERMINAL_LOCATOR_ENV).flat())];