@wandoupeas/coding-forge 0.1.0 → 0.1.2
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.
- package/README.md +67 -24
- package/dist/cli/commands/init.d.ts +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +21 -10
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/record.d.ts +11 -0
- package/dist/cli/commands/record.d.ts.map +1 -0
- package/dist/cli/commands/record.js +425 -0
- package/dist/cli/commands/record.js.map +1 -0
- package/dist/cli/commands/ui.js +2 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +13 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/logger.d.ts +5 -0
- package/dist/core/logger.d.ts.map +1 -1
- package/dist/core/logger.js +28 -0
- package/dist/core/logger.js.map +1 -1
- package/dist/core/planning.d.ts +13 -0
- package/dist/core/planning.d.ts.map +1 -1
- package/dist/core/planning.js +174 -7
- package/dist/core/planning.js.map +1 -1
- package/dist/ui/assets/index-B0LGSKSp.js +148 -0
- package/dist/ui/assets/index-BdOHfAmP.js +148 -0
- package/dist/ui/assets/index-BfMXz_A9.js +212 -0
- package/dist/ui/assets/index-C1V1OpTU.js +212 -0
- package/dist/ui/assets/index-CoJ1w_rN.js +212 -0
- package/dist/ui/assets/index-Cwtzi3AY.js +212 -0
- package/dist/ui/assets/index-DKs5v38z.js +148 -0
- package/dist/ui/assets/index-DlGG47Su.js +212 -0
- package/dist/ui/assets/index-bcUWb_BE.js +212 -0
- package/dist/ui/assets/index-gcGvB3SX.js +212 -0
- package/dist/ui/http/handlers/project-artifacts.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-artifacts.js +3 -6
- package/dist/ui/http/handlers/project-artifacts.js.map +1 -1
- package/dist/ui/http/handlers/project-overview.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-overview.js +3 -6
- package/dist/ui/http/handlers/project-overview.js.map +1 -1
- package/dist/ui/http/handlers/project-recovery.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-recovery.js +3 -6
- package/dist/ui/http/handlers/project-recovery.js.map +1 -1
- package/dist/ui/http/handlers/project-runtime.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-runtime.js +3 -6
- package/dist/ui/http/handlers/project-runtime.js.map +1 -1
- package/dist/ui/http/handlers/project-tasks.d.ts.map +1 -1
- package/dist/ui/http/handlers/project-tasks.js +3 -6
- package/dist/ui/http/handlers/project-tasks.js.map +1 -1
- package/dist/ui/http/handlers/projects.d.ts +15 -0
- package/dist/ui/http/handlers/projects.d.ts.map +1 -1
- package/dist/ui/http/handlers/projects.js +27 -0
- package/dist/ui/http/handlers/projects.js.map +1 -1
- package/dist/ui/http/router.d.ts.map +1 -1
- package/dist/ui/http/router.js +47 -27
- package/dist/ui/http/router.js.map +1 -1
- package/dist/ui/http/server.js +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/ui/project-scanner.js +1 -1
- package/dist/ui/project-scanner.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -43,26 +43,29 @@ WebForge 是一个面向 Coding Agent 的 `agent-first harness` 参考实现。
|
|
|
43
43
|
|
|
44
44
|
## 快速开始
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
### 安装方式
|
|
47
|
+
|
|
48
|
+
**方式一:本地源码部署(开发/调试)**
|
|
47
49
|
|
|
48
50
|
```bash
|
|
49
51
|
npm install
|
|
50
52
|
npm run build
|
|
53
|
+
# 使用方式: node dist/cli/index.js <command>
|
|
51
54
|
```
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
**方式二:npm 全局安装(推荐)**
|
|
54
57
|
|
|
55
58
|
```bash
|
|
56
59
|
npm install -g @wandoupeas/coding-forge
|
|
57
|
-
|
|
60
|
+
# 使用方式: webforge <command>
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
+
# 或临时运行
|
|
62
63
|
npx @wandoupeas/coding-forge --help
|
|
63
64
|
```
|
|
64
65
|
|
|
65
|
-
|
|
66
|
+
### 初始化仓库
|
|
67
|
+
|
|
68
|
+
以下命令以**本地源码**方式演示,如果你使用 npm 安装,请将 `node dist/cli/index.js` 替换为 `webforge`:
|
|
66
69
|
|
|
67
70
|
```bash
|
|
68
71
|
node dist/cli/index.js init demo-app
|
|
@@ -78,14 +81,23 @@ node dist/cli/index.js init demo-app
|
|
|
78
81
|
初始化完成后,进入新仓库先运行:
|
|
79
82
|
|
|
80
83
|
```bash
|
|
84
|
+
# 本地源码方式
|
|
81
85
|
node dist/cli/index.js doctor
|
|
86
|
+
|
|
87
|
+
# 或 npm 安装方式
|
|
88
|
+
webforge doctor
|
|
82
89
|
```
|
|
83
90
|
|
|
84
91
|
如果你希望让正在仓库里工作的 agent 直接消费结构化状态,可以使用:
|
|
85
92
|
|
|
86
93
|
```bash
|
|
94
|
+
# 本地源码方式
|
|
87
95
|
node dist/cli/index.js doctor --json
|
|
88
96
|
node dist/cli/index.js resume --json
|
|
97
|
+
|
|
98
|
+
# 或 npm 安装方式
|
|
99
|
+
webforge doctor --json
|
|
100
|
+
webforge resume --json
|
|
89
101
|
```
|
|
90
102
|
|
|
91
103
|
这两个命令分别回答:
|
|
@@ -96,21 +108,19 @@ node dist/cli/index.js resume --json
|
|
|
96
108
|
如果你想用本地 Web UI 统一查看多个 WebForge 项目,可以直接启动:
|
|
97
109
|
|
|
98
110
|
```bash
|
|
111
|
+
# 本地源码方式
|
|
99
112
|
node dist/cli/index.js ui --root ~/projects
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
如果你已经通过 npm 安装,则等价命令是:
|
|
103
113
|
|
|
104
|
-
|
|
114
|
+
# 或 npm 安装方式
|
|
105
115
|
webforge ui --root ~/projects
|
|
106
116
|
```
|
|
107
117
|
|
|
108
|
-
这个 UI 当前是只读监控台,会自动扫描根目录下带 `.webforge/`
|
|
118
|
+
这个 UI 当前是只读监控台,会自动扫描根目录下带 `.webforge/` 的项目,并提供一套更接近“研究终端”的观察面:
|
|
109
119
|
|
|
110
|
-
-
|
|
111
|
-
-
|
|
112
|
-
-
|
|
113
|
-
- runtime / drift /
|
|
120
|
+
- 首页 `Project Index + Workspace Ledger + Signal Rail`
|
|
121
|
+
- 单项目统一 `Summary / Evidence / Runtime` 骨架
|
|
122
|
+
- knowledge / deliverables / sessions 的资源浏览器
|
|
123
|
+
- runtime 事件流、双快照对照、checkpoint / drift / mailbox / superpowers 观察
|
|
114
124
|
|
|
115
125
|
## 怎么使用
|
|
116
126
|
|
|
@@ -128,14 +138,12 @@ webforge ui --root ~/projects
|
|
|
128
138
|
推荐最短使用路径:
|
|
129
139
|
|
|
130
140
|
```bash
|
|
141
|
+
# 本地源码方式
|
|
131
142
|
node dist/cli/index.js init demo-app
|
|
132
143
|
cd demo-app
|
|
133
144
|
node /path/to/work-forge/dist/cli/index.js onboard --json
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
如果你已经通过 npm 安装,则等价命令是:
|
|
137
145
|
|
|
138
|
-
|
|
146
|
+
# 或 npm 安装方式
|
|
139
147
|
webforge init demo-app
|
|
140
148
|
cd demo-app
|
|
141
149
|
webforge onboard --json
|
|
@@ -172,10 +180,10 @@ webforge ui --root ~/projects
|
|
|
172
180
|
|
|
173
181
|
推荐用法:
|
|
174
182
|
|
|
175
|
-
1.
|
|
176
|
-
2.
|
|
177
|
-
3.
|
|
178
|
-
4.
|
|
183
|
+
1. 在首页用 `Project Index` 快速切项目,用 `Workspace Ledger` 看当前快照,用 `Signal Rail` 盯住 blocked / pending review / drift
|
|
184
|
+
2. 进入单项目后,始终先看右侧 recovery rail,再决定沿 `Summary / Evidence / Runtime` 哪条视角继续
|
|
185
|
+
3. 在 `Evidence` 里把 knowledge / deliverable / session 当资源浏览器来读,而不是翻三列卡片
|
|
186
|
+
4. 在 `Runtime` 里优先看 `Recent events` 和 `Snapshots comparison`,再看 drift reasons 和 checkpoint
|
|
179
187
|
|
|
180
188
|
## 仓库结构
|
|
181
189
|
|
|
@@ -251,22 +259,37 @@ WebForge 和 `superpowers` 不是互相替代的关系:
|
|
|
251
259
|
如果你是人类开发者在仓库里工作,推荐顺序是:
|
|
252
260
|
|
|
253
261
|
```bash
|
|
262
|
+
# 本地源码方式
|
|
254
263
|
node dist/cli/index.js doctor
|
|
255
264
|
node dist/cli/index.js resume
|
|
256
265
|
node dist/cli/index.js dashboard
|
|
266
|
+
|
|
267
|
+
# 或 npm 安装方式
|
|
268
|
+
webforge doctor
|
|
269
|
+
webforge resume
|
|
270
|
+
webforge dashboard
|
|
257
271
|
```
|
|
258
272
|
|
|
259
273
|
如果你是希望让 agent 直接消费仓库状态,推荐顺序是:
|
|
260
274
|
|
|
261
275
|
```bash
|
|
276
|
+
# 本地源码方式
|
|
262
277
|
node dist/cli/index.js onboard --json
|
|
278
|
+
|
|
279
|
+
# 或 npm 安装方式
|
|
280
|
+
webforge onboard --json
|
|
263
281
|
```
|
|
264
282
|
|
|
265
283
|
或者显式拆开:
|
|
266
284
|
|
|
267
285
|
```bash
|
|
286
|
+
# 本地源码方式
|
|
268
287
|
node dist/cli/index.js doctor --json
|
|
269
288
|
node dist/cli/index.js resume --json
|
|
289
|
+
|
|
290
|
+
# 或 npm 安装方式
|
|
291
|
+
webforge doctor --json
|
|
292
|
+
webforge resume --json
|
|
270
293
|
```
|
|
271
294
|
|
|
272
295
|
标准含义:
|
|
@@ -316,26 +339,46 @@ node dist/cli/index.js resume --json
|
|
|
316
339
|
npm run test:unit
|
|
317
340
|
npm run build
|
|
318
341
|
npm run smoke:onboarding
|
|
342
|
+
|
|
343
|
+
# 本地源码方式
|
|
319
344
|
node dist/cli/index.js --help
|
|
320
345
|
node dist/cli/index.js doctor
|
|
346
|
+
|
|
347
|
+
# 或 npm 安装方式
|
|
348
|
+
webforge --help
|
|
349
|
+
webforge doctor
|
|
321
350
|
```
|
|
322
351
|
|
|
323
352
|
常用结构化观察命令:
|
|
324
353
|
|
|
325
354
|
```bash
|
|
355
|
+
# 本地源码方式
|
|
326
356
|
node dist/cli/index.js onboard --json
|
|
327
357
|
node dist/cli/index.js doctor --json
|
|
328
358
|
node dist/cli/index.js resume --json
|
|
329
359
|
node dist/cli/index.js logs runtime --json
|
|
360
|
+
|
|
361
|
+
# 或 npm 安装方式
|
|
362
|
+
webforge onboard --json
|
|
363
|
+
webforge doctor --json
|
|
364
|
+
webforge resume --json
|
|
365
|
+
webforge logs runtime --json
|
|
330
366
|
```
|
|
331
367
|
|
|
332
368
|
常用 workflow 回写命令:
|
|
333
369
|
|
|
334
370
|
```bash
|
|
371
|
+
# 本地源码方式
|
|
335
372
|
node dist/cli/index.js superpowers record writing-plans \
|
|
336
373
|
--summary "approved spec converted into execution plan" \
|
|
337
374
|
--artifact plan:docs/superpowers/plans/demo-plan.md \
|
|
338
375
|
--task T001
|
|
376
|
+
|
|
377
|
+
# 或 npm 安装方式
|
|
378
|
+
webforge superpowers record writing-plans \
|
|
379
|
+
--summary "approved spec converted into execution plan" \
|
|
380
|
+
--artifact plan:docs/superpowers/plans/demo-plan.md \
|
|
381
|
+
--task T001
|
|
339
382
|
```
|
|
340
383
|
|
|
341
384
|
## 项目状态
|
|
@@ -14,6 +14,7 @@ export interface InitVerificationSummary {
|
|
|
14
14
|
export declare function createInitCommand(): Command;
|
|
15
15
|
export declare function initProject(projectName: string, options: {
|
|
16
16
|
template?: string;
|
|
17
|
+
inPlace?: boolean;
|
|
17
18
|
}, basePath?: string): Promise<void>;
|
|
18
19
|
export declare function buildInitVerificationSummary(projectRoot: string): Promise<InitVerificationSummary>;
|
|
19
20
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,wBAAgB,iBAAiB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,EAAE,EAAE,OAAO,CAAC;CACb;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAgB3C;AAED,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EACjD,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAuBD,wBAAsB,4BAA4B,CAChD,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,uBAAuB,CAAC,CAwBlC"}
|
|
@@ -14,6 +14,7 @@ export function createInitCommand() {
|
|
|
14
14
|
.description('初始化 WebForge 项目')
|
|
15
15
|
.argument('<project-name>', '项目名称')
|
|
16
16
|
.option('-t, --template <template>', '项目模板', 'default')
|
|
17
|
+
.option('--in-place', '在当前目录就地初始化(不创建子目录)')
|
|
17
18
|
.action(async (projectName, options) => {
|
|
18
19
|
try {
|
|
19
20
|
await initProject(projectName, options);
|
|
@@ -27,7 +28,7 @@ export function createInitCommand() {
|
|
|
27
28
|
}
|
|
28
29
|
export async function initProject(projectName, options, basePath = process.cwd()) {
|
|
29
30
|
logger.info(`初始化项目: ${projectName}\n`);
|
|
30
|
-
const projectRoot = join(basePath, projectName);
|
|
31
|
+
const projectRoot = options.inPlace ? basePath : join(basePath, projectName);
|
|
31
32
|
const state = await createWorkspace(projectRoot, {
|
|
32
33
|
projectName,
|
|
33
34
|
template: options.template
|
|
@@ -45,15 +46,25 @@ export async function initProject(projectName, options, basePath = process.cwd()
|
|
|
45
46
|
logger.info('验证入口: webforge verify init');
|
|
46
47
|
console.log();
|
|
47
48
|
logger.info('下一步:');
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
49
|
+
const nextSteps = options.inPlace
|
|
50
|
+
? [
|
|
51
|
+
`workspace: ${state.paths.workspace}`,
|
|
52
|
+
`runtime: ${state.paths.runtime}`,
|
|
53
|
+
'webforge onboard --json',
|
|
54
|
+
'如需重跑初始化后自检,执行 webforge verify init',
|
|
55
|
+
'必要时再拆开执行 webforge doctor / webforge resume / webforge logs runtime',
|
|
56
|
+
'把需求文档放进 .webforge/knowledge/requirements/'
|
|
57
|
+
]
|
|
58
|
+
: [
|
|
59
|
+
`cd ${projectName}`,
|
|
60
|
+
`workspace: ${state.paths.workspace}`,
|
|
61
|
+
`runtime: ${state.paths.runtime}`,
|
|
62
|
+
'webforge onboard --json',
|
|
63
|
+
'如需重跑初始化后自检,执行 webforge verify init',
|
|
64
|
+
'必要时再拆开执行 webforge doctor / webforge resume / webforge logs runtime',
|
|
65
|
+
'把需求文档放进 .webforge/knowledge/requirements/'
|
|
66
|
+
];
|
|
67
|
+
logger.list(nextSteps);
|
|
57
68
|
console.log();
|
|
58
69
|
}
|
|
59
70
|
async function scaffoldRepoContract(projectRoot, projectName) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAYhD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAChC,WAAW,CAAC,iBAAiB,CAAC;SAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;SAClC,MAAM,CAAC,2BAA2B,EAAE,MAAM,EAAE,SAAS,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* record 命令 - 旁路回写
|
|
3
|
+
*
|
|
4
|
+
* 当 agent 直接在仓库里工作(不走 webforge run 主循环)时,
|
|
5
|
+
* 用这个命令把已完成的工作回写到 .webforge/。
|
|
6
|
+
*
|
|
7
|
+
* 这解决了 harness 的核心缺陷:只有 runtime 主循环内部才会自动回写状态。
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createRecordCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=record.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/record.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,wBAAgB,mBAAmB,IAAI,OAAO,CAkF7C"}
|