@agent-relay/sdk 4.0.2 → 4.0.4
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/bin/agent-relay-broker-darwin-arm64 +0 -0
- package/bin/agent-relay-broker-darwin-x64 +0 -0
- package/bin/agent-relay-broker-linux-arm64 +0 -0
- package/bin/agent-relay-broker-linux-x64 +0 -0
- package/dist/client.d.ts +3 -10
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -0
- package/dist/client.js.map +1 -1
- package/dist/provisioner/__tests__/audit.test.d.ts +2 -0
- package/dist/provisioner/__tests__/audit.test.d.ts.map +1 -0
- package/dist/provisioner/__tests__/audit.test.js +45 -0
- package/dist/provisioner/__tests__/audit.test.js.map +1 -0
- package/dist/provisioner/__tests__/compiler.test.d.ts +2 -0
- package/dist/provisioner/__tests__/compiler.test.d.ts.map +1 -0
- package/dist/provisioner/__tests__/compiler.test.js +345 -0
- package/dist/provisioner/__tests__/compiler.test.js.map +1 -0
- package/dist/provisioner/__tests__/presets.test.d.ts +2 -0
- package/dist/provisioner/__tests__/presets.test.d.ts.map +1 -0
- package/dist/provisioner/__tests__/presets.test.js +23 -0
- package/dist/provisioner/__tests__/presets.test.js.map +1 -0
- package/dist/provisioner/__tests__/seeder.test.d.ts +2 -0
- package/dist/provisioner/__tests__/seeder.test.d.ts.map +1 -0
- package/dist/provisioner/__tests__/seeder.test.js +224 -0
- package/dist/provisioner/__tests__/seeder.test.js.map +1 -0
- package/dist/provisioner/__tests__/tar-seeder.test.d.ts +2 -0
- package/dist/provisioner/__tests__/tar-seeder.test.d.ts.map +1 -0
- package/dist/provisioner/__tests__/tar-seeder.test.js +191 -0
- package/dist/provisioner/__tests__/tar-seeder.test.js.map +1 -0
- package/dist/provisioner/__tests__/token-factory.test.d.ts +2 -0
- package/dist/provisioner/__tests__/token-factory.test.d.ts.map +1 -0
- package/dist/provisioner/__tests__/token-factory.test.js +127 -0
- package/dist/provisioner/__tests__/token-factory.test.js.map +1 -0
- package/dist/provisioner/__tests__/token.test.d.ts +2 -0
- package/dist/provisioner/__tests__/token.test.d.ts.map +1 -0
- package/dist/provisioner/__tests__/token.test.js +44 -0
- package/dist/provisioner/__tests__/token.test.js.map +1 -0
- package/dist/provisioner/audit.d.ts +19 -0
- package/dist/provisioner/audit.d.ts.map +1 -0
- package/dist/provisioner/audit.js +74 -0
- package/dist/provisioner/audit.js.map +1 -0
- package/dist/provisioner/compiler.d.ts +23 -0
- package/dist/provisioner/compiler.d.ts.map +1 -0
- package/dist/provisioner/compiler.js +355 -0
- package/dist/provisioner/compiler.js.map +1 -0
- package/dist/provisioner/index.d.ts +9 -0
- package/dist/provisioner/index.d.ts.map +1 -0
- package/dist/provisioner/index.js +266 -0
- package/dist/provisioner/index.js.map +1 -0
- package/dist/provisioner/mount.d.ts +14 -0
- package/dist/provisioner/mount.d.ts.map +1 -0
- package/dist/provisioner/mount.js +329 -0
- package/dist/provisioner/mount.js.map +1 -0
- package/dist/provisioner/seeder.d.ts +17 -0
- package/dist/provisioner/seeder.d.ts.map +1 -0
- package/dist/provisioner/seeder.js +419 -0
- package/dist/provisioner/seeder.js.map +1 -0
- package/dist/provisioner/token.d.ts +38 -0
- package/dist/provisioner/token.d.ts.map +1 -0
- package/dist/provisioner/token.js +74 -0
- package/dist/provisioner/token.js.map +1 -0
- package/dist/provisioner/types.d.ts +133 -0
- package/dist/provisioner/types.d.ts.map +1 -0
- package/dist/provisioner/types.js +2 -0
- package/dist/provisioner/types.js.map +1 -0
- package/dist/relay.d.ts +6 -0
- package/dist/relay.d.ts.map +1 -1
- package/dist/relay.js +17 -5
- package/dist/relay.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/workflows/__tests__/e2e-permissions.test.d.ts +2 -0
- package/dist/workflows/__tests__/e2e-permissions.test.d.ts.map +1 -0
- package/dist/workflows/__tests__/e2e-permissions.test.js +331 -0
- package/dist/workflows/__tests__/e2e-permissions.test.js.map +1 -0
- package/dist/workflows/__tests__/permission-types.test.d.ts +2 -0
- package/dist/workflows/__tests__/permission-types.test.d.ts.map +1 -0
- package/dist/workflows/__tests__/permission-types.test.js +124 -0
- package/dist/workflows/__tests__/permission-types.test.js.map +1 -0
- package/dist/workflows/__tests__/permissions-integration.test.d.ts +2 -0
- package/dist/workflows/__tests__/permissions-integration.test.d.ts.map +1 -0
- package/dist/workflows/__tests__/permissions-integration.test.js +526 -0
- package/dist/workflows/__tests__/permissions-integration.test.js.map +1 -0
- package/dist/workflows/dry-run-format.d.ts.map +1 -1
- package/dist/workflows/dry-run-format.js +8 -0
- package/dist/workflows/dry-run-format.js.map +1 -1
- package/dist/workflows/runner.d.ts +14 -0
- package/dist/workflows/runner.d.ts.map +1 -1
- package/dist/workflows/runner.js +455 -6
- package/dist/workflows/runner.js.map +1 -1
- package/dist/workflows/types.d.ts +190 -0
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/types.js +29 -0
- package/dist/workflows/types.js.map +1 -1
- package/package.json +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/workflows/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/workflows/runner.js
CHANGED
|
@@ -10,12 +10,14 @@ import { readFile, writeFile, unlink } from 'node:fs/promises';
|
|
|
10
10
|
import { tmpdir } from 'node:os';
|
|
11
11
|
import path from 'node:path';
|
|
12
12
|
import chalk from 'chalk';
|
|
13
|
+
import ignore from 'ignore';
|
|
13
14
|
import { parse as parseYaml } from 'yaml';
|
|
14
15
|
import { stripAnsi as stripAnsiFn } from '../pty.js';
|
|
15
16
|
import { resolveSpawnPolicy } from '../spawn-from-env.js';
|
|
16
17
|
import { getCliDefinition } from '../cli-registry.js';
|
|
17
18
|
import { resolveCliSync } from '../cli-resolver.js';
|
|
18
19
|
import { loadCustomSteps, resolveAllCustomSteps, validateCustomStepsUsage, CustomStepsParseError, CustomStepResolutionError, } from './custom-steps.js';
|
|
20
|
+
import { provisionWorkflowAgents, resolveAgentPermissions } from '../provisioner/index.js';
|
|
19
21
|
import { collectCliSession } from './cli-session-collector.js';
|
|
20
22
|
import { executeApiStep } from './api-executor.js';
|
|
21
23
|
import { ChannelMessenger } from './channel-messenger.js';
|
|
@@ -130,6 +132,10 @@ export class WorkflowRunner {
|
|
|
130
132
|
currentRunId;
|
|
131
133
|
/** Live Agent handles keyed by name, for hub-mediated nudging. */
|
|
132
134
|
activeAgentHandles = new Map();
|
|
135
|
+
/** Per-agent workflow tokens for relay/relayfile auth across spawn modes. */
|
|
136
|
+
agentTokens = new Map();
|
|
137
|
+
/** Per-agent relayfile mounts keyed by logical agent definition name. */
|
|
138
|
+
agentMounts = new Map();
|
|
133
139
|
// PTY-based output capture: accumulate terminal output per-agent
|
|
134
140
|
ptyOutputBuffers = new Map();
|
|
135
141
|
/** Snapshot of PTY output from the most recent failed attempt, keyed by step name. */
|
|
@@ -217,6 +223,293 @@ export class WorkflowRunner {
|
|
|
217
223
|
}
|
|
218
224
|
return { resolved, errors, warnings };
|
|
219
225
|
}
|
|
226
|
+
validatePermissions(agents, permissionProfiles, source = '<config>') {
|
|
227
|
+
const errors = [];
|
|
228
|
+
const warnings = [];
|
|
229
|
+
const accessPresets = new Set(['readonly', 'readwrite', 'restricted', 'full']);
|
|
230
|
+
const profiles = permissionProfiles ?? {};
|
|
231
|
+
const profileNames = new Set(Object.keys(profiles));
|
|
232
|
+
const validateStringArray = (value, label) => {
|
|
233
|
+
if (value === undefined) {
|
|
234
|
+
return undefined;
|
|
235
|
+
}
|
|
236
|
+
if (!Array.isArray(value)) {
|
|
237
|
+
errors.push(`${label} must be an array of strings`);
|
|
238
|
+
return undefined;
|
|
239
|
+
}
|
|
240
|
+
const normalized = [];
|
|
241
|
+
for (const entry of value) {
|
|
242
|
+
if (typeof entry !== 'string') {
|
|
243
|
+
errors.push(`${label} must be an array of strings`);
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
normalized.push(entry);
|
|
247
|
+
}
|
|
248
|
+
return normalized;
|
|
249
|
+
};
|
|
250
|
+
const validateGlobPattern = (pattern, label) => {
|
|
251
|
+
const trimmed = pattern.trim();
|
|
252
|
+
if (trimmed === '') {
|
|
253
|
+
errors.push(`${label} must not contain empty glob patterns`);
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
if (trimmed.includes('\0')) {
|
|
257
|
+
errors.push(`${label} contains an invalid glob pattern "${pattern}" (NUL byte)`);
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
let escaped = false;
|
|
261
|
+
let bracketDepth = 0;
|
|
262
|
+
let braceDepth = 0;
|
|
263
|
+
for (const ch of trimmed) {
|
|
264
|
+
if (escaped) {
|
|
265
|
+
escaped = false;
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
if (ch === '\\') {
|
|
269
|
+
escaped = true;
|
|
270
|
+
continue;
|
|
271
|
+
}
|
|
272
|
+
if (ch === '[') {
|
|
273
|
+
bracketDepth += 1;
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
if (ch === ']' && bracketDepth > 0) {
|
|
277
|
+
bracketDepth -= 1;
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
if (ch === '{') {
|
|
281
|
+
braceDepth += 1;
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
if (ch === '}' && braceDepth > 0) {
|
|
285
|
+
braceDepth -= 1;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if (escaped) {
|
|
289
|
+
errors.push(`${label} contains an invalid glob pattern "${pattern}" (dangling escape)`);
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
if (bracketDepth > 0) {
|
|
293
|
+
errors.push(`${label} contains an invalid glob pattern "${pattern}" (unclosed character class)`);
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
if (braceDepth > 0) {
|
|
297
|
+
errors.push(`${label} contains an invalid glob pattern "${pattern}" (unclosed brace expansion)`);
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
300
|
+
try {
|
|
301
|
+
ignore().add([trimmed]);
|
|
302
|
+
}
|
|
303
|
+
catch (err) {
|
|
304
|
+
errors.push(`${label} contains an invalid glob pattern "${pattern}" (${err instanceof Error ? err.message : String(err)})`);
|
|
305
|
+
}
|
|
306
|
+
};
|
|
307
|
+
const validatePermissionObject = (permissions, label, options) => {
|
|
308
|
+
if (typeof permissions === 'string') {
|
|
309
|
+
const shorthand = permissions.trim();
|
|
310
|
+
if (shorthand === '') {
|
|
311
|
+
errors.push(`${label} must not be empty`);
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
if (accessPresets.has(shorthand)) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
if (options.allowProfileReference) {
|
|
318
|
+
if (!profileNames.has(shorthand)) {
|
|
319
|
+
errors.push(`${label} references unknown permission profile "${shorthand}"`);
|
|
320
|
+
}
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
323
|
+
errors.push(`${label} must be an object when provided`);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
if (typeof permissions !== 'object' || permissions === null) {
|
|
327
|
+
errors.push(`${label} must be an object when provided`);
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
const permissionRecord = permissions;
|
|
331
|
+
if (permissionRecord.description !== undefined && typeof permissionRecord.description !== 'string') {
|
|
332
|
+
errors.push(`${label}.description must be a string when provided`);
|
|
333
|
+
}
|
|
334
|
+
if (permissionRecord.profile !== undefined) {
|
|
335
|
+
if (!options.allowProfileReference) {
|
|
336
|
+
errors.push(`${label}.profile is only supported on agent permissions`);
|
|
337
|
+
}
|
|
338
|
+
else if (typeof permissionRecord.profile !== 'string') {
|
|
339
|
+
errors.push(`${label}.profile must be a string when provided`);
|
|
340
|
+
}
|
|
341
|
+
else if (permissionRecord.profile.trim() === '') {
|
|
342
|
+
errors.push(`${label}.profile must not be empty`);
|
|
343
|
+
}
|
|
344
|
+
else if (!profileNames.has(permissionRecord.profile)) {
|
|
345
|
+
errors.push(`${label}.profile references unknown permission profile "${permissionRecord.profile}"`);
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
if (permissionRecord.why !== undefined && typeof permissionRecord.why !== 'string') {
|
|
349
|
+
errors.push(`${label}.why must be a string when provided`);
|
|
350
|
+
}
|
|
351
|
+
if (permissionRecord.access !== undefined &&
|
|
352
|
+
!accessPresets.has(permissionRecord.access)) {
|
|
353
|
+
errors.push(`${label}.access must be one of readonly, readwrite, restricted, full`);
|
|
354
|
+
}
|
|
355
|
+
if (permissionRecord.inherit !== undefined && typeof permissionRecord.inherit !== 'boolean') {
|
|
356
|
+
errors.push(`${label}.inherit must be a boolean when provided`);
|
|
357
|
+
}
|
|
358
|
+
if (permissionRecord.network !== undefined) {
|
|
359
|
+
if (typeof permissionRecord.network === 'boolean') {
|
|
360
|
+
// valid: boolean form
|
|
361
|
+
}
|
|
362
|
+
else if (typeof permissionRecord.network === 'object' &&
|
|
363
|
+
permissionRecord.network !== null &&
|
|
364
|
+
!Array.isArray(permissionRecord.network)) {
|
|
365
|
+
const net = permissionRecord.network;
|
|
366
|
+
validateStringArray(net.allow, `${label}.network.allow`);
|
|
367
|
+
validateStringArray(net.deny, `${label}.network.deny`);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
errors.push(`${label}.network must be a boolean or an object with allow/deny arrays`);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
if (permissionRecord.files !== undefined) {
|
|
374
|
+
if (typeof permissionRecord.files !== 'object' ||
|
|
375
|
+
permissionRecord.files === null ||
|
|
376
|
+
Array.isArray(permissionRecord.files)) {
|
|
377
|
+
errors.push(`${label}.files must be an object when provided`);
|
|
378
|
+
}
|
|
379
|
+
else {
|
|
380
|
+
const files = permissionRecord.files;
|
|
381
|
+
const read = validateStringArray(files.read, `${label}.files.read`);
|
|
382
|
+
const write = validateStringArray(files.write, `${label}.files.write`);
|
|
383
|
+
const deny = validateStringArray(files.deny, `${label}.files.deny`);
|
|
384
|
+
for (const pattern of read ?? []) {
|
|
385
|
+
validateGlobPattern(pattern, `${label}.files.read`);
|
|
386
|
+
}
|
|
387
|
+
for (const pattern of write ?? []) {
|
|
388
|
+
validateGlobPattern(pattern, `${label}.files.write`);
|
|
389
|
+
}
|
|
390
|
+
for (const pattern of deny ?? []) {
|
|
391
|
+
validateGlobPattern(pattern, `${label}.files.deny`);
|
|
392
|
+
}
|
|
393
|
+
if (permissionRecord.access === 'readonly' && (write?.length ?? 0) > 0) {
|
|
394
|
+
warnings.push(`${label} sets access to "readonly" but also defines files.write entries`);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
const scopes = validateStringArray(permissionRecord.scopes, `${label}.scopes`);
|
|
399
|
+
for (const scope of scopes ?? []) {
|
|
400
|
+
if (scope.trim() === '') {
|
|
401
|
+
errors.push(`${label}.scopes must not contain empty strings`);
|
|
402
|
+
continue;
|
|
403
|
+
}
|
|
404
|
+
if (!/^[^:\s]+:[^:\s]+:[^:\s]+:.+$/u.test(scope)) {
|
|
405
|
+
errors.push(`${label}.scopes entry "${scope}" must follow plane:resource:action:path format`);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
const exec = validateStringArray(permissionRecord.exec, `${label}.exec`);
|
|
409
|
+
for (const entry of exec ?? []) {
|
|
410
|
+
if (entry.trim() === '') {
|
|
411
|
+
errors.push(`${label}.exec must not contain empty strings`);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
};
|
|
415
|
+
if (permissionProfiles !== undefined) {
|
|
416
|
+
if (typeof permissionProfiles !== 'object' ||
|
|
417
|
+
permissionProfiles === null ||
|
|
418
|
+
Array.isArray(permissionProfiles)) {
|
|
419
|
+
errors.push(`${source}: permission_profiles must be an object when provided`);
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
for (const [profileName, profile] of Object.entries(permissionProfiles)) {
|
|
423
|
+
if (profileName.trim() === '') {
|
|
424
|
+
errors.push(`${source}: permission_profiles keys must not be empty`);
|
|
425
|
+
continue;
|
|
426
|
+
}
|
|
427
|
+
validatePermissionObject(profile, `${source}: permission_profiles.${profileName}`, {
|
|
428
|
+
allowProfileReference: false,
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
if (!agents || agents.length === 0) {
|
|
434
|
+
return { errors, warnings };
|
|
435
|
+
}
|
|
436
|
+
for (const agent of agents) {
|
|
437
|
+
if (agent.permissions === undefined) {
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
validatePermissionObject(agent.permissions, `${source}: agent "${agent.name}" permissions`, {
|
|
441
|
+
allowProfileReference: true,
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
return { errors, warnings };
|
|
445
|
+
}
|
|
446
|
+
mergePermissionLists(base, override) {
|
|
447
|
+
const merged = [
|
|
448
|
+
...new Set([...(base ?? []), ...(override ?? [])].map((value) => value.trim()).filter(Boolean)),
|
|
449
|
+
];
|
|
450
|
+
return merged.length > 0 ? merged : undefined;
|
|
451
|
+
}
|
|
452
|
+
mergePermissionFiles(base, override) {
|
|
453
|
+
const merged = {
|
|
454
|
+
read: this.mergePermissionLists(base?.read, override?.read),
|
|
455
|
+
write: this.mergePermissionLists(base?.write, override?.write),
|
|
456
|
+
deny: this.mergePermissionLists(base?.deny, override?.deny),
|
|
457
|
+
};
|
|
458
|
+
return merged.read || merged.write || merged.deny ? merged : undefined;
|
|
459
|
+
}
|
|
460
|
+
mergePermissionProfile(profile, permissions) {
|
|
461
|
+
const merged = {
|
|
462
|
+
description: permissions.description ?? profile.description,
|
|
463
|
+
profile: permissions.profile,
|
|
464
|
+
why: permissions.why ?? profile.why,
|
|
465
|
+
access: permissions.access ?? profile.access,
|
|
466
|
+
inherit: permissions.inherit ?? profile.inherit,
|
|
467
|
+
files: this.mergePermissionFiles(profile.files, permissions.files),
|
|
468
|
+
scopes: this.mergePermissionLists(profile.scopes, permissions.scopes),
|
|
469
|
+
network: permissions.network ?? profile.network,
|
|
470
|
+
exec: this.mergePermissionLists(profile.exec, permissions.exec),
|
|
471
|
+
};
|
|
472
|
+
return Object.fromEntries(Object.entries(merged).filter(([, value]) => value !== undefined));
|
|
473
|
+
}
|
|
474
|
+
applyPermissionProfiles(config) {
|
|
475
|
+
if (!config.permission_profiles || Object.keys(config.permission_profiles).length === 0) {
|
|
476
|
+
return config;
|
|
477
|
+
}
|
|
478
|
+
return {
|
|
479
|
+
...config,
|
|
480
|
+
agents: config.agents.map((agent) => {
|
|
481
|
+
const rawPermissions = agent.permissions;
|
|
482
|
+
if (!rawPermissions) {
|
|
483
|
+
return agent;
|
|
484
|
+
}
|
|
485
|
+
const normalizedPermissions = typeof rawPermissions === 'string'
|
|
486
|
+
? {
|
|
487
|
+
...(config.permission_profiles?.[rawPermissions]
|
|
488
|
+
? { profile: rawPermissions }
|
|
489
|
+
: { access: rawPermissions }),
|
|
490
|
+
}
|
|
491
|
+
: rawPermissions;
|
|
492
|
+
const profileName = normalizedPermissions.profile;
|
|
493
|
+
if (!profileName) {
|
|
494
|
+
return {
|
|
495
|
+
...agent,
|
|
496
|
+
permissions: normalizedPermissions,
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
const profile = config.permission_profiles?.[profileName];
|
|
500
|
+
if (!profile) {
|
|
501
|
+
return {
|
|
502
|
+
...agent,
|
|
503
|
+
permissions: normalizedPermissions,
|
|
504
|
+
};
|
|
505
|
+
}
|
|
506
|
+
return {
|
|
507
|
+
...agent,
|
|
508
|
+
permissions: this.mergePermissionProfile(profile, normalizedPermissions),
|
|
509
|
+
};
|
|
510
|
+
}),
|
|
511
|
+
};
|
|
512
|
+
}
|
|
220
513
|
/**
|
|
221
514
|
* Resolve an agent's effective working directory, considering `workdir` (named path reference)
|
|
222
515
|
* and `cwd` (explicit path). `workdir` takes precedence when both are set.
|
|
@@ -253,6 +546,32 @@ export class WorkflowRunner {
|
|
|
253
546
|
}
|
|
254
547
|
return this.resolveStepWorkdir(step) ?? (agentDef ? this.resolveAgentCwd(agentDef) : this.cwd);
|
|
255
548
|
}
|
|
549
|
+
resolveMountedCwd(agentName, cwd) {
|
|
550
|
+
const mount = this.agentMounts.get(agentName);
|
|
551
|
+
if (!mount) {
|
|
552
|
+
return cwd;
|
|
553
|
+
}
|
|
554
|
+
const relative = path.relative(this.cwd, cwd);
|
|
555
|
+
if (relative === '') {
|
|
556
|
+
return mount.mountPoint;
|
|
557
|
+
}
|
|
558
|
+
if (relative === '..' || relative.startsWith(`..${path.sep}`)) {
|
|
559
|
+
return cwd;
|
|
560
|
+
}
|
|
561
|
+
return path.resolve(mount.mountPoint, relative);
|
|
562
|
+
}
|
|
563
|
+
resolveExecutionCwd(step, agentDef) {
|
|
564
|
+
const cwd = this.resolveEffectiveCwd(step, agentDef);
|
|
565
|
+
if (!agentDef) {
|
|
566
|
+
return cwd;
|
|
567
|
+
}
|
|
568
|
+
return this.resolveMountedCwd(agentDef.name, cwd);
|
|
569
|
+
}
|
|
570
|
+
async stopProvisionedMounts() {
|
|
571
|
+
const handles = [...this.agentMounts.values()];
|
|
572
|
+
this.agentMounts.clear();
|
|
573
|
+
await Promise.all(handles.map((handle) => handle.stop().catch(() => undefined)));
|
|
574
|
+
}
|
|
256
575
|
static EVIDENCE_IGNORED_DIRS = new Set([
|
|
257
576
|
'.git',
|
|
258
577
|
'.agent-relay',
|
|
@@ -759,6 +1078,39 @@ export class WorkflowRunner {
|
|
|
759
1078
|
RELAY_API_KEY: this.relayApiKey,
|
|
760
1079
|
};
|
|
761
1080
|
}
|
|
1081
|
+
async provisionAgents(config) {
|
|
1082
|
+
this.agentTokens.clear();
|
|
1083
|
+
await this.stopProvisionedMounts();
|
|
1084
|
+
const agentsToProvision = {};
|
|
1085
|
+
for (const agent of config.agents) {
|
|
1086
|
+
if (agent.permissions) {
|
|
1087
|
+
agentsToProvision[agent.name] = agent.permissions;
|
|
1088
|
+
}
|
|
1089
|
+
}
|
|
1090
|
+
const agentNames = Object.keys(agentsToProvision);
|
|
1091
|
+
if (agentNames.length === 0) {
|
|
1092
|
+
return;
|
|
1093
|
+
}
|
|
1094
|
+
const relayEnv = {
|
|
1095
|
+
...process.env,
|
|
1096
|
+
...(this.getRelayEnv() ?? {}),
|
|
1097
|
+
};
|
|
1098
|
+
const result = await provisionWorkflowAgents({
|
|
1099
|
+
secret: this.envSecrets?.RELAY_AUTH_SECRET ?? relayEnv.RELAY_AUTH_SECRET ?? randomBytes(32).toString('hex'),
|
|
1100
|
+
workspace: this.workspaceId,
|
|
1101
|
+
projectDir: this.cwd,
|
|
1102
|
+
relayfileBaseUrl: relayEnv.RELAYFILE_BASE_URL ?? 'http://127.0.0.1:8080',
|
|
1103
|
+
agents: agentsToProvision,
|
|
1104
|
+
tokenTtlSeconds: 3600,
|
|
1105
|
+
});
|
|
1106
|
+
for (const [agentName, token] of result.tokens) {
|
|
1107
|
+
this.agentTokens.set(agentName, token);
|
|
1108
|
+
}
|
|
1109
|
+
for (const [agentName, mount] of result.mounts) {
|
|
1110
|
+
this.agentMounts.set(agentName, mount);
|
|
1111
|
+
}
|
|
1112
|
+
this.log(`Provisioned workflow tokens for ${result.tokens.size} agent${result.tokens.size === 1 ? '' : 's'}`);
|
|
1113
|
+
}
|
|
762
1114
|
getRelaycastBaseUrl() {
|
|
763
1115
|
return (this.relayOptions.env?.RELAYCAST_BASE_URL ??
|
|
764
1116
|
process.env.RELAYCAST_BASE_URL ??
|
|
@@ -859,10 +1211,24 @@ export class WorkflowRunner {
|
|
|
859
1211
|
parseYamlString(raw, source = '<string>') {
|
|
860
1212
|
const parsed = parseYaml(raw);
|
|
861
1213
|
this.validateConfig(parsed, source);
|
|
862
|
-
const config = parsed;
|
|
1214
|
+
const config = this.normalizeLegacyPermissionConfig(parsed);
|
|
863
1215
|
config.agents ??= [];
|
|
864
1216
|
return config;
|
|
865
1217
|
}
|
|
1218
|
+
normalizeLegacyPermissionConfig(config) {
|
|
1219
|
+
const legacyPermissions = config.permissions;
|
|
1220
|
+
if (config.permission_profiles === undefined &&
|
|
1221
|
+
legacyPermissions &&
|
|
1222
|
+
typeof legacyPermissions === 'object' &&
|
|
1223
|
+
legacyPermissions.profiles &&
|
|
1224
|
+
typeof legacyPermissions.profiles === 'object') {
|
|
1225
|
+
return {
|
|
1226
|
+
...config,
|
|
1227
|
+
permission_profiles: legacyPermissions.profiles,
|
|
1228
|
+
};
|
|
1229
|
+
}
|
|
1230
|
+
return config;
|
|
1231
|
+
}
|
|
866
1232
|
/** Validate a config object against the RelayYamlConfig shape. */
|
|
867
1233
|
validateConfig(config, source = '<config>') {
|
|
868
1234
|
if (typeof config !== 'object' || config === null) {
|
|
@@ -885,6 +1251,29 @@ export class WorkflowRunner {
|
|
|
885
1251
|
if (c.agents !== undefined && !Array.isArray(c.agents)) {
|
|
886
1252
|
throw new Error(`${source}: "agents" must be an array when provided`);
|
|
887
1253
|
}
|
|
1254
|
+
const legacyPermissions = c.permissions;
|
|
1255
|
+
if (legacyPermissions !== undefined &&
|
|
1256
|
+
(typeof legacyPermissions !== 'object' ||
|
|
1257
|
+
legacyPermissions === null ||
|
|
1258
|
+
Array.isArray(legacyPermissions))) {
|
|
1259
|
+
throw new Error(`${source}: "permissions" must be an object when provided`);
|
|
1260
|
+
}
|
|
1261
|
+
if (c.permission_profiles !== undefined &&
|
|
1262
|
+
(typeof c.permission_profiles !== 'object' ||
|
|
1263
|
+
c.permission_profiles === null ||
|
|
1264
|
+
Array.isArray(c.permission_profiles))) {
|
|
1265
|
+
throw new Error(`${source}: "permission_profiles" must be an object when provided`);
|
|
1266
|
+
}
|
|
1267
|
+
if (c.permission_profiles === undefined &&
|
|
1268
|
+
legacyPermissions !== undefined &&
|
|
1269
|
+
typeof legacyPermissions === 'object' &&
|
|
1270
|
+
legacyPermissions !== null) {
|
|
1271
|
+
const profiles = legacyPermissions.profiles;
|
|
1272
|
+
if (profiles !== undefined &&
|
|
1273
|
+
(typeof profiles !== 'object' || profiles === null || Array.isArray(profiles))) {
|
|
1274
|
+
throw new Error(`${source}: "permissions.profiles" must be an object when provided`);
|
|
1275
|
+
}
|
|
1276
|
+
}
|
|
888
1277
|
for (const agent of c.agents ?? []) {
|
|
889
1278
|
if (typeof agent !== 'object' || agent === null) {
|
|
890
1279
|
throw new Error(`${source}: each agent must be an object`);
|
|
@@ -919,6 +1308,7 @@ export class WorkflowRunner {
|
|
|
919
1308
|
try {
|
|
920
1309
|
this.validateConfig(config);
|
|
921
1310
|
resolved = vars ? this.resolveVariables(config, vars) : config;
|
|
1311
|
+
resolved = this.applyPermissionProfiles(resolved);
|
|
922
1312
|
}
|
|
923
1313
|
catch (err) {
|
|
924
1314
|
errors.push(err instanceof Error ? err.message : String(err));
|
|
@@ -934,7 +1324,10 @@ export class WorkflowRunner {
|
|
|
934
1324
|
estimatedWaves: 0,
|
|
935
1325
|
};
|
|
936
1326
|
}
|
|
937
|
-
// 1b.
|
|
1327
|
+
// 1b. Validate permissions and resolve named paths
|
|
1328
|
+
const permissionResult = this.validatePermissions(resolved.agents, resolved.permission_profiles);
|
|
1329
|
+
errors.push(...permissionResult.errors);
|
|
1330
|
+
warnings.push(...permissionResult.warnings);
|
|
938
1331
|
const pathResult = this.resolvePathDefinitions(resolved.paths, this.cwd);
|
|
939
1332
|
errors.push(...pathResult.errors);
|
|
940
1333
|
warnings.push(...pathResult.warnings);
|
|
@@ -1099,6 +1492,25 @@ export class WorkflowRunner {
|
|
|
1099
1492
|
`Consider decomposing into smaller verification steps to reduce context size.`);
|
|
1100
1493
|
}
|
|
1101
1494
|
}
|
|
1495
|
+
const permissions = resolved.agents.map((agent) => {
|
|
1496
|
+
const compiled = resolveAgentPermissions(agent.name, agent.permissions, this.cwd, this.workspaceId);
|
|
1497
|
+
const source = compiled.sources.some((entry) => entry.type === 'yaml')
|
|
1498
|
+
? 'yaml'
|
|
1499
|
+
: compiled.sources.some((entry) => entry.type === 'preset')
|
|
1500
|
+
? 'preset'
|
|
1501
|
+
: compiled.sources.some((entry) => entry.type === 'dotfile')
|
|
1502
|
+
? 'dotfiles'
|
|
1503
|
+
: 'none';
|
|
1504
|
+
return {
|
|
1505
|
+
agent: agent.name,
|
|
1506
|
+
access: compiled.effectiveAccess,
|
|
1507
|
+
readPaths: compiled.summary.readonly,
|
|
1508
|
+
writePaths: compiled.summary.readwrite,
|
|
1509
|
+
denyPaths: compiled.summary.denied,
|
|
1510
|
+
scopes: compiled.scopes.length,
|
|
1511
|
+
source,
|
|
1512
|
+
};
|
|
1513
|
+
});
|
|
1102
1514
|
// 4. Build agent summary
|
|
1103
1515
|
const agents = resolved.agents.map((a) => ({
|
|
1104
1516
|
name: a.name,
|
|
@@ -1158,6 +1570,7 @@ export class WorkflowRunner {
|
|
|
1158
1570
|
description: workflow.description ?? resolved.description,
|
|
1159
1571
|
pattern: resolved.swarm.pattern,
|
|
1160
1572
|
agents,
|
|
1573
|
+
permissions,
|
|
1161
1574
|
waves,
|
|
1162
1575
|
totalSteps: workflow.steps.length,
|
|
1163
1576
|
maxConcurrency,
|
|
@@ -1412,9 +1825,16 @@ export class WorkflowRunner {
|
|
|
1412
1825
|
// Set up abort controller early so callers can abort() even during setup
|
|
1413
1826
|
this.abortController = new AbortController();
|
|
1414
1827
|
this.paused = false;
|
|
1415
|
-
const resolved = vars ? this.resolveVariables(config, vars) : config;
|
|
1828
|
+
const resolved = this.applyPermissionProfiles(vars ? this.resolveVariables(config, vars) : config);
|
|
1416
1829
|
// Validate config (catches cycles, missing deps, invalid steps, etc.)
|
|
1417
1830
|
this.validateConfig(resolved);
|
|
1831
|
+
const permissionResult = this.validatePermissions(resolved.agents, resolved.permission_profiles);
|
|
1832
|
+
if (permissionResult.errors.length > 0) {
|
|
1833
|
+
throw new Error(`Permission validation failed:\n ${permissionResult.errors.join('\n ')}`);
|
|
1834
|
+
}
|
|
1835
|
+
for (const warning of permissionResult.warnings) {
|
|
1836
|
+
console.warn(`[WorkflowRunner] Warning: ${warning}`);
|
|
1837
|
+
}
|
|
1418
1838
|
// Resolve and validate named paths from the top-level `paths` config
|
|
1419
1839
|
const pathResult = this.resolvePathDefinitions(resolved.paths, this.cwd);
|
|
1420
1840
|
if (pathResult.errors.length > 0) {
|
|
@@ -1841,6 +2261,7 @@ export class WorkflowRunner {
|
|
|
1841
2261
|
if (!isResume && workflow.preflight?.length) {
|
|
1842
2262
|
await this.runPreflightChecks(workflow.preflight, runId);
|
|
1843
2263
|
}
|
|
2264
|
+
await this.provisionAgents(config);
|
|
1844
2265
|
this.log(`Executing ${workflow.steps.length} steps (pattern: ${config.swarm.pattern})`);
|
|
1845
2266
|
await this.executeSteps(workflow, stepStates, agentMap, config.errorHandling, runId);
|
|
1846
2267
|
const errorStrategy = config.errorHandling?.strategy ?? workflow.onError ?? 'fail-fast';
|
|
@@ -1953,6 +2374,8 @@ export class WorkflowRunner {
|
|
|
1953
2374
|
this.currentConfig = undefined;
|
|
1954
2375
|
this.currentRunId = undefined;
|
|
1955
2376
|
this.activeAgentHandles.clear();
|
|
2377
|
+
await this.stopProvisionedMounts();
|
|
2378
|
+
this.agentTokens.clear(); // Prevent workflow-scoped tokens from leaking into a later run.
|
|
1956
2379
|
}
|
|
1957
2380
|
const finalRun = await this.db.getRun(runId);
|
|
1958
2381
|
return finalRun ?? run;
|
|
@@ -3839,12 +4262,37 @@ export class WorkflowRunner {
|
|
|
3839
4262
|
this.postToChannel(`**[${step.name}]** Assigned to \`${agentName}\` (non-interactive)`);
|
|
3840
4263
|
const stdoutChunks = [];
|
|
3841
4264
|
const stderrChunks = [];
|
|
4265
|
+
const env = { ...(this.getRelayEnv() ?? filteredEnv()) };
|
|
4266
|
+
const agentToken = this.agentTokens.get(agentDef.name);
|
|
4267
|
+
const mount = this.agentMounts.get(agentDef.name);
|
|
4268
|
+
if (agentToken) {
|
|
4269
|
+
env.RELAY_AGENT_TOKEN = agentToken;
|
|
4270
|
+
env.RELAYFILE_TOKEN = agentToken;
|
|
4271
|
+
}
|
|
4272
|
+
if (mount) {
|
|
4273
|
+
env.RELAY_WORKSPACE = mount.mountPoint;
|
|
4274
|
+
env.RELAY_AGENT_NAME = agentName;
|
|
4275
|
+
env.RELAYFILE_WORKSPACE = this.workspaceId;
|
|
4276
|
+
env.RELAY_WORKSPACE_ID = this.workspaceId;
|
|
4277
|
+
env.RELAY_DEFAULT_WORKSPACE = this.workspaceId;
|
|
4278
|
+
}
|
|
4279
|
+
env.RELAYFILE_BASE_URL =
|
|
4280
|
+
env.RELAYFILE_BASE_URL ??
|
|
4281
|
+
this.getRelayEnv()?.RELAYFILE_BASE_URL ??
|
|
4282
|
+
process.env.RELAYFILE_BASE_URL ??
|
|
4283
|
+
'http://127.0.0.1:8080';
|
|
3842
4284
|
try {
|
|
3843
4285
|
const { stdout: output, exitCode, exitSignal, } = await new Promise((resolve, reject) => {
|
|
4286
|
+
const spawnEnv = agentDef.cli === 'opencode'
|
|
4287
|
+
? {
|
|
4288
|
+
...env,
|
|
4289
|
+
OPENCODE_PERMISSION: JSON.stringify({ '*': 'allow', external_directory: { '*': 'allow' } }),
|
|
4290
|
+
}
|
|
4291
|
+
: env;
|
|
3844
4292
|
const child = spawnProcess([cmd, ...args], {
|
|
3845
4293
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
3846
|
-
cwd: this.
|
|
3847
|
-
env:
|
|
4294
|
+
cwd: this.resolveExecutionCwd(step, agentDef),
|
|
4295
|
+
env: spawnEnv,
|
|
3848
4296
|
});
|
|
3849
4297
|
// Update workers.json with PID now that we have it
|
|
3850
4298
|
this.registerWorker(agentName, agentDef.cli, step.task ?? '', child.pid, false);
|
|
@@ -4009,7 +4457,7 @@ export class WorkflowRunner {
|
|
|
4009
4457
|
let stopHeartbeat;
|
|
4010
4458
|
let ptyChunks = [];
|
|
4011
4459
|
try {
|
|
4012
|
-
const agentCwd = this.
|
|
4460
|
+
const agentCwd = this.resolveExecutionCwd(step, agentDef);
|
|
4013
4461
|
const interactiveSpawnPolicy = resolveSpawnPolicy({
|
|
4014
4462
|
AGENT_NAME: agentName,
|
|
4015
4463
|
AGENT_CLI: agentDef.cli,
|
|
@@ -4025,6 +4473,7 @@ export class WorkflowRunner {
|
|
|
4025
4473
|
task: preparedTask.spawnTaskText,
|
|
4026
4474
|
idleThresholdSecs: agentDef.constraints?.idleThresholdSecs,
|
|
4027
4475
|
cwd: agentCwd,
|
|
4476
|
+
agentToken: this.agentTokens.get(agentDef.name),
|
|
4028
4477
|
});
|
|
4029
4478
|
// Re-key PTY maps if broker assigned a different name than requested
|
|
4030
4479
|
if (agent.name !== agentName) {
|