crewly 1.20.450 → 1.20.452

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 (40) hide show
  1. package/config/skills/agent/checkup-report/SKILL.md +22 -5
  2. package/config/skills/agent/checkup-report/app/index.html +10 -0
  3. package/config/skills/agent/checkup-report/execute.sh +6 -2
  4. package/config/skills/agent/checkup-report/execute.test.sh +37 -0
  5. package/config/skills/agent/checkup-report/report.mjs +92 -5
  6. package/config/skills/agent/spawn-subagent/SKILL.md +105 -0
  7. package/config/skills/agent/spawn-subagent/execute.sh +114 -0
  8. package/config/skills/agent/spawn-subagent/execute.test.sh +113 -0
  9. package/config/templates/small-business-checkup.json +22 -0
  10. package/dist/backend/backend/src/controllers/subagents/subagents.controller.d.ts +27 -0
  11. package/dist/backend/backend/src/controllers/subagents/subagents.controller.d.ts.map +1 -0
  12. package/dist/backend/backend/src/controllers/subagents/subagents.controller.js +61 -0
  13. package/dist/backend/backend/src/controllers/subagents/subagents.controller.js.map +1 -0
  14. package/dist/backend/backend/src/controllers/subagents/subagents.routes.d.ts +15 -0
  15. package/dist/backend/backend/src/controllers/subagents/subagents.routes.d.ts.map +1 -0
  16. package/dist/backend/backend/src/controllers/subagents/subagents.routes.js +21 -0
  17. package/dist/backend/backend/src/controllers/subagents/subagents.routes.js.map +1 -0
  18. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  19. package/dist/backend/backend/src/routes/api.routes.js +3 -0
  20. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  21. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +8 -2
  23. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.d.ts +179 -0
  25. package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.d.ts.map +1 -0
  26. package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.js +345 -0
  27. package/dist/backend/backend/src/services/agent/crewly-agent/subagent-run.service.js.map +1 -0
  28. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts +33 -0
  29. package/dist/backend/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/agent/crewly-agent/types.js +15 -0
  31. package/dist/backend/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  32. package/dist/backend/build-info.json +2 -2
  33. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  34. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +8 -2
  35. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  36. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts +33 -0
  37. package/dist/cli/backend/src/services/agent/crewly-agent/types.d.ts.map +1 -1
  38. package/dist/cli/backend/src/services/agent/crewly-agent/types.js +15 -0
  39. package/dist/cli/backend/src/services/agent/crewly-agent/types.js.map +1 -1
  40. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-run.service.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/subagent-run.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AASH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AASpB,+BAA+B;AAC/B,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,GAAG,EAAE,MAAM,CAAC;IACZ,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,0BAA0B;AAC1B,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,aAAa,GAAG,iBAAiB,GAAG,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjH,iFAAiF;AACjF,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,kBAAkB,CAAC;IAClC,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAC;IAClB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,yEAAyE;IACzE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,sEAAsE;AACtE,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,QAAQ,GACR,cAAc,GACd,eAAe,GACf,aAAa,GACb,eAAe,GACf,UAAU,CAAC;AAEf,oEAAoE;AACpE,qBAAa,kBAAmB,SAAQ,KAAK;IAC/B,QAAQ,CAAC,IAAI,EAAE,mBAAmB;gBAAzB,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM;CAIhE;AAED,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC9B,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/G,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IACxD,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,eAAe,CAAC;IACjD,uEAAuE;IACvE,SAAS,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAC/C,6FAA6F;IAC7F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,YAAY,CAAC,EAAE,MAAM,WAAW,CAAC;IACjC,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,iCAAiC;IACjC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAQjG;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAmB5F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,WAAW,CAOlD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,GAChB,kBAAkB,CAuCpB;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2E;IAClG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4B;IACxD,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;gBAE1C,IAAI,GAAE,sBAA2B;IAY7C,wCAAwC;IACxC,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAI1C;;;;;;;;OAQG;IACG,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAoHnG;AAKD;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,kBAAkB,CAG1D;AAED;;;;GAIG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAExF"}
