@wandoupeas/coding-forge 0.1.0

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 (262) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +347 -0
  3. package/dist/agent/adapters/base.d.ts +9 -0
  4. package/dist/agent/adapters/base.d.ts.map +1 -0
  5. package/dist/agent/adapters/base.js +2 -0
  6. package/dist/agent/adapters/base.js.map +1 -0
  7. package/dist/agent/adapters/claude-code.d.ts +4 -0
  8. package/dist/agent/adapters/claude-code.d.ts.map +1 -0
  9. package/dist/agent/adapters/claude-code.js +25 -0
  10. package/dist/agent/adapters/claude-code.js.map +1 -0
  11. package/dist/agent/adapters/codex.d.ts +4 -0
  12. package/dist/agent/adapters/codex.d.ts.map +1 -0
  13. package/dist/agent/adapters/codex.js +27 -0
  14. package/dist/agent/adapters/codex.js.map +1 -0
  15. package/dist/agent/adapters/command-bridge.d.ts +67 -0
  16. package/dist/agent/adapters/command-bridge.d.ts.map +1 -0
  17. package/dist/agent/adapters/command-bridge.js +266 -0
  18. package/dist/agent/adapters/command-bridge.js.map +1 -0
  19. package/dist/agent/adapters/index.d.ts +7 -0
  20. package/dist/agent/adapters/index.d.ts.map +1 -0
  21. package/dist/agent/adapters/index.js +25 -0
  22. package/dist/agent/adapters/index.js.map +1 -0
  23. package/dist/agent/adapters/stub.d.ts +3 -0
  24. package/dist/agent/adapters/stub.d.ts.map +1 -0
  25. package/dist/agent/adapters/stub.js +66 -0
  26. package/dist/agent/adapters/stub.js.map +1 -0
  27. package/dist/agent/context.d.ts +36 -0
  28. package/dist/agent/context.d.ts.map +1 -0
  29. package/dist/agent/context.js +16 -0
  30. package/dist/agent/context.js.map +1 -0
  31. package/dist/agent/handlers/index.d.ts +6 -0
  32. package/dist/agent/handlers/index.d.ts.map +1 -0
  33. package/dist/agent/handlers/index.js +61 -0
  34. package/dist/agent/handlers/index.js.map +1 -0
  35. package/dist/agent/index.d.ts +18 -0
  36. package/dist/agent/index.d.ts.map +1 -0
  37. package/dist/agent/index.js +37 -0
  38. package/dist/agent/index.js.map +1 -0
  39. package/dist/agent/types.d.ts +21 -0
  40. package/dist/agent/types.d.ts.map +1 -0
  41. package/dist/agent/types.js +5 -0
  42. package/dist/agent/types.js.map +1 -0
  43. package/dist/cli/agent-briefing.d.ts +24 -0
  44. package/dist/cli/agent-briefing.d.ts.map +1 -0
  45. package/dist/cli/agent-briefing.js +133 -0
  46. package/dist/cli/agent-briefing.js.map +1 -0
  47. package/dist/cli/commands/checkpoint.d.ts +12 -0
  48. package/dist/cli/commands/checkpoint.d.ts.map +1 -0
  49. package/dist/cli/commands/checkpoint.js +86 -0
  50. package/dist/cli/commands/checkpoint.js.map +1 -0
  51. package/dist/cli/commands/dashboard.d.ts +14 -0
  52. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  53. package/dist/cli/commands/dashboard.js +192 -0
  54. package/dist/cli/commands/dashboard.js.map +1 -0
  55. package/dist/cli/commands/doctor.d.ts +27 -0
  56. package/dist/cli/commands/doctor.d.ts.map +1 -0
  57. package/dist/cli/commands/doctor.js +425 -0
  58. package/dist/cli/commands/doctor.js.map +1 -0
  59. package/dist/cli/commands/init.d.ts +19 -0
  60. package/dist/cli/commands/init.d.ts.map +1 -0
  61. package/dist/cli/commands/init.js +303 -0
  62. package/dist/cli/commands/init.js.map +1 -0
  63. package/dist/cli/commands/knowledge.d.ts +6 -0
  64. package/dist/cli/commands/knowledge.d.ts.map +1 -0
  65. package/dist/cli/commands/knowledge.js +408 -0
  66. package/dist/cli/commands/knowledge.js.map +1 -0
  67. package/dist/cli/commands/logs.d.ts +50 -0
  68. package/dist/cli/commands/logs.d.ts.map +1 -0
  69. package/dist/cli/commands/logs.js +248 -0
  70. package/dist/cli/commands/logs.js.map +1 -0
  71. package/dist/cli/commands/mailbox.d.ts +12 -0
  72. package/dist/cli/commands/mailbox.d.ts.map +1 -0
  73. package/dist/cli/commands/mailbox.js +131 -0
  74. package/dist/cli/commands/mailbox.js.map +1 -0
  75. package/dist/cli/commands/onboard.d.ts +43 -0
  76. package/dist/cli/commands/onboard.d.ts.map +1 -0
  77. package/dist/cli/commands/onboard.js +313 -0
  78. package/dist/cli/commands/onboard.js.map +1 -0
  79. package/dist/cli/commands/plan.d.ts +16 -0
  80. package/dist/cli/commands/plan.d.ts.map +1 -0
  81. package/dist/cli/commands/plan.js +211 -0
  82. package/dist/cli/commands/plan.js.map +1 -0
  83. package/dist/cli/commands/resume.d.ts +102 -0
  84. package/dist/cli/commands/resume.d.ts.map +1 -0
  85. package/dist/cli/commands/resume.js +256 -0
  86. package/dist/cli/commands/resume.js.map +1 -0
  87. package/dist/cli/commands/review.d.ts +13 -0
  88. package/dist/cli/commands/review.d.ts.map +1 -0
  89. package/dist/cli/commands/review.js +91 -0
  90. package/dist/cli/commands/review.js.map +1 -0
  91. package/dist/cli/commands/run.d.ts +19 -0
  92. package/dist/cli/commands/run.d.ts.map +1 -0
  93. package/dist/cli/commands/run.js +161 -0
  94. package/dist/cli/commands/run.js.map +1 -0
  95. package/dist/cli/commands/superpowers.d.ts +21 -0
  96. package/dist/cli/commands/superpowers.d.ts.map +1 -0
  97. package/dist/cli/commands/superpowers.js +135 -0
  98. package/dist/cli/commands/superpowers.js.map +1 -0
  99. package/dist/cli/commands/ui.d.ts +14 -0
  100. package/dist/cli/commands/ui.d.ts.map +1 -0
  101. package/dist/cli/commands/ui.js +41 -0
  102. package/dist/cli/commands/ui.js.map +1 -0
  103. package/dist/cli/commands/verify.d.ts +11 -0
  104. package/dist/cli/commands/verify.d.ts.map +1 -0
  105. package/dist/cli/commands/verify.js +46 -0
  106. package/dist/cli/commands/verify.js.map +1 -0
  107. package/dist/cli/index.d.ts +9 -0
  108. package/dist/cli/index.d.ts.map +1 -0
  109. package/dist/cli/index.js +69 -0
  110. package/dist/cli/index.js.map +1 -0
  111. package/dist/cli/utils/logger.d.ts +18 -0
  112. package/dist/cli/utils/logger.d.ts.map +1 -0
  113. package/dist/cli/utils/logger.js +57 -0
  114. package/dist/cli/utils/logger.js.map +1 -0
  115. package/dist/core/checkpoint.d.ts +54 -0
  116. package/dist/core/checkpoint.d.ts.map +1 -0
  117. package/dist/core/checkpoint.js +227 -0
  118. package/dist/core/checkpoint.js.map +1 -0
  119. package/dist/core/context.d.ts +36 -0
  120. package/dist/core/context.d.ts.map +1 -0
  121. package/dist/core/context.js +71 -0
  122. package/dist/core/context.js.map +1 -0
  123. package/dist/core/deliverable.d.ts +34 -0
  124. package/dist/core/deliverable.d.ts.map +1 -0
  125. package/dist/core/deliverable.js +125 -0
  126. package/dist/core/deliverable.js.map +1 -0
  127. package/dist/core/harness-hints.d.ts +43 -0
  128. package/dist/core/harness-hints.d.ts.map +1 -0
  129. package/dist/core/harness-hints.js +162 -0
  130. package/dist/core/harness-hints.js.map +1 -0
  131. package/dist/core/logger.d.ts +104 -0
  132. package/dist/core/logger.d.ts.map +1 -0
  133. package/dist/core/logger.js +199 -0
  134. package/dist/core/logger.js.map +1 -0
  135. package/dist/core/mailbox.d.ts +69 -0
  136. package/dist/core/mailbox.d.ts.map +1 -0
  137. package/dist/core/mailbox.js +225 -0
  138. package/dist/core/mailbox.js.map +1 -0
  139. package/dist/core/planning.d.ts +110 -0
  140. package/dist/core/planning.d.ts.map +1 -0
  141. package/dist/core/planning.js +832 -0
  142. package/dist/core/planning.js.map +1 -0
  143. package/dist/core/runtime.d.ts +22 -0
  144. package/dist/core/runtime.d.ts.map +1 -0
  145. package/dist/core/runtime.js +364 -0
  146. package/dist/core/runtime.js.map +1 -0
  147. package/dist/core/session.d.ts +62 -0
  148. package/dist/core/session.d.ts.map +1 -0
  149. package/dist/core/session.js +266 -0
  150. package/dist/core/session.js.map +1 -0
  151. package/dist/core/superpowers-registry.d.ts +20 -0
  152. package/dist/core/superpowers-registry.d.ts.map +1 -0
  153. package/dist/core/superpowers-registry.js +180 -0
  154. package/dist/core/superpowers-registry.js.map +1 -0
  155. package/dist/core/superpowers-runs.d.ts +19 -0
  156. package/dist/core/superpowers-runs.d.ts.map +1 -0
  157. package/dist/core/superpowers-runs.js +231 -0
  158. package/dist/core/superpowers-runs.js.map +1 -0
  159. package/dist/core/task.d.ts +43 -0
  160. package/dist/core/task.d.ts.map +1 -0
  161. package/dist/core/task.js +232 -0
  162. package/dist/core/task.js.map +1 -0
  163. package/dist/core/threads.d.ts +23 -0
  164. package/dist/core/threads.d.ts.map +1 -0
  165. package/dist/core/threads.js +92 -0
  166. package/dist/core/threads.js.map +1 -0
  167. package/dist/core/worker.d.ts +48 -0
  168. package/dist/core/worker.d.ts.map +1 -0
  169. package/dist/core/worker.js +181 -0
  170. package/dist/core/worker.js.map +1 -0
  171. package/dist/core/workflow-context.d.ts +16 -0
  172. package/dist/core/workflow-context.d.ts.map +1 -0
  173. package/dist/core/workflow-context.js +102 -0
  174. package/dist/core/workflow-context.js.map +1 -0
  175. package/dist/core/workspace.d.ts +13 -0
  176. package/dist/core/workspace.d.ts.map +1 -0
  177. package/dist/core/workspace.js +208 -0
  178. package/dist/core/workspace.js.map +1 -0
  179. package/dist/testing/index.d.ts +21 -0
  180. package/dist/testing/index.d.ts.map +1 -0
  181. package/dist/testing/index.js +55 -0
  182. package/dist/testing/index.js.map +1 -0
  183. package/dist/types/index.d.ts +298 -0
  184. package/dist/types/index.d.ts.map +1 -0
  185. package/dist/types/index.js +5 -0
  186. package/dist/types/index.js.map +1 -0
  187. package/dist/ui/assets/index-DLwnhrrc.css +1 -0
  188. package/dist/ui/assets/index-cDUGEuwi.js +234 -0
  189. package/dist/ui/http/handlers/project-artifacts.d.ts +3 -0
  190. package/dist/ui/http/handlers/project-artifacts.d.ts.map +1 -0
  191. package/dist/ui/http/handlers/project-artifacts.js +20 -0
  192. package/dist/ui/http/handlers/project-artifacts.js.map +1 -0
  193. package/dist/ui/http/handlers/project-overview.d.ts +3 -0
  194. package/dist/ui/http/handlers/project-overview.d.ts.map +1 -0
  195. package/dist/ui/http/handlers/project-overview.js +20 -0
  196. package/dist/ui/http/handlers/project-overview.js.map +1 -0
  197. package/dist/ui/http/handlers/project-recovery.d.ts +3 -0
  198. package/dist/ui/http/handlers/project-recovery.d.ts.map +1 -0
  199. package/dist/ui/http/handlers/project-recovery.js +20 -0
  200. package/dist/ui/http/handlers/project-recovery.js.map +1 -0
  201. package/dist/ui/http/handlers/project-runtime.d.ts +3 -0
  202. package/dist/ui/http/handlers/project-runtime.d.ts.map +1 -0
  203. package/dist/ui/http/handlers/project-runtime.js +20 -0
  204. package/dist/ui/http/handlers/project-runtime.js.map +1 -0
  205. package/dist/ui/http/handlers/project-tasks.d.ts +3 -0
  206. package/dist/ui/http/handlers/project-tasks.d.ts.map +1 -0
  207. package/dist/ui/http/handlers/project-tasks.js +20 -0
  208. package/dist/ui/http/handlers/project-tasks.js.map +1 -0
  209. package/dist/ui/http/handlers/projects.d.ts +23 -0
  210. package/dist/ui/http/handlers/projects.d.ts.map +1 -0
  211. package/dist/ui/http/handlers/projects.js +29 -0
  212. package/dist/ui/http/handlers/projects.js.map +1 -0
  213. package/dist/ui/http/router.d.ts +5 -0
  214. package/dist/ui/http/router.d.ts.map +1 -0
  215. package/dist/ui/http/router.js +81 -0
  216. package/dist/ui/http/router.js.map +1 -0
  217. package/dist/ui/http/server.d.ts +29 -0
  218. package/dist/ui/http/server.d.ts.map +1 -0
  219. package/dist/ui/http/server.js +143 -0
  220. package/dist/ui/http/server.js.map +1 -0
  221. package/dist/ui/index.html +13 -0
  222. package/dist/ui/project-registry.d.ts +9 -0
  223. package/dist/ui/project-registry.d.ts.map +1 -0
  224. package/dist/ui/project-registry.js +19 -0
  225. package/dist/ui/project-registry.js.map +1 -0
  226. package/dist/ui/project-scanner.d.ts +10 -0
  227. package/dist/ui/project-scanner.d.ts.map +1 -0
  228. package/dist/ui/project-scanner.js +135 -0
  229. package/dist/ui/project-scanner.js.map +1 -0
  230. package/dist/ui/read-models/artifacts.d.ts +58 -0
  231. package/dist/ui/read-models/artifacts.d.ts.map +1 -0
  232. package/dist/ui/read-models/artifacts.js +97 -0
  233. package/dist/ui/read-models/artifacts.js.map +1 -0
  234. package/dist/ui/read-models/overview.d.ts +38 -0
  235. package/dist/ui/read-models/overview.d.ts.map +1 -0
  236. package/dist/ui/read-models/overview.js +55 -0
  237. package/dist/ui/read-models/overview.js.map +1 -0
  238. package/dist/ui/read-models/recovery.d.ts +18 -0
  239. package/dist/ui/read-models/recovery.d.ts.map +1 -0
  240. package/dist/ui/read-models/recovery.js +26 -0
  241. package/dist/ui/read-models/recovery.js.map +1 -0
  242. package/dist/ui/read-models/runtime.d.ts +53 -0
  243. package/dist/ui/read-models/runtime.d.ts.map +1 -0
  244. package/dist/ui/read-models/runtime.js +86 -0
  245. package/dist/ui/read-models/runtime.js.map +1 -0
  246. package/dist/ui/read-models/tasks.d.ts +34 -0
  247. package/dist/ui/read-models/tasks.d.ts.map +1 -0
  248. package/dist/ui/read-models/tasks.js +46 -0
  249. package/dist/ui/read-models/tasks.js.map +1 -0
  250. package/dist/utils/config.d.ts +30 -0
  251. package/dist/utils/config.d.ts.map +1 -0
  252. package/dist/utils/config.js +152 -0
  253. package/dist/utils/config.js.map +1 -0
  254. package/dist/utils/file.d.ts +24 -0
  255. package/dist/utils/file.d.ts.map +1 -0
  256. package/dist/utils/file.js +42 -0
  257. package/dist/utils/file.js.map +1 -0
  258. package/dist/utils/lock.d.ts +7 -0
  259. package/dist/utils/lock.d.ts.map +1 -0
  260. package/dist/utils/lock.js +36 -0
  261. package/dist/utils/lock.js.map +1 -0
  262. package/package.json +78 -0
