@pyxmate/memory 1.26.5 → 1.27.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.
@@ -164,6 +164,20 @@ var DATA_PLANE_COMPILER_LIMITS = {
164
164
  graphEntities: 1e3,
165
165
  graphRelationships: 2e3
166
166
  };
167
+ var MCP_SESSION_MESSAGE = {
168
+ methods: ["initialize", "notifications/initialized", "tools/list", "prompts/list", "ping"],
169
+ tool: "get_memory_rules",
170
+ /** A connect message is a few hundred bytes; a longer body is work, unread. */
171
+ maxBytes: 16 * 1024
172
+ };
173
+ var MCP_SESSION_METHODS = new Set(MCP_SESSION_MESSAGE.methods);
174
+ function isMcpSessionJsonRpc(message) {
175
+ if (typeof message !== "object" || message === null || Array.isArray(message)) return false;
176
+ const { jsonrpc, method, params } = message;
177
+ if (jsonrpc !== "2.0" || typeof method !== "string") return false;
178
+ if (method === "tools/call") return params?.name === MCP_SESSION_MESSAGE.tool;
179
+ return MCP_SESSION_METHODS.has(method);
180
+ }
167
181
  var HOSTED_FILE_INGEST_PROTOCOL = {
168
182
  version: 1,
169
183
  capability: "hosted-file-ingest-v1",
@@ -1918,6 +1932,8 @@ export {
1918
1932
  DATA_PLANE_MANIFEST_FRAME,
1919
1933
  DATA_PLANE_HTTP_RESPONSE_FRAME,
1920
1934
  DATA_PLANE_COMPILER_LIMITS,
1935
+ MCP_SESSION_MESSAGE,
1936
+ isMcpSessionJsonRpc,
1921
1937
  HOSTED_FILE_INGEST_PROTOCOL,
1922
1938
  HOSTED_FILE_INGEST_LIMITS,
1923
1939
  HOSTED_FILE_INGEST_JOB_STATES,
@@ -2,7 +2,7 @@ import {
2
2
  RAGStrategy,
3
3
  assertGraphExtractionPayload,
4
4
  mergeExtractedEntities
5
- } from "./chunk-VXXRCAKS.mjs";
5
+ } from "./chunk-HTQBKJTD.mjs";
6
6
 
7
7
  // ../client/src/disabled-memory.ts
8
8
  var DEFAULT_PAGE_LIMIT = 20;
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MemoryClient
3
- } from "./chunk-LQDQHLVP.mjs";
3
+ } from "./chunk-M67SXB7C.mjs";
4
4
 
5
5
  // ../dashboard/src/aggregations/consolidation-analytics.ts
6
6
  function analyzeConsolidationLog(entries) {
@@ -9,6 +9,8 @@ var TAXONOMY_MAX_TOP_ENTITIES = 15;
9
9
  var TAXONOMY_MAX_SAMPLE_TOPICS = 8;
10
10
  var TAXONOMY_MAX_PROJECTS = 8;
11
11
  var MEMORY_PROJECT_LABEL_MAX_CHARS = 80;
12
+ var MCP_ACTOR_META_KEY = "pyx.dev/actor";
13
+ var MEMORY_ACTOR_LABEL_MAX_CHARS = 80;
12
14
 
13
15
  // ../shared/src/document-source.ts
14
16
  import { createHash } from "crypto";
@@ -25,6 +27,13 @@ function documentImageSource(documentKey) {
25
27
  return documentSource("document-image", documentKey);
26
28
  }
27
29
 
30
+ // ../shared/src/mcp/actor.ts
31
+ function normalizeMemoryActorLabel(value) {
32
+ if (typeof value !== "string" || /[\p{Cc}\p{Cs}]/u.test(value)) return null;
33
+ const label = value.trim();
34
+ return label.length > 0 && [...label].length <= MEMORY_ACTOR_LABEL_MAX_CHARS ? label : null;
35
+ }
36
+
28
37
  // ../shared/src/mcp/search-response.ts
29
38
  var STRIPPED_ENTRY_FIELDS = /* @__PURE__ */ new Set(["contentHash", "embedding", "tenantId", "userId", "teamId"]);
30
39
  function isRecord(value) {
@@ -147,9 +156,12 @@ export {
147
156
  TAXONOMY_MAX_SAMPLE_TOPICS,
148
157
  TAXONOMY_MAX_PROJECTS,
149
158
  MEMORY_PROJECT_LABEL_MAX_CHARS,
159
+ MCP_ACTOR_META_KEY,
160
+ MEMORY_ACTOR_LABEL_MAX_CHARS,
150
161
  documentGraphSource,
151
162
  documentContentSource,
152
163
  documentImageSource,
164
+ normalizeMemoryActorLabel,
153
165
  projectSearchResponseForMcp,
154
166
  secretElevationNoticeFor,
155
167
  withSecretElevationNotice,
@@ -5,12 +5,14 @@ import {
5
5
  buildDesignGuide
6
6
  } from "../chunk-QD7G23CN.mjs";
7
7
  import {
8
+ MCP_ACTOR_META_KEY,
8
9
  MEMORY_PROJECT_LABEL_MAX_CHARS,
9
10
  TAXONOMY_MAX_CATEGORIES,
10
11
  TAXONOMY_MAX_PROJECTS,
11
12
  TAXONOMY_MAX_SAMPLE_TOPICS,
12
- TAXONOMY_MAX_TOP_ENTITIES
13
- } from "../chunk-KZKGRND2.mjs";
13
+ TAXONOMY_MAX_TOP_ENTITIES,
14
+ normalizeMemoryActorLabel
15
+ } from "../chunk-RWQTBXUC.mjs";
14
16
  import {
15
17
  HOSTED_FILE_INGEST_PROTOCOL,
16
18
  HOSTED_FILE_INGEST_RETRYABLE_CODES,
@@ -19,7 +21,7 @@ import {
19
21
  parseHostedFileIngestJobView,
20
22
  parseHostedFileIngestPublishResult,
21
23
  requireHostedFileIngestFilename
22
- } from "../chunk-VXXRCAKS.mjs";
24
+ } from "../chunk-HTQBKJTD.mjs";
23
25
 
24
26
  // src/cli/exit-codes.ts
25
27
  var EXIT = {
@@ -1281,15 +1283,25 @@ var insightsSchema = z.object({
1281
1283
  })
1282
1284
  ).max(5)
1283
1285
  });
