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
@@ -0,0 +1,255 @@
1
+ import { exchangeAuth0AccessToken, getMcpExchangeCache, looksLikeJwt, } from "../mcp-exchange.js";
2
+ import { mcpDebug, tokenFingerprint } from "../debug.js";
3
+ import { fetchTenantContextFromPqc, mockTenantIfEnabled, TenantResolveError, } from "../tenant-fetch.js";
4
+ import { InvalidTokenError } from "@modelcontextprotocol/sdk/server/auth/errors.js";
5
+ function auth0ExchangeMode() {
6
+ const raw = (process.env.PQC_MCP_AUTH0_EXCHANGE || "").trim().toLowerCase();
7
+ if (!raw || raw === "0" || raw === "false" || raw === "off") {
8
+ return "off";
9
+ }
10
+ if (raw === "always") {
11
+ return "always";
12
+ }
13
+ if (raw === "1" || raw === "retry" || raw === "true") {
14
+ return "retry";
15
+ }
16
+ return "off";
17
+ }
18
+ function mapExchangeFailure(e) {
19
+ const msg = e.message || "token exchange failed";
20
+ if (e.statusCode === 404) {
21
+ return new InvalidTokenError("account not linked - sign in to the portal once so Auth0 sub is stored");
22
+ }
23
+ if (e.statusCode === 400) {
24
+ return new InvalidTokenError("access token is not a JWT (opaque tokens are not supported)");
25
+ }
26
+ if (e.statusCode === 503 || e.statusCode === 501) {
27
+ return new InvalidTokenError("token exchange is not configured on the API");
28
+ }
29
+ if (e.statusCode === 401) {
30
+ return new InvalidTokenError("invalid or expired token");
31
+ }
32
+ if (e.statusCode === 403) {
33
+ return new InvalidTokenError("not authorized for token exchange");
34
+ }
35
+ return new InvalidTokenError(msg.replace(/[^\x20-\x7E]/g, "-"));
36
+ }
37
+ async function resolveTenantContext(resolutionBaseUrl, inboundBearer) {
38
+ const mode = auth0ExchangeMode();
39
+ const inboundFp = tokenFingerprint(inboundBearer);
40
+ const cache = getMcpExchangeCache();
41
+ const fetchCtx = (bearer) => fetchTenantContextFromPqc(resolutionBaseUrl, bearer);
42
+ mcpDebug("auth.resolve.start", {
43
+ mode,
44
+ inboundTokenFp: inboundFp,
45
+ inboundLooksLikeJwt: looksLikeJwt(inboundBearer),
46
+ });
47
+ if (mode === "off") {
48
+ const tenantContext = await fetchCtx(inboundBearer);
49
+ mcpDebug("auth.resolve.done", { mode: "off", inboundTokenFp: inboundFp });
50
+ return { tenantContext, pqcApiBearer: inboundBearer };
51
+ }
52
+ if (mode === "always") {
53
+ if (!looksLikeJwt(inboundBearer)) {
54
+ mcpDebug("auth.resolve.fail", {
55
+ reason: "not_jwt_opaque_unsupported",
56
+ inboundTokenFp: inboundFp,
57
+ });
58
+ throw new InvalidTokenError("access token is not a JWT (opaque tokens are not supported)");
59
+ }
60
+ let cached = cache.getCachedPqcJwt(inboundBearer);
61
+ if (!cached) {
62
+ mcpDebug("auth.exchange.required", { inboundTokenFp: inboundFp, cacheHit: false });
63
+ try {
64
+ const tokens = await exchangeAuth0AccessToken(resolutionBaseUrl, inboundBearer);
65
+ cache.set(inboundBearer, tokens);
66
+ }
67
+ catch (err) {
68
+ if (err instanceof TenantResolveError) {
69
+ mcpDebug("auth.exchange.failed", {
70
+ inboundTokenFp: inboundFp,
71
+ status: err.statusCode,
72
+ });
73
+ throw mapExchangeFailure(err);
74
+ }
75
+ throw err;
76
+ }
77
+ cached = cache.getCachedPqcJwt(inboundBearer);
78
+ if (!cached) {
79
+ throw new InvalidTokenError("token exchange cache miss after success");
80
+ }
81
+ }
82
+ else {
83
+ mcpDebug("auth.exchange.cache_hit", { inboundTokenFp: inboundFp });
84
+ }
85
+ try {
86
+ const tenantContext = await fetchCtx(cached.accessToken);
87
+ mcpDebug("auth.resolve.done", { mode: "always", inboundTokenFp: inboundFp });
88
+ return {
89
+ tenantContext,
90
+ accessExpiresAtUnix: cached.expiresAtUnixSec,
91
+ pqcApiBearer: cached.accessToken,
92
+ };
93
+ }
94
+ catch (e) {
95
+ if (e instanceof TenantResolveError && e.statusCode === 401) {
96
+ mcpDebug("auth.tenant_context_401_cache_invalidate", { inboundTokenFp: inboundFp });
97
+ cache.invalidate(inboundBearer);
98
+ }
99
+ throw e;
100
+ }
101
+ }
102
+ // retry: try pqc-db JWT path first, then exchange on 401
103
+ const cached = cache.getCachedPqcJwt(inboundBearer);
104
+ if (cached) {
105
+ mcpDebug("auth.retry.cache_hit_try_pqc_jwt", { inboundTokenFp: inboundFp });
106
+ try {
107
+ const tenantContext = await fetchCtx(cached.accessToken);
108
+ mcpDebug("auth.resolve.done", { mode: "retry", via: "cached_pqc_jwt", inboundTokenFp: inboundFp });
109
+ return {
110
+ tenantContext,
111
+ accessExpiresAtUnix: cached.expiresAtUnixSec,
112
+ pqcApiBearer: cached.accessToken,
113
+ };
114
+ }
115
+ catch (e) {
116
+ if (e instanceof TenantResolveError && e.statusCode === 401) {
117
+ mcpDebug("auth.retry.cached_jwt_401_invalidate", { inboundTokenFp: inboundFp });
118
+ cache.invalidate(inboundBearer);
119
+ }
120
+ else {
121
+ throw e;
122
+ }
123
+ }
124
+ }
125
+ try {
126
+ mcpDebug("auth.retry.tenant_context_direct", { inboundTokenFp: inboundFp });
127
+ const tenantContext = await fetchCtx(inboundBearer);
128
+ mcpDebug("auth.resolve.done", { mode: "retry", via: "direct_bearer", inboundTokenFp: inboundFp });
129
+ return { tenantContext, pqcApiBearer: inboundBearer };
130
+ }
131
+ catch (e) {
132
+ if (!(e instanceof TenantResolveError) || e.statusCode !== 401) {
133
+ throw e;
134
+ }
135
+ mcpDebug("auth.retry.direct_401_try_exchange", { inboundTokenFp: inboundFp });
136
+ if (!looksLikeJwt(inboundBearer)) {
137
+ mcpDebug("auth.resolve.fail", { reason: "401_not_jwt", inboundTokenFp: inboundFp });
138
+ throw new InvalidTokenError("invalid or expired token");
139
+ }
140
+ try {
141
+ const tokens = await exchangeAuth0AccessToken(resolutionBaseUrl, inboundBearer);
142
+ cache.set(inboundBearer, tokens);
143
+ }
144
+ catch (err) {
145
+ if (err instanceof TenantResolveError) {
146
+ mcpDebug("auth.exchange.failed", {
147
+ inboundTokenFp: inboundFp,
148
+ status: err.statusCode,
149
+ });
150
+ throw mapExchangeFailure(err);
151
+ }
152
+ throw err;
153
+ }
154
+ const after = cache.getCachedPqcJwt(inboundBearer);
155
+ if (!after) {
156
+ throw new InvalidTokenError("token exchange cache miss after success");
157
+ }
158
+ const tenantContext = await fetchCtx(after.accessToken);
159
+ mcpDebug("auth.resolve.done", { mode: "retry", via: "after_exchange", inboundTokenFp: inboundFp });
160
+ return {
161
+ tenantContext,
162
+ accessExpiresAtUnix: after.expiresAtUnixSec,
163
+ pqcApiBearer: after.accessToken,
164
+ };
165
+ }
166
+ }
167
+ /**
168
+ * MCP SDK AccessTokenVerifier: resolves pqc-db tenant context for a bearer token.
169
+ * When PQC_MCP_AUTH0_EXCHANGE is set, calls POST /api/v1/auth/mcp-exchange for Auth0 JWTs (see docs).
170
+ */
171
+ export function createPqcTenantVerifier(resolutionBaseUrl) {
172
+ if (!resolutionBaseUrl) {
173
+ throw new Error("PQC_TENANT_RESOLUTION_URL is required for HTTP MCP");
174
+ }
175
+ return {
176
+ async verifyAccessToken(token) {
177
+ const fp = tokenFingerprint(token);
178
+ mcpDebug("auth.verify.start", {
179
+ tokenFp: fp,
180
+ tokenLen: token.length,
181
+ looksLikeJwt: looksLikeJwt(token),
182
+ });
183
+ let mock = null;
184
+ try {
185
+ mock = mockTenantIfEnabled(token);
186
+ }
187
+ catch (e) {
188
+ console.error("[pqc-memory] mock tenant env misconfigured:", e);
189
+ mcpDebug("auth.verify.fail", { tokenFp: fp, reason: "mock_misconfigured" });
190
+ throw new InvalidTokenError("mock tenant misconfigured");
191
+ }
192
+ let tenantContext;
193
+ let accessExpiresAtUnix;
194
+ if (mock) {
195
+ tenantContext = mock;
196
+ mcpDebug("auth.verify.mock_tenant", { tokenFp: fp });
197
+ }
198
+ else {
199
+ try {
200
+ const resolved = await resolveTenantContext(resolutionBaseUrl, token);
201
+ tenantContext = {
202
+ ...resolved.tenantContext,
203
+ apiBearerToken: resolved.pqcApiBearer,
204
+ };
205
+ accessExpiresAtUnix = resolved.accessExpiresAtUnix;
206
+ }
207
+ catch (e) {
208
+ if (e instanceof InvalidTokenError) {
209
+ mcpDebug("auth.verify.invalid_token", {
210
+ tokenFp: fp,
211
+ message: e.message.slice(0, 120),
212
+ });
213
+ throw e;
214
+ }
215
+ const status = e instanceof TenantResolveError ? e.statusCode : undefined;
216
+ console.error("[pqc-memory] tenant-context resolution failed:", status, e);
217
+ mcpDebug("auth.verify.tenant_resolve_error", {
218
+ tokenFp: fp,
219
+ status: status ?? -1,
220
+ });
221
+ if (e instanceof TenantResolveError && status === 401) {
222
+ throw new InvalidTokenError("invalid or expired token");
223
+ }
224
+ if (e instanceof TenantResolveError && status === 403) {
225
+ throw new InvalidTokenError("not authorized for memory access");
226
+ }
227
+ throw new InvalidTokenError("tenant resolution failed");
228
+ }
229
+ }
230
+ const now = Math.floor(Date.now() / 1000);
231
+ const expiresAt = accessExpiresAtUnix ?? now + 3600;
232
+ let apiHost = "";
233
+ try {
234
+ apiHost = new URL(tenantContext.apiUrl).hostname;
235
+ }
236
+ catch {
237
+ apiHost = "(bad_api_url)";
238
+ }
239
+ mcpDebug("auth.verify.ok", {
240
+ tokenFp: fp,
241
+ apiHost,
242
+ bucketIdLen: tenantContext.bucketId.length,
243
+ });
244
+ return {
245
+ token,
246
+ clientId: "pqc-mcp-remote",
247
+ scopes: ["mcp:memory"],
248
+ expiresAt,
249
+ tenantContext,
250
+ rawToken: token,
251
+ };
252
+ },
253
+ };
254
+ }
255
+ //# sourceMappingURL=tenant-verifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-verifier.js","sourceRoot":"","sources":["../../src/auth/tenant-verifier.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Entry for npm bin `pqc-memory-mcp`.
4
+ * - No subcommand → stdio MCP (index).
5
+ * - `init` / `setup` → Cursor mcp.json wizard.
6
+ */
7
+ const sub = process.argv[2];
8
+ async function run() {
9
+ if (sub === "init" || sub === "setup") {
10
+ const { runInitWizard } = await import("./init-wizard.js");
11
+ await runInitWizard();
12
+ return;
13
+ }
14
+ if (sub === "help" || sub === "--help" || sub === "-h") {
15
+ console.log(`pqc-memory-mcp — MCP server for pqc-db memory
16
+
17
+ Usage:
18
+ pqc-memory-mcp Start stdio MCP (Cursor, Claude Code, Junie, Zed, …)
19
+ pqc-memory-mcp init Guided setup: merges mcpServers for Cursor, Claude Code, or Junie
20
+ pqc-memory-mcp setup Same as init
21
+
22
+ Example:
23
+ npx -y pqc-memory-mcp init
24
+ `);
25
+ process.exit(0);
26
+ }
27
+ await import("./index.js");
28
+ }
29
+ run().catch((err) => {
30
+ console.error("[pqc-memory] Fatal error:", err);
31
+ process.exit(1);
32
+ });
33
+ export {};
34
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;GAIG;AACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE5B,KAAK,UAAU,GAAG;IAChB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;QACtC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC3D,MAAM,aAAa,EAAE,CAAC;QACtB,OAAO;IACT,CAAC;IACD,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC;;;;;;;;;CASf,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;AAED,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IAClB,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,244 @@
1
+ import type { StartSessionRequest, StartSessionResponse, SessionStatusResponse, WriteMemoryRequest, WriteMemoryResponse, PromoteMemoryRequest, PromoteMemoryResponse, QueryMemoriesResponse, ReflectRequest, ReflectResponse, ListEntitiesResponse, RelatedEntitiesResponse, TagOutcomeRequest, CreateMentalModelRequest, MentalModel, ListMentalModelsResponse, ListStrategiesResponse, DistillStrategiesRequest, DistillStrategiesResponse, MemoryStatsResponse, ListTraitsResponse, InheritableTraitsResponse, ListPatternsResponse, PromotePatternResponse, ObsidianExportRequest, ObsidianExportResponse, ObsidianExportStatus, ApiError } from "./types.js";
2
+ export interface PqcClientConfig {
3
+ apiUrl: string;
4
+ apiKey: string;
5
+ /** Optional pqc-db JWT; sent as Authorization Bearer with X-API-Key (HTTP MCP). */
6
+ bearerToken?: string;
7
+ }
8
+ export declare class PqcApiError extends Error {
9
+ statusCode: number;
10
+ apiError: ApiError;
11
+ constructor(statusCode: number, apiError: ApiError);
12
+ }
13
+ /** JSON body from POST /api/v1/keys/managed/{key_id}/objects (typically 201). */
14
+ export interface ManagedKeyObjectUploadResponse {
15
+ object_id: string;
16
+ [key: string]: unknown;
17
+ }
18
+ export declare class PqcClient {
19
+ private baseUrl;
20
+ private apiKey;
21
+ private bearerToken?;
22
+ constructor(config: PqcClientConfig);
23
+ private buildAuthHeaders;
24
+ private parseErrorBody;
25
+ private request;
26
+ /**
27
+ * Encrypted object upload via org managed Kyber key (multipart).
28
+ * POST /api/v1/keys/managed/{key_id}/objects
29
+ */
30
+ uploadManagedKeyObject(keyId: string, options: {
31
+ bucketId: string;
32
+ file: Buffer;
33
+ /** Filename for the multipart file part (Content-Disposition). */
34
+ multipartFilename?: string;
35
+ /** Optional display name override (form field `filename`). */
36
+ displayFilename?: string;
37
+ }): Promise<ManagedKeyObjectUploadResponse>;
38
+ /**
39
+ * Download and decrypt object bytes.
40
+ * GET /api/v1/keys/managed/{key_id}/objects/{object_id}
41
+ */
42
+ downloadManagedKeyObject(keyId: string, objectId: string): Promise<{
43
+ body: Buffer;
44
+ contentType: string | null;
45
+ }>;
46
+ /**
47
+ * List org objects; optional bucket filter.
48
+ * GET /api/v1/objects
49
+ */
50
+ listOrgObjects(options?: {
51
+ bucket?: string;
52
+ }): Promise<unknown>;
53
+ /**
54
+ * Object metadata (may include download_hint for encrypted objects).
55
+ * GET /api/v1/objects/{id}
56
+ */
57
+ getOrgObjectMetadata(objectId: string): Promise<unknown>;
58
+ startSession(req: StartSessionRequest): Promise<StartSessionResponse>;
59
+ endSession(sessionToken: string): Promise<void>;
60
+ getSessionStatus(sessionToken: string): Promise<SessionStatusResponse>;
61
+ writeMemory(sessionToken: string, req: WriteMemoryRequest): Promise<WriteMemoryResponse>;
62
+ promoteMemory(sessionToken: string, req: PromoteMemoryRequest): Promise<PromoteMemoryResponse>;
63
+ deleteMemory(sessionToken: string, memoryId: string): Promise<void>;
64
+ queryMemories(sessionToken: string, options?: {
65
+ tags?: string[];
66
+ memoryType?: string;
67
+ limit?: number;
68
+ offset?: number;
69
+ }): Promise<QueryMemoriesResponse>;
70
+ semanticSearch(sessionToken: string, query: string, limit?: number, scope?: "org", branchId?: string, includeBranches?: boolean): Promise<QueryMemoriesResponse>;
71
+ reflect(sessionToken: string, req: ReflectRequest): Promise<ReflectResponse>;
72
+ hybridSearch(sessionToken: string, query: string, options?: {
73
+ limit?: number;
74
+ tags?: string[];
75
+ tagsMatch?: string;
76
+ }): Promise<QueryMemoriesResponse>;
77
+ listEntities(sessionToken: string): Promise<ListEntitiesResponse>;
78
+ findRelatedEntities(sessionToken: string, entityName: string, hops?: number): Promise<RelatedEntitiesResponse>;
79
+ findMemoriesByEntity(sessionToken: string, entityName: string, limit?: number): Promise<QueryMemoriesResponse>;
80
+ tagOutcome(sessionToken: string, memoryId: string, req: TagOutcomeRequest): Promise<void>;
81
+ listMentalModels(sessionToken: string, limit?: number, offset?: number): Promise<ListMentalModelsResponse>;
82
+ getMentalModel(sessionToken: string, modelId: string): Promise<MentalModel>;
83
+ createMentalModel(sessionToken: string, req: CreateMentalModelRequest): Promise<MentalModel>;
84
+ refreshMentalModel(sessionToken: string, modelId: string): Promise<MentalModel>;
85
+ deleteMentalModel(sessionToken: string, modelId: string): Promise<void>;
86
+ listStrategies(sessionToken: string, options?: {
87
+ outcomeType?: string;
88
+ limit?: number;
89
+ offset?: number;
90
+ }): Promise<ListStrategiesResponse>;
91
+ distillStrategies(sessionToken: string, req: DistillStrategiesRequest): Promise<DistillStrategiesResponse>;
92
+ getStats(sessionToken: string): Promise<MemoryStatsResponse>;
93
+ listTraits(sessionToken: string, options?: {
94
+ agentId?: string;
95
+ traitType?: string;
96
+ sourceType?: string;
97
+ minConfidence?: number;
98
+ tags?: string[];
99
+ includeDeprecated?: boolean;
100
+ limit?: number;
101
+ offset?: number;
102
+ }): Promise<ListTraitsResponse>;
103
+ getInheritableTraits(sessionToken: string, agentId: string, options?: {
104
+ traitType?: string;
105
+ minConfidence?: number;
106
+ minSuccessRate?: number;
107
+ limit?: number;
108
+ }): Promise<InheritableTraitsResponse>;
109
+ listPatterns(sessionToken: string, options?: {
110
+ patternType?: string;
111
+ status?: string;
112
+ minAgentCount?: number;
113
+ minConfidence?: number;
114
+ limit?: number;
115
+ offset?: number;
116
+ }): Promise<ListPatternsResponse>;
117
+ promotePattern(sessionToken: string, patternId: string, traitName?: string): Promise<PromotePatternResponse>;
118
+ obsidianExport(sessionToken: string, req: ObsidianExportRequest): Promise<ObsidianExportResponse>;
119
+ obsidianStatus(sessionToken: string): Promise<ObsidianExportStatus>;
120
+ obsidianDownloadUrl(sessionToken: string): Promise<string>;
121
+ obsidianDelete(sessionToken: string): Promise<void>;
122
+ routedSearch(sessionToken: string, query: string, limit?: number, routing?: string, condensed?: boolean, branchId?: string, includeBranches?: boolean): Promise<any>;
123
+ activateContext(sessionToken: string, memoryId: string, priority?: number, reason?: string, expiresInHours?: number): Promise<any>;
124
+ getActiveContext(sessionToken: string): Promise<any>;
125
+ checkTriggers(sessionToken: string, filePath?: string, tags?: string[], entities?: string[], keywords?: string[]): Promise<any>;
126
+ lookupFact(sessionToken: string, key: string): Promise<any>;
127
+ searchFacts(sessionToken: string, query: string): Promise<any>;
128
+ createTrigger(sessionToken: string, trigger: {
129
+ trigger_type: string;
130
+ pattern: string;
131
+ recall_query: string;
132
+ auto_activate?: boolean;
133
+ priority?: number;
134
+ max_memories?: number;
135
+ }): Promise<any>;
136
+ listTriggers(sessionToken: string): Promise<any>;
137
+ getIdentity(sessionToken: string): Promise<any>;
138
+ createNarrative(sessionToken: string, name: string, description?: string, tags?: string[]): Promise<any>;
139
+ listNarratives(sessionToken: string, status?: string, limit?: number): Promise<any>;
140
+ getNarrative(sessionToken: string, narrativeId: string): Promise<any>;
141
+ updateNarrative(sessionToken: string, narrativeId: string, updates: {
142
+ name?: string;
143
+ description?: string;
144
+ status?: string;
145
+ tags?: string[];
146
+ }): Promise<any>;
147
+ deleteNarrative(sessionToken: string, narrativeId: string): Promise<any>;
148
+ linkMemoryToNarrative(sessionToken: string, narrativeId: string, memoryId: string, options?: {
149
+ sequence_order?: number;
150
+ chapter?: string;
151
+ link_type?: string;
152
+ notes?: string;
153
+ }): Promise<any>;
154
+ unlinkMemoryFromNarrative(sessionToken: string, narrativeId: string, memoryId: string): Promise<any>;
155
+ getNarrativeTimeline(sessionToken: string, narrativeId: string): Promise<any>;
156
+ getSelfEvaluationStats(sessionToken: string): Promise<any>;
157
+ getUnifiedContext(sessionToken: string, options?: {
158
+ maxTokens?: number;
159
+ includeIdentity?: boolean;
160
+ includeActiveContext?: boolean;
161
+ includeTriggers?: boolean;
162
+ includeMentalModels?: boolean;
163
+ filePath?: string;
164
+ entities?: string[];
165
+ tags?: string[];
166
+ }): Promise<any>;
167
+ registerSwarm(sessionToken: string, req: {
168
+ bucket_id?: string;
169
+ name: string;
170
+ description?: string;
171
+ auto_archivist?: boolean;
172
+ max_subagents?: number;
173
+ }): Promise<{
174
+ swarm_id: string;
175
+ master_key_id: string;
176
+ }>;
177
+ spawnSubagent(sessionToken: string, req: {
178
+ role: string;
179
+ description?: string;
180
+ derivation_path?: string;
181
+ }): Promise<{
182
+ subagent_id: string;
183
+ role: string;
184
+ api_key: string;
185
+ archivist_id?: string;
186
+ archivist_key?: string;
187
+ }>;
188
+ listSubagents(sessionToken: string, includeInactive?: boolean): Promise<{
189
+ subagents: any[];
190
+ total: number;
191
+ swarm_info?: any;
192
+ }>;
193
+ dissolveSubagent(sessionToken: string, subagentId: string): Promise<void>;
194
+ getSwarmPermissions(sessionToken: string): Promise<{
195
+ can_read_collective: boolean;
196
+ can_write_collective: boolean;
197
+ can_read_branches: string[];
198
+ can_promote: boolean;
199
+ can_spawn: boolean;
200
+ }>;
201
+ codegraphFindSymbol(name: string, limit?: number): Promise<{
202
+ functions?: CodeGraphFunction[];
203
+ types?: CodeGraphType[];
204
+ }>;
205
+ codegraphFindCallers(functionId: string, limit?: number): Promise<{
206
+ callers: CodeGraphFunction[];
207
+ }>;
208
+ codegraphFindCallees(functionId: string, limit?: number): Promise<{
209
+ callees: CodeGraphFunction[];
210
+ }>;
211
+ codegraphFindImpact(functionId: string, maxDepth?: number, limit?: number): Promise<{
212
+ impacted: CodeGraphFunction[];
213
+ depth: number;
214
+ }>;
215
+ codegraphFileSummary(filePath: string): Promise<{
216
+ file_path: string;
217
+ functions: CodeGraphFunction[];
218
+ types: CodeGraphType[];
219
+ }>;
220
+ }
221
+ export interface CodeGraphFunction {
222
+ id: string;
223
+ org_id: string;
224
+ name: string;
225
+ qualified_name: string;
226
+ signature: string;
227
+ file_path: string;
228
+ start_line: number;
229
+ end_line: number;
230
+ is_method: boolean;
231
+ receiver_type?: string;
232
+ is_exported: boolean;
233
+ }
234
+ export interface CodeGraphType {
235
+ id: string;
236
+ org_id: string;
237
+ name: string;
238
+ kind: string;
239
+ file_path: string;
240
+ start_line: number;
241
+ end_line: number;
242
+ is_exported: boolean;
243
+ }
244
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}