@n24q02m/mcp-core 1.13.0-beta.2 → 1.13.0-beta.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"credential-form.d.ts","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACjD,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAUT;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AA8ED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAotB9F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"credential-form.d.ts","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACjD,MAAM,EAAE,iBAAiB,GACxB,OAAO,CAUT;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,cAAc,EAAE,CAAA;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AA8ED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CA8tB9F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qFAAqF;AACrF,wBAAgB,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAE7D"}
@@ -673,6 +673,7 @@ export function renderCredentialForm(schema, options) {
673
673
  form.addEventListener("input", function (event) {
674
674
  if (event.target.classList.contains("field-input")) {
675
675
  event.target.removeAttribute("aria-invalid");
676
+ event.target.removeAttribute("aria-errormessage");
676
677
  statusBox.style.display = "none";
677
678
  }
678
679
  });
@@ -683,19 +684,28 @@ export function renderCredentialForm(schema, options) {
683
684
  var inputs = form.querySelectorAll(".field-input");
684
685
  var payload = {};
685
686
  var valid = true;
687
+ var firstInvalid = null;
686
688
 
687
689
  inputs.forEach(function (input) {
688
690
  if (input.hasAttribute("required") && input.value.trim() === "") {
689
691
  valid = false;
690
692
  input.setAttribute("aria-invalid", "true");
693
+ input.setAttribute("aria-errormessage", "status-box");
694
+ if (!firstInvalid) {
695
+ firstInvalid = input;
696
+ }
691
697
  } else {
692
698
  input.removeAttribute("aria-invalid");
699
+ input.removeAttribute("aria-errormessage");
693
700
  payload[input.name] = input.value;
694
701
  }
695
702
  });
696
703
 
697
704
  if (!valid) {
698
705
  showStatus("error", "Please fill in all required fields.");
706
+ if (firstInvalid) {
707
+ firstInvalid.focus();
708
+ }
699
709
  return;
700
710
  }
701
711
 
@@ -1 +1 @@
1
- {"version":3,"file":"credential-form.js","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credential-form.js","sourceRoot":"","sources":["../../src/auth/credential-form.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -5,11 +5,11 @@ export { InMemoryAuthCache, type IOAuthSessionCache, OAuthProvider, type OAuthPr
5
5
  export { type IUserCredentialStore, SqliteUserStore } from './oauth/user-store.js';
6
6
  export { tryOpenBrowser } from './relay/browser.js';
7
7
  export { createSession, generatePassphrase, notifyComplete, pollForResponses, pollForResult, type RelaySession, sendMessage } from './relay/client.js';
8
- export { buildOpenRelayHandler, type OpenRelayResult, type OpenRelaySchema, registerOpenRelayTool, type ToolRegistrar } from './relay/tool-helpers.js';
8
+ export { buildOpenRelayHandler, type OpenRelayHandlerOptions, type OpenRelayResult, registerOpenRelayTool, type ToolRegistrar } from './relay/tool-helpers.js';
9
9
  export type * from './schema/types.js';
10
10
  export { deleteConfig, exportConfig, importConfig, listConfigs, readConfig, scheduleReloadExit, writeConfig } from './storage/config-file.js';
11
11
  export { clearMode, getMode, type ServerMode, setLocalMode } from './storage/mode.js';
12
12
  export * from './storage/resolver.js';
13
13
  export { acquireSessionLock, releaseSessionLock, type SessionInfo, writeSessionLock } from './storage/session-lock.js';
14
- export { type LocalServerHandle, type RunLocalServerOptions, runLocalServer } from './transport/local-server.js';
14
+ export { type HttpServerHandle, type RunHttpServerOptions, runHttpServer } from './transport/local-server.js';
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAA;AACxB,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,KAAK,YAAY,EACjB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAA;AAChC,mBAAmB,mBAAmB,CAAA;AACtC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrF,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,WAAW,EAChB,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,cAAc,EACf,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,2BAA2B,EAC3B,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,mBAAmB,EACnB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,QAAQ,EACb,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,WAAW,EAChB,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAA;AACxB,cAAc,mBAAmB,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,KAAK,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,KAAK,YAAY,EACjB,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAA;AAChC,mBAAmB,mBAAmB,CAAA;AACtC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrF,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,WAAW,EAChB,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,aAAa,EACd,MAAM,6BAA6B,CAAA"}
package/build/index.js CHANGED
@@ -13,6 +13,6 @@ export { deleteConfig, exportConfig, importConfig, listConfigs, readConfig, sche
13
13
  export { clearMode, getMode, setLocalMode } from './storage/mode.js';
14
14
  export * from './storage/resolver.js';
15
15
  export { acquireSessionLock, releaseSessionLock, writeSessionLock } from './storage/session-lock.js';
16
- // Local MCP server entry point (OAuth AS + /mcp transport on 127.0.0.1)
17
- export { runLocalServer } from './transport/local-server.js';
16
+ // HTTP MCP server entry point (OAuth AS + /mcp transport on 127.0.0.1)
17
+ export { runHttpServer } from './transport/local-server.js';
18
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,2EAA2E;AAC3E,OAAO,EACL,2BAA2B,EAI3B,uBAAuB,EACvB,mBAAmB,EAQnB,yBAAyB,EAGzB,oBAAoB,EAKrB,MAAM,iBAAiB,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EACL,iBAAiB,EAEjB,aAAa,EAGd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAA6B,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,qBAAqB,EAGrB,qBAAqB,EAEtB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAmB,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrF,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAElB,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAClC,wEAAwE;AACxE,OAAO,EAGL,cAAc,EACf,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,2EAA2E;AAC3E,OAAO,EACL,2BAA2B,EAI3B,uBAAuB,EACvB,mBAAmB,EAQnB,yBAAyB,EAGzB,oBAAoB,EAKrB,MAAM,iBAAiB,CAAA;AACxB,cAAc,mBAAmB,CAAA;AACjC,kDAAkD;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACjD,OAAO,EACL,iBAAiB,EAEjB,aAAa,EAGd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAA6B,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,aAAa,EAEb,WAAW,EACZ,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,qBAAqB,EAGrB,qBAAqB,EAEtB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,WAAW,EACZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAmB,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrF,cAAc,uBAAuB,CAAA;AACrC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAElB,gBAAgB,EACjB,MAAM,2BAA2B,CAAA;AAClC,uEAAuE;AACvE,OAAO,EAGL,aAAa,EACd,MAAM,6BAA6B,CAAA"}
@@ -1,122 +1,66 @@
1
1
  /**
2
- * Lock-file lifecycle helpers (D9 hybrid TTL extension).
2
+ * Lock-file lifecycle helpers for HTTP server mode.
3
3
  *
4
- * The lock file written by `runLocalServer` may contain 4 lines (legacy
5
- * v1) or 6 lines (D9 modern):
4
+ * After the stdio-pure + http-multi-user split, lock files are used solely
5
+ * by `runHttpServer` to prevent two HTTP servers binding the same port for
6
+ * the same `serverName`. They are no longer used to discover or steer
7
+ * daemon-bridge processes; per-credState TTLs and PID liveness checks have
8
+ * been removed along with the daemon model.
9
+ *
10
+ * On-disk format (4 lines + trailing newline, padded to 512 bytes):
6
11
  *
7
12
  * ```
8
13
  * {pid}
9
14
  * {port}
10
15
  * {token}
11
16
  * {spawnedAt_iso8601_utc}
12
- * {credState} # "configured" | "unconfigured" (D9)
13
- * {lastActivityAt_iso8601_utc} # bumped by daemon refresh loop (D9)
14
17
  * ```
15
18
  *
16
- * Stale locks are detected when *any* of:
17
- * - file has legacy 3-line format (no timestamp) migrate by deletion
18
- * - timestamp older than the applicable TTL
19
- * - configured credState → 24h
20
- * - unconfigured credState → 30 min
21
- * - writing PID does not exist on this host
22
- *
23
- * Dead-PID locks are reaped immediately. Past-TTL idle setup daemons
24
- * (unconfigured) are terminated; configured daemons past TTL get their
25
- * lock unlinked but the process is left alone (parity with pre-D9 sweep
26
- * behavior so a long-running daemon never gets SIGKILL'd by a sweep
27
- * race).
19
+ * `sweepStaleLocks` removes lock files whose `spawnedAt` is older than the
20
+ * configured TTL. There is no daemon to terminate the HTTP server owns
21
+ * its own lifecycle and exits when its parent process exits.
28
22
  *
29
- * TypeScript port of core-py's `mcp_core.lifecycle.lock`. Behaviour and
30
- * TTL constants kept identical for cross-language parity.
23
+ * TypeScript port of core-py's `mcp_core.lifecycle.lock`. Behaviour kept
24
+ * identical for cross-language parity.
31
25
  */
32
26
  export declare const DEFAULT_LOCK_TTL_HOURS = 24;
33
- /** D9 hybrid TTL constants selected by `credState` in `sweepStaleLocks`. */
34
- export declare const LIFECYCLE_TTL_CONFIGURED_MS: number;
35
- export declare const LIFECYCLE_TTL_UNCONFIGURED_MS: number;
36
- export type CredState = 'configured' | 'unconfigured';
37
- /**
38
- * Parsed lock metadata. `createdAt` is preserved as a backward-compat
39
- * alias for `spawnedAt` so pre-D9 callers (test_lock format suite,
40
- * `refreshLockTimestamp`) continue to work without source changes.
41
- */
27
+ /** Parsed lock metadatashared by sweep and refresh helpers. */
42
28
  export interface LockMetadata {
43
29
  pid: number;
44
30
  port: number;
45
31
  token: string;
46
32
  spawnedAt: Date;
47
- credState: CredState;
48
- lastActivityAt: Date;
49
- /** @deprecated Alias for `spawnedAt`. New code should read `spawnedAt`. */
50
- createdAt: Date;
51
33
  }
52
34
  export declare function locksDir(root?: string): string;
53
35
  /**
54
- * No-arg lock-dir resolver — D9 sweep tests `vi.spyOn(lockModule, 'lockDir')`
36
+ * No-arg lock-dir resolver — sweep tests `vi.spyOn(lockModule, 'lockDir')`
55
37
  * to redirect into a temp directory without threading a `root` arg.
56
38
  */
57
39
  export declare function lockDir(): string;
58
- /**
59
- * Serialize `LockMetadata` to the 6-line on-disk format. Trailing
60
- * newline included so writes always end in `\n` and the parser's
61
- * `lines.length` checks behave deterministically.
62
- */
63
- export declare function serializeLock(meta: LockMetadata): string;
64
- /**
65
- * Parse the textual lock payload into `LockMetadata`. Accepts 4-line
66
- * legacy, 5-line transitional, and 6-line D9 modern formats. Throws on
67
- * fewer than 4 lines or unparseable timestamp / pid / port.
68
- */
69
- export declare function parseLock(raw: string): LockMetadata;
70
- export declare function parseLockMetadata(path: string): LockMetadata | null;
71
- export declare function isLockExpired(path: string, ttlHours?: number): boolean;
72
- /**
73
- * Cross-platform PID liveness check via `process.kill(pid, 0)`. Best-effort.
74
- * Returns false on EPERM (different-user processes) so sweep does not steal
75
- * locks owned by other users. Pre-D9 entry point — kept for backward compat.
76
- */
77
- export declare function isPidAlive(pid: number): boolean;
78
- /**
79
- * Liveness check on a parsed `LockMetadata`. D9 sweep tests
80
- * `vi.spyOn(lockModule, 'isAlive')` to control the alive/dead branch
81
- * without needing a real PID. Wraps `isPidAlive` so the underlying
82
- * cross-platform logic stays in one place.
83
- */
84
- export declare function isAlive(meta: LockMetadata): boolean;
85
- /**
86
- * Kill the lock owner. D9 sweep tests `vi.spyOn(lockModule, 'terminateDaemon')`
87
- * to assert the unconfigured-TTL branch invokes termination, without
88
- * killing real PIDs. Used by `sweepStaleLocks` when an unconfigured
89
- * daemon's idle TTL elapses.
90
- */
91
- export declare function terminateDaemon(pid: number): void;
92
40
  /**
93
41
  * Refresh `spawnedAt` of an existing lock file. Silent no-op on legacy /
94
42
  * malformed files so callers don't need try/except.
95
43
  *
96
44
  * Padded to 512 bytes so on-disk size stays stable while a Windows
97
45
  * byte-range lock is held past the metadata region (parity with core-py).
98
- * Preserves the on-disk line count: a 4-line legacy lock stays 4-line
99
- * after refresh; a 6-line modern lock stays 6-line (with both `spawnedAt`
100
- * and `lastActivityAt` bumped).
101
46
  */
102
47
  export declare function refreshLockTimestamp(path: string): void;
103
48
  /**
104
- * Remove stale lock files for `serverName` (D9 hybrid TTL). Returns count removed.
49
+ * Remove stale lock files for `serverName`. Returns count removed.
105
50
  *
106
- * Called by `runLocalServer` at daemon startup before writing its own lock,
107
- * preventing pile-up of dozens of `<server>-<port>.lock` files when daemons
108
- * exit abnormally (Windows OOM, taskkill, signal).
51
+ * Called by `runHttpServer` at startup before writing its own lock,
52
+ * preventing pile-up of dozens of `<server>-<port>.lock` files when HTTP
53
+ * servers exit abnormally (Windows OOM, taskkill, signal).
109
54
  *
110
- * Backward-compat: the legacy signature `(serverName, ttlHours, root)` is
111
- * preserved for pre-D9 callers. New D9 callers pass just `serverName` and
112
- * rely on the hybrid TTL plus the `lockDir()` lookup (mockable in tests).
55
+ * A lock is stale when:
56
+ * - file is unreadable or has malformed payload (legacy / corrupt)
57
+ * - `spawnedAt` is older than the TTL
113
58
  */
114
59
  export declare function sweepStaleLocks(serverName: string, ttlHours?: number, root?: string): number;
115
60
  /**
116
61
  * Write the 4-line lock payload (pid, port, token, ISO timestamp) padded
117
- * to 512 bytes. Used by `runLocalServer` after the OS file lock is
118
- * acquired. Continues to write 4-line for backward compat — D9 sweep
119
- * treats 4-line as `credState='configured'` so behavior is equivalent.
62
+ * to 512 bytes. Used by `runHttpServer` after the OS file lock is
63
+ * acquired.
120
64
  *
121
65
  * Returns the absolute path to the lock file.
122
66
  */
@@ -1 +1 @@
1
- {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAcH,eAAO,MAAM,sBAAsB,KAAK,CAAA;AAExC,8EAA8E;AAC9E,eAAO,MAAM,2BAA2B,QAAmB,CAAA;AAC3D,eAAO,MAAM,6BAA6B,QAAiB,CAAA;AAE3D,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,CAAA;AAErD;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,IAAI,CAAA;IACpB,2EAA2E;IAC3E,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAUxD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAuBnD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkBnE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAA+B,GAAG,OAAO,CAK9F;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAU/C;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAsBvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAsE5F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpG"}
1
+ {"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/lifecycle/lock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAcH,eAAO,MAAM,sBAAsB,KAAK,CAAA;AAExC,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;GAGG;AACH,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AAeD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBvD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAoD5F;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAMpG"}
@@ -1,179 +1,63 @@
1
1
  /**
2
- * Lock-file lifecycle helpers (D9 hybrid TTL extension).
2
+ * Lock-file lifecycle helpers for HTTP server mode.
3
3
  *
4
- * The lock file written by `runLocalServer` may contain 4 lines (legacy
5
- * v1) or 6 lines (D9 modern):
4
+ * After the stdio-pure + http-multi-user split, lock files are used solely
5
+ * by `runHttpServer` to prevent two HTTP servers binding the same port for
6
+ * the same `serverName`. They are no longer used to discover or steer
7
+ * daemon-bridge processes; per-credState TTLs and PID liveness checks have
8
+ * been removed along with the daemon model.
9
+ *
10
+ * On-disk format (4 lines + trailing newline, padded to 512 bytes):
6
11
  *
7
12
  * ```
8
13
  * {pid}
9
14
  * {port}
10
15
  * {token}
11
16
  * {spawnedAt_iso8601_utc}
12
- * {credState} # "configured" | "unconfigured" (D9)
13
- * {lastActivityAt_iso8601_utc} # bumped by daemon refresh loop (D9)
14
17
  * ```
15
18
  *
16
- * Stale locks are detected when *any* of:
17
- * - file has legacy 3-line format (no timestamp) migrate by deletion
18
- * - timestamp older than the applicable TTL
19
- * - configured credState → 24h
20
- * - unconfigured credState → 30 min
21
- * - writing PID does not exist on this host
22
- *
23
- * Dead-PID locks are reaped immediately. Past-TTL idle setup daemons
24
- * (unconfigured) are terminated; configured daemons past TTL get their
25
- * lock unlinked but the process is left alone (parity with pre-D9 sweep
26
- * behavior so a long-running daemon never gets SIGKILL'd by a sweep
27
- * race).
19
+ * `sweepStaleLocks` removes lock files whose `spawnedAt` is older than the
20
+ * configured TTL. There is no daemon to terminate the HTTP server owns
21
+ * its own lifecycle and exits when its parent process exits.
28
22
  *
29
- * TypeScript port of core-py's `mcp_core.lifecycle.lock`. Behaviour and
30
- * TTL constants kept identical for cross-language parity.
23
+ * TypeScript port of core-py's `mcp_core.lifecycle.lock`. Behaviour kept
24
+ * identical for cross-language parity.
31
25
  */
32
26
  import { existsSync, readdirSync, readFileSync, unlinkSync, writeFileSync } from 'node:fs';
33
27
  import { homedir } from 'node:os';
34
28
  import { join } from 'node:path';
35
- // Self-import so `sweepStaleLocks` can resolve `lockDir`/`isAlive`/
36
- // `terminateDaemon` through the module namespace at call time. This
37
- // makes `vi.spyOn(lockModule, '<name>').mockReturnValue(...)` actually
29
+ // Self-import so `sweepStaleLocks` can resolve `lockDir` through the
30
+ // module namespace at call time. This makes
31
+ // `vi.spyOn(lockModule, 'lockDir').mockReturnValue(...)` actually
38
32
  // intercept the helper from inside the sweep loop — without this
39
33
  // indirection, the closure-captured local binding ignores spies and
40
34
  // test mocks become silent no-ops.
41
35
  import * as self from './lock.js';
42
36
  export const DEFAULT_LOCK_TTL_HOURS = 24;
43
- /** D9 hybrid TTL constants — selected by `credState` in `sweepStaleLocks`. */
44
- export const LIFECYCLE_TTL_CONFIGURED_MS = 24 * 3600 * 1000;
45
- export const LIFECYCLE_TTL_UNCONFIGURED_MS = 30 * 60 * 1000;
46
37
  export function locksDir(root) {
47
38
  return root ?? join(homedir(), '.config', 'mcp', 'locks');
48
39
  }
49
40
  /**
50
- * No-arg lock-dir resolver — D9 sweep tests `vi.spyOn(lockModule, 'lockDir')`
41
+ * No-arg lock-dir resolver — sweep tests `vi.spyOn(lockModule, 'lockDir')`
51
42
  * to redirect into a temp directory without threading a `root` arg.
52
43
  */
53
44
  export function lockDir() {
54
45
  return locksDir();
55
46
  }
56
- /**
57
- * Serialize `LockMetadata` to the 6-line on-disk format. Trailing
58
- * newline included so writes always end in `\n` and the parser's
59
- * `lines.length` checks behave deterministically.
60
- */
61
- export function serializeLock(meta) {
62
- return [
63
- String(meta.pid),
64
- String(meta.port),
65
- meta.token,
66
- meta.spawnedAt.toISOString(),
67
- meta.credState,
68
- meta.lastActivityAt.toISOString(),
69
- ''
70
- ].join('\n');
71
- }
72
- /**
73
- * Parse the textual lock payload into `LockMetadata`. Accepts 4-line
74
- * legacy, 5-line transitional, and 6-line D9 modern formats. Throws on
75
- * fewer than 4 lines or unparseable timestamp / pid / port.
76
- */
77
- export function parseLock(raw) {
47
+ /** Internal helper: parse the textual lock payload into `LockMetadata`. */
48
+ function parseLockText(raw) {
78
49
  const lines = raw.replace(/\n+$/, '').split('\n');
79
50
  if (lines.length < 4)
80
- throw new Error(`lock file too few lines: ${lines.length}`);
51
+ return null;
81
52
  const pid = Number(lines[0]);
82
53
  const port = Number(lines[1]);
83
- if (!Number.isInteger(pid) || !Number.isInteger(port)) {
84
- throw new Error(`lock file has non-integer pid/port`);
85
- }
54
+ if (!Number.isInteger(pid) || !Number.isInteger(port))
55
+ return null;
86
56
  const token = lines[2];
87
57
  const spawnedAt = new Date(lines[3]);
88
- if (Number.isNaN(spawnedAt.getTime())) {
89
- throw new Error(`lock file has unparseable spawnedAt`);
90
- }
91
- let credState = 'configured';
92
- let lastActivityAt = spawnedAt;
93
- if (lines.length >= 6) {
94
- credState = lines[4];
95
- lastActivityAt = new Date(lines[5]);
96
- if (Number.isNaN(lastActivityAt.getTime()))
97
- lastActivityAt = spawnedAt;
98
- }
99
- else if (lines.length === 5) {
100
- credState = lines[4];
101
- }
102
- return { pid, port, token, spawnedAt, credState, lastActivityAt, createdAt: spawnedAt };
103
- }
104
- export function parseLockMetadata(path) {
105
- if (!existsSync(path))
58
+ if (Number.isNaN(spawnedAt.getTime()))
106
59
  return null;
107
- let content;
108
- try {
109
- content = readFileSync(path, { encoding: 'utf-8' });
110
- }
111
- catch {
112
- return null;
113
- }
114
- const lines = content.trim().split('\n');
115
- // Pre-D9 callers expect null for legacy 3-line format. The new
116
- // `parseLock` instead throws — adapter logic here keeps both
117
- // contracts: legacy / corrupt -> null; valid 4/5/6-line -> populated.
118
- if (lines.length < 4)
119
- return null;
120
- try {
121
- return parseLock(content);
122
- }
123
- catch {
124
- return null;
125
- }
126
- }
127
- export function isLockExpired(path, ttlHours = DEFAULT_LOCK_TTL_HOURS) {
128
- const md = parseLockMetadata(path);
129
- if (md === null)
130
- return true;
131
- const ageMs = Date.now() - md.spawnedAt.getTime();
132
- return ageMs > ttlHours * 3600 * 1000;
133
- }
134
- /**
135
- * Cross-platform PID liveness check via `process.kill(pid, 0)`. Best-effort.
136
- * Returns false on EPERM (different-user processes) so sweep does not steal
137
- * locks owned by other users. Pre-D9 entry point — kept for backward compat.
138
- */
139
- export function isPidAlive(pid) {
140
- if (pid <= 0)
141
- return false;
142
- try {
143
- process.kill(pid, 0);
144
- return true;
145
- }
146
- catch (err) {
147
- const code = err?.code;
148
- if (code === 'EPERM')
149
- return true; // exists but we lack permission
150
- return false;
151
- }
152
- }
153
- /**
154
- * Liveness check on a parsed `LockMetadata`. D9 sweep tests
155
- * `vi.spyOn(lockModule, 'isAlive')` to control the alive/dead branch
156
- * without needing a real PID. Wraps `isPidAlive` so the underlying
157
- * cross-platform logic stays in one place.
158
- */
159
- export function isAlive(meta) {
160
- return isPidAlive(meta.pid);
161
- }
162
- /**
163
- * Kill the lock owner. D9 sweep tests `vi.spyOn(lockModule, 'terminateDaemon')`
164
- * to assert the unconfigured-TTL branch invokes termination, without
165
- * killing real PIDs. Used by `sweepStaleLocks` when an unconfigured
166
- * daemon's idle TTL elapses.
167
- */
168
- export function terminateDaemon(pid) {
169
- if (pid <= 0)
170
- return;
171
- try {
172
- process.kill(pid, 'SIGKILL');
173
- }
174
- catch {
175
- /* ignore */
176
- }
60
+ return { pid, port, token, spawnedAt };
177
61
  }
178
62
  /**
179
63
  * Refresh `spawnedAt` of an existing lock file. Silent no-op on legacy /
@@ -181,13 +65,9 @@ export function terminateDaemon(pid) {
181
65
  *
182
66
  * Padded to 512 bytes so on-disk size stays stable while a Windows
183
67
  * byte-range lock is held past the metadata region (parity with core-py).
184
- * Preserves the on-disk line count: a 4-line legacy lock stays 4-line
185
- * after refresh; a 6-line modern lock stays 6-line (with both `spawnedAt`
186
- * and `lastActivityAt` bumped).
187
68
  */
188
69
  export function refreshLockTimestamp(path) {
189
- const md = parseLockMetadata(path);
190
- if (md === null)
70
+ if (!existsSync(path))
191
71
  return;
192
72
  let raw;
193
73
  try {
@@ -196,15 +76,11 @@ export function refreshLockTimestamp(path) {
196
76
  catch {
197
77
  return;
198
78
  }
199
- const lineCount = raw.trim().split('\n').length;
79
+ const md = parseLockText(raw);
80
+ if (md === null)
81
+ return;
200
82
  const now = new Date().toISOString();
201
- let payload;
202
- if (lineCount >= 6) {
203
- payload = `${md.pid}\n${md.port}\n${md.token}\n${now}\n${md.credState}\n${now}\n`;
204
- }
205
- else {
206
- payload = `${md.pid}\n${md.port}\n${md.token}\n${now}\n`;
207
- }
83
+ const payload = `${md.pid}\n${md.port}\n${md.token}\n${now}\n`;
208
84
  try {
209
85
  writeFileSync(path, payload.padEnd(512, ' '), { encoding: 'utf-8' });
210
86
  }
@@ -213,15 +89,15 @@ export function refreshLockTimestamp(path) {
213
89
  }
214
90
  }
215
91
  /**
216
- * Remove stale lock files for `serverName` (D9 hybrid TTL). Returns count removed.
92
+ * Remove stale lock files for `serverName`. Returns count removed.
217
93
  *
218
- * Called by `runLocalServer` at daemon startup before writing its own lock,
219
- * preventing pile-up of dozens of `<server>-<port>.lock` files when daemons
220
- * exit abnormally (Windows OOM, taskkill, signal).
94
+ * Called by `runHttpServer` at startup before writing its own lock,
95
+ * preventing pile-up of dozens of `<server>-<port>.lock` files when HTTP
96
+ * servers exit abnormally (Windows OOM, taskkill, signal).
221
97
  *
222
- * Backward-compat: the legacy signature `(serverName, ttlHours, root)` is
223
- * preserved for pre-D9 callers. New D9 callers pass just `serverName` and
224
- * rely on the hybrid TTL plus the `lockDir()` lookup (mockable in tests).
98
+ * A lock is stale when:
99
+ * - file is unreadable or has malformed payload (legacy / corrupt)
100
+ * - `spawnedAt` is older than the TTL
225
101
  */
226
102
  export function sweepStaleLocks(serverName, ttlHours, root) {
227
103
  const dir = root !== undefined ? root : self.lockDir();
@@ -238,7 +114,7 @@ export function sweepStaleLocks(serverName, ttlHours, root) {
238
114
  const prefix = `${serverName}-`;
239
115
  const suffix = '.lock';
240
116
  const now = Date.now();
241
- const configuredTtlMs = (ttlHours ?? DEFAULT_LOCK_TTL_HOURS) * 3600 * 1000;
117
+ const ttlMs = (ttlHours ?? DEFAULT_LOCK_TTL_HOURS) * 3600 * 1000;
242
118
  for (const entry of entries) {
243
119
  if (!entry.startsWith(prefix) || !entry.endsWith(suffix))
244
120
  continue;
@@ -257,21 +133,8 @@ export function sweepStaleLocks(serverName, ttlHours, root) {
257
133
  }
258
134
  continue;
259
135
  }
260
- let meta;
261
- try {
262
- meta = parseLock(raw);
263
- }
264
- catch {
265
- try {
266
- unlinkSync(full);
267
- removed += 1;
268
- }
269
- catch {
270
- /* ignore */
271
- }
272
- continue;
273
- }
274
- if (!self.isAlive(meta)) {
136
+ const meta = parseLockText(raw);
137
+ if (meta === null) {
275
138
  try {
276
139
  unlinkSync(full);
277
140
  removed += 1;
@@ -281,14 +144,7 @@ export function sweepStaleLocks(serverName, ttlHours, root) {
281
144
  }
282
145
  continue;
283
146
  }
284
- const ttlMs = meta.credState === 'configured' ? configuredTtlMs : LIFECYCLE_TTL_UNCONFIGURED_MS;
285
- const lastActivityMs = meta.lastActivityAt.getTime();
286
- if (now - lastActivityMs > ttlMs) {
287
- // Only terminate idle setup daemons aggressively; preserve pre-D9
288
- // behavior of unlink-only for configured daemons past TTL.
289
- if (meta.credState === 'unconfigured') {
290
- self.terminateDaemon(meta.pid);
291
- }
147
+ if (now - meta.spawnedAt.getTime() > ttlMs) {
292
148
  try {
293
149
  unlinkSync(full);
294
150
  removed += 1;
@@ -302,9 +158,8 @@ export function sweepStaleLocks(serverName, ttlHours, root) {
302
158
  }
303
159
  /**
304
160
  * Write the 4-line lock payload (pid, port, token, ISO timestamp) padded
305
- * to 512 bytes. Used by `runLocalServer` after the OS file lock is
306
- * acquired. Continues to write 4-line for backward compat — D9 sweep
307
- * treats 4-line as `credState='configured'` so behavior is equivalent.
161
+ * to 512 bytes. Used by `runHttpServer` after the OS file lock is
162
+ * acquired.
308
163
  *
309
164
  * Returns the absolute path to the lock file.
310
165
  */
@@ -1 +1 @@
1
- {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lifecycle/lock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/lifecycle/lock.ts"],"names":[],"mappings":"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"}