codingbuddy 5.1.2 → 5.2.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 (136) hide show
  1. package/README.md +9 -0
  2. package/dist/src/app.module.js +2 -0
  3. package/dist/src/app.module.js.map +1 -1
  4. package/dist/src/cli/cli.d.ts +3 -3
  5. package/dist/src/cli/cli.js +118 -1
  6. package/dist/src/cli/cli.js.map +1 -1
  7. package/dist/src/cli/cli.types.d.ts +14 -0
  8. package/dist/src/cli/init/init.constants.js +0 -1
  9. package/dist/src/cli/init/init.constants.js.map +1 -1
  10. package/dist/src/cli/plugin/install.command.d.ts +10 -0
  11. package/dist/src/cli/plugin/install.command.js +31 -0
  12. package/dist/src/cli/plugin/install.command.js.map +1 -0
  13. package/dist/src/cli/plugin/plugins.command.d.ts +9 -0
  14. package/dist/src/cli/plugin/plugins.command.js +51 -0
  15. package/dist/src/cli/plugin/plugins.command.js.map +1 -0
  16. package/dist/src/cli/plugin/search.command.d.ts +9 -0
  17. package/dist/src/cli/plugin/search.command.js +53 -0
  18. package/dist/src/cli/plugin/search.command.js.map +1 -0
  19. package/dist/src/cli/plugin/uninstall.command.d.ts +12 -0
  20. package/dist/src/cli/plugin/uninstall.command.js +79 -0
  21. package/dist/src/cli/plugin/uninstall.command.js.map +1 -0
  22. package/dist/src/cli/plugin/update.command.d.ts +11 -0
  23. package/dist/src/cli/plugin/update.command.js +103 -0
  24. package/dist/src/cli/plugin/update.command.js.map +1 -0
  25. package/dist/src/cli/run-tui.js +16 -0
  26. package/dist/src/cli/run-tui.js.map +1 -1
  27. package/dist/src/context/briefing-loader.service.d.ts +27 -0
  28. package/dist/src/context/briefing-loader.service.js +124 -0
  29. package/dist/src/context/briefing-loader.service.js.map +1 -0
  30. package/dist/src/context/briefing.service.d.ts +27 -0
  31. package/dist/src/context/briefing.service.js +181 -0
  32. package/dist/src/context/briefing.service.js.map +1 -0
  33. package/dist/src/context/briefing.types.d.ts +13 -0
  34. package/dist/src/context/briefing.types.js +6 -0
  35. package/dist/src/context/briefing.types.js.map +1 -0
  36. package/dist/src/context/context.module.js +16 -2
  37. package/dist/src/context/context.module.js.map +1 -1
  38. package/dist/src/context/index.d.ts +2 -0
  39. package/dist/src/context/index.js +2 -0
  40. package/dist/src/context/index.js.map +1 -1
  41. package/dist/src/main.js +0 -17
  42. package/dist/src/main.js.map +1 -1
  43. package/dist/src/mcp/handlers/briefing.handler.d.ts +12 -0
  44. package/dist/src/mcp/handlers/briefing.handler.js +71 -0
  45. package/dist/src/mcp/handlers/briefing.handler.js.map +1 -0
  46. package/dist/src/mcp/handlers/index.d.ts +4 -0
  47. package/dist/src/mcp/handlers/index.js +9 -1
  48. package/dist/src/mcp/handlers/index.js.map +1 -1
  49. package/dist/src/mcp/handlers/quality-report.handler.d.ts +12 -0
  50. package/dist/src/mcp/handlers/quality-report.handler.js +75 -0
  51. package/dist/src/mcp/handlers/quality-report.handler.js.map +1 -0
  52. package/dist/src/mcp/handlers/resume.handler.d.ts +12 -0
  53. package/dist/src/mcp/handlers/resume.handler.js +63 -0
  54. package/dist/src/mcp/handlers/resume.handler.js.map +1 -0
  55. package/dist/src/mcp/handlers/rule-impact.handler.d.ts +23 -0
  56. package/dist/src/mcp/handlers/rule-impact.handler.js +241 -0
  57. package/dist/src/mcp/handlers/rule-impact.handler.js.map +1 -0
  58. package/dist/src/mcp/handlers/skill.handler.js +2 -2
  59. package/dist/src/mcp/handlers/skill.handler.js.map +1 -1
  60. package/dist/src/mcp/mcp.module.js +6 -0
  61. package/dist/src/mcp/mcp.module.js.map +1 -1
  62. package/dist/src/plugin/plugin-installer.service.d.ts +41 -0
  63. package/dist/src/plugin/plugin-installer.service.js +183 -0
  64. package/dist/src/plugin/plugin-installer.service.js.map +1 -0
  65. package/dist/src/plugin/plugin-manifest.schema.d.ts +21 -0
  66. package/dist/src/plugin/plugin-manifest.schema.js +45 -0
  67. package/dist/src/plugin/plugin-manifest.schema.js.map +1 -0
  68. package/dist/src/plugin/plugin.module.d.ts +2 -0
  69. package/dist/src/plugin/plugin.module.js +17 -0
  70. package/dist/src/plugin/plugin.module.js.map +1 -0
  71. package/dist/src/plugin/plugin.types.d.ts +7 -0
  72. package/dist/src/plugin/plugin.types.js +3 -0
  73. package/dist/src/plugin/plugin.types.js.map +1 -0
  74. package/dist/src/plugin/registry-client.d.ts +24 -0
  75. package/dist/src/plugin/registry-client.js +45 -0
  76. package/dist/src/plugin/registry-client.js.map +1 -0
  77. package/dist/src/rules/rule-event-collector.d.ts +7 -0
  78. package/dist/src/rules/rule-event-collector.js +38 -0
  79. package/dist/src/rules/rule-event-collector.js.map +1 -0
  80. package/dist/src/rules/rule-event.types.d.ts +9 -0
  81. package/dist/src/rules/rule-event.types.js +10 -0
  82. package/dist/src/rules/rule-event.types.js.map +1 -0
  83. package/dist/src/rules/rule-stats-writer.d.ts +23 -0
  84. package/dist/src/rules/rule-stats-writer.js +138 -0
  85. package/dist/src/rules/rule-stats-writer.js.map +1 -0
  86. package/dist/src/rules/rules.module.js +4 -2
  87. package/dist/src/rules/rules.module.js.map +1 -1
  88. package/dist/src/rules/rules.service.d.ts +2 -1
  89. package/dist/src/rules/rules.service.js.map +1 -1
  90. package/dist/src/rules/skill.schema.d.ts +5 -0
  91. package/dist/src/rules/skill.schema.js +6 -0
  92. package/dist/src/rules/skill.schema.js.map +1 -1
  93. package/dist/src/shared/rules-core.d.ts +2 -1
  94. package/dist/src/shared/rules-core.js +1 -0
  95. package/dist/src/shared/rules-core.js.map +1 -1
  96. package/dist/src/shared/version.d.ts +1 -1
  97. package/dist/src/shared/version.js +1 -1
  98. package/dist/src/ship/file-specialist-mapper.d.ts +9 -0
  99. package/dist/src/ship/file-specialist-mapper.js +56 -0
  100. package/dist/src/ship/file-specialist-mapper.js.map +1 -0
  101. package/dist/src/ship/quality-report.service.d.ts +6 -0
  102. package/dist/src/ship/quality-report.service.js +56 -0
  103. package/dist/src/ship/quality-report.service.js.map +1 -0
  104. package/dist/src/ship/quality-report.types.d.ts +20 -0
  105. package/dist/src/ship/quality-report.types.js +3 -0
  106. package/dist/src/ship/quality-report.types.js.map +1 -0
  107. package/dist/src/ship/ship.module.d.ts +2 -0
  108. package/dist/src/ship/ship.module.js +21 -0
  109. package/dist/src/ship/ship.module.js.map +1 -0
  110. package/dist/src/skill/skill-recommendation.service.d.ts +9 -2
  111. package/dist/src/skill/skill-recommendation.service.js +94 -16
  112. package/dist/src/skill/skill-recommendation.service.js.map +1 -1
  113. package/dist/src/skill/skill.module.js +2 -0
  114. package/dist/src/skill/skill.module.js.map +1 -1
  115. package/dist/src/tui/__perf__/memory-stability.spec.js +6 -6
  116. package/dist/src/tui/__perf__/memory-stability.spec.js.map +1 -1
  117. package/dist/src/tui/__perf__/rendering-performance.spec.js +5 -8
  118. package/dist/src/tui/__perf__/rendering-performance.spec.js.map +1 -1
  119. package/dist/src/tui/dashboard-app.spec.js +15 -15
  120. package/dist/src/tui/dashboard-app.spec.js.map +1 -1
  121. package/dist/src/tui/eventbus-ui.integration.spec.js +45 -45
  122. package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
  123. package/dist/src/tui/events/hud-file-bridge.d.ts +21 -0
  124. package/dist/src/tui/events/hud-file-bridge.js +112 -0
  125. package/dist/src/tui/events/hud-file-bridge.js.map +1 -0
  126. package/dist/src/tui/events/index.d.ts +1 -0
  127. package/dist/src/tui/events/index.js +3 -1
  128. package/dist/src/tui/events/index.js.map +1 -1
  129. package/dist/src/tui/testing/tui-test-utils.d.ts +2 -0
  130. package/dist/src/tui/testing/tui-test-utils.js +25 -0
  131. package/dist/src/tui/testing/tui-test-utils.js.map +1 -0
  132. package/dist/src/tui/transport-tui.integration.spec.js +8 -8
  133. package/dist/src/tui/transport-tui.integration.spec.js.map +1 -1
  134. package/dist/src/tui-bundle.mjs +226 -61
  135. package/dist/tsconfig.build.tsbuildinfo +1 -1
  136. package/package.json +2 -2
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.PluginModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ let PluginModule = class PluginModule {
12
+ };
13
+ exports.PluginModule = PluginModule;
14
+ exports.PluginModule = PluginModule = __decorate([
15
+ (0, common_1.Module)({})
16
+ ], PluginModule);
17
+ //# sourceMappingURL=plugin.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.module.js","sourceRoot":"","sources":["../../../src/plugin/plugin.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AAKjC,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IADxB,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,YAAY,CAAG"}
@@ -0,0 +1,7 @@
1
+ export interface PluginProvides {
2
+ agents?: string[];
3
+ rules?: string[];
4
+ skills?: string[];
5
+ checklists?: string[];
6
+ }
7
+ export type { PluginManifest } from './plugin-manifest.schema';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=plugin.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.types.js","sourceRoot":"","sources":["../../../src/plugin/plugin.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,24 @@
1
+ export interface RegistryPluginProvides {
2
+ agents?: string[];
3
+ rules?: string[];
4
+ skills?: string[];
5
+ checklists?: string[];
6
+ }
7
+ export interface RegistryPlugin {
8
+ name: string;
9
+ version: string;
10
+ description: string;
11
+ source: string;
12
+ tags: string[];
13
+ provides: RegistryPluginProvides;
14
+ }
15
+ export interface RegistryIndex {
16
+ plugins: RegistryPlugin[];
17
+ }
18
+ export declare class RegistryClient {
19
+ private cache;
20
+ private cacheTime;
21
+ fetchIndex(): Promise<RegistryIndex>;
22
+ findByName(name: string): Promise<RegistryPlugin | undefined>;
23
+ search(query: string): Promise<RegistryPlugin[]>;
24
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegistryClient = void 0;
4
+ const REGISTRY_URL = 'https://raw.githubusercontent.com/JeremyDev87/codingbuddy-registry/main/index.json';
5
+ const CACHE_TTL_MS = 5 * 60 * 1000;
6
+ class RegistryClient {
7
+ constructor() {
8
+ this.cache = null;
9
+ this.cacheTime = 0;
10
+ }
11
+ async fetchIndex() {
12
+ if (this.cache && Date.now() - this.cacheTime < CACHE_TTL_MS) {
13
+ return this.cache;
14
+ }
15
+ try {
16
+ const response = await fetch(REGISTRY_URL);
17
+ if (!response.ok) {
18
+ return { plugins: [] };
19
+ }
20
+ const data = (await response.json());
21
+ this.cache = data;
22
+ this.cacheTime = Date.now();
23
+ return data;
24
+ }
25
+ catch {
26
+ return { plugins: [] };
27
+ }
28
+ }
29
+ async findByName(name) {
30
+ const index = await this.fetchIndex();
31
+ return index.plugins.find(plugin => plugin.name === name);
32
+ }
33
+ async search(query) {
34
+ const index = await this.fetchIndex();
35
+ const lowerQuery = query.toLowerCase();
36
+ return index.plugins.filter(plugin => {
37
+ const nameMatch = plugin.name.toLowerCase().includes(lowerQuery);
38
+ const descMatch = plugin.description.toLowerCase().includes(lowerQuery);
39
+ const tagMatch = plugin.tags.some(tag => tag.toLowerCase().includes(lowerQuery));
40
+ return nameMatch || descMatch || tagMatch;
41
+ });
42
+ }
43
+ }
44
+ exports.RegistryClient = RegistryClient;
45
+ //# sourceMappingURL=registry-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry-client.js","sourceRoot":"","sources":["../../../src/plugin/registry-client.ts"],"names":[],"mappings":";;;AAOA,MAAM,YAAY,GAChB,oFAAoF,CAAC;AACvF,MAAM,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AA8BnC,MAAa,cAAc;IAA3B;QACU,UAAK,GAAyB,IAAI,CAAC;QACnC,cAAS,GAAG,CAAC,CAAC;IAqCxB,CAAC;IAnCC,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;YAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACzB,CAAC;YACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAkB,CAAC;YACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAEvC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACnC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;YACjF,OAAO,SAAS,IAAI,SAAS,IAAI,QAAQ,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAvCD,wCAuCC"}
@@ -0,0 +1,7 @@
1
+ import { RuleEvent } from './rule-event.types';
2
+ export declare class RuleEventCollector {
3
+ private events;
4
+ record(event: RuleEvent): void;
5
+ getEvents(): RuleEvent[];
6
+ flush(): RuleEvent[];
7
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RuleEventCollector = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const rule_event_types_1 = require("./rule-event.types");
12
+ let RuleEventCollector = class RuleEventCollector {
13
+ constructor() {
14
+ this.events = [];
15
+ }
16
+ record(event) {
17
+ if (!rule_event_types_1.RULE_EVENT_TYPES.includes(event.type)) {
18
+ throw new Error(`Invalid rule event type: ${event.type}`);
19
+ }
20
+ this.events.push({
21
+ ...event,
22
+ timestamp: event.timestamp ?? new Date().toISOString(),
23
+ });
24
+ }
25
+ getEvents() {
26
+ return [...this.events];
27
+ }
28
+ flush() {
29
+ const flushed = [...this.events];
30
+ this.events = [];
31
+ return flushed;
32
+ }
33
+ };
34
+ exports.RuleEventCollector = RuleEventCollector;
35
+ exports.RuleEventCollector = RuleEventCollector = __decorate([
36
+ (0, common_1.Injectable)()
37
+ ], RuleEventCollector);
38
+ //# sourceMappingURL=rule-event-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-event-collector.js","sourceRoot":"","sources":["../../../src/rules/rule-event-collector.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,yDAAiE;AAG1D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;QACG,WAAM,GAAgB,EAAE,CAAC;IAsBnC,CAAC;IApBC,MAAM,CAAC,KAAgB;QACrB,IAAI,CAAC,mCAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,4BAA4B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,GAAG,KAAK;YACR,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAA;AAvBY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAuB9B"}
@@ -0,0 +1,9 @@
1
+ export declare const RULE_EVENT_TYPES: readonly ["mode_activated", "checklist_generated", "specialist_dispatched", "violation_caught"];
2
+ export type RuleEventType = (typeof RULE_EVENT_TYPES)[number];
3
+ export interface RuleEvent {
4
+ type: RuleEventType;
5
+ timestamp: string;
6
+ domain?: string;
7
+ rule?: string;
8
+ details?: Record<string, unknown>;
9
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RULE_EVENT_TYPES = void 0;
4
+ exports.RULE_EVENT_TYPES = [
5
+ 'mode_activated',
6
+ 'checklist_generated',
7
+ 'specialist_dispatched',
8
+ 'violation_caught',
9
+ ];
10
+ //# sourceMappingURL=rule-event.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-event.types.js","sourceRoot":"","sources":["../../../src/rules/rule-event.types.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;IAC9B,gBAAgB;IAChB,qBAAqB;IACrB,uBAAuB;IACvB,kBAAkB;CACV,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { RuleEventCollector } from './rule-event-collector';
2
+ export declare const STATS_FILE_PATH: unique symbol;
3
+ export interface RuleStatsEntry {
4
+ applied: number;
5
+ sessions: number;
6
+ }
7
+ export interface DomainStatsEntry {
8
+ checks: number;
9
+ issues_prevented: number;
10
+ }
11
+ export interface StatsFile {
12
+ lastUpdated: string;
13
+ rules: Record<string, RuleStatsEntry>;
14
+ domains: Record<string, DomainStatsEntry>;
15
+ }
16
+ export declare class RuleStatsWriter {
17
+ private readonly collector;
18
+ private readonly statsPath;
19
+ constructor(collector: RuleEventCollector, statsPath?: string);
20
+ flush(): Promise<void>;
21
+ private readExistingStats;
22
+ private atomicWrite;
23
+ }
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.RuleStatsWriter = exports.STATS_FILE_PATH = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const promises_1 = require("fs/promises");
18
+ const fs_1 = require("fs");
19
+ const path_1 = require("path");
20
+ const rule_event_collector_1 = require("./rule-event-collector");
21
+ exports.STATS_FILE_PATH = Symbol('STATS_FILE_PATH');
22
+ const DEFAULT_STATS_RELATIVE_PATH = 'docs/codingbuddy/rule-stats.json';
23
+ function createEmptyStats() {
24
+ return {
25
+ lastUpdated: new Date().toISOString(),
26
+ rules: {},
27
+ domains: {},
28
+ };
29
+ }
30
+ function aggregateEvents(events) {
31
+ const stats = createEmptyStats();
32
+ for (const event of events) {
33
+ switch (event.type) {
34
+ case 'mode_activated': {
35
+ if (!event.rule)
36
+ break;
37
+ if (!stats.rules[event.rule]) {
38
+ stats.rules[event.rule] = { applied: 0, sessions: 0 };
39
+ }
40
+ stats.rules[event.rule].applied += 1;
41
+ stats.rules[event.rule].sessions += 1;
42
+ break;
43
+ }
44
+ case 'checklist_generated':
45
+ case 'specialist_dispatched': {
46
+ if (!event.domain)
47
+ break;
48
+ if (!stats.domains[event.domain]) {
49
+ stats.domains[event.domain] = { checks: 0, issues_prevented: 0 };
50
+ }
51
+ stats.domains[event.domain].checks += 1;
52
+ break;
53
+ }
54
+ case 'violation_caught': {
55
+ if (!event.domain)
56
+ break;
57
+ if (!stats.domains[event.domain]) {
58
+ stats.domains[event.domain] = { checks: 0, issues_prevented: 0 };
59
+ }
60
+ stats.domains[event.domain].issues_prevented += 1;
61
+ break;
62
+ }
63
+ }
64
+ }
65
+ return stats;
66
+ }
67
+ function mergeStats(existing, incoming) {
68
+ const merged = {
69
+ lastUpdated: new Date().toISOString(),
70
+ rules: { ...existing.rules },
71
+ domains: { ...existing.domains },
72
+ };
73
+ for (const [name, entry] of Object.entries(incoming.rules)) {
74
+ if (merged.rules[name]) {
75
+ merged.rules[name] = {
76
+ applied: merged.rules[name].applied + entry.applied,
77
+ sessions: merged.rules[name].sessions + entry.sessions,
78
+ };
79
+ }
80
+ else {
81
+ merged.rules[name] = { ...entry };
82
+ }
83
+ }
84
+ for (const [name, entry] of Object.entries(incoming.domains)) {
85
+ if (merged.domains[name]) {
86
+ merged.domains[name] = {
87
+ checks: merged.domains[name].checks + entry.checks,
88
+ issues_prevented: merged.domains[name].issues_prevented + entry.issues_prevented,
89
+ };
90
+ }
91
+ else {
92
+ merged.domains[name] = { ...entry };
93
+ }
94
+ }
95
+ return merged;
96
+ }
97
+ let RuleStatsWriter = class RuleStatsWriter {
98
+ constructor(collector, statsPath) {
99
+ this.collector = collector;
100
+ this.statsPath = statsPath ?? (0, path_1.join)(process.cwd(), DEFAULT_STATS_RELATIVE_PATH);
101
+ }
102
+ async flush() {
103
+ const events = this.collector.flush();
104
+ if (events.length === 0) {
105
+ return;
106
+ }
107
+ const incoming = aggregateEvents(events);
108
+ const existing = await this.readExistingStats();
109
+ const merged = existing ? mergeStats(existing, incoming) : incoming;
110
+ await this.atomicWrite(merged);
111
+ }
112
+ async readExistingStats() {
113
+ try {
114
+ const raw = await (0, promises_1.readFile)(this.statsPath, 'utf-8');
115
+ return JSON.parse(raw);
116
+ }
117
+ catch {
118
+ return null;
119
+ }
120
+ }
121
+ async atomicWrite(stats) {
122
+ const dir = (0, path_1.dirname)(this.statsPath);
123
+ if (!(0, fs_1.existsSync)(dir)) {
124
+ await (0, promises_1.mkdir)(dir, { recursive: true });
125
+ }
126
+ const tmpPath = this.statsPath + '.tmp';
127
+ await (0, promises_1.writeFile)(tmpPath, JSON.stringify(stats, null, 2), 'utf-8');
128
+ await (0, promises_1.rename)(tmpPath, this.statsPath);
129
+ }
130
+ };
131
+ exports.RuleStatsWriter = RuleStatsWriter;
132
+ exports.RuleStatsWriter = RuleStatsWriter = __decorate([
133
+ (0, common_1.Injectable)(),
134
+ __param(1, (0, common_1.Optional)()),
135
+ __param(1, (0, common_1.Inject)(exports.STATS_FILE_PATH)),
136
+ __metadata("design:paramtypes", [rule_event_collector_1.RuleEventCollector, String])
137
+ ], RuleStatsWriter);
138
+ //# sourceMappingURL=rule-stats-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-stats-writer.js","sourceRoot":"","sources":["../../../src/rules/rule-stats-writer.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@ exports.RulesModule = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const rules_service_1 = require("./rules.service");
12
12
  const rule_insights_service_1 = require("./rule-insights.service");
13
+ const rule_event_collector_1 = require("./rule-event-collector");
14
+ const rule_stats_writer_1 = require("./rule-stats-writer");
13
15
  const custom_1 = require("../custom");
14
16
  const config_module_1 = require("../config/config.module");
15
17
  let RulesModule = class RulesModule {
@@ -18,8 +20,8 @@ exports.RulesModule = RulesModule;
18
20
  exports.RulesModule = RulesModule = __decorate([
19
21
  (0, common_1.Module)({
20
22
  imports: [custom_1.CustomModule, config_module_1.CodingBuddyConfigModule],
21
- providers: [rules_service_1.RulesService, rule_insights_service_1.RuleInsightsService],
22
- exports: [rules_service_1.RulesService, rule_insights_service_1.RuleInsightsService],
23
+ providers: [rules_service_1.RulesService, rule_insights_service_1.RuleInsightsService, rule_event_collector_1.RuleEventCollector, rule_stats_writer_1.RuleStatsWriter],
24
+ exports: [rules_service_1.RulesService, rule_insights_service_1.RuleInsightsService, rule_event_collector_1.RuleEventCollector, rule_stats_writer_1.RuleStatsWriter],
23
25
  })
24
26
  ], RulesModule);
25
27
  //# sourceMappingURL=rules.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.module.js","sourceRoot":"","sources":["../../../src/rules/rules.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAA+C;AAC/C,mEAA8D;AAC9D,sCAAyC;AACzC,2DAAkE;AAO3D,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,EAAE,uCAAuB,CAAC;QAChD,SAAS,EAAE,CAAC,4BAAY,EAAE,2CAAmB,CAAC;QAC9C,OAAO,EAAE,CAAC,4BAAY,EAAE,2CAAmB,CAAC;KAC7C,CAAC;GACW,WAAW,CAAG"}
1
+ {"version":3,"file":"rules.module.js","sourceRoot":"","sources":["../../../src/rules/rules.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,mDAA+C;AAC/C,mEAA8D;AAC9D,iEAA4D;AAC5D,2DAAsD;AACtD,sCAAyC;AACzC,2DAAkE;AAO3D,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IALvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,EAAE,uCAAuB,CAAC;QAChD,SAAS,EAAE,CAAC,4BAAY,EAAE,2CAAmB,EAAE,yCAAkB,EAAE,mCAAe,CAAC;QACnF,OAAO,EAAE,CAAC,4BAAY,EAAE,2CAAmB,EAAE,yCAAkB,EAAE,mCAAe,CAAC;KAClF,CAAC;GACW,WAAW,CAAG"}
@@ -1,5 +1,5 @@
1
1
  import { AgentProfile, SearchResult } from './rules.types';
2
- import type { Skill } from './skill.schema';
2
+ import type { Skill, SkillFrontmatterTrigger } from './skill.schema';
3
3
  import { CustomService } from '../custom';
4
4
  import { ConfigService } from '../config/config.service';
5
5
  export declare class RulesService {
@@ -17,6 +17,7 @@ export declare class RulesService {
17
17
  listSkillsFromDir(): Promise<Array<{
18
18
  name: string;
19
19
  description: string;
20
+ triggers?: SkillFrontmatterTrigger[];
20
21
  }>>;
21
22
  getSkill(name: string): Promise<Skill>;
22
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.service.js","sourceRoot":"","sources":["../../../src/rules/rules.service.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,15 @@ export declare class SkillSchemaError extends Error {
3
3
  readonly details?: z.ZodError | undefined;
4
4
  constructor(message: string, details?: z.ZodError | undefined);
5
5
  }
6
+ export interface SkillFrontmatterTrigger {
7
+ pattern: string;
8
+ confidence: 'high' | 'medium' | 'low';
9
+ }
6
10
  export interface Skill {
7
11
  name: string;
8
12
  description: string;
9
13
  content: string;
10
14
  path: string;
15
+ triggers?: SkillFrontmatterTrigger[];
11
16
  }
12
17
  export declare function parseSkill(content: string, filePath: string): Skill;
@@ -13,12 +13,17 @@ class SkillSchemaError extends Error {
13
13
  }
14
14
  }
15
15
  exports.SkillSchemaError = SkillSchemaError;
16
+ const SkillFrontmatterTriggerSchema = z.object({
17
+ pattern: z.string().min(1),
18
+ confidence: z.enum(['high', 'medium', 'low']),
19
+ });
16
20
  const SkillFrontmatterSchema = z.object({
17
21
  name: z
18
22
  .string()
19
23
  .min(1)
20
24
  .regex(/^[a-z0-9-]+$/, 'Skill name must be lowercase alphanumeric with hyphens only'),
21
25
  description: z.string().min(1).max(500),
26
+ triggers: z.array(SkillFrontmatterTriggerSchema).optional(),
22
27
  });
23
28
  const FRONTMATTER_REGEX = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/;
24
29
  function parseFrontmatter(content) {
@@ -59,6 +64,7 @@ function parseSkill(content, filePath) {
59
64
  description: result.data.description,
60
65
  content: body,
61
66
  path: filePath,
67
+ triggers: result.data.triggers,
62
68
  };
63
69
  }
64
70
  //# sourceMappingURL=skill.schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.schema.js","sourceRoot":"","sources":["../../../src/rules/skill.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.schema.js","sourceRoot":"","sources":["../../../src/rules/skill.schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { AgentProfile, SearchResult } from '../rules/rules.types';
2
- import type { Skill } from '../rules/skill.schema';
2
+ import type { Skill, SkillFrontmatterTrigger } from '../rules/skill.schema';
3
3
  interface ResolveRulesDirOptions {
4
4
  envRulesDir?: string;
5
5
  packageRulesPath?: string;
@@ -23,6 +23,7 @@ export declare function searchInRuleFiles(rulesDir: string, query: string, files
23
23
  export declare function listSkillSummaries(rulesDir: string, deps?: FileSystemDeps): Promise<Array<{
24
24
  name: string;
25
25
  description: string;
26
+ triggers?: SkillFrontmatterTrigger[];
26
27
  }>>;
27
28
  export declare function loadSkill(rulesDir: string, name: string, deps?: FileSystemDeps): Promise<Skill>;
28
29
  export {};
@@ -132,6 +132,7 @@ async function listSkillSummaries(rulesDir, deps) {
132
132
  summaries.push({
133
133
  name: skill.name,
134
134
  description: skill.description,
135
+ triggers: skill.triggers,
135
136
  });
136
137
  }
137
138
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"rules-core.js","sourceRoot":"","sources":["../../../src/shared/rules-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules-core.js","sourceRoot":"","sources":["../../../src/shared/rules-core.ts"],"names":[],"mappings":";;AAkFA,0CA8BC;AAYD,0CAiBC;AASD,wCAUC;AAYD,4CAiBC;AAYD,8CAgCC;AAUD,gDAuCC;AAcD,8BA6BC;AA9TD,6BAA6B;AAC7B,qDAA8C;AAC9C,wDAA4E;AAC5E,wDAAqE;AA+BrE,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,QAAgB;IAC/D,MAAM,QAAQ,GAAG,2CAAa,aAAa,EAAC,CAAC;IAC7C,OAAO,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAA0B,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,cAAc,CAC3B,OAAe,EACf,OAAqC;IAErC,MAAM,QAAQ,GAAG,2CAAa,aAAa,EAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,aAAa,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,OAAkC,CAAC;IAC5C,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,IAAqB;IACxC,OAAO,IAAI,EAAE,QAAQ,IAAI,eAAe,CAAC;AAC3C,CAAC;AAED,SAAS,UAAU,CACjB,IAAqB;IAErB,OAAO,IAAI,EAAE,OAAO,IAAI,cAAc,CAAC;AACzC,CAAC;AAgBD,SAAgB,eAAe,CAAC,OAAe,EAAE,OAAgC;IAE/E,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC,WAAW,CAAC;IAC7B,CAAC;IAGD,IAAI,OAAO,EAAE,gBAAgB,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,gBAAgB,CAAC;IAClC,CAAC;IAGD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,sCAAsC,CAAC;QAC7D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,mCAAmC,CAAC;QAC1D,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,oBAAoB,CAAC;KAC5C,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,CAAC;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAGD,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAYM,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,YAAoB,EACpB,IAAqB;IAErB,IAAI,CAAC,IAAA,2BAAU,EAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AASM,KAAK,UAAU,cAAc,CAAC,QAAgB,EAAE,IAAqB;IAC1E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAEjC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;QACvC,OAAQ,KAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAYM,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,IAAY,EACZ,IAAqB;IAErB,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,UAAU,IAAI,OAAO,EAAE,IAAI,CAAC,CAAC;IAE7E,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAA,gCAAiB,EAAC,MAAM,CAAC,CAAC;QAC5C,OAAO,SAAyB,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,+BAAgB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAYM,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,KAAa,EACb,KAAe,EACf,IAAqB;IAErB,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAC5D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAClD,KAAK,EAAE,CAAC;gBACV,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAUM,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,IAAqB;IAErB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,SAAS,GAIV,EAAE,CAAC;IAER,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC,SAAS,EAAE;YACxC,aAAa,EAAE,IAAI;SACpB,CAAC,CAAiB,CAAC;QAEpB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAC/D,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACnD,MAAM,KAAK,GAAG,IAAA,yBAAU,EAAC,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC;oBACnE,SAAS,CAAC,IAAI,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,WAAW,EAAE,KAAK,CAAC,WAAW;wBAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;qBACzB,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;IAET,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAcM,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,IAAY,EACZ,IAAqB;IAGrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,IAAI,WAAW,CAAC;IAG5C,IAAI,CAAC,IAAA,2BAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAA,yBAAU,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,+BAAgB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- export declare const VERSION = "5.1.2";
1
+ export declare const VERSION = "5.2.0";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '5.1.2';
4
+ exports.VERSION = '5.2.0';
5
5
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,9 @@
1
+ interface MappedSpecialist {
2
+ specialist: string;
3
+ domain: string;
4
+ }
5
+ export declare class FileSpecialistMapper {
6
+ mapFile(filePath: string): MappedSpecialist[];
7
+ mapFiles(filePaths: string[]): MappedSpecialist[];
8
+ }
9
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileSpecialistMapper = void 0;
4
+ const MAPPINGS = [
5
+ {
6
+ pattern: /\.(ts|tsx)$/,
7
+ specialist: 'code-quality-specialist',
8
+ domain: 'code-quality',
9
+ },
10
+ {
11
+ pattern: /(auth|security|crypto|password|token|jwt)/i,
12
+ specialist: 'security-specialist',
13
+ domain: 'security',
14
+ },
15
+ {
16
+ pattern: /\.tsx$/,
17
+ specialist: 'accessibility-specialist',
18
+ domain: 'accessibility',
19
+ },
20
+ {
21
+ pattern: /(package\.json|webpack|vite|bundle)/i,
22
+ specialist: 'performance-specialist',
23
+ domain: 'performance',
24
+ },
25
+ ];
26
+ class FileSpecialistMapper {
27
+ mapFile(filePath) {
28
+ const matched = [];
29
+ const seen = new Set();
30
+ for (const mapping of MAPPINGS) {
31
+ if (mapping.pattern.test(filePath) && !seen.has(mapping.domain)) {
32
+ seen.add(mapping.domain);
33
+ matched.push({
34
+ specialist: mapping.specialist,
35
+ domain: mapping.domain,
36
+ });
37
+ }
38
+ }
39
+ return matched;
40
+ }
41
+ mapFiles(filePaths) {
42
+ const seen = new Set();
43
+ const result = [];
44
+ for (const filePath of filePaths) {
45
+ for (const mapped of this.mapFile(filePath)) {
46
+ if (!seen.has(mapped.domain)) {
47
+ seen.add(mapped.domain);
48
+ result.push(mapped);
49
+ }
50
+ }
51
+ }
52
+ return result;
53
+ }
54
+ }
55
+ exports.FileSpecialistMapper = FileSpecialistMapper;
56
+ //# sourceMappingURL=file-specialist-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-specialist-mapper.js","sourceRoot":"","sources":["../../../src/ship/file-specialist-mapper.ts"],"names":[],"mappings":";;;AAEA,MAAM,QAAQ,GAA4B;IACxC;QACE,OAAO,EAAE,aAAa;QACtB,UAAU,EAAE,yBAAyB;QACrC,MAAM,EAAE,cAAc;KACvB;IACD;QACE,OAAO,EAAE,4CAA4C;QACrD,UAAU,EAAE,qBAAqB;QACjC,MAAM,EAAE,UAAU;KACnB;IACD;QACE,OAAO,EAAE,QAAQ;QACjB,UAAU,EAAE,0BAA0B;QACtC,MAAM,EAAE,eAAe;KACxB;IACD;QACE,OAAO,EAAE,sCAAsC;QAC/C,UAAU,EAAE,wBAAwB;QACpC,MAAM,EAAE,aAAa;KACtB;CACF,CAAC;AAOF,MAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAgB;QACtB,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,QAAQ,CAAC,SAAmB;QAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAuB,EAAE,CAAC;QAEtC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAjCD,oDAiCC"}