backpack-ontology 0.7.13 → 0.8.0

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 (122) hide show
  1. package/README.md +123 -0
  2. package/dist/bin/bp.d.ts +3 -0
  3. package/dist/bin/bp.d.ts.map +1 -0
  4. package/dist/bin/bp.js +8 -0
  5. package/dist/bin/bp.js.map +1 -0
  6. package/dist/cli/colors.d.ts +23 -0
  7. package/dist/cli/colors.d.ts.map +1 -0
  8. package/dist/cli/colors.js +40 -0
  9. package/dist/cli/colors.js.map +1 -0
  10. package/dist/cli/commands/auth.d.ts +4 -0
  11. package/dist/cli/commands/auth.d.ts.map +1 -0
  12. package/dist/cli/commands/auth.js +50 -0
  13. package/dist/cli/commands/auth.js.map +1 -0
  14. package/dist/cli/commands/cat.d.ts +3 -0
  15. package/dist/cli/commands/cat.d.ts.map +1 -0
  16. package/dist/cli/commands/cat.js +31 -0
  17. package/dist/cli/commands/cat.js.map +1 -0
  18. package/dist/cli/commands/cloud-admin.d.ts +7 -0
  19. package/dist/cli/commands/cloud-admin.d.ts.map +1 -0
  20. package/dist/cli/commands/cloud-admin.js +186 -0
  21. package/dist/cli/commands/cloud-admin.js.map +1 -0
  22. package/dist/cli/commands/completion.d.ts +3 -0
  23. package/dist/cli/commands/completion.d.ts.map +1 -0
  24. package/dist/cli/commands/completion.js +159 -0
  25. package/dist/cli/commands/completion.js.map +1 -0
  26. package/dist/cli/commands/containers.d.ts +3 -0
  27. package/dist/cli/commands/containers.d.ts.map +1 -0
  28. package/dist/cli/commands/containers.js +30 -0
  29. package/dist/cli/commands/containers.js.map +1 -0
  30. package/dist/cli/commands/context.d.ts +4 -0
  31. package/dist/cli/commands/context.d.ts.map +1 -0
  32. package/dist/cli/commands/context.js +61 -0
  33. package/dist/cli/commands/context.js.map +1 -0
  34. package/dist/cli/commands/doctor.d.ts +3 -0
  35. package/dist/cli/commands/doctor.d.ts.map +1 -0
  36. package/dist/cli/commands/doctor.js +74 -0
  37. package/dist/cli/commands/doctor.js.map +1 -0
  38. package/dist/cli/commands/graphs.d.ts +3 -0
  39. package/dist/cli/commands/graphs.d.ts.map +1 -0
  40. package/dist/cli/commands/graphs.js +68 -0
  41. package/dist/cli/commands/graphs.js.map +1 -0
  42. package/dist/cli/commands/init.d.ts +3 -0
  43. package/dist/cli/commands/init.d.ts.map +1 -0
  44. package/dist/cli/commands/init.js +56 -0
  45. package/dist/cli/commands/init.js.map +1 -0
  46. package/dist/cli/commands/kbs.d.ts +3 -0
  47. package/dist/cli/commands/kbs.d.ts.map +1 -0
  48. package/dist/cli/commands/kbs.js +258 -0
  49. package/dist/cli/commands/kbs.js.map +1 -0
  50. package/dist/cli/commands/ls.d.ts +3 -0
  51. package/dist/cli/commands/ls.d.ts.map +1 -0
  52. package/dist/cli/commands/ls.js +90 -0
  53. package/dist/cli/commands/ls.js.map +1 -0
  54. package/dist/cli/commands/mutate.d.ts +7 -0
  55. package/dist/cli/commands/mutate.d.ts.map +1 -0
  56. package/dist/cli/commands/mutate.js +268 -0
  57. package/dist/cli/commands/mutate.js.map +1 -0
  58. package/dist/cli/commands/open.d.ts +3 -0
  59. package/dist/cli/commands/open.d.ts.map +1 -0
  60. package/dist/cli/commands/open.js +59 -0
  61. package/dist/cli/commands/open.js.map +1 -0
  62. package/dist/cli/commands/search.d.ts +3 -0
  63. package/dist/cli/commands/search.d.ts.map +1 -0
  64. package/dist/cli/commands/search.js +63 -0
  65. package/dist/cli/commands/search.js.map +1 -0
  66. package/dist/cli/commands/show.d.ts +3 -0
  67. package/dist/cli/commands/show.d.ts.map +1 -0
  68. package/dist/cli/commands/show.js +82 -0
  69. package/dist/cli/commands/show.js.map +1 -0
  70. package/dist/cli/commands/version.d.ts +2 -0
  71. package/dist/cli/commands/version.d.ts.map +1 -0
  72. package/dist/cli/commands/version.js +18 -0
  73. package/dist/cli/commands/version.js.map +1 -0
  74. package/dist/cli/help.d.ts +3 -0
  75. package/dist/cli/help.d.ts.map +1 -0
  76. package/dist/cli/help.js +122 -0
  77. package/dist/cli/help.js.map +1 -0
  78. package/dist/cli/output.d.ts +35 -0
  79. package/dist/cli/output.d.ts.map +1 -0
  80. package/dist/cli/output.js +224 -0
  81. package/dist/cli/output.js.map +1 -0
  82. package/dist/cli/parser.d.ts +16 -0
  83. package/dist/cli/parser.d.ts.map +1 -0
  84. package/dist/cli/parser.js +131 -0
  85. package/dist/cli/parser.js.map +1 -0
  86. package/dist/cli/router.d.ts +2 -0
  87. package/dist/cli/router.d.ts.map +1 -0
  88. package/dist/cli/router.js +147 -0
  89. package/dist/cli/router.js.map +1 -0
  90. package/dist/cli/util/confirm.d.ts +3 -0
  91. package/dist/cli/util/confirm.d.ts.map +1 -0
  92. package/dist/cli/util/confirm.js +48 -0
  93. package/dist/cli/util/confirm.js.map +1 -0
  94. package/dist/core/backpack.d.ts +8 -0
  95. package/dist/core/backpack.d.ts.map +1 -1
  96. package/dist/core/backpack.js +32 -0
  97. package/dist/core/backpack.js.map +1 -1
  98. package/dist/mcp/tools/cloud-tools.d.ts +2 -2
  99. package/dist/mcp/tools/cloud-tools.d.ts.map +1 -1
  100. package/dist/mcp/tools/cloud-tools.js +244 -55
  101. package/dist/mcp/tools/cloud-tools.js.map +1 -1
  102. package/dist/ops/auth.d.ts +54 -0
  103. package/dist/ops/auth.d.ts.map +1 -0
  104. package/dist/ops/auth.js +181 -0
  105. package/dist/ops/auth.js.map +1 -0
  106. package/dist/ops/containers.d.ts +27 -0
  107. package/dist/ops/containers.d.ts.map +1 -0
  108. package/dist/ops/containers.js +150 -0
  109. package/dist/ops/containers.js.map +1 -0
  110. package/dist/ops/context.d.ts +51 -0
  111. package/dist/ops/context.d.ts.map +1 -0
  112. package/dist/ops/context.js +158 -0
  113. package/dist/ops/context.js.map +1 -0
  114. package/dist/ops/graphs.d.ts +69 -0
  115. package/dist/ops/graphs.d.ts.map +1 -0
  116. package/dist/ops/graphs.js +278 -0
  117. package/dist/ops/graphs.js.map +1 -0
  118. package/dist/ops/kb.d.ts +33 -0
  119. package/dist/ops/kb.d.ts.map +1 -0
  120. package/dist/ops/kb.js +176 -0
  121. package/dist/ops/kb.js.map +1 -0
  122. package/package.json +3 -2
