@weavecode/weave 0.1.0 → 0.1.1

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 (273) hide show
  1. package/node_modules/@weavecode/cli/dist/cli.js +4 -4
  2. package/node_modules/@weavecode/cli/dist/commands/chpass.js +1 -1
  3. package/node_modules/@weavecode/cli/dist/commands/daemon-auth.js +1 -1
  4. package/node_modules/@weavecode/cli/dist/commands/daemon.js +2 -2
  5. package/node_modules/@weavecode/cli/dist/commands/dashboard.d.ts +0 -2
  6. package/node_modules/@weavecode/cli/dist/commands/dashboard.js +2 -1
  7. package/node_modules/@weavecode/cli/dist/commands/doctor.js +1 -1
  8. package/node_modules/@weavecode/cli/dist/commands/init.js +1 -1
  9. package/node_modules/@weavecode/cli/dist/commands/msg.js +2 -2
  10. package/node_modules/@weavecode/cli/dist/commands/scan.js +1 -1
  11. package/node_modules/@weavecode/cli/dist/commands/status.js +2 -2
  12. package/node_modules/@weavecode/cli/dist/commands/uninstall.js +1 -1
  13. package/node_modules/@weavecode/cli/dist/i18n/dict/en.js +5 -3
  14. package/node_modules/@weavecode/cli/dist/i18n/dict/zh.d.ts +44 -1
  15. package/node_modules/@weavecode/cli/dist/i18n/dict/zh.js +6 -4
  16. package/node_modules/@weavecode/cli/dist/i18n/index.js +1 -1
  17. package/node_modules/@weavecode/cli/dist/i18n/t.js +1 -1
  18. package/node_modules/@weavecode/cli/dist/init/claudemd-gen.js +4 -4
  19. package/node_modules/@weavecode/cli/dist/init/executor.js +3 -3
  20. package/node_modules/@weavecode/cli/dist/init/git-commit.js +2 -2
  21. package/node_modules/@weavecode/cli/dist/init/harnesses/claude.js +7 -7
  22. package/node_modules/@weavecode/cli/dist/init/harnesses/codex.js +1 -1
  23. package/node_modules/@weavecode/cli/dist/init/helpers-gen.d.ts +4 -0
  24. package/node_modules/@weavecode/cli/dist/init/helpers-gen.js +1 -20
  25. package/node_modules/@weavecode/cli/dist/init/instruction-link.js +1 -1
  26. package/node_modules/@weavecode/cli/dist/init/mcp-gen.d.ts +3 -20
  27. package/node_modules/@weavecode/cli/dist/init/mcp-gen.js +1 -1
  28. package/node_modules/@weavecode/cli/dist/init/plugin-templates.js +1 -1
  29. package/node_modules/@weavecode/cli/dist/init/prompt.js +4 -4
  30. package/node_modules/@weavecode/cli/dist/init/settings-gen.d.ts +3 -30
  31. package/node_modules/@weavecode/cli/dist/init/settings-gen.js +1 -1
  32. package/node_modules/@weavecode/cli/dist/init/uninstall.js +6 -6
  33. package/node_modules/@weavecode/cli/dist/init/wiring.js +1 -1
  34. package/node_modules/@weavecode/cli/dist/parser.js +1 -1
  35. package/node_modules/@weavecode/cli/dist/statusline/ansi.js +1 -1
  36. package/node_modules/@weavecode/cli/dist/statusline/mock-input.js +1 -1
  37. package/node_modules/@weavecode/cli/dist/statusline/preview.js +2 -2
  38. package/node_modules/@weavecode/cli/package.json +5 -5
  39. package/node_modules/@weavecode/core/dist/harness-checks.js +1 -1
  40. package/node_modules/@weavecode/core/dist/harness.d.ts +45 -2
  41. package/node_modules/@weavecode/core/dist/harness.js +1 -1
  42. package/node_modules/@weavecode/core/dist/index.d.ts +1 -1
  43. package/node_modules/@weavecode/core/dist/index.js +1 -1
  44. package/node_modules/@weavecode/core/dist/platform.js +1 -1
  45. package/node_modules/@weavecode/core/dist/terminal.d.ts +28 -4
  46. package/node_modules/@weavecode/core/dist/terminal.js +1 -1
  47. package/node_modules/@weavecode/core/dist/types.d.ts +188 -11
  48. package/node_modules/@weavecode/core/dist/types.js +1 -1
  49. package/node_modules/@weavecode/core/dist/utils/fs.js +1 -1
  50. package/node_modules/@weavecode/core/dist/utils/logger.js +1 -1
  51. package/node_modules/@weavecode/core/package.json +1 -1
  52. package/node_modules/@weavecode/harness/dist/claude/assets.js +1 -1
  53. package/node_modules/@weavecode/harness/dist/claude/capture.d.ts +11 -1
  54. package/node_modules/@weavecode/harness/dist/claude/capture.js +5 -5
  55. package/node_modules/@weavecode/harness/dist/claude/detect.js +1 -1
  56. package/node_modules/@weavecode/harness/dist/claude/event-source.d.ts +1 -1
  57. package/node_modules/@weavecode/harness/dist/claude/event-source.js +1 -1
  58. package/node_modules/@weavecode/harness/dist/claude/helpers-gen.d.ts +5 -0
  59. package/node_modules/@weavecode/harness/dist/claude/helpers-gen.js +20 -0
  60. package/node_modules/@weavecode/harness/dist/claude/index.d.ts +5 -1
  61. package/node_modules/@weavecode/harness/dist/claude/index.js +1 -1
  62. package/node_modules/@weavecode/harness/dist/claude/mcp-gen.d.ts +22 -0
  63. package/node_modules/@weavecode/harness/dist/claude/mcp-gen.js +1 -0
  64. package/node_modules/@weavecode/harness/dist/claude/messaging.d.ts +11 -2
  65. package/node_modules/@weavecode/harness/dist/claude/messaging.js +4 -1
  66. package/node_modules/@weavecode/harness/dist/claude/model-aliases.d.ts +25 -0
  67. package/node_modules/@weavecode/harness/dist/claude/model-aliases.js +1 -0
  68. package/node_modules/@weavecode/harness/dist/claude/peers.js +1 -1
  69. package/node_modules/@weavecode/harness/dist/claude/plugins.js +4 -4
  70. package/node_modules/@weavecode/harness/dist/claude/prompt-inbox.js +1 -1
  71. package/node_modules/@weavecode/harness/dist/claude/prompt.js +3 -3
  72. package/node_modules/@weavecode/harness/dist/claude/questions.js +2 -1
  73. package/node_modules/@weavecode/harness/dist/claude/settings-gen.d.ts +32 -0
  74. package/node_modules/@weavecode/harness/dist/claude/settings-gen.js +1 -0
  75. package/node_modules/@weavecode/harness/dist/claude/transcript.d.ts +16 -0
  76. package/node_modules/@weavecode/harness/dist/claude/transcript.js +4 -2
  77. package/node_modules/@weavecode/harness/dist/codex/assets.js +1 -1
  78. package/node_modules/@weavecode/harness/dist/codex/detect.js +1 -1
  79. package/node_modules/@weavecode/harness/dist/codex/messaging.js +1 -1
  80. package/node_modules/@weavecode/harness/dist/codex/plugin-state.js +1 -1
  81. package/node_modules/@weavecode/harness/dist/codex/toml.js +9 -9
  82. package/node_modules/@weavecode/harness/dist/driver.d.ts +58 -1
  83. package/node_modules/@weavecode/harness/dist/driver.js +1 -1
  84. package/node_modules/@weavecode/harness/dist/index.d.ts +1 -0
  85. package/node_modules/@weavecode/harness/dist/index.js +1 -1
  86. package/node_modules/@weavecode/harness/dist/init/generated.d.ts +37 -0
  87. package/node_modules/@weavecode/harness/dist/init/generated.js +2 -0
  88. package/node_modules/@weavecode/harness/dist/init/pipeline.js +1 -1
  89. package/node_modules/@weavecode/harness/dist/registry-wiring.d.ts +3 -1
  90. package/node_modules/@weavecode/harness/dist/registry-wiring.js +1 -1
  91. package/node_modules/@weavecode/harness/dist/shared/install-link.js +1 -1
  92. package/node_modules/@weavecode/harness/package.json +2 -2
  93. package/node_modules/@weavecode/server/dist/daemon/ai-config.js +2 -2
  94. package/node_modules/@weavecode/server/dist/daemon/ai-context.js +6 -6
  95. package/node_modules/@weavecode/server/dist/daemon/ai-routes.js +4 -4
  96. package/node_modules/@weavecode/server/dist/daemon/api-log.d.ts +48 -0
  97. package/node_modules/@weavecode/server/dist/daemon/api-log.js +3 -0
  98. package/node_modules/@weavecode/server/dist/daemon/auth-routes.js +1 -1
  99. package/node_modules/@weavecode/server/dist/daemon/auto-start.js +6 -6
  100. package/node_modules/@weavecode/server/dist/daemon/capture-routes.js +1 -1
  101. package/node_modules/@weavecode/server/dist/daemon/claude-liveness.js +1 -1
  102. package/node_modules/@weavecode/server/dist/daemon/dashboard-auth.js +2 -2
  103. package/node_modules/@weavecode/server/dist/daemon/data-bus.js +1 -1
  104. package/node_modules/@weavecode/server/dist/daemon/dev-entry.js +1 -1
  105. package/node_modules/@weavecode/server/dist/daemon/fs-browser.js +1 -1
  106. package/node_modules/@weavecode/server/dist/daemon/hook-pipeline.d.ts +6 -1
  107. package/node_modules/@weavecode/server/dist/daemon/hook-pipeline.js +1 -1
  108. package/node_modules/@weavecode/server/dist/daemon/hooks-routes.js +1 -1
  109. package/node_modules/@weavecode/server/dist/daemon/http.js +1 -1
  110. package/node_modules/@weavecode/server/dist/daemon/opener.d.ts +102 -19
  111. package/node_modules/@weavecode/server/dist/daemon/opener.js +97 -7
  112. package/node_modules/@weavecode/server/dist/daemon/port.js +1 -1
  113. package/node_modules/@weavecode/server/dist/daemon/project-harnesses.js +2 -2
  114. package/node_modules/@weavecode/server/dist/daemon/project-updates-refresher.d.ts +4 -3
  115. package/node_modules/@weavecode/server/dist/daemon/project-updates-refresher.js +1 -1
  116. package/node_modules/@weavecode/server/dist/daemon/server.d.ts +8 -0
  117. package/node_modules/@weavecode/server/dist/daemon/server.js +6 -6
  118. package/node_modules/@weavecode/server/dist/daemon/session-probe.d.ts +59 -2
  119. package/node_modules/@weavecode/server/dist/daemon/session-probe.js +1 -1
  120. package/node_modules/@weavecode/server/dist/daemon/settings.d.ts +10 -0
  121. package/node_modules/@weavecode/server/dist/daemon/settings.js +2 -2
  122. package/node_modules/@weavecode/server/dist/daemon/start.js +1 -1
  123. package/node_modules/@weavecode/server/dist/daemon/state.js +2 -2
  124. package/node_modules/@weavecode/server/dist/daemon/static.js +1 -1
  125. package/node_modules/@weavecode/server/dist/daemon/terminal-topology-refresher.d.ts +4 -1
  126. package/node_modules/@weavecode/server/dist/daemon/tls.js +1 -1
  127. package/node_modules/@weavecode/server/dist/daemon/toolkit-routes.js +1 -1
  128. package/node_modules/@weavecode/server/dist/db/db.js +20 -2
  129. package/node_modules/@weavecode/server/dist/db/paths.d.ts +4 -0
  130. package/node_modules/@weavecode/server/dist/db/paths.js +1 -1
  131. package/node_modules/@weavecode/server/dist/hooks/answer-keys.js +1 -1
  132. package/node_modules/@weavecode/server/dist/hooks/bus.js +1 -1
  133. package/node_modules/@weavecode/server/dist/hooks/dispatcher.js +6 -6
  134. package/node_modules/@weavecode/server/dist/hooks/handlers/webhook.js +1 -1
  135. package/node_modules/@weavecode/server/dist/hooks/headless-runner.js +2 -2
  136. package/node_modules/@weavecode/server/dist/hooks/inbox-socket.d.ts +17 -4
  137. package/node_modules/@weavecode/server/dist/hooks/inbox-socket.js +2 -1
  138. package/node_modules/@weavecode/server/dist/hooks/inbox-worker.d.ts +20 -6
  139. package/node_modules/@weavecode/server/dist/hooks/inbox-worker.js +3 -3
  140. package/node_modules/@weavecode/server/dist/hooks/match.js +1 -1
  141. package/node_modules/@weavecode/server/dist/hooks/message-deliverer.d.ts +171 -13
  142. package/node_modules/@weavecode/server/dist/hooks/message-deliverer.js +3 -2
  143. package/node_modules/@weavecode/server/dist/hooks/mirror.js +4 -4
  144. package/node_modules/@weavecode/server/dist/hooks/plugin-installer.js +3 -3
  145. package/node_modules/@weavecode/server/dist/hooks/plugin-loader.js +1 -1
  146. package/node_modules/@weavecode/server/dist/hooks/plugin-project-state.js +1 -1
  147. package/node_modules/@weavecode/server/dist/hooks/prompt-flusher.js +1 -1
  148. package/node_modules/@weavecode/server/dist/hooks/promptbox.d.ts +13 -0
  149. package/node_modules/@weavecode/server/dist/hooks/promptbox.js +8 -8
  150. package/node_modules/@weavecode/server/dist/hooks/push-notify.js +2 -2
  151. package/node_modules/@weavecode/server/dist/hooks/question-tracker.d.ts +6 -4
  152. package/node_modules/@weavecode/server/dist/hooks/question-tracker.js +1 -1
  153. package/node_modules/@weavecode/server/dist/hooks/registry.js +1 -1
  154. package/node_modules/@weavecode/server/dist/hooks/resume-runner.js +1 -1
  155. package/node_modules/@weavecode/server/dist/hooks/sequence-engine.js +1 -1
  156. package/node_modules/@weavecode/server/dist/hooks/session-purge.d.ts +4 -0
  157. package/node_modules/@weavecode/server/dist/hooks/session-purge.js +1 -1
  158. package/node_modules/@weavecode/server/dist/hooks/session-sweeper.d.ts +5 -8
  159. package/node_modules/@weavecode/server/dist/hooks/session-sweeper.js +1 -1
  160. package/node_modules/@weavecode/server/dist/hooks/toolkit-scan.js +1 -1
  161. package/node_modules/@weavecode/server/dist/hooks/toolkit.d.ts +8 -0
  162. package/node_modules/@weavecode/server/dist/hooks/toolkit.js +5 -5
  163. package/node_modules/@weavecode/server/dist/hooks/watch-engine.d.ts +7 -0
  164. package/node_modules/@weavecode/server/dist/hooks/watch-engine.js +1 -1
  165. package/node_modules/@weavecode/server/dist/index.d.ts +1 -1
  166. package/node_modules/@weavecode/server/dist/install/apply-update.d.ts +1 -1
  167. package/node_modules/@weavecode/server/dist/install/apply-update.js +1 -1
  168. package/node_modules/@weavecode/server/dist/install/capabilities.js +1 -1
  169. package/node_modules/@weavecode/server/dist/install/codex-toml.js +1 -1
  170. package/node_modules/@weavecode/server/dist/install/file-assets.js +1 -1
  171. package/node_modules/@weavecode/server/dist/install/fingerprint.d.ts +5 -1
  172. package/node_modules/@weavecode/server/dist/install/fingerprint.js +1 -1
  173. package/node_modules/@weavecode/server/dist/install/git-classify.d.ts +30 -0
  174. package/node_modules/@weavecode/server/dist/install/git-classify.js +1 -0
  175. package/node_modules/@weavecode/server/dist/install/global-config.js +2 -2
  176. package/node_modules/@weavecode/server/dist/install/global-file-assets.js +1 -1
  177. package/node_modules/@weavecode/server/dist/install/init-files.d.ts +46 -0
  178. package/node_modules/@weavecode/server/dist/install/init-files.js +2 -0
  179. package/node_modules/@weavecode/server/dist/install/install-ledger.js +1 -1
  180. package/node_modules/@weavecode/server/dist/install/installer.js +3 -3
  181. package/node_modules/@weavecode/server/dist/install/library-index.js +1 -1
  182. package/node_modules/@weavecode/server/dist/install/mcp-rows.js +1 -1
  183. package/node_modules/@weavecode/server/dist/install/plugin-install.js +1 -1
  184. package/node_modules/@weavecode/server/dist/install/plugin-rows.js +1 -1
  185. package/node_modules/@weavecode/server/dist/install/plugin-templates.js +1 -1
  186. package/node_modules/@weavecode/server/dist/install/project-config.d.ts +0 -2
  187. package/node_modules/@weavecode/server/dist/install/project-config.js +2 -2
  188. package/node_modules/@weavecode/server/dist/install/reader.js +1 -1
  189. package/node_modules/@weavecode/server/dist/install/scan-cache.js +1 -1
  190. package/node_modules/@weavecode/server/dist/install/scanner.js +1 -1
  191. package/node_modules/@weavecode/server/dist/install/settings-mcp.js +2 -2
  192. package/node_modules/@weavecode/server/dist/install/updates.d.ts +17 -5
  193. package/node_modules/@weavecode/server/dist/install/updates.js +1 -1
  194. package/node_modules/@weavecode/server/dist/market/builtin.js +1 -1
  195. package/node_modules/@weavecode/server/dist/market/identity.js +1 -1
  196. package/node_modules/@weavecode/server/dist/market/import.js +2 -2
  197. package/node_modules/@weavecode/server/dist/market/refresh.js +1 -1
  198. package/node_modules/@weavecode/server/dist/market/resolve.js +1 -1
  199. package/node_modules/@weavecode/server/dist/market/updates.js +1 -1
  200. package/node_modules/@weavecode/server/dist/registry.js +2 -2
  201. package/node_modules/@weavecode/server/dist/repositories/hook-dispatches.js +5 -5
  202. package/node_modules/@weavecode/server/dist/repositories/hook-events.js +2 -2
  203. package/node_modules/@weavecode/server/dist/repositories/hook-rules.js +4 -4
  204. package/node_modules/@weavecode/server/dist/repositories/libraries.js +1 -1
  205. package/node_modules/@weavecode/server/dist/repositories/plugin-states.js +1 -1
  206. package/node_modules/@weavecode/server/dist/repositories/projects.d.ts +7 -0
  207. package/node_modules/@weavecode/server/dist/repositories/projects.js +2 -2
  208. package/node_modules/@weavecode/server/dist/repositories/push-subscriptions.js +2 -2
  209. package/node_modules/@weavecode/server/dist/repositories/session-watches.js +4 -4
  210. package/node_modules/@weavecode/server/dist/repositories/sessions.d.ts +17 -4
  211. package/node_modules/@weavecode/server/dist/repositories/sessions.js +2 -2
  212. package/node_modules/@weavecode/server/dist/repositories/uploads.d.ts +66 -0
  213. package/node_modules/@weavecode/server/dist/repositories/uploads.js +7 -0
  214. package/node_modules/@weavecode/server/dist/statusline/cache-sweeper.js +1 -1
  215. package/node_modules/@weavecode/server/dist/statusline/generator.js +81 -40
  216. package/node_modules/@weavecode/server/dist/statusline/manager.d.ts +2 -0
  217. package/node_modules/@weavecode/server/dist/statusline/manager.js +4 -4
  218. package/node_modules/@weavecode/server/dist/surfaces.js +1 -1
  219. package/node_modules/@weavecode/server/dist/watch/cache.js +1 -1
  220. package/node_modules/@weavecode/server/dist/watch/classifier.js +1 -1
  221. package/node_modules/@weavecode/server/dist/watch/plugin-mods.js +1 -1
  222. package/node_modules/@weavecode/server/dist/watch/sync-scheduler.d.ts +8 -4
  223. package/node_modules/@weavecode/server/dist/watch/sync-scheduler.js +1 -1
  224. package/node_modules/@weavecode/server/dist/watch/watch-service.js +1 -1
  225. package/node_modules/@weavecode/server/package.json +4 -4
  226. package/node_modules/@weavecode/server/web/dist/assets/index-D5WFh77i.css +11 -0
  227. package/node_modules/@weavecode/server/web/dist/assets/index-DJibaGnJ.js +585 -0
  228. package/node_modules/@weavecode/server/web/dist/index.html +14 -2
  229. package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-plugin-creator/skills/weave-plugin-creator/SKILL.md +2 -2
  230. package/node_modules/@weavecode/templates/package.json +2 -2
  231. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/README.md +50 -32
  232. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/build/index.d.ts +86 -40
  233. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/build/index.es.js +860 -353
  234. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/build/index.js +860 -353
  235. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-cms/node_modules/asn1js/package.json +20 -17
  236. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/README.md +50 -32
  237. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/build/index.d.ts +86 -40
  238. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/build/index.es.js +860 -353
  239. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/build/index.js +860 -353
  240. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-csr/node_modules/asn1js/package.json +20 -17
  241. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/README.md +50 -32
  242. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/build/index.d.ts +86 -40
  243. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/build/index.es.js +860 -353
  244. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/build/index.js +860 -353
  245. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-ecc/node_modules/asn1js/package.json +20 -17
  246. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/README.md +50 -32
  247. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/build/index.d.ts +86 -40
  248. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/build/index.es.js +860 -353
  249. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/build/index.js +860 -353
  250. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-pkcs9/node_modules/asn1js/package.json +20 -17
  251. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/README.md +50 -32
  252. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/build/index.d.ts +86 -40
  253. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/build/index.es.js +860 -353
  254. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/build/index.js +860 -353
  255. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-rsa/node_modules/asn1js/package.json +20 -17
  256. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/README.md +50 -32
  257. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/build/index.d.ts +86 -40
  258. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/build/index.es.js +860 -353
  259. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/build/index.js +860 -353
  260. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-schema/node_modules/asn1js/package.json +20 -17
  261. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/README.md +50 -32
  262. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/build/index.d.ts +86 -40
  263. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/build/index.es.js +860 -353
  264. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/build/index.js +860 -353
  265. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/@peculiar/asn1-x509/node_modules/asn1js/package.json +20 -17
  266. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/README.md +50 -32
  267. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/build/index.d.ts +86 -40
  268. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/build/index.es.js +860 -353
  269. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/build/index.js +860 -353
  270. package/node_modules/selfsigned/node_modules/pkijs/node_modules/asn1js/package.json +20 -17
  271. package/package.json +6 -6
  272. package/node_modules/@weavecode/server/web/dist/assets/index-BOzaRlQE.js +0 -560
  273. package/node_modules/@weavecode/server/web/dist/assets/index-ChX8G8cT.css +0 -11
