poe-code 3.0.311 → 3.0.312

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.
@@ -1,4 +1,5 @@
1
1
  import { openMemory, printMcpConfig, resolveConfiguredMemoryRoot, startMemoryMcpServer } from "@poe-code/memory";
2
+ import { mcpWritesAllowed } from "@poe-code/poe-code-config";
2
3
  export function registerMemoryMcpCommand(program, container) {
3
4
  program
4
5
  .command("memory-mcp")
@@ -18,7 +19,13 @@ export function registerMemoryMcpCommand(program, container) {
18
19
  projectConfigPath: container.env.projectConfigPath
19
20
  });
20
21
  const handle = openMemory({ root });
21
- const { server } = await startMemoryMcpServer(handle, { allowWrites: options.allowWrites === true });
22
+ const allowWrites = options.allowWrites === true ||
23
+ (await mcpWritesAllowed({
24
+ fs: container.fs,
25
+ filePath: container.env.configPath,
26
+ projectFilePath: container.env.projectConfigPath
27
+ }));
28
+ const { server } = await startMemoryMcpServer(handle, { allowWrites });
22
29
  await server.listen();
23
30
  });
24
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"memory-mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/memory-mcp.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,cAAc,EACd,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAG1B,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,SAAuB;IAChF,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SACzD,MAAM,CAAC,oBAAoB,EAAE,yCAAyC,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAA4D,EAAE,EAAE;QAC7E,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,2BAA2B,CAAC;YAC7C,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG;YACtB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS;YAC5B,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU;YACpC,iBAAiB,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB;SACnD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC,CAAC;QACrG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"memory-mcp.js","sourceRoot":"","sources":["../../../src/cli/commands/memory-mcp.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,cAAc,EACd,2BAA2B,EAC3B,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,SAAuB;IAChF,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;SACzD,MAAM,CAAC,oBAAoB,EAAE,yCAAyC,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAA4D,EAAE,EAAE;QAC7E,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,cAAc,EAAE,IAAI,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,2BAA2B,CAAC;YAC7C,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG;YACtB,GAAG,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS;YAC5B,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,UAAU,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU;YACpC,iBAAiB,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB;SACnD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,WAAW,GACf,OAAO,CAAC,WAAW,KAAK,IAAI;YAC5B,CAAC,MAAM,gBAAgB,CAAC;gBACtB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU;gBAClC,eAAe,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB;aACjD,CAAC,CAAC,CAAC;QACN,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -71,6 +71,28 @@ async function queryBudget(container, value) {
71
71
  projectFilePath: container.env.projectConfigPath
72
72
  });
73
73
  }
