@yagr/agent 0.2.5 → 0.2.7

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 (91) hide show
  1. package/dist/agent.d.ts +15 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +35 -4
  4. package/dist/agent.js.map +1 -1
  5. package/dist/cli.js +124 -36
  6. package/dist/cli.js.map +1 -1
  7. package/dist/config/gateway-daemon.d.ts +10 -0
  8. package/dist/config/gateway-daemon.d.ts.map +1 -0
  9. package/dist/config/gateway-daemon.js +42 -0
  10. package/dist/config/gateway-daemon.js.map +1 -0
  11. package/dist/config/init-yagr-home.js +5 -4
  12. package/dist/config/init-yagr-home.js.map +1 -1
  13. package/dist/config/local-state.js +2 -2
  14. package/dist/config/local-state.js.map +1 -1
  15. package/dist/config/n8n-config-service.d.ts +10 -0
  16. package/dist/config/n8n-config-service.d.ts.map +1 -1
  17. package/dist/config/n8n-config-service.js +52 -4
  18. package/dist/config/n8n-config-service.js.map +1 -1
  19. package/dist/config/yagr-home.d.ts +4 -0
  20. package/dist/config/yagr-home.d.ts.map +1 -1
  21. package/dist/config/yagr-home.js +12 -4
  22. package/dist/config/yagr-home.js.map +1 -1
  23. package/dist/gateway/format-message.d.ts +25 -0
  24. package/dist/gateway/format-message.d.ts.map +1 -0
  25. package/dist/gateway/format-message.js +166 -0
  26. package/dist/gateway/format-message.js.map +1 -0
  27. package/dist/gateway/interactive-ui.d.ts.map +1 -1
  28. package/dist/gateway/interactive-ui.js +127 -15
  29. package/dist/gateway/interactive-ui.js.map +1 -1
  30. package/dist/gateway/manager.d.ts +7 -0
  31. package/dist/gateway/manager.d.ts.map +1 -1
  32. package/dist/gateway/manager.js +76 -0
  33. package/dist/gateway/manager.js.map +1 -1
  34. package/dist/gateway/telegram.d.ts.map +1 -1
  35. package/dist/gateway/telegram.js +70 -13
  36. package/dist/gateway/telegram.js.map +1 -1
  37. package/dist/gateway/webui.d.ts.map +1 -1
  38. package/dist/gateway/webui.js +19 -7
  39. package/dist/gateway/webui.js.map +1 -1
  40. package/dist/prompt/build-system-prompt.d.ts +11 -0
  41. package/dist/prompt/build-system-prompt.d.ts.map +1 -1
  42. package/dist/prompt/build-system-prompt.js +99 -55
  43. package/dist/prompt/build-system-prompt.js.map +1 -1
  44. package/dist/runtime/completion-gate.d.ts.map +1 -1
  45. package/dist/runtime/completion-gate.js +3 -2
  46. package/dist/runtime/completion-gate.js.map +1 -1
  47. package/dist/runtime/context-compaction.d.ts.map +1 -1
  48. package/dist/runtime/context-compaction.js +2 -7
  49. package/dist/runtime/context-compaction.js.map +1 -1
  50. package/dist/runtime/outcome.d.ts.map +1 -1
  51. package/dist/runtime/outcome.js +3 -0
  52. package/dist/runtime/outcome.js.map +1 -1
  53. package/dist/runtime/policy-hooks.d.ts +2 -0
  54. package/dist/runtime/policy-hooks.d.ts.map +1 -1
  55. package/dist/runtime/policy-hooks.js +42 -0
  56. package/dist/runtime/policy-hooks.js.map +1 -1
  57. package/dist/runtime/run-engine.d.ts +15 -1
  58. package/dist/runtime/run-engine.d.ts.map +1 -1
  59. package/dist/runtime/run-engine.js +264 -112
  60. package/dist/runtime/run-engine.js.map +1 -1
  61. package/dist/setup/setup-wizard.d.ts +1 -1
  62. package/dist/setup/setup-wizard.d.ts.map +1 -1
  63. package/dist/setup/setup-wizard.js +40 -5
  64. package/dist/setup/setup-wizard.js.map +1 -1
  65. package/dist/setup/start-launcher.d.ts +2 -21
  66. package/dist/setup/start-launcher.d.ts.map +1 -1
  67. package/dist/setup/start-launcher.js +14 -63
  68. package/dist/setup/start-launcher.js.map +1 -1
  69. package/dist/setup.d.ts +1 -0
  70. package/dist/setup.d.ts.map +1 -1
  71. package/dist/setup.js +31 -7
  72. package/dist/setup.js.map +1 -1
  73. package/dist/tools/build-tools.d.ts +9 -3
  74. package/dist/tools/build-tools.d.ts.map +1 -1
  75. package/dist/tools/n8nac.d.ts +7 -3
  76. package/dist/tools/n8nac.d.ts.map +1 -1
  77. package/dist/tools/n8nac.js +30 -5
  78. package/dist/tools/n8nac.js.map +1 -1
  79. package/dist/tools/present-workflow-result.d.ts +7 -0
  80. package/dist/tools/present-workflow-result.d.ts.map +1 -1
  81. package/dist/tools/present-workflow-result.js +84 -2
  82. package/dist/tools/present-workflow-result.js.map +1 -1
  83. package/dist/tools/workspace-utils.js +2 -2
  84. package/dist/tools/workspace-utils.js.map +1 -1
  85. package/dist/types.d.ts +2 -0
  86. package/dist/types.d.ts.map +1 -1
  87. package/dist/webui/app.js +23 -15
  88. package/dist/webui/app.js.map +2 -2
  89. package/dist/webui/styles.css +106 -34
  90. package/dist/webui/styles.css.map +2 -2
  91. package/package.json +2 -2
