@pyxmate/memory 0.23.1 → 0.24.1

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.
@@ -101,6 +101,18 @@ var MemoryClient = class {
101
101
  const stats = await this.fetchApi("/api/memory/stats");
102
102
  return { ...stats, connected: true };
103
103
  }
104
+ /**
105
+ * Fetch the running server's topology snapshot (build variant, declared
106
+ * role, embedding location, active model profile). Round-trips the
107
+ * server's `GET /status` envelope through {@link fetchApi}, surfacing any
108
+ * non-success response as {@link MemoryServerError}. Auth-header
109
+ * forwarding is unchanged from other client methods even though `/status`
110
+ * is server-side public — the server simply ignores credentials on that
111
+ * route.
112
+ */
113
+ async status() {
114
+ return this.fetchApi("/status");
115
+ }
104
116
  async shutdown() {
105
117
  }
106
118
  async list(params = {}) {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  MemoryClient
3
- } from "./chunk-D5PMQYZM.mjs";
3
+ } from "./chunk-CCGW6QRX.mjs";
4
4
 
5
5
  // ../dashboard/src/aggregations/consolidation-analytics.ts
6
6
  function analyzeConsolidationLog(entries) {
@@ -15343,6 +15343,25 @@ var searchMemoriesTool = {
15343
15343
  }
15344
15344
  };
15345
15345
 
15346
+ // src/mcp/tools/status.ts
15347
+ var inputShape6 = {};
15348
+ var statusTool = {
15349
+ name: "status",
15350
+ config: {
15351
+ title: "Get pyx-memory topology",
15352
+ description: "Fetch the running pyx-memory server topology: build variant (cloud|full), declared deployment role, server version, embedding location (inline|remote), and active model profile. HTTP proxy to GET /status \u2014 no in-process branch.",
15353
+ inputSchema: inputShape6,
15354
+ annotations: { readOnlyHint: true, openWorldHint: true }
15355
+ },
15356
+ handler: (deps) => async () => {
15357
+ const creds = await deps.readCredentials();
15358
+ if (!creds.ok) return creds.result;
15359
+ const http = createHttpClient(creds.credentials, deps.fetchImpl);
15360
+ const res = await http.requestJson({ method: "GET", path: "/status" });
15361
+ return res.ok ? mcpJson(res.data) : res.result;
15362
+ }
15363
+ };
15364
+
15346
15365
  // src/mcp/tools/store.ts
15347
15366
  var entityTypes = ["PERSON", "ORGANIZATION", "CONCEPT", "TOOL", "LOCATION", "EVENT"];