74
+ function parseDecimalNonNegativeInteger(value, label) {
75
+ if (value === undefined) {
76
+ return undefined;
77
+ }
78
+ if (!isDecimalNonNegativeIntegerText(value)) {
79
+ throw new ValidationError(`${label} must be a decimal non-negative integer.`);
80
+ }
81
+ const parsed = Number(value);
82
+ if (!Number.isSafeInteger(parsed)) {
83
+ throw new ValidationError(`${label} must be a decimal non-negative integer.`);
84
+ }
85
+ return parsed;
86
+ }
87
+ function isDecimalNonNegativeIntegerText(value) {
88
+ if (value.length === 0) {
89
+ return false;
90
+ }
91
+ if (value.length > 1 && value[0] === "0") {
92
+ return false;
93
+ }
94
+ return [...value].every((char) => char >= "0" && char <= "9");
95
+ }
74
96
  async function readCommandContent(content) {
75
97
  if (content !== undefined) {
76
98
  return content;
@@ -241,6 +263,8 @@ export function registerMemoryCommand(program, container) {
241
263
  .action(async (pagePath, options) => {
242
264
  const flags = resolveCommandFlags(program);
243
265
  const root = await resolveRoot(container);
266
+ const mem = openMemory({ root });
267
+ await assertInitialized(mem);
244
268
  const relPath = resolvePageRelPath(pagePath);
245
269
  const editor = resolveEditor(container);
246
270
  if (flags.dryRun) {
@@ -268,10 +292,7 @@ export function registerMemoryCommand(program, container) {
268
292
  const root = await resolveRoot(container);
269
293
  const mem = openMemory({ root });
270
294
  await assertInitialized(mem);
271
- const timeoutMs = options.timeoutMs === undefined ? undefined : Number(options.timeoutMs);
272
- if (timeoutMs !== undefined && (!Number.isFinite(timeoutMs) || timeoutMs < 0)) {
273
- throw new ValidationError("Timeout must be a finite non-negative number.");
274
- }
295
+ const timeoutMs = parseDecimalNonNegativeInteger(options.timeoutMs, "Timeout");
275
296
  const result = await mem.ingest({
276
297
  source: resolveIngestSource(container.env.cwd, source),
277
298
  agent: options.agent,
@@ -286,11 +307,7 @@ export function registerMemoryCommand(program, container) {
286
307
  memory
287
308
  .command("lint")
288
309
  .description("Audit memory confidence and provenance claims.")
289
- .option("--fix", "Reserved for automated repair")
290
- .action(async (options) => {
291
- if (options.fix) {
292
- throw new ValidationError("Automated memory lint repair is not available yet.");
293
- }
310
+ .action(async () => {
294
311
  const root = await resolveRoot(container);
295
312
  const mem = openMemory({ root });
296
313
  await assertInitialized(mem);
@@ -312,12 +329,18 @@ export function registerMemoryCommand(program, container) {
312
329
  .option("--budget <tokens>", "Token budget")
313
330
  .option("--agent <agent>", "Agent override")
314
331
  .action(async (question, options) => {
332
+ const flags = resolveCommandFlags(program);
315
333
  const root = await resolveRoot(container);
316
334
  const mem = openMemory({ root });
317
335
  await assertInitialized(mem);
336
+ const budget = await queryBudget(container, options.budget);
337
+ if (flags.dryRun) {
338
+ createExecutionResources(container, flags, "memory:query").logger.dryRun(`Would query memory with budget ${budget}.`);
339
+ return;
340
+ }
318
341
  const result = await mem.query({
319
342
  question,
320
- budget: await queryBudget(container, options.budget),
343
+ budget,
321
344
  agent: options.agent
322
345
  });
323
346
  process.stdout.write(`${result.answer}\n`);
@@ -329,12 +352,19 @@ export function registerMemoryCommand(program, container) {
329
352
  .option("--budget <tokens>", "Token budget")
330
353
  .option("--agent <agent>", "Agent override")
331
354
  .action(async (pagePath, options) => {
355
+ const flags = resolveCommandFlags(program);
332
356
  const root = await resolveRoot(container);
333
357
  const mem = openMemory({ root });
334
358
  await assertInitialized(mem);
359
+ const relPath = resolvePageRelPath(pagePath);
360
+ const budget = await queryBudget(container, options.budget);
361
+ if (flags.dryRun) {
362
+ createExecutionResources(container, flags, "memory:explain").logger.dryRun(`Would explain ${relPath} with budget ${budget}.`);
363
+ return;
364
+ }
335
365
  const result = await mem.explainPage({
336
- relPath: resolvePageRelPath(pagePath),
337
- budget: await queryBudget(container, options.budget),
366
+ relPath,
367
+ budget,
338
368
  agent: options.agent
339
369
  });
340
370
  process.stdout.write(`${result.answer}\n`);
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cli/commands/memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cli/commands/memory.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16932,6 +16932,9 @@ async function configuredTimeout(options) {
16932
16932
  async function cacheEnabled(options) {
16933
16933
  return (await resolveMemoryConfig(options)).cacheEnabled;
16934
16934
  }
16935
+ async function mcpWritesAllowed(options) {
16936
+ return (await resolveMemoryConfig(options)).mcpWritesAllowed;
16937
+ }
16935
16938
  async function defaultQueryBudget(options) {
16936
16939
  return (await resolveMemoryConfig(options)).defaultQueryBudget;
16937
16940
  }
@@ -100415,6 +100418,9 @@ async function assertMemoryRootIsNotSymlink(root) {
100415
100418
  try {
100416
100419
  const stat33 = await fs12.lstat(currentPath);
100417
100420
  if (stat33.isSymbolicLink()) {
100421
+ if (await isAllowedMacSystemAlias(currentPath)) {
100422
+ continue;
100423
+ }
100418
100424
  throw new MemoryPathError(`Memory root "${root}" cannot be a symbolic link.`);
100419
100425
  }
100420
100426
  } catch (error3) {
@@ -100425,6 +100431,17 @@ async function assertMemoryRootIsNotSymlink(root) {
100425
100431
  }
100426
100432
  }
100427
100433
  }
100434
+ async function isAllowedMacSystemAlias(currentPath) {
100435
+ if (currentPath !== "/var") {
100436
+ return false;
100437
+ }
100438
+ try {
100439
+ const target = await fs12.readlink(currentPath);
100440
+ return target === "/private/var" || target === "private/var";
100441
+ } catch {
100442
+ return false;
100443
+ }
100444
+ }
100428
100445
  function isMissing(error3) {
100429
100446
  return hasOwnErrorCode27(error3, "ENOENT");
100430
100447
  }
@@ -100574,7 +100591,11 @@ function serializeFrontmatter(frontmatter, body) {
100574
100591
  return stringifyFrontmatter(serialized, body);
100575
100592
  }
100576
100593
  function parseSourceRef(serialized) {
100577
- const [rawPath, rawAnchor] = serialized.split("#", 2);
100594
+ const parts = serialized.split("#");
100595
+ if (parts.length > 2) {
100596
+ throw new Error(`Invalid source ref "${serialized}".`);
100597
+ }
100598
+ const [rawPath, rawAnchor] = parts;
100578
100599
  const normalizedPath = rawPath?.trim();
100579
100600
  if (normalizedPath === void 0 || normalizedPath.length === 0) {
100580
100601
  throw new Error(`Invalid source ref "${serialized}".`);
@@ -100828,7 +100849,7 @@ async function searchMemory(root, query) {
100828
100849
  if (normalizedQuery.length === 0) {
100829
100850
  throw new Error("Search query cannot be empty.");
100830
100851
  }
100831
- const relPaths = await collectMarkdownRelPaths(root);
100852
+ const relPaths = await collectMarkdownRelPaths(root, MEMORY_PAGES_DIR_RELPATH);
100832
100853
  const hits = [];
100833
100854
  for (const relPath of relPaths) {
100834
100855
  await assertNoSymlinkSegments(root, relPath);
@@ -101351,7 +101372,7 @@ async function appendToPage(root, relPath, content, opts) {
101351
101372
  const before = await snapshot(root);
101352
101373
  await fs19.mkdir(path158.dirname(pagePath), { recursive: true });
101353
101374
  await assertNoSymlinkSegments(root, pageRelPath);
101354
- const parsed = originalPage === void 0 ? { frontmatter: {}, body: "" } : parseFrontmatter4(originalPage);
101375
+ const parsed = parseAppendTarget(originalPage, pageRelPath);
101355
101376
  try {
101356
101377
  await writeFileAtomically7(
101357
101378
  pagePath,
@@ -101363,6 +101384,18 @@ async function appendToPage(root, relPath, content, opts) {
101363
101384
  throw error3;
101364
101385
  }
101365
101386
  }
101387
+ function parseAppendTarget(originalPage, relPath) {
101388
+ if (originalPage === void 0) {
101389
+ return { frontmatter: {}, body: "" };
101390
+ }
101391
+ try {
101392
+ return parseFrontmatter4(originalPage);
101393
+ } catch (error3) {
101394
+ const message2 = error3 instanceof Error ? error3.message : String(error3);
101395
+ console.warn(`Failed to parse frontmatter for "${relPath}": ${message2}`);
101396
+ return { frontmatter: {}, body: originalPage };
101397
+ }
101398
+ }
101366
101399
  async function clearMemory(root) {
101367
101400
  await assertMemoryRootIsNotSymlink(root);
101368
101401
  const stagedRoot = `${root}.clear-${randomUUID43()}`;
@@ -101728,17 +101761,21 @@ async function clearCache(root, opts = {}) {
101728
101761
  async function assertIngestCachePathIsNotSymlink(root) {
101729
101762
  await assertNoSymlinkSegments(root, MEMORY_INGEST_CACHE_DIR_RELPATH);
101730
101763
  }
101731
- function parseCacheEntry(value, _key) {
101764
+ function parseCacheEntry(value, requestedKey) {
101732
101765
  const object = expectRecord2(value);
101766
+ const key2 = expectString2(getOwnEntry36(object, "key"), "key");
101767
+ if (key2 !== requestedKey) {
101768
+ throw new Error(`Cache entry key "${key2}" does not match requested key "${requestedKey}".`);
101769
+ }
101733
101770
  return {
101734
- key: expectString2(getOwnEntry36(object, "key"), "key"),
101771
+ key: key2,
101735
101772
  ingestedAt: expectString2(getOwnEntry36(object, "ingestedAt"), "ingestedAt"),
101736
101773
  sourceLabel: expectString2(getOwnEntry36(object, "sourceLabel"), "sourceLabel"),
101737
101774
  diff: parseMemoryDiff(getOwnEntry36(object, "diff")),
101738
- exitCode: expectNumber(getOwnEntry36(object, "exitCode"), "exitCode"),
101739
- durationMs: expectNumber(getOwnEntry36(object, "durationMs"), "durationMs"),
101740
- memoryTokens: expectNumber(getOwnEntry36(object, "memoryTokens"), "memoryTokens"),
101741
- sourceTokens: expectNumber(getOwnEntry36(object, "sourceTokens"), "sourceTokens"),
101775
+ exitCode: expectNonNegativeInteger2(getOwnEntry36(object, "exitCode"), "exitCode"),
101776
+ durationMs: expectNonNegativeInteger2(getOwnEntry36(object, "durationMs"), "durationMs"),
101777
+ memoryTokens: expectNonNegativeInteger2(getOwnEntry36(object, "memoryTokens"), "memoryTokens"),
101778
+ sourceTokens: expectNonNegativeInteger2(getOwnEntry36(object, "sourceTokens"), "sourceTokens"),
101742
101779
  promptTemplateVersion: expectString2(
101743
101780
  getOwnEntry36(object, "promptTemplateVersion"),
101744
101781
  "promptTemplateVersion"
@@ -101766,9 +101803,9 @@ function expectString2(value, field) {
101766
101803
  }
101767
101804
  return value;
101768
101805
  }
101769
- function expectNumber(value, field) {
101770
- if (typeof value !== "number" || Number.isNaN(value)) {
101771
- throw new Error(`Expected number at "${field}".`);
101806
+ function expectNonNegativeInteger2(value, field) {
101807
+ if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) {
101808
+ throw new Error(`Expected non-negative integer at "${field}".`);
101772
101809
  }
101773
101810
  return value;
101774
101811
  }
@@ -102427,7 +102464,7 @@ async function installMemory(options) {
102427
102464
  }
102428
102465
  throw error3;
102429
102466
  }
102430
- mcpConfigPath = options.agent === "codex" ? `${options.homeDir}/.config/codex/mcp-config.json` : `${options.homeDir}/.mcp.json`;
102467
+ mcpConfigPath = resolveMcpConfigPath(options.agent, options.homeDir, options.platform);
102431
102468
  }
102432
102469
  return {
102433
102470
  skillInstalled: !options.mcpOnly,
@@ -102436,6 +102473,14 @@ async function installMemory(options) {
102436
102473
  mcpConfigPath
102437
102474
  };
102438
102475
  }
102476
+ function resolveMcpConfigPath(agent3, homeDir, platform) {
102477
+ const support = resolveAgentSupport3(agent3);
102478
+ if (support.status !== "supported" || support.config === void 0) {
102479
+ throw new Error(`Unsupported agent: ${agent3}`);
102480
+ }
102481
+ const configFile = typeof support.config.configFile === "function" ? support.config.configFile(platform) : support.config.configFile;
102482
+ return configFile.startsWith("~/") ? path164.join(homeDir, configFile.slice(2)) : configFile;
102483
+ }
102439
102484
  async function removeInstalledSkill(options, skillPath) {
102440
102485
  const baseDir = options.scope === "global" ? options.homeDir : options.cwd;
102441
102486
  const displayPath = skillPath.startsWith("~/") ? skillPath.slice(2) : skillPath;
@@ -102456,6 +102501,45 @@ var init_install3 = __esm({
102456
102501
  }
102457
102502
  });
102458
102503
 
102504
+ // packages/memory/src/agent-response.ts
102505
+ function parseMemoryAgentResponse(stdout) {
102506
+ let value;
102507
+ try {
102508
+ value = JSON.parse(stdout);
102509
+ } catch {
102510
+ throw new Error("Memory agent returned invalid JSON output.");
102511
+ }
102512
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
102513
+ throw new Error("Memory agent returned an invalid result payload.");
102514
+ }
102515
+ const result = value;
102516
+ if (typeof result.answer !== "string" || !Array.isArray(result.citations) || !isNonNegativeInteger(result.tokensUsed) || !result.citations.every(isQueryCitation)) {
102517
+ throw new Error("Memory agent returned an invalid result payload.");
102518
+ }
102519
+ return {
102520
+ answer: result.answer,
102521
+ citations: result.citations,
102522
+ tokensUsed: result.tokensUsed
102523
+ };
102524
+ }
102525
+ function isQueryCitation(value) {
102526
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
102527
+ return false;
102528
+ }
102529
+ const citation = value;
102530
+ return typeof citation.relPath === "string" && (citation.section === void 0 || typeof citation.section === "string") && typeof citation.confidence === "string" && validCitationConfidences.has(citation.confidence);
102531
+ }
102532
+ function isNonNegativeInteger(value) {
102533
+ return typeof value === "number" && Number.isSafeInteger(value) && value >= 0;
102534
+ }
102535
+ var validCitationConfidences;
102536
+ var init_agent_response = __esm({
102537
+ "packages/memory/src/agent-response.ts"() {
102538
+ "use strict";
102539
+ validCitationConfidences = /* @__PURE__ */ new Set(["extracted", "inferred", "ambiguous"]);
102540
+ }
102541
+ });
102542
+
102459
102543
  // packages/memory/src/query.ts
102460
102544
  import * as fs25 from "node:fs/promises";
102461
102545
  import path165 from "node:path";
@@ -102478,7 +102562,7 @@ async function queryMemory(root, options) {
102478
102562
  const agentId = await resolveAgent(configOptions, options.agent ?? null) ?? options.agent ?? "claude-code";
102479
102563
  const context = await selectQueryContext(root, options.question, options.budget);
102480
102564
  const spawned = await spawn5(agentId, { prompt: context.prompt });
102481
- const result = parseQueryResponse(spawned.stdout);
102565
+ const result = parseMemoryAgentResponse(spawned.stdout);
102482
102566
  return {
102483
102567
  answer: result.answer,
102484
102568
  citations: result.citations,
@@ -102487,26 +102571,6 @@ async function queryMemory(root, options) {
102487
102571
  exitCode: spawned.exitCode
102488
102572
  };
102489
102573
  }
102490
- function parseQueryResponse(stdout) {
102491
- let value;
102492
- try {
102493
- value = JSON.parse(stdout);
102494
- } catch {
102495
- throw new Error("Memory agent returned invalid JSON output.");
102496
- }
102497
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
102498
- throw new Error("Memory agent returned an invalid result payload.");
102499
- }
102500
- const result = value;
102501
- if (typeof result.answer !== "string" || !Array.isArray(result.citations) || typeof result.tokensUsed !== "number" || !Number.isFinite(result.tokensUsed)) {
102502
- throw new Error("Memory agent returned an invalid result payload.");
102503
- }
102504
- return {
102505
- answer: result.answer,
102506
- citations: result.citations,
102507
- tokensUsed: result.tokensUsed
102508
- };
102509
- }
102510
102574
  async function selectQueryContext(root, question, budget) {
102511
102575
  if (!Number.isFinite(budget) || budget < 0) {
102512
102576
  throw new Error("budget must be a finite non-negative number");
@@ -102599,6 +102663,7 @@ var init_query = __esm({
102599
102663
  init_src44();
102600
102664
  init_src17();
102601
102665
  init_src9();
102666
+ init_agent_response();
102602
102667
  init_pages();
102603
102668
  init_paths2();
102604
102669
  }
@@ -102634,7 +102699,7 @@ async function explainPage(root, options) {
102634
102699
  };
102635
102700
  const agentId = await resolveAgent(configOptions, options.agent ?? null) ?? options.agent ?? "claude-code";
102636
102701
  const spawned = await spawn5(agentId, { prompt });
102637
- const response = parseExplainResponse(spawned.stdout);
102702
+ const response = parseMemoryAgentResponse(spawned.stdout);
102638
102703
  return {
102639
102704
  answer: response.answer,
102640
102705
  citations: response.citations,
@@ -102645,26 +102710,6 @@ async function explainPage(root, options) {
102645
102710
  outboundSources: targetPage.frontmatter.sources ?? []
102646
102711
  };
102647
102712
  }
102648
- function parseExplainResponse(stdout) {
102649
- let value;
102650
- try {
102651
- value = JSON.parse(stdout);
102652
- } catch {
102653
- throw new Error("Memory agent returned invalid JSON output.");
102654
- }
102655
- if (typeof value !== "object" || value === null || Array.isArray(value)) {
102656
- throw new Error("Memory agent returned an invalid result payload.");
102657
- }
102658
- const response = value;
102659
- if (typeof response.answer !== "string" || !Array.isArray(response.citations) || typeof response.tokensUsed !== "number" || !Number.isFinite(response.tokensUsed)) {
102660
- throw new Error("Memory agent returned an invalid result payload.");
102661
- }
102662
- return {
102663
- answer: response.answer,
102664
- citations: response.citations,
102665
- tokensUsed: response.tokensUsed
102666
- };
102667
- }
102668
102713
  function collectRelatedPages(pages, targetRelPath, outboundSources) {
102669
102714
  const memorySourcePaths = new Set(outboundSources.map((source) => source.path));
102670
102715
  return pages.filter((page) => {
@@ -102708,6 +102753,7 @@ var init_explain = __esm({
102708
102753
  init_src44();
102709
102754
  init_src17();
102710
102755
  init_src9();
102756
+ init_agent_response();
102711
102757
  init_errors7();
102712
102758
  init_pages();
102713
102759
  init_query();
@@ -102802,7 +102848,7 @@ var init_src45 = __esm({
102802
102848
  var SKILL_memory_default;
102803
102849
  var init_SKILL_memory = __esm({
102804
102850
  "packages/memory/src/templates/SKILL_memory.md"() {
102805
- SKILL_memory_default = '## CLI \u2014 `poe-code memory <subcommand>`\n| Command | Purpose (when the agent should reach for it) |\n|---|---|\n| `init` | create `.poe-code/memory/` if missing; safe before first write |\n| `ls` | list pages + one-line descriptions; first step for recall questions |\n| `show <path>` | print one page verbatim after `ls` identifies a candidate |\n| `search <query>` | ripgrep over memory when the page is not obvious from `ls` |\n| `write <path> --reason <text>` | replace a page from stdin when authoring or rewriting |\n| `append <path>` | append stdin to a page; intended for `LOG.md`-style updates |\n| `edit <path>` | open `$EDITOR`; avoid from agents, prefer `write`/`append` |\n| `ingest <source>` | spawn an ingest agent to fold a file or URL into memory |\n| `query "<question>"` | answer a question from memory only, with citations |\n| `explain <path>` | summarize a page plus its inbound/outbound links |\n| `lint [--fix]` | find stale citations, untagged claims, contradictions |\n| `status [--no-tokens]` | show counts, bytes, and token-reduction ratio |\n| `cache status` / `cache clear` | inspect or clear the ingest cache |\n| `clear --yes` | wipe memory; destructive, user-request only |\n| `install` | install this skill and register the `poe-code-memory` MCP server |\n\n## MCP \u2014 `poe-code-memory` server\n| Tool | Purpose |\n|---|---|\n| `list_pages` | enumerate pages (preferred over shelling out to `memory ls`) |\n| `read_page` | read one page (preferred over `memory show`) |\n| `search_memory` | search memory text (preferred over `memory search`) |\n| `append_to_page` | append to a page when writes are enabled |\n| `status` | read counts and token ratio |\n\n- Prefer MCP tools over shell commands when both surfaces are available.\n- Confidence-tag non-trivial claims with `extracted`, `inferred`, or `ambiguous`.\n- Keep memory edits focused; update the minimal relevant pages.\n- Never call `memory clear` without explicit user request.\n';
102851
+ SKILL_memory_default = '## CLI \u2014 `poe-code memory <subcommand>`\n| Command | Purpose (when the agent should reach for it) |\n|---|---|\n| `init` | create `.poe-code/memory/` if missing; safe before first write |\n| `ls` | list pages + one-line descriptions; first step for recall questions |\n| `show <path>` | print one page verbatim after `ls` identifies a candidate |\n| `search <query>` | ripgrep over memory when the page is not obvious from `ls` |\n| `write <path> --reason <text>` | replace a page from stdin when authoring or rewriting |\n| `append <path>` | append stdin to a page; intended for `LOG.md`-style updates |\n| `edit <path>` | open `$EDITOR`; avoid from agents, prefer `write`/`append` |\n| `ingest <source>` | spawn an ingest agent to fold a file or URL into memory |\n| `query "<question>"` | answer a question from memory only, with citations |\n| `explain <path>` | summarize a page plus its inbound/outbound links |\n| `lint` | find stale citations, untagged claims, contradictions |\n| `status [--no-tokens]` | show counts, bytes, and token-reduction ratio |\n| `cache status` / `cache clear` | inspect or clear the ingest cache |\n| `clear --yes` | wipe memory; destructive, user-request only |\n| `install` | install this skill and register the `poe-code-memory` MCP server |\n\n## MCP \u2014 `poe-code-memory` server\n| Tool | Purpose |\n|---|---|\n| `list_pages` | enumerate pages (preferred over shelling out to `memory ls`) |\n| `read_page` | read one page (preferred over `memory show`) |\n| `search_memory` | search memory text (preferred over `memory search`) |\n| `append_to_page` | append to a page when writes are enabled |\n| `status` | read counts and token ratio |\n\n- Prefer MCP tools over shell commands when both surfaces are available.\n- Confidence-tag non-trivial claims with `extracted`, `inferred`, or `ambiguous`.\n- Keep memory edits focused; update the minimal relevant pages.\n- Never call `memory clear` without explicit user request.\n';
102806
102852
  }
102807
102853
  });
102808
102854
 
@@ -102874,6 +102920,28 @@ async function queryBudget(container, value) {
102874
102920
  projectFilePath: container.env.projectConfigPath
102875
102921
  });
102876
102922
  }
102923
+ function parseDecimalNonNegativeInteger(value, label) {
102924
+ if (value === void 0) {
102925
+ return void 0;
102926
+ }
102927
+ if (!isDecimalNonNegativeIntegerText(value)) {
102928
+ throw new ValidationError(`${label} must be a decimal non-negative integer.`);
102929
+ }
102930
+ const parsed = Number(value);
102931
+ if (!Number.isSafeInteger(parsed)) {
102932
+ throw new ValidationError(`${label} must be a decimal non-negative integer.`);
102933
+ }
102934
+ return parsed;
102935
+ }
102936
+ function isDecimalNonNegativeIntegerText(value) {
102937
+ if (value.length === 0) {
102938
+ return false;
102939
+ }
102940
+ if (value.length > 1 && value[0] === "0") {
102941
+ return false;
102942
+ }
102943
+ return [...value].every((char) => char >= "0" && char <= "9");
102944
+ }
102877
102945
  async function readCommandContent(content) {
102878
102946
  if (content !== void 0) {
102879
102947
  return content;
@@ -103012,6 +103080,8 @@ function registerMemoryCommand(program, container) {
103012
103080
  memory.command("edit").description("Open a page in $EDITOR.").argument("<path>", "Page path (relative to memory pages/)").option("--reason <text>", "Reason for the memory update", "edit").action(async (pagePath, options) => {
103013
103081
  const flags = resolveCommandFlags(program);
103014
103082
  const root = await resolveRoot(container);
103083
+ const mem = openMemory({ root });
103084
+ await assertInitialized(mem);
103015
103085
  const relPath = resolvePageRelPath(pagePath);
103016
103086
  const editor = resolveEditor4(container);
103017
103087
  if (flags.dryRun) {
@@ -103030,10 +103100,7 @@ function registerMemoryCommand(program, container) {
103030
103100
  const root = await resolveRoot(container);
103031
103101
  const mem = openMemory({ root });
103032
103102
  await assertInitialized(mem);
103033
- const timeoutMs = options.timeoutMs === void 0 ? void 0 : Number(options.timeoutMs);
103034
- if (timeoutMs !== void 0 && (!Number.isFinite(timeoutMs) || timeoutMs < 0)) {
103035
- throw new ValidationError("Timeout must be a finite non-negative number.");
103036
- }
103103
+ const timeoutMs = parseDecimalNonNegativeInteger(options.timeoutMs, "Timeout");
103037
103104
  const result = await mem.ingest({
103038
103105
  source: resolveIngestSource(container.env.cwd, source),
103039
103106
  agent: options.agent,
@@ -103046,10 +103113,7 @@ function registerMemoryCommand(program, container) {
103046
103113
  process.stdout.write(`${result.cacheHit ? "Cache hit" : "Ingested"}: ${result.diff.created.length} created, ${result.diff.updated.length} updated, ${result.diff.deleted.length} deleted.
103047
103114
  `);
103048
103115
  });
103049
- memory.command("lint").description("Audit memory confidence and provenance claims.").option("--fix", "Reserved for automated repair").action(async (options) => {
103050
- if (options.fix) {
103051
- throw new ValidationError("Automated memory lint repair is not available yet.");
103052
- }
103116
+ memory.command("lint").description("Audit memory confidence and provenance claims.").action(async () => {
103053
103117
  const root = await resolveRoot(container);
103054
103118
  const mem = openMemory({ root });
103055
103119
  await assertInitialized(mem);
@@ -103066,24 +103130,41 @@ function registerMemoryCommand(program, container) {
103066
103130
  }
103067
103131
  });
103068
103132
  memory.command("query").description("Answer a question using memory-only context.").argument("<question>", "Question").option("--budget <tokens>", "Token budget").option("--agent <agent>", "Agent override").action(async (question, options) => {
103133
+ const flags = resolveCommandFlags(program);
103069
103134
  const root = await resolveRoot(container);
103070
103135
  const mem = openMemory({ root });
103071
103136
  await assertInitialized(mem);
103137
+ const budget = await queryBudget(container, options.budget);
103138
+ if (flags.dryRun) {
103139
+ createExecutionResources(container, flags, "memory:query").logger.dryRun(
103140
+ `Would query memory with budget ${budget}.`
103141
+ );
103142
+ return;
103143
+ }
103072
103144
  const result = await mem.query({
103073
103145
  question,
103074
- budget: await queryBudget(container, options.budget),
103146
+ budget,
103075
103147
  agent: options.agent
103076
103148
  });
103077
103149
  process.stdout.write(`${result.answer}
103078
103150
  `);
103079
103151
  });
103080
103152
  memory.command("explain").description("Summarize a memory page and its relationships.").argument("<path>", "Page path (relative to memory pages/)").option("--budget <tokens>", "Token budget").option("--agent <agent>", "Agent override").action(async (pagePath, options) => {
103153
+ const flags = resolveCommandFlags(program);
103081
103154
  const root = await resolveRoot(container);
103082
103155
  const mem = openMemory({ root });
103083
103156
  await assertInitialized(mem);
103157
+ const relPath = resolvePageRelPath(pagePath);
103158
+ const budget = await queryBudget(container, options.budget);
103159
+ if (flags.dryRun) {
103160
+ createExecutionResources(container, flags, "memory:explain").logger.dryRun(
103161
+ `Would explain ${relPath} with budget ${budget}.`
103162
+ );
103163
+ return;
103164
+ }
103084
103165
  const result = await mem.explainPage({
103085
- relPath: resolvePageRelPath(pagePath),
103086
- budget: await queryBudget(container, options.budget),
103166
+ relPath,
103167
+ budget,
103087
103168
  agent: options.agent
103088
103169
  });
103089
103170
  process.stdout.write(`${result.answer}
@@ -103217,7 +103298,12 @@ function registerMemoryMcpCommand(program, container) {
103217
103298
  projectConfigPath: container.env.projectConfigPath
103218
103299
  });
103219
103300
  const handle = openMemory({ root });
103220
- const { server } = await startMemoryMcpServer(handle, { allowWrites: options.allowWrites === true });
103301
+ const allowWrites = options.allowWrites === true || await mcpWritesAllowed({
103302
+ fs: container.fs,
103303
+ filePath: container.env.configPath,
103304
+ projectFilePath: container.env.projectConfigPath
103305
+ });
103306
+ const { server } = await startMemoryMcpServer(handle, { allowWrites });
103221
103307
  await server.listen();
103222
103308
  });
103223
103309
  }
@@ -103225,6 +103311,7 @@ var init_memory_mcp = __esm({
103225
103311
  "src/cli/commands/memory-mcp.ts"() {
103226
103312
  "use strict";
103227
103313
  init_src45();
103314
+ init_src9();
103228
103315
  }
103229
103316
  });
103230
103317
 
@@ -137375,7 +137462,7 @@ var init_package2 = __esm({
137375
137462
  "package.json"() {
137376
137463
  package_default2 = {
137377
137464
  name: "poe-code",
137378
- version: "3.0.311",
137465
+ version: "3.0.312",
137379
137466
  description: "CLI tool to configure Poe API for developer workflows.",
137380
137467
  type: "module",
137381
137468
  main: "./dist/index.js",