@duckcodeailabs/dql-agent 1.14.0 → 1.14.2
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 +68 -2
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +520 -26
- 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 +25 -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 +331 -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 +36 -0
- package/dist/agentic/research/synthesis.d.ts.map +1 -0
- package/dist/agentic/research/synthesis.js +109 -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 +177 -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 +460 -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-frame.d.ts.map +1 -1
- package/dist/analytical-frame.js +10 -1
- package/dist/analytical-frame.js.map +1 -1
- package/dist/analytical-orchestration.d.ts +382 -0
- package/dist/analytical-orchestration.d.ts.map +1 -1
- package/dist/analytical-orchestration.js +782 -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 +105 -16
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +833 -108
- package/dist/answer-loop.js.map +1 -1
- package/dist/answer-shape.d.ts +32 -1
- package/dist/answer-shape.d.ts.map +1 -1
- package/dist/answer-shape.js +49 -3
- package/dist/answer-shape.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 +20 -0
- package/dist/conversation/snapshot.d.ts.map +1 -1
- package/dist/conversation/snapshot.js +40 -2
- package/dist/conversation/snapshot.js.map +1 -1
- package/dist/fixtures/ask-ai-office-shaped.d.ts +153 -0
- package/dist/fixtures/ask-ai-office-shaped.d.ts.map +1 -0
- package/dist/fixtures/ask-ai-office-shaped.js +94 -0
- package/dist/fixtures/ask-ai-office-shaped.js.map +1 -0
- 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 +29 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -6
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts +36 -0
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +95 -0
- package/dist/intent-controller.js.map +1 -1
- package/dist/meaning-resolution.d.ts +69 -2
- package/dist/meaning-resolution.d.ts.map +1 -1
- package/dist/meaning-resolution.js +128 -7
- package/dist/meaning-resolution.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +124 -7
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/block-fit.d.ts +36 -0
- package/dist/metadata/block-fit.d.ts.map +1 -1
- package/dist/metadata/block-fit.js +290 -38
- 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 +193 -22
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/meaning-evidence.d.ts +10 -1
- package/dist/metadata/meaning-evidence.d.ts.map +1 -1
- package/dist/metadata/meaning-evidence.js +275 -53
- 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 +66 -4
- package/dist/research-loop.js.map +1 -1
- package/dist/resolved-analytical-plan.d.ts +7 -0
- package/dist/resolved-analytical-plan.d.ts.map +1 -1
- package/dist/resolved-analytical-plan.js +11 -4
- package/dist/resolved-analytical-plan.js.map +1 -1
- package/dist/router.d.ts +32 -19
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +1977 -73
- package/dist/router.js.map +1 -1
- package/dist/semantic-bridge/member-select.d.ts.map +1 -1
- package/dist/semantic-bridge/member-select.js +39 -21
- package/dist/semantic-bridge/member-select.js.map +1 -1
- package/package.json +5 -5
package/dist/answer-shape.d.ts
CHANGED
|
@@ -12,5 +12,36 @@ export interface AnswerShapeValidation {
|
|
|
12
12
|
topN?: number;
|
|
13
13
|
topNReturned?: number;
|
|
14
14
|
}
|
|
15
|
-
|
|
15
|
+
/**
|
|
16
|
+
* An artifact-owned mapping from a requested analytical role to the exact
|
|
17
|
+
* output alias emitted by a frozen execution authority.
|
|
18
|
+
*
|
|
19
|
+
* These bindings are intentionally narrow. They are not retrieval aliases:
|
|
20
|
+
* callers may only supply them from the selected certified artifact or the
|
|
21
|
+
* immutable resolved plan that selected it. In particular, a nearby metric,
|
|
22
|
+
* block tag, or description can never make a returned column satisfy a
|
|
23
|
+
* requested output here.
|
|
24
|
+
*/
|
|
25
|
+
export interface AnswerShapeOutputBinding {
|
|
26
|
+
/** The role/term the frozen plan resolved (for example `customer`). */
|
|
27
|
+
requested: string;
|
|
28
|
+
/** The declared output name the selected artifact actually returns. */
|
|
29
|
+
output: string;
|
|
30
|
+
/** `measure` remains strict; dimensions and entity labels are role bindings. */
|
|
31
|
+
role: 'measure' | 'dimension' | 'entity_label';
|
|
32
|
+
/** Explicit authored aliases for a dimension/entity role, if any. */
|
|
33
|
+
aliases?: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface AnswerShapeValidationOptions {
|
|
36
|
+
/** Artifact-local aliases from the frozen execution authority only. */
|
|
37
|
+
outputBindings?: readonly AnswerShapeOutputBinding[];
|
|
38
|
+
/**
|
|
39
|
+
* A frozen certified plan must prove requested measures through its own
|
|
40
|
+
* binding. This is deliberately off for semantic/generated results, where a
|
|
41
|
+
* governed projection such as `beverage_revenue` legitimately answers a
|
|
42
|
+
* plain-English spend request.
|
|
43
|
+
*/
|
|
44
|
+
requireBoundMeasures?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export declare function validateAnswerResultShape(plan: AnalysisQuestionPlan, result: AnswerShapeResultLike, options?: AnswerShapeValidationOptions): AnswerShapeValidation;
|
|
16
47
|
//# sourceMappingURL=answer-shape.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-shape.d.ts","sourceRoot":"","sources":["../src/answer-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"answer-shape.d.ts","sourceRoot":"","sources":["../src/answer-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAE3E,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,wBAAwB;IACvC,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,IAAI,EAAE,SAAS,GAAG,WAAW,GAAG,cAAc,CAAC;IAC/C,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,uEAAuE;IACvE,cAAc,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,4BAAiC,GACzC,qBAAqB,CAgCvB"}
|
package/dist/answer-shape.js
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
export function validateAnswerResultShape(plan, result) {
|
|
1
|
+
export function validateAnswerResultShape(plan, result, options = {}) {
|
|
2
2
|
const columns = resultColumnsForShape(result);
|
|
3
3
|
const rowCount = resultRowCount(result);
|
|
4
|
-
const missingOutputs = plan.requestedShape.requiredOutputs.filter((output) =>
|
|
4
|
+
const missingOutputs = plan.requestedShape.requiredOutputs.filter((output) => {
|
|
5
|
+
const bindingMatches = columns.some((column) => outputBindingCoversRequestedOutput(column, output, options.outputBindings ?? []));
|
|
6
|
+
if (bindingMatches)
|
|
7
|
+
return false;
|
|
8
|
+
if (options.requireBoundMeasures && isRequestedMeasureOutput(plan, output))
|
|
9
|
+
return true;
|
|
10
|
+
return !columns.some((column) => columnCoversRequestedOutput(column, output));
|
|
11
|
+
});
|
|
5
12
|
const warnings = [];
|
|
6
13
|
if (missingOutputs.length > 0) {
|
|
7
14
|
warnings.push(`The answer is missing requested output column(s): ${missingOutputs.join(', ')}.`);
|
|
@@ -66,12 +73,51 @@ function columnCoversRequestedOutput(column, requiredOutput) {
|
|
|
66
73
|
}
|
|
67
74
|
return requiredTokens.every((token) => columnTokens.some((columnToken) => outputTokensEquivalent(token, columnToken)));
|
|
68
75
|
}
|
|
76
|
+
function isRequestedMeasureOutput(plan, output) {
|
|
77
|
+
const required = canonicalResultColumn(output);
|
|
78
|
+
return plan.requestedShape.measures.some((measure) => {
|
|
79
|
+
const candidate = canonicalResultColumn(measure);
|
|
80
|
+
if (!candidate || !required)
|
|
81
|
+
return false;
|
|
82
|
+
if (candidate === required)
|
|
83
|
+
return true;
|
|
84
|
+
const candidateTokens = candidate.split('_').filter(Boolean);
|
|
85
|
+
const requiredTokens = required.split('_').filter(Boolean);
|
|
86
|
+
return candidateTokens.length === 1
|
|
87
|
+
&& requiredTokens.length === 1
|
|
88
|
+
&& outputTokensEquivalent(candidateTokens[0], requiredTokens[0]);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function outputBindingCoversRequestedOutput(column, requiredOutput, bindings) {
|
|
92
|
+
const required = canonicalResultColumn(requiredOutput);
|
|
93
|
+
if (!required)
|
|
94
|
+
return true;
|
|
95
|
+
return bindings.some((binding) => {
|
|
96
|
+
if (canonicalResultColumn(binding.output) !== column)
|
|
97
|
+
return false;
|
|
98
|
+
const requested = canonicalResultColumn(binding.requested);
|
|
99
|
+
const aliases = (binding.aliases ?? []).map(canonicalResultColumn);
|
|
100
|
+
const requestedRoleMatches = requested === required || aliases.includes(required);
|
|
101
|
+
if (!requestedRoleMatches)
|
|
102
|
+
return false;
|
|
103
|
+
// A measure binding must have been created from the frozen plan's strict
|
|
104
|
+
// declared measure proof. We therefore require its exact requested role,
|
|
105
|
+
// rather than applying broad column similarity a second time.
|
|
106
|
+
return binding.role === 'measure' || binding.role === 'dimension' || binding.role === 'entity_label';
|
|
107
|
+
});
|
|
108
|
+
}
|
|
69
109
|
// Keep this deliberately small and business-semantic. These are common measure
|
|
70
110
|
// words that users interchange in plain English; matching them prevents a
|
|
71
111
|
// correctly selected certified contract from being rejected merely because its
|
|
72
112
|
// governed output uses `revenue` while the question says `spend`.
|
|
73
113
|
const OUTPUT_TOKEN_EQUIVALENCE = [
|
|
74
|
-
|
|
114
|
+
// `canonicalResultColumn` singularizes ordinary English plurals before this
|
|
115
|
+
// comparison. Keep the singular form here as well: otherwise a certified
|
|
116
|
+
// `revenue` output is incorrectly rejected for "sales by category" after
|
|
117
|
+
// `sales` becomes `sale`, and a frozen certified plan is misreported as a
|
|
118
|
+
// generated-route mismatch. This is deliberately limited to the revenue
|
|
119
|
+
// family; unrelated business measures (for example BCM) remain distinct.
|
|
120
|
+
new Set(['spend', 'spending', 'revenue', 'sales', 'sale']),
|
|
75
121
|
new Set(['count', 'number', 'num', 'quantity', 'qty']),
|
|
76
122
|
];
|
|
77
123
|
function outputTokensEquivalent(required, column) {
|
package/dist/answer-shape.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"answer-shape.js","sourceRoot":"","sources":["../src/answer-shape.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"answer-shape.js","sourceRoot":"","sources":["../src/answer-shape.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/cascade/budgets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC;AAClF,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,aAAa,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,0BAA0B,EAAE,MAAM,CAAC;IACnC,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,uBAAuB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,oBAAoB,CAAC;IACpC,UAAU,EAAE,0BAA0B,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,4BAA4B,EAAE,kBAW1C,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,
|
|
1
|
+
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/cascade/budgets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,CAAC;AAC5E,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,cAAc,GAAG,eAAe,CAAC;AAClF,MAAM,MAAM,0BAA0B,GAAG,UAAU,GAAG,aAAa,CAAC;AAEpE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,uBAAuB,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,0BAA0B,EAAE,MAAM,CAAC;IACnC,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,UAAU,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,gBAAgB,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,uBAAuB,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,2BAA2B,EAAE,MAAM,CAAC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,oBAAoB,CAAC;IACpC,UAAU,EAAE,0BAA0B,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,4BAA4B,EAAE,kBAW1C,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,mBAwBzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,mBAiBxC,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,SAAS,GAAE,yBAA8B,GACxC,kBAAkB,CAUpB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,SAAS,GAAE,yBAA8B,GAAG,kBAAkB,CAUrG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAEhG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,qBAAqB,GAAG,kBAAkB,CAS3G;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAEzE;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAGpF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAOhF;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAShF;AAED,wBAAgB,4BAA4B,CAC1C,YAAY,SAAI,EAChB,KAAK,GAAE,yBAA8B,GACpC,oBAAoB,CAUtB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,uBAAuB,CA4BvG;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,oBAAoB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAMnG;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,oBAAoB,EAC1B,eAAe,CAAC,EAAE,eAAe,EACjC,cAAc,CAAC,EAAE,oBAAoB,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,oBAAoB,CAQtB;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE;IACpD,YAAY,EAAE,oBAAoB,CAAC;IACnC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,mBAAmB,CAItB;AAED,wBAAgB,iCAAiC,CAAC,KAAK,EAAE;IACvD,YAAY,EAAE,oBAAoB,CAAC;IACnC,cAAc,CAAC,EAAE,oBAAoB,CAAC;IACtC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,sBAAsB,CAKzB;AAED,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,yBAA8B,GACvC,kBAAkB,CA4BpB"}
|
package/dist/cascade/budgets.js
CHANGED
|
@@ -26,7 +26,14 @@ export const QUICK_PROMPT_CONTEXT_BUDGET = {
|
|
|
26
26
|
otherRelationLimit: 24,
|
|
27
27
|
sourceSqlLimit: 5,
|
|
28
28
|
sourceSqlColumnLimit: 24,
|
|
29
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Was 0, which blacked out every non-`proves_join` edge on exactly the
|
|
31
|
+
* single-metric lookups that most need lineage — CTX-008 had to add
|
|
32
|
+
* `GOVERNED_JOIN_EDGE_FLOOR` to claw back the join proofs alone. A small
|
|
33
|
+
* allowance removes the blackout without reopening the token cost the zero
|
|
34
|
+
* was defending: the quick path is still the one that must answer in seconds.
|
|
35
|
+
*/
|
|
36
|
+
edgeLimit: 8,
|
|
30
37
|
};
|
|
31
38
|
export const DEEP_PROMPT_CONTEXT_BUDGET = {
|
|
32
39
|
label: 'deep',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/cascade/budgets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/cascade/budgets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token-budgeted context packing.
|
|
3
|
+
*
|
|
4
|
+
* Every prompt budget in `budgets.ts` is an ITEM COUNT — 12 tables, 50 columns,
|
|
5
|
+
* 18 context objects — and there is no token estimator anywhere in the package.
|
|
6
|
+
* Counts are a poor proxy for what actually fits: one wide fact table with 200
|
|
7
|
+
* documented columns costs more than thirty lean dimensions, so a fixed top-N
|
|
8
|
+
* either wastes most of the window or silently overruns it. Worse, it truncates
|
|
9
|
+
* by POSITION rather than by value, so the object that would have answered the
|
|
10
|
+
* question gets cut because it ranked 19th.
|
|
11
|
+
*
|
|
12
|
+
* This packs by value per token instead, with hard-priority tiers that always go
|
|
13
|
+
* in first. It is deliberately a pure function over already-ranked items: the
|
|
14
|
+
* ranking stays where the evidence is, and this only decides what fits.
|
|
15
|
+
*/
|
|
16
|
+
/** A candidate piece of prompt context, already scored by retrieval. */
|
|
17
|
+
export interface PackItem {
|
|
18
|
+
id: string;
|
|
19
|
+
/** Rendered text. Called at most once per item, so it may be expensive. */
|
|
20
|
+
render: () => string;
|
|
21
|
+
/**
|
|
22
|
+
* Relevance, higher is better. Compared only against other items in the same
|
|
23
|
+
* pack, so any consistent scale works.
|
|
24
|
+
*/
|
|
25
|
+
score: number;
|
|
26
|
+
/**
|
|
27
|
+
* Items that must be included regardless of budget, lowest number first.
|
|
28
|
+
* Reserved for context whose ABSENCE changes the answer's correctness rather
|
|
29
|
+
* than its quality: the frozen plan's bound identifiers, the certified block's
|
|
30
|
+
* SQL, the relations the query is allowed to touch. Everything else competes.
|
|
31
|
+
*/
|
|
32
|
+
priority?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface PackResult {
|
|
35
|
+
text: string;
|
|
36
|
+
included: string[];
|
|
37
|
+
dropped: string[];
|
|
38
|
+
tokensUsed: number;
|
|
39
|
+
/** True when a hard-priority item alone exceeded the budget. */
|
|
40
|
+
overBudget: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Estimate tokens for prompt text.
|
|
44
|
+
*
|
|
45
|
+
* chars/4 is the standard rough ratio and lands within ~10% on schema text,
|
|
46
|
+
* which is mostly short identifiers and punctuation. It is deliberately an
|
|
47
|
+
* ESTIMATE with a pluggable seam rather than a real BPE tokenizer: pulling one
|
|
48
|
+
* in costs a dependency and per-model vocabularies, and a packer only needs to
|
|
49
|
+
* be right enough to stop truncating by position. Swap in a real tokenizer here
|
|
50
|
+
* when a provider's exact window becomes the binding constraint.
|
|
51
|
+
*/
|
|
52
|
+
export declare function estimateTokens(text: string): number;
|
|
53
|
+
export type TokenEstimator = (text: string) => number;
|
|
54
|
+
export interface PackOptions {
|
|
55
|
+
/** Defaults to {@link estimateTokens}. */
|
|
56
|
+
estimate?: TokenEstimator;
|
|
57
|
+
/** Joined between rendered items. Its cost is counted. */
|
|
58
|
+
separator?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Pack items into a token budget, best value first.
|
|
62
|
+
*
|
|
63
|
+
* Hard-priority items are admitted in priority order before anything competes,
|
|
64
|
+
* and they are admitted EVEN IF that exceeds the budget — a prompt missing the
|
|
65
|
+
* relations its SQL is allowed to touch is not a smaller prompt, it is a wrong
|
|
66
|
+
* one. `overBudget` reports that so a caller can widen the window or shed work
|
|
67
|
+
* rather than silently shipping an over-length request.
|
|
68
|
+
*
|
|
69
|
+
* The rest are greedy by score-per-token. Greedy is not optimal for knapsack,
|
|
70
|
+
* but the alternative is a DP over a set that changes every turn, and the
|
|
71
|
+
* ordering that matters — high-value-dense context first — is what greedy gets
|
|
72
|
+
* right.
|
|
73
|
+
*/
|
|
74
|
+
export declare function packContext(items: readonly PackItem[], budgetTokens: number, options?: PackOptions): PackResult;
|
|
75
|
+
/**
|
|
76
|
+
* Token budgets by analysis depth, replacing the item counts in `budgets.ts`.
|
|
77
|
+
*
|
|
78
|
+
* Sized against typical provider windows with room for the system prompt, the
|
|
79
|
+
* conversation, and the response — the context pack is a share of the window,
|
|
80
|
+
* never the whole thing.
|
|
81
|
+
*/
|
|
82
|
+
export declare const PROMPT_TOKEN_BUDGETS: {
|
|
83
|
+
readonly quick: 6000;
|
|
84
|
+
readonly deep: 24000;
|
|
85
|
+
readonly research: 48000;
|
|
86
|
+
};
|
|
87
|
+
export type PromptTokenBudget = keyof typeof PROMPT_TOKEN_BUDGETS;
|
|
88
|
+
//# sourceMappingURL=packer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packer.d.ts","sourceRoot":"","sources":["../../src/cascade/packer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,wEAAwE;AACxE,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,MAAM,EAAE,MAAM,MAAM,CAAC;IACrB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,SAAS,QAAQ,EAAE,EAC1B,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,UAAU,CAwDZ;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token-budgeted context packing.
|
|
3
|
+
*
|
|
4
|
+
* Every prompt budget in `budgets.ts` is an ITEM COUNT — 12 tables, 50 columns,
|
|
5
|
+
* 18 context objects — and there is no token estimator anywhere in the package.
|
|
6
|
+
* Counts are a poor proxy for what actually fits: one wide fact table with 200
|
|
7
|
+
* documented columns costs more than thirty lean dimensions, so a fixed top-N
|
|
8
|
+
* either wastes most of the window or silently overruns it. Worse, it truncates
|
|
9
|
+
* by POSITION rather than by value, so the object that would have answered the
|
|
10
|
+
* question gets cut because it ranked 19th.
|
|
11
|
+
*
|
|
12
|
+
* This packs by value per token instead, with hard-priority tiers that always go
|
|
13
|
+
* in first. It is deliberately a pure function over already-ranked items: the
|
|
14
|
+
* ranking stays where the evidence is, and this only decides what fits.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Estimate tokens for prompt text.
|
|
18
|
+
*
|
|
19
|
+
* chars/4 is the standard rough ratio and lands within ~10% on schema text,
|
|
20
|
+
* which is mostly short identifiers and punctuation. It is deliberately an
|
|
21
|
+
* ESTIMATE with a pluggable seam rather than a real BPE tokenizer: pulling one
|
|
22
|
+
* in costs a dependency and per-model vocabularies, and a packer only needs to
|
|
23
|
+
* be right enough to stop truncating by position. Swap in a real tokenizer here
|
|
24
|
+
* when a provider's exact window becomes the binding constraint.
|
|
25
|
+
*/
|
|
26
|
+
export function estimateTokens(text) {
|
|
27
|
+
if (!text)
|
|
28
|
+
return 0;
|
|
29
|
+
return Math.ceil(text.length / 4);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Pack items into a token budget, best value first.
|
|
33
|
+
*
|
|
34
|
+
* Hard-priority items are admitted in priority order before anything competes,
|
|
35
|
+
* and they are admitted EVEN IF that exceeds the budget — a prompt missing the
|
|
36
|
+
* relations its SQL is allowed to touch is not a smaller prompt, it is a wrong
|
|
37
|
+
* one. `overBudget` reports that so a caller can widen the window or shed work
|
|
38
|
+
* rather than silently shipping an over-length request.
|
|
39
|
+
*
|
|
40
|
+
* The rest are greedy by score-per-token. Greedy is not optimal for knapsack,
|
|
41
|
+
* but the alternative is a DP over a set that changes every turn, and the
|
|
42
|
+
* ordering that matters — high-value-dense context first — is what greedy gets
|
|
43
|
+
* right.
|
|
44
|
+
*/
|
|
45
|
+
export function packContext(items, budgetTokens, options = {}) {
|
|
46
|
+
const estimate = options.estimate ?? estimateTokens;
|
|
47
|
+
const separator = options.separator ?? '\n';
|
|
48
|
+
const separatorCost = estimate(separator);
|
|
49
|
+
const rendered = items.map((item) => {
|
|
50
|
+
const text = item.render();
|
|
51
|
+
return { item, text, tokens: estimate(text) };
|
|
52
|
+
});
|
|
53
|
+
const required = rendered
|
|
54
|
+
.filter((entry) => entry.item.priority !== undefined)
|
|
55
|
+
.sort((left, right) => (left.item.priority ?? 0) - (right.item.priority ?? 0)
|
|
56
|
+
|| right.item.score - left.item.score
|
|
57
|
+
|| left.item.id.localeCompare(right.item.id));
|
|
58
|
+
const optional = rendered
|
|
59
|
+
.filter((entry) => entry.item.priority === undefined)
|
|
60
|
+
.sort((left, right) => {
|
|
61
|
+
// Value per token. A zero-token item is free, so it sorts first rather
|
|
62
|
+
// than dividing by zero.
|
|
63
|
+
const leftDensity = left.tokens === 0 ? Number.POSITIVE_INFINITY : left.item.score / left.tokens;
|
|
64
|
+
const rightDensity = right.tokens === 0 ? Number.POSITIVE_INFINITY : right.item.score / right.tokens;
|
|
65
|
+
return rightDensity - leftDensity
|
|
66
|
+
|| right.item.score - left.item.score
|
|
67
|
+
|| left.item.id.localeCompare(right.item.id);
|
|
68
|
+
});
|
|
69
|
+
const chosen = [];
|
|
70
|
+
const dropped = [];
|
|
71
|
+
let used = 0;
|
|
72
|
+
for (const entry of required) {
|
|
73
|
+
used += entry.tokens + (chosen.length > 0 ? separatorCost : 0);
|
|
74
|
+
chosen.push(entry);
|
|
75
|
+
}
|
|
76
|
+
const overBudget = used > budgetTokens;
|
|
77
|
+
for (const entry of optional) {
|
|
78
|
+
const cost = entry.tokens + (chosen.length > 0 ? separatorCost : 0);
|
|
79
|
+
if (used + cost > budgetTokens) {
|
|
80
|
+
dropped.push(entry.item.id);
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
used += cost;
|
|
84
|
+
chosen.push(entry);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
text: chosen.map((entry) => entry.text).join(separator),
|
|
88
|
+
included: chosen.map((entry) => entry.item.id),
|
|
89
|
+
dropped,
|
|
90
|
+
tokensUsed: used,
|
|
91
|
+
overBudget,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Token budgets by analysis depth, replacing the item counts in `budgets.ts`.
|
|
96
|
+
*
|
|
97
|
+
* Sized against typical provider windows with room for the system prompt, the
|
|
98
|
+
* conversation, and the response — the context pack is a share of the window,
|
|
99
|
+
* never the whole thing.
|
|
100
|
+
*/
|
|
101
|
+
export const PROMPT_TOKEN_BUDGETS = {
|
|
102
|
+
quick: 6_000,
|
|
103
|
+
deep: 24_000,
|
|
104
|
+
research: 48_000,
|
|
105
|
+
};
|
|
106
|
+
//# sourceMappingURL=packer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packer.js","sourceRoot":"","sources":["../../src/cascade/packer.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,11 +53,26 @@ export interface ResultSetComputation {
|
|
|
53
53
|
/** True when coveredRows < ofRowCount (computed over a sample, not the full set). */
|
|
54
54
|
partial: boolean;
|
|
55
55
|
}
|
|
56
|
+
/** Prior-result shape the scorer consults. Optional so bare callers keep working. */
|
|
57
|
+
export interface PriorResultShape {
|
|
58
|
+
columns?: readonly string[];
|
|
59
|
+
measureColumns?: readonly string[];
|
|
60
|
+
}
|
|
56
61
|
/**
|
|
57
|
-
*
|
|
58
|
-
*
|
|
62
|
+
* Should this question be answered from the prior result?
|
|
63
|
+
*
|
|
64
|
+
* The demonstrative regex used to be a hard gate, so "what's the average
|
|
65
|
+
* revenue?" right after a table re-entered the full cascade and came back as a
|
|
66
|
+
* metric-composition clarification — a fresh warehouse round-trip for arithmetic
|
|
67
|
+
* over rows already on screen.
|
|
68
|
+
*
|
|
69
|
+
* It is now the strongest of several signals rather than the only one. A named
|
|
70
|
+
* column that EXISTS in the prior result is nearly as strong: "the average
|
|
71
|
+
* lifetime_spend" can only sensibly mean the column just shown. Anything that
|
|
72
|
+
* looks like a new query vetoes both.
|
|
59
73
|
*/
|
|
60
|
-
export declare function
|
|
74
|
+
export declare function refersToPriorResult(question: string, prior?: PriorResultShape): boolean;
|
|
75
|
+
export declare function detectResultSetOperation(question: string, prior?: PriorResultShape): ResultSetOperation | null;
|
|
61
76
|
/**
|
|
62
77
|
* Compute the operation over the prior result rows. Returns null when there is
|
|
63
78
|
* nothing to compute (no rows, or no numeric column for a numeric aggregate).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-ops.d.ts","sourceRoot":"","sources":["../../src/conversation/result-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IAClB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"result-ops.d.ts","sourceRoot":"","sources":["../../src/conversation/result-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpF,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC7B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+CAA+C;IAC/C,IAAI,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,KAAK,GAAG,QAAQ,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;IAClB,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qFAAqF;IACrF,OAAO,EAAE,OAAO,CAAC;CAClB;AA6BD,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAsBvF;AAmBD,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,gBAAgB,GACvB,kBAAkB,GAAG,IAAI,CA+B3B;AA6DD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,eAAe,GACrB,oBAAoB,GAAG,IAAI,CAuE7B"}
|
|
@@ -15,10 +15,72 @@
|
|
|
15
15
|
* When the full result had more rows than we retained, the answer says so and
|
|
16
16
|
* points the user at re-asking as a fresh query for the exact full-set figure.
|
|
17
17
|
*/
|
|
18
|
-
// A demonstrative back-reference to the prior result.
|
|
19
|
-
//
|
|
20
|
-
//
|
|
18
|
+
// A demonstrative back-reference to the prior result. STRONG evidence that the
|
|
19
|
+
// question is about the rows already on screen — but no longer required on its
|
|
20
|
+
// own, see `refersToPriorResult`.
|
|
21
21
|
const BACK_REFERENCE_RE = /\b(these|those|them|the\s+(?:results?|list|rows?|ones?|values?|numbers?)|above|shown\s+above|listed\s+above|from\s+(?:the\s+)?(?:results?|above|list))\b/i;
|
|
22
|
+
/**
|
|
23
|
+
* Signals that the question introduces a NEW query rather than operating on the
|
|
24
|
+
* rows already returned. Any of these vetoes the cross-result path outright.
|
|
25
|
+
*
|
|
26
|
+
* This side matters more than the positive signals. The failure mode of relaxing
|
|
27
|
+
* the demonstrative requirement is answering a FRESH question from a stale
|
|
28
|
+
* table — silently computing "average revenue last quarter" over whatever
|
|
29
|
+
* happened to be on screen — which is worse than the bug being fixed, because
|
|
30
|
+
* the user cannot see that it happened.
|
|
31
|
+
*/
|
|
32
|
+
const NEW_QUERY_RE = new RegExp([
|
|
33
|
+
// An explicit time frame the prior result was not scoped to.
|
|
34
|
+
'\\b(last|next|this|previous|past)\\s+(year|quarter|month|week|day|\\d+\\s+\\w+)\\b',
|
|
35
|
+
'\\b(ytd|mtd|qtd|year\\s+to\\s+date|since|between|from)\\b',
|
|
36
|
+
// A new breakdown — "by region" asks for a grouping the prior rows may not have.
|
|
37
|
+
'\\bby\\s+[a-z_]',
|
|
38
|
+
// A new population.
|
|
39
|
+
'\\b(all|every|each)\\b',
|
|
40
|
+
// Explicitly asking to re-run.
|
|
41
|
+
'\\b(re-?run|recalculate|refresh|fresh|instead|new\\s+query)\\b',
|
|
42
|
+
].join('|'), 'i');
|
|
43
|
+
/**
|
|
44
|
+
* Should this question be answered from the prior result?
|
|
45
|
+
*
|
|
46
|
+
* The demonstrative regex used to be a hard gate, so "what's the average
|
|
47
|
+
* revenue?" right after a table re-entered the full cascade and came back as a
|
|
48
|
+
* metric-composition clarification — a fresh warehouse round-trip for arithmetic
|
|
49
|
+
* over rows already on screen.
|
|
50
|
+
*
|
|
51
|
+
* It is now the strongest of several signals rather than the only one. A named
|
|
52
|
+
* column that EXISTS in the prior result is nearly as strong: "the average
|
|
53
|
+
* lifetime_spend" can only sensibly mean the column just shown. Anything that
|
|
54
|
+
* looks like a new query vetoes both.
|
|
55
|
+
*/
|
|
56
|
+
export function refersToPriorResult(question, prior) {
|
|
57
|
+
const q = question.trim();
|
|
58
|
+
if (!q)
|
|
59
|
+
return false;
|
|
60
|
+
// A new-query signal wins over everything. Being wrong in this direction is
|
|
61
|
+
// silent and unrecoverable; being wrong the other way just costs a query.
|
|
62
|
+
if (NEW_QUERY_RE.test(q))
|
|
63
|
+
return false;
|
|
64
|
+
if (BACK_REFERENCE_RE.test(q))
|
|
65
|
+
return true;
|
|
66
|
+
// No demonstrative: accept only when the question names a column the prior
|
|
67
|
+
// result actually has. Without prior columns there is nothing to anchor on,
|
|
68
|
+
// so stay conservative and let the normal cascade run.
|
|
69
|
+
const columns = [...(prior?.columns ?? []), ...(prior?.measureColumns ?? [])];
|
|
70
|
+
if (columns.length === 0)
|
|
71
|
+
return false;
|
|
72
|
+
const lower = q.toLowerCase();
|
|
73
|
+
return columns.some((column) => {
|
|
74
|
+
const name = column.toLowerCase().trim();
|
|
75
|
+
if (!name)
|
|
76
|
+
return false;
|
|
77
|
+
if (lower.includes(name))
|
|
78
|
+
return true;
|
|
79
|
+
// `lifetime_spend` should also match "lifetime spend".
|
|
80
|
+
const spaced = name.replace(/[_\s]+/g, ' ');
|
|
81
|
+
return spaced.length > 3 && lower.includes(spaced);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
22
84
|
const AGGREGATE_PATTERNS = [
|
|
23
85
|
{ re: /\b(average|avg|mean)\b/i, aggregate: 'avg' },
|
|
24
86
|
{ re: /\b(median)\b/i, aggregate: 'median' },
|
|
@@ -31,11 +93,21 @@ const AGGREGATE_PATTERNS = [
|
|
|
31
93
|
* Detect a cross-result operation. Returns null unless the question both refers
|
|
32
94
|
* back to the prior result AND names an aggregate or a re-rank.
|
|
33
95
|
*/
|
|
34
|
-
|
|
96
|
+
/** Asks for a reason or a mechanism, not a number. */
|
|
97
|
+
const EXPLANATION_QUESTION = /\b(?:why|how come|how did|how does|how is|explain|reason|caused?|drove|driving|because)\b/i;
|
|
98
|
+
export function detectResultSetOperation(question, prior) {
|
|
35
99
|
const q = question.trim();
|
|
36
100
|
if (!q)
|
|
37
101
|
return null;
|
|
38
|
-
|
|
102
|
+
// An explanation question is never arithmetic over the prior result.
|
|
103
|
+
// "why he is top most in the list?" matched the max-family pattern on the
|
|
104
|
+
// words "top most" and was answered "The maximum of count_lifetime_orders is
|
|
105
|
+
// 156" — a different column, about a different customer, computed over the 50
|
|
106
|
+
// rows that happened to be on screen. A reason is not in a result's cells, so
|
|
107
|
+
// this path declines and lets the real planner run.
|
|
108
|
+
if (EXPLANATION_QUESTION.test(q))
|
|
109
|
+
return null;
|
|
110
|
+
if (!refersToPriorResult(q, prior))
|
|
39
111
|
return null;
|
|
40
112
|
// Re-rank: "top 3 of these", "bottom 5 of those", "highest 3 above".
|
|
41
113
|
const rerank = /\b(top|bottom|highest|lowest|first|last)\s+(\d{1,3})\b/i.exec(q)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result-ops.js","sourceRoot":"","sources":["../../src/conversation/result-ops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAqCH
|
|
1
|
+
{"version":3,"file":"result-ops.js","sourceRoot":"","sources":["../../src/conversation/result-ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rolling-summary.d.ts","sourceRoot":"","sources":["../../src/conversation/rolling-summary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"rolling-summary.d.ts","sourceRoot":"","sources":["../../src/conversation/rolling-summary.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAY3D,MAAM,MAAM,6BAA6B,GACrC,WAAW,GACX,aAAa,GACb,YAAY,GACZ,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,6BAA6B,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,0BAA0B,EAAE,CAAC;CACvC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,gBAAgB,EAAE,CAAC;CACpC,GAAG,MAAM,GAAG,SAAS,CAerB;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC,cAAc,EAAE,gBAAgB,EAAE,CAAC;CACpC,GAAG,qBAAqB,GAAG,SAAS,CAWpC;AAED,6EAA6E;AAC7E,wBAAgB,mCAAmC,CACjD,OAAO,EAAE,qBAAqB,GAAG,SAAS,GACzC,MAAM,GAAG,SAAS,CAUpB"}
|
|
@@ -5,9 +5,14 @@
|
|
|
5
5
|
* `summaryTurnSeq` cursor. An optional LLM compaction can layer on later; this
|
|
6
6
|
* deterministic form is always the fallback and never blocks.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* 600 characters could not hold a session's established facts once a few
|
|
10
|
+
* metrics, filters, and entities had been agreed — the oldest were evicted
|
|
11
|
+
* silently, so the agent "forgot" a binding the reader had already given it.
|
|
12
|
+
*/
|
|
13
|
+
const MAX_SUMMARY_CHARS = 1800;
|
|
9
14
|
const MAX_LINE_CHARS = 200;
|
|
10
|
-
const MAX_STRUCTURED_ENTRIES =
|
|
15
|
+
const MAX_STRUCTURED_ENTRIES = 24;
|
|
11
16
|
const MAX_STRUCTURED_TEXT = 320;
|
|
12
17
|
export function updateRollingSummary(input) {
|
|
13
18
|
const newLines = input.compactedTurns.map(summarizeTurn).filter(Boolean);
|