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