repoburg 1.3.75 → 1.3.77
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/backend/dist/src/app.module.js +2 -0
- package/backend/dist/src/app.module.js.map +1 -1
- package/backend/dist/src/llm-orchestration/action-handlers/invoke-subagent.handler.d.ts +3 -1
- package/backend/dist/src/llm-orchestration/action-handlers/invoke-subagent.handler.js +20 -3
- package/backend/dist/src/llm-orchestration/action-handlers/invoke-subagent.handler.js.map +1 -1
- package/backend/dist/src/llm-orchestration/hooks/sub-agent-final-response.hook.d.ts +3 -1
- package/backend/dist/src/llm-orchestration/hooks/sub-agent-final-response.hook.js +32 -2
- package/backend/dist/src/llm-orchestration/hooks/sub-agent-final-response.hook.js.map +1 -1
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.d.ts +3 -1
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js +34 -5
- package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js.map +1 -1
- package/backend/dist/src/sub-agents/sub-agent-run.entity.d.ts +26 -0
- package/backend/dist/src/sub-agents/sub-agent-run.entity.js +93 -0
- package/backend/dist/src/sub-agents/sub-agent-run.entity.js.map +1 -0
- package/backend/dist/src/sub-agents/sub-agent-runs.controller.d.ts +18 -0
- package/backend/dist/src/sub-agents/sub-agent-runs.controller.js +85 -0
- package/backend/dist/src/sub-agents/sub-agent-runs.controller.js.map +1 -0
- package/backend/dist/src/sub-agents/sub-agent-runs.service.d.ts +23 -0
- package/backend/dist/src/sub-agents/sub-agent-runs.service.js +132 -0
- package/backend/dist/src/sub-agents/sub-agent-runs.service.js.map +1 -0
- package/backend/dist/src/sub-agents/sub-agents.module.js +11 -4
- package/backend/dist/src/sub-agents/sub-agents.module.js.map +1 -1
- package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -13,6 +13,7 @@ const app_service_1 = require("./app.service");
|
|
|
13
13
|
const typeorm_1 = require("@nestjs/typeorm");
|
|
14
14
|
const core_entities_1 = require("./core-entities");
|
|
15
15
|
const sub_agent_entity_1 = require("./sub-agents/sub-agent.entity");
|
|
16
|
+
const sub_agent_run_entity_1 = require("./sub-agents/sub-agent-run.entity");
|
|
16
17
|
const projects_module_1 = require("./projects/projects.module");
|
|
17
18
|
const sessions_module_1 = require("./sessions/sessions.module");
|
|
18
19
|
const session_inputs_module_1 = require("./session-inputs/session-inputs.module");
|
|
@@ -76,6 +77,7 @@ exports.AppModule = AppModule = __decorate([
|
|
|
76
77
|
core_entities_1.ToolHook,
|
|
77
78
|
core_entities_1.LlmCallLog,
|
|
78
79
|
sub_agent_entity_1.SubAgent,
|
|
80
|
+
sub_agent_run_entity_1.SubAgentRun,
|
|
79
81
|
],
|
|
80
82
|
subscribers: [session_input_subscriber_1.SessionInputSubscriber],
|
|
81
83
|
synchronize: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,6CAAgD;AAChD,mDAgByB;AACzB,oEAAyD;AACzD,gEAA4D;AAC5D,gEAA4D;AAC5D,kFAA6E;AAC7E,sEAAiE;AACjE,kFAA6E;AAC7E,2FAAsF;AACtF,8FAAyF;AACzF,kFAA6E;AAC7E,6DAAyD;AACzD,mEAA+D;AAC/D,qFAAgF;AAChF,6BAA6B;AAC7B,yBAAyB;AACzB,wFAAmF;AACnF,wFAAmF;AACnF,2FAAsF;AACtF,+EAA0E;AAC1E,0DAAsD;AACtD,wFAAmF;AACnF,gEAAuE;AACvE,iDAA6C;AAC7C,+EAA0E;AAC1E,wFAAmF;AACnF,sEAAiE;AACjE,yEAAoE;AACpE,wFAAmF;AACnF,+EAAyE;AAEzE,IAAI,MAAM,GAAG,UAAU,CAAC;AAExB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC;
|
|
1
|
+
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,+CAA2C;AAC3C,6CAAgD;AAChD,mDAgByB;AACzB,oEAAyD;AACzD,4EAAgE;AAChE,gEAA4D;AAC5D,gEAA4D;AAC5D,kFAA6E;AAC7E,sEAAiE;AACjE,kFAA6E;AAC7E,2FAAsF;AACtF,8FAAyF;AACzF,kFAA6E;AAC7E,6DAAyD;AACzD,mEAA+D;AAC/D,qFAAgF;AAChF,6BAA6B;AAC7B,yBAAyB;AACzB,wFAAmF;AACnF,wFAAmF;AACnF,2FAAsF;AACtF,+EAA0E;AAC1E,0DAAsD;AACtD,wFAAmF;AACnF,gEAAuE;AACvE,iDAA6C;AAC7C,+EAA0E;AAC1E,wFAAmF;AACnF,sEAAiE;AACjE,yEAAoE;AACpE,wFAAmF;AACnF,+EAAyE;AAEzE,IAAI,MAAM,GAAG,UAAU,CAAC;AAExB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACvE,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IACD,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;AACzD,CAAC;AA0DM,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAxDrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,OAAO,CAAC;gBACpB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE;oBACR,uBAAO;oBACP,uBAAO;oBACP,+BAAe;oBACf,4BAAY;oBACZ,wBAAQ;oBACR,4BAAY;oBACZ,4BAAY;oBACZ,6BAAa;oBACb,gCAAgB;oBAChB,8BAAc;oBACd,yBAAS;oBACT,uBAAO;oBACP,8BAAc;oBACd,wBAAQ;oBACR,0BAAU;oBACV,2BAAQ;oBACR,kCAAW;iBACZ;gBACD,WAAW,EAAE,CAAC,iDAAsB,CAAC;gBACrC,WAAW,EAAE,IAAI;gBACjB,gBAAgB,EAAE,IAAI;aACvB,CAAC;YACF,gCAAc;YACd,gCAAc;YACd,2CAAmB;YACnB,mCAAe;YACf,2CAAmB;YACnB,iDAAsB;YACtB,mDAAuB;YACvB,2CAAmB;YACnB,8BAAa;YACb,kCAAe;YACf,6CAAoB;YACpB,+CAAqB;YACrB,+CAAqB;YACrB,iDAAsB;YACtB,yCAAkB;YAClB,4BAAY;YACZ,+CAAqB;YACrB,mCAAqB;YACrB,sBAAS;YACT,yCAAkB;YAClB,+CAAqB;YACrB,mCAAe;YACf,qCAAgB;YAChB,wCAAiB;SAClB;QACD,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,wBAAU,CAAC;KACxB,CAAC;GACW,SAAS,CAAG"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { ActionHandler } from './action-handler.interface';
|
|
2
2
|
import { ActionExecutionResult, PlanExecutionContext, ToolMetadata } from '../llm-orchestration.interfaces';
|
|
3
3
|
import { SubAgentsService } from '../../sub-agents/sub-agents.service';
|
|
4
|
+
import { SubAgentRunsService } from '../../sub-agents/sub-agent-runs.service';
|
|
4
5
|
import { SessionsService } from '../../sessions/sessions.service';
|
|
5
6
|
import { SessionInputsService } from '../../session-inputs/session-inputs.service';
|
|
6
7
|
import { MessageBusService } from '../../message-bus/message-bus.service';
|
|
7
8
|
export declare class InvokeSubAgentHandler implements ActionHandler {
|
|
8
9
|
private readonly subAgentsService;
|
|
10
|
+
private readonly subAgentRunsService;
|
|
9
11
|
private readonly sessionsService;
|
|
10
12
|
private readonly sessionInputsService;
|
|
11
13
|
private readonly messageBusService;
|
|
12
14
|
readonly toolName = "invoke_subagent";
|
|
13
15
|
private readonly logger;
|
|
14
|
-
constructor(subAgentsService: SubAgentsService, sessionsService: SessionsService, sessionInputsService: SessionInputsService, messageBusService: MessageBusService);
|
|
16
|
+
constructor(subAgentsService: SubAgentsService, subAgentRunsService: SubAgentRunsService, sessionsService: SessionsService, sessionInputsService: SessionInputsService, messageBusService: MessageBusService);
|
|
15
17
|
getMetadata(): ToolMetadata;
|
|
16
18
|
getDefinition(): string;
|
|
17
19
|
execute(args: Record<string, any>, context: PlanExecutionContext): Promise<ActionExecutionResult>;
|
|
@@ -13,12 +13,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.InvokeSubAgentHandler = void 0;
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const sub_agents_service_1 = require("../../sub-agents/sub-agents.service");
|
|
16
|
+
const sub_agent_runs_service_1 = require("../../sub-agents/sub-agent-runs.service");
|
|
16
17
|
const sessions_service_1 = require("../../sessions/sessions.service");
|
|
17
18
|
const session_inputs_service_1 = require("../../session-inputs/session-inputs.service");
|
|
18
19
|
const message_bus_service_1 = require("../../message-bus/message-bus.service");
|
|
19
20
|
let InvokeSubAgentHandler = InvokeSubAgentHandler_1 = class InvokeSubAgentHandler {
|
|
20
|
-
constructor(subAgentsService, sessionsService, sessionInputsService, messageBusService) {
|
|
21
|
+
constructor(subAgentsService, subAgentRunsService, sessionsService, sessionInputsService, messageBusService) {
|
|
21
22
|
this.subAgentsService = subAgentsService;
|
|
23
|
+
this.subAgentRunsService = subAgentRunsService;
|
|
22
24
|
this.sessionsService = sessionsService;
|
|
23
25
|
this.sessionInputsService = sessionInputsService;
|
|
24
26
|
this.messageBusService = messageBusService;
|
|
@@ -68,6 +70,12 @@ let InvokeSubAgentHandler = InvokeSubAgentHandler_1 = class InvokeSubAgentHandle
|
|
|
68
70
|
|
|
69
71
|
Delegate a task to a specialized sub-agent. The sub-agent will run autonomously and return its result.
|
|
70
72
|
|
|
73
|
+
### Behavior:
|
|
74
|
+
- Multiple subagents can be spawned in parallel for concurrent execution
|
|
75
|
+
- Regular tools (create_file, run_command, etc.) are blocked while subagents are running
|
|
76
|
+
- Subagent results are delivered to you automatically in follow-up messages
|
|
77
|
+
- You may continue spawning additional subagents while others are running
|
|
78
|
+
|
|
71
79
|
### Parameters:
|
|
72
80
|
- **agent_name** (required): The name of sub-agent to invoke
|
|
73
81
|
- **prompt** (required): The task or question to pass to sub-agent
|
|
@@ -136,6 +144,14 @@ args: {
|
|
|
136
144
|
parent_session_id: context.session_id,
|
|
137
145
|
});
|
|
138
146
|
this.logger.log(`Created session: ${subAgentSession.id}`);
|
|
147
|
+
await this.subAgentRunsService.create({
|
|
148
|
+
parent_session_id: context.session_id,
|
|
149
|
+
child_session_id: subAgentSession.id,
|
|
150
|
+
sub_agent_id: subAgent.id,
|
|
151
|
+
agent_name: agentName,
|
|
152
|
+
initial_prompt: prompt,
|
|
153
|
+
});
|
|
154
|
+
this.logger.log(`Created SubAgentRun for parent ${context.session_id} -> child ${subAgentSession.id}`);
|
|
139
155
|
const adHocContextDef = passContext
|
|
140
156
|
? context.masterContextDefinition
|
|
141
157
|
: undefined;
|
|
@@ -181,7 +197,7 @@ args: {
|
|
|
181
197
|
prompt,
|
|
182
198
|
},
|
|
183
199
|
execution_log: {
|
|
184
|
-
output: `Sub-agent "${agentName}" spawned
|
|
200
|
+
output: `Sub-agent "${agentName}" spawned successfully.\n\nSession ID: ${subAgentSession.id}\n\nNote: You may spawn additional subagents for parallel execution. Regular tools (create_file, run_command, etc.) will be blocked until all subagent results are received.`,
|
|
185
201
|
error_message: '',
|
|
186
202
|
},
|
|
187
203
|
};
|
|
@@ -230,7 +246,7 @@ args: {
|
|
|
230
246
|
summary: 'Continuing conversation with sub-agent',
|
|
231
247
|
persisted_args: { sessionId, prompt },
|
|
232
248
|
execution_log: {
|
|
233
|
-
output: `Follow-up sent to sub-agent session ${sessionId}
|
|
249
|
+
output: `Follow-up sent to sub-agent session ${sessionId}.\n\nNote: Regular tools remain blocked until all subagent results are received.`,
|
|
234
250
|
error_message: '',
|
|
235
251
|
},
|
|
236
252
|
};
|
|
@@ -252,6 +268,7 @@ exports.InvokeSubAgentHandler = InvokeSubAgentHandler;
|
|
|
252
268
|
exports.InvokeSubAgentHandler = InvokeSubAgentHandler = InvokeSubAgentHandler_1 = __decorate([
|
|
253
269
|
(0, common_1.Injectable)(),
|
|
254
270
|
__metadata("design:paramtypes", [sub_agents_service_1.SubAgentsService,
|
|
271
|
+
sub_agent_runs_service_1.SubAgentRunsService,
|
|
255
272
|
sessions_service_1.SessionsService,
|
|
256
273
|
session_inputs_service_1.SessionInputsService,
|
|
257
274
|
message_bus_service_1.MessageBusService])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke-subagent.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/invoke-subagent.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAQpD,4EAAuE;AACvE,sEAAkE;AAClE,wFAAmF;AACnF,+EAA0E;AAInE,IAAM,qBAAqB,6BAA3B,MAAM,qBAAqB;IAIhC,YACmB,gBAAkC,EAClC,eAAgC,EAChC,oBAA0C,EAC1C,iBAAoC;
|
|
1
|
+
{"version":3,"file":"invoke-subagent.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/invoke-subagent.handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,12 @@ import { SessionInput } from '../../core-entities';
|
|
|
3
3
|
import { PlanExecutionContext } from '../llm-orchestration.interfaces';
|
|
4
4
|
import { SessionsService } from '../../sessions/sessions.service';
|
|
5
5
|
import { SessionInputsService } from '../../session-inputs/session-inputs.service';
|
|
6
|
+
import { SubAgentRunsService } from '../../sub-agents/sub-agent-runs.service';
|
|
6
7
|
export declare class SubAgentFinalResponseHook implements PostExecutionHook {
|
|
7
8
|
private readonly sessionsService;
|
|
8
9
|
private readonly sessionInputsService;
|
|
10
|
+
private readonly subAgentRunsService;
|
|
9
11
|
private readonly logger;
|
|
10
|
-
constructor(sessionsService: SessionsService, sessionInputsService: SessionInputsService);
|
|
12
|
+
constructor(sessionsService: SessionsService, sessionInputsService: SessionInputsService, subAgentRunsService: SubAgentRunsService);
|
|
11
13
|
run(sessionInput: SessionInput, context: PlanExecutionContext): Promise<void>;
|
|
12
14
|
}
|
|
@@ -14,10 +14,12 @@ exports.SubAgentFinalResponseHook = void 0;
|
|
|
14
14
|
const common_1 = require("@nestjs/common");
|
|
15
15
|
const sessions_service_1 = require("../../sessions/sessions.service");
|
|
16
16
|
const session_inputs_service_1 = require("../../session-inputs/session-inputs.service");
|
|
17
|
+
const sub_agent_runs_service_1 = require("../../sub-agents/sub-agent-runs.service");
|
|
17
18
|
let SubAgentFinalResponseHook = SubAgentFinalResponseHook_1 = class SubAgentFinalResponseHook {
|
|
18
|
-
constructor(sessionsService, sessionInputsService) {
|
|
19
|
+
constructor(sessionsService, sessionInputsService, subAgentRunsService) {
|
|
19
20
|
this.sessionsService = sessionsService;
|
|
20
21
|
this.sessionInputsService = sessionInputsService;
|
|
22
|
+
this.subAgentRunsService = subAgentRunsService;
|
|
21
23
|
this.logger = new common_1.Logger(SubAgentFinalResponseHook_1.name);
|
|
22
24
|
}
|
|
23
25
|
async run(sessionInput, context) {
|
|
@@ -30,8 +32,17 @@ let SubAgentFinalResponseHook = SubAgentFinalResponseHook_1 = class SubAgentFina
|
|
|
30
32
|
return;
|
|
31
33
|
}
|
|
32
34
|
this.logger.log(`Sub-agent ${session.sub_agent_id} called final() in session ${session.id}. Routing response to master session ${session.parent_session_id}.`);
|
|
35
|
+
const run = await this.subAgentRunsService.findByChildSessionId(session.id);
|
|
36
|
+
if (run?.status === 'cancelled') {
|
|
37
|
+
this.logger.log(`Subagent run was cancelled. Ignoring result.`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
33
40
|
const finalResponseText = finalAction.plain || '';
|
|
34
41
|
const subAgentName = session.subAgent?.name || 'Unknown Agent';
|
|
42
|
+
if (run) {
|
|
43
|
+
await this.subAgentRunsService.markCompleted(session.id, finalResponseText);
|
|
44
|
+
this.logger.log(`Marked SubAgentRun ${run.id} as completed`);
|
|
45
|
+
}
|
|
35
46
|
const masterPrompt = `[Sub-Agent Result: ${subAgentName}]\n\n${finalResponseText}\n\n[End Sub-Agent Result]`;
|
|
36
47
|
await this.sessionInputsService.create(session.parent_session_id, {
|
|
37
48
|
user_prompt: masterPrompt,
|
|
@@ -39,12 +50,31 @@ let SubAgentFinalResponseHook = SubAgentFinalResponseHook_1 = class SubAgentFina
|
|
|
39
50
|
});
|
|
40
51
|
await this.sessionsService.setActive(session.parent_session_id);
|
|
41
52
|
this.logger.log(`Submitted sub-agent result to master session ${session.parent_session_id}`);
|
|
53
|
+
const hasActiveRuns = await this.subAgentRunsService.hasActiveRuns(session.parent_session_id);
|
|
54
|
+
if (!hasActiveRuns) {
|
|
55
|
+
this.logger.log(`All subagents complete for session ${session.parent_session_id}. Checking for pending tool results...`);
|
|
56
|
+
const parentSession = await this.sessionsService.findOne(session.parent_session_id);
|
|
57
|
+
const latestBlockedInput = parentSession.sessionInputs
|
|
58
|
+
?.filter((input) => input.tool_calls)
|
|
59
|
+
.sort((a, b) => new Date(b.created_at).getTime() - new Date(a.created_at).getTime())[0];
|
|
60
|
+
if (latestBlockedInput) {
|
|
61
|
+
this.logger.log(`Found pending tool calls in input ${latestBlockedInput.id}. Triggering follow-up.`);
|
|
62
|
+
await this.sessionInputsService.create(session.parent_session_id, {
|
|
63
|
+
user_prompt: '',
|
|
64
|
+
execution_strategy: latestBlockedInput.execution_strategy,
|
|
65
|
+
skip_persistence: true,
|
|
66
|
+
ad_hoc_context_definition: undefined,
|
|
67
|
+
context_template_id: undefined,
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
42
71
|
}
|
|
43
72
|
};
|
|
44
73
|
exports.SubAgentFinalResponseHook = SubAgentFinalResponseHook;
|
|
45
74
|
exports.SubAgentFinalResponseHook = SubAgentFinalResponseHook = SubAgentFinalResponseHook_1 = __decorate([
|
|
46
75
|
(0, common_1.Injectable)(),
|
|
47
76
|
__metadata("design:paramtypes", [sessions_service_1.SessionsService,
|
|
48
|
-
session_inputs_service_1.SessionInputsService
|
|
77
|
+
session_inputs_service_1.SessionInputsService,
|
|
78
|
+
sub_agent_runs_service_1.SubAgentRunsService])
|
|
49
79
|
], SubAgentFinalResponseHook);
|
|
50
80
|
//# sourceMappingURL=sub-agent-final-response.hook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sub-agent-final-response.hook.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/hooks/sub-agent-final-response.hook.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAIpD,sEAAkE;AAClE,wFAAmF;
|
|
1
|
+
{"version":3,"file":"sub-agent-final-response.hook.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/hooks/sub-agent-final-response.hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { PostExecutionHook } from './hooks/post-execution-hook.interface';
|
|
|
6
6
|
import { ApplicationStateService } from '../application-state/application-state.service';
|
|
7
7
|
import { ExecutionLogsService } from '../execution-logs/execution-logs.service';
|
|
8
8
|
import { ToolHooksService } from '../tool-hooks/tool-hooks.service';
|
|
9
|
+
import { SubAgentRunsService } from '../sub-agents/sub-agent-runs.service';
|
|
9
10
|
export declare class LlmTurnProcessorService {
|
|
10
11
|
private readonly parser;
|
|
11
12
|
private readonly handlerRegistry;
|
|
@@ -15,8 +16,9 @@ export declare class LlmTurnProcessorService {
|
|
|
15
16
|
private readonly applicationStateService;
|
|
16
17
|
private readonly executionLogsService;
|
|
17
18
|
private readonly toolHooksService;
|
|
19
|
+
private readonly subAgentRunsService;
|
|
18
20
|
private readonly logger;
|
|
19
|
-
constructor(parser: LlmOutputParserService, handlerRegistry: Map<string, ActionHandler>, postExecutionHooks: PostExecutionHook[], aiActionsRepository: Repository<AIAction>, sessionInputsRepository: Repository<SessionInput>, applicationStateService: ApplicationStateService, executionLogsService: ExecutionLogsService, toolHooksService: ToolHooksService);
|
|
21
|
+
constructor(parser: LlmOutputParserService, handlerRegistry: Map<string, ActionHandler>, postExecutionHooks: PostExecutionHook[], aiActionsRepository: Repository<AIAction>, sessionInputsRepository: Repository<SessionInput>, applicationStateService: ApplicationStateService, executionLogsService: ExecutionLogsService, toolHooksService: ToolHooksService, subAgentRunsService: SubAgentRunsService);
|
|
20
22
|
processTurn(sessionInput: SessionInput): Promise<SessionInput>;
|
|
21
23
|
private getSuccessStatusForStrategy;
|
|
22
24
|
}
|
|
@@ -24,8 +24,9 @@ const ai_actions_service_1 = require("../ai-actions/ai-actions.service");
|
|
|
24
24
|
const application_state_service_1 = require("../application-state/application-state.service");
|
|
25
25
|
const execution_logs_service_1 = require("../execution-logs/execution-logs.service");
|
|
26
26
|
const tool_hooks_service_1 = require("../tool-hooks/tool-hooks.service");
|
|
27
|
+
const sub_agent_runs_service_1 = require("../sub-agents/sub-agent-runs.service");
|
|
27
28
|
let LlmTurnProcessorService = LlmTurnProcessorService_1 = class LlmTurnProcessorService {
|
|
28
|
-
constructor(parser, handlerRegistry, postExecutionHooks, aiActionsRepository, sessionInputsRepository, applicationStateService, executionLogsService, toolHooksService) {
|
|
29
|
+
constructor(parser, handlerRegistry, postExecutionHooks, aiActionsRepository, sessionInputsRepository, applicationStateService, executionLogsService, toolHooksService, subAgentRunsService) {
|
|
29
30
|
this.parser = parser;
|
|
30
31
|
this.handlerRegistry = handlerRegistry;
|
|
31
32
|
this.postExecutionHooks = postExecutionHooks;
|
|
@@ -34,6 +35,7 @@ let LlmTurnProcessorService = LlmTurnProcessorService_1 = class LlmTurnProcessor
|
|
|
34
35
|
this.applicationStateService = applicationStateService;
|
|
35
36
|
this.executionLogsService = executionLogsService;
|
|
36
37
|
this.toolHooksService = toolHooksService;
|
|
38
|
+
this.subAgentRunsService = subAgentRunsService;
|
|
37
39
|
this.logger = new common_1.Logger(LlmTurnProcessorService_1.name);
|
|
38
40
|
}
|
|
39
41
|
async processTurn(sessionInput) {
|
|
@@ -103,9 +105,8 @@ let LlmTurnProcessorService = LlmTurnProcessorService_1 = class LlmTurnProcessor
|
|
|
103
105
|
status: ai_actions_service_1.AIActionStatus.EXECUTION_FAILED,
|
|
104
106
|
order_of_execution: createdActions.length,
|
|
105
107
|
original_content_for_revert: null,
|
|
106
|
-
...action.arguments,
|
|
107
108
|
});
|
|
108
|
-
const savedAction =
|
|
109
|
+
const savedAction = await this.aiActionsRepository.save(aiActionEntity);
|
|
109
110
|
createdActions.push(savedAction);
|
|
110
111
|
await this.executionLogsService.createLog({
|
|
111
112
|
action_id: savedAction.id,
|
|
@@ -125,6 +126,10 @@ let LlmTurnProcessorService = LlmTurnProcessorService_1 = class LlmTurnProcessor
|
|
|
125
126
|
summary: `Tool '${action.tool_name}' is not a valid tool.`,
|
|
126
127
|
error_message: `No handler registered for tool name '${action.tool_name}'.`,
|
|
127
128
|
persisted_args: action.arguments,
|
|
129
|
+
execution_log: {
|
|
130
|
+
output: '',
|
|
131
|
+
error_message: `No handler registered for tool name '${action.tool_name}'.`,
|
|
132
|
+
},
|
|
128
133
|
};
|
|
129
134
|
if (action.toolCallId) {
|
|
130
135
|
executionContext.toolResults.push({
|
|
@@ -136,7 +141,30 @@ let LlmTurnProcessorService = LlmTurnProcessorService_1 = class LlmTurnProcessor
|
|
|
136
141
|
}
|
|
137
142
|
else {
|
|
138
143
|
try {
|
|
139
|
-
|
|
144
|
+
const hasActiveRuns = await this.subAgentRunsService.hasActiveRuns(sessionInput.session_id);
|
|
145
|
+
if (hasActiveRuns &&
|
|
146
|
+
!['final', 'invoke_subagent', 'list_sub_agents'].includes(action.tool_name)) {
|
|
147
|
+
result = {
|
|
148
|
+
status: 'FAILURE',
|
|
149
|
+
summary: `There is ongoing subagent activity. Cannot execute tool '${action.tool_name}' until subagent results are in.`,
|
|
150
|
+
error_message: `There is ongoing subagent activity. Cannot execute tool '${action.tool_name}' until subagent results are in. wait for their results before proceeding.`,
|
|
151
|
+
persisted_args: action.arguments,
|
|
152
|
+
execution_log: {
|
|
153
|
+
output: '',
|
|
154
|
+
error_message: `There is ongoing subagent activity. Cannot execute tool '${action.tool_name}' until subagent results are in. wait for their results before proceeding.`,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
if (action.toolCallId) {
|
|
158
|
+
executionContext.toolResults.push({
|
|
159
|
+
toolCallId: action.toolCallId,
|
|
160
|
+
toolName: action.tool_name,
|
|
161
|
+
result: result.error_message,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
result = await handler.execute(action.arguments, executionContext);
|
|
167
|
+
}
|
|
140
168
|
}
|
|
141
169
|
catch (error) {
|
|
142
170
|
this.logger.error(`Handler for ${action.tool_name} failed during execution: ${error.message}`, error.stack);
|
|
@@ -255,6 +283,7 @@ exports.LlmTurnProcessorService = LlmTurnProcessorService = LlmTurnProcessorServ
|
|
|
255
283
|
typeorm_2.Repository,
|
|
256
284
|
application_state_service_1.ApplicationStateService,
|
|
257
285
|
execution_logs_service_1.ExecutionLogsService,
|
|
258
|
-
tool_hooks_service_1.ToolHooksService
|
|
286
|
+
tool_hooks_service_1.ToolHooksService,
|
|
287
|
+
sub_agent_runs_service_1.SubAgentRunsService])
|
|
259
288
|
], LlmTurnProcessorService);
|
|
260
289
|
//# sourceMappingURL=llm-turn-processor.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-turn-processor.service.js","sourceRoot":"","sources":["../../../src/llm-orchestration/llm-turn-processor.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,6CAAmD;AACnD,qCAAqC;AACrC,oDAA0D;AAC1D,kFAA4E;AAC5E,iFAGwC;AAIxC,yEAAkE;AAClE,8FAAyF;AACzF,qFAAgF;AAChF,yEAAoE;
|
|
1
|
+
{"version":3,"file":"llm-turn-processor.service.js","sourceRoot":"","sources":["../../../src/llm-orchestration/llm-turn-processor.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BaseEntity } from '../core-entities/base.entity';
|
|
2
|
+
import { Session } from '../core-entities/session.entity';
|
|
3
|
+
import { SubAgent } from './sub-agent.entity';
|
|
4
|
+
export declare enum SubAgentRunStatus {
|
|
5
|
+
RUNNING = "running",
|
|
6
|
+
COMPLETED = "completed",
|
|
7
|
+
FAILED = "failed",
|
|
8
|
+
TIMEOUT = "timeout",
|
|
9
|
+
CANCELLED = "cancelled"
|
|
10
|
+
}
|
|
11
|
+
export declare class SubAgentRun extends BaseEntity {
|
|
12
|
+
parent_session_id: string;
|
|
13
|
+
parentSession: Session;
|
|
14
|
+
child_session_id: string;
|
|
15
|
+
childSession: Session | null;
|
|
16
|
+
sub_agent_id: string;
|
|
17
|
+
subAgent: SubAgent | null;
|
|
18
|
+
agent_name: string;
|
|
19
|
+
initial_prompt: string;
|
|
20
|
+
status: SubAgentRunStatus;
|
|
21
|
+
started_at: Date;
|
|
22
|
+
completed_at: Date;
|
|
23
|
+
result: string | null;
|
|
24
|
+
error_message: string | null;
|
|
25
|
+
duration_ms: number | null;
|
|
26
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SubAgentRun = exports.SubAgentRunStatus = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const base_entity_1 = require("../core-entities/base.entity");
|
|
15
|
+
const session_entity_1 = require("../core-entities/session.entity");
|
|
16
|
+
const sub_agent_entity_1 = require("./sub-agent.entity");
|
|
17
|
+
var SubAgentRunStatus;
|
|
18
|
+
(function (SubAgentRunStatus) {
|
|
19
|
+
SubAgentRunStatus["RUNNING"] = "running";
|
|
20
|
+
SubAgentRunStatus["COMPLETED"] = "completed";
|
|
21
|
+
SubAgentRunStatus["FAILED"] = "failed";
|
|
22
|
+
SubAgentRunStatus["TIMEOUT"] = "timeout";
|
|
23
|
+
SubAgentRunStatus["CANCELLED"] = "cancelled";
|
|
24
|
+
})(SubAgentRunStatus || (exports.SubAgentRunStatus = SubAgentRunStatus = {}));
|
|
25
|
+
let SubAgentRun = class SubAgentRun extends base_entity_1.BaseEntity {
|
|
26
|
+
};
|
|
27
|
+
exports.SubAgentRun = SubAgentRun;
|
|
28
|
+
__decorate([
|
|
29
|
+
(0, typeorm_1.Column)({ type: 'uuid' }),
|
|
30
|
+
__metadata("design:type", String)
|
|
31
|
+
], SubAgentRun.prototype, "parent_session_id", void 0);
|
|
32
|
+
__decorate([
|
|
33
|
+
(0, typeorm_1.ManyToOne)(() => session_entity_1.Session, { onDelete: 'CASCADE' }),
|
|
34
|
+
(0, typeorm_1.JoinColumn)({ name: 'parent_session_id' }),
|
|
35
|
+
__metadata("design:type", session_entity_1.Session)
|
|
36
|
+
], SubAgentRun.prototype, "parentSession", void 0);
|
|
37
|
+
__decorate([
|
|
38
|
+
(0, typeorm_1.Column)({ type: 'uuid' }),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], SubAgentRun.prototype, "child_session_id", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
(0, typeorm_1.ManyToOne)(() => session_entity_1.Session, { onDelete: 'SET NULL', nullable: true }),
|
|
43
|
+
(0, typeorm_1.JoinColumn)({ name: 'child_session_id' }),
|
|
44
|
+
__metadata("design:type", session_entity_1.Session)
|
|
45
|
+
], SubAgentRun.prototype, "childSession", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, typeorm_1.Column)({ type: 'uuid' }),
|
|
48
|
+
__metadata("design:type", String)
|
|
49
|
+
], SubAgentRun.prototype, "sub_agent_id", void 0);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, typeorm_1.ManyToOne)(() => sub_agent_entity_1.SubAgent, { onDelete: 'SET NULL', nullable: true }),
|
|
52
|
+
(0, typeorm_1.JoinColumn)({ name: 'sub_agent_id' }),
|
|
53
|
+
__metadata("design:type", sub_agent_entity_1.SubAgent)
|
|
54
|
+
], SubAgentRun.prototype, "subAgent", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
(0, typeorm_1.Column)({ type: 'text' }),
|
|
57
|
+
__metadata("design:type", String)
|
|
58
|
+
], SubAgentRun.prototype, "agent_name", void 0);
|
|
59
|
+
__decorate([
|
|
60
|
+
(0, typeorm_1.Column)({ type: 'text' }),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], SubAgentRun.prototype, "initial_prompt", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, typeorm_1.Column)({
|
|
65
|
+
type: 'text',
|
|
66
|
+
default: SubAgentRunStatus.RUNNING,
|
|
67
|
+
}),
|
|
68
|
+
__metadata("design:type", String)
|
|
69
|
+
], SubAgentRun.prototype, "status", void 0);
|
|
70
|
+
__decorate([
|
|
71
|
+
(0, typeorm_1.Column)({ type: 'datetime', nullable: true }),
|
|
72
|
+
__metadata("design:type", Date)
|
|
73
|
+
], SubAgentRun.prototype, "started_at", void 0);
|
|
74
|
+
__decorate([
|
|
75
|
+
(0, typeorm_1.Column)({ type: 'datetime', nullable: true }),
|
|
76
|
+
__metadata("design:type", Date)
|
|
77
|
+
], SubAgentRun.prototype, "completed_at", void 0);
|
|
78
|
+
__decorate([
|
|
79
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], SubAgentRun.prototype, "result", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
84
|
+
__metadata("design:type", String)
|
|
85
|
+
], SubAgentRun.prototype, "error_message", void 0);
|
|
86
|
+
__decorate([
|
|
87
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
88
|
+
__metadata("design:type", Number)
|
|
89
|
+
], SubAgentRun.prototype, "duration_ms", void 0);
|
|
90
|
+
exports.SubAgentRun = SubAgentRun = __decorate([
|
|
91
|
+
(0, typeorm_1.Entity)('sub_agent_runs')
|
|
92
|
+
], SubAgentRun);
|
|
93
|
+
//# sourceMappingURL=sub-agent-run.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sub-agent-run.entity.js","sourceRoot":"","sources":["../../../src/sub-agents/sub-agent-run.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgE;AAChE,8DAA0D;AAC1D,oEAA0D;AAC1D,yDAA8C;AAE9C,IAAY,iBAMX;AAND,WAAY,iBAAiB;IAC3B,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;IACvB,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;IACnB,4CAAuB,CAAA;AACzB,CAAC,EANW,iBAAiB,iCAAjB,iBAAiB,QAM5B;AAGM,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,wBAAU;CAgD1C,CAAA;AAhDY,kCAAW;AAEtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;sDACC;AAI1B;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wBAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACjD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;8BAC3B,wBAAO;kDAAC;AAGvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qDACA;AAIzB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wBAAO,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;8BAC3B,wBAAO;iDAAQ;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;iDACJ;AAIrB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,2BAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACnE,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;8BAC3B,2BAAQ;6CAAQ;AAG1B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;+CACN;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;mDACF;AAMvB;IAJC,IAAA,gBAAM,EAAC;QACN,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,iBAAiB,CAAC,OAAO;KACnC,CAAC;;2CACwB;AAG1B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACjC,IAAI;+CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BAC/B,IAAI;iDAAC;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACnB;AAGtB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;kDACZ;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACjB;sBA/ChB,WAAW;IADvB,IAAA,gBAAM,EAAC,gBAAgB,CAAC;GACZ,WAAW,CAgDvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SubAgentRunsService } from './sub-agent-runs.service';
|
|
2
|
+
import { SubAgentRun } from './sub-agent-run.entity';
|
|
3
|
+
import { ChatService } from '../interactive-chat/chat.service';
|
|
4
|
+
export declare class SubAgentRunsController {
|
|
5
|
+
private readonly subAgentRunsService;
|
|
6
|
+
private readonly chatService;
|
|
7
|
+
private readonly logger;
|
|
8
|
+
constructor(subAgentRunsService: SubAgentRunsService, chatService: ChatService);
|
|
9
|
+
getAllActiveRuns(): Promise<SubAgentRun[]>;
|
|
10
|
+
getActiveRuns(sessionId: string): Promise<SubAgentRun[]>;
|
|
11
|
+
cancelRun(runId: string): Promise<{
|
|
12
|
+
success: boolean;
|
|
13
|
+
run: SubAgentRun | null;
|
|
14
|
+
}>;
|
|
15
|
+
cancelAllRuns(sessionId: string): Promise<{
|
|
16
|
+
count: number;
|
|
17
|
+
}>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var SubAgentRunsController_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.SubAgentRunsController = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const sub_agent_runs_service_1 = require("./sub-agent-runs.service");
|
|
19
|
+
const chat_service_1 = require("../interactive-chat/chat.service");
|
|
20
|
+
let SubAgentRunsController = SubAgentRunsController_1 = class SubAgentRunsController {
|
|
21
|
+
constructor(subAgentRunsService, chatService) {
|
|
22
|
+
this.subAgentRunsService = subAgentRunsService;
|
|
23
|
+
this.chatService = chatService;
|
|
24
|
+
this.logger = new common_1.Logger(SubAgentRunsController_1.name);
|
|
25
|
+
}
|
|
26
|
+
async getAllActiveRuns() {
|
|
27
|
+
return this.subAgentRunsService.getAllActiveRuns();
|
|
28
|
+
}
|
|
29
|
+
async getActiveRuns(sessionId) {
|
|
30
|
+
return this.subAgentRunsService.getActiveRuns(sessionId);
|
|
31
|
+
}
|
|
32
|
+
async cancelRun(runId) {
|
|
33
|
+
const run = await this.subAgentRunsService.cancel(runId);
|
|
34
|
+
if (run) {
|
|
35
|
+
this.logger.log(`Stopping LLM streaming for child session ${run.child_session_id}`);
|
|
36
|
+
this.chatService.cancelRequest(run.child_session_id);
|
|
37
|
+
}
|
|
38
|
+
return { success: run !== null, run };
|
|
39
|
+
}
|
|
40
|
+
async cancelAllRuns(sessionId) {
|
|
41
|
+
const activeRuns = await this.subAgentRunsService.getActiveRuns(sessionId);
|
|
42
|
+
for (const run of activeRuns) {
|
|
43
|
+
this.logger.log(`Stopping LLM streaming for child session ${run.child_session_id}`);
|
|
44
|
+
this.chatService.cancelRequest(run.child_session_id);
|
|
45
|
+
}
|
|
46
|
+
const count = await this.subAgentRunsService.cancelAllActiveRuns(sessionId);
|
|
47
|
+
return { count };
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
exports.SubAgentRunsController = SubAgentRunsController;
|
|
51
|
+
__decorate([
|
|
52
|
+
(0, common_1.Get)('active'),
|
|
53
|
+
__metadata("design:type", Function),
|
|
54
|
+
__metadata("design:paramtypes", []),
|
|
55
|
+
__metadata("design:returntype", Promise)
|
|
56
|
+
], SubAgentRunsController.prototype, "getAllActiveRuns", null);
|
|
57
|
+
__decorate([
|
|
58
|
+
(0, common_1.Get)('active/:sessionId'),
|
|
59
|
+
__param(0, (0, common_1.Param)('sessionId', common_1.ParseUUIDPipe)),
|
|
60
|
+
__metadata("design:type", Function),
|
|
61
|
+
__metadata("design:paramtypes", [String]),
|
|
62
|
+
__metadata("design:returntype", Promise)
|
|
63
|
+
], SubAgentRunsController.prototype, "getActiveRuns", null);
|
|
64
|
+
__decorate([
|
|
65
|
+
(0, common_1.Post)(':runId/cancel'),
|
|
66
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.OK),
|
|
67
|
+
__param(0, (0, common_1.Param)('runId', common_1.ParseUUIDPipe)),
|
|
68
|
+
__metadata("design:type", Function),
|
|
69
|
+
__metadata("design:paramtypes", [String]),
|
|
70
|
+
__metadata("design:returntype", Promise)
|
|
71
|
+
], SubAgentRunsController.prototype, "cancelRun", null);
|
|
72
|
+
__decorate([
|
|
73
|
+
(0, common_1.Post)('session/:sessionId/cancel-all'),
|
|
74
|
+
(0, common_1.HttpCode)(common_1.HttpStatus.OK),
|
|
75
|
+
__param(0, (0, common_1.Param)('sessionId', common_1.ParseUUIDPipe)),
|
|
76
|
+
__metadata("design:type", Function),
|
|
77
|
+
__metadata("design:paramtypes", [String]),
|
|
78
|
+
__metadata("design:returntype", Promise)
|
|
79
|
+
], SubAgentRunsController.prototype, "cancelAllRuns", null);
|
|
80
|
+
exports.SubAgentRunsController = SubAgentRunsController = SubAgentRunsController_1 = __decorate([
|
|
81
|
+
(0, common_1.Controller)('sub-agent-runs'),
|
|
82
|
+
__metadata("design:paramtypes", [sub_agent_runs_service_1.SubAgentRunsService,
|
|
83
|
+
chat_service_1.ChatService])
|
|
84
|
+
], SubAgentRunsController);
|
|
85
|
+
//# sourceMappingURL=sub-agent-runs.controller.js.map
|