@devflow-tools/cli 0.16.6 → 0.16.8

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "devflow",
3
3
  "description": "DevFlow — Developer Intelligence Platform: project context, code graph, knowledge base, memory engine, and workflow automation with 14 domain plugins",
4
- "version": "0.16.6",
4
+ "version": "0.16.8",
5
5
  "author": {
6
6
  "name": "DevFlow"
7
7
  },
@@ -106,14 +106,14 @@ if [ -n "$RULE_COUNT" ]; then
106
106
  fi
107
107
 
108
108
  # Append Gateway status to summary
109
- GATEWAY_STATUS="\n\n━━━━━━ DevFlow Gateway ━━━━━━\n"
109
+ GATEWAY_STATUS=$'\n\n━━━━━━ DevFlow Gateway ━━━━━━\n'
110
110
  # Check if devflow MCP server is configured (token will be auto-generated by ensureSessionToken)
111
111
  if [ -f ~/.claude/.mcp.json ] && grep -q '"devflow"' ~/.claude/.mcp.json 2>/dev/null; then
112
- GATEWAY_STATUS="${GATEWAY_STATUS}Status: 🟢 DevFlow MCP 已配置\nGate 层数: ${GATE_COUNT} (${GATE_DETAIL})\n"
112
+ GATEWAY_STATUS="${GATEWAY_STATUS}Status: 🟢 DevFlow MCP 已配置"$'\n'"Gate 层数: ${GATE_COUNT} (${GATE_DETAIL})"$'\n'
113
113
  elif [ -f .mcp.json ] && grep -q '"devflow"' .mcp.json 2>/dev/null; then
114
- GATEWAY_STATUS="${GATEWAY_STATUS}Status: 🟢 DevFlow MCP 已配置(项目级)\nGate 层数: ${GATE_COUNT} (${GATE_DETAIL})\n"
114
+ GATEWAY_STATUS="${GATEWAY_STATUS}Status: 🟢 DevFlow MCP 已配置(项目级)"$'\n'"Gate 层数: ${GATE_COUNT} (${GATE_DETAIL})"$'\n'
115
115
  else
116
- GATEWAY_STATUS="${GATEWAY_STATUS}Status: 🔴 未配置 DevFlow MCP Server\n请将 devflow MCP 配置加入 .mcp.json\n"
116
+ GATEWAY_STATUS="${GATEWAY_STATUS}Status: 🔴 未配置 DevFlow MCP Server"$'\n请将 devflow MCP 配置加入 .mcp.json\n'
117
117
  fi
118
118
  GATEWAY_STATUS="${GATEWAY_STATUS}━━━━━━━━━━━━━━━━━━━━━━━━━━━"
119
119
 
@@ -147,11 +147,8 @@ MCP_PROTOCOL="
147
147
  - Every mcp__devflow__ tool MUST pass projectRoot = \${CLAUDE_PROJECT_DIR}; missing projectRoot is rejected; no cwd fallback.
148
148
  - 如果 MCP 工具返回错误,重试一次;再失败则回退到直接读文件"
149
149
 
150
- MEMORY_DISTILL="
151
-
152
- Next session instruction: call mcp__devflow__memory_request_distill once at session start; it safely reports when no memory events are pending."
153
-
154
150
  DEVFLOW_DAEMON_REACHABLE=0
