@devflow-tools/cli 0.16.11 → 0.16.13

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 (33) hide show
  1. package/dist/commands/doctor.d.ts +5 -0
  2. package/dist/commands/doctor.d.ts.map +1 -1
  3. package/dist/commands/doctor.js +278 -19
  4. package/dist/commands/doctor.js.map +1 -1
  5. package/dist/commands/embeddings.d.ts +8 -0
  6. package/dist/commands/embeddings.d.ts.map +1 -0
  7. package/dist/commands/embeddings.js +26 -0
  8. package/dist/commands/embeddings.js.map +1 -0
  9. package/dist/commands/server.d.ts.map +1 -1
  10. package/dist/commands/server.js +41 -3
  11. package/dist/commands/server.js.map +1 -1
  12. package/dist/index.js +53 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/with-server.d.ts.map +1 -1
  15. package/dist/lib/with-server.js +12 -6
  16. package/dist/lib/with-server.js.map +1 -1
  17. package/dist/plugin-files/.claude-plugin/plugin.json +1 -1
  18. package/dist/plugin-files/dist/command-registry.json +5 -5
  19. package/dist/plugin-files/dist/hooks/hook-daemon.js +32 -14
  20. package/dist/plugin-files/dist/hooks/memory-snapshot-cache.js +11 -0
  21. package/dist/plugin-files/dist/hooks/post-tool-use-failure.js +2 -2
  22. package/dist/plugin-files/dist/hooks/post-tool-use.js +6 -3
  23. package/dist/plugin-files/dist/hooks/pre-compact.js +3 -2
  24. package/dist/plugin-files/dist/hooks/pre-tool-use.js +3 -2
  25. package/dist/plugin-files/dist/hooks/server-bootstrap.js +22 -22
  26. package/dist/plugin-files/dist/hooks/session-end.js +4 -2
  27. package/dist/plugin-files/dist/hooks/stop.js +17 -2
  28. package/dist/plugin-files/dist/hooks/user-prompt-submit.js +15 -4
  29. package/dist/plugin-files/dist/skills/devflow:react/SKILL.md +8 -0
  30. package/dist/plugin-files/hooks/session-start +12 -15
  31. package/dist/plugin-files/package.json +7 -7
  32. package/dist/plugin-files/skills/react/SKILL.md +8 -0
  33. package/package.json +27 -27
@@ -70,6 +70,14 @@ rm -f ~/.devflow/current-skill.json ~/.devflow/current-execution-id
70
70
  - 生成代码后必须通过 TypeScript 类型检查
71
71
  - 不能凭记忆猜测 API 行为,必须基于当前项目版本
72
72
 
73
+ ## 性能证据契约
74
+
75
+ - `react_audit_performance` 返回的 `evidenceContract` 是机器强制约束,不是可选提示。
76
+ - 最终性能回答必须包含“工具发现”“模型假设”“需要运行时验证”三个标题;优先直接使用工具返回的 `canonicalReport`。
77
+ - `runtimeProfilingOccurred=false` 时,不得把静态候选升级为 P0、高风险、确认瓶颈、已观察卡顿/掉帧/CPU 热点,也不得给出未经测量的性能数字或收益比例。
78
+ - 没有明确采样周期、丢弃规则和前后基准时,不得把 requestAnimationFrame/RAF 推荐为通用节流方案。
79
+ - Stop 首次发现违规会要求纠正一次;重复违规会 fail-open 并记录 `evidence_contract_unresolved`,不得通过改写措辞规避证据边界。
80
+
73
81
  ## 知识来源
74
82
 
75
83
  以下版本描述知识源,不代表目标项目版本;目标项目的 package.json 与 lockfile 证据始终优先。
@@ -209,7 +209,7 @@ elif [ "$DEVFLOW_DAEMON_REACHABLE" != "1" ]; then
209
209
  WARNING: DevFlow is in degraded mode (daemon unreachable): 4-Gate enforcement is unavailable, memory prefetch cache is unavailable, and daemon-shared Hook state is unavailable. Run devflow doctor for details."
210
210
  fi
211
211
 
212
- MEMORY_SNAPSHOT=$'## Project memory\n本项目暂无记忆'
212
+ MEMORY_SNAPSHOT=$'## Project memory\nDevFlow memory snapshot=pending; source=none; reason=runtime_warming. Memory availability is not yet known; do not conclude that the project has no memories.'
213
213
  CONFIG_FILE="${PROJECT_ROOT}/.devflow/config.json"
214
214
  MEMORY_RESPONSE=""
215
215
  if { [ "$DEVFLOW_DAEMON_REACHABLE" = "1" ] || [ -z "$SESSION_START_INPUT" ]; } \
@@ -219,18 +219,12 @@ if { [ "$DEVFLOW_DAEMON_REACHABLE" = "1" ] || [ -z "$SESSION_START_INPUT" ]; } \
219
219
  DEVFLOW_HOOK_CLIENT_RETRY_DELAY_MS=0 \
220
220
  node "$CLIENT_JS" memory-snapshot </dev/null 2>/dev/null || echo "")
221
221
  fi