1284
- var insightsResponseSchema = z.union([
1285
- insightsSchema,
1286
- z.object({ success: z.literal(true), data: insightsSchema }).transform(({ data }) => data)
1287
- ]);
1286
+ var actorSchema = z.string().refine((value) => normalizeMemoryActorLabel(value) === value).nullable().default(null);
1287
+ var insightsWithProvenanceSchema = insightsSchema.extend({
1288
+ recentApplied: z.array(
1289
+ insightsSchema.shape.recentApplied.element.extend({
1290
+ writtenBy: actorSchema,
1291
+ writtenAt: z.iso.datetime({ offset: true }).nullable().default(null),
1292
+ appliedBy: actorSchema
1293
+ })
1294
+ ).max(5)
1295
+ });
1288
1296
  async function insightsCommand(opts = {}) {
1297
+ const schema = opts.withProvenance === true ? insightsWithProvenanceSchema : insightsSchema;
1289
1298
  const result = await readSurface({
1290
1299
  surface: "insights",
1291
1300
  request: { method: "GET", path: "/api/memory/insights" },
1292
- schema: insightsResponseSchema,
1301
+ schema: z.union([
1302
+ schema,
1303
+ z.object({ success: z.literal(true), data: schema }).transform(({ data }) => data)
1304
+ ]),
1293
1305
  minimumServiceVersion: "1.19.0",
1294
1306
  keychain: opts.keychain,
1295
1307
  fetchImpl: opts.fetchImpl
@@ -2271,7 +2283,7 @@ var NEXT_BY_CODE = /* @__PURE__ */ new Map([
2271
2283
  ],
2272
2284
  [
2273
2285
  "file_ingest_job_limit",
2274
- "Your plan allows no more unfinished imports on this instance: finish or cancel another one (cancel: true with its path), then call this tool again with the same arguments."
2286
+ "This instance already has as many unfinished imports as it allows: finish or cancel another one (cancel: true with its path), then call this tool again with the same arguments."
2275
2287
  ],
2276
2288
  [
2277
2289
  "file_ingest_disabled",
@@ -2279,7 +2291,7 @@ var NEXT_BY_CODE = /* @__PURE__ */ new Map([
2279
2291
  ],
2280
2292
  [
2281
2293
  "file_too_large",
2282
- "The file exceeds your plan's file-size cap: upgrade the plan and call again with the same arguments, or call with cancel: true to drop this import."
2294
+ "The file is larger than hosted file ingest accepts: call with cancel: true to drop this import, then import a smaller file."
2283
2295
  ],
2284
2296
  [
2285
2297
  "file_ingest_cancel_requested",
@@ -2479,13 +2491,13 @@ ${RESUME}`);
2479
2491
  switch (auth.state) {
2480
2492
  case "quota_paused":
2481
2493
  return stop(
2482
- `the project's memory quota has no room for ${chunks}.`,
2483
- `Free memory space or upgrade the plan, then ${resume}.`
2494
+ `the import was paused before storing ${chunks}.`,
2495
+ `${resume[0]?.toUpperCase()}${resume.slice(1)}.`
2484
2496
  );
2485
2497
  case "limit_exceeded":
2486
2498
  return stop(
2487
- "the document exceeds the plan limits for extracted text or chunks.",
2488
- `Upgrade the plan, then ${resume}; or call with cancel: true to abandon job ${call.intent.jobId}.`
2499
+ "the document exceeds the hosted limits for extracted text or chunks.",
2500
+ `Call with cancel: true to abandon job ${call.intent.jobId}, then import the document in smaller parts.`
2489
2501
  );
2490
2502
  case "cancel_requested":
2491
2503
  return stop(
@@ -2935,7 +2947,14 @@ function createProxyServer(client, version, uploadLocalFile, hostedFileIngest) {
2935
2947
  if (bridge?.kind === "local" && uploadLocalFile) {
2936
2948
  return await uploadLocalFile(bridge.descriptor, args);
2937
2949
  }
2938
- return client.callTool(req.params);
2950
+ const actor = normalizeMemoryActorLabel(server.getClientVersion()?.name);
2951
+ const params = { ...req.params };
2952
+ if (actor !== null || params._meta !== void 0) {
2953
+ params._meta = { ...params._meta };
2954
+ delete params._meta[MCP_ACTOR_META_KEY];
2955
+ if (actor !== null) params._meta[MCP_ACTOR_META_KEY] = actor;
2956
+ }
2957
+ return client.callTool(params);
2939
2958
  });
2940
2959
  }
2941
2960
  if (caps?.prompts) {
@@ -2951,7 +2970,7 @@ function createProxyServer(client, version, uploadLocalFile, hostedFileIngest) {
2951
2970
  return server;
2952
2971
  }
2953
2972
  async function runMcpProxyServer(opts) {
2954
- const version = opts.version ?? (true ? "1.26.5" : "0.0.0-dev");
2973
+ const version = opts.version ?? (true ? "1.27.0" : "0.0.0-dev");
2955
2974
  const read = await opts.readCredentials();
2956
2975
  if (!read.ok) {
2957
2976
  throw new Error(
@@ -4195,6 +4214,7 @@ Commands:
4195
4214
  status [--json] Show endpoint, key presence, MCP config status.
4196
4215
  overview --json Read memory count and three recent safe labels.
4197
4216
  insights --json [--with-identity] Read body-free memory usage and coverage aggregates.
4217
+ [--with-provenance] Add last writer, save time and applier to recent items.
4198
4218
  taxonomy --json [--with-identity] Read knowledge-graph cluster composition (read-only).
4199
4219
  --with-identity adds credentialFingerprint (the same
4200
4220
  value as status --json) so a host can tell which
@@ -4402,7 +4422,10 @@ async function main() {
4402
4422
  process.stderr.write("Error: `pyx-mem insights` requires --json.\n");
4403
4423
  return EXIT.USAGE;
4404
4424
  }
4405
- return insightsCommand({ withIdentity: parsed.flags["with-identity"] === true });
4425
+ return insightsCommand({
4426
+ withIdentity: parsed.flags["with-identity"] === true,
4427
+ withProvenance: parsed.flags["with-provenance"] === true
4428
+ });
4406
4429
  case "taxonomy":
4407
4430
  if (parsed.flags.json !== true) {
4408
4431
  process.stderr.write("Error: `pyx-mem taxonomy` requires --json.\n");
@@ -11,10 +11,10 @@ import {
11
11
  toGraphologyFormat,
12
12
  transformGraphData,
13
13
  unreachableHealth
14
- } from "./chunk-NDXE3TIS.mjs";
15
- import "./chunk-LQDQHLVP.mjs";
16
- import "./chunk-KZKGRND2.mjs";
17
- import "./chunk-VXXRCAKS.mjs";
14
+ } from "./chunk-N4KDRRLY.mjs";
15
+ import "./chunk-M67SXB7C.mjs";
16
+ import "./chunk-RWQTBXUC.mjs";
17
+ import "./chunk-HTQBKJTD.mjs";
18
18
  export {
19
19
  DashboardClient,
20
20
  Poller,
@@ -14,9 +14,29 @@ declare const DATA_PLANE_COMPILER_LIMITS: {
14
14
  readonly graphEntities: 1000;
15
15
  readonly graphRelationships: 2000;
16
16
  };
17
+ /**
18
+ * MCP connect messages: they open or describe a session, read no tenant data
19
+ * and run nothing, yet every client connect sends several. The memory runtime
20
+ * and the hosted gateway both charge them to a finite bucket of their own
21
+ * instead of the work budget. `get_memory_rules` returns static text.
22
+ */
23
+ declare const MCP_SESSION_MESSAGE: {
24
+ readonly methods: readonly ["initialize", "notifications/initialized", "tools/list", "prompts/list", "ping"];
25
+ readonly tool: "get_memory_rules";
26
+ /** A connect message is a few hundred bytes; a longer body is work, unread. */
27
+ readonly maxBytes: number;
28
+ };
29
+ /**
30
+ * Whether `message`, the whole decoded JSON body of one MCP POST (at most
31
+ * MCP_SESSION_MESSAGE.maxBytes), is a connect message: a single JSON-RPC 2.0
32
+ * message whose method is a session method or a call of the rules tool. A
33
+ * batch, any other tool call or anything malformed is work.
34
+ */
35
+ declare function isMcpSessionJsonRpc(message: unknown): boolean;
17
36
  /**
18
37
  * Hosted file ingest protocol v1 (docs/specs/hosted-file-ingest/spec.md). The
19
- * tenant enforces these absolute caps; the gateway enforces per-plan caps.
38
+ * tenant enforces these absolute caps; the gateway enforces the same caps for
39
+ * every organization, plus its own bounds on concurrent jobs and DOCX size.
20
40
  */
21
41
  declare const HOSTED_FILE_INGEST_PROTOCOL: {
22
42
  readonly version: 1;
@@ -379,4 +399,4 @@ interface HostedFileIngestAuthorization {
379
399
  }
380
400
  declare function parseHostedFileIngestAuthorization(input: unknown): HostedFileIngestAuthorization;
381
401
 
382
- export { type HostedFileIngestManifest as A, type HostedFileIngestPageDescriptor as B, type CanonicalDataPlaneObject as C, DATA_PLANE_CATALOG_VERSION as D, type HostedFileIngestPublishResult as E, canonicalDataPlaneJson as F, compileDataPlaneRequest as G, HOSTED_FILE_INGEST_GATEWAY_STATES as H, hashDataPlaneHttpResponseV1 as I, hashDataPlaneManifestV1 as J, hashDataPlaneStepInputV1 as K, normalizeHostedFileIngestPageDescriptor as L, parseHostedFileIngestAuthorization as M, parseHostedFileIngestCommitResult as N, parseHostedFileIngestJobView as O, parseHostedFileIngestPublishResult as P, requireHostedFileIngestFilename as Q, type SupportedDataPlaneCatalogOperation as S, type CanonicalDataPlaneValue as a, type CompileContext as b, type CompileDataPlaneRequest as c, type CompileDataPlaneResult as d, encodeListCursorToken as e, type CompiledDataPlaneExecutionPlan as f, DATA_PLANE_COMPILER_LIMITS as g, DATA_PLANE_CONTRACT_VERSION as h, DATA_PLANE_HTTP_RESPONSE_FRAME as i, DATA_PLANE_MANIFEST_FRAME as j, DATA_PLANE_MANIFEST_VERSION as k, DATA_PLANE_OPERATION_COVERAGE as l, DATA_PLANE_SEARCH_EMBEDDING_CONTRACT as m, DATA_PLANE_STEP_INPUT_FRAME as n, type DataPlaneCatalogOperation as o, parseListCursorToken as p, type DataPlaneUnsupportedReasonCode as q, HOSTED_FILE_INGEST_JOB_STATES as r, HOSTED_FILE_INGEST_LIMITS as s, HOSTED_FILE_INGEST_PROTOCOL as t, HOSTED_FILE_INGEST_RETRYABLE_CODES as u, type HostedFileIngestAuthorization as v, type HostedFileIngestCommitResult as w, type HostedFileIngestGatewayState as x, type HostedFileIngestJobState as y, type HostedFileIngestJobView as z };
402
+ export { type HostedFileIngestManifest as A, type HostedFileIngestPageDescriptor as B, type CanonicalDataPlaneObject as C, DATA_PLANE_CATALOG_VERSION as D, type HostedFileIngestPublishResult as E, canonicalDataPlaneJson as F, compileDataPlaneRequest as G, HOSTED_FILE_INGEST_GATEWAY_STATES as H, hashDataPlaneHttpResponseV1 as I, hashDataPlaneManifestV1 as J, hashDataPlaneStepInputV1 as K, isMcpSessionJsonRpc as L, MCP_SESSION_MESSAGE as M, normalizeHostedFileIngestPageDescriptor as N, parseHostedFileIngestAuthorization as O, parseHostedFileIngestCommitResult as P, parseHostedFileIngestJobView as Q, parseHostedFileIngestPublishResult as R, type SupportedDataPlaneCatalogOperation as S, requireHostedFileIngestFilename as T, type CanonicalDataPlaneValue as a, type CompileContext as b, type CompileDataPlaneRequest as c, type CompileDataPlaneResult as d, encodeListCursorToken as e, type CompiledDataPlaneExecutionPlan as f, DATA_PLANE_COMPILER_LIMITS as g, DATA_PLANE_CONTRACT_VERSION as h, DATA_PLANE_HTTP_RESPONSE_FRAME as i, DATA_PLANE_MANIFEST_FRAME as j, DATA_PLANE_MANIFEST_VERSION as k, DATA_PLANE_OPERATION_COVERAGE as l, DATA_PLANE_SEARCH_EMBEDDING_CONTRACT as m, DATA_PLANE_STEP_INPUT_FRAME as n, type DataPlaneCatalogOperation as o, parseListCursorToken as p, type DataPlaneUnsupportedReasonCode as q, HOSTED_FILE_INGEST_JOB_STATES as r, HOSTED_FILE_INGEST_LIMITS as s, HOSTED_FILE_INGEST_PROTOCOL as t, HOSTED_FILE_INGEST_RETRYABLE_CODES as u, type HostedFileIngestAuthorization as v, type HostedFileIngestCommitResult as w, type HostedFileIngestGatewayState as x, type HostedFileIngestJobState as y, type HostedFileIngestJobView as z };
@@ -1 +1 @@
1
- export { C as CanonicalDataPlaneObject, a as CanonicalDataPlaneValue, b as CompileContext, c as CompileDataPlaneRequest, d as CompileDataPlaneResult, f as CompiledDataPlaneExecutionPlan, D as DATA_PLANE_CATALOG_VERSION, g as DATA_PLANE_COMPILER_LIMITS, h as DATA_PLANE_CONTRACT_VERSION, i as DATA_PLANE_HTTP_RESPONSE_FRAME, j as DATA_PLANE_MANIFEST_FRAME, k as DATA_PLANE_MANIFEST_VERSION, l as DATA_PLANE_OPERATION_COVERAGE, m as DATA_PLANE_SEARCH_EMBEDDING_CONTRACT, n as DATA_PLANE_STEP_INPUT_FRAME, o as DataPlaneCatalogOperation, q as DataPlaneUnsupportedReasonCode, H as HOSTED_FILE_INGEST_GATEWAY_STATES, r as HOSTED_FILE_INGEST_JOB_STATES, s as HOSTED_FILE_INGEST_LIMITS, t as HOSTED_FILE_INGEST_PROTOCOL, u as HOSTED_FILE_INGEST_RETRYABLE_CODES, v as HostedFileIngestAuthorization, w as HostedFileIngestCommitResult, x as HostedFileIngestGatewayState, y as HostedFileIngestJobState, z as HostedFileIngestJobView, A as HostedFileIngestManifest, B as HostedFileIngestPageDescriptor, E as HostedFileIngestPublishResult, S as SupportedDataPlaneCatalogOperation, F as canonicalDataPlaneJson, G as compileDataPlaneRequest, I as hashDataPlaneHttpResponseV1, J as hashDataPlaneManifestV1, K as hashDataPlaneStepInputV1, L as normalizeHostedFileIngestPageDescriptor, M as parseHostedFileIngestAuthorization, N as parseHostedFileIngestCommitResult, O as parseHostedFileIngestJobView, P as parseHostedFileIngestPublishResult, Q as requireHostedFileIngestFilename } from './data-plane-contract-CGU0qjv4.js';
1
+ export { C as CanonicalDataPlaneObject, a as CanonicalDataPlaneValue, b as CompileContext, c as CompileDataPlaneRequest, d as CompileDataPlaneResult, f as CompiledDataPlaneExecutionPlan, D as DATA_PLANE_CATALOG_VERSION, g as DATA_PLANE_COMPILER_LIMITS, h as DATA_PLANE_CONTRACT_VERSION, i as DATA_PLANE_HTTP_RESPONSE_FRAME, j as DATA_PLANE_MANIFEST_FRAME, k as DATA_PLANE_MANIFEST_VERSION, l as DATA_PLANE_OPERATION_COVERAGE, m as DATA_PLANE_SEARCH_EMBEDDING_CONTRACT, n as DATA_PLANE_STEP_INPUT_FRAME, o as DataPlaneCatalogOperation, q as DataPlaneUnsupportedReasonCode, H as HOSTED_FILE_INGEST_GATEWAY_STATES, r as HOSTED_FILE_INGEST_JOB_STATES, s as HOSTED_FILE_INGEST_LIMITS, t as HOSTED_FILE_INGEST_PROTOCOL, u as HOSTED_FILE_INGEST_RETRYABLE_CODES, v as HostedFileIngestAuthorization, w as HostedFileIngestCommitResult, x as HostedFileIngestGatewayState, y as HostedFileIngestJobState, z as HostedFileIngestJobView, A as HostedFileIngestManifest, B as HostedFileIngestPageDescriptor, E as HostedFileIngestPublishResult, M as MCP_SESSION_MESSAGE, S as SupportedDataPlaneCatalogOperation, F as canonicalDataPlaneJson, G as compileDataPlaneRequest, I as hashDataPlaneHttpResponseV1, J as hashDataPlaneManifestV1, K as hashDataPlaneStepInputV1, L as isMcpSessionJsonRpc, N as normalizeHostedFileIngestPageDescriptor, O as parseHostedFileIngestAuthorization, P as parseHostedFileIngestCommitResult, Q as parseHostedFileIngestJobView, R as parseHostedFileIngestPublishResult, T as requireHostedFileIngestFilename } from './data-plane-contract-Dni6d9pq.js';
@@ -14,18 +14,20 @@ import {
14
14
  HOSTED_FILE_INGEST_LIMITS,
15
15
  HOSTED_FILE_INGEST_PROTOCOL,
16
16
  HOSTED_FILE_INGEST_RETRYABLE_CODES,
17
+ MCP_SESSION_MESSAGE,
17
18
  canonicalDataPlaneJson,
18
19
  compileDataPlaneRequest,
19
20
  hashDataPlaneHttpResponseV1,
20
21
  hashDataPlaneManifestV1,
21
22
  hashDataPlaneStepInputV1,
23
+ isMcpSessionJsonRpc,
22
24
  normalizeHostedFileIngestPageDescriptor,
23
25
  parseHostedFileIngestAuthorization,
24
26
  parseHostedFileIngestCommitResult,
25
27
  parseHostedFileIngestJobView,
26
28
  parseHostedFileIngestPublishResult,
27
29
  requireHostedFileIngestFilename
28
- } from "./chunk-VXXRCAKS.mjs";
30
+ } from "./chunk-HTQBKJTD.mjs";
29
31
  export {
30
32
  DATA_PLANE_CATALOG_VERSION,
31
33
  DATA_PLANE_COMPILER_LIMITS,
@@ -41,11 +43,13 @@ export {
41
43
  HOSTED_FILE_INGEST_LIMITS,
42
44
  HOSTED_FILE_INGEST_PROTOCOL,
43
45
  HOSTED_FILE_INGEST_RETRYABLE_CODES,
46
+ MCP_SESSION_MESSAGE,
44
47
  canonicalDataPlaneJson,
45
48
  compileDataPlaneRequest,
46
49
  hashDataPlaneHttpResponseV1,
47
50
  hashDataPlaneManifestV1,
48
51
  hashDataPlaneStepInputV1,
52
+ isMcpSessionJsonRpc,
49
53
  normalizeHostedFileIngestPageDescriptor,
50
54
  parseHostedFileIngestAuthorization,
51
55
  parseHostedFileIngestCommitResult,
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { MemoryType as MemoryType$1, StoreInput as StoreInput$1, MemoryEntry as MemoryEntry$1, MemorySearchParams as MemorySearchParams$1, MemorySearchResult as MemorySearchResult$1, PrincipalContext as PrincipalContext$1, SensitivityLevel as SensitivityLevel$1, MemoryStats as MemoryStats$1, MemoryInsights as MemoryInsights$1, LineageParams as LineageParams$1, LineageResult as LineageResult$1, ReinforceParams as ReinforceParams$1, ReinforceResult as ReinforceResult$1, WikiLintReport as WikiLintReport$1, GraphRepairResult as GraphRepairResult$1, ExtractedImageMeta as ExtractedImageMeta$1, IngestEntity as IngestEntity$1, IngestRelationship as IngestRelationship$1, EntityExtractionResult as EntityExtractionResult$1, Topology as Topology$1, IngestEvent as IngestEvent$1, GraphEnrichEvent as GraphEnrichEvent$1, GraphNode as GraphNode$1, GraphTraversalResult as GraphTraversalResult$1, CorrectionRecord as CorrectionRecord$1 } from '@pyx-memory/shared';
2
2
  export { documentContentSource, documentGraphSource, documentImageSource } from '@pyx-memory/shared';
3
- export { e as encodeListCursorToken, p as parseListCursorToken } from './data-plane-contract-CGU0qjv4.js';
3
+ export { e as encodeListCursorToken, p as parseListCursorToken } from './data-plane-contract-Dni6d9pq.js';
4
4
 
5
5
  /** ISO 8601 timestamp string */
6
6
  type Timestamp = string;
@@ -776,6 +776,9 @@ interface MemoryInsights {
776
776
  topic: string | null;
777
777
  project: string | null;
778
778
  at: string;
779
+ writtenBy?: string | null;
780
+ writtenAt?: string | null;
781
+ appliedBy?: string | null;
779
782
  }>;
780
783
  }
781
784
  interface GraphRepairResult {
@@ -1534,6 +1537,8 @@ declare const TAXONOMY_MAX_TOP_ENTITIES = 15;
1534
1537
  declare const TAXONOMY_MAX_SAMPLE_TOPICS = 8;
1535
1538
  declare const TAXONOMY_MAX_PROJECTS = 8;
1536
1539
  declare const MEMORY_PROJECT_LABEL_MAX_CHARS = 80;
1540
+ declare const MCP_ACTOR_META_KEY = "pyx.dev/actor";
1541
+ declare const MEMORY_ACTOR_LABEL_MAX_CHARS = 80;
1537
1542
 
1538
1543
  /**
1539
1544
  * Result shape returned by an LLM entity extractor — entities + relations.
@@ -1599,6 +1604,8 @@ declare function mergeExtractedEntities(callerEntities: IngestEntity[] | undefin
1599
1604
  relationships: IngestRelationship[];
1600
1605
  };
1601
1606
 
1607
+ declare function normalizeMemoryActorLabel(value: unknown): string | null;
1608
+
1602
1609
  declare function projectSearchResponseForMcp(payload: unknown): unknown;
1603
1610
 
1604
1611
  /**
@@ -2004,4 +2011,4 @@ interface CreatePyxMemoryOptions {
2004
2011
  }
2005
2012
  declare function createPyxMemory(opts?: CreatePyxMemoryOptions): MemoryClient;
2006
2013
 
2007
- export { type AgentId, type ApiResponse, type ConsolidationJudgementsResult, type ConsolidationMerge, type ConsolidationPair, type ConsolidationPairSide, type ConsolidationRunResult, type CorrectionInput, type CorrectionRecord, type CreatePyxMemoryOptions, DEFAULTS, DEPRECATED_RAG_STRATEGIES, DisabledMemory, type DroppedGraphRelationship, type DueScanInput, EmbeddingProviderName, type EnrichmentCallbacks, type EnrichmentPurpose, type EntityExtractionResult, type ExpandAnchorStatus, type ExpandParams, type ExpandResult, type ExtendedMemoryInterface, type FetchCorrectionsInput, type FileDownloadOptions, type GraphEnrichEvent, type GraphEnrichFileOptions, type GraphEnrichPreparedEvent, type GraphEnrichResult, type GraphEnrichResultEvent, type GraphEnrichment, type GraphEnrichmentStatus, type GraphExtractionPayload, type GraphFailureMode, type GraphNode, type GraphRelationship, type GraphRepairResult, type GraphTelemetrySnapshot, type GraphTraversalResult, type IngestEntity, type IngestErrorEvent, type IngestEvent, type IngestFileOptions, type IngestHeartbeatEvent, type IngestProgressEvent, type IngestRelationship, type IngestResultEvent, type IngestStage, type IngestionResult, type LineageParams, type LineageResult, type LineageVersion, MEMORY_PROJECT_LABEL_MAX_CHARS, MemoryClient, type MemoryClientOptions, type MemoryEntry, type MemoryIngestRequest, type MemoryInsightMetrics, type MemoryInsights, type MemoryInterface, type MemoryListParams, type MemoryListResult, type MemoryLogFilters, type MemoryProjectInsight, type MemorySearchParams, type MemorySearchResult, MemoryServerError, type MemoryStats, MemoryType, type MoveEntriesFilter, MoveFailureReason, type MoveResult, type MoveTarget, NamespaceIsolation, type PrincipalContext, RAGStrategy, type ReinforceParams, type ReinforceResult, type ReinforceSignal, SESSION_ORDINAL_MAX, SINGLE_TENANT_ID, type SecretElevationAggregate, type SecretElevationNotice, SensitivityLevel, type SourceEvidence, type StoreInput, StoreTarget, TAXONOMY_MAX_CATEGORIES, TAXONOMY_MAX_PROJECTS, TAXONOMY_MAX_SAMPLE_TOPICS, TAXONOMY_MAX_TOP_ENTITIES, type TemporalQueryFilters, type TenantScopeOptions, type Timestamp, type Topology, type TopologyExtractionProvider, type TopologyServiceVariant, type UsageHygieneSnapshot, VectorProvider, type VectorStatus, type WikiLintReport, assertGraphExtractionPayload, createPyxMemory, isSessionOrdinal, mergeExtractedEntities, normalizeGraphLabel, normalizeNameKey, projectSearchResponseForMcp, secretElevationAggregate, secretElevationNoticeFor, withSecretElevationNotice };
2014
+ export { type AgentId, type ApiResponse, type ConsolidationJudgementsResult, type ConsolidationMerge, type ConsolidationPair, type ConsolidationPairSide, type ConsolidationRunResult, type CorrectionInput, type CorrectionRecord, type CreatePyxMemoryOptions, DEFAULTS, DEPRECATED_RAG_STRATEGIES, DisabledMemory, type DroppedGraphRelationship, type DueScanInput, EmbeddingProviderName, type EnrichmentCallbacks, type EnrichmentPurpose, type EntityExtractionResult, type ExpandAnchorStatus, type ExpandParams, type ExpandResult, type ExtendedMemoryInterface, type FetchCorrectionsInput, type FileDownloadOptions, type GraphEnrichEvent, type GraphEnrichFileOptions, type GraphEnrichPreparedEvent, type GraphEnrichResult, type GraphEnrichResultEvent, type GraphEnrichment, type GraphEnrichmentStatus, type GraphExtractionPayload, type GraphFailureMode, type GraphNode, type GraphRelationship, type GraphRepairResult, type GraphTelemetrySnapshot, type GraphTraversalResult, type IngestEntity, type IngestErrorEvent, type IngestEvent, type IngestFileOptions, type IngestHeartbeatEvent, type IngestProgressEvent, type IngestRelationship, type IngestResultEvent, type IngestStage, type IngestionResult, type LineageParams, type LineageResult, type LineageVersion, MCP_ACTOR_META_KEY, MEMORY_ACTOR_LABEL_MAX_CHARS, MEMORY_PROJECT_LABEL_MAX_CHARS, MemoryClient, type MemoryClientOptions, type MemoryEntry, type MemoryIngestRequest, type MemoryInsightMetrics, type MemoryInsights, type MemoryInterface, type MemoryListParams, type MemoryListResult, type MemoryLogFilters, type MemoryProjectInsight, type MemorySearchParams, type MemorySearchResult, MemoryServerError, type MemoryStats, MemoryType, type MoveEntriesFilter, MoveFailureReason, type MoveResult, type MoveTarget, NamespaceIsolation, type PrincipalContext, RAGStrategy, type ReinforceParams, type ReinforceResult, type ReinforceSignal, SESSION_ORDINAL_MAX, SINGLE_TENANT_ID, type SecretElevationAggregate, type SecretElevationNotice, SensitivityLevel, type SourceEvidence, type StoreInput, StoreTarget, TAXONOMY_MAX_CATEGORIES, TAXONOMY_MAX_PROJECTS, TAXONOMY_MAX_SAMPLE_TOPICS, TAXONOMY_MAX_TOP_ENTITIES, type TemporalQueryFilters, type TenantScopeOptions, type Timestamp, type Topology, type TopologyExtractionProvider, type TopologyServiceVariant, type UsageHygieneSnapshot, VectorProvider, type VectorStatus, type WikiLintReport, assertGraphExtractionPayload, createPyxMemory, isSessionOrdinal, mergeExtractedEntities, normalizeGraphLabel, normalizeMemoryActorLabel, normalizeNameKey, projectSearchResponseForMcp, secretElevationAggregate, secretElevationNoticeFor, withSecretElevationNotice };
package/dist/index.mjs CHANGED
@@ -2,9 +2,11 @@ import {
2
2
  DisabledMemory,
3
3
  MemoryClient,
4
4
  MemoryServerError
5
- } from "./chunk-LQDQHLVP.mjs";
5
+ } from "./chunk-M67SXB7C.mjs";
6
6
  import {
7
7
  DEFAULTS,
8
+ MCP_ACTOR_META_KEY,
9
+ MEMORY_ACTOR_LABEL_MAX_CHARS,
8
10
  MEMORY_PROJECT_LABEL_MAX_CHARS,
9
11
  MoveFailureReason,
10
12
  NamespaceIsolation,
@@ -16,11 +18,12 @@ import {
16
18
  documentContentSource,
17
19
  documentGraphSource,
18
20
  documentImageSource,
21
+ normalizeMemoryActorLabel,
19
22
  projectSearchResponseForMcp,
20
23
  secretElevationAggregate,
21
24
  secretElevationNoticeFor,
22
25
  withSecretElevationNotice
23
- } from "./chunk-KZKGRND2.mjs";
26
+ } from "./chunk-RWQTBXUC.mjs";
24
27
  import {
25
28
  DEPRECATED_RAG_STRATEGIES,
26
29
  EmbeddingProviderName,
@@ -37,7 +40,7 @@ import {
37
40
  normalizeGraphLabel,
38
41
  normalizeNameKey,
39
42
  parseListCursorToken
40
- } from "./chunk-VXXRCAKS.mjs";
43
+ } from "./chunk-HTQBKJTD.mjs";
41
44
 
42
45
  // src/preset.ts
43
46
  var DEFAULT_MEMORY_URL = `http://localhost:${DEFAULTS.MEMORY_SERVER_PORT}`;
@@ -57,6 +60,8 @@ export {
57
60
  DEPRECATED_RAG_STRATEGIES,
58
61
  DisabledMemory,
59
62
  EmbeddingProviderName,
63
+ MCP_ACTOR_META_KEY,
64
+ MEMORY_ACTOR_LABEL_MAX_CHARS,
60
65
  MEMORY_PROJECT_LABEL_MAX_CHARS,
61
66
  MemoryClient,
62
67
  MemoryServerError,
@@ -82,6 +87,7 @@ export {
82
87
  isSessionOrdinal,
83
88
  mergeExtractedEntities,
84
89
  normalizeGraphLabel,
90
+ normalizeMemoryActorLabel,
85
91
  normalizeNameKey,
86
92
  parseListCursorToken,
87
93
  projectSearchResponseForMcp,
package/dist/react.mjs CHANGED
@@ -11,10 +11,10 @@ import {
11
11
  toGraphologyFormat,
12
12
  transformGraphData,
13
13
  unreachableHealth
14
- } from "./chunk-NDXE3TIS.mjs";
15
- import "./chunk-LQDQHLVP.mjs";
16
- import "./chunk-KZKGRND2.mjs";
17
- import "./chunk-VXXRCAKS.mjs";
14
+ } from "./chunk-N4KDRRLY.mjs";
15
+ import "./chunk-M67SXB7C.mjs";
16
+ import "./chunk-RWQTBXUC.mjs";
17
+ import "./chunk-HTQBKJTD.mjs";
18
18
 
19
19
  // ../dashboard/src/hooks/use-consolidation-log.ts
20
20
  import { useCallback as useCallback2, useMemo } from "react";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pyxmate/memory",
3
- "version": "1.26.5",
3
+ "version": "1.27.0",
4
4
  "type": "module",
5
5
  "description": "SDK for pyx-memory — Memory as a Service for AI agents",
6
6
  "license": "MIT",