@mono-agent/agent-app 0.20.14 → 0.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/README.md +227 -80
  2. package/dist/adapter-send-tools.d.ts +3 -2
  3. package/dist/adapter-send-tools.d.ts.map +1 -1
  4. package/dist/adapter-send-tools.js +15 -5
  5. package/dist/adapter-send-tools.js.map +1 -1
  6. package/dist/app-controller-channels.d.ts +2 -0
  7. package/dist/app-controller-channels.d.ts.map +1 -1
  8. package/dist/app-controller-channels.js +10 -1
  9. package/dist/app-controller-channels.js.map +1 -1
  10. package/dist/app-controller-maintenance.d.ts +3 -1
  11. package/dist/app-controller-maintenance.d.ts.map +1 -1
  12. package/dist/app-controller-maintenance.js +3 -0
  13. package/dist/app-controller-maintenance.js.map +1 -1
  14. package/dist/app-controller-responder.d.ts +2 -0
  15. package/dist/app-controller-responder.d.ts.map +1 -1
  16. package/dist/app-controller-responder.js +21 -17
  17. package/dist/app-controller-responder.js.map +1 -1
  18. package/dist/app-controller-traceability.d.ts.map +1 -1
  19. package/dist/app-controller-traceability.js +3 -0
  20. package/dist/app-controller-traceability.js.map +1 -1
  21. package/dist/app-controller-types.d.ts +1 -0
  22. package/dist/app-controller-types.d.ts.map +1 -1
  23. package/dist/app-controller.d.ts +2 -0
  24. package/dist/app-controller.d.ts.map +1 -1
  25. package/dist/app-controller.js +3 -0
  26. package/dist/app-controller.js.map +1 -1
  27. package/dist/artifact-retention.js +11 -0
  28. package/dist/artifact-retention.js.map +1 -1
  29. package/dist/background.d.ts +0 -6
  30. package/dist/background.d.ts.map +1 -1
  31. package/dist/background.js +5 -58
  32. package/dist/background.js.map +1 -1
  33. package/dist/channel-drivers/tui.d.ts +2 -2
  34. package/dist/channel-drivers/tui.d.ts.map +1 -1
  35. package/dist/channel-drivers/tui.js +27 -8
  36. package/dist/channel-drivers/tui.js.map +1 -1
  37. package/dist/cli-args.d.ts +4 -5
  38. package/dist/cli-args.d.ts.map +1 -1
  39. package/dist/cli-args.js +20 -19
  40. package/dist/cli-args.js.map +1 -1
  41. package/dist/cli-background-command.d.ts.map +1 -1
  42. package/dist/cli-background-command.js +4 -0
  43. package/dist/cli-background-command.js.map +1 -1
  44. package/dist/cli-commands.d.ts.map +1 -1
  45. package/dist/cli-commands.js +13 -2
  46. package/dist/cli-commands.js.map +1 -1
  47. package/dist/cli-help.d.ts.map +1 -1
  48. package/dist/cli-help.js +33 -19
  49. package/dist/cli-help.js.map +1 -1
  50. package/dist/cli-init-command.d.ts.map +1 -1
  51. package/dist/cli-init-command.js +26 -22
  52. package/dist/cli-init-command.js.map +1 -1
  53. package/dist/cli-install-skill-command.d.ts.map +1 -1
  54. package/dist/cli-install-skill-command.js +12 -3
  55. package/dist/cli-install-skill-command.js.map +1 -1
  56. package/dist/config-reference.d.ts +1 -0
  57. package/dist/config-reference.d.ts.map +1 -1
  58. package/dist/config-reference.js +66 -10
  59. package/dist/config-reference.js.map +1 -1
  60. package/dist/configured-agent.d.ts +9 -1
  61. package/dist/configured-agent.d.ts.map +1 -1
  62. package/dist/configured-agent.js +95 -29
  63. package/dist/configured-agent.js.map +1 -1
  64. package/dist/cron-control-store.d.ts.map +1 -1
  65. package/dist/cron-control-store.js +4 -2
  66. package/dist/cron-control-store.js.map +1 -1
  67. package/dist/doctor.d.ts.map +1 -1
  68. package/dist/doctor.js +215 -45
  69. package/dist/doctor.js.map +1 -1
  70. package/dist/index.d.ts +2 -0
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +1 -0
  73. package/dist/index.js.map +1 -1
  74. package/dist/interaction-bridge.d.ts +3 -3
  75. package/dist/interaction-bridge.d.ts.map +1 -1
  76. package/dist/interaction-bridge.js +27 -10
  77. package/dist/interaction-bridge.js.map +1 -1
  78. package/dist/launchd.d.ts +2 -0
  79. package/dist/launchd.d.ts.map +1 -1
  80. package/dist/launchd.js +3 -0
  81. package/dist/launchd.js.map +1 -1
  82. package/dist/local-tui-session.d.ts +14 -0
  83. package/dist/local-tui-session.d.ts.map +1 -0
  84. package/dist/local-tui-session.js +100 -0
  85. package/dist/local-tui-session.js.map +1 -0
  86. package/dist/mcp-apps.d.ts.map +1 -1
  87. package/dist/mcp-apps.js +3 -0
  88. package/dist/mcp-apps.js.map +1 -1
  89. package/dist/memory-journal.d.ts +53 -0
  90. package/dist/memory-journal.d.ts.map +1 -0
  91. package/dist/memory-journal.js +586 -0
  92. package/dist/memory-journal.js.map +1 -0
  93. package/dist/memory-recall.d.ts.map +1 -1
  94. package/dist/memory-recall.js +16 -2
  95. package/dist/memory-recall.js.map +1 -1
  96. package/dist/memory-retrieval.d.ts +9 -0
  97. package/dist/memory-retrieval.d.ts.map +1 -1
  98. package/dist/memory-retrieval.js +20 -0
  99. package/dist/memory-retrieval.js.map +1 -1
  100. package/dist/modules/base.js +1 -1
  101. package/dist/modules/base.js.map +1 -1
  102. package/dist/modules/known-tools.d.ts +1 -1
  103. package/dist/modules/known-tools.d.ts.map +1 -1
  104. package/dist/modules/known-tools.js +1 -0
  105. package/dist/modules/known-tools.js.map +1 -1
  106. package/dist/monitors-command.js +12 -2
  107. package/dist/monitors-command.js.map +1 -1
  108. package/dist/monitors-config.d.ts +4 -1
  109. package/dist/monitors-config.d.ts.map +1 -1
  110. package/dist/monitors-config.js +5 -1
  111. package/dist/monitors-config.js.map +1 -1
  112. package/dist/monitors-context.d.ts.map +1 -1
  113. package/dist/monitors-context.js +14 -2
  114. package/dist/monitors-context.js.map +1 -1
  115. package/dist/monitors-service.d.ts +2 -2
  116. package/dist/monitors-service.d.ts.map +1 -1
  117. package/dist/monitors-service.js +227 -96
  118. package/dist/monitors-service.js.map +1 -1
  119. package/dist/monitors-store.d.ts +11 -1
  120. package/dist/monitors-store.d.ts.map +1 -1
  121. package/dist/monitors-store.js +36 -6
  122. package/dist/monitors-store.js.map +1 -1
  123. package/dist/notify-destinations.d.ts +3 -2
  124. package/dist/notify-destinations.d.ts.map +1 -1
  125. package/dist/notify-destinations.js +6 -7
  126. package/dist/notify-destinations.js.map +1 -1
  127. package/dist/posted-reply-history.d.ts.map +1 -1
  128. package/dist/posted-reply-history.js +40 -3
  129. package/dist/posted-reply-history.js.map +1 -1
  130. package/dist/proactive-notify.d.ts +20 -1
  131. package/dist/proactive-notify.d.ts.map +1 -1
  132. package/dist/proactive-notify.js +56 -3
  133. package/dist/proactive-notify.js.map +1 -1
  134. package/dist/process-job-channel-routing.js +2 -1
  135. package/dist/process-job-channel-routing.js.map +1 -1
  136. package/dist/process-job-output-tail.d.ts +53 -0
  137. package/dist/process-job-output-tail.d.ts.map +1 -0
  138. package/dist/process-job-output-tail.js +257 -0
  139. package/dist/process-job-output-tail.js.map +1 -0
  140. package/dist/process-jobs-config.d.ts +1 -1
  141. package/dist/process-jobs-config.js +1 -1
  142. package/dist/process-jobs-config.js.map +1 -1
  143. package/dist/process-jobs-context.d.ts +3 -1
  144. package/dist/process-jobs-context.d.ts.map +1 -1
  145. package/dist/process-jobs-context.js +44 -11
  146. package/dist/process-jobs-context.js.map +1 -1
  147. package/dist/process-jobs-runtime.d.ts.map +1 -1
  148. package/dist/process-jobs-runtime.js +14 -0
  149. package/dist/process-jobs-runtime.js.map +1 -1
  150. package/dist/process-jobs-service.d.ts.map +1 -1
  151. package/dist/process-jobs-service.js +115 -23
  152. package/dist/process-jobs-service.js.map +1 -1
  153. package/dist/process-jobs-store.d.ts +3 -1
  154. package/dist/process-jobs-store.d.ts.map +1 -1
  155. package/dist/process-jobs-store.js +4 -1
  156. package/dist/process-jobs-store.js.map +1 -1
  157. package/dist/process-output-redaction.d.ts +26 -1
  158. package/dist/process-output-redaction.d.ts.map +1 -1
  159. package/dist/process-output-redaction.js +164 -2
  160. package/dist/process-output-redaction.js.map +1 -1
  161. package/dist/project-skills.d.ts +11 -5
  162. package/dist/project-skills.d.ts.map +1 -1
  163. package/dist/project-skills.js +88 -39
  164. package/dist/project-skills.js.map +1 -1
  165. package/dist/provider-auth-checks.d.ts +27 -0
  166. package/dist/provider-auth-checks.d.ts.map +1 -0
  167. package/dist/provider-auth-checks.js +349 -0
  168. package/dist/provider-auth-checks.js.map +1 -0
  169. package/dist/provider-auth-observations.d.ts +22 -0
  170. package/dist/provider-auth-observations.d.ts.map +1 -0
  171. package/dist/provider-auth-observations.js +139 -0
  172. package/dist/provider-auth-observations.js.map +1 -0
  173. package/dist/provider-auth-operator.d.ts +19 -0
  174. package/dist/provider-auth-operator.d.ts.map +1 -0
  175. package/dist/provider-auth-operator.js +560 -0
  176. package/dist/provider-auth-operator.js.map +1 -0
  177. package/dist/provider-auth-status.d.ts +20 -0
  178. package/dist/provider-auth-status.d.ts.map +1 -0
  179. package/dist/provider-auth-status.js +235 -0
  180. package/dist/provider-auth-status.js.map +1 -0
  181. package/dist/provider-model-catalog.d.ts +17 -0
  182. package/dist/provider-model-catalog.d.ts.map +1 -1
  183. package/dist/provider-model-catalog.js +113 -2
  184. package/dist/provider-model-catalog.js.map +1 -1
  185. package/dist/provider-setup.d.ts +22 -0
  186. package/dist/provider-setup.d.ts.map +1 -1
  187. package/dist/provider-setup.js +101 -15
  188. package/dist/provider-setup.js.map +1 -1
  189. package/dist/reply-artifacts.d.ts +3 -1
  190. package/dist/reply-artifacts.d.ts.map +1 -1
  191. package/dist/reply-artifacts.js +45 -10
  192. package/dist/reply-artifacts.js.map +1 -1
  193. package/dist/request-model-override.d.ts +11 -2
  194. package/dist/request-model-override.d.ts.map +1 -1
  195. package/dist/request-model-override.js +51 -1
  196. package/dist/request-model-override.js.map +1 -1
  197. package/dist/request-scoped-mcp.d.ts +3 -0
  198. package/dist/request-scoped-mcp.d.ts.map +1 -1
  199. package/dist/request-scoped-mcp.js +1 -1
  200. package/dist/request-scoped-mcp.js.map +1 -1
  201. package/dist/run-history.d.ts.map +1 -1
  202. package/dist/run-history.js +56 -13
  203. package/dist/run-history.js.map +1 -1
  204. package/dist/seen-conversations.d.ts +4 -3
  205. package/dist/seen-conversations.d.ts.map +1 -1
  206. package/dist/seen-conversations.js +6 -5
  207. package/dist/seen-conversations.js.map +1 -1
  208. package/dist/session-history.d.ts +14 -0
  209. package/dist/session-history.d.ts.map +1 -1
  210. package/dist/session-history.js +120 -5
  211. package/dist/session-history.js.map +1 -1
  212. package/dist/systemd-command.d.ts +8 -0
  213. package/dist/systemd-command.d.ts.map +1 -0
  214. package/dist/systemd-command.js +206 -0
  215. package/dist/systemd-command.js.map +1 -0
  216. package/dist/systemd.d.ts +51 -0
  217. package/dist/systemd.d.ts.map +1 -0
  218. package/dist/systemd.js +299 -0
  219. package/dist/systemd.js.map +1 -0
  220. package/dist/tool-output-artifacts.d.ts +4 -0
  221. package/dist/tool-output-artifacts.d.ts.map +1 -0
  222. package/dist/tool-output-artifacts.js +17 -0
  223. package/dist/tool-output-artifacts.js.map +1 -0
  224. package/dist/tui-command.d.ts +0 -45
  225. package/dist/tui-command.d.ts.map +1 -1
  226. package/dist/tui-command.js +27 -264
  227. package/dist/tui-command.js.map +1 -1
  228. package/dist/untrusted-text.js +2 -2
  229. package/dist/web-command.d.ts +3 -0
  230. package/dist/web-command.d.ts.map +1 -1
  231. package/dist/web-command.js +112 -7
  232. package/dist/web-command.js.map +1 -1
  233. package/dist/web-request-coordinator.d.ts +19 -0
  234. package/dist/web-request-coordinator.d.ts.map +1 -0
  235. package/dist/web-request-coordinator.js +242 -0
  236. package/dist/web-request-coordinator.js.map +1 -0
  237. package/dist/wizard/prompts.d.ts.map +1 -1
  238. package/dist/wizard/prompts.js +1 -0
  239. package/dist/wizard/prompts.js.map +1 -1
  240. package/dist/wizard/run.js +1 -1
  241. package/dist/wizard/run.js.map +1 -1
  242. package/package.json +18 -18
  243. package/schema/mono-agent.config.schema.json +120 -8
  244. package/skills/mono-agent-composer/SKILL.md +4 -4
  245. package/skills/mono-agent-composer/references/config-blueprint.md +18 -7
  246. package/skills/mono-agent-composer/references/discovery-questions.md +10 -5
  247. package/skills/mono-agent-composer/references/feature-coverage.md +30 -14
  248. package/skills/mono-agent-composer/references/package-map.md +6 -3
  249. package/skills/mono-agent-composer/references/playbooks.md +20 -5
  250. package/skills/mono-agent-composer/references/validation.md +4 -3
  251. package/dist/configuration-proposal-main.d.ts +0 -3
  252. package/dist/configuration-proposal-main.d.ts.map +0 -1
  253. package/dist/configuration-proposal-main.js +0 -13
  254. package/dist/configuration-proposal-main.js.map +0 -1
  255. package/dist/configuration-proposal-tool.d.ts +0 -33
  256. package/dist/configuration-proposal-tool.d.ts.map +0 -1
  257. package/dist/configuration-proposal-tool.js +0 -180
  258. package/dist/configuration-proposal-tool.js.map +0 -1
  259. package/dist/local-configuration.d.ts +0 -99
  260. package/dist/local-configuration.d.ts.map +0 -1
  261. package/dist/local-configuration.js +0 -1302
  262. package/dist/local-configuration.js.map +0 -1
