@aligndottech/cli 0.34.1 → 0.36.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +5 -0
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/decisions/index.d.ts.map +1 -1
- package/dist/commands/decisions/index.js +9 -1
- package/dist/commands/decisions/index.js.map +1 -1
- package/dist/commands/import/sessions.d.ts +28 -0
- package/dist/commands/import/sessions.d.ts.map +1 -0
- package/dist/commands/import/sessions.js +215 -0
- package/dist/commands/import/sessions.js.map +1 -0
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +2 -0
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/push.d.ts +25 -0
- package/dist/commands/push.d.ts.map +1 -0
- package/dist/commands/push.js +98 -0
- package/dist/commands/push.js.map +1 -0
- package/dist/commands/ratify.d.ts +23 -0
- package/dist/commands/ratify.d.ts.map +1 -0
- package/dist/commands/ratify.js +51 -0
- package/dist/commands/ratify.js.map +1 -0
- package/dist/commands/why.d.ts.map +1 -1
- package/dist/commands/why.js +4 -1
- package/dist/commands/why.js.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/answer-render.d.ts +2 -0
- package/dist/lib/answer-render.d.ts.map +1 -0
- package/dist/lib/answer-render.js +24 -0
- package/dist/lib/answer-render.js.map +1 -0
- package/dist/lib/capture-sources.d.ts +4 -0
- package/dist/lib/capture-sources.d.ts.map +1 -1
- package/dist/lib/capture-sources.js +1 -0
- package/dist/lib/capture-sources.js.map +1 -1
- package/dist/lib/decider-kind.d.ts +37 -0
- package/dist/lib/decider-kind.d.ts.map +1 -0
- package/dist/lib/decider-kind.js +41 -0
- package/dist/lib/decider-kind.js.map +1 -0
- package/dist/lib/decision-render.d.ts +35 -0
- package/dist/lib/decision-render.d.ts.map +1 -0
- package/dist/lib/decision-render.js +149 -0
- package/dist/lib/decision-render.js.map +1 -0
- package/dist/lib/decisions-context.d.ts +7 -0
- package/dist/lib/decisions-context.d.ts.map +1 -1
- package/dist/lib/decisions-context.js +29 -6
- package/dist/lib/decisions-context.js.map +1 -1
- package/dist/lib/gateway-client.d.ts +32 -0
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +10 -0
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/git.d.ts +18 -0
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +31 -0
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/import-defaults.d.ts +1 -0
- package/dist/lib/import-defaults.d.ts.map +1 -1
- package/dist/lib/import-defaults.js +1 -0
- package/dist/lib/import-defaults.js.map +1 -1
- package/dist/lib/local-db.d.ts +56 -1
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +104 -7
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts +50 -0
- package/dist/lib/local-gateway-client.d.ts.map +1 -1
- package/dist/lib/local-gateway-client.js +94 -5
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-llm.d.ts +66 -1
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +167 -12
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/local-relationship-classifier.d.ts +18 -0
- package/dist/lib/local-relationship-classifier.d.ts.map +1 -1
- package/dist/lib/local-relationship-classifier.js +32 -6
- package/dist/lib/local-relationship-classifier.js.map +1 -1
- package/dist/lib/personal-import.d.ts +26 -0
- package/dist/lib/personal-import.d.ts.map +1 -1
- package/dist/lib/personal-import.js +43 -0
- package/dist/lib/personal-import.js.map +1 -1
- package/dist/lib/sessions/adapters/claude-code.d.ts +4 -0
- package/dist/lib/sessions/adapters/claude-code.d.ts.map +1 -0
- package/dist/lib/sessions/adapters/claude-code.js +93 -0
- package/dist/lib/sessions/adapters/claude-code.js.map +1 -0
- package/dist/lib/sessions/adapters/codex.d.ts +6 -0
- package/dist/lib/sessions/adapters/codex.d.ts.map +1 -0
- package/dist/lib/sessions/adapters/codex.js +91 -0
- package/dist/lib/sessions/adapters/codex.js.map +1 -0
- package/dist/lib/sessions/adapters/cursor.d.ts +17 -0
- package/dist/lib/sessions/adapters/cursor.d.ts.map +1 -0
- package/dist/lib/sessions/adapters/cursor.js +31 -0
- package/dist/lib/sessions/adapters/cursor.js.map +1 -0
- package/dist/lib/sessions/adapters/gemini-cli.d.ts +15 -0
- package/dist/lib/sessions/adapters/gemini-cli.d.ts.map +1 -0
- package/dist/lib/sessions/adapters/gemini-cli.js +29 -0
- package/dist/lib/sessions/adapters/gemini-cli.js.map +1 -0
- package/dist/lib/sessions/adapters/opencode.d.ts +4 -0
- package/dist/lib/sessions/adapters/opencode.d.ts.map +1 -0
- package/dist/lib/sessions/adapters/opencode.js +100 -0
- package/dist/lib/sessions/adapters/opencode.js.map +1 -0
- package/dist/lib/sessions/adapters/pi.d.ts +4 -0
- package/dist/lib/sessions/adapters/pi.d.ts.map +1 -0
- package/dist/lib/sessions/adapters/pi.js +102 -0
- package/dist/lib/sessions/adapters/pi.js.map +1 -0
- package/dist/lib/sessions/confirm-freetext.d.ts +43 -0
- package/dist/lib/sessions/confirm-freetext.d.ts.map +1 -0
- package/dist/lib/sessions/confirm-freetext.js +82 -0
- package/dist/lib/sessions/confirm-freetext.js.map +1 -0
- package/dist/lib/sessions/extract-freetext.d.ts +26 -0
- package/dist/lib/sessions/extract-freetext.d.ts.map +1 -0
- package/dist/lib/sessions/extract-freetext.js +53 -0
- package/dist/lib/sessions/extract-freetext.js.map +1 -0
- package/dist/lib/sessions/extract-structured.d.ts +21 -0
- package/dist/lib/sessions/extract-structured.d.ts.map +1 -0
- package/dist/lib/sessions/extract-structured.js +72 -0
- package/dist/lib/sessions/extract-structured.js.map +1 -0
- package/dist/lib/sessions/fs-scan.d.ts +10 -0
- package/dist/lib/sessions/fs-scan.d.ts.map +1 -0
- package/dist/lib/sessions/fs-scan.js +33 -0
- package/dist/lib/sessions/fs-scan.js.map +1 -0
- package/dist/lib/sessions/registry.d.ts +11 -0
- package/dist/lib/sessions/registry.d.ts.map +1 -0
- package/dist/lib/sessions/registry.js +22 -0
- package/dist/lib/sessions/registry.js.map +1 -0
- package/dist/lib/sessions/source-url.d.ts +10 -0
- package/dist/lib/sessions/source-url.d.ts.map +1 -0
- package/dist/lib/sessions/source-url.js +20 -0
- package/dist/lib/sessions/source-url.js.map +1 -0
- package/dist/lib/sessions/types.d.ts +62 -0
- package/dist/lib/sessions/types.d.ts.map +1 -0
- package/dist/lib/sessions/types.js +19 -0
- package/dist/lib/sessions/types.js.map +1 -0
- package/dist/lib/token-estimate.d.ts +17 -0
- package/dist/lib/token-estimate.d.ts.map +1 -0
- package/dist/lib/token-estimate.js +24 -0
- package/dist/lib/token-estimate.js.map +1 -0
- package/package.json +10 -1
package/dist/lib/local-llm.d.ts
CHANGED
|
@@ -40,6 +40,40 @@ export declare const ABSTENTION_SENTINEL = "The context does not answer this que
|
|
|
40
40
|
*/
|
|
41
41
|
export declare function isAbstention(text: string): boolean;
|
|
42
42
|
export declare const SYNTHESIS_SYSTEM_PROMPT: string;
|
|
43
|
+
/**
|
|
44
|
+
* ALI-845 defect 3: no cap of any kind existed - up to 8 raw summaries (mean 4,798 chars, max
|
|
45
|
+
* 21,865 per the upstream research doc) were joined into one prompt regardless of window.
|
|
46
|
+
*
|
|
47
|
+
* Reserves the system prompt and the output budget out of the window FIRST, then splits what
|
|
48
|
+
* is left evenly across the decisions, then cuts each summary to its share. A summary that
|
|
49
|
+
* already fits its share is left untouched (an inequality, not an unconditional slice) - test
|
|
50
|
+
* 11 in the plan depends on this.
|
|
51
|
+
*
|
|
52
|
+
* `outputTokens` is the CALLER'S ACTUAL resolved budget (post ALIGN_SYNTHESIS_MAX_TOKENS), not
|
|
53
|
+
* the SYNTHESIS_MAX_TOKENS default - reserving the default while the real request sends a
|
|
54
|
+
* larger override defeats the whole point of this function (found in fresh-context review,
|
|
55
|
+
* ALI-845): a 4,096-token window with ALIGN_SYNTHESIS_MAX_TOKENS=3000 would under-reserve by
|
|
56
|
+
* ~2,000 tokens and the resulting request would exceed the window it was built against.
|
|
57
|
+
*
|
|
58
|
+
* The reserve also covers the "- " + title + ": " label wrapped around every summary, plus the
|
|
59
|
+
* newline joining each entry - not just the system prompt and header (Copilot review, PR #258).
|
|
60
|
+
* Titles are never cut, so with enough decisions or long enough titles that overhead alone can
|
|
61
|
+
* exceed what dividing the raw window by decisions.length would leave for summaries.
|
|
62
|
+
*/
|
|
63
|
+
export declare function buildUserPrompt(question: string, decisions: Array<{
|
|
64
|
+
id: string;
|
|
65
|
+
title: string;
|
|
66
|
+
summary: string;
|
|
67
|
+
}>, windowTokens: number, outputTokens: number): string;
|
|
68
|
+
/**
|
|
69
|
+
* A hosted provider's real window is not resolved until ALI-852 (the Models API lookup and
|
|
70
|
+
* the provider table). Until then, `callChatDetailed` builds the prompt against this
|
|
71
|
+
* deliberately generous default rather than a real one, so Phase 0's capping cannot regress
|
|
72
|
+
* an `align ask` that works today on a large-window hosted model (Claude, GPT-4o, Gemini all
|
|
73
|
+
* exceed it) - the "generous hosted default" from the plan's assumption 4. It is not a claim
|
|
74
|
+
* about any specific provider's real limit.
|
|
75
|
+
*/
|
|
76
|
+
export declare const HOSTED_WINDOW_TOKENS_DEFAULT = 100000;
|
|
43
77
|
/**
|
|
44
78
|
* Is this endpoint on the user's own machine or network?
|
|
45
79
|
*
|
|
@@ -58,6 +92,15 @@ export declare function isLocalEndpoint(url: string): boolean;
|
|
|
58
92
|
* which is the whole class of bug this file keeps producing.
|
|
59
93
|
*/
|
|
60
94
|
export declare function resolveLlmTimeoutMs(endpoint: string): number;
|
|
95
|
+
/**
|
|
96
|
+
* Two callers, two output budgets (ALI-845 defect 2): the classifier's whole output is a
|
|
97
|
+
* ~60-char JSON object, while `align ask` synthesis is 2-4 prose sentences per
|
|
98
|
+
* SYNTHESIS_SYSTEM_PROMPT - sharing one 256-token ceiling visibly truncates the second.
|
|
99
|
+
*/
|
|
100
|
+
export declare const CLASSIFIER_MAX_TOKENS = 256;
|
|
101
|
+
export declare const SYNTHESIS_MAX_TOKENS = 1024;
|
|
102
|
+
/** Env override for a max-token budget. Same warn-not-silently-fall-back contract as resolveLlmTimeoutMs. */
|
|
103
|
+
export declare function resolveMaxTokens(envVar: string, fallback: number): number;
|
|
61
104
|
/**
|
|
62
105
|
* Ollama model families recognised for decision synthesis, in OUR preference order
|
|
63
106
|
* (never /api/tags order - ALI-420). Family-level and version-free on purpose: the
|
|
@@ -141,6 +184,28 @@ export type ChatResult = {
|
|
|
141
184
|
* caller trusts as if the chosen model wrote it. Deliberately conservative (ALI-692).
|
|
142
185
|
*/
|
|
143
186
|
export declare function isAvailabilityFailure(status: number, body: string): boolean;
|
|
187
|
+
/** A resolved Ollama context window and where it came from - logged, never silent (assumption 1). */
|
|
188
|
+
export interface ResolvedWindow {
|
|
189
|
+
tokens: number;
|
|
190
|
+
source: string;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Floor used when the real window cannot be resolved (no `/api/show`, a non-2xx, or a body
|
|
194
|
+
* with no usable `<arch>.context_length`). This floor is indistinguishable from a genuinely
|
|
195
|
+
* small window from the outside, which is why every path through this function logs.
|
|
196
|
+
*/
|
|
197
|
+
export declare const OLLAMA_CONTEXT_FLOOR = 4096;
|
|
198
|
+
/**
|
|
199
|
+
* POST /api/show and read model_info's <arch>.context_length - discovered by suffix match,
|
|
200
|
+
* not derived from `details.family`, so an architecture we have never seen still resolves.
|
|
201
|
+
* OLLAMA_CONTEXT_LENGTH, when set and usable, only ever SHRINKS the reported value: raising
|
|
202
|
+
* it above what the model actually reports would claim a window the model does not have.
|
|
203
|
+
*
|
|
204
|
+
* Every path logs (at console.error, matching resolveLlmTimeoutMs's shape below): a wrong
|
|
205
|
+
* assumption about /api/show's response shape gives a 4xx, the floor silently applies, and
|
|
206
|
+
* nothing else in the output would say so.
|
|
207
|
+
*/
|
|
208
|
+
export declare function resolveOllamaWindow(host: string, model: string): Promise<ResolvedWindow>;
|
|
144
209
|
/**
|
|
145
210
|
* Is any LLM provider configured by environment? (ALI-414)
|
|
146
211
|
*
|
|
@@ -168,7 +233,7 @@ export declare function hasConfiguredProvider(): boolean;
|
|
|
168
233
|
* limit, a 5xx - stops it, so the caller can name the model that failed instead of a
|
|
169
234
|
* weaker one answering in its place.
|
|
170
235
|
*/
|
|
171
|
-
export declare function callChatDetailed(system: string, user: string, opts?: CallChatOptions): Promise<ChatResult>;
|
|
236
|
+
export declare function callChatDetailed(system: string, user: string | ((windowTokens: number) => string), opts?: CallChatOptions): Promise<ChatResult>;
|
|
172
237
|
/** Text-only convenience wrapper. Use callChatDetailed when you need to say WHY. */
|
|
173
238
|
export declare function callChat(system: string, user: string, opts?: CallChatOptions): Promise<string | null>;
|
|
174
239
|
/** Synthesise a natural-language answer from retrieved decisions, using any configured provider. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-llm.d.ts","sourceRoot":"","sources":["../../src/lib/local-llm.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-llm.d.ts","sourceRoot":"","sources":["../../src/lib/local-llm.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/local-llm.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { charsForTokens, estimateTokens } from './token-estimate.js';
|
|
1
2
|
/**
|
|
2
3
|
* Exported so its contract is pinned by test (local-llm.test.ts), the way a
|
|
3
4
|
* render contract is. What each line is FOR, so a rewrite keeps the point:
|
|
@@ -39,10 +40,44 @@ export const SYNTHESIS_SYSTEM_PROMPT = 'You are a technical assistant helping a
|
|
|
39
40
|
'Attribute details only to the decision they came from, and only state relationships between decisions that the context itself states. ' +
|
|
40
41
|
'If two decisions contradict each other, say they conflict - do not pick a winner the context does not name. ' +
|
|
41
42
|
'Be direct. Synthesise the context into a clear explanation - do not list decisions. ' +
|
|
42
|
-
'Never use an em-dash, even if the source material does - use a comma, a period, or a hyphen instead.'
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
'Never use an em-dash, even if the source material does - use a comma, a period, or a hyphen instead. ' +
|
|
44
|
+
'Write plain prose with no markdown: no asterisks or underscores for emphasis, no headings, no bullet points; the answer is printed in a terminal.';
|
|
45
|
+
/**
|
|
46
|
+
* ALI-845 defect 3: no cap of any kind existed - up to 8 raw summaries (mean 4,798 chars, max
|
|
47
|
+
* 21,865 per the upstream research doc) were joined into one prompt regardless of window.
|
|
48
|
+
*
|
|
49
|
+
* Reserves the system prompt and the output budget out of the window FIRST, then splits what
|
|
50
|
+
* is left evenly across the decisions, then cuts each summary to its share. A summary that
|
|
51
|
+
* already fits its share is left untouched (an inequality, not an unconditional slice) - test
|
|
52
|
+
* 11 in the plan depends on this.
|
|
53
|
+
*
|
|
54
|
+
* `outputTokens` is the CALLER'S ACTUAL resolved budget (post ALIGN_SYNTHESIS_MAX_TOKENS), not
|
|
55
|
+
* the SYNTHESIS_MAX_TOKENS default - reserving the default while the real request sends a
|
|
56
|
+
* larger override defeats the whole point of this function (found in fresh-context review,
|
|
57
|
+
* ALI-845): a 4,096-token window with ALIGN_SYNTHESIS_MAX_TOKENS=3000 would under-reserve by
|
|
58
|
+
* ~2,000 tokens and the resulting request would exceed the window it was built against.
|
|
59
|
+
*
|
|
60
|
+
* The reserve also covers the "- " + title + ": " label wrapped around every summary, plus the
|
|
61
|
+
* newline joining each entry - not just the system prompt and header (Copilot review, PR #258).
|
|
62
|
+
* Titles are never cut, so with enough decisions or long enough titles that overhead alone can
|
|
63
|
+
* exceed what dividing the raw window by decisions.length would leave for summaries.
|
|
64
|
+
*/
|
|
65
|
+
export function buildUserPrompt(question, decisions, windowTokens, outputTokens) {
|
|
66
|
+
const header = `Question: ${question}\n\nDecision context:\n`;
|
|
67
|
+
if (!decisions.length)
|
|
68
|
+
return header;
|
|
69
|
+
const labelTokens = decisions.reduce((sum, d) => sum + estimateTokens(`- ${d.title}: `), 0);
|
|
70
|
+
const joinTokens = estimateTokens('\n') * (decisions.length - 1);
|
|
71
|
+
const reserveTokens = estimateTokens(SYNTHESIS_SYSTEM_PROMPT) + estimateTokens(header) + outputTokens + labelTokens + joinTokens;
|
|
72
|
+
const budgetTokens = Math.max(0, windowTokens - reserveTokens);
|
|
73
|
+
const perDecisionChars = charsForTokens(Math.floor(budgetTokens / decisions.length));
|
|
74
|
+
const ctx = decisions
|
|
75
|
+
.map(d => {
|
|
76
|
+
const summary = d.summary.length > perDecisionChars ? d.summary.slice(0, perDecisionChars) : d.summary;
|
|
77
|
+
return `- ${d.title}: ${summary}`;
|
|
78
|
+
})
|
|
79
|
+
.join('\n');
|
|
80
|
+
return `${header}${ctx}`;
|
|
46
81
|
}
|
|
47
82
|
/**
|
|
48
83
|
* How long to wait for a model, and why it is not one number (ALI-775).
|
|
@@ -58,6 +93,15 @@ function buildUserPrompt(question, decisions) {
|
|
|
58
93
|
*/
|
|
59
94
|
const HOSTED_TIMEOUT_MS = 15_000;
|
|
60
95
|
const LOCAL_TIMEOUT_MS = 300_000;
|
|
96
|
+
/**
|
|
97
|
+
* A hosted provider's real window is not resolved until ALI-852 (the Models API lookup and
|
|
98
|
+
* the provider table). Until then, `callChatDetailed` builds the prompt against this
|
|
99
|
+
* deliberately generous default rather than a real one, so Phase 0's capping cannot regress
|
|
100
|
+
* an `align ask` that works today on a large-window hosted model (Claude, GPT-4o, Gemini all
|
|
101
|
+
* exceed it) - the "generous hosted default" from the plan's assumption 4. It is not a claim
|
|
102
|
+
* about any specific provider's real limit.
|
|
103
|
+
*/
|
|
104
|
+
export const HOSTED_WINDOW_TOKENS_DEFAULT = 100_000;
|
|
61
105
|
/**
|
|
62
106
|
* Is this endpoint on the user's own machine or network?
|
|
63
107
|
*
|
|
@@ -121,6 +165,26 @@ export function resolveLlmTimeoutMs(endpoint) {
|
|
|
121
165
|
}
|
|
122
166
|
return parsed;
|
|
123
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Two callers, two output budgets (ALI-845 defect 2): the classifier's whole output is a
|
|
170
|
+
* ~60-char JSON object, while `align ask` synthesis is 2-4 prose sentences per
|
|
171
|
+
* SYNTHESIS_SYSTEM_PROMPT - sharing one 256-token ceiling visibly truncates the second.
|
|
172
|
+
*/
|
|
173
|
+
export const CLASSIFIER_MAX_TOKENS = 256;
|
|
174
|
+
export const SYNTHESIS_MAX_TOKENS = 1_024;
|
|
175
|
+
/** Env override for a max-token budget. Same warn-not-silently-fall-back contract as resolveLlmTimeoutMs. */
|
|
176
|
+
export function resolveMaxTokens(envVar, fallback) {
|
|
177
|
+
const raw = process.env[envVar];
|
|
178
|
+
if (raw === undefined || raw.trim() === '')
|
|
179
|
+
return fallback;
|
|
180
|
+
const parsed = Number(raw);
|
|
181
|
+
if (!Number.isFinite(parsed) || parsed <= 0) {
|
|
182
|
+
console.error(`align: ignoring ${envVar}=${JSON.stringify(raw)} - it must be a positive number of ` +
|
|
183
|
+
`tokens. Using ${fallback}.`);
|
|
184
|
+
return fallback;
|
|
185
|
+
}
|
|
186
|
+
return parsed;
|
|
187
|
+
}
|
|
124
188
|
/** Classify a non-2xx response: availability-class advances, anything else stops. */
|
|
125
189
|
async function classifyHttpFailure(res, model) {
|
|
126
190
|
const detail = `HTTP ${res.status}`;
|
|
@@ -437,7 +501,70 @@ export function isAvailabilityFailure(status, body) {
|
|
|
437
501
|
const text = providerErrorText(body);
|
|
438
502
|
return AVAILABILITY_BODY_PATTERNS.some(p => p.test(text));
|
|
439
503
|
}
|
|
440
|
-
|
|
504
|
+
/**
|
|
505
|
+
* Floor used when the real window cannot be resolved (no `/api/show`, a non-2xx, or a body
|
|
506
|
+
* with no usable `<arch>.context_length`). This floor is indistinguishable from a genuinely
|
|
507
|
+
* small window from the outside, which is why every path through this function logs.
|
|
508
|
+
*/
|
|
509
|
+
export const OLLAMA_CONTEXT_FLOOR = 4_096;
|
|
510
|
+
/**
|
|
511
|
+
* POST /api/show and read model_info's <arch>.context_length - discovered by suffix match,
|
|
512
|
+
* not derived from `details.family`, so an architecture we have never seen still resolves.
|
|
513
|
+
* OLLAMA_CONTEXT_LENGTH, when set and usable, only ever SHRINKS the reported value: raising
|
|
514
|
+
* it above what the model actually reports would claim a window the model does not have.
|
|
515
|
+
*
|
|
516
|
+
* Every path logs (at console.error, matching resolveLlmTimeoutMs's shape below): a wrong
|
|
517
|
+
* assumption about /api/show's response shape gives a 4xx, the floor silently applies, and
|
|
518
|
+
* nothing else in the output would say so.
|
|
519
|
+
*/
|
|
520
|
+
export async function resolveOllamaWindow(host, model) {
|
|
521
|
+
const floor = (reason) => {
|
|
522
|
+
console.error(`align: could not resolve ${model}'s context window (${reason}). Using the floor of ` +
|
|
523
|
+
`${OLLAMA_CONTEXT_FLOOR} tokens, which may truncate the prompt more than necessary if ` +
|
|
524
|
+
`the model's real window is larger.`);
|
|
525
|
+
return { tokens: OLLAMA_CONTEXT_FLOOR, source: `floor: ${reason}` };
|
|
526
|
+
};
|
|
527
|
+
let data;
|
|
528
|
+
try {
|
|
529
|
+
const res = await fetch(`${host}/api/show`, {
|
|
530
|
+
method: 'POST',
|
|
531
|
+
headers: { 'Content-Type': 'application/json' },
|
|
532
|
+
body: JSON.stringify({ model }),
|
|
533
|
+
// Discovery, not generation - the same 2s budget as the /api/tags probe.
|
|
534
|
+
signal: AbortSignal.timeout(2000),
|
|
535
|
+
});
|
|
536
|
+
if (!res.ok)
|
|
537
|
+
return floor(`/api/show returned HTTP ${res.status}`);
|
|
538
|
+
data = await res.json();
|
|
539
|
+
}
|
|
540
|
+
catch (err) {
|
|
541
|
+
return floor(`/api/show failed: ${String(err)}`);
|
|
542
|
+
}
|
|
543
|
+
const modelInfo = data.model_info ?? {};
|
|
544
|
+
const key = Object.keys(modelInfo).find(k => /\.context_length$/.test(k));
|
|
545
|
+
const reported = key ? modelInfo[key] : undefined;
|
|
546
|
+
if (typeof reported !== 'number' || !Number.isFinite(reported) || reported <= 0) {
|
|
547
|
+
return floor('model_info carried no usable context_length');
|
|
548
|
+
}
|
|
549
|
+
let tokens = reported;
|
|
550
|
+
let source = `reported by ${model}`;
|
|
551
|
+
const override = process.env['OLLAMA_CONTEXT_LENGTH'];
|
|
552
|
+
if (override !== undefined && override.trim() !== '') {
|
|
553
|
+
const parsed = Number(override);
|
|
554
|
+
if (Number.isFinite(parsed) && parsed > 0) {
|
|
555
|
+
tokens = Math.min(reported, parsed);
|
|
556
|
+
if (tokens < reported)
|
|
557
|
+
source = `capped by OLLAMA_CONTEXT_LENGTH=${parsed}`;
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
console.error(`align: ignoring OLLAMA_CONTEXT_LENGTH=${JSON.stringify(override)} - it must be a ` +
|
|
561
|
+
`positive number of tokens. Using ${model}'s reported window of ${reported}.`);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
console.error(`align: using a context window of ${tokens} tokens for ${model} (${source}).`);
|
|
565
|
+
return { tokens, source };
|
|
566
|
+
}
|
|
567
|
+
async function tryOllama(system, user, temperature, maxTokens = 256) {
|
|
441
568
|
// `||`, not `??`: OLLAMA_HOST='' (a stock .env template, an unset compose variable)
|
|
442
569
|
// would otherwise make every probe a relative URL that fetch cannot parse, so a
|
|
443
570
|
// healthy local Ollama is never asked and the user is told to configure a key.
|
|
@@ -466,6 +593,11 @@ async function tryOllama(system, user, temperature) {
|
|
|
466
593
|
catch (err) {
|
|
467
594
|
return { kind: 'unavailable', detail: String(err) };
|
|
468
595
|
}
|
|
596
|
+
// Only the CHOSEN model's window matters, and it is not known until here - this is the
|
|
597
|
+
// "code that knows the window" from the design decision: `user` is resolved with the real
|
|
598
|
+
// window now, never with a guess made before the model was picked.
|
|
599
|
+
const window = await resolveOllamaWindow(host, model);
|
|
600
|
+
const userText = typeof user === 'function' ? user(window.tokens) : user;
|
|
469
601
|
let res;
|
|
470
602
|
try {
|
|
471
603
|
res = await fetch(`${host}/api/chat`, {
|
|
@@ -474,10 +606,14 @@ async function tryOllama(system, user, temperature) {
|
|
|
474
606
|
body: JSON.stringify({
|
|
475
607
|
model,
|
|
476
608
|
stream: false,
|
|
477
|
-
|
|
609
|
+
options: {
|
|
610
|
+
num_ctx: window.tokens,
|
|
611
|
+
num_predict: maxTokens,
|
|
612
|
+
...(temperature !== undefined ? { temperature } : {}),
|
|
613
|
+
},
|
|
478
614
|
messages: [
|
|
479
615
|
{ role: 'system', content: system },
|
|
480
|
-
{ role: 'user', content:
|
|
616
|
+
{ role: 'user', content: userText },
|
|
481
617
|
],
|
|
482
618
|
}),
|
|
483
619
|
// Ollama is local by definition, so it uses the same limit as any other local endpoint
|
|
@@ -567,6 +703,22 @@ export function hasConfiguredProvider() {
|
|
|
567
703
|
export async function callChatDetailed(system, user, opts) {
|
|
568
704
|
const maxTokens = opts?.maxTokens;
|
|
569
705
|
const temperature = opts?.temperature;
|
|
706
|
+
// Every hosted adapter's window is the generous Phase-0 default (see
|
|
707
|
+
// HOSTED_WINDOW_TOKENS_DEFAULT) - only Ollama resolves a real one, and only after it knows
|
|
708
|
+
// which model was chosen, so it keeps the callback form and resolves it itself below.
|
|
709
|
+
//
|
|
710
|
+
// Built lazily (Copilot review, PR #258): a callback-form builder used to run here
|
|
711
|
+
// unconditionally, even when no hosted adapter is ever attempted (Ollama-only) or the
|
|
712
|
+
// first hosted attempt already answers. Memoized rather than re-evaluated at each of the
|
|
713
|
+
// two hosted call sites below, since the escape hatch falling through into the named-
|
|
714
|
+
// provider loop would otherwise build the same placeholder prompt twice.
|
|
715
|
+
let hostedUserCache = null;
|
|
716
|
+
const getHostedUser = () => {
|
|
717
|
+
if (hostedUserCache === null) {
|
|
718
|
+
hostedUserCache = typeof user === 'function' ? user(HOSTED_WINDOW_TOKENS_DEFAULT) : user;
|
|
719
|
+
}
|
|
720
|
+
return hostedUserCache;
|
|
721
|
+
};
|
|
570
722
|
// The most specific unavailability seen while walking the chain. Only Ollama can
|
|
571
723
|
// produce one today, and it is a local (not module) variable, so a sibling call
|
|
572
724
|
// cannot clear it mid-flight - which is the whole point of this shape.
|
|
@@ -607,7 +759,7 @@ export async function callChatDetailed(system, user, opts) {
|
|
|
607
759
|
if (baseUrl) {
|
|
608
760
|
const key = process.env['ALIGN_LLM_API_KEY'] ?? '';
|
|
609
761
|
const model = process.env['ALIGN_LLM_MODEL'] || 'gpt-4o-mini';
|
|
610
|
-
const settled = settle(await tryOpenAiCompatible(system,
|
|
762
|
+
const settled = settle(await tryOpenAiCompatible(system, getHostedUser(), chatCompletionsUrl(baseUrl), model, key, maxTokens, undefined, temperature), 'custom', true);
|
|
611
763
|
if (settled)
|
|
612
764
|
return settled;
|
|
613
765
|
}
|
|
@@ -615,14 +767,14 @@ export async function callChatDetailed(system, user, opts) {
|
|
|
615
767
|
for (const provider of ALL_PROVIDERS) {
|
|
616
768
|
const key = keyForProvider(provider);
|
|
617
769
|
if (key) {
|
|
618
|
-
const settled = settle(await callProvider(provider, key, system,
|
|
770
|
+
const settled = settle(await callProvider(provider, key, system, getHostedUser(), maxTokens, temperature), provider, true);
|
|
619
771
|
if (settled)
|
|
620
772
|
return settled;
|
|
621
773
|
}
|
|
622
774
|
}
|
|
623
775
|
// 3. local Ollama as last resort
|
|
624
776
|
// configured=false: the probe runs whether or not anyone asked for Ollama.
|
|
625
|
-
const settled = settle(await tryOllama(system, user, temperature), 'ollama', false);
|
|
777
|
+
const settled = settle(await tryOllama(system, user, temperature, maxTokens), 'ollama', false);
|
|
626
778
|
if (settled)
|
|
627
779
|
return settled;
|
|
628
780
|
// Nothing answered. An unrecognised local model is the more specific diagnosis and
|
|
@@ -656,8 +808,11 @@ function stripEmDash(text) {
|
|
|
656
808
|
}
|
|
657
809
|
/** Synthesise a natural-language answer from retrieved decisions, using any configured provider. */
|
|
658
810
|
export async function synthesiseDetailed(question, decisions) {
|
|
659
|
-
|
|
660
|
-
|
|
811
|
+
// Resolved ONCE, then threaded into both the reserve calculation and the actual request -
|
|
812
|
+
// never the SYNTHESIS_MAX_TOKENS default in one place and this in the other, or an override
|
|
813
|
+
// reserves less than it sends (see buildUserPrompt's docstring).
|
|
814
|
+
const maxTokens = resolveMaxTokens('ALIGN_SYNTHESIS_MAX_TOKENS', SYNTHESIS_MAX_TOKENS);
|
|
815
|
+
const result = await callChatDetailed(SYNTHESIS_SYSTEM_PROMPT, (windowTokens) => buildUserPrompt(question, decisions, windowTokens, maxTokens), { maxTokens });
|
|
661
816
|
return result.ok ? { ...result, text: stripEmDash(result.text) } : result;
|
|
662
817
|
}
|
|
663
818
|
/** Text-only wrapper on synthesiseDetailed, for callers that cannot use the reason. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-llm.js","sourceRoot":"","sources":["../../src/lib/local-llm.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-llm.js","sourceRoot":"","sources":["../../src/lib/local-llm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAcrE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,4CAA4C,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,uBAAuB,GAClC,6FAA6F;IAC7F,mFAAmF;IACnF,oEAAoE,mBAAmB,0EAA0E;IACjK,8GAA8G;IAC9G,2GAA2G;IAC3G,wIAAwI;IACxI,8GAA8G;IAC9G,sFAAsF;IACtF,uGAAuG;IACvG,mJAAmJ,CAAC;AAEtJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,SAAgE,EAChE,YAAoB,EACpB,YAAoB;IAEpB,MAAM,MAAM,GAAG,aAAa,QAAQ,yBAAyB,CAAC;IAC9D,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAErC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5F,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjE,MAAM,aAAa,GACjB,cAAc,CAAC,uBAAuB,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;IAC7G,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAErF,MAAM,GAAG,GAAG,SAAS;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACvG,OAAO,KAAK,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;IACpC,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC;AAC3B,CAAC;AAeD;;;;;;;;;;;GAWG;AACH,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACjC,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAEpD;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,yFAAyF;IACzF,uFAAuF;IACvF,wDAAwD;IACxD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtG,oFAAoF;IACpF,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,0BAA0B;QAAE,OAAO,IAAI,CAAC;IACxF,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IACxE,MAAM,EAAE,GAAG,8CAA8C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,IAAI,EAAE,EAAE,CAAC;QACP,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,CAAuB,aAAa;QAC9D,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,CAAsB,WAAW;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,CAAS,iBAAiB;QAClE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,gCAAgC;IACpF,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAClF,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CACX,wCAAwC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,2BAA2B;YACtF,iCAAiC,QAAQ,KAAK,CAC/C,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C,6GAA6G;AAC7G,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,QAAgB;IAC/D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC5C,OAAO,CAAC,KAAK,CACX,mBAAmB,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,qCAAqC;YACrF,iBAAiB,QAAQ,GAAG,CAC7B,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,mBAAmB,CAAC,GAAa,EAAE,KAAa;IAC7D,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;IACpC,mFAAmF;IACnF,kFAAkF;IAClF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACnE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;IACD,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,8CAA8C;IAChD,CAAC;IACD,OAAO,qBAAqB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE;QACjC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,GAAY,EAAE,KAAa,EAAE,SAAkB;IAC1E,MAAM,IAAI,GAAI,GAAqC,EAAE,IAAI,CAAC;IAC1D,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY,EAAE,CAAC;QACrD,iFAAiF;QACjF,sFAAsF;QACtF,aAAa;QACb,MAAM,MAAM,GAAG,SAAS;YACtB,CAAC,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,gCAAgC;YACjF,CAAC,CAAC,WAAW,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,sFAAsF;AACtF,gFAAgF;AAChF,+EAA+E;AAC/E,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,oBAAoB,CACjC,GAAa,EACb,KAAa,EACb,OAAwC;IAExC,IAAI,IAAO,CAAC;IACZ,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAO,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,IAAI,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;AAC/F,CAAC;AAED,mFAAmF;AACnF,uFAAuF;AACvF,KAAK,UAAU,mBAAmB,CAChC,MAAc,EACd,IAAY,EACZ,QAAgB,EAChB,KAAa,EACb,GAAW,EACX,SAAS,GAAG,GAAG,EACf,SAAkB,EAClB,WAAoB;IAEpB,2FAA2F;IAC3F,6DAA6D;IAC7D,MAAM,OAAO,GAAG,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;YAC1B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,eAAe,EAAE,UAAU,GAAG,EAAE;aACjC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;oBACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;iBAChC;aACF,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,oBAAoB,CACzB,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,MAAc,EACd,IAAY,EACZ,GAAW,EACX,SAAS,GAAG,GAAG,EACf,WAAoB;IAEpB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,2BAA2B,CAAC;IAClF,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;IAC5E,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YACzD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,GAAG;gBAChB,mBAAmB,EAAE,YAAY;aAClC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrD,MAAM;gBACN,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aAC5C,CAAC;YACF,oFAAoF;YACpF,sFAAsF;YACtF,wCAAwC;YACxC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,mBAAmB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpD,oFAAoF;IACpF,qFAAqF;IACrF,mDAAmD;IACnD,OAAO,oBAAoB,CACzB,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,MAAc,EACd,IAAY,EACZ,GAAW,EACX,SAAS,GAAG,GAAG,EACf,WAAoB;IAEpB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,kBAAkB,CAAC;IAC5E,MAAM,eAAe,GAAG,mBAAmB,CAAC,2CAA2C,CAAC,CAAC;IACzF,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CACf,2DAA2D,WAAW,wBAAwB,GAAG,EAAE,EACnG;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,iBAAiB,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;gBAChD,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBACvC,gBAAgB,EAAE;oBAChB,eAAe,EAAE,SAAS;oBAC1B,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD;aACF,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,eAAe,CAAC;SAC7C,CACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1D,yEAAyE;IACzE,OAAO,oBAAoB,CACzB,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,gBAAgB;IAChB,kBAAkB;IAClB,gBAAgB;IAChB,cAAc;IACd,eAAe;IACf,qBAAqB;CACtB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,2BAA2B,GAAG,0DAA0D,CAAC;AAE/F;;;;GAIG;AACH,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;AACvC,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAY,EAAE,MAAc;IAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAMlD;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,IAAY;IACxC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;IACjF,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,kFAAkF;AAClF,SAAS,sBAAsB,CAAC,IAAY;IAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,gFAAgF;AAChF,SAAS,sBAAsB,CAAC,CAAW,EAAE,CAAW;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;IACxB,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAmB,EAAE,QAAiB;IACvE,kFAAkF;IAClF,0CAA0C;IAC1C,IAAI,QAAQ;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACnD,IAAI,CAAC,SAAS,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjE,mFAAmF;IACnF,kFAAkF;IAClF,KAAK,MAAM,MAAM,IAAI,qBAAqB,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,SAAS;QAC9B,kFAAkF;QAClF,gFAAgF;QAChF,6EAA6E;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACpB,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;eACrE,sBAAsB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC;eACrD,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;AACtD,CAAC;AAoCD;;;;;;;;;;GAUG;AACH,MAAM,0BAA0B,GAAG;IACjC,kBAAkB;IAClB,sCAAsC;IACtC,0BAA0B;IAC1B,kCAAkC;IAClC,0CAA0C;IAC1C,iCAAiC;IACjC,iCAAiC;IACjC,2DAA2D;IAC3D,mCAAmC;IACnC,oBAAoB;IACpB,sBAAsB;IACtB,yBAAyB;IACzB,4BAA4B;IAC5B,oCAAoC;CACrC,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,GAAG,GAAI,MAA8B,CAAC,KAAK,CAAC;QAClD,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,IAAY;IAChE,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAMD;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY,EAAE,KAAa;IACnE,MAAM,KAAK,GAAG,CAAC,MAAc,EAAkB,EAAE;QAC/C,OAAO,CAAC,KAAK,CACX,4BAA4B,KAAK,sBAAsB,MAAM,wBAAwB;YACrF,GAAG,oBAAoB,gEAAgE;YACvF,oCAAoC,CACrC,CAAC;QACF,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;IACtE,CAAC,CAAC;IAEF,IAAI,IAA8C,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;YAC1C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;YAC/B,yEAAyE;YACzE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA8C,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,KAAK,CAAC,qBAAqB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,MAAM,GAAG,eAAe,KAAK,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACtD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACpC,IAAI,MAAM,GAAG,QAAQ;gBAAE,MAAM,GAAG,mCAAmC,MAAM,EAAE,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CACX,yCAAyC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB;gBACnF,oCAAoC,KAAK,yBAAyB,QAAQ,GAAG,CAC9E,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,oCAAoC,MAAM,eAAe,KAAK,KAAK,MAAM,IAAI,CAAC,CAAC;IAC7F,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,MAAc,EACd,IAAiD,EACjD,WAAoB,EACpB,SAAS,GAAG,GAAG;IAEf,oFAAoF;IACpF,gFAAgF;IAChF,+EAA+E;IAC/E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,wBAAwB,CAAC;IAEpE,iFAAiF;IACjF,6EAA6E;IAC7E,IAAI,KAAa,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvF,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;QAC7E,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAA0C,CAAC;QAC1E,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QAClF,MAAM,MAAM,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,+EAA+E;YAC/E,4EAA4E;YAC5E,OAAO,MAAM,CAAC,MAAM,KAAK,qBAAqB;gBAC5C,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE;gBAC5E,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QACrD,CAAC;QACD,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,uFAAuF;IACvF,0FAA0F;IAC1F,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzE,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;YACpC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE;oBACP,OAAO,EAAE,MAAM,CAAC,MAAM;oBACtB,WAAW,EAAE,SAAS;oBACtB,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD;gBACD,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE;oBACnC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE;iBACpC;aACF,CAAC;YACF,uFAAuF;YACvF,mFAAmF;YACnF,iDAAiD;YACjD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oFAAoF;QACpF,kFAAkF;QAClF,iFAAiF;QACjF,gFAAgF;QAChF,2CAA2C;QAC3C,MAAM,IAAI,GAAI,GAAqC,EAAE,IAAI,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IAC3H,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;IAC5E,OAAO,oBAAoB,CACzB,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,kEAAkE;AAClE,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,mBAAmB,CAAC;AACzF,CAAC;AAED,SAAS,cAAc,CAAC,QAAoB;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW,CAAC,CAAC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC1D,KAAK,QAAQ,CAAC,CAAI,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACvD,qFAAqF;QACrF,0EAA0E;QAC1E,KAAK,QAAQ,CAAC,CAAI,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACxF,KAAK,MAAM,CAAC,CAAM,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,KAAK,SAAS,CAAC,CAAG,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,CAAM,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,QAAoB,EACpB,GAAW,EACX,MAAc,EACd,IAAY,EACZ,SAAkB,EAClB,WAAoB;IAEpB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACjE,KAAK,QAAQ;YACX,OAAO,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,4CAA4C,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,aAAa,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACrL,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9D,KAAK,MAAM;YACT,OAAO,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,iDAAiD,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,sBAAsB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACjM,KAAK,SAAS;YACZ,OAAO,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,4CAA4C,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,sBAAsB,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC/L,KAAK,MAAM;YACT,OAAO,mBAAmB,CAAC,MAAM,EAAE,IAAI,EAAE,sCAAsC,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IACjL,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAAiB,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAEjG;;;;;;;;;;GAUG;AACH,MAAM,UAAU,qBAAqB;IACnC,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,IAAiD,EACjD,IAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,CAAC;IAClC,MAAM,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;IAEtC,qEAAqE;IACrE,2FAA2F;IAC3F,sFAAsF;IACtF,EAAE;IACF,mFAAmF;IACnF,sFAAsF;IACtF,yFAAyF;IACzF,sFAAsF;IACtF,yEAAyE;IACzE,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,MAAM,aAAa,GAAG,GAAW,EAAE;QACjC,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7B,eAAe,GAAG,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3F,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC;IAEF,iFAAiF;IACjF,gFAAgF;IAChF,uEAAuE;IACvE,IAAI,YAAkC,CAAC;IAEvC,yFAAyF;IACzF,0FAA0F;IAC1F,MAAM,KAAK,GAAgD,EAAE,CAAC;IAE9D,+EAA+E;IAC/E,EAAE;IACF,uFAAuF;IACvF,2FAA2F;IAC3F,uFAAuF;IACvF,2FAA2F;IAC3F,MAAM,MAAM,GAAG,CAAC,OAAuB,EAAE,QAAgB,EAAE,UAAmB,EAA0B,EAAE;QACxG,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACvE,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACtH,CAAC;QACD,+EAA+E;QAC/E,0EAA0E;QAC1E,kFAAkF;QAClF,iFAAiF;QACjF,IAAI,OAAO,CAAC,kBAAkB;YAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAC1E,IAAI,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,mFAAmF;IACnF,mFAAmF;IACnF,oFAAoF;IACpF,sFAAsF;IACtF,qFAAqF;IACrF,6DAA6D;IAE7D,kEAAkE;IAClE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,aAAa,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,EAC9H,QAAQ,EACR,IAAI,CACL,CAAC;QACF,IAAI,OAAO;YAAE,OAAO,OAAO,CAAC;IAC9B,CAAC;IAED,qDAAqD;IACrD,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,OAAO,GAAG,MAAM,CACpB,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,EAClF,QAAQ,EACR,IAAI,CACL,CAAC;YACF,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,2EAA2E;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC/F,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC;IAE5B,mFAAmF;IACnF,8EAA8E;IAC9E,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC;IAC7F,CAAC;IACD,yFAAyF;IACzF,yFAAyF;IACzF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;AACzD,CAAC;AAED,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAc,EACd,IAAY,EACZ,IAAsB;IAEtB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1D,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,SAAgE;IAEhE,0FAA0F;IAC1F,4FAA4F;IAC5F,iEAAiE;IACjE,MAAM,SAAS,GAAG,gBAAgB,CAAC,4BAA4B,EAAE,oBAAoB,CAAC,CAAC;IACvF,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,uBAAuB,EACvB,CAAC,YAAoB,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EACvF,EAAE,SAAS,EAAE,CACd,CAAC;IACF,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;AAC5E,CAAC;AAED,uFAAuF;AACvF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,SAAgE;IAEhE,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,CACL,0HAA0H;QAC1H,oDAAoD,OAAO,GAAG,CAC/D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,+DAA+D;QAC/D,qFAAqF;QACrF,qFAAqF;QACrF,uEAAuE;KACxE,CAAC;AACJ,CAAC"}
|
|
@@ -46,6 +46,24 @@ interface DecisionLite {
|
|
|
46
46
|
title: string;
|
|
47
47
|
summary: string;
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* ALI-845 defect 3 (classifier side): neither side was capped here - the asymmetry the
|
|
51
|
+
* ticket described lived one layer up, at the call site (see local-gateway-client.ts).
|
|
52
|
+
* Both decisions get an equal share of the same budget, using the same estimator as
|
|
53
|
+
* local-llm.ts's synthesis prompt. Exported so its cutting behaviour is pinned directly,
|
|
54
|
+
* the same way the synthesis builder is.
|
|
55
|
+
*
|
|
56
|
+
* `outputTokens` is the CALLER'S ACTUAL resolved budget (post ALIGN_CLASSIFIER_MAX_TOKENS),
|
|
57
|
+
* not the CLASSIFIER_MAX_TOKENS default - see buildUserPrompt's twin in local-llm.ts for why
|
|
58
|
+
* reserving the default while the real request sends an override defeats the cap (found in
|
|
59
|
+
* fresh-context review, ALI-845).
|
|
60
|
+
*
|
|
61
|
+
* The reserve also covers the "Decision A: <title>. " / "Decision B: <title>. " label wrapped
|
|
62
|
+
* around each side, not just the system prompt and output budget (Copilot review, PR #258).
|
|
63
|
+
* Titles are never cut, so a long enough title can otherwise exceed its side's share on its
|
|
64
|
+
* own, before any summary is even considered.
|
|
65
|
+
*/
|
|
66
|
+
export declare function buildUserPrompt(a: DecisionLite, b: DecisionLite, windowTokens: number, outputTokens: number): string;
|
|
49
67
|
/**
|
|
50
68
|
* Design constraint for any future multi-model adjudication here (ALI-692): if two
|
|
51
69
|
* models ever judge one question (a conflict verdict plus a second opinion, a jury),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-relationship-classifier.d.ts","sourceRoot":"","sources":["../../src/lib/local-relationship-classifier.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"local-relationship-classifier.d.ts","sourceRoot":"","sources":["../../src/lib/local-relationship-classifier.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,oBAAoB,EAG1B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAIL,KAAK,UAAU,EAEhB,MAAM,gBAAgB,CAAC;AAMxB,eAAO,MAAM,kBAAkB,8IAAyB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB;AACjC,4EAA4E;AAC1E,YAAY;AACd,sEAAsE;GACpE,kBAAkB;AACpB,sFAAsF;GACpF,wBAAwB;AAC1B;;;;GAIG;GACD,sBAAsB,CAAC;AAE3B,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,sBAAsB,CAAA;CAAE;AACpD;;;;;GAKG;GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzE,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAOpH;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EACrB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,qBAAqB,CAAC,CA2BhC"}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
// returned a bare null for all three causes, and the caller - unable to tell them
|
|
8
8
|
// apart, or apart from "classified, no conflict" - reported `aligned`.
|
|
9
9
|
import { DECISION_RELATIONSHIPS, DETERMINISTIC_TEMPERATURE, isDecisionRelationship, } from '@aligndottech/connector-core';
|
|
10
|
-
import { callChatDetailed, hasConfiguredProvider } from './local-llm.js';
|
|
10
|
+
import { callChatDetailed, CLASSIFIER_MAX_TOKENS, hasConfiguredProvider, resolveMaxTokens, } from './local-llm.js';
|
|
11
|
+
import { charsForTokens, estimateTokens } from './token-estimate.js';
|
|
11
12
|
// ALI-219: the canonical decision-graph vocabulary is the single source of truth
|
|
12
13
|
// (connector-core). The local classifier must only emit types the graph accepts,
|
|
13
14
|
// or a local edge is invalid on personal->org sync. Re-exported for callers/tests.
|
|
@@ -16,8 +17,30 @@ const SYSTEM_PROMPT = "You classify how decision B relates to decision A in a so
|
|
|
16
17
|
`Respond ONLY with compact JSON: {"type": one of [${RELATIONSHIP_TYPES.join(', ')}], "confidence": number 0-1, "reason": short string}. ` +
|
|
17
18
|
'Use "conflicts_with" or "contradicts" ONLY when B genuinely opposes A - high textual similarity alone is NOT a conflict ' +
|
|
18
19
|
'(two decisions about the same topic often agree). Use "supersedes" when B replaces A, "relates" when merely related.';
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* ALI-845 defect 3 (classifier side): neither side was capped here - the asymmetry the
|
|
22
|
+
* ticket described lived one layer up, at the call site (see local-gateway-client.ts).
|
|
23
|
+
* Both decisions get an equal share of the same budget, using the same estimator as
|
|
24
|
+
* local-llm.ts's synthesis prompt. Exported so its cutting behaviour is pinned directly,
|
|
25
|
+
* the same way the synthesis builder is.
|
|
26
|
+
*
|
|
27
|
+
* `outputTokens` is the CALLER'S ACTUAL resolved budget (post ALIGN_CLASSIFIER_MAX_TOKENS),
|
|
28
|
+
* not the CLASSIFIER_MAX_TOKENS default - see buildUserPrompt's twin in local-llm.ts for why
|
|
29
|
+
* reserving the default while the real request sends an override defeats the cap (found in
|
|
30
|
+
* fresh-context review, ALI-845).
|
|
31
|
+
*
|
|
32
|
+
* The reserve also covers the "Decision A: <title>. " / "Decision B: <title>. " label wrapped
|
|
33
|
+
* around each side, not just the system prompt and output budget (Copilot review, PR #258).
|
|
34
|
+
* Titles are never cut, so a long enough title can otherwise exceed its side's share on its
|
|
35
|
+
* own, before any summary is even considered.
|
|
36
|
+
*/
|
|
37
|
+
export function buildUserPrompt(a, b, windowTokens, outputTokens) {
|
|
38
|
+
const labelTokens = estimateTokens(`Decision A: ${a.title}. `) + estimateTokens(`\n\nDecision B: ${b.title}. `);
|
|
39
|
+
const reserveTokens = estimateTokens(SYSTEM_PROMPT) + outputTokens + labelTokens;
|
|
40
|
+
const budgetTokens = Math.max(0, windowTokens - reserveTokens);
|
|
41
|
+
const perSideChars = charsForTokens(Math.floor(budgetTokens / 2));
|
|
42
|
+
const cut = (d) => (d.summary.length > perSideChars ? d.summary.slice(0, perSideChars) : d.summary);
|
|
43
|
+
return `Decision A: ${a.title}. ${cut(a)}\n\nDecision B: ${b.title}. ${cut(b)}`;
|
|
21
44
|
}
|
|
22
45
|
/**
|
|
23
46
|
* Design constraint for any future multi-model adjudication here (ALI-692): if two
|
|
@@ -30,9 +53,12 @@ export async function classifyRelationship(subject, candidate) {
|
|
|
30
53
|
// ALI-218/219: pin the shared deterministic temperature so the same decision
|
|
31
54
|
// pair types the same way every run - offline relationship detection must be
|
|
32
55
|
// deterministic, and the value is the one both paths share (connector-core).
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
56
|
+
//
|
|
57
|
+
// Resolved ONCE, then threaded into both the reserve calculation and the actual request -
|
|
58
|
+
// see buildUserPrompt's docstring for why using the default in one place and this in the
|
|
59
|
+
// other lets an override push the request over the window it was built against.
|
|
60
|
+
const maxTokens = resolveMaxTokens('ALIGN_CLASSIFIER_MAX_TOKENS', CLASSIFIER_MAX_TOKENS);
|
|
61
|
+
const result = await callChatDetailed(SYSTEM_PROMPT, (windowTokens) => buildUserPrompt(subject, candidate, windowTokens, maxTokens), { temperature: DETERMINISTIC_TEMPERATURE, maxTokens });
|
|
36
62
|
if (!result.ok) {
|
|
37
63
|
// Each mapping below reads the failure the call RETURNED, so it describes this
|
|
38
64
|
// candidate's attempt and nothing else. `hasConfiguredProvider()` is still the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-relationship-classifier.js","sourceRoot":"","sources":["../../src/lib/local-relationship-classifier.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,kFAAkF;AAClF,kFAAkF;AAClF,6EAA6E;AAC7E,EAAE;AACF,6EAA6E;AAC7E,kFAAkF;AAClF,uEAAuE;AAEvE,OAAO,EACL,sBAAsB,EAEtB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"local-relationship-classifier.js","sourceRoot":"","sources":["../../src/lib/local-relationship-classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,4 +17,30 @@ export declare function runPersonalImport(items: PersonalImportItem[], client: R
|
|
|
17
17
|
source: string;
|
|
18
18
|
};
|
|
19
19
|
}): Promise<number>;
|
|
20
|
+
/** A single confirm-each candidate: whatever it is, it can render itself for review. */
|
|
21
|
+
export interface ConfirmEachItem {
|
|
22
|
+
render(): string;
|
|
23
|
+
}
|
|
24
|
+
export interface ConfirmEachResult {
|
|
25
|
+
imported: number;
|
|
26
|
+
skipped: number;
|
|
27
|
+
/** Items never reached because the caller cancelled (Ctrl-C) partway through - distinct
|
|
28
|
+
* from skipped, which means "reviewed and declined". */
|
|
29
|
+
remaining: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* ALI-808: added BESIDE runPersonalImport, not instead of it - this is the confirm-each
|
|
33
|
+
* shape (review one, decide, review the next) rather than runPersonalImport's preview-N
|
|
34
|
+
* then confirm-once-and-batch shape. First user: the session importer, where "this was
|
|
35
|
+
* said" needs a human looking at each candidate individually, not a table skim.
|
|
36
|
+
*
|
|
37
|
+
* Refuses a non-TTY caller before prompting or calling onAccept a single time - the same
|
|
38
|
+
* fail direction as `align ratify` (ratify.ts) and for the same reason: a hook, a pipe, or
|
|
39
|
+
* an agent's own shell tool must not be able to accept an agent-made claim unattended.
|
|
40
|
+
*/
|
|
41
|
+
export declare function runConfirmEachImport<T extends ConfirmEachItem>(items: T[], onAccept: (item: T) => Promise<{
|
|
42
|
+
id: string;
|
|
43
|
+
}>, opts: {
|
|
44
|
+
label: string;
|
|
45
|
+
}): Promise<ConfirmEachResult>;
|
|
20
46
|
//# sourceMappingURL=personal-import.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"personal-import.d.ts","sourceRoot":"","sources":["../../src/lib/personal-import.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAoDjD,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAYpC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,kBAAkB,EAAE,EAC3B,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC9C,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAC9G;;4EAEwE;IACxE,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD,GACA,OAAO,CAAC,MAAM,CAAC,CAmIjB"}
|
|
1
|
+
{"version":3,"file":"personal-import.d.ts","sourceRoot":"","sources":["../../src/lib/personal-import.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAoDjD,wBAAsB,kBAAkB,CAAC,CAAC,EACxC,KAAK,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAC9B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAYpC;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,kBAAkB,EAAE,EAC3B,MAAM,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC9C,IAAI,EAAE;IACJ,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IAC9G;;4EAEwE;IACxE,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,iBAAiB,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD,GACA,OAAO,CAAC,MAAM,CAAC,CAmIjB;AAED,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,MAAM,IAAI,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB;6DACyD;IACzD,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,eAAe,EAClE,KAAK,EAAE,CAAC,EAAE,EACV,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAiC5B"}
|