@weavecode/weave 0.1.6 → 0.1.8

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 (435) hide show
  1. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +1 -1
  2. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/adapter/bun/websocket.js +1 -1
  3. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/context.js +1 -1
  4. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/helper/css/common.js +3 -5
  5. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/hono-base.js +4 -10
  6. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/hono.js +0 -1
  7. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +1 -1
  8. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +1 -1
  9. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/csrf/index.js +2 -2
  10. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +2 -2
  11. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +2 -2
  12. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/middleware/mount/index.js +4 -4
  13. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +13 -11
  14. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +4 -4
  15. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +39 -51
  16. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +15 -5
  17. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/utils/jwt/jwt.js +2 -1
  18. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/utils/mount.js +35 -0
  19. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/utils/url.js +10 -0
  20. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/cjs/validator/validator.js +1 -1
  21. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/context.js +1 -1
  22. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/helper/css/common.js +3 -5
  23. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/hono-base.js +4 -10
  24. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/hono.js +0 -1
  25. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/basic-auth/index.js +1 -1
  26. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/bearer-auth/index.js +1 -1
  27. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/csrf/index.js +2 -2
  28. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/jwk/jwk.js +2 -2
  29. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/jwt/jwt.js +2 -2
  30. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/language/language.js +1 -1
  31. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/middleware/mount/index.js +4 -4
  32. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/node.js +13 -11
  33. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +5 -5
  34. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/router.js +40 -52
  35. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/router/reg-exp-router/trie.js +15 -5
  36. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/middleware/mount/index.d.ts +1 -0
  37. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +3 -3
  38. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +1 -1
  39. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/utils/mount.d.ts +4 -0
  40. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/types/utils/url.d.ts +1 -0
  41. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/utils/jwt/jwt.js +2 -1
  42. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/utils/mount.js +34 -0
  43. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/utils/url.js +10 -1
  44. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/dist/validator/validator.js +1 -1
  45. package/node_modules/@modelcontextprotocol/sdk/node_modules/hono/package.json +1 -1
  46. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/jwks/remote.js +3 -1
  47. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/deflate.js +2 -1
  48. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +2 -1
  49. package/node_modules/@modelcontextprotocol/sdk/node_modules/jose/package.json +1 -1
  50. package/node_modules/@weavecode/cli/dist/cli.js +3 -3
  51. package/node_modules/@weavecode/cli/dist/commands/chpass.js +1 -1
  52. package/node_modules/@weavecode/cli/dist/commands/daemon-auth.js +1 -1
  53. package/node_modules/@weavecode/cli/dist/commands/daemon.js +2 -2
  54. package/node_modules/@weavecode/cli/dist/commands/dashboard.js +2 -2
  55. package/node_modules/@weavecode/cli/dist/commands/doctor.js +1 -1
  56. package/node_modules/@weavecode/cli/dist/commands/init.js +1 -1
  57. package/node_modules/@weavecode/cli/dist/commands/msg.js +2 -2
  58. package/node_modules/@weavecode/cli/dist/commands/scan.js +1 -1
  59. package/node_modules/@weavecode/cli/dist/commands/status.js +2 -2
  60. package/node_modules/@weavecode/cli/dist/commands/uninstall.js +1 -1
  61. package/node_modules/@weavecode/cli/dist/i18n/dict/en.js +1 -1
  62. package/node_modules/@weavecode/cli/dist/i18n/dict/zh.d.ts +1 -0
  63. package/node_modules/@weavecode/cli/dist/i18n/dict/zh.js +2 -2
  64. package/node_modules/@weavecode/cli/dist/i18n/index.js +1 -1
  65. package/node_modules/@weavecode/cli/dist/i18n/t.js +1 -1
  66. package/node_modules/@weavecode/cli/dist/init/claudemd-gen.js +3 -3
  67. package/node_modules/@weavecode/cli/dist/init/executor.js +3 -3
  68. package/node_modules/@weavecode/cli/dist/init/git-commit.js +2 -2
  69. package/node_modules/@weavecode/cli/dist/init/harnesses/claude.js +7 -7
  70. package/node_modules/@weavecode/cli/dist/init/harnesses/codex.js +1 -1
  71. package/node_modules/@weavecode/cli/dist/init/instruction-link.js +1 -1
  72. package/node_modules/@weavecode/cli/dist/init/plugin-templates.js +1 -1
  73. package/node_modules/@weavecode/cli/dist/init/prompt.js +4 -4
  74. package/node_modules/@weavecode/cli/dist/init/provision.js +1 -1
  75. package/node_modules/@weavecode/cli/dist/init/uninstall.js +6 -6
  76. package/node_modules/@weavecode/cli/dist/init/wiring.js +1 -1
  77. package/node_modules/@weavecode/cli/dist/parser.js +1 -1
  78. package/node_modules/@weavecode/cli/dist/statusline/ansi.js +1 -1
  79. package/node_modules/@weavecode/cli/package.json +5 -5
  80. package/node_modules/@weavecode/core/dist/harness-checks.js +1 -1
  81. package/node_modules/@weavecode/core/dist/harness.d.ts +89 -0
  82. package/node_modules/@weavecode/core/dist/harness.js +1 -1
  83. package/node_modules/@weavecode/core/dist/index.d.ts +1 -1
  84. package/node_modules/@weavecode/core/dist/index.js +1 -1
  85. package/node_modules/@weavecode/core/dist/platform.js +1 -1
  86. package/node_modules/@weavecode/core/dist/types.js +1 -1
  87. package/node_modules/@weavecode/core/dist/utils/fs.js +1 -1
  88. package/node_modules/@weavecode/core/dist/utils/logger.js +1 -1
  89. package/node_modules/@weavecode/core/package.json +1 -1
  90. package/node_modules/@weavecode/harness/dist/claude/assets.js +4 -4
  91. package/node_modules/@weavecode/harness/dist/claude/capture.js +9 -9
  92. package/node_modules/@weavecode/harness/dist/claude/commands.d.ts +2 -0
  93. package/node_modules/@weavecode/harness/dist/claude/commands.js +3 -2
  94. package/node_modules/@weavecode/harness/dist/claude/config.js +2 -2
  95. package/node_modules/@weavecode/harness/dist/claude/detect.js +1 -1
  96. package/node_modules/@weavecode/harness/dist/claude/edits.js +1 -1
  97. package/node_modules/@weavecode/harness/dist/claude/event-source.js +1 -1
  98. package/node_modules/@weavecode/harness/dist/claude/images.js +2 -2
  99. package/node_modules/@weavecode/harness/dist/claude/index.js +1 -1
  100. package/node_modules/@weavecode/harness/dist/claude/liveness.js +1 -1
  101. package/node_modules/@weavecode/harness/dist/claude/mcp-gen.js +1 -1
  102. package/node_modules/@weavecode/harness/dist/claude/messaging.js +2 -2
  103. package/node_modules/@weavecode/harness/dist/claude/model-aliases.js +1 -1
  104. package/node_modules/@weavecode/harness/dist/claude/narration.js +1 -1
  105. package/node_modules/@weavecode/harness/dist/claude/peers.js +1 -1
  106. package/node_modules/@weavecode/harness/dist/claude/plan.js +1 -1
  107. package/node_modules/@weavecode/harness/dist/claude/plugins.js +4 -4
  108. package/node_modules/@weavecode/harness/dist/claude/prompt-inbox.js +1 -1
  109. package/node_modules/@weavecode/harness/dist/claude/prompt.js +3 -3
  110. package/node_modules/@weavecode/harness/dist/claude/questions.js +2 -2
  111. package/node_modules/@weavecode/harness/dist/claude/resume.js +1 -1
  112. package/node_modules/@weavecode/harness/dist/claude/rewind.js +1 -1
  113. package/node_modules/@weavecode/harness/dist/claude/settings-gen.js +1 -1
  114. package/node_modules/@weavecode/harness/dist/claude/side-question.js +2 -2
  115. package/node_modules/@weavecode/harness/dist/claude/statusline/generator.js +14 -14
  116. package/node_modules/@weavecode/harness/dist/claude/statusline/git-cache.js +1 -1
  117. package/node_modules/@weavecode/harness/dist/claude/statusline/surface.js +2 -2
  118. package/node_modules/@weavecode/harness/dist/claude/transcript-cursor.js +2 -2
  119. package/node_modules/@weavecode/harness/dist/claude/transcript.js +7 -7
  120. package/node_modules/@weavecode/harness/dist/codex/assets.js +1 -1
  121. package/node_modules/@weavecode/harness/dist/codex/capture.js +2 -2
  122. package/node_modules/@weavecode/harness/dist/codex/commands.js +4 -4
  123. package/node_modules/@weavecode/harness/dist/codex/config.js +2 -2
  124. package/node_modules/@weavecode/harness/dist/codex/detect.js +1 -1
  125. package/node_modules/@weavecode/harness/dist/codex/event-source.js +2 -2
  126. package/node_modules/@weavecode/harness/dist/codex/images.js +1 -1
  127. package/node_modules/@weavecode/harness/dist/codex/index.js +1 -1
  128. package/node_modules/@weavecode/harness/dist/codex/liveness.js +1 -1
  129. package/node_modules/@weavecode/harness/dist/codex/mcp.js +1 -1
  130. package/node_modules/@weavecode/harness/dist/codex/messaging.js +2 -2
  131. package/node_modules/@weavecode/harness/dist/codex/narration.js +1 -1
  132. package/node_modules/@weavecode/harness/dist/codex/plugin-state.js +1 -1
  133. package/node_modules/@weavecode/harness/dist/codex/plugins.js +3 -3
  134. package/node_modules/@weavecode/harness/dist/codex/provision.js +1 -1
  135. package/node_modules/@weavecode/harness/dist/codex/questions.js +2 -2
  136. package/node_modules/@weavecode/harness/dist/codex/rollout.js +5 -5
  137. package/node_modules/@weavecode/harness/dist/codex/side-question.js +4 -4
  138. package/node_modules/@weavecode/harness/dist/codex/titles.js +4 -4
  139. package/node_modules/@weavecode/harness/dist/codex/toml.js +13 -13
  140. package/node_modules/@weavecode/harness/dist/codex/transcript.js +2 -2
  141. package/node_modules/@weavecode/harness/dist/driver.d.ts +13 -0
  142. package/node_modules/@weavecode/harness/dist/driver.js +1 -1
  143. package/node_modules/@weavecode/harness/dist/init/generated.js +2 -2
  144. package/node_modules/@weavecode/harness/dist/init/pipeline.js +1 -1
  145. package/node_modules/@weavecode/harness/dist/registry-wiring.js +1 -1
  146. package/node_modules/@weavecode/harness/dist/shared/install-link.js +1 -1
  147. package/node_modules/@weavecode/harness/dist/shared/json-cap.js +1 -1
  148. package/node_modules/@weavecode/harness/package.json +2 -2
  149. package/node_modules/@weavecode/server/dist/config/dotted.js +1 -1
  150. package/node_modules/@weavecode/server/dist/config/profiles.js +2 -2
  151. package/node_modules/@weavecode/server/dist/daemon/ai-config.js +2 -2
  152. package/node_modules/@weavecode/server/dist/daemon/ai-context.js +6 -6
  153. package/node_modules/@weavecode/server/dist/daemon/ai-routes.js +4 -4
  154. package/node_modules/@weavecode/server/dist/daemon/api-log.js +3 -3
  155. package/node_modules/@weavecode/server/dist/daemon/auth-routes.js +1 -1
  156. package/node_modules/@weavecode/server/dist/daemon/auto-start.js +6 -6
  157. package/node_modules/@weavecode/server/dist/daemon/capture-routes.js +1 -1
  158. package/node_modules/@weavecode/server/dist/daemon/config-routes.js +1 -1
  159. package/node_modules/@weavecode/server/dist/daemon/cron.js +1 -1
  160. package/node_modules/@weavecode/server/dist/daemon/dashboard-auth.js +2 -2
  161. package/node_modules/@weavecode/server/dist/daemon/dashboard-pusher.js +1 -1
  162. package/node_modules/@weavecode/server/dist/daemon/data-bus.js +1 -1
  163. package/node_modules/@weavecode/server/dist/daemon/decision-config.js +2 -2
  164. package/node_modules/@weavecode/server/dist/daemon/dev-entry.js +1 -1
  165. package/node_modules/@weavecode/server/dist/daemon/entry.js +2 -2
  166. package/node_modules/@weavecode/server/dist/daemon/fs-browser.js +1 -1
  167. package/node_modules/@weavecode/server/dist/daemon/hook-pipeline.js +1 -1
  168. package/node_modules/@weavecode/server/dist/daemon/hooks-routes.js +1 -1
  169. package/node_modules/@weavecode/server/dist/daemon/http.js +1 -1
  170. package/node_modules/@weavecode/server/dist/daemon/liveness.js +1 -1
  171. package/node_modules/@weavecode/server/dist/daemon/mcp-orchestration.js +1 -1
  172. package/node_modules/@weavecode/server/dist/daemon/narration-watcher.js +2 -2
  173. package/node_modules/@weavecode/server/dist/daemon/opener/backend-ghostty.js +1 -1
  174. package/node_modules/@weavecode/server/dist/daemon/opener/backend-iterm.js +1 -1
  175. package/node_modules/@weavecode/server/dist/daemon/opener/backend-konsole.js +2 -2
  176. package/node_modules/@weavecode/server/dist/daemon/opener/backend-terminal-app.js +1 -1
  177. package/node_modules/@weavecode/server/dist/daemon/opener/backend-wezterm.js +1 -1
  178. package/node_modules/@weavecode/server/dist/daemon/opener/backend-wt.js +1 -1
  179. package/node_modules/@weavecode/server/dist/daemon/opener/backend.js +1 -1
  180. package/node_modules/@weavecode/server/dist/daemon/opener/pty-terminals.js +4 -4
  181. package/node_modules/@weavecode/server/dist/daemon/opener/shared.js +1 -1
  182. package/node_modules/@weavecode/server/dist/daemon/opener/wezterm-mux.js +1 -1
  183. package/node_modules/@weavecode/server/dist/daemon/opener/wt.js +3 -3
  184. package/node_modules/@weavecode/server/dist/daemon/opener.js +1 -1
  185. package/node_modules/@weavecode/server/dist/daemon/pet-seed.d.ts +6 -0
  186. package/node_modules/@weavecode/server/dist/daemon/pet-seed.js +1 -0
  187. package/node_modules/@weavecode/server/dist/daemon/pet-window.d.ts +17 -0
  188. package/node_modules/@weavecode/server/dist/daemon/pet-window.js +2 -0
  189. package/node_modules/@weavecode/server/dist/daemon/port.js +1 -1
  190. package/node_modules/@weavecode/server/dist/daemon/project-files.d.ts +1 -1
  191. package/node_modules/@weavecode/server/dist/daemon/project-files.js +2 -2
  192. package/node_modules/@weavecode/server/dist/daemon/project-harnesses.js +2 -2
  193. package/node_modules/@weavecode/server/dist/daemon/project-updates-refresher.js +1 -1
  194. package/node_modules/@weavecode/server/dist/daemon/prompt-images.js +1 -1
  195. package/node_modules/@weavecode/server/dist/daemon/routes/hooks-admin.js +1 -1
  196. package/node_modules/@weavecode/server/dist/daemon/routes/market.js +1 -1
  197. package/node_modules/@weavecode/server/dist/daemon/routes/orchestration.js +1 -1
  198. package/node_modules/@weavecode/server/dist/daemon/routes/path-refs.js +1 -1
  199. package/node_modules/@weavecode/server/dist/daemon/routes/pets.d.ts +3 -0
  200. package/node_modules/@weavecode/server/dist/daemon/routes/pets.js +1 -0
  201. package/node_modules/@weavecode/server/dist/daemon/routes/project-files.js +1 -1
  202. package/node_modules/@weavecode/server/dist/daemon/routes/projects.js +1 -1
  203. package/node_modules/@weavecode/server/dist/daemon/routes/search.js +1 -1
  204. package/node_modules/@weavecode/server/dist/daemon/routes/session-control.js +1 -1
  205. package/node_modules/@weavecode/server/dist/daemon/routes/session-insights.js +1 -1
  206. package/node_modules/@weavecode/server/dist/daemon/routes/settings-statusline.js +1 -1
  207. package/node_modules/@weavecode/server/dist/daemon/routes/uploads.js +1 -1
  208. package/node_modules/@weavecode/server/dist/daemon/routes/visualizations.js +2 -1
  209. package/node_modules/@weavecode/server/dist/daemon/routes/watches.js +1 -1
  210. package/node_modules/@weavecode/server/dist/daemon/server.d.ts +2 -0
  211. package/node_modules/@weavecode/server/dist/daemon/server.js +8 -8
  212. package/node_modules/@weavecode/server/dist/daemon/session-open.d.ts +17 -0
  213. package/node_modules/@weavecode/server/dist/daemon/session-open.js +1 -1
  214. package/node_modules/@weavecode/server/dist/daemon/session-probe.js +1 -1
  215. package/node_modules/@weavecode/server/dist/daemon/settings.d.ts +21 -0
  216. package/node_modules/@weavecode/server/dist/daemon/settings.js +2 -2
  217. package/node_modules/@weavecode/server/dist/daemon/snapshot-refresher.js +1 -1
  218. package/node_modules/@weavecode/server/dist/daemon/sse-hub.js +1 -1
  219. package/node_modules/@weavecode/server/dist/daemon/start.js +1 -1
  220. package/node_modules/@weavecode/server/dist/daemon/state.js +2 -2
  221. package/node_modules/@weavecode/server/dist/daemon/static.js +1 -1
  222. package/node_modules/@weavecode/server/dist/daemon/terminal-topology-refresher.js +1 -1
  223. package/node_modules/@weavecode/server/dist/daemon/tls.js +1 -1
  224. package/node_modules/@weavecode/server/dist/daemon/toolkit-routes.js +1 -1
  225. package/node_modules/@weavecode/server/dist/daemon/upload-sessions.js +1 -1
  226. package/node_modules/@weavecode/server/dist/db/db.d.ts +4 -1
  227. package/node_modules/@weavecode/server/dist/db/db.js +2 -2
  228. package/node_modules/@weavecode/server/dist/db/layout.js +1 -1
  229. package/node_modules/@weavecode/server/dist/db/paths.d.ts +4 -0
  230. package/node_modules/@weavecode/server/dist/db/paths.js +1 -1
  231. package/node_modules/@weavecode/server/dist/hooks/answer-keys.js +1 -1
  232. package/node_modules/@weavecode/server/dist/hooks/bus.js +1 -1
  233. package/node_modules/@weavecode/server/dist/hooks/dashboard-rate.js +1 -1
  234. package/node_modules/@weavecode/server/dist/hooks/decision-judge.js +1 -1
  235. package/node_modules/@weavecode/server/dist/hooks/delivery/ack-gate.js +1 -1
  236. package/node_modules/@weavecode/server/dist/hooks/delivery/channels.js +1 -1
  237. package/node_modules/@weavecode/server/dist/hooks/delivery/keys.js +1 -1
  238. package/node_modules/@weavecode/server/dist/hooks/delivery/queue.js +1 -1
  239. package/node_modules/@weavecode/server/dist/hooks/delivery/relay.js +1 -1
  240. package/node_modules/@weavecode/server/dist/hooks/delivery/send.js +2 -2
  241. package/node_modules/@weavecode/server/dist/hooks/delivery/views.d.ts +3 -1
  242. package/node_modules/@weavecode/server/dist/hooks/delivery/views.js +1 -1
  243. package/node_modules/@weavecode/server/dist/hooks/dispatcher.js +6 -6
  244. package/node_modules/@weavecode/server/dist/hooks/edge-extract.js +1 -1
  245. package/node_modules/@weavecode/server/dist/hooks/handlers/webhook.js +1 -1
  246. package/node_modules/@weavecode/server/dist/hooks/headless-runner.js +2 -2
  247. package/node_modules/@weavecode/server/dist/hooks/inbox-socket.js +2 -2
  248. package/node_modules/@weavecode/server/dist/hooks/inbox-worker.js +3 -3
  249. package/node_modules/@weavecode/server/dist/hooks/match.js +1 -1
  250. package/node_modules/@weavecode/server/dist/hooks/message-deliverer.js +5 -5
  251. package/node_modules/@weavecode/server/dist/hooks/mirror.js +4 -4
  252. package/node_modules/@weavecode/server/dist/hooks/orchestration-engine.js +7 -7
  253. package/node_modules/@weavecode/server/dist/hooks/orchestration-graph.js +1 -1
  254. package/node_modules/@weavecode/server/dist/hooks/plugin-installer.js +3 -3
  255. package/node_modules/@weavecode/server/dist/hooks/plugin-loader.js +1 -1
  256. package/node_modules/@weavecode/server/dist/hooks/plugin-project-state.js +1 -1
  257. package/node_modules/@weavecode/server/dist/hooks/prompt-flusher.js +1 -1
  258. package/node_modules/@weavecode/server/dist/hooks/promptbox.js +8 -8
  259. package/node_modules/@weavecode/server/dist/hooks/push-notify.js +2 -2
  260. package/node_modules/@weavecode/server/dist/hooks/question-tracker.js +1 -1
  261. package/node_modules/@weavecode/server/dist/hooks/registry.js +1 -1
  262. package/node_modules/@weavecode/server/dist/hooks/resume-runner.js +1 -1
  263. package/node_modules/@weavecode/server/dist/hooks/session-purge.js +1 -1
  264. package/node_modules/@weavecode/server/dist/hooks/side-questions.js +1 -1
  265. package/node_modules/@weavecode/server/dist/hooks/synthetic-sessions.js +1 -1
  266. package/node_modules/@weavecode/server/dist/hooks/toolkit-scan.js +1 -1
  267. package/node_modules/@weavecode/server/dist/hooks/toolkit.js +5 -5
  268. package/node_modules/@weavecode/server/dist/hooks/watch-engine.js +1 -1
  269. package/node_modules/@weavecode/server/dist/index.d.ts +1 -1
  270. package/node_modules/@weavecode/server/dist/index.js +1 -1
  271. package/node_modules/@weavecode/server/dist/install/apply-update.js +1 -1
  272. package/node_modules/@weavecode/server/dist/install/capabilities.js +1 -1
  273. package/node_modules/@weavecode/server/dist/install/codex-toml.js +1 -1
  274. package/node_modules/@weavecode/server/dist/install/file-assets.js +1 -1
  275. package/node_modules/@weavecode/server/dist/install/fingerprint.js +1 -1
  276. package/node_modules/@weavecode/server/dist/install/global-config.js +1 -1
  277. package/node_modules/@weavecode/server/dist/install/global-file-assets.js +1 -1
  278. package/node_modules/@weavecode/server/dist/install/init-files.js +2 -2
  279. package/node_modules/@weavecode/server/dist/install/install-ledger.js +1 -1
  280. package/node_modules/@weavecode/server/dist/install/installer.js +1 -1
  281. package/node_modules/@weavecode/server/dist/install/library-index.js +1 -1
  282. package/node_modules/@weavecode/server/dist/install/mcp-rows.js +1 -1
  283. package/node_modules/@weavecode/server/dist/install/plugin-install.js +1 -1
  284. package/node_modules/@weavecode/server/dist/install/plugin-rows.js +1 -1
  285. package/node_modules/@weavecode/server/dist/install/plugin-templates.js +1 -1
  286. package/node_modules/@weavecode/server/dist/install/project-config.js +1 -1
  287. package/node_modules/@weavecode/server/dist/install/reader.js +1 -1
  288. package/node_modules/@weavecode/server/dist/install/scan-cache.js +1 -1
  289. package/node_modules/@weavecode/server/dist/install/scanner.js +1 -1
  290. package/node_modules/@weavecode/server/dist/install/settings-mcp.js +2 -2
  291. package/node_modules/@weavecode/server/dist/install/updates.js +1 -1
  292. package/node_modules/@weavecode/server/dist/market/builtin.js +1 -1
  293. package/node_modules/@weavecode/server/dist/market/identity.js +1 -1
  294. package/node_modules/@weavecode/server/dist/market/import.js +2 -2
  295. package/node_modules/@weavecode/server/dist/market/refresh.js +1 -1
  296. package/node_modules/@weavecode/server/dist/market/resolve.js +1 -1
  297. package/node_modules/@weavecode/server/dist/market/updates.js +1 -1
  298. package/node_modules/@weavecode/server/dist/registry.js +2 -2
  299. package/node_modules/@weavecode/server/dist/repositories/hook-dispatches.js +5 -5
  300. package/node_modules/@weavecode/server/dist/repositories/hook-events.d.ts +6 -0
  301. package/node_modules/@weavecode/server/dist/repositories/hook-events.js +8 -5
  302. package/node_modules/@weavecode/server/dist/repositories/hook-rules.js +4 -4
  303. package/node_modules/@weavecode/server/dist/repositories/libraries.js +1 -1
  304. package/node_modules/@weavecode/server/dist/repositories/orchestrations.js +7 -7
  305. package/node_modules/@weavecode/server/dist/repositories/plugin-states.js +1 -1
  306. package/node_modules/@weavecode/server/dist/repositories/projects.js +2 -2
  307. package/node_modules/@weavecode/server/dist/repositories/push-subscriptions.js +2 -2
  308. package/node_modules/@weavecode/server/dist/repositories/session-watches.js +4 -4
  309. package/node_modules/@weavecode/server/dist/repositories/sessions.js +2 -2
  310. package/node_modules/@weavecode/server/dist/repositories/uploads.js +11 -11
  311. package/node_modules/@weavecode/server/dist/statusline/cache-sweeper.js +1 -1
  312. package/node_modules/@weavecode/server/dist/statusline/generator.js +1 -1
  313. package/node_modules/@weavecode/server/dist/statusline/manager.js +3 -3
  314. package/node_modules/@weavecode/server/dist/surfaces.js +1 -1
  315. package/node_modules/@weavecode/server/dist/watch/cache.js +1 -1
  316. package/node_modules/@weavecode/server/dist/watch/classifier.js +1 -1
  317. package/node_modules/@weavecode/server/dist/watch/plugin-mods.js +1 -1
  318. package/node_modules/@weavecode/server/dist/watch/sync-scheduler.js +1 -1
  319. package/node_modules/@weavecode/server/dist/watch/watch-service.js +1 -1
  320. package/node_modules/@weavecode/server/package.json +4 -4
  321. package/node_modules/@weavecode/server/web/dist/assets/abnfDiagram-WEYOIA3C-t5OQjhuS.js +1 -0
  322. package/node_modules/@weavecode/server/web/dist/assets/{arc-DH8-rYAa.js → arc-De-uH_Q9.js} +1 -1
  323. package/node_modules/@weavecode/server/web/dist/assets/architectureDiagram-ZHVYKT53-ImPclD43.js +36 -0
  324. package/node_modules/@weavecode/server/web/dist/assets/{blockDiagram-RJAE7QA3-pT5eO-cB.js → blockDiagram-RJAE7QA3-B5xEQs6X.js} +2 -2
  325. package/node_modules/@weavecode/server/web/dist/assets/{c4Diagram-XDPPPE54-DHDBDMb1.js → c4Diagram-XDPPPE54-DP8MjIgJ.js} +2 -2
  326. package/node_modules/@weavecode/server/web/dist/assets/channel-C0RGiobt.js +1 -0
  327. package/node_modules/@weavecode/server/web/dist/assets/{chunk-2E7WHVMD-CT951PH5.js → chunk-2E7WHVMD-C3UFIDyj.js} +1 -1
  328. package/node_modules/@weavecode/server/web/dist/assets/{chunk-2Q5K7J3B-E5AD7_ZY.js → chunk-2Q5K7J3B-Bgw-3YfG.js} +1 -1
  329. package/node_modules/@weavecode/server/web/dist/assets/{chunk-4EMNKR2T-DWz9qkcy.js → chunk-4EMNKR2T-Dy_Wq9qn.js} +1 -1
  330. package/node_modules/@weavecode/server/web/dist/assets/chunk-55XCU76K-D32C0DXX.js +1 -0
  331. package/node_modules/@weavecode/server/web/dist/assets/{chunk-5VM5RSS4-ci6YzbO5.js → chunk-5VM5RSS4-Dpmi-9Gi.js} +1 -1
  332. package/node_modules/@weavecode/server/web/dist/assets/{chunk-JWPE2WC7-CY4mr2f4.js → chunk-JWPE2WC7-CEYXaZDX.js} +1 -1
  333. package/node_modules/@weavecode/server/web/dist/assets/{chunk-VQ5W62QI-CON8zyg8.js → chunk-VQ5W62QI-A616Pgzo.js} +1 -1
  334. package/node_modules/@weavecode/server/web/dist/assets/chunk-XXDRQBXY-CnxFMLWV.js +1 -0
  335. package/node_modules/@weavecode/server/web/dist/assets/chunk-ZCHMQSOR-BhjCTig8.js +2 -0
  336. package/node_modules/@weavecode/server/web/dist/assets/{classDiagram-v2-4MYWR3UA-GiWZ9xtF.js → classDiagram-v2-4MYWR3UA-rzlq5tPv.js} +2 -2
  337. package/node_modules/@weavecode/server/web/dist/assets/cose-bilkent-JH36ORCC-CxWQXzj8.js +1 -0
  338. package/node_modules/@weavecode/server/web/dist/assets/{cynefin-EF2NZ3EQ-9B__MaRM.js → cynefin-EF2NZ3EQ-AFHjx2wU.js} +1 -1
  339. package/node_modules/@weavecode/server/web/dist/assets/cynefinDiagram-WF24UDRP-Bp_Oaf9U.js +62 -0
  340. package/node_modules/@weavecode/server/web/dist/assets/dagre-NK4GIZVX-7oUPIU35.js +4 -0
  341. package/node_modules/@weavecode/server/web/dist/assets/diagram-CBK3MWTC-D_rS_rSY.js +24 -0
  342. package/node_modules/@weavecode/server/web/dist/assets/diagram-I5XIIV2D-Duc_cKMb.js +24 -0
  343. package/node_modules/@weavecode/server/web/dist/assets/{diagram-ODIL2UCW-CckywF4W.js → diagram-ODIL2UCW-DA0XFVXm.js} +2 -2
  344. package/node_modules/@weavecode/server/web/dist/assets/{diagram-PFBEJUXE-Dpjlc7Wh.js → diagram-PFBEJUXE-D1U0Xhtt.js} +2 -2
  345. package/node_modules/@weavecode/server/web/dist/assets/diagram-RJA3I4VV-CbDFY871.js +41 -0
  346. package/node_modules/@weavecode/server/web/dist/assets/{diagram-TYUNFSNR-DgRJ3zL1.js → diagram-TYUNFSNR-jPg9AxQv.js} +2 -2
  347. package/node_modules/@weavecode/server/web/dist/assets/ebnfDiagram-V4P3TTPT-ZHfGTB0N.js +1 -0
  348. package/node_modules/@weavecode/server/web/dist/assets/{elk-QONTBCTQ-Ch6Gs9G9.js → elk-QONTBCTQ-C-ESJrUi.js} +3 -3
  349. package/node_modules/@weavecode/server/web/dist/assets/{erDiagram-KYQIGQAA-COxT-Pxb.js → erDiagram-KYQIGQAA-DGK7TeHj.js} +2 -2
  350. package/node_modules/@weavecode/server/web/dist/assets/{flowDiagram-IUGLLWBU-CJVWnTBa.js → flowDiagram-IUGLLWBU-CVV4rL8v.js} +1 -1
  351. package/node_modules/@weavecode/server/web/dist/assets/ganttDiagram-R7GPNTJY-CuAwNvbm.js +292 -0
  352. package/node_modules/@weavecode/server/web/dist/assets/gitGraphDiagram-PDYL7XHY-D_15Wtf-.js +106 -0
  353. package/node_modules/@weavecode/server/web/dist/assets/infoDiagram-MVDRKAX5-ClqhbrCa.js +2 -0
  354. package/node_modules/@weavecode/server/web/dist/assets/{ishikawaDiagram-HPEHV2GE-BNjEDIZy.js → ishikawaDiagram-HPEHV2GE-CUJ891JX.js} +2 -2
  355. package/node_modules/@weavecode/server/web/dist/assets/{journeyDiagram-BOSHW7O7-Cao6h91a.js → journeyDiagram-BOSHW7O7-B4skiMu-.js} +2 -2
  356. package/node_modules/@weavecode/server/web/dist/assets/{kanban-definition-FNSA4HC5-CXIx2CHQ.js → kanban-definition-FNSA4HC5-UNGJR_y_.js} +2 -2
  357. package/node_modules/@weavecode/server/web/dist/assets/linear-BEB-UwbR.js +1 -0
  358. package/node_modules/@weavecode/server/web/dist/assets/main-B_0jS_Gz.js +1096 -0
  359. package/node_modules/@weavecode/server/web/dist/assets/main-Czzlavi4.css +11 -0
  360. package/node_modules/@weavecode/server/web/dist/assets/{mermaid.core-D39fi_iR.js → mermaid.core-knGXJfjz.js} +4 -4
  361. package/node_modules/@weavecode/server/web/dist/assets/{mindmap-definition-6OY57UG3-DHqpz_AK.js → mindmap-definition-6OY57UG3-CEldbr3a.js} +2 -2
  362. package/node_modules/@weavecode/server/web/dist/assets/modulepreload-polyfill-B5Qt9EMX.js +1 -0
  363. package/node_modules/@weavecode/server/web/dist/assets/pegDiagram-ECIUJNBX-cNCkGLx3.js +1 -0
  364. package/node_modules/@weavecode/server/web/dist/assets/pet-DJCpIDM5.js +1 -0
  365. package/node_modules/@weavecode/server/web/dist/assets/pieDiagram-GNMPY74T-CfMEFiQD.js +39 -0
  366. package/node_modules/@weavecode/server/web/dist/assets/{quadrantDiagram-D57K4MC3-zSM6o7mB.js → quadrantDiagram-D57K4MC3-knmi2rwP.js} +4 -4
  367. package/node_modules/@weavecode/server/web/dist/assets/railroadDiagram-Y72NRBL7-BJ7AzhEo.js +1 -0
  368. package/node_modules/@weavecode/server/web/dist/assets/{requirementDiagram-EQYSW5RA-CbCLBjHf.js → requirementDiagram-EQYSW5RA-Dte2LGQM.js} +2 -2
  369. package/node_modules/@weavecode/server/web/dist/assets/{sankeyDiagram-SY24JHO5-BucVk6EP.js → sankeyDiagram-SY24JHO5-3noLaWgd.js} +2 -2
  370. package/node_modules/@weavecode/server/web/dist/assets/{sequenceDiagram-BLEHNHQU-Dg8CYEnT.js → sequenceDiagram-BLEHNHQU-CclOWTTc.js} +2 -2
  371. package/node_modules/@weavecode/server/web/dist/assets/sizeCapture-INFHLROL-B82sbLhA.js +1 -0
  372. package/node_modules/@weavecode/server/web/dist/assets/{stateDiagram-v2-A6IESKWZ-BvK2l3is.js → stateDiagram-v2-A6IESKWZ-BXfVDwSN.js} +2 -2
  373. package/node_modules/@weavecode/server/web/dist/assets/swimlanes-B3ENRKFQ-D4lKZaeV.js +1 -0
  374. package/node_modules/@weavecode/server/web/dist/assets/swimlanesDiagram-AYQRV4AK-DbdFh_d6.js +8 -0
  375. package/node_modules/@weavecode/server/web/dist/assets/{timeline-definition-JXYKGLGB-CadU4Qq4.js → timeline-definition-JXYKGLGB-D6H6zP5b.js} +2 -2
  376. package/node_modules/@weavecode/server/web/dist/assets/{usecaseDiagram-WPOLBNNX-BYuZwTDZ.js → usecaseDiagram-WPOLBNNX-D2J2bKo_.js} +2 -2
  377. package/node_modules/@weavecode/server/web/dist/assets/{vennDiagram-Q3Y3IDCW-C7zgxe07.js → vennDiagram-Q3Y3IDCW-pdRbIkpB.js} +2 -2
  378. package/node_modules/@weavecode/server/web/dist/assets/{wardleyDiagram-IVAIDKWA-DA4Otf4s.js → wardleyDiagram-IVAIDKWA-Cyd2QPMf.js} +2 -2
  379. package/node_modules/@weavecode/server/web/dist/assets/{xychartDiagram-4URNHDU4-Bs5YGwMU.js → xychartDiagram-4URNHDU4-Bd4BkwVM.js} +2 -2
  380. package/node_modules/@weavecode/server/web/dist/icons/apple-touch-icon.png +0 -0
  381. package/node_modules/@weavecode/server/web/dist/icons/icon-192.png +0 -0
  382. package/node_modules/@weavecode/server/web/dist/icons/icon-512.png +0 -0
  383. package/node_modules/@weavecode/server/web/dist/icons/icon-maskable-512.png +0 -0
  384. package/node_modules/@weavecode/server/web/dist/index.html +12 -2
  385. package/node_modules/@weavecode/server/web/dist/manifest.webmanifest +16 -0
  386. package/node_modules/@weavecode/server/web/dist/pet.html +60 -0
  387. package/node_modules/@weavecode/templates/dist/index.d.ts +2 -0
  388. package/node_modules/@weavecode/templates/dist/index.js +1 -1
  389. package/node_modules/@weavecode/templates/dist/resources/pets/weave-spider/pet.json +7 -0
  390. package/node_modules/@weavecode/templates/dist/resources/pets/weave-spider/spritesheet.png +0 -0
  391. package/node_modules/@weavecode/templates/dist/resources/weave-market/.claude-plugin/marketplace.json +6 -0
  392. package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/.claude-plugin/plugin.json +8 -0
  393. package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/skills/weave-pet-hatcher/SKILL.md +121 -0
  394. package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/skills/weave-pet-hatcher/scripts/assemble-pet.mjs +308 -0
  395. package/node_modules/@weavecode/templates/dist/resources/weave-market/plugins/core-skills/weave-pet-hatcher/weave.json +4 -0
  396. package/node_modules/@weavecode/templates/package.json +2 -2
  397. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/tslib/README.md +3 -8
  398. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/tslib/package.json +1 -1
  399. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/tslib/tslib.d.ts +4 -2
  400. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/tslib/tslib.es6.js +10 -1
  401. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/tslib/tslib.es6.mjs +10 -1
  402. package/node_modules/selfsigned/node_modules/@peculiar/x509/node_modules/tslib/tslib.js +10 -1
  403. package/node_modules/selfsigned/node_modules/pkijs/node_modules/tslib/README.md +3 -8
  404. package/node_modules/selfsigned/node_modules/pkijs/node_modules/tslib/package.json +1 -1
  405. package/node_modules/selfsigned/node_modules/pkijs/node_modules/tslib/tslib.d.ts +4 -2
  406. package/node_modules/selfsigned/node_modules/pkijs/node_modules/tslib/tslib.es6.js +10 -1
  407. package/node_modules/selfsigned/node_modules/pkijs/node_modules/tslib/tslib.es6.mjs +10 -1
  408. package/node_modules/selfsigned/node_modules/pkijs/node_modules/tslib/tslib.js +10 -1
  409. package/package.json +11 -7
  410. package/scripts/preinstall.mjs +70 -0
  411. package/node_modules/@weavecode/server/web/dist/assets/abnfDiagram-WEYOIA3C-CbIFQh0R.js +0 -1
  412. package/node_modules/@weavecode/server/web/dist/assets/architectureDiagram-ZHVYKT53-qnv6S0sc.js +0 -36
  413. package/node_modules/@weavecode/server/web/dist/assets/channel-BHPeeuzN.js +0 -1
  414. package/node_modules/@weavecode/server/web/dist/assets/chunk-55XCU76K-D-SgWD8w.js +0 -1
  415. package/node_modules/@weavecode/server/web/dist/assets/chunk-XXDRQBXY-DXXXZ4pW.js +0 -1
  416. package/node_modules/@weavecode/server/web/dist/assets/chunk-ZCHMQSOR-CukvPvkM.js +0 -2
  417. package/node_modules/@weavecode/server/web/dist/assets/cose-bilkent-JH36ORCC-D7aJ-akq.js +0 -1
  418. package/node_modules/@weavecode/server/web/dist/assets/cynefinDiagram-WF24UDRP-B2ujZh2k.js +0 -62
  419. package/node_modules/@weavecode/server/web/dist/assets/dagre-NK4GIZVX-nHaB6IWf.js +0 -4
  420. package/node_modules/@weavecode/server/web/dist/assets/diagram-CBK3MWTC-xKfjDvgr.js +0 -24
  421. package/node_modules/@weavecode/server/web/dist/assets/diagram-I5XIIV2D-BHT2-5mY.js +0 -24
  422. package/node_modules/@weavecode/server/web/dist/assets/diagram-RJA3I4VV-M6WznOaW.js +0 -41
  423. package/node_modules/@weavecode/server/web/dist/assets/ebnfDiagram-V4P3TTPT-BzzVN__a.js +0 -1
  424. package/node_modules/@weavecode/server/web/dist/assets/ganttDiagram-R7GPNTJY-BkRpWPUl.js +0 -292
  425. package/node_modules/@weavecode/server/web/dist/assets/gitGraphDiagram-PDYL7XHY-Ba8BJcvZ.js +0 -106
  426. package/node_modules/@weavecode/server/web/dist/assets/index-CtifxEiF.css +0 -11
  427. package/node_modules/@weavecode/server/web/dist/assets/index-FwH9INgS.js +0 -1090
  428. package/node_modules/@weavecode/server/web/dist/assets/infoDiagram-MVDRKAX5-HTQ5FUNK.js +0 -2
  429. package/node_modules/@weavecode/server/web/dist/assets/linear-65WmlvQb.js +0 -1
  430. package/node_modules/@weavecode/server/web/dist/assets/pegDiagram-ECIUJNBX-Cpy1nsER.js +0 -1
  431. package/node_modules/@weavecode/server/web/dist/assets/pieDiagram-GNMPY74T-B1IyNqzr.js +0 -39
  432. package/node_modules/@weavecode/server/web/dist/assets/railroadDiagram-Y72NRBL7-oM4XJIwA.js +0 -1
  433. package/node_modules/@weavecode/server/web/dist/assets/sizeCapture-INFHLROL-C51zb7Oc.js +0 -1
  434. package/node_modules/@weavecode/server/web/dist/assets/swimlanes-B3ENRKFQ-Ds7QOfXW.js +0 -1
  435. package/node_modules/@weavecode/server/web/dist/assets/swimlanesDiagram-AYQRV4AK-ByBF02UJ.js +0 -8