@@ -0,0 +1,102 @@
1
+ /**
2
+ * resume 命令 - 基于 session + runtime 的恢复入口
3
+ */
4
+ import { Command } from 'commander';
5
+ import type { AgentPermissionProfile } from '../../types/index.js';
6
+ import { type RuntimeLogsContextDriftSummary, type RuntimeLogsThreadLinkageSummary, type RuntimeLogsWorkflowContextSummary } from './logs.js';
7
+ export interface ResumeObservationSummary {
8
+ readyTasks: number;
9
+ blockedTasks: number;
10
+ pendingReview: number;
11
+ unreadMessages: number;
12
+ }
13
+ export interface ResumeSuperpowersSummary {
14
+ enabled: boolean;
15
+ taskSkills: string[];
16
+ requiredSkills: string[];
17
+ executionMode: 'subagent' | 'inline' | null;
18
+ suggestedWorkflow: string | null;
19
+ capabilities: Array<{
20
+ id: string;
21
+ kind: string;
22
+ owner: string;
23
+ recommended: boolean;
24
+ }>;
25
+ }
26
+ export interface ResumePermissionSummary {
27
+ profile: AgentPermissionProfile;
28
+ canWriteWorkspace: boolean;
29
+ requiresApproval: boolean;
30
+ }
31
+ export interface ResumeRuntimeLogSummary {
32
+ sessionId: string | null;
33
+ lastEvent: string | null;
34
+ lastTaskId: string | null;
35
+ permissionProfile: string | null;
36
+ command: string | null;
37
+ workflowContext: RuntimeLogsWorkflowContextSummary | null;
38
+ threadLinkage: RuntimeLogsThreadLinkageSummary;
39
+ currentWorkflowContext: RuntimeLogsWorkflowContextSummary | null;
40
+ currentThreadLinkage: RuntimeLogsThreadLinkageSummary;
41
+ contextDrift: RuntimeLogsContextDriftSummary;
42
+ }
43
+ export interface ResumeLatestSuperpowersRunSummary {
44
+ id: string;
45
+ workflow: string;
46
+ summary: string;
47
+ taskId: string | null;
48
+ sessionId: string | null;
49
+ recordedAt: string;
50
+ artifacts: string[];
51
+ }
52
+ export interface ResumeWorkflowContextSummary {
53
+ workflow: string;
54
+ runId: string | null;
55
+ owner: string | null;
56
+ waveId: string | null;
57
+ threadId: string | null;
58
+ branch: string | null;
59
+ worktreePath: string | null;
60
+ compactFromSession: string | null;
61
+ artifacts: string[];
62
+ }
63
+ export interface ResumeThreadLinkageSummary {
64
+ status: 'none' | 'ready' | 'blocked';
65
+ threadId: string | null;
66
+ workflow: string | null;
67
+ runId: string | null;
68
+ branch: string | null;
69
+ worktreePath: string | null;
70
+ missingArtifacts: string[];
71
+ missingWorktreePath: string | null;
72
+ missingThreadId: string | null;
73
+ }
74
+ export interface ResumeSummary {
75
+ sessionId: string | null;
76
+ sessionName: string | null;
77
+ lastActive: string | null;
78
+ runtimeStatus: string;
79
+ runtimeSummary: string;
80
+ currentTaskId: string | null;
81
+ currentPhaseId: string | null;
82
+ readyCount: number;
83
+ blockedCount: number;
84
+ pendingReviewCount: number;
85
+ nextAction: string;
86
+ guidance: string | null;
87
+ shouldRead: string[];
88
+ observation: ResumeObservationSummary;
89
+ superpowers: ResumeSuperpowersSummary;
90
+ permissions: ResumePermissionSummary;
91
+ runtimeLog: ResumeRuntimeLogSummary;
92
+ latestSuperpowersRun: ResumeLatestSuperpowersRunSummary | null;
93
+ workflowContext: ResumeWorkflowContextSummary | null;
94
+ threadLinkage: ResumeThreadLinkageSummary;
95
+ }
96
+ export interface ResumeCommandOptions {
97
+ json?: boolean;
98
+ }
99
+ export declare function createResumeCommand(): Command;
100
+ export declare function buildResumeSummary(basePath?: string): Promise<ResumeSummary>;
101
+ export declare function resumeCommand(optionsOrBasePath?: ResumeCommandOptions | string, maybeBasePath?: string): Promise<void>;
102
+ //# sourceMappingURL=resume.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,KAAK,iCAAiC,EACvC,MAAM,WAAW,CAAC;AAInB,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAAC;IAC5C,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,EAAE,KAAK,CAAC;QAClB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,sBAAsB,CAAC;IAChC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,iCAAiC,GAAG,IAAI,CAAC;IAC1D,aAAa,EAAE,+BAA+B,CAAC;IAC/C,sBAAsB,EAAE,iCAAiC,GAAG,IAAI,CAAC;IACjE,oBAAoB,EAAE,+BAA+B,CAAC;IACtD,YAAY,EAAE,8BAA8B,CAAC;CAC9C;AAED,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACrC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,wBAAwB,CAAC;IACtC,WAAW,EAAE,wBAAwB,CAAC;IACtC,WAAW,EAAE,uBAAuB,CAAC;IACrC,UAAU,EAAE,uBAAuB,CAAC;IACpC,oBAAoB,EAAE,iCAAiC,GAAG,IAAI,CAAC;IAC/D,eAAe,EAAE,4BAA4B,GAAG,IAAI,CAAC;IACrD,aAAa,EAAE,0BAA0B,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAY7C;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,aAAa,CAAC,CAoJxB;AAED,wBAAsB,aAAa,CACjC,iBAAiB,GAAE,oBAAoB,GAAG,MAAW,EACrD,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC,CA8Ff"}
@@ -0,0 +1,256 @@
1
+ /**
2
+ * resume 命令 - 基于 session + runtime 的恢复入口
3
+ */
4
+ import { Command } from 'commander';
5
+ import { getThreadLink, inspectThreadLink } from '../../core/threads.js';
6
+ import { buildRuntimeLogsSummary } from './logs.js';
7
+ import logger from '../utils/logger.js';
8
+ import { buildAgentBriefing } from '../agent-briefing.js';
9
+ export function createResumeCommand() {
10
+ return new Command('resume')
11
+ .description('基于 session 与 runtime 状态给出恢复建议')
12
+ .option('--json', '输出结构化恢复简报,供 agent 或脚本消费')
13
+ .action(async (options) => {
14
+ try {
15
+ await resumeCommand(options);
16
+ }
17
+ catch (error) {
18
+ logger.error(`恢复失败: ${error}`);
19
+ process.exit(1);
20
+ }
21
+ });
22
+ }
23
+ export async function buildResumeSummary(basePath = process.cwd()) {
24
+ const [briefing, runtimeLogs] = await Promise.all([
25
+ buildAgentBriefing(basePath),
26
+ buildRuntimeLogsSummary(undefined, basePath).catch(() => null)
27
+ ]);
28
+ const threadId = briefing.workflowContext?.threadId ?? null;
29
+ const threadLink = threadId ? await getThreadLink(basePath, threadId) : null;
30
+ const threadLinkage = !threadId
31
+ ? {
32
+ status: 'none',
33
+ threadId: null,
34
+ workflow: null,
35
+ runId: null,
36
+ branch: null,
37
+ worktreePath: null,
38
+ missingArtifacts: [],
39
+ missingWorktreePath: null,
40
+ missingThreadId: null
41
+ }
42
+ : !threadLink
43
+ ? {
44
+ status: 'blocked',
45
+ threadId,
46
+ workflow: null,
47
+ runId: null,
48
+ branch: null,
49
+ worktreePath: null,
50
+ missingArtifacts: [],
51
+ missingWorktreePath: null,
52
+ missingThreadId: threadId
53
+ }
54
+ : (() => {
55
+ const readiness = inspectThreadLink(basePath, threadLink);
56
+ return {
57
+ status: readiness.missingArtifacts.length > 0 || readiness.missingWorktreePath
58
+ ? 'blocked'
59
+ : 'ready',
60
+ threadId: threadLink.id,
61
+ workflow: threadLink.workflow,
62
+ runId: threadLink.runId ?? null,
63
+ branch: threadLink.branch ?? null,
64
+ worktreePath: threadLink.worktreePath ?? null,
65
+ missingArtifacts: readiness.missingArtifacts,
66
+ missingWorktreePath: readiness.missingWorktreePath,
67
+ missingThreadId: null
68
+ };
69
+ })();
70
+ return {
71
+ sessionId: briefing.sessionId,
72
+ sessionName: briefing.sessionName,
73
+ lastActive: briefing.lastActive,
74
+ runtimeStatus: briefing.runtimeStatus,
75
+ runtimeSummary: briefing.runtimeSummary,
76
+ currentTaskId: briefing.currentTaskId,
77
+ currentPhaseId: briefing.currentPhaseId,
78
+ readyCount: briefing.readyTasks.length,
79
+ blockedCount: briefing.blockedTasks.length,
80
+ pendingReviewCount: briefing.pendingReview.length,
81
+ guidance: briefing.guidance,
82
+ nextAction: briefing.nextAction,
83
+ shouldRead: briefing.shouldRead,
84
+ observation: {
85
+ readyTasks: briefing.observation.counts.readyTasks,
86
+ blockedTasks: briefing.observation.counts.blockedTasks,
87
+ pendingReview: briefing.observation.counts.pendingReview,
88
+ unreadMessages: briefing.observation.counts.unreadMessages
89
+ },
90
+ superpowers: {
91
+ enabled: briefing.superpowers.enabled,
92
+ taskSkills: briefing.superpowers.taskSkills,
93
+ requiredSkills: briefing.superpowers.requiredSkills,
94
+ executionMode: briefing.superpowers.executionMode,
95
+ suggestedWorkflow: briefing.superpowers.suggestedWorkflow,
96
+ capabilities: briefing.superpowers.capabilities.map((capability) => ({
97
+ id: capability.id,
98
+ kind: capability.kind,
99
+ owner: capability.owner,
100
+ recommended: capability.recommended
101
+ }))
102
+ },
103
+ permissions: {
104
+ profile: briefing.permissions.profile,
105
+ canWriteWorkspace: briefing.permissions.canWriteWorkspace,
106
+ requiresApproval: briefing.permissions.requiresApproval
107
+ },
108
+ runtimeLog: {
109
+ sessionId: runtimeLogs?.sessionId ?? null,
110
+ lastEvent: runtimeLogs?.lastEvent ?? null,
111
+ lastTaskId: runtimeLogs?.lastTaskId ?? null,
112
+ permissionProfile: runtimeLogs?.permissionProfile ?? null,
113
+ command: runtimeLogs?.sessionId ? `webforge logs runtime ${runtimeLogs.sessionId}` : null,
114
+ workflowContext: runtimeLogs?.workflowContext ?? null,
115
+ threadLinkage: runtimeLogs?.threadLinkage ?? {
116
+ status: 'none',
117
+ threadId: null,
118
+ workflow: null,
119
+ runId: null,
120
+ branch: null,
121
+ worktreePath: null,
122
+ missingArtifacts: [],
123
+ missingWorktreePath: null,
124
+ missingThreadId: null
125
+ },
126
+ currentWorkflowContext: runtimeLogs?.currentWorkflowContext ?? null,
127
+ currentThreadLinkage: runtimeLogs?.currentThreadLinkage ?? {
128
+ status: 'none',
129
+ threadId: null,
130
+ workflow: null,
131
+ runId: null,
132
+ branch: null,
133
+ worktreePath: null,
134
+ missingArtifacts: [],
135
+ missingWorktreePath: null,
136
+ missingThreadId: null
137
+ },
138
+ contextDrift: runtimeLogs?.contextDrift ?? {
139
+ status: 'none',
140
+ reasons: []
141
+ }
142
+ },
143
+ latestSuperpowersRun: briefing.latestSuperpowersRun
144
+ ? {
145
+ id: briefing.latestSuperpowersRun.id,
146
+ workflow: briefing.latestSuperpowersRun.workflow,
147
+ summary: briefing.latestSuperpowersRun.summary,
148
+ taskId: briefing.latestSuperpowersRun.taskId ?? null,
149
+ sessionId: briefing.latestSuperpowersRun.sessionId ?? null,
150
+ recordedAt: briefing.latestSuperpowersRun.recordedAt,
151
+ artifacts: briefing.latestSuperpowersRun.artifacts.map((artifact) => artifact.path)
152
+ }
153
+ : null,
154
+ workflowContext: briefing.workflowContext
155
+ ? {
156
+ workflow: briefing.workflowContext.workflow,
157
+ runId: briefing.workflowContext.runId ?? null,
158
+ owner: briefing.workflowContext.owner ?? null,
159
+ waveId: briefing.workflowContext.waveId ?? null,
160
+ threadId: briefing.workflowContext.threadId ?? null,
161
+ branch: briefing.workflowContext.branch ?? null,
162
+ worktreePath: briefing.workflowContext.worktreePath ?? null,
163
+ compactFromSession: briefing.workflowContext.compactFromSession ?? null,
164
+ artifacts: briefing.workflowContext.artifacts ?? []
165
+ }
166
+ : null,
167
+ threadLinkage
168
+ };
169
+ }
170
+ export async function resumeCommand(optionsOrBasePath = {}, maybeBasePath) {
171
+ const options = typeof optionsOrBasePath === 'string'
172
+ ? {}
173
+ : optionsOrBasePath;
174
+ const basePath = typeof optionsOrBasePath === 'string'
175
+ ? optionsOrBasePath
176
+ : (maybeBasePath ?? process.cwd());
177
+ const summary = await buildResumeSummary(basePath);
178
+ if (options.json) {
179
+ console.log(JSON.stringify(summary, null, 2));
180
+ return;
181
+ }
182
+ logger.h1('🔄 Agent 恢复简报');
183
+ if (summary.sessionId) {
184
+ logger.info(`最近会话: ${summary.sessionId} (${summary.sessionName ?? 'unnamed'})`);
185
+ logger.info(`最后活跃: ${new Date(summary.lastActive).toLocaleString()}`);
186
+ }
187
+ else {
188
+ logger.warning('没有找到历史会话,以下建议基于当前 workspace 状态生成。');
189
+ }
190
+ console.log();
191
+ logger.h2('建议先读');
192
+ logger.list(summary.shouldRead);
193
+ console.log();
194
+ logger.h2('Runtime 状态');
195
+ logger.info(`status: ${summary.runtimeStatus}`);
196
+ logger.info(`summary: ${summary.runtimeSummary}`);
197
+ logger.info(`current phase: ${summary.currentPhaseId ?? 'none'}`);
198
+ logger.info(`current task: ${summary.currentTaskId ?? 'none'}`);
199
+ logger.info(`ready tasks: ${summary.readyCount}`);
200
+ console.log();
201
+ logger.h2('工作信号');
202
+ logger.info(`blocked tasks: ${summary.blockedCount}`);
203
+ logger.info(`pending review: ${summary.pendingReviewCount}`);
204
+ logger.info(`unread mailbox: ${summary.observation.unreadMessages}`);
205
+ console.log();
206
+ logger.h2('方法与权限');
207
+ logger.info(`permission profile: ${summary.permissions.profile}`);
208
+ logger.info(`workspace write: ${summary.permissions.canWriteWorkspace ? 'yes' : 'no'}`);
209
+ logger.info(`superpowers workflow: ${summary.superpowers.suggestedWorkflow ?? 'none'}`);
210
+ logger.info(`task skills: ${summary.superpowers.taskSkills.length > 0 ? summary.superpowers.taskSkills.join(', ') : 'none'}`);
211
+ if (summary.runtimeLog.sessionId) {
212
+ logger.info(`runtime log: ${summary.runtimeLog.command}`);
213
+ logger.info(`runtime drift: ${summary.runtimeLog.contextDrift.status}`);
214
+ if (summary.runtimeLog.contextDrift.reasons.length > 0) {
215
+ logger.info(`runtime drift reasons: ${summary.runtimeLog.contextDrift.reasons.join(', ')}`);
216
+ }
217
+ }
218
+ if (summary.latestSuperpowersRun) {
219
+ logger.info(`latest workflow artifact: ${summary.latestSuperpowersRun.workflow} -> ${summary.latestSuperpowersRun.artifacts[0] ?? 'none'}`);
220
+ }
221
+ if (summary.workflowContext) {
222
+ logger.info(`workflow context: ${summary.workflowContext.workflow} / ${summary.workflowContext.branch ?? 'no-branch'}`);
223
+ }
224
+ if (summary.threadLinkage.status !== 'none') {
225
+ logger.info(`thread linkage: ${summary.threadLinkage.status} / ${summary.threadLinkage.threadId ?? 'none'}`);
226
+ if (summary.threadLinkage.status === 'blocked') {
227
+ logger.info(`thread issues: ${formatThreadLinkageIssues(summary.threadLinkage)}`);
228
+ }
229
+ }
230
+ if (summary.guidance) {
231
+ console.log();
232
+ logger.h2('恢复提示');
233
+ logger.info(summary.guidance);
234
+ }
235
+ console.log();
236
+ logger.h2('下一步');
237
+ logger.info(summary.nextAction);
238
+ logger.list([
239
+ 'webforge dashboard # 查看完整观察面',
240
+ 'webforge doctor # 校验仓库契约'
241
+ ]);
242
+ }
243
+ function formatThreadLinkageIssues(summary) {
244
+ const issues = [];
245
+ if (summary.missingThreadId) {
246
+ issues.push(`missing thread=${summary.missingThreadId}`);
247
+ }
248
+ if (summary.missingArtifacts.length > 0) {
249
+ issues.push(`missing artifacts=${summary.missingArtifacts.join(', ')}`);
250
+ }
251
+ if (summary.missingWorktreePath) {
252
+ issues.push(`missing worktree=${summary.missingWorktreePath}`);
253
+ }
254
+ return issues.join('; ');
255
+ }
256
+ //# sourceMappingURL=resume.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume.js","sourceRoot":"","sources":["../../../src/cli/commands/resume.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * review 命令 - 审核交付物
3
+ */
4
+ import { Command } from 'commander';
5
+ export interface ReviewOptions {
6
+ approve?: boolean;
7
+ reject?: boolean;
8
+ comment?: string;
9
+ all?: boolean;
10
+ }
11
+ export declare function createReviewCommand(basePath?: string): Command;
12
+ export declare function reviewCommand(target: string, options: ReviewOptions, basePath?: string): Promise<void>;
13
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CAgB7E;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,EACtB,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAoDf"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * review 命令 - 审核交付物
3
+ */
4
+ import { Command } from 'commander';
5
+ import logger from '../utils/logger.js';
6
+ import { Mailbox } from '../../core/mailbox.js';
7
+ import { listDeliverables, reviewDeliverable } from '../../core/deliverable.js';
8
+ export function createReviewCommand(basePath = process.cwd()) {
9
+ return new Command('review')
10
+ .description('审核交付物,可传 deliverable ID 或 task ID')
11
+ .argument('<target>', 'deliverable ID 或 task ID')
12
+ .option('--approve', '通过审核')
13
+ .option('--reject', '拒绝审核')
14
+ .option('-m, --comment <comment>', '审核说明')
15
+ .option('--all', '按 task ID 审核时包含非 pending_review 的交付物')
16
+ .action(async (target, options) => {
17
+ try {
18
+ await reviewCommand(target, options, basePath);
19
+ }
20
+ catch (error) {
21
+ logger.error(`审核失败: ${error}`);
22
+ process.exit(1);
23
+ }
24
+ });
25
+ }
26
+ export async function reviewCommand(target, options, basePath = process.cwd()) {
27
+ if (options.approve && options.reject) {
28
+ throw new Error('不能同时指定 --approve 和 --reject');
29
+ }
30
+ const approved = options.reject ? false : true;
31
+ const deliverables = await listDeliverables(undefined, basePath);
32
+ const resolved = resolveReviewTargets(deliverables, target, options.all === true);
33
+ if (resolved.targets.length === 0) {
34
+ logger.info(resolved.mode === 'task'
35
+ ? `任务 ${target} 当前没有可审核的交付物`
36
+ : `没有找到目标 ${target} 对应的交付物`);
37
+ return;
38
+ }
39
+ const reviewedAt = new Date().toISOString();
40
+ const reviewerMailbox = new Mailbox('reviewer', basePath);
41
+ for (const deliverable of resolved.targets) {
42
+ await reviewDeliverable(deliverable.id, approved, options.comment, basePath);
43
+ await reviewerMailbox.send(deliverable.createdBy, 'approval_result', buildReviewMessageContent(deliverable, approved, options.comment), {
44
+ taskId: deliverable.taskId,
45
+ metadata: {
46
+ deliverableId: deliverable.id,
47
+ taskId: deliverable.taskId,
48
+ approved,
49
+ comment: options.comment ?? null,
50
+ reviewedAt
51
+ }
52
+ });
53
+ }
54
+ logger.h1(approved ? '✅ 审核通过' : '❌ 审核拒绝');
55
+ logger.info(`目标: ${target} (${resolved.mode})`);
56
+ logger.info(`更新数量: ${resolved.targets.length}`);
57
+ if (options.comment) {
58
+ logger.info(`说明: ${options.comment}`);
59
+ }
60
+ for (const deliverable of resolved.targets) {
61
+ console.log(` • ${deliverable.id} ${deliverable.title} -> ${approved ? 'approved' : 'rejected'}`);
62
+ }
63
+ }
64
+ function buildReviewMessageContent(deliverable, approved, comment) {
65
+ const decision = approved ? '通过' : '拒绝';
66
+ const suffix = comment ? `:${comment}` : '';
67
+ return `交付物 ${deliverable.id} (${deliverable.title}) 已${decision}审核${suffix}`;
68
+ }
69
+ function resolveReviewTargets(deliverables, target, includeAllTaskDeliverables) {
70
+ const deliverableMatch = deliverables.find((deliverable) => deliverable.id === target);
71
+ if (deliverableMatch) {
72
+ return {
73
+ mode: 'deliverable',
74
+ targets: [deliverableMatch]
75
+ };
76
+ }
77
+ const taskMatches = deliverables.filter((deliverable) => deliverable.taskId === target);
78
+ if (taskMatches.length === 0) {
79
+ return {
80
+ mode: /^T/i.test(target) ? 'task' : 'deliverable',
81
+ targets: []
82
+ };
83
+ }
84
+ return {
85
+ mode: 'task',
86
+ targets: includeAllTaskDeliverables
87
+ ? taskMatches
88
+ : taskMatches.filter((deliverable) => deliverable.status === 'pending_review')
89
+ };
90
+ }
91
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../../src/cli/commands/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * run 命令 - runtime 兼容入口
3
+ * CLI 仅负责参数解析和结果渲染,真正执行交给 core/runtime。
4
+ */
5
+ import { Command } from 'commander';
6
+ export interface RunOptions {
7
+ dryRun?: boolean;
8
+ limit?: number;
9
+ phase?: string;
10
+ worker?: string;
11
+ auto?: boolean;
12
+ superpowers?: boolean;
13
+ execution?: 'subagent' | 'inline';
14
+ session?: string;
15
+ }
16
+ export declare function createRunCommand(): Command;
17
+ export declare function runCommand(options: RunOptions, basePath?: string): Promise<void>;
18
+ export declare function createDeliverablesCommand(basePath?: string): Command;
19
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,UAAU,GAAG,QAAQ,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAmB1C;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,UAAU,EACnB,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAef;AAwGD,wBAAgB,yBAAyB,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,CA0CnF"}