@cotal-ai/core 0.7.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/channels.d.ts +11 -0
  2. package/dist/channels.d.ts.map +1 -1
  3. package/dist/channels.js +19 -0
  4. package/dist/channels.js.map +1 -1
  5. package/dist/connector.d.ts +15 -0
  6. package/dist/connector.d.ts.map +1 -1
  7. package/dist/endpoint.d.ts +33 -6
  8. package/dist/endpoint.d.ts.map +1 -1
  9. package/dist/endpoint.js +145 -7
  10. package/dist/endpoint.js.map +1 -1
  11. package/dist/fs-safe.d.ts +28 -0
  12. package/dist/fs-safe.d.ts.map +1 -0
  13. package/dist/fs-safe.js +86 -0
  14. package/dist/fs-safe.js.map +1 -0
  15. package/dist/index.d.ts +2 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +2 -2
  18. package/dist/index.js.map +1 -1
  19. package/dist/launch.d.ts +41 -0
  20. package/dist/launch.d.ts.map +1 -0
  21. package/dist/launch.js +10 -0
  22. package/dist/launch.js.map +1 -0
  23. package/dist/lease.d.ts +11 -0
  24. package/dist/lease.d.ts.map +1 -1
  25. package/dist/lease.js.map +1 -1
  26. package/dist/provision.d.ts +0 -11
  27. package/dist/provision.d.ts.map +1 -1
  28. package/dist/provision.js +6 -36
  29. package/dist/provision.js.map +1 -1
  30. package/dist/runtime.d.ts +2 -2
  31. package/dist/runtime.d.ts.map +1 -1
  32. package/dist/streams.d.ts +5 -0
  33. package/dist/streams.d.ts.map +1 -1
  34. package/dist/streams.js +5 -0
  35. package/dist/streams.js.map +1 -1
  36. package/dist/subjects.d.ts +7 -0
  37. package/dist/subjects.d.ts.map +1 -1
  38. package/dist/subjects.js +9 -0
  39. package/dist/subjects.js.map +1 -1
  40. package/dist/terminal.d.ts +10 -3
  41. package/dist/terminal.d.ts.map +1 -1
  42. package/package.json +1 -1
  43. package/dist/mesh-registry.d.ts +0 -45
  44. package/dist/mesh-registry.d.ts.map +0 -1
  45. package/dist/mesh-registry.js +0 -78
  46. package/dist/mesh-registry.js.map +0 -1
  47. package/dist/mesh-target.d.ts +0 -42
  48. package/dist/mesh-target.d.ts.map +0 -1
  49. package/dist/mesh-target.js +0 -95
  50. package/dist/mesh-target.js.map +0 -1
@@ -68,6 +68,17 @@ export declare function seedChannelRegistry(opts: {
68
68
  creds?: string;
69
69
  file: ChannelRegistryFile;
70
70
  }): Promise<void>;
71
+ /** Connect (privileged/open), delete the given channel-registry keys, disconnect. Used by
72
+ * `cotal down -f` to remove ONLY the cards a `spawn -f` run created (ownership-scoped); the caller is
73
+ * responsible for the members-present safety check. The bucket must already exist (no create on a
74
+ * delete path); a key that's already absent is a no-op. The space-wide defaults key is never a
75
+ * channel name, so it can't be removed here. */
76
+ export declare function deleteChannels(opts: {
77
+ servers: string;
78
+ space: string;
79
+ creds?: string;
80
+ channels: string[];
81
+ }): Promise<void>;
71
82
  /** Connect, read the whole registry (defaults + every channel entry) into a
72
83
  * {@link ChannelRegistryFile}, disconnect. The read side of {@link seedChannelRegistry},
73
84
  * used by `cotal channels list`. */
@@ -1 +1 @@
1
- {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAO,KAAK,EAAE,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE3F,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhF,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC1C;AAED;iFACiF;AACjF,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAC3C,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;yDACyD;AACzD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAgB9D;AAED;;sDAEsD;AACtD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,eAAe,GAAG,IAAI,CAIhE;AAED;8EAC8E;AAC9E,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;8EAC8E;AAC9E,wBAAgB,eAAe,CAC7B,GAAG,EAAE,aAAa,GAAG,SAAS,EAC9B,QAAQ,EAAE,eAAe,GAAG,SAAS,GACpC,OAAO,CAET;AAED;8EAC8E;AAC9E,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,aAAa,GAAG,SAAS,EAC9B,QAAQ,EAAE,eAAe,GAAG,SAAS,GACpC,MAAM,GAAG,SAAS,CAGpB;AAED;;;;8CAI8C;AAC9C,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,aAAa,GAAG,SAAS,EAC9B,QAAQ,EAAE,eAAe,GAAG,SAAS,GACpC,aAAa,CAEf;AAED;;wFAEwF;AACxF,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9B,OAAO,CAAC,EAAE,CAAC,CAGb;AAED,iEAAiE;AACjE,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAEpC;AAED,4DAA4D;AAC5D,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAEtF;AAED;gFACgF;AAChF,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;wFACwF;AACxF,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAIxF;AAYD;;;iGAGiG;AACjG,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,mBAAmB,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBhB;AAED;;qCAEqC;AACrC,wBAAsB,mBAAmB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAuB/B"}
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}
package/dist/channels.js CHANGED
@@ -131,6 +131,25 @@ export async function seedChannelRegistry(opts) {
131
131
  await nc.drain();
132
132
  }
133
133
  }
