@winspan/claude-forge 8.53.2 → 8.54.4

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 (394) hide show
  1. package/DEVELOPMENT.md +290 -221
  2. package/README.md +50 -8
  3. package/dist/cli/commands/skills.d.ts.map +1 -1
  4. package/dist/cli/commands/skills.js +7 -3
  5. package/dist/cli/commands/skills.js.map +1 -1
  6. package/dist/cli/init/hook-manager.d.ts +1 -1
  7. package/dist/cli/init/hook-manager.d.ts.map +1 -1
  8. package/dist/cli/init/hook-manager.js +1 -0
  9. package/dist/cli/init/hook-manager.js.map +1 -1
  10. package/dist/core/storage/events.d.ts.map +1 -1
  11. package/dist/core/storage/events.js +0 -1
  12. package/dist/core/storage/events.js.map +1 -1
  13. package/dist/core/storage/maintenance.d.ts +25 -3
  14. package/dist/core/storage/maintenance.d.ts.map +1 -1
  15. package/dist/core/storage/maintenance.js +33 -4
  16. package/dist/core/storage/maintenance.js.map +1 -1
  17. package/dist/core/storage/routing.d.ts +4 -0
  18. package/dist/core/storage/routing.d.ts.map +1 -1
  19. package/dist/core/storage/routing.js +10 -4
  20. package/dist/core/storage/routing.js.map +1 -1
  21. package/dist/core/storage/sessions.d.ts +17 -0
  22. package/dist/core/storage/sessions.d.ts.map +1 -1
  23. package/dist/core/storage/sessions.js +64 -0
  24. package/dist/core/storage/sessions.js.map +1 -1
  25. package/dist/core/storage/skills.d.ts +4 -0
  26. package/dist/core/storage/skills.d.ts.map +1 -1
  27. package/dist/core/storage/skills.js +10 -2
  28. package/dist/core/storage/skills.js.map +1 -1
  29. package/dist/core/storage/sqlite.d.ts +5 -0
  30. package/dist/core/storage/sqlite.d.ts.map +1 -1
  31. package/dist/core/storage/sqlite.js +6 -0
  32. package/dist/core/storage/sqlite.js.map +1 -1
  33. package/dist/core/storage/tasks.d.ts.map +1 -1
  34. package/dist/core/storage/tasks.js +2 -0
  35. package/dist/core/storage/tasks.js.map +1 -1
  36. package/dist/core/types.d.ts +7 -0
  37. package/dist/core/types.d.ts.map +1 -1
  38. package/dist/daemon/index.d.ts.map +1 -1
  39. package/dist/daemon/index.js +19 -4
  40. package/dist/daemon/index.js.map +1 -1
  41. package/dist/skills/official/official-openspec.md +89 -0
  42. package/dist/skills/official-skills.d.ts.map +1 -1
  43. package/dist/skills/official-skills.js +1 -0
  44. package/dist/skills/official-skills.js.map +1 -1
  45. package/dist/skills/registry.d.ts.map +1 -1
  46. package/dist/skills/registry.js +13 -2
  47. package/dist/skills/registry.js.map +1 -1
  48. package/dist/skills/semantic-matcher.d.ts +2 -2
  49. package/dist/skills/semantic-matcher.d.ts.map +1 -1
  50. package/dist/skills/semantic-matcher.js +14 -19
  51. package/dist/skills/semantic-matcher.js.map +1 -1
  52. package/dist/skills/upgrade-engine.d.ts +3 -1
  53. package/dist/skills/upgrade-engine.d.ts.map +1 -1
  54. package/dist/skills/upgrade-engine.js +25 -14
  55. package/dist/skills/upgrade-engine.js.map +1 -1
  56. package/dist/web/analytics/weekly-report.d.ts.map +1 -1
  57. package/dist/web/analytics/weekly-report.js +21 -29
  58. package/dist/web/analytics/weekly-report.js.map +1 -1
  59. package/dist/web/routes/patch.d.ts.map +1 -1
  60. package/dist/web/routes/patch.js +32 -2
  61. package/dist/web/routes/patch.js.map +1 -1
  62. package/dist/web/routes/sessions.d.ts.map +1 -1
  63. package/dist/web/routes/sessions.js +9 -7
  64. package/dist/web/routes/sessions.js.map +1 -1
  65. package/dist/web/routes/trace.d.ts.map +1 -1
  66. package/dist/web/routes/trace.js +2 -3
  67. package/dist/web/routes/trace.js.map +1 -1
  68. package/dist/web/server.d.ts.map +1 -1
  69. package/dist/web/server.js +3 -2
  70. package/dist/web/server.js.map +1 -1
  71. package/package.json +12 -2
  72. package/scripts/postinstall.cjs +21 -0
  73. package/.claude/CLAUDE.md +0 -17
  74. package/.eslintrc.js +0 -23
  75. package/.prettierrc +0 -8
  76. package/ARCHITECTURE_ISSUES.md +0 -249
  77. package/CLAUDE.md +0 -265
  78. package/CLAUDE.md.backup +0 -488
  79. package/docs/concurrent-agents.md +0 -129
  80. package/docs/design/architecture-review-20260516.md +0 -232
  81. package/docs/design/fix-skills-data-and-set-leak-spec-20260516-1300.md +0 -219
  82. package/docs/design/h1-storage-aggregation-spec-20260518-1121.md +0 -299
  83. package/docs/design/h2-getdatabase-encapsulation-spec-20260518-1450.md +0 -191
  84. package/docs/design/h3-fallback-removal-spec-20260518-1245.md +0 -76
  85. package/docs/design/h4-index-dedup-spec-20260518-1230.md +0 -109
  86. package/docs/design/h6-services-migration-spec-20260518-1355.md +0 -82
  87. package/docs/design/hook-failure-queue-spec-20260516-1530.md +0 -204
  88. package/docs/design/l1-swarm-protocol-extract-spec-20260518-1605.md +0 -106
  89. package/docs/design/m10-forge-paths-spec-20260518-1320.md +0 -121
  90. package/docs/design/m2-m3-tool-input-spec-20260518-1425.md +0 -131
  91. package/docs/design/m7-routing-event-association-spec-20260518-1545.md +0 -103
  92. package/docs/design/project-path-gitroot-spec-20260518-1715.md +0 -134
  93. package/docs/design/refactor-phase1-spec-20260515-1600.md +0 -543
  94. package/docs/design/refactor-phase2-spec-20260515-1700.md +0 -424
  95. package/docs/design/skill-ai-upgrade-spec-20260518-1930.md +0 -297
  96. package/docs/design/task-active-gc-spec-20260518-1745.md +0 -146
  97. package/docs/design/tasks-list-filter-pagination-spec-20260518-0930.md +0 -208
  98. package/docs/implementation/daemon-skill-sync-changelog-20260518-2000.md +0 -22
  99. package/docs/implementation/fix-skills-data-and-set-leak-changelog-20260516-1300.md +0 -104
  100. package/docs/implementation/h1-storage-aggregation-changelog-20260518-1121.md +0 -82
  101. package/docs/implementation/h2-final-changelog-20260518-1530.md +0 -61
  102. package/docs/implementation/h2-phase1-safety-net-changelog-20260518-1450.md +0 -70
  103. package/docs/implementation/h2-phase2-operations-changelog-20260518-1450.md +0 -120
  104. package/docs/implementation/h2-phase3-callsites-changelog-20260518-1450.md +0 -71
  105. package/docs/implementation/h3-fallback-removal-changelog-20260518-1245.md +0 -71
  106. package/docs/implementation/h4-index-dedup-changelog-20260518-1230.md +0 -60
  107. package/docs/implementation/h6-services-migration-changelog-20260518-1355.md +0 -46
  108. package/docs/implementation/h7-m9-defaults-changelog-20260518-1300.md +0 -46
  109. package/docs/implementation/hook-failure-queue-changelog-20260516-1530.md +0 -196
  110. package/docs/implementation/hotfix-daemon-event-reject-20260516-1430.md +0 -56
  111. package/docs/implementation/l1-swarm-protocol-extract-changelog-20260518-1605.md +0 -45
  112. package/docs/implementation/l3-l4-daemon-perf-changelog-20260518-1410.md +0 -63
  113. package/docs/implementation/l6-l8-final-cleanup-changelog-20260518-1640.md +0 -38
  114. package/docs/implementation/m1-m4-m5-l7-cleanup-changelog-20260518-1310.md +0 -58
  115. package/docs/implementation/m10-forge-paths-changelog-20260518-1320.md +0 -60
  116. package/docs/implementation/m2-m3-tool-input-changelog-20260518-1425.md +0 -43
  117. package/docs/implementation/m6-m8-naming-shutdown-changelog-20260518-1340.md +0 -56
  118. package/docs/implementation/m7-routing-association-changelog-20260518-1545.md +0 -69
  119. package/docs/implementation/project-path-gitroot-changelog-20260518-1715.md +0 -63
  120. package/docs/implementation/refactor-phase1-changelog-20260515-1630.md +0 -354
  121. package/docs/implementation/refactor-phase2-changelog-20260515-1705.md +0 -421
  122. package/docs/implementation/skill-ai-upgrade-changelog-20260518-1930.md +0 -49
  123. package/docs/implementation/task-active-gc-changelog-20260518-1745.md +0 -35
  124. package/docs/implementation/task-title-summary-changelog-20260518-1130.md +0 -39
  125. package/docs/implementation/tasks-detail-back-loses-filters-changelog-20260518-1100.md +0 -22
  126. package/docs/implementation/tasks-list-filter-pagination-changelog-20260518-0930.md +0 -72
  127. package/docs/implementation/tasks-page-white-screen-hotfix-changelog-20260518-1015.md +0 -56
  128. package/docs/reviews/claudemd-template-sync.md +0 -54
  129. package/docs/reviews/task-title-summary.md +0 -92
  130. package/docs/reviews/tasks-detail-back-loses-filters.md +0 -58
  131. package/docs/reviews/tasks-filter-pagination.md +0 -80
  132. package/docs/reviews/tasks-page-white-screen-hotfix.md +0 -126
  133. package/docs/ruflo-learning-strategy.md +0 -322
  134. package/docs/skills-deduplication-analysis.md +0 -83
  135. package/docs/skills-multiformat-support.md +0 -177
  136. package/docs/skills-third-party.md +0 -183
  137. package/docs/testing/tasks-filter-pagination-test-report.md +0 -86
  138. package/forge +0 -321
  139. package/playwright.config.ts +0 -40
  140. package/scripts/demo-v2.ts +0 -91
  141. package/scripts/dev-daemon.sh +0 -232
  142. package/scripts/dev-web.ts +0 -109
  143. package/scripts/e2e-mcp-link.ts +0 -423
  144. package/scripts/e2e-methodology-quality.ts +0 -253
  145. package/scripts/e2e-routing.ts +0 -456
  146. package/scripts/e2e-user-methodology.ts +0 -326
  147. package/scripts/e2e-web-workflows.ts +0 -299
  148. package/scripts/migrate-legacy-to-dynamic.sql +0 -108
  149. package/scripts/regenerate-execution-docs.ts +0 -116
  150. package/scripts/sync-agent-skills.ts +0 -193
  151. package/scripts/test-hook.sh +0 -71
  152. package/scripts/verify-skill-loading.ts +0 -62
  153. package/src/claudemd/claudemd-generator.ts +0 -568
  154. package/src/claudemd/convention-extractor.ts +0 -69
  155. package/src/claudemd/index.ts +0 -35
  156. package/src/claudemd/persona-manager.ts +0 -88
  157. package/src/claudemd/resume-manager.ts +0 -236
  158. package/src/claudemd/tech-detector.ts +0 -220
  159. package/src/claudemd/templates/swarm-protocol.md +0 -222
  160. package/src/cli/commands/claudemd.ts +0 -84
  161. package/src/cli/commands/config.ts +0 -46
  162. package/src/cli/commands/daemon.ts +0 -310
  163. package/src/cli/commands/executions.ts +0 -115
  164. package/src/cli/commands/init.ts +0 -204
  165. package/src/cli/commands/logs.ts +0 -181
  166. package/src/cli/commands/mcp.ts +0 -242
  167. package/src/cli/commands/menu.ts +0 -357
  168. package/src/cli/commands/skills.ts +0 -328
  169. package/src/cli/commands/stats.ts +0 -73
  170. package/src/cli/commands/status.ts +0 -69
  171. package/src/cli/commands/template.ts +0 -77
  172. package/src/cli/commands/trace.ts +0 -148
  173. package/src/cli/index.ts +0 -42
  174. package/src/cli/init/hook-manager.ts +0 -132
  175. package/src/core/ai/provider.ts +0 -308
  176. package/src/core/ai/types.ts +0 -51
  177. package/src/core/config.ts +0 -124
  178. package/src/core/constants.ts +0 -67
  179. package/src/core/event-fields.ts +0 -32
  180. package/src/core/queue/index.ts +0 -192
  181. package/src/core/storage/base.ts +0 -302
  182. package/src/core/storage/events.ts +0 -434
  183. package/src/core/storage/injections.ts +0 -78
  184. package/src/core/storage/maintenance.ts +0 -59
  185. package/src/core/storage/migrations/002_add_skill_tracking.sql +0 -6
  186. package/src/core/storage/migrations/003_add_skill_invocations.sql +0 -23
  187. package/src/core/storage/performance-indexes.sql +0 -23
  188. package/src/core/storage/routing.ts +0 -322
  189. package/src/core/storage/rows.ts +0 -112
  190. package/src/core/storage/schema.sql +0 -224
  191. package/src/core/storage/sessions.ts +0 -168
  192. package/src/core/storage/skills.ts +0 -233
  193. package/src/core/storage/sqlite.ts +0 -293
  194. package/src/core/storage/tasks.ts +0 -318
  195. package/src/core/storage/token-usage.ts +0 -93
  196. package/src/core/types.ts +0 -181
  197. package/src/core/utils/error-handler.ts +0 -257
  198. package/src/core/utils/forge-resume-block.ts +0 -74
  199. package/src/core/utils/format.ts +0 -69
  200. package/src/core/utils/git.ts +0 -23
  201. package/src/core/utils/logger.ts +0 -134
  202. package/src/core/utils/lru-cache.ts +0 -54
  203. package/src/core/utils/path.ts +0 -19
  204. package/src/core/utils/session.ts +0 -26
  205. package/src/core/utils/time.ts +0 -37
  206. package/src/core/utils/token-tracker.ts +0 -97
  207. package/src/daemon/event-parser.ts +0 -36
  208. package/src/daemon/handlers/history-exporter.ts +0 -117
  209. package/src/daemon/handlers/post-tool-use.ts +0 -54
  210. package/src/daemon/handlers/stop.ts +0 -208
  211. package/src/daemon/handlers/user-prompt.ts +0 -178
  212. package/src/daemon/hook-sync.ts +0 -91
  213. package/src/daemon/index.ts +0 -312
  214. package/src/daemon/launchd/com.claude-forge.daemon.plist.template +0 -47
  215. package/src/daemon/launchd-installer.ts +0 -260
  216. package/src/daemon/lifecycle.ts +0 -128
  217. package/src/daemon/router.ts +0 -40
  218. package/src/daemon/server.ts +0 -196
  219. package/src/daemon/services/task-segmenter.ts +0 -112
  220. package/src/daemon/skill-sync.ts +0 -88
  221. package/src/hooks/hook-lib.sh +0 -118
  222. package/src/hooks/notification.sh +0 -35
  223. package/src/hooks/post-tool-use.sh +0 -61
  224. package/src/hooks/pre-tool-use.sh +0 -63
  225. package/src/hooks/stop.sh +0 -43
  226. package/src/hooks/user-prompt-submit.sh +0 -69
  227. package/src/mcp/server.ts +0 -322
  228. package/src/skills/index.ts +0 -2
  229. package/src/skills/invocation-guard.ts +0 -177
  230. package/src/skills/matcher.ts +0 -148
  231. package/src/skills/official/code-simplifier.md +0 -52
  232. package/src/skills/official/find-skills.md +0 -142
  233. package/src/skills/official/official-api-design.md +0 -30
  234. package/src/skills/official/official-architecture-decision.md +0 -41
  235. package/src/skills/official/official-bmad.md +0 -118
  236. package/src/skills/official/official-db-schema-design.md +0 -34
  237. package/src/skills/official/official-debug.md +0 -25
  238. package/src/skills/official/official-doc-driven.md +0 -31
  239. package/src/skills/official/official-harness-engineering.md +0 -108
  240. package/src/skills/official/official-performance-optimization.md +0 -30
  241. package/src/skills/official/official-pr-review.md +0 -35
  242. package/src/skills/official/official-release-checklist.md +0 -30
  243. package/src/skills/official/official-security-hardening.md +0 -32
  244. package/src/skills/official/official-spec-driven-design.md +0 -31
  245. package/src/skills/official/planning-with-files.md +0 -241
  246. package/src/skills/official/ui-ux-pro-max.md +0 -105
  247. package/src/skills/official/webapp-testing.md +0 -96
  248. package/src/skills/official-skills.ts +0 -89
  249. package/src/skills/registry.ts +0 -355
  250. package/src/skills/semantic-matcher.ts +0 -234
  251. package/src/skills/tools/pipeline-suggest.ts +0 -226
  252. package/src/skills/tools/skill-invoke.ts +0 -168
  253. package/src/skills/tools/skill-list.ts +0 -59
  254. package/src/skills/upgrade-engine.ts +0 -541
  255. package/src/skills/upgrade-prompt.ts +0 -84
  256. package/src/templates/go.yaml +0 -53
  257. package/src/templates/python.yaml +0 -59
  258. package/src/templates/react.yaml +0 -55
  259. package/src/templates/template-manager.ts +0 -170
  260. package/src/web/analytics/anti-pattern-detector.ts +0 -367
  261. package/src/web/analytics/drift-detector.ts +0 -219
  262. package/src/web/analytics/weekly-report.ts +0 -431
  263. package/src/web/auth-middleware.ts +0 -54
  264. package/src/web/routes/_helpers.ts +0 -34
  265. package/src/web/routes/ai.ts +0 -204
  266. package/src/web/routes/auth.ts +0 -22
  267. package/src/web/routes/drift.ts +0 -25
  268. package/src/web/routes/error-handler.ts +0 -120
  269. package/src/web/routes/events.ts +0 -47
  270. package/src/web/routes/insights.ts +0 -43
  271. package/src/web/routes/patch.ts +0 -117
  272. package/src/web/routes/reports.ts +0 -34
  273. package/src/web/routes/rules.ts +0 -76
  274. package/src/web/routes/sessions.ts +0 -250
  275. package/src/web/routes/skill-stats.ts +0 -92
  276. package/src/web/routes/skills.ts +0 -350
  277. package/src/web/routes/static.ts +0 -67
  278. package/src/web/routes/stats.ts +0 -50
  279. package/src/web/routes/status.ts +0 -30
  280. package/src/web/routes/tasks.ts +0 -193
  281. package/src/web/routes/token-usage.ts +0 -20
  282. package/src/web/routes/trace.ts +0 -126
  283. package/src/web/routes/types.ts +0 -57
  284. package/src/web/server.ts +0 -134
  285. package/src/web/ssrf-guard.ts +0 -112
  286. package/src/web/static/index.html +0 -3251
  287. package/src/web/static/vendor/chart.umd.min.js +0 -20
  288. package/tests/e2e/dashboard.spec.ts +0 -205
  289. package/tests/e2e/routing-skill-e2e.test.ts +0 -39
  290. package/tests/helpers/mock-ai.ts +0 -92
  291. package/tests/helpers/mock-storage.ts +0 -159
  292. package/tests/integration/claudemd-generator.test.ts +0 -90
  293. package/tests/integration/queue-replay.integration.test.ts +0 -193
  294. package/tests/integration/tasks-filter.integration.test.ts +0 -154
  295. package/tests/integration/web-analytics.integration.test.ts +0 -133
  296. package/tests/integration/web-stats.integration.test.ts +0 -135
  297. package/tests/integration/web-trace.integration.test.ts +0 -175
  298. package/tests/performance/database.benchmark.ts +0 -161
  299. package/tests/semantic-matcher.test.ts +0 -99
  300. package/tests/skill-matcher.test.ts +0 -110
  301. package/tests/unit/ai-provider-retry.test.ts +0 -194
  302. package/tests/unit/ai-provider-vision.test.ts +0 -224
  303. package/tests/unit/claudemd-generator.test.ts +0 -68
  304. package/tests/unit/cli-mcp.test.ts +0 -141
  305. package/tests/unit/core/forge-paths.test.ts +0 -99
  306. package/tests/unit/daemon/hook-sync.test.ts +0 -71
  307. package/tests/unit/daemon/post-tool-use.test.ts +0 -121
  308. package/tests/unit/daemon/skill-sync.test.ts +0 -75
  309. package/tests/unit/daemon/stop-handler-behavior-summary.test.ts +0 -202
  310. package/tests/unit/daemon/task-segmenter-recover.test.ts +0 -84
  311. package/tests/unit/event-fields.test.ts +0 -88
  312. package/tests/unit/event-parser.test.ts +0 -55
  313. package/tests/unit/handlers.test.ts +0 -171
  314. package/tests/unit/hooks/resolve-project-path.test.ts +0 -122
  315. package/tests/unit/invocation-guard.test.ts +0 -125
  316. package/tests/unit/queue.test.ts +0 -272
  317. package/tests/unit/router.test.ts +0 -138
  318. package/tests/unit/security.test.ts +0 -128
  319. package/tests/unit/skill-invocations-workflow.test.ts +0 -495
  320. package/tests/unit/skill-registry.test.ts +0 -94
  321. package/tests/unit/skills/invocation-guard-ttl.test.ts +0 -211
  322. package/tests/unit/skills/official-skills-loader.test.ts +0 -126
  323. package/tests/unit/skills/registry-multiformat.test.ts +0 -92
  324. package/tests/unit/skills/upgrade-engine-parse.test.ts +0 -138
  325. package/tests/unit/skills/upgrade-engine.test.ts +0 -401
  326. package/tests/unit/skills/upgrade-prompt.test.ts +0 -89
  327. package/tests/unit/socket-server.test.ts +0 -183
  328. package/tests/unit/storage/event-operations-aggregates.test.ts +0 -342
  329. package/tests/unit/storage/migration-idempotent.test.ts +0 -304
  330. package/tests/unit/storage/routing-aggregates.test.ts +0 -276
  331. package/tests/unit/storage/routing.test.ts +0 -117
  332. package/tests/unit/storage/schema-missing.test.ts +0 -81
  333. package/tests/unit/storage/session-operations-aggregates.test.ts +0 -120
  334. package/tests/unit/storage/sessions-aggregate.test.ts +0 -435
  335. package/tests/unit/storage/skill-operations-counts.test.ts +0 -106
  336. package/tests/unit/storage/skills-aggregates.test.ts +0 -104
  337. package/tests/unit/storage/sqlite-refactor-harness.test.ts +0 -314
  338. package/tests/unit/storage/task-operations-counts.test.ts +0 -46
  339. package/tests/unit/storage/tasks-getById.test.ts +0 -343
  340. package/tests/unit/storage/tasks-stale-gc.test.ts +0 -86
  341. package/tests/unit/storage.test.ts +0 -172
  342. package/tests/unit/token-usage.test.ts +0 -144
  343. package/tests/unit/type-guards.test.ts +0 -201
  344. package/tests/unit/utils/format.test.ts +0 -189
  345. package/tests/unit/utils/session.test.ts +0 -89
  346. package/tests/unit/utils/time.test.ts +0 -112
  347. package/tests/unit/web/navigation-back-contract.test.ts +0 -134
  348. package/tests/unit/web/routes-auth.test.ts +0 -93
  349. package/tests/unit/web/routes-events.test.ts +0 -101
  350. package/tests/unit/web/routes-rules.test.ts +0 -182
  351. package/tests/unit/web/routes-sessions.test.ts +0 -181
  352. package/tests/unit/web/routes-skill-stats.test.ts +0 -179
  353. package/tests/unit/web/routes-stats.test.ts +0 -92
  354. package/tests/unit/web/routes-tasks.test.ts +0 -385
  355. package/tests/unit/web/task-title-contract.test.ts +0 -210
  356. package/tests/unit/web/tasks-component-contract.test.ts +0 -179
  357. package/tsconfig.json +0 -22
  358. package/vitest.config.ts +0 -21
  359. package/vitest.integration.config.ts +0 -16
  360. package/web/CLAUDE.md +0 -20
  361. package/web/index.html +0 -13
  362. package/web/package-lock.json +0 -4854
  363. package/web/package.json +0 -35
  364. package/web/postcss.config.js +0 -6
  365. package/web/src/App.tsx +0 -110
  366. package/web/src/components/CodeBlock.tsx +0 -31
  367. package/web/src/components/Confirm.tsx +0 -96
  368. package/web/src/components/Drawer.tsx +0 -60
  369. package/web/src/components/Layout.tsx +0 -145
  370. package/web/src/components/MarkdownRenderer.tsx +0 -77
  371. package/web/src/components/SearchInput.tsx +0 -31
  372. package/web/src/components/SessionDetailContent.tsx +0 -157
  373. package/web/src/components/Toast.tsx +0 -92
  374. package/web/src/index.css +0 -19
  375. package/web/src/main.tsx +0 -31
  376. package/web/src/pages/AIConfig.tsx +0 -233
  377. package/web/src/pages/Dashboard.tsx +0 -572
  378. package/web/src/pages/Events.tsx +0 -271
  379. package/web/src/pages/Reports.tsx +0 -428
  380. package/web/src/pages/SessionDetail.tsx +0 -162
  381. package/web/src/pages/Sessions.tsx +0 -205
  382. package/web/src/pages/Skills.tsx +0 -180
  383. package/web/src/pages/TaskDetail.tsx +0 -515
  384. package/web/src/pages/Tasks.tsx +0 -415
  385. package/web/src/utils/auth.ts +0 -59
  386. package/web/src/utils/export.ts +0 -54
  387. package/web/src/utils/navigation.ts +0 -25
  388. package/web/src/utils/task-title.ts +0 -49
  389. package/web/src/utils/time.ts +0 -13
  390. package/web/tailwind.config.js +0 -11
  391. package/web/tsconfig.json +0 -21
  392. package/web/tsconfig.node.json +0 -10
  393. package/web/vite.config.ts +0 -76
  394. package/winspan-claude-forge-8.43.0.tgz +0 -0