@@ -1 +1 @@
1
- import n from"node:os";import i from"node:path";export function detectPlatform(){const c=n.platform(),a=n.arch(),e=n.homedir();let s,o,r;switch(c){case"win32":s="windows",o=process.env.PSModulePath?"powershell":"cmd",r=process.env.APPDATA||i.join(e,"AppData","Roaming");break;case"darwin":s="darwin",o=process.env.SHELL?.includes("zsh")?"zsh":"bash",r=i.join(e,"Library","Application Support");break;default:s="linux",o=process.env.SHELL?.includes("zsh")?"zsh":process.env.SHELL?.includes("bash")?"bash":"sh",r=process.env.XDG_CONFIG_HOME||i.join(e,".config")}return{os:s,arch:a,nodeVersion:process.version,shell:o,homeDir:e,configDir:r}}
1
+ import n from"node:os";import i from"node:path";export function detectPlatform(){const c=n.platform(),a=n.arch(),s=n.homedir();let e,o,r;switch(c){case"win32":e="windows",o=process.env.PSModulePath?"powershell":"cmd",r=process.env.APPDATA||i.join(s,"AppData","Roaming");break;case"darwin":e="darwin",o=process.env.SHELL?.includes("zsh")?"zsh":"bash",r=i.join(s,"Library","Application Support");break;default:e="linux",o=process.env.SHELL?.includes("zsh")?"zsh":process.env.SHELL?.includes("bash")?"bash":"sh",r=process.env.XDG_CONFIG_HOME||i.join(s,".config")}return{os:e,arch:a,nodeVersion:process.version,shell:o,homeDir:s,configDir:r}}
@@ -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())];
@@ -38,10 +38,23 @@ export declare const HooksConfigSchema: z.ZodObject<{
38
38
  userPromptSubmit: z.ZodBoolean;
39
39
  sessionStart: z.ZodBoolean;
40
40
  stop: z.ZodBoolean;
41
+ /** 回合 API 错误收尾(代替 Stop)——不采集则该轮永远卡「生成中」。 */
42
+ stopFailure: z.ZodBoolean;
41
43
  subagentStop: z.ZodBoolean;
44
+ subagentStart: z.ZodBoolean;
42
45
  notification: z.ZodBoolean;
46
+ /** 工具执行失败(成功面 PostToolUse 之外的失败信号)。 */
47
+ postToolUseFailure: z.ZodBoolean;
48
+ /** 即将请求工具权限(比 permission_prompt 即时;带建议的权限更新)。 */
49
+ permissionRequest: z.ZodBoolean;
50
+ /** auto 模式分类器拒绝(带 reason)。 */
51
+ permissionDenied: z.ZodBoolean;
43
52
  /** 压缩开始事件(压缩态实时信号;收尾笔 SessionStart 无开关,恒在采集面)。 */
44
53
  preCompact: z.ZodBoolean;
54
+ /** 会话退出事件(旁路凭据/定位随进程作废的信号,web 状态机据此落「关闭」)。 */
55
+ sessionEnd: z.ZodBoolean;
56
+ /** 模型切换确认(Pre 置位 / Post 落定成对登记——落定笔只服务于这一件事)。 */
57
+ preModelSwitch: z.ZodBoolean;
45
58
  timeout: z.ZodDefault<z.ZodNumber>;
46
59
  continueOnError: z.ZodDefault<z.ZodBoolean>;
47
60
  }, "strip", z.ZodTypeAny, {
@@ -50,9 +63,16 @@ export declare const HooksConfigSchema: z.ZodObject<{
50
63
  userPromptSubmit: boolean;
51
64
  sessionStart: boolean;
52
65
  stop: boolean;
66
+ stopFailure: boolean;
53
67
  subagentStop: boolean;
68
+ subagentStart: boolean;
54
69
  notification: boolean;
70
+ postToolUseFailure: boolean;
71
+ permissionRequest: boolean;
72
+ permissionDenied: boolean;
55
73
  preCompact: boolean;
74
+ sessionEnd: boolean;
75
+ preModelSwitch: boolean;
56
76
  timeout: number;
57
77
  continueOnError: boolean;
58
78
  }, {
@@ -61,9 +81,16 @@ export declare const HooksConfigSchema: z.ZodObject<{
61
81
  userPromptSubmit: boolean;
62
82
  sessionStart: boolean;
63
83
  stop: boolean;
84
+ stopFailure: boolean;
64
85
  subagentStop: boolean;
86
+ subagentStart: boolean;
65
87
  notification: boolean;
88
+ postToolUseFailure: boolean;
89
+ permissionRequest: boolean;
90
+ permissionDenied: boolean;
66
91
  preCompact: boolean;
92
+ sessionEnd: boolean;
93
+ preModelSwitch: boolean;
67
94
  timeout?: number | undefined;
68
95
  continueOnError?: boolean | undefined;
69
96
  }>;
@@ -72,7 +99,7 @@ export type HooksConfig = z.infer<typeof HooksConfigSchema>;
72
99
  * 兼容 re-export(CROSS §2.2):存量 import 路径不变,
73
100
  * 实际表已下沉 `harness.ts` 的 `HARNESS_EVENTS.claude`。
74
101
  */
75
- export declare const CLAUDE_HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "SessionStart", "Stop", "SubagentStop", "Notification", "PreCompact"];
102
+ export declare const CLAUDE_HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "SessionStart", "Stop", "StopFailure", "SubagentStop", "Notification", "PostToolUseFailure", "PermissionRequest", "PermissionDenied", "SubagentStart", "PreCompact", "SessionEnd", "PreModelSwitch", "PostModelSwitch"];
76
103
  /** 兼容 re-export:`INJECTABLE_EVENTS.claude`。 */