222
- if command -v python3 >/dev/null 2>&1; then
223
- MEMORY_SNAPSHOT=$(DEVFLOW_MEMORY_RESPONSE="$MEMORY_RESPONSE" python3 - "$CONFIG_FILE" 2>/dev/null <<'PY'
224
- import json,os,sys
225
- try: cfg=json.load(open(sys.argv[1])).get('sessionStart',{}).get('injectMemories',True)
226
- except Exception: cfg=True
227
- if cfg is False: print(''); raise SystemExit
228
- try: response=json.loads(os.environ.get('DEVFLOW_MEMORY_RESPONSE',''))
229
- except Exception: response={}
230
- markdown = response.get('markdown')
231
- print(markdown or '## Project memory\n本项目暂无记忆')
232
- PY
233
- ) || MEMORY_SNAPSHOT=$'## Project memory\n本项目暂无记忆'
222
+ MEMORY_CACHE_JS="${PLUGIN_ROOT}/dist/hooks/memory-snapshot-cache.js"
223
+ if [ -f "$MEMORY_CACHE_JS" ] && command -v node >/dev/null 2>&1; then
224
+ MEMORY_SNAPSHOT=$(DEVFLOW_MEMORY_SNAPSHOT_CLI=1 \
225
+ DEVFLOW_MEMORY_RESPONSE="$MEMORY_RESPONSE" \
226
+ node "$MEMORY_CACHE_JS" session-start "$PROJECT_ROOT" "$CONFIG_FILE" 2>/dev/null) \
227
+ || MEMORY_SNAPSHOT=$'## Project memory\nDevFlow memory snapshot=degraded; source=none; reason=cache_reader_failed. Memory availability is not yet known; do not conclude that the project has no memories.'
234
228
  fi
235
229
 
236
230
  ONBOARDING_SNAPSHOT=""
@@ -259,11 +253,14 @@ fi
259
253
 
260
254
  SUMMARY="${SUMMARY}${DEGRADED_CONTEXT}${DAEMON_CONTEXT}"$'\n\n'"${ONBOARDING_SNAPSHOT}"$'\n\n'"${MEMORY_SNAPSHOT}${MCP_PROTOCOL}"$'\n\n'"${GLOBAL_CONSTRAINT}${GATEWAY_STATUS}"
261
255
 
262
- if command -v python3 >/dev/null 2>&1 \
256
+ if command -v node >/dev/null 2>&1 \
257
+ && ESCAPED=$(printf '%s\n' "$SUMMARY" | node -e "let s=''; process.stdin.setEncoding('utf8'); process.stdin.on('data',c=>s+=c); process.stdin.on('end',()=>process.stdout.write(JSON.stringify(s)))" 2>/dev/null); then
258
+ :
259
+ elif command -v python3 >/dev/null 2>&1 \
263
260
  && ESCAPED=$(printf '%s\n' "$SUMMARY" | python3 -c "import sys,json; print(json.dumps(sys.stdin.read()))" 2>/dev/null); then
264
261
  :
265
262
  else
266
- ESCAPED='"DevFlow SessionStart 已完成。"'
263
+ ESCAPED='"DevFlow SessionStart status=degraded; memory snapshot=pending; runtime helpers unavailable. Memory availability is not yet known."'
267
264
  fi
268
265
 
269
266
  printf '{\n "hookSpecificOutput": {\n "hookEventName": "SessionStart",\n "additionalContext": %s\n }\n}\n' "$ESCAPED"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/claude-code-plugin",
3
- "version": "0.16.11",
3
+ "version": "0.16.13",
4
4
  "description": "DevFlow — Developer Intelligence Platform for Claude Code",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -8,18 +8,18 @@
8
8
  "deploy": "npx tsx scripts/inject-gates.ts --deploy"
9
9
  },
10
10
  "dependencies": {
11
- "@devflow-tools/database": "0.16.11",
12
- "@devflow-tools/memory-engine": "0.16.11",
13
- "@devflow-tools/sdk": "0.16.11",
14
- "@devflow-tools/telemetry": "0.16.11",
15
- "@devflow-tools/workflow-engine": "0.16.11"
11
+ "@devflow-tools/database": "0.16.13",
12
+ "@devflow-tools/memory-engine": "0.16.13",
13
+ "@devflow-tools/sdk": "0.16.13",
14
+ "@devflow-tools/telemetry": "0.16.13",
15
+ "@devflow-tools/workflow-engine": "0.16.13"
16
16
  },
17
17
  "allowScripts": {
18
18
  "better-sqlite3@12.11.1": true,
19
19
  "sharp@0.32.6": true
20
20
  },
21
21
  "devDependencies": {
22
- "@devflow-tools/mcp-server": "0.16.11"
22
+ "@devflow-tools/mcp-server": "0.16.13"
23
23
  },