@@ -0,0 +1,308 @@
1
+ #!/usr/bin/env node
2
+ // weave-pet-hatcher 拼装校验脚本:行条带 → 切格校验 → 整图 + pet.json + contact sheet。
3
+ // 纯 node 零依赖(PNG 解码/编码手写,zlib 走内置)。只认 8-bit PNG
4
+ // (RGBA / RGB / 调色色);其他格式让用户先转 PNG。
5
+ // 用法见 SKILL.md §3。
6
+ import { deflateSync, inflateSync } from 'node:zlib';
7
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
8
+ import path from 'node:path';
9
+
10
+ const CELL_W = 192;
11
+ const CELL_H = 208;
12
+ const COLS = 8;
13
+ const ROW_FRAMES = [6, 8, 8, 4, 5, 8, 6, 6, 6, 8, 8];
14
+ const ROW_NAMES = [
15
+ 'idle', 'running-right', 'running-left', 'waving', 'jumping',
16
+ 'failed', 'waiting', 'running', 'review', 'look-a', 'look-b',
17
+ ];
18
+
19
+ function parseArgs(argv) {
20
+ const out = {};
21
+ for (let i = 2; i < argv.length; i += 2) {
22
+ const key = argv[i]?.replace(/^--/, '');
23
+ if (!key || argv[i + 1] === undefined) usage(`missing value for --${key ?? '?'}`);
24
+ out[key] = argv[i + 1];
25
+ }
26
+ return out;
27
+ }
28
+
29
+ function usage(msg) {
30
+ console.error(`assemble-pet: ${msg}
31
+ usage: node assemble-pet.mjs --rows-dir <dir> --out-dir <dir> --pet-id <id> \\
32
+ --display-name "<Name>" --description "<text>" [--version 1|2]`);
33
+ process.exit(2);
34
+ }
35
+
36
+ const args = parseArgs(process.argv);
37
+ const rowsDir = args['rows-dir'];
38
+ const outDir = args['out-dir'];
39
+ const petId = args['pet-id'];
40
+ const displayName = args['display-name'] ?? petId;
41
+ const description = args['description'] ?? '';
42
+ const version = Number(args['version'] ?? 2);
43
+ if (!rowsDir || !outDir || !petId) usage('rows-dir / out-dir / pet-id are required');
44
+ if (![1, 2].includes(version)) usage('--version must be 1 or 2');
45
+ if (!/^[a-z0-9][a-z0-9-]{0,63}$/.test(petId)) {
46
+ usage('pet-id must match [a-z0-9][a-z0-9-]{0,63}');
47
+ }
48
+ const rowCount = version === 2 ? 11 : 9;
49
+
50
+ // ---------------------------------------------------------------------------
51
+ // PNG decode(8-bit,color type 2/3/6,filter 0-4)
52
+ // ---------------------------------------------------------------------------
53
+
54
+ function decodePng(bytes) {
55
+ if (bytes.readUInt32BE(0) !== 0x89504e47) throw new Error('not a PNG file');
56
+ let pos = 8;
57
+ let width = 0;
58
+ let height = 0;
59
+ let colorType = 0;
60
+ const idat = [];
61
+ let palette = null;
62
+ let trns = null;
63
+ while (pos < bytes.length) {
64
+ const len = bytes.readUInt32BE(pos);
65
+ const type = bytes.toString('ascii', pos + 4, pos + 8);
66
+ const data = bytes.subarray(pos + 8, pos + 8 + len);
67
+ if (type === 'IHDR') {
68
+ width = data.readUInt32BE(0);
69
+ height = data.readUInt32BE(4);
70
+ const bitDepth = data[8];
71
+ colorType = data[9];
72
+ if (bitDepth !== 8) throw new Error(`unsupported bit depth ${bitDepth} (need 8)`);
73
+ if (![2, 3, 6].includes(colorType)) {
74
+ throw new Error(`unsupported color type ${colorType} (need 2/3/6)`);
75
+ }
76
+ } else if (type === 'PLTE') {
77
+ palette = Buffer.from(data);
78
+ } else if (type === 'tRNS') {
79
+ trns = Buffer.from(data);
80
+ } else if (type === 'IDAT') {
81
+ idat.push(data);
82
+ } else if (type === 'IEND') {
83
+ break;
84
+ }
85
+ pos += 12 + len;
86
+ }
87
+ const channels = colorType === 6 ? 4 : colorType === 2 ? 3 : 1;
88
+ const stride = width * channels;
89
+ const raw = inflateSync(Buffer.concat(idat));
90
+ const bpp = channels;
91
+ const out = Buffer.alloc(width * height * 4);
92
+ const prev = Buffer.alloc(stride);
93
+ const line = Buffer.alloc(stride);
94
+ for (let y = 0; y < height; y++) {
95
+ const off = y * (stride + 1);
96
+ const filter = raw[off];
97
+ raw.copy(line, 0, off + 1, off + 1 + stride);
98
+ for (let x = 0; x < stride; x++) {
99
+ const a = x >= bpp ? line[x - bpp] : 0;
100
+ const b = prev[x];
101
+ const c = x >= bpp ? prev[x - bpp] : 0;
102
+ let v = line[x];
103
+ if (filter === 1) v += a;
104
+ else if (filter === 2) v += b;
105
+ else if (filter === 3) v += (a + b) >> 1;
106
+ else if (filter === 4) {
107
+ const p = a + b - c;
108
+ const pa = Math.abs(p - a);
109
+ const pb = Math.abs(p - b);
110
+ const pc = Math.abs(p - c);
111
+ v += pa <= pb && pa <= pc ? a : pb <= pc ? b : c;
112
+ }
113
+ line[x] = v & 0xff;
114
+ }
115
+ prev.set(line);
116
+ for (let x = 0; x < width; x++) {
117
+ const di = (y * width + x) * 4;
118
+ if (colorType === 6) {
119
+ out[di] = line[x * 4];
120
+ out[di + 1] = line[x * 4 + 1];
121
+ out[di + 2] = line[x * 4 + 2];
122
+ out[di + 3] = line[x * 4 + 3];
123
+ } else if (colorType === 2) {
124
+ out[di] = line[x * 3];
125
+ out[di + 1] = line[x * 3 + 1];
126
+ out[di + 2] = line[x * 3 + 2];
127
+ out[di + 3] = 255;
128
+ } else {
129
+ const idx = line[x];
130
+ out[di] = palette[idx * 3];
131
+ out[di + 1] = palette[idx * 3 + 1];
132
+ out[di + 2] = palette[idx * 3 + 2];
133
+ out[di + 3] = trns && idx < trns.length ? trns[idx] : 255;
134
+ }
135
+ }
136
+ }
137
+ return { width, height, rgba: out };
138
+ }
139
+
140
+ // ---------------------------------------------------------------------------
141
+ // PNG encode(RGBA8,filter 全 0)
142
+ // ---------------------------------------------------------------------------
143
+
144
+ const CRC_TABLE = (() => {
145
+ const t = new Int32Array(256);
146
+ for (let n = 0; n < 256; n++) {
147
+ let c = n;
148
+ for (let k = 0; k < 8; k++) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
149
+ t[n] = c;
150
+ }
151
+ return t;
152
+ })();
153
+
154
+ function crc32(bytes) {
155
+ let c = -1;
156
+ for (const b of bytes) c = CRC_TABLE[(c ^ b) & 0xff] ^ (c >>> 8);
157
+ return (c ^ -1) >>> 0;
158
+ }
159
+
160
+ function chunk(type, data) {
161
+ const len = Buffer.alloc(4);
162
+ len.writeUInt32BE(data.length);
163
+ const body = Buffer.concat([Buffer.from(type, 'ascii'), data]);
164
+ const crc = Buffer.alloc(4);
165
+ crc.writeUInt32BE(crc32(body));
166
+ return Buffer.concat([len, body, crc]);
167
+ }
168
+
169
+ function encodePng(rgba, width, height) {
170
+ const ihdr = Buffer.alloc(13);
171
+ ihdr.writeUInt32BE(width, 0);
172
+ ihdr.writeUInt32BE(height, 4);
173
+ ihdr[8] = 8;
174
+ ihdr[9] = 6;
175
+ const raw = Buffer.alloc((width * 4 + 1) * height);
176
+ for (let y = 0; y < height; y++) {
177
+ raw[y * (width * 4 + 1)] = 0;
178
+ rgba.copy(raw, y * (width * 4 + 1) + 1, y * width * 4, (y + 1) * width * 4);
179
+ }
180
+ return Buffer.concat([
181
+ Buffer.from([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]),
182
+ chunk('IHDR', ihdr),
183
+ chunk('IDAT', deflateSync(raw, { level: 9 })),
184
+ chunk('IEND', Buffer.alloc(0)),
185
+ ]);
186
+ }
187
+
188
+ // ---------------------------------------------------------------------------
189
+ // 抠像底 → alpha:四角取底色,与底色距离 < HARD 的像素按距离转透明
190
+ // (四角颜色不一致 >40 视为无抠像底,原样保留)
191
+ // ---------------------------------------------------------------------------
192
+
193
+ function chromaToAlpha(rgba, width, height) {
194
+ const cornerIdx = [0, (width - 1) * 4, (height - 1) * width * 4, ((height - 1) * width + width - 1) * 4];
195
+ const key = cornerIdx.map((i) => [rgba[i], rgba[i + 1], rgba[i + 2]]);
196
+ for (const c of key.slice(1)) {
197
+ if (Math.hypot(c[0] - key[0][0], c[1] - key[0][1], c[2] - key[0][2]) > 40) return false;
198
+ }
199
+ const HARD = 90;
200
+ for (let p = 0; p < width * height; p++) {
201
+ const i = p * 4;
202
+ const d = Math.hypot(rgba[i] - key[0][0], rgba[i + 1] - key[0][1], rgba[i + 2] - key[0][2]);
203
+ if (d < HARD) rgba[i + 3] = Math.min(rgba[i + 3], Math.round((d / HARD) * rgba[i + 3]));
204
+ if (rgba[i + 3] === 0) {
205
+ rgba[i] = key[0][0];
206
+ rgba[i + 1] = key[0][1];
207
+ rgba[i + 2] = key[0][2];
208
+ }
209
+ }
210
+ return true;
211
+ }
212
+
213
+ // ---------------------------------------------------------------------------
214
+ // main:逐行校验 → 拼整图 → pet.json → contact sheet(一格宽缩略竖排)
215
+ // ---------------------------------------------------------------------------
216
+
217
+ mkdirSync(outDir, { recursive: true });
218
+ const sheetW = COLS * CELL_W;
219
+ const sheetH = rowCount * CELL_H;
220
+ const sheet = Buffer.alloc(sheetW * sheetH * 4);
221
+
222
+ for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {
223
+ const framesExpected = ROW_FRAMES[rowIdx];
224
+ const file = path.join(rowsDir, `row-${rowIdx}.png`);
225
+ let img;
226
+ try {
227
+ img = decodePng(readFileSync(file));
228
+ } catch (e) {
229
+ console.error(`row-${rowIdx}: cannot read ${file} — ${e.message}`);
230
+ process.exit(1);
231
+ }
232
+ if (img.height !== CELL_H) {
233
+ console.error(`row-${rowIdx}: strip height ${img.height} != ${CELL_H} — regenerate this row`);
234
+ process.exit(1);
235
+ }
236
+ if (img.width !== framesExpected * CELL_W) {
237
+ console.error(
238
+ `row-${rowIdx}: strip width ${img.width} != ${framesExpected} cells x ${CELL_W} — regenerate this row`,
239
+ );
240
+ process.exit(1);
241
+ }
242
+ const despilled = chromaToAlpha(img.rgba, img.width, img.height);
243
+ for (let y = 0; y < CELL_H; y++) {
244
+ for (let x = 0; x < img.width; x++) {
245
+ const si = (y * img.width + x) * 4;
246
+ const di = ((rowIdx * CELL_H + y) * sheetW + x) * 4;
247
+ sheet[di] = img.rgba[si];
248
+ sheet[di + 1] = img.rgba[si + 1];
249
+ sheet[di + 2] = img.rgba[si + 2];
250
+ sheet[di + 3] = img.rgba[si + 3];
251
+ }
252
+ }
253
+ console.log(`row-${rowIdx} (${ROW_NAMES[rowIdx]}): ok (${framesExpected} frames${despilled ? ', chroma keyed' : ''})`);
254
+ }
255
+
256
+ writeFileSync(path.join(outDir, 'spritesheet.png'), encodePng(sheet, sheetW, sheetH));
257
+ writeFileSync(
258
+ path.join(outDir, 'pet.json'),
259
+ `${JSON.stringify(
260
+ {
261
+ id: petId,
262
+ displayName,
263
+ description,
264
+ spriteVersionNumber: version,
265
+ spritesheetPath: 'spritesheet.png',
266
+ },
267
+ null,
268
+ 2,
269
+ )}\n`,
270
+ );
271
+
272
+ // contact sheet:每行缩略(一格宽)竖排,行号标注在左侧留白
273
+ const csCell = Math.round(CELL_W / 2); // 缩略格宽 96
274
+ const csCellH = Math.round((CELL_H / CELL_W) * csCell);
275
+ const csPad = 28;
276
+ const csW = csPad + COLS * csCell + 8;
277
+ const csH = rowCount * (csCellH + 6) + 8;
278
+ const cs = Buffer.alloc(csW * csH * 4);
279
+ // 白底
280
+ for (let p = 0; p < csW * csH; p++) {
281
+ cs[p * 4] = 250;
282
+ cs[p * 4 + 1] = 250;
283
+ cs[p * 4 + 2] = 250;
284
+ cs[p * 4 + 3] = 255;
285
+ }
286
+ for (let rowIdx = 0; rowIdx < rowCount; rowIdx++) {
287
+ const oy = rowIdx * (csCellH + 6) + 4;
288
+ for (let cy = 0; cy < csCellH; cy++) {
289
+ for (let cx = 0; cx < COLS * csCell; cx++) {
290
+ // 最近邻取样回整图
291
+ const sx = Math.floor((cx / csCell)) * CELL_W + Math.floor(((cx % csCell) / csCell) * CELL_W);
292
+ const sy = Math.floor((cy / csCellH) * CELL_H);
293
+ const si = ((rowIdx * CELL_H + sy) * sheetW + sx) * 4;
294
+ const di = ((oy + cy) * csW + csPad + cx) * 4;
295
+ const a = sheet[si + 3] / 255;
296
+ if (a === 0) continue;
297
+ cs[di] = Math.round(sheet[si] * a + cs[di] * (1 - a));
298
+ cs[di + 1] = Math.round(sheet[si + 1] * a + cs[di + 1] * (1 - a));
299
+ cs[di + 2] = Math.round(sheet[si + 2] * a + cs[di + 2] * (1 - a));
300
+ }
301
+ }
302
+ }
303
+ writeFileSync(path.join(outDir, 'contact-sheet.png'), encodePng(cs, csW, csH));
304
+
305
+ console.log(`\nassembled: ${path.join(outDir, 'spritesheet.png')} (${sheetW}x${sheetH})`);
306
+ console.log(`manifest: ${path.join(outDir, 'pet.json')} (v${version})`);
307
+ console.log(`contact sheet: ${path.join(outDir, 'contact-sheet.png')} — inspect it row by row`);
308
+ console.log('next: copy pet.json + spritesheet.png into <pets-root>/<pet-id>/');
@@ -0,0 +1,4 @@
1
+ {
2
+ "targets": ["claude", "codex"],
3
+ "kind": "skill"
4
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weavecode/templates",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "Weave built-in resource repository (marketplace-shaped): packs, rule packs, and init assets",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -20,6 +20,6 @@
20
20
  "node": ">=22.5.0"
21
21
  },
