@henryqw/pi-herdr-btw 1.1.6 → 1.1.7
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/extensions/btw.ts +9 -15
- package/internal/core.ts +2 -13
- package/package.json +2 -2
package/extensions/btw.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
2
|
import type { ExtensionAPI, ExtensionCommandContext, ExtensionContext } from "@earendil-works/pi-coding-agent";
|
|
3
|
-
import { createHerdrClient, hasHerdrErrorCode } from "@henryqw/pi-herdr";
|
|
3
|
+
import { createHerdrClient, hasHerdrErrorCode, startPiAgent } from "@henryqw/pi-herdr";
|
|
4
4
|
import {
|
|
5
5
|
resolveConfiguredTaskRoutes,
|
|
6
6
|
type ResolvedTaskRoute,
|
|
@@ -53,8 +53,6 @@ const BTW_TASK = "pi-herdr-btw/btw";
|
|
|
53
53
|
const CHILD_HEARTBEAT_INTERVAL_MS = 5 * 60 * 1_000;
|
|
54
54
|
const LITERAL_DRAFT_PREFIX = "\u200b";
|
|
55
55
|
const MERGE_POLL_INTERVAL_MS = 3_000;
|
|
56
|
-
const AGENT_START_BUSY_RETRIES = 5;
|
|
57
|
-
const AGENT_START_RETRY_DELAY_MS = 250;
|
|
58
56
|
|
|
59
57
|
function childPayloadPathFromArgv(): string | undefined {
|
|
60
58
|
const index = process.argv.indexOf(CHILD_PAYLOAD_ARG);
|
|
@@ -703,20 +701,16 @@ export async function registerBtwExtension(
|
|
|
703
701
|
}
|
|
704
702
|
|
|
705
703
|
// Step 2: adopt pi into the new pane; herdr waits for readiness.
|
|
706
|
-
const agentStartArgs = buildAgentStartArgs(launchOptions
|
|
704
|
+
const agentStartArgs = buildAgentStartArgs(launchOptions);
|
|
707
705
|
let result;
|
|
708
706
|
try {
|
|
709
|
-
result = await herdr
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
await new Promise((resolve) => setTimeout(resolve, AGENT_START_RETRY_DELAY_MS));
|
|
717
|
-
if (launchGeneration !== sessionGeneration) break;
|
|
718
|
-
result = await herdr.exec(agentStartArgs, { timeout: 45_000 });
|
|
719
|
-
}
|
|
707
|
+
result = await startPiAgent(herdr, {
|
|
708
|
+
name: launchOptions.paneName,
|
|
709
|
+
pane: paneId,
|
|
710
|
+
args: agentStartArgs,
|
|
711
|
+
options: { timeout: 45_000 },
|
|
712
|
+
shouldRetry: (candidate) => !candidate.killed && launchGeneration === sessionGeneration,
|
|
713
|
+
});
|
|
720
714
|
} catch (error) {
|
|
721
715
|
const message = error instanceof Error ? error.message : String(error);
|
|
722
716
|
await reportKnownPaneFailure(`/btw failed: ${message.slice(0, 500)}`, paneId, payloadPath);
|
package/internal/core.ts
CHANGED
|
@@ -335,20 +335,9 @@ export function isAgentStartReady(
|
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
|
|
338
|
-
/**
|
|
339
|
-
|
|
340
|
-
* the canonical executable for `--kind pi`, so only pi's own args follow `--`.
|
|
341
|
-
*/
|
|
342
|
-
export function buildAgentStartArgs(options: HerdrLaunchOptions, paneId: string): string[] {
|
|
338
|
+
/** The child Pi arguments for the Herdr agent-start boundary. */
|
|
339
|
+
export function buildAgentStartArgs(options: HerdrLaunchOptions): string[] {
|
|
343
340
|
return [
|
|
344
|
-
"agent",
|
|
345
|
-
"start",
|
|
346
|
-
options.paneName,
|
|
347
|
-
"--kind",
|
|
348
|
-
"pi",
|
|
349
|
-
"--pane",
|
|
350
|
-
paneId,
|
|
351
|
-
"--",
|
|
352
341
|
"--no-session",
|
|
353
342
|
"--model",
|
|
354
343
|
options.model,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@henryqw/pi-herdr-btw",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7",
|
|
4
4
|
"description": "Open and merge tool-enabled Pi side threads in Herdr panes.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
]
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@henryqw/pi-herdr": "^0.
|
|
49
|
+
"@henryqw/pi-herdr": "^0.4.0",
|
|
50
50
|
"@henryqw/pi-task-models": "^1.0.0",
|
|
51
51
|
"proper-lockfile": "^4.1.2"
|
|
52
52
|
},
|