@rallycry/conveyor-agent 10.13.65 → 10.13.67
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-7OPX55AO.js → boot-UUPTBQ6R.js} +7 -8
- package/dist/{chunk-JIGG755T.js → chunk-6Q6LQBWO.js} +0 -1
- package/dist/{chunk-ULS4QPRE.js → chunk-6W6UZ4SJ.js} +0 -1
- package/dist/{chunk-AXA55U4Z.js → chunk-E2SHIH6Y.js} +3 -4
- package/dist/{chunk-QOJTJCYZ.js → chunk-EXQ6AHOY.js} +2 -3
- package/dist/{chunk-5OQQSDVT.js → chunk-IA45XHOA.js} +0 -1
- package/dist/{chunk-QZN6HVUY.js → chunk-KG4ORL3Y.js} +1 -2
- package/dist/{chunk-4VUQ2NPF.js → chunk-KMB3BU4S.js} +0 -1
- package/dist/{chunk-NAK6FY5U.js → chunk-LE6ZUDZT.js} +37 -6
- package/dist/{chunk-6GS5ADIY.js → chunk-R3FDJQL6.js} +0 -1
- package/dist/{chunk-BAQ2OAKB.js → chunk-XPZPR6NS.js} +591 -216
- package/dist/cli.js +35 -43
- package/dist/{client-LRVVHTNG.js → client-IG6C5F2G.js} +3 -4
- package/dist/heartbeat-worker.js +1 -2
- package/dist/index.d.ts +95 -13
- package/dist/index.js +7 -8
- package/dist/{mode-6RL3SVMV.js → mode-ZJSOSLGU.js} +1 -2
- package/dist/{oom-watchdog-U7JERHA2.js → oom-watchdog-PAC5OJJG.js} +1 -2
- package/dist/{protocol-QLVS5W6O.js → protocol-QBCYO4GI.js} +1 -2
- package/dist/server-US2DDQSW.js +9 -0
- package/package.json +2 -2
- package/dist/boot-7OPX55AO.js.map +0 -1
- package/dist/chunk-4VUQ2NPF.js.map +0 -1
- package/dist/chunk-5OQQSDVT.js.map +0 -1
- package/dist/chunk-6GS5ADIY.js.map +0 -1
- package/dist/chunk-AXA55U4Z.js.map +0 -1
- package/dist/chunk-BAQ2OAKB.js.map +0 -1
- package/dist/chunk-JIGG755T.js.map +0 -1
- package/dist/chunk-NAK6FY5U.js.map +0 -1
- package/dist/chunk-QOJTJCYZ.js.map +0 -1
- package/dist/chunk-QZN6HVUY.js.map +0 -1
- package/dist/chunk-ULS4QPRE.js.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/client-LRVVHTNG.js.map +0 -1
- package/dist/heartbeat-worker.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mode-6RL3SVMV.js.map +0 -1
- package/dist/oom-watchdog-U7JERHA2.js.map +0 -1
- package/dist/protocol-QLVS5W6O.js.map +0 -1
- package/dist/server-ZACB5T5S.js +0 -10
- package/dist/server-ZACB5T5S.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
TOMBSTONE_MESSAGE,
|
|
4
4
|
isLegacyEntrypointLaunch
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-R3FDJQL6.js";
|
|
6
6
|
import {
|
|
7
7
|
AgentConnection,
|
|
8
8
|
CodespacePortVisibility,
|
|
@@ -15,8 +15,10 @@ import {
|
|
|
15
15
|
applyBootstrapToEnv,
|
|
16
16
|
awaitGitReady,
|
|
17
17
|
buildProjectTools,
|
|
18
|
+
buildRateLimitEvents,
|
|
18
19
|
buildSessionPreviewPorts,
|
|
19
20
|
buildSynthesizedCredentials,
|
|
21
|
+
buildUnmeasurableEvent,
|
|
20
22
|
claudeJsonPath,
|
|
21
23
|
createServiceLogger,
|
|
22
24
|
fetchBootstrap,
|
|
@@ -33,17 +35,17 @@ import {
|
|
|
33
35
|
sampleKeyUsage,
|
|
34
36
|
statWorkspacePath,
|
|
35
37
|
workspacePathExists
|
|
36
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-XPZPR6NS.js";
|
|
37
39
|
import {
|
|
38
40
|
reportBootMilestone
|
|
39
|
-
} from "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
+
} from "./chunk-KG4ORL3Y.js";
|
|
42
|
+
import "./chunk-IA45XHOA.js";
|
|
41
43
|
import {
|
|
42
44
|
getWorkbenchClient
|
|
43
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-EXQ6AHOY.js";
|
|
44
46
|
import {
|
|
45
47
|
workbenchEnabled
|
|
46
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-KMB3BU4S.js";
|
|
47
49
|
import {
|
|
48
50
|
inheritedEnv,
|
|
49
51
|
resolvePtySpawn,
|
|
@@ -51,8 +53,8 @@ import {
|
|
|
51
53
|
runStartCommand,
|
|
52
54
|
sessionTempBase,
|
|
53
55
|
terminateProcessGroup
|
|
54
|
-
} from "./chunk-
|
|
55
|
-
import "./chunk-
|
|
56
|
+
} from "./chunk-LE6ZUDZT.js";
|
|
57
|
+
import "./chunk-6Q6LQBWO.js";
|
|
56
58
|
|
|
57
59
|
// src/cli.ts
|
|
58
60
|
import { readFileSync } from "fs";
|
|
@@ -572,6 +574,9 @@ var WorkspaceCommandSupervisor = class {
|
|
|
572
574
|
this.connection.sendEvent({
|
|
573
575
|
type: "setup_complete",
|
|
574
576
|
startCommandRunning,
|
|
577
|
+
// Reported separately so the server can tell "nothing to run" apart from
|
|
578
|
+
// "the dev server failed to launch" — both report startCommandRunning:false.
|
|
579
|
+
startCommandConfigured: Boolean(this.config?.startCommand),
|
|
575
580
|
...previewPorts.length > 0 ? { previewPorts } : {}
|
|
576
581
|
});
|
|
577
582
|
}
|
|
@@ -904,16 +909,14 @@ var ProjectSessionRunner = class {
|
|
|
904
909
|
* the task runner). Best-effort — never throws, no-op without an OAuth token. */
|
|
905
910
|
async sampleAndReportKeyUsage() {
|
|
906
911
|
if (this.stopped) return;
|
|
907
|
-
const
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
gauges: sample.gauges
|
|
916
|
-
});
|
|
912
|
+
const codingAgentKeyId = process.env.CONVEYOR_CODING_AGENT_KEY_ID;
|
|
913
|
+
const { samples, unmeasurable } = await sampleKeyUsage(process.env.CLAUDE_CODE_OAUTH_TOKEN);
|
|
914
|
+
if (unmeasurable) {
|
|
915
|
+
this.connection.sendEvent(buildUnmeasurableEvent(unmeasurable.reason, codingAgentKeyId));
|
|
916
|
+
return;
|
|
917
|
+
}
|
|
918
|
+
for (const event of buildRateLimitEvents(samples, codingAgentKeyId)) {
|
|
919
|
+
this.connection.sendEvent(event);
|
|
917
920
|
}
|
|
918
921
|
}
|
|
919
922
|
shutdown() {
|
|
@@ -1230,32 +1233,22 @@ var AdhocSessionRunner = class {
|
|
|
1230
1233
|
}
|
|
1231
1234
|
const probed = await probeKeysUsage(keys);
|
|
1232
1235
|
for (const { codingAgentKeyId, samples } of probed) {
|
|
1233
|
-
for (const
|
|
1234
|
-
this.connection.sendEvent(
|
|
1235
|
-
type: "rate_limit_update",
|
|
1236
|
-
rateLimitType: sample.rateLimitType,
|
|
1237
|
-
utilization: sample.utilization,
|
|
1238
|
-
status: sample.status,
|
|
1239
|
-
resetsAt: sample.resetsAt ?? void 0,
|
|
1240
|
-
gauges: sample.gauges,
|
|
1241
|
-
codingAgentKeyId
|
|
1242
|
-
});
|
|
1236
|
+
for (const event of buildRateLimitEvents(samples, codingAgentKeyId)) {
|
|
1237
|
+
this.connection.sendEvent(event);
|
|
1243
1238
|
}
|
|
1244
1239
|
}
|
|
1245
1240
|
}
|
|
1246
1241
|
/** Single-key fallback: sample only the key this pod booted under. */
|
|
1247
1242
|
async sampleAndReportOwnKey() {
|
|
1248
1243
|
if (this.stopped) return;
|
|
1249
|
-
const
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
gauges: sample.gauges
|
|
1258
|
-
});
|
|
1244
|
+
const codingAgentKeyId = process.env.CONVEYOR_CODING_AGENT_KEY_ID;
|
|
1245
|
+
const { samples, unmeasurable } = await sampleKeyUsage(process.env.CLAUDE_CODE_OAUTH_TOKEN);
|
|
1246
|
+
if (unmeasurable) {
|
|
1247
|
+
this.connection.sendEvent(buildUnmeasurableEvent(unmeasurable.reason, codingAgentKeyId));
|
|
1248
|
+
return;
|
|
1249
|
+
}
|
|
1250
|
+
for (const event of buildRateLimitEvents(samples, codingAgentKeyId)) {
|
|
1251
|
+
this.connection.sendEvent(event);
|
|
1259
1252
|
}
|
|
1260
1253
|
}
|
|
1261
1254
|
async shutdown() {
|
|
@@ -1722,7 +1715,7 @@ function hostsSpawnedChildren(mode) {
|
|
|
1722
1715
|
|
|
1723
1716
|
// src/cli.ts
|
|
1724
1717
|
if (process.argv[2] === "boot") {
|
|
1725
|
-
const { runBoot } = await import("./boot-
|
|
1718
|
+
const { runBoot } = await import("./boot-UUPTBQ6R.js");
|
|
1726
1719
|
process.exit(await runBoot(process.argv.slice(3)));
|
|
1727
1720
|
}
|
|
1728
1721
|
if (isLegacyEntrypointLaunch(process.env)) {
|
|
@@ -1824,9 +1817,9 @@ process.on("unhandledRejection", (reason) => {
|
|
|
1824
1817
|
process.exit(1);
|
|
1825
1818
|
});
|
|
1826
1819
|
if (process.env.CONVEYOR_MODE === "workbench") {
|
|
1827
|
-
const { startWorkbenchServer } = await import("./server-
|
|
1828
|
-
const { oomWatchdogOptionsFromEnv } = await import("./oom-watchdog-
|
|
1829
|
-
const { DEFAULT_WORKBENCH_PORT } = await import("./protocol-
|
|
1820
|
+
const { startWorkbenchServer } = await import("./server-US2DDQSW.js");
|
|
1821
|
+
const { oomWatchdogOptionsFromEnv } = await import("./oom-watchdog-PAC5OJJG.js");
|
|
1822
|
+
const { DEFAULT_WORKBENCH_PORT } = await import("./protocol-QBCYO4GI.js");
|
|
1830
1823
|
const port = Number(process.env.CONVEYOR_WORKBENCH_PORT) || DEFAULT_WORKBENCH_PORT;
|
|
1831
1824
|
const token = process.env.CONVEYOR_WORKBENCH_TOKEN ?? process.env.POD_BOOTSTRAP_TOKEN ?? "";
|
|
1832
1825
|
if (!token) {
|
|
@@ -2155,4 +2148,3 @@ runner.run().then(async () => {
|
|
|
2155
2148
|
logAgentExit("error", { exitCode: 1, finalState: runner.finalState ?? void 0 });
|
|
2156
2149
|
process.exit(1);
|
|
2157
2150
|
});
|
|
2158
|
-
//# sourceMappingURL=cli.js.map
|
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
WorkbenchError,
|
|
5
5
|
getWorkbenchClient,
|
|
6
6
|
resetWorkbenchClient
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-EXQ6AHOY.js";
|
|
8
|
+
import "./chunk-KMB3BU4S.js";
|
|
9
|
+
import "./chunk-6Q6LQBWO.js";
|
|
10
10
|
export {
|
|
11
11
|
RemoteProcessHandle,
|
|
12
12
|
WorkbenchClient,
|
|
@@ -14,4 +14,3 @@ export {
|
|
|
14
14
|
getWorkbenchClient,
|
|
15
15
|
resetWorkbenchClient
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=client-LRVVHTNG.js.map
|
package/dist/heartbeat-worker.js
CHANGED
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
heartbeatStatusFor,
|
|
4
4
|
lagFromBuffer,
|
|
5
5
|
statusFromBuffer
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-IA45XHOA.js";
|
|
7
7
|
|
|
8
8
|
// src/connection/heartbeat-worker.ts
|
|
9
9
|
import { parentPort, workerData } from "worker_threads";
|
|
@@ -42,4 +42,3 @@ function beat() {
|
|
|
42
42
|
);
|
|
43
43
|
}
|
|
44
44
|
setInterval(beat, data.intervalMs);
|
|
45
|
-
//# sourceMappingURL=heartbeat-worker.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ declare class AgentConnection {
|
|
|
94
94
|
private apiKeyUpdateCallback;
|
|
95
95
|
private pullBranchCallback;
|
|
96
96
|
private runStartCommandCallback;
|
|
97
|
+
private earlyRunStartCommand;
|
|
97
98
|
private earlyPullBranches;
|
|
98
99
|
private spawnReviewCallback;
|
|
99
100
|
private earlySpawnReviews;
|
|
@@ -174,6 +175,21 @@ declare class AgentConnection {
|
|
|
174
175
|
* it; the review session is identified separately.
|
|
175
176
|
*/
|
|
176
177
|
reportReviewSpawnFailure(reviewSessionId: string, error?: string): void;
|
|
178
|
+
/**
|
|
179
|
+
* Report that this pod's git credential is dead and refreshing did not fix
|
|
180
|
+
* it (fire-and-forget).
|
|
181
|
+
*
|
|
182
|
+
* Purely diagnostic. Until this existed a pod could lose git entirely and
|
|
183
|
+
* leave no server-side trace at all — the refresh RPC succeeded every time,
|
|
184
|
+
* so the failure was visible only in pod stderr, which is why it took two
|
|
185
|
+
* investigations to attribute. `tokenShape` describes the served credential
|
|
186
|
+
* (length, prefix class, mtime) and NEVER carries its value.
|
|
187
|
+
*/
|
|
188
|
+
reportCredentialFailure(details: {
|
|
189
|
+
error?: string;
|
|
190
|
+
tokenShape?: string;
|
|
191
|
+
healed?: boolean;
|
|
192
|
+
}): void;
|
|
177
193
|
/**
|
|
178
194
|
* Ask the server to destroy and recreate this pod (fire-and-forget). The
|
|
179
195
|
* agent calls this only when it has proven it cannot recover in place — the
|
|
@@ -193,6 +209,9 @@ declare class AgentConnection {
|
|
|
193
209
|
* sessionId is OUR (builder) session — the task-identity guard runs on it.
|
|
194
210
|
*/
|
|
195
211
|
reportSessionSpawnFailure(spawnedSessionId: string, error?: string): void;
|
|
212
|
+
/** Register the restart handler, draining a `session:runStartCommand` that
|
|
213
|
+
* arrived before the supervisor was ready. Collapsed to one drain: two
|
|
214
|
+
* clicks during boot should produce one restart, not two competing ones. */
|
|
196
215
|
onRunStartCommand(callback: () => void): void;
|
|
197
216
|
/**
|
|
198
217
|
* Forward a raw chunk of terminal output to the S2 relay (fire-and-forget).
|
|
@@ -332,6 +351,20 @@ declare class AgentConnection {
|
|
|
332
351
|
* the same pod token is the designed refresh mechanism.
|
|
333
352
|
*/
|
|
334
353
|
private refreshFromV3Bootstrap;
|
|
354
|
+
/**
|
|
355
|
+
* Write the bundle's GitHub token to the shared credential files — unless the
|
|
356
|
+
* bundle belongs to another session.
|
|
357
|
+
*
|
|
358
|
+
* The bootstrap GET is keyed by the POD, so on a pod also hosting a same-pod
|
|
359
|
+
* review it can resolve to the reader session, whose token is read-only.
|
|
360
|
+
* Writing that over the shared files silently downgrades the builder's push
|
|
361
|
+
* credential. Our own taskToken carries the same claims, so it is what we
|
|
362
|
+
* compare against.
|
|
363
|
+
*
|
|
364
|
+
* The legitimate case this path exists for — our own session's bundle
|
|
365
|
+
* refreshing the token when the RPC is failing — is unaffected.
|
|
366
|
+
*/
|
|
367
|
+
private applyBundleCredentialFiles;
|
|
335
368
|
/**
|
|
336
369
|
* Poll the bootstrap bundle once (maxWaitMs 0), retrying only on a transient
|
|
337
370
|
* 429 (standby-pool pods share one Cloud NAT IP against podBootstrapLimiter)
|
|
@@ -694,8 +727,8 @@ declare class SessionRunner {
|
|
|
694
727
|
private periodicGitFlush;
|
|
695
728
|
/** Sample the running Claude subscription key's rate-limit utilization from
|
|
696
729
|
* the Claude CLI `/usage` command and report it as `rate_limit_update` events.
|
|
697
|
-
* The API (`persistRateLimitSnapshot`) attributes them to the key
|
|
698
|
-
*
|
|
730
|
+
* The API (`persistRateLimitSnapshot`) attributes them to the key named on the
|
|
731
|
+
* event, keeping User Settings + the PtY-tab usage widget fresh and
|
|
699
732
|
* `selectBestKey` rotation honest. Best-effort — never throws, no-op when the
|
|
700
733
|
* pod has no OAuth token (e.g. API-key projects). */
|
|
701
734
|
private sampleAndReportKeyUsage;
|
|
@@ -720,8 +753,20 @@ declare class SessionRunner {
|
|
|
720
753
|
private buildFullContext;
|
|
721
754
|
private createQueryBridge;
|
|
722
755
|
private wireConnectionCallbacks;
|
|
723
|
-
/**
|
|
756
|
+
/**
|
|
757
|
+
* Proactively refresh the GitHub token before the 1-hour expiry — and PROVE
|
|
758
|
+
* the result works.
|
|
759
|
+
*
|
|
760
|
+
* The old version logged "Proactively refreshed GitHub token" whenever the
|
|
761
|
+
* credential store write succeeded. It never inspected the token-file write
|
|
762
|
+
* and never asked git anything, so a pod whose token file was stale printed
|
|
763
|
+
* that line every 45 minutes while every push 401'd. Three of those lines,
|
|
764
|
+
* perfectly spaced, are what made the 2026-08-19 occurrence unreadable. A
|
|
765
|
+
* success line here now means the credential authenticated against origin.
|
|
766
|
+
*/
|
|
724
767
|
private refreshGithubToken;
|
|
768
|
+
/** Mint a GitHub token over the RPC. `forceFresh` bypasses the API's cache. */
|
|
769
|
+
private mintGithubToken;
|
|
725
770
|
/** Re-fetch task context to pick up a newly created branch and check it out. */
|
|
726
771
|
private refreshBranchForBuilding;
|
|
727
772
|
/**
|
|
@@ -779,16 +824,44 @@ interface AgentRunnerCallbacks {
|
|
|
779
824
|
interface GithubTokenFileSync {
|
|
780
825
|
tokenFile: boolean;
|
|
781
826
|
ghHosts: boolean;
|
|
827
|
+
/**
|
|
828
|
+
* Why a copy is not current, when a write actually threw.
|
|
829
|
+
*
|
|
830
|
+
* A `false` flag alone is ambiguous — it also means "deliberately skipped"
|
|
831
|
+
* (a `gh` login we do not own, a vitest run without a temp-dir override).
|
|
832
|
+
* Callers that report on a refresh need to tell a skip from a failure, and
|
|
833
|
+
* until this existed the thrown error was discarded here and the caller had
|
|
834
|
+
* nothing to print but the flag.
|
|
835
|
+
*/
|
|
836
|
+
errors?: {
|
|
837
|
+
tokenFile?: string;
|
|
838
|
+
ghHosts?: string;
|
|
839
|
+
};
|
|
782
840
|
}
|
|
783
841
|
|
|
784
|
-
/**
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
842
|
+
/**
|
|
843
|
+
* Writing the pod's git credential, and proving it works.
|
|
844
|
+
*
|
|
845
|
+
* Split out of `git-utils.ts`: these four functions are one concern — what a
|
|
846
|
+
* token refresh WRITES (`updateRemoteCredential` / `updateRemoteToken`) and
|
|
847
|
+
* whether the result can actually authenticate (`verifyGitCredential`) — and
|
|
848
|
+
* `refresh-verify-heal.ts` is built entirely on them.
|
|
849
|
+
*
|
|
850
|
+
* Every git call here goes through the shared `git()` runner (`git-run.ts`),
|
|
851
|
+
* which carries the async-only / always-a-timeout / args-as-arrays rules.
|
|
852
|
+
*/
|
|
853
|
+
|
|
854
|
+
/**
|
|
855
|
+
* How a caller mints a fresh GitHub token.
|
|
856
|
+
*
|
|
857
|
+
* `forceFresh` skips the API's installation-token cache. It matters only on the
|
|
858
|
+
* retry after a rejection: the cache tracks expiry, never validity, so an
|
|
859
|
+
* ordinary re-mint hands back the very token GitHub just refused. Optional so
|
|
860
|
+
* every existing zero-argument closure still satisfies this type.
|
|
861
|
+
*/
|
|
862
|
+
type RefreshTokenFn = (opts?: {
|
|
863
|
+
forceFresh?: boolean;
|
|
864
|
+
}) => Promise<string | undefined>;
|
|
792
865
|
/** What a credential refresh actually managed to write. */
|
|
793
866
|
interface GitCredentialUpdate {
|
|
794
867
|
/** Both the credential file and the helper config are current. */
|
|
@@ -807,13 +880,22 @@ interface TokenRefreshResult {
|
|
|
807
880
|
}
|
|
808
881
|
/** Compatibility alias for the existing refreshGithubToken RPC. */
|
|
809
882
|
declare function updateRemoteToken(cwd: string, token: string): Promise<TokenRefreshResult>;
|
|
883
|
+
|
|
884
|
+
/** Returns true if the working tree has uncommitted changes (staged or unstaged). */
|
|
885
|
+
declare function hasUncommittedChanges(cwd: string): Promise<boolean>;
|
|
886
|
+
/** Returns the current branch name, or null if on detached HEAD. */
|
|
887
|
+
declare function getCurrentBranch(cwd: string): Promise<string | null>;
|
|
888
|
+
/** Returns true if there are committed changes that haven't been pushed to origin. */
|
|
889
|
+
declare function hasUnpushedCommits(cwd: string): Promise<boolean>;
|
|
890
|
+
/** Stage all changes and create a commit. Returns the commit hash if successful. */
|
|
891
|
+
declare function stageAndCommit(cwd: string, message: string): Promise<string | null>;
|
|
810
892
|
/** Best-effort flush of pending work: pushes any real (intentional) commits to
|
|
811
893
|
* the task branch, and captures uncommitted changes as a WIP snapshot on the
|
|
812
894
|
* `conveyor-wip/<branch>` ref — never as commits on the branch itself. When
|
|
813
895
|
* the tree is clean, a previously pushed WIP ref is deleted. Never throws. */
|
|
814
896
|
declare function flushPendingChanges(cwd: string, opts?: {
|
|
815
897
|
wipMessage?: string;
|
|
816
|
-
refreshToken?:
|
|
898
|
+
refreshToken?: RefreshTokenFn;
|
|
817
899
|
}): Promise<{
|
|
818
900
|
committed: boolean;
|
|
819
901
|
pushed: boolean;
|
|
@@ -821,7 +903,7 @@ declare function flushPendingChanges(cwd: string, opts?: {
|
|
|
821
903
|
}>;
|
|
822
904
|
/** Push current branch to origin. Proactively refreshes the GitHub token before
|
|
823
905
|
* attempting the push. On auth failure, refreshes again and retries. */
|
|
824
|
-
declare function pushToOrigin(cwd: string, refreshToken?:
|
|
906
|
+
declare function pushToOrigin(cwd: string, refreshToken?: RefreshTokenFn, skipVerify?: boolean): Promise<boolean>;
|
|
825
907
|
|
|
826
908
|
declare function ensureWorktree(projectDir: string, taskId: string, branch?: string): Promise<string>;
|
|
827
909
|
/**
|
package/dist/index.js
CHANGED
|
@@ -13,21 +13,21 @@ import {
|
|
|
13
13
|
unshallowRepo,
|
|
14
14
|
updateRemoteToken,
|
|
15
15
|
workspacePathExists
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-XPZPR6NS.js";
|
|
17
|
+
import "./chunk-KG4ORL3Y.js";
|
|
18
|
+
import "./chunk-IA45XHOA.js";
|
|
19
19
|
import {
|
|
20
20
|
getWorkbenchClient
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-EXQ6AHOY.js";
|
|
22
22
|
import {
|
|
23
23
|
workbenchEnabled
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-KMB3BU4S.js";
|
|
25
25
|
import {
|
|
26
26
|
runAuthTokenCommand,
|
|
27
27
|
runSetupCommand,
|
|
28
28
|
runStartCommand
|
|
29
|
-
} from "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-LE6ZUDZT.js";
|
|
30
|
+
import "./chunk-6Q6LQBWO.js";
|
|
31
31
|
|
|
32
32
|
// src/runner/worktree.ts
|
|
33
33
|
import { execFile } from "child_process";
|
|
@@ -114,4 +114,3 @@ export {
|
|
|
114
114
|
unshallowRepo,
|
|
115
115
|
updateRemoteToken
|
|
116
116
|
};
|
|
117
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -3,11 +3,10 @@ import {
|
|
|
3
3
|
workbenchEnabled,
|
|
4
4
|
workbenchPort,
|
|
5
5
|
workbenchToken
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-KMB3BU4S.js";
|
|
7
7
|
export {
|
|
8
8
|
sharedDir,
|
|
9
9
|
workbenchEnabled,
|
|
10
10
|
workbenchPort,
|
|
11
11
|
workbenchToken
|
|
12
12
|
};
|
|
13
|
-
//# sourceMappingURL=mode-6RL3SVMV.js.map
|
|
@@ -2,10 +2,9 @@ import {
|
|
|
2
2
|
biggestForeignProcessGroup,
|
|
3
3
|
oomWatchdogOptionsFromEnv,
|
|
4
4
|
startOomWatchdog
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6W6UZ4SJ.js";
|
|
6
6
|
export {
|
|
7
7
|
biggestForeignProcessGroup,
|
|
8
8
|
oomWatchdogOptionsFromEnv,
|
|
9
9
|
startOomWatchdog
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=oom-watchdog-U7JERHA2.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
parseLine,
|
|
5
5
|
timingSafeTokenEqual,
|
|
6
6
|
writeFrame
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-6Q6LQBWO.js";
|
|
8
8
|
export {
|
|
9
9
|
DEFAULT_WORKBENCH_PORT,
|
|
10
10
|
FrameReader,
|
|
@@ -12,4 +12,3 @@ export {
|
|
|
12
12
|
timingSafeTokenEqual,
|
|
13
13
|
writeFrame
|
|
14
14
|
};
|
|
15
|
-
//# sourceMappingURL=protocol-QLVS5W6O.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rallycry/conveyor-agent",
|
|
3
|
-
"version": "10.13.
|
|
3
|
+
"version": "10.13.67",
|
|
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",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
41
41
|
"node-pty": "^1.0.0",
|
|
42
42
|
"socket.io-client": "^4.8.3",
|
|
43
|
-
"tar": "^7.5.
|
|
43
|
+
"tar": "^7.5.21",
|
|
44
44
|
"zod": "^4.0.0"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|