@@ -8,7 +8,7 @@ import { isDeepStrictEqual } from "node:util";
8
8
  import { fileURLToPath } from "node:url";
9
9
  import { builtinModels } from "@earendil-works/pi-ai/providers/all";
10
10
  import { modelReferenceKey, parseMonoRuntimeModelReference } from "@mono-agent/runtime-adapter";
11
- import { inspectPiAuthStore } from "./pi-auth-store-inspection.js";
11
+ import { inspectPiAuthStore, MAX_PI_AUTH_STORE_BYTES } from "./pi-auth-store-inspection.js";
12
12
  const DEFAULT_PI_AUTH_PATH = join(homedir(), ".pi", "agent", "auth.json");
13
13
  const PI_API_KEY_PROVIDERS = {
14
14
  "opencode-go": "OPENCODE_API_KEY",
@@ -422,15 +422,13 @@ async function runPiApiKeyAction(action, apiKeys, platform, hooks) {
422
422
  };
423
423
  }
424
424
  try {
425
- assertOwnerOnlyPersistenceSupported(platform);
426
- await withPiAuthFileLock(action.piAuthPath, async (authPath, ownerUid, assertLockHeld) => {
427
- const original = await readPiAuthStore(authPath, piAuthSingleLinkPolicy(ownerUid));
428
- const next = {
429
- ...original.auth,
430
- [action.provider]: { type: "api_key", key },
431
- };
432
- await writePiAuthStoreAtomically(authPath, next, original, ownerUid, assertLockHeld, hooks);
433
- }, hooks);
425
+ await persistPiProviderCredential({
426
+ authPath: action.piAuthPath,
427
+ provider: action.provider,
428
+ platform,
429
+ resolveCredential: async () => ({ type: "api_key", key }),
430
+ ...hooks,
431
+ });
434
432
  return {
435
433
  action,
436
434
  status: "ok",
@@ -446,6 +444,55 @@ async function runPiApiKeyAction(action, apiKeys, platform, hooks) {
446
444
  };
447
445
  }
448
446
  }
