@rallycry/conveyor-agent 11.0.14 → 11.0.16
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/{boot-V3DNJ3MV.js → boot-CCRZMY2P.js} +2 -2
- package/dist/{chunk-IBAIJY7V.js → chunk-7TSQXIN3.js} +1 -1
- package/dist/{chunk-TOTCEWJD.js → chunk-B54XFOXL.js} +34 -4
- package/dist/{chunk-LZWCJHVN.js → chunk-GAUVITY7.js} +24 -12
- package/dist/{chunk-YMZ6Q55T.js → chunk-M4SD2ESQ.js} +1 -1
- package/dist/{chunk-JG3VMWRQ.js → chunk-QLMNQSJL.js} +1 -1
- package/dist/{chunk-DDECZOAT.js → chunk-X2MKHJBZ.js} +26 -21
- package/dist/cli.js +13 -9
- package/dist/{client-6AUPKKMV.js → client-DVVHMIOO.js} +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +4 -4
- package/dist/{serve-boot-FJSZE737.js → serve-boot-VJR6J5PL.js} +8 -4
- package/dist/{server-2IZBKD3Q.js → server-WM23BC5C.js} +2 -2
- package/package.json +1 -1
- package/runtime/entrypoint.sh +2 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
startWorkbenchServer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-7TSQXIN3.js";
|
|
4
4
|
import {
|
|
5
5
|
TOMBSTONE_MESSAGE,
|
|
6
6
|
isLegacyEntrypointLaunch
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
refreshSkillsAfterCheckout,
|
|
13
13
|
runPreReadyBinds
|
|
14
14
|
} from "./chunk-SR66HQKB.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-QLMNQSJL.js";
|
|
16
16
|
import {
|
|
17
17
|
GitPrepJob,
|
|
18
18
|
defaultGit,
|
|
@@ -38,6 +38,36 @@ var RemoteProcessHandle = class extends EventEmitter {
|
|
|
38
38
|
};
|
|
39
39
|
|
|
40
40
|
// src/workbench/client.ts
|
|
41
|
+
var WORKBENCH_COMMAND_ENV_DENYLIST = /* @__PURE__ */ new Set([
|
|
42
|
+
"POD_BOOTSTRAP_TOKEN",
|
|
43
|
+
"CONVEYOR_BOOTSTRAP_TOKEN",
|
|
44
|
+
"CONVEYOR_WORKBENCH_TOKEN",
|
|
45
|
+
"CONVEYOR_TASK_TOKEN",
|
|
46
|
+
"CONVEYOR_PROJECT_TOKEN",
|
|
47
|
+
"CONVEYOR_GIT_SECRET",
|
|
48
|
+
"CONVEYOR_GIT_CREDENTIAL_DIR",
|
|
49
|
+
"CONVEYOR_GITHUB_TOKEN",
|
|
50
|
+
"CONVEYOR_GITHUB_TOKEN_FILE",
|
|
51
|
+
"GH_TOKEN",
|
|
52
|
+
"GITHUB_TOKEN",
|
|
53
|
+
"GH_CONFIG_DIR",
|
|
54
|
+
"ANTHROPIC_API_KEY",
|
|
55
|
+
"CLAUDE_CODE_OAUTH_TOKEN",
|
|
56
|
+
"CONVEYOR_AGENT_KEY",
|
|
57
|
+
"CONVEYOR_CLAUDE_OAUTH",
|
|
58
|
+
"CONVEYOR_CODEX_OAUTH",
|
|
59
|
+
"CONVEYOR_OPENCODE_OAUTH",
|
|
60
|
+
"CLOUDSDK_AUTH_ACCESS_TOKEN"
|
|
61
|
+
]);
|
|
62
|
+
function serializableEnv(env) {
|
|
63
|
+
const result = {};
|
|
64
|
+
for (const [key, value] of Object.entries(env)) {
|
|
65
|
+
if (typeof value === "string" && !WORKBENCH_COMMAND_ENV_DENYLIST.has(key)) {
|
|
66
|
+
result[key] = value;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
41
71
|
function frameError(frame) {
|
|
42
72
|
return new WorkbenchError(frame.message, frame.code);
|
|
43
73
|
}
|
|
@@ -158,7 +188,7 @@ var WorkbenchClient = class {
|
|
|
158
188
|
}
|
|
159
189
|
/** Mirrors setup/commands.ts runSetupCommand (shell form, streamed output,
|
|
160
190
|
* abort → graceful term-group kill, non-zero exit rejects). */
|
|
161
|
-
runSetupCommand(cmd, cwd, onOutput, signal) {
|
|
191
|
+
runSetupCommand(cmd, cwd, onOutput, signal, env = process.env) {
|
|
162
192
|
return new Promise((resolve, reject) => {
|
|
163
193
|
if (signal?.aborted) {
|
|
164
194
|
const error = new Error("Operation aborted");
|
|
@@ -170,7 +200,7 @@ var WorkbenchClient = class {
|
|
|
170
200
|
let exited = false;
|
|
171
201
|
let aborting = false;
|
|
172
202
|
const socket = this.open(
|
|
173
|
-
{ op: "exec", command: cmd, cwd },
|
|
203
|
+
{ op: "exec", command: cmd, cwd, env: serializableEnv(env) },
|
|
174
204
|
(frame) => {
|
|
175
205
|
if (frame.t === "out" && !aborting) {
|
|
176
206
|
onOutput(frame.s, Buffer.from(frame.d, "base64").toString("utf8"));
|
|
@@ -204,14 +234,14 @@ var WorkbenchClient = class {
|
|
|
204
234
|
}
|
|
205
235
|
/** Mirrors setup/commands.ts runStartCommand: returns a live handle that
|
|
206
236
|
* emits exit/error and whose kill() runs the graceful term-group stop. */
|
|
207
|
-
runStartCommand(cmd, cwd, onOutput) {
|
|
237
|
+
runStartCommand(cmd, cwd, onOutput, env = process.env) {
|
|
208
238
|
let socket;
|
|
209
239
|
const handle = new RemoteProcessHandle(() => {
|
|
210
240
|
if (socket) writeFrame(socket, { t: "signal", mode: "term-group" });
|
|
211
241
|
});
|
|
212
242
|
let exited = false;
|
|
213
243
|
socket = this.open(
|
|
214
|
-
{ op: "exec", command: cmd, cwd },
|
|
244
|
+
{ op: "exec", command: cmd, cwd, env: serializableEnv(env) },
|
|
215
245
|
(frame) => {
|
|
216
246
|
if (frame.t === "out") {
|
|
217
247
|
onOutput(frame.s, Buffer.from(frame.d, "base64").toString("utf8"));
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
spawnOptionsFingerprint,
|
|
30
30
|
transcriptSize,
|
|
31
31
|
turnOptionsFrom
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-QLMNQSJL.js";
|
|
33
33
|
import {
|
|
34
34
|
AgentConnection,
|
|
35
35
|
CodespacePortVisibility,
|
|
@@ -59,7 +59,7 @@ import {
|
|
|
59
59
|
statWorkspacePath,
|
|
60
60
|
updateRemoteToken,
|
|
61
61
|
verifyGitCredential
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-M4SD2ESQ.js";
|
|
63
63
|
import {
|
|
64
64
|
registerBootMilestoneSocketFallback,
|
|
65
65
|
reportBootMilestone
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
} from "./chunk-IA45XHOA.js";
|
|
81
81
|
import {
|
|
82
82
|
getWorkbenchClient
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-B54XFOXL.js";
|
|
84
84
|
import {
|
|
85
85
|
workbenchEnabled
|
|
86
86
|
} from "./chunk-KMB3BU4S.js";
|
|
@@ -6464,6 +6464,15 @@ async function seedOpenCodeOauth(env) {
|
|
|
6464
6464
|
}
|
|
6465
6465
|
}
|
|
6466
6466
|
|
|
6467
|
+
// src/harness/openai-model.ts
|
|
6468
|
+
var DEFAULT_OPENAI_CODING_MODEL = "gpt-5.6-terra";
|
|
6469
|
+
function resolveOpenAiCodingModel(model) {
|
|
6470
|
+
if (!model || model.startsWith("claude-") || model.includes("/") && !model.startsWith("openai/")) {
|
|
6471
|
+
return DEFAULT_OPENAI_CODING_MODEL;
|
|
6472
|
+
}
|
|
6473
|
+
return model.replace(/^openai\//, "");
|
|
6474
|
+
}
|
|
6475
|
+
|
|
6467
6476
|
// src/harness/opencode/credentials.ts
|
|
6468
6477
|
var PROVIDER_KEY_ENV = {
|
|
6469
6478
|
openai: "OPENAI_API_KEY",
|
|
@@ -6496,6 +6505,10 @@ function buildOpenCodeChildEnv(source, configContent) {
|
|
|
6496
6505
|
}
|
|
6497
6506
|
function resolveOpenCodeModel(source, optionsModel) {
|
|
6498
6507
|
const model = source.CONVEYOR_AGENT_MODEL ?? optionsModel;
|
|
6508
|
+
const configuredProvider = source.CONVEYOR_AGENT_PROVIDER;
|
|
6509
|
+
if (configuredProvider === "openai" || !configuredProvider && !model) {
|
|
6510
|
+
return `openai/${resolveOpenAiCodingModel(model)}`;
|
|
6511
|
+
}
|
|
6499
6512
|
if (!model) return void 0;
|
|
6500
6513
|
if (model.startsWith("zen/")) return `opencode/${model.slice("zen/".length)}`;
|
|
6501
6514
|
if (model.includes("/")) return model;
|
|
@@ -6990,9 +7003,8 @@ var CodexTuiAdapter = class {
|
|
|
6990
7003
|
if (input.pluginPath) args.push("--profile", basename(dirname3(input.pluginPath)));
|
|
6991
7004
|
for (const [key, value] of Object.entries(config))
|
|
6992
7005
|
args.push("-c", `${key}=${tomlValue(value)}`);
|
|
6993
|
-
const model = this.env.CONVEYOR_AGENT_MODEL ?? input.options.model;
|
|
6994
|
-
|
|
6995
|
-
args.push("--model", model.replace(/^openai\//, ""));
|
|
7006
|
+
const model = resolveOpenAiCodingModel(this.env.CONVEYOR_AGENT_MODEL ?? input.options.model);
|
|
7007
|
+
args.push("--model", model);
|
|
6996
7008
|
if (input.resume) args.push("resume", input.resume);
|
|
6997
7009
|
if (input.initialPrompt) args.push("--", input.initialPrompt);
|
|
6998
7010
|
return { file: this.resolveBinary(), args, env, cleanupPaths };
|
|
@@ -7484,6 +7496,9 @@ function formatBaseSync(packBranch, devBranch) {
|
|
|
7484
7496
|
function resolveMergedWorkBranch(context) {
|
|
7485
7497
|
return context.featureBranch && context.githubBranch ? context.githubBranch : context.baseBranch;
|
|
7486
7498
|
}
|
|
7499
|
+
function resolveSinglePodPackBranch(context) {
|
|
7500
|
+
return context.githubBranch || context.baseBranch;
|
|
7501
|
+
}
|
|
7487
7502
|
function buildPackRunnerSystemPrompt(context, config, setupLog) {
|
|
7488
7503
|
const mergedWorkBranch = resolveMergedWorkBranch(context);
|
|
7489
7504
|
const parts = [
|
|
@@ -7558,7 +7573,7 @@ function buildPackRunnerSystemPrompt(context, config, setupLog) {
|
|
|
7558
7573
|
return parts.join("\n");
|
|
7559
7574
|
}
|
|
7560
7575
|
function buildSinglePodPackPrompt(context, config, setupLog) {
|
|
7561
|
-
const packBranch =
|
|
7576
|
+
const packBranch = resolveSinglePodPackBranch(context);
|
|
7562
7577
|
const parts = [
|
|
7563
7578
|
`You are an autonomous Pack Runner for the "${context.title}" pack, and you implement the work yourself.`,
|
|
7564
7579
|
``,
|
|
@@ -7572,7 +7587,7 @@ function buildSinglePodPackPrompt(context, config, setupLog) {
|
|
|
7572
7587
|
`- Children get NO branches and NO pull requests here. \`create_pull_request\` always opens the PR for the card you are bound to, so calling it mid-pack opens the PARENT's PR early and strands the remaining children. One PR, at the very end, for this parent.`,
|
|
7573
7588
|
`- You move each child's status yourself: \`update_task(task_id: <child>, status: ...)\`. No per-child build fires, so a status you do not write is a board that silently lies. A child is "ReviewDev" once its commits are on \`${packBranch}\`.`,
|
|
7574
7589
|
`- \`start_child_cloud_build\` and \`stop_child_build\` belong to the fan-out model and are not available to you \u2014 you are the implementer.`,
|
|
7575
|
-
`- Merge \`origin
|
|
7590
|
+
`- Merge \`origin/${context.baseBranch}\` into \`${packBranch}\` after each child, never rebase: the branch is shared with WIP refs and rewriting it breaks them.`,
|
|
7576
7591
|
`- Nothing will wake you to start the next child. Go idle only when genuinely blocked on something external.`,
|
|
7577
7592
|
``
|
|
7578
7593
|
];
|
|
@@ -16023,6 +16038,7 @@ var SessionRunner = class _SessionRunner {
|
|
|
16023
16038
|
`);
|
|
16024
16039
|
}
|
|
16025
16040
|
}
|
|
16041
|
+
this.workspaceCommands?.notifyWorkspaceReady();
|
|
16026
16042
|
this.mode.applyServerMode(this.fullContext?.agentMode, this.fullContext?.isAuto);
|
|
16027
16043
|
this.mode.resolveInitialMode(this.taskContext);
|
|
16028
16044
|
if (this.fullContext?.isAuto && PRE_BUILD_TASK_STATUSES.has(this.taskContext.status) && this.mode.isBuildCapable && hasTaskPlan(this.fullContext.plan)) {
|
|
@@ -16055,7 +16071,6 @@ var SessionRunner = class _SessionRunner {
|
|
|
16055
16071
|
`
|
|
16056
16072
|
);
|
|
16057
16073
|
}
|
|
16058
|
-
this.workspaceCommands?.notifyLoopReady();
|
|
16059
16074
|
while (!this.stopped) {
|
|
16060
16075
|
if (this._state !== "idle") await this.setState("idle");
|
|
16061
16076
|
await this.coreLoop();
|
|
@@ -16223,7 +16238,6 @@ var SessionRunner = class _SessionRunner {
|
|
|
16223
16238
|
}
|
|
16224
16239
|
if (delivery === "prefill") {
|
|
16225
16240
|
await this.setState("waiting_for_input");
|
|
16226
|
-
this.workspaceCommands?.notifyLoopReady();
|
|
16227
16241
|
await this.callbacks.onEvent({ type: "execute_mode", mode: effectiveMode, delivery });
|
|
16228
16242
|
if (this.pendingMessages.length > 0) {
|
|
16229
16243
|
if (!this.stopped) await this.setState("idle");
|
|
@@ -16366,7 +16380,6 @@ var SessionRunner = class _SessionRunner {
|
|
|
16366
16380
|
*/
|
|
16367
16381
|
async runPrefilledMessage(msg, effectiveMode) {
|
|
16368
16382
|
await this.setState("waiting_for_input");
|
|
16369
|
-
this.workspaceCommands?.notifyLoopReady();
|
|
16370
16383
|
await this.callbacks.onEvent({
|
|
16371
16384
|
type: "execute_mode",
|
|
16372
16385
|
mode: effectiveMode,
|
|
@@ -16703,7 +16716,6 @@ var SessionRunner = class _SessionRunner {
|
|
|
16703
16716
|
return this.callbacks.onStatusChange(status);
|
|
16704
16717
|
},
|
|
16705
16718
|
onEvent: (event) => {
|
|
16706
|
-
this.workspaceCommands?.notifyLoopReady();
|
|
16707
16719
|
if (!this.agentLiveReported) {
|
|
16708
16720
|
this.agentLiveReported = true;
|
|
16709
16721
|
void reportBootMilestone({ key: "agent_live" });
|
|
@@ -200,7 +200,7 @@ async function loadPtySpawn() {
|
|
|
200
200
|
async function resolvePtySpawn() {
|
|
201
201
|
const { workbenchEnabled } = await import("./mode-ZJSOSLGU.js");
|
|
202
202
|
if (!workbenchEnabled()) return loadPtySpawn();
|
|
203
|
-
const { getWorkbenchClient } = await import("./client-
|
|
203
|
+
const { getWorkbenchClient } = await import("./client-DVVHMIOO.js");
|
|
204
204
|
return (file, args, options) => getWorkbenchClient().spawnPty(file, args, options);
|
|
205
205
|
}
|
|
206
206
|
function sessionTempBase() {
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
readWorkspaceBytes,
|
|
6
6
|
statWorkspacePath,
|
|
7
7
|
workspacePathExists
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-M4SD2ESQ.js";
|
|
9
9
|
import {
|
|
10
10
|
reportBootMilestone
|
|
11
11
|
} from "./chunk-GL2DIQEQ.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-W4LZ7R6Z.js";
|
|
17
17
|
import {
|
|
18
18
|
getWorkbenchClient
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-B54XFOXL.js";
|
|
20
20
|
import {
|
|
21
21
|
workbenchEnabled
|
|
22
22
|
} from "./chunk-KMB3BU4S.js";
|
|
@@ -197,8 +197,12 @@ async function runDepsSync(options) {
|
|
|
197
197
|
let plan = null;
|
|
198
198
|
try {
|
|
199
199
|
plan = await resolveDepsSyncPlan(options);
|
|
200
|
-
} catch {
|
|
201
|
-
|
|
200
|
+
} catch (error) {
|
|
201
|
+
const cause = error instanceof Error ? error.message : String(error);
|
|
202
|
+
const message = `Dependency state inspection failed before install could start: ${cause}.`;
|
|
203
|
+
options.onOutput("stderr", `[deps] ${message}
|
|
204
|
+
`);
|
|
205
|
+
return { outcome: "failed", message };
|
|
202
206
|
}
|
|
203
207
|
if (!plan) return { outcome: "skipped" };
|
|
204
208
|
const { onOutput, runCommand, env } = options;
|
|
@@ -449,16 +453,14 @@ var WorkspaceCommandSupervisor = class {
|
|
|
449
453
|
startCommandLaunchRequested = false;
|
|
450
454
|
started = false;
|
|
451
455
|
stopped = false;
|
|
452
|
-
/** Resolved
|
|
453
|
-
*
|
|
454
|
-
*
|
|
455
|
-
*
|
|
456
|
-
*
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
loopReady = new Promise((resolve) => {
|
|
461
|
-
this.resolveLoopReady = resolve;
|
|
456
|
+
/** Resolved once SessionRunner has finished the authoritative task-branch
|
|
457
|
+
* checkout and WIP restore. Those operations can change bun.lock and the
|
|
458
|
+
* schema, so dependency repair and preview startup must not read the tree
|
|
459
|
+
* before this boundary. stop() also resolves it so a failed early boot
|
|
460
|
+
* cannot leave its background task parked forever. */
|
|
461
|
+
resolveWorkspaceReady;
|
|
462
|
+
workspaceReady = new Promise((resolve) => {
|
|
463
|
+
this.resolveWorkspaceReady = resolve;
|
|
462
464
|
});
|
|
463
465
|
constructor(options) {
|
|
464
466
|
this.config = options.config;
|
|
@@ -508,17 +510,20 @@ var WorkspaceCommandSupervisor = class {
|
|
|
508
510
|
);
|
|
509
511
|
}
|
|
510
512
|
}
|
|
511
|
-
/** Release
|
|
512
|
-
*
|
|
513
|
-
|
|
514
|
-
|
|
513
|
+
/** Release dependency reconciliation and preview startup after the runner
|
|
514
|
+
* has made the workspace authoritative. Idempotent by Promise semantics. */
|
|
515
|
+
notifyWorkspaceReady() {
|
|
516
|
+
this.resolveWorkspaceReady();
|
|
517
|
+
}
|
|
518
|
+
/** @deprecated Call notifyWorkspaceReady once checkout and WIP restore
|
|
519
|
+
* finish. Kept for simplified callers while they adopt that boundary. */
|
|
515
520
|
notifyLoopReady() {
|
|
516
|
-
this.
|
|
521
|
+
this.notifyWorkspaceReady();
|
|
517
522
|
}
|
|
518
523
|
stop() {
|
|
519
524
|
if (this.shutdownPromise) return this.shutdownPromise;
|
|
520
525
|
this.stopped = true;
|
|
521
|
-
this.
|
|
526
|
+
this.resolveWorkspaceReady();
|
|
522
527
|
this.abortController.abort();
|
|
523
528
|
const backgroundTasks = [...this.backgroundTasks];
|
|
524
529
|
const termination = this.terminateAllStartCommands();
|
|
@@ -549,7 +554,7 @@ var WorkspaceCommandSupervisor = class {
|
|
|
549
554
|
});
|
|
550
555
|
if (this.stopped) return;
|
|
551
556
|
this.reportBootMilestoneFn("sidecars_ready");
|
|
552
|
-
await this.
|
|
557
|
+
await this.workspaceReady;
|
|
553
558
|
if (this.stopped) return;
|
|
554
559
|
await this.reportTurboCacheFn({
|
|
555
560
|
onOutput: (stream, data) => this.forwardSetupOutput(stream, data)
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
WorkspaceCommandSupervisor,
|
|
8
8
|
startWorkspaceCommandsAfterConnect,
|
|
9
9
|
stopWorkspaceCommands
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-X2MKHJBZ.js";
|
|
11
11
|
import {
|
|
12
12
|
DEFAULT_SONNET_MODEL,
|
|
13
13
|
PtyHarness,
|
|
@@ -27,13 +27,13 @@ import {
|
|
|
27
27
|
resolveTuiKindFromEnv,
|
|
28
28
|
runUsageProbe,
|
|
29
29
|
sampleKeyUsage
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-GAUVITY7.js";
|
|
31
31
|
import "./chunk-SR66HQKB.js";
|
|
32
32
|
import {
|
|
33
33
|
inheritedEnv,
|
|
34
34
|
resolvePtySpawn,
|
|
35
35
|
sessionTempBase
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-QLMNQSJL.js";
|
|
37
37
|
import {
|
|
38
38
|
AgentConnection,
|
|
39
39
|
CodespacePortVisibility,
|
|
@@ -44,12 +44,12 @@ import {
|
|
|
44
44
|
createServiceLogger,
|
|
45
45
|
fetchBootstrap,
|
|
46
46
|
loadConveyorConfig
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-M4SD2ESQ.js";
|
|
48
48
|
import "./chunk-GL2DIQEQ.js";
|
|
49
49
|
import "./chunk-W4LZ7R6Z.js";
|
|
50
50
|
import "./chunk-7P6QZHXZ.js";
|
|
51
51
|
import "./chunk-IA45XHOA.js";
|
|
52
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-B54XFOXL.js";
|
|
53
53
|
import "./chunk-KMB3BU4S.js";
|
|
54
54
|
import "./chunk-6Q6LQBWO.js";
|
|
55
55
|
|
|
@@ -462,7 +462,11 @@ var AdhocSessionRunner = class {
|
|
|
462
462
|
return;
|
|
463
463
|
}
|
|
464
464
|
this.commandSupervisor.start();
|
|
465
|
-
this.commandSupervisor.
|
|
465
|
+
if (this.commandSupervisor.notifyWorkspaceReady) {
|
|
466
|
+
this.commandSupervisor.notifyWorkspaceReady();
|
|
467
|
+
} else {
|
|
468
|
+
this.commandSupervisor.notifyLoopReady?.();
|
|
469
|
+
}
|
|
466
470
|
await this.connection.emitStatus("running");
|
|
467
471
|
this.callbacks.onEvent?.({ type: "adhoc_runner_started", projectId: this.config.projectId });
|
|
468
472
|
this.lifecycle.startIdleTimer();
|
|
@@ -1201,7 +1205,7 @@ function wireSpawnChildren(mode, connection, supervisors, logger7) {
|
|
|
1201
1205
|
|
|
1202
1206
|
// src/cli.ts
|
|
1203
1207
|
if (process.argv[2] === "boot") {
|
|
1204
|
-
const { runBoot } = await import("./boot-
|
|
1208
|
+
const { runBoot } = await import("./boot-CCRZMY2P.js");
|
|
1205
1209
|
process.exit(await runBoot(process.argv.slice(3)));
|
|
1206
1210
|
}
|
|
1207
1211
|
if (isLegacyEntrypointLaunch(process.env)) {
|
|
@@ -1303,7 +1307,7 @@ process.on("unhandledRejection", (reason) => {
|
|
|
1303
1307
|
process.exit(1);
|
|
1304
1308
|
});
|
|
1305
1309
|
if (process.env.CONVEYOR_MODE === "workbench") {
|
|
1306
|
-
const { startWorkbenchServer } = await import("./server-
|
|
1310
|
+
const { startWorkbenchServer } = await import("./server-WM23BC5C.js");
|
|
1307
1311
|
const { oomWatchdogOptionsFromEnv } = await import("./oom-watchdog-PAC5OJJG.js");
|
|
1308
1312
|
const { DEFAULT_WORKBENCH_PORT } = await import("./protocol-QBCYO4GI.js");
|
|
1309
1313
|
const port = Number(process.env.CONVEYOR_WORKBENCH_PORT) || DEFAULT_WORKBENCH_PORT;
|
|
@@ -1454,7 +1458,7 @@ if (!RUNNER_MODES.includes(CONVEYOR_MODE)) {
|
|
|
1454
1458
|
process.exit(1);
|
|
1455
1459
|
}
|
|
1456
1460
|
if (CONVEYOR_MODE === "serving") {
|
|
1457
|
-
const { runServingSession } = await import("./serve-boot-
|
|
1461
|
+
const { runServingSession } = await import("./serve-boot-VJR6J5PL.js");
|
|
1458
1462
|
exitContext.runnerMode = "serving";
|
|
1459
1463
|
exitContext.sessionId = process.env.CONVEYOR_SESSION_ID ?? exitContext.sessionId;
|
|
1460
1464
|
const outcome = await runServingSession({
|
package/dist/index.d.ts
CHANGED
|
@@ -683,11 +683,11 @@ interface SessionRunnerPortDiscovery {
|
|
|
683
683
|
start(): Promise<void>;
|
|
684
684
|
stop(): void;
|
|
685
685
|
}
|
|
686
|
-
/** Duck-typed handle onto the boot supervisor
|
|
687
|
-
*
|
|
688
|
-
* Avoids importing the concrete
|
|
686
|
+
/** Duck-typed handle onto the boot supervisor. The runner releases setup only
|
|
687
|
+
* after its task-branch checkout and WIP restore have made the workspace
|
|
688
|
+
* authoritative. Avoids importing the concrete supervisor here. */
|
|
689
689
|
interface SessionRunnerWorkspaceCommands {
|
|
690
|
-
|
|
690
|
+
notifyWorkspaceReady(): void;
|
|
691
691
|
}
|
|
692
692
|
interface SessionRunnerDependencies {
|
|
693
693
|
portDiscovery?: SessionRunnerPortDiscovery;
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SessionRunner,
|
|
3
3
|
unshallowRepo
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GAUVITY7.js";
|
|
5
5
|
import "./chunk-SR66HQKB.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-QLMNQSJL.js";
|
|
7
7
|
import {
|
|
8
8
|
AgentConnection,
|
|
9
9
|
GIT_TIMEOUT_MS,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
stageAndCommit,
|
|
18
18
|
updateRemoteToken,
|
|
19
19
|
workspacePathExists
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-M4SD2ESQ.js";
|
|
21
21
|
import "./chunk-GL2DIQEQ.js";
|
|
22
22
|
import {
|
|
23
23
|
runAuthTokenCommand,
|
|
@@ -28,7 +28,7 @@ import "./chunk-7P6QZHXZ.js";
|
|
|
28
28
|
import "./chunk-IA45XHOA.js";
|
|
29
29
|
import {
|
|
30
30
|
getWorkbenchClient
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-B54XFOXL.js";
|
|
32
32
|
import {
|
|
33
33
|
workbenchEnabled
|
|
34
34
|
} from "./chunk-KMB3BU4S.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WorkspaceCommandSupervisor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-X2MKHJBZ.js";
|
|
4
4
|
import {
|
|
5
5
|
AgentConnection,
|
|
6
6
|
CodespacePortVisibility,
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
createServiceLogger,
|
|
12
12
|
ensureOnTaskBranch,
|
|
13
13
|
loadConveyorConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-M4SD2ESQ.js";
|
|
15
15
|
import "./chunk-GL2DIQEQ.js";
|
|
16
16
|
import "./chunk-W4LZ7R6Z.js";
|
|
17
17
|
import "./chunk-IA45XHOA.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-B54XFOXL.js";
|
|
19
19
|
import "./chunk-KMB3BU4S.js";
|
|
20
20
|
import "./chunk-6Q6LQBWO.js";
|
|
21
21
|
|
|
@@ -123,7 +123,11 @@ var ServeSessionRunner = class {
|
|
|
123
123
|
);
|
|
124
124
|
}
|
|
125
125
|
this.commandSupervisor.start();
|
|
126
|
-
this.commandSupervisor.
|
|
126
|
+
if (this.commandSupervisor.notifyWorkspaceReady) {
|
|
127
|
+
this.commandSupervisor.notifyWorkspaceReady();
|
|
128
|
+
} else {
|
|
129
|
+
this.commandSupervisor.notifyLoopReady?.();
|
|
130
|
+
}
|
|
127
131
|
await this.connection.emitStatus("idle");
|
|
128
132
|
this.callbacks.onEvent?.({ type: "serve_runner_started", taskId: this.config.taskId });
|
|
129
133
|
await this.waitUntilStopped();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rallycry/conveyor-agent",
|
|
3
|
-
"version": "11.0.
|
|
3
|
+
"version": "11.0.16",
|
|
4
4
|
"description": "Conveyor Agent Runner v10 - PTY harness for the task chat (SDK harness for audit/project-chat). Agent-as-User architecture with BaseService patterns. Works locally too.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"agent",
|
package/runtime/entrypoint.sh
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
#!/bin/sh
|
|
2
2
|
# vnext shim — ALL boot logic lives in `conveyor-agent boot`
|
|
3
3
|
# (packages/conveyor-agent/src/boot/). Keep this file dumb: env floor, exec.
|
|
4
|
-
# The
|
|
5
|
-
#
|
|
6
|
-
# only the runner spawn / workbench daemon on the result (self-update.ts), so
|
|
7
|
-
# each container saves a full node+npm process launch on the boot critical path.
|
|
4
|
+
# The runtime self-update is deliberately gone: `conveyor-agent boot` runs the
|
|
5
|
+
# image-baked agent. New versions arrive through the image-refresh path.
|
|
8
6
|
set -eu
|
|
9
7
|
export HOME=/home/conveyor
|
|
10
8
|
export PATH="/home/conveyor/.bun/bin:${PATH}"
|