@@ -2,18 +2,37 @@ import { randomUUID } from 'node:crypto';
2
2
  import { generateText, streamText } from 'ai';
3
3
  import { createLanguageModel } from '../llm/create-language-model.js';
4
4
  import { resolveModelContextProfile } from '../llm/create-language-model.js';
5
- import { buildSystemPrompt } from '../prompt/build-system-prompt.js';
6
5
  import { buildTools } from '../tools/index.js';
7
6
  import { evaluateCompletionGate } from './completion-gate.js';
8
7
  import { compactConversationContext } from './context-compaction.js';
9
8
  import { analyzeRunOutcome, formatObservedAction } from './outcome.js';
10
- import { wrapToolsWithRuntimeHooks } from './policy-hooks.js';
9
+ import { createDefaultRuntimeHooks, wrapToolsWithRuntimeHooks } from './policy-hooks.js';
11
10
  import { blockingStateForRequiredActions, collectRequiredActions } from './required-actions.js';
12
11
  const INSPECT_MAX_STEPS = 4;
13
12
  const EXECUTE_MAX_STEPS = 10;
14
13
  const EXECUTE_RECOVERY_MAX_STEPS = 6;
15
14
  const MAX_EXECUTION_ATTEMPTS = 3;
16
15
  const PHASE_ORDER = ['inspect', 'plan', 'edit', 'validate', 'sync', 'verify', 'summarize'];
16
+ const STREAM_FILTER_HOLDBACK = 256;
17
+ /**
18
+ * Structural delimiters injected around every internal prompt (phase instructions,
19
+ * recovery prompts). The stream filter strips everything between an open and a close
20
+ * tag — one single regex, no coupling to the prompt wording.
21
+ */
22
+ export const INTERNAL_TAG_OPEN = '\u200B\u27E8yagr:internal\u27E9\u200B';
23
+ export const INTERNAL_TAG_CLOSE = '\u200B\u27E8/yagr:internal\u27E9\u200B';
24
+ const INTERNAL_TAG_REGEX = new RegExp(`${INTERNAL_TAG_OPEN.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}[\\s\\S]*?${INTERNAL_TAG_CLOSE.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}`, 'g');
25
+ class RepetitiveAssistantOutputError extends Error {
26
+ partialText;
27
+ constructor(message, partialText) {
28
+ super(message);
29
+ this.partialText = partialText;
30
+ this.name = 'RepetitiveAssistantOutputError';
31
+ }
32
+ }
33
+ function isRepetitiveAssistantOutputError(error) {
34
+ return error instanceof RepetitiveAssistantOutputError;
35
+ }
17
36
  function createAbortError(message = 'Yagr run stopped by user.') {
18
37
  const error = new Error(message);
19
38
  error.name = 'AbortError';
@@ -31,24 +50,147 @@ function throwIfAborted(signal) {
31
50
  }
32
51
  throw createAbortError(typeof signal.reason === 'string' && signal.reason ? signal.reason : undefined);
33
52
  }
