@duckcodeailabs/dql-agent 1.14.2 → 1.14.3-rc.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 +63 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +864 -29
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agent-run-planner.d.ts +6 -0
- package/dist/agent-run-planner.d.ts.map +1 -1
- package/dist/agent-run-planner.js +2 -0
- package/dist/agent-run-planner.js.map +1 -1
- package/dist/agent-run-store.d.ts.map +1 -1
- package/dist/agent-run-store.js +48 -3
- package/dist/agent-run-store.js.map +1 -1
- package/dist/agentic/analyst-loop.d.ts +7 -1
- package/dist/agentic/analyst-loop.d.ts.map +1 -1
- package/dist/agentic/analyst-loop.js +163 -0
- package/dist/agentic/analyst-loop.js.map +1 -1
- package/dist/agentic/assumptions.d.ts +1 -1
- package/dist/agentic/assumptions.d.ts.map +1 -1
- package/dist/agentic/assumptions.js.map +1 -1
- package/dist/agentic/research-agent.d.ts.map +1 -1
- package/dist/agentic/research-agent.js +10 -1
- package/dist/agentic/research-agent.js.map +1 -1
- package/dist/agentic/sql-authorization.d.ts +8 -0
- package/dist/agentic/sql-authorization.d.ts.map +1 -1
- package/dist/agentic/sql-authorization.js +3 -0
- package/dist/agentic/sql-authorization.js.map +1 -1
- package/dist/analytical-compatibility.d.ts.map +1 -1
- package/dist/analytical-compatibility.js +8 -1
- package/dist/analytical-compatibility.js.map +1 -1
- package/dist/analytical-failure-repair.d.ts.map +1 -1
- package/dist/analytical-failure-repair.js +6 -2
- package/dist/analytical-failure-repair.js.map +1 -1
- package/dist/analytical-frame.d.ts +23 -1
- package/dist/analytical-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +322 -16
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-orchestration.d.ts +314 -3
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +486 -43
- package/dist/analytical-orchestration.js.map +1 -1
- package/dist/answer-loop.d.ts +64 -8
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +528 -67
- package/dist/answer-loop.js.map +1 -1
- package/dist/ask-observability/index.d.ts +11 -0
- package/dist/ask-observability/index.d.ts.map +1 -0
- package/dist/ask-observability/index.js +7 -0
- package/dist/ask-observability/index.js.map +1 -0
- package/dist/ask-observability/instrumentation.d.ts +35 -0
- package/dist/ask-observability/instrumentation.d.ts.map +1 -0
- package/dist/ask-observability/instrumentation.js +472 -0
- package/dist/ask-observability/instrumentation.js.map +1 -0
- package/dist/ask-observability/observer.d.ts +62 -0
- package/dist/ask-observability/observer.d.ts.map +1 -0
- package/dist/ask-observability/observer.js +537 -0
- package/dist/ask-observability/observer.js.map +1 -0
- package/dist/ask-observability/portable.d.ts +98 -0
- package/dist/ask-observability/portable.d.ts.map +1 -0
- package/dist/ask-observability/portable.js +527 -0
- package/dist/ask-observability/portable.js.map +1 -0
- package/dist/ask-observability/store.d.ts +130 -0
- package/dist/ask-observability/store.d.ts.map +1 -0
- package/dist/ask-observability/store.js +1114 -0
- package/dist/ask-observability/store.js.map +1 -0
- package/dist/ask-observability/types.d.ts +357 -0
- package/dist/ask-observability/types.d.ts.map +1 -0
- package/dist/ask-observability/types.js +2 -0
- package/dist/ask-observability/types.js.map +1 -0
- package/dist/ask-observability/utils.d.ts +21 -0
- package/dist/ask-observability/utils.d.ts.map +1 -0
- package/dist/ask-observability/utils.js +102 -0
- package/dist/ask-observability/utils.js.map +1 -0
- package/dist/generated-analytical-proposal.d.ts +37 -1
- package/dist/generated-analytical-proposal.d.ts.map +1 -1
- package/dist/generated-analytical-proposal.js +211 -3
- package/dist/generated-analytical-proposal.js.map +1 -1
- package/dist/governed-relational-compiler.d.ts +15 -0
- package/dist/governed-relational-compiler.d.ts.map +1 -1
- package/dist/governed-relational-compiler.js +99 -1
- package/dist/governed-relational-compiler.js.map +1 -1
- package/dist/index.d.ts +9 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +10 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +1 -1
- package/dist/intent-controller.js.map +1 -1
- package/dist/meaning-resolution.d.ts +78 -6
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +331 -38
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +21 -1
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +1 -1
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +9 -2
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +261 -11
- package/dist/metadata/meaning-evidence.js.map +1 -1
- package/dist/plan-execution-adapter.d.ts +9 -1
- package/dist/plan-execution-adapter.d.ts.map +1 -1
- package/dist/plan-execution-adapter.js +93 -13
- package/dist/plan-execution-adapter.js.map +1 -1
- package/dist/provider-egress.d.ts +24 -10
- package/dist/provider-egress.d.ts.map +1 -1
- package/dist/provider-egress.js +22 -17
- package/dist/provider-egress.js.map +1 -1
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +10 -9
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/dispatch.d.ts +27 -1
- package/dist/providers/dispatch.d.ts.map +1 -1
- package/dist/providers/dispatch.js +63 -1
- package/dist/providers/dispatch.js.map +1 -1
- package/dist/providers/gemini.js +10 -10
- package/dist/providers/gemini.js.map +1 -1
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/ollama.js +15 -15
- package/dist/providers/ollama.js.map +1 -1
- package/dist/providers/openai.js +22 -22
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/types.d.ts +52 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/relationship-proof.d.ts +81 -0
- package/dist/relationship-proof.d.ts.map +1 -1
- package/dist/relationship-proof.js +228 -4
- package/dist/relationship-proof.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +18 -4
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +764 -47
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +10 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +1785 -213
- package/dist/router.js.map +1 -1
- package/dist/semantic-bridge/compose.d.ts.map +1 -1
- package/dist/semantic-bridge/compose.js +23 -4
- package/dist/semantic-bridge/compose.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { ASK_TRACE_OBSERVER_V1, attachAskTraceObserverV1, askTraceObserverForV1, createAskTraceObserverV1, noOpAskTraceObserverV1, } from './observer.js';
|
|
2
|
+
export type { AskTraceObserverV1, AskTraceStartSpanInputV1, AskTraceFinishSpanInputV1, CreateAskTraceObserverInputV1, } from './observer.js';
|
|
3
|
+
export { AskTraceSqliteStoreV1, defaultAskTraceSqlitePath, DEFAULT_ASK_TRACE_DETAIL_LIMIT, DEFAULT_ASK_TRACE_SUMMARY_LIMIT, DEFAULT_ASK_TRACE_DETAIL_MAX_AGE_MS, DEFAULT_ASK_TRACE_SUMMARY_MAX_AGE_MS, DEFAULT_ASK_TRACE_MAX_DB_BYTES, DEFAULT_ASK_TRACE_MAX_DETAIL_BYTES, DEFAULT_ASK_TRACE_MAX_SPANS, DEFAULT_ASK_TRACE_MAX_CANDIDATES, DEFAULT_ASK_TRACE_QUEUE_CAP, DEFAULT_ASK_TRACE_FLUSH_BATCH, DEFAULT_ASK_TRACE_FLUSH_INTERVAL_MS, } from './store.js';
|
|
4
|
+
export type { AskTraceStoreOptions, AskTraceStoreWriteResult } from './store.js';
|
|
5
|
+
export { compareAskTracesV1, createAskTracePortableBundleV1, exportAskTraceBundleV1, replayAskTraceReceiptV1, toOtlpOpenInferenceJsonV1, validateAskTraceBundleV1, } from './portable.js';
|
|
6
|
+
export type { AskTracePortableBundleV1, AskTracePortableBundleOptionsV1, AskTraceExportOptionsV1, AskTraceExportProfileV1, AskTraceBundleManifestV1, AskTraceBundleValidationV1, AskTraceCompareResultV1, } from './portable.js';
|
|
7
|
+
export { canonicalJson, fingerprint, mintHexId, pseudo, sha256 } from './utils.js';
|
|
8
|
+
export { finalizeAgentRunTraceV1, recordAuthoritativeRouterDecisionV1, recordAuthoritativePlanFreezeV1, recordCascadeDecisionV1, recordEngineTraceEventV1, recordExecutionAttemptSummaryV1, traceCandidateReasonForCandidateV1, } from './instrumentation.js';
|
|
9
|
+
export type { AgentRunTraceReferenceV1, AskTraceDataV1, AskTraceEnvelopeV1, AskTraceExportReceiptV1, AskTraceIdV1, AskTraceLinkV1, AskTraceListEntryV1, AskTraceListQueryV1, AskTraceListResponseV1, AskTraceModeV1, AskTraceRecordingStatusV1, AskTraceReasonCodeV1, AskTraceSpanNameV1, AskTraceSpanOutcomeV1, AskTraceSpanPayloadV1, AskTraceSpanV1, AskTraceStageV1, AskTraceStatusV1, AskTraceStoreStatusV1, AskTraceSurfaceV1, AskTraceTerminalOutcomeV1, CandidateDecisionKindV1, CandidateDecisionReasonV1, CandidateDecisionV1, ObservabilityEvalEvidenceV1, ProviderAttemptTraceV1, SqlExecutionTraceV1, ToolCallTraceV1, } from './types.js';
|
|
10
|
+
export { ASK_TRACE_SCHEMA_VERSION } from './types.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ask-observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,kBAAkB,EAClB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,EACpC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ASK_TRACE_OBSERVER_V1, attachAskTraceObserverV1, askTraceObserverForV1, createAskTraceObserverV1, noOpAskTraceObserverV1, } from './observer.js';
|
|
2
|
+
export { AskTraceSqliteStoreV1, defaultAskTraceSqlitePath, DEFAULT_ASK_TRACE_DETAIL_LIMIT, DEFAULT_ASK_TRACE_SUMMARY_LIMIT, DEFAULT_ASK_TRACE_DETAIL_MAX_AGE_MS, DEFAULT_ASK_TRACE_SUMMARY_MAX_AGE_MS, DEFAULT_ASK_TRACE_MAX_DB_BYTES, DEFAULT_ASK_TRACE_MAX_DETAIL_BYTES, DEFAULT_ASK_TRACE_MAX_SPANS, DEFAULT_ASK_TRACE_MAX_CANDIDATES, DEFAULT_ASK_TRACE_QUEUE_CAP, DEFAULT_ASK_TRACE_FLUSH_BATCH, DEFAULT_ASK_TRACE_FLUSH_INTERVAL_MS, } from './store.js';
|
|
3
|
+
export { compareAskTracesV1, createAskTracePortableBundleV1, exportAskTraceBundleV1, replayAskTraceReceiptV1, toOtlpOpenInferenceJsonV1, validateAskTraceBundleV1, } from './portable.js';
|
|
4
|
+
export { canonicalJson, fingerprint, mintHexId, pseudo, sha256 } from './utils.js';
|
|
5
|
+
export { finalizeAgentRunTraceV1, recordAuthoritativeRouterDecisionV1, recordAuthoritativePlanFreezeV1, recordCascadeDecisionV1, recordEngineTraceEventV1, recordExecutionAttemptSummaryV1, traceCandidateReasonForCandidateV1, } from './instrumentation.js';
|
|
6
|
+
export { ASK_TRACE_SCHEMA_VERSION } from './types.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ask-observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAOvB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,EAC9B,+BAA+B,EAC/B,mCAAmC,EACnC,oCAAoC,EACpC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,mCAAmC,GACpC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,eAAe,CAAC;AAUvB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EACL,uBAAuB,EACvB,mCAAmC,EACnC,+BAA+B,EAC/B,uBAAuB,EACvB,wBAAwB,EACxB,+BAA+B,EAC/B,kCAAkC,GACnC,MAAM,sBAAsB,CAAC;AA+B9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small adapters from existing authoritative typed decisions/receipts into
|
|
3
|
+
* trace spans. No adapter derives authority from prose or labels.
|
|
4
|
+
*/
|
|
5
|
+
import type { AgentRun, AgentRunEvent, AgentRouteExecutorResult } from '../agent-run-engine.js';
|
|
6
|
+
import type { IntentDecision } from '../intent-controller.js';
|
|
7
|
+
import type { AnalyticalCascadeDecisionV1 } from '../analytical-orchestration.js';
|
|
8
|
+
import type { AskTraceObserverV1 } from './observer.js';
|
|
9
|
+
import type { CandidateDecisionReasonV1 } from './types.js';
|
|
10
|
+
export declare function recordAuthoritativeRouterDecisionV1(observer: AskTraceObserverV1, decision: IntentDecision): void;
|
|
11
|
+
export declare function recordCascadeDecisionV1(observer: AskTraceObserverV1, decision: AnalyticalCascadeDecisionV1): void;
|
|
12
|
+
/**
|
|
13
|
+
* A freeze may be present in the router's initial cascade decision or arrive
|
|
14
|
+
* only when the host validates an exploratory execution receipt. Project the
|
|
15
|
+
* exact authoritative state at either boundary; callers guard late promotion
|
|
16
|
+
* so a plan is never represented as freezing twice.
|
|
17
|
+
*/
|
|
18
|
+
export declare function recordAuthoritativePlanFreezeV1(observer: AskTraceObserverV1, decision: AnalyticalCascadeDecisionV1): void;
|
|
19
|
+
export declare function recordEngineTraceEventV1(observer: AskTraceObserverV1, event: AgentRunEvent): void;
|
|
20
|
+
/**
|
|
21
|
+
* Capture only terminal, receipt-derived narration evidence here. Physical
|
|
22
|
+
* provider/tool/SQL spans are emitted at their runtime boundaries; recreating
|
|
23
|
+
* them from counters would invent timing/outcomes and double-count a real
|
|
24
|
+
* execution in the trace.
|
|
25
|
+
*/
|
|
26
|
+
export declare function recordExecutionAttemptSummaryV1(observer: AskTraceObserverV1, result: AgentRouteExecutorResult): void;
|
|
27
|
+
export declare function finalizeAgentRunTraceV1(observer: AskTraceObserverV1, run: AgentRun): void;
|
|
28
|
+
export declare function traceCandidateReasonForCandidateV1(input: {
|
|
29
|
+
exact?: boolean;
|
|
30
|
+
aliases?: string[];
|
|
31
|
+
eligible?: boolean;
|
|
32
|
+
selected?: boolean;
|
|
33
|
+
excluded?: boolean;
|
|
34
|
+
}): CandidateDecisionReasonV1;
|
|
35
|
+
//# sourceMappingURL=instrumentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../src/ask-observability/instrumentation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAIV,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AAoBpB,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CA6EhH;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CA6BjH;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,kBAAkB,EAC5B,QAAQ,EAAE,2BAA2B,GACpC,IAAI,CAQN;AA8BD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CA4BjG;AA8BD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,wBAAwB,GAAG,IAAI,CAMpH;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,GAAG,IAAI,CA0CzF;AAsID,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,yBAAyB,CAMxL"}
|
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
import { fingerprint } from './utils.js';
|
|
2
|
+
const tierSpan = {
|
|
3
|
+
certified: 'cascade.certified',
|
|
4
|
+
semantic: 'cascade.semantic',
|
|
5
|
+
governed_relational: 'cascade.governed_relational',
|
|
6
|
+
exploratory_sql: 'cascade.exploratory_sql',
|
|
7
|
+
clarify_or_gap: 'cascade.clarify_or_gap',
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* The router hands observability an already-authoritative decision. Projecting
|
|
11
|
+
* the same immutable decision into the cascade and freeze spans must not spend
|
|
12
|
+
* a second canonical JSON + SHA-256 pass per Ask. Weak ownership keeps this a
|
|
13
|
+
* pure producer cache: it cannot retain a route or become routing authority.
|
|
14
|
+
*/
|
|
15
|
+
const safeCascadeDecisionCache = new WeakMap();
|
|
16
|
+
const safeCascadeAttemptCache = new WeakMap();
|
|
17
|
+
export function recordAuthoritativeRouterDecisionV1(observer, decision) {
|
|
18
|
+
if (!observer.enabled)
|
|
19
|
+
return;
|
|
20
|
+
const evidence = decision.retrievalEvidence;
|
|
21
|
+
if (evidence) {
|
|
22
|
+
const snapshot = observer.startSpan({
|
|
23
|
+
name: 'snapshot.acquire', stage: 'snapshot', reasonCode: 'completed',
|
|
24
|
+
payload: { kind: 'snapshot', snapshotId: evidence.snapshotId, sourceFingerprint: evidence.sourceFingerprint, freshness: 'unknown' },
|
|
25
|
+
});
|
|
26
|
+
observer.finishSpan(snapshot, { outcome: 'ok', reasonCode: 'completed' });
|
|
27
|
+
const retrieval = observer.startSpan({
|
|
28
|
+
name: 'retrieval', stage: 'retrieval', reasonCode: 'completed',
|
|
29
|
+
payload: { kind: 'retrieval', candidateCount: evidence.candidateCount, fingerprint: evidence.sourceFingerprint },
|
|
30
|
+
});
|
|
31
|
+
observer.finishSpan(retrieval, { outcome: 'ok', reasonCode: 'completed' });
|
|
32
|
+
}
|
|
33
|
+
const requirements = decision.analyticalCascadeDecision?.requirements;
|
|
34
|
+
// A missing meaning result is not itself a rejected model decision. In
|
|
35
|
+
// particular, deterministic pre-meaning clarifications (such as an
|
|
36
|
+
// undeclared fiscal calendar) deliberately skip the model call. Keep that
|
|
37
|
+
// span non-issue and let the authoritative cascade own the clarification.
|
|
38
|
+
const meaningRejected = Boolean(decision.meaningResolutionErrorCode);
|
|
39
|
+
const meaningResolved = Boolean(decision.meaningResolution);
|
|
40
|
+
const meaningReasonCode = meaningRejected
|
|
41
|
+
? 'meaning_rejected'
|
|
42
|
+
: meaningResolved
|
|
43
|
+
? 'meaning_resolved'
|
|
44
|
+
: decision.analyticalCascadeDecision?.stopReason === 'coverage_gap'
|
|
45
|
+
? 'cascade_unavailable'
|
|
46
|
+
: 'unknown';
|
|
47
|
+
const meaningOutcome = meaningRejected
|
|
48
|
+
? 'error'
|
|
49
|
+
: decision.requiresClarification || !meaningResolved
|
|
50
|
+
? 'skipped'
|
|
51
|
+
: 'ok';
|
|
52
|
+
const meaning = observer.startSpan({
|
|
53
|
+
name: 'meaning.resolve', stage: 'meaning', reasonCode: meaningReasonCode,
|
|
54
|
+
payload: {
|
|
55
|
+
kind: 'meaning',
|
|
56
|
+
selectedCandidateIds: uniqueIds([
|
|
57
|
+
...(decision.meaningResolution?.selectedConceptIds ?? []),
|
|
58
|
+
decision.meaningResolution?.recommendedExecutionId ?? '',
|
|
59
|
+
]),
|
|
60
|
+
rejectedCandidateIds: uniqueIds((decision.meaningResolution?.rejectedCandidates ?? []).map((candidate) => candidate.id)),
|
|
61
|
+
...(requirements ? { requirementFingerprint: fingerprint(requirements) } : {}),
|
|
62
|
+
source: decision.source === 'llm' ? 'model' : decision.source === 'cache' ? 'cache' : decision.requiresClarification ? 'selection' : 'heuristic',
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
observer.finishSpan(meaning, {
|
|
66
|
+
outcome: meaningOutcome,
|
|
67
|
+
reasonCode: meaningReasonCode,
|
|
68
|
+
});
|
|
69
|
+
// Meaning selections are only traceable when the router preserved the
|
|
70
|
+
// candidate's actual role and retrieval source. Never invent a generic
|
|
71
|
+
// `conversation/context` role simply because this adapter runs after the
|
|
72
|
+
// decision has frozen.
|
|
73
|
+
const metadata = new Map((evidence?.candidateTraceMetadata ?? []).map((entry) => [`${entry.candidateId}\u0000${entry.role}`, entry]));
|
|
74
|
+
const recordMeaningCandidates = (candidateIds, decisionKind) => {
|
|
75
|
+
for (const candidateId of uniqueIds(candidateIds)) {
|
|
76
|
+
for (const entry of [...metadata.values()].filter((item) => item.candidateId === candidateId)) {
|
|
77
|
+
observer.recordCandidateDecision({
|
|
78
|
+
candidateId,
|
|
79
|
+
role: entry.role,
|
|
80
|
+
source: entry.source,
|
|
81
|
+
...(entry.lanes?.length ? { lanes: entry.lanes, lane: entry.lanes[0]?.lane, laneRank: entry.lanes[0]?.rank } : {}),
|
|
82
|
+
decision: decisionKind,
|
|
83
|
+
reasonCode: decisionKind,
|
|
84
|
+
compatibilityCode: 'unknown',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
recordMeaningCandidates([
|
|
90
|
+
...(decision.meaningResolution?.selectedConceptIds ?? []),
|
|
91
|
+
decision.meaningResolution?.recommendedExecutionId ?? '',
|
|
92
|
+
], 'model_selected');
|
|
93
|
+
recordMeaningCandidates((decision.meaningResolution?.rejectedCandidates ?? []).map((candidate) => candidate.id), 'model_rejected');
|
|
94
|
+
if (decision.analyticalCascadeDecision)
|
|
95
|
+
recordCascadeDecisionV1(observer, decision.analyticalCascadeDecision);
|
|
96
|
+
}
|
|
97
|
+
export function recordCascadeDecisionV1(observer, decision) {
|
|
98
|
+
const traceDecision = cascadeThroughFirstFrozenTierV1(decision);
|
|
99
|
+
// The authoritative cascade keeps useful human-facing reason text. Do not
|
|
100
|
+
// leak it into a durable trace: this projection preserves only decision
|
|
101
|
+
// mechanics, qualified IDs, and one-way fingerprints of reasons.
|
|
102
|
+
const safeDecision = safeCascadeDecision(traceDecision);
|
|
103
|
+
const cascade = observer.startSpan({
|
|
104
|
+
name: 'cascade.evaluate', stage: 'cascade',
|
|
105
|
+
reasonCode: traceDecision.stopReason === 'selected' ? 'cascade_selected' : traceDecision.stopReason === 'denied' ? 'cascade_denied' : traceDecision.stopReason === 'ambiguous' ? 'cascade_ambiguous' : traceDecision.stopReason === 'post_freeze_failure' ? 'post_freeze_failure' : 'cascade_unavailable',
|
|
106
|
+
payload: { kind: 'cascade', decision: safeDecision },
|
|
107
|
+
});
|
|
108
|
+
for (const attempt of traceDecision.attempts) {
|
|
109
|
+
const span = observer.startSpan({
|
|
110
|
+
name: (tierSpan[attempt.tier] ?? 'cascade.clarify_or_gap'),
|
|
111
|
+
stage: 'cascade',
|
|
112
|
+
parentSpanId: cascade,
|
|
113
|
+
reasonCode: attempt.outcome === 'executable' ? 'cascade_selected' : attempt.outcome === 'denied' ? 'cascade_denied' : attempt.outcome === 'ambiguous' ? 'cascade_ambiguous' : attempt.outcome === 'unavailable' ? 'cascade_unavailable' : 'cascade_ineligible',
|
|
114
|
+
payload: { kind: 'cascade', decision: { ...safeDecision, attempts: [safeCascadeAttempt(attempt)] } },
|
|
115
|
+
});
|
|
116
|
+
observer.finishSpan(span, {
|
|
117
|
+
outcome: attempt.outcome === 'executable' ? 'ok' : attempt.outcome === 'denied' ? 'denied' : attempt.outcome === 'unavailable' ? 'unavailable' : attempt.outcome === 'ambiguous' ? 'skipped' : 'skipped',
|
|
118
|
+
reasonCode: attempt.outcome === 'executable' ? 'cascade_selected' : attempt.outcome === 'denied' ? 'cascade_denied' : attempt.outcome === 'ambiguous' ? 'cascade_ambiguous' : attempt.outcome === 'unavailable' ? 'cascade_unavailable' : 'cascade_ineligible',
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
observer.finishSpan(cascade, {
|
|
122
|
+
outcome: traceDecision.stopReason === 'denied' ? 'denied' : traceDecision.stopReason === 'post_freeze_failure' ? 'error' : 'ok',
|
|
123
|
+
reasonCode: traceDecision.stopReason === 'selected' ? 'cascade_selected' : traceDecision.stopReason === 'denied' ? 'cascade_denied' : traceDecision.stopReason === 'ambiguous' ? 'cascade_ambiguous' : traceDecision.stopReason === 'post_freeze_failure' ? 'post_freeze_failure' : 'cascade_unavailable',
|
|
124
|
+
});
|
|
125
|
+
recordAuthoritativePlanFreezeV1(observer, traceDecision);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* A freeze may be present in the router's initial cascade decision or arrive
|
|
129
|
+
* only when the host validates an exploratory execution receipt. Project the
|
|
130
|
+
* exact authoritative state at either boundary; callers guard late promotion
|
|
131
|
+
* so a plan is never represented as freezing twice.
|
|
132
|
+
*/
|
|
133
|
+
export function recordAuthoritativePlanFreezeV1(observer, decision) {
|
|
134
|
+
if (!observer.enabled || !decision.planFrozen)
|
|
135
|
+
return;
|
|
136
|
+
const traceDecision = cascadeThroughFirstFrozenTierV1(decision);
|
|
137
|
+
const freeze = observer.startSpan({
|
|
138
|
+
name: 'plan.freeze', stage: 'plan', reasonCode: 'plan_frozen',
|
|
139
|
+
payload: { kind: 'cascade', decision: safeCascadeDecision(traceDecision) },
|
|
140
|
+
});
|
|
141
|
+
observer.finishSpan(freeze, { outcome: 'ok', reasonCode: 'plan_frozen' });
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Defensive projection for legacy/manual callers: once a tier reports an
|
|
145
|
+
* immutable freeze, later attempted tiers cannot be part of the same trace.
|
|
146
|
+
* Router construction already enforces this invariant, but observability must
|
|
147
|
+
* not turn a malformed old receipt into a misleading portable cascade.
|
|
148
|
+
*/
|
|
149
|
+
function cascadeThroughFirstFrozenTierV1(decision) {
|
|
150
|
+
const selectedFreeze = decision.planFrozen === true && decision.selectedTier
|
|
151
|
+
? decision.selectedTier
|
|
152
|
+
: undefined;
|
|
153
|
+
let normalized = false;
|
|
154
|
+
const normalizedAttempts = decision.attempts.map((attempt) => {
|
|
155
|
+
if (selectedFreeze !== attempt.tier || attempt.planFrozen)
|
|
156
|
+
return attempt;
|
|
157
|
+
normalized = true;
|
|
158
|
+
return { ...attempt, planFrozen: true };
|
|
159
|
+
});
|
|
160
|
+
const frozenIndex = normalizedAttempts.findIndex((attempt) => attempt.planFrozen);
|
|
161
|
+
if (frozenIndex < 0 || frozenIndex === normalizedAttempts.length - 1) {
|
|
162
|
+
return normalized ? { ...decision, attempts: normalizedAttempts } : decision;
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
...decision,
|
|
166
|
+
attempts: normalizedAttempts.slice(0, frozenIndex + 1),
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export function recordEngineTraceEventV1(observer, event) {
|
|
170
|
+
if (!observer.enabled)
|
|
171
|
+
return;
|
|
172
|
+
if (event.type === 'plan.created') {
|
|
173
|
+
const span = observer.startSpan({ name: 'meaning.package', stage: 'meaning', reasonCode: 'completed', payload: { kind: 'stage', route: event.route } });
|
|
174
|
+
observer.finishSpan(span, { outcome: 'ok', reasonCode: 'completed' });
|
|
175
|
+
}
|
|
176
|
+
else if (event.type === 'artifact.created') {
|
|
177
|
+
// The artifact is the engine's already-accepted result boundary. Project
|
|
178
|
+
// only its checksum/count/trust into the trace; never copy rows, SQL, or
|
|
179
|
+
// answer text. This lets the trace prove that the selected frozen route
|
|
180
|
+
// and persisted result receipt refer to the same physical result.
|
|
181
|
+
const result = resultTraceProjection(event.payload);
|
|
182
|
+
// An artifact can carry a blocked answer shell or a narration-only
|
|
183
|
+
// receipt. Neither proves that a result was normalized. Require the
|
|
184
|
+
// canonical result fingerprint before recording successful completion.
|
|
185
|
+
if (!result?.resultFingerprint)
|
|
186
|
+
return;
|
|
187
|
+
const span = observer.startSpan({
|
|
188
|
+
name: 'result.normalize',
|
|
189
|
+
stage: 'result',
|
|
190
|
+
reasonCode: 'result_accepted',
|
|
191
|
+
payload: {
|
|
192
|
+
kind: 'result',
|
|
193
|
+
trustState: event.trustState,
|
|
194
|
+
...(result?.resultFingerprint ? { resultFingerprint: result.resultFingerprint } : {}),
|
|
195
|
+
...(result?.rowCount !== undefined ? { rowCount: result.rowCount } : {}),
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
observer.finishSpan(span, { outcome: 'ok', reasonCode: 'result_accepted' });
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
function resultTraceProjection(payload) {
|
|
202
|
+
if (!payload || typeof payload !== 'object' || Array.isArray(payload))
|
|
203
|
+
return undefined;
|
|
204
|
+
const artifact = payload;
|
|
205
|
+
if (!artifact.payload || typeof artifact.payload !== 'object' || Array.isArray(artifact.payload))
|
|
206
|
+
return undefined;
|
|
207
|
+
const answer = artifact.payload;
|
|
208
|
+
if (!answer.result || typeof answer.result !== 'object' || Array.isArray(answer.result))
|
|
209
|
+
return undefined;
|
|
210
|
+
const result = answer.result;
|
|
211
|
+
const receipt = result.executionReceipt && typeof result.executionReceipt === 'object' && !Array.isArray(result.executionReceipt)
|
|
212
|
+
? result.executionReceipt
|
|
213
|
+
: undefined;
|
|
214
|
+
const fingerprint = typeof result.resultFingerprint === 'string'
|
|
215
|
+
? result.resultFingerprint
|
|
216
|
+
: typeof receipt?.resultFingerprint === 'string'
|
|
217
|
+
? receipt.resultFingerprint
|
|
218
|
+
: undefined;
|
|
219
|
+
const safeFingerprint = fingerprint && /^(?:sha256:)?[a-f0-9]{64}$/i.test(fingerprint)
|
|
220
|
+
? fingerprint
|
|
221
|
+
: undefined;
|
|
222
|
+
const rowCount = typeof result.rowCount === 'number'
|
|
223
|
+
&& Number.isSafeInteger(result.rowCount)
|
|
224
|
+
&& result.rowCount >= 0
|
|
225
|
+
? result.rowCount
|
|
226
|
+
: undefined;
|
|
227
|
+
return safeFingerprint || rowCount !== undefined
|
|
228
|
+
? { ...(safeFingerprint ? { resultFingerprint: safeFingerprint } : {}), ...(rowCount !== undefined ? { rowCount } : {}) }
|
|
229
|
+
: undefined;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Capture only terminal, receipt-derived narration evidence here. Physical
|
|
233
|
+
* provider/tool/SQL spans are emitted at their runtime boundaries; recreating
|
|
234
|
+
* them from counters would invent timing/outcomes and double-count a real
|
|
235
|
+
* execution in the trace.
|
|
236
|
+
*/
|
|
237
|
+
export function recordExecutionAttemptSummaryV1(observer, result) {
|
|
238
|
+
if (!observer.enabled)
|
|
239
|
+
return;
|
|
240
|
+
if (result.narrationIntegrityReceipt) {
|
|
241
|
+
const narration = observer.startSpan({ name: 'narration.verify', stage: 'narration', reasonCode: result.narrationIntegrityReceipt.outcome === 'deterministic_fallback' ? 'narration_fallback' : 'completed', payload: { kind: 'stage', count: result.narrationIntegrityReceipt.factCount } });
|
|
242
|
+
observer.finishSpan(narration, { outcome: result.narrationIntegrityReceipt.outcome === 'error' ? 'error' : 'ok', reasonCode: result.narrationIntegrityReceipt.outcome === 'deterministic_fallback' ? 'narration_fallback' : 'completed' });
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
export function finalizeAgentRunTraceV1(observer, run) {
|
|
246
|
+
if (!observer.enabled)
|
|
247
|
+
return;
|
|
248
|
+
// A root Research deadline is not a generic request failure. Its child
|
|
249
|
+
// spans/receipts may already show partial progress, and this explicit
|
|
250
|
+
// terminal span lets the root tell the same bounded-deadline story without
|
|
251
|
+
// reconstructing an incident from prose or counters.
|
|
252
|
+
if (run.diagnosticReceipt?.failure?.code === 'RESEARCH_RUN_DEADLINE') {
|
|
253
|
+
const deadline = observer.startSpan({
|
|
254
|
+
// Root spans are owned by the observer and cannot be emitted through
|
|
255
|
+
// the producer API. `research.synthesize` is the precise missing phase:
|
|
256
|
+
// child work ended, but finalization could not start before the deadline.
|
|
257
|
+
name: 'research.synthesize',
|
|
258
|
+
stage: 'research',
|
|
259
|
+
reasonCode: 'run_deadline',
|
|
260
|
+
payload: { kind: 'research', branchStopReason: 'run_deadline' },
|
|
261
|
+
});
|
|
262
|
+
observer.finishSpan(deadline, { outcome: 'error', reasonCode: 'run_deadline' });
|
|
263
|
+
}
|
|
264
|
+
recordFrozenPlanTerminalFailureV1(observer, run);
|
|
265
|
+
const conversation = observer.startSpan({
|
|
266
|
+
name: 'conversation.persist',
|
|
267
|
+
stage: 'conversation',
|
|
268
|
+
reasonCode: 'completed',
|
|
269
|
+
payload: {
|
|
270
|
+
kind: 'conversation',
|
|
271
|
+
persisted: Boolean(run.traceReference || run.answer),
|
|
272
|
+
continuation: (run.conversationBinding ?? 'none') !== 'none',
|
|
273
|
+
binding: run.conversationBinding ?? (run.routeDecision?.followsUp ? 'prior_result' : 'none'),
|
|
274
|
+
},
|
|
275
|
+
});
|
|
276
|
+
observer.finishSpan(conversation, { outcome: 'ok', reasonCode: 'completed' });
|
|
277
|
+
const persistence = observer.startSpan({ name: 'run.persist', stage: 'persistence', reasonCode: 'completed', payload: { kind: 'persistence', recordingStatus: observer.recordingStatus } });
|
|
278
|
+
observer.finishSpan(persistence, { outcome: 'ok', reasonCode: 'completed' });
|
|
279
|
+
const status = run.status === 'cancelled' ? 'cancelled' : run.status === 'blocked' ? 'blocked' : 'completed';
|
|
280
|
+
const reference = observer.finalize({
|
|
281
|
+
status,
|
|
282
|
+
terminalOutcome: run.status,
|
|
283
|
+
trustState: run.trustState,
|
|
284
|
+
selectedTier: run.diagnosticReceiptV3?.cascade?.selectedTier,
|
|
285
|
+
completedAt: run.completedAt,
|
|
286
|
+
});
|
|
287
|
+
if (reference)
|
|
288
|
+
run.traceReference = reference;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* A router-frozen plan must not be silently downgraded. When its immutable
|
|
292
|
+
* semantic/analytical execution fails, the run artifact is the authoritative
|
|
293
|
+
* terminal boundary. Project only its allowlisted failure code and action so
|
|
294
|
+
* the trace explains the post-freeze stop without retaining compiler text.
|
|
295
|
+
*/
|
|
296
|
+
function recordFrozenPlanTerminalFailureV1(observer, run) {
|
|
297
|
+
const frozen = run.routeDecision?.analyticalCascadeDecision?.planFrozen
|
|
298
|
+
?? run.diagnosticReceiptV3?.planFrozen
|
|
299
|
+
?? false;
|
|
300
|
+
if (!frozen || run.status !== 'blocked')
|
|
301
|
+
return;
|
|
302
|
+
const failure = terminalAnalyticalFailureForRun(run);
|
|
303
|
+
if (!failure)
|
|
304
|
+
return;
|
|
305
|
+
const compilationFailure = failure.phase === 'compilation';
|
|
306
|
+
const semanticCompilation = compilationFailure && isSemanticCompilationForRun(run);
|
|
307
|
+
const span = observer.startSpan({
|
|
308
|
+
// Compilation happens after the plan froze but before a SQL statement
|
|
309
|
+
// exists. Labeling it as result normalization made a compiler refusal look
|
|
310
|
+
// like a warehouse/result problem in both trace views.
|
|
311
|
+
name: semanticCompilation ? 'semantic.compile' : compilationFailure ? 'plan.compile' : 'result.normalize',
|
|
312
|
+
stage: compilationFailure ? 'plan' : 'result',
|
|
313
|
+
reasonCode: 'post_freeze_failure',
|
|
314
|
+
payload: {
|
|
315
|
+
kind: 'result',
|
|
316
|
+
trustState: run.trustState,
|
|
317
|
+
failureCode: failure.code,
|
|
318
|
+
...(failure.safeAction ? { safeAction: failure.safeAction } : {}),
|
|
319
|
+
},
|
|
320
|
+
});
|
|
321
|
+
observer.finishSpan(span, {
|
|
322
|
+
outcome: failure.code === 'POLICY_DENIED' || failure.code === 'PERMISSION_DENIED'
|
|
323
|
+
? 'denied'
|
|
324
|
+
: failure.code === 'EXECUTION_CANCELLED'
|
|
325
|
+
? 'cancelled'
|
|
326
|
+
: 'error',
|
|
327
|
+
reasonCode: 'post_freeze_failure',
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
function isSemanticCompilationForRun(run) {
|
|
331
|
+
// Use the same router-owned condition as V4. A route label or legacy plan
|
|
332
|
+
// capability alone cannot reconstruct a semantic tier after the fact.
|
|
333
|
+
return run.routeDecision?.analyticalCascadeDecision?.selectedTier === 'semantic';
|
|
334
|
+
}
|
|
335
|
+
function terminalAnalyticalFailureForRun(run) {
|
|
336
|
+
const executionSetupFailure = run.artifacts
|
|
337
|
+
.map((artifact) => artifact.payload)
|
|
338
|
+
.filter((payload) => Boolean(payload) && typeof payload === 'object' && !Array.isArray(payload))
|
|
339
|
+
.map((payload) => payload.observabilityExecutionFailure)
|
|
340
|
+
.find((candidate) => Boolean(candidate)
|
|
341
|
+
&& typeof candidate === 'object'
|
|
342
|
+
&& !Array.isArray(candidate)
|
|
343
|
+
&& isConnectionNotConfiguredFailureV1(candidate));
|
|
344
|
+
if (executionSetupFailure) {
|
|
345
|
+
return { code: 'CONNECTION_NOT_CONFIGURED', safeAction: 'configure_connection' };
|
|
346
|
+
}
|
|
347
|
+
const warehouseFailure = run.artifacts
|
|
348
|
+
.map((artifact) => artifact.payload)
|
|
349
|
+
.filter((payload) => Boolean(payload) && typeof payload === 'object' && !Array.isArray(payload))
|
|
350
|
+
.map((payload) => payload.warehouseFailure)
|
|
351
|
+
.find((candidate) => {
|
|
352
|
+
if (!candidate || typeof candidate !== 'object' || Array.isArray(candidate))
|
|
353
|
+
return false;
|
|
354
|
+
const record = candidate;
|
|
355
|
+
return record.version === 1
|
|
356
|
+
&& record.origin === 'warehouse'
|
|
357
|
+
&& typeof record.category === 'string';
|
|
358
|
+
});
|
|
359
|
+
const failure = run.artifacts
|
|
360
|
+
.map((artifact) => artifact.payload)
|
|
361
|
+
.filter((payload) => Boolean(payload) && typeof payload === 'object' && !Array.isArray(payload))
|
|
362
|
+
.map((payload) => payload.analyticalFailure)
|
|
363
|
+
.find((candidate) => Boolean(candidate) && typeof candidate === 'object' && !Array.isArray(candidate));
|
|
364
|
+
if (!failure)
|
|
365
|
+
return undefined;
|
|
366
|
+
const code = safeTerminalFailureCodeV1(failure.code);
|
|
367
|
+
if (!code)
|
|
368
|
+
return undefined;
|
|
369
|
+
const actions = Array.isArray(failure.safeActions) ? failure.safeActions : [];
|
|
370
|
+
const safeAction = warehouseFailure?.category === 'unknown_relation'
|
|
371
|
+
? 'change_authorized_connection'
|
|
372
|
+
: actions.map(safeTraceActionV1).find((action) => Boolean(action));
|
|
373
|
+
const phase = typeof failure.phase === 'string'
|
|
374
|
+
&& ['planning', 'compilation', 'validation', 'execution', 'result_validation'].includes(failure.phase)
|
|
375
|
+
? failure.phase
|
|
376
|
+
: undefined;
|
|
377
|
+
// A compilation refusal still needs one concrete, stable recovery action in
|
|
378
|
+
// the trace. V4 uses the same `inspect_failure` fallback when the producer
|
|
379
|
+
// supplied no allowlisted action, so inspector and full trace cannot diverge.
|
|
380
|
+
const resolvedSafeAction = safeAction
|
|
381
|
+
?? (code === 'COMPILATION_FAILED' && phase === 'compilation' ? 'inspect_failure' : undefined);
|
|
382
|
+
return { code, ...(resolvedSafeAction ? { safeAction: resolvedSafeAction } : {}), ...(phase ? { phase } : {}) };
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* The execution producer emits this tiny strict allowlist only after a frozen
|
|
386
|
+
* plan failed before compilation/SQL handoff. Keep it structural so raw error
|
|
387
|
+
* text can never be promoted into the local trace.
|
|
388
|
+
*/
|
|
389
|
+
function isConnectionNotConfiguredFailureV1(value) {
|
|
390
|
+
return value.version === 1
|
|
391
|
+
&& value.phase === 'execution'
|
|
392
|
+
&& value.cause === 'connection_not_configured'
|
|
393
|
+
&& value.safeAction === 'configure_connection';
|
|
394
|
+
}
|
|
395
|
+
function safeTerminalFailureCodeV1(value) {
|
|
396
|
+
const codes = [
|
|
397
|
+
'COLUMN_NOT_FOUND', 'RELATION_NOT_FOUND', 'PERMISSION_DENIED', 'AMBIGUOUS_COLUMN', 'DIALECT_ERROR',
|
|
398
|
+
'SNAPSHOT_DRIFT', 'TIMEOUT', 'RESULT_CONTRACT_MISMATCH', 'COMPILATION_FAILED', 'POLICY_DENIED',
|
|
399
|
+
'SEMANTIC_ADAPTER_NOT_READY', 'SEMANTIC_TARGET_BINDING_MISSING', 'EXECUTION_TARGET_MISMATCH',
|
|
400
|
+
'SEMANTIC_SOURCE_DRIFT', 'SEMANTIC_MEMBER_BINDING_FAILED', 'SEMANTIC_PATH_AMBIGUOUS',
|
|
401
|
+
'IDENTIFIER_SCOPE_INVALID', 'CONNECTION_NOT_CONFIGURED', 'EXECUTION_CANCELLED', 'SEMANTIC_COMPILATION_TIMEOUT',
|
|
402
|
+
];
|
|
403
|
+
return typeof value === 'string' && codes.includes(value)
|
|
404
|
+
? value
|
|
405
|
+
: undefined;
|
|
406
|
+
}
|
|
407
|
+
function safeTraceActionV1(value) {
|
|
408
|
+
const actions = [
|
|
409
|
+
'inspect_failure', 'retry_same_plan', 'retry_same_request', 'refresh_snapshot', 'edit_dql',
|
|
410
|
+
'open_sql_notebook', 'request_access', 'change_authorized_connection', 'reapply_semantic_runtime',
|
|
411
|
+
'configure_connection', 'review_analytical_failure',
|
|
412
|
+
];
|
|
413
|
+
return typeof value === 'string' && actions.includes(value)
|
|
414
|
+
? value
|
|
415
|
+
: undefined;
|
|
416
|
+
}
|
|
417
|
+
export function traceCandidateReasonForCandidateV1(input) {
|
|
418
|
+
if (input.selected)
|
|
419
|
+
return 'model_selected';
|
|
420
|
+
if (input.excluded || input.eligible === false)
|
|
421
|
+
return 'below_fused_limit';
|
|
422
|
+
if (input.exact)
|
|
423
|
+
return 'exact_name_match';
|
|
424
|
+
if ((input.aliases?.length ?? 0) > 0)
|
|
425
|
+
return 'alias_match';
|
|
426
|
+
return 'fused_relevance_fill';
|
|
427
|
+
}
|
|
428
|
+
function uniqueIds(ids) {
|
|
429
|
+
return [...new Set(ids.map((value) => value.trim()).filter(Boolean))].slice(0, 32);
|
|
430
|
+
}
|
|
431
|
+
function safeCascadeDecision(decision) {
|
|
432
|
+
const cached = safeCascadeDecisionCache.get(decision);
|
|
433
|
+
if (cached)
|
|
434
|
+
return cached;
|
|
435
|
+
const safe = {
|
|
436
|
+
...(decision.selectedTier ? { selectedTier: decision.selectedTier } : {}),
|
|
437
|
+
planFrozen: decision.planFrozen,
|
|
438
|
+
stopReason: decision.stopReason,
|
|
439
|
+
...(decision.requirements.time?.requiresDeclaredFiscalCalendar ? { requiresDeclaredFiscalCalendar: true } : {}),
|
|
440
|
+
...(decision.terminalGap ? {
|
|
441
|
+
terminalGap: {
|
|
442
|
+
code: decision.terminalGap.code,
|
|
443
|
+
requirement: decision.terminalGap.requirement,
|
|
444
|
+
witnessCandidateIds: uniqueIds(decision.terminalGap.witnessCandidateIds),
|
|
445
|
+
},
|
|
446
|
+
} : {}),
|
|
447
|
+
sourceCoverage: decision.sourceCoverage.slice(0, 16).map((coverage) => ({
|
|
448
|
+
source: coverage.source,
|
|
449
|
+
status: coverage.status,
|
|
450
|
+
candidateIds: uniqueIds(coverage.candidateIds),
|
|
451
|
+
...(coverage.reason ? { reasonFingerprint: fingerprint(coverage.reason) } : {}),
|
|
452
|
+
})),
|
|
453
|
+
attempts: decision.attempts.slice(0, 8).map(safeCascadeAttempt),
|
|
454
|
+
};
|
|
455
|
+
safeCascadeDecisionCache.set(decision, safe);
|
|
456
|
+
return safe;
|
|
457
|
+
}
|
|
458
|
+
function safeCascadeAttempt(attempt) {
|
|
459
|
+
const cached = safeCascadeAttemptCache.get(attempt);
|
|
460
|
+
if (cached)
|
|
461
|
+
return cached;
|
|
462
|
+
const safe = {
|
|
463
|
+
tier: attempt.tier,
|
|
464
|
+
outcome: attempt.outcome,
|
|
465
|
+
candidateIds: uniqueIds(attempt.candidateIds),
|
|
466
|
+
planFrozen: attempt.planFrozen,
|
|
467
|
+
reasonFingerprint: fingerprint(attempt.reason),
|
|
468
|
+
};
|
|
469
|
+
safeCascadeAttemptCache.set(attempt, safe);
|
|
470
|
+
return safe;
|
|
471
|
+
}
|
|
472
|
+
//# sourceMappingURL=instrumentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instrumentation.js","sourceRoot":"","sources":["../../src/ask-observability/instrumentation.ts"],"names":[],"mappings":"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"}
|