@revealui/ai 0.2.0 → 0.2.4
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/LICENSE.commercial +2 -3
- package/dist/a2a/card.d.ts.map +1 -1
- package/dist/a2a/handler.d.ts +1 -1
- package/dist/a2a/handler.d.ts.map +1 -1
- package/dist/a2a/handler.js +1 -1
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/task-store.d.ts.map +1 -1
- package/dist/audit/emitter.d.ts.map +1 -1
- package/dist/audit/index.d.ts.map +1 -1
- package/dist/audit/observer.d.ts.map +1 -1
- package/dist/audit/policy.d.ts.map +1 -1
- package/dist/audit/store.d.ts.map +1 -1
- package/dist/audit/types.d.ts.map +1 -1
- package/dist/client/hooks/index.d.ts.map +1 -1
- package/dist/client/hooks/useAgentContext.d.ts.map +1 -1
- package/dist/client/hooks/useAgentEvents.d.ts.map +1 -1
- package/dist/client/hooks/useAgentStream.d.ts.map +1 -1
- package/dist/client/hooks/useEpisodicMemory.d.ts.map +1 -1
- package/dist/client/hooks/useWorkingMemory.d.ts.map +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/embeddings/index.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/inference/context-assembly.d.ts.map +1 -1
- package/dist/inference/context-budget.d.ts +46 -0
- package/dist/inference/context-budget.d.ts.map +1 -0
- package/dist/inference/context-budget.js +113 -0
- package/dist/inference/index.d.ts +8 -0
- package/dist/inference/index.d.ts.map +1 -0
- package/dist/inference/index.js +7 -0
- package/dist/inference/overflow-compressor.d.ts.map +1 -1
- package/dist/inference/runRag.d.ts.map +1 -1
- package/dist/inference/task-decomposer.d.ts +75 -0
- package/dist/inference/task-decomposer.d.ts.map +1 -0
- package/dist/inference/task-decomposer.js +190 -0
- package/dist/inference/tool-result-compressor.d.ts +39 -0
- package/dist/inference/tool-result-compressor.d.ts.map +1 -0
- package/dist/inference/tool-result-compressor.js +180 -0
- package/dist/ingestion/bm25.d.ts.map +1 -1
- package/dist/ingestion/cms-indexer.d.ts.map +1 -1
- package/dist/ingestion/file-parsers.d.ts.map +1 -1
- package/dist/ingestion/hybrid-search.d.ts.map +1 -1
- package/dist/ingestion/index.d.ts.map +1 -1
- package/dist/ingestion/pipeline.d.ts.map +1 -1
- package/dist/ingestion/pipeline.js +1 -1
- package/dist/ingestion/rag-vector-service.d.ts.map +1 -1
- package/dist/ingestion/reranker.d.ts.map +1 -1
- package/dist/ingestion/text-splitter.d.ts.map +1 -1
- package/dist/llm/cache-utils.d.ts.map +1 -1
- package/dist/llm/client.d.ts.map +1 -1
- package/dist/llm/client.js +3 -1
- package/dist/llm/key-validator.d.ts.map +1 -1
- package/dist/llm/provider-health.d.ts.map +1 -1
- package/dist/llm/providers/anthropic.d.ts.map +1 -1
- package/dist/llm/providers/anthropic.js +3 -1
- package/dist/llm/providers/base.d.ts.map +1 -1
- package/dist/llm/providers/bitnet.d.ts.map +1 -1
- package/dist/llm/providers/groq.d.ts.map +1 -1
- package/dist/llm/providers/inference-snaps.d.ts.map +1 -1
- package/dist/llm/providers/ollama.d.ts.map +1 -1
- package/dist/llm/providers/openai.d.ts.map +1 -1
- package/dist/llm/providers/vultr.d.ts.map +1 -1
- package/dist/llm/response-cache.d.ts.map +1 -1
- package/dist/llm/semantic-cache.d.ts.map +1 -1
- package/dist/llm/semantic-cache.js +1 -1
- package/dist/llm/server.d.ts.map +1 -1
- package/dist/llm/token-counter.d.ts.map +1 -1
- package/dist/llm/workspace-provider-config.d.ts.map +1 -1
- package/dist/memory/agent/context-manager.d.ts.map +1 -1
- package/dist/memory/agent/index.d.ts.map +1 -1
- package/dist/memory/crdt/index.d.ts.map +1 -1
- package/dist/memory/crdt/lww-register.d.ts.map +1 -1
- package/dist/memory/crdt/or-set.d.ts.map +1 -1
- package/dist/memory/crdt/pn-counter.d.ts.map +1 -1
- package/dist/memory/crdt/vector-clock.d.ts.map +1 -1
- package/dist/memory/errors/index.d.ts.map +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/persistence/crdt-persistence.d.ts.map +1 -1
- package/dist/memory/persistence/crdt-persistence.js +1 -5
- package/dist/memory/persistence/index.d.ts.map +1 -1
- package/dist/memory/preferences/index.d.ts.map +1 -1
- package/dist/memory/preferences/user-preferences-manager.d.ts.map +1 -1
- package/dist/memory/preferences/user-preferences-manager.js +2 -3
- package/dist/memory/services/index.d.ts.map +1 -1
- package/dist/memory/services/node-id-service.d.ts.map +1 -1
- package/dist/memory/stores/episodic-memory.d.ts.map +1 -1
- package/dist/memory/stores/index.d.ts.map +1 -1
- package/dist/memory/stores/procedural-memory.d.ts.map +1 -1
- package/dist/memory/stores/semantic-memory.d.ts.map +1 -1
- package/dist/memory/stores/working-memory.d.ts.map +1 -1
- package/dist/memory/utils/deep-clone.d.ts.map +1 -1
- package/dist/memory/utils/index.d.ts.map +1 -1
- package/dist/memory/utils/sql-helpers.d.ts.map +1 -1
- package/dist/memory/utils/validation.d.ts.map +1 -1
- package/dist/memory/utils/validation.js +3 -1
- package/dist/memory/vector/index.d.ts.map +1 -1
- package/dist/memory/vector/vector-memory-service.d.ts.map +1 -1
- package/dist/memory/vector/vector-memory-service.js +1 -1
- package/dist/observability/logger.d.ts.map +1 -1
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/query.d.ts.map +1 -1
- package/dist/observability/types.d.ts.map +1 -1
- package/dist/orchestration/agent.d.ts.map +1 -1
- package/dist/orchestration/defaults.d.ts.map +1 -1
- package/dist/orchestration/memory-integration.d.ts.map +1 -1
- package/dist/orchestration/orchestrator.d.ts.map +1 -1
- package/dist/orchestration/runtime.d.ts +24 -0
- package/dist/orchestration/runtime.d.ts.map +1 -1
- package/dist/orchestration/runtime.js +67 -1
- package/dist/orchestration/streaming-runtime.d.ts.map +1 -1
- package/dist/orchestration/streaming-runtime.js +11 -4
- package/dist/orchestration/ticket-agent.d.ts.map +1 -1
- package/dist/orchestration/ticket-agent.js +3 -1
- package/dist/skills/activation/index.d.ts.map +1 -1
- package/dist/skills/activation/skill-activator.d.ts.map +1 -1
- package/dist/skills/catalog/catalog-search.d.ts.map +1 -1
- package/dist/skills/catalog/catalog-types.d.ts.map +1 -1
- package/dist/skills/catalog/index.d.ts.map +1 -1
- package/dist/skills/catalog/vercel-catalog.d.ts.map +1 -1
- package/dist/skills/compat/index.d.ts.map +1 -1
- package/dist/skills/compat/skill-enhancer.d.ts.map +1 -1
- package/dist/skills/compat/tool-mapper.d.ts.map +1 -1
- package/dist/skills/compat/vercel-compat.d.ts.map +1 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/integration/agent-skill-provider.d.ts.map +1 -1
- package/dist/skills/integration/index.d.ts.map +1 -1
- package/dist/skills/loader/github-loader.d.ts.map +1 -1
- package/dist/skills/loader/github-loader.js +10 -2
- package/dist/skills/loader/index.d.ts.map +1 -1
- package/dist/skills/loader/local-loader.d.ts.map +1 -1
- package/dist/skills/loader/vercel-loader.d.ts.map +1 -1
- package/dist/skills/loader/vercel-loader.js +10 -2
- package/dist/skills/loader/vercel-types.d.ts.map +1 -1
- package/dist/skills/parser/index.d.ts.map +1 -1
- package/dist/skills/parser/skill-md-parser.d.ts.map +1 -1
- package/dist/skills/parser/skill-md-parser.js +2 -2
- package/dist/skills/registry/index.d.ts.map +1 -1
- package/dist/skills/registry/skill-registry.d.ts.map +1 -1
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/templates/agent-spec.d.ts.map +1 -1
- package/dist/templates/index.d.ts.map +1 -1
- package/dist/templates/prompt-spec.d.ts.map +1 -1
- package/dist/templates/skill-spec.d.ts.map +1 -1
- package/dist/tools/base.d.ts +33 -0
- package/dist/tools/base.d.ts.map +1 -1
- package/dist/tools/cms/collection-tools.d.ts.map +1 -1
- package/dist/tools/cms/factory.d.ts.map +1 -1
- package/dist/tools/cms/global-tools.d.ts.map +1 -1
- package/dist/tools/cms/index.d.ts.map +1 -1
- package/dist/tools/cms/media-tools.d.ts.map +1 -1
- package/dist/tools/cms/user-tools.d.ts.map +1 -1
- package/dist/tools/coding/file-edit.d.ts +6 -0
- package/dist/tools/coding/file-edit.d.ts.map +1 -0
- package/dist/tools/coding/file-edit.js +73 -0
- package/dist/tools/coding/file-glob.d.ts +6 -0
- package/dist/tools/coding/file-glob.d.ts.map +1 -0
- package/dist/tools/coding/file-glob.js +120 -0
- package/dist/tools/coding/file-grep.d.ts +6 -0
- package/dist/tools/coding/file-grep.d.ts.map +1 -0
- package/dist/tools/coding/file-grep.js +194 -0
- package/dist/tools/coding/file-read.d.ts +6 -0
- package/dist/tools/coding/file-read.d.ts.map +1 -0
- package/dist/tools/coding/file-read.js +69 -0
- package/dist/tools/coding/file-write.d.ts +6 -0
- package/dist/tools/coding/file-write.d.ts.map +1 -0
- package/dist/tools/coding/file-write.js +49 -0
- package/dist/tools/coding/git-ops.d.ts +6 -0
- package/dist/tools/coding/git-ops.d.ts.map +1 -0
- package/dist/tools/coding/git-ops.js +102 -0
- package/dist/tools/coding/index.d.ts +40 -0
- package/dist/tools/coding/index.d.ts.map +1 -0
- package/dist/tools/coding/index.js +62 -0
- package/dist/tools/coding/lint-fix.d.ts +9 -0
- package/dist/tools/coding/lint-fix.d.ts.map +1 -0
- package/dist/tools/coding/lint-fix.js +256 -0
- package/dist/tools/coding/project-context.d.ts +6 -0
- package/dist/tools/coding/project-context.d.ts.map +1 -0
- package/dist/tools/coding/project-context.js +126 -0
- package/dist/tools/coding/safety.d.ts +26 -0
- package/dist/tools/coding/safety.d.ts.map +1 -0
- package/dist/tools/coding/safety.js +104 -0
- package/dist/tools/coding/shell-exec.d.ts +6 -0
- package/dist/tools/coding/shell-exec.d.ts.map +1 -0
- package/dist/tools/coding/shell-exec.js +79 -0
- package/dist/tools/coding/test-runner.d.ts +10 -0
- package/dist/tools/coding/test-runner.d.ts.map +1 -0
- package/dist/tools/coding/test-runner.js +214 -0
- package/dist/tools/deduplicator.d.ts.map +1 -1
- package/dist/tools/document-summarizer.d.ts.map +1 -1
- package/dist/tools/mcp-adapter.d.ts.map +1 -1
- package/dist/tools/memory/index.d.ts.map +1 -1
- package/dist/tools/memory/store-memory.d.ts.map +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/ticket-tools.d.ts.map +1 -1
- package/dist/tools/web/duck-duck-go.d.ts.map +1 -1
- package/dist/tools/web/exa.d.ts.map +1 -1
- package/dist/tools/web/index.d.ts.map +1 -1
- package/dist/tools/web/scraper.d.ts.map +1 -1
- package/dist/tools/web/tavily.d.ts.map +1 -1
- package/dist/tools/web/types.d.ts.map +1 -1
- package/package.json +26 -7
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Task Decomposer
|
|
3
|
+
*
|
|
4
|
+
* Breaks complex multi-file instructions into focused single-step tasks
|
|
5
|
+
* that small models can handle. Each step gets its own agentic loop with
|
|
6
|
+
* only the context it needs.
|
|
7
|
+
*
|
|
8
|
+
* Strategy:
|
|
9
|
+
* 1. Plan: send instruction to LLM with minimal context → get JSON step array
|
|
10
|
+
* 2. Execute: each step runs as a focused agentic loop
|
|
11
|
+
* 3. Synthesize: collect results, present summary
|
|
12
|
+
*/
|
|
13
|
+
import { classifyModel, getContextBudget } from './context-budget.js';
|
|
14
|
+
const DEFAULT_CONFIG = {
|
|
15
|
+
maxSteps: 5,
|
|
16
|
+
modelName: 'unknown',
|
|
17
|
+
minComplexityForDecomposition: 1,
|
|
18
|
+
};
|
|
19
|
+
let decomposerConfig = { ...DEFAULT_CONFIG };
|
|
20
|
+
export function configureDecomposer(overrides) {
|
|
21
|
+
decomposerConfig = { ...DEFAULT_CONFIG, ...overrides };
|
|
22
|
+
}
|
|
23
|
+
// ---------------------------------------------------------------------------
|
|
24
|
+
// Complexity heuristics
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
/** Known complexity signals in an instruction */
|
|
27
|
+
const COMPLEXITY_SIGNALS = [
|
|
28
|
+
/\band\b.*\band\b/i, // multiple "and" conjunctions
|
|
29
|
+
/\bthen\b/i, // sequential steps
|
|
30
|
+
/\bfirst\b.*\bthen\b/i, // explicit ordering
|
|
31
|
+
/\bmultiple\b|\bseveral\b|\ball\b/i, // bulk operations
|
|
32
|
+
/\brefactor\b|\bmigrate\b|\brewrite\b/i, // large-scope changes
|
|
33
|
+
/\bacross\b.*\bfiles?\b/i, // cross-file operations
|
|
34
|
+
/\bupdate\b.*\band\b.*\btest\b/i, // change + verify pattern
|
|
35
|
+
/\bcreate\b.*\bwith\b.*\band\b/i, // create with multiple parts
|
|
36
|
+
];
|
|
37
|
+
/**
|
|
38
|
+
* Estimate task complexity (0-10 scale) based on instruction text.
|
|
39
|
+
* Used to decide whether decomposition is worthwhile.
|
|
40
|
+
*/
|
|
41
|
+
export function estimateComplexity(instruction) {
|
|
42
|
+
let score = 0;
|
|
43
|
+
// Signal matching
|
|
44
|
+
for (const signal of COMPLEXITY_SIGNALS) {
|
|
45
|
+
if (signal.test(instruction))
|
|
46
|
+
score += 1.5;
|
|
47
|
+
}
|
|
48
|
+
// Length-based: longer instructions tend to be more complex
|
|
49
|
+
const words = instruction.split(/\s+/).length;
|
|
50
|
+
if (words > 30)
|
|
51
|
+
score += 1;
|
|
52
|
+
if (words > 60)
|
|
53
|
+
score += 1;
|
|
54
|
+
if (words > 100)
|
|
55
|
+
score += 1;
|
|
56
|
+
// Path/file references suggest multi-file work
|
|
57
|
+
const pathRefs = instruction.match(/[\w/.-]+\.\w{1,5}/g) ?? [];
|
|
58
|
+
if (pathRefs.length > 1)
|
|
59
|
+
score += pathRefs.length * 0.5;
|
|
60
|
+
return Math.min(10, score);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Determine if a task should be decomposed based on model tier and complexity.
|
|
64
|
+
*/
|
|
65
|
+
export function shouldDecompose(instruction, modelTier) {
|
|
66
|
+
// Large models handle complex tasks natively
|
|
67
|
+
if (modelTier === 'large')
|
|
68
|
+
return false;
|
|
69
|
+
const complexity = estimateComplexity(instruction);
|
|
70
|
+
// Small models: decompose anything non-trivial
|
|
71
|
+
if (modelTier === 'small')
|
|
72
|
+
return complexity >= 2;
|
|
73
|
+
// Medium models: only decompose complex tasks
|
|
74
|
+
return complexity >= 4;
|
|
75
|
+
}
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
// Decomposition
|
|
78
|
+
// ---------------------------------------------------------------------------
|
|
79
|
+
const PLANNING_PROMPT = `You are a task planning assistant. Break the following instruction into simple, focused steps that can each be completed independently.
|
|
80
|
+
|
|
81
|
+
Rules:
|
|
82
|
+
- Each step should involve at most 1-2 tool calls
|
|
83
|
+
- Steps should be ordered by dependency (prerequisites first)
|
|
84
|
+
- Each step's instruction should be self-contained and specific
|
|
85
|
+
- Include file paths when known
|
|
86
|
+
- Return ONLY a JSON array of step objects
|
|
87
|
+
|
|
88
|
+
Output format:
|
|
89
|
+
[
|
|
90
|
+
{ "instruction": "Read the file src/index.ts to understand the current exports", "toolHints": ["file_read"], "targetPaths": ["src/index.ts"] },
|
|
91
|
+
{ "instruction": "Add the new export for MyComponent to src/index.ts", "toolHints": ["file_edit"], "targetPaths": ["src/index.ts"] }
|
|
92
|
+
]
|
|
93
|
+
|
|
94
|
+
Instruction to decompose:
|
|
95
|
+
`;
|
|
96
|
+
/**
|
|
97
|
+
* Decompose a complex instruction into focused steps using the LLM.
|
|
98
|
+
* Returns a single step with the original instruction if decomposition
|
|
99
|
+
* is not needed or fails.
|
|
100
|
+
*/
|
|
101
|
+
export async function decomposeTask(instruction, llmClient, modelName) {
|
|
102
|
+
const startTime = Date.now();
|
|
103
|
+
const tier = classifyModel(modelName ?? decomposerConfig.modelName);
|
|
104
|
+
// Check if decomposition is needed
|
|
105
|
+
if (!shouldDecompose(instruction, tier)) {
|
|
106
|
+
return {
|
|
107
|
+
decomposed: false,
|
|
108
|
+
original: instruction,
|
|
109
|
+
steps: [{ index: 1, instruction }],
|
|
110
|
+
metadata: { planningTime: Date.now() - startTime, modelTier: tier },
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
// Use a focused planning prompt — keep it small for small models
|
|
115
|
+
const planningInstruction = `${PLANNING_PROMPT}${instruction}`;
|
|
116
|
+
const budget = getContextBudget(tier);
|
|
117
|
+
// For planning, we want minimal context
|
|
118
|
+
const messages = [
|
|
119
|
+
{
|
|
120
|
+
role: 'system',
|
|
121
|
+
content: 'You output only valid JSON arrays. No markdown, no explanation.',
|
|
122
|
+
},
|
|
123
|
+
{ role: 'user', content: planningInstruction },
|
|
124
|
+
];
|
|
125
|
+
let response = '';
|
|
126
|
+
for await (const chunk of llmClient.stream(messages)) {
|
|
127
|
+
if (chunk.content)
|
|
128
|
+
response += chunk.content;
|
|
129
|
+
}
|
|
130
|
+
// Parse the JSON response
|
|
131
|
+
const steps = parseStepArray(response, instruction);
|
|
132
|
+
// Limit steps
|
|
133
|
+
const maxSteps = Math.min(decomposerConfig.maxSteps, budget.historyTurns);
|
|
134
|
+
const limited = steps.slice(0, maxSteps);
|
|
135
|
+
return {
|
|
136
|
+
decomposed: limited.length > 1,
|
|
137
|
+
original: instruction,
|
|
138
|
+
steps: limited.map((s, i) => ({ ...s, index: i + 1 })),
|
|
139
|
+
metadata: { planningTime: Date.now() - startTime, modelTier: tier },
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
// Decomposition failed — fall back to single-step
|
|
144
|
+
return {
|
|
145
|
+
decomposed: false,
|
|
146
|
+
original: instruction,
|
|
147
|
+
steps: [{ index: 1, instruction }],
|
|
148
|
+
metadata: { planningTime: Date.now() - startTime, modelTier: tier },
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Select tools relevant to a specific step based on tool hints.
|
|
154
|
+
* Returns all tools if no hints are provided.
|
|
155
|
+
*/
|
|
156
|
+
export function selectToolsForStep(step, allTools) {
|
|
157
|
+
if (!step.toolHints?.length)
|
|
158
|
+
return allTools;
|
|
159
|
+
const hintSet = new Set(step.toolHints);
|
|
160
|
+
const selected = allTools.filter((t) => hintSet.has(t.name));
|
|
161
|
+
// Always include at least the hinted tools + fallback to all if none match
|
|
162
|
+
return selected.length > 0 ? selected : allTools;
|
|
163
|
+
}
|
|
164
|
+
// ---------------------------------------------------------------------------
|
|
165
|
+
// JSON parsing
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
function parseStepArray(response, fallbackInstruction) {
|
|
168
|
+
// Extract JSON array from response (may have markdown wrapping)
|
|
169
|
+
const jsonMatch = response.match(/\[[\s\S]*\]/);
|
|
170
|
+
if (!jsonMatch) {
|
|
171
|
+
return [{ index: 1, instruction: fallbackInstruction }];
|
|
172
|
+
}
|
|
173
|
+
try {
|
|
174
|
+
const parsed = JSON.parse(jsonMatch[0]);
|
|
175
|
+
if (!Array.isArray(parsed) || parsed.length === 0) {
|
|
176
|
+
return [{ index: 1, instruction: fallbackInstruction }];
|
|
177
|
+
}
|
|
178
|
+
return parsed
|
|
179
|
+
.filter((step) => step.instruction && typeof step.instruction === 'string')
|
|
180
|
+
.map((step, i) => ({
|
|
181
|
+
index: i + 1,
|
|
182
|
+
instruction: step.instruction,
|
|
183
|
+
toolHints: Array.isArray(step.toolHints) ? step.toolHints : undefined,
|
|
184
|
+
targetPaths: Array.isArray(step.targetPaths) ? step.targetPaths : undefined,
|
|
185
|
+
}));
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return [{ index: 1, instruction: fallbackInstruction }];
|
|
189
|
+
}
|
|
190
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Result Compressor
|
|
3
|
+
*
|
|
4
|
+
* Deterministic, per-tool-type compression of tool results based on model tier.
|
|
5
|
+
* Small models get aggressively truncated output; large models get full output.
|
|
6
|
+
*
|
|
7
|
+
* No LLM-based summarization — all compression is structural (head/tail,
|
|
8
|
+
* match limits, line limits) so it's fast and predictable.
|
|
9
|
+
*/
|
|
10
|
+
import type { ModelTier } from './context-budget.js';
|
|
11
|
+
export interface CompressorConfig {
|
|
12
|
+
/** Override per-tool limits. Keys are tool names, values are per-tier limits. */
|
|
13
|
+
toolLimits?: Record<string, Partial<Record<ModelTier, ToolLimits>>>;
|
|
14
|
+
}
|
|
15
|
+
export interface ToolLimits {
|
|
16
|
+
/** Max lines of output content */
|
|
17
|
+
maxLines: number;
|
|
18
|
+
/** Max matches/results for search tools */
|
|
19
|
+
maxMatches: number;
|
|
20
|
+
/** Whether to include head+tail or just head */
|
|
21
|
+
headTailSplit: boolean;
|
|
22
|
+
}
|
|
23
|
+
export declare function configureCompressor(overrides: CompressorConfig): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get the effective limits for a given tool and model tier.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getLimitsForTool(toolName: string, tier: ModelTier): ToolLimits;
|
|
28
|
+
/**
|
|
29
|
+
* Compress a tool result's content string for a given model tier.
|
|
30
|
+
* Returns the compressed content string (or original if within limits).
|
|
31
|
+
*/
|
|
32
|
+
export declare function compressToolResult(toolName: string, content: string, tier: ModelTier): string;
|
|
33
|
+
/**
|
|
34
|
+
* Compress grep/glob search results by limiting match count.
|
|
35
|
+
* Operates on structured content where each match is a block
|
|
36
|
+
* separated by blank lines or a consistent prefix pattern.
|
|
37
|
+
*/
|
|
38
|
+
export declare function compressSearchResult(toolName: string, content: string, tier: ModelTier): string;
|
|
39
|
+
//# sourceMappingURL=tool-result-compressor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-result-compressor.d.ts","sourceRoot":"","sources":["../../src/inference/tool-result-compressor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAMrD,MAAM,WAAW,gBAAgB;IAC/B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;CACrE;AAED,MAAM,WAAW,UAAU;IACzB,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,aAAa,EAAE,OAAO,CAAC;CACxB;AAgDD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,UAAU,CAgB9E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAgB7F;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,MAAM,CAsB/F"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Result Compressor
|
|
3
|
+
*
|
|
4
|
+
* Deterministic, per-tool-type compression of tool results based on model tier.
|
|
5
|
+
* Small models get aggressively truncated output; large models get full output.
|
|
6
|
+
*
|
|
7
|
+
* No LLM-based summarization — all compression is structural (head/tail,
|
|
8
|
+
* match limits, line limits) so it's fast and predictable.
|
|
9
|
+
*/
|
|
10
|
+
const DEFAULT_LIMITS = {
|
|
11
|
+
small: { maxLines: 50, maxMatches: 5, headTailSplit: true },
|
|
12
|
+
medium: { maxLines: 200, maxMatches: 20, headTailSplit: true },
|
|
13
|
+
large: { maxLines: 2000, maxMatches: 100, headTailSplit: false },
|
|
14
|
+
};
|
|
15
|
+
/** Per-tool overrides for specific compression behavior */
|
|
16
|
+
const TOOL_SPECIFIC_LIMITS = {
|
|
17
|
+
file_read: {
|
|
18
|
+
small: { maxLines: 60, headTailSplit: true },
|
|
19
|
+
medium: { maxLines: 200, headTailSplit: true },
|
|
20
|
+
large: { maxLines: 2000, headTailSplit: false },
|
|
21
|
+
},
|
|
22
|
+
file_grep: {
|
|
23
|
+
small: { maxLines: 40, maxMatches: 5 },
|
|
24
|
+
medium: { maxLines: 150, maxMatches: 20 },
|
|
25
|
+
large: { maxLines: 1000, maxMatches: 100 },
|
|
26
|
+
},
|
|
27
|
+
file_glob: {
|
|
28
|
+
small: { maxLines: 30, maxMatches: 10 },
|
|
29
|
+
medium: { maxLines: 100, maxMatches: 30 },
|
|
30
|
+
large: { maxLines: 500, maxMatches: 100 },
|
|
31
|
+
},
|
|
32
|
+
shell_exec: {
|
|
33
|
+
small: { maxLines: 30, headTailSplit: true },
|
|
34
|
+
medium: { maxLines: 100, headTailSplit: true },
|
|
35
|
+
large: { maxLines: 500, headTailSplit: false },
|
|
36
|
+
},
|
|
37
|
+
git_ops: {
|
|
38
|
+
small: { maxLines: 40, headTailSplit: true },
|
|
39
|
+
medium: { maxLines: 150, headTailSplit: true },
|
|
40
|
+
large: { maxLines: 800, headTailSplit: false },
|
|
41
|
+
},
|
|
42
|
+
project_context: {
|
|
43
|
+
small: { maxLines: 40, maxMatches: 3 },
|
|
44
|
+
medium: { maxLines: 120, maxMatches: 8 },
|
|
45
|
+
large: { maxLines: 500, maxMatches: 20 },
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
// Compressor
|
|
50
|
+
// ---------------------------------------------------------------------------
|
|
51
|
+
let config = {};
|
|
52
|
+
export function configureCompressor(overrides) {
|
|
53
|
+
config = { ...overrides };
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get the effective limits for a given tool and model tier.
|
|
57
|
+
*/
|
|
58
|
+
export function getLimitsForTool(toolName, tier) {
|
|
59
|
+
const base = { ...DEFAULT_LIMITS[tier] };
|
|
60
|
+
// Apply built-in tool-specific overrides
|
|
61
|
+
const toolOverrides = TOOL_SPECIFIC_LIMITS[toolName]?.[tier];
|
|
62
|
+
if (toolOverrides) {
|
|
63
|
+
Object.assign(base, toolOverrides);
|
|
64
|
+
}
|
|
65
|
+
// Apply user-configured overrides
|
|
66
|
+
const userOverrides = config.toolLimits?.[toolName]?.[tier];
|
|
67
|
+
if (userOverrides) {
|
|
68
|
+
Object.assign(base, userOverrides);
|
|
69
|
+
}
|
|
70
|
+
return base;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Compress a tool result's content string for a given model tier.
|
|
74
|
+
* Returns the compressed content string (or original if within limits).
|
|
75
|
+
*/
|
|
76
|
+
export function compressToolResult(toolName, content, tier) {
|
|
77
|
+
if (!content)
|
|
78
|
+
return content;
|
|
79
|
+
// Large tier with no tool-specific limit: pass through
|
|
80
|
+
if (tier === 'large' && !TOOL_SPECIFIC_LIMITS[toolName]?.large?.maxLines) {
|
|
81
|
+
return content;
|
|
82
|
+
}
|
|
83
|
+
const limits = getLimitsForTool(toolName, tier);
|
|
84
|
+
const lines = content.split('\n');
|
|
85
|
+
if (lines.length <= limits.maxLines) {
|
|
86
|
+
return content;
|
|
87
|
+
}
|
|
88
|
+
return truncateLines(lines, limits);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Compress grep/glob search results by limiting match count.
|
|
92
|
+
* Operates on structured content where each match is a block
|
|
93
|
+
* separated by blank lines or a consistent prefix pattern.
|
|
94
|
+
*/
|
|
95
|
+
export function compressSearchResult(toolName, content, tier) {
|
|
96
|
+
if (!content)
|
|
97
|
+
return content;
|
|
98
|
+
const limits = getLimitsForTool(toolName, tier);
|
|
99
|
+
// For grep results: blocks separated by "--" or blank lines
|
|
100
|
+
if (toolName === 'file_grep') {
|
|
101
|
+
return compressGrepOutput(content, limits);
|
|
102
|
+
}
|
|
103
|
+
// For glob results: one file per line
|
|
104
|
+
if (toolName === 'file_glob') {
|
|
105
|
+
return compressFileList(content, limits);
|
|
106
|
+
}
|
|
107
|
+
// For project_context: blocks separated by "---"
|
|
108
|
+
if (toolName === 'project_context') {
|
|
109
|
+
return compressBlockResults(content, limits, '---');
|
|
110
|
+
}
|
|
111
|
+
// Fallback: line-based truncation
|
|
112
|
+
return compressToolResult(toolName, content, tier);
|
|
113
|
+
}
|
|
114
|
+
// ---------------------------------------------------------------------------
|
|
115
|
+
// Internal compression strategies
|
|
116
|
+
// ---------------------------------------------------------------------------
|
|
117
|
+
function truncateLines(lines, limits) {
|
|
118
|
+
if (limits.headTailSplit) {
|
|
119
|
+
const headCount = Math.ceil(limits.maxLines * 0.7);
|
|
120
|
+
const tailCount = limits.maxLines - headCount;
|
|
121
|
+
const head = lines.slice(0, headCount);
|
|
122
|
+
const tail = lines.slice(-tailCount);
|
|
123
|
+
const omitted = lines.length - headCount - tailCount;
|
|
124
|
+
return [...head, `\n... (${omitted} lines omitted) ...\n`, ...tail].join('\n');
|
|
125
|
+
}
|
|
126
|
+
// Head-only truncation
|
|
127
|
+
const head = lines.slice(0, limits.maxLines);
|
|
128
|
+
const omitted = lines.length - limits.maxLines;
|
|
129
|
+
return [...head, `\n... (${omitted} more lines) ...\n`].join('\n');
|
|
130
|
+
}
|
|
131
|
+
function compressGrepOutput(content, limits) {
|
|
132
|
+
// Grep results: "file:line: content" with "--" separators for context groups
|
|
133
|
+
const lines = content.split('\n');
|
|
134
|
+
const matchLines = [];
|
|
135
|
+
let matchCount = 0;
|
|
136
|
+
for (const line of lines) {
|
|
137
|
+
if (matchCount >= limits.maxMatches && !line.startsWith('--') && line.trim()) {
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
// Count actual match lines (not separators or context)
|
|
141
|
+
if (line.trim() && !line.startsWith('--')) {
|
|
142
|
+
matchCount++;
|
|
143
|
+
}
|
|
144
|
+
matchLines.push(line);
|
|
145
|
+
if (matchCount >= limits.maxMatches) {
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Apply line limit on top of match limit
|
|
150
|
+
if (matchLines.length > limits.maxLines) {
|
|
151
|
+
return truncateLines(matchLines, limits);
|
|
152
|
+
}
|
|
153
|
+
const remaining = lines.length - matchLines.length;
|
|
154
|
+
if (remaining > 0) {
|
|
155
|
+
matchLines.push(`\n... (${remaining} more lines, showing first ${limits.maxMatches} matches) ...`);
|
|
156
|
+
}
|
|
157
|
+
return matchLines.join('\n');
|
|
158
|
+
}
|
|
159
|
+
function compressFileList(content, limits) {
|
|
160
|
+
const files = content.split('\n').filter((l) => l.trim());
|
|
161
|
+
if (files.length <= limits.maxMatches) {
|
|
162
|
+
return content;
|
|
163
|
+
}
|
|
164
|
+
const shown = files.slice(0, limits.maxMatches);
|
|
165
|
+
const remaining = files.length - limits.maxMatches;
|
|
166
|
+
return [...shown, `\n... and ${remaining} more files ...`].join('\n');
|
|
167
|
+
}
|
|
168
|
+
function compressBlockResults(content, limits, separator) {
|
|
169
|
+
const blocks = content.split(separator);
|
|
170
|
+
if (blocks.length <= limits.maxMatches) {
|
|
171
|
+
// Still apply line limit
|
|
172
|
+
const lines = content.split('\n');
|
|
173
|
+
if (lines.length <= limits.maxLines)
|
|
174
|
+
return content;
|
|
175
|
+
return truncateLines(lines, limits);
|
|
176
|
+
}
|
|
177
|
+
const shown = blocks.slice(0, limits.maxMatches);
|
|
178
|
+
const remaining = blocks.length - limits.maxMatches;
|
|
179
|
+
return [...shown, `\n... (${remaining} more results) ...\n`].join(separator);
|
|
180
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bm25.d.ts","sourceRoot":"","sources":["../../src/ingestion/bm25.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoFH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"bm25.d.ts","sourceRoot":"","sources":["../../src/ingestion/bm25.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoFH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAUD,qBAAa,IAAI;IACf,OAAO,CAAC,EAAE,CAAO;IACjB,OAAO,CAAC,CAAC,CAAQ;IACjB,OAAO,CAAC,IAAI,CAA+D;IAC3E,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,QAAQ,CAAkC;gBAEtC,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE;IAKjD,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI;IA6BtC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,UAAU,EAAE;CAkC/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cms-indexer.d.ts","sourceRoot":"","sources":["../../src/ingestion/cms-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"cms-indexer.d.ts","sourceRoot":"","sources":["../../src/ingestion/cms-indexer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,sDAAsD;IACtD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAoBD,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,MAAM,EAAE,gBAAgB;IAMpC;;;OAGG;IACG,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CA8BhE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-parsers.d.ts","sourceRoot":"","sources":["../../src/ingestion/file-parsers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"file-parsers.d.ts","sourceRoot":"","sources":["../../src/ingestion/file-parsers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAMD,qBAAa,eAAe;IAC1B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;CAGlC;AAgBD,qBAAa,cAAc;IACzB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;CA6BlC;AAyBD,qBAAa,UAAU;IACrB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;CAclC;AAmED;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAS;IACpB,mFAAmF;IACnF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;IAIjC,iCAAiC;IACjC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG;QAAE,QAAQ,EAAE;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;CAqC9F;AAMD,qBAAa,UAAU;IACrB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW;CASlC;AAMD,MAAM,MAAM,MAAM,GAAG,eAAe,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,SAAS,CAAC;AAE5F,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAgBrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hybrid-search.d.ts","sourceRoot":"","sources":["../../src/ingestion/hybrid-search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"hybrid-search.d.ts","sourceRoot":"","sources":["../../src/ingestion/hybrid-search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAIjF,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC5B,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAID,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,EAChD,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,eAAe,EAAE,CAAC,CA+D5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ingestion/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ingestion/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/ingestion/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/ingestion/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOpD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAcD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,QAAQ,CAA6B;gBAEjC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;IAOtF,MAAM,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IA6EjD,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAa3D,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjD,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;CAiBjB"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Orchestrates: parse → split → embed → store.
|
|
5
5
|
* One document produces N chunks, each with a 768-dim embedding.
|
|
6
6
|
*/
|
|
7
|
-
import { safeVectorInsert } from '@revealui/db/validation';
|
|
8
7
|
import { ragChunks, ragDocuments } from '@revealui/db/schema/rag';
|
|
8
|
+
import { safeVectorInsert } from '@revealui/db/validation';
|
|
9
9
|
import { and, eq } from 'drizzle-orm';
|
|
10
10
|
import { createParser } from './file-parsers.js';
|
|
11
11
|
import { RecursiveCharacterSplitter } from './text-splitter.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rag-vector-service.d.ts","sourceRoot":"","sources":["../../src/ingestion/rag-vector-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"rag-vector-service.d.ts","sourceRoot":"","sources":["../../src/ingestion/rag-vector-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAIrE,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,IAAI,CACZ,WAAW,EACX,IAAI,GAAG,OAAO,GAAG,YAAY,GAAG,kBAAkB,GAAG,UAAU,GAAG,WAAW,CAC9E,CAAC;IACF,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAmD;IAE9D,OAAO,KAAK,EAAE,GAKb;IAED;;;;;OAKG;IACG,aAAa,CACjB,cAAc,EAAE,MAAM,EAAE,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,EAAE,CAAC;IA8E7B;;OAEG;IACG,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;CAOnE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../../src/ingestion/reranker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"reranker.d.ts","sourceRoot":"","sources":["../../src/ingestion/reranker.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI/D,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,EAAE,EACzB,SAAS,EAAE,SAAS,EACpB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,EAAE,CAAC,CAqC5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-splitter.d.ts","sourceRoot":"","sources":["../../src/ingestion/text-splitter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"text-splitter.d.ts","sourceRoot":"","sources":["../../src/ingestion/text-splitter.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AA4ED,qBAAa,0BAA0B;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,YAAiB;IAKtC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,KAAK,EAAE;CAoCzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-utils.d.ts","sourceRoot":"","sources":["../../src/llm/cache-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"cache-utils.d.ts","sourceRoot":"","sources":["../../src/llm/cache-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAKnD;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK9D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,qBAAqB,EAAE,MAAM,GAC5B,MAAM,CAeR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG,MAAM,GAAG,IAAI,CAqBhB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAItE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,GAAG,OAAO,EAAE,CAwBZ;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CAmBpB,CAAC;AAEX;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IACxC,KAAK,EAAE,MAAM,OAAO,iBAAiB,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAwBxE"}
|
package/dist/llm/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAY3F;AAID,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/client.js
CHANGED
|
@@ -437,7 +437,9 @@ export function createLLMClientFromEnv() {
|
|
|
437
437
|
}
|
|
438
438
|
else if (provider === 'ollama') {
|
|
439
439
|
apiKey = 'ollama'; // Ollama ignores the API key
|
|
440
|
-
|
|
440
|
+
// Ollama's OpenAI-compatible endpoint lives at /v1
|
|
441
|
+
const ollamaBase = process.env.OLLAMA_BASE_URL ?? 'http://localhost:11434';
|
|
442
|
+
baseURL = ollamaBase.endsWith('/v1') ? ollamaBase : `${ollamaBase}/v1`;
|
|
441
443
|
defaultModel = 'llama3.2:3b';
|
|
442
444
|
}
|
|
443
445
|
else if (provider === 'bitnet') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key-validator.d.ts","sourceRoot":"","sources":["../../src/llm/key-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,wBAAwB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"key-validator.d.ts","sourceRoot":"","sources":["../../src/llm/key-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,wBAAwB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAezF;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,wBAAwB,CAAC,CAuEnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-health.d.ts","sourceRoot":"","sources":["../../src/llm/provider-health.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"provider-health.d.ts","sourceRoot":"","sources":["../../src/llm/provider-health.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,eAAe,CAAC;IAC1B,qCAAqC;IACrC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAqBD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAiD;IAEhE,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,IAAI;IAUpF;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc;IA4BpD;;;OAGG;IACH,eAAe,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe;IAkB/D;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;CAGvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EAER,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAEV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EAER,MAAM,WAAW,CAAC;AAenB,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oFAAoF;IACpF,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAqDD,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,uBAAuB;IAKrC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IA+F/E,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;IAUpF,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAoGvF;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0B5B;;;OAGG;IACH,OAAO,CAAC,WAAW;IAmBnB,OAAO,CAAC,cAAc;CAkBvB"}
|
|
@@ -89,7 +89,9 @@ export class AnthropicProvider {
|
|
|
89
89
|
const cacheCreationTokens = usage && typeof usage[cacheCreationTokensKey] === 'number'
|
|
90
90
|
? usage[cacheCreationTokensKey]
|
|
91
91
|
: undefined;
|
|
92
|
-
const cacheReadTokens = usage && typeof usage[cacheReadTokensKey] === 'number'
|
|
92
|
+
const cacheReadTokens = usage && typeof usage[cacheReadTokensKey] === 'number'
|
|
93
|
+
? usage[cacheReadTokensKey]
|
|
94
|
+
: undefined;
|
|
93
95
|
const finishReason = typeof data[stopReasonKey] === 'string'
|
|
94
96
|
? data[stopReasonKey]
|
|
95
97
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/base.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bitnet.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/bitnet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"bitnet.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/bitnet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,CAAC;AAGnB,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,EAAE,oBAAoB;IAUxC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAIzE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAIhF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;CAO9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groq.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/groq.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"groq.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/groq.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,CAAC;AAGnB,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAa,YAAW,WAAW;IAC9C,OAAO,CAAC,KAAK,CAAiB;gBAElB,MAAM,EAAE,kBAAkB;IAQtC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAIzE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAIhF,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;CAG9F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inference-snaps.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/inference-snaps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"inference-snaps.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/inference-snaps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,CAAC;AAGnB,MAAM,WAAW,4BAA6B,SAAQ,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,6FAA6F;IAC7F,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,sBAAuB,YAAW,WAAW;IACxD,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,4BAA4B;IAahD,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAIzE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAI1E,KAAK,CACT,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;CAsBpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/llm/providers/ollama.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,eAAe,EACf,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,gBAAgB,EAChB,OAAO,EACR,MAAM,WAAW,CAAC;AAGnB,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,QAAQ,CAAC;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+FAA+F;IAC/F,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,cAAe,YAAW,WAAW;IAChD,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,oBAAoB;IAaxC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;IAIzE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,aAAa,CAAC,QAAQ,CAAC;IAI1E,KAAK,CACT,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,QAAQ,CAAC,EAAE,eAAe,GACzB,OAAO,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC;CAsBpC"}
|