@mrc2204/agent-smart-memo 5.0.2 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +209 -375
  2. package/bin/asm.mjs +365 -0
  3. package/bin/opencode-mcp-server.mjs +320 -0
  4. package/dist/core/contracts/adapter-contracts.d.ts +1 -1
  5. package/dist/core/contracts/adapter-contracts.d.ts.map +1 -1
  6. package/dist/core/contracts/change-overlay-contracts.d.ts +69 -0
  7. package/dist/core/contracts/change-overlay-contracts.d.ts.map +1 -0
  8. package/dist/core/contracts/change-overlay-contracts.js +2 -0
  9. package/dist/core/contracts/change-overlay-contracts.js.map +1 -0
  10. package/dist/core/contracts/feature-pack-contracts.d.ts +37 -0
  11. package/dist/core/contracts/feature-pack-contracts.d.ts.map +1 -0
  12. package/dist/core/contracts/feature-pack-contracts.js +8 -0
  13. package/dist/core/contracts/feature-pack-contracts.js.map +1 -0
  14. package/dist/core/contracts/project-query-contracts.d.ts +84 -0
  15. package/dist/core/contracts/project-query-contracts.d.ts.map +1 -0
  16. package/dist/core/contracts/project-query-contracts.js +2 -0
  17. package/dist/core/contracts/project-query-contracts.js.map +1 -0
  18. package/dist/core/graph/code-graph-model.d.ts +9 -0
  19. package/dist/core/graph/code-graph-model.d.ts.map +1 -0
  20. package/dist/core/graph/code-graph-model.js +70 -0
  21. package/dist/core/graph/code-graph-model.js.map +1 -0
  22. package/dist/core/graph/code-graph-populator.d.ts +20 -0
  23. package/dist/core/graph/code-graph-populator.d.ts.map +1 -0
  24. package/dist/core/graph/code-graph-populator.js +760 -0
  25. package/dist/core/graph/code-graph-populator.js.map +1 -0
  26. package/dist/core/graph/contracts.d.ts +29 -0
  27. package/dist/core/graph/contracts.d.ts.map +1 -0
  28. package/dist/core/graph/contracts.js +47 -0
  29. package/dist/core/graph/contracts.js.map +1 -0
  30. package/dist/core/ingest/contracts.d.ts +44 -0
  31. package/dist/core/ingest/contracts.d.ts.map +1 -0
  32. package/dist/core/ingest/contracts.js +2 -0
  33. package/dist/core/ingest/contracts.js.map +1 -0
  34. package/dist/core/ingest/ids.d.ts +5 -0
  35. package/dist/core/ingest/ids.d.ts.map +1 -0
  36. package/dist/core/ingest/ids.js +17 -0
  37. package/dist/core/ingest/ids.js.map +1 -0
  38. package/dist/core/ingest/ingest-pipeline.d.ts +4 -0
  39. package/dist/core/ingest/ingest-pipeline.d.ts.map +1 -0
  40. package/dist/core/ingest/ingest-pipeline.js +105 -0
  41. package/dist/core/ingest/ingest-pipeline.js.map +1 -0
  42. package/dist/core/ingest/semantic-block-extractor.d.ts +9 -0
  43. package/dist/core/ingest/semantic-block-extractor.d.ts.map +1 -0
  44. package/dist/core/ingest/semantic-block-extractor.js +171 -0
  45. package/dist/core/ingest/semantic-block-extractor.js.map +1 -0
  46. package/dist/core/usecases/default-memory-usecase-port.d.ts +38 -0
  47. package/dist/core/usecases/default-memory-usecase-port.d.ts.map +1 -1
  48. package/dist/core/usecases/default-memory-usecase-port.js +1686 -12
  49. package/dist/core/usecases/default-memory-usecase-port.js.map +1 -1
  50. package/dist/db/graph-db.d.ts +24 -0
  51. package/dist/db/graph-db.d.ts.map +1 -1
  52. package/dist/db/graph-db.js +81 -2
  53. package/dist/db/graph-db.js.map +1 -1
  54. package/dist/db/slot-db.d.ts +235 -2
  55. package/dist/db/slot-db.d.ts.map +1 -1
  56. package/dist/db/slot-db.js +840 -18
  57. package/dist/db/slot-db.js.map +1 -1
  58. package/dist/index.d.ts +7 -247
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +32 -119
  61. package/dist/index.js.map +1 -1
  62. package/dist/shared/asm-config.d.ts +82 -0
  63. package/dist/shared/asm-config.d.ts.map +1 -0
  64. package/dist/shared/asm-config.js +254 -0
  65. package/dist/shared/asm-config.js.map +1 -0
  66. package/dist/shared/slotdb-path.d.ts +4 -3
  67. package/dist/shared/slotdb-path.d.ts.map +1 -1
  68. package/dist/shared/slotdb-path.js +15 -6
  69. package/dist/shared/slotdb-path.js.map +1 -1
  70. package/dist/tools/graph-tools.d.ts.map +1 -1
  71. package/dist/tools/graph-tools.js +131 -0
  72. package/dist/tools/graph-tools.js.map +1 -1
  73. package/dist/tools/project-tools.d.ts.map +1 -1
  74. package/dist/tools/project-tools.js +543 -0
  75. package/dist/tools/project-tools.js.map +1 -1
  76. package/openclaw.plugin.json +5 -164
  77. package/package.json +61 -26
  78. package/scripts/init-openclaw.mjs +727 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAwB7E,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAmID,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AACzE,eAAO,MAAM,6BAA6B,kFAAkF,CAAC;AAE7H,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2F3B,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgFtB,CAAC;AAEX,wBAAgB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS3C;AAED,wBAAgB,uCAAuC,QAGtD;AAED,QAAA,MAAM,eAAe;kBAGL,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4LhC,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AA4B7D,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkHD,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AACzE,eAAO,MAAM,6BAA6B,kFAAkF,CAAC;AAE7H,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;CAsB3B,CAAC;AAEX,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4EtB,CAAC;AAEX,wBAAgB,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS3C;AAED,wBAAgB,uCAAuC,QAGtD;AAED,QAAA,MAAM,eAAe;kBAGL,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2LhC,CAAC;AAEF,eAAe,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -15,6 +15,7 @@ import { mkdirSync, readFileSync, writeFileSync } from "node:fs";
