@sentropic/h2a-cli 0.1.26 → 0.1.28

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/index.d.ts CHANGED
@@ -6,7 +6,7 @@ import { H2A_CLI_MCP_TOOL_NAMES } from "./mcp.js";
6
6
  export type { H2AConfigurableHostDescriptor, H2AHostDescriptor, H2AHostWave, McpHostConfigSnippet, RenderMcpConfigOptions } from "./hosts/codex.js";
7
7
  export { H2A_CLAUDE_HOST, H2A_CODEX_HOST, H2A_GEMINI_HOST, H2A_CLI_MCP_TOOL_NAMES, renderCliHelp, runCli, runMcpServe };
8
8
  export { H2A_CLI_VERB_CONTRACTS, H2A_CLI_VERB_CONTRACT_BY_VERB, type H2ACliExitCode, type H2ACliOutputShape, type H2ACliVerbContract } from "./cli-contract.js";
9
- export { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, LockTimeoutError, StoreSchemaMismatchError, createLocalStore, deletePresence, inboxDir, listPresence, localStorePaths, negotiationDir, negotiationJournalFile, outboxDir, presenceFile, readPresence, safePathSegment, sanitizeStorePaths, updatePresence, withLock, withLockSync, writePresence, type CreateLocalStoreOptions, type H2AStoreSchemaSentinel, type ListPresenceOptions, type LocalStore, type LocalStorePaths, type LockOwner, type PresenceWriteResult, type SanitizePathsResult, type SanitizeRenameEntry, type WithLockOptions } from "./runtime/local-files/index.js";
9
+ export { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, LockTimeoutError, StoreSchemaMismatchError, createLocalStore, deletePresence, inboxDir, listPresence, localStorePaths, negotiationDir, negotiationJournalFile, outboxDir, presenceFile, readPresence, safePathSegment, sanitizeStorePaths, updatePresence, withLease, withLeaseSync, withLock, withLockSync, writePresence, type CreateLocalStoreOptions, type H2AStoreSchemaSentinel, type LeaseHandle, type LeaseRecord, type ListPresenceOptions, type LocalStore, type LocalStorePaths, type LockOwner, type PresenceWriteResult, type SanitizePathsResult, type SanitizeRenameEntry, type WithLeaseOptions, type WithLockOptions } from "./runtime/local-files/index.js";
10
10
  export { H2A_CLI_MCP_TOOL_DESCRIPTORS, NotificationDispatcher, SessionRegistry, createMcpServer, runMcpStdio, type CreateMcpServerOptions, type McpErrorResult, type McpPushNotification, type McpServer, type McpToolDescriptor, type McpToolName, type McpToolResult, type NotificationSink, type OpenSessionRequest, type RunMcpStdioOptions, type SessionRegistryOptions } from "./runtime/mcp/index.js";
11
11
  export { renderK8sSidecar, type K8sSidecarFragment, type K8sSidecarOptions } from "./runtime/deploy/k8s-sidecar.js";
12
12
  export declare const H2A_CLI_HOSTS: readonly [import("./hosts/codex.js").H2AConfigurableHostDescriptor, import("./hosts/codex.js").H2AConfigurableHostDescriptor, import("./hosts/codex.js").H2AConfigurableHostDescriptor];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,YAAY,EACV,6BAA6B,EAC7B,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,MAAM,EACN,WAAW,EACZ,CAAC;AAEF,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,WAAW,EACX,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,aAAa,yLAIhB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAElD,YAAY,EACV,6BAA6B,EAC7B,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,MAAM,EACN,WAAW,EACZ,CAAC;AAEF,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAC7B,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,WAAW,EACX,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC5B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AAEzC,eAAO,MAAM,aAAa,yLAIhB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC"}
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ import { H2A_GEMINI_HOST } from "./hosts/gemini.js";
5
5
  import { H2A_CLI_MCP_TOOL_NAMES } from "./mcp.js";