@@ -1,183 +0,0 @@
1
- # 第三方 Skills 集成指南
2
-
3
- ## 概述
4
-
5
- claude-forge 集成了 [addyosmani/agent-skills](https://github.com/addyosmani/agent-skills) 作为第三方 skill 库,提供 22 个经过实战验证的成熟 skills。
6
-
7
- ### 为什么引入 agent-skills?
8
-
9
- - **成熟度高**:由 Google Chrome 团队的 Addy Osmani 维护,经过大量实际项目验证
10
- - **覆盖面广**:涵盖代码审查、性能优化、安全检查、文档生成等常见场景
11
- - **MIT 授权**:开源友好,可自由使用和修改
12
- - **持续更新**:上游仓库活跃维护,可定期同步最新改进
13
-
14
- ### 集成策略
15
-
16
- agent-skills 作为 **补充库** 存在,与 claude-forge 的 `OFFICIAL_SKILLS` 共存:
17
-
18
- - **官方 skills** (`src/skills/official/`):claude-forge 内置,针对 SDLC 流程优化
19
- - **第三方 skills** (`~/.claude/skills/agent-skills/`):通用场景,按需加载
20
-
21
- ## 同步策略
22
-
23
- ### 首次同步
24
-
25
- ```bash
26
- npm run sync:agent-skills
27
- ```
28
-
29
- 执行后会:
30
- 1. 从 GitHub clone `addyosmani/agent-skills` 到 `~/.claude/skills/agent-skills/`
31
- 2. 记录 upstream commit hash 到 `.sync-metadata.json`
32
- 3. 生成 MIT License 合规文件 `NOTICE`
33
-
34
- ### 定期更新
35
-
36
- 重复运行 `npm run sync:agent-skills` 会自动执行 `git pull` 更新到最新版本。
37
-
38
- ### 同步元数据
39
-
40
- 同步完成后,`~/.claude/skills/agent-skills/.sync-metadata.json` 记录:
41
-
42
- ```json
43
- {
44
- "upstream_repo": "https://github.com/addyosmani/agent-skills.git",
45
- "commit_hash": "abc123...",
46
- "synced_at": "2026-05-10T12:00:00.000Z"
47
- }
48
- ```
49
-
50
- 可通过此文件追溯当前使用的上游版本。
51
-
52
- ## 去重策略
53
-
54
- > **注意**:此部分待 Task #38 完成后填充。
55
-
56
- 当前已知的潜在重叠 skills:
57
-
58
- - `OFFICIAL_SKILLS` 中的某些 skill 可能与 agent-skills 功能重叠
59
- - 去重分析将在 Task #38 中完成,届时会更新本文档
60
-
61
- ### 优先级规则(待确认)
62
-
63
- 预期的加载优先级(待 Task #38 验证):
64
-
65
- 1. 用户自定义 skills (`~/.claude/skills/<name>.md`)
66
- 2. 官方 skills (`src/skills/official/`)
67
- 3. 第三方 skills (`~/.claude/skills/agent-skills/skills/`)
68
-
69
- ## 自定义覆盖
70
-
71
- 如果需要修改 agent-skills 中的某个 skill,**不要直接编辑** `~/.claude/skills/agent-skills/` 目录(会被 `git pull` 覆盖)。
72
-
73
- 正确做法:
74
-
75
- 1. 复制要修改的 skill 到 `~/.claude/skills/<skill-name>.md`
76
- 2. 在复制的文件中进行修改
77
- 3. skill registry 会优先加载用户自定义版本
78
-
79
- 示例:
80
-
81
- ```bash
82
- # 覆盖 agent-skills 的 code-review skill
83
- cp ~/.claude/skills/agent-skills/skills/code-review/skill.md \
84
- ~/.claude/skills/code-review.md
85
-
86
- # 编辑自定义版本
87
- vim ~/.claude/skills/code-review.md
88
- ```
89
-
90
- ## License 合规
91
-
92
- ### 授权说明
93
-
94
- agent-skills 采用 **MIT License**,允许:
95
-
96
- - ✅ 商业使用
97
- - ✅ 修改
98
- - ✅ 分发
99
- - ✅ 私有使用
100
-
101
- 要求:
102
-
103
- - 📄 保留原始版权声明和许可证文本
104
- - 📄 在分发时包含 NOTICE 文件
105
-
106
- ### NOTICE 文件
107
-
108
- 同步脚本会自动生成 `~/.claude/skills/agent-skills/NOTICE` 文件,包含:
109
-
110
- - 上游仓库信息
111
- - MIT License 全文
112
- - 版权声明
113
- - 同步时间和 commit hash
114
-
115
- ### 合规检查清单
116
-
117
- - [x] 保留 upstream 的 LICENSE 文件
118
- - [x] 生成 NOTICE 文件记录来源
119
- - [x] 在文档中说明第三方依赖
120
- - [x] 不修改 upstream 仓库的版权声明
121
-
122
- ## 故障排查
123
-
124
- ### 同步失败
125
-
126
- **症状**:`npm run sync:agent-skills` 报错
127
-
128
- **可能原因**:
129
-
130
- 1. **网络问题**
131
- ```bash
132
- # 检查网络连接
133
- ping github.com
134
-
135
- # 尝试手动 clone
136
- git clone https://github.com/addyosmani/agent-skills.git /tmp/test
137
- ```
138
-
139
- 2. **Git 未安装**
140
- ```bash
141
- # 检查 git 版本
142
- git --version
143
-
144
- # macOS 安装
145
- brew install git
146
- ```
147
-
148
- 3. **权限问题**
149
- ```bash
150
- # 检查目录权限
151
- ls -la ~/.claude/skills/
152
-
153
- # 修复权限
154
- chmod -R u+w ~/.claude/skills/
155
- ```
156
-
157
- ### 本地修改冲突
158
-
159
- **症状**:`git pull` 时提示本地有未提交的修改
160
-
161
- **解决方案**:
162
-
163
- ```bash
164
- cd ~/.claude/skills/agent-skills/
165
-
166
- # 查看修改
167
- git status
168
-
169
- # 方案 1:放弃本地修改(推荐)
170
- git reset --hard HEAD
171
- npm run sync:agent-skills
172
-
173
- # 方案 2:保存修改到用户目录
174
- cp skills/xxx/skill.md ~/.claude/skills/xxx.md
175
- git reset --hard HEAD
176
- npm run sync:agent-skills
177
- ```
178
-
179
- ## 参考资料
180
-
181
- - [agent-skills 官方仓库](https://github.com/addyosmani/agent-skills)
182
- - [MIT License 说明](https://opensource.org/licenses/MIT)
183
- - [claude-forge Skills Registry 设计](../src/skills/README.md)(待创建)
@@ -1,86 +0,0 @@
1
- # Tasks Filter + Pagination — Test Report
2
-
3
- **Date**: 2026-05-18
4
- **Feature**: tasks-filter-pagination
5
-
6
- ## Summary
7
-
8
- | Suite | Tests | Passed | Failed | Notes |
9
- |-------|-------|--------|--------|-------|
10
- | Unit: routes-tasks | 19 | 19 | 0 | All A1-A8 acceptance criteria covered |
11
- | Integration: tasks-filter | 10 | 10 | 0 | Real SQLite, JOIN + COUNT verification |
12
- | Full suite (npm test) | 324 | 323 | 1 | 1 pre-existing failure in sqlite-refactor-harness.test.ts (non-UUID event_id, unrelated) |
13
- | TypeScript (tsc --noEmit) | — | pass | 0 | Clean |
14
-
15
- ## Unit Tests (routes-tasks.test.ts)
16
-
17
- ### Paginated response group (7 tests)
18
-
19
- | Test | Result |
20
- |------|--------|
21
- | Returns empty page when no tasks (A1) | PASS |
22
- | Returns items newest-first with total and has_more (A1) | PASS |
23
- | Items include project_path from joined sessions | PASS |
24
- | Honours session filter | PASS |
25
- | Respects limit param and sets has_more | PASS |
26
- | Clamps limit to 200 (A6) | PASS |
27
- | Task items contain expected fields | PASS |
28
-
29
- ### Filter params group (5 tests)
30
-
31
- | Test | Result |
32
- |------|--------|
33
- | Filters by single project (A2) | PASS |
34
- | Filters by multiple projects OR (A3) | PASS |
35
- | Filters by from/to time range (A4) | PASS |
36
- | Filters by search (title LIKE) (A5) | PASS |
37
- | Returns 400 for invalid query params | PASS |
38
-
39
- ### Pagination group (1 test)
40
-
41
- | Test | Result |
42
- |------|--------|
43
- | Offset increments page, total stays constant (A8) | PASS |
44
-
45
- ### /api/tasks/projects group (3 tests)
46
-
47
- | Test | Result |
48
- |------|--------|
49
- | Returns empty array when no tasks | PASS |
50
- | Returns distinct project paths that have tasks | PASS |
51
- | De-duplicates when multiple sessions share a project | PASS |
52
-
53
- ### GET /api/tasks/:taskId group (3 tests) — unchanged route
54
-
55
- | Test | Result |
56
- |------|--------|
57
- | Returns 404 for non-existent task | PASS |
58
- | Returns task detail with timeline + injections + skill invocations | PASS |
59
- | Marks Agent calls in timeline with agent_detail | PASS |
60
-
61
- ## Integration Tests (tasks-filter.integration.test.ts)
62
-
63
- Real in-memory SQLite validating JOIN correctness and COUNT accuracy.
64
-
65
- | Test | Result |
66
- |------|--------|
67
- | JOIN preserves project_path from sessions | PASS |
68
- | COUNT(*) matches items length when no pagination | PASS |
69
- | COUNT remains constant across pages (A8) | PASS |
70
- | Project filter via JOIN correctly isolates tasks (A2) | PASS |
71
- | Multi-project OR filter returns union correctly (A3) | PASS |
72
- | Search filter uses LIKE on title (A5) | PASS |
73
- | from/to date range filter (A4) | PASS |
74
- | queryTaskProjects returns distinct paths with tasks only | PASS |
75
- | Limit clamp: storage-level enforces max 200 | PASS |
76
- | has_more is accurate at boundary (exactly limit items) | PASS |
77
-
78
- ## Pre-existing Failure
79
-
80
- `tests/unit/storage/sqlite-refactor-harness.test.ts` > `linkEventToTask associates events with tasks` — uses literal `'ev-prompt'` event_id which fails Zod UUID validation. This failure existed before this feature branch. Out of scope.
81
-
82
- ## Notes
83
-
84
- - ISO 8601 date string comparison uses lexicographic sort. Test data uses `.000Z` suffix consistently to avoid `.000Z` vs `Z` sort anomaly.
85
- - Title LIKE search is case-insensitive for ASCII on SQLite default collation.
86
- - Frontend (index.html) changes are not covered by automated tests; manual E2E verification per A7 required.
package/forge DELETED
@@ -1,321 +0,0 @@
1
- #!/usr/bin/env bash
2
- # Claude Forge - 一键启动脚本
3
-
4
- set -e
5
-
6
- FORGE_DIR="$HOME/.claude-forge"
7
- CLAUDE_DIR="$HOME/.claude"
8
- SETTINGS_FILE="$CLAUDE_DIR/settings.json"
9
- PID_FILE="$FORGE_DIR/daemon.pid"
10
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
11
-
12
- # 自动选择运行方式:优先 dist/,否则自动 build
13
- ensure_built() {
14
- if [ ! -f "$SCRIPT_DIR/dist/cli/index.js" ]; then
15
- info "首次运行,正在编译..."
16
- cd "$SCRIPT_DIR" && npx tsc 2>&1
17
- if [ ! -f "$SCRIPT_DIR/dist/cli/index.js" ]; then
18
- error "编译失败,请检查 TypeScript 错误"
19
- exit 1
20
- fi
21
- success "编译完成"
22
- fi
23
- }
24
-
25
- run_cli() {
26
- ensure_built
27
- node "$SCRIPT_DIR/dist/cli/index.js" "$@"
28
- }
29
-
30
- # 颜色输出
31
- GREEN='\033[0;32m'
32
- YELLOW='\033[1;33m'
33
- RED='\033[0;31m'
34
- BLUE='\033[0;34m'
35
- NC='\033[0m' # No Color
36
-
37
- info() {
38
- echo -e "${BLUE}ℹ${NC} $1"
39
- }
40
-
41
- success() {
42
- echo -e "${GREEN}✓${NC} $1"
43
- }
44
-
45
- warn() {
46
- echo -e "${YELLOW}⚠${NC} $1"
47
- }
48
-
49
- error() {
50
- echo -e "${RED}✗${NC} $1"
51
- }
52
-
53
- # 检查是否已初始化
54
- is_initialized() {
55
- [ -f "$SETTINGS_FILE" ] && grep -q "claude-forge" "$SETTINGS_FILE" 2>/dev/null
56
- }
57
-
58
- # 检查守护进程是否运行
59
- is_daemon_running() {
60
- if [ -f "$PID_FILE" ]; then
61
- local pid=$(cat "$PID_FILE")
62
- kill -0 "$pid" 2>/dev/null
63
- return $?
64
- fi
65
- return 1
66
- }
67
-
68
- # 初始化
69
- do_init() {
70
- info "正在初始化 Claude Forge..."
71
- run_cli init
72
- success "初始化完成"
73
- }
74
-
75
- # 启动守护进程
76
- do_start() {
77
- if is_daemon_running; then
78
- warn "守护进程已在运行"
79
- return
80
- fi
81
-
82
- info "正在启动守护进程..."
83
- run_cli daemon start
84
- sleep 1
85
-
86
- if is_daemon_running; then
87
- success "守护进程已启动"
88
- else
89
- error "守护进程启动失败"
90
- exit 1
91
- fi
92
- }
93
-
94
- # 停止守护进程
95
- do_stop() {
96
- if ! is_daemon_running; then
97
- warn "守护进程未运行"
98
- return
99
- fi
100
-
101
- info "正在停止守护进程..."
102
- run_cli daemon stop
103
- success "守护进程已停止"
104
- }
105
-
106
- # 查看状态
107
- do_status() {
108
- echo ""
109
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
110
- echo " Claude Forge 状态"
111
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
112
- echo ""
113
-
114
- # 初始化状态
115
- if is_initialized; then
116
- success "已初始化"
117
- else
118
- error "未初始化"
119
- fi
120
-
121
- # 守护进程状态
122
- if is_daemon_running; then
123
- success "守护进程运行中 (PID: $(cat $PID_FILE))"
124
- else
125
- error "守护进程未运行"
126
- fi
127
-
128
- # 统计信息
129
- if [ -f "$FORGE_DIR/data.db" ]; then
130
- echo ""
131
- run_cli query stats
132
- fi
133
-
134
- echo ""
135
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
136
- }
137
-
138
- # 查看日志
139
- do_logs() {
140
- local log_file="$FORGE_DIR/daemon.log"
141
- if [ ! -f "$log_file" ]; then
142
- warn "日志文件不存在"
143
- return
144
- fi
145
-
146
- tail -f "$log_file"
147
- }
148
-
149
- # 配置 API
150
- do_config_api() {
151
- echo ""
152
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
153
- echo " 配置 Claude API"
154
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
155
- echo ""
156
-
157
- # 显示当前配置
158
- info "当前配置:"
159
- run_cli config show 2>/dev/null | grep -E "(api_key|base_url)" || echo " 未配置"
160
- echo ""
161
-
162
- # 询问是否设置 API Key
163
- read -p "设置 API Key? (留空跳过): " api_key
164
- if [ -n "$api_key" ]; then
165
- run_cli config set distill.api_key "$api_key"
166
- fi
167
-
168
- # 询问是否设置 Base URL
169
- read -p "设置 Base URL? (留空使用默认): " base_url
170
- if [ -n "$base_url" ]; then
171
- run_cli config set distill.base_url "$base_url"
172
- fi
173
-
174
- echo ""
175
- success "配置已更新"
176
- warn "需要重启守护进程才能生效"
177
- read -p "是否现在重启? (Y/n) " -n 1 -r
178
- echo
179
- if [[ ! $REPLY =~ ^[Nn]$ ]]; then
180
- do_stop
181
- sleep 1
182
- do_start
183
- fi
184
- }
185
-
186
- # 主菜单
187
- show_menu() {
188
- echo ""
189
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
190
- echo " Claude Forge"
191
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
192
- echo ""
193
- echo " 1) 启动 (start)"
194
- echo " 2) 停止 (stop)"
195
- echo " 3) 重启 (restart)"
196
- echo " 4) 状态 (status)"
197
- echo " 5) 查看日志 (logs)"
198
- echo " 6) 查看会话 (sessions)"
199
- echo " 7) 手动蒸馏 (distill)"
200
- echo " 8) 备份数据 (backup)"
201
- echo " 9) 配置 API (config)"
202
- echo " r) 重置配置 (reset)"
203
- echo " u) 卸载 (uninit)"
204
- echo " 0) 退出"
205
- echo ""
206
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
207
- echo ""
208
- }
209
-
210
- # 处理菜单选择
211
- handle_choice() {
212
- case $1 in
213
- 1|start)
214
- do_start
215
- ;;
216
- 2|stop)
217
- do_stop
218
- ;;
219
- 3|restart)
220
- do_stop
221
- sleep 1
222
- do_start
223
- ;;
224
- 4|status)
225
- do_status
226
- ;;
227
- 5|logs)
228
- do_logs
229
- ;;
230
- 6|sessions)
231
- run_cli query sessions
232
- ;;
233
- 7|distill)
234
- info "正在蒸馏..."
235
- run_cli distill
236
- ;;
237
- 8|backup)
238
- info "正在备份..."
239
- run_cli backup
240
- ;;
241
- 9|config)
242
- do_config_api
243
- ;;
244
- r|reset)
245
- read -p "确定要重置配置吗?(y/N) " -n 1 -r
246
- echo
247
- if [[ $REPLY =~ ^[Yy]$ ]]; then
248
- run_cli config reset
249
- success "配置已重置"
250
- fi
251
- ;;
252
- u|uninit)
253
- read -p "确定要卸载吗?(y/N) " -n 1 -r
254
- echo
255
- if [[ $REPLY =~ ^[Yy]$ ]]; then
256
- run_cli uninit
257
- success "已卸载"
258
- fi
259
- ;;
260
- 0|exit|quit)
261
- exit 0
262
- ;;
263
- *)
264
- error "无效选择"
265
- ;;
266
- esac
267
- }
268
-
269
- # 主流程
270
- main() {
271
- # 如果有参数,直接执行
272
- if [ $# -gt 0 ]; then
273
- handle_choice "$1"
274
- exit 0
275
- fi
276
-
277
- # 首次运行检查
278
- if ! is_initialized; then
279
- echo ""
280
- warn "检测到首次运行,需要初始化"
281
- read -p "是否现在初始化?(Y/n) " -n 1 -r
282
- echo
283
- if [[ ! $REPLY =~ ^[Nn]$ ]]; then
284
- do_init
285
- echo ""
286
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
287
- warn "重要:Hook 已注入到 Claude Code 配置"
288
- warn "需要重新启动 Claude Code 才能生效!"
289
- echo ""
290
- echo " 请执行以下操作:"
291
- echo " 1. 输入 /exit 退出当前 Claude Code 会话"
292
- echo " 2. 重新运行 claude 命令"
293
- echo " 3. Hook 会自动生效,所有工具调用将被记录"
294
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
295
- else
296
- exit 0
297
- fi
298
- fi
299
-
300
- # 自动启动守护进程
301
- if ! is_daemon_running; then
302
- info "守护进程未运行"
303
- read -p "是否启动守护进程?(Y/n) " -n 1 -r
304
- echo
305
- if [[ ! $REPLY =~ ^[Nn]$ ]]; then
306
- do_start
307
- fi
308
- fi
309
-
310
- # 交互式菜单
311
- while true; do
312
- show_menu
313
- read -p "请选择 [0-9]: " choice
314
- echo ""
315
- handle_choice "$choice"
316
- echo ""
317
- read -p "按回车继续..."
318
- done
319
- }
320
-
321
- main "$@"
@@ -1,40 +0,0 @@
1
- import { defineConfig, devices } from '@playwright/test';
2
-
3
- /**
4
- * Playwright E2E 测试配置
5
- *
6
- * 使用方法:
7
- * 1. 安装依赖: npm install -D @playwright/test
8
- * 2. 安装浏览器: npx playwright install
9
- * 3. 启动守护进程: claude-forge daemon start
10
- * 4. 运行测试: npm run test:e2e
11
- */
12
-
13
- export default defineConfig({
14
- testDir: './tests/e2e',
15
- fullyParallel: true,
16
- forbidOnly: !!process.env.CI,
17
- retries: process.env.CI ? 2 : 0,
18
- workers: process.env.CI ? 1 : undefined,
19
- reporter: 'html',
20
-
21
- use: {
22
- baseURL: 'http://localhost:3721',
23
- trace: 'on-first-retry',
24
- screenshot: 'only-on-failure',
25
- },
26
-
27
- projects: [
28
- {
29
- name: 'chromium',
30
- use: { ...devices['Desktop Chrome'] },
31
- },
32
- ],
33
-
34
- webServer: {
35
- command: 'echo "请确保守护进程已启动: claude-forge daemon start"',
36
- url: 'http://localhost:3721',
37
- reuseExistingServer: true,
38
- timeout: 5000,
39
- },
40
- });