24
24
  "keywords": [
25
25
  "pi-package",
@@ -37,6 +37,14 @@ description: React 专家能力 — Bug 诊断、组件重构、性能优化、H
37
37
  - 生成代码后必须通过 TypeScript 类型检查
38
38
  - 不能凭记忆猜测 API 行为,必须基于当前项目版本
39
39
 
40
+ ## 性能证据契约
41
+
42
+ - `react_audit_performance` 返回的 `evidenceContract` 是机器强制约束,不是可选提示。
43
+ - 最终性能回答必须包含“工具发现”“模型假设”“需要运行时验证”三个标题;优先直接使用工具返回的 `canonicalReport`。
44
+ - `runtimeProfilingOccurred=false` 时,不得把静态候选升级为 P0、高风险、确认瓶颈、已观察卡顿/掉帧/CPU 热点,也不得给出未经测量的性能数字或收益比例。
45
+ - 没有明确采样周期、丢弃规则和前后基准时,不得把 requestAnimationFrame/RAF 推荐为通用节流方案。
46
+ - Stop 首次发现违规会要求纠正一次;重复违规会 fail-open 并记录 `evidence_contract_unresolved`,不得通过改写措辞规避证据边界。
47
+
40
48
  ## 知识来源
41
49
 
42
50
  以下版本描述知识源,不代表目标项目版本;目标项目的 package.json 与 lockfile 证据始终优先。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/cli",
3
- "version": "0.16.11",
3
+ "version": "0.16.13",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
@@ -12,31 +12,31 @@
12
12
  },
13
13
  "dependencies": {
14
14
  "@colbymchenry/codegraph": "^1.1.1",
15
- "@devflow-tools/adapters": "0.16.11",
16
- "@devflow-tools/benchmark": "0.16.11",
17
- "@devflow-tools/context-engine": "0.16.11",
18
- "@devflow-tools/database": "0.16.11",
19
- "@devflow-tools/knowledge-engine": "0.16.11",
20
- "@devflow-tools/mcp-server": "0.16.11",
21
- "@devflow-tools/memory-engine": "0.16.11",
22
- "@devflow-tools/plugin-animation": "0.16.11",
23
- "@devflow-tools/plugin-css": "0.16.11",
24
- "@devflow-tools/plugin-docker": "0.16.11",
25
- "@devflow-tools/plugin-electron": "0.16.11",
26
- "@devflow-tools/plugin-git": "0.16.11",
27
- "@devflow-tools/plugin-graphql": "0.16.11",
28
- "@devflow-tools/plugin-nest": "0.16.11",
29
- "@devflow-tools/plugin-nextjs": "0.16.11",
30
- "@devflow-tools/plugin-performance": "0.16.11",
31
- "@devflow-tools/plugin-react": "0.16.11",
32
- "@devflow-tools/plugin-tailwind": "0.16.11",
33
- "@devflow-tools/plugin-taro": "0.16.11",
34
- "@devflow-tools/plugin-ui-layout": "0.16.11",
35
- "@devflow-tools/plugin-vue": "0.16.11",
36
- "@devflow-tools/sdk": "0.16.11",
37
- "@devflow-tools/server": "0.16.11",
38
- "@devflow-tools/telemetry": "0.16.11",
39
- "@devflow-tools/workflow-engine": "0.16.11",
15
+ "@devflow-tools/adapters": "0.16.13",
16
+ "@devflow-tools/benchmark": "0.16.13",
17
+ "@devflow-tools/context-engine": "0.16.13",
18
+ "@devflow-tools/database": "0.16.13",
19
+ "@devflow-tools/knowledge-engine": "0.16.13",
20
+ "@devflow-tools/mcp-server": "0.16.13",
21
+ "@devflow-tools/memory-engine": "0.16.13",
22
+ "@devflow-tools/plugin-animation": "0.16.13",
23
+ "@devflow-tools/plugin-css": "0.16.13",
24
+ "@devflow-tools/plugin-docker": "0.16.13",
25
+ "@devflow-tools/plugin-electron": "0.16.13",
26
+ "@devflow-tools/plugin-git": "0.16.13",
27
+ "@devflow-tools/plugin-graphql": "0.16.13",
28
+ "@devflow-tools/plugin-nest": "0.16.13",
29
+ "@devflow-tools/plugin-nextjs": "0.16.13",
30
+ "@devflow-tools/plugin-performance": "0.16.13",
31
+ "@devflow-tools/plugin-react": "0.16.13",
32
+ "@devflow-tools/plugin-tailwind": "0.16.13",
33
+ "@devflow-tools/plugin-taro": "0.16.13",
34
+ "@devflow-tools/plugin-ui-layout": "0.16.13",
35
+ "@devflow-tools/plugin-vue": "0.16.13",
36
+ "@devflow-tools/sdk": "0.16.13",
37
+ "@devflow-tools/server": "0.16.13",
38
+ "@devflow-tools/telemetry": "0.16.13",
39
+ "@devflow-tools/workflow-engine": "0.16.13",
40
40
  "@inquirer/prompts": "^7.10.1",
41
41
  "chalk": "^5.3.0",
42
42
  "commander": "^12.0.0"
@@ -49,5 +49,5 @@
49
49
  "dist",
50
50
  "bin"
51
51
  ],
52
- "gitHead": "d580af1e"
52
+ "gitHead": "67c9dfc3709bd0ce36b7c2a9341896eedcc8a725"
53
53
  }