6
6
  export { H2A_CLAUDE_HOST, H2A_CODEX_HOST, H2A_GEMINI_HOST, H2A_CLI_MCP_TOOL_NAMES, renderCliHelp, runCli, runMcpServe };
7
7
  export { H2A_CLI_VERB_CONTRACTS, H2A_CLI_VERB_CONTRACT_BY_VERB } from "./cli-contract.js";
8
- export { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, LockTimeoutError, StoreSchemaMismatchError, createLocalStore, deletePresence, inboxDir, listPresence, localStorePaths, negotiationDir, negotiationJournalFile, outboxDir, presenceFile, readPresence, safePathSegment, sanitizeStorePaths, updatePresence, withLock, withLockSync, writePresence } from "./runtime/local-files/index.js";
8
+ export { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, LockTimeoutError, StoreSchemaMismatchError, createLocalStore, deletePresence, inboxDir, listPresence, localStorePaths, negotiationDir, negotiationJournalFile, outboxDir, presenceFile, readPresence, safePathSegment, sanitizeStorePaths, updatePresence, withLease, withLeaseSync, withLock, withLockSync, writePresence } from "./runtime/local-files/index.js";
9
9
  export { H2A_CLI_MCP_TOOL_DESCRIPTORS, NotificationDispatcher, SessionRegistry, createMcpServer, runMcpStdio } from "./runtime/mcp/index.js";
10
10
  export { renderK8sSidecar } from "./runtime/deploy/k8s-sidecar.js";