53
+ function wrapInternal(text) {
54
+ return `${INTERNAL_TAG_OPEN}${text}${INTERNAL_TAG_CLOSE}`;
55
+ }
34
56
  function createPhasePrompt(phase, userPrompt) {
35
57
  if (phase === 'inspect') {
36
- return [
58
+ return wrapInternal([
37
59
  'Yagr internal phase: inspect.',
38
60
  'Analyze the request and gather only the context needed to execute it correctly.',
39
- 'Use tools to inspect the workspace, existing workflow files, workspace instructions, examples, and n8nac workspace status when needed.',
61
+ 'Use tools to inspect the workspace, existing workflow files, examples, and n8nac workspace status when needed.',
62
+ 'Do not reread the workspace AGENT.md or AGENTS.md file during inspect unless a specific later detail is missing from the current context.',
40
63
  'Favor correctness over speed in this phase. If an example or rule is likely to determine the right implementation, read it before acting.',
41
64
  'Do not claim completion in this phase.',
42
65
  `Original request: ${userPrompt}`,
43
- ].join('\n');
66
+ ].join('\n'));
44
67
  }
45
- return [
68
+ return wrapInternal([
46
69
  'Yagr internal phase: execute.',
47
70
  'Complete the task end-to-end using the gathered context.',
48
71
  'When appropriate, author or edit workflow files, validate them, sync them, verify them, and then summarize what changed.',
49
72
  'Ask the user only when a specific missing value blocks execution.',
50
73
  `Original request: ${userPrompt}`,
51
- ].join('\n');
74
+ ].join('\n'));
75
+ }
76
+ function trimAssistantVisibleText(text, maxChars = 12_000) {
77
+ return text.length <= maxChars ? text : text.slice(-maxChars);
78
+ }
79
+ function hasRepeatedSuffix(text, minimumBlockSize = 180, maximumBlockSize = 4_000) {
80
+ const maxCandidateSize = Math.min(Math.floor(text.length / 2), maximumBlockSize);
81
+ if (maxCandidateSize < minimumBlockSize) {
82
+ return false;
83
+ }
84
+ for (let blockSize = maxCandidateSize; blockSize >= minimumBlockSize; blockSize -= 20) {
85
+ const suffix = text.slice(-blockSize);
86
+ const previous = text.slice(-(blockSize * 2), -blockSize);
87
+ if (suffix === previous) {
88
+ return true;
89
+ }
90
+ }
91
+ return false;
92
+ }
93
+ function stripInternalPromptScaffolding(text) {
94
+ return text.replace(INTERNAL_TAG_REGEX, '');
95
+ }
96
+ export function sanitizeAssistantOutput(text) {
97
+ return stripInternalPromptScaffolding(text)
98
+ .split('\n')
99
+ .map((line) => line.trimEnd())
100
+ .filter((line) => line.trim().length > 0)
101
+ .join('\n')
102
+ .trim();
103
+ }
104
+ export function sanitizeAssistantMessageContent(content) {
105
+ if (typeof content === 'string') {
106
+ return sanitizeAssistantOutput(content);
107
+ }
108
+ if (!Array.isArray(content)) {
109
+ return content;
110
+ }
111
+ const sanitizedParts = content.flatMap((part) => {
112
+ if (!part || typeof part !== 'object') {
113
+ return [];
114
+ }
115
+ if ('type' in part && part.type === 'text' && 'text' in part && typeof part.text === 'string') {
116
+ const text = sanitizeAssistantOutput(part.text);
117
+ return text ? [{ ...part, text }] : [];
118
+ }
119
+ return [part];
120
+ });
121
+ return sanitizedParts;
122
+ }
123
+ export function sanitizeAssistantResponseMessages(messages) {
124
+ const sanitizedMessages = [];
125
+ for (const message of messages) {
126
+ if (message.role !== 'assistant') {
127
+ sanitizedMessages.push(message);
128
+ continue;
129
+ }
130
+ const content = sanitizeAssistantMessageContent(message.content);
131
+ if (typeof content === 'string' && !content) {
132
+ continue;
133
+ }
134
+ if (Array.isArray(content) && content.length === 0) {
135
+ continue;
136
+ }
137
+ sanitizedMessages.push({ ...message, content });
138
+ }
139
+ return sanitizedMessages;
140
+ }
141
+ export function shouldAbortForInternalPromptLeak(rawText, visibleText = '') {
142
+ const tagCount = (rawText.match(INTERNAL_TAG_REGEX) ?? []).length;
143
+ if (tagCount < 2) {
144
+ return false;
145
+ }
146
+ return sanitizeAssistantOutput(visibleText).length === 0;
147
+ }
148
+ export function shouldAbortForRepetitiveAssistantOutput(visibleText) {
149
+ const normalized = visibleText.trim();
150
+ if (normalized.length < 240) {
151
+ return false;
152
+ }
153
+ return hasRepeatedSuffix(normalized);
154
+ }
155
+ function appendVisibleAssistantText(state, text) {
156
+ if (!text) {
157
+ return;
158
+ }
159
+ state.visibleText = trimAssistantVisibleText(`${state.visibleText}${text}`);
160
+ if (shouldAbortForRepetitiveAssistantOutput(state.visibleText)) {
161
+ throw new RepetitiveAssistantOutputError('Run stopped after repeated final response output. The model kept repeating the same completion block instead of finishing.', sanitizeAssistantOutput(state.visibleText));
162
+ }
163
+ }
164
+ function createAssistantStreamFilterState() {
165
+ return {
166
+ rawText: '',
167
+ pendingRaw: '',
168
+ visibleText: '',
169
+ emittedVisibleChars: 0,
170
+ };
171
+ }
172
+ function consumeAssistantTextDelta(state, delta) {
173
+ state.rawText += delta;
174
+ state.pendingRaw += delta;
175
+ if (shouldAbortForInternalPromptLeak(state.rawText, state.visibleText)) {
176
+ throw new Error('Run stopped after repeated internal prompt leakage. The model kept echoing Yagr internal instructions instead of progressing.');
177
+ }
178
+ if (state.pendingRaw.length <= STREAM_FILTER_HOLDBACK) {
179
+ return '';
180
+ }
181
+ const processable = state.pendingRaw.slice(0, -STREAM_FILTER_HOLDBACK);
182
+ state.pendingRaw = state.pendingRaw.slice(-STREAM_FILTER_HOLDBACK);
183
+ const safeText = stripInternalPromptScaffolding(processable);
184
+ appendVisibleAssistantText(state, safeText);
185
+ state.emittedVisibleChars += safeText.length;
186
+ return safeText;
187
+ }
188
+ function flushAssistantTextDelta(state) {
189
+ const safeText = sanitizeAssistantOutput(state.pendingRaw);
190
+ state.pendingRaw = '';
191
+ appendVisibleAssistantText(state, safeText);
192
+ state.emittedVisibleChars += safeText.length;
193
+ return safeText;
52
194
  }
