@remnic/cli 9.69.46 → 9.69.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +37 -8
- package/package.json +32 -32
package/dist/index.js
CHANGED
|
@@ -3005,6 +3005,7 @@ async function planLocalNamespaceCensus(args) {
|
|
|
3005
3005
|
const evidence = await readLocalTombstoneEvidence(rootDir);
|
|
3006
3006
|
let manifestReadFailed = false;
|
|
3007
3007
|
const manifest = await buildReconcileManifest({
|
|
3008
|
+
signal: args.signal,
|
|
3008
3009
|
files,
|
|
3009
3010
|
parseMemory: parseFrontmatter,
|
|
3010
3011
|
citationTemplate: args.citationTemplate,
|
|
@@ -3288,7 +3289,7 @@ async function fetchPeerSyncCapabilities(peerUrl, token, fetchImpl, timeoutMs) {
|
|
|
3288
3289
|
}
|
|
3289
3290
|
return null;
|
|
3290
3291
|
}
|
|
3291
|
-
async function fetchPeerManifestStream(peerUrl, namespace, token, fetchImpl = globalThis.fetch, timeoutMs = DEFAULT_PEER_REQUEST_TIMEOUT_MS) {
|
|
3292
|
+
async function fetchPeerManifestStream(peerUrl, namespace, token, fetchImpl = globalThis.fetch, timeoutMs = DEFAULT_PEER_REQUEST_TIMEOUT_MS, signal) {
|
|
3292
3293
|
const base = normalizePeerBaseUrl(peerUrl);
|
|
3293
3294
|
const headers = token ? { authorization: `Bearer ${token}` } : {};
|
|
3294
3295
|
const routes = [
|
|
@@ -3296,7 +3297,12 @@ async function fetchPeerManifestStream(peerUrl, namespace, token, fetchImpl = gl
|
|
|
3296
3297
|
`/engram/v1/offline-sync/manifest-stream?namespace=${encodeURIComponent(namespace)}&include_transcripts=false`
|
|
3297
3298
|
];
|
|
3298
3299
|
for (const route of routes) {
|
|
3299
|
-
const response = await fetchPeerRequest(
|
|
3300
|
+
const response = await fetchPeerRequest(
|
|
3301
|
+
fetchImpl,
|
|
3302
|
+
`${base}${route}`,
|
|
3303
|
+
{ headers, ...signal ? { signal } : {} },
|
|
3304
|
+
timeoutMs
|
|
3305
|
+
);
|
|
3300
3306
|
if (response.status === 404 || response.status === 405) continue;
|
|
3301
3307
|
if (response.status === 401 || response.status === 403) {
|
|
3302
3308
|
throw new Error(`peer manifest authentication failed: HTTP ${response.status}`);
|
|
@@ -3306,7 +3312,7 @@ async function fetchPeerManifestStream(peerUrl, namespace, token, fetchImpl = gl
|
|
|
3306
3312
|
}
|
|
3307
3313
|
return null;
|
|
3308
3314
|
}
|
|
3309
|
-
async function fetchPeerSnapshot(peerUrl, namespace, token, fetchImpl = globalThis.fetch, timeoutMs = DEFAULT_PEER_REQUEST_TIMEOUT_MS) {
|
|
3315
|
+
async function fetchPeerSnapshot(peerUrl, namespace, token, fetchImpl = globalThis.fetch, timeoutMs = DEFAULT_PEER_REQUEST_TIMEOUT_MS, signal) {
|
|
3310
3316
|
const base = normalizePeerBaseUrl(peerUrl);
|
|
3311
3317
|
const routes = [
|
|
3312
3318
|
// The snapshot validates the cached peer manifest, whose file set
|
|
@@ -3322,8 +3328,14 @@ async function fetchPeerSnapshot(peerUrl, namespace, token, fetchImpl = globalTh
|
|
|
3322
3328
|
for (const route of routes) {
|
|
3323
3329
|
let response;
|
|
3324
3330
|
try {
|
|
3325
|
-
response = await fetchPeerRequest(
|
|
3331
|
+
response = await fetchPeerRequest(
|
|
3332
|
+
fetchImpl,
|
|
3333
|
+
`${base}${route}`,
|
|
3334
|
+
{ headers, ...signal ? { signal } : {} },
|
|
3335
|
+
timeoutMs
|
|
3336
|
+
);
|
|
3326
3337
|
} catch (error) {
|
|
3338
|
+
if (signal?.aborted) throw error;
|
|
3327
3339
|
lastFailure = error instanceof Error ? error.message : String(error);
|
|
3328
3340
|
continue;
|
|
3329
3341
|
}
|
|
@@ -3619,7 +3631,14 @@ async function postPeerFileDeletion(peerUrl, namespace, filePath, baseSha256, to
|
|
|
3619
3631
|
async function planPeerNamespaceCensus(args) {
|
|
3620
3632
|
const { peerUrl, ns } = { peerUrl: args.peerUrl, ns: args.namespace };
|
|
3621
3633
|
args.signal?.throwIfAborted();
|
|
3622
|
-
const peerData = await fetchPeerSnapshot(
|
|
3634
|
+
const peerData = await fetchPeerSnapshot(
|
|
3635
|
+
peerUrl,
|
|
3636
|
+
ns,
|
|
3637
|
+
args.resolvedToken,
|
|
3638
|
+
args.fetchFn,
|
|
3639
|
+
args.timeoutMs,
|
|
3640
|
+
args.signal
|
|
3641
|
+
);
|
|
3623
3642
|
const priorPeerEntry = args.cache ? await args.cache.readEntry("peer", ns) : null;
|
|
3624
3643
|
const revisionTrusted = args.peerManifestRevision !== void 0 && priorPeerEntry?.peerManifestRevision === args.peerManifestRevision;
|
|
3625
3644
|
const clientBuiltPrior = priorPeerEntry?.clientBuilt === true;
|
|
@@ -3643,7 +3662,14 @@ async function planPeerNamespaceCensus(args) {
|
|
|
3643
3662
|
})
|
|
3644
3663
|
};
|
|
3645
3664
|
} else {
|
|
3646
|
-
const streamedManifest = args.manifestStream ? await fetchPeerManifestStream(
|
|
3665
|
+
const streamedManifest = args.manifestStream ? await fetchPeerManifestStream(
|
|
3666
|
+
peerUrl,
|
|
3667
|
+
ns,
|
|
3668
|
+
args.resolvedToken,
|
|
3669
|
+
args.fetchFn,
|
|
3670
|
+
args.timeoutMs,
|
|
3671
|
+
args.signal
|
|
3672
|
+
) : null;
|
|
3647
3673
|
peerManifest = streamedManifest;
|
|
3648
3674
|
if (peerManifest) {
|
|
3649
3675
|
clientBuilt = false;
|
|
@@ -3654,6 +3680,7 @@ async function planPeerNamespaceCensus(args) {
|
|
|
3654
3680
|
files: peerData.files,
|
|
3655
3681
|
parseMemory: parseFrontmatter2,
|
|
3656
3682
|
citationTemplate: args.citationTemplate,
|
|
3683
|
+
signal: args.signal,
|
|
3657
3684
|
// Older peers need one content request per memory file; prior cache
|
|
3658
3685
|
// rows (sha-keyed) skip the ones already fetched.
|
|
3659
3686
|
cachedFiles: priorPeerFiles ?? args.localManifestFiles,
|
|
@@ -3666,7 +3693,8 @@ async function planPeerNamespaceCensus(args) {
|
|
|
3666
3693
|
file.path,
|
|
3667
3694
|
args.resolvedToken,
|
|
3668
3695
|
args.fetchFn,
|
|
3669
|
-
args.timeoutMs
|
|
3696
|
+
args.timeoutMs,
|
|
3697
|
+
args.signal
|
|
3670
3698
|
);
|
|
3671
3699
|
} catch (error) {
|
|
3672
3700
|
readFailure = error instanceof Error ? error : new Error(String(error));
|
|
@@ -3693,7 +3721,8 @@ async function planPeerNamespaceCensus(args) {
|
|
|
3693
3721
|
tombstonePath,
|
|
3694
3722
|
args.resolvedToken,
|
|
3695
3723
|
args.fetchFn,
|
|
3696
|
-
args.timeoutMs
|
|
3724
|
+
args.timeoutMs,
|
|
3725
|
+
args.signal
|
|
3697
3726
|
);
|
|
3698
3727
|
if (!remote) {
|
|
3699
3728
|
throw new Error(`failed to read peer tombstone evidence: ${tombstonePath}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@remnic/cli",
|
|
3
|
-
"version": "9.69.
|
|
3
|
+
"version": "9.69.47",
|
|
4
4
|
"description": "CLI for Remnic memory — init, query, doctor, daemon management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -26,26 +26,26 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"yaml": "^2.4.2",
|
|
29
|
-
"@remnic/plugin-pi": "^9.69.
|
|
30
|
-
"@remnic/server": "^9.69.
|
|
31
|
-
"@remnic/core": "^9.69.
|
|
29
|
+
"@remnic/plugin-pi": "^9.69.47",
|
|
30
|
+
"@remnic/server": "^9.69.47",
|
|
31
|
+
"@remnic/core": "^9.69.47"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@remnic/bench": "^9.69.
|
|
35
|
-
"@remnic/plugin-openclaw": "^9.69.
|
|
36
|
-
"@remnic/export-weclone": "^9.69.
|
|
37
|
-
"@remnic/import-weclone": "^9.69.
|
|
38
|
-
"@remnic/import-chatgpt": "^9.69.
|
|
39
|
-
"@remnic/import-claude": "^9.69.
|
|
40
|
-
"@remnic/import-gemini": "^9.69.
|
|
41
|
-
"@remnic/import-lossless-claw": "^9.69.
|
|
42
|
-
"@remnic/import-mem0": "^9.69.
|
|
43
|
-
"@remnic/import-supermemory": "^9.69.
|
|
44
|
-
"@remnic/import-okf": "^9.69.
|
|
45
|
-
"@remnic/connector-limitless": "^9.69.
|
|
46
|
-
"@remnic/connector-bee": "^9.69.
|
|
47
|
-
"@remnic/connector-omi": "^9.69.
|
|
48
|
-
"@remnic/capture-audio": "^9.69.
|
|
34
|
+
"@remnic/bench": "^9.69.47",
|
|
35
|
+
"@remnic/plugin-openclaw": "^9.69.47",
|
|
36
|
+
"@remnic/export-weclone": "^9.69.47",
|
|
37
|
+
"@remnic/import-weclone": "^9.69.47",
|
|
38
|
+
"@remnic/import-chatgpt": "^9.69.47",
|
|
39
|
+
"@remnic/import-claude": "^9.69.47",
|
|
40
|
+
"@remnic/import-gemini": "^9.69.47",
|
|
41
|
+
"@remnic/import-lossless-claw": "^9.69.47",
|
|
42
|
+
"@remnic/import-mem0": "^9.69.47",
|
|
43
|
+
"@remnic/import-supermemory": "^9.69.47",
|
|
44
|
+
"@remnic/import-okf": "^9.69.47",
|
|
45
|
+
"@remnic/connector-limitless": "^9.69.47",
|
|
46
|
+
"@remnic/connector-bee": "^9.69.47",
|
|
47
|
+
"@remnic/connector-omi": "^9.69.47",
|
|
48
|
+
"@remnic/capture-audio": "^9.69.47"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"@remnic/bench": {
|
|
@@ -97,19 +97,19 @@
|
|
|
97
97
|
"devDependencies": {
|
|
98
98
|
"tsup": "^8.5.1",
|
|
99
99
|
"typescript": "^5.9.3",
|
|
100
|
-
"@remnic/bench": "9.69.
|
|
101
|
-
"@remnic/plugin-openclaw": "9.69.
|
|
102
|
-
"@remnic/export-weclone": "9.69.
|
|
103
|
-
"@remnic/import-weclone": "9.69.
|
|
104
|
-
"@remnic/import-
|
|
105
|
-
"@remnic/import-
|
|
106
|
-
"@remnic/import-gemini": "9.69.
|
|
107
|
-
"@remnic/import-lossless-claw": "9.69.
|
|
108
|
-
"@remnic/import-mem0": "9.69.
|
|
109
|
-
"@remnic/connector-limitless": "9.69.
|
|
110
|
-
"@remnic/
|
|
111
|
-
"@remnic/
|
|
112
|
-
"@remnic/connector-
|
|
100
|
+
"@remnic/bench": "9.69.47",
|
|
101
|
+
"@remnic/plugin-openclaw": "9.69.47",
|
|
102
|
+
"@remnic/export-weclone": "9.69.47",
|
|
103
|
+
"@remnic/import-weclone": "9.69.47",
|
|
104
|
+
"@remnic/import-claude": "9.69.47",
|
|
105
|
+
"@remnic/import-chatgpt": "9.69.47",
|
|
106
|
+
"@remnic/import-gemini": "9.69.47",
|
|
107
|
+
"@remnic/import-lossless-claw": "9.69.47",
|
|
108
|
+
"@remnic/import-mem0": "9.69.47",
|
|
109
|
+
"@remnic/connector-limitless": "9.69.47",
|
|
110
|
+
"@remnic/connector-bee": "9.69.47",
|
|
111
|
+
"@remnic/import-supermemory": "9.69.47",
|
|
112
|
+
"@remnic/connector-omi": "9.69.47"
|
|
113
113
|
},
|
|
114
114
|
"license": "MIT",
|
|
115
115
|
"repository": {
|