@principles/core 1.147.0 → 1.149.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.
- package/dist/runtime-v2/__tests__/architecture-regression.test.js +5 -0
- package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
- package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.d.ts +2 -0
- package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.d.ts.map +1 -0
- package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js +420 -0
- package/dist/runtime-v2/adapter/__tests__/l2-agent-loop-adapter.test.js.map +1 -0
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts +70 -0
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts.map +1 -0
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js +478 -0
- package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js.map +1 -0
- package/dist/runtime-v2/agent-spec.d.ts +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js +5 -0
- package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
- package/dist/runtime-v2/index.d.ts +5 -0
- package/dist/runtime-v2/index.d.ts.map +1 -1
- package/dist/runtime-v2/index.js +5 -0
- package/dist/runtime-v2/index.js.map +1 -1
- package/dist/runtime-v2/runtime-protocol.d.ts +3 -3
- package/dist/runtime-v2/runtime-protocol.d.ts.map +1 -1
- package/dist/runtime-v2/runtime-protocol.js +1 -0
- package/dist/runtime-v2/runtime-protocol.js.map +1 -1
- package/dist/runtime-v2/runtime-selector.d.ts +3 -3
- package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.d.ts +2 -0
- package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.d.ts.map +1 -0
- package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.js +171 -0
- package/dist/runtime-v2/tools/__tests__/agent-tool-contract.test.js.map +1 -0
- package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.d.ts +2 -0
- package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.d.ts.map +1 -0
- package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.js +109 -0
- package/dist/runtime-v2/tools/__tests__/dreamer-output-typebox.test.js.map +1 -0
- package/dist/runtime-v2/tools/agent-tool-contract.d.ts +76 -0
- package/dist/runtime-v2/tools/agent-tool-contract.d.ts.map +1 -0
- package/dist/runtime-v2/tools/agent-tool-contract.js +136 -0
- package/dist/runtime-v2/tools/agent-tool-contract.js.map +1 -0
- package/dist/runtime-v2/tools/dreamer-output-typebox.d.ts +63 -0
- package/dist/runtime-v2/tools/dreamer-output-typebox.d.ts.map +1 -0
- package/dist/runtime-v2/tools/dreamer-output-typebox.js +55 -0
- package/dist/runtime-v2/tools/dreamer-output-typebox.js.map +1 -0
- package/dist/telemetry-event.d.ts +3 -3
- package/dist/telemetry-event.d.ts.map +1 -1
- package/dist/telemetry-event.js +8 -1
- package/dist/telemetry-event.js.map +1 -1
- package/package.json +3 -1
|
@@ -0,0 +1,478 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRI-419 §M2+§M3 — L2AgentLoopAdapter.
|
|
3
|
+
*
|
|
4
|
+
* A PDRuntimeAdapter that runs the dreamer through a multi-turn agent loop
|
|
5
|
+
* (@earendil-works/pi-agent-core) with read-only tools, instead of the one-shot
|
|
6
|
+
* completeSimple path in PiAiRuntimeAdapter.
|
|
7
|
+
*
|
|
8
|
+
* Why the low-level runAgentLoop() and not the Agent class (review P0-1):
|
|
9
|
+
* Agent.createLoopConfig() does NOT forward shouldStopAfterTurn (agent.ts:422-449),
|
|
10
|
+
* which is exactly the hook we need to (a) cap turns and (b) terminate the loop when
|
|
11
|
+
* submit_output captures output. runAgentLoop gives us shouldStopAfterTurn +
|
|
12
|
+
* beforeToolCall + tools + abort signal in one config, and returns the final
|
|
13
|
+
* transcript directly. The Agent class adds steering/followup/session machinery the
|
|
14
|
+
* headless dreamer runner does not need.
|
|
15
|
+
*
|
|
16
|
+
* Why submit_output termination is NOT left to terminate: (review P0-2)
|
|
17
|
+
* agent-loop's shouldTerminateToolBatch uses .every(r => r.result.terminate) over the
|
|
18
|
+
* whole batch (agent-loop.ts:544). If the model calls read_principles + submit_output
|
|
19
|
+
* in the same turn, the batch does not terminate. We instead stop via
|
|
20
|
+
* shouldStopAfterTurn checking the L2OutputCapture, which is turn-granular.
|
|
21
|
+
*
|
|
22
|
+
* Output extraction:
|
|
23
|
+
* 1. Primary: the params captured by the submit_output tool (deterministic, the
|
|
24
|
+
* model called the tool with a full DreamerOutputV1).
|
|
25
|
+
* 2. Fallback: if the loop ends without a capture, walk the transcript backwards to
|
|
26
|
+
* the last assistant message containing text content, then extract JSON via the
|
|
27
|
+
* same extractJsonObject used by the L1 path. This preserves behaviour when a
|
|
28
|
+
* model emits free text instead of calling submit_output.
|
|
29
|
+
*
|
|
30
|
+
* Boundary: this adapter lives in core (it is pure orchestration of pi-agent-core +
|
|
31
|
+
* the in-process tool contract from §M1; no node:* imports, no fs). The injected
|
|
32
|
+
* readers (PdL2ArtifactReader / PdL2PrincipleReader) are supplied by the factory with
|
|
33
|
+
* concrete stores that satisfy them structurally.
|
|
34
|
+
*/
|
|
35
|
+
import { runAgentLoop } from '@earendil-works/pi-agent-core';
|
|
36
|
+
import { getModel, getProviders, completeSimple } from '@earendil-works/pi-ai';
|
|
37
|
+
import { storeEmitter } from '../store/event-emitter.js';
|
|
38
|
+
import { PDRuntimeError } from '../error-categories.js';
|
|
39
|
+
import { extractJsonObject } from './json-extractor.js';
|
|
40
|
+
import { safeStringifyPreview } from './output-repair-contract.js';
|
|
41
|
+
import { buildDreamerL2Tools, DREAMER_L2_TOOL_WHITELIST, } from '../tools/agent-tool-contract.js';
|
|
42
|
+
/**
|
|
43
|
+
* Resolve a pi-ai Model from provider/model/baseUrl config (mirrors PiAiRuntimeAdapter's
|
|
44
|
+
* internal resolveModel — duplicated here because L2 imports from the @earendil-works scope
|
|
45
|
+
* while L1 uses @mariozechner; the two scopes must not cross-import). Built-in providers use
|
|
46
|
+
* getModel(); custom OpenAI-compatible endpoints construct a Model object directly.
|
|
47
|
+
*/
|
|
48
|
+
function resolveL2Model(provider, modelId, baseUrl) {
|
|
49
|
+
const knownProviders = getProviders();
|
|
50
|
+
if (knownProviders.includes(provider) && !baseUrl) {
|
|
51
|
+
// @ts-expect-error — getModel requires literal model ID types; runtime strings from config are acceptable
|
|
52
|
+
return getModel(provider, modelId);
|
|
53
|
+
}
|
|
54
|
+
if (!baseUrl) {
|
|
55
|
+
throw new PDRuntimeError('runtime_unavailable', `Provider '${provider}' is not a built-in pi-ai provider and requires a custom baseUrl.`);
|
|
56
|
+
}
|
|
57
|
+
// Custom provider with baseUrl — construct a Model object directly (openai-completions API).
|
|
58
|
+
// The literal object doesn't fully satisfy Model<string>'s discriminant union, so narrow via unknown.
|
|
59
|
+
const customModel = {
|
|
60
|
+
id: modelId,
|
|
61
|
+
name: modelId,
|
|
62
|
+
api: 'openai-completions',
|
|
63
|
+
provider,
|
|
64
|
+
baseUrl,
|
|
65
|
+
reasoning: false,
|
|
66
|
+
input: ['text'],
|
|
67
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
68
|
+
contextWindow: 128000,
|
|
69
|
+
maxTokens: 32000,
|
|
70
|
+
compat: {
|
|
71
|
+
supportsStore: false,
|
|
72
|
+
supportsDeveloperRole: false,
|
|
73
|
+
supportsReasoningEffort: false,
|
|
74
|
+
supportsUsageInStreaming: true,
|
|
75
|
+
maxTokensField: 'max_tokens',
|
|
76
|
+
requiresToolResultName: false,
|
|
77
|
+
requiresAssistantAfterToolResult: false,
|
|
78
|
+
requiresThinkingAsText: false,
|
|
79
|
+
requiresReasoningContentOnAssistantMessages: false,
|
|
80
|
+
thinkingFormat: 'deepseek',
|
|
81
|
+
supportsStrictMode: false,
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
// RUNTIME_CONTRACT: this double-assertion narrows a literal object to Model<string>'s
|
|
85
|
+
// discriminant union (the literal doesn't fully satisfy every union arm). If pi-agent-core
|
|
86
|
+
// changes Model's shape after an upgrade, this will NOT be caught at compile time — re-verify
|
|
87
|
+
// resolveL2Model's return against the live provider path after any @earendil-works/pi-ai bump.
|
|
88
|
+
return customModel;
|
|
89
|
+
}
|
|
90
|
+
const DEFAULT_MAX_TURNS = 5;
|
|
91
|
+
const DEFAULT_TOTAL_BUDGET_MS = 300_000;
|
|
92
|
+
const DEFAULT_MAX_EMPTY_RETRIES = 2;
|
|
93
|
+
/**
|
|
94
|
+
* Maximum number of completed run records retained in memory. The runs Map is bounded to
|
|
95
|
+
* prevent unbounded growth in long-running services (e.g. the auto-consumer wakes every 120s).
|
|
96
|
+
* When exceeded, the oldest entries are evicted. fetchOutput/pollRun only need recent runs.
|
|
97
|
+
*/
|
|
98
|
+
const MAX_RETAINED_RUNS = 100;
|
|
99
|
+
/** Walk the transcript backwards to the last assistant message containing text content. */
|
|
100
|
+
function extractLastAssistantText(messages) {
|
|
101
|
+
for (let i = messages.length - 1; i >= 0; i--) {
|
|
102
|
+
const msg = messages[i];
|
|
103
|
+
if (!msg || msg.role !== 'assistant')
|
|
104
|
+
continue;
|
|
105
|
+
const content = msg.content;
|
|
106
|
+
if (typeof content === 'string' && content.trim().length > 0) {
|
|
107
|
+
return content;
|
|
108
|
+
}
|
|
109
|
+
if (Array.isArray(content)) {
|
|
110
|
+
for (const part of content) {
|
|
111
|
+
if (part && typeof part === 'object' && Object.hasOwn(part, 'type')) {
|
|
112
|
+
const typeValue = Reflect.get(part, 'type');
|
|
113
|
+
if (typeValue === 'text') {
|
|
114
|
+
const textValue = Reflect.get(part, 'text');
|
|
115
|
+
if (typeof textValue === 'string' && textValue.trim().length > 0)
|
|
116
|
+
return textValue;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
export class L2AgentLoopAdapter {
|
|
125
|
+
config;
|
|
126
|
+
deps;
|
|
127
|
+
eventEmitter;
|
|
128
|
+
runs = new Map();
|
|
129
|
+
abortControllers = new Map();
|
|
130
|
+
constructor(config, deps) {
|
|
131
|
+
this.config = config;
|
|
132
|
+
this.deps = deps;
|
|
133
|
+
this.eventEmitter = config.eventEmitter ?? storeEmitter;
|
|
134
|
+
}
|
|
135
|
+
// eslint-disable-next-line @typescript-eslint/class-methods-use-this -- required by PDRuntimeAdapter interface
|
|
136
|
+
kind() {
|
|
137
|
+
return 'pi-ai-l2';
|
|
138
|
+
}
|
|
139
|
+
// eslint-disable-next-line @typescript-eslint/class-methods-use-this -- required by PDRuntimeAdapter interface
|
|
140
|
+
async getCapabilities() {
|
|
141
|
+
return {
|
|
142
|
+
supportsStructuredJsonOutput: true,
|
|
143
|
+
supportsToolUse: true, // L2 is defined by tool use
|
|
144
|
+
supportsWorkingDirectory: false,
|
|
145
|
+
supportsModelSelection: true,
|
|
146
|
+
supportsLongRunningSessions: false,
|
|
147
|
+
supportsCancellation: true,
|
|
148
|
+
supportsArtifactWriteBack: false,
|
|
149
|
+
supportsConcurrentRuns: false,
|
|
150
|
+
supportsStreaming: false,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
async refreshCapabilities() {
|
|
154
|
+
return this.getCapabilities();
|
|
155
|
+
}
|
|
156
|
+
async healthCheck() {
|
|
157
|
+
const lastCheckedAt = new Date().toISOString();
|
|
158
|
+
const apiKey = process.env[this.config.apiKeyEnv];
|
|
159
|
+
if (!apiKey) {
|
|
160
|
+
return {
|
|
161
|
+
healthy: false,
|
|
162
|
+
degraded: false,
|
|
163
|
+
warnings: [`API key not found in env: ${this.config.apiKeyEnv}`],
|
|
164
|
+
lastCheckedAt,
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
healthy: true,
|
|
169
|
+
degraded: false,
|
|
170
|
+
warnings: [],
|
|
171
|
+
lastCheckedAt,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
async startRun(input) {
|
|
175
|
+
const runId = crypto.randomUUID();
|
|
176
|
+
const startedAt = new Date().toISOString();
|
|
177
|
+
const apiKey = process.env[this.config.apiKeyEnv];
|
|
178
|
+
if (!apiKey) {
|
|
179
|
+
throw new PDRuntimeError('runtime_unavailable', `API key not found in env: ${this.config.apiKeyEnv}`);
|
|
180
|
+
}
|
|
181
|
+
const taskId = input.taskRef?.taskId ?? runId;
|
|
182
|
+
const runState = { runId, startedAt, endedAt: startedAt, status: 'failed' };
|
|
183
|
+
this.runs.set(runId, runState);
|
|
184
|
+
this.evictOldRuns();
|
|
185
|
+
const totalBudgetMs = this.config.totalBudgetMs ?? DEFAULT_TOTAL_BUDGET_MS;
|
|
186
|
+
const maxTurns = this.config.maxTurns ?? DEFAULT_MAX_TURNS;
|
|
187
|
+
const maxEmptyRetries = this.config.maxEmptyRetries ?? DEFAULT_MAX_EMPTY_RETRIES;
|
|
188
|
+
const l2FallbackToL1 = this.config.l2FallbackToL1 ?? true;
|
|
189
|
+
const abortController = new AbortController();
|
|
190
|
+
this.abortControllers.set(runId, abortController);
|
|
191
|
+
const budgetTimer = setTimeout(() => abortController.abort(), totalBudgetMs);
|
|
192
|
+
// Build the prompt message (the dreamer prompt builder already produces one JSON-string message).
|
|
193
|
+
// Serialized before the try block: if inputPayload is non-serializable (circular/BigInt),
|
|
194
|
+
// fail loud with cleanup so budgetTimer/abortController don't leak.
|
|
195
|
+
let messageContent;
|
|
196
|
+
try {
|
|
197
|
+
messageContent = typeof input.inputPayload === 'string'
|
|
198
|
+
? input.inputPayload
|
|
199
|
+
: JSON.stringify(input.inputPayload);
|
|
200
|
+
}
|
|
201
|
+
catch (err) {
|
|
202
|
+
clearTimeout(budgetTimer);
|
|
203
|
+
this.abortControllers.delete(runId);
|
|
204
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
205
|
+
runState.status = 'failed';
|
|
206
|
+
runState.reason = `inputPayload not serializable: ${reason}`;
|
|
207
|
+
runState.endedAt = new Date().toISOString();
|
|
208
|
+
throw new PDRuntimeError('input_invalid', `L2 inputPayload is not serializable: ${reason}`, { nextAction: 'ensure StartRunInput.inputPayload is a string or JSON-serializable object' });
|
|
209
|
+
}
|
|
210
|
+
// Tool usage instruction appended so the model knows the tool protocol.
|
|
211
|
+
const toolInstruction = '\n\n--- Tool protocol (L2 mode) ---\n' +
|
|
212
|
+
'You have read-only tools to ground your output:\n' +
|
|
213
|
+
' - read_principles: read the core axioms (T-01..T-10) + already-internalized principles. Call BEFORE proposing candidates.\n' +
|
|
214
|
+
' - read_artifact: read a predecessor pipeline artifact by artifactId or sourceTaskId to verify the evidence chain.\n' +
|
|
215
|
+
' - submit_output: submit your final DreamerOutputV1. You MUST call this exactly once with a complete object; the loop stops after you call it.\n' +
|
|
216
|
+
'Do not emit your final answer as free text — call submit_output.';
|
|
217
|
+
const prompts = [
|
|
218
|
+
{ role: 'user', content: messageContent + toolInstruction, timestamp: Date.now() },
|
|
219
|
+
];
|
|
220
|
+
// Telemetry accumulator shared across all L2 attempts (PRI-420 retry loop).
|
|
221
|
+
const toolsInvoked = {};
|
|
222
|
+
let totalRetryCount = 0;
|
|
223
|
+
let totalTurnCount = 0;
|
|
224
|
+
const emitLoopStarted = () => {
|
|
225
|
+
this.eventEmitter.emitTelemetry({
|
|
226
|
+
eventType: 'dreamer_l2_turn',
|
|
227
|
+
traceId: taskId,
|
|
228
|
+
timestamp: new Date().toISOString(),
|
|
229
|
+
sessionId: 'l2-adapter',
|
|
230
|
+
agentId: 'dreamer-l2',
|
|
231
|
+
payload: { runId, phase: 'loop_started', maxTurns, totalBudgetMs, maxEmptyRetries },
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
/**
|
|
235
|
+
* PRI-420: run a single agentLoop attempt with fresh state (EP-05: each retry uses fresh
|
|
236
|
+
* outputCapture/turnCount, never stale loop state).
|
|
237
|
+
* Returns a result with a `status` discriminator: 'ok' (output extracted), 'empty'
|
|
238
|
+
* (no output — triggers retry/fallback), or 'error' (loop threw).
|
|
239
|
+
*/
|
|
240
|
+
const runSingleAttempt = async () => {
|
|
241
|
+
// Fresh capture + turn counter per attempt (EP-05 loop-state freshness).
|
|
242
|
+
const outputCapture = { output: null };
|
|
243
|
+
let turnCount = 0;
|
|
244
|
+
const toolContext = {
|
|
245
|
+
artifactReader: this.deps.artifactReader,
|
|
246
|
+
principleReader: this.deps.principleReader,
|
|
247
|
+
outputCapture,
|
|
248
|
+
onToolExecution: (info) => {
|
|
249
|
+
toolsInvoked[info.toolName] = (toolsInvoked[info.toolName] ?? 0) + 1;
|
|
250
|
+
this.eventEmitter.emitTelemetry({
|
|
251
|
+
eventType: 'dreamer_l2_turn',
|
|
252
|
+
traceId: taskId,
|
|
253
|
+
timestamp: new Date().toISOString(),
|
|
254
|
+
sessionId: 'l2-adapter',
|
|
255
|
+
agentId: 'dreamer-l2',
|
|
256
|
+
payload: { runId, toolName: info.toolName, ok: info.ok, error: info.error, turn: turnCount },
|
|
257
|
+
});
|
|
258
|
+
},
|
|
259
|
+
};
|
|
260
|
+
const tools = buildDreamerL2Tools(toolContext);
|
|
261
|
+
const agentContext = {
|
|
262
|
+
systemPrompt: '',
|
|
263
|
+
messages: prompts,
|
|
264
|
+
tools,
|
|
265
|
+
};
|
|
266
|
+
const loopConfig = {
|
|
267
|
+
model: resolveL2Model(this.config.provider, this.config.model, this.config.baseUrl),
|
|
268
|
+
apiKey,
|
|
269
|
+
convertToLlm: (msgs) => msgs.map((m) => {
|
|
270
|
+
if (m.role === 'user' || m.role === 'assistant' || m.role === 'toolResult') {
|
|
271
|
+
return m;
|
|
272
|
+
}
|
|
273
|
+
throw new PDRuntimeError('output_invalid', `L2 convertToLlm encountered an unsupported message role: ${String(m.role)}`);
|
|
274
|
+
}),
|
|
275
|
+
beforeToolCall: async (ctx) => {
|
|
276
|
+
if (!DREAMER_L2_TOOL_WHITELIST.has(ctx.toolCall.name)) {
|
|
277
|
+
return { block: true, reason: `tool '${ctx.toolCall.name}' is not in the dreamer L2 whitelist` };
|
|
278
|
+
}
|
|
279
|
+
return undefined;
|
|
280
|
+
},
|
|
281
|
+
shouldStopAfterTurn: () => {
|
|
282
|
+
turnCount += 1;
|
|
283
|
+
return outputCapture.output !== null || turnCount >= maxTurns;
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
let transcript;
|
|
287
|
+
try {
|
|
288
|
+
transcript = await runAgentLoop(prompts, agentContext, loopConfig, async (event) => { void event; }, abortController.signal);
|
|
289
|
+
}
|
|
290
|
+
catch (err) {
|
|
291
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
292
|
+
return { status: 'error', reason, timedOut: abortController.signal.aborted };
|
|
293
|
+
}
|
|
294
|
+
totalTurnCount += turnCount;
|
|
295
|
+
// Extract output: primary = submit_output capture; secondary = last text-bearing assistant message.
|
|
296
|
+
if (outputCapture.output !== null) {
|
|
297
|
+
return { status: 'ok', output: outputCapture.output, usedTextFallback: false };
|
|
298
|
+
}
|
|
299
|
+
const fallbackText = extractLastAssistantText(transcript);
|
|
300
|
+
const extracted = fallbackText ? extractJsonObject(fallbackText) : null;
|
|
301
|
+
if (extracted) {
|
|
302
|
+
return { status: 'ok', output: extracted, usedTextFallback: true };
|
|
303
|
+
}
|
|
304
|
+
return { status: 'empty' };
|
|
305
|
+
};
|
|
306
|
+
emitLoopStarted();
|
|
307
|
+
// PRI-420: retry loop — attempt the agent loop up to 1 + maxEmptyRetries times.
|
|
308
|
+
// Each retry uses fresh state (EP-05). Empty responses (no submit_output, no parseable
|
|
309
|
+
// text) trigger a retry; the model API returns content=[] ~57% of the time on long prompts.
|
|
310
|
+
let l2Result = null;
|
|
311
|
+
let lastError = null;
|
|
312
|
+
const maxAttempts = 1 + maxEmptyRetries;
|
|
313
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
314
|
+
if (attempt > 0) {
|
|
315
|
+
totalRetryCount += 1;
|
|
316
|
+
this.eventEmitter.emitTelemetry({
|
|
317
|
+
eventType: 'dreamer_l2_turn',
|
|
318
|
+
traceId: taskId,
|
|
319
|
+
timestamp: new Date().toISOString(),
|
|
320
|
+
sessionId: 'l2-adapter',
|
|
321
|
+
agentId: 'dreamer-l2',
|
|
322
|
+
payload: { runId, phase: 'empty_response_retry', attempt },
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
l2Result = await runSingleAttempt();
|
|
326
|
+
if (l2Result.status === 'ok') {
|
|
327
|
+
break; // Success — output extracted.
|
|
328
|
+
}
|
|
329
|
+
if (l2Result.status === 'error') {
|
|
330
|
+
// Loop threw (timeout or execution error). Stop retrying — retrying a timeout wastes budget.
|
|
331
|
+
lastError = { reason: l2Result.reason, timedOut: l2Result.timedOut };
|
|
332
|
+
break;
|
|
333
|
+
}
|
|
334
|
+
// status === 'empty' → retry if attempts remain (loop continues).
|
|
335
|
+
}
|
|
336
|
+
clearTimeout(budgetTimer);
|
|
337
|
+
this.abortControllers.delete(runId);
|
|
338
|
+
// Handle the L2 result.
|
|
339
|
+
if (l2Result?.status === 'ok') {
|
|
340
|
+
// L2 succeeded (possibly after retries).
|
|
341
|
+
runState.status = 'succeeded';
|
|
342
|
+
runState.endedAt = new Date().toISOString();
|
|
343
|
+
runState.output = { runId, payload: l2Result.output };
|
|
344
|
+
this.emitComplete({ taskId, runId, turnCount: totalTurnCount, toolsInvoked, usedFallback: l2Result.usedTextFallback, timedOut: false, retryCount: totalRetryCount });
|
|
345
|
+
return { runId, runtimeKind: 'pi-ai-l2', startedAt };
|
|
346
|
+
}
|
|
347
|
+
// L2 failed (empty response on all attempts, or a throw). Try L1 fallback if enabled.
|
|
348
|
+
const failureReason = lastError ? lastError.reason : 'L2 loop produced empty response on all attempts (no submit_output, no parseable JSON)';
|
|
349
|
+
const failureTimedOut = lastError ? lastError.timedOut : false;
|
|
350
|
+
if (l2FallbackToL1) {
|
|
351
|
+
this.eventEmitter.emitTelemetry({
|
|
352
|
+
eventType: 'dreamer_l2_fallback_to_l1',
|
|
353
|
+
traceId: taskId,
|
|
354
|
+
timestamp: new Date().toISOString(),
|
|
355
|
+
sessionId: 'l2-adapter',
|
|
356
|
+
agentId: 'dreamer-l2',
|
|
357
|
+
payload: { runId, reason: failureReason, retryCount: totalRetryCount, timedOut: failureTimedOut },
|
|
358
|
+
});
|
|
359
|
+
// L1 one-shot fallback: same prompt, single completeSimple call, JSON extraction.
|
|
360
|
+
try {
|
|
361
|
+
const l1Output = await this.runL1Fallback(messageContent, apiKey);
|
|
362
|
+
runState.status = 'succeeded';
|
|
363
|
+
runState.endedAt = new Date().toISOString();
|
|
364
|
+
runState.output = { runId, payload: l1Output };
|
|
365
|
+
this.emitComplete({ taskId, runId, turnCount: totalTurnCount, toolsInvoked, usedFallback: true, timedOut: false, retryCount: totalRetryCount });
|
|
366
|
+
return { runId, runtimeKind: 'pi-ai-l2', startedAt };
|
|
367
|
+
}
|
|
368
|
+
catch (l1Err) {
|
|
369
|
+
// Both L2 and L1 failed — fail loud with both reasons (R9: observable degradation).
|
|
370
|
+
const l1Reason = l1Err instanceof Error ? l1Err.message : String(l1Err);
|
|
371
|
+
runState.status = 'failed';
|
|
372
|
+
runState.reason = `L2 failed (${failureReason}); L1 fallback also failed (${l1Reason})`;
|
|
373
|
+
runState.endedAt = new Date().toISOString();
|
|
374
|
+
this.emitComplete({ taskId, runId, turnCount: totalTurnCount, toolsInvoked, usedFallback: false, timedOut: failureTimedOut, retryCount: totalRetryCount });
|
|
375
|
+
throw new PDRuntimeError('execution_failed', `L2 dreamer failed and L1 fallback also failed. L2: ${failureReason}. L1: ${l1Reason}`, { nextAction: 'check model availability and API key; review telemetry for retry/fallback details' });
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
// No fallback — fail loud (R9).
|
|
379
|
+
runState.status = failureTimedOut ? 'timed_out' : 'failed';
|
|
380
|
+
runState.reason = failureReason;
|
|
381
|
+
runState.endedAt = new Date().toISOString();
|
|
382
|
+
this.emitComplete({ taskId, runId, turnCount: totalTurnCount, toolsInvoked, usedFallback: false, timedOut: failureTimedOut, retryCount: totalRetryCount });
|
|
383
|
+
throw new PDRuntimeError(failureTimedOut ? 'timeout' : 'output_invalid', `L2 dreamer failed after ${totalRetryCount} retries: ${failureReason}`, { nextAction: failureTimedOut ? 'increase totalBudgetMs or use a faster model' : 'check model tool-use support or enable l2FallbackToL1' });
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* PRI-420: L1 one-shot fallback. Runs a single completeSimple call with the same prompt
|
|
387
|
+
* (without tool instructions) and extracts JSON from the response. This is the safety net
|
|
388
|
+
* when all L2 attempts fail — it ensures the dreamer still produces output.
|
|
389
|
+
*/
|
|
390
|
+
async runL1Fallback(messageContent, apiKey) {
|
|
391
|
+
const model = resolveL2Model(this.config.provider, this.config.model, this.config.baseUrl);
|
|
392
|
+
const userMessage = { role: 'user', content: messageContent, timestamp: Date.now() };
|
|
393
|
+
const context = { messages: [userMessage] };
|
|
394
|
+
const response = await completeSimple(model, context, { apiKey, signal: AbortSignal.timeout(120_000) });
|
|
395
|
+
// Extract the text content from the response and parse JSON.
|
|
396
|
+
let text = null;
|
|
397
|
+
if (typeof response.content === 'string') {
|
|
398
|
+
text = response.content;
|
|
399
|
+
}
|
|
400
|
+
else if (Array.isArray(response.content)) {
|
|
401
|
+
const textPart = response.content.find((c) => typeof c === 'object' && c !== null && Object.hasOwn(c, 'type') && Reflect.get(c, 'type') === 'text');
|
|
402
|
+
text = textPart?.text ?? null;
|
|
403
|
+
}
|
|
404
|
+
if (!text) {
|
|
405
|
+
throw new Error('L1 fallback response had no text content');
|
|
406
|
+
}
|
|
407
|
+
const extracted = extractJsonObject(text);
|
|
408
|
+
if (!extracted) {
|
|
409
|
+
throw new Error('L1 fallback response had no parseable JSON');
|
|
410
|
+
}
|
|
411
|
+
return extracted;
|
|
412
|
+
}
|
|
413
|
+
async pollRun(runId) {
|
|
414
|
+
const state = this.runs.get(runId);
|
|
415
|
+
if (!state) {
|
|
416
|
+
return { runId, status: 'failed', reason: 'unknown runId' };
|
|
417
|
+
}
|
|
418
|
+
// L2RunState.status values ('succeeded'|'failed'|'timed_out') are already valid RunExecutionStatus.
|
|
419
|
+
return {
|
|
420
|
+
runId,
|
|
421
|
+
status: state.status,
|
|
422
|
+
startedAt: state.startedAt,
|
|
423
|
+
endedAt: state.endedAt,
|
|
424
|
+
reason: state.reason,
|
|
425
|
+
};
|
|
426
|
+
}
|
|
427
|
+
async cancelRun(runId) {
|
|
428
|
+
const controller = this.abortControllers.get(runId);
|
|
429
|
+
if (controller) {
|
|
430
|
+
controller.abort();
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
async fetchOutput(runId) {
|
|
434
|
+
const state = this.runs.get(runId);
|
|
435
|
+
return state?.output ?? null;
|
|
436
|
+
}
|
|
437
|
+
// eslint-disable-next-line @typescript-eslint/class-methods-use-this -- required by PDRuntimeAdapter interface
|
|
438
|
+
async fetchArtifacts(_runId) {
|
|
439
|
+
// L2 produces no separate runtime artifacts; output is in fetchOutput.
|
|
440
|
+
return [];
|
|
441
|
+
}
|
|
442
|
+
/**
|
|
443
|
+
* Bound the runs Map to MAX_RETAINED_RUNS to prevent unbounded memory growth in
|
|
444
|
+
* long-running services (the auto-consumer wakes every 120s). Evicts the oldest
|
|
445
|
+
* entries by insertion order (Map preserves it). Called at the start of each run.
|
|
446
|
+
*/
|
|
447
|
+
evictOldRuns() {
|
|
448
|
+
if (this.runs.size <= MAX_RETAINED_RUNS)
|
|
449
|
+
return;
|
|
450
|
+
const excess = this.runs.size - MAX_RETAINED_RUNS;
|
|
451
|
+
let evicted = 0;
|
|
452
|
+
for (const runId of this.runs.keys()) {
|
|
453
|
+
if (evicted >= excess)
|
|
454
|
+
break;
|
|
455
|
+
this.runs.delete(runId);
|
|
456
|
+
evicted++;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
emitComplete(opts) {
|
|
460
|
+
this.eventEmitter.emitTelemetry({
|
|
461
|
+
eventType: 'dreamer_l2_complete',
|
|
462
|
+
traceId: opts.taskId,
|
|
463
|
+
timestamp: new Date().toISOString(),
|
|
464
|
+
sessionId: 'l2-adapter',
|
|
465
|
+
agentId: 'dreamer-l2',
|
|
466
|
+
payload: {
|
|
467
|
+
runId: opts.runId,
|
|
468
|
+
turnCount: opts.turnCount,
|
|
469
|
+
toolsInvoked: opts.toolsInvoked,
|
|
470
|
+
usedFallback: opts.usedFallback,
|
|
471
|
+
timedOut: opts.timedOut,
|
|
472
|
+
retryCount: opts.retryCount,
|
|
473
|
+
outputPreview: safeStringifyPreview(this.runs.get(opts.runId)?.output?.payload, 300),
|
|
474
|
+
},
|
|
475
|
+
});
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
//# sourceMappingURL=l2-agent-loop-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l2-agent-loop-adapter.js","sourceRoot":"","sources":["../../../src/runtime-v2/adapter/l2-agent-loop-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,7 +65,7 @@ export declare const AgentSpecSchema: import("@sinclair/typebox").TObject<{
|
|
|
65
65
|
workingDirectory: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
66
66
|
}>;
|
|
67
67
|
/** Preferred runtime kinds, in order of preference. */
|
|
68
|
-
preferredRuntimeKinds: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"openclaw">, import("@sinclair/typebox").TLiteral<"openclaw-cli">, import("@sinclair/typebox").TLiteral<"openclaw-history">, import("@sinclair/typebox").TLiteral<"claude-cli">, import("@sinclair/typebox").TLiteral<"codex-cli">, import("@sinclair/typebox").TLiteral<"gemini-cli">, import("@sinclair/typebox").TLiteral<"local-worker">, import("@sinclair/typebox").TLiteral<"test-double">, import("@sinclair/typebox").TLiteral<"pi-ai">]>>>;
|
|
68
|
+
preferredRuntimeKinds: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"openclaw">, import("@sinclair/typebox").TLiteral<"openclaw-cli">, import("@sinclair/typebox").TLiteral<"openclaw-history">, import("@sinclair/typebox").TLiteral<"claude-cli">, import("@sinclair/typebox").TLiteral<"codex-cli">, import("@sinclair/typebox").TLiteral<"gemini-cli">, import("@sinclair/typebox").TLiteral<"local-worker">, import("@sinclair/typebox").TLiteral<"test-double">, import("@sinclair/typebox").TLiteral<"pi-ai">, import("@sinclair/typebox").TLiteral<"pi-ai-l2">]>>>;
|
|
69
69
|
/** Preferred model profile (e.g., "strong-reasoning", "fast-lightweight"). */
|
|
70
70
|
preferredModelProfile: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
71
71
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flag-contract.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,qDAAsD,CAAC;AACpF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIpE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC7C,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAExE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAkDrF;AAED,eAAO,MAAM,qBAAqB,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"feature-flag-contract.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,qDAAsD,CAAC;AACpF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAIpE,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC7C,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAAC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AAExE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAkDrF;AAED,eAAO,MAAM,qBAAqB,EAAE,qBAAqB,EAiCxD,CAAC;AAEF,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,QAAQ,EAAE,qBAAqB,EAAE,EACjC,UAAU,EAAE,MAAM,GACjB,qBAAqB,CAqEvB"}
|
|
@@ -67,6 +67,11 @@ export const DEFAULT_FEATURE_FLAGS = [
|
|
|
67
67
|
{ id: 'diagnostician_core_grounding', category: 'quiet', enabled: true, since: '2026-06-11', description: 'Core principle grounding in diagnostician prompt (Arm 2)' },
|
|
68
68
|
{ id: 'internalization_core_grounding', category: 'quiet', enabled: true, since: '2026-06-16', description: 'Core principle grounding in internalization prompt builders (dreamer, philosopher, scribe)' },
|
|
69
69
|
{ id: 'diagnostician_split_pipeline', category: 'quiet', enabled: true, since: '2026-06-11', description: '3-stage split diagnostician pipeline (RootCause→Distiller→Router)' },
|
|
70
|
+
// PRI-419: L2 multi-turn agent loop for the dreamer runner. Scoped single-runner exception
|
|
71
|
+
// per ADR-0014 amendment (mirrors the 2026-06-10 diagnostician-split owner exception).
|
|
72
|
+
// Default off; flips dreamer from one-shot completeSimple to a multi-turn agentLoop with
|
|
73
|
+
// read-only tools. Roll back = flip flag, reverts to PiAiRuntimeAdapter with zero migration.
|
|
74
|
+
{ id: 'l2_dreamer', category: 'quiet', enabled: false, since: '2026-06-16', description: 'L2 multi-turn agent loop for the dreamer runner (PRI-419) — read-only tools + submit_output, scoped to dreamer only' },
|
|
70
75
|
// MVP-Gone — permanently disabled, cannot be re-enabled
|
|
71
76
|
{ id: 'nocturnal', category: 'gone', enabled: false, since: '2026-05-24', description: 'Nocturnal trinity pipeline (retired)' },
|
|
72
77
|
{ id: 'idle_trigger', category: 'gone', enabled: false, since: '2026-05-24', description: 'Idle trigger for background processing (retired)' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-flag-contract.js","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"feature-flag-contract.js","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -242,6 +242,11 @@ export type { TrainerPromptBuilderInput, TrainerPromptInput, TrainerPromptBuildR
|
|
|
242
242
|
export type { PIArtifactRecord, PIArtifactStore } from './internalization/pi-artifact.js';
|
|
243
243
|
export { MemoryPIArtifactStore } from './internalization/pi-artifact-store.js';
|
|
244
244
|
export { SqlitePIArtifactStore } from './store/artifact/sqlite-pi-artifact-store.js';
|
|
245
|
+
export { L2AgentLoopAdapter } from './adapter/l2-agent-loop-adapter.js';
|
|
246
|
+
export type { L2AgentLoopAdapterConfig, L2AgentLoopAdapterDeps } from './adapter/l2-agent-loop-adapter.js';
|
|
247
|
+
export { buildDreamerL2Tools, DREAMER_L2_TOOL_WHITELIST, } from './tools/agent-tool-contract.js';
|
|
248
|
+
export type { PdL2ToolContext, PdL2ArtifactReader, PdL2PrincipleReader, L2OutputCapture, } from './tools/agent-tool-contract.js';
|
|
249
|
+
export { DreamerOutputV1Typebox, DreamerCandidateTypebox } from './tools/dreamer-output-typebox.js';
|
|
245
250
|
export type { IntakeToInternalizationBridgeInput, BridgeDecision, BridgeTaskSeed, BridgeTaskStore, } from './internalization/intake-to-internalization-bridge.js';
|
|
246
251
|
export { ROUTE_CHANNEL_MAP, computeBridgeDecision, buildDreamerTaskSeed, buildDreamerSeedFromCandidate, seedIntakeTask, } from './internalization/intake-to-internalization-bridge.js';
|
|
247
252
|
export { InternalizationQueueReadModel, createInternalizationQueueReadModel } from './internalization-queue-read-model.js';
|