@project-ava-supernova/core 0.2.71 → 0.2.72

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 (166) hide show
  1. package/dist/agent/agent.d.ts.map +1 -1
  2. package/dist/agent/agent.js +138 -38
  3. package/dist/agent/agent.js.map +1 -1
  4. package/dist/agent/mode-tags.d.ts +72 -0
  5. package/dist/agent/mode-tags.d.ts.map +1 -0
  6. package/dist/agent/mode-tags.js +84 -0
  7. package/dist/agent/mode-tags.js.map +1 -0
  8. package/dist/agent/system-prompt.d.ts +16 -2
  9. package/dist/agent/system-prompt.d.ts.map +1 -1
  10. package/dist/agent/system-prompt.js +133 -24
  11. package/dist/agent/system-prompt.js.map +1 -1
  12. package/dist/brainstorm/brainstorm-store.d.ts +42 -0
  13. package/dist/brainstorm/brainstorm-store.d.ts.map +1 -0
  14. package/dist/brainstorm/brainstorm-store.js +164 -0
  15. package/dist/brainstorm/brainstorm-store.js.map +1 -0
  16. package/dist/brainstorm/types.d.ts +64 -0
  17. package/dist/brainstorm/types.d.ts.map +1 -0
  18. package/dist/brainstorm/types.js +20 -0
  19. package/dist/brainstorm/types.js.map +1 -0
  20. package/dist/config/project.d.ts.map +1 -1
  21. package/dist/config/project.js +3 -1
  22. package/dist/config/project.js.map +1 -1
  23. package/dist/config/schema.d.ts +13 -0
  24. package/dist/config/schema.d.ts.map +1 -1
  25. package/dist/config/schema.js.map +1 -1
  26. package/dist/dataset/capture.d.ts.map +1 -1
  27. package/dist/dataset/capture.js +6 -14
  28. package/dist/dataset/capture.js.map +1 -1
  29. package/dist/history/conversation-title.d.ts +5 -4
  30. package/dist/history/conversation-title.d.ts.map +1 -1
  31. package/dist/history/conversation-title.js +6 -19
  32. package/dist/history/conversation-title.js.map +1 -1
  33. package/dist/i18n/locales/ar.d.ts.map +1 -1
  34. package/dist/i18n/locales/ar.js +41 -13
  35. package/dist/i18n/locales/ar.js.map +1 -1
  36. package/dist/i18n/locales/de.d.ts.map +1 -1
  37. package/dist/i18n/locales/de.js +41 -13
  38. package/dist/i18n/locales/de.js.map +1 -1
  39. package/dist/i18n/locales/en.d.ts +38 -10
  40. package/dist/i18n/locales/en.d.ts.map +1 -1
  41. package/dist/i18n/locales/en.js +41 -13
  42. package/dist/i18n/locales/en.js.map +1 -1
  43. package/dist/i18n/locales/es.d.ts.map +1 -1
  44. package/dist/i18n/locales/es.js +41 -13
  45. package/dist/i18n/locales/es.js.map +1 -1
  46. package/dist/i18n/locales/fr.d.ts.map +1 -1
  47. package/dist/i18n/locales/fr.js +41 -13
  48. package/dist/i18n/locales/fr.js.map +1 -1
  49. package/dist/i18n/locales/hi.d.ts.map +1 -1
  50. package/dist/i18n/locales/hi.js +41 -13
  51. package/dist/i18n/locales/hi.js.map +1 -1
  52. package/dist/i18n/locales/id.d.ts.map +1 -1
  53. package/dist/i18n/locales/id.js +41 -13
  54. package/dist/i18n/locales/id.js.map +1 -1
  55. package/dist/i18n/locales/it.d.ts.map +1 -1
  56. package/dist/i18n/locales/it.js +41 -13
  57. package/dist/i18n/locales/it.js.map +1 -1
  58. package/dist/i18n/locales/ja.d.ts.map +1 -1
  59. package/dist/i18n/locales/ja.js +41 -13
  60. package/dist/i18n/locales/ja.js.map +1 -1
  61. package/dist/i18n/locales/ko.d.ts.map +1 -1
  62. package/dist/i18n/locales/ko.js +41 -13
  63. package/dist/i18n/locales/ko.js.map +1 -1
  64. package/dist/i18n/locales/nl.d.ts.map +1 -1
  65. package/dist/i18n/locales/nl.js +41 -13
  66. package/dist/i18n/locales/nl.js.map +1 -1
  67. package/dist/i18n/locales/pl.d.ts.map +1 -1
  68. package/dist/i18n/locales/pl.js +41 -13
  69. package/dist/i18n/locales/pl.js.map +1 -1
  70. package/dist/i18n/locales/pt.d.ts.map +1 -1
  71. package/dist/i18n/locales/pt.js +41 -13
  72. package/dist/i18n/locales/pt.js.map +1 -1
  73. package/dist/i18n/locales/ru.d.ts.map +1 -1
  74. package/dist/i18n/locales/ru.js +41 -13
  75. package/dist/i18n/locales/ru.js.map +1 -1
  76. package/dist/i18n/locales/th.d.ts.map +1 -1
  77. package/dist/i18n/locales/th.js +41 -13
  78. package/dist/i18n/locales/th.js.map +1 -1
  79. package/dist/i18n/locales/tr.d.ts.map +1 -1
  80. package/dist/i18n/locales/tr.js +41 -13
  81. package/dist/i18n/locales/tr.js.map +1 -1
  82. package/dist/i18n/locales/uk.d.ts.map +1 -1
  83. package/dist/i18n/locales/uk.js +41 -13
  84. package/dist/i18n/locales/uk.js.map +1 -1
  85. package/dist/i18n/locales/vi.d.ts.map +1 -1
  86. package/dist/i18n/locales/vi.js +41 -13
  87. package/dist/i18n/locales/vi.js.map +1 -1
  88. package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
  89. package/dist/i18n/locales/zh-CN.js +41 -13
  90. package/dist/i18n/locales/zh-CN.js.map +1 -1
  91. package/dist/i18n/locales/zh-TW.d.ts.map +1 -1
  92. package/dist/i18n/locales/zh-TW.js +41 -13
  93. package/dist/i18n/locales/zh-TW.js.map +1 -1
  94. package/dist/index.d.ts +5 -1
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +7 -1
  97. package/dist/index.js.map +1 -1
  98. package/dist/journal/journal-manager.d.ts +22 -1
  99. package/dist/journal/journal-manager.d.ts.map +1 -1
  100. package/dist/journal/journal-manager.js +47 -2
  101. package/dist/journal/journal-manager.js.map +1 -1
  102. package/dist/personas/conductor.d.ts +11 -0
  103. package/dist/personas/conductor.d.ts.map +1 -1
  104. package/dist/personas/conductor.js +56 -12
  105. package/dist/personas/conductor.js.map +1 -1
  106. package/dist/personas/definitions.d.ts +15 -4
  107. package/dist/personas/definitions.d.ts.map +1 -1
  108. package/dist/personas/definitions.js +184 -19
  109. package/dist/personas/definitions.js.map +1 -1
  110. package/dist/personas/types.d.ts +1 -1
  111. package/dist/personas/types.d.ts.map +1 -1
  112. package/dist/projects/project-data.d.ts +73 -0
  113. package/dist/projects/project-data.d.ts.map +1 -0
  114. package/dist/projects/project-data.js +126 -0
  115. package/dist/projects/project-data.js.map +1 -0
  116. package/dist/projects/projects-home.d.ts +33 -0
  117. package/dist/projects/projects-home.d.ts.map +1 -0
  118. package/dist/projects/projects-home.js +43 -0
  119. package/dist/projects/projects-home.js.map +1 -0
  120. package/dist/projects/storage-categories.d.ts +45 -0
  121. package/dist/projects/storage-categories.d.ts.map +1 -0
  122. package/dist/projects/storage-categories.js +86 -0
  123. package/dist/projects/storage-categories.js.map +1 -0
  124. package/dist/tools/authoring/export-document.d.ts +45 -0
  125. package/dist/tools/authoring/export-document.d.ts.map +1 -0
  126. package/dist/tools/authoring/export-document.js +132 -0
  127. package/dist/tools/authoring/export-document.js.map +1 -0
  128. package/dist/tools/authoring/export-formats.d.ts +37 -0
  129. package/dist/tools/authoring/export-formats.d.ts.map +1 -0
  130. package/dist/tools/authoring/export-formats.js +50 -0
  131. package/dist/tools/authoring/export-formats.js.map +1 -0
  132. package/dist/tools/authoring/index.d.ts +6 -1
  133. package/dist/tools/authoring/index.d.ts.map +1 -1
  134. package/dist/tools/authoring/index.js +9 -0
  135. package/dist/tools/authoring/index.js.map +1 -1
  136. package/dist/tools/authoring/render-odf.d.ts +22 -0
  137. package/dist/tools/authoring/render-odf.d.ts.map +1 -0
  138. package/dist/tools/authoring/render-odf.js +604 -0
  139. package/dist/tools/authoring/render-odf.js.map +1 -0
  140. package/dist/tools/authoring/zip.d.ts +33 -0
  141. package/dist/tools/authoring/zip.d.ts.map +1 -0
  142. package/dist/tools/authoring/zip.js +125 -0
  143. package/dist/tools/authoring/zip.js.map +1 -0
  144. package/dist/tools/brainstorm-session.d.ts +29 -0
  145. package/dist/tools/brainstorm-session.d.ts.map +1 -0
  146. package/dist/tools/brainstorm-session.js +184 -0
  147. package/dist/tools/brainstorm-session.js.map +1 -0
  148. package/dist/tools/document-author.d.ts +1 -1
  149. package/dist/tools/document-author.d.ts.map +1 -1
  150. package/dist/tools/document-author.js +22 -5
  151. package/dist/tools/document-author.js.map +1 -1
  152. package/dist/tools/security.d.ts +25 -0
  153. package/dist/tools/security.d.ts.map +1 -1
  154. package/dist/tools/security.js +35 -0
  155. package/dist/tools/security.js.map +1 -1
  156. package/dist/tools/tool-registry.d.ts.map +1 -1
  157. package/dist/tools/tool-registry.js +4 -0
  158. package/dist/tools/tool-registry.js.map +1 -1
  159. package/dist/tools/verification-trust.d.ts +2 -2
  160. package/dist/tools/verification-trust.d.ts.map +1 -1
  161. package/dist/tools/verification-trust.js +11 -13
  162. package/dist/tools/verification-trust.js.map +1 -1
  163. package/dist/tools/write-video-post.d.ts.map +1 -1
  164. package/dist/tools/write-video-post.js +89 -13
  165. package/dist/tools/write-video-post.js.map +1 -1
  166. package/package.json +26 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/agent/agent.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { getTextContent } from '../core/types.js';
