@cotal-ai/connector-opencode 0.9.0 → 0.9.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.
@@ -16615,7 +16615,56 @@ var SYS_LIMITS = { ...BASE_LIMITS, mem_storage: 0, disk_storage: 0 };
16615
16615
  // ../../packages/core/dist/streams.js
16616
16616
  var import_jetstream = __toESM(require_mod4(), 1);
16617
16617
  var import_transport_node = __toESM(require_transport_node(), 1);
16618
+ var import_kv2 = __toESM(require_mod6(), 1);
16619
+
16620
+ // ../../packages/core/dist/acls.js
16618
16621
  var import_kv = __toESM(require_mod6(), 1);
16622
+ async function openAclRegistry(nc, space, opts = {}) {
16623
+ const kvm = new import_kv.Kvm(nc);
16624
+ return opts.create ? kvm.create(aclBucket(space)) : kvm.open(aclBucket(space));
16625
+ }
16626
+ async function readAcl(kv, owner) {
16627
+ const e = await kv.get(aclKey(owner));
16628
+ if (!e || e.operation === "DEL" || e.operation === "PURGE")
16629
+ return void 0;
16630
+ try {
16631
+ const record2 = e.json();
16632
+ if (!Array.isArray(record2.allowSubscribe))
16633
+ return void 0;
16634
+ return { record: record2, revision: e.revision };
16635
+ } catch {
16636
+ return void 0;
16637
+ }
16638
+ }
16639
+ async function commitAcl(kv, owner, allowSubscribe) {
16640
+ const key = aclKey(owner);
16641
+ for (let attempt = 0; attempt < 5; attempt++) {
16642
+ const cur = await readAcl(kv, owner);
16643
+ const next = {
16644
+ allowSubscribe: [...allowSubscribe],
16645
+ revision: (cur?.record.revision ?? 0) + 1,
16646
+ updatedAt: Date.now()
16647
+ };
16648
+ const data = new TextEncoder().encode(JSON.stringify(next));
16649
+ if (!cur) {
16650
+ try {
16651
+ await kv.create(key, data);
16652
+ return next;
16653
+ } catch {
16654
+ continue;
16655
+ }
16656
+ }
16657
+ try {
16658
+ await kv.update(key, data, cur.revision);
16659
+ return next;
16660
+ } catch {
16661
+ continue;
16662
+ }
16663
+ }
16664
+ throw new Error(`acl CAS exhausted retries for ${owner}`);
16665
+ }
16666
+
16667
+ // ../../packages/core/dist/streams.js
16619
16668
  var MAX_MSGS_PER_SUBJECT = 1e3;
16620
16669
  var PLANE3_DEDUP_WINDOW_MS = 2 * 60 * 60 * 1e3;
16621
16670
  var DINBOX_MAX_ACK_PENDING = 1e3;
@@ -16721,7 +16770,7 @@ function fanoutDurableConfig(space, opts = {}) {
16721
16770
  }
16722
16771
 
16723
16772
  // ../../packages/core/dist/channels.js
16724
- var import_kv2 = __toESM(require_mod6(), 1);
16773
+ var import_kv3 = __toESM(require_mod6(), 1);
16725
16774
  var import_transport_node2 = __toESM(require_transport_node(), 1);