package/dist/ops/kb.js ADDED
@@ -0,0 +1,176 @@
1
+ // Knowledge-base operations. Cloud KB is just /api/kb/documents; local
2
+ // KB lives under each backpack root and is read via the Backpack class's
3
+ // DocumentStore.
4
+ import { DocumentStore } from "../core/document-store.js";
5
+ import { getKBMounts } from "../core/backpacks-registry.js";
6
+ import { getContext } from "./context.js";
7
+ import { resolveCloudToken, getRelayUrl, assertSafeRelay } from "./auth.js";
8
+ async function localStore() {
9
+ const ctx = await getContext();
10
+ if (ctx.source !== "local" || !ctx.backpackPath) {
11
+ throw new Error("active context is not a local backpack");
12
+ }
13
+ const mountConfigs = await getKBMounts(ctx.backpackPath);
14
+ const mounts = mountConfigs.map((m) => ({
15
+ name: m.name,
16
+ path: m.path,
17
+ // Default to writable when the registry didn't specify — matches the
18
+ // behavior the rest of the codebase (Backpack class, viewer, MCP) has
19
+ // assumed for the lifetime of the project. An earlier "safer default"
20
+ // change inverted this and silently broke `bp kbs create` against
21
+ // mounts whose registry entry didn't include the field.
22
+ writable: m.writable !== false,
23
+ }));
24
+ return new DocumentStore(mounts);
25
+ }
26
+ /** List KB documents in the active context. */
27
+ export async function listKB() {
28
+ const ctx = await getContext();
29
+ if (ctx.source === "local") {
30
+ const store = await localStore();
31
+ const result = await store.list({ limit: 1000 });
32
+ return result.documents.map((d) => ({
33
+ id: d.id,
34
+ title: d.title,
35
+ tags: d.tags ?? [],
36
+ sourceGraphs: d.sourceGraphs ?? [],
37
+ collection: d.collection,
38
+ origin: "local",
39
+ }));
40
+ }
41
+ const token = await resolveCloudToken();
42
+ if (!token)
43
+ throw new Error("not signed in — run `bp login` first");
44
+ assertSafeRelay(getRelayUrl());
45
+ const res = await fetch(`${getRelayUrl()}/api/kb/documents?limit=1000`, {
46
+ headers: { Authorization: `Bearer ${token}` },
47
+ });
48
+ if (!res.ok) {
49
+ if (res.status === 404)
50
+ return []; // KB endpoint not exposed
51
+ if (res.status === 401)
52
+ throw new Error("cloud session expired — run `bp login` to refresh");
53
+ throw new Error(`cloud /api/kb/documents returned HTTP ${res.status}`);
54
+ }
55
+ const body = await res.json();
56
+ const all = (body.documents ?? []).map((d) => ({
57
+ id: d.id,
58
+ title: d.title ?? d.id,
59
+ tags: d.tags ?? [],
60
+ sourceGraphs: d.sourceGraphs ?? [],
61
+ collection: d.collection,
62
+ sourceBackpack: d.sourceBackpack,
63
+ origin: "cloud",
64
+ }));
65
+ const wantContainer = (ctx.cloudContainer ?? "").trim();
66
+ return wantContainer
67
+ ? all.filter((d) => d.sourceBackpack === wantContainer)
68
+ : all;
69
+ }
70
+ /** Create or update a KB document. Local writes go through DocumentStore.
71
+ * Cloud writes hit /api/kb/documents (POST for create, PUT for update). */
72
+ export async function saveKB(input) {
73
+ const ctx = await getContext();
74
+ if (ctx.source === "local") {
75
+ const store = await localStore();
76
+ const before = input.id ? await store.read(input.id).catch(() => null) : null;
77
+ const saved = await store.save(input);
78
+ return { id: saved.id, created: !before };
79
+ }
80
+ const token = await resolveCloudToken();
81
+ if (!token)
82
+ throw new Error("not signed in — run `bp login` first");
83
+ assertSafeRelay(getRelayUrl());
84
+ const haveId = !!input.id;
85
+ const url = haveId
86
+ ? `${getRelayUrl()}/api/kb/documents/${encodeURIComponent(input.id)}`
87
+ : `${getRelayUrl()}/api/kb/documents`;
88
+ const res = await fetch(url, {
89
+ method: haveId ? "PUT" : "POST",
90
+ headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
91
+ body: JSON.stringify({
92
+ title: input.title,
93
+ content: input.content,
94
+ tags: input.tags ?? [],
95
+ sourceGraphs: input.sourceGraphs ?? [],
96
+ collection: input.collection,
97
+ }),
98
+ });
99
+ if (!res.ok) {
100
+ if (res.status === 401)
101
+ throw new Error("cloud session expired — run `bp login` to refresh");
102
+ throw new Error(`cloud KB save returned HTTP ${res.status}`);
103
+ }
104
+ const body = await res.json();
105
+ // Use the actual response status — the upsert endpoint may have created
106
+ // a new doc even though the caller passed an `id` that didn't exist.
107
+ // POST returns 201 on create; PUT returns 201 on create (upsert), 200 on update.
108
+ return { id: body.id, created: res.status === 201 };
109
+ }
110
+ export async function deleteKB(id) {
111
+ const ctx = await getContext();
112
+ if (ctx.source === "local") {
113
+ const store = await localStore();
114
+ await store.delete(id);
115
+ return;
116
+ }
117
+ const token = await resolveCloudToken();
118
+ if (!token)
119
+ throw new Error("not signed in — run `bp login` first");
120
+ assertSafeRelay(getRelayUrl());
121
+ const res = await fetch(`${getRelayUrl()}/api/kb/documents/${encodeURIComponent(id)}`, {
122
+ method: "DELETE",
123
+ headers: { Authorization: `Bearer ${token}` },
124
+ });
125
+ if (res.status === 404)
126
+ throw new Error(`kb doc "${id}" not found`);
127
+ if (!res.ok) {
128
+ if (res.status === 401)
129
+ throw new Error("cloud session expired — run `bp login` to refresh");
130
+ throw new Error(`cloud KB delete returned HTTP ${res.status}`);
131
+ }
132
+ }
133
+ export async function getKB(id) {
134
+ const ctx = await getContext();
135
+ if (ctx.source === "local") {
136
+ const store = await localStore();
137
+ const doc = await store.read(id);
138
+ if (!doc)
139
+ return null;
140
+ return {
141
+ id: doc.id,
142
+ title: doc.title,
143
+ tags: doc.tags ?? [],
144
+ sourceGraphs: doc.sourceGraphs ?? [],
145
+ collection: doc.collection,
146
+ content: doc.content,
147
+ origin: "local",
148
+ };
149
+ }
150
+ const token = await resolveCloudToken();
151
+ if (!token)
152
+ throw new Error("not signed in — run `bp login` first");
153
+ assertSafeRelay(getRelayUrl());
154
+ const res = await fetch(`${getRelayUrl()}/api/kb/documents/${encodeURIComponent(id)}`, {
155
+ headers: { Authorization: `Bearer ${token}` },
156
+ });
157
+ if (res.status === 404)
158
+ return null;
159
+ if (!res.ok) {
160
+ if (res.status === 401)
161
+ throw new Error("cloud session expired — run `bp login` to refresh");
162
+ throw new Error(`cloud /api/kb/documents/${id} returned HTTP ${res.status}`);
163
+ }
164
+ const d = await res.json();
165
+ return {
166
+ id: d.id,
167
+ title: d.title ?? d.id,
168
+ tags: d.tags ?? [],
169
+ sourceGraphs: d.sourceGraphs ?? [],
170
+ collection: d.collection,
171
+ sourceBackpack: d.sourceBackpack,
172
+ content: d.content ?? "",
173
+ origin: "cloud",
174
+ };
175
+ }
176
+ //# sourceMappingURL=kb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kb.js","sourceRoot":"","sources":["../../src/ops/kb.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backpack-ontology",
3
- "version": "0.7.13",
3
+ "version": "0.8.0",
4
4
  "description": "A persistent learning graph engine for Claude Code via MCP — structured knowledge that carries forward across sessions",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Noah Irzinger",
@@ -11,7 +11,8 @@
11
11
  "backpack-sync": "./dist/bin/backpack-sync.js",
12
12
  "backpack-init": "./dist/bin/init.js",
13
13
  "backpack-benchmark": "./dist/bin/backpack-benchmark.js",
14
- "backpack": "./dist/bin/backpack.js"
14
+ "backpack": "./dist/bin/backpack.js",
15
+ "bp": "./dist/bin/bp.js"
15
16
  },
16
17
  "main": "./dist/index.js",
17
18
  "types": "./dist/index.d.ts",