codingbuddy 4.4.0 → 4.5.0

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 (79) hide show
  1. package/dist/src/agent/agent.service.d.ts +2 -0
  2. package/dist/src/agent/agent.service.js +45 -0
  3. package/dist/src/agent/agent.service.js.map +1 -1
  4. package/dist/src/agent/agent.types.d.ts +13 -0
  5. package/dist/src/agent/agent.types.js.map +1 -1
  6. package/dist/src/keyword/keyword.service.js +7 -0
  7. package/dist/src/keyword/keyword.service.js.map +1 -1
  8. package/dist/src/keyword/keyword.types.d.ts +2 -0
  9. package/dist/src/keyword/taskmaestro-detector.d.ts +1 -0
  10. package/dist/src/keyword/taskmaestro-detector.js +16 -0
  11. package/dist/src/keyword/taskmaestro-detector.js.map +1 -0
  12. package/dist/src/mcp/handlers/agent.handler.js +7 -0
  13. package/dist/src/mcp/handlers/agent.handler.js.map +1 -1
  14. package/dist/src/mcp/sse-auth.guard.js +4 -6
  15. package/dist/src/mcp/sse-auth.guard.js.map +1 -1
  16. package/dist/src/shared/version.d.ts +1 -1
  17. package/dist/src/shared/version.js +1 -1
  18. package/dist/src/tui/components/FlowMap.d.ts +3 -1
  19. package/dist/src/tui/components/FlowMap.js +30 -3
  20. package/dist/src/tui/components/FlowMap.js.map +1 -1
  21. package/dist/src/tui/components/FlowMap.spec.js +88 -0
  22. package/dist/src/tui/components/FlowMap.spec.js.map +1 -1
  23. package/dist/src/tui/components/FocusedAgentPanel.d.ts +3 -1
  24. package/dist/src/tui/components/FocusedAgentPanel.js +8 -3
  25. package/dist/src/tui/components/FocusedAgentPanel.js.map +1 -1
  26. package/dist/src/tui/components/FocusedAgentPanel.spec.js +76 -0
  27. package/dist/src/tui/components/FocusedAgentPanel.spec.js.map +1 -1
  28. package/dist/src/tui/components/HeaderBar.d.ts +3 -1
  29. package/dist/src/tui/components/HeaderBar.js +12 -6
  30. package/dist/src/tui/components/HeaderBar.js.map +1 -1
  31. package/dist/src/tui/components/HeaderBar.spec.js +31 -13
  32. package/dist/src/tui/components/HeaderBar.spec.js.map +1 -1
  33. package/dist/src/tui/components/StageHealthBar.d.ts +5 -1
  34. package/dist/src/tui/components/StageHealthBar.js +6 -1
  35. package/dist/src/tui/components/StageHealthBar.js.map +1 -1
  36. package/dist/src/tui/components/StageHealthBar.spec.js +22 -0
  37. package/dist/src/tui/components/StageHealthBar.spec.js.map +1 -1
  38. package/dist/src/tui/components/focused-agent.pure.d.ts +1 -0
  39. package/dist/src/tui/components/focused-agent.pure.js +11 -0
  40. package/dist/src/tui/components/focused-agent.pure.js.map +1 -1
  41. package/dist/src/tui/components/index.d.ts +3 -1
  42. package/dist/src/tui/components/index.js +10 -1
  43. package/dist/src/tui/components/index.js.map +1 -1
  44. package/dist/src/tui/components/live.pure.d.ts +9 -0
  45. package/dist/src/tui/components/live.pure.js +70 -0
  46. package/dist/src/tui/components/live.pure.js.map +1 -0
  47. package/dist/src/tui/dashboard-app.js +9 -6
  48. package/dist/src/tui/dashboard-app.js.map +1 -1
  49. package/dist/src/tui/dashboard-app.spec.js +14 -0
  50. package/dist/src/tui/dashboard-app.spec.js.map +1 -1
  51. package/dist/src/tui/dashboard-types.d.ts +6 -0
  52. package/dist/src/tui/dashboard-types.js.map +1 -1
  53. package/dist/src/tui/eventbus-ui.integration.spec.js +3 -0
  54. package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
  55. package/dist/src/tui/hooks/index.d.ts +1 -1
  56. package/dist/src/tui/hooks/index.js +3 -3
  57. package/dist/src/tui/hooks/index.js.map +1 -1
  58. package/dist/src/tui/hooks/use-dashboard-state.js +16 -0
  59. package/dist/src/tui/hooks/use-dashboard-state.js.map +1 -1
  60. package/dist/src/tui/hooks/use-tick.d.ts +1 -0
  61. package/dist/src/tui/hooks/use-tick.js +15 -0
  62. package/dist/src/tui/hooks/use-tick.js.map +1 -0
  63. package/dist/src/tui/hooks/use-tick.spec.js +70 -0
  64. package/dist/src/tui/hooks/use-tick.spec.js.map +1 -0
  65. package/dist/src/tui/index.d.ts +1 -1
  66. package/dist/src/tui/index.js +2 -2
  67. package/dist/src/tui/index.js.map +1 -1
  68. package/dist/src/tui-bundle.mjs +175 -51
  69. package/dist/tsconfig.build.tsbuildinfo +1 -1
  70. package/package.json +4 -3
  71. package/dist/src/tui/components/header-bar.pure.d.ts +0 -1
  72. package/dist/src/tui/components/header-bar.pure.js +0 -9
  73. package/dist/src/tui/components/header-bar.pure.js.map +0 -1
  74. package/dist/src/tui/hooks/use-clock.d.ts +0 -1
  75. package/dist/src/tui/hooks/use-clock.js +0 -16
  76. package/dist/src/tui/hooks/use-clock.js.map +0 -1
  77. package/dist/src/tui/hooks/use-clock.spec.js +0 -43
  78. package/dist/src/tui/hooks/use-clock.spec.js.map +0 -1
  79. /package/dist/src/tui/hooks/{use-clock.spec.d.ts → use-tick.spec.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codingbuddy",
3
- "version": "4.4.0",
3
+ "version": "4.5.0",
4
4
  "description": "Multi-AI Rules MCP Server - One source of truth for AI coding rules across all AI assistants",
5
5
  "author": "JeremyDev87",
6
6
  "license": "MIT",
@@ -41,7 +41,8 @@
41
41
  },