16726
16775
  function parseDuration(s) {
16727
16776
  const m = /^(\d+)(s|m|h|d)$/.exec(s.trim());
@@ -16742,7 +16791,7 @@ function effectiveDeliveryClass(cfg, defaults) {
16742
16791
  return cfg?.deliveryClass ?? defaults?.deliveryClass ?? "durable";
16743
16792
  }
16744
16793
  async function openChannelRegistry(nc, space, opts = {}) {
16745
- const kvm = new import_kv2.Kvm(nc);
16794
+ const kvm = new import_kv3.Kvm(nc);
16746
16795
  return opts.create ? kvm.create(channelBucket(space)) : kvm.open(channelBucket(space));
16747
16796
  }
16748
16797
  async function readChannelConfig(kv, channel) {
@@ -16763,7 +16812,7 @@ async function decode(kv, key) {
16763
16812
  }
16764
16813
 
16765
16814
  // ../../packages/core/dist/members.js
16766
- var import_kv3 = __toESM(require_mod6(), 1);
16815
+ var import_kv4 = __toESM(require_mod6(), 1);
16767
16816
  var StaleMembershipWrite = class extends Error {
16768
16817
  constructor(channel, owner, attempted, current) {
16769
16818
  super(`stale membership write for ${channel}/${owner}: generation ${attempted} < current ${current}`);
@@ -16771,7 +16820,7 @@ var StaleMembershipWrite = class extends Error {
16771
16820
  }
16772
16821
  };
16773
16822
  async function openMembersRegistry(nc, space, opts = {}) {
16774
- const kvm = new import_kv3.Kvm(nc);
16823
+ const kvm = new import_kv4.Kvm(nc);
16775
16824
  return opts.create ? kvm.create(membersBucket(space)) : kvm.open(membersBucket(space));
16776
16825
  }
16777
16826
  async function readMember(kv, channel, owner) {
@@ -16870,53 +16919,6 @@ function durableEligible(rec, seq) {
16870
16919
  return true;
16871
16920
  }
16872
16921
 
16873
- // ../../packages/core/dist/acls.js
16874
- var import_kv4 = __toESM(require_mod6(), 1);
16875
- async function openAclRegistry(nc, space, opts = {}) {
16876
- const kvm = new import_kv4.Kvm(nc);
16877
- return opts.create ? kvm.create(aclBucket(space)) : kvm.open(aclBucket(space));
16878
- }
16879
- async function readAcl(kv, owner) {
16880
- const e = await kv.get(aclKey(owner));
16881
- if (!e || e.operation === "DEL" || e.operation === "PURGE")
16882
- return void 0;
16883
- try {
16884
- const record2 = e.json();
16885
- if (!Array.isArray(record2.allowSubscribe))
16886
- return void 0;
16887
- return { record: record2, revision: e.revision };
16888
- } catch {
16889
- return void 0;
16890
- }
16891
- }
16892
- async function commitAcl(kv, owner, allowSubscribe) {
16893
- const key = aclKey(owner);
16894
- for (let attempt = 0; attempt < 5; attempt++) {
16895
- const cur = await readAcl(kv, owner);
16896
- const next = {
16897
- allowSubscribe: [...allowSubscribe],
16898
- revision: (cur?.record.revision ?? 0) + 1,
16899
- updatedAt: Date.now()
16900
- };
16901
- const data = new TextEncoder().encode(JSON.stringify(next));
16902
- if (!cur) {
16903
- try {
16904
- await kv.create(key, data);
16905
- return next;
16906
- } catch {
16907
- continue;
16908
- }
16909
- }
16910
- try {
16911
- await kv.update(key, data, cur.revision);
16912
- return next;
16913
- } catch {
16914
- continue;
16915
- }
16916
- }
16917
- throw new Error(`acl CAS exhausted retries for ${owner}`);
16918
- }
16919
-
16920
16922
  // ../../packages/core/dist/membership-feed.js
16921
16923
  var import_transport_node3 = __toESM(require_transport_node(), 1);
16922
16924
  var import_kv5 = __toESM(require_mod6(), 1);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cotal-ai/connector-opencode",
3
3
  "description": "Cotal connector for OpenCode: a native in-process plugin that joins a session to the mesh.",
4
- "version": "0.9.0",
4
+ "version": "0.9.1",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -18,7 +18,7 @@
18
18
  }
19
19
  },
20
20
  "dependencies": {
21
- "@cotal-ai/connector-core": "0.9.0"
21
+ "@cotal-ai/connector-core": "0.9.1"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "@cotal-ai/core": ">=0.1.0",
@@ -30,7 +30,7 @@
30
30
  "@opencode-ai/sdk": "^1.16.2",
31
31
  "esbuild": "^0.28.0",
32
32
  "tsx": "^4.22.4",
33
- "@cotal-ai/core": "0.9.0"
33
+ "@cotal-ai/core": "0.9.1"
34
34
  },
35
35
  "files": [
36
36
  "dist"