@rallycry/conveyor-agent 11.0.8 → 11.0.10
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/{chunk-43XITDZP.js → chunk-DDECZOAT.js} +1 -1
- package/dist/{chunk-SKTCDL4K.js → chunk-PGNV3DGV.js} +752 -375
- package/dist/{chunk-APP6Y2D7.js → chunk-YMZ6Q55T.js} +16 -0
- package/dist/cli.js +4 -4
- package/dist/index.d.ts +20 -0
- package/dist/index.js +2 -2
- package/dist/{serve-boot-ESZKFN5M.js → serve-boot-FJSZE737.js} +2 -2
- package/package.json +1 -1
- package/skills/conveyor-build/SKILL.md +4 -1
- package/skills/conveyor-plan/SKILL.md +5 -2
|
@@ -838,6 +838,22 @@ var AgentConnection = class _AgentConnection {
|
|
|
838
838
|
}).catch(() => {
|
|
839
839
|
});
|
|
840
840
|
}
|
|
841
|
+
/**
|
|
842
|
+
* Fire-and-forget: every Claude API retry for the turn failed, so hand the
|
|
843
|
+
* card back. The server returns a PR-less InProgress card to Open, posts the
|
|
844
|
+
* cause, notifies stakeholders and sleeps this workspace. Best-effort — an
|
|
845
|
+
* old server rejects the unknown method harmlessly and today's behaviour
|
|
846
|
+
* (chat line + idle agent) remains. `detail` is the last API error text.
|
|
847
|
+
*/
|
|
848
|
+
reportApiOutage(detail, attempts) {
|
|
849
|
+
if (!this.socket) return;
|
|
850
|
+
void this.call("reportApiOutage", {
|
|
851
|
+
sessionId: this.config.sessionId,
|
|
852
|
+
detail: detail.slice(0, 2e3),
|
|
853
|
+
attempts
|
|
854
|
+
}).catch(() => {
|
|
855
|
+
});
|
|
856
|
+
}
|
|
841
857
|
onSpawnTui(callback) {
|
|
842
858
|
this.spawnTuiCallback = callback;
|
|
843
859
|
for (const data of this.earlySpawnTuis) callback(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-DDECZOAT.js";
|
|
11
11
|
import {
|
|
12
12
|
DEFAULT_SONNET_MODEL,
|
|
13
13
|
PtyHarness,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
resolveTuiKindFromEnv,
|
|
28
28
|
runUsageProbe,
|
|
29
29
|
sampleKeyUsage
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-PGNV3DGV.js";
|
|
31
31
|
import "./chunk-SR66HQKB.js";
|
|
32
32
|
import {
|
|
33
33
|
inheritedEnv,
|
|
@@ -44,7 +44,7 @@ import {
|
|
|
44
44
|
createServiceLogger,
|
|
45
45
|
fetchBootstrap,
|
|
46
46
|
loadConveyorConfig
|
|
47
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-YMZ6Q55T.js";
|
|
48
48
|
import "./chunk-GL2DIQEQ.js";
|
|
49
49
|
import "./chunk-W4LZ7R6Z.js";
|
|
50
50
|
import "./chunk-7P6QZHXZ.js";
|
|
@@ -1454,7 +1454,7 @@ if (!RUNNER_MODES.includes(CONVEYOR_MODE)) {
|
|
|
1454
1454
|
process.exit(1);
|
|
1455
1455
|
}
|
|
1456
1456
|
if (CONVEYOR_MODE === "serving") {
|
|
1457
|
-
const { runServingSession } = await import("./serve-boot-
|
|
1457
|
+
const { runServingSession } = await import("./serve-boot-FJSZE737.js");
|
|
1458
1458
|
exitContext.runnerMode = "serving";
|
|
1459
1459
|
exitContext.sessionId = process.env.CONVEYOR_SESSION_ID ?? exitContext.sessionId;
|
|
1460
1460
|
const outcome = await runServingSession({
|
package/dist/index.d.ts
CHANGED
|
@@ -242,6 +242,14 @@ declare class AgentConnection {
|
|
|
242
242
|
* today's behavior (a failed turn with a chat warning).
|
|
243
243
|
*/
|
|
244
244
|
requestWorkspaceRecycle(reason: string): void;
|
|
245
|
+
/**
|
|
246
|
+
* Fire-and-forget: every Claude API retry for the turn failed, so hand the
|
|
247
|
+
* card back. The server returns a PR-less InProgress card to Open, posts the
|
|
248
|
+
* cause, notifies stakeholders and sleeps this workspace. Best-effort — an
|
|
249
|
+
* old server rejects the unknown method harmlessly and today's behaviour
|
|
250
|
+
* (chat line + idle agent) remains. `detail` is the last API error text.
|
|
251
|
+
*/
|
|
252
|
+
reportApiOutage(detail: string, attempts: number): void;
|
|
245
253
|
onSpawnTui(callback: (data: SpawnTuiData) => void): void;
|
|
246
254
|
/** Register the on-demand usage-refresh handler; drains an early-buffered
|
|
247
255
|
* `session:probeUsage` that arrived before the runner was ready. */
|
|
@@ -962,6 +970,18 @@ declare class SessionRunner {
|
|
|
962
970
|
private canInjectIntoRunningTurn;
|
|
963
971
|
/** Run queryBridge.execute, swallowing abort errors from stop/softStop. */
|
|
964
972
|
private executeQuery;
|
|
973
|
+
/**
|
|
974
|
+
* The turn ended with every Claude API retry exhausted (the CLI's own
|
|
975
|
+
* retries gave up, then `runWithRetry`'s fresh-session backoff did too).
|
|
976
|
+
* Push WIP first — the server sleeps this pod in response, so the flush
|
|
977
|
+
* must not race the teardown — then hand the card back. The core loop
|
|
978
|
+
* then falls into its normal idle wait; the server-driven sleep is what
|
|
979
|
+
* ends the pod, and nothing here exits the process or re-prompts.
|
|
980
|
+
*
|
|
981
|
+
* NOT a stuck nudge: this keys on the CLI's own error record, never on
|
|
982
|
+
* silence or idleness (see `.claude/rules/agent-runner.md`).
|
|
983
|
+
*/
|
|
984
|
+
private handleApiOutageExhausted;
|
|
965
985
|
/**
|
|
966
986
|
* A human typed into the parked, idle Connected-TUI (keep-alive PTY). Wake the
|
|
967
987
|
* core loop with a sentinel so it drains a passive turn. No-op once stopped.
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SessionRunner,
|
|
3
3
|
unshallowRepo
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-PGNV3DGV.js";
|
|
5
5
|
import "./chunk-SR66HQKB.js";
|
|
6
6
|
import "./chunk-JG3VMWRQ.js";
|
|
7
7
|
import {
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
stageAndCommit,
|
|
18
18
|
updateRemoteToken,
|
|
19
19
|
workspacePathExists
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-YMZ6Q55T.js";
|
|
21
21
|
import "./chunk-GL2DIQEQ.js";
|
|
22
22
|
import {
|
|
23
23
|
runAuthTokenCommand,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
WorkspaceCommandSupervisor
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-DDECZOAT.js";
|
|
4
4
|
import {
|
|
5
5
|
AgentConnection,
|
|
6
6
|
CodespacePortVisibility,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
createServiceLogger,
|
|
12
12
|
ensureOnTaskBranch,
|
|
13
13
|
loadConveyorConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-YMZ6Q55T.js";
|
|
15
15
|
import "./chunk-GL2DIQEQ.js";
|
|
16
16
|
import "./chunk-W4LZ7R6Z.js";
|
|
17
17
|
import "./chunk-IA45XHOA.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rallycry/conveyor-agent",
|
|
3
|
-
"version": "11.0.
|
|
3
|
+
"version": "11.0.10",
|
|
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",
|
|
@@ -122,7 +122,10 @@ parked and the chat marker IS the claim.
|
|
|
122
122
|
|
|
123
123
|
Post to chat at real milestones only — claim, a blocking discovery, gates
|
|
124
124
|
green, PR — never play-by-play. Your turn output is not visible to the team;
|
|
125
|
-
chat is.
|
|
125
|
+
chat is. Post a blocking discovery with `milestone: "blocked"` only if you are
|
|
126
|
+
actually parked and cannot continue until a human acts — it is a quiet parking
|
|
127
|
+
note that pages nobody. When you need an answer, ask with AskUserQuestion; that
|
|
128
|
+
is what pages a person.
|
|
126
129
|
|
|
127
130
|
**Saving the plan and card fields:** `mcp__conveyor__update_task` handles
|
|
128
131
|
title, description, plan, status, and `githubBranch` on both surfaces. Story
|
|
@@ -134,8 +134,11 @@ touching Conveyor, unless they asked you to just ship it.
|
|
|
134
134
|
> create a NEW card, which is the local/MCP shape; `mcp__conveyor__create_task`
|
|
135
135
|
> does not exist in a pod. In a pod, the card exists and you are on it: save
|
|
136
136
|
> the plan with `mcp__conveyor__update_task` (`plan`, and `description` if it
|
|
137
|
-
> needs sharpening), post the same recommendation message to chat
|
|
138
|
-
> a pod does not promote its own card to
|
|
137
|
+
> needs sharpening), post the same recommendation message to chat with
|
|
138
|
+
> `milestone: "plan_ready"`, and stop — a pod does not promote its own card to
|
|
139
|
+
> Open. A parked plan is never `blocked`: that milestone means you cannot
|
|
140
|
+
> continue until a human acts, and it pages nobody. To page a person, ask them
|
|
141
|
+
> with AskUserQuestion. If the pod also has to leave
|
|
139
142
|
> plan mode, note that `update_task` carries no story points or risk; those go
|
|
140
143
|
> through `mcp__conveyor__update_task_properties`. Everything in Phases 1-3 is
|
|
141
144
|
> identical in both environments. To break a large pod card into a pack, use
|