backpack-ontology 0.7.6 → 0.7.8
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/bin/backpack-sync.js +243 -65
- package/dist/bin/backpack-sync.js.map +1 -1
- package/dist/bin/backpack.js +7 -0
- package/dist/bin/backpack.js.map +1 -1
- package/dist/core/backpack.d.ts +7 -0
- package/dist/core/backpack.d.ts.map +1 -1
- package/dist/core/backpack.js +17 -0
- package/dist/core/backpack.js.map +1 -1
- package/dist/core/signal-detectors.d.ts +12 -0
- package/dist/core/signal-detectors.d.ts.map +1 -0
- package/dist/core/signal-detectors.js +591 -0
- package/dist/core/signal-detectors.js.map +1 -0
- package/dist/core/signal-store.d.ts +23 -0
- package/dist/core/signal-store.d.ts.map +1 -0
- package/dist/core/signal-store.js +179 -0
- package/dist/core/signal-store.js.map +1 -0
- package/dist/core/signal-types.d.ts +71 -0
- package/dist/core/signal-types.d.ts.map +1 -0
- package/dist/core/signal-types.js +12 -0
- package/dist/core/signal-types.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +5 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/signal-tools.d.ts +4 -0
- package/dist/mcp/tools/signal-tools.d.ts.map +1 -0
- package/dist/mcp/tools/signal-tools.js +295 -0
- package/dist/mcp/tools/signal-tools.js.map +1 -0
- package/dist/sync/auto-sync.d.ts +10 -0
- package/dist/sync/auto-sync.d.ts.map +1 -0
- package/dist/sync/auto-sync.js +81 -0
- package/dist/sync/auto-sync.js.map +1 -0
- package/dist/sync/index.d.ts +10 -0
- package/dist/sync/index.d.ts.map +1 -0
- package/dist/sync/index.js +7 -0
- package/dist/sync/index.js.map +1 -0
- package/dist/sync/sync-client.d.ts +80 -0
- package/dist/sync/sync-client.d.ts.map +1 -0
- package/dist/sync/sync-client.js +539 -0
- package/dist/sync/sync-client.js.map +1 -0
- package/dist/sync/sync-relay.d.ts +40 -0
- package/dist/sync/sync-relay.d.ts.map +1 -0
- package/dist/sync/sync-relay.js +118 -0
- package/dist/sync/sync-relay.js.map +1 -0
- package/dist/sync/sync-state.d.ts +7 -0
- package/dist/sync/sync-state.d.ts.map +1 -0
- package/dist/sync/sync-state.js +63 -0
- package/dist/sync/sync-state.js.map +1 -0
- package/dist/sync/types.d.ts +106 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/sync/types.js +20 -0
- package/dist/sync/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
//
|
|
3
|
+
// backpack-sync — Sync Protocol v0.1 CLI for backpack-ontology.
|
|
4
|
+
//
|
|
5
|
+
// Subcommands:
|
|
6
|
+
// register <name> [--color #...] [--tags a,b] Register backpack with relay
|
|
7
|
+
// push [<name>] Push local → relay
|
|
8
|
+
// pull [<name>] Pull relay → local
|
|
9
|
+
// sync [<name>] Bidirectional (pull then push)
|
|
10
|
+
// status [<name>] Show pending changes
|
|
11
|
+
// unregister [<name>] Drop sync state and remote record
|
|
12
|
+
// legacy Run the previous one-shot uploader
|
|
13
|
+
//
|
|
14
|
+
// If <name> is omitted, defaults to the active backpack from
|
|
15
|
+
// backpacks-registry. Authentication: BACKPACK_APP_TOKEN env var (preferred
|
|
16
|
+
// for CI/scripting), otherwise OAuth via .mcp.json discovery (same as legacy).
|
|
2
17
|
import * as crypto from "node:crypto";
|
|
3
18
|
import * as fs from "node:fs/promises";
|
|
4
19
|
import * as path from "node:path";
|
|
@@ -7,17 +22,14 @@ import { BackpackAppBackend } from "../storage/backpack-app-backend.js";
|
|
|
7
22
|
import { OAuthClient } from "../auth/oauth.js";
|
|
8
23
|
import { loadConfig } from "../core/config.js";
|
|
9
24
|
import { DocumentStore } from "../core/document-store.js";
|
|
10
|
-
import { getKBMounts } from "../core/backpacks-registry.js";
|
|
11
|
-
import {
|
|
25
|
+
import { getActiveBackpack, getBackpack, getKBMounts, colorForPath, } from "../core/backpacks-registry.js";
|
|
26
|
+
import { SyncClient } from "../sync/sync-client.js";
|
|
27
|
+
import { SyncRelayClient } from "../sync/sync-relay.js";
|
|
12
28
|
const DEFAULTS = {
|
|
13
29
|
url: "https://app.backpackontology.com",
|
|
14
30
|
clientId: "YOUR_ENTRA_CLIENT_ID_HERE",
|
|
15
31
|
issuerUrl: "https://YOUR_TENANT.ciamlogin.com/YOUR_TENANT_ID/v2.0",
|
|
16
32
|
};
|
|
17
|
-
/**
|
|
18
|
-
* Try to read backpack-app config from .mcp.json in the current directory
|
|
19
|
-
* or parent directories. This lets sync reuse the same auth as the MCP server.
|
|
20
|
-
*/
|
|
21
33
|
async function discoverMcpConfig() {
|
|
22
34
|
let dir = process.cwd();
|
|
23
35
|
for (let i = 0; i < 10; i++) {
|
|
@@ -25,16 +37,13 @@ async function discoverMcpConfig() {
|
|
|
25
37
|
try {
|
|
26
38
|
const raw = await fs.readFile(mcpPath, "utf-8");
|
|
27
39
|
const config = JSON.parse(raw);
|
|
28
|
-
// Look for any backpack-app server config
|
|
29
40
|
for (const [name, server] of Object.entries(config.mcpServers ?? {})) {
|
|
30
41
|
if (name.startsWith("backpack-app") && server.env) {
|
|
31
|
-
// Apply TLS override if configured (for local dev with self-signed certs)
|
|
32
42
|
if (server.env.NODE_TLS_REJECT_UNAUTHORIZED) {
|
|
33
|
-
process.env.NODE_TLS_REJECT_UNAUTHORIZED =
|
|
34
|
-
server.env.NODE_TLS_REJECT_UNAUTHORIZED;
|
|
43
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = server.env.NODE_TLS_REJECT_UNAUTHORIZED;
|
|
35
44
|
}
|
|
36
45
|
return {
|
|
37
|
-
|
|
46
|
+
apiUrl: server.env.BACKPACK_APP_URL,
|
|
38
47
|
clientId: server.env.BACKPACK_APP_CLIENT_ID,
|
|
39
48
|
issuerUrl: server.env.BACKPACK_APP_ISSUER_URL,
|
|
40
49
|
token: server.env.BACKPACK_APP_TOKEN,
|
|
@@ -43,55 +52,177 @@ async function discoverMcpConfig() {
|
|
|
43
52
|
}
|
|
44
53
|
}
|
|
45
54
|
catch {
|
|
46
|
-
//
|
|
55
|
+
// ignore
|
|
47
56
|
}
|
|
48
57
|
const parent = path.dirname(dir);
|
|
49
58
|
if (parent === dir)
|
|
50
59
|
break;
|
|
51
60
|
dir = parent;
|
|
52
61
|
}
|
|
53
|
-
return
|
|
62
|
+
return {};
|
|
54
63
|
}
|
|
55
|
-
async function
|
|
56
|
-
// Auto-discover config from .mcp.json if no env vars are set
|
|
64
|
+
async function buildAuth() {
|
|
57
65
|
const discovered = await discoverMcpConfig();
|
|
58
|
-
const apiUrl = process.env.BACKPACK_APP_URL ||
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
DEFAULTS.clientId;
|
|
64
|
-
const issuerUrl = process.env.BACKPACK_APP_ISSUER_URL ||
|
|
65
|
-
discovered?.issuerUrl ||
|
|
66
|
-
DEFAULTS.issuerUrl;
|
|
67
|
-
const staticToken = process.env.BACKPACK_APP_TOKEN ||
|
|
68
|
-
discovered?.token;
|
|
69
|
-
console.log("");
|
|
70
|
-
console.log(" Backpack Sync — upload local ontologies to Backpack App");
|
|
71
|
-
console.log(` Target: ${apiUrl}`);
|
|
72
|
-
console.log("");
|
|
73
|
-
// Set up local backend
|
|
74
|
-
const config = await loadConfig();
|
|
75
|
-
const local = new JsonFileBackend(config.dataDir);
|
|
76
|
-
await local.initialize();
|
|
77
|
-
// Set up remote backend + token provider for KB sync
|
|
78
|
-
let remote;
|
|
79
|
-
let getToken;
|
|
66
|
+
const apiUrl = process.env.BACKPACK_APP_URL || discovered.apiUrl || DEFAULTS.url;
|
|
67
|
+
const clientId = process.env.BACKPACK_APP_CLIENT_ID || discovered.clientId || DEFAULTS.clientId;
|
|
68
|
+
const issuerUrl = process.env.BACKPACK_APP_ISSUER_URL || discovered.issuerUrl || DEFAULTS.issuerUrl;
|
|
69
|
+
const staticToken = process.env.BACKPACK_APP_TOKEN || discovered.token;
|
|
70
|
+
let tokenProvider;
|
|
80
71
|
if (staticToken) {
|
|
81
|
-
|
|
82
|
-
getToken = async () => staticToken;
|
|
72
|
+
tokenProvider = async () => staticToken;
|
|
83
73
|
}
|
|
84
74
|
else {
|
|
85
|
-
const cacheKey = crypto
|
|
86
|
-
.createHash("sha256")
|
|
87
|
-
.update(apiUrl)
|
|
88
|
-
.digest("hex")
|
|
89
|
-
.slice(0, 12);
|
|
75
|
+
const cacheKey = crypto.createHash("sha256").update(apiUrl).digest("hex").slice(0, 12);
|
|
90
76
|
const oauth = new OAuthClient(clientId, issuerUrl, cacheKey);
|
|
91
|
-
|
|
92
|
-
|
|
77
|
+
tokenProvider = () => oauth.getAccessToken();
|
|
78
|
+
}
|
|
79
|
+
return { apiUrl, clientId, issuerUrl, staticToken, tokenProvider };
|
|
80
|
+
}
|
|
81
|
+
async function buildClient(name) {
|
|
82
|
+
const auth = await buildAuth();
|
|
83
|
+
const entry = name ? await getBackpack(name) : await getActiveBackpack();
|
|
84
|
+
if (!entry) {
|
|
85
|
+
throw new Error(`backpack not found: ${name ?? "<active>"}`);
|
|
86
|
+
}
|
|
87
|
+
const relay = new SyncRelayClient({ baseUrl: auth.apiUrl, token: auth.tokenProvider });
|
|
88
|
+
const client = new SyncClient({ backpackPath: entry.path, relay });
|
|
89
|
+
return { client, backpackPath: entry.path, backpackName: entry.name, apiUrl: auth.apiUrl };
|
|
90
|
+
}
|
|
91
|
+
// ---------- subcommands ----------
|
|
92
|
+
function parseFlags(args) {
|
|
93
|
+
const positional = [];
|
|
94
|
+
const flags = {};
|
|
95
|
+
for (let i = 0; i < args.length; i++) {
|
|
96
|
+
const a = args[i];
|
|
97
|
+
if (a.startsWith("--")) {
|
|
98
|
+
const eq = a.indexOf("=");
|
|
99
|
+
if (eq > 0) {
|
|
100
|
+
flags[a.slice(2, eq)] = a.slice(eq + 1);
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
flags[a.slice(2)] = args[++i] ?? "";
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
positional.push(a);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return { positional, flags };
|
|
111
|
+
}
|
|
112
|
+
async function cmdRegister(args) {
|
|
113
|
+
const { positional, flags } = parseFlags(args);
|
|
114
|
+
if (positional.length === 0) {
|
|
115
|
+
throw new Error("usage: backpack-sync register <name> [--color #hex] [--tags a,b]");
|
|
116
|
+
}
|
|
117
|
+
const name = positional[0];
|
|
118
|
+
const { client, backpackPath, apiUrl } = await buildClient(name);
|
|
119
|
+
const color = flags.color ?? colorForPath(backpackPath);
|
|
120
|
+
const tags = flags.tags ? flags.tags.split(",").map((s) => s.trim()).filter(Boolean) : [];
|
|
121
|
+
const state = await client.register({ name, color, tags });
|
|
122
|
+
console.log("");
|
|
123
|
+
console.log(` Registered "${name}" with ${apiUrl}`);
|
|
124
|
+
console.log(` Backpack ID: ${state.backpack_id}`);
|
|
125
|
+
console.log(` Run \`backpack-sync push ${name}\` to upload artifacts.`);
|
|
126
|
+
console.log("");
|
|
127
|
+
}
|
|
128
|
+
function describeResult(name, result) {
|
|
129
|
+
console.log(` Backpack: ${name}`);
|
|
130
|
+
if (result.pushed.length)
|
|
131
|
+
console.log(` Pushed: ${result.pushed.length}`);
|
|
132
|
+
if (result.pulled.length)
|
|
133
|
+
console.log(` Pulled: ${result.pulled.length}`);
|
|
134
|
+
if (result.deleted_remote.length)
|
|
135
|
+
console.log(` Deleted (cloud): ${result.deleted_remote.length}`);
|
|
136
|
+
if (result.deleted_local.length)
|
|
137
|
+
console.log(` Deleted (local): ${result.deleted_local.length}`);
|
|
138
|
+
if (result.conflicts.length) {
|
|
139
|
+
console.log(` Conflicts: ${result.conflicts.length}`);
|
|
140
|
+
for (const c of result.conflicts) {
|
|
141
|
+
console.log(` - ${c.artifact_id} → ${c.conflict_path}`);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (result.errors.length) {
|
|
145
|
+
console.log(` Errors: ${result.errors.length}`);
|
|
146
|
+
for (const e of result.errors) {
|
|
147
|
+
console.log(` - ${e.artifact_id ?? "(none)"}: ${e.message}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (result.pushed.length === 0 &&
|
|
151
|
+
result.pulled.length === 0 &&
|
|
152
|
+
result.deleted_remote.length === 0 &&
|
|
153
|
+
result.deleted_local.length === 0 &&
|
|
154
|
+
result.conflicts.length === 0 &&
|
|
155
|
+
result.errors.length === 0) {
|
|
156
|
+
console.log(" Already in sync.");
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
async function cmdPush(args) {
|
|
160
|
+
const { positional } = parseFlags(args);
|
|
161
|
+
const { client, backpackName } = await buildClient(positional[0]);
|
|
162
|
+
const result = await client.push();
|
|
163
|
+
describeResult(backpackName, result);
|
|
164
|
+
}
|
|
165
|
+
async function cmdPull(args) {
|
|
166
|
+
const { positional } = parseFlags(args);
|
|
167
|
+
const { client, backpackName } = await buildClient(positional[0]);
|
|
168
|
+
const result = await client.pull();
|
|
169
|
+
describeResult(backpackName, result);
|
|
170
|
+
}
|
|
171
|
+
async function cmdSync(args) {
|
|
172
|
+
const { positional } = parseFlags(args);
|
|
173
|
+
const { client, backpackName } = await buildClient(positional[0]);
|
|
174
|
+
const result = await client.sync();
|
|
175
|
+
describeResult(backpackName, result);
|
|
176
|
+
}
|
|
177
|
+
async function cmdStatus(args) {
|
|
178
|
+
const { positional } = parseFlags(args);
|
|
179
|
+
const { client, backpackName } = await buildClient(positional[0]);
|
|
180
|
+
const status = await client.status();
|
|
181
|
+
console.log("");
|
|
182
|
+
console.log(` Backpack: ${backpackName}`);
|
|
183
|
+
if (!status.registered) {
|
|
184
|
+
console.log(" Not registered. Run `backpack-sync register <name>` to enable sync.");
|
|
185
|
+
console.log("");
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
console.log(` Registered: ${status.state?.backpack_id}`);
|
|
189
|
+
console.log(` Last sync: ${status.state?.last_sync_at ?? "never"}`);
|
|
190
|
+
console.log(` Up to date: ${status.upToDate}`);
|
|
191
|
+
console.log(` Local only: ${status.localOnly.length}`);
|
|
192
|
+
if (status.localOnly.length) {
|
|
193
|
+
for (const id of status.localOnly)
|
|
194
|
+
console.log(` + ${id}`);
|
|
195
|
+
}
|
|
196
|
+
console.log(` Remote only: ${status.remoteOnly.length}`);
|
|
197
|
+
if (status.remoteOnly.length) {
|
|
198
|
+
for (const id of status.remoteOnly)
|
|
199
|
+
console.log(` - ${id}`);
|
|
93
200
|
}
|
|
94
|
-
|
|
201
|
+
console.log(` Diverged: ${status.diverged.length}`);
|
|
202
|
+
if (status.diverged.length) {
|
|
203
|
+
for (const id of status.diverged)
|
|
204
|
+
console.log(` ! ${id}`);
|
|
205
|
+
}
|
|
206
|
+
console.log("");
|
|
207
|
+
}
|
|
208
|
+
async function cmdUnregister(args) {
|
|
209
|
+
const { positional } = parseFlags(args);
|
|
210
|
+
const { client, backpackName } = await buildClient(positional[0]);
|
|
211
|
+
await client.unregister();
|
|
212
|
+
console.log(` Unregistered ${backpackName} (sync state cleared, remote record deleted if present).`);
|
|
213
|
+
}
|
|
214
|
+
// ---------- legacy one-shot uploader (preserved for backward compat) ----------
|
|
215
|
+
async function cmdLegacy() {
|
|
216
|
+
const auth = await buildAuth();
|
|
217
|
+
console.log("");
|
|
218
|
+
console.log(" Backpack Sync (legacy mode) — upload local ontologies to Backpack App");
|
|
219
|
+
console.log(` Target: ${auth.apiUrl}`);
|
|
220
|
+
console.log("");
|
|
221
|
+
const config = await loadConfig();
|
|
222
|
+
const local = new JsonFileBackend(config.dataDir);
|
|
223
|
+
await local.initialize();
|
|
224
|
+
const tokenProvider = auth.tokenProvider;
|
|
225
|
+
const remote = new BackpackAppBackend(auth.apiUrl, tokenProvider);
|
|
95
226
|
const localOntologies = await local.listOntologies();
|
|
96
227
|
if (localOntologies.length === 0) {
|
|
97
228
|
console.log(" No local ontologies found. Nothing to sync.");
|
|
@@ -103,14 +234,13 @@ async function main() {
|
|
|
103
234
|
console.log(` - ${o.name} (${o.nodeCount} nodes, ${o.edgeCount} edges)`);
|
|
104
235
|
}
|
|
105
236
|
console.log("");
|
|
106
|
-
// Check which already exist remotely
|
|
107
237
|
let remoteNames;
|
|
108
238
|
try {
|
|
109
239
|
const remoteOntologies = await remote.listOntologies();
|
|
110
240
|
remoteNames = new Set(remoteOntologies.map((o) => o.name));
|
|
111
241
|
}
|
|
112
242
|
catch (err) {
|
|
113
|
-
console.error(` Failed to connect to Backpack App at ${apiUrl}:`, err.message);
|
|
243
|
+
console.error(` Failed to connect to Backpack App at ${auth.apiUrl}:`, err.message);
|
|
114
244
|
process.exit(1);
|
|
115
245
|
}
|
|
116
246
|
let created = 0;
|
|
@@ -139,7 +269,7 @@ async function main() {
|
|
|
139
269
|
}
|
|
140
270
|
console.log("");
|
|
141
271
|
console.log(` Done. ${created} created, ${updated} updated, ${skipped} failed.`);
|
|
142
|
-
//
|
|
272
|
+
// Sync KB documents from active backpack default mount
|
|
143
273
|
let docsSynced = 0;
|
|
144
274
|
try {
|
|
145
275
|
const activeEntry = await getActiveBackpack();
|
|
@@ -152,14 +282,10 @@ async function main() {
|
|
|
152
282
|
for (const summary of result.documents) {
|
|
153
283
|
try {
|
|
154
284
|
const doc = await docStore.read(summary.id);
|
|
155
|
-
|
|
156
|
-
const
|
|
157
|
-
const resp = await fetch(`${apiUrl}/api/kb/documents/${encodeURIComponent(doc.id)}`, {
|
|
285
|
+
const token = await tokenProvider();
|
|
286
|
+
const resp = await fetch(`${auth.apiUrl}/api/kb/documents/${encodeURIComponent(doc.id)}`, {
|
|
158
287
|
method: "PUT",
|
|
159
|
-
headers: {
|
|
160
|
-
"Content-Type": "application/json",
|
|
161
|
-
Authorization: `Bearer ${token}`,
|
|
162
|
-
},
|
|
288
|
+
headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
|
|
163
289
|
body: JSON.stringify(doc),
|
|
164
290
|
});
|
|
165
291
|
if (resp.ok) {
|
|
@@ -177,18 +303,70 @@ async function main() {
|
|
|
177
303
|
}
|
|
178
304
|
}
|
|
179
305
|
catch {
|
|
180
|
-
// No KB configured
|
|
181
|
-
}
|
|
182
|
-
if (created + updated > 0 || docsSynced > 0) {
|
|
183
|
-
console.log("");
|
|
184
|
-
console.log(` Your ontologies${docsSynced > 0 ? ` and ${docsSynced} KB document(s)` : ""} are now in Backpack App.`);
|
|
185
|
-
console.log(" To switch to cloud mode, update your .mcp.json to use backpack-app");
|
|
186
|
-
console.log(" instead of backpack.");
|
|
306
|
+
// No KB configured
|
|
187
307
|
}
|
|
188
308
|
console.log("");
|
|
189
309
|
}
|
|
310
|
+
// ---------- entry ----------
|
|
311
|
+
function printHelp() {
|
|
312
|
+
console.log("");
|
|
313
|
+
console.log(" backpack-sync — bidirectional sync for Backpack");
|
|
314
|
+
console.log("");
|
|
315
|
+
console.log(" USAGE:");
|
|
316
|
+
console.log(" backpack-sync register <name> [--color #hex] [--tags a,b]");
|
|
317
|
+
console.log(" backpack-sync push [<name>]");
|
|
318
|
+
console.log(" backpack-sync pull [<name>]");
|
|
319
|
+
console.log(" backpack-sync sync [<name>] (bidirectional, default if no subcommand)");
|
|
320
|
+
console.log(" backpack-sync status [<name>]");
|
|
321
|
+
console.log(" backpack-sync unregister [<name>]");
|
|
322
|
+
console.log(" backpack-sync legacy (one-shot publish, original behavior)");
|
|
323
|
+
console.log("");
|
|
324
|
+
console.log(" AUTH:");
|
|
325
|
+
console.log(" BACKPACK_APP_TOKEN=... Static bearer token");
|
|
326
|
+
console.log(" BACKPACK_APP_URL=... Override relay URL");
|
|
327
|
+
console.log(" Otherwise OAuth via .mcp.json discovery (same as MCP server)");
|
|
328
|
+
console.log("");
|
|
329
|
+
}
|
|
330
|
+
async function main() {
|
|
331
|
+
const argv = process.argv.slice(2);
|
|
332
|
+
const sub = argv[0];
|
|
333
|
+
const rest = argv.slice(1);
|
|
334
|
+
if (!sub || sub === "--help" || sub === "-h" || sub === "help") {
|
|
335
|
+
printHelp();
|
|
336
|
+
return;
|
|
337
|
+
}
|
|
338
|
+
switch (sub) {
|
|
339
|
+
case "register":
|
|
340
|
+
await cmdRegister(rest);
|
|
341
|
+
return;
|
|
342
|
+
case "push":
|
|
343
|
+
await cmdPush(rest);
|
|
344
|
+
return;
|
|
345
|
+
case "pull":
|
|
346
|
+
await cmdPull(rest);
|
|
347
|
+
return;
|
|
348
|
+
case "sync":
|
|
349
|
+
await cmdSync(rest);
|
|
350
|
+
return;
|
|
351
|
+
case "status":
|
|
352
|
+
await cmdStatus(rest);
|
|
353
|
+
return;
|
|
354
|
+
case "unregister":
|
|
355
|
+
await cmdUnregister(rest);
|
|
356
|
+
return;
|
|
357
|
+
case "legacy":
|
|
358
|
+
await cmdLegacy();
|
|
359
|
+
return;
|
|
360
|
+
default:
|
|
361
|
+
// Backward compatibility: if invoked with no subcommand-style arg
|
|
362
|
+
// (e.g. someone passes a backpack name directly), treat as legacy.
|
|
363
|
+
console.error(`unknown subcommand: ${sub}`);
|
|
364
|
+
printHelp();
|
|
365
|
+
process.exit(2);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
190
368
|
main().catch((error) => {
|
|
191
|
-
console.error("Error:", error
|
|
369
|
+
console.error("Error:", error?.message ?? error);
|
|
192
370
|
process.exit(1);
|
|
193
371
|
});
|
|
194
372
|
//# sourceMappingURL=backpack-sync.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backpack-sync.js","sourceRoot":"","sources":["../../src/bin/backpack-sync.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,QAAQ,GAAG;IACf,GAAG,EAAE,kCAAkC;IACvC,QAAQ,EAAE,2BAA2B;IACrC,SAAS,EAAE,uDAAuD;CACnE,CAAC;AAEF;;;GAGG;AACH,KAAK,UAAU,iBAAiB;IAM9B,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAE5B,CAAC;YAEF,0CAA0C;YAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;oBAClD,0EAA0E;oBAC1E,IAAI,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE,CAAC;wBAC5C,OAAO,CAAC,GAAG,CAAC,4BAA4B;4BACtC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC;oBAC5C,CAAC;oBACD,OAAO;wBACL,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,gBAAgB;wBAChC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,sBAAsB;wBAC3C,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,uBAAuB;wBAC7C,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,kBAAkB;qBACrC,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG;YAAE,MAAM;QAC1B,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,6DAA6D;IAC7D,MAAM,UAAU,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAE7C,MAAM,MAAM,GACV,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAC5B,UAAU,EAAE,GAAG;QACf,QAAQ,CAAC,GAAG,CAAC;IACf,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,sBAAsB;QAClC,UAAU,EAAE,QAAQ;QACpB,QAAQ,CAAC,QAAQ,CAAC;IACpB,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACnC,UAAU,EAAE,SAAS;QACrB,QAAQ,CAAC,SAAS,CAAC;IACrB,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAC9B,UAAU,EAAE,KAAK,CAAC;IAEpB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,uBAAuB;IACvB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAEzB,qDAAqD;IACrD,IAAI,MAA0B,CAAC;IAC/B,IAAI,QAA+B,CAAC;IACpC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACrD,QAAQ,GAAG,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM;aACpB,UAAU,CAAC,QAAQ,CAAC;aACpB,MAAM,CAAC,MAAM,CAAC;aACd,MAAM,CAAC,KAAK,CAAC;aACb,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAChB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,GAAG,IAAI,kBAAkB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC;QACtE,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;IAC1C,CAAC;IAED,wBAAwB;IACxB,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;IACrD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,WAAW,eAAe,CAAC,MAAM,qBAAqB,CAAC,CAAC;IACpE,KAAK,MAAM,CAAC,IAAI,eAAe,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,WAAW,CAAC,CAAC,SAAS,SAAS,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,qCAAqC;IACrC,IAAI,WAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QACvD,WAAW,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,0CAA0C,MAAM,GAAG,EAClD,GAAa,CAAC,OAAO,CACvB,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;gBACrE,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,aAAa,OAAO,CAAC,IAAI,MAAO,GAAa,CAAC,OAAO,EAAE,CACxD,CAAC;gBACF,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,WAAW,OAAO,aAAa,OAAO,aAAa,OAAO,UAAU,CACrE,CAAC;IAEF,4BAA4B;IAC5B,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,aAAa,CAChC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAC,CAC1F,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAErC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,SAAS,CAAC,MAAM,0BAA0B,CAAC,CAAC;YAE1E,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC5C,iEAAiE;oBACjE,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,GAAG,MAAM,qBAAqB,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAC1D;wBACE,MAAM,EAAE,KAAK;wBACb,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,aAAa,EAAE,UAAU,KAAK,EAAE;yBACjC;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;qBAC1B,CACF,CAAC;oBACF,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;wBACZ,UAAU,EAAE,CAAC;wBACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC5C,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CAAC,iBAAiB,GAAG,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC/D,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,iBAAiB,OAAO,CAAC,KAAK,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IAED,IAAI,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,UAAU,iBAAiB,CAAC,CAAC,CAAC,EAAE,2BAA2B,CAAC,CAAC;QACtH,OAAO,CAAC,GAAG,CACT,sEAAsE,CACvE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"backpack-sync.js","sourceRoot":"","sources":["../../src/bin/backpack-sync.ts"],"names":[],"mappings":"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"}
|
package/dist/bin/backpack.js
CHANGED
|
@@ -4,6 +4,7 @@ import { createMcpServer } from "../mcp/server.js";
|
|
|
4
4
|
import { loadConfig } from "../core/config.js";
|
|
5
5
|
import { removeBackpackHooks } from "../core/hooks.js";
|
|
6
6
|
import { shutdown as shutdownTelemetry } from "../core/telemetry.js";
|
|
7
|
+
import { runStartupSync } from "../sync/auto-sync.js";
|
|
7
8
|
async function main() {
|
|
8
9
|
const config = await loadConfig();
|
|
9
10
|
// Clean up any hooks installed by older versions (silent, non-blocking)
|
|
@@ -13,6 +14,12 @@ async function main() {
|
|
|
13
14
|
await server.connect(transport);
|
|
14
15
|
// Log to stderr because stdout is reserved for the MCP protocol
|
|
15
16
|
console.error("Backpack MCP server running on stdio");
|
|
17
|
+
// Background pull for any sync-registered backpacks. Fire-and-forget;
|
|
18
|
+
// errors go to stderr and never block server startup. Set
|
|
19
|
+
// BACKPACK_SYNC_AUTOPULL=0 to opt out.
|
|
20
|
+
if (process.env.BACKPACK_SYNC_AUTOPULL !== "0") {
|
|
21
|
+
runStartupSync();
|
|
22
|
+
}
|
|
16
23
|
}
|
|
17
24
|
// Graceful shutdown — flush telemetry before exit
|
|
18
25
|
async function gracefulShutdown() {
|
package/dist/bin/backpack.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backpack.js","sourceRoot":"","sources":["../../src/bin/backpack.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"backpack.js","sourceRoot":"","sources":["../../src/bin/backpack.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;IAElC,wEAAwE;IACxE,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEtC,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,gEAAgE;IAChE,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAEtD,sEAAsE;IACtE,0DAA0D;IAC1D,uCAAuC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,GAAG,EAAE,CAAC;QAC/C,cAAc,EAAE,CAAC;IACnB,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,KAAK,UAAU,gBAAgB;IAC7B,MAAM,iBAAiB,EAAE,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;AACvC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAExC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/core/backpack.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { type DraftResult, type ProposedNode, type ProposedEdge } from "./draft.
|
|
|
4
4
|
import { planSummary, type NormalizationPlan } from "./normalize.js";
|
|
5
5
|
import { type BackpackEntry } from "./backpacks-registry.js";
|
|
6
6
|
import { DocumentStore } from "./document-store.js";
|
|
7
|
+
import { SignalStore } from "./signal-store.js";
|
|
7
8
|
/**
|
|
8
9
|
* The main Backpack API. Composes a StorageBackend with the Graph engine.
|
|
9
10
|
*
|
|
@@ -22,6 +23,7 @@ export declare class Backpack {
|
|
|
22
23
|
private tokenCache;
|
|
23
24
|
private activeBackpack;
|
|
24
25
|
private _documents;
|
|
26
|
+
private _signals;
|
|
25
27
|
constructor(storage: StorageBackend);
|
|
26
28
|
/**
|
|
27
29
|
* Construct a Backpack whose storage backend reads from the currently
|
|
@@ -41,6 +43,11 @@ export declare class Backpack {
|
|
|
41
43
|
* Lazily created and cached. Reset on switchBackpack().
|
|
42
44
|
*/
|
|
43
45
|
documents(): Promise<DocumentStore>;
|
|
46
|
+
/**
|
|
47
|
+
* Get the SignalStore for the active backpack.
|
|
48
|
+
* Lazily created and cached. Reset on switchBackpack().
|
|
49
|
+
*/
|
|
50
|
+
signals(): Promise<SignalStore>;
|
|
44
51
|
listRegisteredBackpacks(): Promise<BackpackEntry[]>;
|
|
45
52
|
/**
|
|
46
53
|
* Switch the active backpack for this instance. Updates the persistent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backpack.d.ts","sourceRoot":"","sources":["../../src/core/backpack.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EACd,IAAI,EACJ,IAAI,EACJ,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,UAAU,EACV,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,WAAW,EACX,KAAK,iBAAiB,EACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAgB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"backpack.d.ts","sourceRoot":"","sources":["../../src/core/backpack.ts"],"names":[],"mappings":"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"}
|
package/dist/core/backpack.js
CHANGED
|
@@ -6,6 +6,7 @@ import { planNormalization, planSummary, } from "./normalize.js";
|
|
|
6
6
|
import { getActiveBackpack, setActiveBackpack, listBackpacks, getKBMounts, } from "./backpacks-registry.js";
|
|
7
7
|
import { EventSourcedBackend } from "../storage/event-sourced-backend.js";
|
|
8
8
|
import { DocumentStore } from "./document-store.js";
|
|
9
|
+
import { SignalStore } from "./signal-store.js";
|
|
9
10
|
/**
|
|
10
11
|
* The main Backpack API. Composes a StorageBackend with the Graph engine.
|
|
11
12
|
*
|
|
@@ -24,6 +25,7 @@ export class Backpack {
|
|
|
24
25
|
tokenCache = new Map();
|
|
25
26
|
activeBackpack = null;
|
|
26
27
|
_documents = null;
|
|
28
|
+
_signals = null;
|
|
27
29
|
constructor(storage) {
|
|
28
30
|
this.storage = storage;
|
|
29
31
|
}
|
|
@@ -73,6 +75,20 @@ export class Backpack {
|
|
|
73
75
|
}
|
|
74
76
|
return this._documents;
|
|
75
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* Get the SignalStore for the active backpack.
|
|
80
|
+
* Lazily created and cached. Reset on switchBackpack().
|
|
81
|
+
*/
|
|
82
|
+
async signals() {
|
|
83
|
+
if (!this._signals) {
|
|
84
|
+
const entry = this.activeBackpack;
|
|
85
|
+
if (!entry) {
|
|
86
|
+
throw new Error("No active backpack — cannot resolve signals path");
|
|
87
|
+
}
|
|
88
|
+
this._signals = new SignalStore(entry.path);
|
|
89
|
+
}
|
|
90
|
+
return this._signals;
|
|
91
|
+
}
|
|
76
92
|
async listRegisteredBackpacks() {
|
|
77
93
|
return listBackpacks();
|
|
78
94
|
}
|
|
@@ -92,6 +108,7 @@ export class Backpack {
|
|
|
92
108
|
this.versions.clear();
|
|
93
109
|
this.tokenCache.clear();
|
|
94
110
|
this._documents = null;
|
|
111
|
+
this._signals = null;
|
|
95
112
|
// Stand up a fresh backend at the new path
|
|
96
113
|
const newBackend = new EventSourcedBackend(undefined, {
|
|
97
114
|
graphsDirOverride: entry.path,
|