dialectic 0.2.2 → 0.4.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 +8 -1
- package/dist/agents/role-based-agent.d.ts +7 -6
- package/dist/agents/role-based-agent.d.ts.map +1 -1
- package/dist/agents/role-based-agent.js +14 -14
- package/dist/agents/role-based-agent.js.map +1 -1
- package/dist/cli/commands/debate.d.ts.map +1 -1
- package/dist/cli/commands/debate.js +118 -38
- package/dist/cli/commands/debate.js.map +1 -1
- package/dist/cli/commands/eval.js +7 -7
- package/dist/cli/commands/eval.js.map +1 -1
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +2 -1
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/index.d.ts +0 -3
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +4 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/core/agent.d.ts +29 -9
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js +206 -13
- package/dist/core/agent.js.map +1 -1
- package/dist/core/judge.d.ts +7 -2
- package/dist/core/judge.d.ts.map +1 -1
- package/dist/core/judge.js +215 -6
- package/dist/core/judge.js.map +1 -1
- package/dist/core/orchestrator.d.ts +4 -2
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +21 -19
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/core/state-manager.d.ts +1 -2
- package/dist/core/state-manager.d.ts.map +1 -1
- package/dist/core/state-manager.js +3 -14
- package/dist/core/state-manager.js.map +1 -1
- package/dist/eval/evaluator-agent.js +2 -2
- package/dist/eval/evaluator-agent.js.map +1 -1
- package/dist/providers/llm-provider.d.ts +24 -0
- package/dist/providers/llm-provider.d.ts.map +1 -1
- package/dist/providers/llm-provider.js +7 -0
- package/dist/providers/llm-provider.js.map +1 -1
- package/dist/providers/openai-provider.d.ts +3 -0
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +70 -9
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/openrouter-provider.d.ts +3 -0
- package/dist/providers/openrouter-provider.d.ts.map +1 -1
- package/dist/providers/openrouter-provider.js +70 -9
- package/dist/providers/openrouter-provider.js.map +1 -1
- package/dist/tools/context-search-tool.d.ts +12 -0
- package/dist/tools/context-search-tool.d.ts.map +1 -0
- package/dist/tools/context-search-tool.js +70 -0
- package/dist/tools/context-search-tool.js.map +1 -0
- package/dist/tools/tool-implementation.d.ts +11 -0
- package/dist/tools/tool-implementation.d.ts.map +1 -0
- package/dist/tools/tool-implementation.js +34 -0
- package/dist/tools/tool-implementation.js.map +1 -0
- package/dist/tools/tool-registry.d.ts +13 -0
- package/dist/tools/tool-registry.d.ts.map +1 -0
- package/dist/tools/tool-registry.js +41 -0
- package/dist/tools/tool-registry.js.map +1 -0
- package/dist/types/agent.types.d.ts +11 -1
- package/dist/types/agent.types.d.ts.map +1 -1
- package/dist/types/agent.types.js +2 -1
- package/dist/types/agent.types.js.map +1 -1
- package/dist/types/debate.types.d.ts +5 -1
- package/dist/types/debate.types.d.ts.map +1 -1
- package/dist/types/debate.types.js.map +1 -1
- package/dist/types/tool.types.d.ts +35 -0
- package/dist/types/tool.types.d.ts.map +1 -0
- package/dist/types/tool.types.js +8 -0
- package/dist/types/tool.types.js.map +1 -0
- package/dist/types/tracing.types.d.ts +30 -0
- package/dist/types/tracing.types.d.ts.map +1 -0
- package/dist/types/tracing.types.js +10 -0
- package/dist/types/tracing.types.js.map +1 -0
- package/dist/utils/common.d.ts +1 -0
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/common.js +11 -2
- package/dist/utils/common.js.map +1 -1
- package/dist/utils/console.d.ts +15 -0
- package/dist/utils/console.d.ts.map +1 -0
- package/dist/utils/console.js +54 -0
- package/dist/utils/console.js.map +1 -0
- package/dist/utils/env-loader.js +2 -2
- package/dist/utils/env-loader.js.map +1 -1
- package/dist/utils/id.d.ts +1 -0
- package/dist/utils/id.d.ts.map +1 -1
- package/dist/utils/id.js +10 -0
- package/dist/utils/id.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +6 -16
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-ui.d.ts +6 -7
- package/dist/utils/progress-ui.d.ts.map +1 -1
- package/dist/utils/progress-ui.js +31 -83
- package/dist/utils/progress-ui.js.map +1 -1
- package/dist/utils/tool-registry-builder.d.ts +4 -0
- package/dist/utils/tool-registry-builder.d.ts.map +1 -0
- package/dist/utils/tool-registry-builder.js +47 -0
- package/dist/utils/tool-registry-builder.js.map +1 -0
- package/dist/utils/tracing-decorator-agent.d.ts +25 -0
- package/dist/utils/tracing-decorator-agent.d.ts.map +1 -0
- package/dist/utils/tracing-decorator-agent.js +185 -0
- package/dist/utils/tracing-decorator-agent.js.map +1 -0
- package/dist/utils/tracing-factory.d.ts +9 -0
- package/dist/utils/tracing-factory.d.ts.map +1 -0
- package/dist/utils/tracing-factory.js +68 -0
- package/dist/utils/tracing-factory.js.map +1 -0
- package/dist/utils/tracing-provider.d.ts +13 -0
- package/dist/utils/tracing-provider.d.ts.map +1 -0
- package/dist/utils/tracing-provider.js +74 -0
- package/dist/utils/tracing-provider.js.map +1 -0
- package/dist/utils/tracing-utils.d.ts +10 -0
- package/dist/utils/tracing-utils.d.ts.map +1 -0
- package/dist/utils/tracing-utils.js +55 -0
- package/dist/utils/tracing-utils.js.map +1 -0
- package/package.json +2 -1
- package/dist/agents/architect-agent.d.ts +0 -15
- package/dist/agents/architect-agent.d.ts.map +0 -1
- package/dist/agents/architect-agent.js +0 -41
- package/dist/agents/architect-agent.js.map +0 -1
- package/dist/agents/performance-agent.d.ts +0 -15
- package/dist/agents/performance-agent.d.ts.map +0 -1
- package/dist/agents/performance-agent.js +0 -41
- package/dist/agents/performance-agent.js.map +0 -1
- package/dist/agents/security-agent.d.ts +0 -15
- package/dist/agents/security-agent.d.ts.map +0 -1
- package/dist/agents/security-agent.js +0 -41
- package/dist/agents/security-agent.js.map +0 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TracingLLMProvider = void 0;
|
|
4
|
+
const tracing_types_1 = require("../types/tracing.types");
|
|
5
|
+
const console_1 = require("./console");
|
|
6
|
+
const tracing_utils_1 = require("./tracing-utils");
|
|
7
|
+
class TracingLLMProvider {
|
|
8
|
+
wrappedProvider;
|
|
9
|
+
tracingContext;
|
|
10
|
+
iterationCount = 0;
|
|
11
|
+
agentId;
|
|
12
|
+
constructor(wrappedProvider, tracingContext) {
|
|
13
|
+
this.wrappedProvider = wrappedProvider;
|
|
14
|
+
this.tracingContext = tracingContext;
|
|
15
|
+
}
|
|
16
|
+
setAgentId(agentId) {
|
|
17
|
+
this.agentId = agentId;
|
|
18
|
+
}
|
|
19
|
+
async complete(request) {
|
|
20
|
+
const generationName = `llm-generation-${this.iterationCount}`;
|
|
21
|
+
this.iterationCount++;
|
|
22
|
+
try {
|
|
23
|
+
const generation = (0, tracing_utils_1.getSpanParent)(this.tracingContext, this.agentId).generation({
|
|
24
|
+
name: generationName,
|
|
25
|
+
input: {
|
|
26
|
+
systemPrompt: request.systemPrompt,
|
|
27
|
+
userPrompt: request.userPrompt,
|
|
28
|
+
messages: request.messages,
|
|
29
|
+
model: request.model,
|
|
30
|
+
temperature: request.temperature,
|
|
31
|
+
},
|
|
32
|
+
metadata: {
|
|
33
|
+
model: request.model,
|
|
34
|
+
temperature: request.temperature,
|
|
35
|
+
provider: 'openai',
|
|
36
|
+
iteration: this.iterationCount - 1,
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
try {
|
|
40
|
+
const response = await this.wrappedProvider.complete(request);
|
|
41
|
+
const langfuseUsage = response.usage ? {
|
|
42
|
+
input: response.usage.inputTokens ?? null,
|
|
43
|
+
output: response.usage.outputTokens ?? null,
|
|
44
|
+
total: response.usage.totalTokens ?? null,
|
|
45
|
+
unit: 'TOKENS',
|
|
46
|
+
} : undefined;
|
|
47
|
+
generation.end({
|
|
48
|
+
output: {
|
|
49
|
+
text: response.text,
|
|
50
|
+
toolCalls: response.toolCalls,
|
|
51
|
+
},
|
|
52
|
+
...(langfuseUsage && { usage: langfuseUsage }),
|
|
53
|
+
});
|
|
54
|
+
return response;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
generation.end({
|
|
58
|
+
level: tracing_types_1.SPAN_LEVEL.ERROR,
|
|
59
|
+
statusMessage: error.message,
|
|
60
|
+
});
|
|
61
|
+
throw error;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (tracingError) {
|
|
65
|
+
(0, console_1.logWarning)(`Langfuse tracing failed for LLM call: ${tracingError.message}`);
|
|
66
|
+
return await this.wrappedProvider.complete(request);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
resetIterationCount() {
|
|
70
|
+
this.iterationCount = 0;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.TracingLLMProvider = TracingLLMProvider;
|
|
74
|
+
//# sourceMappingURL=tracing-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing-provider.js","sourceRoot":"","sources":["../../src/utils/tracing-provider.ts"],"names":[],"mappings":";;;AACA,0DAAoE;AACpE,uCAAuC;AACvC,mDAAgD;AAShD,MAAa,kBAAkB;IAKV;IACA;IALX,cAAc,GAAW,CAAC,CAAC;IAC3B,OAAO,CAAU;IAEzB,YACmB,eAA4B,EAC5B,cAA8B;QAD9B,oBAAe,GAAf,eAAe,CAAa;QAC5B,mBAAc,GAAd,cAAc,CAAgB;IAC9C,CAAC;IAQJ,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAQD,KAAK,CAAC,QAAQ,CAAC,OAA0B;QACvC,MAAM,cAAc,GAAG,kBAAkB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC/D,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,IAAI,CAAC;YAGH,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;gBAC7E,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE;oBACL,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;iBACjC;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,QAAQ,EAAE,QAAQ;oBAClB,SAAS,EAAE,IAAI,CAAC,cAAc,GAAG,CAAC;iBACnC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBAG9D,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI;oBACzC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI;oBAC3C,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI;oBACzC,IAAI,EAAE,QAAiB;iBACxB,CAAC,CAAC,CAAC,SAAS,CAAC;gBAGd,UAAU,CAAC,GAAG,CAAC;oBACb,MAAM,EAAE;wBACN,IAAI,EAAE,QAAQ,CAAC,IAAI;wBACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;qBAC9B;oBACD,GAAG,CAAC,aAAa,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;iBAC/C,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC;YAClB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAEpB,UAAU,CAAC,GAAG,CAAC;oBACb,KAAK,EAAE,0BAAU,CAAC,KAAK;oBACvB,aAAa,EAAE,KAAK,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBACH,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAAC,OAAO,YAAiB,EAAE,CAAC;YAE3B,IAAA,oBAAU,EAAC,yCAAyC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAKD,mBAAmB;QACjB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;CACF;AA3FD,gDA2FC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TracingContext } from '../types/tracing.types';
|
|
2
|
+
import { AgentConfig } from '../types/agent.types';
|
|
3
|
+
export declare const CLARIFY_TAG = "clarify";
|
|
4
|
+
export declare const TRACE_NAME_PREFIX = "debate-command";
|
|
5
|
+
export declare function getSpanParent(tracingContext: TracingContext, agentId?: string): ReturnType<TracingContext['trace']['span']> | TracingContext['trace'];
|
|
6
|
+
export declare function collectUniqueToolNames(agentConfigs: AgentConfig[]): string[];
|
|
7
|
+
export declare function collectUniqueAgentRoles(agentConfigs: AgentConfig[]): string[];
|
|
8
|
+
export declare function buildTraceTags(agentConfigs: AgentConfig[], clarificationRequested: boolean): string[];
|
|
9
|
+
export declare function formatTraceNameWithTimestamp(date: Date): string;
|
|
10
|
+
//# sourceMappingURL=tracing-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing-utils.d.ts","sourceRoot":"","sources":["../../src/utils/tracing-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD,eAAO,MAAM,WAAW,YAAY,CAAC;AAKrC,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAiBlD,wBAAgB,aAAa,CAAC,cAAc,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAKrJ;AAQD,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAc5E;AAQD,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAU7E;AAUD,wBAAgB,cAAc,CAAC,YAAY,EAAE,WAAW,EAAE,EAAE,sBAAsB,EAAE,OAAO,GAAG,MAAM,EAAE,CAcrG;AAQD,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAG/D"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TRACE_NAME_PREFIX = exports.CLARIFY_TAG = void 0;
|
|
4
|
+
exports.getSpanParent = getSpanParent;
|
|
5
|
+
exports.collectUniqueToolNames = collectUniqueToolNames;
|
|
6
|
+
exports.collectUniqueAgentRoles = collectUniqueAgentRoles;
|
|
7
|
+
exports.buildTraceTags = buildTraceTags;
|
|
8
|
+
exports.formatTraceNameWithTimestamp = formatTraceNameWithTimestamp;
|
|
9
|
+
const id_1 = require("./id");
|
|
10
|
+
exports.CLARIFY_TAG = 'clarify';
|
|
11
|
+
exports.TRACE_NAME_PREFIX = 'debate-command';
|
|
12
|
+
function getSpanParent(tracingContext, agentId) {
|
|
13
|
+
if (!agentId) {
|
|
14
|
+
return tracingContext.trace;
|
|
15
|
+
}
|
|
16
|
+
return tracingContext.currentSpans.get(agentId) ?? tracingContext.trace;
|
|
17
|
+
}
|
|
18
|
+
function collectUniqueToolNames(agentConfigs) {
|
|
19
|
+
const toolNames = new Set();
|
|
20
|
+
for (const agentConfig of agentConfigs) {
|
|
21
|
+
if (agentConfig.tools && agentConfig.tools.length > 0) {
|
|
22
|
+
for (const tool of agentConfig.tools) {
|
|
23
|
+
if (tool.name && tool.name.trim() !== '') {
|
|
24
|
+
toolNames.add(tool.name);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return Array.from(toolNames).sort();
|
|
30
|
+
}
|
|
31
|
+
function collectUniqueAgentRoles(agentConfigs) {
|
|
32
|
+
const roles = new Set();
|
|
33
|
+
for (const agentConfig of agentConfigs) {
|
|
34
|
+
if (agentConfig.role) {
|
|
35
|
+
roles.add(agentConfig.role);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return Array.from(roles).sort();
|
|
39
|
+
}
|
|
40
|
+
function buildTraceTags(agentConfigs, clarificationRequested) {
|
|
41
|
+
const tags = [];
|
|
42
|
+
if (clarificationRequested) {
|
|
43
|
+
tags.push(exports.CLARIFY_TAG);
|
|
44
|
+
}
|
|
45
|
+
const toolNames = collectUniqueToolNames(agentConfigs);
|
|
46
|
+
tags.push(...toolNames);
|
|
47
|
+
const agentRoles = collectUniqueAgentRoles(agentConfigs);
|
|
48
|
+
tags.push(...agentRoles);
|
|
49
|
+
return tags;
|
|
50
|
+
}
|
|
51
|
+
function formatTraceNameWithTimestamp(date) {
|
|
52
|
+
const timestamp = (0, id_1.formatTimestampForTraceName)(date);
|
|
53
|
+
return `${exports.TRACE_NAME_PREFIX}-${timestamp}`;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tracing-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing-utils.js","sourceRoot":"","sources":["../../src/utils/tracing-utils.ts"],"names":[],"mappings":";;;AA6BA,sCAKC;AAQD,wDAcC;AAQD,0DAUC;AAUD,wCAcC;AAQD,oEAGC;AA3GD,6BAAmD;AAKtC,QAAA,WAAW,GAAG,SAAS,CAAC;AAKxB,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AAiBlD,SAAgB,aAAa,CAAC,cAA8B,EAAE,OAAgB;IAC5E,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,cAAc,CAAC,KAAK,CAAC;IAC9B,CAAC;IACD,OAAO,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC;AAC1E,CAAC;AAQD,SAAgB,sBAAsB,CAAC,YAA2B;IAChE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,KAAK,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBACzC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAQD,SAAgB,uBAAuB,CAAC,YAA2B;IACjE,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;AAClC,CAAC;AAUD,SAAgB,cAAc,CAAC,YAA2B,EAAE,sBAA+B;IACzF,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,IAAI,sBAAsB,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,mBAAW,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,SAAS,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;IACvD,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAExB,MAAM,UAAU,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAEzB,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,SAAgB,4BAA4B,CAAC,IAAU;IACrD,MAAM,SAAS,GAAG,IAAA,gCAA2B,EAAC,IAAI,CAAC,CAAC;IACpD,OAAO,GAAG,yBAAiB,IAAI,SAAS,EAAE,CAAC;AAC7C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dialectic",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cli/index.js",
|
|
6
6
|
"files": [
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
"chalk": "^4.1.2",
|
|
38
38
|
"commander": "^11.0.0",
|
|
39
39
|
"dotenv": "^16.3.1",
|
|
40
|
+
"langfuse": "^3.38.6",
|
|
40
41
|
"openai": "^4.52.0"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Agent } from '../core/agent';
|
|
2
|
-
import { AgentConfig, Proposal, Critique, PromptSource } from '../types/agent.types';
|
|
3
|
-
import { DebateContext } from '../types/debate.types';
|
|
4
|
-
import { LLMProvider } from '../providers/llm-provider';
|
|
5
|
-
export declare class ArchitectAgent extends Agent {
|
|
6
|
-
private readonly resolvedSystemPrompt;
|
|
7
|
-
readonly promptSource?: PromptSource;
|
|
8
|
-
private constructor();
|
|
9
|
-
static create(config: AgentConfig, provider: LLMProvider, resolvedSystemPrompt: string, promptSource?: PromptSource): ArchitectAgent;
|
|
10
|
-
static defaultSystemPrompt(): string;
|
|
11
|
-
propose(problem: string, context: DebateContext): Promise<Proposal>;
|
|
12
|
-
critique(proposal: Proposal, context: DebateContext): Promise<Critique>;
|
|
13
|
-
refine(original: Proposal, critiques: Critique[], context: DebateContext): Promise<Proposal>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=architect-agent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architect-agent.d.ts","sourceRoot":"","sources":["../../src/agents/architect-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAwBxD,qBAAa,cAAe,SAAQ,KAAK;IACvC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAS5C,OAAO;IAgBP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,cAAc;IAOpI,MAAM,CAAC,mBAAmB,IAAI,MAAM;IAQ9B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAanE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAcvE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;CAMnG"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ArchitectAgent = void 0;
|
|
4
|
-
const agent_1 = require("../core/agent");
|
|
5
|
-
const DEFAULT_ARCHITECT_SYSTEM_PROMPT = `You are an expert software architect specializing in distributed systems and scalable architecture design.
|
|
6
|
-
Consider scalability, performance, component boundaries, interfaces, architectural patterns, data flow, state management, and operational concerns.
|
|
7
|
-
When proposing solutions, start with high-level architecture, identify key components, communication patterns, failure modes, and provide clear descriptions.
|
|
8
|
-
When critiquing, look for scalability bottlenecks, missing components, architectural coherence, and operational complexity.`;
|
|
9
|
-
class ArchitectAgent extends agent_1.Agent {
|
|
10
|
-
resolvedSystemPrompt;
|
|
11
|
-
promptSource;
|
|
12
|
-
constructor(config, provider, resolvedSystemPrompt, promptSource) {
|
|
13
|
-
super(config, provider);
|
|
14
|
-
this.resolvedSystemPrompt = resolvedSystemPrompt;
|
|
15
|
-
if (promptSource !== undefined) {
|
|
16
|
-
this.promptSource = promptSource;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
static create(config, provider, resolvedSystemPrompt, promptSource) {
|
|
20
|
-
return new ArchitectAgent(config, provider, resolvedSystemPrompt, promptSource);
|
|
21
|
-
}
|
|
22
|
-
static defaultSystemPrompt() { return DEFAULT_ARCHITECT_SYSTEM_PROMPT; }
|
|
23
|
-
async propose(problem, context) {
|
|
24
|
-
const system = this.resolvedSystemPrompt;
|
|
25
|
-
const user = `Problem to solve:\n${problem}\n\nAs an architect, propose a comprehensive solution including approach, key components, challenges, and justification.`;
|
|
26
|
-
return this.proposeImpl(context, system, user);
|
|
27
|
-
}
|
|
28
|
-
async critique(proposal, context) {
|
|
29
|
-
const system = this.resolvedSystemPrompt;
|
|
30
|
-
const user = `Review this proposal as an architect. Identify strengths, weaknesses, improvements, and critical issues.\n\nProposal:\n${proposal.content}`;
|
|
31
|
-
return this.critiqueImpl(proposal, context, system, user);
|
|
32
|
-
}
|
|
33
|
-
async refine(original, critiques, context) {
|
|
34
|
-
const system = this.resolvedSystemPrompt;
|
|
35
|
-
const critiquesText = critiques.map((c, i) => `Critique ${i + 1}:\n${c.content}`).join('\n\n');
|
|
36
|
-
const user = `Original proposal:\n${original.content}\n\nCritiques:\n${critiquesText}\n\nRefine your proposal addressing valid concerns, incorporating good suggestions, and strengthening the solution.`;
|
|
37
|
-
return this.refineImpl(original, critiques, context, system, user);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.ArchitectAgent = ArchitectAgent;
|
|
41
|
-
//# sourceMappingURL=architect-agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"architect-agent.js","sourceRoot":"","sources":["../../src/agents/architect-agent.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAKtC,MAAM,+BAA+B,GAAG;;;4HAGoF,CAAC;AAmB7H,MAAa,cAAe,SAAQ,aAAK;IACtB,oBAAoB,CAAS;IAC9B,YAAY,CAAgB;IAS5C,YAAoB,MAAmB,EAAE,QAAqB,EAAE,oBAA4B,EAAE,YAA2B;QACvH,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACnC,CAAC;IACH,CAAC;IAUD,MAAM,CAAC,MAAM,CAAC,MAAmB,EAAE,QAAqB,EAAE,oBAA4B,EAAE,YAA2B;QACjH,OAAO,IAAI,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;IAClF,CAAC;IAKD,MAAM,CAAC,mBAAmB,KAAa,OAAO,+BAA+B,CAAC,CAAC,CAAC;IAQhF,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAsB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,IAAI,GAAG,sBAAsB,OAAO,0HAA0H,CAAC;QACrK,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IASD,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAAsB;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,IAAI,GAAG,0HAA0H,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC1J,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAUD,KAAK,CAAC,MAAM,CAAC,QAAkB,EAAE,SAAqB,EAAE,OAAsB;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,uBAAuB,QAAQ,CAAC,OAAO,mBAAmB,aAAa,qHAAqH,CAAC;QAC1M,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;CACF;AA3ED,wCA2EC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Agent } from '../core/agent';
|
|
2
|
-
import { AgentConfig, Proposal, Critique, PromptSource } from '../types/agent.types';
|
|
3
|
-
import { DebateContext } from '../types/debate.types';
|
|
4
|
-
import { LLMProvider } from '../providers/llm-provider';
|
|
5
|
-
export declare class PerformanceAgent extends Agent {
|
|
6
|
-
private readonly resolvedSystemPrompt;
|
|
7
|
-
readonly promptSource?: PromptSource;
|
|
8
|
-
private constructor();
|
|
9
|
-
static create(config: AgentConfig, provider: LLMProvider, resolvedSystemPrompt: string, promptSource?: PromptSource): PerformanceAgent;
|
|
10
|
-
static defaultSystemPrompt(): string;
|
|
11
|
-
propose(problem: string, context: DebateContext): Promise<Proposal>;
|
|
12
|
-
critique(proposal: Proposal, context: DebateContext): Promise<Critique>;
|
|
13
|
-
refine(original: Proposal, critiques: Critique[], context: DebateContext): Promise<Proposal>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=performance-agent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"performance-agent.d.ts","sourceRoot":"","sources":["../../src/agents/performance-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAsBxD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAS5C,OAAO;IAgBP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,gBAAgB;IAOtI,MAAM,CAAC,mBAAmB,IAAI,MAAM;IAQ9B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAanE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAavE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;CAMnG"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PerformanceAgent = void 0;
|
|
4
|
-
const agent_1 = require("../core/agent");
|
|
5
|
-
const DEFAULT_PERFORMANCE_SYSTEM_PROMPT = `You are a performance engineer specializing in system optimization, profiling, and resource management.
|
|
6
|
-
Consider latency, throughput, resource utilization, caching strategies, algorithmic complexity, and performance testing.
|
|
7
|
-
When proposing solutions, include performance requirements, optimization strategies, caching, and metrics.
|
|
8
|
-
When critiquing, look for bottlenecks, inefficient algorithms/data structures, resource usage, and scalability limits.`;
|
|
9
|
-
class PerformanceAgent extends agent_1.Agent {
|
|
10
|
-
resolvedSystemPrompt;
|
|
11
|
-
promptSource;
|
|
12
|
-
constructor(config, provider, resolvedSystemPrompt, promptSource) {
|
|
13
|
-
super(config, provider);
|
|
14
|
-
this.resolvedSystemPrompt = resolvedSystemPrompt;
|
|
15
|
-
if (promptSource !== undefined) {
|
|
16
|
-
this.promptSource = promptSource;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
static create(config, provider, resolvedSystemPrompt, promptSource) {
|
|
20
|
-
return new PerformanceAgent(config, provider, resolvedSystemPrompt, promptSource);
|
|
21
|
-
}
|
|
22
|
-
static defaultSystemPrompt() { return DEFAULT_PERFORMANCE_SYSTEM_PROMPT; }
|
|
23
|
-
async propose(problem, context) {
|
|
24
|
-
const system = this.resolvedSystemPrompt;
|
|
25
|
-
const user = `Problem to solve:\n${problem}\n\nAs a performance engineer, propose a comprehensive solution focusing on latency/throughput, caching, and resource efficiency.`;
|
|
26
|
-
return this.proposeImpl(context, system, user);
|
|
27
|
-
}
|
|
28
|
-
async critique(proposal, context) {
|
|
29
|
-
const system = this.resolvedSystemPrompt;
|
|
30
|
-
const user = `Review this proposal as a performance engineer. Identify strengths, bottlenecks, and concrete improvements.\n\nProposal:\n${proposal.content}`;
|
|
31
|
-
return this.critiqueImpl(proposal, context, system, user);
|
|
32
|
-
}
|
|
33
|
-
async refine(original, critiques, context) {
|
|
34
|
-
const system = this.resolvedSystemPrompt;
|
|
35
|
-
const critiquesText = critiques.map((c, i) => `Critique ${i + 1}:\n${c.content}`).join('\n\n');
|
|
36
|
-
const user = `Original proposal:\n${original.content}\n\nCritiques:\n${critiquesText}\n\nRefine your proposal addressing performance concerns and strengthening the solution.`;
|
|
37
|
-
return this.refineImpl(original, critiques, context, system, user);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.PerformanceAgent = PerformanceAgent;
|
|
41
|
-
//# sourceMappingURL=performance-agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"performance-agent.js","sourceRoot":"","sources":["../../src/agents/performance-agent.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAKtC,MAAM,iCAAiC,GAAG;;;uHAG6E,CAAC;AAiBxH,MAAa,gBAAiB,SAAQ,aAAK;IACxB,oBAAoB,CAAS;IAC9B,YAAY,CAAgB;IAS5C,YAAoB,MAAmB,EAAE,QAAqB,EAAE,oBAA4B,EAAE,YAA2B;QACvH,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACnC,CAAC;IACH,CAAC;IAUD,MAAM,CAAC,MAAM,CAAC,MAAmB,EAAE,QAAqB,EAAE,oBAA4B,EAAE,YAA2B;QACjH,OAAO,IAAI,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;IACpF,CAAC;IAKD,MAAM,CAAC,mBAAmB,KAAa,OAAO,iCAAiC,CAAC,CAAC,CAAC;IAQlF,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAsB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,IAAI,GAAG,sBAAsB,OAAO,mIAAmI,CAAC;QAC9K,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IASD,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAAsB;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,IAAI,GAAG,6HAA6H,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC7J,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IASD,KAAK,CAAC,MAAM,CAAC,QAAkB,EAAE,SAAqB,EAAE,OAAsB;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,uBAAuB,QAAQ,CAAC,OAAO,mBAAmB,aAAa,0FAA0F,CAAC;QAC/K,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;CACF;AA1ED,4CA0EC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Agent } from '../core/agent';
|
|
2
|
-
import { AgentConfig, Proposal, Critique, PromptSource } from '../types/agent.types';
|
|
3
|
-
import { DebateContext } from '../types/debate.types';
|
|
4
|
-
import { LLMProvider } from '../providers/llm-provider';
|
|
5
|
-
export declare class SecurityAgent extends Agent {
|
|
6
|
-
private readonly resolvedSystemPrompt;
|
|
7
|
-
readonly promptSource?: PromptSource;
|
|
8
|
-
private constructor();
|
|
9
|
-
static create(config: AgentConfig, provider: LLMProvider, resolvedSystemPrompt: string, promptSource?: PromptSource): SecurityAgent;
|
|
10
|
-
static defaultSystemPrompt(): string;
|
|
11
|
-
propose(problem: string, context: DebateContext): Promise<Proposal>;
|
|
12
|
-
critique(proposal: Proposal, context: DebateContext): Promise<Critique>;
|
|
13
|
-
refine(original: Proposal, critiques: Critique[], context: DebateContext): Promise<Proposal>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=security-agent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"security-agent.d.ts","sourceRoot":"","sources":["../../src/agents/security-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAwBxD,qBAAa,aAAc,SAAQ,KAAK;IACtC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,SAAgB,YAAY,CAAC,EAAE,YAAY,CAAC;IAU5C,OAAO;IAgBP,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,YAAY,GAAG,aAAa;IAOnI,MAAM,CAAC,mBAAmB,IAAI,MAAM;IAQ9B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAanE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;IAcvE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC;CAMnG"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SecurityAgent = void 0;
|
|
4
|
-
const agent_1 = require("../core/agent");
|
|
5
|
-
const DEFAULT_SECURITY_SYSTEM_PROMPT = `You are a cybersecurity expert specializing in threat modeling, risk assessment, and security architecture.
|
|
6
|
-
Consider authentication, authorization, data protection, network security, application security, compliance frameworks, and operational security.
|
|
7
|
-
When proposing solutions, identify security requirements, threat vectors, security controls, risk mitigation strategies, and compliance considerations.
|
|
8
|
-
When critiquing, look for security vulnerabilities, missing security controls, compliance gaps, and potential attack vectors.`;
|
|
9
|
-
class SecurityAgent extends agent_1.Agent {
|
|
10
|
-
resolvedSystemPrompt;
|
|
11
|
-
promptSource;
|
|
12
|
-
constructor(config, provider, resolvedSystemPrompt, promptSource) {
|
|
13
|
-
super(config, provider);
|
|
14
|
-
this.resolvedSystemPrompt = resolvedSystemPrompt;
|
|
15
|
-
if (promptSource !== undefined) {
|
|
16
|
-
this.promptSource = promptSource;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
static create(config, provider, resolvedSystemPrompt, promptSource) {
|
|
20
|
-
return new SecurityAgent(config, provider, resolvedSystemPrompt, promptSource);
|
|
21
|
-
}
|
|
22
|
-
static defaultSystemPrompt() { return DEFAULT_SECURITY_SYSTEM_PROMPT; }
|
|
23
|
-
async propose(problem, context) {
|
|
24
|
-
const system = this.resolvedSystemPrompt;
|
|
25
|
-
const user = `Problem to solve:\n${problem}\n\nAs a cybersecurity expert, propose a comprehensive solution focusing on security requirements, threat modeling, security controls, and compliance considerations.`;
|
|
26
|
-
return this.proposeImpl(context, system, user);
|
|
27
|
-
}
|
|
28
|
-
async critique(proposal, context) {
|
|
29
|
-
const system = this.resolvedSystemPrompt;
|
|
30
|
-
const user = `Review this proposal as a cybersecurity expert. Identify security vulnerabilities, missing security controls, compliance gaps, and potential attack vectors.\n\nProposal:\n${proposal.content}`;
|
|
31
|
-
return this.critiqueImpl(proposal, context, system, user);
|
|
32
|
-
}
|
|
33
|
-
async refine(original, critiques, context) {
|
|
34
|
-
const system = this.resolvedSystemPrompt;
|
|
35
|
-
const critiquesText = critiques.map((c, i) => `Critique ${i + 1}:\n${c.content}`).join('\n\n');
|
|
36
|
-
const user = `Original proposal:\n${original.content}\n\nCritiques:\n${critiquesText}\n\nRefine your proposal addressing security concerns, strengthening security measures, and incorporating valid security feedback.`;
|
|
37
|
-
return this.refineImpl(original, critiques, context, system, user);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
exports.SecurityAgent = SecurityAgent;
|
|
41
|
-
//# sourceMappingURL=security-agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"security-agent.js","sourceRoot":"","sources":["../../src/agents/security-agent.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAKtC,MAAM,8BAA8B,GAAG;;;8HAGuF,CAAC;AAmB/H,MAAa,aAAc,SAAQ,aAAK;IACrB,oBAAoB,CAAS;IAC9B,YAAY,CAAgB;IAU5C,YAAoB,MAAmB,EAAE,QAAqB,EAAE,oBAA4B,EAAE,YAA2B;QACvH,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxB,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACnC,CAAC;IACH,CAAC;IAUD,MAAM,CAAC,MAAM,CAAC,MAAmB,EAAE,QAAqB,EAAE,oBAA4B,EAAE,YAA2B;QACjH,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,YAAY,CAAC,CAAC;IACjF,CAAC;IAKD,MAAM,CAAC,mBAAmB,KAAa,OAAO,8BAA8B,CAAC,CAAC,CAAC;IAQ/E,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAsB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,IAAI,GAAG,sBAAsB,OAAO,uKAAuK,CAAC;QAClN,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IASD,KAAK,CAAC,QAAQ,CAAC,QAAkB,EAAE,OAAsB;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,IAAI,GAAG,8KAA8K,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC9M,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAUD,KAAK,CAAC,MAAM,CAAC,QAAkB,EAAE,SAAqB,EAAE,OAAsB;QAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACzC,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/F,MAAM,IAAI,GAAG,uBAAuB,QAAQ,CAAC,OAAO,mBAAmB,aAAa,oIAAoI,CAAC;QACzN,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;CACF;AA5ED,sCA4EC"}
|