77
104
  export declare const INJECTABLE_HOOK_EVENTS: readonly ["PostToolUse", "UserPromptSubmit", "SessionStart", "Stop", "SubagentStop"];
78
105
  export declare const HookRuleSourceSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
@@ -843,10 +870,79 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
843
870
  claudeMd: boolean;
844
871
  agentsMd: boolean;
845
872
  }>;
873
+ /**
874
+ * 本次 init 生效的采集/MCP 开关(含 `--hooks`/`--mcp` 覆盖结果)——daemon 的
875
+ * init 文件漂移检测据此重建期望态;旧文件无此字段 → 回落 DEFAULT_*。
876
+ */
877
+ hooks: z.ZodOptional<z.ZodObject<{
878
+ preToolUse: z.ZodOptional<z.ZodBoolean>;
879
+ postToolUse: z.ZodOptional<z.ZodBoolean>;
880
+ userPromptSubmit: z.ZodOptional<z.ZodBoolean>;
881
+ sessionStart: z.ZodOptional<z.ZodBoolean>;
882
+ stop: z.ZodOptional<z.ZodBoolean>;
883
+ stopFailure: z.ZodOptional<z.ZodBoolean>;
884
+ subagentStop: z.ZodOptional<z.ZodBoolean>;
885
+ subagentStart: z.ZodOptional<z.ZodBoolean>;
886
+ notification: z.ZodOptional<z.ZodBoolean>;
887
+ postToolUseFailure: z.ZodOptional<z.ZodBoolean>;
888
+ permissionRequest: z.ZodOptional<z.ZodBoolean>;
889
+ permissionDenied: z.ZodOptional<z.ZodBoolean>;
890
+ preCompact: z.ZodOptional<z.ZodBoolean>;
891
+ sessionEnd: z.ZodOptional<z.ZodBoolean>;
892
+ preModelSwitch: z.ZodOptional<z.ZodBoolean>;
893
+ timeout: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
894
+ continueOnError: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
895
+ }, "strip", z.ZodTypeAny, {
896
+ preToolUse?: boolean | undefined;
897
+ postToolUse?: boolean | undefined;
898
+ userPromptSubmit?: boolean | undefined;
899
+ sessionStart?: boolean | undefined;
900
+ stop?: boolean | undefined;
901
+ stopFailure?: boolean | undefined;
902
+ subagentStop?: boolean | undefined;
903
+ subagentStart?: boolean | undefined;
904
+ notification?: boolean | undefined;
905
+ postToolUseFailure?: boolean | undefined;
906
+ permissionRequest?: boolean | undefined;
907
+ permissionDenied?: boolean | undefined;
908
+ preCompact?: boolean | undefined;
909
+ sessionEnd?: boolean | undefined;
910
+ preModelSwitch?: boolean | undefined;
911
+ timeout?: number | undefined;
912
+ continueOnError?: boolean | undefined;
913
+ }, {
914
+ preToolUse?: boolean | undefined;
915
+ postToolUse?: boolean | undefined;
916
+ userPromptSubmit?: boolean | undefined;
917
+ sessionStart?: boolean | undefined;
918
+ stop?: boolean | undefined;
919
+ stopFailure?: boolean | undefined;
920
+ subagentStop?: boolean | undefined;
921
+ subagentStart?: boolean | undefined;
922
+ notification?: boolean | undefined;
923
+ postToolUseFailure?: boolean | undefined;
924
+ permissionRequest?: boolean | undefined;
925
+ permissionDenied?: boolean | undefined;
926
+ preCompact?: boolean | undefined;
927
+ sessionEnd?: boolean | undefined;
928
+ preModelSwitch?: boolean | undefined;
929
+ timeout?: number | undefined;
930
+ continueOnError?: boolean | undefined;
931
+ }>>;
932
+ mcp: z.ZodOptional<z.ZodObject<{
933
+ weave: z.ZodOptional<z.ZodBoolean>;
934
+ autoStart: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
935
+ }, "strip", z.ZodTypeAny, {
936
+ weave?: boolean | undefined;
937
+ autoStart?: boolean | undefined;
938
+ }, {
939
+ weave?: boolean | undefined;
940
+ autoStart?: boolean | undefined;
941
+ }>>;
846
942
  }, "strip", z.ZodTypeAny, {
847
943
  initVersion: string;
848
944
  initTimestamp: string;
849
- preset: "minimal" | "default" | "full";
945
+ preset: "default" | "minimal" | "full";
850
946
  components: {
851
947
  agents: boolean;
852
948
  settings: boolean;
@@ -857,11 +953,34 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
857
953
  claudeMd: boolean;
858
954
  agentsMd: boolean;
859
955
  };
956
+ mcp?: {
957
+ weave?: boolean | undefined;
958
+ autoStart?: boolean | undefined;
959
+ } | undefined;
860
960
  harnesses?: ("claude" | "codex")[] | undefined;
961
+ hooks?: {
962
+ preToolUse?: boolean | undefined;
963
+ postToolUse?: boolean | undefined;
964
+ userPromptSubmit?: boolean | undefined;
965
+ sessionStart?: boolean | undefined;
966
+ stop?: boolean | undefined;
967
+ stopFailure?: boolean | undefined;
968
+ subagentStop?: boolean | undefined;
969
+ subagentStart?: boolean | undefined;
970
+ notification?: boolean | undefined;
971
+ postToolUseFailure?: boolean | undefined;
972
+ permissionRequest?: boolean | undefined;
973
+ permissionDenied?: boolean | undefined;
974
+ preCompact?: boolean | undefined;
975
+ sessionEnd?: boolean | undefined;
976
+ preModelSwitch?: boolean | undefined;
977
+ timeout?: number | undefined;
978
+ continueOnError?: boolean | undefined;
979
+ } | undefined;
861
980
  }, {
862
981
  initVersion: string;
863
982
  initTimestamp: string;
864
- preset: "minimal" | "default" | "full";
983
+ preset: "default" | "minimal" | "full";
865
984
  components: {
866
985
  agents: boolean;
867
986
  settings: boolean;
@@ -872,7 +991,30 @@ export declare const RuntimeConfigSchema: z.ZodObject<{
872
991
  claudeMd: boolean;
873
992
  agentsMd: boolean;
874
993
  };
994
+ mcp?: {
995
+ weave?: boolean | undefined;
996
+ autoStart?: boolean | undefined;
997
+ } | undefined;
875
998
  harnesses?: ("claude" | "codex")[] | undefined;
999
+ hooks?: {
1000
+ preToolUse?: boolean | undefined;
1001
+ postToolUse?: boolean | undefined;
1002
+ userPromptSubmit?: boolean | undefined;
1003
+ sessionStart?: boolean | undefined;
1004
+ stop?: boolean | undefined;
1005
+ stopFailure?: boolean | undefined;
1006
+ subagentStop?: boolean | undefined;
1007
+ subagentStart?: boolean | undefined;
1008
+ notification?: boolean | undefined;
1009
+ postToolUseFailure?: boolean | undefined;
1010
+ permissionRequest?: boolean | undefined;
1011
+ permissionDenied?: boolean | undefined;
1012
+ preCompact?: boolean | undefined;
1013
+ sessionEnd?: boolean | undefined;
1014
+ preModelSwitch?: boolean | undefined;
1015
+ timeout?: number | undefined;
1016
+ continueOnError?: boolean | undefined;
1017
+ } | undefined;
876
1018
  }>;
877
1019
  export type RuntimeConfig = z.infer<typeof RuntimeConfigSchema>;
878
1020
  export declare const PlatformInfoSchema: z.ZodObject<{
@@ -939,9 +1081,16 @@ export declare const InitOptionsSchema: z.ZodObject<{
939
1081
  userPromptSubmit: z.ZodOptional<z.ZodBoolean>;
940
1082
  sessionStart: z.ZodOptional<z.ZodBoolean>;
941
1083
  stop: z.ZodOptional<z.ZodBoolean>;
1084
+ stopFailure: z.ZodOptional<z.ZodBoolean>;
942
1085
  subagentStop: z.ZodOptional<z.ZodBoolean>;
1086
+ subagentStart: z.ZodOptional<z.ZodBoolean>;
943
1087
  notification: z.ZodOptional<z.ZodBoolean>;
1088
+ postToolUseFailure: z.ZodOptional<z.ZodBoolean>;
1089
+ permissionRequest: z.ZodOptional<z.ZodBoolean>;
1090
+ permissionDenied: z.ZodOptional<z.ZodBoolean>;
944
1091
  preCompact: z.ZodOptional<z.ZodBoolean>;
1092
+ sessionEnd: z.ZodOptional<z.ZodBoolean>;
1093
+ preModelSwitch: z.ZodOptional<z.ZodBoolean>;
945
1094
  timeout: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
946
1095
  continueOnError: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
947
1096
  }, "strip", z.ZodTypeAny, {
@@ -950,9 +1099,16 @@ export declare const InitOptionsSchema: z.ZodObject<{
950
1099
  userPromptSubmit?: boolean | undefined;
951
1100
  sessionStart?: boolean | undefined;
952
1101
  stop?: boolean | undefined;
1102
+ stopFailure?: boolean | undefined;
953
1103
  subagentStop?: boolean | undefined;
1104
+ subagentStart?: boolean | undefined;
954
1105
  notification?: boolean | undefined;
1106
+ postToolUseFailure?: boolean | undefined;
1107
+ permissionRequest?: boolean | undefined;
1108
+ permissionDenied?: boolean | undefined;
955
1109
  preCompact?: boolean | undefined;
1110
+ sessionEnd?: boolean | undefined;
1111
+ preModelSwitch?: boolean | undefined;
956
1112
  timeout?: number | undefined;
957
1113
  continueOnError?: boolean | undefined;
958
1114
  }, {
@@ -961,9 +1117,16 @@ export declare const InitOptionsSchema: z.ZodObject<{
961
1117
  userPromptSubmit?: boolean | undefined;
962
1118
  sessionStart?: boolean | undefined;
963
1119
  stop?: boolean | undefined;
1120
+ stopFailure?: boolean | undefined;
964
1121
  subagentStop?: boolean | undefined;
1122
+ subagentStart?: boolean | undefined;
965
1123
  notification?: boolean | undefined;
1124
+ postToolUseFailure?: boolean | undefined;
1125
+ permissionRequest?: boolean | undefined;
1126
+ permissionDenied?: boolean | undefined;
966
1127
  preCompact?: boolean | undefined;
1128
+ sessionEnd?: boolean | undefined;
1129
+ preModelSwitch?: boolean | undefined;
967
1130
  timeout?: number | undefined;
968
1131
  continueOnError?: boolean | undefined;
969
1132
  }>>;
@@ -1012,7 +1175,7 @@ export declare const InitOptionsSchema: z.ZodObject<{
1012
1175
  weave?: boolean | undefined;
1013
1176
  autoStart?: boolean | undefined;
1014
1177
  };
1015
- preset: "minimal" | "default" | "full";
1178
+ preset: "default" | "minimal" | "full";
1016
1179
  components: {
1017
1180
  agents?: boolean | undefined;
1018
1181
  settings?: boolean | undefined;
@@ -1023,21 +1186,28 @@ export declare const InitOptionsSchema: z.ZodObject<{
1023
1186
  claudeMd?: boolean | undefined;
1024
1187
  agentsMd?: boolean | undefined;
1025
1188
  };
1026
- targetDir: string;
1027
- force: boolean;
1028
- interactive: boolean;
1029
1189
  hooks: {
1030
1190
  preToolUse?: boolean | undefined;
1031
1191
  postToolUse?: boolean | undefined;
1032
1192
  userPromptSubmit?: boolean | undefined;
1033
1193
  sessionStart?: boolean | undefined;
1034
1194
  stop?: boolean | undefined;
1195
+ stopFailure?: boolean | undefined;
1035
1196
  subagentStop?: boolean | undefined;
1197
+ subagentStart?: boolean | undefined;
1036
1198
  notification?: boolean | undefined;
1199
+ postToolUseFailure?: boolean | undefined;
1200
+ permissionRequest?: boolean | undefined;
1201
+ permissionDenied?: boolean | undefined;
1037
1202
  preCompact?: boolean | undefined;
1203
+ sessionEnd?: boolean | undefined;
1204
+ preModelSwitch?: boolean | undefined;
1038
1205
  timeout?: number | undefined;
1039
1206
  continueOnError?: boolean | undefined;
1040
1207
  };
1208
+ targetDir: string;
1209
+ force: boolean;
1210
+ interactive: boolean;
1041
1211
  harnesses?: ("claude" | "codex")[] | undefined;
1042
1212
  }, {
1043
1213
  agents?: {
@@ -1053,7 +1223,7 @@ export declare const InitOptionsSchema: z.ZodObject<{
1053
1223
  weave?: boolean | undefined;
1054
1224
  autoStart?: boolean | undefined;
1055
1225
  } | undefined;
1056
- preset?: "minimal" | "default" | "full" | undefined;
1226
+ preset?: "default" | "minimal" | "full" | undefined;
1057
1227
  harnesses?: ("claude" | "codex")[] | undefined;
1058
1228
  components?: {
1059
1229
  agents?: boolean | undefined;
@@ -1065,21 +1235,28 @@ export declare const InitOptionsSchema: z.ZodObject<{
1065
1235
  claudeMd?: boolean | undefined;
1066
1236
  agentsMd?: boolean | undefined;
1067
1237
  } | undefined;
1068
- targetDir?: string | undefined;
1069
- force?: boolean | undefined;
1070
- interactive?: boolean | undefined;
1071
1238
  hooks?: {
1072
1239
  preToolUse?: boolean | undefined;
1073
1240
  postToolUse?: boolean | undefined;
1074
1241
  userPromptSubmit?: boolean | undefined;
1075
1242
  sessionStart?: boolean | undefined;
1076
1243
  stop?: boolean | undefined;
1244
+ stopFailure?: boolean | undefined;
1077
1245
  subagentStop?: boolean | undefined;
1246
+ subagentStart?: boolean | undefined;
1078
1247
  notification?: boolean | undefined;
1248
+ postToolUseFailure?: boolean | undefined;
1249
+ permissionRequest?: boolean | undefined;
1250
+ permissionDenied?: boolean | undefined;
1079
1251
  preCompact?: boolean | undefined;
1252
+ sessionEnd?: boolean | undefined;
1253
+ preModelSwitch?: boolean | undefined;
1080
1254
  timeout?: number | undefined;
1081
1255
  continueOnError?: boolean | undefined;
1082
1256
  } | undefined;
1257
+ targetDir?: string | undefined;
1258
+ force?: boolean | undefined;
1259
+ interactive?: boolean | undefined;
1083
1260
  }>;
1084
1261
  export type InitOptions = z.infer<typeof InitOptionsSchema>;
1085
1262
  export declare const InitResultSchema: z.ZodObject<{
@@ -1 +1 @@
1
- import{z as e}from"zod";import{HARNESS_EVENTS as r,HARNESS_NAMES as a,INJECTABLE_EVENTS as s}from"./harness.js";export const PresetSchema=e.enum(["minimal","default","full"]),InitComponentsSchema=e.object({settings:e.boolean(),skills:e.boolean(),commands:e.boolean(),agents:e.boolean(),helpers:e.boolean(),mcp:e.boolean(),claudeMd:e.boolean(),agentsMd:e.boolean()}),HooksConfigSchema=e.object({preToolUse:e.boolean(),postToolUse:e.boolean(),userPromptSubmit:e.boolean(),sessionStart:e.boolean(),stop:e.boolean(),subagentStop:e.boolean(),notification:e.boolean(),preCompact:e.boolean(),timeout:e.number().default(5e3),continueOnError:e.boolean().default(!0)}),CLAUDE_HOOK_EVENTS=r.claude,INJECTABLE_HOOK_EVENTS=s.claude;const i=e.enum(a),l=e.enum([...a,"any"]);export const HookRuleSourceSchema=e.discriminatedUnion("kind",[e.object({kind:e.literal("hook-event"),harness:l,event:e.string().min(1)}),e.object({kind:e.literal("webhook"),routeId:e.string().min(1)}),e.object({kind:e.literal("claude-event"),event:e.string().min(1)})]);export function normalizeHookRuleSource(n){return n.kind==="claude-event"?{kind:"hook-event",harness:"claude",event:n.event}:n}export function hookSourceHarness(n){return n.kind==="claude-event"?"claude":n.kind==="hook-event"?n.harness:null}export const HookRuleFilterSchema=e.object({toolNames:e.array(e.string().min(1)).optional(),pathGlobs:e.array(e.string().min(1)).optional(),crossProjectOnly:e.boolean().optional()}),HandlerConfigSchema=e.discriminatedUnion("type",[e.object({type:e.literal("log")}),e.object({type:e.literal("webhook"),url:e.string().url(),secret:e.string().optional(),headers:e.record(e.string(),e.string()).optional()}),e.object({type:e.literal("inject"),template:e.string().min(1)}),e.object({type:e.literal("manual"),template:e.string().min(1)}),e.object({type:e.literal("plugin"),pluginId:e.string().min(1),handlerType:e.string().min(1),config:e.record(e.string(),e.unknown()).optional()})]),HookRuleOriginSchema=e.enum(["user","plugin","builtin"]),HookRuleSchema=e.object({id:e.string().min(1),name:e.string().min(1),enabled:e.boolean(),priority:e.number().int(),projectId:e.number().int().nullable(),source:HookRuleSourceSchema,filter:HookRuleFilterSchema.default({}),handler:HandlerConfigSchema,timeoutMs:e.number().int().positive().default(5e3),record:e.boolean().default(!0),origin:HookRuleOriginSchema.default("user"),pluginId:e.string().min(1).nullable().default(null)}),WEAVE_PLUGIN_MANIFEST="weave-plugin.json",WEAVE_INJECTION_MARKER="[weave] ",PluginRuleEntrySchema=HookRuleSchema.omit({id:!0,projectId:!0}).extend({enabled:e.boolean().optional(),priority:e.number().int().optional()}),WeavePluginManifestSchema=e.object({manifestVersion:e.literal(1),id:e.string().regex(/^[a-z][a-z0-9-]{0,63}$/),name:e.string().min(1),version:e.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/),description:e.string().optional(),author:e.string().optional(),engines:e.object({weave:e.string().optional()}).optional(),rules:e.array(e.string().min(1)).default([]),handlers:e.array(e.object({type:e.string().min(1),entry:e.string().min(1)})).default([]),requires:e.object({events:e.array(e.string().min(1)).optional()}).optional(),templates:e.object({skills:e.array(e.string().min(1)).optional(),commands:e.array(e.string().min(1)).optional(),agents:e.array(e.string().min(1)).optional()}).optional(),mcpServers:e.record(e.string(),e.unknown()).optional(),subscribe:e.object({events:e.array(e.string().min(1)),entry:e.string().min(1)}).optional(),statusline:e.object({entry:e.string().min(1)}).optional(),config:e.record(e.string(),e.unknown()).optional()}),HookDispatchStatusSchema=e.enum(["pending","injected","running","succeeded","failed","timeout"]),HookDispatchModeSchema=e.enum(["auto","manual"]),SkillsConfigSchema=e.object({core:e.boolean()}),CommandsConfigSchema=e.object({core:e.boolean()}),AgentsConfigSchema=e.object({core:e.boolean()}),MCPConfigSchema=e.object({weave:e.boolean(),autoStart:e.boolean().default(!1)}),RuntimeConfigSchema=e.object({initVersion:e.string(),initTimestamp:e.string(),preset:PresetSchema,harnesses:e.array(i).optional(),components:InitComponentsSchema}),PlatformInfoSchema=e.object({os:e.enum(["windows","darwin","linux"]),arch:e.enum(["x64","arm64"]),nodeVersion:e.string(),shell:e.enum(["powershell","cmd","bash","zsh","sh"]),homeDir:e.string(),configDir:e.string()}),InitOptionsSchema=e.object({targetDir:e.string().default(process.cwd()),force:e.boolean().default(!1),interactive:e.boolean().default(!0),preset:PresetSchema.default("default"),harnesses:e.array(i).optional(),components:InitComponentsSchema.partial().default({}),hooks:HooksConfigSchema.partial().default({}),skills:SkillsConfigSchema.partial().default({}),commands:CommandsConfigSchema.partial().default({}),agents:AgentsConfigSchema.partial().default({}),mcp:MCPConfigSchema.partial().default({})}),InitResultSchema=e.object({success:e.boolean(),platform:PlatformInfoSchema,created:e.object({directories:e.array(e.string()),files:e.array(e.string())}),skipped:e.array(e.string()),merged:e.array(e.string()),updated:e.array(e.string()),errors:e.array(e.string()),removed:e.array(e.string()),summary:e.object({skillsCount:e.number(),commandsCount:e.number(),agentsCount:e.number(),hooksEnabled:e.number()})}),MINIMAL_COMPONENTS={settings:!0,skills:!0,commands:!1,agents:!1,helpers:!1,mcp:!1,claudeMd:!0,agentsMd:!0},DEFAULT_COMPONENTS={settings:!0,skills:!0,commands:!1,agents:!1,helpers:!0,mcp:!0,claudeMd:!0,agentsMd:!0},FULL_COMPONENTS={settings:!0,skills:!0,commands:!0,agents:!0,helpers:!0,mcp:!0,claudeMd:!0,agentsMd:!0},DEFAULT_HOOKS={preToolUse:!0,postToolUse:!0,userPromptSubmit:!0,sessionStart:!0,stop:!0,subagentStop:!0,notification:!0,preCompact:!0,timeout:5e3,continueOnError:!0},DEFAULT_SKILLS={core:!0},DEFAULT_COMMANDS={core:!0},DEFAULT_AGENTS={core:!0},DEFAULT_MCP={weave:!1,autoStart:!1};export function resolveComponents(n,o){const t=n==="minimal"?MINIMAL_COMPONENTS:n==="full"?FULL_COMPONENTS:DEFAULT_COMPONENTS;return o?{...t,...o}:{...t}}
1
+ import{z as e}from"zod";import{HARNESS_EVENTS as i,HARNESS_NAMES as r,INJECTABLE_EVENTS as s}from"./harness.js";export const PresetSchema=e.enum(["minimal","default","full"]),InitComponentsSchema=e.object({settings:e.boolean(),skills:e.boolean(),commands:e.boolean(),agents:e.boolean(),helpers:e.boolean(),mcp:e.boolean(),claudeMd:e.boolean(),agentsMd:e.boolean()}),HooksConfigSchema=e.object({preToolUse:e.boolean(),postToolUse:e.boolean(),userPromptSubmit:e.boolean(),sessionStart:e.boolean(),stop:e.boolean(),stopFailure:e.boolean(),subagentStop:e.boolean(),subagentStart:e.boolean(),notification:e.boolean(),postToolUseFailure:e.boolean(),permissionRequest:e.boolean(),permissionDenied:e.boolean(),preCompact:e.boolean(),sessionEnd:e.boolean(),preModelSwitch:e.boolean(),timeout:e.number().default(5e3),continueOnError:e.boolean().default(!0)}),CLAUDE_HOOK_EVENTS=i.claude,INJECTABLE_HOOK_EVENTS=s.claude;const a=e.enum(r),l=e.enum([...r,"any"]);export const HookRuleSourceSchema=e.discriminatedUnion("kind",[e.object({kind:e.literal("hook-event"),harness:l,event:e.string().min(1)}),e.object({kind:e.literal("webhook"),routeId:e.string().min(1)}),e.object({kind:e.literal("claude-event"),event:e.string().min(1)})]);export function normalizeHookRuleSource(t){return t.kind==="claude-event"?{kind:"hook-event",harness:"claude",event:t.event}:t}export function hookSourceHarness(t){return t.kind==="claude-event"?"claude":t.kind==="hook-event"?t.harness:null}export const HookRuleFilterSchema=e.object({toolNames:e.array(e.string().min(1)).optional(),pathGlobs:e.array(e.string().min(1)).optional(),crossProjectOnly:e.boolean().optional()}),HandlerConfigSchema=e.discriminatedUnion("type",[e.object({type:e.literal("log")}),e.object({type:e.literal("webhook"),url:e.string().url(),secret:e.string().optional(),headers:e.record(e.string(),e.string()).optional()}),e.object({type:e.literal("inject"),template:e.string().min(1)}),e.object({type:e.literal("manual"),template:e.string().min(1)}),e.object({type:e.literal("plugin"),pluginId:e.string().min(1),handlerType:e.string().min(1),config:e.record(e.string(),e.unknown()).optional()})]),HookRuleOriginSchema=e.enum(["user","plugin","builtin"]),HookRuleSchema=e.object({id:e.string().min(1),name:e.string().min(1),enabled:e.boolean(),priority:e.number().int(),projectId:e.number().int().nullable(),source:HookRuleSourceSchema,filter:HookRuleFilterSchema.default({}),handler:HandlerConfigSchema,timeoutMs:e.number().int().positive().default(5e3),record:e.boolean().default(!0),origin:HookRuleOriginSchema.default("user"),pluginId:e.string().min(1).nullable().default(null)}),WEAVE_PLUGIN_MANIFEST="weave-plugin.json",WEAVE_INJECTION_MARKER="[weave] ",PluginRuleEntrySchema=HookRuleSchema.omit({id:!0,projectId:!0}).extend({enabled:e.boolean().optional(),priority:e.number().int().optional()}),WeavePluginManifestSchema=e.object({manifestVersion:e.literal(1),id:e.string().regex(/^[a-z][a-z0-9-]{0,63}$/),name:e.string().min(1),version:e.string().regex(/^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?$/),description:e.string().optional(),author:e.string().optional(),engines:e.object({weave:e.string().optional()}).optional(),rules:e.array(e.string().min(1)).default([]),handlers:e.array(e.object({type:e.string().min(1),entry:e.string().min(1)})).default([]),requires:e.object({events:e.array(e.string().min(1)).optional()}).optional(),templates:e.object({skills:e.array(e.string().min(1)).optional(),commands:e.array(e.string().min(1)).optional(),agents:e.array(e.string().min(1)).optional()}).optional(),mcpServers:e.record(e.string(),e.unknown()).optional(),subscribe:e.object({events:e.array(e.string().min(1)),entry:e.string().min(1)}).optional(),statusline:e.object({entry:e.string().min(1)}).optional(),config:e.record(e.string(),e.unknown()).optional()}),HookDispatchStatusSchema=e.enum(["pending","injected","running","succeeded","failed","timeout"]),HookDispatchModeSchema=e.enum(["auto","manual"]),SkillsConfigSchema=e.object({core:e.boolean()}),CommandsConfigSchema=e.object({core:e.boolean()}),AgentsConfigSchema=e.object({core:e.boolean()}),MCPConfigSchema=e.object({weave:e.boolean(),autoStart:e.boolean().default(!1)}),RuntimeConfigSchema=e.object({initVersion:e.string(),initTimestamp:e.string(),preset:PresetSchema,harnesses:e.array(a).optional(),components:InitComponentsSchema,hooks:HooksConfigSchema.partial().optional(),mcp:MCPConfigSchema.partial().optional()}),PlatformInfoSchema=e.object({os:e.enum(["windows","darwin","linux"]),arch:e.enum(["x64","arm64"]),nodeVersion:e.string(),shell:e.enum(["powershell","cmd","bash","zsh","sh"]),homeDir:e.string(),configDir:e.string()}),InitOptionsSchema=e.object({targetDir:e.string().default(process.cwd()),force:e.boolean().default(!1),interactive:e.boolean().default(!0),preset:PresetSchema.default("default"),harnesses:e.array(a).optional(),components:InitComponentsSchema.partial().default({}),hooks:HooksConfigSchema.partial().default({}),skills:SkillsConfigSchema.partial().default({}),commands:CommandsConfigSchema.partial().default({}),agents:AgentsConfigSchema.partial().default({}),mcp:MCPConfigSchema.partial().default({})}),InitResultSchema=e.object({success:e.boolean(),platform:PlatformInfoSchema,created:e.object({directories:e.array(e.string()),files:e.array(e.string())}),skipped:e.array(e.string()),merged:e.array(e.string()),updated:e.array(e.string()),errors:e.array(e.string()),removed:e.array(e.string()),summary:e.object({skillsCount:e.number(),commandsCount:e.number(),agentsCount:e.number(),hooksEnabled:e.number()})}),MINIMAL_COMPONENTS={settings:!0,skills:!0,commands:!1,agents:!1,helpers:!1,mcp:!1,claudeMd:!0,agentsMd:!0},DEFAULT_COMPONENTS={settings:!0,skills:!0,commands:!1,agents:!1,helpers:!0,mcp:!0,claudeMd:!0,agentsMd:!0},FULL_COMPONENTS={settings:!0,skills:!0,commands:!0,agents:!0,helpers:!0,mcp:!0,claudeMd:!0,agentsMd:!0},DEFAULT_HOOKS={preToolUse:!0,postToolUse:!0,userPromptSubmit:!0,sessionStart:!0,stop:!0,stopFailure:!0,subagentStop:!0,subagentStart:!0,notification:!0,postToolUseFailure:!0,permissionRequest:!0,permissionDenied:!0,preCompact:!0,sessionEnd:!0,preModelSwitch:!0,timeout:5e3,continueOnError:!0},DEFAULT_SKILLS={core:!0},DEFAULT_COMMANDS={core:!0},DEFAULT_AGENTS={core:!0},DEFAULT_MCP={weave:!1,autoStart:!1};export function resolveComponents(t,o){const n=t==="minimal"?MINIMAL_COMPONENTS:t==="full"?FULL_COMPONENTS:DEFAULT_COMPONENTS;return o?{...n,...o}:{...n}}
@@ -1 +1 @@
1
- import{mkdir as i,readFile as e,writeFile as n,stat as s}from"node:fs/promises";import c from"node:path";export async function ensureDir(t){await i(t,{recursive:!0})}export async function writeFileIfAbsent(t,r,a){try{if(await e(t,"utf-8"),!a)return!1}catch{}return await ensureDir(c.dirname(t)),await n(t,r,"utf-8"),!0}export async function fileExists(t){try{return await s(t),!0}catch{return!1}}
1
+ import{mkdir as i,readFile as a,writeFile as n,stat as u}from"node:fs/promises";import c from"node:path";export async function ensureDir(t){await i(t,{recursive:!0})}export async function writeFileIfAbsent(t,r,e){try{if(await a(t,"utf-8"),!e)return!1}catch{}return await ensureDir(c.dirname(t)),await n(t,r,"utf-8"),!0}export async function fileExists(t){try{return await u(t),!0}catch{return!1}}
@@ -1,2 +1,2 @@
1
- const l={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",cyan:"\x1B[36m"};function o(e,n){return process.env.NO_COLOR?e:`${l[n]}${e}${l.reset}`}export const logger={info(e){console.log(o(e,"cyan"))},success(e){console.log(o(e,"green"))},warn(e){console.log(o(e,"yellow"))},error(e){console.error(o(e,"red"))},dim(e){console.log(o(e,"dim"))}};export function formatTable(e){const n=Math.max(...e.map(([r])=>r.length));return e.map(([r,c])=>` ${r.padEnd(n+2)}${c}`).join(`
1
+ const l={reset:"\x1B[0m",bold:"\x1B[1m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",cyan:"\x1B[36m"};function e(o,n){return process.env.NO_COLOR?o:`${l[n]}${o}${l.reset}`}export const logger={info(o){console.log(e(o,"cyan"))},success(o){console.log(e(o,"green"))},warn(o){console.log(e(o,"yellow"))},error(o){console.error(e(o,"red"))},dim(o){console.log(e(o,"dim"))}};export function formatTable(o){const n=Math.max(...o.map(([r])=>r.length));return o.map(([r,c])=>` ${r.padEnd(n+2)}${c}`).join(`
2
2
  `)}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weavecode/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Core types, schemas, and utilities for weave",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1 +1 @@
1
- import r from"node:path";import{FILE_ASSET_SPECS as s}from"../shared/file-specs.js";export const CLAUDE_ASSETS={harness:"claude",targetDir(e,t,o,l){const c=s[e].dirs.claude;if(t==="user"){if(!c?.user)throw new Error(`"${e}" is project-scoped only (no user-level directory)`);return r.join(l,...c.user.split("/"))}if(!c?.project)throw new Error(`"${e}" has no Claude project surface`);return r.join(o,...c.project.split("/"))},projectSkillsDir:()=>".claude/skills",globalSkillsRoots:e=>[r.join(e,...".claude/skills".split("/"))],userConfigFile:e=>r.join(e,".claude","settings.json"),mcpScopes:()=>["project","user"],mcpDest:(e,t)=>e==="project"?".mcp.json":r.join(t,".claude.json"),pluginCacheDir:e=>r.join(e,".claude","plugins","cache"),classify(e){return e===".claude"||e.startsWith(".claude/")||e===".mcp.json"?!0:e.slice(e.lastIndexOf("/")+1)==="CLAUDE.md"},ignore(e){return e===".claude"||e.startsWith(".claude/")?e===".claude/projects"||e.startsWith(".claude/projects/")||e===".claude/cache"||e.startsWith(".claude/cache/"):e!==".mcp.json"&&e!=="CLAUDE.md"}};
1
+ import e from"node:path";import{FILE_ASSET_SPECS as t}from"../shared/file-specs.js";export const CLAUDE_ASSETS={harness:"claude",targetDir(s,c,i,o){const r=t[s].dirs.claude;if(c==="user"){if(!r?.user)throw new Error(`"${s}" is project-scoped only (no user-level directory)`);return e.join(o,...r.user.split("/"))}if(!r?.project)throw new Error(`"${s}" has no Claude project surface`);return e.join(i,...r.project.split("/"))},projectSkillsDir:()=>".claude/skills",globalSkillsRoots:s=>[e.join(s,...".claude/skills".split("/"))],userConfigFile:s=>e.join(s,".claude","settings.json"),mcpScopes:()=>["project","user"],mcpDest:(s,c)=>s==="project"?".mcp.json":e.join(c,".claude.json"),pluginCacheDir:s=>e.join(s,".claude","plugins","cache"),classify(s){return s===".claude"||s.startsWith(".claude/")||s===".mcp.json"?!0:s.slice(s.lastIndexOf("/")+1)==="CLAUDE.md"},ignore(s){return s===".claude"||s.startsWith(".claude/")?s===".claude/projects"||s.startsWith(".claude/projects/")||s===".claude/cache"||s.startsWith(".claude/cache/"):s!==".mcp.json"&&s!=="CLAUDE.md"}};
@@ -1,4 +1,4 @@
1
- import type { CaptureDeps, CaptureState, CaptureSurface } from '../driver.js';
1
+ import type { CaptureDeps, CaptureScriptHealth, CaptureState, CaptureSurface } from '../driver.js';
2
2
  /**
3
3
  * weave 采集集成(hook-handler 脚本 + settings hooks 组)的 claude 实现——
4
4
  * tool-object-model §2.6 基石:user 档安装/启用面(跨项目采集,不依赖逐项目
@@ -35,6 +35,16 @@ export declare function sweepWeaveHookEvents(hooks: unknown): Record<string, unk
35
35
  /** settings 里是否已有 weave 采集组(user 档 installed 判据)。 */
36
36
  export declare function captureGroupsPresent(settings: unknown): boolean;
37
37
  export declare function readUserCapture(deps?: CaptureDeps): Promise<CaptureState>;
38
+ /**
39
+ * 生效采集脚本的健康(诊断面只读):与运行时同判据取「哪一支在 firing」——
40
+ * user settings 里有采集组 = user 档脚本;否则项目档(给了 `projectPath` 才看得到);
41
+ * 两支都指不到 = none。`source` 是**生效分支**(不是「文件在不在」,后者是 `present`)。
42
+ * 判的是正文「会不会上报」而非「能不能跑」:脚本是旧版 weave 生成的(升级 npm
43
+ * 包不会重写它)就不含凭据上报,dashboard 于是永远收不到 inbox 目标。
44
+ */
45
+ export declare function readScriptHealth(deps?: CaptureDeps & {
46
+ projectPath?: string;
47
+ }): Promise<CaptureScriptHealth>;
38
48
  /**
39
49
  * user 档采集安装(幂等):user 级 hook-handler 脚本 + `~/.claude/settings.json`
40
50
  * 的 weave 采集组(marker 清扫后并入,用户其余键永不动)。脚本锚点在 cwd/token,
@@ -1,4 +1,4 @@
1
- import{homedir as c}from"node:os";import{access as g,mkdir as l,readFile as F,unlink as k,writeFile as d}from"node:fs/promises";import o from"node:path";import{HARNESS_DIRS as p,HARNESS_EVENTS as A,INJECTABLE_EVENTS as C,TERMINAL_LOCATOR_ENV_KEYS as S}from"@weavecode/core";import{CLAUDE_PROMPT_INBOX as m}from"./prompt-inbox.js";export function generateHookHandler(e){return`#!/usr/bin/env node
1
+ import{homedir as u}from"node:os";import{access as w,mkdir as f,readFile as h,unlink as j,writeFile as v}from"node:fs/promises";import i from"node:path";import{HARNESS_DIRS as d,HARNESS_EVENTS as b,INJECTABLE_EVENTS as _,TERMINAL_LOCATOR_ENV_KEYS as T}from"@weavecode/core";import{CLAUDE_PROMPT_INBOX as m}from"./prompt-inbox.js";export function generateHookHandler(e){return`#!/usr/bin/env node
2
2
  /**
3
3
  * weave hook-handler \u2014 collects Claude Code hook events into the global weave
4
4
  * data directory and renders locally-mirrored injections. No network, no
@@ -36,7 +36,7 @@ const TITLE_EVENTS = ['SessionStart', 'UserPromptSubmit'];
36
36
  // Terminal pane locator env (mirrors TERMINAL_LOCATOR_ENV_KEYS in @weavecode/core):
37
37
  // captured in the pane's own child process and reported on the inbox line's side
38
38
  // channel, so the daemon can address THIS session's pane exactly.
39
- const TERMINAL_ENV_KEYS = ${JSON.stringify(S)};
39
+ const TERMINAL_ENV_KEYS = ${JSON.stringify(T)};
40
40
  const INBOX_MAX_BYTES = 4 * 1024 * 1024;
41
41
  const INBOX_MAX_LINES = 1000;
42
42
  const OUTBOX_MAX_LINES = 200;
@@ -375,6 +375,6 @@ async function main() {
375
375
  }
376
376
 
377
377
  main().catch(function () { process.exit(0); });
378
- `}export const HOOK_HANDLER_MARKER=".claude/helpers/hook-handler.cjs";function i(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function D(e){return e.replace(/\\/g,"/")}export function groupIsWeave(e){if(!i(e))return!1;const t=e.hooks;return Array.isArray(t)?t.some(r=>i(r)&&typeof r.command=="string"&&D(r.command).includes(HOOK_HANDLER_MARKER)):!1}export function captureHookGroup(e,t){const r=`node "${D(t)}/hook-handler.cjs"`,n=!C.claude.includes(e);return[{matcher:"*",hooks:[{type:"command",command:r,...n?{async:!0}:{}}]}]}export function sweepWeaveHookEvents(e){if(!i(e))return;const t={};for(const[r,n]of Object.entries(e)){if(!Array.isArray(n)){t[r]=n;continue}const u=n.filter(s=>!groupIsWeave(s));u.length>0&&(t[r]=u)}return Object.keys(t).length>0?t:void 0}export function captureGroupsPresent(e){if(!i(e))return!1;const t=e.hooks;return i(t)?Object.values(t).some(r=>Array.isArray(r)&&r.some(groupIsWeave)):!1}function f(e){return o.join(e,p.claude.userDir,"settings.json")}function E(e){return o.join(e,p.claude.userDir,"helpers")}const w="@version weave@";async function j(e){try{return await g(e),!0}catch{return!1}}async function h(e){let t;try{t=await F(e,"utf-8")}catch{return{}}let r;try{r=JSON.parse(t)}catch{throw new Error(`user settings is not parseable JSON: ${e}`)}if(!i(r))throw new Error(`user settings is not a JSON object: ${e}`);return r}async function y(e){let t;try{t=await h(e)}catch{return}const r=sweepWeaveHookEvents(t.hooks);r===void 0?delete t.hooks:t.hooks=r,await l(o.dirname(e),{recursive:!0}),await d(e,JSON.stringify(t,null,2)+`
379
- `,"utf-8")}export async function readUserCapture(e={}){const t=e.home??c(),r=await h(f(t));return{installed:captureGroupsPresent(r),helperPresent:await j(o.join(E(t),"hook-handler.cjs"))}}export async function installUserCapture(e){const t=e.home??c(),r=E(t);await l(r,{recursive:!0}),await d(o.join(r,"hook-handler.cjs"),generateHookHandler(e.version),"utf-8");const n=f(t),u=await h(n),s=sweepWeaveHookEvents(u.hooks)??{};for(const a of A.claude){const v=s[a];s[a]=Array.isArray(v)?[...v,...captureHookGroup(a,r)]:captureHookGroup(a,r)}u.hooks=s,await l(o.dirname(n),{recursive:!0}),await d(n,JSON.stringify(u,null,2)+`
380
- `,"utf-8")}export async function uninstallUserCapture(e={}){const t=e.home??c();await y(f(t));const r=o.join(E(t),"hook-handler.cjs");try{(await F(r,"utf-8")).includes(w)&&await k(r)}catch{}}export async function stripProjectCapture(e){await y(o.join(e,p.claude.projectDir,"settings.json"))}export const CLAUDE_CAPTURE={harness:"claude",readUserCapture:e=>readUserCapture(e),installUserCapture:e=>installUserCapture(e),uninstallUserCapture:e=>uninstallUserCapture(e),stripProjectCapture};
378
+ `}export const HOOK_HANDLER_MARKER=".claude/helpers/hook-handler.cjs";function l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function k(e){return e.replace(/\\/g,"/")}export function groupIsWeave(e){if(!l(e))return!1;const t=e.hooks;return Array.isArray(t)?t.some(r=>l(r)&&typeof r.command=="string"&&k(r.command).includes(HOOK_HANDLER_MARKER)):!1}export function captureHookGroup(e,t){const r=`node "${k(t)}/hook-handler.cjs"`,n=!_.claude.includes(e);return[{matcher:"*",hooks:[{type:"command",command:r,...n?{async:!0}:{}}]}]}export function sweepWeaveHookEvents(e){if(!l(e))return;const t={};for(const[r,n]of Object.entries(e)){if(!Array.isArray(n)){t[r]=n;continue}const s=n.filter(a=>!groupIsWeave(a));s.length>0&&(t[r]=s)}return Object.keys(t).length>0?t:void 0}export function captureGroupsPresent(e){if(!l(e))return!1;const t=e.hooks;return l(t)?Object.values(t).some(r=>Array.isArray(r)&&r.some(groupIsWeave)):!1}function y(e){return i.join(e,d.claude.userDir,"settings.json")}function p(e){return i.join(e,d.claude.userDir,"helpers")}const E="@version weave@";async function N(e){try{return await w(e),!0}catch{return!1}}async function g(e){let t;try{t=await h(e,"utf-8")}catch{return{}}let r;try{r=JSON.parse(t)}catch{throw new Error(`user settings is not parseable JSON: ${e}`)}if(!l(r))throw new Error(`user settings is not a JSON object: ${e}`);return r}async function S(e){let t;try{t=await g(e)}catch{return}const r=sweepWeaveHookEvents(t.hooks);r===void 0?delete t.hooks:t.hooks=r,await f(i.dirname(e),{recursive:!0}),await v(e,JSON.stringify(t,null,2)+`
379
+ `,"utf-8")}export async function readUserCapture(e={}){const t=e.home??u(),r=await g(y(t));return{installed:captureGroupsPresent(r),helperPresent:await N(i.join(p(t),"hook-handler.cjs"))}}export async function readScriptHealth(e={}){const t=e.home??u(),r=i.join(p(t),"hook-handler.cjs"),n=e.projectPath?i.join(e.projectPath,d.claude.projectDir,"helpers","hook-handler.cjs"):null,s=(await readUserCapture({home:t})).installed,a=s?"user":n?"project":"none",c=s?r:n??r;let o=null;try{o=await h(c,"utf-8")}catch{o=null}return{source:a,present:o!==null,weaveOwned:o!==null&&o.includes(E),generatedVersion:o?.match(/@version weave@(\S+)/)?.[1]??null,reportsInbox:o!==null&&o.includes(m.socketEnv),reportsPaneEnv:o!==null&&o.includes("terminalEnv()")}}export async function installUserCapture(e){const t=e.home??u(),r=p(t);await f(r,{recursive:!0}),await v(i.join(r,"hook-handler.cjs"),generateHookHandler(e.version),"utf-8");const n=y(t),s=await g(n),a=sweepWeaveHookEvents(s.hooks)??{};for(const c of b.claude){const o=a[c];a[c]=Array.isArray(o)?[...o,...captureHookGroup(c,r)]:captureHookGroup(c,r)}s.hooks=a,await f(i.dirname(n),{recursive:!0}),await v(n,JSON.stringify(s,null,2)+`
380
+ `,"utf-8")}export async function uninstallUserCapture(e={}){const t=e.home??u();await S(y(t));const r=i.join(p(t),"hook-handler.cjs");try{(await h(r,"utf-8")).includes(E)&&await j(r)}catch{}}export async function stripProjectCapture(e){await S(i.join(e,d.claude.projectDir,"settings.json"))}export const CLAUDE_CAPTURE={harness:"claude",readUserCapture:e=>readUserCapture(e),installUserCapture:e=>installUserCapture(e),uninstallUserCapture:e=>uninstallUserCapture(e),stripProjectCapture,scriptHealth:e=>readScriptHealth(e)};
@@ -1 +1 @@
1
- import{existsSync as o}from"node:fs";import n from"node:path";const r=[".claude","CLAUDE.md"];function t(e){return r.some(s=>o(n.join(e,s)))}export const CLAUDE_DETECTOR={markers:r,present:t,detect:e=>({harness:"claude",present:t(e)})};
1
+ import{existsSync as o}from"node:fs";import s from"node:path";const t=[".claude","CLAUDE.md"];function r(e){return t.some(n=>o(s.join(e,n)))}export const CLAUDE_DETECTOR={markers:t,present:r,detect:e=>({harness:"claude",present:r(e)})};
@@ -38,7 +38,7 @@ export declare function expandPayloadRefs(payload: Record<string, unknown>): Rec
38
38
  export declare class ClaudeEventSource implements EventSource {
39
39
  readonly source: "claude";
40
40
  /** 采集面事件表(批 1 下沉 core 的 HARNESS_EVENTS.claude;旧 HookAdapter 无此字段)。 */
41
- readonly events: readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "SessionStart", "Stop", "SubagentStop", "Notification", "PreCompact"];
41
+ readonly events: readonly ["PreToolUse", "PostToolUse", "UserPromptSubmit", "SessionStart", "Stop", "StopFailure", "SubagentStop", "Notification", "PostToolUseFailure", "PermissionRequest", "PermissionDenied", "SubagentStart", "PreCompact", "SessionEnd", "PreModelSwitch", "PostModelSwitch"];
42
42
  normalize(report: ClaudeHookReport, projectId: number): ClaudeHookEventInput;
43
43
  }
44
44
  /** 事件接入实例(driver events 槽消费;normalize 无状态,单例安全)。 */
@@ -1 +1 @@
1
- import{HARNESS_EVENTS as i}from"@weavecode/core";function p(o){try{const t=JSON.parse(o);return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}function c(o,...t){for(const e of t)if(o[e]!=null)return o[e];return null}const l=[["toolName",["tool_name","toolName"]],["toolInput",["tool_input","toolInput"]],["toolResponse",["tool_response","toolResponse"]],["cwd",["cwd"]],["transcriptPath",["transcript_path","transcriptPath"]]],u=/^<\$\.([A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)*)>$/;function f(o){const t={...o};for(const[e,n]of l)for(const s of n)s in t&&(t[s]=`<$.${e}>`);return t}export function expandPayloadRefs(o){const t=o.raw;if(!t||typeof t!="object"||Array.isArray(t))return o;const e={...t};for(const[n,s]of Object.entries(e)){const a=typeof s=="string"?u.exec(s):null;a&&(e[n]=d(o,a[1]))}return{...o,raw:e}}function d(o,t){let e=o;for(const n of t.split(".")){if(!e||typeof e!="object")return null;e=e[n]}return e??null}export class ClaudeEventSource{source="claude";events=i.claude;normalize(t,e){const n=p(t.payload),s=t.eventType||String(n.hook_event_name??"unknown"),a=t.sessionId??c(n,"session_id","sessionId"),r={eventType:s,toolName:c(n,"tool_name","toolName"),toolInput:c(n,"tool_input","toolInput"),toolResponse:c(n,"tool_response","toolResponse"),cwd:t.cwd??c(n,"cwd"),transcriptPath:c(n,"transcript_path","transcriptPath"),raw:f(n)};return{projectId:e,source:"claude",eventType:s,sessionId:a??void 0,payload:JSON.stringify(r)}}}export const CLAUDE_EVENT_SOURCE=new ClaudeEventSource;export function frameFacts(o){const t=o?.raw,e=t&&typeof t=="object"&&typeof t.agent_id=="string"?t.agent_id:void 0;let n;if(o?.eventType==="PostToolUse"&&o.toolName==="Agent"){const r=o.toolResponse;r?.isAsync&&typeof r.agentId=="string"&&(n=r.agentId)}let s;Array.isArray(t&&typeof t=="object"?t.background_tasks:void 0)&&(s=t.background_tasks.filter(r=>r&&typeof r.id=="string"&&typeof r.status=="string").map(r=>({id:r.id,status:r.status})));const a={};return e&&(a.agentId=e),n&&(a.spawnAgentId=n),s&&(a.backgroundTasks=s),a}
1
+ import{HARNESS_EVENTS as u}from"@weavecode/core";function p(o){try{const t=JSON.parse(o);return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}function i(o,...t){for(const n of t)if(o[n]!=null)return o[n];return null}const d=[["toolName",["tool_name","toolName"]],["toolInput",["tool_input","toolInput"]],["toolResponse",["tool_response","toolResponse"]],["cwd",["cwd"]],["transcriptPath",["transcript_path","transcriptPath"]]],l=/^<\$\.([A-Za-z0-9_]+(?:\.[A-Za-z0-9_]+)*)>$/,f=4e3,_=200;function a(o){if(typeof o=="string")return o.length>f?`${o.slice(0,f)}\u2026`:o;if(Array.isArray(o))return o.slice(0,_).map(a);if(o&&typeof o=="object"){const t={};for(const[n,e]of Object.entries(o))t[n]=a(e);return t}return o}function y(o){const t={...o};for(const[n,e]of d)for(const s of e)s in t&&(t[s]=`<$.${n}>`);return t}export function expandPayloadRefs(o){const t=o.raw;if(!t||typeof t!="object"||Array.isArray(t))return o;const n={...t};for(const[e,s]of Object.entries(n)){const c=typeof s=="string"?l.exec(s):null;c&&(n[e]=g(o,c[1]))}return{...o,raw:n}}function g(o,t){let n=o;for(const e of t.split(".")){if(!n||typeof n!="object")return null;n=n[e]}return n??null}export class ClaudeEventSource{source="claude";events=u.claude;normalize(t,n){const e=p(t.payload),s=t.eventType||String(e.hook_event_name??"unknown"),c=t.sessionId??i(e,"session_id","sessionId"),r={eventType:s,toolName:i(e,"tool_name","toolName"),toolInput:a(i(e,"tool_input","toolInput")),toolResponse:a(i(e,"tool_response","toolResponse")),cwd:t.cwd??i(e,"cwd"),transcriptPath:i(e,"transcript_path","transcriptPath"),raw:y(e)};return{projectId:n,source:"claude",eventType:s,sessionId:c??void 0,payload:JSON.stringify(r)}}}export const CLAUDE_EVENT_SOURCE=new ClaudeEventSource;export function frameFacts(o){const t=o?.raw,n=t&&typeof t=="object"&&typeof t.agent_id=="string"?t.agent_id:void 0;let e;if(o?.eventType==="PostToolUse"&&o.toolName==="Agent"){const r=o.toolResponse;r?.isAsync&&typeof r.agentId=="string"&&(e=r.agentId)}let s;Array.isArray(t&&typeof t=="object"?t.background_tasks:void 0)&&(s=t.background_tasks.filter(r=>r&&typeof r.id=="string"&&typeof r.status=="string").map(r=>({id:r.id,status:r.status})));const c={};return n&&(c.agentId=n),e&&(c.spawnAgentId=e),s&&(c.backgroundTasks=s),c}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * auto-memory hook 脚本生成。版本号由调用方注入(cli/server 各带自己的
3
+ * `WEAVE_VERSION`)——生成器保持纯字符串,不反向依赖发包侧。
4
+ */
5
+ export declare function generateAutoMemoryHook(version: string): string;
@@ -0,0 +1,20 @@
1
+ export function generateAutoMemoryHook(e){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
+ `}
@@ -10,9 +10,13 @@ export { CLAUDE_MESSAGING } from './messaging.js';
10
10
  export { CLAUDE_BLOCKING_PROMPT } from './questions.js';
11
11
  export { CLAUDE_PROMPT_RELAY } from './prompt.js';
12
12
  export { CLAUDE_PROMPT_INBOX } from './prompt-inbox.js';
13
- export { interruptMarkerAt } from './transcript.js';
13
+ export { interruptMarkerAt, currentModelAt, currentModeAt } from './transcript.js';
14
+ export { modelAliasTargets, aliasOfModel, switchedModelOf, type ModelAliasTarget } from './model-aliases.js';
14
15
  export { resolveClaudePeer } from './peers.js';
15
16
  export { CLAUDE_CAPTURE, generateHookHandler, captureHookGroup, sweepWeaveHookEvents, groupIsWeave, captureGroupsPresent, readUserCapture, installUserCapture, uninstallUserCapture, stripProjectCapture, HOOK_HANDLER_MARKER, } from './capture.js';
17
+ export { generateSettingsJson, mergeSettingsJson, stripWeaveSettings, type SettingsGeneratorInput, } from './settings-gen.js';
18
+ export { generateMcpJson, mergeMcpJson, stripWeaveMcp, type McpGeneratorInput } from './mcp-gen.js';
19
+ export { generateAutoMemoryHook } from './helpers-gen.js';
16
20
  /**
17
21
  * Claude 接入模块的驱动:批 4a 补 assets、批 4b 补 events/resume、批 5 补
18
22
  * detect、批 3 补 plugins、P2 补 pluginState、session-orchestration 批 1 补
@@ -1 +1 @@
1
- import{CLAUDE_ASSETS as e}from"./assets.js";import{CLAUDE_CAPTURE as r}from"./capture.js";import{CLAUDE_EVENT_SOURCE as o}from"./event-source.js";import{CLAUDE_MESSAGING as t}from"./messaging.js";import{CLAUDE_PLUGINS as E}from"./plugins.js";import{CLAUDE_PLUGIN_STATE as a}from"./plugin-state.js";import{CLAUDE_BLOCKING_PROMPT as s}from"./questions.js";import{CLAUDE_RESUME as p}from"./resume.js";import{CLAUDE_DETECTOR as C}from"./detect.js";export{ClaudeEventSource,CLAUDE_EVENT_SOURCE,frameFacts,expandPayloadRefs}from"./event-source.js";export{CLAUDE_PLUGINS,createClaudePluginSurface,WEAVE_MARKETPLACE}from"./plugins.js";export{CLAUDE_PLUGIN_STATE}from"./plugin-state.js";export{CLAUDE_RESUME}from"./resume.js";export{CLAUDE_DETECTOR}from"./detect.js";export{CLAUDE_MESSAGING}from"./messaging.js";export{CLAUDE_BLOCKING_PROMPT}from"./questions.js";export{CLAUDE_PROMPT_RELAY}from"./prompt.js";export{CLAUDE_PROMPT_INBOX}from"./prompt-inbox.js";export{interruptMarkerAt}from"./transcript.js";export{resolveClaudePeer}from"./peers.js";export{CLAUDE_CAPTURE,generateHookHandler,captureHookGroup,sweepWeaveHookEvents,groupIsWeave,captureGroupsPresent,readUserCapture,installUserCapture,uninstallUserCapture,stripProjectCapture,HOOK_HANDLER_MARKER}from"./capture.js";export const CLAUDE_DRIVER={id:"claude",displayName:"Claude Code",capabilities:["assets","events","resume","detect","plugins","pluginState","messaging","questions","capture"],assets:e,events:o,resume:p,detect:C,plugins:E,pluginState:a,messaging:t,questions:s,capture:r};
1
+ import{CLAUDE_ASSETS as e}from"./assets.js";import{CLAUDE_CAPTURE as r}from"./capture.js";import{CLAUDE_EVENT_SOURCE as o}from"./event-source.js";import{CLAUDE_MESSAGING as t}from"./messaging.js";import{CLAUDE_PLUGINS as E}from"./plugins.js";import{CLAUDE_PLUGIN_STATE as p}from"./plugin-state.js";import{CLAUDE_BLOCKING_PROMPT as s}from"./questions.js";import{CLAUDE_RESUME as a}from"./resume.js";import{CLAUDE_DETECTOR as m}from"./detect.js";export{ClaudeEventSource,CLAUDE_EVENT_SOURCE,frameFacts,expandPayloadRefs}from"./event-source.js";export{CLAUDE_PLUGINS,createClaudePluginSurface,WEAVE_MARKETPLACE}from"./plugins.js";export{CLAUDE_PLUGIN_STATE}from"./plugin-state.js";export{CLAUDE_RESUME}from"./resume.js";export{CLAUDE_DETECTOR}from"./detect.js";export{CLAUDE_MESSAGING}from"./messaging.js";export{CLAUDE_BLOCKING_PROMPT}from"./questions.js";export{CLAUDE_PROMPT_RELAY}from"./prompt.js";export{CLAUDE_PROMPT_INBOX}from"./prompt-inbox.js";export{interruptMarkerAt,currentModelAt,currentModeAt}from"./transcript.js";export{modelAliasTargets,aliasOfModel,switchedModelOf}from"./model-aliases.js";export{resolveClaudePeer}from"./peers.js";export{CLAUDE_CAPTURE,generateHookHandler,captureHookGroup,sweepWeaveHookEvents,groupIsWeave,captureGroupsPresent,readUserCapture,installUserCapture,uninstallUserCapture,stripProjectCapture,HOOK_HANDLER_MARKER}from"./capture.js";export{generateSettingsJson,mergeSettingsJson,stripWeaveSettings}from"./settings-gen.js";export{generateMcpJson,mergeMcpJson,stripWeaveMcp}from"./mcp-gen.js";export{generateAutoMemoryHook}from"./helpers-gen.js";export const CLAUDE_DRIVER={id:"claude",displayName:"Claude Code",capabilities:["assets","events","resume","detect","plugins","pluginState","messaging","questions","capture"],assets:e,events:o,resume:a,detect:m,plugins:E,pluginState:p,messaging:t,questions:s,capture:r};