@agent-relay/sdk 3.2.22 → 4.0.1

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 (92) hide show
  1. package/README.md +10 -3
  2. package/bin/agent-relay-broker-darwin-arm64 +0 -0
  3. package/bin/agent-relay-broker-darwin-x64 +0 -0
  4. package/bin/agent-relay-broker-linux-arm64 +0 -0
  5. package/bin/agent-relay-broker-linux-x64 +0 -0
  6. package/dist/broker-path.d.ts +3 -2
  7. package/dist/broker-path.d.ts.map +1 -1
  8. package/dist/broker-path.js +119 -32
  9. package/dist/broker-path.js.map +1 -1
  10. package/dist/client.d.ts +119 -197
  11. package/dist/client.d.ts.map +1 -1
  12. package/dist/client.js +354 -823
  13. package/dist/client.js.map +1 -1
  14. package/dist/examples/example.js +2 -5
  15. package/dist/examples/example.js.map +1 -1
  16. package/dist/index.d.ts +3 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +3 -1
  19. package/dist/index.js.map +1 -1
  20. package/dist/relay-adapter.d.ts +9 -26
  21. package/dist/relay-adapter.d.ts.map +1 -1
  22. package/dist/relay-adapter.js +75 -47
  23. package/dist/relay-adapter.js.map +1 -1
  24. package/dist/relay.d.ts +26 -6
  25. package/dist/relay.d.ts.map +1 -1
  26. package/dist/relay.js +213 -43
  27. package/dist/relay.js.map +1 -1
  28. package/dist/transport.d.ts +58 -0
  29. package/dist/transport.d.ts.map +1 -0
  30. package/dist/transport.js +184 -0
  31. package/dist/transport.js.map +1 -0
  32. package/dist/types.d.ts +69 -0
  33. package/dist/types.d.ts.map +1 -0
  34. package/dist/types.js +5 -0
  35. package/dist/types.js.map +1 -0
  36. package/dist/workflows/__tests__/channel-messenger.test.d.ts +2 -0
  37. package/dist/workflows/__tests__/channel-messenger.test.d.ts.map +1 -0
  38. package/dist/workflows/__tests__/channel-messenger.test.js +117 -0
  39. package/dist/workflows/__tests__/channel-messenger.test.js.map +1 -0
  40. package/dist/workflows/__tests__/run-summary-table.test.js +4 -3
  41. package/dist/workflows/__tests__/run-summary-table.test.js.map +1 -1
  42. package/dist/workflows/__tests__/step-executor.test.d.ts +2 -0
  43. package/dist/workflows/__tests__/step-executor.test.d.ts.map +1 -0
  44. package/dist/workflows/__tests__/step-executor.test.js +378 -0
  45. package/dist/workflows/__tests__/step-executor.test.js.map +1 -0
  46. package/dist/workflows/__tests__/template-resolver.test.d.ts +2 -0
  47. package/dist/workflows/__tests__/template-resolver.test.d.ts.map +1 -0
  48. package/dist/workflows/__tests__/template-resolver.test.js +145 -0
  49. package/dist/workflows/__tests__/template-resolver.test.js.map +1 -0
  50. package/dist/workflows/__tests__/verification.test.d.ts +2 -0
  51. package/dist/workflows/__tests__/verification.test.d.ts.map +1 -0
  52. package/dist/workflows/__tests__/verification.test.js +170 -0
  53. package/dist/workflows/__tests__/verification.test.js.map +1 -0
  54. package/dist/workflows/builder.d.ts +3 -2
  55. package/dist/workflows/builder.d.ts.map +1 -1
  56. package/dist/workflows/builder.js +1 -3
  57. package/dist/workflows/builder.js.map +1 -1
  58. package/dist/workflows/channel-messenger.d.ts +28 -0
  59. package/dist/workflows/channel-messenger.d.ts.map +1 -0
  60. package/dist/workflows/channel-messenger.js +255 -0
  61. package/dist/workflows/channel-messenger.js.map +1 -0
  62. package/dist/workflows/index.d.ts +7 -0
  63. package/dist/workflows/index.d.ts.map +1 -1
  64. package/dist/workflows/index.js +7 -0
  65. package/dist/workflows/index.js.map +1 -1
  66. package/dist/workflows/process-spawner.d.ts +35 -0
  67. package/dist/workflows/process-spawner.d.ts.map +1 -0
  68. package/dist/workflows/process-spawner.js +141 -0
  69. package/dist/workflows/process-spawner.js.map +1 -0
  70. package/dist/workflows/run.d.ts +2 -1
  71. package/dist/workflows/run.d.ts.map +1 -1
  72. package/dist/workflows/run.js.map +1 -1
  73. package/dist/workflows/runner.d.ts +6 -6
  74. package/dist/workflows/runner.d.ts.map +1 -1
  75. package/dist/workflows/runner.js +443 -719
  76. package/dist/workflows/runner.js.map +1 -1
  77. package/dist/workflows/step-executor.d.ts +95 -0
  78. package/dist/workflows/step-executor.d.ts.map +1 -0
  79. package/dist/workflows/step-executor.js +393 -0
  80. package/dist/workflows/step-executor.js.map +1 -0
  81. package/dist/workflows/template-resolver.d.ts +33 -0
  82. package/dist/workflows/template-resolver.d.ts.map +1 -0
  83. package/dist/workflows/template-resolver.js +144 -0
  84. package/dist/workflows/template-resolver.js.map +1 -0
  85. package/dist/workflows/validator.d.ts.map +1 -1
  86. package/dist/workflows/validator.js +17 -2
  87. package/dist/workflows/validator.js.map +1 -1
  88. package/dist/workflows/verification.d.ts +33 -0
  89. package/dist/workflows/verification.d.ts.map +1 -0
  90. package/dist/workflows/verification.js +122 -0
  91. package/dist/workflows/verification.js.map +1 -0
  92. package/package.json +2 -2
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Escape a string for safe inclusion in a shell command passed to `sh -c`.
3
+ * Wraps the value in single quotes and escapes any embedded single quotes.
4
+ */
5
+ export function shellEscape(value) {
6
+ return "'" + value.replace(/'/g, "'\\''") + "'";
7
+ }
8
+ const TEMPLATE_VARIABLE_PATTERN = /\{\{([\w][\w.\-]*)\}\}/g;
9
+ const STEP_OUTPUT_TEMPLATE_PATTERN = /\{\{(steps\.[\w\-]+\.output)\}\}/g;
10
+ const STEP_OUTPUT_REF_PATTERN = /^steps\.([\w\-]+)\.output$/;
11
+ export function resolveVariables(config, vars) {
12
+ const resolved = structuredClone(config);
13
+ for (const agent of resolved.agents) {
14
+ if (agent.task) {
15
+ agent.task = resolveTemplate(agent.task, vars);
16
+ }
17
+ }
18
+ if (resolved.workflows) {
19
+ for (const workflow of resolved.workflows) {
20
+ for (const step of workflow.steps) {
21
+ if (step.task) {
22
+ step.task = resolveTemplate(step.task, vars);
23
+ }
24
+ if (step.command) {
25
+ step.command = resolveTemplateForShell(step.command, vars);
26
+ }
27
+ if (step.params && typeof step.params === 'object') {
28
+ for (const key of Object.keys(step.params)) {
29
+ const value = step.params[key];
30
+ if (typeof value === 'string') {
31
+ step.params[key] = resolveTemplate(value, vars);
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
37
+ }
38
+ return resolved;
39
+ }
40
+ export function resolveTemplate(template, context) {
41
+ return template.replace(TEMPLATE_VARIABLE_PATTERN, (match, key) => {
42
+ if (key.startsWith('steps.')) {
43
+ return match;
44
+ }
45
+ const value = resolveDotPath(key, context);
46
+ if (value === undefined) {
47
+ throw new Error(`Unresolved variable: {{${key}}}`);
48
+ }
49
+ return String(value);
50
+ });
51
+ }
52
+ /**
53
+ * Like resolveTemplate but shell-escapes interpolated values.
54
+ * Use this when the result will be passed to `sh -c` to prevent injection.
55
+ */
56
+ export function resolveTemplateForShell(template, context) {
57
+ return template.replace(TEMPLATE_VARIABLE_PATTERN, (match, key) => {
58
+ if (key.startsWith('steps.')) {
59
+ return match;
60
+ }
61
+ const value = resolveDotPath(key, context);
62
+ if (value === undefined) {
63
+ throw new Error(`Unresolved variable: {{${key}}}`);
64
+ }
65
+ return shellEscape(String(value));
66
+ });
67
+ }
68
+ export function resolveDotPath(key, context) {
69
+ if (!key.includes('.')) {
70
+ return toTemplateScalar(context[key]);
71
+ }
72
+ const parts = key.split('.');
73
+ let current = context;
74
+ for (const part of parts) {
75
+ if (current === null || current === undefined || typeof current !== 'object') {
76
+ return undefined;
77
+ }
78
+ current = current[part];
79
+ }
80
+ return toTemplateScalar(current);
81
+ }
82
+ export function resolveStepOutputRef(ref, stepOutputs) {
83
+ const normalizedRef = ref.startsWith('{{') && ref.endsWith('}}') ? ref.slice(2, -2).trim() : ref;
84
+ const match = STEP_OUTPUT_REF_PATTERN.exec(normalizedRef);
85
+ if (!match) {
86
+ throw new Error(`Invalid step output reference: ${ref}`);
87
+ }
88
+ const stepOutput = stepOutputs.get(match[1]);
89
+ if (stepOutput === undefined) {
90
+ throw new Error(`Unresolved step output reference: ${ref}`);
91
+ }
92
+ return stepOutput;
93
+ }
94
+ export function interpolateStepTask(template, context) {
95
+ const stepOutputs = buildStepOutputMap(context);
96
+ return template.replace(STEP_OUTPUT_TEMPLATE_PATTERN, (match, ref) => {
97
+ try {
98
+ return resolveStepOutputRef(ref, stepOutputs);
99
+ }
100
+ catch {
101
+ return match;
102
+ }
103
+ });
104
+ }
105
+ function buildStepOutputMap(context) {
106
+ const stepOutputs = new Map();
107
+ const steps = context.steps;
108
+ if (!steps || typeof steps !== 'object') {
109
+ return stepOutputs;
110
+ }
111
+ for (const [stepName, stepState] of Object.entries(steps)) {
112
+ if (!stepState || typeof stepState !== 'object') {
113
+ continue;
114
+ }
115
+ const output = toTemplateScalar(stepState.output);
116
+ if (output !== undefined) {
117
+ stepOutputs.set(stepName, String(output));
118
+ }
119
+ }
120
+ return stepOutputs;
121
+ }
122
+ function toTemplateScalar(value) {
123
+ if (value === undefined || value === null)
124
+ return undefined;
125
+ if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
126
+ return value;
127
+ }
128
+ return String(value);
129
+ }
130
+ export class TemplateResolver {
131
+ resolveVariables(config, vars) {
132
+ return resolveVariables(config, vars);
133
+ }
134
+ interpolate(template, vars) {
135
+ return resolveTemplate(template, vars);
136
+ }
137
+ resolveDotPath(key, vars) {
138
+ return resolveDotPath(key, vars);
139
+ }
140
+ interpolateStepTask(template, context) {
141
+ return interpolateStepTask(template, context);
142
+ }
143
+ }
144
+ //# sourceMappingURL=template-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template-resolver.js","sourceRoot":"","sources":["../../src/workflows/template-resolver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/workflows/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAEjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CA6I3E;AAWD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8B1F"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/workflows/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAC;AAGjF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,EAAE,CA8J3E;AAWD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CA8B1F"}
@@ -1,3 +1,4 @@
1
+ import { CodexModels } from '@agent-relay/config';
1
2
  const CHANNEL_NAME_RE = /^[a-z0-9][a-z0-9-]*$/;
2
3
  export function validateWorkflow(config) {
3
4
  const issues = [];
@@ -97,7 +98,21 @@ export function validateWorkflow(config) {
97
98
  location: `step:${step.name}`,
98
99
  });
99
100
  }
100
- // Check 4: non-interactive agent that references relay messaging tools in task
101
+ // Check 4: codex-spark cannot be used in non-interactive mode
102
+ const CODEX_SPARK_MODELS = [CodexModels.GPT_5_3_CODEX_SPARK];
103
+ if (def.interactive === false &&
104
+ def.cli === 'codex' &&
105
+ def.constraints?.model &&
106
+ (CODEX_SPARK_MODELS.includes(def.constraints.model) || /codex-spark/i.test(def.constraints.model))) {
107
+ issues.push({
108
+ severity: 'error',
109
+ code: 'CODEX_SPARK_NON_INTERACTIVE',
110
+ message: `Agent "${step.agent}" uses codex-spark model in non-interactive mode. Codex Spark does not support non-interactive (headless) execution.`,
111
+ fix: `Switch to a different model (e.g. gpt-5.3-codex) or set the agent to interactive mode.`,
112
+ location: `step:${step.name}`,
113
+ });
114
+ }
115
+ // Check 5: non-interactive agent that references relay messaging tools in task
101
116
  if (def.interactive === false &&
102
117
  (task.includes('mcp__relaycast__message_dm_send') || task.includes('mcp__relaycast__message_post') || task.includes('mcp__relaycast__message_inbox_check'))) {
103
118
  issues.push({
@@ -109,7 +124,7 @@ export function validateWorkflow(config) {
109
124
  });
110
125
  }
111
126
  }
112
- // Check 5: maxConcurrency vs interactive agent count
127
+ // Check 6: maxConcurrency vs interactive agent count
113
128
  const interactiveSteps = (workflow.steps ?? []).filter((s) => {
114
129
  if (s.type === 'deterministic')
115
130
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/workflows/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/workflows/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import type { CompletionEvidenceSignal, CompletionEvidenceToolSideEffect, VerificationCheck, WorkflowStepCompletionReason } from './types.js';
2
+ export type { VerificationCheck } from './types.js';
3
+ export interface VerificationResult {
4
+ passed: boolean;
5
+ completionReason?: WorkflowStepCompletionReason;
6
+ error?: string;
7
+ }
8
+ export interface VerificationOptions {
9
+ allowFailure?: boolean;
10
+ completionMarkerFound?: boolean;
11
+ cwd?: string;
12
+ }
13
+ export declare class WorkflowCompletionError extends Error {
14
+ completionReason?: WorkflowStepCompletionReason;
15
+ constructor(message: string, completionReason?: WorkflowStepCompletionReason);
16
+ }
17
+ export interface VerificationSideEffects {
18
+ recordStepToolSideEffect?: (stepName: string, effect: Omit<CompletionEvidenceToolSideEffect, 'observedAt'> & {
19
+ observedAt?: string;
20
+ }) => void;
21
+ getOrCreateStepEvidenceRecord?: (stepName: string) => {
22
+ evidence: {
23
+ coordinationSignals: CompletionEvidenceSignal[];
24
+ };
25
+ };
26
+ log?: (message: string) => void;
27
+ }
28
+ export declare function runVerification(check: VerificationCheck, output: string, stepName: string, injectedTaskText?: string, options?: VerificationOptions, sideEffects?: VerificationSideEffects): VerificationResult;
29
+ export declare function stripInjectedTaskEcho(output: string, injectedTaskText?: string): string;
30
+ export declare function checkExitCode(_expectedExitCode: string): boolean;
31
+ export declare function checkOutputContains(output: string, token: string, injectedTaskText?: string): boolean;
32
+ export declare function checkFileExists(filePath: string, cwd?: string): boolean;
33
+ //# sourceMappingURL=verification.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../src/workflows/verification.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,wBAAwB,EACxB,gCAAgC,EAChC,iBAAiB,EACjB,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,gBAAgB,CAAC,EAAE,4BAA4B,CAAC;gBAEpC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,4BAA4B;CAK7E;AAED,MAAM,WAAW,uBAAuB;IACtC,wBAAwB,CAAC,EAAE,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,gCAAgC,EAAE,YAAY,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,KACnF,IAAI,CAAC;IACV,6BAA6B,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK;QACpD,QAAQ,EAAE;YAAE,mBAAmB,EAAE,wBAAwB,EAAE,CAAA;SAAE,CAAC;KAC/D,CAAC;IACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,iBAAiB,EACxB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,EACzB,OAAO,GAAE,mBAAwB,EACjC,WAAW,GAAE,uBAA4B,GACxC,kBAAkB,CAuFpB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBvF;AAED,wBAAgB,aAAa,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAIhE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAKrG;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAgB,GAAG,OAAO,CAQ9E"}
@@ -0,0 +1,122 @@
1
+ import { existsSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ export class WorkflowCompletionError extends Error {
4
+ completionReason;
5
+ constructor(message, completionReason) {
6
+ super(message);
7
+ this.name = 'WorkflowCompletionError';
8
+ this.completionReason = completionReason;
9
+ }
10
+ }
11
+ export function runVerification(check, output, stepName, injectedTaskText, options = {}, sideEffects = {}) {
12
+ const cwd = options.cwd ?? process.cwd();
13
+ const fail = (message) => {
14
+ const observedAt = new Date().toISOString();
15
+ sideEffects.recordStepToolSideEffect?.(stepName, {
16
+ type: 'verification_observed',
17
+ detail: message,
18
+ observedAt,
19
+ raw: { passed: false, type: check.type, value: check.value },
20
+ });
21
+ sideEffects.getOrCreateStepEvidenceRecord?.(stepName).evidence.coordinationSignals.push({
22
+ kind: 'verification_failed',
23
+ source: 'verification',
24
+ text: message,
25
+ observedAt,
26
+ value: check.value,
27
+ });
28
+ if (options.allowFailure) {
29
+ return {
30
+ passed: false,
31
+ completionReason: 'failed_verification',
32
+ error: message,
33
+ };
34
+ }
35
+ throw new WorkflowCompletionError(message, 'failed_verification');
36
+ };
37
+ switch (check.type) {
38
+ case 'output_contains': {
39
+ const token = check.value;
40
+ if (!checkOutputContains(output, token, injectedTaskText)) {
41
+ return fail(`Verification failed for "${stepName}": output does not contain "${token}"`);
42
+ }
43
+ break;
44
+ }
45
+ case 'exit_code':
46
+ if (!checkExitCode(check.value)) {
47
+ return fail(`Verification failed for "${stepName}": exit code did not match "${check.value}"`);
48
+ }
49
+ break;
50
+ case 'file_exists':
51
+ if (!checkFileExists(check.value, cwd)) {
52
+ return fail(`Verification failed for "${stepName}": file "${check.value}" does not exist`);
53
+ }
54
+ break;
55
+ case 'custom':
56
+ return { passed: false };
57
+ default:
58
+ break;
59
+ }
60
+ if (options.completionMarkerFound === false) {
61
+ sideEffects.log?.(`[${stepName}] Verification passed without legacy STEP_COMPLETE marker; allowing completion`);
62
+ }
63
+ const observedAt = new Date().toISOString();
64
+ const successMessage = options.completionMarkerFound === false
65
+ ? 'Verification passed without legacy STEP_COMPLETE marker'
66
+ : 'Verification passed';
67
+ sideEffects.recordStepToolSideEffect?.(stepName, {
68
+ type: 'verification_observed',
69
+ detail: successMessage,
70
+ observedAt,
71
+ raw: { passed: true, type: check.type, value: check.value },
72
+ });
73
+ sideEffects.getOrCreateStepEvidenceRecord?.(stepName).evidence.coordinationSignals.push({
74
+ kind: 'verification_passed',
75
+ source: 'verification',
76
+ text: successMessage,
77
+ observedAt,
78
+ value: check.value,
79
+ });
80
+ return {
81
+ passed: true,
82
+ completionReason: 'completed_verified',
83
+ };
84
+ }
85
+ export function stripInjectedTaskEcho(output, injectedTaskText) {
86
+ if (!injectedTaskText) {
87
+ return output;
88
+ }
89
+ const candidates = [
90
+ injectedTaskText,
91
+ injectedTaskText.replace(/\r\n/g, '\n'),
92
+ injectedTaskText.replace(/\n/g, '\r\n'),
93
+ ].filter((candidate, index, all) => candidate.length > 0 && all.indexOf(candidate) === index);
94
+ for (const candidate of candidates) {
95
+ const start = output.indexOf(candidate);
96
+ if (start !== -1) {
97
+ return output.slice(0, start) + output.slice(start + candidate.length);
98
+ }
99
+ }
100
+ return output;
101
+ }
102
+ export function checkExitCode(_expectedExitCode) {
103
+ // Existing runner semantics treat process success as established before this
104
+ // verification hook runs, so this check is currently an unconditional pass.
105
+ return true;
106
+ }
107
+ export function checkOutputContains(output, token, injectedTaskText) {
108
+ if (!token) {
109
+ return false;
110
+ }
111
+ return stripInjectedTaskEcho(output, injectedTaskText).includes(token);
112
+ }
113
+ export function checkFileExists(filePath, cwd = process.cwd()) {
114
+ const normalizedCwd = path.resolve(cwd);
115
+ const resolved = path.resolve(normalizedCwd, filePath);
116
+ // Prevent path traversal outside the working directory
117
+ if (!resolved.startsWith(normalizedCwd + path.sep) && resolved !== normalizedCwd) {
118
+ return false;
119
+ }
120
+ return existsSync(resolved);
121
+ }
122
+ //# sourceMappingURL=verification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/workflows/verification.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-relay/sdk",
3
- "version": "3.2.22",
3
+ "version": "4.0.1",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -112,7 +112,7 @@
112
112
  "typescript": "^5.7.3"
113
113
  },
114
114
  "dependencies": {
115
- "@agent-relay/config": "3.2.22",
115
+ "@agent-relay/config": "4.0.1",
116
116
  "@relaycast/sdk": "^1.1.0",
117
117
  "@sinclair/typebox": "^0.34.48",
118
118
  "chalk": "^4.1.2",