pqc-memory-mcp 1.0.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 (155) hide show
  1. package/.env.example +47 -0
  2. package/AGENTS.md +13 -0
  3. package/README.md +403 -0
  4. package/dist/auth/tenant-verifier.d.ts +18 -0
  5. package/dist/auth/tenant-verifier.d.ts.map +1 -0
  6. package/dist/auth/tenant-verifier.js +255 -0
  7. package/dist/auth/tenant-verifier.js.map +1 -0
  8. package/dist/cli.d.ts +3 -0
  9. package/dist/cli.d.ts.map +1 -0
  10. package/dist/cli.js +34 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/client.d.ts +244 -0
  13. package/dist/client.d.ts.map +1 -0
  14. package/dist/client.js +543 -0
  15. package/dist/client.js.map +1 -0
  16. package/dist/debug.d.ts +6 -0
  17. package/dist/debug.d.ts.map +1 -0
  18. package/dist/debug.js +21 -0
  19. package/dist/debug.js.map +1 -0
  20. package/dist/http.d.ts +21 -0
  21. package/dist/http.d.ts.map +1 -0
  22. package/dist/http.js +189 -0
  23. package/dist/http.js.map +1 -0
  24. package/dist/index.d.ts +3 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +28 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/init-wizard.d.ts +3 -0
  29. package/dist/init-wizard.d.ts.map +1 -0
  30. package/dist/init-wizard.js +138 -0
  31. package/dist/init-wizard.js.map +1 -0
  32. package/dist/mcp-exchange.d.ts +38 -0
  33. package/dist/mcp-exchange.d.ts.map +1 -0
  34. package/dist/mcp-exchange.js +126 -0
  35. package/dist/mcp-exchange.js.map +1 -0
  36. package/dist/server-factory.d.ts +8 -0
  37. package/dist/server-factory.d.ts.map +1 -0
  38. package/dist/server-factory.js +29 -0
  39. package/dist/server-factory.js.map +1 -0
  40. package/dist/session.d.ts +27 -0
  41. package/dist/session.d.ts.map +1 -0
  42. package/dist/session.js +121 -0
  43. package/dist/session.js.map +1 -0
  44. package/dist/tenant-cache.d.ts +20 -0
  45. package/dist/tenant-cache.d.ts.map +1 -0
  46. package/dist/tenant-cache.js +61 -0
  47. package/dist/tenant-cache.js.map +1 -0
  48. package/dist/tenant-fetch.d.ts +20 -0
  49. package/dist/tenant-fetch.d.ts.map +1 -0
  50. package/dist/tenant-fetch.js +91 -0
  51. package/dist/tenant-fetch.js.map +1 -0
  52. package/dist/tenant-runtime.d.ts +16 -0
  53. package/dist/tenant-runtime.d.ts.map +1 -0
  54. package/dist/tenant-runtime.js +31 -0
  55. package/dist/tenant-runtime.js.map +1 -0
  56. package/dist/tenant.d.ts +20 -0
  57. package/dist/tenant.d.ts.map +1 -0
  58. package/dist/tenant.js +26 -0
  59. package/dist/tenant.js.map +1 -0
  60. package/dist/tool-definitions.d.ts +9 -0
  61. package/dist/tool-definitions.d.ts.map +1 -0
  62. package/dist/tool-definitions.js +81 -0
  63. package/dist/tool-definitions.js.map +1 -0
  64. package/dist/tool-dispatch.d.ts +9 -0
  65. package/dist/tool-dispatch.d.ts.map +1 -0
  66. package/dist/tool-dispatch.js +194 -0
  67. package/dist/tool-dispatch.js.map +1 -0
  68. package/dist/tools/codegraph.d.ts +73 -0
  69. package/dist/tools/codegraph.d.ts.map +1 -0
  70. package/dist/tools/codegraph.js +203 -0
  71. package/dist/tools/codegraph.js.map +1 -0
  72. package/dist/tools/delete.d.ts +18 -0
  73. package/dist/tools/delete.d.ts.map +1 -0
  74. package/dist/tools/delete.js +23 -0
  75. package/dist/tools/delete.js.map +1 -0
  76. package/dist/tools/evolution.d.ts +90 -0
  77. package/dist/tools/evolution.d.ts.map +1 -0
  78. package/dist/tools/evolution.js +255 -0
  79. package/dist/tools/evolution.js.map +1 -0
  80. package/dist/tools/graph.d.ts +43 -0
  81. package/dist/tools/graph.d.ts.map +1 -0
  82. package/dist/tools/graph.js +94 -0
  83. package/dist/tools/graph.js.map +1 -0
  84. package/dist/tools/models.d.ts +57 -0
  85. package/dist/tools/models.d.ts.map +1 -0
  86. package/dist/tools/models.js +105 -0
  87. package/dist/tools/models.js.map +1 -0
  88. package/dist/tools/narratives.d.ts +82 -0
  89. package/dist/tools/narratives.d.ts.map +1 -0
  90. package/dist/tools/narratives.js +218 -0
  91. package/dist/tools/narratives.js.map +1 -0
  92. package/dist/tools/objects.d.ts +65 -0
  93. package/dist/tools/objects.d.ts.map +1 -0
  94. package/dist/tools/objects.js +157 -0
  95. package/dist/tools/objects.js.map +1 -0
  96. package/dist/tools/obsidian.d.ts +31 -0
  97. package/dist/tools/obsidian.d.ts.map +1 -0
  98. package/dist/tools/obsidian.js +167 -0
  99. package/dist/tools/obsidian.js.map +1 -0
  100. package/dist/tools/outcome.d.ts +21 -0
  101. package/dist/tools/outcome.d.ts.map +1 -0
  102. package/dist/tools/outcome.js +35 -0
  103. package/dist/tools/outcome.js.map +1 -0
  104. package/dist/tools/promote.d.ts +21 -0
  105. package/dist/tools/promote.d.ts.map +1 -0
  106. package/dist/tools/promote.js +31 -0
  107. package/dist/tools/promote.js.map +1 -0
  108. package/dist/tools/reflect.d.ts +27 -0
  109. package/dist/tools/reflect.d.ts.map +1 -0
  110. package/dist/tools/reflect.js +85 -0
  111. package/dist/tools/reflect.js.map +1 -0
  112. package/dist/tools/search.d.ts +27 -0
  113. package/dist/tools/search.d.ts.map +1 -0
  114. package/dist/tools/search.js +42 -0
  115. package/dist/tools/search.js.map +1 -0
  116. package/dist/tools/strategies.d.ts +43 -0
  117. package/dist/tools/strategies.d.ts.map +1 -0
  118. package/dist/tools/strategies.js +126 -0
  119. package/dist/tools/strategies.js.map +1 -0
  120. package/dist/tools/summary.d.ts +61 -0
  121. package/dist/tools/summary.d.ts.map +1 -0
  122. package/dist/tools/summary.js +124 -0
  123. package/dist/tools/summary.js.map +1 -0
  124. package/dist/tools/swarm.d.ts +71 -0
  125. package/dist/tools/swarm.d.ts.map +1 -0
  126. package/dist/tools/swarm.js +145 -0
  127. package/dist/tools/swarm.js.map +1 -0
  128. package/dist/tools/v4.d.ts +152 -0
  129. package/dist/tools/v4.d.ts.map +1 -0
  130. package/dist/tools/v4.js +348 -0
  131. package/dist/tools/v4.js.map +1 -0
  132. package/dist/tools/write.d.ts +30 -0
  133. package/dist/tools/write.d.ts.map +1 -0
  134. package/dist/tools/write.js +52 -0
  135. package/dist/tools/write.js.map +1 -0
  136. package/dist/types.d.ts +359 -0
  137. package/dist/types.d.ts.map +1 -0
  138. package/dist/types.js +2 -0
  139. package/dist/types.js.map +1 -0
  140. package/dist/zod-json-schema.d.ts +3 -0
  141. package/dist/zod-json-schema.d.ts.map +1 -0
  142. package/dist/zod-json-schema.js +52 -0
  143. package/dist/zod-json-schema.js.map +1 -0
  144. package/docs/claude-remote-oauth.md +26 -0
  145. package/docs/crypticpqc-auth-architecture.md +107 -0
  146. package/docs/crypticpqc-cross-domain-auth.md +194 -0
  147. package/docs/mcp-auth0-exchange-contract.md +75 -0
  148. package/docs/mcp-authorization-spec-alignment.md +29 -0
  149. package/docs/mcp-org-object-storage.md +55 -0
  150. package/docs/pqc-api-tenant-context-go.md +238 -0
  151. package/docs/pqc-db-mcp-tenant-context.md +15 -0
  152. package/docs/pqc-db-tenant-context-implementation.md +32 -0
  153. package/docs/standalone-distribution.md +92 -0
  154. package/package.json +52 -0
  155. package/scripts/start.mjs +13 -0