447
+ /**
448
+ * The single mutation path for Pi provider credentials. Login remains inside
449
+ * the lock so two processes cannot both authenticate from the same snapshot
450
+ * and silently clobber each other's successful result.
451
+ */
452
+ export async function persistPiProviderCredential(options) {
453
+ assertOwnerOnlyPersistenceSupported(options.platform ?? process.platform);
454
+ const hooks = options;
455
+ await withPiAuthFileLock(options.authPath, async (authPath, ownerUid, assertLockHeld) => {
456
+ const original = await readPiAuthStore(authPath, piAuthSingleLinkPolicy(ownerUid));
457
+ throwIfProviderAuthAborted(options.abortSignal);
458
+ const credential = await resolveProviderCredentialWithAbort(options.resolveCredential, options.abortSignal);
459
+ throwIfProviderAuthAborted(options.abortSignal);
460
+ if (!isUsableStoredPiCredential(options.provider, credential)) {
461
+ throw new Error(`Provider authentication returned an invalid credential for ${options.provider}.`);
462
+ }
463
+ const next = { ...original.auth, [options.provider]: credential };
464
+ if (!isBoundedCredentialValue(next)) {
465
+ throw new Error(`Provider authentication would exceed the Pi credential store safety limit for ${options.provider}.`);
466
+ }
467
+ await writePiAuthStoreAtomically(authPath, next, original, ownerUid, assertLockHeld, hooks, options.abortSignal, options.onCredentialStoreMutation);
468
+ }, hooks);
469
+ }
470
+ async function resolveProviderCredentialWithAbort(resolveCredential, signal) {
471
+ throwIfProviderAuthAborted(signal);
472
+ const pending = Promise.resolve().then(async () => await resolveCredential(signal));
473
+ if (signal === undefined)
474
+ return await pending;
475
+ return await new Promise((resolve, reject) => {
476
+ let settled = false;
477
+ const finish = (callback) => {
478
+ if (settled)
479
+ return;
480
+ settled = true;
481
+ signal.removeEventListener("abort", abort);
482
+ callback();
483
+ };
484
+ const abort = () => finish(() => reject(signal.reason ?? new Error("Provider authentication was cancelled.")));
485
+ signal.addEventListener("abort", abort, { once: true });
486
+ if (signal.aborted)
487
+ abort();
488
+ pending.then((credential) => finish(() => resolve(credential)), (error) => finish(() => reject(error)));
489
+ });
490
+ }
491
+ function throwIfProviderAuthAborted(signal) {
492
+ if (signal?.aborted === true) {
493
+ throw signal.reason ?? new Error("Provider authentication was cancelled.");
494
+ }
495
+ }
449
496
  function isBoundedCredentialString(value) {
450
497
  return typeof value === "string"
451
498
  && value.trim().length > 0
@@ -455,10 +502,32 @@ function isBoundedCredentialString(value) {
455
502
  function isUsableStoredPiCredential(_provider, value) {
456
503
  if (!isRecord(value))
457
504
  return false;
505
+ if (!isBoundedCredentialValue(value))
506
+ return false;
458
507
  if (value.type === "oauth") {
459
- return isBoundedCredentialString(value.access) || isBoundedCredentialString(value.refresh);
508
+ return (isBoundedCredentialString(value.access) || isBoundedCredentialString(value.refresh))
509
+ && (value.expires === undefined || (typeof value.expires === "number" && Number.isFinite(value.expires)));
510
+ }
511
+ if (value.type !== "api_key")
512
+ return false;
513
+ if (Object.keys(value).some((key) => key !== "type" && key !== "key" && key !== "env"))
514
+ return false;
515
+ if (isBoundedCredentialString(value.key))
516
+ return true;
517
+ if (value.env === undefined)
518
+ return Object.keys(value).length === 1;
519
+ if (!isRecord(value.env))
520
+ return false;
521
+ const entries = Object.entries(value.env);
522
+ return entries.length > 0 && entries.length <= 64 && entries.every(([key, entry]) => /^[A-Z][A-Z0-9_]{0,127}$/u.test(key) && isBoundedCredentialString(entry));
523
+ }
524
+ function isBoundedCredentialValue(value) {
525
+ try {
526
+ return Buffer.byteLength(JSON.stringify(value), "utf8") <= MAX_PI_AUTH_STORE_BYTES;
527
+ }
528
+ catch {
529
+ return false;
460
530
  }
461
- return value.type === "api_key" && isBoundedCredentialString(value.key);
462
531
  }
463
532
  async function runCommandAction(action, spawnImpl, platform, hooks, preflightTimeoutMs, abortSignal) {
464
533
  if (isProviderSetupPiLoginAction(action)) {
@@ -1043,19 +1112,26 @@ function assertPiAuthStoreStat(path, value, policy) {
1043
1112
  throw new Error(`Refusing to use Pi auth path ${path} because its hard-link identity is unsafe.`);
1044
1113
  }
1045
1114
  }
1046
- async function writePiAuthStoreAtomically(path, auth, original, ownerUid, assertLockHeld, hooks) {
1115
+ async function writePiAuthStoreAtomically(path, auth, original, ownerUid, assertLockHeld, hooks, abortSignal, onCredentialStoreMutation) {
1116
+ throwIfProviderAuthAborted(abortSignal);
1047
1117
  await assertPiAuthStoreUnchanged(path, original, ownerUid);
1118
+ throwIfProviderAuthAborted(abortSignal);
1048
1119
  const dir = dirname(path);
1049
1120
  await mkdir(dir, { recursive: true, mode: 0o700 });
1121
+ throwIfProviderAuthAborted(abortSignal);
1050
1122
  const tempDir = await mkdtemp(join(dir, ".mono-agent-pi-auth-write-"));
1051
1123
  const tempPath = join(tempDir, "auth.json");
1052
1124
  let promotionInstalled = false;
1053
1125
  let operationError;
1054
1126
  try {
1127
+ throwIfProviderAuthAborted(abortSignal);
1055
1128
  await writeFile(tempPath, `${JSON.stringify(auth, null, 2)}\n`, { encoding: "utf8", flag: "wx", mode: 0o600 });
1129
+ throwIfProviderAuthAborted(abortSignal);
1056
1130
  await syncFile(tempPath);
1131
+ throwIfProviderAuthAborted(abortSignal);
1057
1132
  await assertPiAuthStoreUnchanged(path, original, ownerUid);
1058
- await promotePiAuthStoreWithoutClobber(tempPath, path, original, ownerUid, assertLockHeld, undefined, hooks);
1133
+ throwIfProviderAuthAborted(abortSignal);
1134
+ await promotePiAuthStoreWithoutClobber(tempPath, path, original, ownerUid, assertLockHeld, undefined, hooks, abortSignal, onCredentialStoreMutation);
1059
1135
  promotionInstalled = true;
1060
1136
  try {
1061
1137
  await hooks.beforePiAuthPostMutationSync?.(path);
@@ -1098,8 +1174,9 @@ function samePiAuthStoreSnapshot(left, right) {
1098
1174
  left.size === right.size &&
1099
1175
  left.contents === right.contents;
1100
1176
  }
1101
- async function promotePiAuthStoreWithoutClobber(stagedPath, targetPath, expected, ownerUid, assertLockHeld, intendedInput, hooks = {}) {
1177
+ async function promotePiAuthStoreWithoutClobber(stagedPath, targetPath, expected, ownerUid, assertLockHeld, intendedInput, hooks = {}, abortSignal, onCredentialStoreMutation) {
1102
1178
  const intended = intendedInput ?? await readPiAuthStore(stagedPath, piAuthSingleLinkPolicy(ownerUid));
1179
+ throwIfProviderAuthAborted(abortSignal);
1103
1180
  if (!intended.exists) {
1104
1181
  throw new Error(`Pi auth staging file ${stagedPath} disappeared before promotion.`);
1105
1182
  }
@@ -1108,10 +1185,14 @@ async function promotePiAuthStoreWithoutClobber(stagedPath, targetPath, expected
1108
1185
  try {
1109
1186
  await hooks.beforePiAuthPromotion?.(targetPath, stagedPath);
1110
1187
  await assertLockHeld();
1188
+ // This is the last safe cancellation point. Once target mutation starts,
1189
+ // the existing promotion/recovery transaction must run to completion.
1190
+ throwIfProviderAuthAborted(abortSignal);
1111
1191
  installed = await linkPiFileIfAbsent(stagedPath, targetPath);
1112
1192
  if (!installed) {
1113
1193
  throw new Error(`Pi auth file ${targetPath} changed during credential setup; the newer file was preserved.`);
1114
1194
  }
1195
+ onCredentialStoreMutation?.();
1115
1196
  await hooks.afterPiAuthLink?.(targetPath, stagedPath);
1116
1197
  await assertPromotedPiAuthStore(intended, stagedPath, targetPath, ownerUid);
1117
1198
  return;
@@ -1131,10 +1212,15 @@ async function promotePiAuthStoreWithoutClobber(stagedPath, targetPath, expected
1131
1212
  try {
1132
1213
  await hooks.beforePiAuthPromotion?.(targetPath, stagedPath);
1133
1214
  await assertLockHeld();
1215
+ // Abort cannot safely split the rename/install/recovery sequence below.
1216
+ throwIfProviderAuthAborted(abortSignal);
1134
1217
  try {
1135
1218
  await rename(targetPath, backupPath);
1136
1219
  backupCreated = true;
1137
1220
  targetMutationStarted = true;
1221
+ // Renaming the existing target is the first credential mutation, even
1222
+ // if a later validation fails and recovery restores that same inode.
1223
+ onCredentialStoreMutation?.();
1138
1224
  }
1139
1225
  catch (error) {
1140
1226
  if (error.code === "ENOENT") {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-setup.js","sourceRoot":"","sources":["../src/provider-setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-setup.js","sourceRoot":"","sources":["../src/provider-setup.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type AgentReplyArtifactOpenRequest, type AgentReplyArtifactStream, type AgentResponder } from "@mono-agent/agent-contracts";
1
+ import { type AgentReplyArtifactOpenRequest, type ChannelLogger, type AgentReplyArtifactStream, type AgentResponder } from "@mono-agent/agent-contracts";
2
2
  import type { ToolPolicyInput } from "@mono-agent/agent-harness";
3
3
  import type { RuntimeOptionsExtension } from "./runtime-option-extensions.js";
4
4
  import { type ReplyPartBudget } from "./reply-part-budget.js";
@@ -25,6 +25,8 @@ export interface ReplyArtifactServiceOptions {
25
25
  readonly beforeSourceOpen?: () => void | Promise<void>;
26
26
  /** @internal runs after all staged files are durable and before directory rename. */
27
27
  readonly beforePublicationCommit?: () => void | Promise<void>;
28
+ /** Receives unexpected (non-policy) publication failures; policy rejections are returned to the tool caller. */
29
+ readonly logger?: ChannelLogger;
28
30
  }
29
31
  export interface ReplyArtifactService {
30
32
  readonly createExtension: RuntimeOptionsExtension;
@@ -1 +1 @@
1
- {"version":3,"file":"reply-artifacts.d.ts","sourceRoot":"","sources":["../src/reply-artifacts.ts"],"names":[],"mappings":"AA6BA,OAAO,EAGL,KAAK,6BAA6B,EAClC,KAAK,wBAAwB,EAI7B,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAE9E,OAAO,EAGL,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAIhC,eAAO,MAAM,8BAA8B,+BAA+B,CAAC;AAC3E,eAAO,MAAM,4BAA4B,qBAAqB,CAAC;AAgB/D,eAAO,MAAM,wCAAwC,QAAoB,CAAC;AAC1E,QAAA,MAAM,iCAAiC,sCAAuC,CAAC;AAsE/E,KAAK,mBAAmB,GAAG,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,iBAAiB,CAAC,CAAC;AAgBrF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAC;IAC3C,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,CAAC,EAAE,0BAA0B,CAAC;IACpD,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,qFAAqF;IACrF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,eAAe,EAAE,uBAAuB,CAAC;IAClD,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,cAAc,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAChF,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AAED,KAAK,6BAA6B,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAExF,MAAM,WAAW,+BAA+B;IAC9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,+BAA+B,GAAG,SAAS,CAAC,CAAC;IACpF,OAAO,CAAC,SAAS,EAAE,6BAA6B,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACvG,YAAY,CAAC,CAAC,EACZ,SAAS,EAAE,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,6BAA6B,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GACxG,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAYD;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,WAAW,EAAE,MAAM,EACnB,QAAQ,SAA2C,GAClD,0BAA0B,CA+D5B;AAED,qBAAa,6BAA8B,SAAQ,KAAK;;CAKvD;AAED,6EAA6E;AAC7E,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,GAAG,OAAO,CAK9F;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,2BAA2B,GAAG,oBAAoB,CAkcrG"}
1
+ {"version":3,"file":"reply-artifacts.d.ts","sourceRoot":"","sources":["../src/reply-artifacts.ts"],"names":[],"mappings":"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"}
@@ -350,17 +350,19 @@ export function createReplyArtifactService(options) {
350
350
  mediaType: input.mediaType,
351
351
  code,
352
352
  })}`;
353
- const storageFull = error instanceof ReplyArtifactStorageFullError;
354
353
  const failure = {
355
354
  type: "failure",
356
355
  id: stablePartId("reply-file-failure", failureIdentity),
357
356
  code,
358
- message: storageFull
359
- ? "Reply artifact storage is full; this file was not published."
360
- : code === "artifact_too_large"
361
- ? errorMessage(error)
362
- : "The generated file could not be published safely.",
357
+ message: publishFailureMessage(error),
363
358
  };
359
+ if (!isExpectedPublishFailure(error)) {
360
+ options.logger?.warn?.("Reply artifact publication failed unexpectedly.", {
361
+ runId: binding.runId,
362
+ error: errorMessage(error),
363
+ errorCode: errnoCode(error),
364
+ });
365
+ }
364
366
  return recordPart(binding.runId, failureIdentity, failure).part;
365
367
  }
366
368
  };
@@ -501,6 +503,9 @@ export function createReplyArtifactService(options) {
501
503
  function wrapResponder(responder) {
502
504
  return {
503
505
  ...responder,
506
+ ...(responder.importContext === undefined
507
+ ? {}
508
+ : { importContext: responder.importContext.bind(responder) }),
504
509
  async respond(request, stream) {
505
510
  const context = { runIds: new Set() };
506
511
  let retainedRunId;
@@ -632,7 +637,7 @@ function createPublishServer(publish) {
632
637
  const server = new McpServer({ name: REPLY_ARTIFACT_MCP_SERVER_NAME, version: "1.0.0" });
633
638
  server.registerTool(PUBLISH_REPLY_FILE_TOOL_NAME, {
634
639
  title: "Attach a generated file",
635
- description: "Publish one generated workspace file with the assistant reply. Call once per file after writing it. The host copies, hashes, retains, and authorizes the file; the response carries only an opaque id and sanitized metadata. Paths outside the workspace or this run's MCP output directory, symlinks, non-files, and files over 20 MiB are rejected.",
640
+ description: "Publish one generated workspace file with the assistant reply. Call once per file after writing it. The host copies, hashes, retains, and authorizes the file; the response carries only an opaque id and sanitized metadata. Paths outside the workspace or this run's MCP output directory, anything under the agent's private state (.mono-agent/, the artifacts directory, memory, credentials), symlinks, non-files, and files over 20 MiB are rejected; write files meant for publication to an ordinary workspace directory such as tmp/ or output/. A rejection names its reason so the file can be rewritten to an allowed location.",
636
641
  inputSchema: PUBLISH_INPUT,
637
642
  }, async (input) => {
638
643
  const part = await publish(input);
@@ -700,9 +705,10 @@ async function openAuthorizedSource(pathInput, workspace, currentRunOutboundRoot
700
705
  lstat(canonical),
701
706
  realpath(candidate),
702
707
  ]);
703
- if (!opened.isFile()
704
- || opened.nlink !== 1
705
- || !currentPath.isFile()
708
+ if (!opened.isFile() || !currentPath.isFile()) {
709
+ throw new CodedError("artifact_publish_failed", "Only regular files can be published.");
710
+ }
711
+ if (opened.nlink !== 1
706
712
  || currentPath.isSymbolicLink()
707
713
  || currentPath.nlink !== 1
708
714
  || currentCanonical !== canonical
@@ -1024,6 +1030,35 @@ async function* streamHandle(handle, size, releaseProtection) {
1024
1030
  function errorMessage(error) {
1025
1031
  return error instanceof Error ? error.message : String(error);
1026
1032
  }
1033
+ function errnoCode(error) {
1034
+ return isRecord(error) && typeof error.code === "string" ? error.code : undefined;
1035
+ }
1036
+ const CALLER_ERRNO_CODES = new Set(["ENOENT", "ENOTDIR", "EACCES", "EPERM"]);
1037
+ /** Policy rejections and caller path mistakes are answered, not logged as host faults. */
1038
+ function isExpectedPublishFailure(error) {
1039
+ if (error instanceof CodedError || error instanceof ReplyArtifactStorageFullError)
1040
+ return true;
1041
+ const code = errnoCode(error);
1042
+ return code !== undefined && CALLER_ERRNO_CODES.has(code);
1043
+ }
1044
+ /**
1045
+ * Policy rejections carry static, path-free reasons the model can act on
1046
+ * (write the file elsewhere, publish a regular file, retry after a rewrite).
1047
+ * Anything else stays generic so filesystem details never reach the reply.
1048
+ */
1049
+ function publishFailureMessage(error) {
1050
+ if (error instanceof ReplyArtifactStorageFullError) {
1051
+ return "Reply artifact storage is full; this file was not published.";
1052
+ }
1053
+ if (error instanceof CodedError)
1054
+ return error.message;
1055
+ const code = errnoCode(error);
1056
+ if (code === "ENOENT" || code === "ENOTDIR")
1057
+ return "The generated file does not exist at that path.";
1058
+ if (code === "EACCES" || code === "EPERM")
1059
+ return "The generated file is not readable by the agent.";
1060
+ return "The generated file could not be published safely.";
1061
+ }
1027
1062
  function isRecord(value) {
1028
1063
  return typeof value === "object" && value !== null && !Array.isArray(value);
1029
1064
  }