@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.
- package/dist/{chunk-D5PMQYZM.mjs → chunk-CCGW6QRX.mjs} +12 -0
- package/dist/{chunk-4DRKAXJE.mjs → chunk-FSFVD3MB.mjs} +1 -1
- package/dist/cli/pyx-mem.mjs +171 -51
- package/dist/dashboard.mjs +2 -2
- package/dist/index.d.ts +51 -2
- package/dist/index.mjs +1 -1
- package/dist/react.mjs +2 -2
- package/package.json +1 -1
|
@@ -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 = {}) {
|
package/dist/cli/pyx-mem.mjs
CHANGED
|
@@ -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
|
|
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:
|
|
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
|
|
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:
|
|
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.
|
|
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
|
|
15967
|
-
"claude-code",
|
|
15968
|
-
|
|
15969
|
-
|
|
15970
|
-
|
|
15971
|
-
|
|
15972
|
-
|
|
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
|
-
|
|
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\`.
|
package/dist/dashboard.mjs
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
toGraphologyFormat,
|
|
12
12
|
transformGraphData,
|
|
13
13
|
unreachableHealth
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
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
package/dist/react.mjs
CHANGED
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
toGraphologyFormat,
|
|
12
12
|
transformGraphData,
|
|
13
13
|
unreachableHealth
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
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
|