package/dist/client.js ADDED
@@ -0,0 +1,543 @@
1
+ export class PqcApiError extends Error {
2
+ statusCode;
3
+ apiError;
4
+ constructor(statusCode, apiError) {
5
+ super(apiError.error);
6
+ this.statusCode = statusCode;
7
+ this.apiError = apiError;
8
+ this.name = "PqcApiError";
9
+ }
10
+ }
11
+ export class PqcClient {
12
+ baseUrl;
13
+ apiKey;
14
+ bearerToken;
15
+ constructor(config) {
16
+ this.baseUrl = config.apiUrl.replace(/\/$/, "");
17
+ this.apiKey = config.apiKey;
18
+ this.bearerToken = config.bearerToken;
19
+ }
20
+ buildAuthHeaders(sessionToken, contentType = "none") {
21
+ const headers = {
22
+ "X-API-Key": this.apiKey,
23
+ };
24
+ if (this.bearerToken) {
25
+ headers["Authorization"] = `Bearer ${this.bearerToken}`;
26
+ }
27
+ if (sessionToken) {
28
+ headers["X-Memory-Session"] = sessionToken;
29
+ }
30
+ if (contentType === "json") {
31
+ headers["Content-Type"] = "application/json";
32
+ }
33
+ return headers;
34
+ }
35
+ async parseErrorBody(response) {
36
+ const ct = response.headers.get("content-type") ?? "";
37
+ if (ct.includes("application/json")) {
38
+ try {
39
+ return (await response.json());
40
+ }
41
+ catch {
42
+ /* fall through */
43
+ }
44
+ }
45
+ const text = await response.text().catch(() => "");
46
+ return { error: text || response.statusText || "request failed" };
47
+ }
48
+ async request(method, path, options = {}) {
49
+ const url = new URL(`${this.baseUrl}${path}`);
50
+ if (options.query) {
51
+ for (const [key, value] of Object.entries(options.query)) {
52
+ if (value !== undefined) {
53
+ url.searchParams.set(key, String(value));
54
+ }
55
+ }
56
+ }
57
+ const hasJsonBody = options.body !== undefined;
58
+ const headers = this.buildAuthHeaders(options.sessionToken, hasJsonBody ? "json" : "none");
59
+ const response = await fetch(url.toString(), {
60
+ method,
61
+ headers,
62
+ body: hasJsonBody ? JSON.stringify(options.body) : undefined,
63
+ });
64
+ const data = await response.json();
65
+ if (!response.ok) {
66
+ throw new PqcApiError(response.status, data);
67
+ }
68
+ return data;
69
+ }
70
+ /**
71
+ * Encrypted object upload via org managed Kyber key (multipart).
72
+ * POST /api/v1/keys/managed/{key_id}/objects
73
+ */
74
+ async uploadManagedKeyObject(keyId, options) {
75
+ const url = `${this.baseUrl}/api/v1/keys/managed/${encodeURIComponent(keyId)}/objects`;
76
+ const form = new FormData();
77
+ const partName = options.multipartFilename ??
78
+ options.displayFilename ??
79
+ "upload.bin";
80
+ form.append("file", new Blob([options.file]), partName);
81
+ form.append("bucket_id", options.bucketId);
82
+ if (options.displayFilename !== undefined &&
83
+ options.displayFilename !== "") {
84
+ form.append("filename", options.displayFilename);
85
+ }
86
+ const response = await fetch(url, {
87
+ method: "POST",
88
+ headers: this.buildAuthHeaders(undefined, "none"),
89
+ body: form,
90
+ });
91
+ const data = await response.json().catch(() => ({}));
92
+ if (!response.ok) {
93
+ const err = typeof data === "object" &&
94
+ data !== null &&
95
+ "error" in data &&
96
+ typeof data.error === "string"
97
+ ? data
98
+ : {
99
+ error: typeof data === "object" && data !== null
100
+ ? JSON.stringify(data)
101
+ : response.statusText || "upload failed",
102
+ };
103
+ throw new PqcApiError(response.status, err);
104
+ }
105
+ return data;
106
+ }
107
+ /**
108
+ * Download and decrypt object bytes.
109
+ * GET /api/v1/keys/managed/{key_id}/objects/{object_id}
110
+ */
111
+ async downloadManagedKeyObject(keyId, objectId) {
112
+ const url = `${this.baseUrl}/api/v1/keys/managed/${encodeURIComponent(keyId)}/objects/${encodeURIComponent(objectId)}`;
113
+ const response = await fetch(url, {
114
+ method: "GET",
115
+ headers: this.buildAuthHeaders(undefined, "none"),
116
+ });
117
+ if (!response.ok) {
118
+ const err = await this.parseErrorBody(response);
119
+ throw new PqcApiError(response.status, err);
120
+ }
121
+ const arrayBuf = await response.arrayBuffer();
122
+ return {
123
+ body: Buffer.from(arrayBuf),
124
+ contentType: response.headers.get("content-type"),
125
+ };
126
+ }
127
+ /**
128
+ * List org objects; optional bucket filter.
129
+ * GET /api/v1/objects
130
+ */
131
+ async listOrgObjects(options) {
132
+ return this.request("GET", "/api/v1/objects", {
133
+ query: options?.bucket ? { bucket: options.bucket } : undefined,
134
+ });
135
+ }
136
+ /**
137
+ * Object metadata (may include download_hint for encrypted objects).
138
+ * GET /api/v1/objects/{id}
139
+ */
140
+ async getOrgObjectMetadata(objectId) {
141
+ return this.request("GET", `/api/v1/objects/${encodeURIComponent(objectId)}`);
142
+ }
143
+ async startSession(req) {
144
+ return this.request("POST", "/api/v1/memory/session/start", {
145
+ body: req,
146
+ });
147
+ }
148
+ async endSession(sessionToken) {
149
+ await this.request("POST", "/api/v1/memory/session/end", {
150
+ body: { session_token: sessionToken },
151
+ });
152
+ }
153
+ async getSessionStatus(sessionToken) {
154
+ return this.request("GET", "/api/v1/memory/session/status", {
155
+ sessionToken,
156
+ });
157
+ }
158
+ async writeMemory(sessionToken, req) {
159
+ return this.request("POST", "/api/v1/memory/write", {
160
+ sessionToken,
161
+ body: req,
162
+ });
163
+ }
164
+ async promoteMemory(sessionToken, req) {
165
+ return this.request("POST", "/api/v1/memory/promote", {
166
+ sessionToken,
167
+ body: req,
168
+ });
169
+ }
170
+ async deleteMemory(sessionToken, memoryId) {
171
+ await this.request("DELETE", `/api/v1/memory/${memoryId}`, { sessionToken });
172
+ }
173
+ async queryMemories(sessionToken, options = {}) {
174
+ return this.request("GET", "/api/v1/memory/query", {
175
+ sessionToken,
176
+ query: {
177
+ tags: options.tags?.join(","),
178
+ memory_type: options.memoryType,
179
+ limit: options.limit,
180
+ offset: options.offset,
181
+ },
182
+ });
183
+ }
184
+ async semanticSearch(sessionToken, query, limit = 10, scope, branchId, includeBranches) {
185
+ return this.request("GET", "/api/v1/memory/search", {
186
+ sessionToken,
187
+ query: {
188
+ q: query,
189
+ limit,
190
+ scope,
191
+ branch_id: branchId,
192
+ include_branches: includeBranches,
193
+ },
194
+ });
195
+ }
196
+ async reflect(sessionToken, req) {
197
+ return this.request("POST", "/api/v1/memory/reflect", {
198
+ sessionToken,
199
+ body: req,
200
+ });
201
+ }
202
+ async hybridSearch(sessionToken, query, options = {}) {
203
+ return this.request("GET", "/api/v1/memory/hybrid-search", {
204
+ sessionToken,
205
+ query: {
206
+ q: query,
207
+ limit: options.limit,
208
+ tags: options.tags?.join(","),
209
+ tags_match: options.tagsMatch,
210
+ },
211
+ });
212
+ }
213
+ async listEntities(sessionToken) {
214
+ return this.request("GET", "/api/v1/memory/graph/entities", {
215
+ sessionToken,
216
+ });
217
+ }
218
+ async findRelatedEntities(sessionToken, entityName, hops = 1) {
219
+ return this.request("GET", "/api/v1/memory/graph/related", {
220
+ sessionToken,
221
+ query: { entity: entityName, hops },
222
+ });
223
+ }
224
+ async findMemoriesByEntity(sessionToken, entityName, limit = 20) {
225
+ return this.request("GET", "/api/v1/memory/graph/memories", {
226
+ sessionToken,
227
+ query: { entity: entityName, limit },
228
+ });
229
+ }
230
+ async tagOutcome(sessionToken, memoryId, req) {
231
+ await this.request("POST", `/api/v1/memory/${memoryId}/outcome`, {
232
+ sessionToken,
233
+ body: req,
234
+ });
235
+ }
236
+ async listMentalModels(sessionToken, limit = 50, offset = 0) {
237
+ return this.request("GET", "/api/v1/memory/mental-models", {
238
+ sessionToken,
239
+ query: { limit, offset },
240
+ });
241
+ }
242
+ async getMentalModel(sessionToken, modelId) {
243
+ return this.request("GET", `/api/v1/memory/mental-models/${modelId}`, { sessionToken });
244
+ }
245
+ async createMentalModel(sessionToken, req) {
246
+ return this.request("POST", "/api/v1/memory/mental-models", {
247
+ sessionToken,
248
+ body: req,
249
+ });
250
+ }
251
+ async refreshMentalModel(sessionToken, modelId) {
252
+ return this.request("POST", `/api/v1/memory/mental-models/${modelId}/refresh`, { sessionToken });
253
+ }
254
+ async deleteMentalModel(sessionToken, modelId) {
255
+ await this.request("DELETE", `/api/v1/memory/mental-models/${modelId}`, { sessionToken });
256
+ }
257
+ async listStrategies(sessionToken, options = {}) {
258
+ return this.request("GET", "/api/v1/memory/strategies", {
259
+ sessionToken,
260
+ query: {
261
+ outcome_type: options.outcomeType,
262
+ limit: options.limit,
263
+ offset: options.offset,
264
+ },
265
+ });
266
+ }
267
+ async distillStrategies(sessionToken, req) {
268
+ return this.request("POST", "/api/v1/memory/distill-strategies", {
269
+ sessionToken,
270
+ body: req,
271
+ });
272
+ }
273
+ async getStats(sessionToken) {
274
+ return this.request("GET", "/api/v1/memory/stats", {
275
+ sessionToken,
276
+ });
277
+ }
278
+ // =============================================================================
279
+ // GEA Evolution Methods
280
+ // =============================================================================
281
+ async listTraits(sessionToken, options = {}) {
282
+ return this.request("GET", "/api/v1/evolution/traits", {
283
+ sessionToken,
284
+ query: {
285
+ agent_id: options.agentId,
286
+ trait_type: options.traitType,
287
+ source_type: options.sourceType,
288
+ min_confidence: options.minConfidence,
289
+ tags: options.tags?.join(","),
290
+ include_deprecated: options.includeDeprecated,
291
+ limit: options.limit,
292
+ offset: options.offset,
293
+ },
294
+ });
295
+ }
296
+ async getInheritableTraits(sessionToken, agentId, options = {}) {
297
+ return this.request("GET", `/api/v1/evolution/traits/inheritable/${agentId}`, {
298
+ sessionToken,
299
+ query: {
300
+ trait_type: options.traitType,
301
+ min_confidence: options.minConfidence,
302
+ min_success_rate: options.minSuccessRate,
303
+ limit: options.limit,
304
+ },
305
+ });
306
+ }
307
+ async listPatterns(sessionToken, options = {}) {
308
+ return this.request("GET", "/api/v1/reflection/group/patterns", {
309
+ sessionToken,
310
+ query: {
311
+ pattern_type: options.patternType,
312
+ status: options.status,
313
+ min_agent_count: options.minAgentCount,
314
+ min_confidence: options.minConfidence,
315
+ limit: options.limit,
316
+ offset: options.offset,
317
+ },
318
+ });
319
+ }
320
+ async promotePattern(sessionToken, patternId, traitName) {
321
+ return this.request("POST", `/api/v1/reflection/group/patterns/${patternId}/promote`, {
322
+ sessionToken,
323
+ body: traitName ? { trait_name: traitName } : {},
324
+ });
325
+ }
326
+ // =============================================================================
327
+ // Obsidian Export Methods
328
+ // =============================================================================
329
+ async obsidianExport(sessionToken, req) {
330
+ return this.request("POST", "/api/v1/obsidian/export", {
331
+ sessionToken,
332
+ body: req,
333
+ });
334
+ }
335
+ async obsidianStatus(sessionToken) {
336
+ return this.request("GET", "/api/v1/obsidian/status", { sessionToken });
337
+ }
338
+ async obsidianDownloadUrl(sessionToken) {
339
+ // Return the download URL - the actual download will be handled by the user
340
+ return `${this.baseUrl}/api/v1/obsidian/download`;
341
+ }
342
+ async obsidianDelete(sessionToken) {
343
+ await this.request("DELETE", "/api/v1/obsidian/export", { sessionToken });
344
+ }
345
+ // =============================================================================
346
+ // v4 Memory System Methods
347
+ // =============================================================================
348
+ async routedSearch(sessionToken, query, limit = 10, routing = "auto", condensed = false, branchId, includeBranches) {
349
+ return this.request("GET", "/api/v1/memory/routed-search", {
350
+ sessionToken,
351
+ query: {
352
+ query,
353
+ limit,
354
+ routing,
355
+ condensed,
356
+ branch_id: branchId,
357
+ include_branches: includeBranches,
358
+ },
359
+ });
360
+ }
361
+ async activateContext(sessionToken, memoryId, priority = 5, reason, expiresInHours = 8) {
362
+ return this.request("POST", "/api/v1/memory/context/activate", {
363
+ sessionToken,
364
+ body: {
365
+ memory_id: memoryId,
366
+ priority,
367
+ reason,
368
+ expires_in_hours: expiresInHours,
369
+ },
370
+ });
371
+ }
372
+ async getActiveContext(sessionToken) {
373
+ return this.request("GET", "/api/v1/memory/context", {
374
+ sessionToken,
375
+ });
376
+ }
377
+ async checkTriggers(sessionToken, filePath, tags, entities, keywords) {
378
+ return this.request("POST", "/api/v1/memory/triggers/check", {
379
+ sessionToken,
380
+ body: {
381
+ file_path: filePath,
382
+ tags,
383
+ entities,
384
+ keywords,
385
+ },
386
+ });
387
+ }
388
+ async lookupFact(sessionToken, key) {
389
+ return this.request("GET", "/api/v1/memory/facts/lookup", {
390
+ sessionToken,
391
+ query: { key },
392
+ });
393
+ }
394
+ async searchFacts(sessionToken, query) {
395
+ return this.request("GET", "/api/v1/memory/facts/search", {
396
+ sessionToken,
397
+ query: { query },
398
+ });
399
+ }
400
+ async createTrigger(sessionToken, trigger) {
401
+ return this.request("POST", "/api/v1/memory/triggers", {
402
+ sessionToken,
403
+ body: trigger,
404
+ });
405
+ }
406
+ async listTriggers(sessionToken) {
407
+ return this.request("GET", "/api/v1/memory/triggers", {
408
+ sessionToken,
409
+ });
410
+ }
411
+ // =============================================================================
412
+ // v5 Identity Layer Methods
413
+ // =============================================================================
414
+ async getIdentity(sessionToken) {
415
+ return this.request("GET", "/api/v1/memory/identity", {
416
+ sessionToken,
417
+ });
418
+ }
419
+ async createNarrative(sessionToken, name, description, tags) {
420
+ return this.request("POST", "/api/v1/memory/narratives", {
421
+ sessionToken,
422
+ body: { name, description, tags },
423
+ });
424
+ }
425
+ async listNarratives(sessionToken, status, limit = 50) {
426
+ return this.request("GET", "/api/v1/memory/narratives", {
427
+ sessionToken,
428
+ query: { status, limit },
429
+ });
430
+ }
431
+ async getNarrative(sessionToken, narrativeId) {
432
+ return this.request("GET", `/api/v1/memory/narratives/${narrativeId}`, {
433
+ sessionToken,
434
+ });
435
+ }
436
+ async updateNarrative(sessionToken, narrativeId, updates) {
437
+ return this.request("PUT", `/api/v1/memory/narratives/${narrativeId}`, {
438
+ sessionToken,
439
+ body: updates,
440
+ });
441
+ }
442
+ async deleteNarrative(sessionToken, narrativeId) {
443
+ return this.request("DELETE", `/api/v1/memory/narratives/${narrativeId}`, {
444
+ sessionToken,
445
+ });
446
+ }
447
+ async linkMemoryToNarrative(sessionToken, narrativeId, memoryId, options) {
448
+ return this.request("POST", `/api/v1/memory/narratives/${narrativeId}/memories`, {
449
+ sessionToken,
450
+ body: { memory_id: memoryId, ...options },
451
+ });
452
+ }
453
+ async unlinkMemoryFromNarrative(sessionToken, narrativeId, memoryId) {
454
+ return this.request("DELETE", `/api/v1/memory/narratives/${narrativeId}/memories/${memoryId}`, {
455
+ sessionToken,
456
+ });
457
+ }
458
+ async getNarrativeTimeline(sessionToken, narrativeId) {
459
+ return this.request("GET", `/api/v1/memory/narratives/${narrativeId}/timeline`, {
460
+ sessionToken,
461
+ });
462
+ }
463
+ async getSelfEvaluationStats(sessionToken) {
464
+ return this.request("GET", "/api/v1/memory/self-evaluation/stats", {
465
+ sessionToken,
466
+ });
467
+ }
468
+ async getUnifiedContext(sessionToken, options = {}) {
469
+ return this.request("POST", "/api/v1/memory/context/unified", {
470
+ sessionToken,
471
+ body: {
472
+ max_tokens: options.maxTokens,
473
+ include_identity: options.includeIdentity,
474
+ include_active_context: options.includeActiveContext,
475
+ include_triggers: options.includeTriggers,
476
+ include_mental_models: options.includeMentalModels,
477
+ file_path: options.filePath,
478
+ entities: options.entities,
479
+ tags: options.tags,
480
+ },
481
+ });
482
+ }
483
+ // ============================================================================
484
+ // Swarm Evolution Framework
485
+ // ============================================================================
486
+ async registerSwarm(sessionToken, req) {
487
+ return this.request("POST", "/api/v1/memory/swarm/register", {
488
+ sessionToken,
489
+ body: req,
490
+ });
491
+ }
492
+ async spawnSubagent(sessionToken, req) {
493
+ return this.request("POST", "/api/v1/memory/swarm/spawn", {
494
+ sessionToken,
495
+ body: req,
496
+ });
497
+ }
498
+ async listSubagents(sessionToken, includeInactive = false) {
499
+ return this.request("GET", "/api/v1/memory/swarm/subagents", {
500
+ sessionToken,
501
+ query: { include_inactive: includeInactive },
502
+ });
503
+ }
504
+ async dissolveSubagent(sessionToken, subagentId) {
505
+ await this.request("DELETE", `/api/v1/memory/swarm/subagents/${subagentId}`, {
506
+ sessionToken,
507
+ });
508
+ }
509
+ async getSwarmPermissions(sessionToken) {
510
+ return this.request("GET", "/api/v1/memory/swarm/permissions", {
511
+ sessionToken,
512
+ });
513
+ }
514
+ // ============================================================================
515
+ // Code Graph Methods
516
+ // ============================================================================
517
+ async codegraphFindSymbol(name, limit = 20) {
518
+ return this.request("GET", "/api/v1/codegraph/find", {
519
+ query: { name, limit },
520
+ });
521
+ }
522
+ async codegraphFindCallers(functionId, limit = 50) {
523
+ return this.request("GET", `/api/v1/codegraph/callers/${functionId}`, {
524
+ query: { limit },
525
+ });
526
+ }
527
+ async codegraphFindCallees(functionId, limit = 50) {
528
+ return this.request("GET", `/api/v1/codegraph/callees/${functionId}`, {
529
+ query: { limit },
530
+ });
531
+ }
532
+ async codegraphFindImpact(functionId, maxDepth = 5, limit = 100) {
533
+ return this.request("GET", `/api/v1/codegraph/impact/${functionId}`, {
534
+ query: { max_depth: maxDepth, limit },
535
+ });
536
+ }
537
+ async codegraphFileSummary(filePath) {
538
+ return this.request("GET", "/api/v1/codegraph/file-summary", {
539
+ query: { file: filePath },
540
+ });
541
+ }
542
+ }
543
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /** Opt-in verbose logs for prod/staging diagnosis. Set `PQC_MCP_DEBUG=1`. */
2
+ export declare function isMcpDebug(): boolean;
3
+ /** Short stable id for a bearer string — never log raw tokens. */
4
+ export declare function tokenFingerprint(token: string): string;
5
+ export declare function mcpDebug(event: string, fields?: Record<string, string | number | boolean | undefined | null>): void;
6
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAEA,6EAA6E;AAC7E,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED,kEAAkE;AAClE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,GACpE,IAAI,CAQN"}
package/dist/debug.js ADDED
@@ -0,0 +1,21 @@
1
+ import { createHash } from "node:crypto";
2
+ /** Opt-in verbose logs for prod/staging diagnosis. Set `PQC_MCP_DEBUG=1`. */
3
+ export function isMcpDebug() {
4
+ const v = (process.env.PQC_MCP_DEBUG || "").trim().toLowerCase();
5
+ return v === "1" || v === "true" || v === "yes";
6
+ }
7
+ /** Short stable id for a bearer string — never log raw tokens. */
8
+ export function tokenFingerprint(token) {
9
+ return createHash("sha256").update(token).digest("hex").slice(0, 12);
10
+ }
11
+ export function mcpDebug(event, fields) {
12
+ if (!isMcpDebug())
13
+ return;
14
+ const payload = {
15
+ t: new Date().toISOString(),
16
+ event,
17
+ ...fields,
18
+ };
19
+ console.error("[pqc-memory:debug]", JSON.stringify(payload));
20
+ }
21
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,6EAA6E;AAC7E,MAAM,UAAU,UAAU;IACxB,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACjE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,KAAK,CAAC;AAClD,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,QAAQ,CACtB,KAAa,EACb,MAAqE;IAErE,IAAI,CAAC,UAAU,EAAE;QAAE,OAAO;IAC1B,MAAM,OAAO,GAA4B;QACvC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC3B,KAAK;QACL,GAAG,MAAM;KACV,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,CAAC"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Streamable HTTP MCP entrypoint for remote clients (e.g. Claude.ai connectors).
4
+ *
5
+ * Requires:
6
+ * PQC_TENANT_RESOLUTION_URL — pqc-api **public origin only** (e.g. https://crypticpqc.com); MCP calls
7
+ * GET {origin}/api/v1/mcp/tenant-context. Bearer = pqc-api access JWT (HS256).
8
+ *
9
+ * Optional:
10
+ * PORT — preferred on PaaS (Zeabur, Railway, Render); falls back to PQC_MCP_HTTP_PORT then 8787
11
+ * PQC_MCP_SERVICE_API_KEY — forwarded as X-API-Key to tenant-context and mcp-exchange if set
12
+ * PQC_MCP_AUTH0_EXCHANGE — off | 1/retry/true | always (see docs/mcp-auth0-exchange-contract.md)
13
+ * PQC_MCP_ALLOWED_HOSTS — comma-separated host allowlist for DNS rebinding protection
14
+ * PQC_MCP_PUBLIC_URL — public origin for OAuth protected resource metadata (e.g. https://mcp.example.com)
15
+ * PQC_MCP_AUTHORIZATION_SERVERS — comma-separated issuer URLs for PRM (external IdP)
16
+ * PQC_MCP_PRM_RESOURCE — optional RFC 9728 `resource` URL override (default: {PUBLIC_URL}/mcp). Must match Auth0 API Identifier if the client maps resource → audience.
17
+ * PQC_TENANT_CONTEXT_MOCK=1 — dev only; uses PQC_API_* env as tenant for any bearer
18
+ * PQC_MCP_DEBUG=1 — log HTTP + auth resolution steps (no secrets; token fingerprints only)
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG"}