@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.
Files changed (102) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +98 -29
  5. package/dist/cli.js.map +1 -1
  6. package/dist/index.d.ts +12 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +6 -1
  9. package/dist/index.js.map +1 -1
  10. package/dist/runtime/drive/cluster-mesh-outer.d.ts +44 -0
  11. package/dist/runtime/drive/cluster-mesh-outer.d.ts.map +1 -0
  12. package/dist/runtime/drive/cluster-mesh-outer.js +70 -0
  13. package/dist/runtime/drive/cluster-mesh-outer.js.map +1 -0
  14. package/dist/runtime/drive/inbox-wake.d.ts +5 -0
  15. package/dist/runtime/drive/inbox-wake.d.ts.map +1 -1
  16. package/dist/runtime/drive/inbox-wake.js +4 -1
  17. package/dist/runtime/drive/inbox-wake.js.map +1 -1
  18. package/dist/runtime/drive/index.d.ts +4 -0
  19. package/dist/runtime/drive/index.d.ts.map +1 -1
  20. package/dist/runtime/drive/index.js +12 -0
  21. package/dist/runtime/drive/index.js.map +1 -1
  22. package/dist/runtime/drive/pty-actuator.d.ts +54 -0
  23. package/dist/runtime/drive/pty-actuator.d.ts.map +1 -0
  24. package/dist/runtime/drive/pty-actuator.js +371 -0
  25. package/dist/runtime/drive/pty-actuator.js.map +1 -0
  26. package/dist/runtime/local-files/paths.js +1 -1
  27. package/dist/runtime/local-files/paths.js.map +1 -1
  28. package/dist/runtime/local-files/presence.d.ts.map +1 -1
  29. package/dist/runtime/local-files/presence.js +10 -1
  30. package/dist/runtime/local-files/presence.js.map +1 -1
  31. package/dist/runtime/loop/engine/adapters.d.ts +7 -1
  32. package/dist/runtime/loop/engine/adapters.d.ts.map +1 -1
  33. package/dist/runtime/loop/engine/adapters.js +43 -11
  34. package/dist/runtime/loop/engine/adapters.js.map +1 -1
  35. package/dist/runtime/loop/engine/decision.d.ts +5 -1
  36. package/dist/runtime/loop/engine/decision.d.ts.map +1 -1
  37. package/dist/runtime/loop/engine/decision.js +9 -3
  38. package/dist/runtime/loop/engine/decision.js.map +1 -1
  39. package/dist/runtime/loop/index.d.ts +2 -0
  40. package/dist/runtime/loop/index.d.ts.map +1 -1
  41. package/dist/runtime/loop/index.js +11 -3
  42. package/dist/runtime/loop/index.js.map +1 -1
  43. package/dist/runtime/mcp/agent-launch.d.ts +2 -1
  44. package/dist/runtime/mcp/agent-launch.d.ts.map +1 -1
  45. package/dist/runtime/mcp/agent-launch.js +51 -8
  46. package/dist/runtime/mcp/agent-launch.js.map +1 -1
  47. package/dist/runtime/mcp/handlers.d.ts.map +1 -1
  48. package/dist/runtime/mcp/handlers.js +17 -0
  49. package/dist/runtime/mcp/handlers.js.map +1 -1
  50. package/dist/runtime/mcp/stdio.d.ts +2 -0
  51. package/dist/runtime/mcp/stdio.d.ts.map +1 -1
  52. package/dist/runtime/mcp/stdio.js +8 -5
  53. package/dist/runtime/mcp/stdio.js.map +1 -1
  54. package/dist/runtime/mcp/tools.d.ts.map +1 -1
  55. package/dist/runtime/mcp/tools.js +19 -6
  56. package/dist/runtime/mcp/tools.js.map +1 -1
  57. package/dist/runtime/memory/admit-client.d.ts +30 -0
  58. package/dist/runtime/memory/admit-client.d.ts.map +1 -0
  59. package/dist/runtime/memory/admit-client.js +44 -0
  60. package/dist/runtime/memory/admit-client.js.map +1 -0
  61. package/dist/runtime/memory/d11-ceremony.d.ts +731 -0
  62. package/dist/runtime/memory/d11-ceremony.d.ts.map +1 -0
  63. package/dist/runtime/memory/d11-ceremony.js +1282 -0
  64. package/dist/runtime/memory/d11-ceremony.js.map +1 -0
  65. package/dist/runtime/memory/graphify-contracts-v2.vendored.d.ts +922 -0
  66. package/dist/runtime/memory/graphify-contracts-v2.vendored.d.ts.map +1 -0
  67. package/dist/runtime/memory/graphify-contracts-v2.vendored.js +2 -0
  68. package/dist/runtime/memory/graphify-contracts-v2.vendored.js.map +1 -0
  69. package/dist/runtime/memory/note-builder.d.ts +83 -0
  70. package/dist/runtime/memory/note-builder.d.ts.map +1 -0
  71. package/dist/runtime/memory/note-builder.js +89 -0
  72. package/dist/runtime/memory/note-builder.js.map +1 -0
  73. package/dist/runtime/memory/port-v1.d.ts +235 -0
  74. package/dist/runtime/memory/port-v1.d.ts.map +1 -0
  75. package/dist/runtime/memory/port-v1.js +129 -0
  76. package/dist/runtime/memory/port-v1.js.map +1 -0
  77. package/dist/runtime/memory/port-v2-adapter.d.ts +117 -0
  78. package/dist/runtime/memory/port-v2-adapter.d.ts.map +1 -0
  79. package/dist/runtime/memory/port-v2-adapter.js +140 -0
  80. package/dist/runtime/memory/port-v2-adapter.js.map +1 -0
  81. package/dist/runtime/memory/port-v2-compat.d.ts +50 -0
  82. package/dist/runtime/memory/port-v2-compat.d.ts.map +1 -0
  83. package/dist/runtime/memory/port-v2-compat.js +102 -0
  84. package/dist/runtime/memory/port-v2-compat.js.map +1 -0
  85. package/dist/runtime/memory/preflight.d.ts +17 -0
  86. package/dist/runtime/memory/preflight.d.ts.map +1 -0
  87. package/dist/runtime/memory/preflight.js +18 -0
  88. package/dist/runtime/memory/preflight.js.map +1 -0
  89. package/dist/runtime/memory/promote-client.d.ts +172 -0
  90. package/dist/runtime/memory/promote-client.d.ts.map +1 -0
  91. package/dist/runtime/memory/promote-client.js +168 -0
  92. package/dist/runtime/memory/promote-client.js.map +1 -0
  93. package/dist/runtime/memory/recall-client.d.ts +74 -0
  94. package/dist/runtime/memory/recall-client.d.ts.map +1 -0
  95. package/dist/runtime/memory/recall-client.js +91 -0
  96. package/dist/runtime/memory/recall-client.js.map +1 -0
  97. package/dist/session.d.ts +4 -0
  98. package/dist/session.d.ts.map +1 -1
  99. package/dist/session.js +7 -0
  100. package/dist/session.js.map +1 -1
  101. package/package.json +7 -4
  102. package/skills/h2a-run/SKILL.md +39 -6
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "h2a",
3
3
  "description": "H2A coordination with one MCP endpoint (including Track read tools) and the H2A, Track, and Harness operating skills.",