@@ -0,0 +1,345 @@
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 { RuntimeServiceFactory } from '../runtime-service.factory.js';
34
+ import { InProcessLogBuffer } from './in-process-log-buffer.js';
35
+ import { registerInProcessRuntime, unregisterInProcessRuntime } from './in-process-runtime-registry.js';
36
+ import { CREWLY_AGENT_DEFAULTS, isModelProvider, } from './types.js';
37
+ /** Name of the one tool a child reports through (same as the worker's) */
38
+ const REPORT_TOOL_NAME = 'report_to_parent';
39
+ /** Session name of a child: `<parent>/sub-<n>` */
40
+ const CHILD_SESSION_RE = /\/sub-\d+$/;
41
+ /** A run that was not started; `code` says which rule refused it */
42
+ export class SubagentRunRefused extends Error {
43
+ code;
44
+ constructor(code, message) {
45
+ super(message);
46
+ this.code = code;
47
+ this.name = 'SubagentRunRefused';
48
+ }
49
+ }
50
+ /**
51
+ * The prompt a child runs under — the same words as the worker's own
52
+ * `buildSubagentPrompt`, kept in step by hand.
53
+ *
54
+ * @param parentSession - The agent that spawned it
55
+ * @param cwd - Where it works
56
+ * @param readOnly - Whether it may change files
57
+ * @returns The system prompt
58
+ */
59
+ export function buildSubagentPrompt(parentSession, cwd, readOnly) {
60
+ return [
61
+ `You are a short-lived helper spawned by the agent "${parentSession}" for one bounded task.`,
62
+ `Working directory: ${cwd}. ${readOnly ? 'You have read-only tools: look, do not change anything.' : `You may change files only under ${cwd}.`}`,
63
+ 'You cannot message anyone, delegate, schedule, or touch tickets; nobody but your parent will read you.',
64
+ `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.`,
65
+ 'Report facts you verified, with paths and line numbers; if you did nothing, say so instead of inventing a result.',
66
+ ].join('\n');
67
+ }
68
+ /**
69
+ * Parse `provider/modelId`, refusing anything else: the default is decided
70
+ * by the service, so an unparseable id must not silently become it.
71
+ *
72
+ * @param spec - The `model` field
73
+ * @returns The model, or why it was refused
74
+ */
75
+ export function parseRequestedModel(spec) {
76
+ const trimmed = spec.trim();
77
+ const slash = trimmed.indexOf('/');
78
+ if (slash <= 0 || slash === trimmed.length - 1) {
79
+ return { error: `model must look like provider/modelId, got "${trimmed}"` };
80
+ }
81
+ const provider = trimmed.slice(0, slash);
82
+ const modelId = trimmed.slice(slash + 1);
83
+ if (!isModelProvider(provider)) {
84
+ return { error: `unknown model provider "${provider}"` };
85
+ }
86
+ return {
87
+ model: {
88
+ provider,
89
+ modelId,
90
+ temperature: CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL.temperature,
91
+ maxTokens: CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL.maxTokens,
92
+ },
93
+ };
94
+ }
95
+ /**
96
+ * The model a child runs when the parent names none: the fallback
97
+ * settings' crewly-agent model (DeepSeek unless the owner changed it),
98
+ * since that is the model the owner has a key for; else the runtime default.
99
+ *
100
+ * @returns The model
101
+ */
102
+ export function defaultSubagentModel() {
103
+ const spec = getRuntimeFallbackService()?.getSettings().crewlyAgentModel;
104
+ if (spec) {
105
+ const parsed = parseRequestedModel(spec);
106
+ if ('model' in parsed)
107
+ return parsed.model;
108
+ }
109
+ return CREWLY_AGENT_DEFAULTS.DEFAULT_MODEL;
110
+ }
111
+ /**
112
+ * Turn the child's one run into the outcome the parent reads.
113
+ *
114
+ * @param result - The worker's run result
115
+ * @param sessionName - The child's session
116
+ * @param model - `provider/modelId` it ran on
117
+ * @param durationMs - Wall-clock time
118
+ * @param timedOut - Whether the budget ended the run
119
+ * @returns The outcome
120
+ */
121
+ export function summarizeSubagentRun(result, sessionName, model, durationMs, timedOut) {
122
+ const report = result.toolCalls.find((tc) => tc.toolName === REPORT_TOOL_NAME);
123
+ const work = result.toolCalls.filter((tc) => tc.toolName !== REPORT_TOOL_NAME);
124
+ const changed = new Set();
125
+ for (const tc of work) {
126
+ if (tc.toolName !== 'edit_file' && tc.toolName !== 'write_file')
127
+ continue;
128
+ const ok = tc.result == null || typeof tc.result !== 'object' || tc.result['success'] !== false;
129
+ const fp = tc.args['file_path'];
130
+ if (ok && typeof fp === 'string' && fp)
131
+ changed.add(fp);
132
+ }
133
+ const reported = report?.args['filesChanged'];
134
+ if (Array.isArray(reported)) {
135
+ for (const fp of reported)
136
+ if (typeof fp === 'string' && fp)
137
+ changed.add(fp);
138
+ }
139
+ let stoppedReason = 'done';
140
+ if (timedOut)
141
+ stoppedReason = 'timeout';
142
+ else if (work.length === 0)
143
+ stoppedReason = 'did_nothing';
144
+ else if (result.incomplete?.reason === 'steps-exhausted')
145
+ stoppedReason = 'steps_exhausted';
146
+ else if (result.incomplete)
147
+ stoppedReason = 'incomplete';
148
+ const reportedSummary = report?.args['summary'];
149
+ const raw = (typeof reportedSummary === 'string' && reportedSummary.trim() ? reportedSummary : result.text ?? '').trim();
150
+ const cap = CREWLY_AGENT_DEFAULTS.SUBAGENT.SUMMARY_MAX_CHARS;
151
+ const summary = raw.length > cap ? `${raw.slice(0, cap)}\n…[truncated]` : raw;
152
+ return {
153
+ success: stoppedReason === 'done',
154
+ stoppedReason,
155
+ summary,
156
+ toolCalls: work.length,
157
+ toolNames: [...new Set(work.map((tc) => tc.toolName))],
158
+ filesChanged: [...changed],
159
+ usage: result.usage,
160
+ steps: result.steps,
161
+ sessionName,
162
+ durationMs,
163
+ model,
164
+ ...(timedOut ? { error: `sub-agent exceeded ${CREWLY_AGENT_DEFAULTS.SUBAGENT.TIMEOUT_MS} ms` } : {}),
165
+ };
166
+ }
167
+ /**
168
+ * Runs one bounded helper per call for an agent on any runtime.
169
+ */
170
+ export class SubagentRunService {
171
+ logger = LoggerService.getInstance().createComponentLogger('SubagentRunService');
172
+ logBuffer;
173
+ createRuntime;
174
+ timeoutMs;
175
+ defaultModel;
176
+ now;
177
+ isDirectory;
178
+ /** Children running per parent */
179
+ active = new Map();
180
+ /** Children ever started per parent, for `sub-<n>` */
181
+ ordinals = new Map();
182
+ constructor(deps = {}) {
183
+ this.logBuffer = deps.logBuffer ?? InProcessLogBuffer.getInstance();
184
+ this.createRuntime = deps.createRuntime ?? ((cwd) => RuntimeServiceFactory.createFresh(RUNTIME_TYPES.CREWLY_AGENT, undefined, cwd));
185
+ this.timeoutMs = deps.timeoutMs;
186
+ this.defaultModel = deps.defaultModel ?? defaultSubagentModel;
187
+ this.now = deps.now ?? Date.now;
188
+ this.isDirectory = deps.isDirectory ?? ((p) => {
189
+ try {
190
+ return statSync(p).isDirectory();
191
+ }
192
+ catch {
193
+ return false;
194
+ }
195
+ });
196
+ }
197
+ /** Children a parent has running now */
198
+ activeCount(parentSession) {
199
+ return this.active.get(parentSession) ?? 0;
200
+ }
201
+ /**
202
+ * Start one child for `parentSession`, wait for its one reply, shut it down.
203
+ *
204
+ * @param parentSession - The calling agent's session name
205
+ * @param input - The task and its bounds
206
+ * @returns The outcome; a run that could not even start resolves with
207
+ * `stoppedReason: 'error'`
208
+ * @throws SubagentRunRefused when a rule refuses the request before a worker starts
209
+ */
210
+ async run(parentSession, input) {
211
+ const parent = (parentSession ?? '').trim();
212
+ if (!parent)
213
+ throw new SubagentRunRefused('parent_required', 'Only an agent session can spawn a sub-agent (X-Agent-Session missing).');
214
+ if (CHILD_SESSION_RE.test(parent))
215
+ throw new SubagentRunRefused('nested', 'A sub-agent cannot spawn sub-agents.');
216
+ const task = typeof input.task === 'string' ? input.task.trim() : '';
217
+ if (!task)
218
+ throw new SubagentRunRefused('task_missing', 'task is required.');
219
+ if (task.length > CREWLY_AGENT_DEFAULTS.SUBAGENT.TASK_MAX_CHARS) {
220
+ 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.`);
221
+ }
222
+ const cwd = typeof input.cwd === 'string' ? input.cwd.trim() : '';
223
+ if (!cwd || !isAbsolute(cwd) || !this.isDirectory(cwd)) {
224
+ throw new SubagentRunRefused('cwd_invalid', `cwd must be an existing absolute directory, got "${cwd}".`);
225
+ }
226
+ let model;
227
+ if (typeof input.model === 'string' && input.model.trim()) {
228
+ const parsed = parseRequestedModel(input.model);
229
+ if ('error' in parsed)
230
+ throw new SubagentRunRefused('model_invalid', parsed.error);
231
+ model = parsed.model;
232
+ }
233
+ else {
234
+ model = this.defaultModel();
235
+ }
236
+ const limit = CREWLY_AGENT_DEFAULTS.SUBAGENT.MAX_CONCURRENT;
237
+ if (this.activeCount(parent) >= limit) {
238
+ throw new SubagentRunRefused('too_many', `${parent} already has ${limit} sub-agents running; wait for one to finish.`);
239
+ }
240
+ const readOnly = input.readOnly === true;
241
+ const requestedSteps = Number.isFinite(input.maxSteps) && input.maxSteps >= 1
242
+ ? Math.floor(input.maxSteps)
243
+ : CREWLY_AGENT_DEFAULTS.SUBAGENT.MAX_STEPS;
244
+ const maxSteps = Math.min(requestedSteps, CREWLY_AGENT_DEFAULTS.SUBAGENT.MAX_STEPS_CAP);
245
+ const ordinal = (this.ordinals.get(parent) ?? 0) + 1;
246
+ this.ordinals.set(parent, ordinal);
247
+ const childSession = `${parent}/sub-${ordinal}`;
248
+ const modelString = `${model.provider}/${model.modelId}`;
249
+ const config = {
250
+ model,
251
+ maxSteps,
252
+ sessionName: childSession,
253
+ role: 'subagent',
254
+ apiBaseUrl: getLocalApiBaseUrl(),
255
+ systemPrompt: buildSubagentPrompt(parent, cwd, readOnly),
256
+ maxHistoryMessages: CREWLY_AGENT_DEFAULTS.MAX_HISTORY_MESSAGES,
257
+ compactionThreshold: CREWLY_AGENT_DEFAULTS.COMPACTION_THRESHOLD,
258
+ projectPath: cwd,
259
+ subagent: { cwd, readOnly, depth: 1, parentSession: parent },
260
+ };
261
+ // Stop before the runtime's own IPC deadline: that path recycles the
262
+ // worker (respawns it), which would leave a fresh child alive after
263
+ // this run shut the old one down.
264
+ const ipcDeadline = (CREWLY_AGENT_DEFAULTS.MODEL_TIMEOUT_MS[model.modelId] ?? CREWLY_AGENT_DEFAULTS.MESSAGE_TIMEOUT_MS)
265
+ + CREWLY_AGENT_DEFAULTS.IPC_RUN_TIMEOUT_GRACE_MS;
266
+ const timeoutMs = this.timeoutMs ?? Math.max(1_000, Math.min(CREWLY_AGENT_DEFAULTS.SUBAGENT.TIMEOUT_MS, ipcDeadline - 5_000));
267
+ this.active.set(parent, this.activeCount(parent) + 1);
268
+ const started = this.now();
269
+ const preview = task.length > 120 ? `${task.slice(0, 120)}…` : task;
270
+ this.logBuffer.append(parent, 'info', `spawn-subagent → ${childSession} (${modelString}, ${maxSteps} steps${readOnly ? ', read-only' : ''}): ${preview}`);
271
+ this.logger.info('Sub-agent starting', { parent, childSession, model: modelString, maxSteps, readOnly, cwd });
272
+ let runtime = null;
273
+ let timer = null;
274
+ let timedOut = false;
275
+ let outcome;
276
+ try {
277
+ const worker = this.createRuntime(cwd);
278
+ runtime = worker;
279
+ registerInProcessRuntime(childSession, worker);
280
+ await worker.initializeInProcess(childSession, config, 'subagent');
281
+ const result = await new Promise((resolve, reject) => {
282
+ timer = setTimeout(() => {
283
+ timedOut = true;
284
+ reject(new Error(`sub-agent exceeded ${timeoutMs} ms`));
285
+ }, timeoutMs);
286
+ worker.handleMessage(task).then(resolve, reject);
287
+ });
288
+ outcome = summarizeSubagentRun(result, childSession, modelString, this.now() - started, false);
289
+ }
290
+ catch (error) {
291
+ const message = error instanceof Error ? error.message : String(error);
292
+ outcome = {
293
+ success: false,
294
+ stoppedReason: timedOut ? 'timeout' : 'error',
295
+ summary: '',
296
+ toolCalls: 0,
297
+ toolNames: [],
298
+ filesChanged: [],
299
+ usage: { input: 0, output: 0, cachedInput: 0 },
300
+ steps: 0,
301
+ sessionName: childSession,
302
+ durationMs: this.now() - started,
303
+ model: modelString,
304
+ error: message,
305
+ };
306
+ }
307
+ finally {
308
+ if (timer)
309
+ clearTimeout(timer);
310
+ this.active.set(parent, Math.max(0, this.activeCount(parent) - 1));
311
+ if (runtime) {
312
+ try {
313
+ runtime.shutdown();
314
+ }
315
+ catch { /* the worker is gone either way */ }
316
+ }
317
+ unregisterInProcessRuntime(childSession);
318
+ }
319
+ const tail = outcome.error ? `: ${outcome.error}` : '';
320
+ 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}`);
321
+ this.logger.info('Sub-agent finished', { parent, childSession, stoppedReason: outcome.stoppedReason, toolCalls: outcome.toolCalls, durationMs: outcome.durationMs });
322
+ return outcome;
323
+ }
324
+ }
325
+ /** Process-wide instance, created on first use */
326
+ let instance = null;
327
+ /**
328
+ * The shared service.
329
+ *
330
+ * @returns The instance
331
+ */
332
+ export function getSubagentRunService() {
333
+ if (!instance)
334
+ instance = new SubagentRunService();
335
+ return instance;
336
+ }
337
+ /**
338
+ * Replace the shared instance (tests).
339
+ *
340
+ * @param service - The instance to use, or null to reset
341
+ */
342
+ export function setSubagentRunServiceForTesting(service) {
343
+ instance = service;
344
+ }
345
+ //# 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,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;AAmDtC,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;AAyBD;;;;;;;;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;;;;;;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,CAAqC;IAC9C,aAAa,CAAmC;IAChD,SAAS,CAAqB;IAC9B,YAAY,CAAoB;IAChC,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,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,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,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,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":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/agent/crewly-agent/types.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  {
2
- "commit": "c6b8bd2a15dd18c54fdac4989ef5e0c8c014514c",
3
- "builtAt": "2026-10-26T19:09:40.077Z"
2
+ "commit": "78045dbc6b7ce0afd2331ce31c53f775328102cb",
3
+ "builtAt": "2026-10-26T20:23:20.350Z"
4
4
  }
@@ -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":"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"}
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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"}
@@ -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
- const systemPrompt = await this.buildEnhancedSystemPrompt(this.currentRoleName);
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: config?.systemPrompt || 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}`;