@rk0429/agentic-relay 19.14.3 → 20.0.0
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/dist/application/self-update.d.ts +17 -1
- package/dist/application/self-update.js +96 -21
- package/dist/application/self-update.js.map +1 -1
- package/dist/application/workflow-execution-service.d.ts +8 -1
- package/dist/application/workflow-execution-service.js +331 -166
- package/dist/application/workflow-execution-service.js.map +1 -1
- package/dist/bin/relay.js +19 -16
- package/dist/bin/relay.js.map +1 -1
- package/dist/domain/loop-execution.d.ts +7 -5
- package/dist/domain/loop-execution.js +61 -24
- package/dist/domain/loop-execution.js.map +1 -1
- package/dist/domain/workflow-loader.js +6 -8
- package/dist/domain/workflow-loader.js.map +1 -1
- package/dist/domain/workflow-schema.d.ts +21 -9
- package/dist/domain/workflow-schema.js +42 -24
- package/dist/domain/workflow-schema.js.map +1 -1
- package/dist/infrastructure/store/loop-state-repository.js +10 -10
- package/dist/infrastructure/store/loop-state-repository.js.map +1 -1
- package/dist/interfaces/mcp/relay-mcp-server.js +1 -1
- package/dist/interfaces/mcp/relay-mcp-server.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
export type PackageManagerKind = "npm" | "pnpm" | "volta" | "unknown";
|
|
2
|
+
export interface PackageManagerInfo {
|
|
3
|
+
kind: PackageManagerKind;
|
|
4
|
+
command: string;
|
|
5
|
+
installArgs: (pkg: string) => string[];
|
|
6
|
+
listArgs: (pkg: string) => string[];
|
|
7
|
+
}
|
|
1
8
|
export interface UpdateCheckResult {
|
|
2
9
|
currentVersion: string;
|
|
3
10
|
latestVersion: string;
|
|
@@ -11,4 +18,13 @@ export declare function verifyInstalledVersion(expectedVersion: string): Promise
|
|
|
11
18
|
}>;
|
|
12
19
|
export declare function getCurrentVersion(): Promise<string>;
|
|
13
20
|
export declare function isNewerVersion(current: string, latest: string): boolean;
|
|
14
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Detect which package manager installed the currently running agentic-relay.
|
|
23
|
+
*
|
|
24
|
+
* Uses `import.meta.filename` (symlink-resolved absolute path of the current
|
|
25
|
+
* module) to identify the installation directory, then matches against known
|
|
26
|
+
* directory patterns for each package manager.
|
|
27
|
+
*
|
|
28
|
+
* @param modulePathOverride - Override the module path for testing.
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectPackageManager(modulePathOverride?: string): PackageManagerInfo;
|
|
@@ -18,49 +18,70 @@ export async function checkForUpdate() {
|
|
|
18
18
|
}
|
|
19
19
|
export async function performUpdate(check) {
|
|
20
20
|
const pm = detectPackageManager();
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
if (pm.kind === "unknown") {
|
|
22
|
+
throw new Error("Could not determine the package manager that installed agentic-relay.\n" +
|
|
23
|
+
"Please update manually using the package manager you used to install it.");
|
|
24
|
+
}
|
|
25
|
+
const args = pm.installArgs(`${PACKAGE_NAME}@${check.latestVersion}`);
|
|
24
26
|
const exitCode = await new Promise((resolve, reject) => {
|
|
25
|
-
const child = crossSpawn(pm, args, { stdio: "inherit" });
|
|
27
|
+
const child = crossSpawn(pm.command, args, { stdio: "inherit" });
|
|
26
28
|
child.on("error", reject);
|
|
27
29
|
child.on("close", (code) => resolve(code ?? 1));
|
|
28
30
|
});
|
|
29
31
|
if (exitCode !== 0) {
|
|
30
|
-
throw new Error(`${pm} exited with code ${exitCode}.\nManual update: ${pm} ${args.join(" ")}`);
|
|
32
|
+
throw new Error(`${pm.command} exited with code ${exitCode}.\nManual update: ${pm.command} ${args.join(" ")}`);
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
export async function verifyInstalledVersion(expectedVersion) {
|
|
34
36
|
const pm = detectPackageManager();
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
if (pm.kind === "unknown") {
|
|
38
|
+
return { installed: "unknown", match: false };
|
|
39
|
+
}
|
|
40
|
+
if (pm.kind === "volta") {
|
|
41
|
+
const installed = await getVoltaInstalledVersion();
|
|
42
|
+
return { installed, match: installed === expectedVersion };
|
|
43
|
+
}
|
|
44
|
+
const args = pm.listArgs(PACKAGE_NAME);
|
|
38
45
|
const output = await new Promise((resolve, reject) => {
|
|
39
46
|
let stdout = "";
|
|
40
|
-
const child = crossSpawn(pm, args, { stdio: ["ignore", "pipe", "ignore"] });
|
|
47
|
+
const child = crossSpawn(pm.command, args, { stdio: ["ignore", "pipe", "ignore"] });
|
|
41
48
|
child.stdout?.on("data", (chunk) => {
|
|
42
49
|
stdout += chunk.toString();
|
|
43
50
|
});
|
|
44
51
|
child.on("error", reject);
|
|
45
52
|
child.on("close", () => resolve(stdout));
|
|
46
53
|
});
|
|
47
|
-
const installed = parseInstalledVersion(output, pm);
|
|
54
|
+
const installed = parseInstalledVersion(output, pm.kind);
|
|
48
55
|
return { installed, match: installed === expectedVersion };
|
|
49
56
|
}
|
|
50
|
-
function parseInstalledVersion(json,
|
|
57
|
+
function parseInstalledVersion(json, _kind) {
|
|
51
58
|
try {
|
|
52
59
|
const data = JSON.parse(json);
|
|
53
|
-
|
|
54
|
-
const deps = data.dependencies;
|
|
55
|
-
return deps?.[PACKAGE_NAME]?.version ?? "unknown";
|
|
56
|
-
}
|
|
57
|
-
const deps = data.dependencies;
|
|
58
|
-
return deps?.[PACKAGE_NAME]?.version ?? "unknown";
|
|
60
|
+
return data.dependencies?.[PACKAGE_NAME]?.version ?? "unknown";
|
|
59
61
|
}
|
|
60
62
|
catch {
|
|
61
63
|
return "unknown";
|
|
62
64
|
}
|
|
63
65
|
}
|
|
66
|
+
async function getVoltaInstalledVersion() {
|
|
67
|
+
const output = await new Promise((resolve, reject) => {
|
|
68
|
+
let stdout = "";
|
|
69
|
+
const child = crossSpawn("volta", ["list", PACKAGE_NAME, "--format=plain"], {
|
|
70
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
71
|
+
});
|
|
72
|
+
child.stdout?.on("data", (chunk) => {
|
|
73
|
+
stdout += chunk.toString();
|
|
74
|
+
});
|
|
75
|
+
child.on("error", reject);
|
|
76
|
+
child.on("close", () => resolve(stdout));
|
|
77
|
+
});
|
|
78
|
+
// volta list output format: "package @rk0429/agentic-relay@19.14.3 (default)"
|
|
79
|
+
const match = new RegExp(`${escapeRegExp(PACKAGE_NAME)}@(\\S+)`).exec(output);
|
|
80
|
+
return match?.[1] ?? "unknown";
|
|
81
|
+
}
|
|
82
|
+
function escapeRegExp(s) {
|
|
83
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
84
|
+
}
|
|
64
85
|
export async function getCurrentVersion() {
|
|
65
86
|
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
66
87
|
const packageJsonPath = path.resolve(dirname, "..", "..", "package.json");
|
|
@@ -92,11 +113,65 @@ export function isNewerVersion(current, latest) {
|
|
|
92
113
|
}
|
|
93
114
|
return false;
|
|
94
115
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
116
|
+
const PM_INFO = {
|
|
117
|
+
npm: {
|
|
118
|
+
command: "npm",
|
|
119
|
+
installArgs: (pkg) => ["install", "-g", pkg],
|
|
120
|
+
listArgs: (pkg) => ["ls", "-g", pkg, "--json"],
|
|
121
|
+
},
|
|
122
|
+
pnpm: {
|
|
123
|
+
command: "pnpm",
|
|
124
|
+
installArgs: (pkg) => ["add", "-g", pkg],
|
|
125
|
+
listArgs: (pkg) => ["list", "-g", pkg, "--json"],
|
|
126
|
+
},
|
|
127
|
+
volta: {
|
|
128
|
+
command: "volta",
|
|
129
|
+
installArgs: (pkg) => ["install", pkg],
|
|
130
|
+
listArgs: (pkg) => ["list", pkg, "--format=plain"],
|
|
131
|
+
},
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Detect which package manager installed the currently running agentic-relay.
|
|
135
|
+
*
|
|
136
|
+
* Uses `import.meta.filename` (symlink-resolved absolute path of the current
|
|
137
|
+
* module) to identify the installation directory, then matches against known
|
|
138
|
+
* directory patterns for each package manager.
|
|
139
|
+
*
|
|
140
|
+
* @param modulePathOverride - Override the module path for testing.
|
|
141
|
+
*/
|
|
142
|
+
export function detectPackageManager(modulePathOverride) {
|
|
143
|
+
const modulePath = normalisePathSeparators(modulePathOverride ?? import.meta.filename ?? fileURLToPath(import.meta.url));
|
|
144
|
+
const kind = classifyInstallPath(modulePath);
|
|
145
|
+
if (kind === "unknown") {
|
|
146
|
+
return {
|
|
147
|
+
kind: "unknown",
|
|
148
|
+
command: "",
|
|
149
|
+
installArgs: () => [],
|
|
150
|
+
listArgs: () => [],
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
return { kind, ...PM_INFO[kind] };
|
|
154
|
+
}
|
|
155
|
+
function classifyInstallPath(modulePath) {
|
|
156
|
+
// Volta: $VOLTA_HOME/tools/image/packages/<pkg>/...
|
|
157
|
+
if (/\/tools\/image\/packages\//i.test(modulePath)) {
|
|
158
|
+
return "volta";
|
|
159
|
+
}
|
|
160
|
+
// pnpm: {pnpmHome}/global/v11/... or legacy global/5/...
|
|
161
|
+
if (/\/pnpm\/global\/(?:v?\d+)\//i.test(modulePath)) {
|
|
162
|
+
return "pnpm";
|
|
163
|
+
}
|
|
164
|
+
// pnpm: also match /.pnpm/ (store-based layout)
|
|
165
|
+
if (/\/\.pnpm\//i.test(modulePath)) {
|
|
98
166
|
return "pnpm";
|
|
99
167
|
}
|
|
100
|
-
|
|
168
|
+
// npm: {prefix}/lib/node_modules/<pkg>/... or {prefix}/node_modules/<pkg>/...
|
|
169
|
+
if (/\/node_modules\//i.test(modulePath)) {
|
|
170
|
+
return "npm";
|
|
171
|
+
}
|
|
172
|
+
return "unknown";
|
|
173
|
+
}
|
|
174
|
+
function normalisePathSeparators(p) {
|
|
175
|
+
return p.replace(/\\/g, "/");
|
|
101
176
|
}
|
|
102
177
|
//# sourceMappingURL=self-update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/application/self-update.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,YAAY,GAAG,uBAAuB,CAAC;AAC7C,MAAM,YAAY,GAAG,8BAA8B,YAAY,SAAS,CAAC;AACzE,MAAM,gBAAgB,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"self-update.js","sourceRoot":"","sources":["../../src/application/self-update.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ export interface WorkflowExecutionDeps {
|
|
|
12
12
|
executeAgentStep: AgentStepExecutor;
|
|
13
13
|
executeCommand: CommandExecutor;
|
|
14
14
|
workflowRepo: WorkflowFileRepository;
|
|
15
|
+
readFile: (path: string, encoding: BufferEncoding) => Promise<string>;
|
|
15
16
|
}
|
|
16
17
|
export interface AgentStepExecutor {
|
|
17
18
|
execute(opts: {
|
|
@@ -116,11 +117,15 @@ export declare class WorkflowExecutionService {
|
|
|
116
117
|
private finalizeRootResult;
|
|
117
118
|
private persistInterruptState;
|
|
118
119
|
private runWorkflowFrame;
|
|
120
|
+
private handlePendingExitCondition;
|
|
121
|
+
private beginNewIterationIfNeeded;
|
|
122
|
+
private executeIterationSteps;
|
|
119
123
|
private resumeFrames;
|
|
120
124
|
private resumeParentFrames;
|
|
121
125
|
private executeStep;
|
|
122
126
|
private runSubWorkflow;
|
|
123
127
|
private evaluateExitCondition;
|
|
128
|
+
private evaluateExitConditionsAt;
|
|
124
129
|
private handleStepFailure;
|
|
125
130
|
private logNewlySkippedSteps;
|
|
126
131
|
private reportProgress;
|
|
@@ -134,9 +139,11 @@ export declare class WorkflowExecutionService {
|
|
|
134
139
|
private buildExitConditionCheckpoint;
|
|
135
140
|
private rebaseInterruptState;
|
|
136
141
|
private getNextStepIdAfter;
|
|
142
|
+
private getContinuationStepId;
|
|
137
143
|
private getStepIndex;
|
|
138
144
|
private getStepDefinition;
|
|
139
|
-
private
|
|
145
|
+
private resolveExitConditionTargetStepId;
|
|
146
|
+
private findCompletedStepResult;
|
|
140
147
|
private findTerminalCompletedResult;
|
|
141
148
|
private toPublicResult;
|
|
142
149
|
private assertFrameMatchesWorkflow;
|