3
3
  import { MAX_TOOL_CALL_ITERATIONS, ITERATION_WARNING_THRESHOLD } from '../core/constants.js';
4
4
  import { t } from '../i18n/index.js';
5
5
  import { logger } from '../core/logger.js';
6
+ import { modeForTaggedText } from './mode-tags.js';
6
7
  import { buildToolPrompt, parseToolCalls, formatToolResult } from './text-tool-parser.js';
7
8
  import { bridgeImagesForTextModel } from './vision-bridge.js';
8
9
  import { auditClaims } from './claims-auditor.js';
@@ -20,6 +21,9 @@ import { recordEditFromTool, pendingFilesAtClosure, runPendingVerify, buildVerif
20
21
  import { signatureForFailure, recordFailure, shouldEscalateFreshEyes, markFreshEyesEscalated, describeFailureLoop, } from './error-loop-detector.js';
21
22
  import { runFreshEyesReview, buildFreshEyesContext } from './fresh-eyes.js';
22
23
  import { randomUUID } from 'node:crypto';
24
+ import { appendFileSync } from 'node:fs';
25
+ import { join } from 'node:path';
26
+ import { AVA_HOME } from '../core/constants.js';
23
27
  import { PNG } from 'pngjs';
24
28
  // ─── Image downsampling ────────────────────────────────────────────────────
25
29
  // Screenshots at native resolution are the single biggest token sink in
@@ -197,6 +201,33 @@ const DESKTOP_ONLY_TOOLS = new Set(DESKTOP_TOOL_NAMES);
197
201
  * run's transcript off sharedState, writes nothing.
198
202
  */
199
203
  const ALWAYS_ALLOWED_TOOLS = new Set(['self_inspect', 'conversation_recall']);
204
+ /**
205
+ * Stage gate for code mode's tool allowlist.
206
+ *
207
+ * `MODE_ALLOWED_TOOLS.work` has existed for months and has never once run:
208
+ * code mode is the untagged default, so the filter's `detectedMode ? ... :
209
+ * null` took its fallback branch every time. Switching it on removes 66 of
210
+ * 118 schemas from the busiest surface in the product, and a list that has
211
+ * never executed is a list nobody has checked.
212
+ *
213
+ * 'log' — compute the filtered set, report what it WOULD withhold and
214
+ * what Ava actually reached for, withhold nothing.
215
+ * 'enforce' — apply it.
216
+ *
217
+ * A module constant rather than an env var so flipping it is one visible
218
+ * line in a diff, and so the two surfaces cannot end up disagreeing about
219
+ * which stage they are in.
220
+ */
221
+ const WORK_TOOL_GATE = 'log';
222
+ /**
223
+ * Where the log-only stage records a reach, under AVA_HOME.
224
+ *
225
+ * One line per turn in which Ava called a tool the gate would have
226
+ * withheld. If this file does not exist after a real session of coding,
227
+ * the allowlist is complete and WORK_TOOL_GATE can move to 'enforce'. If
228
+ * it does exist, every name in it belongs back on the list first.
229
+ */
230
+ const WORK_GATE_LOG = 'work-gate.log';
200
231
  const MODE_ALLOWED_TOOLS = {
201
232
  // Work mode — the bread-and-butter coding surface. Ships every turn
202
233
  // to users writing code, so the schema list is the single biggest
@@ -294,6 +325,17 @@ const MODE_ALLOWED_TOOLS = {
294
325
  ]),
295
326
  chat: new Set([
296
327
  'web_search', 'memory_save', 'memory_recall', 'memory_update', 'journal_write',
328
+ // Both were in the chat PROMPT and missing from this list, so following her
329
+ // own instructions got the call refused. Found 2026-08-20 by the guard that
330
+ // compares the two.
331
+ //
332
+ // The prompt devotes a paragraph to papers — use paper_fetch_full_text on
333
+ // an arXiv ID or DOI, and explicitly do NOT reach for read/grep because the
334
+ // Library is not on disk. And browse_library carries the rule about reusing
335
+ // an asset the user already owns rather than regenerating it, "because that
336
+ // costs them credits for a thing they have" — a rule she could not follow
337
+ // without the tool.
338
+ 'paper_fetch_full_text', 'browse_library',
297
339
  // todo_write for Ava's own session steps. task_suggest is her DEFAULT for a
298
340
  // task-worthy thing she notices (a tap-to-add card); task_manage is for when
299
341
  // the user explicitly says "add X to my list" — create directly then.
@@ -306,11 +348,23 @@ const MODE_ALLOWED_TOOLS = {
306
348
  'switch_mode',
307
349
  ]),
308
350
  brainstorm: new Set([
351
+ // Reading the project. Added 2026-08-20: the mode is for two people —
352
+ // someone with nothing to build, and someone whose project needs to move.
353
+ // The second was impossible, because ideation could not open a single file
354
+ // and could not read the Decisions folder either. She was being asked to
355
+ // suggest where a codebase should go next while forbidden from looking at
356
+ // it. Read-only, and readOnlyModeToolCeiling now enforces that structurally,
357
+ // so widening what she can READ cannot leak into being able to write.
358
+ 'read', 'glob', 'grep', 'list_directory', 'project_index',
309
359
  // Research signals (web + news) so coordinator-direct ideation has the
310
360
  // same research surface the orchestrated team gets via IDEATION_TOOLS.
311
361
  'web_search', 'http_request', 'browser', 'news',
312
362
  // Memory — update is in for refining accumulated ideas across sessions.
313
363
  'memory_save', 'memory_recall', 'memory_update',
364
+ // The session itself: ideas, the ones turned down, and why. Local only,
365
+ // and distinct from memory — memory holds durable facts about the PERSON,
366
+ // this holds the thinking.
367
+ 'brainstorm_session',
314
368
  // Output shape
315
369
  'present_plan', 'journal_write', 'todo_write',
316
370
  // Taste specialist for naming/voice/microcopy decisions
@@ -355,6 +409,17 @@ const MODE_ALLOWED_TOOLS = {
355
409
  // training cutoff, which is not a vague answer but a confident wrong one,
356
410
  // and it gets more wrong every month the model ages.
357
411
  'get_datetime',
412
+ // An audit that ends in prose ends nowhere. present_plan turns findings
413
+ // into a decision with real alternatives — fix everything now, criticals
414
+ // only, or accept this risk and write down why — and an accepted plan
415
+ // becomes a record in Decisions/records/. That record is what stops the
416
+ // NEXT audit re-reporting a risk you consciously took, which is the thing
417
+ // that makes people stop running audits at all.
418
+ //
419
+ // todo_write is safe here despite feeding the Builder hand-off: the mode
420
+ // gate refuses to dispatch for any mode that cannot edit files, and this
421
+ // one cannot. Security proposes the fix; work mode makes it.
422
+ 'present_plan', 'todo_write',
358
423
  'switch_mode',
359
424
  ]),
360
425
  // Health Room — Ava focused entirely on the user's health & fitness. Same
@@ -552,29 +617,10 @@ export function detectModeFromMessages(messages) {
552
617
  const text = getTextContent(msg.content);
553
618
  if (text.startsWith('[Internal Planning'))
554
619
  continue;
555
- if (text.startsWith('[Plan Mode]'))
556
- return 'plan';
557
- if (text.startsWith('[Chat Mode]'))
558
- return 'chat';
559
- if (text.startsWith('[Brainstorm Mode]'))
560
- return 'brainstorm';
561
- if (text.startsWith('[Write Mode]'))
562
- return 'write';
563
- if (text.startsWith('[Teach Mode]'))
564
- return 'teach';
565
- if (text.startsWith('[Security Audit Mode]'))
566
- return 'security';
567
- if (text.startsWith('[Desktop Automation Mode]'))
568
- return 'desktop';
569
- if (text.startsWith('[Health Room]'))
570
- return 'health';
571
- if (text.startsWith('[Design Studio]'))
572
- return 'design';
573
- if (text.startsWith('[Social Studio]'))
574
- return 'social';
575
- if (text.startsWith('[Newsroom]'))
576
- return 'news';
577
- break;
620
+ // One list, in agent/mode-tags.ts. This used to be eleven hand-written
621
+ // startsWith calls, and the other eight copies of the same list around
622
+ // the codebase each disagreed with it in a different way.
623
+ return modeForTaggedText(text);
578
624
  }
579
625
  return null;
580
626
  }
@@ -1272,24 +1318,41 @@ export class Agent {
1272
1318
  }
1273
1319
  const useNativeTools = this.model.supportsToolCalls !== false;
1274
1320
  const allSchemas = this.toolRegistry.getSchemas();
1275
- // Mode-aware filtering: restrict tool schemas to only those allowed in
1276
- // the active mode. When the user message lacks an explicit mode prefix
1277
- // (default work / code path on both surfaces), the per-mode allowlist
1278
- // can't apply but we still need to keep desktop-only tools out of
1279
- // non-desktop turns, otherwise the model can hallucinate desktop_*
1280
- // calls in code mode and the gate noise leaks into a coding turn.
1281
- const modeAllowed = detectedMode ? MODE_ALLOWED_TOOLS[detectedMode] : null;
1321
+ // ── Mode-aware filtering ───────────────────────────────────────────
1322
+ // Every mode except code wraps the user's message in a literal tag, so
1323
+ // the ABSENCE of a tag is not missing information — it is code mode's
1324
+ // signal. run() has read it that way since it started opening
1325
+ // trajectories (`?? 'work'`); this filter read the same absence as "no
1326
+ // restrictions at all". One fact, two readings, and the cost was that
1327
+ // work's allowlist never applied: coding turns shipped all 118 schemas,
1328
+ // ~25K tokens of context spent describing recipe and health tools to
1329
+ // someone writing TypeScript. That is context not holding her actual
1330
+ // work — a capability cost, not a billing one.
1331
+ //
1332
+ // Desktop tools stay out on both branches. That was the one restriction
1333
+ // the old fallback did apply, and it is load-bearing.
1334
+ const effectiveMode = detectedMode ?? 'work';
1335
+ const modeAllowed = MODE_ALLOWED_TOOLS[effectiveMode] ?? null;
1336
+ // Keyed on the MODE, not on whether a tag was present. Keying it on tag
1337
+ // presence works today only because code mode is the untagged one — the
1338
+ // moment a `[Work Mode]` tag exists, that spelling would silently flip
1339
+ // the gate to enforce and the whole staged rollout would vanish.
1340
+ // Every other mode has been enforcing for months and continues to.
1341
+ const applyModeGate = modeAllowed !== null
1342
+ && (effectiveMode !== 'work' || WORK_TOOL_GATE === 'enforce');
1282
1343
  let filteredSchemas;
1283
- if (modeAllowed) {
1344
+ if (modeAllowed && applyModeGate) {
1284
1345
  filteredSchemas = allSchemas.filter(s => modeAllowed.has(s.function.name) || ALWAYS_ALLOWED_TOOLS.has(s.function.name));
1285
1346
  }
1286
1347
  else {
1287
- // No prefix detected. Filter only the desktop-only tools so the
1288
- // surgical leak closes without tightening any other tool the user
1289
- // may have been calling in unprefixed turns (journal_write, weather,
1290
- // etc. — those stay available exactly as before).
1291
1348
  filteredSchemas = allSchemas.filter(s => !DESKTOP_ONLY_TOOLS.has(s.function.name));
1292
1349
  }
1350
+ if (modeAllowed && !applyModeGate) {
1351
+ const withheld = allSchemas.filter(s => !modeAllowed.has(s.function.name)
1352
+ && !ALWAYS_ALLOWED_TOOLS.has(s.function.name)
1353
+ && !DESKTOP_ONLY_TOOLS.has(s.function.name)).length;
1354
+ logger.info(`[agent] work-gate(log-only): would withhold ${withheld} of ${allSchemas.length} schemas; shipping all`);
1355
+ }
1293
1356
  // Tools always available when the model supports them. Intent shapes
1294
1357
  // the response style via the nudge below, not via schema removal.
1295
1358
  const toolSchemas = useNativeTools ? filteredSchemas : [];
@@ -2046,12 +2109,47 @@ export class Agent {
2046
2109
  // above. The two must agree: offering a schema and then blocking the call
2047
2110
  // gives the model a tool it can see and cannot use, which reads to the
2048
2111
  // user as Ava being broken rather than restricted.
2112
+ //
2113
+ // Gated on applyModeGate, NOT on modeAllowed. During code mode's
2114
+ // log-only stage the set is computed but the schemas all ship, and
2115
+ // blocking here would do precisely what the paragraph above forbids:
2116
+ // offer a tool and then refuse the call.
2049
2117
  if (modeAllowed) {
2050
2118
  const isAllowed = (name) => modeAllowed.has(name) || ALWAYS_ALLOWED_TOOLS.has(name);
2051
2119
  const blocked = assistantMessage.tool_calls.filter((tc) => !isAllowed(tc.function.name));
2052
- if (blocked.length > 0) {
2120
+ if (blocked.length > 0 && !applyModeGate) {
2121
+ // The evidence worth having. The static count says what is in play;
2122
+ // this says what she actually reached for while coding — and
2123
+ // anything appearing here is a hole in the list, not a mistake by
2124
+ // her.
2125
+ //
2126
+ // Written to a FILE, not just the console. logger goes to
2127
+ // console.info, which in the VS Code extension host lands in the
2128
+ // Extension Host output and is kept nowhere — so the one signal this
2129
+ // whole staged rollout exists to collect would have been unreadable
2130
+ // by the time anyone went looking.
2131
+ //
2132
+ // The absence of this file after a real session is the result we
2133
+ // want: nothing reached for, safe to enforce.
2134
+ const names = blocked.map((tc) => tc.function.name).join(', ');
2135
+ logger.warn(`[agent] work-gate(log-only): REACHED ${names} — allowed through`);
2136
+ // Not from a test run. The suite drives this agent with fixture tools
2137
+ // (echo, noop, always_fails_port) that are naturally outside work's
2138
+ // allowlist, so every run appended to the REAL ~/.ava/work-gate.log
2139
+ // — 784 lines of it before anyone looked. That is both rude (library
2140
+ // code writing to a developer's home directory) and self-defeating:
2141
+ // the one signal this file exists to carry was buried in fixtures.
2142
+ if (!process.env.VITEST)
2143
+ try {
2144
+ appendFileSync(join(AVA_HOME, WORK_GATE_LOG), `${new Date().toISOString()}\t${this.model.id}\t${names}\n`, 'utf8');
2145
+ }
2146
+ catch {
2147
+ // Best effort. A diagnostic must never be the reason a turn fails.
2148
+ }
2149
+ }
2150
+ if (blocked.length > 0 && applyModeGate) {
2053
2151
  const blockedNames = blocked.map((tc) => tc.function.name).join(', ');
2054
- logger.warn(`[agent] Mode ${detectedMode} blocked tools: ${blockedNames}`);
2152
+ logger.warn(`[agent] Mode ${effectiveMode} blocked tools: ${blockedNames}`);
2055
2153
  // assistantMessage is already in `messages` (pushed unconditionally
2056
2154
  // earlier in the loop). The original code pushed it again inside
2057
2155
  // the for-loop, producing duplicate assistant turns in history
@@ -2059,7 +2157,9 @@ export class Agent {
2059
2157
  for (const tc of blocked) {
2060
2158
  messages.push({
2061
2159
  role: 'tool',
2062
- content: `Tool "${tc.function.name}" is not available in ${detectedMode} mode. This mode is read-only — use work mode (>>) to make changes.`,
2160
+ content: modeCanEditFiles(effectiveMode)
2161
+ ? `Tool "${tc.function.name}" belongs to a different mode. Call switch_mode to reach it, then carry on.`
2162
+ : `Tool "${tc.function.name}" is not available in ${effectiveMode} mode. This mode is read-only — use work mode (>>) to make changes.`,
2063
2163
  tool_call_id: tc.id,
2064
2164
  });
2065
2165
  }