53
195
  function buildJournalEntry(entry) {
54
196
  return {
@@ -135,16 +277,16 @@ function buildGroundedSummary(_prompt, finishReason, journal, requiredActions) {
135
277
  if (requiredActions.length > 0) {
136
278
  lines.push(`Actions requises en attente: ${requiredActions.map((action) => `${action.title} [${action.kind}]`).join(', ')}`);
137
279
  }
138
- if (!outcome.successfulValidate) {
280
+ if (outcome.hasWorkflowWrites && !outcome.successfulValidate) {
139
281
  lines.push('La validation du workflow n’a pas ete confirmee.');
140
282
  }
141
- if (!outcome.successfulPush) {
283
+ if (outcome.hasWorkflowWrites && !outcome.successfulPush) {
142
284
  lines.push('Le push vers n8n n’a pas ete confirme.');
143
285
  }
144
- if (!outcome.successfulVerify) {
286
+ if (outcome.hasWorkflowWrites && !outcome.successfulVerify) {
145
287
  lines.push('La verification distante n’a pas ete confirmee.');
146
288
  }
147
- if (outcome.unresolvedFailedActions.length > 0) {
289
+ if (outcome.hasWorkflowWrites && outcome.unresolvedFailedActions.length > 0) {
148
290
  lines.push('Le run s’est arrete alors que certaines actions avaient encore echoue. Une correction supplementaire reste necessaire ou un bloqueur externe persiste.');
149
291
  }
150
292
  if (finishReason !== 'stop') {
@@ -152,29 +294,13 @@ function buildGroundedSummary(_prompt, finishReason, journal, requiredActions) {
152
294
  }
153
295
  return lines.join('\n');
154
296
  }
155
- async function ensureFinalText(_options, prompt, finishReason, journal, existingText, requiredActions, completionAccepted) {
156
- const groundedSummary = buildGroundedSummary(prompt, finishReason, journal, requiredActions);
157
- const sanitizedText = existingText
158
- .split('\n')
159
- .filter((line) => {
160
- const trimmed = line.trim();
161
- return trimmed.length > 0
162
- && !trimmed.startsWith('Yagr internal phase:')
163
- && trimmed !== 'think silently.'
164
- && trimmed !== 'Complete the task end-to-end using the gathered context.'
165
- && trimmed !== 'When appropriate, author or edit workflow files, validate them, sync them, verify them, and then summarize what changed.'
166
- && trimmed !== 'Ask the user only when a specific missing value blocks execution.'
167
- && !trimmed.startsWith('Original request:');
168
- })
169
- .join('\n')
170
- .trim();
171
- if (!completionAccepted) {
172
- return groundedSummary;
173
- }
174
- if (!sanitizedText) {
175
- return groundedSummary;
297
+ function ensureFinalText(prompt, finishReason, journal, existingText, requiredActions, completionAccepted) {
298
+ const sanitizedText = sanitizeAssistantOutput(existingText);
299
+ if (completionAccepted && sanitizedText) {
300
+ return sanitizedText;
176
301
  }
177
- return sanitizedText;
302
+ return buildGroundedSummary(prompt, finishReason, journal, requiredActions)
303
+ || 'Run stopped before producing a grounded result.';
178
304
  }
179
305
  function buildRuntimeContext(state) {
180
306
  return {
@@ -286,89 +412,83 @@ function buildRecoveryPrompt(outcome, attemptNumber) {
286
412
  failedActions ? `Actions en echec: ${failedActions}.` : '',
287
413
  missingChecks.length > 0 ? `Etapes non confirmees: ${missingChecks.join(', ')}.` : '',
288
414
  ].filter(Boolean).join(' ');
289
- return [
415
+ return wrapInternal([
290
416
  `Yagr internal recovery pass ${attemptNumber}.`,
291
417
  issues,
292
418
  'Do not summarize yet.',
293
419
  'Inspect the failing tool output, correct the local files or command arguments, and retry the necessary steps now.',
294
420
  'Only stop if a genuine blocker remains that cannot be resolved locally in this run.',
295
- ].join(' ');
421
+ ].join(' '));
296
422
  }
297
423
  async function executePhase(state, options, systemPrompt, tools, messages, maxSteps) {
298
424
  throwIfAborted(options.abortSignal);
299
- if (options.onTextDelta || options.onStepFinish || options.onPhaseChange || options.onJournalEntry) {
300
- const result = streamText({
301
- abortSignal: options.abortSignal,
302
- model: createLanguageModel(options),
303
- system: systemPrompt,
304
- tools,
305
- messages,
306
- maxSteps,
307
- toolCallStreaming: true,
308
- onStepFinish: async (stepResult) => {
309
- await recordStep(state, options, {
310
- stepType: stepResult.stepType,
311
- finishReason: String(stepResult.finishReason),
312
- toolCalls: stepResult.toolCalls.map((toolCall) => ({
313
- toolName: toolCall.toolName,
314
- args: toolCall.args,
315
- })),
316
- toolResults: stepResult.toolResults.map((toolResult) => ({
317
- toolName: toolResult.toolName,
318
- result: toolResult.result,
319
- })),
320
- text: stepResult.text,
321
- });
322
- },
323
- });
324
- for await (const textDelta of result.textStream) {
325
- throwIfAborted(options.abortSignal);
326
- await options.onTextDelta?.(textDelta);
327
- }
328
- const response = await result.response;
329
- const resolved = await Promise.all([
330
- result.text,
331
- result.finishReason,
332
- result.steps,
333
- result.toolCalls,
334
- ]);
335
- return {
336
- text: resolved[0],
337
- finishReason: String(resolved[1]),
338
- steps: resolved[2].length,
339
- toolCalls: resolved[3].map((toolCall) => ({ toolName: toolCall.toolName })),
340
- responseMessages: response.messages,
341
- };
342
- }
343
- const result = await generateText({
425
+ let recordedSteps = 0;
426
+ const recordedToolNames = new Set();
427
+ const result = streamText({
344
428
  abortSignal: options.abortSignal,
345
429
  model: createLanguageModel(options),
346
430
  system: systemPrompt,
347
431
  tools,
348
432
  messages,
349
433
  maxSteps,
434
+ toolCallStreaming: true,
435
+ onStepFinish: async (stepResult) => {
436
+ recordedSteps += 1;
437
+ for (const toolCall of stepResult.toolCalls) {
438
+ recordedToolNames.add(toolCall.toolName);
439
+ }
440
+ await recordStep(state, options, {
441
+ stepType: stepResult.stepType,
442
+ finishReason: String(stepResult.finishReason),
443
+ toolCalls: stepResult.toolCalls.map((toolCall) => ({
444
+ toolName: toolCall.toolName,
445
+ args: toolCall.args,
446
+ })),
447
+ toolResults: stepResult.toolResults.map((toolResult) => ({
448
+ toolName: toolResult.toolName,
449
+ result: toolResult.result,
450
+ })),
451
+ text: stepResult.text,
452
+ });
453
+ },
350
454
  });
351
- for (const step of result.steps) {
352
- await recordStep(state, options, {
353
- stepType: step.stepType,
354
- finishReason: String(step.finishReason),
355
- toolCalls: step.toolCalls.map((toolCall) => ({
356
- toolName: toolCall.toolName,
357
- args: toolCall.args,
358
- })),
359
- toolResults: step.toolResults.map((toolResult) => ({
360
- toolName: toolResult.toolName,
361
- result: toolResult.result,
362
- })),
363
- text: step.text,
364
- });
455
+ const streamState = createAssistantStreamFilterState();
456
+ try {
457
+ for await (const textDelta of result.textStream) {
458
+ throwIfAborted(options.abortSignal);
459
+ consumeAssistantTextDelta(streamState, textDelta);
460
+ }
461
+ }
462
+ catch (error) {
463
+ if (!isRepetitiveAssistantOutputError(error)) {
464
+ throw error;
465
+ }
466
+ return {
467
+ text: error.partialText,
468
+ finishReason: 'stop',
469
+ steps: recordedSteps,
470
+ toolCalls: [...recordedToolNames].map((toolName) => ({ toolName })),
471
+ responseMessages: [],
472
+ };
473
+ }
474
+ flushAssistantTextDelta(streamState);
475
+ const response = await result.response;
476
+ const resolved = await Promise.all([
477
+ result.text,
478
+ result.finishReason,
479
+ result.steps,
480
+ result.toolCalls,
481
+ ]);
482
+ const finalText = sanitizeAssistantOutput(resolved[0]);
483
+ if (finalText) {
484
+ await options.onTextDelta?.(finalText);
365
485
  }
366
486
  return {
367
- text: result.text,
368
- finishReason: String(result.finishReason),
369
- steps: result.steps.length,
370
- toolCalls: result.toolCalls.map((toolCall) => ({ toolName: toolCall.toolName })),
371
- responseMessages: result.response.messages,
487
+ text: finalText,
488
+ finishReason: String(resolved[1]),
489
+ steps: resolved[2].length,
490
+ toolCalls: resolved[3].map((toolCall) => ({ toolName: toolCall.toolName })),
491
+ responseMessages: response.messages,
372
492
  };
373
493
  }
374
494
  async function transitionPhase(state, options, phase, status, message) {
@@ -420,9 +540,11 @@ async function recordStep(state, options, step) {
420
540
  export class YagrRunEngine {
421
541
  engine;
422
542
  history;
423
- constructor(engine, history) {
543
+ systemPrompt;
544
+ constructor(engine, history, systemPrompt) {
424
545
  this.engine = engine;
425
546
  this.history = history;
547
+ this.systemPrompt = systemPrompt;
426
548
  }
427
549
  async execute(prompt, options = {}) {
428
550
  const state = {
@@ -437,11 +559,11 @@ export class YagrRunEngine {
437
559
  role: 'user',
438
560
  content: prompt,
439
561
  };
440
- const systemPrompt = buildSystemPrompt(this.engine);
562
+ const runtimeHooks = [...createDefaultRuntimeHooks(), ...(options.runtimeHooks ?? [])];
441
563
  const baseTools = buildTools(this.engine, {
442
564
  onToolEvent: withRuntimeToolEvents(state, options),
443
565
  });
444
- const tools = wrapToolsWithRuntimeHooks(baseTools, options.runtimeHooks, () => ({
566
+ const tools = wrapToolsWithRuntimeHooks(baseTools, runtimeHooks, () => ({
445
567
  runId: state.runId,
446
568
  phase: state.currentPhase,
447
569
  state: state.currentAgentState,
@@ -458,7 +580,7 @@ export class YagrRunEngine {
458
580
  try {
459
581
  throwIfAborted(options.abortSignal);
460
582
  await transitionPhase(state, options, 'inspect', 'started', 'Inspecting workspace and task context.');
461
- executionContext = await maybeCompactMessages(state, options, systemPrompt, prompt, executionContext);
583
+ executionContext = await maybeCompactMessages(state, options, this.systemPrompt, prompt, executionContext);
462
584
  const inspectInstruction = {
463
585
  role: 'user',
464
586
  content: createPhasePrompt('inspect', prompt),
@@ -466,7 +588,7 @@ export class YagrRunEngine {
466
588
  const inspectResult = await generateText({
467
589
  abortSignal: options.abortSignal,
468
590
  model: createLanguageModel(options),
469
- system: systemPrompt,
591
+ system: this.systemPrompt,
470
592
  tools,
471
593
  messages: [...executionContext, inspectInstruction],
472
594
  maxSteps: Math.min(options.maxSteps ?? 8, INSPECT_MAX_STEPS),
@@ -489,7 +611,7 @@ export class YagrRunEngine {
489
611
  if (state.currentPhase === 'inspect') {
490
612
  await transitionPhase(state, options, 'inspect', 'completed', 'Inspection completed.');
491
613
  }
492
- executionContext.push(inspectInstruction, ...inspectResult.response.messages);
614
+ executionContext.push(...sanitizeAssistantResponseMessages(inspectResult.response.messages));
493
615
  throwIfAborted(options.abortSignal);
494
616
  await transitionPhase(state, options, 'plan', 'started', 'Preparing execution plan.');
495
617
  await transitionPhase(state, options, 'plan', 'completed', 'Execution plan ready.');
@@ -505,13 +627,15 @@ export class YagrRunEngine {
505
627
  let responseMessages = [];
506
628
  for (let attemptNumber = 1; attemptNumber <= MAX_EXECUTION_ATTEMPTS; attemptNumber += 1) {
507
629
  throwIfAborted(options.abortSignal);
508
- executeMessages = await maybeCompactMessages(state, options, systemPrompt, prompt, executeMessages);
509
- const phaseResult = await executePhase(state, options, systemPrompt, tools, executeMessages, attemptNumber === 1 ? (options.maxSteps ?? EXECUTE_MAX_STEPS) : Math.min(options.maxSteps ?? EXECUTE_MAX_STEPS, EXECUTE_RECOVERY_MAX_STEPS));
510
- text = phaseResult.text;
630
+ executeMessages = await maybeCompactMessages(state, options, this.systemPrompt, prompt, executeMessages);
631
+ const phaseResult = await executePhase(state, options, this.systemPrompt, tools, executeMessages, attemptNumber === 1 ? (options.maxSteps ?? EXECUTE_MAX_STEPS) : Math.min(options.maxSteps ?? EXECUTE_MAX_STEPS, EXECUTE_RECOVERY_MAX_STEPS));
632
+ if (phaseResult.text) {
633
+ text = phaseResult.text;
634
+ }
511
635
  finishReason = phaseResult.finishReason;
512
636
  steps += phaseResult.steps;
513
637
  toolCalls = phaseResult.toolCalls;
514
- responseMessages = [...responseMessages, ...phaseResult.responseMessages];
638
+ responseMessages = [...responseMessages, ...sanitizeAssistantResponseMessages(phaseResult.responseMessages)];
515
639
  const outcome = analyzeRunOutcome(state.journal);
516
640
  const requiredActions = collectRequiredActions(state.journal);
517
641
  if (!shouldAttemptRecovery(outcome, attemptNumber, requiredActions)) {
@@ -526,7 +650,7 @@ export class YagrRunEngine {
526
650
  });
527
651
  executeMessages = [
528
652
  ...executeMessages,
529
- ...phaseResult.responseMessages,
653
+ ...sanitizeAssistantResponseMessages(phaseResult.responseMessages),
530
654
  {
531
655
  role: 'user',
532
656
  content: buildRecoveryPrompt(outcome, attemptNumber + 1),
@@ -546,7 +670,7 @@ export class YagrRunEngine {
546
670
  successfulValidate: Boolean(analyzeRunOutcome(state.journal).successfulValidate),
547
671
  successfulPush: Boolean(analyzeRunOutcome(state.journal).successfulPush),
548
672
  unresolvedFailureCount: analyzeRunOutcome(state.journal).unresolvedFailedActions.length,
549
- hooks: options.runtimeHooks,
673
+ hooks: runtimeHooks,
550
674
  context: buildRuntimeContext(state),
551
675
  });
552
676
  for (const requiredAction of completionDecision.requiredActions) {
@@ -560,7 +684,7 @@ export class YagrRunEngine {
560
684
  });
561
685
  }
562
686
  throwIfAborted(options.abortSignal);
563
- text = await ensureFinalText(options, prompt, finishReason, state.journal, text, completionDecision.requiredActions, completionDecision.accepted);
687
+ text = ensureFinalText(prompt, finishReason, state.journal, text, completionDecision.requiredActions, completionDecision.accepted);
564
688
  if (state.currentPhase && state.currentPhase !== 'summarize') {
565
689
  await transitionPhase(state, options, state.currentPhase, 'completed', `${state.currentPhase} phase completed.`);
566
690
  }
@@ -594,6 +718,7 @@ export class YagrRunEngine {
594
718
  journal: state.journal,
595
719
  },
596
720
  persistedMessages,
721
+ workspaceInstructionsMayHaveChanged: hasSuccessfulWorkspaceInstructionsRefresh(state.journal),
597
722
  };
598
723
  }
599
724
  catch (error) {
@@ -621,4 +746,31 @@ export class YagrRunEngine {
621
746
  }
622
747
  }
623
748
  }
749
+ function hasSuccessfulWorkspaceInstructionsRefresh(journal) {
750
+ return journal.some((entry) => {
751
+ if (entry.type !== 'step' || !entry.step) {
752
+ return false;
753
+ }
754
+ const n8nacActions = entry.step.toolCalls
755
+ .filter((toolCall) => toolCall.toolName === 'n8nac' && toolCall.args && typeof toolCall.args === 'object')
756
+ .map((toolCall) => {
757
+ const action = toolCall.args.action;
758
+ return typeof action === 'string' ? action : undefined;
759
+ })
760
+ .filter((action) => Boolean(action));
761
+ if (n8nacActions.includes('init_project')) {
762
+ return entry.step.toolResults.some((toolResult) => (toolResult.toolName === 'n8nac'
763
+ && toolResult.result
764
+ && typeof toolResult.result === 'object'
765
+ && toolResult.result.aiContextRefreshed === true));
766
+ }
767
+ if (n8nacActions.includes('update_ai')) {
768
+ return entry.step.toolResults.some((toolResult) => (toolResult.toolName === 'n8nac'
769
+ && toolResult.result
770
+ && typeof toolResult.result === 'object'
771
+ && toolResult.result.exitCode === 0));
772
+ }
773
+ return false;
774
+ });
775
+ }
624
776
  //# sourceMappingURL=run-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-engine.js","sourceRoot":"","sources":["../../src/runtime/run-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-engine.js","sourceRoot":"","sources":["../../src/runtime/run-engine.ts"],"names":[],"mappings":"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"}