22
22
  "dependencies": {
23
- "@weavecode/core": "^0.1.6"
23
+ "@weavecode/core": "^0.1.8"
24
24
  }
25
25
  }
@@ -138,14 +138,9 @@ For JSPM users:
138
138
 
139
139
  ## Deployment
140
140
 
141
- - Choose your new version number
142
- - Set it in `package.json` and `bower.json`
143
- - Create a tag: `git tag [version]`
144
- - Push the tag: `git push --tags`
145
- - Create a [release in GitHub](https://github.com/microsoft/tslib/releases)
146
- - Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow
147
-
148
- Done.
141
+ - Run the **Bump tslib** GitHub workflow and choose patch, minor, or major
142
+ - Review and squash-merge the generated version-bump PR
143
+ - The release runs automatically: tag, build, publish to npm, and create a GitHub release with generated notes
149
144
 
150
145
  # Contribute
151
146
 
@@ -2,7 +2,7 @@
2
2
  "name": "tslib",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "2.8.1",
5
+ "version": "2.9.1",
6
6
  "license": "0BSD",
7
7
  "description": "Runtime library for TypeScript helper functions",
8
8
  "keywords": [
@@ -453,8 +453,10 @@ export declare function __addDisposableResource<T>(env: { stack: { value?: unkno
453
453
  export declare function __disposeResources(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }): any;
454
454
 
455
455
  /**
456
- * Transforms a relative import specifier ending in a non-declaration TypeScript file extension to its JavaScript file extension counterpart.
456
+ * Transforms a relative import specifier using additional extension mappings, falling back to rewriting non-declaration TypeScript file extensions to their JavaScript counterparts.
457
457
  * @param path The import specifier.
458
458
  * @param preserveJsx Causes '*.tsx' to transform to '*.jsx' instead of '*.js'. Should be true when `--jsx` is set to `preserve`.
459
+ * @param extraExtensions Additional file extension mappings, including leading dots, checked in enumeration order before the built-in rewrites.
460
+ * @param ignoreCase Whether to ignore case when matching additional file extensions.
459
461
  */
460
- export declare function __rewriteRelativeImportExtension(path: string, preserveJsx?: boolean): string;
462
+ export declare function __rewriteRelativeImportExtension(path: string, preserveJsx?: boolean, extraExtensions?: { [extension: string]: string }, ignoreCase?: boolean): string;
@@ -357,8 +357,17 @@ export function __disposeResources(env) {
357
357
  return next();
358
358
  }
359
359
 
360
- export function __rewriteRelativeImportExtension(path, preserveJsx) {
360
+ export function __rewriteRelativeImportExtension(path, preserveJsx, extraExtensions, ignoreCase) {
361
361
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
362
+ if (extraExtensions) {
363
+ for (var extension in extraExtensions) {
364
+ var suffix = path.slice(-extension.length);
365
+ if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {
366
+ var output = extraExtensions[extension];
367
+ return output === extension ? path : path.slice(0, -extension.length) + output;
368
+ }
369
+ }
370
+ }
362
371
  return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
363
372
  return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
364
373
  });
@@ -356,8 +356,17 @@ export function __disposeResources(env) {
356
356
  return next();
357
357
  }
358
358
 
359
- export function __rewriteRelativeImportExtension(path, preserveJsx) {
359
+ export function __rewriteRelativeImportExtension(path, preserveJsx, extraExtensions, ignoreCase) {
360
360
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
361
+ if (extraExtensions) {
362
+ for (var extension in extraExtensions) {
363
+ var suffix = path.slice(-extension.length);
364
+ if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {
365
+ var output = extraExtensions[extension];
366
+ return output === extension ? path : path.slice(0, -extension.length) + output;
367
+ }
368
+ }
369
+ }
361
370
  return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
362
371
  return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
363
372
  });
@@ -405,8 +405,17 @@ var __rewriteRelativeImportExtension;
405
405
  return next();
406
406
  };
407
407
 
408
- __rewriteRelativeImportExtension = function (path, preserveJsx) {
408
+ __rewriteRelativeImportExtension = function (path, preserveJsx, extraExtensions, ignoreCase) {
409
409
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
410
+ if (extraExtensions) {
411
+ for (var extension in extraExtensions) {
412
+ var suffix = path.slice(-extension.length);
413
+ if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {
414
+ var output = extraExtensions[extension];
415
+ return output === extension ? path : path.slice(0, -extension.length) + output;
416
+ }
417
+ }
418
+ }
410
419
  return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
411
420
  return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
412
421
  });
@@ -138,14 +138,9 @@ For JSPM users:
138
138
 
139
139
  ## Deployment
140
140
 
141
- - Choose your new version number
142
- - Set it in `package.json` and `bower.json`
143
- - Create a tag: `git tag [version]`
144
- - Push the tag: `git push --tags`
145
- - Create a [release in GitHub](https://github.com/microsoft/tslib/releases)
146
- - Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow
147
-
148
- Done.
141
+ - Run the **Bump tslib** GitHub workflow and choose patch, minor, or major
142
+ - Review and squash-merge the generated version-bump PR
143
+ - The release runs automatically: tag, build, publish to npm, and create a GitHub release with generated notes
149
144
 
150
145
  # Contribute
151
146
 
@@ -2,7 +2,7 @@
2
2
  "name": "tslib",
3
3
  "author": "Microsoft Corp.",
4
4
  "homepage": "https://www.typescriptlang.org/",
5
- "version": "2.8.1",
5
+ "version": "2.9.1",
6
6
  "license": "0BSD",
7
7
  "description": "Runtime library for TypeScript helper functions",
8
8
  "keywords": [
@@ -453,8 +453,10 @@ export declare function __addDisposableResource<T>(env: { stack: { value?: unkno
453
453
  export declare function __disposeResources(env: { stack: { value?: unknown, dispose?: Function, async: boolean }[]; error: unknown; hasError: boolean; }): any;
454
454
 
455
455
  /**
456
- * Transforms a relative import specifier ending in a non-declaration TypeScript file extension to its JavaScript file extension counterpart.
456
+ * Transforms a relative import specifier using additional extension mappings, falling back to rewriting non-declaration TypeScript file extensions to their JavaScript counterparts.
457
457
  * @param path The import specifier.
458
458
  * @param preserveJsx Causes '*.tsx' to transform to '*.jsx' instead of '*.js'. Should be true when `--jsx` is set to `preserve`.
459
+ * @param extraExtensions Additional file extension mappings, including leading dots, checked in enumeration order before the built-in rewrites.
460
+ * @param ignoreCase Whether to ignore case when matching additional file extensions.
459
461
  */
460
- export declare function __rewriteRelativeImportExtension(path: string, preserveJsx?: boolean): string;
462
+ export declare function __rewriteRelativeImportExtension(path: string, preserveJsx?: boolean, extraExtensions?: { [extension: string]: string }, ignoreCase?: boolean): string;
@@ -357,8 +357,17 @@ export function __disposeResources(env) {
357
357
  return next();
358
358
  }
359
359
 
360
- export function __rewriteRelativeImportExtension(path, preserveJsx) {
360
+ export function __rewriteRelativeImportExtension(path, preserveJsx, extraExtensions, ignoreCase) {
361
361
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
362
+ if (extraExtensions) {
363
+ for (var extension in extraExtensions) {
364
+ var suffix = path.slice(-extension.length);
365
+ if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {
366
+ var output = extraExtensions[extension];
367
+ return output === extension ? path : path.slice(0, -extension.length) + output;
368
+ }
369
+ }
370
+ }
362
371
  return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
363
372
  return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
364
373
  });
@@ -356,8 +356,17 @@ export function __disposeResources(env) {
356
356
  return next();
357
357
  }
358
358
 
359
- export function __rewriteRelativeImportExtension(path, preserveJsx) {
359
+ export function __rewriteRelativeImportExtension(path, preserveJsx, extraExtensions, ignoreCase) {
360
360
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
361
+ if (extraExtensions) {
362
+ for (var extension in extraExtensions) {
363
+ var suffix = path.slice(-extension.length);
364
+ if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {
365
+ var output = extraExtensions[extension];
366
+ return output === extension ? path : path.slice(0, -extension.length) + output;
367
+ }
368
+ }
369
+ }
361
370
  return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
362
371
  return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
363
372
  });
@@ -405,8 +405,17 @@ var __rewriteRelativeImportExtension;
405
405
  return next();
406
406
  };
407
407
 
408
- __rewriteRelativeImportExtension = function (path, preserveJsx) {
408
+ __rewriteRelativeImportExtension = function (path, preserveJsx, extraExtensions, ignoreCase) {
409
409
  if (typeof path === "string" && /^\.\.?\//.test(path)) {
410
+ if (extraExtensions) {
411
+ for (var extension in extraExtensions) {
412
+ var suffix = path.slice(-extension.length);
413
+ if (suffix === extension || ignoreCase && suffix.toLowerCase() === extension.toLowerCase()) {
414
+ var output = extraExtensions[extension];
415
+ return output === extension ? path : path.slice(0, -extension.length) + output;
416
+ }
417
+ }
418
+ }
410
419
  return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
411
420
  return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
412
421
  });
package/package.json CHANGED
@@ -1,14 +1,18 @@
1
1
  {
2
2
  "name": "@weavecode/weave",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "All-in-one install for weave — CLI, daemon + dashboard, harness drivers, and the built-in resource repo in a single npm package (self-contained bundle)",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "weave": "./bin/weave.js"
8
8
  },
9
9
  "files": [
10
- "bin"
10
+ "bin",
11
+ "scripts"
11
12
  ],
13
+ "scripts": {
14
+ "preinstall": "node ./scripts/preinstall.mjs"
15
+ },
12
16
  "sideEffects": false,
13
17
  "author": "zijing66",
14
18
  "license": "Apache-2.0",
@@ -32,11 +36,11 @@
32
36
  "registry": "https://registry.npmjs.org/"
33
37
  },
34
38
  "dependencies": {
35
- "@weavecode/core": "^0.1.6",
36
- "@weavecode/harness": "^0.1.6",
37
- "@weavecode/templates": "^0.1.6",
38
- "@weavecode/server": "^0.1.6",
39
- "@weavecode/cli": "^0.1.6",
39
+ "@weavecode/core": "^0.1.8",
40
+ "@weavecode/harness": "^0.1.8",
41
+ "@weavecode/templates": "^0.1.8",
42
+ "@weavecode/server": "^0.1.8",
43
+ "@weavecode/cli": "^0.1.8",
40
44
  "zod": "^3.25.76",
41
45
  "smol-toml": "^1.3.0",
42
46
  "@modelcontextprotocol/sdk": "1.32.1",
@@ -0,0 +1,70 @@
1
+ /**
2
+ * 全局安装/升级前的尽力停机:旧 daemon 还跑着时,新版本一启动就会和它抢同一个
3
+ * 库(WAL 写锁、迁移 DDL),升级期最容易出岔子的就是这一段。
4
+ *
5
+ * 停不掉也继续装——安装失败比留着一个旧进程更糟,所以这里吞掉所有错误、恒
6
+ * exit 0。Windows 上没有 SIGTERM 语义,process.kill 就是强制终止;daemon 的
7
+ * 优雅收尾(WAL checkpoint)由它自己的 shutdown 负责,这里只保证它先退场。
8
+ */
9
+ import { existsSync, readFileSync } from 'node:fs';
10
+ import { homedir } from 'node:os';
11
+ import path from 'node:path';
12
+
13
+ function configDir() {
14
+ if (process.platform === 'win32') {
15
+ return process.env.APPDATA ?? path.join(homedir(), 'AppData', 'Roaming');
16
+ }
17
+ if (process.platform === 'darwin') {
18
+ return path.join(homedir(), 'Library', 'Application Support');
19
+ }
20
+ return process.env.XDG_CONFIG_HOME ?? path.join(homedir(), '.config');
21
+ }
22
+
23
+ /** daemon 状态文件:0.1.7 起在 `cache/` 下,更早的版本放在数据目录根部。 */
24
+ function readDaemonState() {
25
+ const root = path.join(configDir(), 'weave');
26
+ for (const candidate of [path.join(root, 'cache', 'daemon.json'), path.join(root, 'daemon.json')]) {
27
+ try {
28
+ if (!existsSync(candidate)) continue;
29
+ const parsed = JSON.parse(readFileSync(candidate, 'utf8'));
30
+ if (parsed && typeof parsed === 'object') return parsed;
31
+ } catch {
32
+ /* 坏文件/读不到:当作没有 daemon */
33
+ }
34
+ }
35
+ return null;
36
+ }
37
+
38
+ function pidAlive(pid) {
39
+ try {
40
+ process.kill(pid, 0);
41
+ return true;
42
+ } catch (e) {
43
+ // EPERM = 进程在但没权限:仍算活着(不去碰它)
44
+ return e && e.code !== 'ESRCH';
45
+ }
46
+ }
47
+
48
+ // 只在**全局安装**时动手:workspace 里跑 `pnpm install` 会连开发者本机的
49
+ // daemon 一起杀掉,那是灾难。npm 分别在两者上设这个环境变量。
50
+ if (process.env.npm_config_global !== 'true') process.exit(0);
51
+
52
+ const state = readDaemonState();
53
+ const pid = state && typeof state.pid === 'number' ? state.pid : null;
54
+ if (!pid || pid <= 0 || !pidAlive(pid)) process.exit(0);
55
+
56
+ try {
57
+ process.kill(pid);
58
+ } catch {
59
+ process.exit(0); // 没权限/已经退了:都不该挡住安装
60
+ }
61
+
62
+ // 等它真退:shutdown 链(inbox worker 的 DB 连接、WAL 锁释放)在 kill 之后还在收尾,
63
+ // 立刻返回会让紧跟的新进程撞上垂死锁。5s 上限,超时也继续装。
64
+ const deadline = Date.now() + 5_000;
65
+ const timer = setInterval(() => {
66
+ if (!pidAlive(pid) || Date.now() > deadline) {
67
+ clearInterval(timer);
68
+ process.exit(0);
69
+ }
70
+ }, 100);
@@ -1 +0,0 @@
1
- import{g as p,r as u,d as a}from"./chunk-2E7WHVMD-CT951PH5.js";import{p as f}from"./chunk-JWPE2WC7-CY4mr2f4.js";import{_ as n,l as o}from"./mermaid.core-D39fi_iR.js";import"./index-FwH9INgS.js";import{M as c,b as d}from"./cynefin-EF2NZ3EQ-9B__MaRM.js";var v=d().RailroadAbnf.parser.LangiumParser,i=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),l=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:l,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return i(e.element);case"AbnfOptionalGroup":return{type:"optional",element:i(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:i(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},B={parser:R,db:a,renderer:u,styles:p};export{B as diagram};