15348
15367
  var relationshipTypes = [
@@ -15356,7 +15375,7 @@ var relationshipTypes = [
15356
15375
  "WORKS_AT",
15357
15376
  "LOCATED_IN"
15358
15377
  ];
15359
- var inputShape6 = {
15378
+ var inputShape7 = {
15360
15379
  content: external_exports.string().min(1).describe("Concise factual statement to persist; decision, not deliberation."),
15361
15380
  topic: external_exports.string().min(1).describe("Required metadata.topic for retrieval grouping."),
15362
15381
  project: external_exports.string().min(1).describe("Required metadata.project namespace."),
@@ -15387,7 +15406,7 @@ var storeMemoryTool = {
15387
15406
  config: {
15388
15407
  title: "Store pyx-memory entry",
15389
15408
  description: "Store one concise factual memory with required topic and project metadata. Provide entities/relationships when content names people, tools, orgs, locations, or events.",
15390
- inputSchema: inputShape6,
15409
+ inputSchema: inputShape7,
15391
15410
  annotations: { readOnlyHint: false, idempotentHint: false, openWorldHint: true }
15392
15411
  },
15393
15412
  handler: (deps) => async (raw) => {
@@ -15422,7 +15441,7 @@ var storeMemoryTool = {
15422
15441
  };
15423
15442
 
15424
15443
  // src/mcp/tools/summarize.ts
15425
- var inputShape7 = {
15444
+ var inputShape8 = {
15426
15445
  entityName: external_exports.string().min(1).describe(
15427
15446
  "Entity name to synthesize a profile for (PERSON, ORG, CONCEPT, TOOL, LOCATION, EVENT)."
15428
15447
  ),
@@ -15437,7 +15456,7 @@ var summarizeMemoryEntityTool = {
15437
15456
  config: {
15438
15457
  title: "Synthesize pyx-memory entity",
15439
15458
  description: "Fetch or refresh a reusable synthesis/profile for an entity (person, customer, project, tool, organization). Default fetches existing; set refresh:true to rebuild.",
15440
- inputSchema: inputShape7,
15459
+ inputSchema: inputShape8,
15441
15460
  annotations: { readOnlyHint: false, idempotentHint: true, openWorldHint: true }
15442
15461
  },
15443
15462
  handler: (deps) => async (raw) => {
@@ -15472,14 +15491,15 @@ var ALL_TOOLS = [
15472
15491
  listMemoriesTool,
15473
15492
  deleteMemoryTool,
15474
15493
  ingestMemoryFileTool,
15475
- summarizeMemoryEntityTool
15494
+ summarizeMemoryEntityTool,
15495
+ statusTool
15476
15496
  ];
15477
15497
  var ALL_TOOL_NAMES = ALL_TOOLS.map((t) => t.name);
15478
15498
 
15479
15499
  // src/mcp/server.ts
15480
15500
  async function runMcpServer(opts) {
15481
15501
  const fetchImpl = opts.fetchImpl ?? fetch;
15482
- const version2 = opts.version ?? (true ? "0.23.1" : "0.0.0-dev");
15502
+ const version2 = opts.version ?? (true ? "0.24.1" : "0.0.0-dev");
15483
15503
  const server = new McpServer(
15484
15504
  { name: "pyx-memory", version: version2 },
15485
15505
  { instructions: PYX_MEMORY_INSTRUCTIONS, capabilities: { tools: {} } }
@@ -15830,13 +15850,113 @@ Restart Gemini CLI to make the tools available. No API key was written to settin
15830
15850
  function geminiConfigPath(home, scope) {
15831
15851
  return scope === "project" ? join(process.cwd(), ".gemini", "settings.json") : join(home, ".gemini", "settings.json");
15832
15852
  }
15853
+ function mcpInstallPiCommand(opts = {}) {
15854
+ const scope = opts.scope ?? "user";
15855
+ if (!validateScope(scope)) return EXIT.USAGE;
15856
+ const home = opts._homeDir ?? homedir();
15857
+ const filePath = scope === "user" ? join(home, ".pi", "agent", "mcp.json") : join(process.cwd(), ".pi", "mcp.json");
15858
+ return writeJsonAndReport(filePath, "Pi", {
15859
+ prereq: "pi has no native MCP support \u2014 install the third-party adapter once:\n pi install npm:pi-mcp-adapter"
15860
+ });
15861
+ }
15862
+ function mcpInstallOpenClawCommand(opts = {}) {
15863
+ const scope = opts.scope ?? "user";
15864
+ if (!validateScope(scope)) return EXIT.USAGE;
15865
+ const spawnSync = opts._spawnSync ?? nodeSpawnSync;
15866
+ const probe = spawnSync("openclaw", ["--version"], { stdio: "pipe" });
15867
+ if (probe.error || probe.status !== 0) {
15868
+ printOpenClawManualInstructions();
15869
+ return EXIT.OK;
15870
+ }
15871
+ const entryJson = JSON.stringify(ENTRY);
15872
+ const cmd = ["mcp", "set", SERVER_NAME, entryJson];
15873
+ const res = spawnSync("openclaw", cmd, { stdio: "inherit" });
15874
+ if (res.status !== 0) {
15875
+ process.stderr.write(
15876
+ `\`openclaw ${cmd.join(" ")}\` exited with code ${res.status ?? "null"}.
15877
+ `
15878
+ );
15879
+ printOpenClawManualInstructions();
15880
+ return EXIT.USAGE;
15881
+ }
15882
+ process.stdout.write(
15883
+ `Installed pyx-memory MCP server in OpenClaw.
15884
+ Restart OpenClaw to make the tools available. No API key was written to openclaw.json \u2014 credentials live in the OS credential store.
15885
+ `
15886
+ );
15887
+ return EXIT.OK;
15888
+ }
15889
+ function printOpenClawManualInstructions() {
15890
+ const entryJson = JSON.stringify(ENTRY);
15891
+ process.stdout.write(
15892
+ [
15893
+ "The `openclaw` CLI is not on PATH, or the install command failed.",
15894
+ "",
15895
+ "Run this once OpenClaw is installed:",
15896
+ ` openclaw mcp set ${SERVER_NAME} '${entryJson}'`,
15897
+ "",
15898
+ "Or add this entry manually under `mcp.servers` in your OpenClaw config",
15899
+ "(run `openclaw config file` to print the active config path):",
15900
+ "",
15901
+ JSON.stringify({ mcp: { servers: { [SERVER_NAME]: ENTRY } } }, null, 2),
15902
+ "",
15903
+ "Do NOT add your pyx-memory API key here. Run `pyx-mem login` to store it in the OS credential store.",
15904
+ ""
15905
+ ].join("\n")
15906
+ );
15907
+ }
15908
+ function mcpInstallHermesCommand(opts = {}) {
15909
+ const scope = opts.scope ?? "user";
15910
+ if (!validateScope(scope)) return EXIT.USAGE;
15911
+ const spawnSync = opts._spawnSync ?? nodeSpawnSync;
15912
+ const probe = spawnSync("hermes", ["--version"], { stdio: "pipe" });
15913
+ if (probe.error || probe.status !== 0) {
15914
+ printHermesManualInstructions();
15915
+ return EXIT.OK;
15916
+ }
15917
+ const cmd = ["mcp", "add", SERVER_NAME, "--command", "pyx-mem", "--args", "mcp"];
15918
+ const res = spawnSync("hermes", cmd, { stdio: "inherit" });
15919
+ if (res.status !== 0) {
15920
+ process.stderr.write(`\`hermes ${cmd.join(" ")}\` exited with code ${res.status ?? "null"}.
15921
+ `);
15922
+ printHermesManualInstructions();
15923
+ return EXIT.USAGE;
15924
+ }
15925
+ process.stdout.write(
15926
+ `Installed pyx-memory MCP server in Hermes.
15927
+ Restart Hermes to make the tools available. No API key was written to config.yaml \u2014 credentials live in the OS credential store.
15928
+ `
15929
+ );
15930
+ return EXIT.OK;
15931
+ }
15932
+ function printHermesManualInstructions() {
15933
+ process.stdout.write(
15934
+ [
15935
+ "The `hermes` CLI is not on PATH, or the install command failed.",
15936
+ "",
15937
+ "Run this once Hermes is installed:",
15938
+ ` hermes mcp add ${SERVER_NAME} --command pyx-mem --args mcp`,
15939
+ "",
15940
+ "Or add this block under `mcp_servers:` in your Hermes config",
15941
+ "(typically ~/.hermes/config.yaml):",
15942
+ "",
15943
+ `${SERVER_NAME}:`,
15944
+ " command: pyx-mem",
15945
+ " args:",
15946
+ " - mcp",
15947
+ "",
15948
+ "Do NOT add your pyx-memory API key here. Run `pyx-mem login` to store it in the OS credential store.",
15949
+ ""
15950
+ ].join("\n")
15951
+ );
15952
+ }
15833
15953
  function validateScope(scope) {
15834
15954
  if (VALID_SCOPES.has(scope)) return true;
15835
15955
  process.stderr.write(`Error: invalid --scope \`${scope}\`. Expected: local | user | project.
15836
15956
  `);
15837
15957
  return false;
15838
15958
  }
15839
- function writeJsonAndReport(filePath, agentLabel) {
15959
+ function writeJsonAndReport(filePath, agentLabel, opts = {}) {
15840
15960
  const result = mergeWriteJsonMcpEntry({
15841
15961
  filePath,
15842
15962
  serverName: SERVER_NAME,
@@ -15850,6 +15970,10 @@ function writeJsonAndReport(filePath, agentLabel) {
15850
15970
  `
15851
15971
  );
15852
15972
  }
15973
+ if ((result.status === "installed" || result.status === "already-installed") && opts.prereq) {
15974
+ process.stdout.write(`Prerequisite: ${opts.prereq}
15975
+ `);
15976
+ }
15853
15977
  return result.exitCode;
15854
15978
  }
15855
15979
 
@@ -15910,7 +16034,7 @@ Commands:
15910
16034
  mcp Start stdio MCP server.
15911
16035
  mcp install <target> [--scope user|local|project]
15912
16036
  Install pyx-memory MCP config for your AI agent.
15913
- Targets: claude-code, codex, cursor, cline, continue, windsurf, gemini-cli.
16037
+ Targets: claude-code, codex, cursor, cline, continue, windsurf, gemini-cli, pi, openclaw, hermes.
15914
16038
 
15915
16039
  Notes:
15916
16040
  - Credentials are stored only in the OS credential store (Keychain / libsecret / Credential Manager).
@@ -15963,15 +16087,43 @@ function parseArgs(argv) {
15963
16087
  }
15964
16088
 
15965
16089
  // src/cli/pyx-mem.ts
15966
- var VALID_TARGETS = [
15967
- "claude-code",
15968
- "codex",
15969
- "cursor",
15970
- "cline",
15971
- "continue",
15972
- "windsurf",
15973
- "gemini-cli"
15974
- ];
16090
+ var INSTALL_TARGETS = {
16091
+ "claude-code": mcpInstallClaudeCodeCommand,
16092
+ codex: mcpInstallCodexCommand,
16093
+ cursor: mcpInstallCursorCommand,
16094
+ cline: mcpInstallClineCommand,
16095
+ continue: mcpInstallContinueCommand,
16096
+ windsurf: mcpInstallWindsurfCommand,
16097
+ "gemini-cli": mcpInstallGeminiCliCommand,
16098
+ pi: mcpInstallPiCommand,
16099
+ openclaw: mcpInstallOpenClawCommand,
16100
+ hermes: mcpInstallHermesCommand
16101
+ };
16102
+ var VALID_TARGETS = Object.keys(INSTALL_TARGETS);
16103
+ function runMcpInstall(target, scope) {
16104
+ if (target === void 0 || !Object.hasOwn(INSTALL_TARGETS, target)) {
16105
+ process.stderr.write(
16106
+ `Error: unknown install target \`${target ?? ""}\`. Expected: ${VALID_TARGETS.join(", ")}.
16107
+ `
16108
+ );
16109
+ return EXIT.USAGE;
16110
+ }
16111
+ const handler = INSTALL_TARGETS[target];
16112
+ return handler({ scope });
16113
+ }
16114
+ function runMcpCommand(parsed) {
16115
+ if (parsed.subcommand === void 0) return mcpCommand();
16116
+ if (parsed.subcommand === "install") {
16117
+ const target = parsed.positional[0];
16118
+ const scope = typeof parsed.flags.scope === "string" ? parsed.flags.scope : void 0;
16119
+ return runMcpInstall(target, scope);
16120
+ }
16121
+ process.stderr.write(
16122
+ `Error: unknown subcommand \`mcp ${parsed.subcommand}\`. Run \`pyx-mem --help\`.
16123
+ `
16124
+ );
16125
+ return EXIT.USAGE;
16126
+ }
15975
16127
  async function main() {
15976
16128
  const parsed = parseArgs(process.argv.slice(2));
15977
16129
  if (parsed.flags.help === true || parsed.flags.h === true) {
@@ -15994,40 +16146,8 @@ async function main() {
15994
16146
  return logoutCommand();
15995
16147
  case "doctor":
15996
16148
  return doctorCommand({ json: parsed.flags.json === true });
15997
- case "mcp": {
15998
- if (parsed.subcommand === void 0) return mcpCommand();
15999
- if (parsed.subcommand === "install") {
16000
- const target = parsed.positional[0];
16001
- const scope = typeof parsed.flags.scope === "string" ? parsed.flags.scope : void 0;
16002
- switch (target) {
16003
- case "claude-code":
16004
- return mcpInstallClaudeCodeCommand({ scope });
16005
- case "codex":
16006
- return mcpInstallCodexCommand({ scope });
16007
- case "cursor":
16008
- return mcpInstallCursorCommand({ scope });
16009
- case "cline":
16010
- return mcpInstallClineCommand({ scope });
16011
- case "continue":
16012
- return mcpInstallContinueCommand({ scope });
16013
- case "windsurf":
16014
- return mcpInstallWindsurfCommand({ scope });
16015
- case "gemini-cli":
16016
- return mcpInstallGeminiCliCommand({ scope });
16017
- default:
16018
- process.stderr.write(
16019
- `Error: unknown install target \`${target ?? ""}\`. Expected: ${VALID_TARGETS.join(", ")}.
16020
- `
16021
- );
16022
- return EXIT.USAGE;
16023
- }
16024
- }
16025
- process.stderr.write(
16026
- `Error: unknown subcommand \`mcp ${parsed.subcommand}\`. Run \`pyx-mem --help\`.
16027
- `
16028
- );
16029
- return EXIT.USAGE;
16030
- }
16149
+ case "mcp":
16150
+ return runMcpCommand(parsed);
16031
16151
  default:
16032
16152
  process.stderr.write(
16033
16153
  `Error: unknown command \`${parsed.command}\`. Run \`pyx-mem --help\`.
@@ -11,8 +11,8 @@ import {
11
11
  toGraphologyFormat,
12
12
  transformGraphData,
13
13
  unreachableHealth
14
- } from "./chunk-4DRKAXJE.mjs";
15
- import "./chunk-D5PMQYZM.mjs";
14
+ } from "./chunk-FSFVD3MB.mjs";
15
+ import "./chunk-CCGW6QRX.mjs";
16
16
  import "./chunk-7P6ASYW6.mjs";
17
17
  export {
18
18
  DashboardClient,
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { StoreInput as StoreInput$1, MemoryEntry as MemoryEntry$1, MemorySearchParams as MemorySearchParams$1, MemorySearchResult as MemorySearchResult$1, MemoryType as MemoryType$1, PrincipalContext as PrincipalContext$1, MemoryStats as MemoryStats$1, WikiLintReport as WikiLintReport$1, ExtractedImageMeta as ExtractedImageMeta$1, IngestEntity as IngestEntity$1, IngestRelationship as IngestRelationship$1, IngestEvent as IngestEvent$1, GraphNode as GraphNode$1, GraphTraversalResult as GraphTraversalResult$1 } from '@pyx-memory/shared';
1
+ import { StoreInput as StoreInput$1, MemoryEntry as MemoryEntry$1, MemorySearchParams as MemorySearchParams$1, MemorySearchResult as MemorySearchResult$1, MemoryType as MemoryType$1, PrincipalContext as PrincipalContext$1, MemoryStats as MemoryStats$1, WikiLintReport as WikiLintReport$1, ExtractedImageMeta as ExtractedImageMeta$1, IngestEntity as IngestEntity$1, IngestRelationship as IngestRelationship$1, Topology as Topology$1, IngestEvent as IngestEvent$1, GraphNode as GraphNode$1, GraphTraversalResult as GraphTraversalResult$1 } from '@pyx-memory/shared';
2
2
 
3
3
  /** Parameters for paginated entry listing. */
4
4
  interface MemoryListParams {
@@ -211,6 +211,16 @@ declare class MemoryClient implements ExtendedMemoryInterface {
211
211
  delete(id: string): Promise<boolean>;
212
212
  clearSession(sessionId: string): Promise<number>;
213
213
  stats(): Promise<MemoryStats$1>;
214
+ /**
215
+ * Fetch the running server's topology snapshot (build variant, declared
216
+ * role, embedding location, active model profile). Round-trips the
217
+ * server's `GET /status` envelope through {@link fetchApi}, surfacing any
218
+ * non-success response as {@link MemoryServerError}. Auth-header
219
+ * forwarding is unchanged from other client methods even though `/status`
220
+ * is server-side public — the server simply ignores credentials on that
221
+ * route.
222
+ */
223
+ status(): Promise<Topology$1>;
214
224
  shutdown(): Promise<void>;
215
225
  list(params?: MemoryListParams): Promise<MemoryListResult>;
216
226
  /**
@@ -323,6 +333,45 @@ interface ApiResponse<T> {
323
333
  data?: T;
324
334
  error?: string;
325
335
  }
336
+ /**
337
+ * Build variant of the running pyx-memory image. Detected from the actual
338
+ * availability of `@huggingface/transformers` at boot — `full` keeps the
339
+ * local-embedding stack bundled, `cloud` has it pruned (EMBEDDING_PROVIDER=http
340
+ * is mandatory). The detected value is authoritative; the optional
341
+ * `PYX_BUILD_VARIANT` env stamp is a sanity check that throws on drift.
342
+ */
343
+ type TopologyServiceVariant = 'cloud' | 'full';
344
+ /**
345
+ * Where embedding work happens. `inline` means the server computes vectors
346
+ * in-process (EMBEDDING_PROVIDER=local); `remote` means it delegates to an
347
+ * HTTP embedding service (EMBEDDING_PROVIDER=http). The endpoint URL itself
348
+ * is internal infrastructure and is intentionally NOT exposed here.
349
+ */
350
+ type TopologyEmbeddingLocation = 'inline' | 'remote';
351
+ /**
352
+ * Public topology snapshot returned by `GET /status`. Reflects actual runtime
353
+ * capability (variant detected from import probe, embedding location derived
354
+ * from configured provider) plus the active embedding profile. Never leaks
355
+ * embedding-service URLs or other infrastructure host fragments — those stay
356
+ * behind the admin surface.
357
+ */
358
+ interface Topology {
359
+ service: {
360
+ variant: TopologyServiceVariant;
361
+ /**
362
+ * Operator-declared role label (`PYX_DEPLOYMENT_ROLE`). Free-form string.
363
+ * Structurally absent from the response when the env var is unset or empty.
364
+ */
365
+ declaredRole?: string;
366
+ version: string;
367
+ };
368
+ embedding: {
369
+ location: TopologyEmbeddingLocation;
370
+ modelKey: string;
371
+ modelId: string;
372
+ dimensions: number;
373
+ };
374
+ }
326
375
 
327
376
  /** ISO 8601 timestamp string */
328
377
  type Timestamp = string;
@@ -907,4 +956,4 @@ interface PrincipalContext {
907
956
  /** Sentinel tenant ID used in single-tenant deployments. */
908
957
  declare const SINGLE_TENANT_ID = "_single";
909
958
 
910
- export { type AgentId, type ApiResponse, type ConsolidationRunResult, DEFAULTS, EmbeddingProviderName, type EnrichmentCallbacks, type ExtendedMemoryInterface, type GraphFailureMode, type GraphNode, type GraphRelationship, type GraphTraversalResult, type IngestEntity, type IngestErrorEvent, type IngestEvent, type IngestFileOptions, type IngestHeartbeatEvent, type IngestProgressEvent, type IngestRelationship, type IngestResultEvent, type IngestStage, type IngestionResult, MemoryClient, type MemoryClientOptions, type MemoryEntry, type MemoryIngestRequest, type MemoryInterface, type MemoryListParams, type MemoryListResult, type MemoryLogFilters, type MemorySearchParams, type MemorySearchResult, MemoryServerError, type MemoryStats, MemoryType, type MoveEntriesFilter, MoveFailureReason, type MoveResult, type MoveTarget, NamespaceIsolation, type PrincipalContext, RAGStrategy, SINGLE_TENANT_ID, SensitivityLevel, type StoreInput, StoreTarget, type TemporalQueryFilters, type TenantScopeOptions, type Timestamp, VectorProvider, type WikiLintReport };
959
+ export { type AgentId, type ApiResponse, type ConsolidationRunResult, DEFAULTS, EmbeddingProviderName, type EnrichmentCallbacks, type ExtendedMemoryInterface, type GraphFailureMode, type GraphNode, type GraphRelationship, type GraphTraversalResult, type IngestEntity, type IngestErrorEvent, type IngestEvent, type IngestFileOptions, type IngestHeartbeatEvent, type IngestProgressEvent, type IngestRelationship, type IngestResultEvent, type IngestStage, type IngestionResult, MemoryClient, type MemoryClientOptions, type MemoryEntry, type MemoryIngestRequest, type MemoryInterface, type MemoryListParams, type MemoryListResult, type MemoryLogFilters, type MemorySearchParams, type MemorySearchResult, MemoryServerError, type MemoryStats, MemoryType, type MoveEntriesFilter, MoveFailureReason, type MoveResult, type MoveTarget, NamespaceIsolation, type PrincipalContext, RAGStrategy, SINGLE_TENANT_ID, SensitivityLevel, type StoreInput, StoreTarget, type TemporalQueryFilters, type TenantScopeOptions, type Timestamp, type Topology, type TopologyServiceVariant, VectorProvider, type WikiLintReport };
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  MemoryClient,
3
3
  MemoryServerError
4
- } from "./chunk-D5PMQYZM.mjs";
4
+ } from "./chunk-CCGW6QRX.mjs";
5
5
  import "./chunk-7P6ASYW6.mjs";
6
6
 
7
7
  // ../shared/src/constants/defaults.ts
package/dist/react.mjs CHANGED
@@ -11,8 +11,8 @@ import {
11
11
  toGraphologyFormat,
12
12
  transformGraphData,
13
13
  unreachableHealth
14
- } from "./chunk-4DRKAXJE.mjs";
15
- import "./chunk-D5PMQYZM.mjs";
14
+ } from "./chunk-FSFVD3MB.mjs";
15
+ import "./chunk-CCGW6QRX.mjs";
16
16
  import "./chunk-7P6ASYW6.mjs";
17
17
 
18
18
  // ../dashboard/src/hooks/use-consolidation-log.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pyxmate/memory",
3
- "version": "0.23.1",
3
+ "version": "0.24.1",
4
4
  "type": "module",
5
5
  "description": "SDK for pyx-memory — Memory as a Service for AI agents",
6
6
  "license": "MIT",