codingbuddy 2.0.0 → 2.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/dist/src/agent/agent-prompt.builder.js +6 -0
- package/dist/src/agent/agent-prompt.builder.js.map +1 -1
- package/dist/src/app.module.js +4 -0
- package/dist/src/app.module.js.map +1 -1
- package/dist/src/checklist/checklist.module.d.ts +2 -0
- package/dist/src/checklist/checklist.module.js +29 -0
- package/dist/src/checklist/checklist.module.js.map +1 -0
- package/dist/src/checklist/checklist.schema.d.ts +14 -0
- package/dist/src/checklist/checklist.schema.js +189 -0
- package/dist/src/checklist/checklist.schema.js.map +1 -0
- package/dist/src/checklist/checklist.service.d.ts +21 -0
- package/dist/src/checklist/checklist.service.js +258 -0
- package/dist/src/checklist/checklist.service.js.map +1 -0
- package/dist/src/checklist/checklist.types.d.ts +56 -0
- package/dist/src/checklist/checklist.types.js +24 -0
- package/dist/src/checklist/checklist.types.js.map +1 -0
- package/dist/src/checklist/index.d.ts +3 -0
- package/dist/src/checklist/index.js +20 -0
- package/dist/src/checklist/index.js.map +1 -0
- package/dist/src/cli/cli.js +5 -0
- package/dist/src/cli/cli.js.map +1 -1
- package/dist/src/cli/cli.types.d.ts +1 -6
- package/dist/src/cli/index.d.ts +1 -1
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/init/init.command.js +29 -43
- package/dist/src/cli/init/init.command.js.map +1 -1
- package/dist/src/cli/init/init.wizard.d.ts +22 -0
- package/dist/src/cli/init/init.wizard.js +277 -0
- package/dist/src/cli/init/init.wizard.js.map +1 -0
- package/dist/src/cli/init/prompts/agent-prompt.d.ts +9 -0
- package/dist/src/cli/init/prompts/agent-prompt.js +28 -0
- package/dist/src/cli/init/prompts/agent-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/architecture-prompt.d.ts +16 -0
- package/dist/src/cli/init/prompts/architecture-prompt.js +66 -0
- package/dist/src/cli/init/prompts/architecture-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/basic-prompt.d.ts +13 -0
- package/dist/src/cli/init/prompts/basic-prompt.js +53 -0
- package/dist/src/cli/init/prompts/basic-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/conventions-prompt.d.ts +19 -0
- package/dist/src/cli/init/prompts/conventions-prompt.js +74 -0
- package/dist/src/cli/init/prompts/conventions-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/index.d.ts +15 -0
- package/dist/src/cli/init/prompts/index.js +35 -1
- package/dist/src/cli/init/prompts/index.js.map +1 -1
- package/dist/src/cli/init/prompts/language-prompt.d.ts +8 -0
- package/dist/src/cli/init/prompts/language-prompt.js +30 -0
- package/dist/src/cli/init/prompts/language-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/model-prompt.js +2 -2
- package/dist/src/cli/init/prompts/model-prompt.js.map +1 -1
- package/dist/src/cli/init/prompts/tech-stack-prompt.d.ts +22 -0
- package/dist/src/cli/init/prompts/tech-stack-prompt.js +68 -0
- package/dist/src/cli/init/prompts/tech-stack-prompt.js.map +1 -0
- package/dist/src/cli/init/prompts/test-strategy-prompt.d.ts +19 -0
- package/dist/src/cli/init/prompts/test-strategy-prompt.js +75 -0
- package/dist/src/cli/init/prompts/test-strategy-prompt.js.map +1 -0
- package/dist/src/cli/init/summary/index.d.ts +2 -0
- package/dist/src/cli/init/summary/index.js +9 -0
- package/dist/src/cli/init/summary/index.js.map +1 -0
- package/dist/src/cli/init/summary/summary.prompt.d.ts +7 -0
- package/dist/src/cli/init/summary/summary.prompt.js +22 -0
- package/dist/src/cli/init/summary/summary.prompt.js.map +1 -0
- package/dist/src/cli/init/summary/summary.renderer.d.ts +32 -0
- package/dist/src/cli/init/summary/summary.renderer.js +41 -0
- package/dist/src/cli/init/summary/summary.renderer.js.map +1 -0
- package/dist/src/cli/init/templates/config-renderer.d.ts +42 -0
- package/dist/src/cli/init/templates/config-renderer.js +247 -0
- package/dist/src/cli/init/templates/config-renderer.js.map +1 -0
- package/dist/src/cli/init/templates/index.d.ts +1 -0
- package/dist/src/cli/init/templates/index.js +5 -1
- package/dist/src/cli/init/templates/index.js.map +1 -1
- package/dist/src/cli/init/templates/template.renderer.js +16 -6
- package/dist/src/cli/init/templates/template.renderer.js.map +1 -1
- package/dist/src/cli/init/templates/template.types.d.ts +1 -0
- package/dist/src/cli/utils/console.js +26 -7
- package/dist/src/cli/utils/console.js.map +1 -1
- package/dist/src/config/config.loader.d.ts +1 -0
- package/dist/src/config/config.loader.js +23 -0
- package/dist/src/config/config.loader.js.map +1 -1
- package/dist/src/config/config.schema.d.ts +7 -0
- package/dist/src/config/config.schema.js +5 -1
- package/dist/src/config/config.schema.js.map +1 -1
- package/dist/src/config/config.service.d.ts +1 -0
- package/dist/src/config/config.service.js +26 -1
- package/dist/src/config/config.service.js.map +1 -1
- package/dist/src/context/context.module.d.ts +2 -0
- package/dist/src/context/context.module.js +23 -0
- package/dist/src/context/context.module.js.map +1 -0
- package/dist/src/context/context.service.d.ts +21 -0
- package/dist/src/context/context.service.js +286 -0
- package/dist/src/context/context.service.js.map +1 -0
- package/dist/src/context/context.types.d.ts +50 -0
- package/dist/src/context/context.types.js +42 -0
- package/dist/src/context/context.types.js.map +1 -0
- package/dist/src/context/index.d.ts +3 -0
- package/dist/src/context/index.js +20 -0
- package/dist/src/context/index.js.map +1 -0
- package/dist/src/context/intent-patterns.d.ts +7 -0
- package/dist/src/context/intent-patterns.js +50 -0
- package/dist/src/context/intent-patterns.js.map +1 -0
- package/dist/src/keyword/auto-executor.d.ts +17 -0
- package/dist/src/keyword/auto-executor.js +95 -0
- package/dist/src/keyword/auto-executor.js.map +1 -0
- package/dist/src/keyword/auto-executor.types.d.ts +44 -0
- package/dist/src/keyword/auto-executor.types.js +7 -0
- package/dist/src/keyword/auto-executor.types.js.map +1 -0
- package/dist/src/keyword/auto-formatter.d.ts +8 -0
- package/dist/src/keyword/auto-formatter.js +79 -0
- package/dist/src/keyword/auto-formatter.js.map +1 -0
- package/dist/src/keyword/index.d.ts +9 -0
- package/dist/src/keyword/index.js +28 -0
- package/dist/src/keyword/index.js.map +1 -0
- package/dist/src/keyword/keyword.service.d.ts +6 -2
- package/dist/src/keyword/keyword.service.js +24 -6
- package/dist/src/keyword/keyword.service.js.map +1 -1
- package/dist/src/keyword/keyword.types.d.ts +24 -5
- package/dist/src/keyword/keyword.types.js +78 -3
- package/dist/src/keyword/keyword.types.js.map +1 -1
- package/dist/src/keyword/primary-agent-resolver.d.ts +6 -0
- package/dist/src/keyword/primary-agent-resolver.js +211 -0
- package/dist/src/keyword/primary-agent-resolver.js.map +1 -1
- package/dist/src/keyword/rule-filter.js +1 -0
- package/dist/src/keyword/rule-filter.js.map +1 -1
- package/dist/src/mcp/handlers/agent.handler.d.ts +11 -0
- package/dist/src/mcp/handlers/agent.handler.js +167 -0
- package/dist/src/mcp/handlers/agent.handler.js.map +1 -0
- package/dist/src/mcp/handlers/base.handler.d.ts +15 -0
- package/dist/src/mcp/handlers/base.handler.js +3 -0
- package/dist/src/mcp/handlers/base.handler.js.map +1 -0
- package/dist/src/mcp/handlers/checklist-context.handler.d.ts +13 -0
- package/dist/src/mcp/handlers/checklist-context.handler.js +141 -0
- package/dist/src/mcp/handlers/checklist-context.handler.js.map +1 -0
- package/dist/src/mcp/handlers/config.handler.d.ts +15 -0
- package/dist/src/mcp/handlers/config.handler.js +104 -0
- package/dist/src/mcp/handlers/config.handler.js.map +1 -0
- package/dist/src/mcp/handlers/index.d.ts +8 -0
- package/dist/src/mcp/handlers/index.js +17 -0
- package/dist/src/mcp/handlers/index.js.map +1 -0
- package/dist/src/mcp/handlers/mode.handler.d.ts +16 -0
- package/dist/src/mcp/handlers/mode.handler.js +100 -0
- package/dist/src/mcp/handlers/mode.handler.js.map +1 -0
- package/dist/src/mcp/handlers/rules.handler.d.ts +11 -0
- package/dist/src/mcp/handlers/rules.handler.js +99 -0
- package/dist/src/mcp/handlers/rules.handler.js.map +1 -0
- package/dist/src/mcp/handlers/skill.handler.d.ts +11 -0
- package/dist/src/mcp/handlers/skill.handler.js +111 -0
- package/dist/src/mcp/handlers/skill.handler.js.map +1 -0
- package/dist/src/mcp/mcp-serverless.js +5 -0
- package/dist/src/mcp/mcp-serverless.js.map +1 -1
- package/dist/src/mcp/mcp.module.js +26 -1
- package/dist/src/mcp/mcp.module.js.map +1 -1
- package/dist/src/mcp/mcp.service.d.ts +3 -25
- package/dist/src/mcp/mcp.service.js +13 -366
- package/dist/src/mcp/mcp.service.js.map +1 -1
- package/dist/src/model/index.d.ts +1 -0
- package/dist/src/model/index.js +3 -0
- package/dist/src/model/index.js.map +1 -1
- package/dist/src/model/model-resolver.service.d.ts +13 -0
- package/dist/src/model/model-resolver.service.js +63 -0
- package/dist/src/model/model-resolver.service.js.map +1 -0
- package/dist/src/model/model.constants.js.map +1 -1
- package/dist/src/model/model.resolver.js +10 -1
- package/dist/src/model/model.resolver.js.map +1 -1
- package/dist/src/shared/filesystem.interface.d.ts +15 -0
- package/dist/src/shared/filesystem.interface.js +14 -0
- package/dist/src/shared/filesystem.interface.js.map +1 -0
- package/dist/src/shared/node-filesystem.service.d.ts +5 -0
- package/dist/src/shared/node-filesystem.service.js +25 -0
- package/dist/src/shared/node-filesystem.service.js.map +1 -0
- package/dist/src/shared/path.utils.js.map +1 -1
- package/dist/src/shared/pattern-matcher.d.ts +11 -0
- package/dist/src/shared/pattern-matcher.js +39 -0
- package/dist/src/shared/pattern-matcher.js.map +1 -0
- package/dist/src/shared/security.utils.d.ts +17 -0
- package/dist/src/shared/security.utils.js +63 -0
- package/dist/src/shared/security.utils.js.map +1 -1
- package/dist/src/shared/validation.constants.d.ts +10 -0
- package/dist/src/shared/validation.constants.js +42 -1
- package/dist/src/shared/validation.constants.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/dist/src/config/config.types.d.ts +0 -2
- package/dist/src/config/config.types.js +0 -6
- package/dist/src/config/config.types.js.map +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CATEGORY_SPECIALISTS = exports.CATEGORY_RISK_LEVELS = exports.FILE_CATEGORY_PATTERNS = void 0;
|
|
4
|
+
exports.FILE_CATEGORY_PATTERNS = {
|
|
5
|
+
authentication: [
|
|
6
|
+
'**/auth/**',
|
|
7
|
+
'**/login/**',
|
|
8
|
+
'**/session/**',
|
|
9
|
+
'**/password/**',
|
|
10
|
+
],
|
|
11
|
+
payment: [
|
|
12
|
+
'**/payment/**',
|
|
13
|
+
'**/checkout/**',
|
|
14
|
+
'**/billing/**',
|
|
15
|
+
'**/subscription/**',
|
|
16
|
+
],
|
|
17
|
+
api: ['**/api/**', '**/handler/**', '**/route/**', '**/endpoint/**'],
|
|
18
|
+
ui: ['**/components/**', '**/features/**', '**/widgets/**', '**/page/**'],
|
|
19
|
+
data: ['**/model/**', '**/entity/**', '**/schema/**', '**/database/**'],
|
|
20
|
+
testing: ['**/*.spec.*', '**/*.test.*', '**/test/**', '**/__tests__/**'],
|
|
21
|
+
};
|
|
22
|
+
exports.CATEGORY_RISK_LEVELS = {
|
|
23
|
+
authentication: 'critical',
|
|
24
|
+
payment: 'critical',
|
|
25
|
+
api: 'high',
|
|
26
|
+
data: 'high',
|
|
27
|
+
ui: 'medium',
|
|
28
|
+
testing: 'low',
|
|
29
|
+
};
|
|
30
|
+
exports.CATEGORY_SPECIALISTS = {
|
|
31
|
+
authentication: ['security-specialist', 'test-strategy-specialist'],
|
|
32
|
+
payment: ['security-specialist', 'test-strategy-specialist'],
|
|
33
|
+
api: [
|
|
34
|
+
'security-specialist',
|
|
35
|
+
'performance-specialist',
|
|
36
|
+
'test-strategy-specialist',
|
|
37
|
+
],
|
|
38
|
+
ui: ['accessibility-specialist', 'ui-ux-designer', 'performance-specialist'],
|
|
39
|
+
data: ['architecture-specialist', 'security-specialist'],
|
|
40
|
+
testing: ['test-strategy-specialist', 'code-quality-specialist'],
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=context.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.types.js","sourceRoot":"","sources":["../../../src/context/context.types.ts"],"names":[],"mappings":";;;AAuHa,QAAA,sBAAsB,GAA6B;IAC9D,cAAc,EAAE;QACd,YAAY;QACZ,aAAa;QACb,eAAe;QACf,gBAAgB;KACjB;IACD,OAAO,EAAE;QACP,eAAe;QACf,gBAAgB;QAChB,eAAe;QACf,oBAAoB;KACrB;IACD,GAAG,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC;IACpE,EAAE,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,CAAC;IACzE,IAAI,EAAE,CAAC,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,CAAC;IACvE,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,CAAC;CACzE,CAAC;AAKW,QAAA,oBAAoB,GAA8B;IAC7D,cAAc,EAAE,UAAU;IAC1B,OAAO,EAAE,UAAU;IACnB,GAAG,EAAE,MAAM;IACX,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,QAAQ;IACZ,OAAO,EAAE,KAAK;CACf,CAAC;AAKW,QAAA,oBAAoB,GAA6B;IAC5D,cAAc,EAAE,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IACnE,OAAO,EAAE,CAAC,qBAAqB,EAAE,0BAA0B,CAAC;IAC5D,GAAG,EAAE;QACH,qBAAqB;QACrB,wBAAwB;QACxB,0BAA0B;KAC3B;IACD,EAAE,EAAE,CAAC,0BAA0B,EAAE,gBAAgB,EAAE,wBAAwB,CAAC;IAC5E,IAAI,EAAE,CAAC,yBAAyB,EAAE,qBAAqB,CAAC;IACxD,OAAO,EAAE,CAAC,0BAA0B,EAAE,yBAAyB,CAAC;CACjE,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./context.module"), exports);
|
|
18
|
+
__exportStar(require("./context.service"), exports);
|
|
19
|
+
__exportStar(require("./context.types"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TaskIntent } from './context.types';
|
|
2
|
+
export interface IntentPattern {
|
|
3
|
+
intent: TaskIntent;
|
|
4
|
+
keywords: readonly string[];
|
|
5
|
+
}
|
|
6
|
+
export declare const INTENT_PATTERNS: readonly IntentPattern[];
|
|
7
|
+
export declare function detectIntentFromPatterns(prompt: string): TaskIntent;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INTENT_PATTERNS = void 0;
|
|
4
|
+
exports.detectIntentFromPatterns = detectIntentFromPatterns;
|
|
5
|
+
exports.INTENT_PATTERNS = [
|
|
6
|
+
{
|
|
7
|
+
intent: 'bug_fix',
|
|
8
|
+
keywords: ['fix', 'bug', 'error', 'issue', 'broken'],
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
intent: 'refactoring',
|
|
12
|
+
keywords: ['refactor', 'clean', 'improve', 'restructure'],
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
intent: 'code_review',
|
|
16
|
+
keywords: ['review', 'check', 'audit', 'inspect'],
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
intent: 'testing',
|
|
20
|
+
keywords: ['test', 'spec', 'coverage', 'unit test'],
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
intent: 'documentation',
|
|
24
|
+
keywords: ['doc', 'readme', 'comment', 'jsdoc'],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
intent: 'performance_optimization',
|
|
28
|
+
keywords: ['performance', 'optimize', 'speed', 'fast', 'slow', 'latency'],
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
intent: 'security_hardening',
|
|
32
|
+
keywords: ['security', 'vulnerability', 'auth', 'secure', 'xss', 'csrf'],
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
intent: 'feature_development',
|
|
36
|
+
keywords: ['add', 'create', 'implement', 'build', 'new', 'feature'],
|
|
37
|
+
},
|
|
38
|
+
];
|
|
39
|
+
function detectIntentFromPatterns(prompt) {
|
|
40
|
+
const promptLower = prompt.toLowerCase();
|
|
41
|
+
for (const pattern of exports.INTENT_PATTERNS) {
|
|
42
|
+
for (const keyword of pattern.keywords) {
|
|
43
|
+
if (promptLower.includes(keyword)) {
|
|
44
|
+
return pattern.intent;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return 'unknown';
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=intent-patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intent-patterns.js","sourceRoot":"","sources":["../../../src/context/intent-patterns.ts"],"names":[],"mappings":";;;AAwDA,4DAYC;AApDY,QAAA,eAAe,GAA6B;IACvD;QACE,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;KACrD;IACD;QACE,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,CAAC;KAC1D;IACD;QACE,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC;KAClD;IACD;QACE,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;KACpD;IACD;QACE,MAAM,EAAE,eAAe;QACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;KAChD;IACD;QACE,MAAM,EAAE,0BAA0B;QAClC,QAAQ,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;KAC1E;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,QAAQ,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC;KACzE;IACD;QACE,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC;KACpE;CACO,CAAC;AAOX,SAAgB,wBAAwB,CAAC,MAAc;IACrD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAEzC,KAAK,MAAM,OAAO,IAAI,uBAAe,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClC,OAAO,OAAO,CAAC,MAAM,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AutoExecutorOptions, AutoResult, EvalSummary, AutoProgressCallback } from './auto-executor.types';
|
|
2
|
+
import type { ParseModeResult } from './keyword.types';
|
|
3
|
+
export interface AutoExecutorDependencies {
|
|
4
|
+
parsePlan: (prompt: string) => Promise<ParseModeResult>;
|
|
5
|
+
parseAct: (prompt: string) => Promise<ParseModeResult>;
|
|
6
|
+
parseEval: (prompt: string) => Promise<ParseModeResult>;
|
|
7
|
+
extractEvalSummary: (evalResult: ParseModeResult) => EvalSummary;
|
|
8
|
+
}
|
|
9
|
+
export declare class AutoExecutor {
|
|
10
|
+
private readonly deps;
|
|
11
|
+
private readonly progressCallback?;
|
|
12
|
+
constructor(deps: AutoExecutorDependencies, progressCallback?: AutoProgressCallback | undefined);
|
|
13
|
+
execute(options: AutoExecutorOptions): Promise<AutoResult>;
|
|
14
|
+
isQualityAchieved(summary: EvalSummary): boolean;
|
|
15
|
+
private buildPrompt;
|
|
16
|
+
private buildFallbackPrompt;
|
|
17
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutoExecutor = void 0;
|
|
4
|
+
class AutoExecutor {
|
|
5
|
+
constructor(deps, progressCallback) {
|
|
6
|
+
this.deps = deps;
|
|
7
|
+
this.progressCallback = progressCallback;
|
|
8
|
+
}
|
|
9
|
+
async execute(options) {
|
|
10
|
+
const iterationHistory = [];
|
|
11
|
+
const modifiedFiles = [];
|
|
12
|
+
for (let i = 1; i <= options.maxIterations; i++) {
|
|
13
|
+
this.progressCallback?.onPhaseStart('plan', i, options.maxIterations);
|
|
14
|
+
const planResult = await this.deps.parsePlan(this.buildPrompt(options.prompt, i, iterationHistory));
|
|
15
|
+
this.progressCallback?.onPhaseComplete('plan', planResult);
|
|
16
|
+
this.progressCallback?.onPhaseStart('act', i, options.maxIterations);
|
|
17
|
+
const actResult = await this.deps.parseAct(options.prompt);
|
|
18
|
+
this.progressCallback?.onPhaseComplete('act', actResult);
|
|
19
|
+
this.progressCallback?.onPhaseStart('eval', i, options.maxIterations);
|
|
20
|
+
const evalResult = await this.deps.parseEval(options.prompt);
|
|
21
|
+
this.progressCallback?.onPhaseComplete('eval', evalResult);
|
|
22
|
+
const evalSummary = this.deps.extractEvalSummary(evalResult);
|
|
23
|
+
const iterationResult = {
|
|
24
|
+
iteration: i,
|
|
25
|
+
planResult,
|
|
26
|
+
actResult,
|
|
27
|
+
evalResult,
|
|
28
|
+
evalSummary,
|
|
29
|
+
approach: `Iteration ${i} approach`,
|
|
30
|
+
};
|
|
31
|
+
iterationHistory.push(iterationResult);
|
|
32
|
+
this.progressCallback?.onIterationComplete(iterationResult);
|
|
33
|
+
if (this.isQualityAchieved(evalSummary)) {
|
|
34
|
+
const result = {
|
|
35
|
+
success: true,
|
|
36
|
+
iterations: i,
|
|
37
|
+
maxIterations: options.maxIterations,
|
|
38
|
+
finalEvalSummary: evalSummary,
|
|
39
|
+
iterationHistory,
|
|
40
|
+
modifiedFiles,
|
|
41
|
+
fallbackToPlan: false,
|
|
42
|
+
};
|
|
43
|
+
this.progressCallback?.onComplete(result);
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const fallbackPlanResult = await this.deps.parsePlan(this.buildFallbackPrompt(options.prompt, iterationHistory));
|
|
48
|
+
const result = {
|
|
49
|
+
success: false,
|
|
50
|
+
iterations: options.maxIterations,
|
|
51
|
+
maxIterations: options.maxIterations,
|
|
52
|
+
finalEvalSummary: iterationHistory[iterationHistory.length - 1]?.evalSummary,
|
|
53
|
+
iterationHistory,
|
|
54
|
+
modifiedFiles,
|
|
55
|
+
fallbackToPlan: true,
|
|
56
|
+
fallbackPlanResult,
|
|
57
|
+
};
|
|
58
|
+
this.progressCallback?.onComplete(result);
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
isQualityAchieved(summary) {
|
|
62
|
+
return summary.criticalCount === 0 && summary.highCount === 0;
|
|
63
|
+
}
|
|
64
|
+
buildPrompt(originalPrompt, iteration, history) {
|
|
65
|
+
if (iteration === 1) {
|
|
66
|
+
return originalPrompt;
|
|
67
|
+
}
|
|
68
|
+
const lastIteration = history[history.length - 1];
|
|
69
|
+
const issues = lastIteration?.evalSummary.issues
|
|
70
|
+
.filter(i => i.severity === 'critical' || i.severity === 'high')
|
|
71
|
+
.map(i => `- ${i.description}`)
|
|
72
|
+
.join('\n');
|
|
73
|
+
return `${originalPrompt}\n\nPrevious issues to address:\n${issues}`;
|
|
74
|
+
}
|
|
75
|
+
buildFallbackPrompt(originalPrompt, history) {
|
|
76
|
+
const attempts = history
|
|
77
|
+
.map(h => `- Iteration ${h.iteration}: ${h.approach}`)
|
|
78
|
+
.join('\n');
|
|
79
|
+
const remainingIssues = history[history.length - 1]?.evalSummary.issues
|
|
80
|
+
.filter(i => i.severity === 'critical' || i.severity === 'high')
|
|
81
|
+
.map(i => `- [${i.severity.toUpperCase()}] ${i.description}`)
|
|
82
|
+
.join('\n');
|
|
83
|
+
return `${originalPrompt}
|
|
84
|
+
|
|
85
|
+
Previous attempts:
|
|
86
|
+
${attempts}
|
|
87
|
+
|
|
88
|
+
Remaining issues:
|
|
89
|
+
${remainingIssues}
|
|
90
|
+
|
|
91
|
+
Please propose a new approach.`;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.AutoExecutor = AutoExecutor;
|
|
95
|
+
//# sourceMappingURL=auto-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-executor.js","sourceRoot":"","sources":["../../../src/keyword/auto-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ParseModeResult, AutoConfig } from './keyword.types';
|
|
2
|
+
export type { AutoConfig };
|
|
3
|
+
export interface AutoExecutorOptions {
|
|
4
|
+
maxIterations: number;
|
|
5
|
+
prompt: string;
|
|
6
|
+
}
|
|
7
|
+
export type IssueSeverity = 'critical' | 'high' | 'medium' | 'low';
|
|
8
|
+
export interface EvalIssue {
|
|
9
|
+
severity: IssueSeverity;
|
|
10
|
+
description: string;
|
|
11
|
+
}
|
|
12
|
+
export interface EvalSummary {
|
|
13
|
+
criticalCount: number;
|
|
14
|
+
highCount: number;
|
|
15
|
+
mediumCount: number;
|
|
16
|
+
lowCount: number;
|
|
17
|
+
issues: EvalIssue[];
|
|
18
|
+
}
|
|
19
|
+
export interface IterationResult {
|
|
20
|
+
iteration: number;
|
|
21
|
+
planResult: ParseModeResult;
|
|
22
|
+
actResult: ParseModeResult;
|
|
23
|
+
evalResult: ParseModeResult;
|
|
24
|
+
evalSummary: EvalSummary;
|
|
25
|
+
approach: string;
|
|
26
|
+
}
|
|
27
|
+
export interface AutoResult {
|
|
28
|
+
success: boolean;
|
|
29
|
+
iterations: number;
|
|
30
|
+
maxIterations: number;
|
|
31
|
+
finalEvalSummary?: EvalSummary;
|
|
32
|
+
iterationHistory: IterationResult[];
|
|
33
|
+
modifiedFiles: string[];
|
|
34
|
+
fallbackToPlan: boolean;
|
|
35
|
+
fallbackPlanResult?: ParseModeResult;
|
|
36
|
+
}
|
|
37
|
+
export type AutoPhase = 'starting' | 'plan' | 'act' | 'eval' | 'completed' | 'failed';
|
|
38
|
+
export interface AutoProgressCallback {
|
|
39
|
+
onPhaseStart: (phase: AutoPhase, iteration: number, maxIterations: number) => void;
|
|
40
|
+
onPhaseComplete: (phase: AutoPhase, result: ParseModeResult) => void;
|
|
41
|
+
onIterationComplete: (result: IterationResult) => void;
|
|
42
|
+
onComplete: (result: AutoResult) => void;
|
|
43
|
+
}
|
|
44
|
+
export declare const DEFAULT_AUTO_CONFIG: AutoConfig;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-executor.types.js","sourceRoot":"","sources":["../../../src/keyword/auto-executor.types.ts"],"names":[],"mappings":";;;AA2Ea,QAAA,mBAAmB,GAAe;IAC7C,aAAa,EAAE,CAAC;CACjB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { AutoResult, AutoPhase, EvalSummary } from './auto-executor.types';
|
|
2
|
+
export declare class AutoFormatter {
|
|
3
|
+
static formatStart(task: string, maxIterations: number): string;
|
|
4
|
+
static formatIterationPhase(phase: AutoPhase, iteration: number, maxIterations: number): string;
|
|
5
|
+
static formatEvalSummary(summary: EvalSummary): string;
|
|
6
|
+
static formatSuccess(result: AutoResult): string;
|
|
7
|
+
static formatFailure(result: AutoResult): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutoFormatter = void 0;
|
|
4
|
+
class AutoFormatter {
|
|
5
|
+
static formatStart(task, maxIterations) {
|
|
6
|
+
return `# Mode: AUTO
|
|
7
|
+
## Autonomous Execution Started
|
|
8
|
+
|
|
9
|
+
Task: ${task}
|
|
10
|
+
Max Iterations: ${maxIterations}
|
|
11
|
+
|
|
12
|
+
---`;
|
|
13
|
+
}
|
|
14
|
+
static formatIterationPhase(phase, iteration, maxIterations) {
|
|
15
|
+
const phaseNames = {
|
|
16
|
+
starting: 'Starting',
|
|
17
|
+
plan: 'PLAN Phase',
|
|
18
|
+
act: 'ACT Phase',
|
|
19
|
+
eval: 'EVAL Phase',
|
|
20
|
+
completed: 'Completed',
|
|
21
|
+
failed: 'Failed',
|
|
22
|
+
};
|
|
23
|
+
return `
|
|
24
|
+
## Iteration ${iteration}/${maxIterations} - ${phaseNames[phase]}`;
|
|
25
|
+
}
|
|
26
|
+
static formatEvalSummary(summary) {
|
|
27
|
+
const needsIteration = summary.criticalCount > 0 || summary.highCount > 0;
|
|
28
|
+
return `
|
|
29
|
+
Issues Found:
|
|
30
|
+
- Critical: ${summary.criticalCount}
|
|
31
|
+
- High: ${summary.highCount}${needsIteration ? ' <- iteration needed' : ''}
|
|
32
|
+
- Medium: ${summary.mediumCount}
|
|
33
|
+
- Low: ${summary.lowCount}`;
|
|
34
|
+
}
|
|
35
|
+
static formatSuccess(result) {
|
|
36
|
+
const summary = result.finalEvalSummary;
|
|
37
|
+
const files = result.modifiedFiles.length > 0
|
|
38
|
+
? result.modifiedFiles.map(f => `- ${f}`).join('\n')
|
|
39
|
+
: '(none)';
|
|
40
|
+
return `
|
|
41
|
+
---
|
|
42
|
+
# Mode: AUTO - COMPLETED
|
|
43
|
+
|
|
44
|
+
Task completed successfully!
|
|
45
|
+
Final Stats:
|
|
46
|
+
- Iterations: ${result.iterations}/${result.maxIterations}
|
|
47
|
+
- Critical: ${summary?.criticalCount ?? 0}, High: ${summary?.highCount ?? 0}
|
|
48
|
+
- Medium: ${summary?.mediumCount ?? 0}, Low: ${summary?.lowCount ?? 0}
|
|
49
|
+
|
|
50
|
+
Modified Files:
|
|
51
|
+
${files}`;
|
|
52
|
+
}
|
|
53
|
+
static formatFailure(result) {
|
|
54
|
+
const summary = result.finalEvalSummary;
|
|
55
|
+
const remainingIssues = summary?.issues
|
|
56
|
+
.filter(i => i.severity === 'critical' || i.severity === 'high')
|
|
57
|
+
.map(i => `- [${i.severity.toUpperCase()}] ${i.description}`)
|
|
58
|
+
.join('\n') || '(none)';
|
|
59
|
+
const attempts = result.iterationHistory
|
|
60
|
+
.map(h => `- Iteration ${h.iteration}: ${h.approach}`)
|
|
61
|
+
.join('\n') || '(none)';
|
|
62
|
+
return `
|
|
63
|
+
---
|
|
64
|
+
# Mode: AUTO - MAX ITERATIONS REACHED
|
|
65
|
+
|
|
66
|
+
Tried ${result.maxIterations} iterations but some issues remain.
|
|
67
|
+
|
|
68
|
+
Remaining Issues:
|
|
69
|
+
${remainingIssues}
|
|
70
|
+
|
|
71
|
+
Attempted approaches:
|
|
72
|
+
${attempts}
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
# Mode: PLAN`;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.AutoFormatter = AutoFormatter;
|
|
79
|
+
//# sourceMappingURL=auto-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-formatter.js","sourceRoot":"","sources":["../../../src/keyword/auto-formatter.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IACxB,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,aAAqB;QACpD,OAAO;;;QAGH,IAAI;kBACM,aAAa;;IAE3B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,oBAAoB,CACzB,KAAgB,EAChB,SAAiB,EACjB,aAAqB;QAErB,MAAM,UAAU,GAA8B;YAC5C,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,YAAY;YAClB,GAAG,EAAE,WAAW;YAChB,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,WAAW;YACtB,MAAM,EAAE,QAAQ;SACjB,CAAC;QAEF,OAAO;eACI,SAAS,IAAI,aAAa,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAoB;QAC3C,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QAC1E,OAAO;;cAEG,OAAO,CAAC,aAAa;UACzB,OAAO,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;YAC9D,OAAO,CAAC,WAAW;SACtB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAkB;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,MAAM,KAAK,GACT,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YACpD,CAAC,CAAC,QAAQ,CAAC;QAEf,OAAO;;;;;;gBAMK,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,aAAa;cAC3C,OAAO,EAAE,aAAa,IAAI,CAAC,WAAW,OAAO,EAAE,SAAS,IAAI,CAAC;YAC/D,OAAO,EAAE,WAAW,IAAI,CAAC,UAAU,OAAO,EAAE,QAAQ,IAAI,CAAC;;;EAGnE,KAAK,EAAE,CAAC;IACR,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAkB;QACrC,MAAM,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACxC,MAAM,eAAe,GACnB,OAAO,EAAE,MAAM;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;aAC5D,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAE5B,MAAM,QAAQ,GACZ,MAAM,CAAC,gBAAgB;aACpB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;aACrD,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;QAE5B,OAAO;;;;QAIH,MAAM,CAAC,aAAa;;;EAG1B,eAAe;;;EAGf,QAAQ;;;aAGG,CAAC;IACZ,CAAC;CACF;AAxFD,sCAwFC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './keyword.module';
|
|
2
|
+
export * from './keyword.service';
|
|
3
|
+
export * from './keyword.types';
|
|
4
|
+
export * from './activation-message.builder';
|
|
5
|
+
export * from './primary-agent-resolver';
|
|
6
|
+
export * from './rule-filter';
|
|
7
|
+
export { DEFAULT_AUTO_CONFIG, type AutoExecutorOptions, type IssueSeverity, type EvalIssue, type EvalSummary, type IterationResult, type AutoResult, type AutoPhase, type AutoProgressCallback, } from './auto-executor.types';
|
|
8
|
+
export * from './auto-executor';
|
|
9
|
+
export * from './auto-formatter';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.DEFAULT_AUTO_CONFIG = void 0;
|
|
18
|
+
__exportStar(require("./keyword.module"), exports);
|
|
19
|
+
__exportStar(require("./keyword.service"), exports);
|
|
20
|
+
__exportStar(require("./keyword.types"), exports);
|
|
21
|
+
__exportStar(require("./activation-message.builder"), exports);
|
|
22
|
+
__exportStar(require("./primary-agent-resolver"), exports);
|
|
23
|
+
__exportStar(require("./rule-filter"), exports);
|
|
24
|
+
var auto_executor_types_1 = require("./auto-executor.types");
|
|
25
|
+
Object.defineProperty(exports, "DEFAULT_AUTO_CONFIG", { enumerable: true, get: function () { return auto_executor_types_1.DEFAULT_AUTO_CONFIG; } });
|
|
26
|
+
__exportStar(require("./auto-executor"), exports);
|
|
27
|
+
__exportStar(require("./auto-formatter"), exports);
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/keyword/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,oDAAkC;AAClC,kDAAgC;AAChC,+DAA6C;AAC7C,2DAAyC;AACzC,gDAA8B;AAG9B,6DAU+B;AAT7B,0HAAA,mBAAmB,OAAA;AAUrB,kDAAgC;AAChC,mDAAiC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import { type Mode, type RuleContent, type ParseModeResult, type KeywordModesConfig } from './keyword.types';
|
|
1
|
+
import { type Mode, type RuleContent, type ParseModeResult, type KeywordModesConfig, type ResolutionContext } from './keyword.types';
|
|
2
|
+
export interface ParseModeOptions {
|
|
3
|
+
recommendedActAgent?: string;
|
|
4
|
+
context?: ResolutionContext;
|
|
5
|
+
}
|
|
2
6
|
import { PrimaryAgentResolver } from './primary-agent-resolver';
|
|
3
7
|
export declare class KeywordService {
|
|
4
8
|
private readonly loadConfigFn;
|
|
@@ -8,7 +12,7 @@ export declare class KeywordService {
|
|
|
8
12
|
private configCache;
|
|
9
13
|
private readonly primaryAgentResolver?;
|
|
10
14
|
constructor(loadConfigFn: () => Promise<KeywordModesConfig>, loadRuleFn: (path: string) => Promise<string>, loadAgentInfoFn?: ((agentName: string) => Promise<unknown>) | undefined, primaryAgentResolver?: PrimaryAgentResolver);
|
|
11
|
-
parseMode(prompt: string): Promise<ParseModeResult>;
|
|
15
|
+
parseMode(prompt: string, options?: ParseModeOptions): Promise<ParseModeResult>;
|
|
12
16
|
private extractModeFromPrompt;
|
|
13
17
|
private checkForMultipleKeywords;
|
|
14
18
|
private checkForEmptyContent;
|
|
@@ -40,6 +40,18 @@ const DEFAULT_CONFIG = {
|
|
|
40
40
|
'code-quality-specialist',
|
|
41
41
|
],
|
|
42
42
|
},
|
|
43
|
+
AUTO: {
|
|
44
|
+
description: 'Autonomous execution mode - PLAN → ACT → EVAL cycle until quality achieved',
|
|
45
|
+
instructions: 'Execute PLAN → ACT → EVAL cycle automatically. Repeat until Critical/High issues = 0 or max iterations reached.',
|
|
46
|
+
rules: ['rules/core.md', 'rules/project.md', 'rules/augmented-coding.md'],
|
|
47
|
+
agent: keyword_types_1.MODE_AGENTS[3],
|
|
48
|
+
defaultSpecialists: [
|
|
49
|
+
'architecture-specialist',
|
|
50
|
+
'test-strategy-specialist',
|
|
51
|
+
'security-specialist',
|
|
52
|
+
'code-quality-specialist',
|
|
53
|
+
],
|
|
54
|
+
},
|
|
43
55
|
},
|
|
44
56
|
defaultMode: 'PLAN',
|
|
45
57
|
};
|
|
@@ -52,12 +64,13 @@ class KeywordService {
|
|
|
52
64
|
this.configCache = null;
|
|
53
65
|
this.primaryAgentResolver = primaryAgentResolver;
|
|
54
66
|
}
|
|
55
|
-
async parseMode(prompt) {
|
|
67
|
+
async parseMode(prompt, options) {
|
|
56
68
|
const config = await this.loadModeConfig();
|
|
57
69
|
const { mode, originalPrompt, warnings } = this.extractModeFromPrompt(prompt, config.defaultMode);
|
|
58
70
|
const modeConfig = config.modes[mode];
|
|
59
71
|
const rules = await this.getRulesForMode(mode);
|
|
60
|
-
|
|
72
|
+
const effectiveRecommendedAgent = mode === 'ACT' ? options?.recommendedActAgent : undefined;
|
|
73
|
+
return this.buildParseModeResult(mode, originalPrompt, warnings, modeConfig, rules, config, options?.context, effectiveRecommendedAgent);
|
|
61
74
|
}
|
|
62
75
|
extractModeFromPrompt(prompt, defaultMode) {
|
|
63
76
|
const warnings = [];
|
|
@@ -100,7 +113,7 @@ class KeywordService {
|
|
|
100
113
|
warnings.push('No prompt content after keyword');
|
|
101
114
|
}
|
|
102
115
|
}
|
|
103
|
-
async buildParseModeResult(mode, originalPrompt, warnings, modeConfig, rules, config) {
|
|
116
|
+
async buildParseModeResult(mode, originalPrompt, warnings, modeConfig, rules, config, context, recommendedActAgent) {
|
|
104
117
|
const filteredRules = (0, rule_filter_1.filterRulesByMode)(rules, mode);
|
|
105
118
|
const result = {
|
|
106
119
|
mode,
|
|
@@ -112,7 +125,7 @@ class KeywordService {
|
|
|
112
125
|
if (modeConfig.agent) {
|
|
113
126
|
result.agent = modeConfig.agent;
|
|
114
127
|
}
|
|
115
|
-
const resolvedAgent = await this.resolvePrimaryAgent(mode, originalPrompt, modeConfig.delegates_to);
|
|
128
|
+
const resolvedAgent = await this.resolvePrimaryAgent(mode, originalPrompt, modeConfig.delegates_to, context, recommendedActAgent);
|
|
116
129
|
if (resolvedAgent) {
|
|
117
130
|
result.delegates_to = resolvedAgent.agentName;
|
|
118
131
|
result.primary_agent_source = resolvedAgent.source;
|
|
@@ -142,6 +155,11 @@ class KeywordService {
|
|
|
142
155
|
result.activation_message = activationMessage;
|
|
143
156
|
}
|
|
144
157
|
}
|
|
158
|
+
if (mode === 'AUTO') {
|
|
159
|
+
result.autoConfig = {
|
|
160
|
+
maxIterations: 3,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
145
163
|
return result;
|
|
146
164
|
}
|
|
147
165
|
getPrimaryAgentTier(agentName) {
|
|
@@ -228,9 +246,9 @@ class KeywordService {
|
|
|
228
246
|
return undefined;
|
|
229
247
|
}
|
|
230
248
|
}
|
|
231
|
-
async resolvePrimaryAgent(mode, prompt, staticDelegatesTo, context) {
|
|
249
|
+
async resolvePrimaryAgent(mode, prompt, staticDelegatesTo, context, recommendedActAgent) {
|
|
232
250
|
if (this.primaryAgentResolver) {
|
|
233
|
-
const result = await this.primaryAgentResolver.resolve(mode, prompt, context);
|
|
251
|
+
const result = await this.primaryAgentResolver.resolve(mode, prompt, context, recommendedActAgent);
|
|
234
252
|
return { agentName: result.agentName, source: result.source };
|
|
235
253
|
}
|
|
236
254
|
if (staticDelegatesTo) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyword.service.js","sourceRoot":"","sources":["../../../src/keyword/keyword.service.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,mDAgByB;
|
|
1
|
+
{"version":3,"file":"keyword.service.js","sourceRoot":"","sources":["../../../src/keyword/keyword.service.ts"],"names":[],"mappings":"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"}
|