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.
- package/README.md +9 -0
- package/dist/src/app.module.js +2 -0
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/cli/cli.d.ts +3 -3
- package/dist/src/cli/cli.js +118 -1
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/cli.types.d.ts +14 -0
- package/dist/src/cli/init/init.constants.js +0 -1
- package/dist/src/cli/init/init.constants.js.map +1 -1
- package/dist/src/cli/plugin/install.command.d.ts +10 -0
- package/dist/src/cli/plugin/install.command.js +31 -0
- package/dist/src/cli/plugin/install.command.js.map +1 -0
- package/dist/src/cli/plugin/plugins.command.d.ts +9 -0
- package/dist/src/cli/plugin/plugins.command.js +51 -0
- package/dist/src/cli/plugin/plugins.command.js.map +1 -0
- package/dist/src/cli/plugin/search.command.d.ts +9 -0
- package/dist/src/cli/plugin/search.command.js +53 -0
- package/dist/src/cli/plugin/search.command.js.map +1 -0
- package/dist/src/cli/plugin/uninstall.command.d.ts +12 -0
- package/dist/src/cli/plugin/uninstall.command.js +79 -0
- package/dist/src/cli/plugin/uninstall.command.js.map +1 -0
- package/dist/src/cli/plugin/update.command.d.ts +11 -0
- package/dist/src/cli/plugin/update.command.js +103 -0
- package/dist/src/cli/plugin/update.command.js.map +1 -0
- package/dist/src/cli/run-tui.js +16 -0
- package/dist/src/cli/run-tui.js.map +1 -1
- package/dist/src/context/briefing-loader.service.d.ts +27 -0
- package/dist/src/context/briefing-loader.service.js +124 -0
- package/dist/src/context/briefing-loader.service.js.map +1 -0
- package/dist/src/context/briefing.service.d.ts +27 -0
- package/dist/src/context/briefing.service.js +181 -0
- package/dist/src/context/briefing.service.js.map +1 -0
- package/dist/src/context/briefing.types.d.ts +13 -0
- package/dist/src/context/briefing.types.js +6 -0
- package/dist/src/context/briefing.types.js.map +1 -0
- package/dist/src/context/context.module.js +16 -2
- package/dist/src/context/context.module.js.map +1 -1
- package/dist/src/context/index.d.ts +2 -0
- package/dist/src/context/index.js +2 -0
- package/dist/src/context/index.js.map +1 -1
- package/dist/src/main.js +0 -17
- package/dist/src/main.js.map +1 -1
- package/dist/src/mcp/handlers/briefing.handler.d.ts +12 -0
- package/dist/src/mcp/handlers/briefing.handler.js +71 -0
- package/dist/src/mcp/handlers/briefing.handler.js.map +1 -0
- package/dist/src/mcp/handlers/index.d.ts +4 -0
- package/dist/src/mcp/handlers/index.js +9 -1
- package/dist/src/mcp/handlers/index.js.map +1 -1
- package/dist/src/mcp/handlers/quality-report.handler.d.ts +12 -0
- package/dist/src/mcp/handlers/quality-report.handler.js +75 -0
- package/dist/src/mcp/handlers/quality-report.handler.js.map +1 -0
- package/dist/src/mcp/handlers/resume.handler.d.ts +12 -0
- package/dist/src/mcp/handlers/resume.handler.js +63 -0
- package/dist/src/mcp/handlers/resume.handler.js.map +1 -0
- package/dist/src/mcp/handlers/rule-impact.handler.d.ts +23 -0
- package/dist/src/mcp/handlers/rule-impact.handler.js +241 -0
- package/dist/src/mcp/handlers/rule-impact.handler.js.map +1 -0
- package/dist/src/mcp/handlers/skill.handler.js +2 -2
- package/dist/src/mcp/handlers/skill.handler.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +6 -0
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/plugin/plugin-installer.service.d.ts +41 -0
- package/dist/src/plugin/plugin-installer.service.js +183 -0
- package/dist/src/plugin/plugin-installer.service.js.map +1 -0
- package/dist/src/plugin/plugin-manifest.schema.d.ts +21 -0
- package/dist/src/plugin/plugin-manifest.schema.js +45 -0
- package/dist/src/plugin/plugin-manifest.schema.js.map +1 -0
- package/dist/src/plugin/plugin.module.d.ts +2 -0
- package/dist/src/plugin/plugin.module.js +17 -0
- package/dist/src/plugin/plugin.module.js.map +1 -0
- package/dist/src/plugin/plugin.types.d.ts +7 -0
- package/dist/src/plugin/plugin.types.js +3 -0
- package/dist/src/plugin/plugin.types.js.map +1 -0
- package/dist/src/plugin/registry-client.d.ts +24 -0
- package/dist/src/plugin/registry-client.js +45 -0
- package/dist/src/plugin/registry-client.js.map +1 -0
- package/dist/src/rules/rule-event-collector.d.ts +7 -0
- package/dist/src/rules/rule-event-collector.js +38 -0
- package/dist/src/rules/rule-event-collector.js.map +1 -0
- package/dist/src/rules/rule-event.types.d.ts +9 -0
- package/dist/src/rules/rule-event.types.js +10 -0
- package/dist/src/rules/rule-event.types.js.map +1 -0
- package/dist/src/rules/rule-stats-writer.d.ts +23 -0
- package/dist/src/rules/rule-stats-writer.js +138 -0
- package/dist/src/rules/rule-stats-writer.js.map +1 -0
- package/dist/src/rules/rules.module.js +4 -2
- package/dist/src/rules/rules.module.js.map +1 -1
- package/dist/src/rules/rules.service.d.ts +2 -1
- package/dist/src/rules/rules.service.js.map +1 -1
- package/dist/src/rules/skill.schema.d.ts +5 -0
- package/dist/src/rules/skill.schema.js +6 -0
- package/dist/src/rules/skill.schema.js.map +1 -1
- package/dist/src/shared/rules-core.d.ts +2 -1
- package/dist/src/shared/rules-core.js +1 -0
- package/dist/src/shared/rules-core.js.map +1 -1
- package/dist/src/shared/version.d.ts +1 -1
- package/dist/src/shared/version.js +1 -1
- package/dist/src/ship/file-specialist-mapper.d.ts +9 -0
- package/dist/src/ship/file-specialist-mapper.js +56 -0
- package/dist/src/ship/file-specialist-mapper.js.map +1 -0
- package/dist/src/ship/quality-report.service.d.ts +6 -0
- package/dist/src/ship/quality-report.service.js +56 -0
- package/dist/src/ship/quality-report.service.js.map +1 -0
- package/dist/src/ship/quality-report.types.d.ts +20 -0
- package/dist/src/ship/quality-report.types.js +3 -0
- package/dist/src/ship/quality-report.types.js.map +1 -0
- package/dist/src/ship/ship.module.d.ts +2 -0
- package/dist/src/ship/ship.module.js +21 -0
- package/dist/src/ship/ship.module.js.map +1 -0
- package/dist/src/skill/skill-recommendation.service.d.ts +9 -2
- package/dist/src/skill/skill-recommendation.service.js +94 -16
- package/dist/src/skill/skill-recommendation.service.js.map +1 -1
- package/dist/src/skill/skill.module.js +2 -0
- package/dist/src/skill/skill.module.js.map +1 -1
- package/dist/src/tui/__perf__/memory-stability.spec.js +6 -6
- package/dist/src/tui/__perf__/memory-stability.spec.js.map +1 -1
- package/dist/src/tui/__perf__/rendering-performance.spec.js +5 -8
- package/dist/src/tui/__perf__/rendering-performance.spec.js.map +1 -1
- package/dist/src/tui/dashboard-app.spec.js +15 -15
- package/dist/src/tui/dashboard-app.spec.js.map +1 -1
- package/dist/src/tui/eventbus-ui.integration.spec.js +45 -45
- package/dist/src/tui/eventbus-ui.integration.spec.js.map +1 -1
- package/dist/src/tui/events/hud-file-bridge.d.ts +21 -0
- package/dist/src/tui/events/hud-file-bridge.js +112 -0
- package/dist/src/tui/events/hud-file-bridge.js.map +1 -0
- package/dist/src/tui/events/index.d.ts +1 -0
- package/dist/src/tui/events/index.js +3 -1
- package/dist/src/tui/events/index.js.map +1 -1
- package/dist/src/tui/testing/tui-test-utils.d.ts +2 -0
- package/dist/src/tui/testing/tui-test-utils.js +25 -0
- package/dist/src/tui/testing/tui-test-utils.js.map +1 -0
- package/dist/src/tui/transport-tui.integration.spec.js +8 -8
- package/dist/src/tui/transport-tui.integration.spec.js.map +1 -1
- package/dist/src/tui-bundle.mjs +226 -61
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/src/main.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.bootstrap = bootstrap;
|
|
5
|
-
const path = require("path");
|
|
6
5
|
const core_1 = require("@nestjs/core");
|
|
7
6
|
const app_module_1 = require("./app.module");
|
|
8
7
|
const mcp_service_1 = require("./mcp/mcp.service");
|
|
@@ -60,16 +59,6 @@ async function initTui(app, stdout) {
|
|
|
60
59
|
const eventBus = app.get(TuiEventBus);
|
|
61
60
|
return startTui({ eventBus, ...(stdout ? { stdout } : {}) });
|
|
62
61
|
}
|
|
63
|
-
async function launchAutoTui(ipcServer, tuiEnabled) {
|
|
64
|
-
const { TuiAutoLauncher } = await Promise.resolve().then(() => require('./tui/ipc'));
|
|
65
|
-
const codingbuddyBin = path.resolve(process.argv[1]);
|
|
66
|
-
const launcher = new TuiAutoLauncher({
|
|
67
|
-
enabled: tuiEnabled || process.env.CODINGBUDDY_AUTO_TUI === '1',
|
|
68
|
-
codingbuddyBin,
|
|
69
|
-
});
|
|
70
|
-
const result = await launcher.launch(ipcServer);
|
|
71
|
-
debugLog(`TUI auto-launch: ${result.reason}${result.pid ? ` (PID: ${result.pid})` : ''}`);
|
|
72
|
-
}
|
|
73
62
|
async function initIpc(app) {
|
|
74
63
|
const { ensureTuiReady } = await Promise.resolve().then(() => require('./tui/ensure-tui-ready'));
|
|
75
64
|
await ensureTuiReady(app);
|
|
@@ -156,9 +145,6 @@ async function bootstrap() {
|
|
|
156
145
|
try {
|
|
157
146
|
const ipcResult = await initIpc(app);
|
|
158
147
|
sseShutdownManager.register(ipcResult.cleanup);
|
|
159
|
-
launchAutoTui(ipcResult.ipcServer, tuiEnabled).catch(err => {
|
|
160
|
-
debugLog(`TUI auto-launch failed (non-blocking): ${err}`);
|
|
161
|
-
});
|
|
162
148
|
}
|
|
163
149
|
catch (error) {
|
|
164
150
|
logger.warn(`IPC server failed to start (non-blocking): ${error}`);
|
|
@@ -185,9 +171,6 @@ async function bootstrap() {
|
|
|
185
171
|
try {
|
|
186
172
|
const ipcResult = await initIpc(app);
|
|
187
173
|
shutdownManager.register(ipcResult.cleanup);
|
|
188
|
-
launchAutoTui(ipcResult.ipcServer, tuiEnabled).catch(err => {
|
|
189
|
-
debugLog(`TUI auto-launch failed (non-blocking): ${err}`);
|
|
190
|
-
});
|
|
191
174
|
}
|
|
192
175
|
catch (error) {
|
|
193
176
|
debugLog(`IPC server failed to start (non-blocking): ${error}`);
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";;;AAqLA,8BAkIC;AAtTD,uCAA2C;AAE3C,6CAAyC;AACzC,mDAA+C;AAC/C,+CAA6C;AAC7C,iDAAoD;AAMpD,SAAS,eAAe,CAAC,UAA8B;IACrD,IAAI,CAAC,UAAU,EAAE,CAAC;QAEhB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAE7B,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAGD,OAAO,UAAU,CAAC;AACpB,CAAC;AAMD,SAAS,QAAQ,CAAC,OAAe;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,EAAE,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,OAAO,IAAI,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,oDAAgD;AAGhD,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAMjC,SAAS,uBAAuB,CAC9B,OAA0C,EAC1C,SAAiB;IAEjB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,MAAM,YAAY,GAAG,GAAS,EAAE;QAC9B,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QACpB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,QAAQ,CAAC,2CAA2C,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO;aACJ,QAAQ,EAAE;aACV,IAAI,CAAC,GAAG,EAAE;YACT,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACxC,CAAC;AAYD,KAAK,UAAU,OAAO,CACpB,GAA4B,EAC5B,MAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,GAAG,2CAAa,wBAAwB,EAAC,CAAC;IAClE,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAE1B,MAAM,EAAE,WAAW,EAAE,GAAG,2CAAa,cAAc,EAAC,CAAC;IACrD,MAAM,EAAE,gBAAgB,EAAE,GAAG,2CAAa,0BAA0B,EAAC,CAAC;IACtE,MAAM,SAAS,GAAG,MAAM,IAAA,sBAAS,EAAC,gBAAgB,EAAE,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAGV,CAAC;IAClB,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,QAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAWD,KAAK,UAAU,OAAO,CAAC,GAA4B;IACjD,MAAM,EAAE,cAAc,EAAE,GAAG,2CAAa,wBAAwB,EAAC,CAAC;IAClE,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAE1B,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,2CAAa,cAAc,EAAC,CAAC;IACjE,MAAM,EACJ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,oBAAoB,GACrB,GAAG,2CAAa,WAAW,EAAC,CAAC;IAE9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAKtC,MAAM,UAAU,GAAG,IAAI,aAAa,CAAC;QACnC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAiD;QAC9E,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAiD;KACjF,CAAC,CAAC;IACH,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjD,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAChD,UAAU,CAAC,aAAa,CACtB,UAAU,CAAC,eAAe,EAC1B,UAAU,CAAC,iBAAiB,EAC5B,CAAC,CAAU,EAAE,EAAE,CAAE,CAAyB,CAAC,OAAO,CACnD,CAAC;IACF,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,gBAAgB,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;IACnF,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAGhD,MAAM,SAAS,GAAG,IAAI,YAAY,CAAC,UAAU,EAAE;QAC7C,eAAe,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE;KAChD,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;IAEzB,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAGrD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC9D,QAAQ,CAAC,KAAK,EAAE,CAAC;IACjB,QAAQ,CAAC,QAAQ,CAAC;QAChB,GAAG;QACH,UAAU;QACV,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,EAAE;QAClE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,UAAU,EAAE,CAAC,CAAC;IAGlD,OAAO;QACL,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,SAAS;KACV,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,SAAS;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC;IAC3D,MAAM,UAAU,GAAG,IAAA,sBAAU,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;QAE5B,MAAM,EAAE,MAAM,EAAE,GAAG,2CAAa,gBAAgB,EAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC5D,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,MAAM,CAAC,sBAAS,EAAE;YAC9C,IAAI,EAAE,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK;SAC5D,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC;QACtC,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAGvB,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;QAK7D,MAAM,EAAE,eAAe,EAAE,GAAG,2CAAa,WAAW,EAAC,CAAC;QACtD,MAAM,kBAAkB,GAAG,IAAI,eAAe,EAAE,CAAC;QAGjD,MAAM,SAAS,GAAG,IAAA,6BAAgB,EAAC;YACjC,aAAa,EAAE,KAAK;YACpB,UAAU;YACV,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK;SAC3C,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBACvC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;oBACrC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;oBACrD,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,8BAA8B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAChE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAGD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;QAGD,kBAAkB,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,wBAAwB,EAAC,CAAC;YACjE,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,kBAAkB,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YACrC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,uBAAuB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QAIN,QAAQ,CAAC,2BAA2B,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,wBAAwB,CAAC,sBAAS,EAAE;YAChE,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAU,CAAC,CAAC;QACvC,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;QAC9B,QAAQ,CAAC,gCAAgC,CAAC,CAAC;QAG3C,MAAM,EAAE,eAAe,EAAE,GAAG,2CAAa,WAAW,EAAC,CAAC;QACtD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAG9C,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,8CAA8C,KAAK,EAAE,CAAC,CAAC;QAClE,CAAC;QAGD,MAAM,SAAS,GAAG,IAAA,6BAAgB,EAAC;YACjC,aAAa,EAAE,OAAO;YACtB,UAAU;YACV,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK;SAC3C,CAAC,CAAC;QACH,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC1E,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAE/C,eAAe,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;oBAClC,QAAQ,CAAC,sCAAsC,CAAC,CAAC;oBACjD,WAAW,CAAC,OAAO,EAAE,CAAC;gBACxB,CAAC,CAAC,CAAC;gBACH,QAAQ,CAAC,8BAA8B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,sCAAsC,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;QAGD,eAAe,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,wBAAwB,EAAC,CAAC;YACjE,aAAa,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,eAAe,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE;YAClC,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,uBAAuB,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAGD,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ToolDefinition } from './base.handler';
|
|
2
|
+
import type { ToolResponse } from '../response.utils';
|
|
3
|
+
import { AbstractHandler } from './abstract-handler';
|
|
4
|
+
import { BriefingService } from '../../context/briefing.service';
|
|
5
|
+
export declare class BriefingHandler extends AbstractHandler {
|
|
6
|
+
private readonly briefingService;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(briefingService: BriefingService);
|
|
9
|
+
protected getHandledTools(): string[];
|
|
10
|
+
protected handleTool(_toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
|
|
11
|
+
getToolDefinitions(): ToolDefinition[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
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 BriefingHandler_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.BriefingHandler = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const abstract_handler_1 = require("./abstract-handler");
|
|
16
|
+
const briefing_service_1 = require("../../context/briefing.service");
|
|
17
|
+
const response_utils_1 = require("../response.utils");
|
|
18
|
+
const validation_constants_1 = require("../../shared/validation.constants");
|
|
19
|
+
let BriefingHandler = BriefingHandler_1 = class BriefingHandler extends abstract_handler_1.AbstractHandler {
|
|
20
|
+
constructor(briefingService) {
|
|
21
|
+
super();
|
|
22
|
+
this.briefingService = briefingService;
|
|
23
|
+
this.logger = new common_1.Logger(BriefingHandler_1.name);
|
|
24
|
+
}
|
|
25
|
+
getHandledTools() {
|
|
26
|
+
return ['create_briefing'];
|
|
27
|
+
}
|
|
28
|
+
async handleTool(_toolName, args) {
|
|
29
|
+
try {
|
|
30
|
+
const contextPath = (0, validation_constants_1.extractOptionalString)(args, 'contextPath');
|
|
31
|
+
const projectRoot = (0, validation_constants_1.extractOptionalString)(args, 'projectRoot');
|
|
32
|
+
const result = await this.briefingService.createBriefing({
|
|
33
|
+
contextPath,
|
|
34
|
+
projectRoot,
|
|
35
|
+
});
|
|
36
|
+
return (0, response_utils_1.createJsonResponse)(result);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
this.logger.error(`Briefing creation failed: ${error}`);
|
|
40
|
+
return (0, response_utils_1.createErrorResponse)(`Briefing creation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
getToolDefinitions() {
|
|
44
|
+
return [
|
|
45
|
+
{
|
|
46
|
+
name: 'create_briefing',
|
|
47
|
+
description: 'Capture current session state into a briefing document for cross-session recovery',
|
|
48
|
+
inputSchema: {
|
|
49
|
+
type: 'object',
|
|
50
|
+
properties: {
|
|
51
|
+
contextPath: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
description: 'Path to context.md file (default: docs/codingbuddy/context.md)',
|
|
54
|
+
},
|
|
55
|
+
projectRoot: {
|
|
56
|
+
type: 'string',
|
|
57
|
+
description: 'Project root directory (default: auto-detected)',
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
required: [],
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
exports.BriefingHandler = BriefingHandler;
|
|
67
|
+
exports.BriefingHandler = BriefingHandler = BriefingHandler_1 = __decorate([
|
|
68
|
+
(0, common_1.Injectable)(),
|
|
69
|
+
__metadata("design:paramtypes", [briefing_service_1.BriefingService])
|
|
70
|
+
], BriefingHandler);
|
|
71
|
+
//# sourceMappingURL=briefing.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"briefing.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/briefing.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAGpD,yDAAqD;AACrD,qEAAiE;AACjE,sDAA4E;AAC5E,4EAA0E;AAUnE,IAAM,eAAe,uBAArB,MAAM,eAAgB,SAAQ,kCAAe;IAGlD,YAA6B,eAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,oBAAe,GAAf,eAAe,CAAiB;QAF5C,WAAM,GAAG,IAAI,eAAM,CAAC,iBAAe,CAAC,IAAI,CAAC,CAAC;IAI3D,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7B,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,SAAiB,EACjB,IAAyC;QAEzC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAC/D,MAAM,WAAW,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC;gBACvD,WAAW;gBACX,WAAW;aACZ,CAAC,CAAC;YAEH,OAAO,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;YACxD,OAAO,IAAA,oCAAmB,EACxB,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EACT,mFAAmF;gBACrF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gEAAgE;yBAC9E;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iDAAiD;yBAC/D;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAxDY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAImC,kCAAe;GAHlD,eAAe,CAwD3B"}
|
|
@@ -16,4 +16,8 @@ export { RuleInsightsHandler } from './rule-insights.handler';
|
|
|
16
16
|
export { ImpactHandler } from './impact.handler';
|
|
17
17
|
export { PluginValidationHandler } from './plugin-validation.handler';
|
|
18
18
|
export { ReleaseCheckHandler } from './release-check.handler';
|
|
19
|
+
export { QualityReportHandler } from './quality-report.handler';
|
|
20
|
+
export { BriefingHandler } from './briefing.handler';
|
|
21
|
+
export { ResumeHandler } from './resume.handler';
|
|
22
|
+
export { RuleImpactHandler } from './rule-impact.handler';
|
|
19
23
|
export declare const TOOL_HANDLERS = "TOOL_HANDLERS";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TOOL_HANDLERS = exports.ReleaseCheckHandler = exports.PluginValidationHandler = exports.ImpactHandler = exports.RuleInsightsHandler = exports.ContextArchiveHandler = exports.PipelineHandler = exports.ParallelValidationHandler = exports.DiscussionHandler = exports.TuiHandler = exports.ContextDocumentHandler = exports.ConventionsHandler = exports.ChecklistContextHandler = exports.ModeHandler = exports.AgentHandler = exports.SkillHandler = exports.ConfigHandler = exports.RulesHandler = void 0;
|
|
3
|
+
exports.TOOL_HANDLERS = exports.RuleImpactHandler = exports.ResumeHandler = exports.BriefingHandler = exports.QualityReportHandler = exports.ReleaseCheckHandler = exports.PluginValidationHandler = exports.ImpactHandler = exports.RuleInsightsHandler = exports.ContextArchiveHandler = exports.PipelineHandler = exports.ParallelValidationHandler = exports.DiscussionHandler = exports.TuiHandler = exports.ContextDocumentHandler = exports.ConventionsHandler = exports.ChecklistContextHandler = exports.ModeHandler = exports.AgentHandler = exports.SkillHandler = exports.ConfigHandler = exports.RulesHandler = void 0;
|
|
4
4
|
var rules_handler_1 = require("./rules.handler");
|
|
5
5
|
Object.defineProperty(exports, "RulesHandler", { enumerable: true, get: function () { return rules_handler_1.RulesHandler; } });
|
|
6
6
|
var config_handler_1 = require("./config.handler");
|
|
@@ -35,5 +35,13 @@ var plugin_validation_handler_1 = require("./plugin-validation.handler");
|
|
|
35
35
|
Object.defineProperty(exports, "PluginValidationHandler", { enumerable: true, get: function () { return plugin_validation_handler_1.PluginValidationHandler; } });
|
|
36
36
|
var release_check_handler_1 = require("./release-check.handler");
|
|
37
37
|
Object.defineProperty(exports, "ReleaseCheckHandler", { enumerable: true, get: function () { return release_check_handler_1.ReleaseCheckHandler; } });
|
|
38
|
+
var quality_report_handler_1 = require("./quality-report.handler");
|
|
39
|
+
Object.defineProperty(exports, "QualityReportHandler", { enumerable: true, get: function () { return quality_report_handler_1.QualityReportHandler; } });
|
|
40
|
+
var briefing_handler_1 = require("./briefing.handler");
|
|
41
|
+
Object.defineProperty(exports, "BriefingHandler", { enumerable: true, get: function () { return briefing_handler_1.BriefingHandler; } });
|
|
42
|
+
var resume_handler_1 = require("./resume.handler");
|
|
43
|
+
Object.defineProperty(exports, "ResumeHandler", { enumerable: true, get: function () { return resume_handler_1.ResumeHandler; } });
|
|
44
|
+
var rule_impact_handler_1 = require("./rule-impact.handler");
|
|
45
|
+
Object.defineProperty(exports, "RuleImpactHandler", { enumerable: true, get: function () { return rule_impact_handler_1.RuleImpactHandler; } });
|
|
38
46
|
exports.TOOL_HANDLERS = 'TOOL_HANDLERS';
|
|
39
47
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/index.ts"],"names":[],"mappings":";;;AAyCA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAMpB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAMhC,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAO3B,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAM/B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAMnB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAM1B,qGAAkG;AAAzF,wIAAA,yBAAyB,OAAA;AAMlC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAMxB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAM9B,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAM5B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAMhC,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/index.ts"],"names":[],"mappings":";;;AAyCA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AAMrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAMpB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAMhC,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAO3B,uEAAoE;AAA3D,kIAAA,sBAAsB,OAAA;AAM/B,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AAMnB,2DAAyD;AAAhD,uHAAA,iBAAiB,OAAA;AAM1B,qGAAkG;AAAzF,wIAAA,yBAAyB,OAAA;AAMlC,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAMxB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAM9B,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAM5B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAMhC,iEAA8D;AAArD,4HAAA,mBAAmB,OAAA;AAM5B,mEAAgE;AAAvD,8HAAA,oBAAoB,OAAA;AAM7B,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAMxB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AAMtB,6DAA0D;AAAjD,wHAAA,iBAAiB,OAAA;AA0Bb,QAAA,aAAa,GAAG,eAAe,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ToolDefinition } from './base.handler';
|
|
2
|
+
import type { ToolResponse } from '../response.utils';
|
|
3
|
+
import { AbstractHandler } from './abstract-handler';
|
|
4
|
+
import { QualityReportService } from '../../ship/quality-report.service';
|
|
5
|
+
export declare class QualityReportHandler extends AbstractHandler {
|
|
6
|
+
private readonly qualityReportService;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(qualityReportService: QualityReportService);
|
|
9
|
+
protected getHandledTools(): string[];
|
|
10
|
+
protected handleTool(_toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
|
|
11
|
+
getToolDefinitions(): ToolDefinition[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
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 QualityReportHandler_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.QualityReportHandler = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const abstract_handler_1 = require("./abstract-handler");
|
|
16
|
+
const quality_report_service_1 = require("../../ship/quality-report.service");
|
|
17
|
+
const response_utils_1 = require("../response.utils");
|
|
18
|
+
const validation_constants_1 = require("../../shared/validation.constants");
|
|
19
|
+
let QualityReportHandler = QualityReportHandler_1 = class QualityReportHandler extends abstract_handler_1.AbstractHandler {
|
|
20
|
+
constructor(qualityReportService) {
|
|
21
|
+
super();
|
|
22
|
+
this.qualityReportService = qualityReportService;
|
|
23
|
+
this.logger = new common_1.Logger(QualityReportHandler_1.name);
|
|
24
|
+
}
|
|
25
|
+
getHandledTools() {
|
|
26
|
+
return ['pr_quality_report'];
|
|
27
|
+
}
|
|
28
|
+
async handleTool(_toolName, args) {
|
|
29
|
+
try {
|
|
30
|
+
const changedFiles = (0, validation_constants_1.extractStringArray)(args, 'changedFiles');
|
|
31
|
+
if (!changedFiles || changedFiles.length === 0) {
|
|
32
|
+
return (0, response_utils_1.createJsonResponse)(await this.qualityReportService.generateReport({ changedFiles: [] }));
|
|
33
|
+
}
|
|
34
|
+
const timeout = typeof args?.timeout === 'number' && args.timeout > 0 ? args.timeout : 30000;
|
|
35
|
+
const result = await this.qualityReportService.generateReport({
|
|
36
|
+
changedFiles,
|
|
37
|
+
timeout,
|
|
38
|
+
});
|
|
39
|
+
return (0, response_utils_1.createJsonResponse)(result);
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.logger.error(`Quality report failed: ${error}`);
|
|
43
|
+
return (0, response_utils_1.createErrorResponse)(`Quality report failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
getToolDefinitions() {
|
|
47
|
+
return [
|
|
48
|
+
{
|
|
49
|
+
name: 'pr_quality_report',
|
|
50
|
+
description: 'Run specialist agents on changed files and generate a Quality Report for PR description',
|
|
51
|
+
inputSchema: {
|
|
52
|
+
type: 'object',
|
|
53
|
+
properties: {
|
|
54
|
+
changedFiles: {
|
|
55
|
+
type: 'array',
|
|
56
|
+
items: { type: 'string' },
|
|
57
|
+
description: 'List of changed file paths to analyze',
|
|
58
|
+
},
|
|
59
|
+
timeout: {
|
|
60
|
+
type: 'number',
|
|
61
|
+
description: 'Timeout in milliseconds (default: 30000)',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
required: ['changedFiles'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
];
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
exports.QualityReportHandler = QualityReportHandler;
|
|
71
|
+
exports.QualityReportHandler = QualityReportHandler = QualityReportHandler_1 = __decorate([
|
|
72
|
+
(0, common_1.Injectable)(),
|
|
73
|
+
__metadata("design:paramtypes", [quality_report_service_1.QualityReportService])
|
|
74
|
+
], QualityReportHandler);
|
|
75
|
+
//# sourceMappingURL=quality-report.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-report.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/quality-report.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAGpD,yDAAqD;AACrD,8EAAyE;AACzE,sDAA4E;AAC5E,4EAAuE;AAGhE,IAAM,oBAAoB,4BAA1B,MAAM,oBAAqB,SAAQ,kCAAe;IAGvD,YAA6B,oBAA0C;QACrE,KAAK,EAAE,CAAC;QADmB,yBAAoB,GAApB,oBAAoB,CAAsB;QAFtD,WAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAIhE,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/B,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,SAAiB,EACjB,IAAyC;QAEzC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAA,yCAAkB,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC9D,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAA,mCAAkB,EACvB,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CACrE,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,IAAI,EAAE,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAE7F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;gBAC5D,YAAY;gBACZ,OAAO;aACR,CAAC,CAAC;YAEH,OAAO,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,IAAA,oCAAmB,EACxB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,mBAAmB;gBACzB,WAAW,EACT,yFAAyF;gBAC3F,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,YAAY,EAAE;4BACZ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,uCAAuC;yBACrD;wBACD,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0CAA0C;yBACxD;qBACF;oBACD,QAAQ,EAAE,CAAC,cAAc,CAAC;iBAC3B;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA/DY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAIwC,6CAAoB;GAH5D,oBAAoB,CA+DhC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ToolDefinition } from './base.handler';
|
|
2
|
+
import type { ToolResponse } from '../response.utils';
|
|
3
|
+
import { AbstractHandler } from './abstract-handler';
|
|
4
|
+
import { BriefingLoaderService } from '../../context/briefing-loader.service';
|
|
5
|
+
export declare class ResumeHandler extends AbstractHandler {
|
|
6
|
+
private readonly briefingLoaderService;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(briefingLoaderService: BriefingLoaderService);
|
|
9
|
+
protected getHandledTools(): string[];
|
|
10
|
+
protected handleTool(_toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
|
|
11
|
+
getToolDefinitions(): ToolDefinition[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
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 ResumeHandler_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ResumeHandler = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const abstract_handler_1 = require("./abstract-handler");
|
|
16
|
+
const briefing_loader_service_1 = require("../../context/briefing-loader.service");
|
|
17
|
+
const response_utils_1 = require("../response.utils");
|
|
18
|
+
const validation_constants_1 = require("../../shared/validation.constants");
|
|
19
|
+
let ResumeHandler = ResumeHandler_1 = class ResumeHandler extends abstract_handler_1.AbstractHandler {
|
|
20
|
+
constructor(briefingLoaderService) {
|
|
21
|
+
super();
|
|
22
|
+
this.briefingLoaderService = briefingLoaderService;
|
|
23
|
+
this.logger = new common_1.Logger(ResumeHandler_1.name);
|
|
24
|
+
}
|
|
25
|
+
getHandledTools() {
|
|
26
|
+
return ['resume_session'];
|
|
27
|
+
}
|
|
28
|
+
async handleTool(_toolName, args) {
|
|
29
|
+
try {
|
|
30
|
+
const briefingPath = (0, validation_constants_1.extractOptionalString)(args, 'briefingPath');
|
|
31
|
+
const result = await this.briefingLoaderService.restoreContext(briefingPath);
|
|
32
|
+
return (0, response_utils_1.createJsonResponse)(result);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
this.logger.error(`Session resume failed: ${error}`);
|
|
36
|
+
return (0, response_utils_1.createErrorResponse)(`Session resume failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
getToolDefinitions() {
|
|
40
|
+
return [
|
|
41
|
+
{
|
|
42
|
+
name: 'resume_session',
|
|
43
|
+
description: 'Load a previous session briefing to restore context and continue work',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
properties: {
|
|
47
|
+
briefingPath: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Path to a specific briefing file. If omitted, loads the most recent briefing from docs/codingbuddy/briefings/',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
required: [],
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
exports.ResumeHandler = ResumeHandler;
|
|
59
|
+
exports.ResumeHandler = ResumeHandler = ResumeHandler_1 = __decorate([
|
|
60
|
+
(0, common_1.Injectable)(),
|
|
61
|
+
__metadata("design:paramtypes", [briefing_loader_service_1.BriefingLoaderService])
|
|
62
|
+
], ResumeHandler);
|
|
63
|
+
//# sourceMappingURL=resume.handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume.handler.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/resume.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAGpD,yDAAqD;AACrD,mFAA8E;AAC9E,sDAA4E;AAC5E,4EAA0E;AAUnE,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,kCAAe;IAGhD,YAA6B,qBAA4C;QACvE,KAAK,EAAE,CAAC;QADmB,0BAAqB,GAArB,qBAAqB,CAAuB;QAFxD,WAAM,GAAG,IAAI,eAAM,CAAC,eAAa,CAAC,IAAI,CAAC,CAAC;IAIzD,CAAC;IAES,eAAe;QACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,SAAiB,EACjB,IAAyC;QAEzC,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAA,4CAAqB,EAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAEjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;YAE7E,OAAO,IAAA,mCAAkB,EAAC,MAAM,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;YACrD,OAAO,IAAA,oCAAmB,EACxB,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,uEAAuE;gBACpF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,YAAY,EAAE;4BACZ,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,+GAA+G;yBAClH;qBACF;oBACD,QAAQ,EAAE,EAAE;iBACb;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAhDY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;qCAIyC,+CAAqB;GAH9D,aAAa,CAgDzB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AbstractHandler } from './abstract-handler';
|
|
2
|
+
import type { ToolDefinition } from './base.handler';
|
|
3
|
+
import type { ToolResponse } from '../response.utils';
|
|
4
|
+
import { RuleInsightsService } from '../../rules/rule-insights.service';
|
|
5
|
+
import { RulesService } from '../../rules/rules.service';
|
|
6
|
+
export declare class RuleImpactHandler extends AbstractHandler {
|
|
7
|
+
private readonly insightsService;
|
|
8
|
+
private readonly rulesService;
|
|
9
|
+
constructor(insightsService: RuleInsightsService, rulesService: RulesService);
|
|
10
|
+
protected getHandledTools(): string[];
|
|
11
|
+
protected handleTool(_toolName: string, args: Record<string, unknown> | undefined): Promise<ToolResponse>;
|
|
12
|
+
getToolDefinitions(): ToolDefinition[];
|
|
13
|
+
private extractPeriod;
|
|
14
|
+
private getAllRuleNames;
|
|
15
|
+
private formatReport;
|
|
16
|
+
private appendSummary;
|
|
17
|
+
private appendTopRules;
|
|
18
|
+
private appendDomainCoverage;
|
|
19
|
+
private appendUnusedRules;
|
|
20
|
+
private appendTrends;
|
|
21
|
+
private appendSuggestions;
|
|
22
|
+
private inferDomain;
|
|
23
|
+
}
|