@winspan/claude-forge 8.53.2 → 8.54.3

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 (390) 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/registry.d.ts.map +1 -1
  42. package/dist/skills/registry.js +13 -2
  43. package/dist/skills/registry.js.map +1 -1
  44. package/dist/skills/semantic-matcher.d.ts +2 -2
  45. package/dist/skills/semantic-matcher.d.ts.map +1 -1
  46. package/dist/skills/semantic-matcher.js +14 -19
  47. package/dist/skills/semantic-matcher.js.map +1 -1
  48. package/dist/skills/upgrade-engine.d.ts +3 -1
  49. package/dist/skills/upgrade-engine.d.ts.map +1 -1
  50. package/dist/skills/upgrade-engine.js +25 -14
  51. package/dist/skills/upgrade-engine.js.map +1 -1
  52. package/dist/web/analytics/weekly-report.d.ts.map +1 -1
  53. package/dist/web/analytics/weekly-report.js +21 -29
  54. package/dist/web/analytics/weekly-report.js.map +1 -1
  55. package/dist/web/routes/patch.d.ts.map +1 -1
  56. package/dist/web/routes/patch.js +32 -2
  57. package/dist/web/routes/patch.js.map +1 -1
  58. package/dist/web/routes/sessions.d.ts.map +1 -1
  59. package/dist/web/routes/sessions.js +9 -7
  60. package/dist/web/routes/sessions.js.map +1 -1
  61. package/dist/web/routes/trace.d.ts.map +1 -1
  62. package/dist/web/routes/trace.js +2 -3
  63. package/dist/web/routes/trace.js.map +1 -1
  64. package/dist/web/server.d.ts.map +1 -1
  65. package/dist/web/server.js +3 -2
  66. package/dist/web/server.js.map +1 -1
  67. package/package.json +12 -2
  68. package/scripts/postinstall.cjs +21 -0
  69. package/.claude/CLAUDE.md +0 -17
  70. package/.eslintrc.js +0 -23
  71. package/.prettierrc +0 -8
  72. package/ARCHITECTURE_ISSUES.md +0 -249
  73. package/CLAUDE.md +0 -265
  74. package/CLAUDE.md.backup +0 -488
  75. package/docs/concurrent-agents.md +0 -129
  76. package/docs/design/architecture-review-20260516.md +0 -232
  77. package/docs/design/fix-skills-data-and-set-leak-spec-20260516-1300.md +0 -219
  78. package/docs/design/h1-storage-aggregation-spec-20260518-1121.md +0 -299
  79. package/docs/design/h2-getdatabase-encapsulation-spec-20260518-1450.md +0 -191
  80. package/docs/design/h3-fallback-removal-spec-20260518-1245.md +0 -76
  81. package/docs/design/h4-index-dedup-spec-20260518-1230.md +0 -109
  82. package/docs/design/h6-services-migration-spec-20260518-1355.md +0 -82
  83. package/docs/design/hook-failure-queue-spec-20260516-1530.md +0 -204
  84. package/docs/design/l1-swarm-protocol-extract-spec-20260518-1605.md +0 -106
  85. package/docs/design/m10-forge-paths-spec-20260518-1320.md +0 -121
  86. package/docs/design/m2-m3-tool-input-spec-20260518-1425.md +0 -131
  87. package/docs/design/m7-routing-event-association-spec-20260518-1545.md +0 -103
  88. package/docs/design/project-path-gitroot-spec-20260518-1715.md +0 -134
  89. package/docs/design/refactor-phase1-spec-20260515-1600.md +0 -543
  90. package/docs/design/refactor-phase2-spec-20260515-1700.md +0 -424
  91. package/docs/design/skill-ai-upgrade-spec-20260518-1930.md +0 -297
  92. package/docs/design/task-active-gc-spec-20260518-1745.md +0 -146
  93. package/docs/design/tasks-list-filter-pagination-spec-20260518-0930.md +0 -208
  94. package/docs/implementation/daemon-skill-sync-changelog-20260518-2000.md +0 -22
  95. package/docs/implementation/fix-skills-data-and-set-leak-changelog-20260516-1300.md +0 -104
  96. package/docs/implementation/h1-storage-aggregation-changelog-20260518-1121.md +0 -82
  97. package/docs/implementation/h2-final-changelog-20260518-1530.md +0 -61
  98. package/docs/implementation/h2-phase1-safety-net-changelog-20260518-1450.md +0 -70
  99. package/docs/implementation/h2-phase2-operations-changelog-20260518-1450.md +0 -120
  100. package/docs/implementation/h2-phase3-callsites-changelog-20260518-1450.md +0 -71
  101. package/docs/implementation/h3-fallback-removal-changelog-20260518-1245.md +0 -71
  102. package/docs/implementation/h4-index-dedup-changelog-20260518-1230.md +0 -60
  103. package/docs/implementation/h6-services-migration-changelog-20260518-1355.md +0 -46
  104. package/docs/implementation/h7-m9-defaults-changelog-20260518-1300.md +0 -46
  105. package/docs/implementation/hook-failure-queue-changelog-20260516-1530.md +0 -196
  106. package/docs/implementation/hotfix-daemon-event-reject-20260516-1430.md +0 -56
  107. package/docs/implementation/l1-swarm-protocol-extract-changelog-20260518-1605.md +0 -45
  108. package/docs/implementation/l3-l4-daemon-perf-changelog-20260518-1410.md +0 -63
  109. package/docs/implementation/l6-l8-final-cleanup-changelog-20260518-1640.md +0 -38
  110. package/docs/implementation/m1-m4-m5-l7-cleanup-changelog-20260518-1310.md +0 -58
  111. package/docs/implementation/m10-forge-paths-changelog-20260518-1320.md +0 -60
  112. package/docs/implementation/m2-m3-tool-input-changelog-20260518-1425.md +0 -43
  113. package/docs/implementation/m6-m8-naming-shutdown-changelog-20260518-1340.md +0 -56
  114. package/docs/implementation/m7-routing-association-changelog-20260518-1545.md +0 -69
  115. package/docs/implementation/project-path-gitroot-changelog-20260518-1715.md +0 -63
  116. package/docs/implementation/refactor-phase1-changelog-20260515-1630.md +0 -354
  117. package/docs/implementation/refactor-phase2-changelog-20260515-1705.md +0 -421
  118. package/docs/implementation/skill-ai-upgrade-changelog-20260518-1930.md +0 -49
  119. package/docs/implementation/task-active-gc-changelog-20260518-1745.md +0 -35
  120. package/docs/implementation/task-title-summary-changelog-20260518-1130.md +0 -39
  121. package/docs/implementation/tasks-detail-back-loses-filters-changelog-20260518-1100.md +0 -22
  122. package/docs/implementation/tasks-list-filter-pagination-changelog-20260518-0930.md +0 -72
  123. package/docs/implementation/tasks-page-white-screen-hotfix-changelog-20260518-1015.md +0 -56
  124. package/docs/reviews/claudemd-template-sync.md +0 -54
  125. package/docs/reviews/task-title-summary.md +0 -92
  126. package/docs/reviews/tasks-detail-back-loses-filters.md +0 -58
  127. package/docs/reviews/tasks-filter-pagination.md +0 -80
  128. package/docs/reviews/tasks-page-white-screen-hotfix.md +0 -126
  129. package/docs/ruflo-learning-strategy.md +0 -322
  130. package/docs/skills-deduplication-analysis.md +0 -83
  131. package/docs/skills-multiformat-support.md +0 -177
  132. package/docs/skills-third-party.md +0 -183
  133. package/docs/testing/tasks-filter-pagination-test-report.md +0 -86
  134. package/forge +0 -321
  135. package/playwright.config.ts +0 -40
  136. package/scripts/demo-v2.ts +0 -91
  137. package/scripts/dev-daemon.sh +0 -232
  138. package/scripts/dev-web.ts +0 -109
  139. package/scripts/e2e-mcp-link.ts +0 -423
  140. package/scripts/e2e-methodology-quality.ts +0 -253
  141. package/scripts/e2e-routing.ts +0 -456
  142. package/scripts/e2e-user-methodology.ts +0 -326
  143. package/scripts/e2e-web-workflows.ts +0 -299
  144. package/scripts/migrate-legacy-to-dynamic.sql +0 -108
  145. package/scripts/regenerate-execution-docs.ts +0 -116
  146. package/scripts/sync-agent-skills.ts +0 -193
  147. package/scripts/test-hook.sh +0 -71
  148. package/scripts/verify-skill-loading.ts +0 -62
  149. package/src/claudemd/claudemd-generator.ts +0 -568
  150. package/src/claudemd/convention-extractor.ts +0 -69
  151. package/src/claudemd/index.ts +0 -35
  152. package/src/claudemd/persona-manager.ts +0 -88
  153. package/src/claudemd/resume-manager.ts +0 -236
  154. package/src/claudemd/tech-detector.ts +0 -220
  155. package/src/claudemd/templates/swarm-protocol.md +0 -222
  156. package/src/cli/commands/claudemd.ts +0 -84
  157. package/src/cli/commands/config.ts +0 -46
  158. package/src/cli/commands/daemon.ts +0 -310
  159. package/src/cli/commands/executions.ts +0 -115
  160. package/src/cli/commands/init.ts +0 -204
  161. package/src/cli/commands/logs.ts +0 -181
  162. package/src/cli/commands/mcp.ts +0 -242
  163. package/src/cli/commands/menu.ts +0 -357
  164. package/src/cli/commands/skills.ts +0 -328
  165. package/src/cli/commands/stats.ts +0 -73
  166. package/src/cli/commands/status.ts +0 -69
  167. package/src/cli/commands/template.ts +0 -77
  168. package/src/cli/commands/trace.ts +0 -148
  169. package/src/cli/index.ts +0 -42
  170. package/src/cli/init/hook-manager.ts +0 -132
  171. package/src/core/ai/provider.ts +0 -308
  172. package/src/core/ai/types.ts +0 -51
  173. package/src/core/config.ts +0 -124
  174. package/src/core/constants.ts +0 -67
  175. package/src/core/event-fields.ts +0 -32
  176. package/src/core/queue/index.ts +0 -192
  177. package/src/core/storage/base.ts +0 -302
  178. package/src/core/storage/events.ts +0 -434
  179. package/src/core/storage/injections.ts +0 -78
  180. package/src/core/storage/maintenance.ts +0 -59
  181. package/src/core/storage/migrations/002_add_skill_tracking.sql +0 -6
  182. package/src/core/storage/migrations/003_add_skill_invocations.sql +0 -23
  183. package/src/core/storage/performance-indexes.sql +0 -23
  184. package/src/core/storage/routing.ts +0 -322
  185. package/src/core/storage/rows.ts +0 -112
  186. package/src/core/storage/schema.sql +0 -224
  187. package/src/core/storage/sessions.ts +0 -168
  188. package/src/core/storage/skills.ts +0 -233
  189. package/src/core/storage/sqlite.ts +0 -293
  190. package/src/core/storage/tasks.ts +0 -318
  191. package/src/core/storage/token-usage.ts +0 -93
  192. package/src/core/types.ts +0 -181
  193. package/src/core/utils/error-handler.ts +0 -257
  194. package/src/core/utils/forge-resume-block.ts +0 -74
  195. package/src/core/utils/format.ts +0 -69
  196. package/src/core/utils/git.ts +0 -23
  197. package/src/core/utils/logger.ts +0 -134
  198. package/src/core/utils/lru-cache.ts +0 -54
  199. package/src/core/utils/path.ts +0 -19
  200. package/src/core/utils/session.ts +0 -26
  201. package/src/core/utils/time.ts +0 -37
  202. package/src/core/utils/token-tracker.ts +0 -97
  203. package/src/daemon/event-parser.ts +0 -36
  204. package/src/daemon/handlers/history-exporter.ts +0 -117
  205. package/src/daemon/handlers/post-tool-use.ts +0 -54
  206. package/src/daemon/handlers/stop.ts +0 -208
  207. package/src/daemon/handlers/user-prompt.ts +0 -178
  208. package/src/daemon/hook-sync.ts +0 -91
  209. package/src/daemon/index.ts +0 -312
  210. package/src/daemon/launchd/com.claude-forge.daemon.plist.template +0 -47
  211. package/src/daemon/launchd-installer.ts +0 -260
  212. package/src/daemon/lifecycle.ts +0 -128
  213. package/src/daemon/router.ts +0 -40
  214. package/src/daemon/server.ts +0 -196
  215. package/src/daemon/services/task-segmenter.ts +0 -112
  216. package/src/daemon/skill-sync.ts +0 -88
  217. package/src/hooks/hook-lib.sh +0 -118
  218. package/src/hooks/notification.sh +0 -35
  219. package/src/hooks/post-tool-use.sh +0 -61
  220. package/src/hooks/pre-tool-use.sh +0 -63
  221. package/src/hooks/stop.sh +0 -43
  222. package/src/hooks/user-prompt-submit.sh +0 -69
  223. package/src/mcp/server.ts +0 -322
  224. package/src/skills/index.ts +0 -2
  225. package/src/skills/invocation-guard.ts +0 -177
  226. package/src/skills/matcher.ts +0 -148
  227. package/src/skills/official/code-simplifier.md +0 -52
  228. package/src/skills/official/find-skills.md +0 -142
  229. package/src/skills/official/official-api-design.md +0 -30
  230. package/src/skills/official/official-architecture-decision.md +0 -41
  231. package/src/skills/official/official-bmad.md +0 -118
  232. package/src/skills/official/official-db-schema-design.md +0 -34
  233. package/src/skills/official/official-debug.md +0 -25
  234. package/src/skills/official/official-doc-driven.md +0 -31
  235. package/src/skills/official/official-harness-engineering.md +0 -108
  236. package/src/skills/official/official-performance-optimization.md +0 -30
  237. package/src/skills/official/official-pr-review.md +0 -35
  238. package/src/skills/official/official-release-checklist.md +0 -30
  239. package/src/skills/official/official-security-hardening.md +0 -32
  240. package/src/skills/official/official-spec-driven-design.md +0 -31
  241. package/src/skills/official/planning-with-files.md +0 -241
  242. package/src/skills/official/ui-ux-pro-max.md +0 -105
  243. package/src/skills/official/webapp-testing.md +0 -96
  244. package/src/skills/official-skills.ts +0 -89
  245. package/src/skills/registry.ts +0 -355
  246. package/src/skills/semantic-matcher.ts +0 -234
  247. package/src/skills/tools/pipeline-suggest.ts +0 -226
  248. package/src/skills/tools/skill-invoke.ts +0 -168
  249. package/src/skills/tools/skill-list.ts +0 -59
  250. package/src/skills/upgrade-engine.ts +0 -541
  251. package/src/skills/upgrade-prompt.ts +0 -84
  252. package/src/templates/go.yaml +0 -53
  253. package/src/templates/python.yaml +0 -59
  254. package/src/templates/react.yaml +0 -55
  255. package/src/templates/template-manager.ts +0 -170
  256. package/src/web/analytics/anti-pattern-detector.ts +0 -367
  257. package/src/web/analytics/drift-detector.ts +0 -219
  258. package/src/web/analytics/weekly-report.ts +0 -431
  259. package/src/web/auth-middleware.ts +0 -54
  260. package/src/web/routes/_helpers.ts +0 -34
  261. package/src/web/routes/ai.ts +0 -204
  262. package/src/web/routes/auth.ts +0 -22
  263. package/src/web/routes/drift.ts +0 -25
  264. package/src/web/routes/error-handler.ts +0 -120
  265. package/src/web/routes/events.ts +0 -47
  266. package/src/web/routes/insights.ts +0 -43
  267. package/src/web/routes/patch.ts +0 -117
  268. package/src/web/routes/reports.ts +0 -34
  269. package/src/web/routes/rules.ts +0 -76
  270. package/src/web/routes/sessions.ts +0 -250
  271. package/src/web/routes/skill-stats.ts +0 -92
  272. package/src/web/routes/skills.ts +0 -350
  273. package/src/web/routes/static.ts +0 -67
  274. package/src/web/routes/stats.ts +0 -50
  275. package/src/web/routes/status.ts +0 -30
  276. package/src/web/routes/tasks.ts +0 -193
  277. package/src/web/routes/token-usage.ts +0 -20
  278. package/src/web/routes/trace.ts +0 -126
  279. package/src/web/routes/types.ts +0 -57
  280. package/src/web/server.ts +0 -134
  281. package/src/web/ssrf-guard.ts +0 -112
  282. package/src/web/static/index.html +0 -3251
  283. package/src/web/static/vendor/chart.umd.min.js +0 -20
  284. package/tests/e2e/dashboard.spec.ts +0 -205
  285. package/tests/e2e/routing-skill-e2e.test.ts +0 -39
  286. package/tests/helpers/mock-ai.ts +0 -92
  287. package/tests/helpers/mock-storage.ts +0 -159
  288. package/tests/integration/claudemd-generator.test.ts +0 -90
  289. package/tests/integration/queue-replay.integration.test.ts +0 -193
  290. package/tests/integration/tasks-filter.integration.test.ts +0 -154
  291. package/tests/integration/web-analytics.integration.test.ts +0 -133
  292. package/tests/integration/web-stats.integration.test.ts +0 -135
  293. package/tests/integration/web-trace.integration.test.ts +0 -175
  294. package/tests/performance/database.benchmark.ts +0 -161
  295. package/tests/semantic-matcher.test.ts +0 -99
  296. package/tests/skill-matcher.test.ts +0 -110
  297. package/tests/unit/ai-provider-retry.test.ts +0 -194
  298. package/tests/unit/ai-provider-vision.test.ts +0 -224
  299. package/tests/unit/claudemd-generator.test.ts +0 -68
  300. package/tests/unit/cli-mcp.test.ts +0 -141
  301. package/tests/unit/core/forge-paths.test.ts +0 -99
  302. package/tests/unit/daemon/hook-sync.test.ts +0 -71
  303. package/tests/unit/daemon/post-tool-use.test.ts +0 -121
  304. package/tests/unit/daemon/skill-sync.test.ts +0 -75
  305. package/tests/unit/daemon/stop-handler-behavior-summary.test.ts +0 -202
  306. package/tests/unit/daemon/task-segmenter-recover.test.ts +0 -84
  307. package/tests/unit/event-fields.test.ts +0 -88
  308. package/tests/unit/event-parser.test.ts +0 -55
  309. package/tests/unit/handlers.test.ts +0 -171
  310. package/tests/unit/hooks/resolve-project-path.test.ts +0 -122
  311. package/tests/unit/invocation-guard.test.ts +0 -125
  312. package/tests/unit/queue.test.ts +0 -272
  313. package/tests/unit/router.test.ts +0 -138
  314. package/tests/unit/security.test.ts +0 -128
  315. package/tests/unit/skill-invocations-workflow.test.ts +0 -495
  316. package/tests/unit/skill-registry.test.ts +0 -94
  317. package/tests/unit/skills/invocation-guard-ttl.test.ts +0 -211
  318. package/tests/unit/skills/official-skills-loader.test.ts +0 -126
  319. package/tests/unit/skills/registry-multiformat.test.ts +0 -92
  320. package/tests/unit/skills/upgrade-engine-parse.test.ts +0 -138
  321. package/tests/unit/skills/upgrade-engine.test.ts +0 -401
  322. package/tests/unit/skills/upgrade-prompt.test.ts +0 -89
  323. package/tests/unit/socket-server.test.ts +0 -183
  324. package/tests/unit/storage/event-operations-aggregates.test.ts +0 -342
  325. package/tests/unit/storage/migration-idempotent.test.ts +0 -304
  326. package/tests/unit/storage/routing-aggregates.test.ts +0 -276
  327. package/tests/unit/storage/routing.test.ts +0 -117
  328. package/tests/unit/storage/schema-missing.test.ts +0 -81
  329. package/tests/unit/storage/session-operations-aggregates.test.ts +0 -120
  330. package/tests/unit/storage/sessions-aggregate.test.ts +0 -435
  331. package/tests/unit/storage/skill-operations-counts.test.ts +0 -106
  332. package/tests/unit/storage/skills-aggregates.test.ts +0 -104
  333. package/tests/unit/storage/sqlite-refactor-harness.test.ts +0 -314
  334. package/tests/unit/storage/task-operations-counts.test.ts +0 -46
  335. package/tests/unit/storage/tasks-getById.test.ts +0 -343
  336. package/tests/unit/storage/tasks-stale-gc.test.ts +0 -86
  337. package/tests/unit/storage.test.ts +0 -172
  338. package/tests/unit/token-usage.test.ts +0 -144
  339. package/tests/unit/type-guards.test.ts +0 -201
  340. package/tests/unit/utils/format.test.ts +0 -189
  341. package/tests/unit/utils/session.test.ts +0 -89
  342. package/tests/unit/utils/time.test.ts +0 -112
  343. package/tests/unit/web/navigation-back-contract.test.ts +0 -134
  344. package/tests/unit/web/routes-auth.test.ts +0 -93
  345. package/tests/unit/web/routes-events.test.ts +0 -101
  346. package/tests/unit/web/routes-rules.test.ts +0 -182
  347. package/tests/unit/web/routes-sessions.test.ts +0 -181
  348. package/tests/unit/web/routes-skill-stats.test.ts +0 -179
  349. package/tests/unit/web/routes-stats.test.ts +0 -92
  350. package/tests/unit/web/routes-tasks.test.ts +0 -385
  351. package/tests/unit/web/task-title-contract.test.ts +0 -210
  352. package/tests/unit/web/tasks-component-contract.test.ts +0 -179
  353. package/tsconfig.json +0 -22
  354. package/vitest.config.ts +0 -21
  355. package/vitest.integration.config.ts +0 -16
  356. package/web/CLAUDE.md +0 -20
  357. package/web/index.html +0 -13
  358. package/web/package-lock.json +0 -4854
  359. package/web/package.json +0 -35
  360. package/web/postcss.config.js +0 -6
  361. package/web/src/App.tsx +0 -110
  362. package/web/src/components/CodeBlock.tsx +0 -31
  363. package/web/src/components/Confirm.tsx +0 -96
  364. package/web/src/components/Drawer.tsx +0 -60
  365. package/web/src/components/Layout.tsx +0 -145
  366. package/web/src/components/MarkdownRenderer.tsx +0 -77
  367. package/web/src/components/SearchInput.tsx +0 -31
  368. package/web/src/components/SessionDetailContent.tsx +0 -157
  369. package/web/src/components/Toast.tsx +0 -92
  370. package/web/src/index.css +0 -19
  371. package/web/src/main.tsx +0 -31
  372. package/web/src/pages/AIConfig.tsx +0 -233
  373. package/web/src/pages/Dashboard.tsx +0 -572
  374. package/web/src/pages/Events.tsx +0 -271
  375. package/web/src/pages/Reports.tsx +0 -428
  376. package/web/src/pages/SessionDetail.tsx +0 -162
  377. package/web/src/pages/Sessions.tsx +0 -205
  378. package/web/src/pages/Skills.tsx +0 -180
  379. package/web/src/pages/TaskDetail.tsx +0 -515
  380. package/web/src/pages/Tasks.tsx +0 -415
  381. package/web/src/utils/auth.ts +0 -59
  382. package/web/src/utils/export.ts +0 -54
  383. package/web/src/utils/navigation.ts +0 -25
  384. package/web/src/utils/task-title.ts +0 -49
  385. package/web/src/utils/time.ts +0 -13
  386. package/web/tailwind.config.js +0 -11
  387. package/web/tsconfig.json +0 -21
  388. package/web/tsconfig.node.json +0 -10
  389. package/web/vite.config.ts +0 -76
  390. 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
- });