@devflow-tools/devflow 0.8.0 → 0.8.1

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,2 +1,2 @@
1
- import {existsSync,readFileSync,mkdirSync,writeFileSync,unlinkSync,readdirSync}from'fs';import {join}from'path';import {homedir}from'os';var f=1e4,O=300*1e3,p=class{constructor(t){this.retryScheduled=false;this.apiUrl=t?.apiUrl??process.env.DEVFLOW_API_URL??"http://localhost:13337",this.apiKey=t?.apiKey??process.env.DEVFLOW_API_KEY??"dev-key-000000",this.cacheDir=t?.cacheDir??join(homedir(),".devflow","telemetry-cache");}async sendEvent(t){let e=this.truncateInput(t.input),r={...t,input:e};try{let n=await fetch(`${this.apiUrl}/api/telemetry/tool-call`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify(r)});if(!n.ok)throw new Error(`Server responded ${n.status}`)}catch{this.cacheEvent({type:"tool_call",payload:r});}}async sendExecutionStart(t,e,r){let n={executionId:t,skillName:e,startedAt:r};try{let i=await fetch(`${this.apiUrl}/api/telemetry/skill-execution/start`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify(n)});if(!i.ok)throw new Error(`Server responded ${i.status}`)}catch{this.cacheEvent({type:"execution_start",payload:n});}}async flushCache(){if(!existsSync(this.cacheDir))return;let t=readdirSync(this.cacheDir).filter(e=>e.endsWith(".json"));for(let e of t)try{let r=join(this.cacheDir,e),n=readFileSync(r,"utf8"),i=JSON.parse(n),a=i.type==="execution_start"?"/api/telemetry/skill-execution/start":"/api/telemetry/tool-call";(await fetch(`${this.apiUrl}${a}`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify(i.payload)})).ok&&unlinkSync(r);}catch{}}cacheEvent(t){try{existsSync(this.cacheDir)||mkdirSync(this.cacheDir,{recursive:!0});let e=join(this.cacheDir,`${Date.now()}_${Math.random().toString(36).slice(2,11)}.json`);writeFileSync(e,JSON.stringify(t,null,2)),this.scheduleRetry();}catch{}}scheduleRetry(){this.retryScheduled||(this.retryScheduled=true,setTimeout(()=>{this.retryScheduled=false,this.flushCache().catch(()=>{});},O).unref());}truncateInput(t){let e=JSON.stringify(t);return e.length<=f?t:{_truncated:true,_original_size:e.length,_preview:e.substring(0,f)+"..."}}};function F(){return process.env.DEVFLOW_STATE_DIR??join(homedir(),".devflow")}var d=class{constructor(t){this.stateDir=F();}detect(){let t=join(this.stateDir,"current-skill.json");if(!existsSync(t))return null;try{let e=readFileSync(t,"utf8");return JSON.parse(e)}catch{return null}}startExecution(t,e){existsSync(this.stateDir)||mkdirSync(this.stateDir,{recursive:true});let r=this.getCurrentExecutionId();if(r)return r;let n=`exec_${Date.now()}_${Math.random().toString(36).slice(2,11)}`;return writeFileSync(join(this.stateDir,"current-execution-id"),n),writeFileSync(join(this.stateDir,"current-skill.json"),JSON.stringify({name:t,required_mcp_tools:e?.required_mcp_tools??[]})),n}getCurrentExecutionId(){let t=join(this.stateDir,"current-execution-id");if(!existsSync(t))return null;try{return readFileSync(t,"utf8").trim()}catch{return null}}endExecution(){let t=join(this.stateDir,"current-skill.json"),e=join(this.stateDir,"current-execution-id");try{existsSync(t)&&unlinkSync(t);}catch{}try{existsSync(e)&&unlinkSync(e);}catch{}}};async function M(o){try{if(!o||o.trim()==="")return {decision:"allow"};let t=JSON.parse(o),e=new d,r=e.detect(),n=t.tool_name.startsWith("mcp__devflow__"),i=n?t.tool_name.replace("mcp__devflow__",""):void 0,a=r?.required_mcp_tools??[],l=a.length>0,h=l&&!n,u;h?u={decision:"block",reason:`Skill "${r?.name||"unknown"}" requires MCP tools. Use one of: ${a.join(", ")}`}:u={decision:"allow"};let v=e.getCurrentExecutionId()??`exec_orphan_${Date.now()}`,S=new p,w={eventId:`evt_${Date.now()}_${Math.random().toString(36).slice(2,11)}`,executionId:v,timestamp:Date.now(),toolName:t.tool_name,toolType:n?"mcp":t.tool_name==="Agent"?"subagent":"direct",isMcpTool:n,mcpToolName:i,mcpEnforced:n&&l,mcpFallback:!n&&!l,input:t.tool_input,tokensUsed:0,duration:0,blocked:h,blockReason:h?u.reason:void 0};return S.sendEvent(w).catch(()=>{}),u}catch{return {decision:"allow"}}}if(process.argv[1]?.endsWith("pre-tool-use")||process.argv[1]?.endsWith("pre-tool-use.js")){let o="";process.stdin.setEncoding("utf8"),process.stdin.on("data",t=>{o+=t;}),process.stdin.on("end",async()=>{let t=await M(o);console.log(JSON.stringify(t));}),process.stdin.on("error",()=>{console.log(JSON.stringify({decision:"allow"})),process.exit(0);}),setTimeout(()=>{console.log(JSON.stringify({decision:"allow"})),process.exit(0);},4e3).unref();}
2
- export{M as handlePreToolUse};
1
+ import {existsSync,readFileSync,mkdirSync,writeFileSync,unlinkSync,readdirSync}from'fs';import {join}from'path';import {homedir}from'os';var f=1e4,N=300*1e3,p=class{constructor(t){this.retryScheduled=false;this.apiUrl=t?.apiUrl??process.env.DEVFLOW_API_URL??"http://localhost:13337",this.apiKey=t?.apiKey??process.env.DEVFLOW_API_KEY??"dev-key-000000",this.cacheDir=t?.cacheDir??join(homedir(),".devflow","telemetry-cache");}async sendEvent(t){let e=this.truncateInput(t.input),r={...t,input:e};try{let n=await fetch(`${this.apiUrl}/api/telemetry/tool-call`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify(r)});if(!n.ok)throw new Error(`Server responded ${n.status}`)}catch{this.cacheEvent({type:"tool_call",payload:r});}}async sendExecutionStart(t,e,r){let n={executionId:t,skillName:e,startedAt:r};try{let i=await fetch(`${this.apiUrl}/api/telemetry/skill-execution/start`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify(n)});if(!i.ok)throw new Error(`Server responded ${i.status}`)}catch{this.cacheEvent({type:"execution_start",payload:n});}}async flushCache(){if(!existsSync(this.cacheDir))return;let t=readdirSync(this.cacheDir).filter(e=>e.endsWith(".json"));for(let e of t)try{let r=join(this.cacheDir,e),n=readFileSync(r,"utf8"),i=JSON.parse(n),l=i.type==="execution_start"?"/api/telemetry/skill-execution/start":"/api/telemetry/tool-call";(await fetch(`${this.apiUrl}${l}`,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":this.apiKey},body:JSON.stringify(i.payload)})).ok&&unlinkSync(r);}catch{}}cacheEvent(t){try{existsSync(this.cacheDir)||mkdirSync(this.cacheDir,{recursive:!0});let e=join(this.cacheDir,`${Date.now()}_${Math.random().toString(36).slice(2,11)}.json`);writeFileSync(e,JSON.stringify(t,null,2)),this.scheduleRetry();}catch{}}scheduleRetry(){this.retryScheduled||(this.retryScheduled=true,setTimeout(()=>{this.retryScheduled=false,this.flushCache().catch(()=>{});},N).unref());}truncateInput(t){let e=JSON.stringify(t);return e.length<=f?t:{_truncated:true,_original_size:e.length,_preview:e.substring(0,f)+"..."}}};var M=1800*1e3;function F(){return process.env.DEVFLOW_STATE_DIR??join(homedir(),".devflow")}var d=class{constructor(t){this.stateDir=F();}detect(){let t=join(this.stateDir,"current-skill.json");if(!existsSync(t))return null;try{let e=readFileSync(t,"utf8"),r=JSON.parse(e);return !r.registeredAt||Date.now()-r.registeredAt>M?(this.endExecution(),null):r}catch{return null}}startExecution(t,e){existsSync(this.stateDir)||mkdirSync(this.stateDir,{recursive:true});let r=this.getCurrentExecutionId();if(r)return r;let n=`exec_${Date.now()}_${Math.random().toString(36).slice(2,11)}`;return writeFileSync(join(this.stateDir,"current-execution-id"),n),writeFileSync(join(this.stateDir,"current-skill.json"),JSON.stringify({name:t,required_mcp_tools:e?.required_mcp_tools??[],registeredAt:Date.now()})),n}getCurrentExecutionId(){let t=join(this.stateDir,"current-execution-id");if(!existsSync(t))return null;try{return readFileSync(t,"utf8").trim()}catch{return null}}endExecution(){let t=join(this.stateDir,"current-skill.json"),e=join(this.stateDir,"current-execution-id");try{existsSync(t)&&unlinkSync(t);}catch{}try{existsSync(e)&&unlinkSync(e);}catch{}}};function a(){return {hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"allow"}}}function $(o){return {hookSpecificOutput:{hookEventName:"PreToolUse",permissionDecision:"deny",permissionDecisionReason:o}}}async function C(o){try{if(!o||o.trim()==="")return a();let t=JSON.parse(o),e=new d,r=e.detect(),n=t.tool_name.startsWith("mcp__devflow__"),i=n?t.tool_name.replace("mcp__devflow__",""):void 0,l=r?.required_mcp_tools??[],u=l.length>0,S=u&&!n,h;S?h=$(`Skill "${r?.name||"unknown"}" requires MCP tools. Use one of: ${l.join(", ")}`):h=a();let v=e.getCurrentExecutionId()??`exec_orphan_${Date.now()}`,D=new p,x={eventId:`evt_${Date.now()}_${Math.random().toString(36).slice(2,11)}`,executionId:v,timestamp:Date.now(),toolName:t.tool_name,toolType:n?"mcp":t.tool_name==="Agent"?"subagent":"direct",isMcpTool:n,mcpToolName:i,mcpEnforced:n&&u,mcpFallback:!n&&u,input:t.tool_input,tokensUsed:0,duration:0,blocked:!1};return D.sendEvent(x).catch(()=>{}),h}catch{return a()}}if(process.argv[1]?.endsWith("pre-tool-use")||process.argv[1]?.endsWith("pre-tool-use.js")){let o="";process.stdin.setEncoding("utf8"),process.stdin.on("data",t=>{o+=t;}),process.stdin.on("end",async()=>{let t=await C(o);console.log(JSON.stringify(t));}),process.stdin.on("error",()=>{console.log(JSON.stringify(a())),process.exit(0);}),setTimeout(()=>{console.log(JSON.stringify(a())),process.exit(0);},4e3).unref();}
2
+ export{C as handlePreToolUse};
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@devflow-tools/claude-code-plugin",
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.7.6",
4
+ "version": "0.8.0",
5
5
  "author": {
6
6
  "name": "DevFlow"
7
7
  },
@@ -10,7 +10,7 @@ required_mcp_tools:
10
10
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
11
11
 
12
12
  ```bash
13
- mkdir -p ~/.devflow && echo '{"name":"devflow:context","required_mcp_tools":["get_project_context","search_symbol"],"description":"devflow:context skill"}' > ~/.devflow/current-skill.json
13
+ mkdir -p ~/.devflow && echo '{"name":"devflow:context","required_mcp_tools":["get_project_context","search_symbol"],"description":"devflow:context skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
14
14
  ```
15
15
 
16
16
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:docker","required_mcp_tools":["docker_dockerize_project"],"description":"devflow:docker skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:docker","required_mcp_tools":["docker_dockerize_project"],"description":"devflow:docker skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:electron","required_mcp_tools":["electron_diagnose_bug"],"description":"devflow:electron skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:electron","required_mcp_tools":["electron_diagnose_bug"],"description":"devflow:electron skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:graph","required_mcp_tools":["get_dependency_graph"],"description":"devflow:graph skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:graph","required_mcp_tools":["get_dependency_graph"],"description":"devflow:graph skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -10,7 +10,7 @@ required_mcp_tools:
10
10
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
11
11
 
12
12
  ```bash
13
- mkdir -p ~/.devflow && echo '{"name":"devflow:graphql","required_mcp_tools":["graphql_new_graphql_type","graphql_diagnose_bug"],"description":"devflow:graphql skill"}' > ~/.devflow/current-skill.json
13
+ mkdir -p ~/.devflow && echo '{"name":"devflow:graphql","required_mcp_tools":["graphql_new_graphql_type","graphql_diagnose_bug"],"description":"devflow:graphql skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
14
14
  ```
15
15
 
16
16
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:knowledge","required_mcp_tools":["get_knowledge"],"description":"devflow:knowledge skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:knowledge","required_mcp_tools":["get_knowledge"],"description":"devflow:knowledge skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:memory","required_mcp_tools":["get_memory"],"description":"devflow:memory skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:memory","required_mcp_tools":["get_memory"],"description":"devflow:memory skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -10,7 +10,7 @@ required_mcp_tools:
10
10
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
11
11
 
12
12
  ```bash
13
- mkdir -p ~/.devflow && echo '{"name":"devflow:nest","required_mcp_tools":["nest_new_module","nest_diagnose_bug"],"description":"devflow:nest skill"}' > ~/.devflow/current-skill.json
13
+ mkdir -p ~/.devflow && echo '{"name":"devflow:nest","required_mcp_tools":["nest_new_module","nest_diagnose_bug"],"description":"devflow:nest skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
14
14
  ```
15
15
 
16
16
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -10,7 +10,7 @@ required_mcp_tools:
10
10
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
11
11
 
12
12
  ```bash
13
- mkdir -p ~/.devflow && echo '{"name":"devflow:nextjs","required_mcp_tools":["nextjs_new_page","nextjs_diagnose_bug"],"description":"devflow:nextjs skill"}' > ~/.devflow/current-skill.json
13
+ mkdir -p ~/.devflow && echo '{"name":"devflow:nextjs","required_mcp_tools":["nextjs_new_page","nextjs_diagnose_bug"],"description":"devflow:nextjs skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
14
14
  ```
15
15
 
16
16
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:performance","required_mcp_tools":["performance_audit_performance"],"description":"devflow:performance skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:performance","required_mcp_tools":["performance_audit_performance"],"description":"devflow:performance skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -14,7 +14,7 @@ required_mcp_tools:
14
14
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
15
15
 
16
16
  ```bash
17
- mkdir -p ~/.devflow && echo '{"name":"devflow:react","required_mcp_tools":["react_diagnose_bug","react_new_feature","react_audit_performance","react_review_hooks","react_refactor_component","react_new_component"],"description":"devflow:react skill"}' > ~/.devflow/current-skill.json
17
+ mkdir -p ~/.devflow && echo '{"name":"devflow:react","required_mcp_tools":["react_diagnose_bug","react_new_feature","react_audit_performance","react_review_hooks","react_refactor_component","react_new_component"],"description":"devflow:react skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
18
18
  ```
19
19
 
20
20
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:tailwind","required_mcp_tools":["tailwind_new_component"],"description":"devflow:tailwind skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:tailwind","required_mcp_tools":["tailwind_new_component"],"description":"devflow:tailwind skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:taro","required_mcp_tools":["taro_new_page"],"description":"devflow:taro skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:taro","required_mcp_tools":["taro_new_page"],"description":"devflow:taro skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -11,7 +11,7 @@ required_mcp_tools:
11
11
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
12
12
 
13
13
  ```bash
14
- mkdir -p ~/.devflow && echo '{"name":"devflow:vue","required_mcp_tools":["vue_diagnose_bug","vue_new_component","vue_debug_reactivity"],"description":"devflow:vue skill"}' > ~/.devflow/current-skill.json
14
+ mkdir -p ~/.devflow && echo '{"name":"devflow:vue","required_mcp_tools":["vue_diagnose_bug","vue_new_component","vue_debug_reactivity"],"description":"devflow:vue skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
15
15
  ```
16
16
 
17
17
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
@@ -9,7 +9,7 @@ required_mcp_tools:
9
9
  > **IMPORTANT: Before ANY other action, execute the registration command below. This is NON-NEGOTIABLE.**
10
10
 
11
11
  ```bash
12
- mkdir -p ~/.devflow && echo '{"name":"devflow:workflow","required_mcp_tools":["run_workflow"],"description":"devflow:workflow skill"}' > ~/.devflow/current-skill.json
12
+ mkdir -p ~/.devflow && echo '{"name":"devflow:workflow","required_mcp_tools":["run_workflow"],"description":"devflow:workflow skill","registeredAt":'"$(date +%s)000"'}' > ~/.devflow/current-skill.json
13
13
  ```
14
14
 
15
15
  After registration, you **MUST** use ONLY these MCP tools for all work in this skill:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/devflow",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "type": "module",
5
5
  "description": "DevFlow - Developer Intelligence Platform (Distribution Package)",
6
6
  "bin": {
@@ -15,16 +15,16 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "@colbymchenry/codegraph": "^1.1.1",
18
- "@devflow-tools/adapters": "^0.8.0",
19
- "@devflow-tools/benchmark": "^0.8.0",
20
- "@devflow-tools/context-engine": "^0.8.0",
21
- "@devflow-tools/database": "^0.8.0",
22
- "@devflow-tools/knowledge-engine": "^0.8.0",
23
- "@devflow-tools/mcp-server": "^0.8.0",
24
- "@devflow-tools/memory-engine": "^0.8.0",
25
- "@devflow-tools/sdk": "^0.8.0",
26
- "@devflow-tools/telemetry": "^0.8.0",
27
- "@devflow-tools/workflow-engine": "^0.8.0",
18
+ "@devflow-tools/adapters": "^0.8.1",
19
+ "@devflow-tools/benchmark": "^0.8.1",
20
+ "@devflow-tools/context-engine": "^0.8.1",
21
+ "@devflow-tools/database": "^0.8.1",
22
+ "@devflow-tools/knowledge-engine": "^0.8.1",
23
+ "@devflow-tools/mcp-server": "^0.8.1",
24
+ "@devflow-tools/memory-engine": "^0.8.1",
25
+ "@devflow-tools/sdk": "^0.8.1",
26
+ "@devflow-tools/telemetry": "^0.8.1",
27
+ "@devflow-tools/workflow-engine": "^0.8.1",
28
28
  "@inquirer/prompts": "^7.10.1",
29
29
  "@modelcontextprotocol/sdk": "^1.0.0",
30
30
  "@nestjs/common": "^10.4.0",
@@ -51,5 +51,5 @@
51
51
  "plugin-registry.json",
52
52
  "scripts/postinstall.js"
53
53
  ],
54
- "gitHead": "5c9a804d3c2e6e6822b516fde67d5b789dbdb5b3"
54
+ "gitHead": "08e47047445ba2b8112669608264af9971627138"
55
55
  }