15
15
  import { dirname, join } from "node:path";
16
16
  import { fileURLToPath } from "node:url";
17
17
  import { resolveSlotDbDir } from "./shared/slotdb-path.js";
18
+ import { getAsmSharedConfig, resolveAsmCoreProjectWorkspaceRoot, resolveAsmCoreSlotDbDir } from "./shared/asm-config.js";
18
19
  // Tool modules
19
20
  import { registerSlotTools } from "./tools/slot-tools.js";
20
21
  import { registerGraphTools } from "./tools/graph-tools.js";
@@ -27,24 +28,7 @@ import { registerAutoCapture } from "./hooks/auto-capture.js";
27
28
  import { registerMemoryToolContextInjector } from "./hooks/tool-context-injector.js";
28
29
  import { registerTelegramAddProjectCommand } from "./commands/telegram-addproject-command.js";
29
30
  const CONFIG_KEY_CANDIDATES = [
30
- "slotCategories",
31
- "qdrantHost",
32
- "qdrantPort",
33
- "qdrantCollection",
34
- "llmBaseUrl",
35
- "llmApiKey",
36
- "llmModel",
37
- "embedBaseUrl",
38
- "embedBackend",
39
- "embedModel",
40
- "embedDimensions",
41
- "slotDbDir",
42
- "projectWorkspaceRoot",
43
- "repoCloneRoot",
44
- "autoCaptureEnabled",
45
- "autoCaptureMinConfidence",
46
- "contextWindowMaxTokens",
47
- "summarizeEveryActions",
31
+ "asmConfigPath",
48
32
  ];