151
+ DAEMON_SESSION_RESPONSE=""
155
152
  run_lifecycle() {
156
153
  local PROJECT_HASH=""
157
154
  local log_dir="${HOME}/.devflow/logs"
@@ -178,13 +175,15 @@ run_lifecycle() {
178
175
 
179
176
  register_session() {
180
177
  local suppress_fallback="${1:-1}"
178
+ local response=""
181
179
  [ -n "$SESSION_START_INPUT" ] || return 0
182
180
  [ -f "$CLIENT_JS" ] || return 1
183
- if DEVFLOW_HOOK_CLIENT_TIMEOUT_MS=250 \
181
+ if response=$(DEVFLOW_HOOK_CLIENT_TIMEOUT_MS=250 \
184
182
  DEVFLOW_HOOK_CLIENT_RETRY_DELAY_MS=50 \
185
183
  DEVFLOW_HOOK_CLIENT_SUPPRESS_FALLBACK_LOG="$suppress_fallback" \
186
- node "$CLIENT_JS" session-start "$SESSION_START_INPUT" >/dev/null 2>> "$DAEMON_LOG"; then
184
+ node "$CLIENT_JS" session-start "$SESSION_START_INPUT" 2>> "$DAEMON_LOG"); then
187
185
  DEVFLOW_DAEMON_REACHABLE=1
186
+ DAEMON_SESSION_RESPONSE="$response"
188
187
  return 0
189
188
  fi
190
189
  return 1
@@ -228,7 +227,7 @@ if [ "$DEVFLOW_DAEMON_REACHABLE" != "1" ]; then
228
227
  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."
229
228
  fi
230
229
 
231
- MEMORY_SNAPSHOT="## Project memory\n本项目暂无记忆"
230
+ MEMORY_SNAPSHOT=$'## Project memory\n本项目暂无记忆'
232
231
  CONFIG_FILE="${PROJECT_ROOT}/.devflow/config.json"
233
232
  MEMORY_RESPONSE=""
234
233
  if [ -f "${CLIENT_JS:-}" ] && command -v node >/dev/null 2>&1; then
@@ -242,9 +241,10 @@ except Exception: cfg=True
242
241
  if cfg is False: print(''); raise SystemExit
243
242
  try: response=json.loads(os.environ.get('DEVFLOW_MEMORY_RESPONSE',''))
244
243
  except Exception: response={}
245
- print(response.get('markdown') or '## Project memory\n本项目暂无记忆')
244
+ markdown = response.get('markdown')
245
+ print(markdown or '## Project memory\n本项目暂无记忆')
246
246
  PY
247
- ) || MEMORY_SNAPSHOT="## Project memory\n本项目暂无记忆"
247
+ ) || MEMORY_SNAPSHOT=$'## Project memory\n本项目暂无记忆'
248
248
  fi
249
249
 
250
250
  ONBOARDING_SNAPSHOT=""
@@ -265,13 +265,18 @@ PY
265
265
  ) || ONBOARDING_SNAPSHOT=""
266
266
  fi
267
267
 
268
- SUMMARY="${SUMMARY}${DEGRADED_CONTEXT}${MEMORY_DISTILL}\n\n${ONBOARDING_SNAPSHOT}\n\n${MEMORY_SNAPSHOT}${MCP_PROTOCOL}${GLOBAL_CONSTRAINT}${GATEWAY_STATUS}"
268
+ DAEMON_CONTEXT=""
269
+ if [ -n "$DAEMON_SESSION_RESPONSE" ] && command -v python3 >/dev/null 2>&1; then
270
+ DAEMON_CONTEXT=$(DEVFLOW_DAEMON_RESPONSE="$DAEMON_SESSION_RESPONSE" python3 -c "import json,os; print(json.loads(os.environ.get('DEVFLOW_DAEMON_RESPONSE','{}')).get('additionalContext',''))" 2>/dev/null || echo "")
271
+ fi
272
+
273
+ SUMMARY="${SUMMARY}${DEGRADED_CONTEXT}${DAEMON_CONTEXT}"$'\n\n'"${ONBOARDING_SNAPSHOT}"$'\n\n'"${MEMORY_SNAPSHOT}${MCP_PROTOCOL}"$'\n\n'"${GLOBAL_CONSTRAINT}${GATEWAY_STATUS}"
269
274
 
270
275
  if command -v python3 >/dev/null 2>&1 \
271
276
  && ESCAPED=$(printf '%s\n' "$SUMMARY" | python3 -c "import sys,json; print(json.dumps(sys.stdin.read()))" 2>/dev/null); then
272
277
  :
273
278
  else
274
- ESCAPED='"Next session instruction: call mcp__devflow__memory_request_distill once at session start; it safely reports when no memory events are pending."'
279
+ ESCAPED='"DevFlow SessionStart 已完成。"'
275
280
  fi
276
281
 
277
282
  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.6",
3
+ "version": "0.16.8",
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.6",
12
- "@devflow-tools/memory-engine": "0.16.6",
13
- "@devflow-tools/sdk": "0.16.6",
14
- "@devflow-tools/telemetry": "0.16.6",
15
- "@devflow-tools/workflow-engine": "0.16.6"
11
+ "@devflow-tools/database": "0.16.8",
12
+ "@devflow-tools/memory-engine": "0.16.8",
13
+ "@devflow-tools/sdk": "0.16.8",
14
+ "@devflow-tools/telemetry": "0.16.8",
15
+ "@devflow-tools/workflow-engine": "0.16.8"
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.6"
22
+ "@devflow-tools/mcp-server": "0.16.8"
23
23
  },
