crewly 1.20.451 → 1.20.453
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/config/skills/agent/checkup-report/app/index.html +5 -2
- package/config/skills/agent/checkup-report/execute.test.sh +1 -0
- package/config/skills/agent/spawn-subagent/SKILL.md +108 -0
- package/config/skills/agent/spawn-subagent/execute.sh +114 -0
- package/config/skills/agent/spawn-subagent/execute.test.sh +113 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.controller.d.ts +27 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.controller.js +61 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.routes.d.ts +15 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.routes.js +21 -0
- package/dist/backend/backend/src/controllers/subagents/subagents.routes.js.map +1 -0
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +3 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +8 -2
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +6 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.d.ts +195 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.js +402 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.js.map +1 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +33 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js +15 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +8 -2
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js +6 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/in-process-log-buffer.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +33 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js +15 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,402 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sub-agent runs for agents on any runtime (#1317, slice 2b fallback).
|
|
3
|
+
*
|
|
4
|
+
* The crewly-agent runtime has `spawn_subagent` built in: a parent runner
|
|
5
|
+
* starts a child runner in the same worker with restricted tools. A Claude
|
|
6
|
+
* Code, Codex or Gemini agent runs in a terminal and has no such tool, so
|
|
7
|
+
* this service gives it the same thing over HTTP: `POST /api/subagents`
|
|
8
|
+
* (wrapped by the `spawn-subagent` skill) starts one crewly-agent worker
|
|
9
|
+
* with the sub-agent policy, sends it the task, waits for the one reply and
|
|
10
|
+
* shuts the worker down. The parent gets the same outcome shape the
|
|
11
|
+
* in-process tool returns, so "no tool calls = did nothing" reads the same.
|
|
12
|
+
*
|
|
13
|
+
* Rules, same as the in-process tool:
|
|
14
|
+
* - a child cannot spawn (a `…/sub-N` caller is refused), so depth stays 1;
|
|
15
|
+
* - at most `SUBAGENT.MAX_CONCURRENT` children per parent at once;
|
|
16
|
+
* - a task longer than `SUBAGENT.TASK_MAX_CHARS` is refused — the parent is
|
|
17
|
+
* pasting context it should summarise;
|
|
18
|
+
* - steps default to `SUBAGENT.MAX_STEPS`, capped at `MAX_STEPS_CAP`;
|
|
19
|
+
* - the worker is always shut down, on success, failure or timeout.
|
|
20
|
+
*
|
|
21
|
+
* The child's token usage is booked under its own session name
|
|
22
|
+
* (`<parent>/sub-<n>`): the parent runs in a terminal and has no ledger
|
|
23
|
+
* row to fold it into.
|
|
24
|
+
*
|
|
25
|
+
* @module services/agent/crewly-agent/subagent-run.service
|
|
26
|
+
*/
|
|
27
|
+
import { statSync } from 'fs';
|
|
28
|
+
import { isAbsolute } from 'path';
|
|
29
|
+
import { RUNTIME_TYPES } from '../../../constants.js';
|
|
30
|
+
import { LoggerService } from '../../core/logger.service.js';
|
|
31
|
+
import { getLocalApiBaseUrl } from '../../../utils/local-api-url.utils.js';
|
|
32
|
+
import { getRuntimeFallbackService } from '../../runtime-fallback/runtime-fallback.service.js';
|
|
33
|
+
import { RUNTIME_TYPES as FALLBACK_RUNTIME_TYPES } from '../../../constants.js';
|
|
34
|
+
import { RuntimeServiceFactory } from '../runtime-service.factory.js';
|
|
35
|
+
import { InProcessLogBuffer } from './in-process-log-buffer.js';
|
|
36
|
+
import { registerInProcessRuntime, unregisterInProcessRuntime } from './in-process-runtime-registry.js';
|
|
37
|
+
import { CREWLY_AGENT_DEFAULTS, isModelProvider, } from './types.js';
|
|
38
|
+
/** Name of the one tool a child reports through (same as the worker's) */
|
|
39
|
+
const REPORT_TOOL_NAME = 'report_to_parent';
|
|
40
|
+
/** Session name of a child: `<parent>/sub-<n>` */
|
|
41
|
+
const CHILD_SESSION_RE = /\/sub-\d+$/;
|
|
42
|
+
/** A run that was not started; `code` says which rule refused it */
|
|
43
|
+
export class SubagentRunRefused extends Error {
|
|
44
|
+
code;
|
|
45
|
+
constructor(code, message) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.code = code;
|
|
48
|
+
this.name = 'SubagentRunRefused';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The prompt a child runs under — the same words as the worker's own
|
|
53
|
+
* `buildSubagentPrompt`, kept in step by hand.
|
|
54
|
+
*
|
|
55
|
+
* @param parentSession - The agent that spawned it
|
|
56
|
+
* @param cwd - Where it works
|
|
57
|
+
* @param readOnly - Whether it may change files
|
|
58
|
+
* @returns The system prompt
|
|
59
|
+
*/
|
|
60
|
+
export function buildSubagentPrompt(parentSession, cwd, readOnly) {
|
|
61
|
+
return [
|
|
62
|
+
`You are a short-lived helper spawned by the agent "${parentSession}" for one bounded task.`,
|
|
63
|
+
`Working directory: ${cwd}. ${readOnly ? 'You have read-only tools: look, do not change anything.' : `You may change files only under ${cwd}.`}`,
|
|
64
|
+
'You cannot message anyone, delegate, schedule, or touch tickets; nobody but your parent will read you.',
|
|
65
|
+
`Do the task with your tools, then call ${REPORT_TOOL_NAME} once with what you found or changed, the files you touched, and anything you could not do.`,
|
|
66
|
+
'Report facts you verified, with paths and line numbers; if you did nothing, say so instead of inventing a result.',
|
|
67
|
+
].join('\n');
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Parse `provider/modelId`, refusing anything else: the default is decided
|
|
71
|
+
* by the service, so an unparseable id must not silently become it.
|
|
72
|
+
*
|
|
73
|
+
* @param spec - The `model` field
|
|
74
|
+
* @returns The model, or why it was refused
|
|
75
|
+
*/
|
|
76
|
+
export function parseRequestedModel(spec) {
|
|
77
|
+
const trimmed = spec.trim();
|
|
78
|
+
const slash = trimmed.indexOf('/');
|
|
79
|
+
if (slash <= 0 || slash === trimmed.length - 1) {
|
|
80
|
+
return { error: `model must look like provider/modelId, got "${trimmed}"` };
|
|
81
|
+
}
|
|
82
|
+
const provider = trimmed.slice(0, slash);
|
|
83
|
+
const modelId = trimmed.slice(slash + 1);
|
|
84
|
+
if (!isModelProvider(provider)) {
|
|
85
|
+
return { error: `unknown model provider "${provider}"` };
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
model: {
|
|
89
|
+
provider,
|
|
90
|
+
modelId,
|
|
91
|
+
temperature: CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL.temperature,
|
|
92
|
+
maxTokens: CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL.maxTokens,
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Runtimes the fallback service holds as exhausted, or none when it is not wired.
|
|
98
|
+
*
|
|
99
|
+
* @returns The exhausted entries
|
|
100
|
+
*/
|
|
101
|
+
async function exhaustedRuntimesFromFallback() {
|
|
102
|
+
const svc = getRuntimeFallbackService();
|
|
103
|
+
if (!svc)
|
|
104
|
+
return [];
|
|
105
|
+
try {
|
|
106
|
+
return (await svc.snapshot()).exhausted;
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return [];
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The crewly-agent model the fallback settings name, if the service is wired.
|
|
114
|
+
*
|
|
115
|
+
* @returns `provider/modelId` or undefined
|
|
116
|
+
*/
|
|
117
|
+
function crewlyAgentModelFromFallback() {
|
|
118
|
+
return getRuntimeFallbackService()?.getSettings().crewlyAgentModel;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* The provider's last error as the worker printed it: `[stderr]` lines from
|
|
122
|
+
* the child's log buffer. The run itself only says "No output generated".
|
|
123
|
+
*
|
|
124
|
+
* @param buffer - The log buffer
|
|
125
|
+
* @param sessionName - The child's session
|
|
126
|
+
* @returns The last stderr lines, or empty
|
|
127
|
+
*/
|
|
128
|
+
export function lastWorkerStderr(buffer, sessionName) {
|
|
129
|
+
const lines = buffer.capture(sessionName, 80).split('\n').filter((l) => l.includes('[stderr]'));
|
|
130
|
+
return lines.slice(-2).map((l) => l.slice(l.indexOf('[stderr]') + '[stderr]'.length).trim()).filter(Boolean).join(' | ');
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* The model a child runs when the parent names none: the fallback
|
|
134
|
+
* settings' crewly-agent model (DeepSeek unless the owner changed it),
|
|
135
|
+
* since that is the model the owner has a key for; else the runtime default.
|
|
136
|
+
*
|
|
137
|
+
* @returns The model
|
|
138
|
+
*/
|
|
139
|
+
export function defaultSubagentModel() {
|
|
140
|
+
const spec = getRuntimeFallbackService()?.getSettings().crewlyAgentModel;
|
|
141
|
+
if (spec) {
|
|
142
|
+
const parsed = parseRequestedModel(spec);
|
|
143
|
+
if ('model' in parsed)
|
|
144
|
+
return parsed.model;
|
|
145
|
+
}
|
|
146
|
+
return CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Turn the child's one run into the outcome the parent reads.
|
|
150
|
+
*
|
|
151
|
+
* @param result - The worker's run result
|
|
152
|
+
* @param sessionName - The child's session
|
|
153
|
+
* @param model - `provider/modelId` it ran on
|
|
154
|
+
* @param durationMs - Wall-clock time
|
|
155
|
+
* @param timedOut - Whether the budget ended the run
|
|
156
|
+
* @returns The outcome
|
|
157
|
+
*/
|
|
158
|
+
export function summarizeSubagentRun(result, sessionName, model, durationMs, timedOut) {
|
|
159
|
+
const report = result.toolCalls.find((tc) => tc.toolName === REPORT_TOOL_NAME);
|
|
160
|
+
const work = result.toolCalls.filter((tc) => tc.toolName !== REPORT_TOOL_NAME);
|
|
161
|
+
const changed = new Set();
|
|
162
|
+
for (const tc of work) {
|
|
163
|
+
if (tc.toolName !== 'edit_file' && tc.toolName !== 'write_file')
|
|
164
|
+
continue;
|
|
165
|
+
const ok = tc.result == null || typeof tc.result !== 'object' || tc.result['success'] !== false;
|
|
166
|
+
const fp = tc.args['file_path'];
|
|
167
|
+
if (ok && typeof fp === 'string' && fp)
|
|
168
|
+
changed.add(fp);
|
|
169
|
+
}
|
|
170
|
+
const reported = report?.args['filesChanged'];
|
|
171
|
+
if (Array.isArray(reported)) {
|
|
172
|
+
for (const fp of reported)
|
|
173
|
+
if (typeof fp === 'string' && fp)
|
|
174
|
+
changed.add(fp);
|
|
175
|
+
}
|
|
176
|
+
let stoppedReason = 'done';
|
|
177
|
+
if (timedOut)
|
|
178
|
+
stoppedReason = 'timeout';
|
|
179
|
+
else if (work.length === 0)
|
|
180
|
+
stoppedReason = 'did_nothing';
|
|
181
|
+
else if (result.incomplete?.reason === 'steps-exhausted')
|
|
182
|
+
stoppedReason = 'steps_exhausted';
|
|
183
|
+
else if (result.incomplete)
|
|
184
|
+
stoppedReason = 'incomplete';
|
|
185
|
+
const reportedSummary = report?.args['summary'];
|
|
186
|
+
const raw = (typeof reportedSummary === 'string' && reportedSummary.trim() ? reportedSummary : result.text ?? '').trim();
|
|
187
|
+
const cap = CREWLY_AGENT_DEFAULTS.SUBAGENT.SUMMARY_MAX_CHARS;
|
|
188
|
+
const summary = raw.length > cap ? `${raw.slice(0, cap)}\n…[truncated]` : raw;
|
|
189
|
+
return {
|
|
190
|
+
success: stoppedReason === 'done',
|
|
191
|
+
stoppedReason,
|
|
192
|
+
summary,
|
|
193
|
+
toolCalls: work.length,
|
|
194
|
+
toolNames: [...new Set(work.map((tc) => tc.toolName))],
|
|
195
|
+
filesChanged: [...changed],
|
|
196
|
+
usage: result.usage,
|
|
197
|
+
steps: result.steps,
|
|
198
|
+
sessionName,
|
|
199
|
+
durationMs,
|
|
200
|
+
model,
|
|
201
|
+
...(timedOut ? { error: `sub-agent exceeded ${CREWLY_AGENT_DEFAULTS.SUBAGENT.TIMEOUT_MS} ms` } : {}),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Runs one bounded helper per call for an agent on any runtime.
|
|
206
|
+
*/
|
|
207
|
+
export class SubagentRunService {
|
|
208
|
+
logger = LoggerService.getInstance().createComponentLogger('SubagentRunService');
|
|
209
|
+
logBuffer;
|
|
210
|
+
createRuntime;
|
|
211
|
+
timeoutMs;
|
|
212
|
+
defaultModel;
|
|
213
|
+
exhaustedRuntimes;
|
|
214
|
+
crewlyAgentModel;
|
|
215
|
+
now;
|
|
216
|
+
isDirectory;
|
|
217
|
+
/** Children running per parent */
|
|
218
|
+
active = new Map();
|
|
219
|
+
/** Children ever started per parent, for `sub-<n>` */
|
|
220
|
+
ordinals = new Map();
|
|
221
|
+
constructor(deps = {}) {
|
|
222
|
+
this.logBuffer = deps.logBuffer ?? InProcessLogBuffer.getInstance();
|
|
223
|
+
this.createRuntime = deps.createRuntime ?? ((cwd) => RuntimeServiceFactory.createFresh(RUNTIME_TYPES.CREWLY_AGENT, undefined, cwd));
|
|
224
|
+
this.timeoutMs = deps.timeoutMs;
|
|
225
|
+
this.defaultModel = deps.defaultModel ?? defaultSubagentModel;
|
|
226
|
+
this.exhaustedRuntimes = deps.exhaustedRuntimes ?? exhaustedRuntimesFromFallback;
|
|
227
|
+
this.crewlyAgentModel = deps.crewlyAgentModel ?? crewlyAgentModelFromFallback;
|
|
228
|
+
this.now = deps.now ?? Date.now;
|
|
229
|
+
this.isDirectory = deps.isDirectory ?? ((p) => {
|
|
230
|
+
try {
|
|
231
|
+
return statSync(p).isDirectory();
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
/** Children a parent has running now */
|
|
239
|
+
activeCount(parentSession) {
|
|
240
|
+
return this.active.get(parentSession) ?? 0;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Start one child for `parentSession`, wait for its one reply, shut it down.
|
|
244
|
+
*
|
|
245
|
+
* @param parentSession - The calling agent's session name
|
|
246
|
+
* @param input - The task and its bounds
|
|
247
|
+
* @returns The outcome; a run that could not even start resolves with
|
|
248
|
+
* `stoppedReason: 'error'`
|
|
249
|
+
* @throws SubagentRunRefused when a rule refuses the request before a worker starts
|
|
250
|
+
*/
|
|
251
|
+
async run(parentSession, input) {
|
|
252
|
+
const parent = (parentSession ?? '').trim();
|
|
253
|
+
if (!parent)
|
|
254
|
+
throw new SubagentRunRefused('parent_required', 'Only an agent session can spawn a sub-agent (X-Agent-Session missing).');
|
|
255
|
+
if (CHILD_SESSION_RE.test(parent))
|
|
256
|
+
throw new SubagentRunRefused('nested', 'A sub-agent cannot spawn sub-agents.');
|
|
257
|
+
const task = typeof input.task === 'string' ? input.task.trim() : '';
|
|
258
|
+
if (!task)
|
|
259
|
+
throw new SubagentRunRefused('task_missing', 'task is required.');
|
|
260
|
+
if (task.length > CREWLY_AGENT_DEFAULTS.SUBAGENT.TASK_MAX_CHARS) {
|
|
261
|
+
throw new SubagentRunRefused('task_too_long', `task is ${task.length} chars; the limit is ${CREWLY_AGENT_DEFAULTS.SUBAGENT.TASK_MAX_CHARS}. Summarise the context instead of pasting it.`);
|
|
262
|
+
}
|
|
263
|
+
const cwd = typeof input.cwd === 'string' ? input.cwd.trim() : '';
|
|
264
|
+
if (!cwd || !isAbsolute(cwd) || !this.isDirectory(cwd)) {
|
|
265
|
+
throw new SubagentRunRefused('cwd_invalid', `cwd must be an existing absolute directory, got "${cwd}".`);
|
|
266
|
+
}
|
|
267
|
+
let model;
|
|
268
|
+
if (typeof input.model === 'string' && input.model.trim()) {
|
|
269
|
+
const parsed = parseRequestedModel(input.model);
|
|
270
|
+
if ('error' in parsed)
|
|
271
|
+
throw new SubagentRunRefused('model_invalid', parsed.error);
|
|
272
|
+
model = parsed.model;
|
|
273
|
+
}
|
|
274
|
+
else {
|
|
275
|
+
model = this.defaultModel();
|
|
276
|
+
}
|
|
277
|
+
// The fallback service learns from real runs that the crewly-agent
|
|
278
|
+
// runtime's provider is out of credit (DeepSeek's HTTP 402 is one
|
|
279
|
+
// such). A child on that provider would fail in a second with "No
|
|
280
|
+
// output generated"; say why before starting a worker.
|
|
281
|
+
const exhausted = (await this.exhaustedRuntimes()).find((e) => e.runtime === FALLBACK_RUNTIME_TYPES.CREWLY_AGENT);
|
|
282
|
+
if (exhausted) {
|
|
283
|
+
const agentModel = this.crewlyAgentModel() ?? '';
|
|
284
|
+
const agentProvider = agentModel.includes('/') ? agentModel.slice(0, agentModel.indexOf('/')) : '';
|
|
285
|
+
if (agentProvider && agentProvider === model.provider) {
|
|
286
|
+
const since = exhausted.since ? ` since ${exhausted.since.slice(0, 10)}` : '';
|
|
287
|
+
const kind = exhausted.kind === 'billing' ? 'out of credit' : 'over its usage limit';
|
|
288
|
+
throw new SubagentRunRefused('provider_exhausted', `${model.provider} is ${kind}${since} (${exhausted.ruleId ?? 'runtime-fallback'}); the sub-agent would fail at its first model call. Add credit or an API key in Settings, or pass model=provider/modelId for a provider that has one.`);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
const limit = CREWLY_AGENT_DEFAULTS.SUBAGENT.MAX_CONCURRENT;
|
|
292
|
+
if (this.activeCount(parent) >= limit) {
|
|
293
|
+
throw new SubagentRunRefused('too_many', `${parent} already has ${limit} sub-agents running; wait for one to finish.`);
|
|
294
|
+
}
|
|
295
|
+
const readOnly = input.readOnly === true;
|
|
296
|
+
const requestedSteps = Number.isFinite(input.maxSteps) && input.maxSteps >= 1
|
|
297
|
+
? Math.floor(input.maxSteps)
|
|
298
|
+
: CREWLY_AGENT_DEFAULTS.SUBAGENT.MAX_STEPS;
|
|
299
|
+
const maxSteps = Math.min(requestedSteps, CREWLY_AGENT_DEFAULTS.SUBAGENT.MAX_STEPS_CAP);
|
|
300
|
+
const ordinal = (this.ordinals.get(parent) ?? 0) + 1;
|
|
301
|
+
this.ordinals.set(parent, ordinal);
|
|
302
|
+
const childSession = `${parent}/sub-${ordinal}`;
|
|
303
|
+
const modelString = `${model.provider}/${model.modelId}`;
|
|
304
|
+
const config = {
|
|
305
|
+
model,
|
|
306
|
+
maxSteps,
|
|
307
|
+
sessionName: childSession,
|
|
308
|
+
role: 'subagent',
|
|
309
|
+
apiBaseUrl: getLocalApiBaseUrl(),
|
|
310
|
+
systemPrompt: buildSubagentPrompt(parent, cwd, readOnly),
|
|
311
|
+
maxHistoryMessages: CREWLY_AGENT_DEFAULTS.MAX_HISTORY_MESSAGES,
|
|
312
|
+
compactionThreshold: CREWLY_AGENT_DEFAULTS.COMPACTION_THRESHOLD,
|
|
313
|
+
projectPath: cwd,
|
|
314
|
+
subagent: { cwd, readOnly, depth: 1, parentSession: parent },
|
|
315
|
+
};
|
|
316
|
+
// Stop before the runtime's own IPC deadline: that path recycles the
|
|
317
|
+
// worker (respawns it), which would leave a fresh child alive after
|
|
318
|
+
// this run shut the old one down.
|
|
319
|
+
const ipcDeadline = (CREWLY_AGENT_DEFAULTS.MODEL_TIMEOUT_MS[model.modelId] ?? CREWLY_AGENT_DEFAULTS.MESSAGE_TIMEOUT_MS)
|
|
320
|
+
+ CREWLY_AGENT_DEFAULTS.IPC_RUN_TIMEOUT_GRACE_MS;
|
|
321
|
+
const timeoutMs = this.timeoutMs ?? Math.max(1_000, Math.min(CREWLY_AGENT_DEFAULTS.SUBAGENT.TIMEOUT_MS, ipcDeadline - 5_000));
|
|
322
|
+
this.active.set(parent, this.activeCount(parent) + 1);
|
|
323
|
+
const started = this.now();
|
|
324
|
+
const preview = task.length > 120 ? `${task.slice(0, 120)}…` : task;
|
|
325
|
+
this.logBuffer.append(parent, 'info', `spawn-subagent → ${childSession} (${modelString}, ${maxSteps} steps${readOnly ? ', read-only' : ''}): ${preview}`);
|
|
326
|
+
this.logger.info('Sub-agent starting', { parent, childSession, model: modelString, maxSteps, readOnly, cwd });
|
|
327
|
+
let runtime = null;
|
|
328
|
+
let timer = null;
|
|
329
|
+
let timedOut = false;
|
|
330
|
+
let outcome;
|
|
331
|
+
try {
|
|
332
|
+
const worker = this.createRuntime(cwd);
|
|
333
|
+
runtime = worker;
|
|
334
|
+
registerInProcessRuntime(childSession, worker);
|
|
335
|
+
await worker.initializeInProcess(childSession, config, 'subagent');
|
|
336
|
+
const result = await new Promise((resolve, reject) => {
|
|
337
|
+
timer = setTimeout(() => {
|
|
338
|
+
timedOut = true;
|
|
339
|
+
reject(new Error(`sub-agent exceeded ${timeoutMs} ms`));
|
|
340
|
+
}, timeoutMs);
|
|
341
|
+
worker.handleMessage(task).then(resolve, reject);
|
|
342
|
+
});
|
|
343
|
+
outcome = summarizeSubagentRun(result, childSession, modelString, this.now() - started, false);
|
|
344
|
+
}
|
|
345
|
+
catch (error) {
|
|
346
|
+
const base = error instanceof Error ? error.message : String(error);
|
|
347
|
+
const stderr = lastWorkerStderr(this.logBuffer, childSession);
|
|
348
|
+
const message = stderr ? `${base} — worker stderr: ${stderr}` : base;
|
|
349
|
+
outcome = {
|
|
350
|
+
success: false,
|
|
351
|
+
stoppedReason: timedOut ? 'timeout' : 'error',
|
|
352
|
+
summary: '',
|
|
353
|
+
toolCalls: 0,
|
|
354
|
+
toolNames: [],
|
|
355
|
+
filesChanged: [],
|
|
356
|
+
usage: { input: 0, output: 0, cachedInput: 0 },
|
|
357
|
+
steps: 0,
|
|
358
|
+
sessionName: childSession,
|
|
359
|
+
durationMs: this.now() - started,
|
|
360
|
+
model: modelString,
|
|
361
|
+
error: message,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
finally {
|
|
365
|
+
if (timer)
|
|
366
|
+
clearTimeout(timer);
|
|
367
|
+
this.active.set(parent, Math.max(0, this.activeCount(parent) - 1));
|
|
368
|
+
if (runtime) {
|
|
369
|
+
try {
|
|
370
|
+
runtime.shutdown();
|
|
371
|
+
}
|
|
372
|
+
catch { /* the worker is gone either way */ }
|
|
373
|
+
}
|
|
374
|
+
unregisterInProcessRuntime(childSession);
|
|
375
|
+
}
|
|
376
|
+
const tail = outcome.error ? `: ${outcome.error}` : '';
|
|
377
|
+
this.logBuffer.append(parent, outcome.success ? 'info' : 'warn', `spawn-subagent ← ${childSession} ${outcome.stoppedReason} (${outcome.toolCalls} tool calls, ${outcome.filesChanged.length} files, ${Math.round(outcome.durationMs / 1000)} s)${tail}`);
|
|
378
|
+
this.logger.info('Sub-agent finished', { parent, childSession, stoppedReason: outcome.stoppedReason, toolCalls: outcome.toolCalls, durationMs: outcome.durationMs });
|
|
379
|
+
return outcome;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/** Process-wide instance, created on first use */
|
|
383
|
+
let instance = null;
|
|
384
|
+
/**
|
|
385
|
+
* The shared service.
|
|
386
|
+
*
|
|
387
|
+
* @returns The instance
|
|
388
|
+
*/
|
|
389
|
+
export function getSubagentRunService() {
|
|
390
|
+
if (!instance)
|
|
391
|
+
instance = new SubagentRunService();
|
|
392
|
+
return instance;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Replace the shared instance (tests).
|
|
396
|
+
*
|
|
397
|
+
* @param service - The instance to use, or null to reset
|
|
398
|
+
*/
|
|
399
|
+
export function setSubagentRunServiceForTesting(service) {
|
|
400
|
+
instance = service;
|
|
401
|
+
}
|
|
402
|
+
//# sourceMappingURL=subagent-run.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subagent-run.service.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/subagent-run.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AACxG,OAAO,EACL,qBAAqB,EACrB,eAAe,GAIhB,MAAM,YAAY,CAAC;AAGpB,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAE5C,kDAAkD;AAClD,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAoDtC,oEAAoE;AACpE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACtB;IAArB,YAAqB,IAAyB,EAAE,OAAe;QAC7D,KAAK,CAAC,OAAO,CAAC,CAAC;QADI,SAAI,GAAJ,IAAI,CAAqB;QAE5C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AA6BD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB,EAAE,GAAW,EAAE,QAAiB;IACvF,OAAO;QACL,sDAAsD,aAAa,yBAAyB;QAC5F,sBAAsB,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAAC,mCAAmC,GAAG,GAAG,EAAE;QAChJ,wGAAwG;QACxG,0CAA0C,gBAAgB,6FAA6F;QACvJ,mHAAmH;KACpH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,KAAK,EAAE,+CAA+C,OAAO,GAAG,EAAE,CAAC;IAC9E,CAAC;IACD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACzC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,EAAE,2BAA2B,QAAQ,GAAG,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO;QACL,KAAK,EAAE;YACL,QAAQ;YACR,OAAO;YACP,WAAW,EAAE,qBAAqB,CAAC,aAAa,CAAC,WAAW;YAC5D,SAAS,EAAE,qBAAqB,CAAC,aAAa,CAAC,SAAS;SACzD;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,6BAA6B;IAC1C,MAAM,GAAG,GAAG,yBAAyB,EAAE,CAAC;IACxC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,4BAA4B;IACnC,OAAO,yBAAyB,EAAE,EAAE,WAAW,EAAE,CAAC,gBAAgB,CAAC;AACrE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAA2C,EAAE,WAAmB;IAC/F,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAChG,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3H,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,IAAI,GAAG,yBAAyB,EAAE,EAAE,WAAW,EAAE,CAAC,gBAAgB,CAAC;IACzE,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,OAAO,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC;IAC7C,CAAC;IACD,OAAO,qBAAqB,CAAC,aAAa,CAAC;AAC7C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAsB,EACtB,WAAmB,EACnB,KAAa,EACb,UAAkB,EAClB,QAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,gBAAgB,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;QACtB,IAAI,EAAE,CAAC,QAAQ,KAAK,WAAW,IAAI,EAAE,CAAC,QAAQ,KAAK,YAAY;YAAE,SAAS;QAC1E,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAK,EAAE,CAAC,MAAkC,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;QAC7H,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAChC,IAAI,EAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,KAAK,MAAM,EAAE,IAAI,QAAQ;YAAE,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE;gBAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,IAAI,aAAa,GAAuB,MAAM,CAAC;IAC/C,IAAI,QAAQ;QAAE,aAAa,GAAG,SAAS,CAAC;SACnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,aAAa,GAAG,aAAa,CAAC;SACrD,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,KAAK,iBAAiB;QAAE,aAAa,GAAG,iBAAiB,CAAC;SACvF,IAAI,MAAM,CAAC,UAAU;QAAE,aAAa,GAAG,YAAY,CAAC;IAEzD,MAAM,eAAe,GAAG,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,CAAC,OAAO,eAAe,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzH,MAAM,GAAG,GAAG,qBAAqB,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9E,OAAO;QACL,OAAO,EAAE,aAAa,KAAK,MAAM;QACjC,aAAa;QACb,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,MAAM;QACtB,SAAS,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC;QAC1B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,WAAW;QACX,UAAU;QACV,KAAK;QACL,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,sBAAsB,qBAAqB,CAAC,QAAQ,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrG,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACZ,MAAM,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IACjF,SAAS,CAAiD;IAC1D,aAAa,CAAmC;IAChD,SAAS,CAAqB;IAC9B,YAAY,CAAoB;IAChC,iBAAiB,CAAoC;IACrD,gBAAgB,CAA2B;IAC3C,GAAG,CAAe;IAClB,WAAW,CAA4B;IACxD,kCAAkC;IACjB,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,sDAAsD;IACrC,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtD,YAAY,OAA+B,EAAE;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACpE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAClD,qBAAqB,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,EAAE,SAAS,EAAE,GAAG,CAAiD,CAAC,CAAC;QACjI,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,oBAAoB,CAAC;QAC9D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,6BAA6B,CAAC;QACjF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,4BAA4B,CAAC;QAC9E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC5C,IAAI,CAAC;gBAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC;gBAAC,OAAO,KAAK,CAAC;YAAC,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,WAAW,CAAC,aAAqB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,GAAG,CAAC,aAAiC,EAAE,KAAuB;QAClE,MAAM,MAAM,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,kBAAkB,CAAC,iBAAiB,EAAE,wEAAwE,CAAC,CAAC;QACvI,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,kBAAkB,CAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;QAElH,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QAC7E,IAAI,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC;YAChE,MAAM,IAAI,kBAAkB,CAAC,eAAe,EAAE,WAAW,IAAI,CAAC,MAAM,wBAAwB,qBAAqB,CAAC,QAAQ,CAAC,cAAc,gDAAgD,CAAC,CAAC;QAC7L,CAAC;QAED,MAAM,GAAG,GAAG,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,kBAAkB,CAAC,aAAa,EAAE,oDAAoD,GAAG,IAAI,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,KAAkB,CAAC;QACvB,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,OAAO,IAAI,MAAM;gBAAE,MAAM,IAAI,kBAAkB,CAAC,eAAe,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnF,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC9B,CAAC;QAED,mEAAmE;QACnE,kEAAkE;QAClE,kEAAkE;QAClE,uDAAuD;QACvD,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAClH,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACjD,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,IAAI,aAAa,IAAI,aAAa,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACtD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC;gBACrF,MAAM,IAAI,kBAAkB,CAAC,oBAAoB,EAC/C,GAAG,KAAK,CAAC,QAAQ,OAAO,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,MAAM,IAAI,kBAAkB,wJAAwJ,CAAC,CAAC;YAC7O,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC5D,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtC,MAAM,IAAI,kBAAkB,CAAC,UAAU,EAAE,GAAG,MAAM,gBAAgB,KAAK,8CAA8C,CAAC,CAAC;QACzH,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;QACzC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAK,KAAK,CAAC,QAAmB,IAAI,CAAC;YACvF,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAkB,CAAC;YACtC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAExF,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,GAAG,MAAM,QAAQ,OAAO,EAAE,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAEzD,MAAM,MAAM,GAA+B;YACzC,KAAK;YACL,QAAQ;YACR,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,kBAAkB,EAAE;YAChC,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC;YACxD,kBAAkB,EAAE,qBAAqB,CAAC,oBAAoB;YAC9D,mBAAmB,EAAE,qBAAqB,CAAC,oBAAoB;YAC/D,WAAW,EAAE,GAAG;YAChB,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE;SAC7D,CAAC;QAEF,qEAAqE;QACrE,oEAAoE;QACpE,kCAAkC;QAClC,MAAM,WAAW,GACf,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,qBAAqB,CAAC,kBAAkB,CAAC;cACjG,qBAAqB,CAAC,wBAAwB,CAAC;QACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC;QAE9H,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,oBAAoB,YAAY,KAAK,WAAW,KAAK,QAAQ,SAAS,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,OAAO,EAAE,CAAC,CAAC;QAC1J,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9G,IAAI,OAAO,GAA2B,IAAI,CAAC;QAC3C,IAAI,KAAK,GAA0B,IAAI,CAAC;QACxC,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAA2B,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACvC,OAAO,GAAG,MAAM,CAAC;YACjB,wBAAwB,CAAC,YAAY,EAAE,MAA2C,CAAC,CAAC;YACpF,MAAM,MAAM,CAAC,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACnE,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBACtB,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,SAAS,KAAK,CAAC,CAAC,CAAC;gBAC1D,CAAC,EAAE,SAAS,CAAC,CAAC;gBACd,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,oBAAoB,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,qBAAqB,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,OAAO,GAAG;gBACR,OAAO,EAAE,KAAK;gBACd,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;gBAC7C,OAAO,EAAE,EAAE;gBACX,SAAS,EAAE,CAAC;gBACZ,SAAS,EAAE,EAAE;gBACb,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE;gBAC9C,KAAK,EAAE,CAAC;gBACR,WAAW,EAAE,YAAY;gBACzB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO;gBAChC,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,OAAO;aACf,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,IAAI,KAAK;gBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnE,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC;oBAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,mCAAmC,CAAC,CAAC;YAC3E,CAAC;YACD,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAC7D,oBAAoB,YAAY,IAAI,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,SAAS,gBAAgB,OAAO,CAAC,YAAY,CAAC,MAAM,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAC1L,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QACrK,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AAED,kDAAkD;AAClD,IAAI,QAAQ,GAA8B,IAAI,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,CAAC,QAAQ;QAAE,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACnD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAC,OAAkC;IAChF,QAAQ,GAAG,OAAO,CAAC;AACrB,CAAC"}
|
|
@@ -75,6 +75,22 @@ export interface ConversationState {
|
|
|
75
75
|
/** Last activity timestamp */
|
|
76
76
|
lastActivityAt: Date;
|
|
77
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* What makes a worker a short-lived helper of another agent (#1317). The
|
|
80
|
+
* worker restricts its tools to read/grep/edit under `cwd` plus
|
|
81
|
+
* `report_to_parent`, and never gets `spawn_subagent` itself. Mirrors
|
|
82
|
+
* `SubagentPolicy` in packages/crewly-agent.
|
|
83
|
+
*/
|
|
84
|
+
export interface SubagentPolicy {
|
|
85
|
+
/** Directory the child works in and may write under */
|
|
86
|
+
cwd: string;
|
|
87
|
+
/** No shell and no file writes when true */
|
|
88
|
+
readOnly: boolean;
|
|
89
|
+
/** 1 for a direct child; a child never gets `spawn_subagent`, so it stays 1 */
|
|
90
|
+
depth: number;
|
|
91
|
+
/** Session name of the agent that spawned it */
|
|
92
|
+
parentSession: string;
|
|
93
|
+
}
|
|
78
94
|
/**
|
|
79
95
|
* Configuration for the Crewly Agent runtime
|
|
80
96
|
*/
|
|
@@ -87,6 +103,8 @@ export interface CrewlyAgentConfig {
|
|
|
87
103
|
sessionName: string;
|
|
88
104
|
/** Agent role (e.g. developer, product-manager) */
|
|
89
105
|
role?: string;
|
|
106
|
+
/** Set when this worker is a bounded helper of another agent (#1317) */
|
|
107
|
+
subagent?: SubagentPolicy;
|
|
90
108
|
/** Base URL for the Crewly REST API */
|
|
91
109
|
apiBaseUrl: string;
|
|
92
110
|
/** System prompt content (loaded from prompt.md) */
|
|
@@ -425,6 +443,21 @@ export declare const CREWLY_AGENT_DEFAULTS: {
|
|
|
425
443
|
readonly ERROR_LOOP_THRESHOLD: 3;
|
|
426
444
|
/** Default max history messages before compaction */
|
|
427
445
|
readonly MAX_HISTORY_MESSAGES: 100;
|
|
446
|
+
/** Limits for a helper spawned for one bounded task (#1317); same values as packages/crewly-agent */
|
|
447
|
+
readonly SUBAGENT: {
|
|
448
|
+
/** Model steps a child gets when the parent names none */
|
|
449
|
+
readonly MAX_STEPS: 30;
|
|
450
|
+
/** Hard cap on the steps a parent may grant */
|
|
451
|
+
readonly MAX_STEPS_CAP: 60;
|
|
452
|
+
/** Wall-clock budget per child */
|
|
453
|
+
readonly TIMEOUT_MS: 600000;
|
|
454
|
+
/** Children one parent may have running at once */
|
|
455
|
+
readonly MAX_CONCURRENT: 3;
|
|
456
|
+
/** Characters of the child's report kept for the parent */
|
|
457
|
+
readonly SUMMARY_MAX_CHARS: 6000;
|
|
458
|
+
/** Characters a task may have; longer means the parent is pasting context it should summarise */
|
|
459
|
+
readonly TASK_MAX_CHARS: 12000;
|
|
460
|
+
};
|
|
428
461
|
/** Default compaction threshold (80% of context window) */
|
|
429
462
|
readonly COMPACTION_THRESHOLD: 0.8;
|
|
430
463
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,21 @@ export const CREWLY_AGENT_DEFAULTS = {
|
|
|
124
124
|
ERROR_LOOP_THRESHOLD: 3,
|
|
125
125
|
/** Default max history messages before compaction */
|
|
126
126
|
MAX_HISTORY_MESSAGES: 100,
|
|
127
|
+
/** Limits for a helper spawned for one bounded task (#1317); same values as packages/crewly-agent */
|
|
128
|
+
SUBAGENT: {
|
|
129
|
+
/** Model steps a child gets when the parent names none */
|
|
130
|
+
MAX_STEPS: 30,
|
|
131
|
+
/** Hard cap on the steps a parent may grant */
|
|
132
|
+
MAX_STEPS_CAP: 60,
|
|
133
|
+
/** Wall-clock budget per child */
|
|
134
|
+
TIMEOUT_MS: 600_000,
|
|
135
|
+
/** Children one parent may have running at once */
|
|
136
|
+
MAX_CONCURRENT: 3,
|
|
137
|
+
/** Characters of the child's report kept for the parent */
|
|
138
|
+
SUMMARY_MAX_CHARS: 6000,
|
|
139
|
+
/** Characters a task may have; longer means the parent is pasting context it should summarise */
|
|
140
|
+
TASK_MAX_CHARS: 12_000,
|
|
141
|
+
},
|
|
127
142
|
/** Default compaction threshold (80% of context window) */
|
|
128
143
|
COMPACTION_THRESHOLD: 0.8,
|
|
129
144
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAyBH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAA6B;IACvD,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,UAAU;CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crewly-agent-external-runtime.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAe,MAAM,YAAY,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAO9D,OAAO,EASL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAQ/B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gCAAgC,QAMuC,CAAC;AA6BrF,qBAAa,iCAAkC,SAAQ,mBAAmB;IACxE,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,KAAK,CAA+C;IAE5D;;;;;;OAMG;IACH,IAAI,QAAQ,IAAI,MAAM,GAAG,SAAS,CAEjC;IAED,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,cAAc,CAA+C;IACrE,OAAO,CAAC,YAAY,CAAM;IAC1B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;IAC7D,gDAAgD;IAChD,OAAO,CAAC,UAAU,CAAK;IACvB;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,YAAY,CAAkC;IACtD,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAAS;IAC1B;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAmD;gBAE9D,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM;IAKpE,SAAS,CAAC,cAAc,IAAI,WAAW;cAIvB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI7E,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAI7C,SAAS,CAAC,uBAAuB,IAAI,MAAM,EAAE;IAI7C,SAAS,CAAC,sBAAsB,IAAI,MAAM,EAAE;IAItC,mBAAmB,CACvB,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAC3D,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"crewly-agent-external-runtime.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js
CHANGED
|
@@ -125,16 +125,22 @@ export class CrewlyAgentExternalRuntimeService extends RuntimeAgentService {
|
|
|
125
125
|
this.currentSessionName = sessionName;
|
|
126
126
|
this.currentMemberId = config?.memberId;
|
|
127
127
|
this.currentRoleName = roleName || 'orchestrator';
|
|
128
|
-
|
|
128
|
+
// A caller that brings its own prompt (a sub-agent, #1317) does not need
|
|
129
|
+
// the role prompt assembled: that reads memory and team state for nothing.
|
|
130
|
+
const systemPrompt = config?.systemPrompt || await this.buildEnhancedSystemPrompt(this.currentRoleName);
|
|
129
131
|
const fullConfig = {
|
|
130
132
|
model: config?.model || CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL,
|
|
131
133
|
maxSteps: config?.maxSteps || CREWLY_AGENT_DEFAULTS.MAX_STEPS,
|
|
132
134
|
sessionName,
|
|
135
|
+
...(config?.role ? { role: config.role } : {}),
|
|
133
136
|
apiBaseUrl: config?.apiBaseUrl || getLocalApiBaseUrl(),
|
|
134
|
-
systemPrompt
|
|
137
|
+
systemPrompt,
|
|
135
138
|
maxHistoryMessages: config?.maxHistoryMessages || CREWLY_AGENT_DEFAULTS.MAX_HISTORY_MESSAGES,
|
|
136
139
|
compactionThreshold: config?.compactionThreshold || CREWLY_AGENT_DEFAULTS.COMPACTION_THRESHOLD,
|
|
137
140
|
projectPath: config?.projectPath,
|
|
141
|
+
// The worker reads this to restrict its tools; without it a helper
|
|
142
|
+
// would get the full tool set and `spawn_subagent` of its own.
|
|
143
|
+
...(config?.subagent ? { subagent: config.subagent } : {}),
|
|
138
144
|
};
|
|
139
145
|
this.storedConfig = fullConfig;
|
|
140
146
|
this.currentModelString = `${fullConfig.model.provider}/${fullConfig.model.modelId}`;
|