@claude-flow/cli 3.10.39 → 3.10.41

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 (30) hide show
  1. package/.claude/helpers/session.js +28 -6
  2. package/README.md +1 -1
  3. package/dist/src/commands/hive-mind.d.ts.map +1 -1
  4. package/dist/src/commands/hive-mind.js +14 -1
  5. package/dist/src/commands/hive-mind.js.map +1 -1
  6. package/dist/src/commands/hooks.d.ts.map +1 -1
  7. package/dist/src/commands/hooks.js +16 -0
  8. package/dist/src/commands/hooks.js.map +1 -1
  9. package/dist/src/init/settings-generator.js +1 -1
  10. package/dist/src/init/settings-generator.js.map +1 -1
  11. package/dist/src/init/statusline-generator.d.ts.map +1 -1
  12. package/dist/src/init/statusline-generator.js +166 -19
  13. package/dist/src/init/statusline-generator.js.map +1 -1
  14. package/dist/src/mcp-tools/hooks-tools.d.ts.map +1 -1
  15. package/dist/src/mcp-tools/hooks-tools.js +26 -1
  16. package/dist/src/mcp-tools/hooks-tools.js.map +1 -1
  17. package/dist/src/memory/memory-bridge.d.ts +2 -0
  18. package/dist/src/memory/memory-bridge.d.ts.map +1 -1
  19. package/dist/src/memory/memory-bridge.js +2 -0
  20. package/dist/src/memory/memory-bridge.js.map +1 -1
  21. package/dist/src/ruvector/enhanced-model-router.d.ts +1 -1
  22. package/dist/src/ruvector/enhanced-model-router.d.ts.map +1 -1
  23. package/dist/src/ruvector/enhanced-model-router.js +20 -12
  24. package/dist/src/ruvector/enhanced-model-router.js.map +1 -1
  25. package/dist/src/ruvector/model-router.d.ts +25 -12
  26. package/dist/src/ruvector/model-router.d.ts.map +1 -1
  27. package/dist/src/ruvector/model-router.js +25 -12
  28. package/dist/src/ruvector/model-router.js.map +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/package.json +1 -1
@@ -27,7 +27,7 @@ export function generateSettings(options) {
27
27
  'Bash(npx @claude-flow*)',
28
28
  'Bash(npx claude-flow*)',
29
29
  'Bash(node .claude/*)',
30
- 'mcp__claude-flow__:*',
30
+ 'mcp__claude-flow__*',
31
31
  ],
