dialectic 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/agents/role-based-agent.d.ts +3 -2
  2. package/dist/agents/role-based-agent.d.ts.map +1 -1
  3. package/dist/agents/role-based-agent.js +10 -10
  4. package/dist/agents/role-based-agent.js.map +1 -1
  5. package/dist/cli/commands/debate.d.ts.map +1 -1
  6. package/dist/cli/commands/debate.js +44 -31
  7. package/dist/cli/commands/debate.js.map +1 -1
  8. package/dist/cli/commands/eval.js +7 -7
  9. package/dist/cli/commands/eval.js.map +1 -1
  10. package/dist/cli/commands/report.d.ts.map +1 -1
  11. package/dist/cli/commands/report.js +2 -1
  12. package/dist/cli/commands/report.js.map +1 -1
  13. package/dist/cli/index.d.ts +0 -1
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/index.js +0 -4
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/core/agent.d.ts +23 -5
  18. package/dist/core/agent.d.ts.map +1 -1
  19. package/dist/core/agent.js +187 -13
  20. package/dist/core/agent.js.map +1 -1
  21. package/dist/core/judge.js +3 -3
  22. package/dist/core/judge.js.map +1 -1
  23. package/dist/core/orchestrator.js +2 -2
  24. package/dist/core/orchestrator.js.map +1 -1
  25. package/dist/eval/evaluator-agent.js +2 -2
  26. package/dist/eval/evaluator-agent.js.map +1 -1
  27. package/dist/providers/llm-provider.d.ts +24 -0
  28. package/dist/providers/llm-provider.d.ts.map +1 -1
  29. package/dist/providers/llm-provider.js +7 -0
  30. package/dist/providers/llm-provider.js.map +1 -1
  31. package/dist/providers/openai-provider.d.ts +3 -0
  32. package/dist/providers/openai-provider.d.ts.map +1 -1
  33. package/dist/providers/openai-provider.js +70 -9
  34. package/dist/providers/openai-provider.js.map +1 -1
  35. package/dist/providers/openrouter-provider.d.ts +3 -0
  36. package/dist/providers/openrouter-provider.d.ts.map +1 -1
  37. package/dist/providers/openrouter-provider.js +70 -9
  38. package/dist/providers/openrouter-provider.js.map +1 -1
  39. package/dist/tools/context-search-tool.d.ts +12 -0
  40. package/dist/tools/context-search-tool.d.ts.map +1 -0
  41. package/dist/tools/context-search-tool.js +69 -0
  42. package/dist/tools/context-search-tool.js.map +1 -0
  43. package/dist/tools/tool-implementation.d.ts +11 -0
  44. package/dist/tools/tool-implementation.d.ts.map +1 -0
  45. package/dist/tools/tool-implementation.js +34 -0
  46. package/dist/tools/tool-implementation.js.map +1 -0
  47. package/dist/tools/tool-registry.d.ts +13 -0
  48. package/dist/tools/tool-registry.d.ts.map +1 -0
  49. package/dist/tools/tool-registry.js +45 -0
  50. package/dist/tools/tool-registry.js.map +1 -0
  51. package/dist/types/agent.types.d.ts +8 -1
  52. package/dist/types/agent.types.d.ts.map +1 -1
  53. package/dist/types/agent.types.js +2 -1
  54. package/dist/types/agent.types.js.map +1 -1
  55. package/dist/types/debate.types.d.ts +2 -1
  56. package/dist/types/debate.types.d.ts.map +1 -1
  57. package/dist/types/debate.types.js.map +1 -1
  58. package/dist/types/tool.types.d.ts +35 -0
  59. package/dist/types/tool.types.d.ts.map +1 -0
  60. package/dist/types/tool.types.js +8 -0
  61. package/dist/types/tool.types.js.map +1 -0
  62. package/dist/utils/console.d.ts +2 -0
  63. package/dist/utils/console.d.ts.map +1 -0
  64. package/dist/utils/console.js +7 -0
  65. package/dist/utils/console.js.map +1 -0
  66. package/dist/utils/env-loader.js +2 -2
  67. package/dist/utils/env-loader.js.map +1 -1
  68. package/dist/utils/progress-ui.d.ts +16 -7
  69. package/dist/utils/progress-ui.d.ts.map +1 -1
  70. package/dist/utils/progress-ui.js +50 -78
  71. package/dist/utils/progress-ui.js.map +1 -1
  72. package/dist/utils/stderr.d.ts +2 -0
  73. package/dist/utils/stderr.d.ts.map +1 -0
  74. package/dist/utils/stderr.js +7 -0
  75. package/dist/utils/stderr.js.map +1 -0
  76. package/dist/utils/tool-registry-builder.d.ts +5 -0
  77. package/dist/utils/tool-registry-builder.d.ts.map +1 -0
  78. package/dist/utils/tool-registry-builder.js +12 -0
  79. package/dist/utils/tool-registry-builder.js.map +1 -0
  80. package/package.json +1 -1
