@devflow-tools/cli 0.19.29 → 0.19.30
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/dist/plugin-files/.claude-plugin/plugin.json +1 -1
- package/dist/plugin-files/dist/command-registry.json +7 -7
- package/dist/plugin-files/dist/hooks/hook-client.js +7 -6
- package/dist/plugin-files/dist/runtime-manifest.json +5 -5
- package/dist/plugin-files/package.json +13 -13
- package/package.json +29 -29
|
@@ -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.19.
|
|
4
|
+
"version": "0.19.30",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "DevFlow"
|
|
7
7
|
},
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
],
|
|
9
9
|
"blockedNative": [],
|
|
10
10
|
"source": "core",
|
|
11
|
-
"sourceVersion": "0.19.
|
|
11
|
+
"sourceVersion": "0.19.30",
|
|
12
12
|
"requiresContext": false,
|
|
13
13
|
"evidenceMode": "runtime",
|
|
14
14
|
"skillPath": "skills/devflow:doctor/SKILL.md",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"WebFetch"
|
|
36
36
|
],
|
|
37
37
|
"source": "core",
|
|
38
|
-
"sourceVersion": "0.19.
|
|
38
|
+
"sourceVersion": "0.19.30",
|
|
39
39
|
"requiresContext": true,
|
|
40
40
|
"evidenceMode": "mixed",
|
|
41
41
|
"skillPath": "skills/devflow:context/SKILL.md",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"Explore"
|
|
61
61
|
],
|
|
62
62
|
"source": "core",
|
|
63
|
-
"sourceVersion": "0.19.
|
|
63
|
+
"sourceVersion": "0.19.30",
|
|
64
64
|
"requiresContext": true,
|
|
65
65
|
"evidenceMode": "mixed",
|
|
66
66
|
"skillPath": "skills/devflow:graph/SKILL.md",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"WebFetch"
|
|
80
80
|
],
|
|
81
81
|
"source": "core",
|
|
82
|
-
"sourceVersion": "0.19.
|
|
82
|
+
"sourceVersion": "0.19.30",
|
|
83
83
|
"requiresContext": true,
|
|
84
84
|
"evidenceMode": "mixed",
|
|
85
85
|
"skillPath": "skills/devflow:knowledge/SKILL.md",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"Explore"
|
|
104
104
|
],
|
|
105
105
|
"source": "core",
|
|
106
|
-
"sourceVersion": "0.19.
|
|
106
|
+
"sourceVersion": "0.19.30",
|
|
107
107
|
"requiresContext": true,
|
|
108
108
|
"evidenceMode": "mixed",
|
|
109
109
|
"skillPath": "skills/devflow:memory/SKILL.md",
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
],
|
|
120
120
|
"blockedNative": [],
|
|
121
121
|
"source": "core",
|
|
122
|
-
"sourceVersion": "0.19.
|
|
122
|
+
"sourceVersion": "0.19.30",
|
|
123
123
|
"requiresContext": true,
|
|
124
124
|
"evidenceMode": "mixed",
|
|
125
125
|
"skillPath": "skills/devflow:workflow/SKILL.md",
|
|
@@ -154,7 +154,7 @@
|
|
|
154
154
|
],
|
|
155
155
|
"blockedNative": [],
|
|
156
156
|
"source": "core",
|
|
157
|
-
"sourceVersion": "0.19.
|
|
157
|
+
"sourceVersion": "0.19.30",
|
|
158
158
|
"requiresContext": true,
|
|
159
159
|
"evidenceMode": "mixed",
|
|
160
160
|
"skillPath": "skills/devflow:delivery/SKILL.md",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {createConnection}from'node:net';import {mkdirSync,appendFileSync,writeFileSync,renameSync,readFileSync
|
|
2
|
-
`,{mode:384});}catch{}}function
|
|
3
|
-
`),0}
|
|
4
|
-
`);}),r.
|
|
5
|
-
`);
|
|
6
|
-
`);
|
|
1
|
+
import {createConnection}from'node:net';import {mkdirSync,appendFileSync,existsSync,writeFileSync,renameSync,readFileSync}from'node:fs';import {spawn}from'node:child_process';import {join,dirname}from'node:path';import {getDaemonSocketPath,getDevFlowStateRoot,getDaemonPidPath,getProjectStateDir}from'@devflow-tools/sdk';import {openGlobalDevFlowDatabase}from'@devflow-tools/database';import {createHash,randomUUID}from'node:crypto';function k(e,t,r){try{let n=openGlobalDevFlowDatabase();try{n.insertEvent({kind:e,timestamp:Date.now(),duration:r,success:t.success!==!1,metadata:t});}finally{n.close();}}catch{}}var H=["4-Gate enforcement","memory prefetch cache","daemon-shared hook state"];function m(e){let t=C(e.input)??e.requestType;if(k("hook_daemon_request",{success:e.success,projectRoot:e.projectRoot,requestType:e.requestType,tool:t,attempts:e.attempts},e.durationMs),e.success)return;let r=Date.now(),n=B(e.input);try{let o=openGlobalDevFlowDatabase(void 0,{busyTimeoutMs:250});try{o.insertHookFallback({id:`hook-fallback:${createHash("sha256").update(`${e.projectRoot}\0${n.sessionId??""}\0${n.toolUseId??""}\0${e.requestType}\0${r}`).digest("hex").slice(0,24)}`,projectRoot:e.projectRoot,sessionId:n.sessionId,toolUseId:n.toolUseId,requestType:e.requestType,tool:t,reason:e.reason??"unknown",durationMs:e.durationMs,attempts:e.attempts,createdAt:r});}finally{o.close();}}catch{}try{let o=join(getDevFlowStateRoot(),"logs","hook-fallback",`${new Date(r).toISOString().slice(0,10)}.log`);mkdirSync(dirname(o),{recursive:!0,mode:448}),appendFileSync(o,`${JSON.stringify({ts:r,tool:t,requestType:e.requestType,projectRoot:e.projectRoot,reason:`daemon-${e.reason??"unknown"}`,durationMs:e.durationMs,attempts:e.attempts,bypassCountLost:!0,disabledFeatures:H})}
|
|
2
|
+
`,{mode:384});}catch{}}function B(e){try{let t=JSON.parse(e);return {sessionId:typeof t.session_id=="string"?t.session_id:void 0,toolUseId:typeof t.tool_use_id=="string"?t.tool_use_id:void 0}}catch{return {}}}function C(e){try{let t=JSON.parse(e);return typeof t.tool_name=="string"&&t.tool_name?t.tool_name:null}catch{return null}}var Y=2*1024*1024;function X(e){return join(getProjectStateDir(e),"user-prompt-submit-pending")}function E(e,t){if(Buffer.byteLength(t,"utf8")>Y)throw new Error("user_prompt_submit_input_too_large");let r=X(e);mkdirSync(r,{recursive:true,mode:448});let n=`user-prompt-submit-spool-${Date.now()}-${process.pid}-${randomUUID().slice(0,8)}`,o=join(r,`.${n}.tmp`),s=join(r,`${n}.json`);return writeFileSync(o,t,{mode:384}),renameSync(o,s),n}var c=process.env.CLAUDE_PROJECT_DIR||process.cwd(),re=getDaemonSocketPath(c),u=process.argv[2],O=process.argv[3],_=Number(process.env.DEVFLOW_HOOK_CLIENT_TIMEOUT_MS),oe=Number.isFinite(_)&&_>0?_:1e3,S=Number(process.env.DEVFLOW_HOOK_CLIENT_RETRY_DELAY_MS),ne=Number.isFinite(S)&&S>=0?S:100,w=2*1024*1024,d=u==="memory-snapshot"?2:1,se=1500,ie=4e3;function ce(e){let t=process.env.CLAUDE_PLUGIN_ROOT?.trim();if(!t)return;let r=join(t,"dist","hooks","server-bootstrap.js");if(existsSync(r))try{spawn(process.execPath,[r],{cwd:e,detached:!0,stdio:"ignore",env:{...process.env,CLAUDE_PROJECT_DIR:e}}).unref();}catch{}}async function ue(){let e=O!==void 0?me(O):u==="memory-snapshot"?{input:"",truncated:false}:await le(),{input:t,truncated:r}=e,n=Date.now(),o="unknown";for(let s=0;s<d;s+=1){let i=await I(t,r);if(i.response!==null){if(T(i.response)){o="protocol";break}return m({projectRoot:c,requestType:u,input:t,durationMs:Date.now()-n,success:true,attempts:s+1}),process.stdout.write(`${i.response}
|
|
3
|
+
`),0}o=i.reason??"unknown",s<d-1&&await P(ne);}if(o==="unreachable"||o==="timeout"){ce(c),await P(se);let s=await I(t,r,ie);if(s.response!==null&&!T(s.response))return m({projectRoot:c,requestType:u,input:t,durationMs:Date.now()-n,success:true,attempts:d+1,reason:"respawned"}),process.stdout.write(`${s.response}
|
|
4
|
+
`),0}if(process.env.DEVFLOW_HOOK_CLIENT_SUPPRESS_FALLBACK_LOG!=="1"&&m({projectRoot:c,requestType:u,input:t,durationMs:Date.now()-n,success:false,attempts:d,reason:o}),u==="user-prompt-submit"&&t.trim())try{E(c,t);}catch{}return 1}function ae(){let e=process.env.CLAUDE_PLUGIN_ROOT?.trim();if(e)try{let t=JSON.parse(readFileSync(`${e}/dist/runtime-manifest.json`,"utf8"));return typeof t.manifestHash=="string"?t.manifestHash:void 0}catch{return}}function f(e){try{let t=getDaemonPidPath(e);if(!existsSync(t))return;let r=Number.parseInt(readFileSync(t,"utf8").trim(),10);if(!Number.isInteger(r)||r<=1||r===process.pid)return;process.kill(r,"SIGTERM");}catch{}}function T(e){try{let t=JSON.parse(e);return !!(t&&typeof t=="object"&&!Array.isArray(t)&&typeof t.error=="string")}catch{return true}}function I(e,t,r=oe){return new Promise(n=>{let o=createConnection(re),s=false,i="",p=false,y=ae(),a=(g,l)=>{s||(s=true,clearTimeout(N),o.destroy(),n({response:g,reason:l}));},N=setTimeout(()=>{p||f(c),a(null,"timeout");},r);o.setEncoding("utf8"),o.on("connect",()=>{o.write(`${JSON.stringify({type:"hello",rootPath:c,...y?{runtimeManifestHash:y}:{}})}
|
|
5
|
+
`);}),o.on("data",g=>{for(i+=g;!s;){let l=i.indexOf(`
|
|
6
|
+
`);if(l<0)return;let h=i.slice(0,l).trim();if(i=i.slice(l+1),!p){try{let R=JSON.parse(h);if(R.error==="daemon_runtime_mismatch"){f(c),a(null,"protocol");return}if(R.type!=="hello_ack"){if(!y){a(h||null);return}f(c),a(null,"protocol");return}}catch{f(c),a(null,"protocol");return}p=true;let D=pe(e,t);if(!D){a(null,"protocol");return}o.write(`${JSON.stringify(D)}
|
|
7
|
+
`);continue}a(h||null);}}),o.on("error",()=>a(null,"unreachable")),o.on("close",()=>a(null,"unreachable"));})}function pe(e,t){let r=t?{truncated:true}:{};return u==="stop"?{type:"stop",input:e,...r}:u==="memory-snapshot"?{type:"memory-snapshot"}:["session-start","session-end","post-tool-use","post-tool-use-failure","pre-tool-use","user-prompt-submit","pre-compact"].includes(u)?{type:u,input:e,...r}:null}function le(){return new Promise(e=>{let t=[],r=0,n=false;process.stdin.on("data",o=>{let s=Buffer.isBuffer(o)?o:Buffer.from(o),i=w-r;if(i>0){let p=s.subarray(0,i);t.push(p),r+=p.length;}s.length>i&&(n=true);}),process.stdin.on("end",()=>e({input:Buffer.concat(t).toString("utf8"),truncated:n})),process.stdin.on("error",()=>e({input:"",truncated:false}));})}function me(e){let t=Buffer.from(e);return t.length<=w?{input:e,truncated:false}:{input:t.subarray(0,w).toString("utf8"),truncated:true}}function P(e){return new Promise(t=>setTimeout(t,e))}ue().then(e=>process.exit(e)).catch(()=>process.exit(1));
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"manifestVersion": "devflow-runtime.v1",
|
|
3
|
-
"packageVersion": "0.19.
|
|
4
|
-
"sourceCommit": "
|
|
3
|
+
"packageVersion": "0.19.30",
|
|
4
|
+
"sourceCommit": "c29ac4ef0b568f3e5c6078697a3a9fecc2a84933",
|
|
5
5
|
"bundleHashes": {
|
|
6
6
|
"hooks": "b408f8844cc7e05d7d7a9a077f8b2ee2061ae491a8a2f8f1c4f358285590a0a1",
|
|
7
7
|
"mcp": "4b1b4152fca04afcbc8466ed46799b60a35c6c4c5b5f7c7ed8252387d5c359df",
|
|
8
8
|
"cli": "6205081f819ee3651962df36edd626b993a917fb8691f20c84e6b6e04af81d16"
|
|
9
9
|
},
|
|
10
|
-
"registryHash": "
|
|
10
|
+
"registryHash": "99c9023cdded6dde8434f477c39b67fa96541fe2ed63ccf8f43da213b90490cf",
|
|
11
11
|
"stateDbPath": "<projectRoot>/.devflow/delivery-line/state.db",
|
|
12
|
-
"builtAt":
|
|
13
|
-
"manifestHash": "
|
|
12
|
+
"builtAt": 1794304977244,
|
|
13
|
+
"manifestHash": "c1e5f40e32ddffb18103d2532eb4236db2060247c27a59315ca70c414a01655a"
|
|
14
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/claude-code-plugin",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.30",
|
|
4
4
|
"description": "Claude Code hooks and skills for the DevFlow development intelligence runtime.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
"verify:runtime-dependencies": "node --import tsx scripts/verify-runtime-dependencies.ts"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@devflow-tools/benchmark": "0.19.
|
|
16
|
-
"@devflow-tools/context-engine": "0.19.
|
|
17
|
-
"@devflow-tools/database": "0.19.
|
|
18
|
-
"@devflow-tools/mcp-server": "0.19.
|
|
19
|
-
"@devflow-tools/memory-engine": "0.19.
|
|
20
|
-
"@devflow-tools/sdk": "0.19.
|
|
21
|
-
"@devflow-tools/semantic-engine": "0.19.
|
|
22
|
-
"@devflow-tools/server": "0.19.
|
|
23
|
-
"@devflow-tools/task-runtime": "0.19.
|
|
24
|
-
"@devflow-tools/telemetry": "0.19.
|
|
25
|
-
"@devflow-tools/workflow-engine": "0.19.
|
|
15
|
+
"@devflow-tools/benchmark": "0.19.30",
|
|
16
|
+
"@devflow-tools/context-engine": "0.19.30",
|
|
17
|
+
"@devflow-tools/database": "0.19.30",
|
|
18
|
+
"@devflow-tools/mcp-server": "0.19.30",
|
|
19
|
+
"@devflow-tools/memory-engine": "0.19.30",
|
|
20
|
+
"@devflow-tools/sdk": "0.19.30",
|
|
21
|
+
"@devflow-tools/semantic-engine": "0.19.30",
|
|
22
|
+
"@devflow-tools/server": "0.19.30",
|
|
23
|
+
"@devflow-tools/task-runtime": "0.19.30",
|
|
24
|
+
"@devflow-tools/telemetry": "0.19.30",
|
|
25
|
+
"@devflow-tools/workflow-engine": "0.19.30"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@devflow-tools/devflow": "0.19.
|
|
28
|
+
"@devflow-tools/devflow": "0.19.30"
|
|
29
29
|
},
|
|
30
30
|
"allowScripts": {
|
|
31
31
|
"better-sqlite3@12.11.1": true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devflow-tools/cli",
|
|
3
|
-
"version": "0.19.
|
|
3
|
+
"version": "0.19.30",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"devflow": "./bin/devflow.cjs"
|
|
@@ -14,33 +14,33 @@
|
|
|
14
14
|
},
|
|
15
15
|
"dependencies": {
|
|
16
16
|
"@colbymchenry/codegraph": "^1.1.1",
|
|
17
|
-
"@devflow-tools/adapters": "0.19.
|
|
18
|
-
"@devflow-tools/benchmark": "0.19.
|
|
19
|
-
"@devflow-tools/context-engine": "0.19.
|
|
20
|
-
"@devflow-tools/database": "0.19.
|
|
21
|
-
"@devflow-tools/delivery-line": "0.19.
|
|
22
|
-
"@devflow-tools/devflow": "0.19.
|
|
23
|
-
"@devflow-tools/knowledge-engine": "0.19.
|
|
24
|
-
"@devflow-tools/mcp-server": "0.19.
|
|
25
|
-
"@devflow-tools/memory-engine": "0.19.
|
|
26
|
-
"@devflow-tools/plugin-animation": "0.19.
|
|
27
|
-
"@devflow-tools/plugin-css": "0.19.
|
|
28
|
-
"@devflow-tools/plugin-docker": "0.19.
|
|
29
|
-
"@devflow-tools/plugin-electron": "0.19.
|
|
30
|
-
"@devflow-tools/plugin-git": "0.19.
|
|
31
|
-
"@devflow-tools/plugin-graphql": "0.19.
|
|
32
|
-
"@devflow-tools/plugin-nest": "0.19.
|
|
33
|
-
"@devflow-tools/plugin-nextjs": "0.19.
|
|
34
|
-
"@devflow-tools/plugin-performance": "0.19.
|
|
35
|
-
"@devflow-tools/plugin-react": "0.19.
|
|
36
|
-
"@devflow-tools/plugin-tailwind": "0.19.
|
|
37
|
-
"@devflow-tools/plugin-taro": "0.19.
|
|
38
|
-
"@devflow-tools/plugin-ui-layout": "0.19.
|
|
39
|
-
"@devflow-tools/plugin-vue": "0.19.
|
|
40
|
-
"@devflow-tools/sdk": "0.19.
|
|
41
|
-
"@devflow-tools/server": "0.19.
|
|
42
|
-
"@devflow-tools/telemetry": "0.19.
|
|
43
|
-
"@devflow-tools/workflow-engine": "0.19.
|
|
17
|
+
"@devflow-tools/adapters": "0.19.30",
|
|
18
|
+
"@devflow-tools/benchmark": "0.19.30",
|
|
19
|
+
"@devflow-tools/context-engine": "0.19.30",
|
|
20
|
+
"@devflow-tools/database": "0.19.30",
|
|
21
|
+
"@devflow-tools/delivery-line": "0.19.30",
|
|
22
|
+
"@devflow-tools/devflow": "0.19.30",
|
|
23
|
+
"@devflow-tools/knowledge-engine": "0.19.30",
|
|
24
|
+
"@devflow-tools/mcp-server": "0.19.30",
|
|
25
|
+
"@devflow-tools/memory-engine": "0.19.30",
|
|
26
|
+
"@devflow-tools/plugin-animation": "0.19.30",
|
|
27
|
+
"@devflow-tools/plugin-css": "0.19.30",
|
|
28
|
+
"@devflow-tools/plugin-docker": "0.19.30",
|
|
29
|
+
"@devflow-tools/plugin-electron": "0.19.30",
|
|
30
|
+
"@devflow-tools/plugin-git": "0.19.30",
|
|
31
|
+
"@devflow-tools/plugin-graphql": "0.19.30",
|
|
32
|
+
"@devflow-tools/plugin-nest": "0.19.30",
|
|
33
|
+
"@devflow-tools/plugin-nextjs": "0.19.30",
|
|
34
|
+
"@devflow-tools/plugin-performance": "0.19.30",
|
|
35
|
+
"@devflow-tools/plugin-react": "0.19.30",
|
|
36
|
+
"@devflow-tools/plugin-tailwind": "0.19.30",
|
|
37
|
+
"@devflow-tools/plugin-taro": "0.19.30",
|
|
38
|
+
"@devflow-tools/plugin-ui-layout": "0.19.30",
|
|
39
|
+
"@devflow-tools/plugin-vue": "0.19.30",
|
|
40
|
+
"@devflow-tools/sdk": "0.19.30",
|
|
41
|
+
"@devflow-tools/server": "0.19.30",
|
|
42
|
+
"@devflow-tools/telemetry": "0.19.30",
|
|
43
|
+
"@devflow-tools/workflow-engine": "0.19.30",
|
|
44
44
|
"@inquirer/prompts": "^7.10.1",
|
|
45
45
|
"chalk": "^5.3.0",
|
|
46
46
|
"commander": "^12.0.0"
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"dist",
|
|
54
54
|
"bin"
|
|
55
55
|
],
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "c29ac4ef0b568f3e5c6078697a3a9fecc2a84933",
|
|
57
57
|
"description": "Command-line interface for DevFlow development intelligence and diagnostics.",
|
|
58
58
|
"license": "MIT",
|
|
59
59
|
"repository": {
|