11
11
  export const H2A_CLI_HOSTS = [
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAUlD,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,MAAM,EACN,WAAW,EACZ,CAAC;AAEF,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAI9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,aAAa,EAWd,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,WAAW,EAYZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAGjB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,cAAc;IACd,eAAe;IACf,eAAe;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,oBAAoB;IACjC,eAAe,EAAE,gBAAgB;IACjC,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,aAAa;IACpB,YAAY,EAAE,sBAAsB;CAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAUlD,OAAO,EACL,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,MAAM,EACN,WAAW,EACZ,CAAC;AAEF,OAAO,EACL,sBAAsB,EACtB,6BAA6B,EAI9B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,wBAAwB,EACxB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,aAAa,EAcd,MAAM,gCAAgC,CAAC;AAExC,OAAO,EACL,4BAA4B,EAC5B,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,WAAW,EAYZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAGjB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,cAAc;IACd,eAAe;IACf,eAAe;CACP,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW,EAAE,oBAAoB;IACjC,eAAe,EAAE,gBAAgB;IACjC,QAAQ,EAAE,eAAe;IACzB,KAAK,EAAE,aAAa;IACpB,YAAY,EAAE,sBAAsB;CAC5B,CAAC"}
@@ -3,5 +3,6 @@ export { deletePresence, listPresence, readPresence, updatePresence, writePresen
3
3
  export { sanitizeStorePaths, type SanitizePathsResult, type SanitizeRenameEntry } from "./migrate.js";
4
4
  export { createLocalStore, type CreateLocalStoreOptions, type LocalStore } from "./store.js";
5
5
  export { LockTimeoutError, withLock, withLockSync, type LockOwner, type WithLockOptions } from "./locks.js";
6
+ export { withLease, withLeaseSync, type LeaseHandle, type LeaseRecord, type WithLeaseOptions } from "./lease.js";
6
7
  export { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, StoreSchemaMismatchError, readCliPackageVersion, type H2AStoreSchemaSentinel } from "./schema.js";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/local-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime/local-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,KAAK,sBAAsB,EAC5B,MAAM,aAAa,CAAC"}
@@ -3,5 +3,6 @@ export { deletePresence, listPresence, readPresence, updatePresence, writePresen
3
3
  export { sanitizeStorePaths } from "./migrate.js";
4
4
  export { createLocalStore } from "./store.js";
5
5
  export { LockTimeoutError, withLock, withLockSync } from "./locks.js";
6
+ export { withLease, withLeaseSync } from "./lease.js";
6
7
  export { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, StoreSchemaMismatchError, readCliPackageVersion } from "./schema.js";
7
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/local-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EAGd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EAGb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EAEtB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/local-files/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,SAAS,EACT,YAAY,EACZ,eAAe,EAEhB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,EAGd,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,YAAY,EAGb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,aAAa,EAId,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EAEtB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Cross-host lease lock for the local-files store (DEC-065).
3
+ *
4
+ * The advisory lock in `locks.ts` (DEC-036) recovers stale locks via
5
+ * `process.kill(pid, 0)` — which only works **same-machine**. A store shared
6
+ * across Pods on a ReadWriteMany volume (Scenario B of DEC-056) has holders on
7
+ * different nodes that cannot probe each other's PIDs, so the PID model is
8
+ * unsafe there.
9
+ *
10
+ * This module replaces PID-liveness with a **time-based lease**:
11
+ *
12
+ * - The lock file carries `{ holder, nonce, acquiredAt, renewedAt, leaseMs,
13
+ * fencingToken }`.
14
+ * - A lease is *expired* when `now - renewedAt > leaseMs`. Any contender may
15
+ * then steal it. Staleness is decided purely by wall-clock time, so it works
16
+ * regardless of which host or Pod held it.
17
+ * - The atomic gate is `openSync(path, "wx")` (`O_CREAT | O_EXCL`): only one
18
+ * contender wins the create, even across hosts on a POSIX-compliant shared
19
+ * filesystem.
20
+ * - `nonce` is a random per-acquisition id; release only unlinks the file if
21
+ * the on-disk nonce still matches ours (so a holder that overran its lease
22
+ * and was stolen from does not delete the new holder's lease).
23
+ * - `fencingToken` is incremented on every steal (best-effort monotonic) and
24
+ * returned to the caller for observability / downstream fencing.
25
+ *
26
+ * Clock-skew caveat: `leaseMs` must comfortably exceed (a) the longest
27
+ * critical section plus (b) the maximum clock skew between hosts. The store's
28
+ * read-then-write sections are sub-second, so the default 30s lease leaves a
29
+ * wide margin. This is documented in DEC-065.
30
+ */
31
+ import { type WithLockOptions } from "./locks.js";
32
+ export interface LeaseRecord {
33
+ readonly holder: string;
34
+ readonly nonce: string;
35
+ readonly acquiredAt: string;
36
+ readonly renewedAt: string;
37
+ readonly leaseMs: number;
38
+ readonly fencingToken: number;
39
+ }
40
+ export interface WithLeaseOptions extends WithLockOptions {
41
+ /** Lease duration in ms. A lease older than this is stealable. Default 30000. */
42
+ readonly leaseMs?: number;
43
+ /** Holder label (host + pid by default). Informational. */
44
+ readonly holder?: string;
45
+ }
46
+ export interface LeaseHandle {
47
+ readonly nonce: string;
48
+ readonly fencingToken: number;
49
+ }
50
+ /**
51
+ * Synchronous lease-locked critical section. Mirrors `withLockSync` but uses
52
+ * the time-based lease above, so it is safe for cross-host (cross-Pod) shared
53
+ * stores. Returns `fn()`'s result. Throws `LockTimeoutError` if the lease
54
+ * cannot be acquired within `timeoutMs`.
55
+ *
56
+ * The handle (nonce + fencingToken) is exposed to `fn` so callers that need
57
+ * to fence a downstream side-effect can read the token.
58
+ */
59
+ export declare function withLeaseSync<T>(lockPath: string, fn: (handle: LeaseHandle) => T, options?: WithLeaseOptions): T;
60
+ /** Async variant of {@link withLeaseSync}. */
61
+ export declare function withLease<T>(lockPath: string, fn: (handle: LeaseHandle) => T | Promise<T>, options?: WithLeaseOptions): Promise<T>;
62
+ //# sourceMappingURL=lease.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lease.d.ts","sourceRoot":"","sources":["../../../src/runtime/local-files/lease.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAYH,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AA2JD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,EAC9B,OAAO,GAAE,gBAAqB,GAC7B,CAAC,CAqCH;AAED,8CAA8C;AAC9C,wBAAsB,SAAS,CAAC,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EAC3C,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAiCZ"}
@@ -0,0 +1,249 @@
1
+ /**
2
+ * Cross-host lease lock for the local-files store (DEC-065).
3
+ *
4
+ * The advisory lock in `locks.ts` (DEC-036) recovers stale locks via
5
+ * `process.kill(pid, 0)` — which only works **same-machine**. A store shared
6
+ * across Pods on a ReadWriteMany volume (Scenario B of DEC-056) has holders on
7
+ * different nodes that cannot probe each other's PIDs, so the PID model is
8
+ * unsafe there.
9
+ *
10
+ * This module replaces PID-liveness with a **time-based lease**:
11
+ *
12
+ * - The lock file carries `{ holder, nonce, acquiredAt, renewedAt, leaseMs,
13
+ * fencingToken }`.
14
+ * - A lease is *expired* when `now - renewedAt > leaseMs`. Any contender may
15
+ * then steal it. Staleness is decided purely by wall-clock time, so it works
16
+ * regardless of which host or Pod held it.
17
+ * - The atomic gate is `openSync(path, "wx")` (`O_CREAT | O_EXCL`): only one
18
+ * contender wins the create, even across hosts on a POSIX-compliant shared
19
+ * filesystem.
20
+ * - `nonce` is a random per-acquisition id; release only unlinks the file if
21
+ * the on-disk nonce still matches ours (so a holder that overran its lease
22
+ * and was stolen from does not delete the new holder's lease).
23
+ * - `fencingToken` is incremented on every steal (best-effort monotonic) and
24
+ * returned to the caller for observability / downstream fencing.
25
+ *
26
+ * Clock-skew caveat: `leaseMs` must comfortably exceed (a) the longest
27
+ * critical section plus (b) the maximum clock skew between hosts. The store's
28
+ * read-then-write sections are sub-second, so the default 30s lease leaves a
29
+ * wide margin. This is documented in DEC-065.
30
+ */
31
+ import { closeSync, openSync, readFileSync, unlinkSync, writeFileSync } from "node:fs";
32
+ import { hostname } from "node:os";
33
+ import { randomBytes } from "node:crypto";
34
+ import { LockTimeoutError } from "./locks.js";
35
+ const DEFAULT_LEASE_MS = 30000;
36
+ const DEFAULT_TIMEOUT_MS = 5000;
37
+ const DEFAULT_POLL_MS = 50;
38
+ function nowMs() {
39
+ return Date.now();
40
+ }
41
+ function parseLease(raw) {
42
+ try {
43
+ const p = JSON.parse(raw);
44
+ if (p &&
45
+ typeof p.holder === "string" &&
46
+ typeof p.nonce === "string" &&
47
+ typeof p.renewedAt === "string" &&
48
+ typeof p.leaseMs === "number" &&
49
+ typeof p.fencingToken === "number") {
50
+ return {
51
+ holder: p.holder,
52
+ nonce: p.nonce,
53
+ acquiredAt: typeof p.acquiredAt === "string" ? p.acquiredAt : p.renewedAt,
54
+ renewedAt: p.renewedAt,
55
+ leaseMs: p.leaseMs,
56
+ fencingToken: p.fencingToken
57
+ };
58
+ }
59
+ }
60
+ catch {
61
+ /* malformed — treat as absent */
62
+ }
63
+ return undefined;
64
+ }
65
+ function isExpired(lease, at) {
66
+ const renewed = Date.parse(lease.renewedAt);
67
+ if (Number.isNaN(renewed))
68
+ return true;
69
+ return at - renewed > lease.leaseMs;
70
+ }
71
+ function writeLease(lockPath, record) {
72
+ const fd = openSync(lockPath, "wx");
73
+ try {
74
+ writeFileSync(fd, JSON.stringify(record));
75
+ }
76
+ finally {
77
+ closeSync(fd);
78
+ }
79
+ }
80
+ function attemptAcquire(lockPath, holder, leaseMs) {
81
+ const at = nowMs();
82
+ const iso = new Date(at).toISOString();
83
+ const nonce = randomBytes(8).toString("hex");
84
+ // Fresh create path — token starts at 1.
85
+ const fresh = {
86
+ holder,
87
+ nonce,
88
+ acquiredAt: iso,
89
+ renewedAt: iso,
90
+ leaseMs,
91
+ fencingToken: 1
92
+ };
93
+ try {
94
+ writeLease(lockPath, fresh);
95
+ return { ok: true, handle: { nonce, fencingToken: 1 } };
96
+ }
97
+ catch (err) {
98
+ if (err.code !== "EEXIST")
99
+ throw err;
100
+ }
101
+ // Lock exists — read and decide.
102
+ let raw;
103
+ try {
104
+ raw = readFileSync(lockPath, "utf8");
105
+ }
106
+ catch {
107
+ // Released between EEXIST and read — caller retries.
108
+ return { ok: false };
109
+ }
110
+ const existing = parseLease(raw);
111
+ if (existing && !isExpired(existing, at)) {
112
+ return { ok: false, lastSeen: existing };
113
+ }
114
+ // Expired (or malformed) — steal it. Unlink then re-create via O_EXCL so the
115
+ // create remains the atomic gate; the create-winner writes oldToken+1.
116
+ const nextToken = (existing?.fencingToken ?? 0) + 1;
117
+ try {
118
+ unlinkSync(lockPath);
119
+ }
120
+ catch {
121
+ /* someone else reclaimed first — fall through to retry */
122
+ }
123
+ const stolen = {
124
+ holder,
125
+ nonce,
126
+ acquiredAt: iso,
127
+ renewedAt: iso,
128
+ leaseMs,
129
+ fencingToken: nextToken
130
+ };
131
+ try {
132
+ writeLease(lockPath, stolen);
133
+ return { ok: true, handle: { nonce, fencingToken: nextToken } };
134
+ }
135
+ catch (err) {
136
+ if (err.code === "EEXIST") {
137
+ // Another contender won the steal — retry from the top next loop.
138
+ return { ok: false, lastSeen: existing };
139
+ }
140
+ throw err;
141
+ }
142
+ }
143
+ function releaseLease(lockPath, handle) {
144
+ let raw;
145
+ try {
146
+ raw = readFileSync(lockPath, "utf8");
147
+ }
148
+ catch {
149
+ return; // already gone
150
+ }
151
+ const current = parseLease(raw);
152
+ // Only unlink if WE still hold it (nonce match). If a contender stole the
153
+ // lease after we overran it, leave their lease intact.
154
+ if (current && current.nonce === handle.nonce) {
155
+ try {
156
+ unlinkSync(lockPath);
157
+ }
158
+ catch {
159
+ /* concurrent release — fine */
160
+ }
161
+ }
162
+ }
163
+ function busyWaitSync(ms) {
164
+ const end = Date.now() + ms;
165
+ const sab = new SharedArrayBuffer(4);
166
+ const view = new Int32Array(sab);
167
+ while (Date.now() < end) {
168
+ const remaining = end - Date.now();
169
+ if (remaining <= 0)
170
+ break;
171
+ Atomics.wait(view, 0, 0, Math.min(remaining, 25));
172
+ }
173
+ }
174
+ function defaultHolder() {
175
+ return `${hostname()}:${process.pid}`;
176
+ }
177
+ /**
178
+ * Synchronous lease-locked critical section. Mirrors `withLockSync` but uses
179
+ * the time-based lease above, so it is safe for cross-host (cross-Pod) shared
180
+ * stores. Returns `fn()`'s result. Throws `LockTimeoutError` if the lease
181
+ * cannot be acquired within `timeoutMs`.
182
+ *
183
+ * The handle (nonce + fencingToken) is exposed to `fn` so callers that need
184
+ * to fence a downstream side-effect can read the token.
185
+ */
186
+ export function withLeaseSync(lockPath, fn, options = {}) {
187
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
188
+ const pollMs = options.pollMs ?? DEFAULT_POLL_MS;
189
+ const leaseMs = options.leaseMs ?? DEFAULT_LEASE_MS;
190
+ const holder = options.holder ?? defaultHolder();
191
+ const deadline = Date.now() + timeoutMs;
192
+ let lastSeen;
193
+ let handle;
194
+ while (true) {
195
+ const attempt = attemptAcquire(lockPath, holder, leaseMs);
196
+ if (attempt.ok) {
197
+ handle = attempt.handle;
198
+ break;
199
+ }
200
+ lastSeen = attempt.lastSeen ?? lastSeen;
201
+ if (Date.now() >= deadline) {
202
+ throw new LockTimeoutError(lockPath, lastSeen
203
+ ? {
204
+ pid: 0,
205
+ hostname: lastSeen.holder,
206
+ startedAt: lastSeen.acquiredAt
207
+ }
208
+ : undefined, timeoutMs);
209
+ }
210
+ busyWaitSync(pollMs);
211
+ }
212
+ try {
213
+ return fn(handle);
214
+ }
215
+ finally {
216
+ releaseLease(lockPath, handle);
217
+ }
218
+ }
219
+ /** Async variant of {@link withLeaseSync}. */
220
+ export async function withLease(lockPath, fn, options = {}) {
221
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
222
+ const pollMs = options.pollMs ?? DEFAULT_POLL_MS;
223
+ const leaseMs = options.leaseMs ?? DEFAULT_LEASE_MS;
224
+ const holder = options.holder ?? defaultHolder();
225
+ const deadline = Date.now() + timeoutMs;
226
+ let lastSeen;
227
+ let handle;
228
+ while (true) {
229
+ const attempt = attemptAcquire(lockPath, holder, leaseMs);
230
+ if (attempt.ok) {
231
+ handle = attempt.handle;
232
+ break;
233
+ }
234
+ lastSeen = attempt.lastSeen ?? lastSeen;
235
+ if (Date.now() >= deadline) {
236
+ throw new LockTimeoutError(lockPath, lastSeen
237
+ ? { pid: 0, hostname: lastSeen.holder, startedAt: lastSeen.acquiredAt }
238
+ : undefined, timeoutMs);
239
+ }
240
+ await new Promise((r) => setTimeout(r, pollMs));
241
+ }
242
+ try {
243
+ return await fn(handle);
244
+ }
245
+ finally {
246
+ releaseLease(lockPath, handle);
247
+ }
248
+ }
249
+ //# sourceMappingURL=lease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lease.js","sourceRoot":"","sources":["../../../src/runtime/local-files/lease.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,20 @@ export interface CreateLocalStoreOptions {
14
14
  * rewrites the sentinel. Intended for inspection tooling. DEC-036.
15
15
  */
16
16
  allowVersionMismatch?: boolean;
17
+ /**
18
+ * Locking strategy for critical sections (DEC-066):
19
+ * - `"pid"` (default) — same-machine advisory lock with PID-staleness
20
+ * recovery (DEC-036). Zero-config, correct for the common single-machine
21
+ * case.
22
+ * - `"lease"` — time-based lease lock (DEC-065) safe across hosts/Pods on a
23
+ * shared ReadWriteMany store (Scenario B of DEC-056). No PID assumption.
24
+ */
25
+ lockMode?: "pid" | "lease";
26
+ /**
27
+ * Lease duration (ms) when `lockMode === "lease"`. Must exceed the longest
28
+ * critical section plus inter-host clock skew. Default 30000.
29
+ */
30
+ leaseMs?: number;
17
31
  }
18
32
  export interface LocalStore {
19
33
  paths: LocalStorePaths;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/runtime/local-files/store.ts"],"names":[],"mappings":"AAWA,OAAO,EAWL,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AASpB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,aAAa,IAAI,oBAAoB,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAC3D,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IACpE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAC9D,uBAAuB,CACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACrC,oBAAoB,CAAC;IACxB,sBAAsB,CAAC,KAAK,GAAG,OAAO,EACpC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAChC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1B,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1E,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B;QACD,MAAM,EAAE,oBAAoB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QACrC,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACxC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5E,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;CAC1C;AAgHD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU,CAia7E"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/runtime/local-files/store.ts"],"names":[],"mappings":"AAWA,OAAO,EAWL,KAAK,oBAAoB,EAEzB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAG1B,MAAM,gBAAgB,CAAC;AAIxB,OAAO,EAOL,KAAK,eAAe,EACrB,MAAM,YAAY,CAAC;AASpB,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IAC3B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD,aAAa,IAAI,oBAAoB,EAAE,CAAC;IACxC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAC3D,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,CAAC;IACpE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAC9D,uBAAuB,CACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GACrC,oBAAoB,CAAC;IACxB,sBAAsB,CAAC,KAAK,GAAG,OAAO,EACpC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAChC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1B,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1E,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7B;QACD,MAAM,EAAE,oBAAoB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;QACrC,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;IACxC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5E,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAAC;CAC1C;AAgHD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU,CAmb7E"}
@@ -2,6 +2,7 @@ import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, unlin
2
2
  import { dirname, join } from "node:path";
3
3
  import { H2A_ARTIFACT_KINDS, H2A_AUTHORITY_MATRIX, appendJournalEntry, assertValidNegotiationState, canSignArtifactKind, computeHash, createJournalEntry, isH2AEnvelope, verifyCanonical, verifyJournalChain } from "@sentropic/h2a";
4
4
  import { withLockSync } from "./locks.js";
5
+ import { withLeaseSync } from "./lease.js";
5
6
  import { inboxDir, localStorePaths, negotiationDir, negotiationJournalFile, outboxDir, safePathSegment } from "./paths.js";
6
7
  import { H2A_STORE_SCHEMA_FILE, H2A_STORE_SCHEMA_VERSION, StoreSchemaMismatchError, readCliPackageVersion } from "./schema.js";
7
8
  function ensureDir(path) {
@@ -107,7 +108,19 @@ export function createLocalStore(options) {
107
108
  writeFileSync(paths.instances, "", { encoding: "utf8" });
108
109
  }
109
110
  const lockTimeoutMs = options.lockTimeoutMs ?? 5000;
110
- const lockOpts = { timeoutMs: lockTimeoutMs };
111
+ const lockMode = options.lockMode ?? "pid";
112
+ const lockOpts = lockMode === "lease"
113
+ ? { timeoutMs: lockTimeoutMs, leaseMs: options.leaseMs ?? 30000 }
114
+ : { timeoutMs: lockTimeoutMs };
115
+ // DEC-066: route every critical section through the chosen strategy. `pid`
116
+ // is the same-machine default (DEC-036); `lease` is the cross-host primitive
117
+ // (DEC-065) for a shared RWX store. Both share the `(path, fn, opts)` shape;
118
+ // the lease handle arg is simply ignored by the store's sync sections.
119
+ function lock(lockPath, fn, opts) {
120
+ return lockMode === "lease"
121
+ ? withLeaseSync(lockPath, fn, opts)
122
+ : withLockSync(lockPath, fn, opts);
123
+ }
111
124
  const registryLock = join(paths.registry, ".lock");
112
125
  const negotiationLock = (id) => join(negotiationDir(paths, id), ".lock");
113
126
  const inboxLock = (actor) => join(inboxDir(paths, actor), ".lock");
@@ -119,7 +132,7 @@ export function createLocalStore(options) {
119
132
  return listInstances().find((entry) => entry.id === id);
120
133
  }
121
134
  function registerInstance(reg) {
122
- withLockSync(registryLock, () => {
135
+ lock(registryLock, () => {
123
136
  if (findInstance(reg.id)) {
124
137
  throw new Error(`Instance already registered: ${reg.id}`);
125
138
  }
@@ -132,7 +145,7 @@ export function createLocalStore(options) {
132
145
  function openNegotiation(record) {
133
146
  assertValidNegotiationState(record.status);
134
147
  ensureDir(negotiationDir(paths, record.id));
135
- return withLockSync(negotiationLock(record.id), () => {
148
+ return lock(negotiationLock(record.id), () => {
136
149
  const file = negotiationStateFile(record.id);
137
150
  if (existsSync(file)) {
138
151
  throw new Error(`Negotiation already open: ${record.id}`);
@@ -150,7 +163,7 @@ export function createLocalStore(options) {
150
163
  function updateNegotiationStatus(id, status) {
151
164
  assertValidNegotiationState(status);
152
165
  ensureDir(negotiationDir(paths, id));
153
- return withLockSync(negotiationLock(id), () => {
166
+ return lock(negotiationLock(id), () => {
154
167
  const current = readNegotiation(id);
155
168
  if (!current) {
156
169
  throw new Error(`Negotiation not found: ${id}`);
@@ -176,7 +189,7 @@ export function createLocalStore(options) {
176
189
  }
177
190
  function appendNegotiationEvent(negotiationId, payload) {
178
191
  ensureDir(negotiationDir(paths, negotiationId));
179
- return withLockSync(negotiationLock(negotiationId), () => {
192
+ return lock(negotiationLock(negotiationId), () => {
180
193
  const file = negotiationJournalFile(paths, negotiationId);
181
194
  const existing = readNegotiationJournalUnlocked(negotiationId);
182
195
  const previous = existing[existing.length - 1];
@@ -189,7 +202,7 @@ export function createLocalStore(options) {
189
202
  }
190
203
  function stabilizeNegotiation(negotiationId, options = {}) {
191
204
  ensureDir(negotiationDir(paths, negotiationId));
192
- return withLockSync(negotiationLock(negotiationId), () => {
205
+ return lock(negotiationLock(negotiationId), () => {
193
206
  const record = readNegotiation(negotiationId);
194
207
  if (!record) {
195
208
  throw new Error(`Negotiation not found: ${negotiationId}`);
@@ -357,7 +370,7 @@ export function createLocalStore(options) {
357
370
  }
358
371
  const dir = inboxDir(paths, actor);
359
372
  ensureDir(dir);
360
- withLockSync(inboxLock(actor), () => {
373
+ lock(inboxLock(actor), () => {
361
374
  writeFileSync(envelopeFile(dir, envelope.id), JSON.stringify(envelope, null, 2), "utf8");
362
375
  }, lockOpts);
363
376
  }
@@ -367,7 +380,7 @@ export function createLocalStore(options) {
367
380
  function popInboxMessage(actor, envelopeId) {
368
381
  const dir = inboxDir(paths, actor);
369
382
  ensureDir(dir);
370
- return withLockSync(inboxLock(actor), () => {
383
+ return lock(inboxLock(actor), () => {
371
384
  const file = envelopeFile(dir, envelopeId);
372
385
  if (!existsSync(file))
373
386
  return undefined;
@@ -382,7 +395,7 @@ export function createLocalStore(options) {
382
395
  }
383
396
  const dir = outboxDir(paths, actor);
384
397
  ensureDir(dir);
385
- withLockSync(outboxLock(actor), () => {
398
+ lock(outboxLock(actor), () => {
386
399
  writeFileSync(envelopeFile(dir, envelope.id), JSON.stringify(envelope, null, 2), "utf8");
387
400
  }, lockOpts);
388
401
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/runtime/local-files/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/runtime/local-files/store.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/h2a-cli",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "Unified CLI surface for h2a hosts and MCP-oriented coordination flows.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -40,7 +40,7 @@
40
40
  "skills"
41
41
  ],
42
42
  "dependencies": {
43
- "@sentropic/h2a": "^0.1.26"
43
+ "@sentropic/h2a": "^0.1.28"
44
44
  },
45
45
  "publishConfig": {
46
46
  "access": "public"