4
- "version": "0.96.1",
4
+ "version": "0.97.0",
5
5
  "author": {
6
6
  "name": "Fabien Antoine"
7
7
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h2a",
3
- "version": "0.96.1",
3
+ "version": "0.97.0",
4
4
  "description": "Coordinate Claude, Codex and other CLI agents through the local h2a bus, objective loops and track system of record.",
5
5
  "author": {
6
6
  "name": "Fabien Antoine"
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
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, canReexec, reexecSelf, H2A_AUTO_UPGRADE_CHECK_TTL_MS, H2A_REEXEC_GUARD_ENV, H2A_UPGRADE_CHECK_TTL_MS } from "./runtime/upgrade/index.js";
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. `--auto-upgrade` self-installs @latest then
1378
- // re-execs in place via process.execve (same PID/stdio, host stays connected;
1379
- // falls back to next-launch where execve is unavailable or `--no-restart`).
1380
- // `--upgrade-check` (notice only) prints a cached, bounded availability hint.
1381
- // The H2A_REEXEC_GUARD_ENV flag (set across the re-exec) prevents a re-loop.
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
- const result = checkUpgrade(current, {
1393
- cachePath: upgradeCachePath(root),
1394
- ttlMs,
1395
- ...(io.upgradeRuntime ? { runtime: io.upgradeRuntime } : {})
1396
- });
1397
- if (result.upgradeAvailable) {
1398
- if (wantAutoUpgrade) {
1399
- const ok = performUpgrade(io.upgradeRuntime);
1400
- if (ok && flags["no-restart"] === undefined && canReexec()) {
1401
- io.stderr.write(`h2a mcp-serve: auto-upgraded ${current} → ${result.latest}; restarting into the new version…\n`);
1402
- reexecSelf(); // on success the image is replaced (never returns)
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
- io.stderr.write(ok
1405
- ? `h2a mcp-serve: auto-upgraded ${current} → ${result.latest} (applies on next launch)\n`
1406
- : `h2a mcp-serve: auto-upgrade to ${result.latest} failed; staying on ${current}\n`);
1407
- }
1408
- else {
1409
- io.stderr.write(`h2a mcp-serve: h2a ${result.latest} available (current ${current}) — run \`h2a upgrade\`\n`);
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: a check/upgrade failure must never block serving.
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, log);
1437
- wake = { driver, privateKeyPem };
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 {