49
33
  function asObject(value) {
50
34
  return value && typeof value === "object" && !Array.isArray(value)
@@ -110,17 +94,17 @@ function resolveLegacyConfig(rawConfig) {
110
94
  }
111
95
  function resolvePluginConfig(api, pluginId) {
112
96
  const pluginConfig = asObject(api.pluginConfig);
113
- if (hasAnyConfigKey(pluginConfig)) {
114
- return { config: pluginConfig, source: "pluginConfig" };
97
+ if (typeof pluginConfig?.asmConfigPath === "string" && pluginConfig.asmConfigPath.trim()) {
98
+ return { config: { asmConfigPath: pluginConfig.asmConfigPath.trim() }, source: "pluginConfig" };
115
99
  }
116
100
  const legacyEntryConfig = asObject(api?.config?.plugins?.entries?.[pluginId]?.config);
117
- if (hasAnyConfigKey(legacyEntryConfig)) {
101
+ if (typeof legacyEntryConfig?.asmConfigPath === "string" && legacyEntryConfig.asmConfigPath.trim()) {
118
102
  return {
119
- config: legacyEntryConfig,
103
+ config: { asmConfigPath: legacyEntryConfig.asmConfigPath.trim() },
120
104
  source: "api.config.plugins.entries[pluginId].config",
121
105
  };
122
106
  }
123
- return resolveLegacyConfig(api.config);
107
+ return { config: {}, source: "default" };
124
108
  }
125
109
  // ============================================================================
126
110
  // Plugin Definition
@@ -146,78 +130,9 @@ export const AGENT_MEMO_CONFIG_SCHEMA = {
146
130
  type: "number",
147
131
  description: "Max tokens for Current State injection",
148
132
  },
149
- qdrantHost: {
150
- type: "string",
151
- description: "Qdrant server host",
152
- },
153
- qdrantPort: {
154
- type: "number",
155
- description: "Qdrant server port",
156
- },
157
- qdrantCollection: {
158
- type: "string",
159
- description: "Qdrant collection name (default: mrc_bot)",
160
- },
161
- qdrantVectorSize: {
162
- type: "number",
163
- description: "Qdrant vector size (default: 1024)",
164
- },
165
- llmBaseUrl: {
166
- type: "string",
167
- description: "LLM API base URL (OpenAI compatible)",
168
- },
169
- llmApiKey: {
170
- type: "string",
171
- description: "LLM API key",
172
- },
173
- llmModel: {
174
- type: "string",
175
- description: "LLM model for auto-capture",
176
- },
177
- embedBaseUrl: {
178
- type: "string",
179
- description: "Embedding service base URL (default: http://localhost:11434)",
180
- },
181
- embedBackend: {
182
- type: "string",
183
- enum: ["ollama", "openai", "docker"],
184
- description: "Embedding backend selector (optional). If omitted, keeps legacy auto behavior.",
185
- },
186
- embedModel: {
187
- type: "string",
188
- description: "Embedding model for vectorization (default: qwen3-embedding:0.6b)",
189
- },
190
- embedDimensions: {
191
- type: "number",
192
- description: "Embedding dimensions (default: 1024)",
193
- },
194
- slotDbDir: {
195
- type: "string",
196
- description: "Absolute path for SlotDB directory. Priority: OPENCLAW_SLOTDB_DIR > config.slotDbDir > ${OPENCLAW_STATE_DIR}/agent-memo",
197
- },
198
- projectWorkspaceRoot: {
199
- type: "string",
200
- description: "Default workspace root for repo clone/import onboarding resolution (fallback for project.register/project onboarding).",
201
- },
202
- repoCloneRoot: {
133
+ asmConfigPath: {
203
134
  type: "string",
204
- description: "Alias of projectWorkspaceRoot for operator familiarity; used as fallback clone root.",
205
- },
206
- autoCaptureEnabled: {
207
- type: "boolean",
208
- description: "Enable auto-capture feature",
209
- },
210
- autoCaptureMinConfidence: {
211
- type: "number",
212
- description: "Minimum confidence for auto-capture",
213
- },
214
- contextWindowMaxTokens: {
215
- type: "number",
216
- description: "Maximum tokens for context window in auto-capture (default: 12000)",
217
- },
218
- summarizeEveryActions: {
219
- type: "number",
220
- description: "Auto-summarize project_living_state every N actions (default: 6)",
135
+ description: "Path to shared ASM config source-of-truth used by the OpenClaw plugin runtime.",
221
136
  },
222
137
  },
223
138
  };
@@ -282,10 +197,6 @@ export const AGENT_MEMO_UI_HINTS = {
282
197
  label: "Project Workspace Root",
283
198
  placeholder: "/Users/you/Work/projects",
284
199
  },
285
- repoCloneRoot: {
286
- label: "Repo Clone Root",
287
- placeholder: "/Users/you/Work/projects",
288
- },
289
200
  autoCaptureEnabled: {
290
201
  label: "Auto Capture Enabled",
291
202
  },
@@ -327,34 +238,36 @@ const agentMemoPlugin = {
327
238
  // ----------------------------------------------------------------
328
239
  const rawConfig = api.config;
329
240
  const { config, source } = resolvePluginConfig(api, "agent-smart-memo");
330
- const slotCategories = config.slotCategories || DEFAULT_CATEGORIES;
331
- const qdrantHost = config.qdrantHost || "localhost";
332
- const qdrantPort = config.qdrantPort || 6333;
333
- const qdrantCollection = config.qdrantCollection || "mrc_bot";
334
- const qdrantVectorSize = config.qdrantVectorSize || 1024;
335
- const llmBaseUrl = config.llmBaseUrl || "http://localhost:8317/v1";
336
- const llmApiKey = config.llmApiKey || "proxypal-local";
337
- const resolvedLlmModel = firstNonEmptyString(config.llmModel, findNestedStringKey(rawConfig, "llmModel"));
241
+ const slotCategories = DEFAULT_CATEGORIES;
242
+ const asmConfigPath = firstNonEmptyString(config.asmConfigPath);
243
+ const shared = getAsmSharedConfig({ configPath: asmConfigPath, env: process.env, homeDir: process.env.HOME }).config || {};
244
+ const sharedCore = (shared.core || {});
245
+ const qdrantHost = firstNonEmptyString(sharedCore.qdrantHost) || "localhost";
246
+ const qdrantPort = Number(sharedCore.qdrantPort) || 6333;
247
+ const qdrantCollection = firstNonEmptyString(sharedCore.qdrantCollection) || "mrc_bot";
248
+ const qdrantVectorSize = Number(sharedCore.qdrantVectorSize) || 1024;
249
+ const llmBaseUrl = firstNonEmptyString(sharedCore.llmBaseUrl) || "http://localhost:8317/v1";
250
+ const llmApiKey = firstNonEmptyString(sharedCore.llmApiKey) || "proxypal-local";
251
+ const resolvedLlmModel = firstNonEmptyString(sharedCore.llmModel, findNestedStringKey(rawConfig, "llmModel"));
338
252
  const llmModel = resolvedLlmModel || "gemini-2.5-flash";
339
253
  const llmModelFallbackUsed = !resolvedLlmModel;
340
- const embedBaseUrl = config.embedBaseUrl || "http://localhost:11434";
341
- const embedBackend = config.embedBackend === "ollama" ||
342
- config.embedBackend === "openai" ||
343
- config.embedBackend === "docker"
344
- ? config.embedBackend
254
+ const embedBaseUrl = firstNonEmptyString(sharedCore.embedBaseUrl) || "http://localhost:11434";
255
+ const sharedEmbedBackend = firstNonEmptyString(sharedCore.embedBackend);
256
+ const embedBackend = sharedEmbedBackend === "ollama" || sharedEmbedBackend === "openai" || sharedEmbedBackend === "docker"
257
+ ? sharedEmbedBackend
345
258
  : undefined;
346
- const embedModel = config.embedModel || "qwen3-embedding:0.6b";
347
- const embedDimensions = config.embedDimensions || 1024;
348
- const autoCaptureEnabled = config.autoCaptureEnabled !== false; // default true
349
- const autoCaptureMinConfidence = config.autoCaptureMinConfidence || 0.7;
350
- const contextWindowMaxTokens = config.contextWindowMaxTokens || 12000;
351
- const summarizeEveryActions = config.summarizeEveryActions || 6;
352
- const projectWorkspaceRoot = firstNonEmptyString(config.projectWorkspaceRoot, config.repoCloneRoot);
259
+ const embedModel = firstNonEmptyString(sharedCore.embedModel) || "qwen3-embedding:0.6b";
260
+ const embedDimensions = Number(sharedCore.embedDimensions) || 1024;
261
+ const autoCaptureEnabled = sharedCore.autoCaptureEnabled ?? true;
262
+ const autoCaptureMinConfidence = Number(sharedCore.autoCaptureMinConfidence) || 0.7;
263
+ const contextWindowMaxTokens = Number(sharedCore.contextWindowMaxTokens) || 12000;
264
+ const summarizeEveryActions = Number(sharedCore.summarizeEveryActions) || 6;
265
+ const projectWorkspaceRoot = resolveAsmCoreProjectWorkspaceRoot({ configPath: asmConfigPath, env: process.env, homeDir: process.env.HOME });
353
266
  // State directory from env or default
354
267
  const stateDir = process.env.OPENCLAW_STATE_DIR || `${process.env.HOME}/.openclaw`;
355
268
  const slotDbDir = resolveSlotDbDir({
356
269
  stateDir,
357
- slotDbDir: config.slotDbDir,
270
+ slotDbDir: resolveAsmCoreSlotDbDir({ configPath: asmConfigPath, env: process.env, homeDir: process.env.HOME }),
358
271
  env: process.env,
359
272
  homeDir: process.env.HOME,
360
273
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ export interface AsmSharedConfigCore {
2
+ projectWorkspaceRoot?: string;
3
+ qdrantHost?: string;
4
+ qdrantPort?: number;
5
+ qdrantCollection?: string;
6
+ qdrantVectorSize?: number;
7
+ llmBaseUrl?: string;
8
+ llmApiKey?: string;
9
+ llmModel?: string;
10
+ embedBaseUrl?: string;
11
+ embedBackend?: string;
12
+ embedModel?: string;
13
+ embedDimensions?: number;
14
+ autoCaptureEnabled?: boolean;
15
+ autoCaptureMinConfidence?: number;
16
+ contextWindowMaxTokens?: number;
17
+ summarizeEveryActions?: number;
18
+ storage?: {
19
+ slotDbDir?: string;
20
+ [key: string]: unknown;
21
+ };
22
+ [key: string]: unknown;
23
+ }
24
+ export type AsmSharedConfigAdapters = Record<string, Record<string, unknown>>;
25
+ export interface AsmSharedConfig {
26
+ schemaVersion?: number;
27
+ core?: AsmSharedConfigCore;
28
+ adapters?: AsmSharedConfigAdapters;
29
+ [key: string]: unknown;
30
+ }
31
+ export interface ResolveAsmConfigPathInput {
32
+ env?: NodeJS.ProcessEnv;
33
+ homeDir?: string;
34
+ configPath?: string;
35
+ }
36
+ export interface ResolveAsmConfigPathInfo {
37
+ path: string;
38
+ source: "explicit" | "env" | "default";
39
+ exists: boolean;
40
+ }
41
+ export interface LoadAsmSharedConfigInput extends ResolveAsmConfigPathInput {
42
+ reload?: boolean;
43
+ }
44
+ export interface LoadAsmSharedConfigResult {
45
+ path: string;
46
+ config: AsmSharedConfig | null;
47
+ lifecycle: {
48
+ cache: "hit" | "miss" | "bypass";
49
+ loadedAt: string;
50
+ mtimeMs?: number;
51
+ status: "ok" | "missing" | "invalid_json" | "invalid_shape" | "read_error";
52
+ source: "explicit" | "env" | "default";
53
+ warnings: string[];
54
+ error?: string;
55
+ };
56
+ }
57
+ export interface AsmSharedConfigDoctorResult {
58
+ path: string;
59
+ source: "explicit" | "env" | "default";
60
+ exists: boolean;
61
+ status: "ok" | "missing" | "invalid_json" | "invalid_shape" | "read_error";
62
+ cache: "hit" | "miss" | "bypass";
63
+ hasCore: boolean;
64
+ adapterNames: string[];
65
+ legacyKeys: {
66
+ slotDbDir: boolean;
67
+ projectWorkspaceRoot: boolean;
68
+ storageSlotDbDir: boolean;
69
+ };
70
+ warnings: string[];
71
+ }
72
+ export declare function resolveAsmConfigPath(input?: ResolveAsmConfigPathInput): string;
73
+ export declare function resolveAsmConfigPathInfo(input?: ResolveAsmConfigPathInput): ResolveAsmConfigPathInfo;
74
+ export declare function invalidateAsmSharedConfigCache(path?: string): void;
75
+ export declare function loadAsmSharedConfig(input?: LoadAsmSharedConfigInput): LoadAsmSharedConfigResult;
76
+ export declare function resolveAsmCoreSlotDbDir(input?: LoadAsmSharedConfigInput): string | undefined;
77
+ export declare function resolveAsmCoreProjectWorkspaceRoot(input?: LoadAsmSharedConfigInput): string | undefined;
78
+ export declare function resolveAsmCoreConfigValue<T = unknown>(key: keyof AsmSharedConfigCore, input?: LoadAsmSharedConfigInput): T | undefined;
79
+ export declare function resolveAsmAdapterLocalConfig(adapterName: string, input?: LoadAsmSharedConfigInput): Record<string, unknown> | undefined;
80
+ export declare function getAsmSharedConfig(input?: LoadAsmSharedConfigInput): LoadAsmSharedConfigResult;
81
+ export declare function doctorAsmSharedConfig(input?: LoadAsmSharedConfigInput): AsmSharedConfigDoctorResult;
82
+ //# sourceMappingURL=asm-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asm-config.d.ts","sourceRoot":"","sources":["../../src/shared/asm-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ import { existsSync, readFileSync, statSync } from "node:fs";
2
+ import { join, resolve } from "node:path";
3
+ const DEFAULT_ASM_CONFIG_RELATIVE_PATH = ".config/asm/config.json";
4
+ function firstNonEmptyString(...values) {
5
+ for (const value of values) {
6
+ if (typeof value === "string" && value.trim().length > 0) {
7
+ return value.trim();
8
+ }
9
+ }
10
+ return undefined;
11
+ }
12
+ function isPlainObject(value) {
13
+ return !!value && typeof value === "object" && !Array.isArray(value);
14
+ }
15
+ function expandHome(input, homeDir) {
16
+ if (!input.startsWith("~"))
17
+ return input;
18
+ const home = firstNonEmptyString(homeDir, process.env.HOME);
19
+ if (!home)
20
+ return input;
21
+ if (input === "~")
22
+ return home;
23
+ if (input.startsWith("~/"))
24
+ return join(home, input.slice(2));
25
+ return input;
26
+ }
27
+ function normalizePath(input) {
28
+ const expanded = expandHome(input);
29
+ return resolve(expanded);
30
+ }
31
+ function normalizeAsmSharedConfig(raw) {
32
+ if (!isPlainObject(raw)) {
33
+ return {
34
+ config: null,
35
+ warnings: ["config root must be a JSON object"],
36
+ invalidShape: true,
37
+ };
38
+ }
39
+ const config = {};
40
+ const warnings = [];
41
+ if (raw.schemaVersion != null) {
42
+ if (typeof raw.schemaVersion === "number" && Number.isFinite(raw.schemaVersion)) {
43
+ config.schemaVersion = raw.schemaVersion;
44
+ }
45
+ else {
46
+ warnings.push("schemaVersion must be a finite number when provided");
47
+ }
48
+ }
49
+ if (raw.core != null) {
50
+ if (isPlainObject(raw.core)) {
51
+ config.core = raw.core;
52
+ }
53
+ else {
54
+ warnings.push("core must be an object when provided");
55
+ }
56
+ }
57
+ if (raw.adapters != null) {
58
+ if (isPlainObject(raw.adapters)) {
59
+ const normalizedAdapters = {};
60
+ for (const [adapterName, adapterValue] of Object.entries(raw.adapters)) {
61
+ if (!isPlainObject(adapterValue)) {
62
+ warnings.push(`adapters.${adapterName} ignored because value is not an object`);
63
+ continue;
64
+ }
65
+ normalizedAdapters[adapterName] = adapterValue;
66
+ }
67
+ config.adapters = normalizedAdapters;
68
+ }
69
+ else {
70
+ warnings.push("adapters must be an object when provided");
71
+ }
72
+ }
73
+ // Keep additional keys for forward compatibility.
74
+ for (const [key, value] of Object.entries(raw)) {
75
+ if (key === "schemaVersion" || key === "core" || key === "adapters")
76
+ continue;
77
+ config[key] = value;
78
+ }
79
+ const invalidShape = warnings.some((item) => item.includes("must be") && (item.startsWith("config root") || item.startsWith("core") || item.startsWith("adapters")));
80
+ return { config, warnings, invalidShape };
81
+ }
82
+ function resolveAsmConfigPathInfoInternal(input = {}) {
83
+ const env = input.env || process.env;
84
+ const explicitPath = firstNonEmptyString(input.configPath);
85
+ if (explicitPath) {
86
+ const path = normalizePath(explicitPath);
87
+ return {
88
+ path,
89
+ source: "explicit",
90
+ exists: existsSync(path),
91
+ };
92
+ }
93
+ const envPath = firstNonEmptyString(env.ASM_CONFIG);
94
+ if (envPath) {
95
+ const path = normalizePath(envPath);
96
+ return {
97
+ path,
98
+ source: "env",
99
+ exists: existsSync(path),
100
+ };
101
+ }
102
+ const home = firstNonEmptyString(input.homeDir, env.HOME, process.env.HOME, process.cwd()) || process.cwd();
103
+ const path = resolve(home, DEFAULT_ASM_CONFIG_RELATIVE_PATH);
104
+ return {
105
+ path,
106
+ source: "default",
107
+ exists: existsSync(path),
108
+ };
109
+ }
110
+ export function resolveAsmConfigPath(input = {}) {
111
+ return resolveAsmConfigPathInfoInternal(input).path;
112
+ }
113
+ export function resolveAsmConfigPathInfo(input = {}) {
114
+ return resolveAsmConfigPathInfoInternal(input);
115
+ }
116
+ let cache = null;
117
+ function readAsmSharedConfigFromDisk(path) {
118
+ const mtimeMs = statSync(path).mtimeMs;
119
+ const parsed = JSON.parse(readFileSync(path, "utf8"));
120
+ const normalized = normalizeAsmSharedConfig(parsed);
121
+ return {
122
+ mtimeMs,
123
+ config: normalized.config,
124
+ warnings: normalized.warnings,
125
+ status: normalized.invalidShape ? "invalid_shape" : "ok",
126
+ };
127
+ }
128
+ export function invalidateAsmSharedConfigCache(path) {
129
+ if (!cache)
130
+ return;
131
+ if (!path || cache.path === resolve(path)) {
132
+ cache = null;
133
+ }
134
+ }
135
+ export function loadAsmSharedConfig(input = {}) {
136
+ const pathInfo = resolveAsmConfigPathInfoInternal(input);
137
+ const path = pathInfo.path;
138
+ if (!pathInfo.exists) {
139
+ invalidateAsmSharedConfigCache(path);
140
+ return {
141
+ path,
142
+ config: null,
143
+ lifecycle: {
144
+ cache: input.reload ? "bypass" : "miss",
145
+ loadedAt: new Date().toISOString(),
146
+ status: "missing",
147
+ source: pathInfo.source,
148
+ warnings: ["shared config file not found"],
149
+ },
150
+ };
151
+ }
152
+ try {
153
+ const mtimeMs = statSync(path).mtimeMs;
154
+ if (!input.reload && cache && cache.path === path && cache.mtimeMs === mtimeMs) {
155
+ return {
156
+ path,
157
+ config: cache.config,
158
+ lifecycle: {
159
+ cache: "hit",
160
+ loadedAt: new Date().toISOString(),
161
+ mtimeMs,
162
+ status: cache.status,
163
+ source: pathInfo.source,
164
+ warnings: [...cache.warnings],
165
+ },
166
+ };
167
+ }
168
+ const loaded = readAsmSharedConfigFromDisk(path);
169
+ cache = {
170
+ path,
171
+ mtimeMs: loaded.mtimeMs,
172
+ config: loaded.config,
173
+ warnings: [...loaded.warnings],
174
+ status: loaded.status,
175
+ };
176
+ return {
177
+ path,
178
+ config: loaded.config,
179
+ lifecycle: {
180
+ cache: input.reload ? "bypass" : "miss",
181
+ loadedAt: new Date().toISOString(),
182
+ mtimeMs: loaded.mtimeMs,
183
+ status: loaded.status,
184
+ source: pathInfo.source,
185
+ warnings: [...loaded.warnings],
186
+ },
187
+ };
188
+ }
189
+ catch (error) {
190
+ const message = error instanceof Error ? error.message : String(error);
191
+ const status = message.toLowerCase().includes("json") ? "invalid_json" : "read_error";
192
+ return {
193
+ path,
194
+ config: null,
195
+ lifecycle: {
196
+ cache: input.reload ? "bypass" : "miss",
197
+ loadedAt: new Date().toISOString(),
198
+ status,
199
+ source: pathInfo.source,
200
+ warnings: ["failed to parse/read shared config file"],
201
+ error: message,
202
+ },
203
+ };
204
+ }
205
+ }
206
+ function resolveLegacySlotDbDir(config) {
207
+ return firstNonEmptyString(config?.core?.storage?.slotDbDir, config?.storage?.slotDbDir, config?.slotDbDir);
208
+ }
209
+ export function resolveAsmCoreSlotDbDir(input = {}) {
210
+ const { config } = loadAsmSharedConfig(input);
211
+ const value = resolveLegacySlotDbDir(config);
212
+ return value ? expandHome(value, input.homeDir || input.env?.HOME) : undefined;
213
+ }
214
+ export function resolveAsmCoreProjectWorkspaceRoot(input = {}) {
215
+ const { config } = loadAsmSharedConfig(input);
216
+ const value = firstNonEmptyString(config?.core?.projectWorkspaceRoot, config?.projectWorkspaceRoot);
217
+ return value ? expandHome(value, input.homeDir || input.env?.HOME) : undefined;
218
+ }
219
+ export function resolveAsmCoreConfigValue(key, input = {}) {
220
+ const { config } = loadAsmSharedConfig(input);
221
+ const core = config?.core;
222
+ return core?.[String(key)];
223
+ }
224
+ export function resolveAsmAdapterLocalConfig(adapterName, input = {}) {
225
+ const normalizedName = firstNonEmptyString(adapterName);
226
+ if (!normalizedName)
227
+ return undefined;
228
+ const { config } = loadAsmSharedConfig(input);
229
+ const adapterConfig = config?.adapters?.[normalizedName];
230
+ return isPlainObject(adapterConfig) ? adapterConfig : undefined;
231
+ }
232
+ export function getAsmSharedConfig(input = {}) {
233
+ return loadAsmSharedConfig(input);
234
+ }
235
+ export function doctorAsmSharedConfig(input = {}) {
236
+ const pathInfo = resolveAsmConfigPathInfo(input);
237
+ const loaded = loadAsmSharedConfig(input);
238
+ return {
239
+ path: loaded.path,
240
+ source: pathInfo.source,
241
+ exists: pathInfo.exists,
242
+ status: loaded.lifecycle.status,
243
+ cache: loaded.lifecycle.cache,
244
+ hasCore: isPlainObject(loaded.config?.core),
245
+ adapterNames: Object.keys(loaded.config?.adapters || {}).sort((a, b) => a.localeCompare(b)),
246
+ legacyKeys: {
247
+ slotDbDir: typeof loaded.config?.slotDbDir === "string",
248
+ projectWorkspaceRoot: typeof loaded.config?.projectWorkspaceRoot === "string",
249
+ storageSlotDbDir: typeof loaded.config?.storage?.slotDbDir === "string",
250
+ },
251
+ warnings: [...loaded.lifecycle.warnings],
252
+ };
253
+ }
254
+ //# sourceMappingURL=asm-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asm-config.js","sourceRoot":"","sources":["../../src/shared/asm-config.ts"],"names":[],"mappings":"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"}