@sentropic/h2a 0.96.1 → 0.97.0
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/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +98 -29
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/drive/cluster-mesh-outer.d.ts +44 -0
- package/dist/runtime/drive/cluster-mesh-outer.d.ts.map +1 -0
- package/dist/runtime/drive/cluster-mesh-outer.js +70 -0
- package/dist/runtime/drive/cluster-mesh-outer.js.map +1 -0
- package/dist/runtime/drive/inbox-wake.d.ts +5 -0
- package/dist/runtime/drive/inbox-wake.d.ts.map +1 -1
- package/dist/runtime/drive/inbox-wake.js +4 -1
- package/dist/runtime/drive/inbox-wake.js.map +1 -1
- package/dist/runtime/drive/index.d.ts +4 -0
- package/dist/runtime/drive/index.d.ts.map +1 -1
- package/dist/runtime/drive/index.js +12 -0
- package/dist/runtime/drive/index.js.map +1 -1
- package/dist/runtime/drive/pty-actuator.d.ts +54 -0
- package/dist/runtime/drive/pty-actuator.d.ts.map +1 -0
- package/dist/runtime/drive/pty-actuator.js +371 -0
- package/dist/runtime/drive/pty-actuator.js.map +1 -0
- package/dist/runtime/local-files/paths.js +1 -1
- package/dist/runtime/local-files/paths.js.map +1 -1
- package/dist/runtime/local-files/presence.d.ts.map +1 -1
- package/dist/runtime/local-files/presence.js +10 -1
- package/dist/runtime/local-files/presence.js.map +1 -1
- package/dist/runtime/loop/engine/adapters.d.ts +7 -1
- package/dist/runtime/loop/engine/adapters.d.ts.map +1 -1
- package/dist/runtime/loop/engine/adapters.js +43 -11
- package/dist/runtime/loop/engine/adapters.js.map +1 -1
- package/dist/runtime/loop/engine/decision.d.ts +5 -1
- package/dist/runtime/loop/engine/decision.d.ts.map +1 -1
- package/dist/runtime/loop/engine/decision.js +9 -3
- package/dist/runtime/loop/engine/decision.js.map +1 -1
- package/dist/runtime/loop/index.d.ts +2 -0
- package/dist/runtime/loop/index.d.ts.map +1 -1
- package/dist/runtime/loop/index.js +11 -3
- package/dist/runtime/loop/index.js.map +1 -1
- package/dist/runtime/mcp/agent-launch.d.ts +2 -1
- package/dist/runtime/mcp/agent-launch.d.ts.map +1 -1
- package/dist/runtime/mcp/agent-launch.js +51 -8
- package/dist/runtime/mcp/agent-launch.js.map +1 -1
- package/dist/runtime/mcp/handlers.d.ts.map +1 -1
- package/dist/runtime/mcp/handlers.js +17 -0
- package/dist/runtime/mcp/handlers.js.map +1 -1
- package/dist/runtime/mcp/stdio.d.ts +2 -0
- package/dist/runtime/mcp/stdio.d.ts.map +1 -1
- package/dist/runtime/mcp/stdio.js +8 -5
- package/dist/runtime/mcp/stdio.js.map +1 -1
- package/dist/runtime/mcp/tools.d.ts.map +1 -1
- package/dist/runtime/mcp/tools.js +19 -6
- package/dist/runtime/mcp/tools.js.map +1 -1
- package/dist/runtime/memory/admit-client.d.ts +30 -0
- package/dist/runtime/memory/admit-client.d.ts.map +1 -0
- package/dist/runtime/memory/admit-client.js +44 -0
- package/dist/runtime/memory/admit-client.js.map +1 -0
- package/dist/runtime/memory/d11-ceremony.d.ts +731 -0
- package/dist/runtime/memory/d11-ceremony.d.ts.map +1 -0
- package/dist/runtime/memory/d11-ceremony.js +1282 -0
- package/dist/runtime/memory/d11-ceremony.js.map +1 -0
- package/dist/runtime/memory/graphify-contracts-v2.vendored.d.ts +922 -0
- package/dist/runtime/memory/graphify-contracts-v2.vendored.d.ts.map +1 -0
- package/dist/runtime/memory/graphify-contracts-v2.vendored.js +2 -0
- package/dist/runtime/memory/graphify-contracts-v2.vendored.js.map +1 -0
- package/dist/runtime/memory/note-builder.d.ts +83 -0
- package/dist/runtime/memory/note-builder.d.ts.map +1 -0
- package/dist/runtime/memory/note-builder.js +89 -0
- package/dist/runtime/memory/note-builder.js.map +1 -0
- package/dist/runtime/memory/port-v1.d.ts +235 -0
- package/dist/runtime/memory/port-v1.d.ts.map +1 -0
- package/dist/runtime/memory/port-v1.js +129 -0
- package/dist/runtime/memory/port-v1.js.map +1 -0
- package/dist/runtime/memory/port-v2-adapter.d.ts +117 -0
- package/dist/runtime/memory/port-v2-adapter.d.ts.map +1 -0
- package/dist/runtime/memory/port-v2-adapter.js +140 -0
- package/dist/runtime/memory/port-v2-adapter.js.map +1 -0
- package/dist/runtime/memory/port-v2-compat.d.ts +50 -0
- package/dist/runtime/memory/port-v2-compat.d.ts.map +1 -0
- package/dist/runtime/memory/port-v2-compat.js +102 -0
- package/dist/runtime/memory/port-v2-compat.js.map +1 -0
- package/dist/runtime/memory/preflight.d.ts +17 -0
- package/dist/runtime/memory/preflight.d.ts.map +1 -0
- package/dist/runtime/memory/preflight.js +18 -0
- package/dist/runtime/memory/preflight.js.map +1 -0
- package/dist/runtime/memory/promote-client.d.ts +172 -0
- package/dist/runtime/memory/promote-client.d.ts.map +1 -0
- package/dist/runtime/memory/promote-client.js +168 -0
- package/dist/runtime/memory/promote-client.js.map +1 -0
- package/dist/runtime/memory/recall-client.d.ts +74 -0
- package/dist/runtime/memory/recall-client.d.ts.map +1 -0
- package/dist/runtime/memory/recall-client.js +91 -0
- package/dist/runtime/memory/recall-client.js.map +1 -0
- package/dist/session.d.ts +4 -0
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +7 -0
- package/dist/session.js.map +1 -1
- package/package.json +7 -4
- package/skills/h2a-run/SKILL.md +39 -6
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAwEH,OAAO,KAAK,EAOV,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EAIL,KAAK,6BAA6B,EAClC,KAAK,4BAA4B,EAClC,MAAM,gCAAgC,CAAC;AAqCxC,OAAO,EAUL,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAeL,KAAK,gBAAgB,EAItB,MAAM,6BAA6B,CAAC;AAYrC,OAAO,EAUL,KAAK,0BAA0B,EAGhC,MAAM,0BAA0B,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
* The full machine-readable manifest lives in `./cli-contract.ts`
|
|
37
37
|
* (`H2A_CLI_VERB_CONTRACTS`). Human-readable reference: `docs/cli-contract.md`.
|
|
38
38
|
*/
|
|
39
|
-
import { execFileSync, spawnSync } from "node:child_process";
|
|
39
|
+
import { execFileSync, spawn, spawnSync } from "node:child_process";
|
|
40
40
|
import { generateKeyPairSync } from "node:crypto";
|
|
41
41
|
import { once } from "node:events";
|
|
42
42
|
import { chmodSync, copyFileSync, existsSync, mkdirSync, readdirSync, realpathSync, readFileSync, rmSync, unlinkSync, writeFileSync } from "node:fs";
|
|
@@ -84,7 +84,7 @@ import { raiseBlockage, listBlockages, resolveBlockage } from "./runtime/blockag
|
|
|
84
84
|
import { recordEscalation, listEscalations, clearEscalation } from "./runtime/escalation/index.js";
|
|
85
85
|
import { authorizeDrive, chainDriver, formatSignedDriveInstruction, headlessDriver, localTmuxDriver, loggingDriver, nativeBackchannelDriver, remoteDriveServerForStore, verifyDriveOnReceive } from "./runtime/drive/index.js";
|
|
86
86
|
import { verifyEnvelopeSysmlRef } from "./runtime/sysml/index.js";
|
|
87
|
-
import { checkUpgrade, performUpgrade, currentCliVersion, upgradeCachePath,
|
|
87
|
+
import { checkUpgrade, performUpgrade, currentCliVersion, upgradeCachePath, H2A_AUTO_UPGRADE_CHECK_TTL_MS, H2A_REEXEC_GUARD_ENV, H2A_UPGRADE_CHECK_TTL_MS } from "./runtime/upgrade/index.js";
|
|
88
88
|
import { H2A_CLI_DECLARED_CAPABILITIES, createHostSessionNameRefresher, resolveLiveIdentity } from "./runtime/identity/index.js";
|
|
89
89
|
import { buildEnrollmentProof, enrollmentProofSignedPayload, listUnusablePrivateKeys, sanitizeEnrollmentChallenge } from "./runtime/enrollment/index.js";
|
|
90
90
|
import { conductorFor } from "./runtime/governance/conductor.js";
|
|
@@ -1374,49 +1374,97 @@ export async function runMcpServe(flags, io = {
|
|
|
1374
1374
|
readiness = { file: readyFile, nonce: readyNonce };
|
|
1375
1375
|
}
|
|
1376
1376
|
// DEC-107/108 (EVO-8 levels 2/3): version handling at boot. **Opt-in** — no
|
|
1377
|
-
// network on a default boot.
|
|
1378
|
-
//
|
|
1379
|
-
//
|
|
1380
|
-
//
|
|
1381
|
-
// The
|
|
1377
|
+
// network on a default boot. Production check/install work runs in a
|
|
1378
|
+
// detached process: spawnSync there cannot freeze the live MCP event loop,
|
|
1379
|
+
// and the installed version applies on the next launch. Never re-exec this
|
|
1380
|
+
// stdio process: replacing its image tears the connected JSON-RPC session.
|
|
1381
|
+
// The guard remains honored when an older h2a re-execs into this version.
|
|
1382
1382
|
const wantAutoUpgrade = flags["auto-upgrade"] !== undefined;
|
|
1383
1383
|
const wantCheckOnly = flags["upgrade-check"] !== undefined;
|
|
1384
1384
|
if ((wantAutoUpgrade || wantCheckOnly) &&
|
|
1385
1385
|
process.env[H2A_REEXEC_GUARD_ENV] === undefined) {
|
|
1386
1386
|
try {
|
|
1387
|
-
const current = currentCliVersion();
|
|
1388
1387
|
// `--auto-upgrade` is opt-in to stay current → short (1h) cache so a
|
|
1389
1388
|
// same-day release isn't masked by the 24h notice cache; the passive
|
|
1390
1389
|
// `--upgrade-check` notice keeps the 24h throttle.
|
|
1391
1390
|
const ttlMs = wantAutoUpgrade ? H2A_AUTO_UPGRADE_CHECK_TTL_MS : H2A_UPGRADE_CHECK_TTL_MS;
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1391
|
+
if (io.upgradeRuntime) {
|
|
1392
|
+
// Injectable source-proof seam. Production never runs the synchronous
|
|
1393
|
+
// runtime here; its spawnSync calls live only in the detached worker.
|
|
1394
|
+
setImmediate(() => {
|
|
1395
|
+
try {
|
|
1396
|
+
const current = currentCliVersion();
|
|
1397
|
+
const result = checkUpgrade(current, {
|
|
1398
|
+
cachePath: upgradeCachePath(root),
|
|
1399
|
+
ttlMs,
|
|
1400
|
+
runtime: io.upgradeRuntime
|
|
1401
|
+
});
|
|
1402
|
+
if (!result.upgradeAvailable)
|
|
1403
|
+
return;
|
|
1404
|
+
if (wantAutoUpgrade) {
|
|
1405
|
+
const ok = performUpgrade(io.upgradeRuntime);
|
|
1406
|
+
io.stderr.write(ok
|
|
1407
|
+
? `h2a mcp-serve: auto-upgraded ${current} → ${result.latest} (applies on next launch)\n`
|
|
1408
|
+
: `h2a mcp-serve: auto-upgrade to ${result.latest} failed; staying on ${current}\n`);
|
|
1409
|
+
}
|
|
1410
|
+
else {
|
|
1411
|
+
io.stderr.write(`h2a mcp-serve: h2a ${result.latest} available (current ${current}) — run \`h2a upgrade\`\n`);
|
|
1412
|
+
}
|
|
1403
1413
|
}
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
}
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1414
|
+
catch {
|
|
1415
|
+
// best-effort: a check/upgrade failure must never affect serving.
|
|
1416
|
+
}
|
|
1417
|
+
});
|
|
1418
|
+
}
|
|
1419
|
+
else {
|
|
1420
|
+
const workerSource = String.raw `
|
|
1421
|
+
const [moduleUrl, root, ttl, mode] = process.argv.slice(1);
|
|
1422
|
+
try {
|
|
1423
|
+
const upgrade = await import(moduleUrl);
|
|
1424
|
+
const current = upgrade.currentCliVersion();
|
|
1425
|
+
const result = upgrade.checkUpgrade(current, {
|
|
1426
|
+
cachePath: upgrade.upgradeCachePath(root),
|
|
1427
|
+
ttlMs: Number(ttl)
|
|
1428
|
+
});
|
|
1429
|
+
if (result.upgradeAvailable) {
|
|
1430
|
+
if (mode === "auto") {
|
|
1431
|
+
const ok = upgrade.performUpgrade();
|
|
1432
|
+
process.stderr.write(ok
|
|
1433
|
+
? "h2a mcp-serve: auto-upgraded " + current + " → " + result.latest + " (applies on next launch)\n"
|
|
1434
|
+
: "h2a mcp-serve: auto-upgrade to " + result.latest + " failed; staying on " + current + "\n");
|
|
1435
|
+
} else {
|
|
1436
|
+
process.stderr.write("h2a mcp-serve: h2a " + result.latest + " available (current " + current + ") — run \`h2a upgrade\`\n");
|
|
1437
|
+
}
|
|
1438
|
+
}
|
|
1439
|
+
} catch {
|
|
1440
|
+
// Best-effort background maintenance must not affect the MCP server.
|
|
1441
|
+
}
|
|
1442
|
+
`;
|
|
1443
|
+
const worker = spawn(process.execPath, [
|
|
1444
|
+
"--input-type=module",
|
|
1445
|
+
"--eval",
|
|
1446
|
+
workerSource,
|
|
1447
|
+
"--",
|
|
1448
|
+
new URL("./runtime/upgrade/index.js", import.meta.url).href,
|
|
1449
|
+
root,
|
|
1450
|
+
String(ttlMs),
|
|
1451
|
+
wantAutoUpgrade ? "auto" : "check"
|
|
1452
|
+
], {
|
|
1453
|
+
detached: true,
|
|
1454
|
+
stdio: ["ignore", "ignore", "inherit"]
|
|
1455
|
+
});
|
|
1456
|
+
worker.once("error", () => { });
|
|
1457
|
+
worker.unref();
|
|
1411
1458
|
}
|
|
1412
1459
|
}
|
|
1413
1460
|
catch {
|
|
1414
|
-
// best-effort:
|
|
1461
|
+
// best-effort: worker launch failure must never block serving.
|
|
1415
1462
|
}
|
|
1416
1463
|
}
|
|
1417
1464
|
// EVO-1 inbox wake (bug #3): --wake <driver-kind> injects a signed wake on
|
|
1418
1465
|
// inbox arrival (requires --auto-open + a resolvable private key).
|
|
1419
1466
|
const WAKE_KINDS = ["logging", "native", "local-tmux", "headless", "auto"];
|
|
1467
|
+
const nativeSessionId = nativePtyWakeTarget(readinessEnv);
|
|
1420
1468
|
let wake;
|
|
1421
1469
|
if (flags.wake !== undefined && !WAKE_KINDS.includes(flags.wake)) {
|
|
1422
1470
|
io.stderr.write("h2a mcp-serve: --wake must be one of logging|native|local-tmux|headless|auto; ignored\n");
|
|
@@ -1431,10 +1479,19 @@ export async function runMcpServe(flags, io = {
|
|
|
1431
1479
|
const log = (line) => io.stderr.write(`${line}\n`);
|
|
1432
1480
|
// `auto` for a self-wake is native→local-tmux ONLY (no headless leg — its
|
|
1433
1481
|
// fallback spawns a new agent, wrong for waking yourself).
|
|
1482
|
+
// A native sidecar deliberately keeps the shared configured command
|
|
1483
|
+
// (`--wake local-tmux`): its launcher marker switches only this process
|
|
1484
|
+
// to the native backchannel, leaving the tmux launch path unchanged.
|
|
1434
1485
|
const driver = flags.wake === "auto"
|
|
1435
1486
|
? chainDriver(nativePtyBackchannelDriver(log), localTmuxDriver({ log }))
|
|
1436
|
-
: buildDriveDriver(flags.wake
|
|
1437
|
-
|
|
1487
|
+
: buildDriveDriver(nativeSessionId !== undefined && flags.wake === "local-tmux"
|
|
1488
|
+
? "native"
|
|
1489
|
+
: flags.wake, log);
|
|
1490
|
+
wake = {
|
|
1491
|
+
driver,
|
|
1492
|
+
privateKeyPem,
|
|
1493
|
+
...(nativeSessionId !== undefined ? { nativeSessionId } : {})
|
|
1494
|
+
};
|
|
1438
1495
|
}
|
|
1439
1496
|
catch (err) {
|
|
1440
1497
|
io.stderr.write(`h2a mcp-serve: --wake disabled (cannot read key): ${err.message}\n`);
|
|
@@ -2875,6 +2932,18 @@ function nativePtyBackchannelDriver(log) {
|
|
|
2875
2932
|
},
|
|
2876
2933
|
});
|
|
2877
2934
|
}
|
|
2935
|
+
const H2A_NATIVE_TARGET_SESSION_ENV = "H2A_NATIVE_TARGET_SESSION";
|
|
2936
|
+
function nativePtyWakeTarget(env) {
|
|
2937
|
+
const value = env[H2A_NATIVE_TARGET_SESSION_ENV];
|
|
2938
|
+
if (value === undefined ||
|
|
2939
|
+
value.length === 0 ||
|
|
2940
|
+
value.length > 256 ||
|
|
2941
|
+
value.trim() !== value ||
|
|
2942
|
+
/[\u0000-\u001f\u007f-\u009f]/u.test(value)) {
|
|
2943
|
+
return undefined;
|
|
2944
|
+
}
|
|
2945
|
+
return value;
|
|
2946
|
+
}
|
|
2878
2947
|
function driveReplayGuard(root) {
|
|
2879
2948
|
const dir = join(root, "drive-replay");
|
|
2880
2949
|
return {
|