@@ -5,28 +5,78 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.OpenAIProvider = void 0;
7
7
  const openai_1 = __importDefault(require("openai"));
8
+ const llm_provider_1 = require("./llm-provider");
8
9
  class OpenAIProvider {
9
10
  client;
10
11
  constructor(apiKey) {
11
12
  this.client = new openai_1.default({ apiKey });
12
13
  }
14
+ convertToolsToOpenAIFormat(tools) {
15
+ return tools.map((tool) => ({
16
+ type: 'function',
17
+ function: {
18
+ name: tool.name,
19
+ description: tool.description,
20
+ parameters: tool.parameters,
21
+ },
22
+ }));
23
+ }
24
+ extractToolCallsFromResponsesAPI(resp) {
25
+ if (resp.tool_calls && Array.isArray(resp.tool_calls)) {
26
+ return resp.tool_calls.map((tc) => ({
27
+ id: tc.id || tc.function?.name || '',
28
+ name: tc.function?.name || tc.name || '',
29
+ arguments: typeof tc.function?.arguments === 'string'
30
+ ? tc.function.arguments
31
+ : JSON.stringify(tc.function?.arguments || {}),
32
+ }));
33
+ }
34
+ const nestedToolCalls = resp?.output?.[0]?.content?.[0]?.tool_calls;
35
+ if (nestedToolCalls && Array.isArray(nestedToolCalls)) {
36
+ return nestedToolCalls.map((tc) => ({
37
+ id: tc.id || tc.function?.name || '',
38
+ name: tc.function?.name || tc.name || '',
39
+ arguments: typeof tc.function?.arguments === 'string'
40
+ ? tc.function.arguments
41
+ : JSON.stringify(tc.function?.arguments || {}),
42
+ }));
43
+ }
44
+ return undefined;
45
+ }
46
+ extractToolCallsFromChatAPI(message) {
47
+ if (message.tool_calls && Array.isArray(message.tool_calls)) {
48
+ return message.tool_calls.map((tc) => ({
49
+ id: tc.id || '',
50
+ name: tc.function?.name || '',
51
+ arguments: tc.function?.arguments || '{}',
52
+ }));
53
+ }
54
+ return undefined;
55
+ }
13
56
  async complete(request) {
57
+ const openAITools = request.tools && request.tools.length > 0
58
+ ? this.convertToolsToOpenAIFormat(request.tools)
59
+ : undefined;
60
+ const messages = request.messages || [
61
+ { role: llm_provider_1.CHAT_ROLES.SYSTEM, content: request.systemPrompt },
62
+ { role: llm_provider_1.CHAT_ROLES.USER, content: request.userPrompt },
63
+ ];
14
64
  try {
15
65
  const respPayload = {
16
66
  model: request.model,
17
67
  temperature: request.temperature,
18
- input: [
19
- { role: 'system', content: request.systemPrompt },
20
- { role: 'user', content: request.userPrompt },
21
- ],
68
+ input: messages,
22
69
  };
23
70
  if (request.maxTokens != null)
24
71
  respPayload.max_output_tokens = request.maxTokens;
25
72
  if (request.stopSequences)
26
73
  respPayload.stop = request.stopSequences;
74
+ if (openAITools)
75
+ respPayload.tools = openAITools;
27
76
  const resp = await this.client.responses?.create?.(respPayload);
28
77
  if (resp && resp.output_text) {
29
78
  const usage = resp?.usage ?? resp?.output?.usage;
79
+ const toolCalls = this.extractToolCallsFromResponsesAPI(resp);
30
80
  const out = { text: resp.output_text };
31
81
  if (usage) {
32
82
  out.usage = {
@@ -35,11 +85,15 @@ class OpenAIProvider {
35
85
  totalTokens: usage.total_tokens ?? usage.totalTokens,
36
86
  };
37
87
  }
88
+ if (toolCalls) {
89
+ out.toolCalls = toolCalls;
90
+ }
38
91
  return out;
39
92
  }
40
93
  const outText = resp?.output?.[0]?.content?.[0]?.text;
41
94
  if (outText) {
42
95
  const usage = resp?.usage ?? resp?.output?.usage;
96
+ const toolCalls = this.extractToolCallsFromResponsesAPI(resp);
43
97
  const out = { text: outText };
44
98
  if (usage) {
45
99
  out.usage = {
@@ -48,6 +102,9 @@ class OpenAIProvider {
48
102
  totalTokens: usage.total_tokens ?? usage.totalTokens,
49
103
  };
50
104
  }
105
+ if (toolCalls) {
106
+ out.toolCalls = toolCalls;
107
+ }
51
108
  return out;
52
109
  }
53
110
  throw new Error('Unexpected Responses API response shape');
@@ -55,18 +112,19 @@ class OpenAIProvider {
55
112
  catch (_err) {
56
113
  const chatPayload = {
57
114
  model: request.model,
58
- messages: [
59
- { role: 'system', content: request.systemPrompt },
60
- { role: 'user', content: request.userPrompt },
61
- ],
115
+ messages: messages,
62
116
  temperature: request.temperature,
63
117
  };
64
118
  if (request.maxTokens != null)
65
119
  chatPayload.max_tokens = request.maxTokens;
66
120
  if (request.stopSequences)
67
121
  chatPayload.stop = request.stopSequences;
122
+ if (openAITools)
123
+ chatPayload.tools = openAITools;
68
124
  const chat = await this.client.chat.completions.create(chatPayload);
69
- const txt = chat.choices[0]?.message?.content ?? '';
125
+ const message = chat.choices[0]?.message;
126
+ const txt = message?.content ?? '';
127
+ const toolCalls = message ? this.extractToolCallsFromChatAPI(message) : undefined;
70
128
  const usage = chat.usage;
71
129
  const out = { text: txt };
72
130
  if (usage) {
@@ -76,6 +134,9 @@ class OpenAIProvider {
76
134
  totalTokens: usage.total_tokens,
77
135
  };
78
136
  }
137
+ if (toolCalls) {
138
+ out.toolCalls = toolCalls;
139
+ }
79
140
  return out;
80
141
  }
81
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../src/providers/openai-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-provider.js","sourceRoot":"","sources":["../../src/providers/openai-provider.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,9 @@ import { CompletionRequest, CompletionResponse, LLMProvider } from './llm-provid
2
2
  export declare class OpenRouterProvider implements LLMProvider {
3
3
  private client;
4
4
  constructor(apiKey: string);
5
+ private convertToolsToOpenAIFormat;
6
+ private extractToolCallsFromResponsesAPI;
7
+ private extractToolCallsFromChatAPI;
5
8
  complete(request: CompletionRequest): Promise<CompletionResponse>;
6
9
  }
7
10
  //# sourceMappingURL=openrouter-provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter-provider.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAmBpF,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,MAAM,CAAS;gBAMX,MAAM,EAAE,MAAM;IAqBpB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAyExE"}
1
+ {"version":3,"file":"openrouter-provider.d.ts","sourceRoot":"","sources":["../../src/providers/openrouter-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAoBhG,qBAAa,kBAAmB,YAAW,WAAW;IACpD,OAAO,CAAC,MAAM,CAAS;gBAMX,MAAM,EAAE,MAAM;IAiB1B,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,gCAAgC;IAiCxC,OAAO,CAAC,2BAA2B;IAqB7B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA6FxE"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.OpenRouterProvider = void 0;
7
7
  const openai_1 = __importDefault(require("openai"));
8
+ const llm_provider_1 = require("./llm-provider");
8
9
  const OPENROUTER_BASE_URL = 'https://openrouter.ai/api/v1';
9
10
  const OPENROUTER_HTTP_REFERER = 'dialectic';
10
11
  const OPENROUTER_X_TITLE = 'Dialectic - Multi-Agent Debate';
@@ -20,23 +21,72 @@ class OpenRouterProvider {
20
21
  },
21
22
  });
22
23
  }
24
+ convertToolsToOpenAIFormat(tools) {
25
+ return tools.map((tool) => ({
26
+ type: 'function',
27
+ function: {
28
+ name: tool.name,
29
+ description: tool.description,
30
+ parameters: tool.parameters,
31
+ },
32
+ }));
33
+ }
34
+ extractToolCallsFromResponsesAPI(resp) {
35
+ if (resp.tool_calls && Array.isArray(resp.tool_calls)) {
36
+ return resp.tool_calls.map((tc) => ({
37
+ id: tc.id || tc.function?.name || '',
38
+ name: tc.function?.name || tc.name || '',
39
+ arguments: typeof tc.function?.arguments === 'string'
40
+ ? tc.function.arguments
41
+ : JSON.stringify(tc.function?.arguments || {}),
42
+ }));
43
+ }
44
+ const nestedToolCalls = resp?.output?.[0]?.content?.[0]?.tool_calls;
45
+ if (nestedToolCalls && Array.isArray(nestedToolCalls)) {
46
+ return nestedToolCalls.map((tc) => ({
47
+ id: tc.id || tc.function?.name || '',
48
+ name: tc.function?.name || tc.name || '',
49
+ arguments: typeof tc.function?.arguments === 'string'
50
+ ? tc.function.arguments
51
+ : JSON.stringify(tc.function?.arguments || {}),
52
+ }));
53
+ }
54
+ return undefined;
55
+ }
56
+ extractToolCallsFromChatAPI(message) {
57
+ if (message.tool_calls && Array.isArray(message.tool_calls)) {
58
+ return message.tool_calls.map((tc) => ({
59
+ id: tc.id || '',
60
+ name: tc.function?.name || '',
61
+ arguments: tc.function?.arguments || '{}',
62
+ }));
63
+ }
64
+ return undefined;
65
+ }
23
66
  async complete(request) {
67
+ const openAITools = request.tools && request.tools.length > 0
68
+ ? this.convertToolsToOpenAIFormat(request.tools)
69
+ : undefined;
70
+ const messages = request.messages || [
71
+ { role: llm_provider_1.CHAT_ROLES.SYSTEM, content: request.systemPrompt },
72
+ { role: llm_provider_1.CHAT_ROLES.USER, content: request.userPrompt },
73
+ ];
24
74
  try {
25
75
  const respPayload = {
26
76
  model: request.model,
27
77
  temperature: request.temperature,
28
- input: [
29
- { role: 'system', content: request.systemPrompt },
30
- { role: 'user', content: request.userPrompt },
31
- ],
78
+ input: messages,
32
79
  };
33
80
  if (request.maxTokens != null)
34
81
  respPayload.max_output_tokens = request.maxTokens;
35
82
  if (request.stopSequences)
36
83
  respPayload.stop = request.stopSequences;
84
+ if (openAITools)
85
+ respPayload.tools = openAITools;
37
86
  const resp = await this.client.responses?.create?.(respPayload);
38
87
  if (resp && resp.output_text) {
39
88
  const usage = resp?.usage ?? resp?.output?.usage;
89
+ const toolCalls = this.extractToolCallsFromResponsesAPI(resp);
40
90
  const out = { text: resp.output_text };
41
91
  if (usage) {
42
92
  out.usage = {
@@ -45,11 +95,15 @@ class OpenRouterProvider {
45
95
  totalTokens: usage.total_tokens ?? usage.totalTokens,
46
96
  };
47
97
  }
98
+ if (toolCalls) {
99
+ out.toolCalls = toolCalls;
100
+ }
48
101
  return out;
49
102
  }
50
103
  const outText = resp?.output?.[0]?.content?.[0]?.text;
51
104
  if (outText) {
52
105
  const usage = resp?.usage ?? resp?.output?.usage;
106
+ const toolCalls = this.extractToolCallsFromResponsesAPI(resp);
53
107
  const out = { text: outText };
54
108
  if (usage) {
55
109
  out.usage = {
@@ -58,6 +112,9 @@ class OpenRouterProvider {
58
112
  totalTokens: usage.total_tokens ?? usage.totalTokens,
59
113
  };
60
114
  }
115
+ if (toolCalls) {
116
+ out.toolCalls = toolCalls;
117
+ }
61
118
  return out;
62
119
  }
63
120
  throw new Error('Unexpected Responses API response shape');
@@ -65,18 +122,19 @@ class OpenRouterProvider {
65
122
  catch (_err) {
66
123
  const chatPayload = {
67
124
  model: request.model,
68
- messages: [
69
- { role: 'system', content: request.systemPrompt },
70
- { role: 'user', content: request.userPrompt },
71
- ],
125
+ messages: messages,
72
126
  temperature: request.temperature,
73
127
  };
74
128
  if (request.maxTokens != null)
75
129
  chatPayload.max_tokens = request.maxTokens;
76
130
  if (request.stopSequences)
77
131
  chatPayload.stop = request.stopSequences;
132
+ if (openAITools)
133
+ chatPayload.tools = openAITools;
78
134
  const chat = await this.client.chat.completions.create(chatPayload);
79
- const txt = chat.choices[0]?.message?.content ?? '';
135
+ const message = chat.choices[0]?.message;
136
+ const txt = message?.content ?? '';
137
+ const toolCalls = message ? this.extractToolCallsFromChatAPI(message) : undefined;
80
138
  const usage = chat.usage;
81
139
  const out = { text: txt };
82
140
  if (usage) {
@@ -86,6 +144,9 @@ class OpenRouterProvider {
86
144
  totalTokens: usage.total_tokens,
87
145
  };
88
146
  }
147
+ if (toolCalls) {
148
+ out.toolCalls = toolCalls;
149
+ }
89
150
  return out;
90
151
  }
91
152
  }
@@ -1 +1 @@
1
- {"version":3,"file":"openrouter-provider.js","sourceRoot":"","sources":["../../src/providers/openrouter-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openrouter-provider.js","sourceRoot":"","sources":["../../src/providers/openrouter-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { ToolImplementation } from './tool-implementation';
2
+ import { ToolSchema } from '../types/tool.types';
3
+ import { DebateContext } from '../types/debate.types';
4
+ export declare class ContextSearchTool implements ToolImplementation {
5
+ name: string;
6
+ schema: ToolSchema;
7
+ execute(args: {
8
+ term?: string;
9
+ }, context?: DebateContext): string;
10
+ private processContributionMatch;
11
+ }
12
+ //# sourceMappingURL=context-search-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-search-tool.d.ts","sourceRoot":"","sources":["../../src/tools/context-search-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA8C,MAAM,uBAAuB,CAAC;AACvG,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAgB,MAAM,uBAAuB,CAAC;AAsBpE,qBAAa,iBAAkB,YAAW,kBAAkB;IAC1D,IAAI,SAAoB;IAExB,MAAM,EAAE,UAAU,CAahB;IAUF,OAAO,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM;IA2CjE,OAAO,CAAC,wBAAwB;CAqBjC"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContextSearchTool = void 0;
4
+ const tool_implementation_1 = require("./tool-implementation");
5
+ const MAX_CONTENT_SNIPPET_LENGTH = 200;
6
+ class ContextSearchTool {
7
+ name = 'context_search';
8
+ schema = {
9
+ name: 'context_search',
10
+ description: 'Search for a term in the debate history. Returns relevant contributions containing the search term.',
11
+ parameters: {
12
+ type: 'object',
13
+ properties: {
14
+ term: {
15
+ type: 'string',
16
+ description: 'The search term to find in debate history',
17
+ },
18
+ },
19
+ required: ['term'],
20
+ },
21
+ };
22
+ execute(args, context) {
23
+ if (!context) {
24
+ return (0, tool_implementation_1.createToolErrorJson)('Context is required for context search');
25
+ }
26
+ if (!args.term || typeof args.term !== 'string') {
27
+ return (0, tool_implementation_1.createToolErrorJson)('Search term is required and must be a string');
28
+ }
29
+ if (!context.history || context.history.length === 0) {
30
+ return (0, tool_implementation_1.createToolSuccessJson)({
31
+ matches: [],
32
+ });
33
+ }
34
+ const searchTerm = args.term.toLowerCase();
35
+ const matches = [];
36
+ for (const round of context.history) {
37
+ if (!round.contributions)
38
+ continue;
39
+ for (const contribution of round.contributions) {
40
+ const match = this.processContributionMatch(contribution, searchTerm, round.roundNumber);
41
+ if (match) {
42
+ matches.push(match);
43
+ }
44
+ }
45
+ }
46
+ return (0, tool_implementation_1.createToolSuccessJson)({
47
+ matches,
48
+ });
49
+ }
50
+ processContributionMatch(contribution, searchTerm, roundNumber) {
51
+ const content = contribution.content.toLowerCase();
52
+ if (!content.includes(searchTerm)) {
53
+ return null;
54
+ }
55
+ const snippet = contribution.content.substring(0, MAX_CONTENT_SNIPPET_LENGTH);
56
+ const truncatedSnippet = contribution.content.length > MAX_CONTENT_SNIPPET_LENGTH
57
+ ? snippet + '...'
58
+ : snippet;
59
+ return {
60
+ roundNumber,
61
+ agentId: contribution.agentId,
62
+ agentRole: contribution.agentRole,
63
+ type: contribution.type,
64
+ contentSnippet: truncatedSnippet,
65
+ };
66
+ }
67
+ }
68
+ exports.ContextSearchTool = ContextSearchTool;
69
+ //# sourceMappingURL=context-search-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-search-tool.js","sourceRoot":"","sources":["../../src/tools/context-search-tool.ts"],"names":[],"mappings":";;;AAAA,+DAAuG;AAOvG,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAiBvC,MAAa,iBAAiB;IAC5B,IAAI,GAAG,gBAAgB,CAAC;IAExB,MAAM,GAAe;QACnB,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,qGAAqG;QAClH,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2CAA2C;iBACzD;aACF;YACD,QAAQ,EAAE,CAAC,MAAM,CAAC;SACnB;KACF,CAAC;IAUF,OAAO,CAAC,IAAuB,EAAE,OAAuB;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAA,yCAAmB,EAAC,wCAAwC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO,IAAA,yCAAmB,EAAC,8CAA8C,CAAC,CAAC;QAC7E,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,IAAA,2CAAqB,EAAC;gBAC3B,OAAO,EAAE,EAAE;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAyB,EAAE,CAAC;QAGzC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,aAAa;gBAAE,SAAS;YAEnC,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACzF,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAA,2CAAqB,EAAC;YAC3B,OAAO;SACR,CAAC,CAAC;IACL,CAAC;IAUO,wBAAwB,CAAE,YAA0B,EAAE,UAAkB,EAAE,WAAmB;QACnG,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QAEnD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAGD,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAC9E,MAAM,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,0BAA0B;YAC/E,CAAC,CAAC,OAAO,GAAG,KAAK;YACjB,CAAC,CAAC,OAAO,CAAC;QAEZ,OAAO;YACL,WAAW;YACX,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,cAAc,EAAE,gBAAgB;SACjC,CAAC;IACJ,CAAC;CACF;AA1FD,8CA0FC"}
@@ -0,0 +1,11 @@
1
+ import { ToolSchema, ToolResult, ToolResultStatus } from '../types/tool.types';
2
+ import { DebateContext } from '../types/debate.types';
3
+ export interface ToolImplementation {
4
+ name: string;
5
+ schema: ToolSchema;
6
+ execute(args: any, context?: DebateContext): string;
7
+ }
8
+ export declare function createToolErrorJson(errorMessage: string): string;
9
+ export declare function createToolSuccessJson(result: any): string;
10
+ export declare function createToolResult(callId: string, status: ToolResultStatus, result?: any, error?: string): ToolResult;
11
+ //# sourceMappingURL=tool-implementation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-implementation.d.ts","sourceRoot":"","sources":["../../src/tools/tool-implementation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAsB,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOtD,MAAM,WAAW,kBAAkB;IAEjC,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,UAAU,CAAC;IAQnB,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;CACrD;AASD,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAKhE;AASD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAKzD;AAWD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,gBAAgB,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,KAAK,CAAC,EAAE,MAAM,GACb,UAAU,CAaZ"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createToolErrorJson = createToolErrorJson;
4
+ exports.createToolSuccessJson = createToolSuccessJson;
5
+ exports.createToolResult = createToolResult;
6
+ const tool_types_1 = require("../types/tool.types");
7
+ const llm_provider_1 = require("../providers/llm-provider");
8
+ function createToolErrorJson(errorMessage) {
9
+ return JSON.stringify({
10
+ status: tool_types_1.TOOL_RESULT_STATUS.ERROR,
11
+ error: errorMessage,
12
+ });
13
+ }
14
+ function createToolSuccessJson(result) {
15
+ return JSON.stringify({
16
+ status: tool_types_1.TOOL_RESULT_STATUS.SUCCESS,
17
+ result,
18
+ });
19
+ }
20
+ function createToolResult(callId, status, result, error) {
21
+ const content = { status };
22
+ if (status === tool_types_1.TOOL_RESULT_STATUS.SUCCESS && result !== undefined) {
23
+ content.result = result;
24
+ }
25
+ else if (status === tool_types_1.TOOL_RESULT_STATUS.ERROR && error !== undefined) {
26
+ content.error = error;
27
+ }
28
+ return {
29
+ tool_call_id: callId,
30
+ role: llm_provider_1.CHAT_ROLES.TOOL,
31
+ content: JSON.stringify(content),
32
+ };
33
+ }
34
+ //# sourceMappingURL=tool-implementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-implementation.js","sourceRoot":"","sources":["../../src/tools/tool-implementation.ts"],"names":[],"mappings":";;AA8BA,kDAKC;AASD,sDAKC;AAWD,4CAkBC;AA9ED,oDAAmG;AAEnG,4DAAuD;AA4BvD,SAAgB,mBAAmB,CAAC,YAAoB;IACtD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,MAAM,EAAE,+BAAkB,CAAC,KAAK;QAChC,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC;AASD,SAAgB,qBAAqB,CAAC,MAAW;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,MAAM,EAAE,+BAAkB,CAAC,OAAO;QAClC,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAWD,SAAgB,gBAAgB,CAC9B,MAAc,EACd,MAAwB,EACxB,MAAY,EACZ,KAAc;IAEd,MAAM,OAAO,GAAQ,EAAE,MAAM,EAAE,CAAC;IAChC,IAAI,MAAM,KAAK,+BAAkB,CAAC,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAClE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,CAAC;SAAM,IAAI,MAAM,KAAK,+BAAkB,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,OAAO;QACL,YAAY,EAAE,MAAM;QACpB,IAAI,EAAE,yBAAU,CAAC,IAAI;QACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KACjC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ToolImplementation } from './tool-implementation';
2
+ import { ToolSchema } from '../types/tool.types';
3
+ export declare class ToolRegistry {
4
+ private tools;
5
+ register(tool: ToolImplementation): void;
6
+ get(name: string): ToolImplementation | undefined;
7
+ has(name: string): boolean;
8
+ getAllSchemas(): ToolSchema[];
9
+ hasTools(): boolean;
10
+ extend(baseRegistry: ToolRegistry): ToolRegistry;
11
+ }
12
+ export declare function createBaseRegistry(): ToolRegistry;
13
+ //# sourceMappingURL=tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.d.ts","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAOjD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA8C;IAQ3D,QAAQ,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAUxC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAUjD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAS1B,aAAa,IAAI,UAAU,EAAE;IAI7B,QAAQ,IAAI,OAAO;IAYnB,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,YAAY;CAmBjD;AAQD,wBAAgB,kBAAkB,IAAI,YAAY,CAQjD"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ToolRegistry = void 0;
4
+ exports.createBaseRegistry = createBaseRegistry;
5
+ const context_search_tool_1 = require("./context-search-tool");
6
+ class ToolRegistry {
7
+ tools = new Map();
8
+ register(tool) {
9
+ this.tools.set(tool.name, tool);
10
+ }
11
+ get(name) {
12
+ return this.tools.get(name);
13
+ }
14
+ has(name) {
15
+ return this.tools.has(name);
16
+ }
17
+ getAllSchemas() {
18
+ return Array.from(this.tools.values()).map((tool) => tool.schema);
19
+ }
20
+ hasTools() {
21
+ return this.tools.size > 0;
22
+ }
23
+ extend(baseRegistry) {
24
+ const extended = new ToolRegistry();
25
+ const baseSchemas = baseRegistry.getAllSchemas();
26
+ for (const schema of baseSchemas) {
27
+ const tool = baseRegistry.get(schema.name);
28
+ if (tool) {
29
+ extended.register(tool);
30
+ }
31
+ }
32
+ for (const [, tool] of this.tools) {
33
+ extended.register(tool);
34
+ }
35
+ return extended;
36
+ }
37
+ }
38
+ exports.ToolRegistry = ToolRegistry;
39
+ function createBaseRegistry() {
40
+ const registry = new ToolRegistry();
41
+ const contextSearchTool = new context_search_tool_1.ContextSearchTool();
42
+ registry.register(contextSearchTool);
43
+ return registry;
44
+ }
45
+ //# sourceMappingURL=tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-registry.js","sourceRoot":"","sources":["../../src/tools/tool-registry.ts"],"names":[],"mappings":";;;AAyFA,gDAQC;AA/FD,+DAA0D;AAM1D,MAAa,YAAY;IACf,KAAK,GAAoC,IAAI,GAAG,EAAE,CAAC;IAQ3D,QAAQ,CAAC,IAAwB;QAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAQD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAQD,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAOD,aAAa;QACX,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;IAC7B,CAAC;IAUD,MAAM,CAAC,YAA0B;QAC/B,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAGpC,MAAM,WAAW,GAAG,YAAY,CAAC,aAAa,EAAE,CAAC;QACjD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,IAAI,EAAE,CAAC;gBACT,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAGD,KAAK,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAzED,oCAyEC;AAQD,SAAgB,kBAAkB;IAChC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IAGpC,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAErC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { SummarizationConfig } from './config.types';
2
+ import type { ToolSchema, ToolCallMetadata } from './tool.types';
2
3
  export declare const AGENT_ROLES: {
3
4
  readonly ARCHITECT: "architect";
4
5
  readonly SECURITY: "security";
@@ -17,6 +18,7 @@ export declare const PROMPT_SOURCES: {
17
18
  readonly FILE: "file";
18
19
  };
19
20
  export type PromptSourceType = (typeof PROMPT_SOURCES)[keyof typeof PROMPT_SOURCES];
21
+ export declare const DEFAULT_TOOL_CALL_LIMIT = 10;
20
22
  export interface AgentConfig {
21
23
  id: string;
22
24
  name: string;
@@ -29,8 +31,10 @@ export interface AgentConfig {
29
31
  clarificationPromptPath?: string;
30
32
  summarization?: SummarizationConfig;
31
33
  enabled?: boolean;
34
+ tools?: ToolSchema[];
35
+ toolCallLimit?: number;
32
36
  }
33
- export interface ContributionMetadata {
37
+ export interface ContributionMetadata extends ToolCallMetadata {
34
38
  tokensUsed?: number;
35
39
  latencyMs?: number;
36
40
  model?: string;
@@ -56,6 +60,9 @@ export interface JudgePromptMetadata {
56
60
  summarySource?: PromptSourceType;
57
61
  summaryPath?: string;
58
62
  }
63
+ export interface AgentPromptMetadataCollection {
64
+ agents: AgentPromptMetadata[];
65
+ }
59
66
  export interface Proposal extends AgentResponse {
60
67
  }
61
68
  export interface Critique extends AgentResponse {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.types.d.ts","sourceRoot":"","sources":["../../src/types/agent.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAK1D,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAgBpF,MAAM,WAAW,WAAW;IAE1B,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,SAAS,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,OAAO,aAAa,CAAC,MAAM,GAAG,OAAO,aAAa,CAAC,UAAU,CAAC;IAExE,WAAW,EAAE,MAAM,CAAC;IAEpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AASD,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,aAAa;IAE5B,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAQD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAWD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,MAAM,WAAW,QAAS,SAAQ,aAAa;CAAG;AAElD,MAAM,WAAW,QAAS,SAAQ,aAAa;CAAG"}
1
+ {"version":3,"file":"agent.types.d.ts","sourceRoot":"","sources":["../../src/types/agent.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKjE,eAAO,MAAM,WAAW;;;;;;;CAOd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAKpF,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAkB1C,MAAM,WAAW,WAAW;IAE1B,EAAE,EAAE,MAAM,CAAC;IAEX,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,SAAS,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;IAEd,QAAQ,EAAE,OAAO,aAAa,CAAC,MAAM,GAAG,OAAO,aAAa,CAAC,UAAU,CAAC;IAExE,WAAW,EAAE,MAAM,CAAC;IAEpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,MAAM,WAAW,aAAa;IAE5B,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,EAAE,oBAAoB,CAAC;CAChC;AAQD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAUD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAWD,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,gBAAgB,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AAID,MAAM,WAAW,QAAS,SAAQ,aAAa;CAAG;AAElD,MAAM,WAAW,QAAS,SAAQ,aAAa;CAAG"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PROMPT_SOURCES = exports.LLM_PROVIDERS = exports.AGENT_ROLES = void 0;
3
+ exports.DEFAULT_TOOL_CALL_LIMIT = exports.PROMPT_SOURCES = exports.LLM_PROVIDERS = exports.AGENT_ROLES = void 0;
4
4
  exports.AGENT_ROLES = {
5
5
  ARCHITECT: "architect",
6
6
  SECURITY: "security",
@@ -17,4 +17,5 @@ exports.PROMPT_SOURCES = {
17
17
  BUILT_IN: "built-in",
18
18
  FILE: "file",
19
19
  };
20
+ exports.DEFAULT_TOOL_CALL_LIMIT = 10;
20
21
  //# sourceMappingURL=agent.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.types.js","sourceRoot":"","sources":["../../src/types/agent.types.ts"],"names":[],"mappings":";;;AAKa,QAAA,WAAW,GAAG;IACzB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;CACJ,CAAC;AAIE,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;CAChB,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;CACJ,CAAC"}
1
+ {"version":3,"file":"agent.types.js","sourceRoot":"","sources":["../../src/types/agent.types.ts"],"names":[],"mappings":";;;AAMa,QAAA,WAAW,GAAG;IACzB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;CACJ,CAAC;AAIE,QAAA,aAAa,GAAG;IAC3B,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;CAChB,CAAC;AAEE,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;CACJ,CAAC;AAOE,QAAA,uBAAuB,GAAG,EAAE,CAAC"}