@agent-vm/agent-vm 0.0.20 → 0.0.21
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/cli/backup-commands.js +1 -1
- package/dist/cli/backup-commands.js.map +1 -1
- package/dist/cli/commands/create-app.d.ts +32 -2
- package/dist/cli/commands/create-app.d.ts.map +1 -1
- package/dist/cli/commands/create-app.js +2 -0
- package/dist/cli/commands/create-app.js.map +1 -1
- package/dist/cli/commands/init-definition.d.ts +2 -2
- package/dist/cli/commands/init-definition.d.ts.map +1 -1
- package/dist/cli/commands/init-definition.js +10 -5
- package/dist/cli/commands/init-definition.js.map +1 -1
- package/dist/cli/commands/paths-definition.d.ts +25 -0
- package/dist/cli/commands/paths-definition.d.ts.map +1 -0
- package/dist/cli/commands/paths-definition.js +130 -0
- package/dist/cli/commands/paths-definition.js.map +1 -0
- package/dist/cli/commands/validate-definition.js +1 -1
- package/dist/cli/commands/validate-definition.js.map +1 -1
- package/dist/cli/config-commands.js +6 -6
- package/dist/cli/config-commands.js.map +1 -1
- package/dist/cli/controller-operation-commands.js +2 -2
- package/dist/cli/controller-operation-commands.js.map +1 -1
- package/dist/cli/init-command.d.ts +1 -1
- package/dist/cli/init-command.d.ts.map +1 -1
- package/dist/cli/init-command.js +75 -10
- package/dist/cli/init-command.js.map +1 -1
- package/dist/cli/vm-host-system-templates.js +3 -3
- package/dist/config/system-config.d.ts +10 -1
- package/dist/config/system-config.d.ts.map +1 -1
- package/dist/config/system-config.js +62 -2
- package/dist/config/system-config.js.map +1 -1
- package/dist/controller/git-push-operations.d.ts.map +1 -1
- package/dist/controller/git-push-operations.js +73 -72
- package/dist/controller/git-push-operations.js.map +1 -1
- package/dist/controller/runtime-instructions-builder.d.ts +34 -0
- package/dist/controller/runtime-instructions-builder.d.ts.map +1 -0
- package/dist/controller/runtime-instructions-builder.js +177 -0
- package/dist/controller/runtime-instructions-builder.js.map +1 -0
- package/dist/controller/worker-task-runner.d.ts.map +1 -1
- package/dist/controller/worker-task-runner.js +53 -7
- package/dist/controller/worker-task-runner.js.map +1 -1
- package/dist/operations/config-validation.js +15 -15
- package/dist/operations/config-validation.js.map +1 -1
- package/package.json +7 -7
|
@@ -152,96 +152,97 @@ async function buildBranchState(options) {
|
|
|
152
152
|
};
|
|
153
153
|
}
|
|
154
154
|
export async function pushBranchesForTask(options) {
|
|
155
|
+
const requestedRepoUrls = new Set();
|
|
155
156
|
for (const branch of options.branches) {
|
|
156
157
|
if (!branch.branchName.startsWith(options.activeTask.branchPrefix)) {
|
|
157
158
|
throw new PushBranchesValidationError(`Branch '${branch.branchName}' must start with '${options.activeTask.branchPrefix}'.`);
|
|
158
159
|
}
|
|
160
|
+
if (requestedRepoUrls.has(branch.repoUrl)) {
|
|
161
|
+
throw new PushBranchesValidationError(`Repo '${branch.repoUrl}' has multiple push requests. Push one branch per repo per request.`);
|
|
162
|
+
}
|
|
163
|
+
requestedRepoUrls.add(branch.repoUrl);
|
|
159
164
|
const repo = options.activeTask.repos.find((candidate) => candidate.repoUrl === branch.repoUrl);
|
|
160
165
|
if (!repo) {
|
|
161
166
|
throw new PushBranchesValidationError(`Repo '${branch.repoUrl}' is not registered for active task '${options.activeTask.taskId}'.`);
|
|
162
167
|
}
|
|
163
168
|
}
|
|
164
|
-
const results =
|
|
165
|
-
for (const branch of options.branches) {
|
|
166
|
-
// Push flow intentionally stays sequential so git state observation,
|
|
167
|
-
// remote ref fetches, and error reporting remain easy to reason about.
|
|
168
|
-
// oxlint-disable-next-line eslint/no-await-in-loop
|
|
169
|
+
const results = await Promise.all(options.branches.map(async (branch) => {
|
|
169
170
|
const repo = options.activeTask.repos.find((candidate) => candidate.repoUrl === branch.repoUrl);
|
|
170
171
|
if (!repo) {
|
|
171
172
|
throw new PushBranchesValidationError(`Repo '${branch.repoUrl}' is not registered for active task '${options.activeTask.taskId}'.`);
|
|
172
173
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
repoUrl: branch.repoUrl,
|
|
189
|
-
githubToken: options.githubToken,
|
|
190
|
-
});
|
|
191
|
-
// oxlint-disable-next-line eslint/no-await-in-loop
|
|
192
|
-
const previousRemoteBranchHead = await remoteBranchHead(repo.hostWorkspacePath, branchName);
|
|
193
|
-
// oxlint-disable-next-line eslint/no-await-in-loop
|
|
194
|
-
const localHead = await gitStdout(repo.hostWorkspacePath, ['rev-parse', 'HEAD']);
|
|
195
|
-
if (previousRemoteBranchHead === localHead) {
|
|
196
|
-
results.push({
|
|
197
|
-
repoUrl: branch.repoUrl,
|
|
198
|
-
branch: branchName,
|
|
199
|
-
success: false,
|
|
200
|
-
error: `Nothing new to push on ${branchName}. Local HEAD matches origin/${branchName} (${localHead}). Commit your work and call git-push again.`,
|
|
201
|
-
});
|
|
202
|
-
continue;
|
|
203
|
-
}
|
|
204
|
-
// oxlint-disable-next-line eslint/no-await-in-loop
|
|
205
|
-
await pushBranch({
|
|
206
|
-
repoUrl: branch.repoUrl,
|
|
207
|
-
branchName,
|
|
208
|
-
cwd: repo.hostWorkspacePath,
|
|
209
|
-
githubToken: options.githubToken,
|
|
210
|
-
});
|
|
211
|
-
// oxlint-disable-next-line eslint/no-await-in-loop
|
|
212
|
-
await git({
|
|
213
|
-
cwd: repo.hostWorkspacePath,
|
|
214
|
-
args: [
|
|
215
|
-
'fetch',
|
|
216
|
-
'--prune',
|
|
217
|
-
buildPushUrl(branch.repoUrl, options.githubToken),
|
|
218
|
-
`${branchName}:refs/remotes/origin/${branchName}`,
|
|
219
|
-
],
|
|
220
|
-
reject: false,
|
|
221
|
-
});
|
|
222
|
-
// oxlint-disable-next-line eslint/no-await-in-loop
|
|
223
|
-
const state = await buildBranchState({
|
|
224
|
-
cwd: repo.hostWorkspacePath,
|
|
225
|
-
branchName,
|
|
226
|
-
defaultBranch: repo.baseBranch,
|
|
227
|
-
previousRemoteBranchHead,
|
|
228
|
-
});
|
|
229
|
-
results.push({
|
|
230
|
-
repoUrl: branch.repoUrl,
|
|
174
|
+
return await pushOneBranchForTask({
|
|
175
|
+
branch,
|
|
176
|
+
githubToken: options.githubToken,
|
|
177
|
+
repo,
|
|
178
|
+
task: options.activeTask,
|
|
179
|
+
});
|
|
180
|
+
}));
|
|
181
|
+
return { results };
|
|
182
|
+
}
|
|
183
|
+
async function pushOneBranchForTask(options) {
|
|
184
|
+
const branchName = sanitizeBranchName(options.branch.branchName);
|
|
185
|
+
try {
|
|
186
|
+
if (branchName === options.repo.baseBranch) {
|
|
187
|
+
return {
|
|
188
|
+
repoUrl: options.branch.repoUrl,
|
|
231
189
|
branch: branchName,
|
|
232
|
-
success:
|
|
233
|
-
|
|
234
|
-
}
|
|
190
|
+
success: false,
|
|
191
|
+
error: `Refusing to push: you are on the default branch "${options.repo.baseBranch}". Create an ${options.task.branchPrefix} branch first and move your commits to it.`,
|
|
192
|
+
};
|
|
235
193
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
194
|
+
await fetchRemoteRefs({
|
|
195
|
+
cwd: options.repo.hostWorkspacePath,
|
|
196
|
+
defaultBranch: options.repo.baseBranch,
|
|
197
|
+
repoUrl: options.branch.repoUrl,
|
|
198
|
+
githubToken: options.githubToken,
|
|
199
|
+
});
|
|
200
|
+
const previousRemoteBranchHead = await remoteBranchHead(options.repo.hostWorkspacePath, branchName);
|
|
201
|
+
const localHead = await gitStdout(options.repo.hostWorkspacePath, ['rev-parse', 'HEAD']);
|
|
202
|
+
if (previousRemoteBranchHead === localHead) {
|
|
203
|
+
return {
|
|
204
|
+
repoUrl: options.branch.repoUrl,
|
|
239
205
|
branch: branchName,
|
|
240
206
|
success: false,
|
|
241
|
-
error:
|
|
242
|
-
}
|
|
207
|
+
error: `Nothing new to push on ${branchName}. Local HEAD matches origin/${branchName} (${localHead}). Commit your work and call git-push again.`,
|
|
208
|
+
};
|
|
243
209
|
}
|
|
210
|
+
await pushBranch({
|
|
211
|
+
repoUrl: options.branch.repoUrl,
|
|
212
|
+
branchName,
|
|
213
|
+
cwd: options.repo.hostWorkspacePath,
|
|
214
|
+
githubToken: options.githubToken,
|
|
215
|
+
});
|
|
216
|
+
await git({
|
|
217
|
+
cwd: options.repo.hostWorkspacePath,
|
|
218
|
+
args: [
|
|
219
|
+
'fetch',
|
|
220
|
+
'--prune',
|
|
221
|
+
buildPushUrl(options.branch.repoUrl, options.githubToken),
|
|
222
|
+
`${branchName}:refs/remotes/origin/${branchName}`,
|
|
223
|
+
],
|
|
224
|
+
reject: false,
|
|
225
|
+
});
|
|
226
|
+
const state = await buildBranchState({
|
|
227
|
+
cwd: options.repo.hostWorkspacePath,
|
|
228
|
+
branchName,
|
|
229
|
+
defaultBranch: options.repo.baseBranch,
|
|
230
|
+
previousRemoteBranchHead,
|
|
231
|
+
});
|
|
232
|
+
return {
|
|
233
|
+
repoUrl: options.branch.repoUrl,
|
|
234
|
+
branch: branchName,
|
|
235
|
+
success: true,
|
|
236
|
+
...state,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
return {
|
|
241
|
+
repoUrl: options.branch.repoUrl,
|
|
242
|
+
branch: branchName,
|
|
243
|
+
success: false,
|
|
244
|
+
error: error instanceof Error ? error.message : String(error),
|
|
245
|
+
};
|
|
244
246
|
}
|
|
245
|
-
return { results };
|
|
246
247
|
}
|
|
247
248
|
//# sourceMappingURL=git-push-operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-push-operations.js","sourceRoot":"","sources":["../../src/controller/git-push-operations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE,MAAM,wBAAwB,GAAG,OAAO,CAAC;AAoCzC,MAAM,OAAO,2BAA4B,SAAQ,KAAK;CAAG;AAEzD,SAAS,gBAAgB,CAAC,OAAe;IACxC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,OAAO,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAe;IACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,+CAA+C,CAAC;IACnE,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,2BAA2B,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,WAAmB;IACzD,OAAO,0BAA0B,WAAW,eAAe,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;AAC5F,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,OAIlB;IACA,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE;QACpD,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,wBAAwB;KACjC,CAAC,CAAC;IACH,MAAM,UAAU,GAAG;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;KAC9B,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,UAAU,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACd,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CACzF,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,IAAuB;IAC5D,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC3C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,OAAO,MAAM;SACX,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACb,MAAM,CAAC,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,OAAO,GAA6B;YACzC,GAAG;YACH,OAAO;SACP,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC;QACD,IAAI,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC7B,GAAW,EACX,KAAa,EACb,OAAkD;IAElD,MAAM,MAAM,GAAG,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7F,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACrC,OAAO,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,GAAW;IAChD,OAAO,CACN,CAAC,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;SAClF,QAAQ,KAAK,CAAC,CAChB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,KAAa;IACnD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAK9B;IACA,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE;YACL,OAAO;YACP,SAAS;YACT,OAAO;YACP,GAAG,OAAO,CAAC,aAAa,wBAAwB,OAAO,CAAC,aAAa,EAAE;SACvE;QACD,MAAM,EAAE,KAAK;KACb,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,0BAA0B,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;AACF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,UAAkB;IAC9D,IAAI,CAAC,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,uBAAuB,UAAU,EAAE,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,uBAAuB,UAAU,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,OAKzB;IACA,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC;QACxB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,IAAI,EAAE;YACL,MAAM;YACN,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;YAClD,GAAG,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,eAAe,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;SAChG;QACD,MAAM,EAAE,KAAK;KACb,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,0BAA0B,CAAC,GAAG,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5F,gBAAgB,CACf,uBAAuB,OAAO,CAAC,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,WAAW,EAAE,CAClG,CAAC;QACF,MAAM,IAAI,KAAK,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;IACpD,CAAC;AACF,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAK/B;IACA,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,MAAM,sBAAsB,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACvF,MAAM,gBAAgB,GAAG,uBAAuB,OAAO,CAAC,aAAa,EAAE,CAAC;IACxE,MAAM,iBAAiB,GAAG,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;QACzE,CAAC,CAAC,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAC/D,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,CAAC,GAAG,gBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,eAAe,GAAG,YAAY;QACnC,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QAC/E,CAAC,CAAC,EAAE,CAAC;IACN,MAAM,WAAW,GAAG,OAAO,CAAC,wBAAwB;QACnD,CAAC,CAAC,GAAG,OAAO,CAAC,wBAAwB,QAAQ;QAC7C,CAAC,CAAC,YAAY,CAAC;IAChB,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5F,MAAM,UAAU,GAAG,iBAAiB;QACnC,CAAC,CAAC;YACA,cAAc,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,gBAAgB,QAAQ,CAAC;YAC1E,aAAa,EAAE,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,gBAAgB,EAAE,CAAC;SACzE;QACF,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IAE3C,OAAO;QACN,SAAS;QACT,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,iBAAiB;QACjB,eAAe;QACf,gBAAgB;QAChB,sBAAsB,EAAE,OAAO,CAAC,wBAAwB,KAAK,IAAI;QACjE,UAAU;KACV,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAIzC;IACA,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,2BAA2B,CACpC,WAAW,MAAM,CAAC,UAAU,sBAAsB,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,CACrF,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;QAChG,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,MAAM,IAAI,2BAA2B,CACpC,SAAS,MAAM,CAAC,OAAO,wCAAwC,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,CAC5F,CAAC;QACH,CAAC;IACF,CAAC;IAED,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"git-push-operations.js","sourceRoot":"","sources":["../../src/controller/git-push-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ExternalResources, ResolvedRepoResourcesFinal } from '../config/resource-contracts/index.js';
|
|
2
|
+
import type { SystemConfig } from '../config/system-config.js';
|
|
3
|
+
type RuntimeAuthHint = NonNullable<SystemConfig['zones'][number]['runtimeAuthHints']>[number];
|
|
4
|
+
export interface ResolvedRuntimeResource {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly host: string;
|
|
7
|
+
readonly port: number;
|
|
8
|
+
readonly envVars: readonly string[];
|
|
9
|
+
readonly outputPath?: string | undefined;
|
|
10
|
+
}
|
|
11
|
+
export interface RepoResourceFinalizationSummary {
|
|
12
|
+
readonly final: ResolvedRepoResourcesFinal;
|
|
13
|
+
readonly outputDir: string;
|
|
14
|
+
readonly repoId: string;
|
|
15
|
+
}
|
|
16
|
+
export interface BuildResolvedRuntimeResourcesOptions {
|
|
17
|
+
readonly externalResources: ExternalResources;
|
|
18
|
+
readonly repoFinalizations: readonly RepoResourceFinalizationSummary[];
|
|
19
|
+
}
|
|
20
|
+
export interface BuildRuntimeInstructionsOptions {
|
|
21
|
+
readonly resolvedResources: readonly ResolvedRuntimeResource[];
|
|
22
|
+
readonly runtimeAuthHints: readonly RuntimeAuthHint[];
|
|
23
|
+
readonly taskId: string;
|
|
24
|
+
readonly workspaceDir: string;
|
|
25
|
+
}
|
|
26
|
+
export interface BuiltRuntimeInstructions {
|
|
27
|
+
readonly runtimeInstructions: string;
|
|
28
|
+
readonly workspaceAgentsMd: string;
|
|
29
|
+
readonly agentRuntimeFiles: Readonly<Record<string, string>>;
|
|
30
|
+
}
|
|
31
|
+
export declare function buildResolvedRuntimeResources(options: BuildResolvedRuntimeResourcesOptions): readonly ResolvedRuntimeResource[];
|
|
32
|
+
export declare function buildRuntimeInstructions(options: BuildRuntimeInstructionsOptions): BuiltRuntimeInstructions;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=runtime-instructions-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-instructions-builder.d.ts","sourceRoot":"","sources":["../../src/controller/runtime-instructions-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,0BAA0B,EAC1B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,KAAK,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9F,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,KAAK,EAAE,0BAA0B,CAAC;IAC3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oCAAoC;IACpD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,+BAA+B,EAAE,CAAC;CACvE;AAED,MAAM,WAAW,+BAA+B;IAC/C,QAAQ,CAAC,iBAAiB,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,SAAS,eAAe,EAAE,CAAC;IACtD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC7D;AAuKD,wBAAgB,6BAA6B,CAC5C,OAAO,EAAE,oCAAoC,GAC3C,SAAS,uBAAuB,EAAE,CAkBpC;AAED,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,+BAA+B,GACtC,wBAAwB,CAe1B"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
function buildWorkspaceSection(options) {
|
|
2
|
+
return [
|
|
3
|
+
'## Workspace',
|
|
4
|
+
`- Task id: ${options.taskId}`,
|
|
5
|
+
`- Workspace root: ${options.workspaceDir}`,
|
|
6
|
+
'- Workspace agent index: /workspace/AGENTS.md',
|
|
7
|
+
'- Runtime agent index: /agent-vm/agents.md',
|
|
8
|
+
'- Requested repositories are cloned under the workspace root. Use the task prompt and workspace contents for repo-specific work.',
|
|
9
|
+
].join('\n');
|
|
10
|
+
}
|
|
11
|
+
function formatResourceLines(resources) {
|
|
12
|
+
if (resources.length === 0) {
|
|
13
|
+
return ['- No resolved repo or external resources were generated for this task.'];
|
|
14
|
+
}
|
|
15
|
+
return resources.flatMap((resource) => [
|
|
16
|
+
`- ${resource.name}: ${resource.host}:${String(resource.port)}`,
|
|
17
|
+
` Env vars: ${resource.envVars.length ? resource.envVars.join(', ') : '(none)'}`,
|
|
18
|
+
...(resource.outputPath ? [` Output: ${resource.outputPath}`] : []),
|
|
19
|
+
]);
|
|
20
|
+
}
|
|
21
|
+
function buildResourcesSection(options) {
|
|
22
|
+
return [
|
|
23
|
+
'## Resources',
|
|
24
|
+
'- Resolved resource facts are generated by the controller. Use env var names and VM-visible host bindings below; do not inspect /state for resource configuration.',
|
|
25
|
+
...formatResourceLines(options.resolvedResources),
|
|
26
|
+
].join('\n');
|
|
27
|
+
}
|
|
28
|
+
function buildControllerToolsSection() {
|
|
29
|
+
return [
|
|
30
|
+
'## Controller tools',
|
|
31
|
+
'- Use git-push to push agent branches. Do not run git push directly.',
|
|
32
|
+
'- Use git-pull-default to update protected/default branches.',
|
|
33
|
+
].join('\n');
|
|
34
|
+
}
|
|
35
|
+
function formatAuthHintHeading(hint) {
|
|
36
|
+
return `### ${hint.secret} - service ${hint.service} - hosts ${hint.hosts.join(', ')}`;
|
|
37
|
+
}
|
|
38
|
+
function formatAuthHintTools(hint) {
|
|
39
|
+
const tools = hint.tools.length ? hint.tools.join(', ') : '(none declared)';
|
|
40
|
+
return `Tools: ${tools}`;
|
|
41
|
+
}
|
|
42
|
+
function formatLiteralEnvPlaceholder(secretName) {
|
|
43
|
+
return `\${${secretName}}`;
|
|
44
|
+
}
|
|
45
|
+
function buildNpmAuthRecipe(hint) {
|
|
46
|
+
const registryHost = hint.hosts[0] ?? 'registry.npmjs.org';
|
|
47
|
+
const literalPlaceholder = formatLiteralEnvPlaceholder(hint.secret);
|
|
48
|
+
return [
|
|
49
|
+
'Before any npm, pnpm, yarn install/add/publish command, write the npm user config:',
|
|
50
|
+
'',
|
|
51
|
+
` printf '//${registryHost}/:_authToken=${literalPlaceholder}\\n' > "$HOME/.npmrc"`,
|
|
52
|
+
'',
|
|
53
|
+
'Use >, not >>. This setup is safe to re-run because it overwrites the generated auth line.',
|
|
54
|
+
'The single quotes are required: npm substitutes the env placeholder at registry-call time. Double quotes would expand the placeholder into the file and break mediation.',
|
|
55
|
+
'npm, pnpm, and yarn-classic read "$HOME/.npmrc".',
|
|
56
|
+
'If you must use yarn-berry, configure the registry in .yarnrc.yml instead:',
|
|
57
|
+
'',
|
|
58
|
+
' npmRegistries:',
|
|
59
|
+
` "//${registryHost}":`,
|
|
60
|
+
` npmAuthToken: "${literalPlaceholder}"`,
|
|
61
|
+
];
|
|
62
|
+
}
|
|
63
|
+
function buildGithubAuthRecipe(hint) {
|
|
64
|
+
return [
|
|
65
|
+
'Before any gh command, copy the mediated placeholder into GH_TOKEN for that command:',
|
|
66
|
+
'',
|
|
67
|
+
` GH_TOKEN="$${hint.secret}" gh pr create --base <default> --title "..." --body "..."`,
|
|
68
|
+
'',
|
|
69
|
+
'gh refuses authenticated API operations unless GH_TOKEN is set. The proxy substitutes the real token at the wire level for the listed hosts.',
|
|
70
|
+
'Do not run raw git push. Use the git-push controller tool.',
|
|
71
|
+
];
|
|
72
|
+
}
|
|
73
|
+
function buildPythonPackageIndexAuthRecipe(hint) {
|
|
74
|
+
const indexHost = hint.hosts[0] ?? '<private-python-index-host>';
|
|
75
|
+
return [
|
|
76
|
+
'Before any uv command that uses this private Python package index, configure uv to read the mediated placeholder.',
|
|
77
|
+
'',
|
|
78
|
+
'Prefer an explicit index URL scoped to the uv command:',
|
|
79
|
+
'',
|
|
80
|
+
` UV_INDEX_URL="https://__token__:$${hint.secret}@${indexHost}/simple" uv pip install <package-or-requirements>`,
|
|
81
|
+
'',
|
|
82
|
+
'Keep the env placeholder literal until uv makes the outbound request to the listed host.',
|
|
83
|
+
];
|
|
84
|
+
}
|
|
85
|
+
const authRecipes = {
|
|
86
|
+
github: buildGithubAuthRecipe,
|
|
87
|
+
npm: buildNpmAuthRecipe,
|
|
88
|
+
pypi: buildPythonPackageIndexAuthRecipe,
|
|
89
|
+
'pypi-private': buildPythonPackageIndexAuthRecipe,
|
|
90
|
+
python: buildPythonPackageIndexAuthRecipe,
|
|
91
|
+
'python-package-index': buildPythonPackageIndexAuthRecipe,
|
|
92
|
+
};
|
|
93
|
+
function buildUnknownAuthRecipe(hint) {
|
|
94
|
+
return [
|
|
95
|
+
`Before using these tools, you MUST configure your toolchain to read the placeholder env var $${hint.secret}.`,
|
|
96
|
+
'Do not work around the proxy, do not inline token values, and do not skip validation.',
|
|
97
|
+
'If you do not know the correct setup for this service, report an infrastructure/auth setup gap with the exact command you were trying to run.',
|
|
98
|
+
];
|
|
99
|
+
}
|
|
100
|
+
function buildAuthHintBlock(hint) {
|
|
101
|
+
const recipeBuilder = authRecipes[hint.service.toLowerCase()] ?? buildUnknownAuthRecipe;
|
|
102
|
+
return [formatAuthHintHeading(hint), formatAuthHintTools(hint), '', ...recipeBuilder(hint)];
|
|
103
|
+
}
|
|
104
|
+
function buildAuthSection(options) {
|
|
105
|
+
const hintBlocks = options.runtimeAuthHints.flatMap((hint) => ['', ...buildAuthHintBlock(hint)]);
|
|
106
|
+
if (hintBlocks.length === 0) {
|
|
107
|
+
return [
|
|
108
|
+
'## Mediated auth',
|
|
109
|
+
'- No runtime auth hints were declared for this task.',
|
|
110
|
+
'- If auth blocks validation, report an infrastructure/auth setup failure with the exact failing command and error.',
|
|
111
|
+
].join('\n');
|
|
112
|
+
}
|
|
113
|
+
return [
|
|
114
|
+
'## Mediated auth',
|
|
115
|
+
'The env vars below are mediation placeholders. The proxy substitutes the real secret only on outbound calls to the listed hosts. You MUST keep the literal placeholder string. Never print, log, copy, inspect, or inline it.',
|
|
116
|
+
'',
|
|
117
|
+
'You MUST configure each tool below before running any command that uses it. If a configured command still returns 401, 403, or 404 on the listed hosts, that is an infrastructure/auth setup failure: stop, report the exact failing command and output, do not skip validation, and do not edit product code to work around auth.',
|
|
118
|
+
...hintBlocks,
|
|
119
|
+
].join('\n');
|
|
120
|
+
}
|
|
121
|
+
function buildRuntimeSurfaceSection() {
|
|
122
|
+
return [
|
|
123
|
+
'## Runtime files',
|
|
124
|
+
'- /workspace/AGENTS.md points to /agent-vm/agents.md.',
|
|
125
|
+
'- /workspace/CLAUDE.md is a symlink to /workspace/AGENTS.md.',
|
|
126
|
+
'- /agent-vm/agents.md is the agent-facing index for generated runtime facts.',
|
|
127
|
+
'- /agent-vm/CLAUDE.md is a symlink to /agent-vm/agents.md.',
|
|
128
|
+
'- /agent-vm/runtime-instructions.md contains this same generated runtime instruction content.',
|
|
129
|
+
'- /state exists in the VM, but it is worker/controller plumbing. Do not treat /state as the primary agent documentation surface.',
|
|
130
|
+
].join('\n');
|
|
131
|
+
}
|
|
132
|
+
function buildAgentRuntimeFiles(options, runtimeInstructions) {
|
|
133
|
+
return {
|
|
134
|
+
'agents.md': [
|
|
135
|
+
'# Agent VM runtime',
|
|
136
|
+
'Read this generated file before making assumptions about this task runtime.',
|
|
137
|
+
'Read /agent-vm/runtime-instructions.md for generated runtime facts.',
|
|
138
|
+
'',
|
|
139
|
+
'## Resources',
|
|
140
|
+
...formatResourceLines(options.resolvedResources),
|
|
141
|
+
].join('\n'),
|
|
142
|
+
'runtime-instructions.md': runtimeInstructions,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
export function buildResolvedRuntimeResources(options) {
|
|
146
|
+
return [
|
|
147
|
+
...Object.entries(options.externalResources).map(([name, resource]) => ({
|
|
148
|
+
name,
|
|
149
|
+
host: resource.binding.host,
|
|
150
|
+
port: resource.binding.port,
|
|
151
|
+
envVars: Object.keys(resource.env).toSorted(),
|
|
152
|
+
})),
|
|
153
|
+
...options.repoFinalizations.flatMap((finalization) => Object.entries(finalization.final.resources).map(([name, resource]) => ({
|
|
154
|
+
name,
|
|
155
|
+
host: resource.binding.host,
|
|
156
|
+
port: resource.binding.port,
|
|
157
|
+
envVars: Object.keys(resource.env).toSorted(),
|
|
158
|
+
outputPath: `/agent-vm/resources/${finalization.repoId}`,
|
|
159
|
+
}))),
|
|
160
|
+
];
|
|
161
|
+
}
|
|
162
|
+
export function buildRuntimeInstructions(options) {
|
|
163
|
+
const runtimeInstructions = [
|
|
164
|
+
'# Runtime instructions',
|
|
165
|
+
buildWorkspaceSection(options),
|
|
166
|
+
buildRuntimeSurfaceSection(),
|
|
167
|
+
buildResourcesSection(options),
|
|
168
|
+
buildControllerToolsSection(),
|
|
169
|
+
buildAuthSection(options),
|
|
170
|
+
].join('\n\n');
|
|
171
|
+
return {
|
|
172
|
+
runtimeInstructions,
|
|
173
|
+
workspaceAgentsMd: '# Workspace agent index\n\nStart with /agent-vm/agents.md for generated runtime facts.\n',
|
|
174
|
+
agentRuntimeFiles: buildAgentRuntimeFiles(options, runtimeInstructions),
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
//# sourceMappingURL=runtime-instructions-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-instructions-builder.js","sourceRoot":"","sources":["../../src/controller/runtime-instructions-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker-task-runner.d.ts","sourceRoot":"","sources":["../../src/controller/worker-task-runner.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"worker-task-runner.d.ts","sourceRoot":"","sources":["../../src/controller/worker-task-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import crypto from 'node:crypto';
|
|
2
2
|
import fs from 'node:fs/promises';
|
|
3
3
|
import path from 'node:path';
|
|
4
|
-
import { appendEvent, computeTotalTaskTimeoutMs, resolveWorkerConfigInstructionReferences, workerConfigSchema, } from '@agent-vm/agent-vm-worker';
|
|
4
|
+
import { appendEvent, computeTotalTaskTimeoutMs, resolveWorkerConfigInstructionReferences, workerConfigDraftSchema, workerConfigSchema, } from '@agent-vm/agent-vm-worker';
|
|
5
5
|
import { execa } from 'execa';
|
|
6
6
|
import { z } from 'zod';
|
|
7
7
|
import { workerTaskResourcesSchema, workerTaskControllerRequestSchema, } from '../config/resource-contracts/index.js';
|
|
@@ -11,6 +11,7 @@ import { startRepoResourceProviders, stopRepoResourceProviders, } from '../resou
|
|
|
11
11
|
import { compileResourceOverlay } from '../resources/resource-compiler.js';
|
|
12
12
|
import { resolveTaskResources } from '../resources/resource-resolver.js';
|
|
13
13
|
import { buildGithubAuthConfigArgs, scrubGithubTokenFromOutput } from './git-auth-support.js';
|
|
14
|
+
import { buildResolvedRuntimeResources, buildRuntimeInstructions, } from './runtime-instructions-builder.js';
|
|
14
15
|
import { buildTaskConfigFromPreparedInput } from './task-config-builder.js';
|
|
15
16
|
function isPlainObject(value) {
|
|
16
17
|
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
@@ -62,6 +63,24 @@ async function copyLocalWorkerTarballIfConfigured(stateDir) {
|
|
|
62
63
|
}
|
|
63
64
|
await fs.copyFile(localWorkerTarballPath, path.join(stateDir, 'agent-vm-worker.tgz'));
|
|
64
65
|
}
|
|
66
|
+
async function writeAgentRuntimeFiles(agentVmDir, files) {
|
|
67
|
+
await Promise.all(Object.entries(files).map(async ([relativePath, content]) => {
|
|
68
|
+
const outputPath = path.join(agentVmDir, relativePath);
|
|
69
|
+
await fs.mkdir(path.dirname(outputPath), { recursive: true });
|
|
70
|
+
await fs.writeFile(outputPath, content, { encoding: 'utf8', mode: 0o644 });
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
async function replaceRelativeSymlink(linkPath, target) {
|
|
74
|
+
try {
|
|
75
|
+
await fs.unlink(linkPath);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
if (!(error && typeof error === 'object' && 'code' in error && error.code === 'ENOENT')) {
|
|
79
|
+
throw error;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
await fs.symlink(target, linkPath);
|
|
83
|
+
}
|
|
65
84
|
function deriveRepoDirectoryName(repoUrl, usedNames) {
|
|
66
85
|
const cleanedUrl = repoUrl.replace(/\.git$/, '');
|
|
67
86
|
const baseName = cleanedUrl.split('/').pop()?.trim() ?? 'repo';
|
|
@@ -84,10 +103,12 @@ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
|
|
|
84
103
|
const taskRoot = path.join(zoneConfig.gateway.stateDir, 'tasks', taskId);
|
|
85
104
|
const workspaceDir = path.join(taskRoot, 'workspace');
|
|
86
105
|
const stateDir = path.join(taskRoot, 'state');
|
|
106
|
+
const agentVmDir = path.join(taskRoot, 'agent-vm');
|
|
87
107
|
let startedResourceProviders = [];
|
|
88
108
|
try {
|
|
89
109
|
await fs.mkdir(workspaceDir, { recursive: true });
|
|
90
110
|
await fs.mkdir(stateDir, { recursive: true });
|
|
111
|
+
await fs.mkdir(agentVmDir, { recursive: true });
|
|
91
112
|
await copyLocalWorkerTarballIfConfigured(stateDir);
|
|
92
113
|
const usedRepoNames = new Set();
|
|
93
114
|
const preparedRepoTargets = parsedTaskInput.repos.map((repo) => {
|
|
@@ -165,8 +186,7 @@ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
|
|
|
165
186
|
const resolvedBaseConfig = await resolveWorkerConfigInstructionReferences(baseConfig, {
|
|
166
187
|
configPath: zoneConfig.gateway.config,
|
|
167
188
|
});
|
|
168
|
-
const
|
|
169
|
-
await fs.writeFile(path.join(stateDir, 'effective-worker.json'), JSON.stringify(effectiveConfig, null, 2), { encoding: 'utf8', mode: 0o600 });
|
|
189
|
+
const effectiveConfigDraft = workerConfigDraftSchema.parse(deepMerge(resolvedBaseConfig, projectConfig));
|
|
170
190
|
const repoResourceDescriptions = await Promise.all(clonedRepos.map(async (repo) => ({
|
|
171
191
|
repoId: repo.repoId,
|
|
172
192
|
repoUrl: repo.repoUrl,
|
|
@@ -199,7 +219,7 @@ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
|
|
|
199
219
|
repoId: repoDescription.repoId,
|
|
200
220
|
repoUrl: repoDescription.repoUrl,
|
|
201
221
|
repoDir: repo.hostWorkspacePath,
|
|
202
|
-
outputDir: path.join(
|
|
222
|
+
outputDir: path.join(agentVmDir, 'resources', repoDescription.repoId),
|
|
203
223
|
setupCommand: repoDescription.description.setupCommand,
|
|
204
224
|
};
|
|
205
225
|
})
|
|
@@ -212,7 +232,7 @@ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
|
|
|
212
232
|
return {
|
|
213
233
|
...provider,
|
|
214
234
|
repoDir: repo.hostWorkspacePath,
|
|
215
|
-
outputDir: path.join(
|
|
235
|
+
outputDir: path.join(agentVmDir, 'resources', provider.repoId),
|
|
216
236
|
};
|
|
217
237
|
}),
|
|
218
238
|
});
|
|
@@ -221,6 +241,27 @@ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
|
|
|
221
241
|
externalResources: resolvedResources.externalResources,
|
|
222
242
|
repoFinalizations: providerRun.finalizations,
|
|
223
243
|
});
|
|
244
|
+
const runtime = buildRuntimeInstructions({
|
|
245
|
+
resolvedResources: buildResolvedRuntimeResources({
|
|
246
|
+
externalResources: resolvedResources.externalResources,
|
|
247
|
+
repoFinalizations: providerRun.finalizations,
|
|
248
|
+
}),
|
|
249
|
+
runtimeAuthHints: zoneConfig.runtimeAuthHints ?? [],
|
|
250
|
+
taskId,
|
|
251
|
+
workspaceDir: '/workspace',
|
|
252
|
+
});
|
|
253
|
+
const effectiveConfig = workerConfigSchema.parse({
|
|
254
|
+
...effectiveConfigDraft,
|
|
255
|
+
runtimeInstructions: runtime.runtimeInstructions,
|
|
256
|
+
});
|
|
257
|
+
await writeAgentRuntimeFiles(agentVmDir, runtime.agentRuntimeFiles);
|
|
258
|
+
await replaceRelativeSymlink(path.join(agentVmDir, 'CLAUDE.md'), 'agents.md');
|
|
259
|
+
await fs.writeFile(path.join(workspaceDir, 'AGENTS.md'), runtime.workspaceAgentsMd, {
|
|
260
|
+
encoding: 'utf8',
|
|
261
|
+
mode: 0o644,
|
|
262
|
+
});
|
|
263
|
+
await replaceRelativeSymlink(path.join(workspaceDir, 'CLAUDE.md'), 'AGENTS.md');
|
|
264
|
+
await fs.writeFile(path.join(stateDir, 'effective-worker.json'), JSON.stringify(effectiveConfig, null, 2), { encoding: 'utf8', mode: 0o600 });
|
|
224
265
|
return {
|
|
225
266
|
taskId,
|
|
226
267
|
input: parsedTaskInput,
|
|
@@ -230,7 +271,12 @@ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
|
|
|
230
271
|
startedResourceProviders: providerRun.startedProviders,
|
|
231
272
|
environment: overlay.environment,
|
|
232
273
|
tcpHosts: overlay.tcpHosts,
|
|
233
|
-
vfsMounts:
|
|
274
|
+
vfsMounts: {
|
|
275
|
+
'/agent-vm': {
|
|
276
|
+
hostPath: agentVmDir,
|
|
277
|
+
kind: 'realfs-readonly',
|
|
278
|
+
},
|
|
279
|
+
},
|
|
234
280
|
repos: clonedRepos,
|
|
235
281
|
effectiveConfig,
|
|
236
282
|
};
|
|
@@ -247,7 +293,7 @@ export async function preStartGateway(taskInput, zoneConfig, options = {}) {
|
|
|
247
293
|
export async function postStopGateway(taskId, zoneConfig, startedProviders = []) {
|
|
248
294
|
const taskRoot = path.join(zoneConfig.gateway.stateDir, 'tasks', taskId);
|
|
249
295
|
const workspaceDir = path.join(taskRoot, 'workspace');
|
|
250
|
-
const resourcesDir = path.join(taskRoot, '
|
|
296
|
+
const resourcesDir = path.join(taskRoot, 'agent-vm', 'resources');
|
|
251
297
|
let cleanupError = null;
|
|
252
298
|
let workspaceRemovalError = null;
|
|
253
299
|
let resourcesRemovalError = null;
|