32
32
  deny: [
33
33
  'Read(./.env)',
@@ -1 +1 @@
1
- {"version":3,"file":"settings-generator.js","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings-generator.js","sourceRoot":"","sources":["../../../src/init/settings-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAoB;IACnD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,2EAA2E;IAC3E,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC9D,QAAQ,CAAC,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,0CAA0C;IAC1C,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC/B,QAAQ,CAAC,UAAU,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED,kBAAkB;IAClB,QAAQ,CAAC,WAAW,GAAG;QACrB,KAAK,EAAE;YACL,yBAAyB;YACzB,wBAAwB;YACxB,sBAAsB;YACtB,qBAAqB;SACtB;QACD,IAAI,EAAE;YACJ,cAAc;YACd,gBAAgB;SACjB;KACF,CAAC;IAEF,wEAAwE;IACxE,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAC1E,qEAAqE;IACrE,EAAE;IACF,0EAA0E;IAC1E,0EAA0E;IAC1E,2EAA2E;IAC3E,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;QACjC,QAAQ,CAAC,WAAW,GAAG;YACrB,MAAM,EAAE,gEAAgE;YACxE,EAAE,EAAE,4DAA4D;SACjE,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,8DAA8D;IAC9D,iGAAiG;IAEjG,uDAAuD;IACvD,QAAQ,CAAC,GAAG,GAAG;QACb,8DAA8D;QAC9D,oCAAoC,EAAE,GAAG;QACzC,mCAAmC;QACnC,sBAAsB,EAAE,MAAM;QAC9B,yBAAyB,EAAE,MAAM;KAClC,CAAC;IAEF,mDAAmD;IACnD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAElC,2BAA2B;IAC3B,QAAQ,CAAC,UAAU,GAAG;QACpB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE;YACR,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;SACtB;QACD,gBAAgB,EAAE;YAChB,OAAO,EAAE,iBAAiB;YAC1B,OAAO,EAAE,2BAA2B;SACrC;QACD,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,MAAM,EAAE,iCAAiC;YACvD,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE;gBACZ,gBAAgB,EAAE,IAAI,EAAQ,kDAAkD;gBAChF,uBAAuB,EAAE,IAAI,EAAE,4CAA4C;gBAC3E,oBAAoB,EAAE,IAAI,EAAI,uCAAuC;gBACrE,qBAAqB,EAAE,aAAa,EAAE,yCAAyC;aAChF;YACD,KAAK,EAAE;gBACL,YAAY,EAAE;oBACZ,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,IAAI;iBACpB;gBACD,aAAa,EAAE;oBACb,OAAO,EAAE,IAAI;oBACb,aAAa,EAAE,IAAI;oBACnB,UAAU,EAAE,IAAI;iBACjB;aACF;SACF;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;YAClC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS;SACrC;QACD,MAAM,EAAE;YACN,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;YACtC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;YACtC,cAAc,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI,EAAE;YACzE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,EAAE;YACnE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,EAAE;SACpE;QACD,MAAM,EAAE;YACN,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY;SACtC;QACD,MAAM,EAAE;YACN,SAAS,EAAE,KAAK,EAAG,qEAAqE;YACxF,OAAO,EAAE;gBACP,KAAK,EAAY,mBAAmB;gBACpC,OAAO,EAAU,wCAAwC;gBACzD,UAAU,EAAO,2CAA2C;aAC7D;YACD,SAAS,EAAE;gBACT,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE;gBAC/C,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;aAC/C;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC;YACxD,SAAS,EAAE;gBACT,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;aAChB;SACF;QACD,GAAG,EAAE;YACH,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,MAAM;SACjB;QACD,GAAG,EAAE;YACH,YAAY,EAAE,IAAI;YAClB,uBAAuB,EAAE,IAAI;YAC7B,SAAS,EAAE,WAAW;SACvB;QACD,QAAQ,EAAE;YACR,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;SAClB;KACF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,SAAS,OAAO,CAAC,MAAc,EAAE,UAAkB;IACjD,IAAI,UAAU,EAAE,CAAC;QACf,kEAAkE;QAClE,8DAA8D;QAC9D,OAAO,4CAA4C,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,oCAAoC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,UAAU,iCAAiC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,UAAU,IAAI,CAAC;IAChP,CAAC;IACD,uEAAuE;IACvE,wEAAwE;IACxE,8DAA8D;IAC9D,qEAAqE;IACrE,uDAAuD;IACvD,MAAM,OAAO,GAAG,0BAA0B,CAAC;IAC3C,uDAAuD;IACvD,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO,aAAa,OAAO,eAAe,MAAM,aAAa,OAAO,oBAAoB,MAAM,KAAK,UAAU,GAAG,CAAC;AACnH,CAAC;AAED,8CAA8C;AAC9C,SAAS,cAAc,CAAC,UAAkB;IACxC,OAAO,OAAO,CAAC,kCAAkC,EAAE,UAAU,CAAC,CAAC;AACjE,CAAC;AAED,kDAAkD;AAClD,SAAS,aAAa,CAAC,UAAkB;IACvC,OAAO,OAAO,CAAC,sCAAsC,EAAE,UAAU,CAAC,CAAC;AACrE,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,QAAqB;IACrD,+DAA+D;IAC/D,mDAAmD;IACnD,kEAAkE;IAClE,EAAE;IACF,6EAA6E;IAC7E,6DAA6D;IAC7D,+DAA+D;IAC/D,8DAA8D;IAC9D,iEAAiE;IACjE,mEAAmE;IACnE,8DAA8D;IAC9D,+BAA+B;IAC/B,EAAE;IACF,8DAA8D;IAC9D,mEAAmE;IACnE,mEAAmE;IACnE,gEAAgE;IAChE,6DAA6D;IAC7D,+DAA+D;IAC/D,MAAM,MAAM,GAAG,gCAAgC,CAAC;IAEhD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,8DAA8D;QAC9D,sCAAsC;QACtC,yDAAyD;QACzD,qDAAqD;QACrD,2DAA2D;QAC3D,qEAAqE;QACrE,8DAA8D;QAC9D,uCAAuC;QACvC,iEAAiE;QACjE,gEAAgE;QAChE,MAAM,EAAE,GACN,2CAA2C;YAC3C,8CAA8C;YAC9C,qBAAqB,MAAM,KAAK;YAChC,mEAAmE,MAAM,KAAK;YAC9E,gCAAgC,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,YAAY,EAAE,GAAG;SAC3B,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,uDAAuD;IACvD,MAAM,OAAO,GAAG,0BAA0B,CAAC;IAC3C,uDAAuD;IACvD,MAAM,OAAO,GAAG,SAAS,CAAC;IAC1B,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,aAAa,OAAO,eAAe,MAAM,aAAa,OAAO,oBAAoB,MAAM,IAAI;KACrG,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,MAAmB;IAC9C,MAAM,KAAK,GAA8B,EAAE,CAAC;IAE5C,0DAA0D;IAC1D,gFAAgF;IAEhF,4DAA4D;IAC5D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG;YACjB;gBACE,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC;wBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB;iBACF;aACF;YACD;gBACE,OAAO,EAAE,sBAAsB;gBAC/B,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,UAAU,CAAC;wBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,KAAK,CAAC,WAAW,GAAG;YAClB;gBACE,OAAO,EAAE,sBAAsB;gBAC/B,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC;wBACpC,OAAO,EAAE,KAAK;qBACf;iBACF;aACF;YACD;gBACE,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC;wBACpC,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,KAAK,CAAC,gBAAgB,GAAG;YACvB;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC;wBAChC,OAAO,EAAE,KAAK;qBACf;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,4DAA4D;IAC5D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,YAAY,GAAG;YACnB;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,iBAAiB,CAAC;wBAC1C,OAAO,EAAE,KAAK;qBACf;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,aAAa,CAAC,QAAQ,CAAC;wBAChC,OAAO,EAAE,IAAI;qBACd;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,UAAU,GAAG;YACjB;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC;wBACtC,OAAO,EAAE,KAAK;qBACf;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,GAAG;YACX;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;wBAC9B,OAAO,EAAE,KAAK;qBACf;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,kDAAkD;IAClD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG;YACjB;gBACE,OAAO,EAAE,QAAQ;gBACjB,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,gBAAgB,CAAC;qBAC1C;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC;wBACtC,OAAO,EAAE,IAAI;qBACd;iBACF;aACF;YACD;gBACE,OAAO,EAAE,MAAM;gBACf,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC;qBACxC;oBACD;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,aAAa,CAAC;wBACtC,OAAO,EAAE,IAAI;qBACd;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,aAAa,GAAG;QACpB;YACE,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;oBACjC,OAAO,EAAE,IAAI;iBACd;aACF;SACF;KACF,CAAC;IAEF,oDAAoD;IACpD,8DAA8D;IAC9D,KAAK,CAAC,YAAY,GAAG;QACnB;YACE,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC;oBACpC,OAAO,EAAE,IAAI;iBACd;aACF;SACF;KACF,CAAC;IAEF,+DAA+D;IAC/D,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,YAAY,GAAG;YACnB;gBACE,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;wBACjC,OAAO,EAAE,IAAI;qBACd;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,+EAA+E;IAC/E,yEAAyE;IAEzE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"statusline-generator.d.ts","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAsiBrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA8BnE"}
1
+ {"version":3,"file":"statusline-generator.d.ts","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAyrBrE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CA8BnE"}
@@ -65,10 +65,51 @@ const CONFIG = {
65
65
  const CWD = process.cwd();
66
66
 
67
67
  // ─── Delegation cache ───────────────────────────────────────────
68
- // Cache the CLI JSON result for 10s so rapid prompt re-renders
69
- // (e.g. every keypress in some shells) don't re-invoke npx each time.
68
+ // Cache the CLI JSON result for 60s so rapid prompt re-renders
69
+ // (Claude Code refreshes the statusline several times a second while
70
+ // streaming) don't re-invoke the CLI each time. #2337: bumped 10s→60s
71
+ // because 10s was far too short for how often Claude Code re-renders.
70
72
  const CACHE_FILE = path.join(os.tmpdir(), 'ruflo-statusline-cache-' + require('crypto').createHash('md5').update(CWD).digest('hex').slice(0, 8) + '.json');
71
- const CACHE_TTL_MS = 10000;
73
+ const CACHE_TTL_MS = 60000;
74
+
75
+ // #2337: resolve an already-installed @claude-flow/cli (or ruflo) bin so we
76
+ // can invoke it directly via \`node\`. The previous version called
77
+ // \`npx --yes @claude-flow/cli@latest\` on every uncached render, which forces
78
+ // a registry resolution + cold-start of the entire CLI per render. With
79
+ // multiple concurrent Claude Code sessions this storms the host (reporter
80
+ // saw load average 40-65 on a 12-core box).
81
+ //
82
+ // Returns the absolute path to bin/cli.js or null. Mirrors getPkgVersion()'s
83
+ // path probing (project, monorepo, plugin marketplace, global node_modules
84
+ // including custom-prefix layouts like ~/.npm-global).
85
+ function resolveCliBin() {
86
+ try {
87
+ const home = os.homedir();
88
+ const candidates = [
89
+ path.join(home, '.claude', 'plugins', 'marketplaces', 'ruflo', 'bin', 'cli.js'),
90
+ path.join(CWD, 'node_modules', '@claude-flow', 'cli', 'bin', 'cli.js'),
91
+ path.join(CWD, 'node_modules', 'ruflo', 'bin', 'cli.js'),
92
+ path.join(CWD, 'v3', '@claude-flow', 'cli', 'bin', 'cli.js'),
93
+ ];
94
+ try {
95
+ const binDir = path.dirname(process.execPath);
96
+ const globalModuleDirs = [path.join(binDir, '..', 'lib', 'node_modules'), path.join(binDir, 'node_modules')];
97
+ for (const prefix of [process.env.npm_config_prefix, process.env.PREFIX, path.join(home, '.npm-global')]) {
98
+ if (prefix) globalModuleDirs.push(path.join(prefix, 'lib', 'node_modules'));
99
+ }
100
+ for (const gm of globalModuleDirs) {
101
+ candidates.push(
102
+ path.join(gm, 'ruflo', 'bin', 'cli.js'),
103
+ path.join(gm, '@claude-flow', 'cli', 'bin', 'cli.js'),
104
+ );
105
+ }
106
+ } catch { /* ignore */ }
107
+ for (const p of candidates) {
108
+ if (fs.existsSync(p)) return p;
109
+ }
110
+ } catch { /* ignore */ }
111
+ return null;
112
+ }
72
113
 
73
114
  function readCache() {
74
115
  try {
@@ -99,16 +140,25 @@ function getStatuslineData() {
99
140
  if (cached) return cached;
100
141
 
101
142
  try {
143
+ // #2337: prefer an already-installed CLI bin via direct \`node\` invocation
144
+ // — no npx, no registry round-trip, no @latest re-resolve per render.
145
+ // Fall back to \`npx --prefer-offline @claude-flow/cli\` (no @latest) only
146
+ // when nothing is installed locally, so a cold environment still works.
147
+ const cliBin = resolveCliBin();
148
+ const cmd = cliBin
149
+ ? '"' + process.execPath + '" "' + cliBin + '" hooks statusline --json 2>/dev/null'
150
+ : 'npx --prefer-offline @claude-flow/cli hooks statusline --json 2>/dev/null';
102
151
  const raw = execSync(
103
- 'npx --yes @claude-flow/cli@latest hooks statusline --json 2>/dev/null',
152
+ cmd,
104
153
  { encoding: 'utf-8', timeout: 8000, stdio: ['pipe', 'pipe', 'pipe'], cwd: CWD }
105
154
  ).trim();
106
155
  // The CLI may emit preamble lines before the JSON — find the first '{'.
107
156
  const jsonStart = raw.indexOf('{');
108
157
  if (jsonStart === -1) throw new Error('no JSON in CLI output');
109
158
  const data = JSON.parse(raw.slice(jsonStart));
110
- // Overlay real ADR count from both local directories (fast, no network).
111
- data.adrs = getLocalADRCount();
159
+ // Overlay every block the CLI JSON omits (adrs/agentdb/tests/hooks/integration)
160
+ // with real local reads, so those segments reflect actual state instead of 0.
161
+ applyLocalOverlays(data);
112
162
  writeCache(data);
113
163
  return data;
114
164
  } catch { /* CLI unavailable or timed out */ }
@@ -141,13 +191,40 @@ function getLocalADRCount() {
141
191
  return { count: total, implemented: total, compliance: 0 };
142
192
  }
143
193
 
144
- // Minimal local fallback when the CLI is not installed or times out.
145
- // Returns a structure that matches the CLI JSON schema so the renderer works.
146
- function buildLocalFallback() {
147
- const memMB = Math.floor(process.memoryUsage().heapUsed / 1024 / 1024);
148
- const adrs = getLocalADRCount();
194
+ // ─── Local overlays for segments the CLI JSON omits ──────────────
195
+ // 'hooks statusline --json' only returns user/v3Progress/security/swarm/system.
196
+ // agentdb/tests/hooks/integration are never populated, so without these overlays
197
+ // they render as a permanent 0. Each reader is cheap and degrades to zeros.
149
198
 
150
- // Test file count (pure directory walk, no file reads)
199
+ // Real AgentDB stats from the local memory DB. Vectors live in .swarm/memory.db
200
+ // (sql.js + HNSW); ruvector.db is an opaque redb store counted only toward size.
201
+ // One read-only sqlite3 query (mode=ro never takes a write lock the daemon owns).
202
+ function getLocalAgentDB() {
203
+ const result = { vectorCount: 0, dbSizeKB: 0, hasHnsw: false };
204
+ try {
205
+ let bytes = 0;
206
+ for (const f of ['.swarm/memory.db', 'ruvector.db']) {
207
+ try { bytes += fs.statSync(path.join(CWD, f)).size; } catch { /* missing */ }
208
+ }
209
+ result.dbSizeKB = Math.round(bytes / 1024);
210
+
211
+ const memDb = path.join(CWD, '.swarm', 'memory.db');
212
+ if (fs.existsSync(memDb)) {
213
+ const Q = String.fromCharCode(34);
214
+ const sql = Q + 'SELECT (SELECT COUNT(*) FROM memory_entries WHERE embedding IS NOT NULL)||' + "'|'" + '||(SELECT COUNT(*) FROM vector_indexes);' + Q;
215
+ const out = safeExec("sqlite3 'file:" + memDb + "?mode=ro' " + sql, 1500);
216
+ if (out && out.indexOf('|') !== -1) {
217
+ const parts = out.split('|');
218
+ result.vectorCount = parseInt(parts[0], 10) || 0;
219
+ result.hasHnsw = (parseInt(parts[1], 10) || 0) > 0;
220
+ }
221
+ }
222
+ } catch { /* ignore */ }
223
+ return result;
224
+ }
225
+
226
+ // Count test files via a bounded directory walk (no file reads).
227
+ function getLocalTests() {
151
228
  let testFiles = 0;
152
229
  function countTests(dir, depth) {
153
230
  if ((depth || 0) > 4) return;
@@ -163,19 +240,82 @@ function buildLocalFallback() {
163
240
  } catch { /* ignore */ }
164
241
  }
165
242
  for (const d of ['tests', 'test', '__tests__', 'src', 'v3']) countTests(path.join(CWD, d));
243
+ return { testFiles, testCases: testFiles * 4 };
244
+ }
166
245
 
167
- return {
246
+ // Count configured hooks from project .claude/settings.json. Claude Code hooks
247
+ // have no enabled/disabled flag, so every configured hook counts as enabled.
248
+ function getLocalHooks() {
249
+ const result = { enabled: 0, total: 0 };
250
+ try {
251
+ const settings = readJSON(path.join(CWD, '.claude', 'settings.json'));
252
+ const hooks = settings && settings.hooks;
253
+ if (hooks && typeof hooks === 'object') {
254
+ let n = 0;
255
+ for (const ev of Object.keys(hooks)) {
256
+ const groups = hooks[ev];
257
+ if (Array.isArray(groups)) {
258
+ for (const g of groups) {
259
+ if (g && Array.isArray(g.hooks)) n += g.hooks.length;
260
+ }
261
+ }
262
+ }
263
+ result.total = n;
264
+ result.enabled = n;
265
+ }
266
+ } catch { /* ignore */ }
267
+ return result;
268
+ }
269
+
270
+ // Best-effort integration block: DB presence + locally-configured stdio MCP
271
+ // servers (project .mcp.json + global ~/.claude.json). Remote connectors are
272
+ // account-managed and not present in local config, so they are not counted.
273
+ function getLocalIntegration() {
274
+ const integration = { mcpServers: { enabled: 0, total: 0 }, hasDatabase: false };
275
+ try {
276
+ for (const f of ['.swarm/memory.db', 'ruvector.db']) {
277
+ if (fs.existsSync(path.join(CWD, f))) { integration.hasDatabase = true; break; }
278
+ }
279
+ const names = new Set();
280
+ const projMcp = readJSON(path.join(CWD, '.mcp.json'));
281
+ if (projMcp && projMcp.mcpServers) for (const k of Object.keys(projMcp.mcpServers)) names.add(k);
282
+ const claudeJson = readJSON(path.join(os.homedir(), '.claude.json'));
283
+ if (claudeJson) {
284
+ if (claudeJson.mcpServers) for (const k of Object.keys(claudeJson.mcpServers)) names.add(k);
285
+ const proj = claudeJson.projects && claudeJson.projects[CWD];
286
+ if (proj && proj.mcpServers && !Array.isArray(proj.mcpServers)) {
287
+ for (const k of Object.keys(proj.mcpServers)) names.add(k);
288
+ }
289
+ }
290
+ integration.mcpServers.total = names.size;
291
+ integration.mcpServers.enabled = names.size;
292
+ } catch { /* ignore */ }
293
+ return integration;
294
+ }
295
+
296
+ // Overlay every locally-derived block onto the CLI data (mutates in place).
297
+ function applyLocalOverlays(data) {
298
+ data.adrs = getLocalADRCount();
299
+ data.agentdb = getLocalAgentDB();
300
+ data.tests = getLocalTests();
301
+ data.hooks = getLocalHooks();
302
+ data.integration = getLocalIntegration();
303
+ return data;
304
+ }
305
+
306
+ // Minimal local fallback when the CLI is not installed or times out.
307
+ // Returns a structure that matches the CLI JSON schema so the renderer works.
308
+ function buildLocalFallback() {
309
+ const memMB = Math.floor(process.memoryUsage().heapUsed / 1024 / 1024);
310
+
311
+ return applyLocalOverlays({
168
312
  user: { name: 'user', gitBranch: '', modelName: 'Claude Code' },
169
313
  v3Progress: { domainsCompleted: 0, totalDomains: 5, dddProgress: 0, patternsLearned: 0, sessionsCompleted: 0 },
170
314
  security: { status: 'NONE', cvesFixed: 0, totalCves: 0 },
171
315
  swarm: { activeAgents: 0, maxAgents: CONFIG.maxAgents, coordinationActive: false },
172
316
  system: { memoryMB: memMB, contextPct: 0, intelligencePct: 0, subAgents: 0 },
173
- adrs,
174
- hooks: { enabled: 0, total: 0 },
175
- agentdb: { vectorCount: 0, dbSizeKB: 0, hasHnsw: false },
176
- tests: { testFiles, testCases: testFiles * 4 },
177
317
  lastUpdated: new Date().toISOString(),
178
- };
318
+ });
179
319
  }
180
320
 
181
321
  // ANSI colors
@@ -375,7 +515,14 @@ function getPkgVersion() {
375
515
  // (bin/node_modules) layouts.
376
516
  try {
377
517
  const binDir = path.dirname(process.execPath);
378
- for (const gm of [path.join(binDir, '..', 'lib', 'node_modules'), path.join(binDir, 'node_modules')]) {
518
+ const globalModuleDirs = [path.join(binDir, '..', 'lib', 'node_modules'), path.join(binDir, 'node_modules')];
519
+ // #2221 follow-up: a custom npm prefix (e.g. ~/.npm-global) is decoupled from
520
+ // the node binary location, so the binDir-derived probes above all miss. Also
521
+ // probe the npm prefix from the environment and the common ~/.npm-global default.
522
+ for (const prefix of [process.env.npm_config_prefix, process.env.PREFIX, path.join(home, '.npm-global')]) {
523
+ if (prefix) globalModuleDirs.push(path.join(prefix, 'lib', 'node_modules'));
524
+ }
525
+ for (const gm of globalModuleDirs) {
379
526
  pkgPaths.push(
380
527
  path.join(gm, 'ruflo', 'package.json'),
381
528
  path.join(gm, '@claude-flow', 'cli', 'package.json'),
@@ -1 +1 @@
1
- {"version":3,"file":"statusline-generator.js","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAoB;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IAE5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA6BM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqgBvB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,sCAAsC,CAAC;IAChD,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"statusline-generator.js","sourceRoot":"","sources":["../../../src/init/statusline-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;;;;GASG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAoB;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IAE5C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eA6BM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwpBvB,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAoB;IACzD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,sCAAsC,CAAC;IAChD,CAAC;IAED,OAAO;;;;;;;;;;;;;;;;;;;;;;;;CAwBR,CAAC;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/hooks-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,YAAY,CAAC;AAiBzD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASzD;AAwqBD,eAAO,MAAM,YAAY,EAAE,OAwC1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAyE3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OA6C7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAgF9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,OAgLxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAoE1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,OA8CvB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OA2F1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAuK3B,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,OA4E1B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OA4K3B,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,OAoE9B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OA+E3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAuI/B,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,OAuF7B,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,OAyCjC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,OA+BzB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,OAsCvB,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAkI/B,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,OAmEpC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,OAyDlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAmEjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAgMhC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OA4E/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAwGhC,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,OAgNpC,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,OAiGpC,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,OA8MxC,CAAC;AAgQF,eAAO,MAAM,eAAe,EAAE,OA8C7B,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,OAwIjC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAuD/B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAkE/B,CAAC;AAiBF,eAAO,MAAM,eAAe,EAAE,OA4C7B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAgC/B,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,OAuB7B,CAAC;AAeF,eAAO,MAAM,YAAY,EAAE,OAmI1B,CAAC;AAqBF,eAAO,MAAM,iBAAiB,EAAE,OA0C/B,CAAC;AAOF,eAAO,MAAM,iBAAiB,EAAE,OAwB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAoFhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,OAc3C,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,OAAO,EA6C/B,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"hooks-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/hooks-tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,KAAK,OAAO,EAAiB,MAAM,YAAY,CAAC;AAiBzD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CASzD;AAwqBD,eAAO,MAAM,YAAY,EAAE,OAwC1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OAyE3B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OA6C7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,OAgF9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,OAgLxB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OAoE1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,OA8CvB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,OA2F1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,OA6L3B,CAAC;AAGF,eAAO,MAAM,YAAY,EAAE,OA4E1B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OA4K3B,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,OAoE9B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,OA+E3B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAuI/B,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,OAuF7B,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,OAyCjC,CAAC;AAGF,eAAO,MAAM,WAAW,EAAE,OA+BzB,CAAC;AAGF,eAAO,MAAM,SAAS,EAAE,OAsCvB,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAkI/B,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,OAmEpC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,OAyDlC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,OAmEjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAgMhC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OA4E/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAwGhC,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,OAgNpC,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,OAiGpC,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,OA8MxC,CAAC;AAgQF,eAAO,MAAM,eAAe,EAAE,OA8C7B,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,OAwIjC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAuD/B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAkE/B,CAAC;AAiBF,eAAO,MAAM,eAAe,EAAE,OA+C7B,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,OAgC/B,CAAC;AAGF,eAAO,MAAM,eAAe,EAAE,OAuB7B,CAAC;AAeF,eAAO,MAAM,YAAY,EAAE,OAmI1B,CAAC;AAqBF,eAAO,MAAM,iBAAiB,EAAE,OA0C/B,CAAC;AAOF,eAAO,MAAM,iBAAiB,EAAE,OAwB/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,OAoFhC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,OAc3C,CAAC;AAGF,eAAO,MAAM,UAAU,EAAE,OAAO,EA6C/B,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1239,6 +1239,9 @@ export const hooksPostTask = {
1239
1239
  quality: { type: 'number', description: 'Quality score (0-1)' },
1240
1240
  task: { type: 'string', description: 'Task description text (used for learning keyword extraction)' },
1241
1241
  storeDecisions: { type: 'boolean', description: 'Also store routing decision in memory DB' },
1242
+ // ADR-147 P2: nested-subagent spawn-tree capture
1243
+ parentAgentId: { type: 'string', description: 'ID of the parent agent (from Claude Code\'s parent_agent_id OTel span tag / x-claude-code-parent-agent-id header). Omit for top-level work.' },
1244
+ depth: { type: 'number', description: 'Chain depth from root lead session (0 = lead, 1+ = subagent). Used by ADR-147 P3 depth-aware guardrail.' },
1242
1245
  },
1243
1246
  required: ['taskId'],
1244
1247
  },
@@ -1258,6 +1261,22 @@ export const hooksPostTask = {
1258
1261
  if (!v.valid)
1259
1262
  return { success: false, error: v.error };
1260
1263
  }
1264
+ // ADR-147 P2: validate spawn-tree lineage if provided
1265
+ const parentAgentId = params.parentAgentId;
1266
+ if (parentAgentId !== undefined) {
1267
+ const v = validateIdentifier(parentAgentId, 'parentAgentId');
1268
+ if (!v.valid)
1269
+ return { success: false, error: v.error };
1270
+ }
1271
+ const depthRaw = params.depth;
1272
+ let depth;
1273
+ if (depthRaw !== undefined && depthRaw !== null) {
1274
+ const n = Number(depthRaw);
1275
+ if (!Number.isInteger(n) || n < 0 || n > 32) {
1276
+ return { success: false, error: 'depth must be a non-negative integer ≤ 32' };
1277
+ }
1278
+ depth = n;
1279
+ }
1261
1280
  // Phase 3: Wire recordFeedback through bridge → LearningSystem + ReasoningBank
1262
1281
  let feedbackResult = null;
1263
1282
  try {
@@ -1269,6 +1288,9 @@ export const hooksPostTask = {
1269
1288
  agent,
1270
1289
  duration: params.duration || undefined,
1271
1290
  patterns: params.patterns || undefined,
1291
+ // ADR-147 P2: forward spawn-tree lineage so it lands in feedback + memory
1292
+ parentAgentId,
1293
+ depth,
1272
1294
  });
1273
1295
  }
1274
1296
  catch {
@@ -3931,7 +3953,10 @@ export const hooksModelRoute = {
3931
3953
  alternatives: result.alternatives,
3932
3954
  inferenceTimeUs: result.inferenceTimeUs,
3933
3955
  costMultiplier: result.costMultiplier,
3934
- implementation: 'tiny-dancer-neural',
3956
+ // Historical name kept for telemetry / dashboard schema stability.
3957
+ // The shipped router is the heuristic + Thompson-bandit described in
3958
+ // ruvector/model-router.ts — not a neural network. See #2329.
3959
+ implementation: 'heuristic-thompson-bandit',
3935
3960
  };
3936
3961
  },
3937
3962
  };