@devflow-tools/cli 0.18.2 → 0.18.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.
- package/README.md +19 -4
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +12 -10
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/server.d.ts +19 -5
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +31 -116
- package/dist/commands/server.js.map +1 -1
- package/dist/commands/start.d.ts +4 -2
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +29 -56
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/status.d.ts +4 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +17 -9
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/stop.d.ts.map +1 -1
- package/dist/commands/stop.js +3 -2
- package/dist/commands/stop.js.map +1 -1
- package/dist/index.js +63 -18
- package/dist/index.js.map +1 -1
- package/dist/lib/messages.d.ts +38 -0
- package/dist/lib/messages.d.ts.map +1 -0
- package/dist/lib/messages.js +42 -0
- package/dist/lib/messages.js.map +1 -0
- package/dist/lib/with-server.d.ts.map +1 -1
- package/dist/lib/with-server.js +22 -8
- package/dist/lib/with-server.js.map +1 -1
- package/dist/plugin-files/.claude-plugin/plugin.json +1 -1
- package/dist/plugin-files/dist/command-registry.json +5 -5
- package/dist/plugin-files/dist/hooks/hook-daemon.js +28 -27
- package/dist/plugin-files/dist/hooks/post-tool-use-failure.js +2 -2
- package/dist/plugin-files/dist/hooks/post-tool-use.js +6 -6
- package/dist/plugin-files/dist/hooks/pre-compact.js +3 -3
- package/dist/plugin-files/dist/hooks/pre-tool-use.js +4 -4
- package/dist/plugin-files/dist/hooks/server-bootstrap.js +1 -109
- package/dist/plugin-files/dist/hooks/session-end.js +5 -5
- package/dist/plugin-files/dist/hooks/stop.js +9 -9
- package/dist/plugin-files/dist/hooks/user-prompt-submit.js +8 -8
- package/dist/plugin-files/package.json +13 -13
- package/dist/plugin-files/skills/start/SKILL.md +20 -34
- package/package.json +27 -27
package/README.md
CHANGED
|
@@ -21,17 +21,32 @@ devflow --help
|
|
|
21
21
|
|
|
22
22
|
## 公共 API / 命令
|
|
23
23
|
|
|
24
|
-
`devflow init`、`connect`、`index`、`graph`、`context`、`workflow`、`memory`、`knowledge`、`doctor` 和 `
|
|
24
|
+
`devflow init`、`connect`、`index`、`graph`、`context`、`workflow`、`memory`、`knowledge`、`doctor`、`dashboard`、`start`、`status` 和 `stop`。
|
|
25
|
+
|
|
26
|
+
## Dashboard 与 Runtime
|
|
27
|
+
|
|
28
|
+
Runtime 是用户级单实例,Dashboard 与 API 共用同一个只监听 `127.0.0.1` 的 Server。项目数据仍需通过项目范围选择,不会因 Runtime 复用而共享。
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
devflow dashboard
|
|
32
|
+
devflow dashboard --open
|
|
33
|
+
devflow dashboard --no-start
|
|
34
|
+
devflow start --background
|
|
35
|
+
devflow status --json
|
|
36
|
+
devflow stop
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`dashboard` 默认只输出就绪 URL;只有 `--open` 才会唤起浏览器。未显式传入 `--port` 时,默认端口冲突会选择一个可用 loopback 端口;显式端口冲突会直接失败。
|
|
25
40
|
|
|
26
41
|
|
|
27
42
|
## 配置与运行时
|
|
28
43
|
|
|
29
|
-
要求 Node.js >=
|
|
44
|
+
要求 Node.js >= 22.13.0、npm >= 9;`devflow init` 会生成 `.devflow/` 配置并同步 Claude Code/MCP 配置。
|
|
30
45
|
|
|
31
46
|
## 版本与兼容性
|
|
32
47
|
|
|
33
|
-
- 当前包版本:`0.
|
|
34
|
-
- Node.js
|
|
48
|
+
- 当前包版本:`0.18.3`
|
|
49
|
+
- Node.js:22.13.0+
|
|
35
50
|
- workspace 内部包应使用同一 DevFlow minor/patch 版本,避免类型和数据库 schema 不一致
|
|
36
51
|
|
|
37
52
|
## 相关链接
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAEV,cAAc,EAIf,MAAM,oBAAoB,CAAC;AAK5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEzE,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,GACb,MAAM,oBAAoB,CAAC;AAwB5B,MAAM,MAAM,YAAY,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;IACrC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnC,cAAc,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzC;AAED,UAAU,cAAc;IACtB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAC;IACtC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAAc,CAAC;IAChD,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;KACzB,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/doctor.js
CHANGED
|
@@ -6,7 +6,7 @@ import { basename, dirname, extname, isAbsolute, join, relative, resolve, sep }
|
|
|
6
6
|
import { spawnSync } from "node:child_process";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
8
|
import chalk from "chalk";
|
|
9
|
-
import { DOCTOR_SCHEMA_VERSION, checkMcpHealth, getDaemonRegistryPath, getDaemonSocketPath, getDevFlowStateRoot, getProjectHash, getProjectStateDir, loadPluginsWithDiagnostics, readMcpInventory, redactMcpInventory,
|
|
9
|
+
import { DOCTOR_SCHEMA_VERSION, checkMcpHealth, getDaemonRegistryPath, getDaemonSocketPath, getDevFlowStateRoot, getProjectHash, getProjectStateDir, loadPluginsWithDiagnostics, readMcpInventory, redactMcpInventory, readRuntimeState, listRuntimeHttpCircuits, selectHostAdapter, } from "@devflow-tools/sdk";
|
|
10
10
|
import { resolveActivePlugin, scanClaudeSkillShadowing } from "../lib/plugin-setup.js";
|
|
11
11
|
import { serverStatus } from "./server.js";
|
|
12
12
|
import { inspectSkillHealth } from "./skill-health.js";
|
|
@@ -132,14 +132,16 @@ async function checkRuntimeControlPlane(project, dependencies) {
|
|
|
132
132
|
severity: "warning",
|
|
133
133
|
});
|
|
134
134
|
}
|
|
135
|
-
const
|
|
135
|
+
const runtime = readRuntimeState(pathOptions);
|
|
136
136
|
metrics.push({
|
|
137
|
-
key: '
|
|
138
|
-
value:
|
|
139
|
-
target: '
|
|
140
|
-
ok: !
|
|
141
|
-
severity:
|
|
137
|
+
key: 'runtime_state_v2',
|
|
138
|
+
value: runtime ?? 'not registered',
|
|
139
|
+
target: 'ready while active, stopped or absent while idle',
|
|
140
|
+
ok: !runtime || runtime.status === 'ready' || runtime.status === 'stopped',
|
|
141
|
+
severity: runtime?.status === 'failed' ? 'error' : 'warning',
|
|
142
142
|
});
|
|
143
|
+
const legacyEndpointPath = join(getDevFlowStateRoot(pathOptions), ['runtime', 'endpoint.json'].join('-'));
|
|
144
|
+
metrics.push({ key: 'legacy_runtime_endpoint_ignored', value: existsSync(legacyEndpointPath), target: false, ok: !existsSync(legacyEndpointPath), severity: 'warning' });
|
|
143
145
|
const now = (dependencies.now ?? Date.now)();
|
|
144
146
|
const openCircuits = listRuntimeHttpCircuits(pathOptions)
|
|
145
147
|
.filter(circuit => circuit.status === 'open' && (circuit.openUntil ?? 0) > now);
|
|
@@ -4825,8 +4827,8 @@ async function checkUiReachability(dependencies) {
|
|
|
4825
4827
|
const { manifest, metrics } = acceptanceManifestMetrics(dependencies);
|
|
4826
4828
|
const routes = manifest?.ui?.routes ?? [];
|
|
4827
4829
|
metrics.push({ key: "dashboard_routes", value: routes.length, target: ">= 13", ok: manifest?.ui?.status === "green" && routes.length >= 13, severity: "warning" });
|
|
4828
|
-
const
|
|
4829
|
-
if ((!
|
|
4830
|
+
const runtime = readRuntimeState(doctorPathOptions(dependencies));
|
|
4831
|
+
if ((!runtime || runtime.status !== "ready") && !dependencies.httpGet) {
|
|
4830
4832
|
metrics.push({
|
|
4831
4833
|
key: "dashboard_server_health",
|
|
4832
4834
|
value: "inactive",
|
|
@@ -4837,7 +4839,7 @@ async function checkUiReachability(dependencies) {
|
|
|
4837
4839
|
return { name: "UI reachability", status: sectionStatus(metrics), metrics };
|
|
4838
4840
|
}
|
|
4839
4841
|
const port = dependencies.env?.PORT ?? process.env.PORT ?? "13337";
|
|
4840
|
-
const healthUrl = `${
|
|
4842
|
+
const healthUrl = `${runtime?.url ?? `http://127.0.0.1:${port}`}/api/ready`;
|
|
4841
4843
|
try {
|
|
4842
4844
|
const response = await (dependencies.httpGet ?? defaultHttpGet)(healthUrl);
|
|
4843
4845
|
metrics.push({ key: "dashboard_server_health", value: { url: healthUrl, status: response.status }, target: "HTTP 200", ok: response.status === 200, severity: "warning" });
|