@sjawhar/pi-legion 9.6.1 → 9.7.1
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/legion.js +46 -12
- package/package.json +2 -2
package/dist/legion.js
CHANGED
|
@@ -15729,7 +15729,7 @@ function onEnvoyRoleRegained(listener) {
|
|
|
15729
15729
|
// package.json
|
|
15730
15730
|
var package_default = {
|
|
15731
15731
|
name: "@sjawhar/pi-legion",
|
|
15732
|
-
version: "9.
|
|
15732
|
+
version: "9.7.1",
|
|
15733
15733
|
license: "Apache-2.0",
|
|
15734
15734
|
type: "module",
|
|
15735
15735
|
omp: {
|
|
@@ -15741,7 +15741,7 @@ var package_default = {
|
|
|
15741
15741
|
]
|
|
15742
15742
|
},
|
|
15743
15743
|
legion: {
|
|
15744
|
-
daemonApiVersion:
|
|
15744
|
+
daemonApiVersion: 24
|
|
15745
15745
|
},
|
|
15746
15746
|
repository: {
|
|
15747
15747
|
type: "git",
|
|
@@ -15889,7 +15889,8 @@ var legionClaimView = exports_external.strictObject({
|
|
|
15889
15889
|
session: exports_external.string(),
|
|
15890
15890
|
state: exports_external.enum(LEGION_CLAIM_STATES),
|
|
15891
15891
|
locator: legionLocator.optional(),
|
|
15892
|
-
capabilities: legionCapabilityReportView.optional()
|
|
15892
|
+
capabilities: legionCapabilityReportView.optional(),
|
|
15893
|
+
pluginContract: exports_external.number().int().nonnegative()
|
|
15893
15894
|
});
|
|
15894
15895
|
var legionPhaseView = exports_external.strictObject({
|
|
15895
15896
|
claim: legionClaimView,
|
|
@@ -15954,7 +15955,8 @@ var legionControllerLocator = exports_external.strictObject({
|
|
|
15954
15955
|
runtime: exports_external.enum(["tmux", "kubernetes"]),
|
|
15955
15956
|
external: exports_external.literal(true),
|
|
15956
15957
|
sessionId: nonEmptyString,
|
|
15957
|
-
registeredAt: timestamp
|
|
15958
|
+
registeredAt: timestamp,
|
|
15959
|
+
pluginContract: exports_external.number().int().nonnegative()
|
|
15958
15960
|
});
|
|
15959
15961
|
var legionAgentSecretsLoginView = exports_external.strictObject({
|
|
15960
15962
|
state: exports_external.string()
|
|
@@ -16045,7 +16047,8 @@ var LegionOperatorClaimResponse = exports_external.strictObject({
|
|
|
16045
16047
|
uncertainStreak: exports_external.number().int().nonnegative(),
|
|
16046
16048
|
pending: legionDeliveryView.optional(),
|
|
16047
16049
|
suspendedBy: exports_external.enum(["unknown", "operator", "daemon", "exit"]).optional(),
|
|
16048
|
-
suspensionHeld: exports_external.literal(true).optional()
|
|
16050
|
+
suspensionHeld: exports_external.literal(true).optional(),
|
|
16051
|
+
pluginContract: exports_external.number().int().nonnegative()
|
|
16049
16052
|
});
|
|
16050
16053
|
var LegionOperatorClaimsResponse = exports_external.strictObject({
|
|
16051
16054
|
claims: exports_external.array(LegionOperatorClaimResponse)
|
|
@@ -16221,11 +16224,10 @@ function createLegionDaemonClient(baseUrl, fetchFn = fetch) {
|
|
|
16221
16224
|
}
|
|
16222
16225
|
|
|
16223
16226
|
// src/jj-attribution.ts
|
|
16224
|
-
import { execFile as execFile2 } from "child_process";
|
|
16225
16227
|
import { mkdir, rename, writeFile } from "fs/promises";
|
|
16226
16228
|
import path4 from "path";
|
|
16227
|
-
import { promisify as promisify2 } from "util";
|
|
16228
16229
|
var UUID = "[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}";
|
|
16230
|
+
var JJ_CONFIG_PATH_TIMEOUT_MS = 1e4;
|
|
16229
16231
|
var TOP_LEVEL_TRANSCRIPT = new RegExp(`^\\d{4}-\\d{2}-\\d{2}T[\\d-]+Z_(${UUID})\\.jsonl$`);
|
|
16230
16232
|
var ATTRIBUTION_OVERLAY = /^omp-attribution-.*\.toml$/;
|
|
16231
16233
|
function sessionIdFromTranscript(sessionFile) {
|
|
@@ -16234,9 +16236,41 @@ function sessionIdFromTranscript(sessionFile) {
|
|
|
16234
16236
|
function withoutOverlays(chain) {
|
|
16235
16237
|
return chain.split(":").filter((entry) => entry && !ATTRIBUTION_OVERLAY.test(path4.basename(entry))).join(":");
|
|
16236
16238
|
}
|
|
16237
|
-
async function userConfigChain() {
|
|
16239
|
+
async function userConfigChain(timeoutMs = JJ_CONFIG_PATH_TIMEOUT_MS, env = process.env) {
|
|
16238
16240
|
try {
|
|
16239
|
-
const
|
|
16241
|
+
const child = Bun.spawn(["jj", "config", "path", "--user"], {
|
|
16242
|
+
detached: true,
|
|
16243
|
+
env,
|
|
16244
|
+
stdin: "ignore",
|
|
16245
|
+
stdout: "pipe",
|
|
16246
|
+
stderr: "pipe"
|
|
16247
|
+
});
|
|
16248
|
+
const killGroup = () => {
|
|
16249
|
+
try {
|
|
16250
|
+
process.kill(-child.pid, "SIGKILL");
|
|
16251
|
+
} catch {}
|
|
16252
|
+
};
|
|
16253
|
+
const exited = child.exited.finally(killGroup);
|
|
16254
|
+
const completed = Promise.all([
|
|
16255
|
+
exited,
|
|
16256
|
+
new Response(child.stdout).text(),
|
|
16257
|
+
new Response(child.stderr).text()
|
|
16258
|
+
]);
|
|
16259
|
+
const stdout = await new Promise((resolve) => {
|
|
16260
|
+
const timer = setTimeout(() => {
|
|
16261
|
+
killGroup();
|
|
16262
|
+
resolve(undefined);
|
|
16263
|
+
}, timeoutMs);
|
|
16264
|
+
completed.then(([code, output]) => {
|
|
16265
|
+
clearTimeout(timer);
|
|
16266
|
+
resolve(code === 0 ? output : undefined);
|
|
16267
|
+
}, () => {
|
|
16268
|
+
clearTimeout(timer);
|
|
16269
|
+
resolve(undefined);
|
|
16270
|
+
});
|
|
16271
|
+
});
|
|
16272
|
+
if (stdout === undefined)
|
|
16273
|
+
return;
|
|
16240
16274
|
const paths = stdout.split(`
|
|
16241
16275
|
`).filter(Boolean);
|
|
16242
16276
|
return paths.length > 0 ? paths.join(":") : undefined;
|
|
@@ -16479,15 +16513,15 @@ function createControllerSession(deps) {
|
|
|
16479
16513
|
}
|
|
16480
16514
|
|
|
16481
16515
|
// src/handoff-commit.ts
|
|
16482
|
-
import { execFile as
|
|
16483
|
-
import { promisify as
|
|
16516
|
+
import { execFile as execFile2 } from "child_process";
|
|
16517
|
+
import { promisify as promisify2 } from "util";
|
|
16484
16518
|
var FILE_BACKED = {
|
|
16485
16519
|
planning: { word: "plan", role: "planner" },
|
|
16486
16520
|
implementing: { word: "implement", role: "implementer" },
|
|
16487
16521
|
testing: { word: "test", role: "tester" },
|
|
16488
16522
|
reviewing: { word: "review", role: "reviewer" }
|
|
16489
16523
|
};
|
|
16490
|
-
var execFileAsync2 =
|
|
16524
|
+
var execFileAsync2 = promisify2(execFile2);
|
|
16491
16525
|
var pathJj = async (args, cwd) => {
|
|
16492
16526
|
try {
|
|
16493
16527
|
const { stdout } = await execFileAsync2("jj", ["-R", cwd, ...args], {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sjawhar/pi-legion",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.7.1",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"omp": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
]
|
|
13
13
|
},
|
|
14
14
|
"legion": {
|
|
15
|
-
"daemonApiVersion":
|
|
15
|
+
"daemonApiVersion": 24
|
|
16
16
|
},
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|