@duckcodeailabs/dql-agent 1.14.0 → 1.14.1
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/agent-run-engine.d.ts +60 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +333 -21
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agent-run-gates.d.ts.map +1 -1
- package/dist/agent-run-gates.js +13 -0
- package/dist/agent-run-gates.js.map +1 -1
- package/dist/agentic/analyst-loop.d.ts +91 -0
- package/dist/agentic/analyst-loop.d.ts.map +1 -0
- package/dist/agentic/analyst-loop.js +311 -0
- package/dist/agentic/analyst-loop.js.map +1 -0
- package/dist/agentic/assumptions.d.ts +62 -0
- package/dist/agentic/assumptions.d.ts.map +1 -0
- package/dist/agentic/assumptions.js +73 -0
- package/dist/agentic/assumptions.js.map +1 -0
- package/dist/agentic/business-explanation.d.ts +56 -0
- package/dist/agentic/business-explanation.d.ts.map +1 -0
- package/dist/agentic/business-explanation.js +130 -0
- package/dist/agentic/business-explanation.js.map +1 -0
- package/dist/agentic/identifier-ledger.d.ts +74 -0
- package/dist/agentic/identifier-ledger.d.ts.map +1 -0
- package/dist/agentic/identifier-ledger.js +151 -0
- package/dist/agentic/identifier-ledger.js.map +1 -0
- package/dist/agentic/ledger-tools.d.ts +68 -0
- package/dist/agentic/ledger-tools.d.ts.map +1 -0
- package/dist/agentic/ledger-tools.js +198 -0
- package/dist/agentic/ledger-tools.js.map +1 -0
- package/dist/agentic/orchestrator-policy.d.ts +60 -0
- package/dist/agentic/orchestrator-policy.d.ts.map +1 -0
- package/dist/agentic/orchestrator-policy.js +73 -0
- package/dist/agentic/orchestrator-policy.js.map +1 -0
- package/dist/agentic/orchestrator.d.ts +54 -0
- package/dist/agentic/orchestrator.d.ts.map +1 -0
- package/dist/agentic/orchestrator.js +67 -0
- package/dist/agentic/orchestrator.js.map +1 -0
- package/dist/agentic/preview-tool.d.ts +36 -0
- package/dist/agentic/preview-tool.d.ts.map +1 -0
- package/dist/agentic/preview-tool.js +71 -0
- package/dist/agentic/preview-tool.js.map +1 -0
- package/dist/agentic/rerank.d.ts +50 -0
- package/dist/agentic/rerank.d.ts.map +1 -0
- package/dist/agentic/rerank.js +140 -0
- package/dist/agentic/rerank.js.map +1 -0
- package/dist/agentic/research/hypothesis.d.ts +110 -0
- package/dist/agentic/research/hypothesis.d.ts.map +1 -0
- package/dist/agentic/research/hypothesis.js +125 -0
- package/dist/agentic/research/hypothesis.js.map +1 -0
- package/dist/agentic/research/synthesis.d.ts +32 -0
- package/dist/agentic/research/synthesis.d.ts.map +1 -0
- package/dist/agentic/research/synthesis.js +94 -0
- package/dist/agentic/research/synthesis.js.map +1 -0
- package/dist/agentic/research-agent.d.ts +54 -0
- package/dist/agentic/research-agent.d.ts.map +1 -0
- package/dist/agentic/research-agent.js +176 -0
- package/dist/agentic/research-agent.js.map +1 -0
- package/dist/agentic/sql-authorization.d.ts +131 -0
- package/dist/agentic/sql-authorization.d.ts.map +1 -0
- package/dist/agentic/sql-authorization.js +232 -0
- package/dist/agentic/sql-authorization.js.map +1 -0
- package/dist/agentic/tool-loop.d.ts +29 -0
- package/dist/agentic/tool-loop.d.ts.map +1 -1
- package/dist/agentic/tool-loop.js +129 -52
- package/dist/agentic/tool-loop.js.map +1 -1
- package/dist/agentic/toolset.d.ts.map +1 -1
- package/dist/agentic/toolset.js +155 -0
- package/dist/agentic/toolset.js.map +1 -1
- package/dist/agentic/turn-plan.d.ts +35 -0
- package/dist/agentic/turn-plan.d.ts.map +1 -0
- package/dist/agentic/turn-plan.js +108 -0
- package/dist/agentic/turn-plan.js.map +1 -0
- package/dist/agentic/value-probe.d.ts +89 -0
- package/dist/agentic/value-probe.d.ts.map +1 -0
- package/dist/agentic/value-probe.js +304 -0
- package/dist/agentic/value-probe.js.map +1 -0
- package/dist/analytical-orchestration.d.ts +80 -0
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +218 -6
- package/dist/analytical-orchestration.js.map +1 -1
- package/dist/analytical-request-policy.d.ts +26 -0
- package/dist/analytical-request-policy.d.ts.map +1 -0
- package/dist/analytical-request-policy.js +82 -0
- package/dist/analytical-request-policy.js.map +1 -0
- package/dist/analytical-result-facts.d.ts +13 -0
- package/dist/analytical-result-facts.d.ts.map +1 -1
- package/dist/analytical-result-facts.js +37 -1
- package/dist/analytical-result-facts.js.map +1 -1
- package/dist/answer-loop.d.ts +57 -16
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +161 -30
- package/dist/answer-loop.js.map +1 -1
- package/dist/cascade/budgets.d.ts.map +1 -1
- package/dist/cascade/budgets.js +8 -1
- package/dist/cascade/budgets.js.map +1 -1
- package/dist/cascade/packer.d.ts +88 -0
- package/dist/cascade/packer.d.ts.map +1 -0
- package/dist/cascade/packer.js +106 -0
- package/dist/cascade/packer.js.map +1 -0
- package/dist/conversation/result-ops.d.ts +18 -3
- package/dist/conversation/result-ops.d.ts.map +1 -1
- package/dist/conversation/result-ops.js +77 -5
- package/dist/conversation/result-ops.js.map +1 -1
- package/dist/conversation/rolling-summary.d.ts.map +1 -1
- package/dist/conversation/rolling-summary.js +7 -2
- package/dist/conversation/rolling-summary.js.map +1 -1
- package/dist/conversation/session-store.d.ts +3 -0
- package/dist/conversation/session-store.d.ts.map +1 -1
- package/dist/conversation/session-store.js +8 -4
- package/dist/conversation/session-store.js.map +1 -1
- package/dist/conversation/snapshot.d.ts.map +1 -1
- package/dist/conversation/snapshot.js +10 -1
- package/dist/conversation/snapshot.js.map +1 -1
- package/dist/hints/store.d.ts.map +1 -1
- package/dist/hints/store.js +15 -5
- package/dist/hints/store.js.map +1 -1
- package/dist/index.d.ts +27 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -5
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +8 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +65 -0
- package/dist/intent-controller.js.map +1 -1
- package/dist/metadata/block-fit.d.ts +18 -0
- package/dist/metadata/block-fit.d.ts.map +1 -1
- package/dist/metadata/block-fit.js +41 -1
- package/dist/metadata/block-fit.js.map +1 -1
- package/dist/metadata/catalog.d.ts +20 -23
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +136 -11
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +15 -7
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/metadata/metric-match.d.ts +32 -0
- package/dist/metadata/metric-match.d.ts.map +1 -1
- package/dist/metadata/metric-match.js +120 -9
- package/dist/metadata/metric-match.js.map +1 -1
- package/dist/research-loop.d.ts +33 -2
- package/dist/research-loop.d.ts.map +1 -1
- package/dist/research-loop.js +44 -4
- package/dist/research-loop.js.map +1 -1
- package/dist/router.d.ts +28 -16
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +250 -17
- package/dist/router.js.map +1 -1
- package/package.json +4 -4
|
@@ -3,7 +3,7 @@ import { type IntentDecision, type IntentSignals } from "./intent-controller.js"
|
|
|
3
3
|
import { type CascadeAnalysisDepth, type CascadeBudgetTrace, type PartialCascadeBudgetModel } from "./cascade/budgets.js";
|
|
4
4
|
import type { MetadataAgentIntent } from "./metadata/catalog.js";
|
|
5
5
|
import type { ReasoningEffort, ThinkingMode } from "./providers/reasoning-effort.js";
|
|
6
|
-
import type
|
|
6
|
+
import { type AgentSelectedResultBindingV1, type AnalyticalTaskOutcomeV1, type AnalyticalTurnPlanV1 } from './analytical-orchestration.js';
|
|
7
7
|
export type AgentRunRequestedMode = "auto" | "ask" | "research" | "sql" | "block" | "app" | "modeling" | "skill";
|
|
8
8
|
/**
|
|
9
9
|
* Who the run serves. `analyst` (the Notebook) keeps every route, including
|
|
@@ -54,7 +54,7 @@ export interface AgentRunLifecycleV1 {
|
|
|
54
54
|
updatedAt: string;
|
|
55
55
|
completedAt?: string;
|
|
56
56
|
}
|
|
57
|
-
export type AgentRunStopReason = "conversational_reply" | "certified_answer_found" | "governed_semantic_answer" | "generated_review_required" | "artifact_created" | "needs_clarification" | "human_review_required" | "cancelled" | "blocked";
|
|
57
|
+
export type AgentRunStopReason = "conversational_reply" | "certified_answer_found" | "governed_semantic_answer" | "governed_compound_answer" | "generated_review_required" | "artifact_created" | "needs_clarification" | "human_review_required" | "cancelled" | "blocked";
|
|
58
58
|
/** Stable host-issued reason for a user cancellation. Provider AbortErrors do
|
|
59
59
|
* not carry this code and therefore remain distinguishable executor failures. */
|
|
60
60
|
export declare const AGENT_RUN_USER_CANCEL_CODE: "RUN_CANCELLED";
|
|
@@ -139,6 +139,30 @@ export interface AgentRunDiagnosticReceiptV2 {
|
|
|
139
139
|
providerEgressReceiptFingerprints: string[];
|
|
140
140
|
repairCapabilityFingerprint?: string;
|
|
141
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Durable, content-free outcome of the answer narration stage.
|
|
144
|
+
*
|
|
145
|
+
* This receipt is deliberately independent of the rendered prose and result
|
|
146
|
+
* rows: an evaluator must never infer that narration was attempted from either
|
|
147
|
+
* of those presentation details. It lets the host distinguish a verified
|
|
148
|
+
* narrative, a clearly labelled deterministic floor, an intentional skip, and
|
|
149
|
+
* an infrastructure failure after the run is persisted.
|
|
150
|
+
*/
|
|
151
|
+
export interface NarrationIntegrityReceiptV1 {
|
|
152
|
+
version: 1;
|
|
153
|
+
mode: "skip" | "verified_facts" | "preview_grounded";
|
|
154
|
+
outcome: "skipped" | "success" | "deterministic_fallback" | "error";
|
|
155
|
+
/** A provider-backed narration invocation actually began. */
|
|
156
|
+
attempted: boolean;
|
|
157
|
+
/** Count only for fact-verified narration; never contains result values. */
|
|
158
|
+
factCount: number;
|
|
159
|
+
maxRows: number;
|
|
160
|
+
/** Stable verifier codes, not provider prose or raw result values. */
|
|
161
|
+
validationFailures: string[];
|
|
162
|
+
skipReason?: "no_answer" | "no_provider" | "nothing_to_narrate";
|
|
163
|
+
/** Stable host code only; raw provider errors are intentionally not persisted. */
|
|
164
|
+
errorCode?: "narration_error";
|
|
165
|
+
}
|
|
142
166
|
export interface AgentRunNextAction {
|
|
143
167
|
id: string;
|
|
144
168
|
label: string;
|
|
@@ -170,6 +194,17 @@ export interface AgentRunRequest {
|
|
|
170
194
|
question: string;
|
|
171
195
|
/** Exact candidate selected from a prior structured clarification. */
|
|
172
196
|
selectedEvidenceId?: string;
|
|
197
|
+
/**
|
|
198
|
+
* Server-validated reference to a row/value in a persisted prior result.
|
|
199
|
+
* It is additive to ordinary conversation context and never an execution
|
|
200
|
+
* authority by itself.
|
|
201
|
+
*/
|
|
202
|
+
selectedResultBinding?: AgentSelectedResultBindingV1;
|
|
203
|
+
/** Host-only terminal diagnostic when a selected result cannot be re-bound. */
|
|
204
|
+
selectedResultBindingGap?: {
|
|
205
|
+
code: string;
|
|
206
|
+
message: string;
|
|
207
|
+
};
|
|
173
208
|
/**
|
|
174
209
|
* When `question` is a clarification continuation, the user's ORIGINAL
|
|
175
210
|
* analytical question. Used for artifact naming and planning so the
|
|
@@ -315,6 +350,7 @@ export interface AgentRun {
|
|
|
315
350
|
lifecycle?: AgentRunLifecycleV1;
|
|
316
351
|
diagnosticReceipt?: AgentRunDiagnosticReceiptV1;
|
|
317
352
|
diagnosticReceiptV2?: AgentRunDiagnosticReceiptV2;
|
|
353
|
+
narrationIntegrityReceipt?: NarrationIntegrityReceiptV1;
|
|
318
354
|
telemetry?: AgentRunTelemetryV1;
|
|
319
355
|
/** Server-owned automatic repair authority. Legacy runs omit it and fail closed. */
|
|
320
356
|
repairCapability?: AnalyticalRepairCapabilityV1;
|
|
@@ -363,6 +399,11 @@ export interface AgentRouteExecutionContext {
|
|
|
363
399
|
stepGoal?: string;
|
|
364
400
|
/** Evaluations from the previous attempt (so executors can target the repair). */
|
|
365
401
|
priorEvaluations?: AgentRunEvaluation[];
|
|
402
|
+
/**
|
|
403
|
+
* Artifacts this run has already validated. Read when the discovery budget
|
|
404
|
+
* elapses, so partial findings can be returned instead of thrown away.
|
|
405
|
+
*/
|
|
406
|
+
priorArtifacts?: AgentRunArtifact[];
|
|
366
407
|
/** The repair hint the loop wants this re-run to act on. */
|
|
367
408
|
repairHint?: string;
|
|
368
409
|
emit: (event: Omit<AgentRunEvent, "id" | "runId" | "at">) => void;
|
|
@@ -408,6 +449,8 @@ export interface AgentRouteExecutorResult {
|
|
|
408
449
|
repairAttempts?: number;
|
|
409
450
|
providerEgressReceipts?: ProviderEgressReceiptV1[];
|
|
410
451
|
telemetry?: AgentRunTelemetryV1;
|
|
452
|
+
/** Content-free narration outcome; persisted by the run engine. */
|
|
453
|
+
narrationIntegrityReceipt?: NarrationIntegrityReceiptV1;
|
|
411
454
|
analyticalTurnPlan?: AnalyticalTurnPlanV1;
|
|
412
455
|
analyticalTaskOutcomes?: AnalyticalTaskOutcomeV1[];
|
|
413
456
|
}
|
|
@@ -492,6 +535,21 @@ export interface AgentRunEngineOptions {
|
|
|
492
535
|
routeTimeoutSignal?: (durationMs: number) => AbortSignal;
|
|
493
536
|
}
|
|
494
537
|
export declare function agentRouteDeadlineMs(route: AgentRunRoute): number | undefined;
|
|
538
|
+
/**
|
|
539
|
+
* A deadline multiplier for slow providers.
|
|
540
|
+
*
|
|
541
|
+
* The 45s Ask budget assumes a hosted model. A local Ollama model needs ~7s for
|
|
542
|
+
* a one-word reply, so the meaning call alone can exhaust the whole window and
|
|
543
|
+
* every question comes back "The discovery window ended before an exact plan was
|
|
544
|
+
* frozen" — which makes a local model unusable at the default, and DQL is
|
|
545
|
+
* local-first by design.
|
|
546
|
+
*
|
|
547
|
+
* Deliberately a MULTIPLIER rather than an absolute: the relationship between
|
|
548
|
+
* the Ask and Research budgets, and between each and its soft targets, is
|
|
549
|
+
* load-bearing, so scaling keeps them proportional instead of letting one
|
|
550
|
+
* setting invert them.
|
|
551
|
+
*/
|
|
552
|
+
export declare function deadlineScale(env?: Record<string, string | undefined>): number;
|
|
495
553
|
/** The request envelope starts before retrieval/routing, so a stuck router can
|
|
496
554
|
* never evade the route-specific deadline that is selected later. */
|
|
497
555
|
export declare function agentRequestDeadlineMs(requestedMode: AgentRunRequestedMode): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-run-engine.d.ts","sourceRoot":"","sources":["../src/agent-run-engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-run-engine.d.ts","sourceRoot":"","sources":["../src/agent-run-engine.ts"],"names":[],"mappings":"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"}
|
package/dist/agent-run-engine.js
CHANGED
|
@@ -2,11 +2,13 @@ import { createHash, randomUUID } from "node:crypto";
|
|
|
2
2
|
import { normalizeProviderEgressReceiptV1, } from '@duckcodeailabs/dql-core';
|
|
3
3
|
import { existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
|
-
import { classifyConversationalTurn, decideAgentAction, looksLikeComposeApp, } from "./intent-controller.js";
|
|
5
|
+
import { classifyConversationalTurn, looksLikeDefinitionalAboutNamedObject, decideAgentAction, looksLikeComposeApp, } from "./intent-controller.js";
|
|
6
6
|
import { selectCascadeRunRoute } from "./cascade/route-policy.js";
|
|
7
7
|
import { canUseEngineEscalation, canUseLaneRepair, cascadeBudgetTrace, createCascadeBudgetState, recordEngineEscalation, recordLaneRepair, } from "./cascade/budgets.js";
|
|
8
8
|
import { buildAnalysisQuestionPlan } from "./metadata/analysis-planner.js";
|
|
9
9
|
import { conversationHistoryFromContext, isLikelyClarificationReply, } from "./conversation/snapshot.js";
|
|
10
|
+
import { buildCoverageGap } from './analytical-orchestration.js';
|
|
11
|
+
import { evaluateAnalyticalRequestPolicy } from './analytical-request-policy.js';
|
|
10
12
|
/** Routes a stakeholder may never land on (analyst authoring lives in the Notebook). */
|
|
11
13
|
const ANALYST_ONLY_ROUTES = new Set(["sql_cell", "dql_block_draft", "modeling_draft", "skill_draft"]);
|
|
12
14
|
/**
|
|
@@ -64,30 +66,60 @@ export function agentRouteDeadlineMs(route) {
|
|
|
64
66
|
return 120_000;
|
|
65
67
|
return undefined;
|
|
66
68
|
}
|
|
69
|
+
/** Default request-ingress deadlines. */
|
|
70
|
+
const DEFAULT_ASK_DEADLINE_MS = 45_000;
|
|
71
|
+
const DEFAULT_RESEARCH_DEADLINE_MS = 120_000;
|
|
72
|
+
/** Ceiling on any override, so a typo cannot hang a run indefinitely. */
|
|
73
|
+
const MAX_DEADLINE_MS = 600_000;
|
|
74
|
+
/**
|
|
75
|
+
* A deadline multiplier for slow providers.
|
|
76
|
+
*
|
|
77
|
+
* The 45s Ask budget assumes a hosted model. A local Ollama model needs ~7s for
|
|
78
|
+
* a one-word reply, so the meaning call alone can exhaust the whole window and
|
|
79
|
+
* every question comes back "The discovery window ended before an exact plan was
|
|
80
|
+
* frozen" — which makes a local model unusable at the default, and DQL is
|
|
81
|
+
* local-first by design.
|
|
82
|
+
*
|
|
83
|
+
* Deliberately a MULTIPLIER rather than an absolute: the relationship between
|
|
84
|
+
* the Ask and Research budgets, and between each and its soft targets, is
|
|
85
|
+
* load-bearing, so scaling keeps them proportional instead of letting one
|
|
86
|
+
* setting invert them.
|
|
87
|
+
*/
|
|
88
|
+
export function deadlineScale(env = process.env) {
|
|
89
|
+
const raw = Number(env.DQL_AGENT_DEADLINE_SCALE);
|
|
90
|
+
if (!Number.isFinite(raw) || raw <= 0)
|
|
91
|
+
return 1;
|
|
92
|
+
// Bounded: below 1 would tighten a safety deadline someone is relying on.
|
|
93
|
+
return Math.min(Math.max(raw, 1), 20);
|
|
94
|
+
}
|
|
67
95
|
/** The request envelope starts before retrieval/routing, so a stuck router can
|
|
68
96
|
* never evade the route-specific deadline that is selected later. */
|
|
69
97
|
export function agentRequestDeadlineMs(requestedMode) {
|
|
70
|
-
|
|
98
|
+
const base = requestedMode === 'research' ? DEFAULT_RESEARCH_DEADLINE_MS : DEFAULT_ASK_DEADLINE_MS;
|
|
99
|
+
return Math.min(base * deadlineScale(), MAX_DEADLINE_MS);
|
|
71
100
|
}
|
|
72
101
|
/** Create the one request-ingress deadline authority used by every stage. */
|
|
73
102
|
export function createAgentRunBudget(input) {
|
|
74
103
|
const nowMs = input.nowMs ?? Date.now;
|
|
75
104
|
const startedAtMs = input.startedAtMs ?? nowMs();
|
|
76
105
|
const mode = input.requestedMode === 'research' ? 'research' : 'ask';
|
|
77
|
-
const
|
|
106
|
+
const scale = deadlineScale();
|
|
107
|
+
const hardDeadlineMs = Math.min((mode === 'research' ? DEFAULT_RESEARCH_DEADLINE_MS : DEFAULT_ASK_DEADLINE_MS) * scale, MAX_DEADLINE_MS);
|
|
78
108
|
const timeout = (input.timeoutSignal ?? AbortSignal.timeout)(hardDeadlineMs);
|
|
79
109
|
const hardSignal = input.inheritedSignal
|
|
80
110
|
? AbortSignal.any([input.inheritedSignal, timeout])
|
|
81
111
|
: timeout;
|
|
82
112
|
const elapsedMs = () => Math.max(0, nowMs() - startedAtMs);
|
|
83
113
|
const softTargetMs = (route) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
114
|
+
const base = mode === 'research' ? 90_000 : (agentRouteDeadlineMs(route) ?? 15_000);
|
|
115
|
+
// Scaled with the hard deadline: a soft target that stayed fixed while the
|
|
116
|
+
// ceiling moved would stop new work long before the run was actually out of
|
|
117
|
+
// time, which is the same dead end by a different route.
|
|
118
|
+
return Math.min(base * scale, hardDeadlineMs);
|
|
87
119
|
};
|
|
88
120
|
// Narration must still be reachable after a full generation window, and must
|
|
89
121
|
// leave the hard deadline (45s ask / 120s research) room to land.
|
|
90
|
-
const narrationSoftTargetMs = () => (mode === 'research' ? 100_000 : 38_000);
|
|
122
|
+
const narrationSoftTargetMs = () => Math.min((mode === 'research' ? 100_000 : 38_000) * scale, hardDeadlineMs);
|
|
91
123
|
return Object.freeze({
|
|
92
124
|
startedAtMs,
|
|
93
125
|
hardDeadlineMs,
|
|
@@ -613,6 +645,119 @@ export class AgentRunEngine {
|
|
|
613
645
|
...(clarificationContinuation ? { clarificationResolved: true } : {}),
|
|
614
646
|
},
|
|
615
647
|
});
|
|
648
|
+
// This check is intentionally before route selection. A restricted direct
|
|
649
|
+
// disclosure must not be embedded, retrieved, sent to a provider, value
|
|
650
|
+
// probed, or compiled merely to explain why it cannot be answered.
|
|
651
|
+
const ingressPolicy = evaluateAnalyticalRequestPolicy(submittedQuestion);
|
|
652
|
+
if (!ingressPolicy.allowed) {
|
|
653
|
+
const routeDecision = {
|
|
654
|
+
action: 'answer',
|
|
655
|
+
confidence: 1,
|
|
656
|
+
reason: 'The request is unavailable under the Ask data-safety policy.',
|
|
657
|
+
followsUp: false,
|
|
658
|
+
source: 'heuristic',
|
|
659
|
+
terminalOutcome: {
|
|
660
|
+
kind: 'policy_blocked',
|
|
661
|
+
code: 'ANALYTICAL_POLICY_BLOCKED',
|
|
662
|
+
message: ingressPolicy.message,
|
|
663
|
+
candidateIds: [],
|
|
664
|
+
},
|
|
665
|
+
};
|
|
666
|
+
const coverageGap = buildCoverageGap({
|
|
667
|
+
code: 'POLICY_BLOCKED',
|
|
668
|
+
phase: 'retrieval',
|
|
669
|
+
message: ingressPolicy.message,
|
|
670
|
+
searchedSources: [],
|
|
671
|
+
attemptedRoutes: [],
|
|
672
|
+
missing: [],
|
|
673
|
+
recoverable: false,
|
|
674
|
+
planFrozen: false,
|
|
675
|
+
nextActions: ingressPolicy.nextActions,
|
|
676
|
+
});
|
|
677
|
+
const evaluation = {
|
|
678
|
+
id: 'request-policy',
|
|
679
|
+
label: 'Ask request policy',
|
|
680
|
+
passed: false,
|
|
681
|
+
severity: 'blocking',
|
|
682
|
+
message: ingressPolicy.message,
|
|
683
|
+
};
|
|
684
|
+
const artifact = {
|
|
685
|
+
id: `${runId}:policy`,
|
|
686
|
+
kind: 'answer',
|
|
687
|
+
title: 'Ask request unavailable',
|
|
688
|
+
trustState: 'blocked',
|
|
689
|
+
payload: {
|
|
690
|
+
analyticalCoverageGap: coverageGap,
|
|
691
|
+
analyticalFailure: {
|
|
692
|
+
code: 'POLICY_BLOCKED',
|
|
693
|
+
phase: 'request_policy',
|
|
694
|
+
message: ingressPolicy.message,
|
|
695
|
+
recoverable: false,
|
|
696
|
+
safeActions: ingressPolicy.nextActions,
|
|
697
|
+
},
|
|
698
|
+
},
|
|
699
|
+
};
|
|
700
|
+
emit({
|
|
701
|
+
type: 'route.decided',
|
|
702
|
+
message: routeDecision.reason,
|
|
703
|
+
route: 'blocked',
|
|
704
|
+
payload: routeDecision,
|
|
705
|
+
});
|
|
706
|
+
emit({
|
|
707
|
+
type: 'evaluation.recorded',
|
|
708
|
+
message: evaluation.message,
|
|
709
|
+
route: 'blocked',
|
|
710
|
+
payload: evaluation,
|
|
711
|
+
});
|
|
712
|
+
emit({
|
|
713
|
+
type: 'artifact.created',
|
|
714
|
+
message: 'Created answer artifact.',
|
|
715
|
+
route: 'blocked',
|
|
716
|
+
trustState: 'blocked',
|
|
717
|
+
payload: artifact,
|
|
718
|
+
});
|
|
719
|
+
emit({
|
|
720
|
+
type: 'run.failed',
|
|
721
|
+
message: ingressPolicy.message,
|
|
722
|
+
route: 'blocked',
|
|
723
|
+
status: 'blocked',
|
|
724
|
+
trustState: 'blocked',
|
|
725
|
+
});
|
|
726
|
+
const completedAt = this.timestamp();
|
|
727
|
+
const run = {
|
|
728
|
+
id: runId,
|
|
729
|
+
question: submittedQuestion,
|
|
730
|
+
requestedMode,
|
|
731
|
+
route: 'blocked',
|
|
732
|
+
status: 'blocked',
|
|
733
|
+
trustState: 'blocked',
|
|
734
|
+
stopReason: 'blocked',
|
|
735
|
+
startedAt,
|
|
736
|
+
completedAt,
|
|
737
|
+
selectedObject: request.selectedObject,
|
|
738
|
+
executionTarget: request.executionTarget,
|
|
739
|
+
routeDecision,
|
|
740
|
+
steps: [],
|
|
741
|
+
summary: ingressPolicy.message,
|
|
742
|
+
answer: ingressPolicy.message,
|
|
743
|
+
answerKind: 'governed',
|
|
744
|
+
artifacts: [artifact],
|
|
745
|
+
evaluations: [evaluation],
|
|
746
|
+
events,
|
|
747
|
+
nextActions: ingressPolicy.nextActions.map((id) => ({ id, label: id === 'ask_for_an_approved_aggregate' ? 'Ask for an approved aggregate' : 'Inspect data policy' })),
|
|
748
|
+
repairAttempts: 0,
|
|
749
|
+
escalationAttempts: 0,
|
|
750
|
+
budgetUsage: cascadeBudgetTrace(createCascadeBudgetState(this.budgetModel)),
|
|
751
|
+
telemetry: emptyRunTelemetry(durationBetweenMs(startedAt, completedAt), 'policy_blocked'),
|
|
752
|
+
lifecycle: terminalLifecycle(progress.lifecycle, 'run.failed', completedAt, events.length),
|
|
753
|
+
};
|
|
754
|
+
run.diagnosticReceipt = diagnosticReceiptForRun(run);
|
|
755
|
+
run.diagnosticReceiptV2 = diagnosticReceiptV2ForRun(run);
|
|
756
|
+
run.artifacts = attachDiagnosticReceipt(run.artifacts, run.diagnosticReceipt, run.diagnosticReceiptV2);
|
|
757
|
+
await checkpointQueue;
|
|
758
|
+
await this.store?.save(run);
|
|
759
|
+
return run;
|
|
760
|
+
}
|
|
616
761
|
const audience = resolveAudience(request);
|
|
617
762
|
// Initialize a deterministic decision so router/provider timeouts can still
|
|
618
763
|
// be persisted as a complete blocked run with an inspectable trace. The old
|
|
@@ -722,6 +867,7 @@ export class AgentRunEngine {
|
|
|
722
867
|
attempt,
|
|
723
868
|
stepGoal: planned.goal,
|
|
724
869
|
priorEvaluations,
|
|
870
|
+
priorArtifacts: progress.artifacts,
|
|
725
871
|
repairHint,
|
|
726
872
|
emit,
|
|
727
873
|
emitAnswerDelta: onAnswerDelta,
|
|
@@ -1220,6 +1366,9 @@ export class AgentRunEngine {
|
|
|
1220
1366
|
...(finalResult.telemetry ? {
|
|
1221
1367
|
telemetry: withTotalDuration(finalResult.telemetry, durationBetweenMs(input.startedAt, completedAt)),
|
|
1222
1368
|
} : {}),
|
|
1369
|
+
...(finalResult.narrationIntegrityReceipt ? {
|
|
1370
|
+
narrationIntegrityReceipt: finalResult.narrationIntegrityReceipt,
|
|
1371
|
+
} : {}),
|
|
1223
1372
|
escalationAttempts,
|
|
1224
1373
|
budgetUsage: input.budgetUsage,
|
|
1225
1374
|
...(finalResult.analyticalTurnPlan ? { analyticalTurnPlan: finalResult.analyticalTurnPlan } : {}),
|
|
@@ -1246,7 +1395,7 @@ export class AgentRunEngine {
|
|
|
1246
1395
|
&& !frozenPlan
|
|
1247
1396
|
&& context.request.runBudget
|
|
1248
1397
|
&& !context.request.runBudget.mayStartDiscovery(context.route)) {
|
|
1249
|
-
return softBoundaryResult(context.route, context.request.runBudget);
|
|
1398
|
+
return softBoundaryResult(context.route, context.request.runBudget, context.priorArtifacts);
|
|
1250
1399
|
}
|
|
1251
1400
|
const signal = context.request.runBudget?.hardSignal ?? context.request.signal;
|
|
1252
1401
|
if (signal?.aborted)
|
|
@@ -1278,6 +1427,112 @@ export class AgentRunEngine {
|
|
|
1278
1427
|
* inject or deserialize an older router decision as well as the canonical
|
|
1279
1428
|
* router producer.
|
|
1280
1429
|
*/
|
|
1430
|
+
/** An ordinary Ask turn (not Research, App Build, or another explicit mode). */
|
|
1431
|
+
function isOrdinaryAskRequest(request) {
|
|
1432
|
+
return request.requestedMode === undefined
|
|
1433
|
+
|| request.requestedMode === 'auto'
|
|
1434
|
+
|| request.requestedMode === 'ask';
|
|
1435
|
+
}
|
|
1436
|
+
/**
|
|
1437
|
+
* A modeling/coverage gap is a pre-freeze DISCOVERY result, not permission to
|
|
1438
|
+
* terminate an ordinary Ask. Keep the diagnostic as a typed reason, clear the
|
|
1439
|
+
* blocked RAP, and let the answer executor continue through the governed
|
|
1440
|
+
* relational and review-required generated lanes (AGT-028, EXP-001).
|
|
1441
|
+
*
|
|
1442
|
+
* `requireGovernedEvidence` separates the two callers, and it is what keeps the
|
|
1443
|
+
* analytical-RAP safety boundary intact:
|
|
1444
|
+
*
|
|
1445
|
+
* - A gap the ROUTER reported is already proof that discovery ran and found a
|
|
1446
|
+
* modelling limit, so it is rescued unconditionally (the original AGT-028
|
|
1447
|
+
* behaviour).
|
|
1448
|
+
* - A block this module SYNTHESIZES only means "nothing froze here". That is
|
|
1449
|
+
* also what an absent, LLM-authored, or forged router decision looks like,
|
|
1450
|
+
* so it is rescued only when retrieval actually surfaced governed
|
|
1451
|
+
* candidates. With no evidence at all it must still fail closed — a forged
|
|
1452
|
+
* `converse`/`answer` must never bypass the boundary on an analytical
|
|
1453
|
+
* question.
|
|
1454
|
+
*
|
|
1455
|
+
* Returns `undefined` when the decision is not a rescuable modeling gap, so
|
|
1456
|
+
* callers can fall through to their own handling.
|
|
1457
|
+
*/
|
|
1458
|
+
function rescueModelingGapForOrdinaryAsk(request, decision, options = {}) {
|
|
1459
|
+
if (!isOrdinaryAskRequest(request))
|
|
1460
|
+
return undefined;
|
|
1461
|
+
if (decision.terminalOutcome?.kind !== 'modeling_gap')
|
|
1462
|
+
return undefined;
|
|
1463
|
+
// A missing modeled dimension is a factual coverage result, not an invitation
|
|
1464
|
+
// to retry the same question through generated SQL or Research. The router
|
|
1465
|
+
// already searched the governed sources and attached the exact field; keep it
|
|
1466
|
+
// terminal so the UI can render the typed modeling action.
|
|
1467
|
+
if (decision.meaningResolution?.compatibilityFailures?.some((failure) => failure.code === 'MISSING_DIMENSION'))
|
|
1468
|
+
return undefined;
|
|
1469
|
+
// Genuine user-facing ambiguity and an explicit evidence pick stay terminal.
|
|
1470
|
+
if (decision.requiresClarification === true)
|
|
1471
|
+
return undefined;
|
|
1472
|
+
if (request.selectedEvidenceId)
|
|
1473
|
+
return undefined;
|
|
1474
|
+
if (options.requireGovernedEvidence) {
|
|
1475
|
+
const governedEvidence = (decision.retrievalEvidence?.candidateCount ?? 0) > 0
|
|
1476
|
+
|| (decision.meaningResolution?.selectedConceptIds.length ?? 0) > 0;
|
|
1477
|
+
if (!governedEvidence)
|
|
1478
|
+
return undefined;
|
|
1479
|
+
}
|
|
1480
|
+
return {
|
|
1481
|
+
...decision,
|
|
1482
|
+
action: 'answer',
|
|
1483
|
+
confidence: Math.min(decision.confidence, 0.55),
|
|
1484
|
+
reason: `${decision.terminalOutcome.message} Continuing through DBT-grounded relational and review-required generated analysis before asking for a modeling change.`,
|
|
1485
|
+
terminalOutcome: undefined,
|
|
1486
|
+
resolvedAnalyticalPlan: undefined,
|
|
1487
|
+
requiresClarification: false,
|
|
1488
|
+
// The premise of this rescue is that NO governed plan froze, so the turn
|
|
1489
|
+
// must not take `selectRoute`'s certified/semantic shortcut — that path
|
|
1490
|
+
// stamps `certified`/`governed` trust off a bare RECOMMENDATION, which is a
|
|
1491
|
+
// suggestion, not a bound execution contract. Keep the meaning evidence for
|
|
1492
|
+
// citations and downgrade the route to governed SQL, which is review-required.
|
|
1493
|
+
...(decision.meaningResolution
|
|
1494
|
+
? {
|
|
1495
|
+
meaningResolution: {
|
|
1496
|
+
...decision.meaningResolution,
|
|
1497
|
+
recommendedRoute: 'governed_sql',
|
|
1498
|
+
},
|
|
1499
|
+
}
|
|
1500
|
+
: {}),
|
|
1501
|
+
};
|
|
1502
|
+
}
|
|
1503
|
+
/**
|
|
1504
|
+
* Has this exact clarification already been asked in this thread?
|
|
1505
|
+
*
|
|
1506
|
+
* The reported loop: "who are the top customers for BCM" returned "Top by which
|
|
1507
|
+
* governed metric?", the user answered in prose, and the IDENTICAL question came
|
|
1508
|
+
* back. Their reply reads as a complete new question — which is a defensible
|
|
1509
|
+
* classification — so it re-entered the cascade fresh, retrieved the same
|
|
1510
|
+
* evidence, and produced the same clarification. Nothing in the loop noticed it
|
|
1511
|
+
* had already been there.
|
|
1512
|
+
*
|
|
1513
|
+
* Asking twice is proof the question does not work: the user has already seen it
|
|
1514
|
+
* and responded, and a third identical prompt cannot produce a different reply.
|
|
1515
|
+
* Whatever the best available interpretation is, committing to it and saying so
|
|
1516
|
+
* beats asking again.
|
|
1517
|
+
*/
|
|
1518
|
+
function clarificationAlreadyAsked(clarifyingQuestion, history) {
|
|
1519
|
+
const asking = clarifyingQuestion?.replace(/\s+/g, ' ').trim().toLowerCase();
|
|
1520
|
+
if (!asking || !history?.length)
|
|
1521
|
+
return false;
|
|
1522
|
+
let sawAssistantAsk = false;
|
|
1523
|
+
for (const turn of history) {
|
|
1524
|
+
if (turn.role !== 'assistant')
|
|
1525
|
+
continue;
|
|
1526
|
+
if (turn.text.replace(/\s+/g, ' ').trim().toLowerCase().includes(asking))
|
|
1527
|
+
sawAssistantAsk = true;
|
|
1528
|
+
}
|
|
1529
|
+
if (!sawAssistantAsk)
|
|
1530
|
+
return false;
|
|
1531
|
+
// Only a loop once the user has actually replied to it. A clarification still
|
|
1532
|
+
// waiting for its first answer is not a repeat.
|
|
1533
|
+
const lastAsk = [...history].reverse().findIndex((turn) => turn.role === 'assistant' && turn.text.replace(/\s+/g, ' ').trim().toLowerCase().includes(asking));
|
|
1534
|
+
return lastAsk > 0;
|
|
1535
|
+
}
|
|
1281
1536
|
function enforceOrdinaryAnalyticalPlanBoundary(request, decision) {
|
|
1282
1537
|
const ordinaryAsk = request.requestedMode === undefined
|
|
1283
1538
|
|| request.requestedMode === 'auto'
|
|
@@ -1286,24 +1541,50 @@ function enforceOrdinaryAnalyticalPlanBoundary(request, decision) {
|
|
|
1286
1541
|
|| decision.action === 'block'
|
|
1287
1542
|
|| decision.requiresClarification === true
|
|
1288
1543
|
|| Boolean(decision.terminalOutcome);
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
//
|
|
1293
|
-
//
|
|
1294
|
-
//
|
|
1544
|
+
const inboundRescue = rescueModelingGapForOrdinaryAsk(request, decision);
|
|
1545
|
+
if (inboundRescue)
|
|
1546
|
+
return inboundRescue;
|
|
1547
|
+
// A clarification the user has already seen and answered cannot be asked
|
|
1548
|
+
// again. Checked before the `terminal` guard for the same reason as the
|
|
1549
|
+
// definitional case: the gate has already set `action: 'clarify'` by here.
|
|
1295
1550
|
if (ordinaryAsk
|
|
1296
|
-
&& decision.
|
|
1297
|
-
&& decision.
|
|
1298
|
-
&& !request.selectedEvidenceId) {
|
|
1551
|
+
&& decision.action === 'clarify'
|
|
1552
|
+
&& clarificationAlreadyAsked(decision.clarifyingQuestion, request.history?.length ? request.history : conversationHistoryFromContext(request.conversationContext))) {
|
|
1299
1553
|
return {
|
|
1300
1554
|
...decision,
|
|
1301
1555
|
action: 'answer',
|
|
1302
|
-
confidence: Math.min(decision.confidence, 0.
|
|
1303
|
-
reason:
|
|
1556
|
+
confidence: Math.min(decision.confidence, 0.6),
|
|
1557
|
+
reason: `This clarification was already asked and answered in this thread, so DQL proceeded with the best supported interpretation instead of repeating it: ${decision.clarifyingQuestion ?? ''}`.trim(),
|
|
1558
|
+
requiresClarification: false,
|
|
1559
|
+
clarifyingQuestion: undefined,
|
|
1304
1560
|
terminalOutcome: undefined,
|
|
1305
1561
|
resolvedAnalyticalPlan: undefined,
|
|
1562
|
+
};
|
|
1563
|
+
}
|
|
1564
|
+
// A DEFINITIONAL question about an artifact it names is not an analytical
|
|
1565
|
+
// request, and must be caught before the `terminal` guard below — the
|
|
1566
|
+
// ambiguity gate has already set `action: 'clarify'` by this point, so any
|
|
1567
|
+
// check placed after it is unreachable.
|
|
1568
|
+
//
|
|
1569
|
+
// Without this, "what is food_vs_drink_revenue?" is answered with "Which
|
|
1570
|
+
// governed meaning should DQL bind: food_vs_drink_revenue or …?" — asking the
|
|
1571
|
+
// user to disambiguate the one artifact they just named. The plan cannot see
|
|
1572
|
+
// it because it reads the artifact's OWN NAME as analytical intent: that name
|
|
1573
|
+
// contains "vs", so the mode comes back `comparison`.
|
|
1574
|
+
if (ordinaryAsk
|
|
1575
|
+
&& !request.selectedEvidenceId
|
|
1576
|
+
&& looksLikeDefinitionalAboutNamedObject(request.question, decision.retrievalEvidence?.candidateIds ?? [])) {
|
|
1577
|
+
return {
|
|
1578
|
+
...decision,
|
|
1579
|
+
action: 'converse',
|
|
1580
|
+
category: 'conversational',
|
|
1581
|
+
confidence: 1,
|
|
1582
|
+
reason: 'This asks what a governed artifact means, so it is answered from its definition rather than by running a query.',
|
|
1306
1583
|
requiresClarification: false,
|
|
1584
|
+
clarifyingQuestion: undefined,
|
|
1585
|
+
clarificationOptions: undefined,
|
|
1586
|
+
terminalOutcome: undefined,
|
|
1587
|
+
resolvedAnalyticalPlan: undefined,
|
|
1307
1588
|
};
|
|
1308
1589
|
}
|
|
1309
1590
|
const exactSemanticContinuation = Boolean(request.selectedEvidenceId
|
|
@@ -1368,7 +1649,7 @@ function enforceOrdinaryAnalyticalPlanBoundary(request, decision) {
|
|
|
1368
1649
|
if (!analytical)
|
|
1369
1650
|
return decision;
|
|
1370
1651
|
const message = 'DQL could not freeze an exact analytical plan for the requested metric, grain, filters, ordering, and outputs. Choose a governed identifier or model the missing capability before retrying.';
|
|
1371
|
-
|
|
1652
|
+
const blocked = {
|
|
1372
1653
|
...decision,
|
|
1373
1654
|
action: 'block',
|
|
1374
1655
|
confidence: 1,
|
|
@@ -1381,9 +1662,40 @@ function enforceOrdinaryAnalyticalPlanBoundary(request, decision) {
|
|
|
1381
1662
|
candidateIds: decision.retrievalEvidence?.candidateIds ?? [],
|
|
1382
1663
|
},
|
|
1383
1664
|
};
|
|
1665
|
+
// The block synthesized HERE is a modeling gap too, so it must face the same
|
|
1666
|
+
// rescue as one arriving from the router. Without this, the rescue above
|
|
1667
|
+
// silently did not apply to the most common way an ordinary Ask gets blocked:
|
|
1668
|
+
// retrieval found governed candidates, no exact tuple froze, and the run
|
|
1669
|
+
// dead-ended instead of continuing to the generated lane.
|
|
1670
|
+
return rescueModelingGapForOrdinaryAsk(request, blocked, { requireGovernedEvidence: true }) ?? blocked;
|
|
1384
1671
|
}
|
|
1385
|
-
function softBoundaryResult(route, budget) {
|
|
1672
|
+
function softBoundaryResult(route, budget, priorArtifacts = []) {
|
|
1386
1673
|
const seconds = Math.round(budget.softTargetMs(route) / 1_000);
|
|
1674
|
+
// Admission control must never turn work that already validated into a
|
|
1675
|
+
// refusal. A run that established findings and then ran out of clock has
|
|
1676
|
+
// something true to say; answering `blocked` discards it and asks the user
|
|
1677
|
+
// to start the same investigation over. Partial and labelled beats nothing.
|
|
1678
|
+
const established = priorArtifacts.filter((artifact) => artifact.trustState !== "blocked" && artifact.trustState !== "not_applicable");
|
|
1679
|
+
if (established.length > 0) {
|
|
1680
|
+
const titles = established.map((artifact) => artifact.title).filter((title) => Boolean(title));
|
|
1681
|
+
const named = titles.length === 1
|
|
1682
|
+
? titles[0]
|
|
1683
|
+
: `${titles.slice(0, -1).join(", ")} and ${titles[titles.length - 1]}`;
|
|
1684
|
+
const plural = established.length === 1;
|
|
1685
|
+
return {
|
|
1686
|
+
resolvedRoute: route,
|
|
1687
|
+
status: "needs_review",
|
|
1688
|
+
trustState: "review_required",
|
|
1689
|
+
stopReason: "human_review_required",
|
|
1690
|
+
summary: `The ${seconds}-second discovery target elapsed. Returning what was established rather than discarding it.`,
|
|
1691
|
+
answer: titles.length > 0
|
|
1692
|
+
? `The discovery window ended before the whole question was covered, so this is partial: ${named}. ${plural ? "It was" : "They were"} validated before the clock ran out; nothing beyond ${plural ? "it" : "them"} was investigated. Continue to pick up from here.`
|
|
1693
|
+
: `The discovery window ended before the whole question was covered. ${established.length} validated finding${plural ? "" : "s"} from this run ${plural ? "is" : "are"} attached; nothing beyond ${plural ? "it" : "them"} was investigated.`,
|
|
1694
|
+
artifacts: [...established],
|
|
1695
|
+
evaluations: [],
|
|
1696
|
+
nextActions: [{ id: "continue-after-soft-target", label: "Continue the investigation" }],
|
|
1697
|
+
};
|
|
1698
|
+
}
|
|
1387
1699
|
return {
|
|
1388
1700
|
resolvedRoute: 'clarify',
|
|
1389
1701
|
status: 'needs_clarification',
|