134
+ /** Connect (privileged/open), delete the given channel-registry keys, disconnect. Used by
135
+ * `cotal down -f` to remove ONLY the cards a `spawn -f` run created (ownership-scoped); the caller is
136
+ * responsible for the members-present safety check. The bucket must already exist (no create on a
137
+ * delete path); a key that's already absent is a no-op. The space-wide defaults key is never a
138
+ * channel name, so it can't be removed here. */
139
+ export async function deleteChannels(opts) {
140
+ const nc = await connect({
141
+ servers: opts.servers,
142
+ ...(opts.creds ? { authenticator: credsAuthenticator(new TextEncoder().encode(opts.creds)) } : {}),
143
+ });
144
+ try {
145
+ const kv = await openChannelRegistry(nc, opts.space, { create: false });
146
+ for (const channel of opts.channels)
147
+ await kv.delete(channel);
148
+ }
149
+ finally {
150
+ await nc.drain();
151
+ }
152
+ }
134
153
  /** Connect, read the whole registry (defaults + every channel entry) into a
135
154
  * {@link ChannelRegistryFile}, disconnect. The read side of {@link seedChannelRegistry},
136
155
  * used by `cotal channels list`. */
@@ -1 +1 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../src/channels.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,GAAG,EAAW,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAuB,MAAM,yBAAyB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAUpE;iFACiF;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C;yDACyD;AACzD,MAAM,UAAU,qBAAqB,CAAC,GAAkB;IACtD,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,uBAAuB;QACnF,MAAM,IAAI,KAAK,CACb,iCAAiC,GAAG,CAAC,WAAW,CAAC,MAAM,MAAM,uBAAuB,SAAS,CAC9F,CAAC;IACJ,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,wBAAwB;QACtF,MAAM,IAAI,KAAK,CACb,kCAAkC,GAAG,CAAC,YAAY,CAAC,MAAM,MAAM,wBAAwB,SAAS,CACjG,CAAC;IACJ,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;QAAE,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;IAC7F,IACE,GAAG,CAAC,aAAa,KAAK,SAAS;QAC/B,GAAG,CAAC,aAAa,KAAK,MAAM;QAC5B,GAAG,CAAC,aAAa,KAAK,SAAS;QAE/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,aAAa,kCAAkC,CAAC,CAAC;AACnG,CAAC;AAED;;sDAEsD;AACtD,MAAM,UAAU,uBAAuB,CAAC,CAAkB;IACxD,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS;QAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,wBAAwB;IACzF,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,aAAa,KAAK,MAAM,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;QAC9F,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,aAAa,kCAAkC,CAAC,CAAC;AACjG,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,aAAa,CAAC,CAAS;IACrC,MAAM,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,4CAA4C,CAAC,CAAC;IAC5F,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAA0B,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,IAAI,CAAC;AAClB,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,eAAe,CAC7B,GAA8B,EAC9B,QAAqC;IAErC,OAAO,GAAG,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,IAAI,CAAC;AACjD,CAAC;AAED;8EAC8E;AAC9E,MAAM,UAAU,uBAAuB,CACrC,GAA8B,EAC9B,QAAqC;IAErC,MAAM,CAAC,GAAG,GAAG,EAAE,YAAY,IAAI,QAAQ,EAAE,YAAY,CAAC;IACtD,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;8CAI8C;AAC9C,MAAM,UAAU,sBAAsB,CACpC,GAA8B,EAC9B,QAAqC;IAErC,OAAO,GAAG,EAAE,aAAa,IAAI,QAAQ,EAAE,aAAa,IAAI,SAAS,CAAC;AACpE,CAAC;AAED;;wFAEwF;AACxF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAkB,EAClB,KAAa,EACb,OAA6B,EAAE;IAE/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,EAAM,EACN,OAAe;IAEf,OAAO,MAAM,CAAgB,EAAE,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED,4DAA4D;AAC5D,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAM;IAC9C,OAAO,MAAM,CAAkB,EAAE,EAAE,oBAAoB,CAAC,CAAC;AAC3D,CAAC;AAED;gFACgF;AAChF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAM,EACN,OAAe,EACf,KAAoB;IAEpB,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAkB,EAAE,GAAG,CAAC,MAAM,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACtF,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAChD,CAAC;AAED;wFACwF;AACxF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EAAM,EAAE,KAAsB;IACvE,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAoB,EAAE,GAAG,CAAC,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACjF,MAAM,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,KAAK,UAAU,MAAM,CAAI,EAAM,EAAE,GAAW;IAC1C,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC7E,IAAI,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,EAAK,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;iGAGiG;AACjG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAKzC;IACC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,EAAE,aAAa,EAAE,kBAAkB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,IAAI,CAAC;QACH,yFAAyF;QACzF,0FAA0F;QAC1F,uEAAuE;QACvE,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,MAAM,oBAAoB,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;YACnE,MAAM,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;iDAIiD;AACjD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAKpC;IACC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,kBAAkB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnG,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ;YAAE,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;qCAEqC;AACrC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAIzC;IACC,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,GAAG,CAAC,IAAI,CAAC,KAAK;YACZ,CAAC,CAAC,EAAE,aAAa,EAAE,kBAAkB,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7E,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAkC,EAAE,CAAC;QACnD,IAAI,QAAqC,CAAC;QAC1C,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;gBACjC,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,CAAC,CAAC;gBACzC,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,GAAG;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;YAAS,CAAC;QACT,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC;AACH,CAAC"}
@@ -13,6 +13,16 @@ export interface LaunchOpts {
13
13
  * as `id`; absent when the mesh runs open. */
14
14
  creds?: string;
15
15
  servers?: string;
16
+ /** The agent's resolved access policy — the SAME read/post set the manager mints the agent's
17
+ * creds from. The connector forwards it (`COTAL_SUBSCRIBE` / `COTAL_ALLOW_SUBSCRIBE` /
18
+ * `COTAL_ALLOW_PUBLISH`) so the session's runtime read set matches its credentials. Essential
19
+ * for manifest spawns, whose materialized persona carries NO access frontmatter: without it the
20
+ * connector falls back to `["general"]`, which the scoped creds deny — so the agent joins
21
+ * nothing. Empty/absent lists are omitted (the connector then defers to the persona file or the
22
+ * `general` baseline — the no-channel case). */
23
+ subscribe?: string[];
24
+ allowSubscribe?: string[];
25
+ allowPublish?: string[];
16
26
  /** Path to an agent definition file (`.cotal/agents/<name>.md`). The connector
17
27
  * passes it through (`COTAL_AGENT_FILE`) so the joined session reads its own
18
28
  * card from it, and applies the file's persona/model at launch. */
@@ -35,6 +45,11 @@ export interface LaunchOpts {
35
45
  * (Claude launches isolated with `--strict-mcp-config`). Connectors that don't support sharing
36
46
  * throw on a non-empty map rather than silently dropping it. */
37
47
  mcpServers?: Record<string, McpServerSpec>;
48
+ /** The manager's workspace root. Connectors that keep per-agent local state (e.g. the OpenCode
49
+ * connector's SQLite DB + serve pidfile) pin it here so a per-agent working directory — which can
50
+ * point at any repo — doesn't scatter that state into the target tree. The per-agent working
51
+ * directory itself is the manager's concern and is passed to the runtime, not here. */
52
+ workspaceRoot?: string;
38
53
  }
39
54
  /** A recipe for starting an agent as a mesh node — command, args, and extra env. */
40
55
  export interface LaunchSpec {
@@ -1 +1 @@
1
- {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;8EAE0E;IAC1E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;wEAEoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;0GAEsG;IACtG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;kFAE8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;yFAEqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;qEAIiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC5C;AAED,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;+CAG2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC1C;;;;yCAIqC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;+DAG2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
1
+ {"version":3,"file":"connector.d.ts","sourceRoot":"","sources":["../src/connector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;8EAE0E;IAC1E,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;mDAC+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;qDAMiD;IACjD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;wEAEoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;0GAEsG;IACtG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;kFAE8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;yFAEqF;IACrF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;qEAIiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C;;;4FAGwF;IACxF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oFAAoF;AACpF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;;+CAG2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC1C;;;;yCAIqC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC;;;+DAG2D;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B"}
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter } from "node:events";
2
2
  import type { AgentCard, ChannelConfig, ControlReply, ControlRequest, ControlRequestInit, EndpointRef, Part, Presence, PresenceStatus, AttentionMode, ChannelMode, CotalMessage, DeliveryClass, MembershipSnapshot } from "./types.js";
3
- import { type DeliveryLeaseInfo } from "./lease.js";
3
+ import { type DeliveryLeaseInfo, type ManagerLeaseInfo } from "./lease.js";
4
4
  export declare const DEFAULT_SERVER = "nats://127.0.0.1:4222";
5
5
  /** Space joined when none is given on the CLI (the `cotal-<space>` cmux tab, etc.). */
6
6
  export declare const DEFAULT_SPACE = "main";
@@ -81,6 +81,7 @@ export declare class CotalEndpoint extends EventEmitter {
81
81
  private membersKv?;
82
82
  private aclKv?;
83
83
  private deliveryKv?;
84
+ private managerLeaseKv?;
84
85
  private membershipKv?;
85
86
  /** The live `ctl.delivery` serve subscription (delivery daemon) — re-created on every (re)connect by
86
87
  * {@link armDeliveryControl}; tracked so the stale one is dropped on reconnect. */
@@ -441,6 +442,29 @@ export declare class CotalEndpoint extends EventEmitter {
441
442
  * READ-ONLY surface — drives Component 6's `cotal_channels` delivery-health field (an agent reads it
442
443
  * under its own cred, which holds lease-bucket read but no write). */
443
444
  readDeliveryLease(shardIndex: number): Promise<DeliveryLeaseInfo | undefined>;
445
+ /** Ensure + bind the manager singleton-lease bucket. NOTE: `Kvm.open` binds LAZILY — it does NOT
446
+ * verify the stream exists or throw when it's missing, so it can't "create if absent" (a fresh bucket
447
+ * then fails 'stream not found' on the first write — unlike the delivery bucket, which is pre-created
448
+ * at `cotal up`). `create` is the ensure-exists call: it makes the bucket (bucket-level TTL) or, when
449
+ * another manager already did, throws — and we bind the now-existing one. Either way the per-KEY CAS
450
+ * create stays the only single-flight gate, so a lost bucket-create race never reads as "lease held".
451
+ * The manager is allow-all, so it may create. */
452
+ private managerLeaseRegistry;
453
+ private encodeManagerLease;
454
+ /** Acquire the singleton manager lease via ATOMIC CAS create. THROWS if a live lease exists (a loud
455
+ * refusal-to-start, never a retry) so two managers never split control. A crashed holder's lease
456
+ * auto-expires (bucket TTL). Returns the lease revision (for renew). */
457
+ acquireManagerLease(info: Omit<ManagerLeaseInfo, "since">): Promise<number>;
458
+ /** Renew the held lease (CAS update against `revision`) before the bucket TTL expires it. Throws if the
459
+ * revision moved (lost the lease). Returns the new revision. */
460
+ renewManagerLease(info: Omit<ManagerLeaseInfo, "since">, revision: number): Promise<number>;
461
+ /** Release the held lease on clean shutdown so a replacement manager acquires immediately. CAS-guarded
462
+ * by `revision`: if we already LOST the lease (renew gap / another manager took over) the stored
463
+ * revision has moved, the conditional delete no-ops, and we never delete the replacement's live lease. */
464
+ releaseManagerLease(revision?: number): Promise<void>;
465
+ /** Read the live manager lease, or undefined if none (bucket absent / key deleted/expired). Open-only —
466
+ * never creates the bucket, so a probe that finds no manager leaves none behind. */
467
+ readManagerLease(): Promise<ManagerLeaseInfo | undefined>;
444
468
  /** Privileged: one owner's NON-TOMBSTONED durable memberships as `{channel, generation, activated}` —
445
469
  * the server-side delivery daemon serves this to a connecting agent (the `listMemberships` op on
446
470
  * `ctl.delivery`). The agent seeds its leave mirror from the ACTIVATED ones (the confirmed backstops),
@@ -719,11 +743,14 @@ interface AuthOpts {
719
743
  * "service down". Unwraps a wrapped `cause` and falls back to the server's error text, since
720
744
  * a denied publish can surface either as the typed error or inside a request rejection. */
721
745
  export declare function isPermissionDenied(e: unknown): boolean;
722
- /** Whether a NATS server is *running* at `servers`. True on a successful connect AND on an
723
- * auth rejection an auth error means a server is there, just refusing these creds (so the
724
- * caller should surface the real auth failure, not a misleading "server down", and `up`
725
- * must not try to start a duplicate on the bound port). Only a genuine connection failure
726
- * (refused / timeout / no server) returns false. */
746
+ /** Whether a NATS server is *running* at `servers`. With NO creds this is a SILENT plaintext
747
+ * liveness check ({@link tcpInfoProbe}): it reads the server's pre-auth `INFO` greeting and closes
748
+ * WITHOUT authenticating, so a live broker (open OR auth INFO precedes auth) returns true while
749
+ * emitting no broker auth-error log. It may return false for a TLS-first listener the credless
750
+ * probe is plaintext-only. With creds/token/tls supplied it is instead the AUTHORITATIVE identity
751
+ * check: a real authenticated connect, true on success AND on an auth rejection (a server that
752
+ * refuses these creds is still up — so the caller surfaces the real auth failure, and `up` won't
753
+ * start a duplicate on the bound port). Only a genuine connection failure (refused/timeout) is false. */
727
754
  export declare function isReachable(servers?: string, opts?: AuthOpts & {
728
755
  timeoutMs?: number;
729
756
  }): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AA+B3C,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EAEb,YAAY,EACZ,cAAc,EACd,kBAAkB,EAElB,WAAW,EAEX,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,aAAa,EACb,WAAW,EACX,YAAY,EACZ,aAAa,EAIb,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAYpB,OAAO,EAAwB,KAAK,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAkDjG,eAAO,MAAM,cAAc,0BAA0B,CAAC;AAEtD,uFAAuF;AACvF,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;oFACgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gDAAgD;IAChD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uGAAuG;IACvG,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;uFACmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC3C,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;yDAEyD;AACzD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;CACf;AAoBD;0DAC0D;AAC1D,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,qBAAa,aAAc,SAAQ,YAAY;IAC7C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,OAAO,CAAC,EAAE,CAAC,CAAiB;IAC5B,OAAO,CAAC,EAAE,CAAC,CAAkB;IAC7B,OAAO,CAAC,GAAG,CAAC,CAAmB;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAK;IAChB,OAAO,CAAC,SAAS,CAAC,CAAK;IACvB;oCACgC;IAChC,OAAO,CAAC,SAAS,CAAC,CAAK;IACvB,OAAO,CAAC,KAAK,CAAC,CAAK;IACnB,OAAO,CAAC,UAAU,CAAC,CAAK;IACxB,OAAO,CAAC,cAAc,CAAC,CAAK;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAK;IAC1B;wFACoF;IACpF,OAAO,CAAC,gBAAgB,CAAC,CAAiD;IAC1E;;iGAE6F;IAC7F,OAAO,CAAC,MAAM,CAAC,CAAoE;IACnF,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoC;IACnE,OAAO,CAAC,eAAe,CAAuB;IAC9C;;;sFAGkF;IAClF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IACrD;qGACiG;IACjG,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD;;oBAEgB;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAC5D;qGACiG;IACjG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD;;;;;;oFAMgF;IAChF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D;;;;0FAIsF;IACtF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA6B;IACjE;;;;yGAIqG;IACrG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD;;2EAEuE;IACvE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD;;;iEAG6D;IAC7D,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,cAAc,CAAC,CAAiC;IACxD,OAAO,CAAC,UAAU,CAAC,CAAiC;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B;wFACoF;IACpF,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,YAAY,CAAC,CAA8B;IACnD,OAAO,CAAC,OAAO,CAAS;IACxB;;sFAEkF;IAClF,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC;2FACuF;IACvF,OAAO,CAAC,YAAY,CAAS;IAC7B,iFAAiF;IACjF,OAAO,CAAC,cAAc,CAAS;IAC/B;oDACgD;IAChD,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,YAAY,CAAC,CAAgC;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;gBAGpB,IAAI,EAAE,eAAe;IAmCjC,GAAG,IAAI,WAAW;IAIZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;;kGAG8F;YAChF,cAAc;IAkE5B;;sEAEkE;IAClE,OAAO,CAAC,qBAAqB;IAiC7B;;;;6EAIyE;YAC3D,iBAAiB;IAa/B;;;;;oDAKgD;IAChD,OAAO,CAAC,mBAAmB;IAe3B;;;oGAGgG;IAChG,OAAO,CAAC,OAAO;IASf;;;mEAG+D;YACjD,SAAS;IAiCvB;;;iDAG6C;YAC/B,eAAe;IAqB7B;8EAC0E;IAC1E,OAAO,CAAC,WAAW;IAQnB;;;;;yBAKqB;IACf,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAW1B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC3B,qDAAqD;IAC/C,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GACrG,OAAO,CAAC,YAAY,CAAC;IAwBxB,wDAAwD;IAClD,OAAO,CACX,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,YAAY,CAAC;IAexB,6FAA6F;IACvF,OAAO,CACX,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9D,OAAO,CAAC,YAAY,CAAC;IAexB;;kGAE8F;IAC9F,GAAG,CACD,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,SAAS,KAAK,IAAI,EACjE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1B,IAAI;IAmBP;;;;;;;;kEAQ8D;IAC9D,YAAY,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,EACtE,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO,GAClC,OAAO,yBAAyB,EAAE,YAAY;IA+CjD,6EAA6E;IACvE,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,kBAAkB,EACvB,SAAS,SAAO,GACf,OAAO,CAAC,YAAY,CAAC;IAWxB;;;;sFAIkF;YACpE,eAAe;IAiB7B,SAAS,IAAI,QAAQ,EAAE;IAMjB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5C,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;0EACsE;IAChE,YAAY,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D;kEAC8D;IACxD,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxE;;;;0FAIsF;IAChF,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAShD,qFAAqF;IACrF,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI5D;6EACyE;IACzE,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIvC;;0DAEsD;IACtD,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa;IAMpD,0FAA0F;IAC1F,cAAc,IAAI,MAAM,EAAE;IAI1B;;;;;;;OAOG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAwDtF;;;;;oDAKgD;IAC1C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;IA0B/D;;oDAEgD;IAC1C,YAAY,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,aAAa,CAAA;KAAE,EAAE,CAAC;IA2B9F;;;;;;;;;;OAUG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACzD,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAqC7D;gGAC4F;YAC9E,kBAAkB;IAMhC;;;;;;OAMG;IACG,cAAc,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAmBnD;;;iDAG6C;IACvC,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC;QAAE,IAAI,IAAI,IAAI,CAAA;KAAE,CAAC;IAStE,gEAAgE;IAC1D,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GACxB,OAAO,CAAC,YAAY,EAAE,CAAC;IAS1B;;qEAEiE;IAC3D,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IASnE;;;gGAG4F;YAC9E,aAAa;IA4B3B;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;2DAGuD;IACvD,OAAO,CAAC,UAAU;YAMJ,UAAU;IAMxB;2EACuE;YACzD,aAAa;IAU3B;;;;;;OAMG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD;;;;;;OAMG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;;;;OAKG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAerD,yFAAyF;YAC3E,eAAe;IAM7B;8FAC0F;YAC5E,WAAW;IAMzB;;;;6FAIyF;IACnF,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1E;;uGAEmG;IAC7F,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC;IAI/D,mGAAmG;YACrF,gBAAgB;IAM9B,OAAO,CAAC,WAAW;IAInB;;;;iGAI6F;IACvF,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/D;;6CAEyC;IACnC,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAInF;;mCAE+B;IACzB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI/E;gEAC4D;IACtD,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7D;;2EAEuE;IACjE,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAMnF;;;;;;sDAMkD;YACpC,oBAAoB;IAWlC,OAAO,CAAC,kBAAkB;IAG1B;;6EAEyE;IACnE,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAGjF;qEACiE;IAC3D,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAGjG;;+GAE2G;IACrG,mBAAmB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3D;yFACqF;IAC/E,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAY/D;;;;;oCAKgC;IAC1B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAO7G;qGACiG;YACnF,kBAAkB;IAShC;;iEAE6D;IAC7D,OAAO,CAAC,kBAAkB;IAK1B;kGAC8F;YAChF,aAAa;IAO3B;+FAC2F;YAC7E,kBAAkB;IAKhC;;;;;;;;;;OAUG;IACG,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiDtE;4GACwG;IAClG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjG;;;sGAGkG;YACpF,WAAW;IA4CzB;;;;;;8FAM0F;IACpF,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,YAAY,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/F;;;gDAG4C;YAC9B,qBAAqB;IAUnC;mFAC+E;IAC/E,OAAO,CAAC,sBAAsB;IAS9B;qCACiC;YACnB,YAAY;IAY1B;;;;;oGAKgG;YAClF,aAAa;IAY3B;;;;kEAI8D;YAChD,SAAS;IAQvB;;;;;6GAKyG;IACzG,OAAO,CAAC,kBAAkB;IAS1B;gDAC4C;YAC9B,SAAS;IAcvB;;wGAEoG;YACtF,aAAa;IA0B3B;iCAC6B;YACf,SAAS;IAcvB;;uGAEmG;YACrF,YAAY;IAiD1B;;;;0GAIsG;YACxF,OAAO;IAkBrB;;4GAEwG;IAClG,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAM9G;kHAC8G;IACxG,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9E;;;;;;wHAMoH;YACtG,sBAAsB;IAoBpC;;8DAE0D;IAC1D,oBAAoB,IAAI,MAAM,EAAE;IAIhC;;4CAEwC;IACxC,OAAO,CAAC,cAAc;IAItB;;;4GAGwG;YAC1F,gBAAgB;IAY9B;;;;;;;uEAOmE;YACrD,yBAAyB;IAiBvC;;;;;kHAK8G;YAChG,iBAAiB;IAyB/B;;8GAE0G;IAC1G,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAI9C;gEAC4D;YAC9C,OAAO;IAMrB,8FAA8F;YAChF,cAAc;IA8D5B,0GAA0G;YAC5F,IAAI;IA+DlB;;;;2BAIuB;IACvB,OAAO,CAAC,aAAa;IAyDrB,gEAAgE;IAChE,OAAO,CAAC,eAAe;IAcvB;;sFAEkF;YACpE,cAAc;IAU5B;;oDAEgD;IAChD,OAAO,CAAC,aAAa;IAOrB;gFAC4E;YAC9D,YAAY;IAS1B;oGACgG;IAC1F,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAKrC;;;uEAGmE;YACrD,OAAO;IAUrB;+DAC2D;YAC7C,aAAa;IAS3B;;mGAE+F;YACjF,eAAe;IAY7B;;;;;;;;;;OAUG;YACW,cAAc;YAad,mBAAmB;IA+CjC;;;qGAGiG;YACnF,eAAe;IA6B7B;;;;;;;;;;;OAWG;IACG,aAAa,CACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IA8B1D;;;;;;oBAMgB;YACF,cAAc;IAgB5B;;2CAEuC;YACzB,gBAAgB;YAWhB,eAAe;YAiBf,kBAAkB;IAQhC;;iEAE6D;YAC/C,iBAAiB;IAQ/B,OAAO,CAAC,kBAAkB;IAuB1B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,aAAa;IAyCrB;;qEAEiE;IACjE,OAAO,CAAC,SAAS;IAIjB,gFAAgF;IAChF,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,KAAK;CAad;AA+BD,gFAAgF;AAChF,UAAU,QAAQ;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AA2BD;;;;;4FAK4F;AAC5F,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAItD;AAoDD;;;;;;;0GAO0G;AAC1G,wBAAsB,WAAW,CAC/B,OAAO,GAAE,MAAuB,EAChC,IAAI,GAAE,QAAQ,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C,OAAO,CAAC,OAAO,CAAC,CAgBlB;AAED;;2EAE2E;AAC3E,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AAEzC;;;;oDAIoD;AACpD,wBAAsB,YAAY,CAChC,MAAM,GAAE,MAAuB,EAC/B,IAAI,GAAE,QAAQ,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAO,GAC3C,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
package/dist/endpoint.js CHANGED
@@ -1,16 +1,17 @@
1
1
  import { EventEmitter } from "node:events";
2
2
  import { randomUUID } from "node:crypto";
3
+ import { createConnection } from "node:net";
3
4
  import { connect, credsAuthenticator, nanos, AuthorizationError, PermissionViolationError, UserAuthenticationExpiredError, NoRespondersError, RequestError, } from "@nats-io/transport-node";
4
5
  import { idFromCreds } from "./identity.js";
5
6
  import { assertValidName } from "./resolve.js";
6
- import { createSpaceStreams, dmDurableConfig, dlvDurableConfig, taskDurableConfig, fanoutDurableConfig, inboxReaderConfig, MAX_MSGS_PER_SUBJECT } from "./streams.js";
7
+ import { createSpaceStreams, dmDurableConfig, dlvDurableConfig, taskDurableConfig, fanoutDurableConfig, inboxReaderConfig, MAX_MSGS_PER_SUBJECT, MANAGER_LEASE_TTL_MS } from "./streams.js";
7
8
  import { jetstream, jetstreamManager, AckPolicy, DeliverPolicy, } from "@nats-io/jetstream";
8
9
  import { Kvm } from "@nats-io/kv";
9
10
  import { openMembersRegistry, commitMember, tombstoneMember, activateMember, readMember, listMembers, durableEligible, StaleMembershipWrite, } from "./members.js";
10
11
  import { openAclRegistry, readAcl, commitAcl as writeAclRecord } from "./acls.js";
11
12
  import { openDeliveryRegistry } from "./lease.js";
12
13
  import { openChannelRegistry, effectiveReplay, effectiveReplayWindowMs, effectiveDeliveryClass, readChannelConfig, readChannelDefaults, } from "./channels.js";
13
- import { anycastSubject, CHANNEL_DEFAULTS_KEY, chatStream, chatHistDurable, chatSubject, controlServiceSubject, CONTROL_SELF_SERVICE, CONTROL_DELIVERY, dmStream, dmDurable, dlvStream, dlvDurable, dlvSubject, dinboxSubject, inboxStream, parseDinboxOwner, FANOUT_DURABLE, INBOX_READER_DURABLE, leaseKey, chatWildcard, assertValidChannel, channelInAllow, isConcreteChannel, normalizeMentions, parseSubject, presenceBucket, membershipBucket, MEMBERSHIP_FEED_KEY, spacePrefix, spaceWildcard, subjectMatches, taskStream, taskDurable, token, unicastSubject, } from "./subjects.js";
14
+ import { anycastSubject, CHANNEL_DEFAULTS_KEY, chatStream, chatHistDurable, chatSubject, controlServiceSubject, CONTROL_SELF_SERVICE, CONTROL_DELIVERY, dmStream, dmDurable, dlvStream, dlvDurable, dlvSubject, dinboxSubject, inboxStream, parseDinboxOwner, FANOUT_DURABLE, INBOX_READER_DURABLE, leaseKey, managerBucket, MANAGER_LEASE_KEY, chatWildcard, assertValidChannel, channelInAllow, isConcreteChannel, normalizeMentions, parseSubject, presenceBucket, membershipBucket, MEMBERSHIP_FEED_KEY, spacePrefix, spaceWildcard, subjectMatches, taskStream, taskDurable, token, unicastSubject, } from "./subjects.js";
14
15
  export const DEFAULT_SERVER = "nats://127.0.0.1:4222";
15
16
  /** Space joined when none is given on the CLI (the `cotal-<space>` cmux tab, etc.). */
16
17
  export const DEFAULT_SPACE = "main";
@@ -57,6 +58,7 @@ export class CotalEndpoint extends EventEmitter {
57
58
  membersKv;
58
59
  aclKv;
59
60
  deliveryKv;
61
+ managerLeaseKv;
60
62
  membershipKv;
61
63
  /** The live `ctl.delivery` serve subscription (delivery daemon) — re-created on every (re)connect by
62
64
  * {@link armDeliveryControl}; tracked so the stale one is dropped on reconnect. */
@@ -1112,6 +1114,70 @@ export class CotalEndpoint extends EventEmitter {
1112
1114
  return undefined;
1113
1115
  }
1114
1116
  }
1117
+ /** Ensure + bind the manager singleton-lease bucket. NOTE: `Kvm.open` binds LAZILY — it does NOT
1118
+ * verify the stream exists or throw when it's missing, so it can't "create if absent" (a fresh bucket
1119
+ * then fails 'stream not found' on the first write — unlike the delivery bucket, which is pre-created
1120
+ * at `cotal up`). `create` is the ensure-exists call: it makes the bucket (bucket-level TTL) or, when
1121
+ * another manager already did, throws — and we bind the now-existing one. Either way the per-KEY CAS
1122
+ * create stays the only single-flight gate, so a lost bucket-create race never reads as "lease held".
1123
+ * The manager is allow-all, so it may create. */
1124
+ async managerLeaseRegistry() {
1125
+ if (!this.nc)
1126
+ throw new Error("endpoint not started");
1127
+ if (this.managerLeaseKv)
1128
+ return this.managerLeaseKv;
1129
+ const kvm = new Kvm(this.nc);
1130
+ try {
1131
+ this.managerLeaseKv = await kvm.create(managerBucket(this.space), { ttl: MANAGER_LEASE_TTL_MS });
1132
+ }
1133
+ catch {
1134
+ this.managerLeaseKv = await kvm.open(managerBucket(this.space));
1135
+ }
1136
+ return this.managerLeaseKv;
1137
+ }
1138
+ encodeManagerLease(info) {
1139
+ return new TextEncoder().encode(JSON.stringify(info));
1140
+ }
1141
+ /** Acquire the singleton manager lease via ATOMIC CAS create. THROWS if a live lease exists (a loud
1142
+ * refusal-to-start, never a retry) so two managers never split control. A crashed holder's lease
1143
+ * auto-expires (bucket TTL). Returns the lease revision (for renew). */
1144
+ async acquireManagerLease(info) {
1145
+ return (await this.managerLeaseRegistry()).create(MANAGER_LEASE_KEY, this.encodeManagerLease({ ...info, since: Date.now() }));
1146
+ }
1147
+ /** Renew the held lease (CAS update against `revision`) before the bucket TTL expires it. Throws if the
1148
+ * revision moved (lost the lease). Returns the new revision. */
1149
+ async renewManagerLease(info, revision) {
1150
+ return (await this.managerLeaseRegistry()).update(MANAGER_LEASE_KEY, this.encodeManagerLease({ ...info, since: Date.now() }), revision);
1151
+ }
1152
+ /** Release the held lease on clean shutdown so a replacement manager acquires immediately. CAS-guarded
1153
+ * by `revision`: if we already LOST the lease (renew gap / another manager took over) the stored
1154
+ * revision has moved, the conditional delete no-ops, and we never delete the replacement's live lease. */
1155
+ async releaseManagerLease(revision) {
1156
+ try {
1157
+ const kv = await this.managerLeaseRegistry();
1158
+ if (revision === undefined)
1159
+ await kv.delete(MANAGER_LEASE_KEY);
1160
+ else
1161
+ await kv.delete(MANAGER_LEASE_KEY, { previousSeq: revision });
1162
+ }
1163
+ catch { /* not ours / already gone */ }
1164
+ }
1165
+ /** Read the live manager lease, or undefined if none (bucket absent / key deleted/expired). Open-only —
1166
+ * never creates the bucket, so a probe that finds no manager leaves none behind. */
1167
+ async readManagerLease() {
1168
+ if (!this.nc)
1169
+ return undefined;
1170
+ try {
1171
+ const kv = await new Kvm(this.nc).open(managerBucket(this.space));
1172
+ const e = await kv.get(MANAGER_LEASE_KEY);
1173
+ if (!e || e.operation === "DEL" || e.operation === "PURGE")
1174
+ return undefined;
1175
+ return e.json();
1176
+ }
1177
+ catch {
1178
+ return undefined;
1179
+ }
1180
+ }
1115
1181
  /** Privileged: one owner's NON-TOMBSTONED durable memberships as `{channel, generation, activated}` —
1116
1182
  * the server-side delivery daemon serves this to a connecting agent (the `listMemberships` op on
1117
1183
  * `ctl.delivery`). The agent seeds its leave mirror from the ACTIVATED ones (the confirmed backstops),
@@ -2442,12 +2508,84 @@ export function isPermissionDenied(e) {
2442
2508
  return true;
2443
2509
  return /permissions?\s+violation/i.test(String(e?.message ?? ""));
2444
2510
  }
2445
- /** Whether a NATS server is *running* at `servers`. True on a successful connect AND on an
2446
- * auth rejection an auth error means a server is there, just refusing these creds (so the
2447
- * caller should surface the real auth failure, not a misleading "server down", and `up`
2448
- * must not try to start a duplicate on the bound port). Only a genuine connection failure
2449
- * (refused / timeout / no server) returns false. */
2511
+ /** Parse a NATS server URL (`nats://host:port`, `host:port`, a bare host, or a comma list the
2512
+ * first entry wins) into a host+port for {@link tcpInfoProbe}. Defaults the port to 4222. */
2513
+ function hostPort(server) {
2514
+ const first = (server.split(",")[0] ?? "").trim().replace(/^[a-z][a-z0-9+.-]*:\/\//i, ""); // strip scheme
2515
+ const u = new URL(`http://${first}`); // http:// so .hostname/.port resolve (incl. bracketed IPv6)
2516
+ return { host: u.hostname, port: u.port ? Number(u.port) : 4222 };
2517
+ }
2518
+ /** Silent credless liveness probe. Opens a plain TCP connection and confirms a NATS server is there
2519
+ * by reading its UNPROMPTED `INFO {…}` greeting — which the server sends on accept, BEFORE the
2520
+ * client's CONNECT/auth (per the NATS client protocol) — then closes immediately without
2521
+ * authenticating. Since it never sends CONNECT, an auth broker has nothing to reject, so this emits
2522
+ * NO broker-side auth-error/auth-timeout log line (unlike a credless `connect()`, which an auth
2523
+ * broker rejects and logs). It is a *plaintext NATS* liveness check only:
2524
+ * • a TLS-first (`handshake_first`, NATS ≥ 2.10.4) listener sends its TLS handshake before INFO,
2525
+ * so the read won't match → returns false (a documented false-negative for that broker config);
2526
+ * • a non-NATS / silent listener never sends a valid `INFO {` → also false (we require the real
2527
+ * greeting, never "any open port is reachable").
2528
+ * Closes well within the server's ~1s authorization timeout, so it cannot trip a timeout log. */
2529
+ function tcpInfoProbe(server, timeoutMs) {
2530
+ return new Promise((resolve) => {
2531
+ let socket;
2532
+ let done = false;
2533
+ const finish = (live) => {
2534
+ if (done)
2535
+ return;
2536
+ done = true;
2537
+ try {
2538
+ socket?.destroy();
2539
+ }
2540
+ catch { /* already gone */ }
2541
+ resolve(live);
2542
+ };
2543
+ let host, port;
2544
+ try {
2545
+ ({ host, port } = hostPort(server));
2546
+ }
2547
+ catch {
2548
+ return resolve(false);
2549
+ }
2550
+ socket = createConnection({ host, port });
2551
+ socket.setTimeout(timeoutMs);
2552
+ let buf = "";
2553
+ socket.on("data", (chunk) => {
2554
+ buf += chunk.toString("utf8");
2555
+ const nl = buf.indexOf("\r\n");
2556
+ if (nl === -1) {
2557
+ if (buf.length > 4096)
2558
+ finish(false);
2559
+ return;
2560
+ } // no real INFO line is 4KB+
2561
+ const line = buf.slice(0, nl);
2562
+ const brace = line.indexOf("{"); // greeting is `INFO {json}` (the server appends a trailing space)
2563
+ if (!/^INFO\b/.test(line) || brace === -1)
2564
+ return finish(false); // not NATS (incl. a TLS-first handshake)
2565
+ try {
2566
+ JSON.parse(line.slice(brace));
2567
+ finish(true);
2568
+ } // require a real INFO greeting, not arbitrary bytes
2569
+ catch {
2570
+ finish(false);
2571
+ }
2572
+ });
2573
+ socket.on("timeout", () => finish(false));
2574
+ socket.on("error", () => finish(false)); // refused / reset / DNS failure
2575
+ socket.on("close", () => finish(false)); // closed before a full INFO line arrived
2576
+ });
2577
+ }
2578
+ /** Whether a NATS server is *running* at `servers`. With NO creds this is a SILENT plaintext
2579
+ * liveness check ({@link tcpInfoProbe}): it reads the server's pre-auth `INFO` greeting and closes
2580
+ * WITHOUT authenticating, so a live broker (open OR auth — INFO precedes auth) returns true while
2581
+ * emitting no broker auth-error log. It may return false for a TLS-first listener — the credless
2582
+ * probe is plaintext-only. With creds/token/tls supplied it is instead the AUTHORITATIVE identity
2583
+ * check: a real authenticated connect, true on success AND on an auth rejection (a server that
2584
+ * refuses these creds is still up — so the caller surfaces the real auth failure, and `up` won't
2585
+ * start a duplicate on the bound port). Only a genuine connection failure (refused/timeout) is false. */
2450
2586
  export async function isReachable(servers = DEFAULT_SERVER, opts = {}) {
2587
+ if (!opts.creds && !opts.token && !opts.user && !opts.pass && !opts.tls)
2588
+ return tcpInfoProbe(servers, opts.timeoutMs ?? 1000);
2451
2589
  try {
2452
2590
  const nc = await connect({
2453
2591
  servers,