42
42
  "scripts": {
43
43
  "prepublishOnly": "yarn build && chmod +x dist/src/main.js dist/src/cli/cli.js",
44
- "build": "yarn tsc -p tsconfig.build.json && node scripts/build-tui.js",
44
+ "clean": "rm -rf dist/",
45
+ "build": "yarn clean && yarn tsc -p tsconfig.build.json && node scripts/build-tui.js",
45
46
  "build:tui": "node scripts/build-tui.js",
46
47
  "start": "node dist/src/main.js",
47
48
  "start:dev": "yarn ts-node src/main.ts",
@@ -71,7 +72,7 @@
71
72
  "@nestjs/core": "11.1.9",
72
73
  "@nestjs/platform-express": "11.1.9",
73
74
  "chalk": "5.4.1",
74
- "codingbuddy-rules": "4.4.0",
75
+ "codingbuddy-rules": "4.5.0",
75
76
  "eventemitter2": "6.4.9",
76
77
  "ink": "6.7.0",
77
78
  "minimatch": "10.2.3",
@@ -1 +0,0 @@
1
- export declare function formatTime(date: Date): string;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatTime = formatTime;
4
- function formatTime(date) {
5
- const hours = String(date.getHours()).padStart(2, '0');
6
- const minutes = String(date.getMinutes()).padStart(2, '0');
7
- return `${hours}:${minutes}`;
8
- }
9
- //# sourceMappingURL=header-bar.pure.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-bar.pure.js","sourceRoot":"","sources":["../../../../src/tui/components/header-bar.pure.ts"],"names":[],"mappings":";;AAIA,gCAIC;AAJD,SAAgB,UAAU,CAAC,IAAU;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;AAC/B,CAAC"}
@@ -1 +0,0 @@
1
- export declare function useClock(): string;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useClock = useClock;
4
- const react_1 = require("react");
5
- const header_bar_pure_1 = require("../components/header-bar.pure");
6
- function useClock() {
7
- const [time, setTime] = (0, react_1.useState)(() => (0, header_bar_pure_1.formatTime)(new Date()));
8
- (0, react_1.useEffect)(() => {
9
- const interval = setInterval(() => {
10
- setTime((0, header_bar_pure_1.formatTime)(new Date()));
11
- }, 1000);
12
- return () => clearInterval(interval);
13
- }, []);
14
- return time;
15
- }
16
- //# sourceMappingURL=use-clock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-clock.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-clock.ts"],"names":[],"mappings":";;AAGA,4BAYC;AAfD,iCAA4C;AAC5C,mEAA2D;AAE3D,SAAgB,QAAQ;IACtB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAAC,IAAA,4BAAU,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAE/D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,OAAO,CAAC,IAAA,4BAAU,EAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC,EAAE,IAAI,CAAC,CAAC;QAET,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const react_1 = require("react");
4
- const vitest_1 = require("vitest");
5
- const ink_testing_library_1 = require("ink-testing-library");
6
- const ink_1 = require("ink");
7
- const use_clock_1 = require("./use-clock");
8
- function TestComponent() {
9
- const time = (0, use_clock_1.useClock)();
10
- return react_1.default.createElement(ink_1.Text, null, time);
11
- }
12
- (0, vitest_1.describe)('tui/hooks/useClock', () => {
13
- (0, vitest_1.beforeEach)(() => {
14
- vitest_1.vi.useFakeTimers();
15
- });
16
- (0, vitest_1.afterEach)(() => {
17
- vitest_1.vi.useRealTimers();
18
- });
19
- (0, vitest_1.it)('should return initial formatted time', () => {
20
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 30, 0));
21
- const { lastFrame } = (0, ink_testing_library_1.render)(react_1.default.createElement(TestComponent, null));
22
- (0, vitest_1.expect)(lastFrame()).toBe('14:30');
23
- });
24
- (0, vitest_1.it)('should update time every second', () => {
25
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 30, 0));
26
- const { lastFrame } = (0, ink_testing_library_1.render)(react_1.default.createElement(TestComponent, null));
27
- (0, vitest_1.expect)(lastFrame()).toBe('14:30');
28
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 31, 0));
29
- (0, react_1.act)(() => {
30
- vitest_1.vi.advanceTimersByTime(1000);
31
- });
32
- (0, vitest_1.expect)(lastFrame()).toBe('14:31');
33
- });
34
- (0, vitest_1.it)('should cleanup interval on unmount', () => {
35
- vitest_1.vi.setSystemTime(new Date(2026, 0, 1, 14, 30, 0));
36
- const clearIntervalSpy = vitest_1.vi.spyOn(global, 'clearInterval');
37
- const { unmount } = (0, ink_testing_library_1.render)(react_1.default.createElement(TestComponent, null));
38
- unmount();
39
- (0, vitest_1.expect)(clearIntervalSpy).toHaveBeenCalled();
40
- clearIntervalSpy.mockRestore();
41
- });
42
- });
43
- //# sourceMappingURL=use-clock.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-clock.spec.js","sourceRoot":"","sources":["../../../../src/tui/hooks/use-clock.spec.tsx"],"names":[],"mappings":";;AAAA,iCAAmC;AACnC,mCAAyE;AACzE,6DAA6C;AAC7C,6BAA2B;AAE3B,2CAAuC;AAEvC,SAAS,aAAa;IACpB,MAAM,IAAI,GAAG,IAAA,oBAAQ,GAAE,CAAC;IACxB,OAAO,8BAAC,UAAI,QAAE,IAAI,CAAQ,CAAC;AAC7B,CAAC;AAED,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAA,mBAAU,EAAC,GAAG,EAAE;QACd,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAA,kBAAS,EAAC,GAAG,EAAE;QACb,WAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,4BAAM,EAAC,8BAAC,aAAa,OAAG,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,4BAAM,EAAC,8BAAC,aAAa,OAAG,CAAC,CAAC;QAChD,IAAA,eAAM,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,IAAA,WAAG,EAAC,GAAG,EAAE;YACP,WAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAA,eAAM,EAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,IAAA,WAAE,EAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,WAAE,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG,WAAE,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,4BAAM,EAAC,8BAAC,aAAa,OAAG,CAAC,CAAC;QAE9C,OAAO,EAAE,CAAC;QACV,IAAA,eAAM,EAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC5C,gBAAgB,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}