@x12i/memorix-service 3.12.4 → 3.14.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.
- package/README.md +1 -1
- package/dist/analytics/host.d.ts +2 -2
- package/dist/analytics/host.d.ts.map +1 -1
- package/dist/analytics/host.js.map +1 -1
- package/dist/analytics/read-row.d.ts +33 -0
- package/dist/analytics/read-row.d.ts.map +1 -0
- package/dist/analytics/read-row.js +76 -0
- package/dist/analytics/read-row.js.map +1 -0
- package/dist/analytics/tracker.d.ts +14 -0
- package/dist/analytics/tracker.d.ts.map +1 -1
- package/dist/analytics/tracker.js +55 -17
- package/dist/analytics/tracker.js.map +1 -1
- package/dist/anomaly/catalog.d.ts +4 -0
- package/dist/anomaly/catalog.d.ts.map +1 -0
- package/dist/anomaly/catalog.js +315 -0
- package/dist/anomaly/catalog.js.map +1 -0
- package/dist/anomaly/descriptors.d.ts +11 -0
- package/dist/anomaly/descriptors.d.ts.map +1 -0
- package/dist/anomaly/descriptors.js +113 -0
- package/dist/anomaly/descriptors.js.map +1 -0
- package/dist/anomaly/index.d.ts +6 -0
- package/dist/anomaly/index.d.ts.map +1 -0
- package/dist/anomaly/index.js +5 -0
- package/dist/anomaly/index.js.map +1 -0
- package/dist/anomaly/records.d.ts +28 -0
- package/dist/anomaly/records.d.ts.map +1 -0
- package/dist/anomaly/records.js +384 -0
- package/dist/anomaly/records.js.map +1 -0
- package/dist/anomaly/types.d.ts +116 -0
- package/dist/anomaly/types.d.ts.map +1 -0
- package/dist/anomaly/types.js +24 -0
- package/dist/anomaly/types.js.map +1 -0
- package/dist/anomaly/values.d.ts +31 -0
- package/dist/anomaly/values.d.ts.map +1 -0
- package/dist/anomaly/values.js +171 -0
- package/dist/anomaly/values.js.map +1 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +12 -0
- package/dist/app.js.map +1 -1
- package/dist/catalog-bridge.d.ts +21 -3
- package/dist/catalog-bridge.d.ts.map +1 -1
- package/dist/catalog-bridge.js +148 -34
- package/dist/catalog-bridge.js.map +1 -1
- package/dist/errors.d.ts +5 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +18 -0
- package/dist/errors.js.map +1 -1
- package/dist/knowledge-upstream.d.ts +32 -0
- package/dist/knowledge-upstream.d.ts.map +1 -1
- package/dist/knowledge-upstream.js +86 -2
- package/dist/knowledge-upstream.js.map +1 -1
- package/dist/mcp/nexum-tools.d.ts +1 -1
- package/dist/mcp/nexum-tools.d.ts.map +1 -1
- package/dist/mcp/nexum-tools.js +39 -22
- package/dist/mcp/nexum-tools.js.map +1 -1
- package/dist/metadata-view.d.ts +30 -0
- package/dist/metadata-view.d.ts.map +1 -0
- package/dist/metadata-view.js +67 -0
- package/dist/metadata-view.js.map +1 -0
- package/dist/nexum-analysis/enqueue.d.ts +1 -1
- package/dist/nexum-analysis/enqueue.d.ts.map +1 -1
- package/dist/nexum-analysis/enqueue.js +4 -2
- package/dist/nexum-analysis/enqueue.js.map +1 -1
- package/dist/nexum-analysis/knowledge-read.d.ts +45 -0
- package/dist/nexum-analysis/knowledge-read.d.ts.map +1 -0
- package/dist/nexum-analysis/knowledge-read.js +26 -0
- package/dist/nexum-analysis/knowledge-read.js.map +1 -0
- package/dist/openapi/openapi.json +18458 -17718
- package/dist/patches/access.d.ts +15 -0
- package/dist/patches/access.d.ts.map +1 -0
- package/dist/patches/access.js +27 -0
- package/dist/patches/access.js.map +1 -0
- package/dist/patches/engine.d.ts +67 -0
- package/dist/patches/engine.d.ts.map +1 -0
- package/dist/patches/engine.js +966 -0
- package/dist/patches/engine.js.map +1 -0
- package/dist/patches/guards.d.ts +23 -0
- package/dist/patches/guards.d.ts.map +1 -0
- package/dist/patches/guards.js +77 -0
- package/dist/patches/guards.js.map +1 -0
- package/dist/patches/legacy-rows.d.ts +56 -0
- package/dist/patches/legacy-rows.d.ts.map +1 -0
- package/dist/patches/legacy-rows.js +162 -0
- package/dist/patches/legacy-rows.js.map +1 -0
- package/dist/patches/ops.d.ts +24 -0
- package/dist/patches/ops.d.ts.map +1 -0
- package/dist/patches/ops.js +204 -0
- package/dist/patches/ops.js.map +1 -0
- package/dist/patches/parse.d.ts +5 -0
- package/dist/patches/parse.d.ts.map +1 -0
- package/dist/patches/parse.js +323 -0
- package/dist/patches/parse.js.map +1 -0
- package/dist/patches/paths.d.ts +38 -0
- package/dist/patches/paths.d.ts.map +1 -0
- package/dist/patches/paths.js +204 -0
- package/dist/patches/paths.js.map +1 -0
- package/dist/patches/service.d.ts +16 -0
- package/dist/patches/service.d.ts.map +1 -0
- package/dist/patches/service.js +128 -0
- package/dist/patches/service.js.map +1 -0
- package/dist/patches/store.d.ts +87 -0
- package/dist/patches/store.d.ts.map +1 -0
- package/dist/patches/store.js +27 -0
- package/dist/patches/store.js.map +1 -0
- package/dist/patches/types.d.ts +112 -0
- package/dist/patches/types.d.ts.map +1 -0
- package/dist/patches/types.js +5 -0
- package/dist/patches/types.js.map +1 -0
- package/dist/platform.d.ts +15 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +141 -8
- package/dist/platform.js.map +1 -1
- package/dist/routes/anomaly.d.ts +5 -0
- package/dist/routes/anomaly.d.ts.map +1 -0
- package/dist/routes/anomaly.js +308 -0
- package/dist/routes/anomaly.js.map +1 -0
- package/dist/routes/data.d.ts.map +1 -1
- package/dist/routes/data.js +297 -198
- package/dist/routes/data.js.map +1 -1
- package/dist/routes/knowledge.d.ts.map +1 -1
- package/dist/routes/knowledge.js +6 -22
- package/dist/routes/knowledge.js.map +1 -1
- package/dist/routes/metadata.d.ts.map +1 -1
- package/dist/routes/metadata.js +28 -1
- package/dist/routes/metadata.js.map +1 -1
- package/dist/routes/patches.d.ts +7 -0
- package/dist/routes/patches.d.ts.map +1 -0
- package/dist/routes/patches.js +111 -0
- package/dist/routes/patches.js.map +1 -0
- package/dist/routes/subject-roots-backfill.d.ts +4 -0
- package/dist/routes/subject-roots-backfill.d.ts.map +1 -0
- package/dist/routes/subject-roots-backfill.js +15 -0
- package/dist/routes/subject-roots-backfill.js.map +1 -0
- package/dist/single-read-discriminator.d.ts +17 -0
- package/dist/single-read-discriminator.d.ts.map +1 -0
- package/dist/single-read-discriminator.js +67 -0
- package/dist/single-read-discriminator.js.map +1 -0
- package/dist/subject-roots-backfill.d.ts +24 -0
- package/dist/subject-roots-backfill.d.ts.map +1 -0
- package/dist/subject-roots-backfill.js +133 -0
- package/dist/subject-roots-backfill.js.map +1 -0
- package/dist/write-precondition.d.ts +5 -1
- package/dist/write-precondition.d.ts.map +1 -1
- package/dist/write-precondition.js +11 -3
- package/dist/write-precondition.js.map +1 -1
- package/dist/writes/content-write.d.ts +207 -0
- package/dist/writes/content-write.d.ts.map +1 -0
- package/dist/writes/content-write.js +629 -0
- package/dist/writes/content-write.js.map +1 -0
- package/dist/writes/effects.d.ts +13 -0
- package/dist/writes/effects.d.ts.map +1 -0
- package/dist/writes/effects.js +28 -0
- package/dist/writes/effects.js.map +1 -0
- package/dist/writes/error-shape.d.ts +11 -0
- package/dist/writes/error-shape.d.ts.map +1 -0
- package/dist/writes/error-shape.js +107 -0
- package/dist/writes/error-shape.js.map +1 -0
- package/dist/writes/queued-write.d.ts +38 -0
- package/dist/writes/queued-write.d.ts.map +1 -0
- package/dist/writes/queued-write.js +288 -0
- package/dist/writes/queued-write.js.map +1 -0
- package/dist/writes/receipt-store.d.ts +131 -0
- package/dist/writes/receipt-store.d.ts.map +1 -0
- package/dist/writes/receipt-store.js +360 -0
- package/dist/writes/receipt-store.js.map +1 -0
- package/dist/writes/worker.d.ts +30 -0
- package/dist/writes/worker.d.ts.map +1 -0
- package/dist/writes/worker.js +100 -0
- package/dist/writes/worker.js.map +1 -0
- package/openapi/openapi.json +18458 -17718
- package/package.json +4 -4
package/dist/errors.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { classifyFailure } from "./writes/error-shape.js";
|
|
1
2
|
/** Actionable next step for undeclared OT/CT or a rejected metadata ensure handshake. */
|
|
2
3
|
export const METADATA_ENSURE_NEXT = "On startup, POST /api/metadata/ensure with your metadata pack and confirm:true. Each content type reports id and profile.allowSnapshotBuckets. pack.agentId must be one of x-memorix-agent-ids. Ensure replaces that agent's catalog: if another writer shares the agent, GET /api/metadata/raw, merge, then ensure. Then retry this write. A 404 on /api/metadata/ensure means this host is older than @x12i/memorix-service@3.7.6.";
|
|
3
4
|
export const METADATA_ENSURE_BODY_NEXT = "Call POST /api/metadata/ensure with body { pack: <MetadataPack>, confirm: true }. pack.agentId must be one of x-memorix-agent-ids. Do not invent objectType/contentType on POST /api/data/content.";
|
|
@@ -37,6 +38,7 @@ const DATA_PLANE_STATUS = {
|
|
|
37
38
|
PUBLICATION_PINNED: 409,
|
|
38
39
|
PUBLICATION_EXISTS: 409,
|
|
39
40
|
WRITE_DIRECTORY_INCONSISTENT: 409,
|
|
41
|
+
WRITE_ID_REUSED: 409,
|
|
40
42
|
WRITE_IDENTITY_ADOPTION: 400,
|
|
41
43
|
WRITE_IDENTITY_MISMATCH: 400,
|
|
42
44
|
WRITE_INTERFACE_BINDING: 400,
|
|
@@ -48,6 +50,7 @@ const DATA_PLANE_STATUS = {
|
|
|
48
50
|
MARKDOWN_INVALID: 400,
|
|
49
51
|
MARKDOWN_TOO_LARGE: 400,
|
|
50
52
|
AUDIT_INVALID: 400,
|
|
53
|
+
HISTORY_INVALID: 400,
|
|
51
54
|
METADATA_DESCRIPTOR_MISSING: 400,
|
|
52
55
|
BACKFILL_UNAVAILABLE: 503,
|
|
53
56
|
};
|
|
@@ -102,6 +105,7 @@ export function mapErrorToHttp(err, correlationId) {
|
|
|
102
105
|
/pack(\.agentId)? required|must be one of x-memorix-agent-ids/i.test(e.message))
|
|
103
106
|
? mergeDetails(e.details, { next: METADATA_ENSURE_BODY_NEXT })
|
|
104
107
|
: e.details;
|
|
108
|
+
const failure = classifyFailure(err, e.statusCode);
|
|
105
109
|
return {
|
|
106
110
|
status: e.statusCode,
|
|
107
111
|
body: {
|
|
@@ -109,12 +113,16 @@ export function mapErrorToHttp(err, correlationId) {
|
|
|
109
113
|
code: e.code,
|
|
110
114
|
message: e.message,
|
|
111
115
|
correlationId,
|
|
116
|
+
field: failure.field,
|
|
117
|
+
retryable: failure.retryable,
|
|
118
|
+
...(failure.retryAfterMs !== undefined ? { retryAfterMs: failure.retryAfterMs } : {}),
|
|
112
119
|
details,
|
|
113
120
|
},
|
|
114
121
|
},
|
|
115
122
|
};
|
|
116
123
|
}
|
|
117
124
|
if (err instanceof Error && err.name === "ScopeValidationError") {
|
|
125
|
+
const failure = classifyFailure(err, 400);
|
|
118
126
|
return {
|
|
119
127
|
status: 400,
|
|
120
128
|
body: {
|
|
@@ -122,6 +130,8 @@ export function mapErrorToHttp(err, correlationId) {
|
|
|
122
130
|
code: "SCOPE_INVALID",
|
|
123
131
|
message: err.message,
|
|
124
132
|
correlationId,
|
|
133
|
+
field: failure.field,
|
|
134
|
+
retryable: failure.retryable,
|
|
125
135
|
},
|
|
126
136
|
},
|
|
127
137
|
};
|
|
@@ -133,6 +143,7 @@ export function mapErrorToHttp(err, correlationId) {
|
|
|
133
143
|
err.code === "METADATA_DESCRIPTOR_MISSING"
|
|
134
144
|
? mergeDetails(err.details, { next: METADATA_ENSURE_NEXT })
|
|
135
145
|
: err.details;
|
|
146
|
+
const failure = classifyFailure(err, status);
|
|
136
147
|
return {
|
|
137
148
|
status,
|
|
138
149
|
body: {
|
|
@@ -140,12 +151,16 @@ export function mapErrorToHttp(err, correlationId) {
|
|
|
140
151
|
code: err.code,
|
|
141
152
|
message: err.message,
|
|
142
153
|
correlationId,
|
|
154
|
+
field: failure.field,
|
|
155
|
+
retryable: failure.retryable,
|
|
156
|
+
...(failure.retryAfterMs !== undefined ? { retryAfterMs: failure.retryAfterMs } : {}),
|
|
143
157
|
details,
|
|
144
158
|
},
|
|
145
159
|
},
|
|
146
160
|
};
|
|
147
161
|
}
|
|
148
162
|
const message = err instanceof Error ? err.message : String(err);
|
|
163
|
+
const failure = classifyFailure(err, 500);
|
|
149
164
|
return {
|
|
150
165
|
status: 500,
|
|
151
166
|
body: {
|
|
@@ -153,6 +168,9 @@ export function mapErrorToHttp(err, correlationId) {
|
|
|
153
168
|
code: "INTERNAL_ERROR",
|
|
154
169
|
message,
|
|
155
170
|
correlationId,
|
|
171
|
+
field: failure.field,
|
|
172
|
+
retryable: failure.retryable,
|
|
173
|
+
...(failure.retryAfterMs !== undefined ? { retryAfterMs: failure.retryAfterMs } : {}),
|
|
156
174
|
},
|
|
157
175
|
},
|
|
158
176
|
};
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,43 @@
|
|
|
1
|
+
export declare const KNOWLEDGE_DEFAULT_URL = "http://127.0.0.1:8080";
|
|
2
|
+
/** Health probe budget. A host that drops packets must not hold status for the full proxy timeout. */
|
|
3
|
+
export declare const KNOWLEDGE_HEALTH_TIMEOUT_MS = 3000;
|
|
4
|
+
export type KnowledgeUpstreamSource = "MEMORIX_NEXUM_EXPLORE_URL" | "NEXUM_API_URL" | "default";
|
|
5
|
+
export declare function knowledgeUpstreamSource(env?: NodeJS.ProcessEnv): KnowledgeUpstreamSource;
|
|
1
6
|
export declare function knowledgeUpstreamUrl(env?: NodeJS.ProcessEnv): string;
|
|
7
|
+
/** URL safe to return to callers: user info is dropped. */
|
|
8
|
+
export declare function displayUpstreamUrl(url: string): string;
|
|
2
9
|
export declare function proxyJson(method: string, url: string, opts?: {
|
|
3
10
|
body?: unknown;
|
|
4
11
|
headers?: Record<string, string>;
|
|
12
|
+
timeoutMs?: number;
|
|
5
13
|
}): Promise<{
|
|
6
14
|
status: number;
|
|
7
15
|
body: unknown;
|
|
8
16
|
}>;
|
|
17
|
+
/** Connection-level failure text, e.g. `ECONNREFUSED` instead of undici's bare `fetch failed`. */
|
|
18
|
+
export declare function upstreamFailureReason(err: unknown): string;
|
|
19
|
+
/**
|
|
20
|
+
* proxyJson for explore REST reads. A request that never gets an HTTP answer
|
|
21
|
+
* (refused, dropped, DNS, timeout) is 502 KNOWLEDGE_UPSTREAM_UNREACHABLE.
|
|
22
|
+
*/
|
|
23
|
+
export declare function proxyKnowledgeJson(method: string, url: string, opts?: {
|
|
24
|
+
body?: unknown;
|
|
25
|
+
headers?: Record<string, string>;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
status: number;
|
|
29
|
+
body: unknown;
|
|
30
|
+
}>;
|
|
31
|
+
export type KnowledgeUpstreamHealth = {
|
|
32
|
+
ok: boolean;
|
|
33
|
+
url: string;
|
|
34
|
+
source: KnowledgeUpstreamSource;
|
|
35
|
+
timeoutMs: number;
|
|
36
|
+
status?: number;
|
|
37
|
+
error?: string;
|
|
38
|
+
reason?: string;
|
|
39
|
+
};
|
|
40
|
+
export declare function probeKnowledgeUpstream(): Promise<KnowledgeUpstreamHealth>;
|
|
9
41
|
export declare function throwIfKnowledgeUpstreamError(upstream: {
|
|
10
42
|
status: number;
|
|
11
43
|
body: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-upstream.d.ts","sourceRoot":"","sources":["../src/knowledge-upstream.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAMR;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"knowledge-upstream.d.ts","sourceRoot":"","sources":["../src/knowledge-upstream.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB,0BAA0B,CAAC;AAE7D,sGAAsG;AACtG,eAAO,MAAM,2BAA2B,OAAQ,CAAC;AAIjD,MAAM,MAAM,uBAAuB,GAC/B,2BAA2B,GAC3B,eAAe,GACf,SAAS,CAAC;AAEd,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,uBAAuB,CAIzB;AAED,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAMR;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAStD;AAED,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9E,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAoB5C;AAED,kGAAkG;AAClG,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAa1D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9E,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAgB5C;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,uBAAuB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAwB/E;AAED,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1C,IAAI,CASN"}
|
|
@@ -3,10 +3,33 @@
|
|
|
3
3
|
* Subjects stay on /api/data/content — this is the Mongo graphified-* store.
|
|
4
4
|
*/
|
|
5
5
|
import { ServiceError } from "./errors.js";
|
|
6
|
+
export const KNOWLEDGE_DEFAULT_URL = "http://127.0.0.1:8080";
|
|
7
|
+
/** Health probe budget. A host that drops packets must not hold status for the full proxy timeout. */
|
|
8
|
+
export const KNOWLEDGE_HEALTH_TIMEOUT_MS = 3_000;
|
|
9
|
+
const KNOWLEDGE_PROXY_TIMEOUT_MS = 30_000;
|
|
10
|
+
export function knowledgeUpstreamSource(env = process.env) {
|
|
11
|
+
if (env.MEMORIX_NEXUM_EXPLORE_URL?.trim())
|
|
12
|
+
return "MEMORIX_NEXUM_EXPLORE_URL";
|
|
13
|
+
if (env.NEXUM_API_URL?.trim())
|
|
14
|
+
return "NEXUM_API_URL";
|
|
15
|
+
return "default";
|
|
16
|
+
}
|
|
6
17
|
export function knowledgeUpstreamUrl(env = process.env) {
|
|
7
18
|
return (env.MEMORIX_NEXUM_EXPLORE_URL?.trim() ||
|
|
8
19
|
env.NEXUM_API_URL?.trim() ||
|
|
9
|
-
|
|
20
|
+
KNOWLEDGE_DEFAULT_URL).replace(/\/+$/, "");
|
|
21
|
+
}
|
|
22
|
+
/** URL safe to return to callers: user info is dropped. */
|
|
23
|
+
export function displayUpstreamUrl(url) {
|
|
24
|
+
try {
|
|
25
|
+
const u = new URL(url);
|
|
26
|
+
u.username = "";
|
|
27
|
+
u.password = "";
|
|
28
|
+
return u.toString().replace(/\/+$/, "");
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return url;
|
|
32
|
+
}
|
|
10
33
|
}
|
|
11
34
|
export async function proxyJson(method, url, opts) {
|
|
12
35
|
const res = await fetch(url, {
|
|
@@ -18,7 +41,7 @@ export async function proxyJson(method, url, opts) {
|
|
|
18
41
|
...(opts?.headers ?? {}),
|
|
19
42
|
},
|
|
20
43
|
...(opts?.body !== undefined ? { body: JSON.stringify(opts.body) } : {}),
|
|
21
|
-
signal: AbortSignal.timeout(
|
|
44
|
+
signal: AbortSignal.timeout(opts?.timeoutMs ?? KNOWLEDGE_PROXY_TIMEOUT_MS),
|
|
22
45
|
});
|
|
23
46
|
const text = await res.text();
|
|
24
47
|
let parsed = text;
|
|
@@ -30,6 +53,67 @@ export async function proxyJson(method, url, opts) {
|
|
|
30
53
|
}
|
|
31
54
|
return { status: res.status, body: parsed };
|
|
32
55
|
}
|
|
56
|
+
/** Connection-level failure text, e.g. `ECONNREFUSED` instead of undici's bare `fetch failed`. */
|
|
57
|
+
export function upstreamFailureReason(err) {
|
|
58
|
+
if (err && typeof err === "object") {
|
|
59
|
+
const cause = err.cause;
|
|
60
|
+
if (cause && typeof cause === "object") {
|
|
61
|
+
const code = cause.code;
|
|
62
|
+
if (typeof code === "string" && code)
|
|
63
|
+
return code;
|
|
64
|
+
const message = cause.message;
|
|
65
|
+
if (typeof message === "string" && message)
|
|
66
|
+
return message;
|
|
67
|
+
}
|
|
68
|
+
const name = err.name;
|
|
69
|
+
if (name === "TimeoutError")
|
|
70
|
+
return "timeout";
|
|
71
|
+
}
|
|
72
|
+
return err instanceof Error ? err.message : String(err);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* proxyJson for explore REST reads. A request that never gets an HTTP answer
|
|
76
|
+
* (refused, dropped, DNS, timeout) is 502 KNOWLEDGE_UPSTREAM_UNREACHABLE.
|
|
77
|
+
*/
|
|
78
|
+
export async function proxyKnowledgeJson(method, url, opts) {
|
|
79
|
+
try {
|
|
80
|
+
return await proxyJson(method, url, opts);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
const reason = upstreamFailureReason(err);
|
|
84
|
+
throw new ServiceError("KNOWLEDGE_UPSTREAM_UNREACHABLE", `knowledge upstream unreachable (${reason}). Check GET /api/knowledge/status for the explore URL and the env var that set it.`, 502, {
|
|
85
|
+
url: displayUpstreamUrl(url),
|
|
86
|
+
source: knowledgeUpstreamSource(),
|
|
87
|
+
reason,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export async function probeKnowledgeUpstream() {
|
|
92
|
+
const baseUrl = knowledgeUpstreamUrl();
|
|
93
|
+
const base = {
|
|
94
|
+
url: displayUpstreamUrl(baseUrl),
|
|
95
|
+
source: knowledgeUpstreamSource(),
|
|
96
|
+
timeoutMs: KNOWLEDGE_HEALTH_TIMEOUT_MS,
|
|
97
|
+
};
|
|
98
|
+
try {
|
|
99
|
+
const health = await proxyJson("GET", `${baseUrl}/health`, {
|
|
100
|
+
timeoutMs: KNOWLEDGE_HEALTH_TIMEOUT_MS,
|
|
101
|
+
});
|
|
102
|
+
return {
|
|
103
|
+
ok: health.status >= 200 && health.status < 300,
|
|
104
|
+
...base,
|
|
105
|
+
status: health.status,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return {
|
|
110
|
+
ok: false,
|
|
111
|
+
...base,
|
|
112
|
+
error: err instanceof Error ? err.message : String(err),
|
|
113
|
+
reason: upstreamFailureReason(err),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
33
117
|
export function throwIfKnowledgeUpstreamError(upstream) {
|
|
34
118
|
if (upstream.status >= 400) {
|
|
35
119
|
throw new ServiceError("KNOWLEDGE_UPSTREAM_ERROR", `knowledge upstream HTTP ${upstream.status}`, upstream.status >= 500 ? 502 : upstream.status, { upstream: upstream.body });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"knowledge-upstream.js","sourceRoot":"","sources":["../src/knowledge-upstream.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,oBAAoB,CAClC,MAAyB,OAAO,CAAC,GAAG;IAEpC,OAAO,CACL,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE;QACrC,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE;QACzB,
|
|
1
|
+
{"version":3,"file":"knowledge-upstream.js","sourceRoot":"","sources":["../src/knowledge-upstream.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { MemorixPlatform } from "../platform.js";
|
|
5
5
|
import type { MemorixScope } from "../scope.js";
|
|
6
|
-
export declare const NEXUM_MCP_TOOL_NAMES: readonly ["nexum_list_snapshots", "nexum_get_snapshot", "nexum_get_connected_content", "nexum_knowledge_status", "nexum_list_entities", "nexum_get_entity", "nexum_query"];
|
|
6
|
+
export declare const NEXUM_MCP_TOOL_NAMES: readonly ["nexum_list_snapshots", "nexum_get_snapshot", "nexum_snapshots_for_source", "nexum_get_connected_content", "nexum_knowledge_status", "nexum_list_entities", "nexum_get_entity", "nexum_query"];
|
|
7
7
|
export type NexumMcpToolName = (typeof NEXUM_MCP_TOOL_NAMES)[number];
|
|
8
8
|
type JsonSchema = Record<string, unknown>;
|
|
9
9
|
type ToolDef = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexum-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/nexum-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"nexum-tools.d.ts","sourceRoot":"","sources":["../../src/mcp/nexum-tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAWhD,eAAO,MAAM,oBAAoB,0MASvB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,OAAO,EAgHpC,CAAC;AAyEF,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,OAAO,CAAC;IACV,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC,CA4KD"}
|
package/dist/mcp/nexum-tools.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ServiceError } from "../errors.js";
|
|
2
|
-
import { knowledgeUpstreamUrl,
|
|
2
|
+
import { knowledgeUpstreamUrl, probeKnowledgeUpstream, proxyKnowledgeJson, throwIfKnowledgeUpstreamError, } from "../knowledge-upstream.js";
|
|
3
3
|
import { recordLooksLikeKnowledgeGraph } from "../activity-ring.js";
|
|
4
|
+
import { listKnowledgeGraphsForSource } from "../nexum-analysis/knowledge-read.js";
|
|
4
5
|
export const NEXUM_MCP_TOOL_NAMES = [
|
|
5
6
|
"nexum_list_snapshots",
|
|
6
7
|
"nexum_get_snapshot",
|
|
8
|
+
"nexum_snapshots_for_source",
|
|
7
9
|
"nexum_get_connected_content",
|
|
8
10
|
"nexum_knowledge_status",
|
|
9
11
|
"nexum_list_entities",
|
|
@@ -37,6 +39,22 @@ export const NEXUM_MCP_TOOLS = [
|
|
|
37
39
|
required: ["recordId"],
|
|
38
40
|
},
|
|
39
41
|
},
|
|
42
|
+
{
|
|
43
|
+
name: "nexum_snapshots_for_source",
|
|
44
|
+
description: "Find knowledge-graph snapshots (content/snapshots) whose data.sourceRefs include a landed record id. The caller agent does not need to declare object type content.",
|
|
45
|
+
inputSchema: {
|
|
46
|
+
type: "object",
|
|
47
|
+
properties: {
|
|
48
|
+
sourceRecordId: {
|
|
49
|
+
type: "string",
|
|
50
|
+
description: "Record id of the landed subject (not the snapshot id)",
|
|
51
|
+
},
|
|
52
|
+
limit: { type: "number", description: "Max snapshots (default 50, max 200)" },
|
|
53
|
+
cursor: { type: "string" },
|
|
54
|
+
},
|
|
55
|
+
required: ["sourceRecordId"],
|
|
56
|
+
},
|
|
57
|
+
},
|
|
40
58
|
{
|
|
41
59
|
name: "nexum_get_connected_content",
|
|
42
60
|
description: "Given a knowledge-graph snapshot recordId (content/snapshots), read data.sourceRefs and return each connected subject's content-type .data. Omit contentTypes to use the subject's registered content types.",
|
|
@@ -202,6 +220,21 @@ export async function callNexumMcpTool(opts) {
|
|
|
202
220
|
knowledgeGraph: recordLooksLikeKnowledgeGraph(record),
|
|
203
221
|
});
|
|
204
222
|
}
|
|
223
|
+
case "nexum_snapshots_for_source": {
|
|
224
|
+
const sourceRecordId = String(args.sourceRecordId ?? "").trim();
|
|
225
|
+
if (!sourceRecordId) {
|
|
226
|
+
throw new ServiceError("VALIDATION", "sourceRecordId required", 400);
|
|
227
|
+
}
|
|
228
|
+
const ports = platform.portsFor(scope);
|
|
229
|
+
const listed = await listKnowledgeGraphsForSource({
|
|
230
|
+
reader: ports.reader,
|
|
231
|
+
scope,
|
|
232
|
+
sourceRecordId,
|
|
233
|
+
limit: Number(args.limit ?? 50) || 50,
|
|
234
|
+
cursor: typeof args.cursor === "string" ? args.cursor : undefined,
|
|
235
|
+
});
|
|
236
|
+
return textResult({ scope, ...listed });
|
|
237
|
+
}
|
|
205
238
|
case "nexum_get_connected_content": {
|
|
206
239
|
const recordId = String(args.recordId ?? "").trim();
|
|
207
240
|
if (!recordId) {
|
|
@@ -232,28 +265,12 @@ export async function callNexumMcpTool(opts) {
|
|
|
232
265
|
});
|
|
233
266
|
}
|
|
234
267
|
case "nexum_knowledge_status": {
|
|
235
|
-
const
|
|
236
|
-
let upstream = {
|
|
237
|
-
ok: false,
|
|
238
|
-
};
|
|
239
|
-
try {
|
|
240
|
-
const health = await proxyJson("GET", `${baseUrl}/health`);
|
|
241
|
-
upstream = {
|
|
242
|
-
ok: health.status >= 200 && health.status < 300,
|
|
243
|
-
status: health.status,
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
catch (err) {
|
|
247
|
-
upstream = {
|
|
248
|
-
ok: false,
|
|
249
|
-
error: err instanceof Error ? err.message : String(err),
|
|
250
|
-
};
|
|
251
|
-
}
|
|
268
|
+
const upstream = await probeKnowledgeUpstream();
|
|
252
269
|
return textResult({
|
|
253
270
|
scope,
|
|
254
271
|
upstreamOk: upstream.ok,
|
|
255
272
|
upstream,
|
|
256
|
-
exploreBaseUrl:
|
|
273
|
+
exploreBaseUrl: upstream.url,
|
|
257
274
|
note: "Canvas store (Nexum explore REST). Subjects use nexum_list_snapshots / nexum_get_snapshot.",
|
|
258
275
|
});
|
|
259
276
|
}
|
|
@@ -265,7 +282,7 @@ export async function callNexumMcpTool(opts) {
|
|
|
265
282
|
const path = q
|
|
266
283
|
? `/v1/orgs/${encodeURIComponent(scope.orgId)}/graphs/${encodeURIComponent(graphId)}/search?q=${encodeURIComponent(q)}&limit=${encodeURIComponent(limit)}`
|
|
267
284
|
: `/v1/orgs/${encodeURIComponent(scope.orgId)}/graphs/${encodeURIComponent(graphId)}/visualization?maximumNodes=${encodeURIComponent(limit)}`;
|
|
268
|
-
const upstream = await
|
|
285
|
+
const upstream = await proxyKnowledgeJson("GET", `${baseUrl}${path}`);
|
|
269
286
|
throwIfKnowledgeUpstreamError(upstream);
|
|
270
287
|
return textResult({
|
|
271
288
|
scope,
|
|
@@ -281,7 +298,7 @@ export async function callNexumMcpTool(opts) {
|
|
|
281
298
|
const graphId = String(args.graphId ?? "default").trim() || "default";
|
|
282
299
|
const baseUrl = knowledgeUpstreamUrl();
|
|
283
300
|
const path = `/v1/orgs/${encodeURIComponent(scope.orgId)}/graphs/${encodeURIComponent(graphId)}/nodes/${encodeURIComponent(entityId)}`;
|
|
284
|
-
const upstream = await
|
|
301
|
+
const upstream = await proxyKnowledgeJson("GET", `${baseUrl}${path}`);
|
|
285
302
|
throwIfKnowledgeUpstreamError(upstream);
|
|
286
303
|
return textResult({
|
|
287
304
|
scope,
|
|
@@ -299,7 +316,7 @@ export async function callNexumMcpTool(opts) {
|
|
|
299
316
|
const depth = Number(args.depth ?? 1);
|
|
300
317
|
const baseUrl = knowledgeUpstreamUrl();
|
|
301
318
|
const path = `/v1/orgs/${encodeURIComponent(scope.orgId)}/graphs/${encodeURIComponent(graphId)}/nodes/${encodeURIComponent(nodeId)}/neighbors?depth=${encodeURIComponent(String(depth))}`;
|
|
302
|
-
const upstream = await
|
|
319
|
+
const upstream = await proxyKnowledgeJson("GET", `${baseUrl}${path}`);
|
|
303
320
|
throwIfKnowledgeUpstreamError(upstream);
|
|
304
321
|
return textResult({
|
|
305
322
|
scope,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexum-tools.js","sourceRoot":"","sources":["../../src/mcp/nexum-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nexum-tools.js","sourceRoot":"","sources":["../../src/mcp/nexum-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-through cache for resolved metadata.
|
|
3
|
+
*
|
|
4
|
+
* `resolveEffective`, `resolveAbstracts` and `getDefinition` rebuild the whole
|
|
5
|
+
* catalog on every call: they clone every installed agent pack, fingerprint it,
|
|
6
|
+
* and validate it. A single content write asks for the catalog several times, so
|
|
7
|
+
* under load that work saturated a CPU core and made one call take seconds.
|
|
8
|
+
*
|
|
9
|
+
* The store is the only place metadata changes in this process, and it changes
|
|
10
|
+
* through three methods. `trackMetadataGeneration` counts those changes, and
|
|
11
|
+
* `createMetadataView` keeps each answer until the count moves. A pack install
|
|
12
|
+
* is visible to the next call, as before.
|
|
13
|
+
*
|
|
14
|
+
* Cached answers are shared between callers. Treat them as read-only.
|
|
15
|
+
*/
|
|
16
|
+
import type { MetadataStore, UnifiedMetadataClient } from "@x12i/memorix-metadata-runtime";
|
|
17
|
+
export type MetadataGeneration = {
|
|
18
|
+
generation(): number;
|
|
19
|
+
};
|
|
20
|
+
/** The read calls a view answers from its cache. */
|
|
21
|
+
export type MetadataView = Pick<UnifiedMetadataClient, "resolveEffective" | "resolveAbstracts" | "getDefinition">;
|
|
22
|
+
type Hydratable = {
|
|
23
|
+
hydrate?: () => Promise<void>;
|
|
24
|
+
};
|
|
25
|
+
/** Wrap a store so every change to its contents moves `generation()`. */
|
|
26
|
+
export declare function trackMetadataGeneration<S extends MetadataStore & Hydratable>(store: S): S & MetadataGeneration;
|
|
27
|
+
/** Answer metadata reads from a cache that is dropped when the store changes. */
|
|
28
|
+
export declare function createMetadataView(client: UnifiedMetadataClient, generation: () => number): MetadataView;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=metadata-view.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-view.d.ts","sourceRoot":"","sources":["../src/metadata-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE3F,MAAM,MAAM,kBAAkB,GAAG;IAAE,UAAU,IAAI,MAAM,CAAA;CAAE,CAAC;AAE1D,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,kBAAkB,GAAG,kBAAkB,GAAG,eAAe,CAAC,CAAC;AAElH,KAAK,UAAU,GAAG;IAAE,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAEpD,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,aAAa,GAAG,UAAU,EAC1E,KAAK,EAAE,CAAC,GACP,CAAC,GAAG,kBAAkB,CA+BxB;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,MAAM,GAAG,YAAY,CAoCxG"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/** Wrap a store so every change to its contents moves `generation()`. */
|
|
2
|
+
export function trackMetadataGeneration(store) {
|
|
3
|
+
let generation = 0;
|
|
4
|
+
const tracked = {
|
|
5
|
+
...store,
|
|
6
|
+
generation: () => generation,
|
|
7
|
+
replaceAgentPack(...args) {
|
|
8
|
+
store.replaceAgentPack(...args);
|
|
9
|
+
generation++;
|
|
10
|
+
},
|
|
11
|
+
appendLedger(...args) {
|
|
12
|
+
store.appendLedger(...args);
|
|
13
|
+
generation++;
|
|
14
|
+
},
|
|
15
|
+
commitFrom(...args) {
|
|
16
|
+
store.commitFrom(...args);
|
|
17
|
+
generation++;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
if (typeof store.hydrate === "function") {
|
|
21
|
+
// Hydrate swaps the whole snapshot. Move the count before and after so no
|
|
22
|
+
// reader keeps an answer built from the previous snapshot.
|
|
23
|
+
tracked.hydrate = async () => {
|
|
24
|
+
generation++;
|
|
25
|
+
try {
|
|
26
|
+
await store.hydrate();
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
generation++;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return tracked;
|
|
34
|
+
}
|
|
35
|
+
/** Answer metadata reads from a cache that is dropped when the store changes. */
|
|
36
|
+
export function createMetadataView(client, generation) {
|
|
37
|
+
let seen = generation();
|
|
38
|
+
const effective = new Map();
|
|
39
|
+
const abstracts = new Map();
|
|
40
|
+
const definitions = new Map();
|
|
41
|
+
const fresh = () => {
|
|
42
|
+
const now = generation();
|
|
43
|
+
if (now === seen)
|
|
44
|
+
return;
|
|
45
|
+
seen = now;
|
|
46
|
+
effective.clear();
|
|
47
|
+
abstracts.clear();
|
|
48
|
+
definitions.clear();
|
|
49
|
+
};
|
|
50
|
+
const agentsKey = (agentIds) => agentIds.join("\u0000");
|
|
51
|
+
function memo(cache, key, build) {
|
|
52
|
+
fresh();
|
|
53
|
+
if (cache.has(key))
|
|
54
|
+
return cache.get(key);
|
|
55
|
+
const value = build();
|
|
56
|
+
// A build that itself changed the store (it should not) must not be kept.
|
|
57
|
+
if (generation() === seen)
|
|
58
|
+
cache.set(key, value);
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
resolveEffective: (agentIds) => memo(effective, agentsKey(agentIds), () => client.resolveEffective(agentIds)),
|
|
63
|
+
resolveAbstracts: (agentIds) => memo(abstracts, agentsKey(agentIds), () => client.resolveAbstracts(agentIds)),
|
|
64
|
+
getDefinition: (agentIds, kind, id) => memo(definitions, `${agentsKey(agentIds)}\u0001${kind}\u0001${id}`, () => client.getDefinition(agentIds, kind, id)),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=metadata-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata-view.js","sourceRoot":"","sources":["../src/metadata-view.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export type AnalysisEnqueueResult = {
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function resolveAnalyzeAgentIds(scopeAgentIds: string[], hasPipeline: (agentIds: string[]) => boolean): string[];
|
|
20
20
|
export declare function maybeEnqueueNexumAnalysis(input: {
|
|
21
|
-
platform: Pick<MemorixPlatform, "metadata" | "operationalDbFor" | "portsFor"
|
|
21
|
+
platform: Pick<MemorixPlatform, "metadata" | "operationalDbFor" | "portsFor"> & Partial<Pick<MemorixPlatform, "metadataView">>;
|
|
22
22
|
scope: MemorixScope;
|
|
23
23
|
objectType: string;
|
|
24
24
|
contentType: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enqueue.d.ts","sourceRoot":"","sources":["../../src/nexum-analysis/enqueue.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"enqueue.d.ts","sourceRoot":"","sources":["../../src/nexum-analysis/enqueue.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAahD,MAAM,MAAM,qBAAqB,GAC7B;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,GACD;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAKN;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,GAC3C,MAAM,EAAE,CASV;AA6BD,wBAAsB,yBAAyB,CAAC,KAAK,EAAE;IACrD,QAAQ,EAAE,IAAI,CAAC,eAAe,EAAE,UAAU,GAAG,kBAAkB,GAAG,UAAU,CAAC,GAC3E,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;IACjD,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA2KjC"}
|
|
@@ -6,8 +6,9 @@ import { isNexumAutoAnalyzeEnabled, matchNexumIndexingPolicy, recordToNexumItems
|
|
|
6
6
|
import { enqueueAnalysisOutbox, markAnalysisOutbox } from "./outbox.js";
|
|
7
7
|
import { invokePipeline } from "../pipeline-invoke.js";
|
|
8
8
|
import { memorixActivityRing } from "../activity-ring.js";
|
|
9
|
+
import { HOST_KNOWLEDGE_AGENT_ID } from "../catalog-bridge.js";
|
|
9
10
|
const HOST_ANALYZE_PIPELINE = "opx-nexum-analyze";
|
|
10
|
-
const HOST_ANALYZE_AGENT =
|
|
11
|
+
const HOST_ANALYZE_AGENT = HOST_KNOWLEDGE_AGENT_ID;
|
|
11
12
|
/**
|
|
12
13
|
* The analyze pipeline and its `content`/`snapshots` persist target live on
|
|
13
14
|
* the host agent that installed them. Writer agents (for example
|
|
@@ -42,7 +43,8 @@ export async function maybeEnqueueNexumAnalysis(input) {
|
|
|
42
43
|
if (!process.env.MEMORIX_NEXUM_URL?.trim() && !process.env.NEXUM_URL?.trim()) {
|
|
43
44
|
return { status: "skipped", reason: "indexing worker unset" };
|
|
44
45
|
}
|
|
45
|
-
|
|
46
|
+
// Per-write path: read the catalog from the view so a write does not rebuild it.
|
|
47
|
+
const effective = (input.platform.metadataView ?? input.platform.metadata).resolveEffective(input.scope.agentIds);
|
|
46
48
|
const extensionBag = {};
|
|
47
49
|
for (const e of effective.effective ?? []) {
|
|
48
50
|
if (!e.kind?.includes("."))
|