24
24
  "keywords": [
25
25
  "pi-package",
@@ -40,5 +40,5 @@
40
40
  "hooks",
41
41
  "skills"
42
42
  ],
43
- "gitHead": "18fe151812fbde380896494d933994ff80ce59f1"
43
+ "gitHead": "964af33767bf232606e63d973b3a29d7d53c8119"
44
44
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/cli",
3
- "version": "0.16.6",
3
+ "version": "0.16.8",
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.6",
16
- "@devflow-tools/benchmark": "0.16.6",
17
- "@devflow-tools/context-engine": "0.16.6",
18
- "@devflow-tools/database": "0.16.6",
19
- "@devflow-tools/knowledge-engine": "0.16.6",
20
- "@devflow-tools/mcp-server": "0.16.6",
21
- "@devflow-tools/memory-engine": "0.16.6",
22
- "@devflow-tools/plugin-animation": "0.16.6",
23
- "@devflow-tools/plugin-css": "0.16.6",
24
- "@devflow-tools/plugin-docker": "0.16.6",
25
- "@devflow-tools/plugin-electron": "0.16.6",
26
- "@devflow-tools/plugin-git": "0.16.6",
27
- "@devflow-tools/plugin-graphql": "0.16.6",
28
- "@devflow-tools/plugin-nest": "0.16.6",
29
- "@devflow-tools/plugin-nextjs": "0.16.6",
30
- "@devflow-tools/plugin-performance": "0.16.6",
31
- "@devflow-tools/plugin-react": "0.16.6",
32
- "@devflow-tools/plugin-tailwind": "0.16.6",
33
- "@devflow-tools/plugin-taro": "0.16.6",
34
- "@devflow-tools/plugin-ui-layout": "0.16.6",
35
- "@devflow-tools/plugin-vue": "0.16.6",
36
- "@devflow-tools/sdk": "0.16.6",
37
- "@devflow-tools/server": "0.16.6",
38
- "@devflow-tools/telemetry": "0.16.6",
39
- "@devflow-tools/workflow-engine": "0.16.6",
15
+ "@devflow-tools/adapters": "0.16.8",
16
+ "@devflow-tools/benchmark": "0.16.8",
17
+ "@devflow-tools/context-engine": "0.16.8",
18
+ "@devflow-tools/database": "0.16.8",
19
+ "@devflow-tools/knowledge-engine": "0.16.8",
20
+ "@devflow-tools/mcp-server": "0.16.8",
21
+ "@devflow-tools/memory-engine": "0.16.8",
22
+ "@devflow-tools/plugin-animation": "0.16.8",
23
+ "@devflow-tools/plugin-css": "0.16.8",
24
+ "@devflow-tools/plugin-docker": "0.16.8",
25
+ "@devflow-tools/plugin-electron": "0.16.8",
26
+ "@devflow-tools/plugin-git": "0.16.8",
27
+ "@devflow-tools/plugin-graphql": "0.16.8",
28
+ "@devflow-tools/plugin-nest": "0.16.8",
29
+ "@devflow-tools/plugin-nextjs": "0.16.8",
30
+ "@devflow-tools/plugin-performance": "0.16.8",
31
+ "@devflow-tools/plugin-react": "0.16.8",
32
+ "@devflow-tools/plugin-tailwind": "0.16.8",
33
+ "@devflow-tools/plugin-taro": "0.16.8",
34
+ "@devflow-tools/plugin-ui-layout": "0.16.8",
35
+ "@devflow-tools/plugin-vue": "0.16.8",
36
+ "@devflow-tools/sdk": "0.16.8",
37
+ "@devflow-tools/server": "0.16.8",
38
+ "@devflow-tools/telemetry": "0.16.8",
39
+ "@devflow-tools/workflow-engine": "0.16.8",
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": "b5628c42b4f6795103838c11e65601f6a59cb559"
52
+ "gitHead": "38b7ea6653ad6e0d3edb7eae260367032f0bb854"
53
53
  }