@mcoda/mswarm 0.1.57 → 0.1.61
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 +19 -0
- package/dist/codali-executor.d.ts +278 -0
- package/dist/codali-executor.d.ts.map +1 -0
- package/dist/codali-executor.js +243 -0
- package/dist/codali-executor.js.map +1 -0
- package/dist/runtime.d.ts +46 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +298 -30
- package/dist/runtime.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +66 -1
- package/dist/server.js.map +1 -1
- package/dist/vendor/codali/agents/AgentProtocol.d.ts +287 -0
- package/dist/vendor/codali/agents/AgentProtocol.d.ts.map +1 -0
- package/dist/vendor/codali/agents/AgentProtocol.js +365 -0
- package/dist/vendor/codali/agents/AgentResolver.d.ts +23 -0
- package/dist/vendor/codali/agents/AgentResolver.d.ts.map +1 -0
- package/dist/vendor/codali/agents/AgentResolver.js +77 -0
- package/dist/vendor/codali/agents/PhaseAgentSelector.d.ts +23 -0
- package/dist/vendor/codali/agents/PhaseAgentSelector.d.ts.map +1 -0
- package/dist/vendor/codali/agents/PhaseAgentSelector.js +287 -0
- package/dist/vendor/codali/cli/EvalCommand.d.ts +37 -0
- package/dist/vendor/codali/cli/EvalCommand.d.ts.map +1 -0
- package/dist/vendor/codali/cli/EvalCommand.js +333 -0
- package/dist/vendor/codali/cli/FeedbackCommand.d.ts +22 -0
- package/dist/vendor/codali/cli/FeedbackCommand.d.ts.map +1 -0
- package/dist/vendor/codali/cli/FeedbackCommand.js +163 -0
- package/dist/vendor/codali/cli/RunCommand.d.ts +78 -0
- package/dist/vendor/codali/cli/RunCommand.d.ts.map +1 -0
- package/dist/vendor/codali/cli/RunCommand.js +2261 -0
- package/dist/vendor/codali/cli.d.ts +3 -0
- package/dist/vendor/codali/cli.d.ts.map +1 -0
- package/dist/vendor/codali/cli.js +109 -0
- package/dist/vendor/codali/cognitive/ArchitectPlanner.d.ts +107 -0
- package/dist/vendor/codali/cognitive/ArchitectPlanner.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ArchitectPlanner.js +1726 -0
- package/dist/vendor/codali/cognitive/BuilderOutputParser.d.ts +25 -0
- package/dist/vendor/codali/cognitive/BuilderOutputParser.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/BuilderOutputParser.js +164 -0
- package/dist/vendor/codali/cognitive/BuilderRunner.d.ts +76 -0
- package/dist/vendor/codali/cognitive/BuilderRunner.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/BuilderRunner.js +1159 -0
- package/dist/vendor/codali/cognitive/ContextAssembler.d.ts +91 -0
- package/dist/vendor/codali/cognitive/ContextAssembler.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextAssembler.js +4547 -0
- package/dist/vendor/codali/cognitive/ContextBudget.d.ts +19 -0
- package/dist/vendor/codali/cognitive/ContextBudget.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextBudget.js +35 -0
- package/dist/vendor/codali/cognitive/ContextFileLoader.d.ts +30 -0
- package/dist/vendor/codali/cognitive/ContextFileLoader.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextFileLoader.js +307 -0
- package/dist/vendor/codali/cognitive/ContextManager.d.ts +47 -0
- package/dist/vendor/codali/cognitive/ContextManager.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextManager.js +272 -0
- package/dist/vendor/codali/cognitive/ContextRedactor.d.ts +18 -0
- package/dist/vendor/codali/cognitive/ContextRedactor.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextRedactor.js +53 -0
- package/dist/vendor/codali/cognitive/ContextSelector.d.ts +22 -0
- package/dist/vendor/codali/cognitive/ContextSelector.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextSelector.js +431 -0
- package/dist/vendor/codali/cognitive/ContextSerializer.d.ts +8 -0
- package/dist/vendor/codali/cognitive/ContextSerializer.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextSerializer.js +882 -0
- package/dist/vendor/codali/cognitive/ContextStore.d.ts +27 -0
- package/dist/vendor/codali/cognitive/ContextStore.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextStore.js +79 -0
- package/dist/vendor/codali/cognitive/ContextSummarizer.d.ts +16 -0
- package/dist/vendor/codali/cognitive/ContextSummarizer.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ContextSummarizer.js +45 -0
- package/dist/vendor/codali/cognitive/CostEstimator.d.ts +31 -0
- package/dist/vendor/codali/cognitive/CostEstimator.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/CostEstimator.js +66 -0
- package/dist/vendor/codali/cognitive/CriticEvaluator.d.ts +32 -0
- package/dist/vendor/codali/cognitive/CriticEvaluator.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/CriticEvaluator.js +297 -0
- package/dist/vendor/codali/cognitive/EvidenceGate.d.ts +9 -0
- package/dist/vendor/codali/cognitive/EvidenceGate.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/EvidenceGate.js +75 -0
- package/dist/vendor/codali/cognitive/GoldenExampleIndexer.d.ts +12 -0
- package/dist/vendor/codali/cognitive/GoldenExampleIndexer.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/GoldenExampleIndexer.js +34 -0
- package/dist/vendor/codali/cognitive/GoldenSetStore.d.ts +33 -0
- package/dist/vendor/codali/cognitive/GoldenSetStore.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/GoldenSetStore.js +159 -0
- package/dist/vendor/codali/cognitive/IntentSignals.d.ts +7 -0
- package/dist/vendor/codali/cognitive/IntentSignals.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/IntentSignals.js +285 -0
- package/dist/vendor/codali/cognitive/LearningGovernance.d.ts +100 -0
- package/dist/vendor/codali/cognitive/LearningGovernance.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/LearningGovernance.js +276 -0
- package/dist/vendor/codali/cognitive/MemoryWriteback.d.ts +64 -0
- package/dist/vendor/codali/cognitive/MemoryWriteback.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/MemoryWriteback.js +287 -0
- package/dist/vendor/codali/cognitive/PatchApplier.d.ts +49 -0
- package/dist/vendor/codali/cognitive/PatchApplier.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/PatchApplier.js +199 -0
- package/dist/vendor/codali/cognitive/PatchInterpreter.d.ts +35 -0
- package/dist/vendor/codali/cognitive/PatchInterpreter.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/PatchInterpreter.js +100 -0
- package/dist/vendor/codali/cognitive/PatchOutputNormalizer.d.ts +7 -0
- package/dist/vendor/codali/cognitive/PatchOutputNormalizer.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/PatchOutputNormalizer.js +59 -0
- package/dist/vendor/codali/cognitive/PostMortemAnalyzer.d.ts +17 -0
- package/dist/vendor/codali/cognitive/PostMortemAnalyzer.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/PostMortemAnalyzer.js +131 -0
- package/dist/vendor/codali/cognitive/PreferenceExtraction.d.ts +3 -0
- package/dist/vendor/codali/cognitive/PreferenceExtraction.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/PreferenceExtraction.js +85 -0
- package/dist/vendor/codali/cognitive/Prompts.d.ts +15 -0
- package/dist/vendor/codali/cognitive/Prompts.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/Prompts.js +326 -0
- package/dist/vendor/codali/cognitive/ProviderRouting.d.ts +16 -0
- package/dist/vendor/codali/cognitive/ProviderRouting.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ProviderRouting.js +24 -0
- package/dist/vendor/codali/cognitive/QueryExtraction.d.ts +12 -0
- package/dist/vendor/codali/cognitive/QueryExtraction.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/QueryExtraction.js +262 -0
- package/dist/vendor/codali/cognitive/RunHistoryIndexer.d.ts +13 -0
- package/dist/vendor/codali/cognitive/RunHistoryIndexer.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/RunHistoryIndexer.js +125 -0
- package/dist/vendor/codali/cognitive/SmartPipeline.d.ts +92 -0
- package/dist/vendor/codali/cognitive/SmartPipeline.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/SmartPipeline.js +4804 -0
- package/dist/vendor/codali/cognitive/Types.d.ts +474 -0
- package/dist/vendor/codali/cognitive/Types.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/Types.js +7 -0
- package/dist/vendor/codali/cognitive/ValidationRunner.d.ts +57 -0
- package/dist/vendor/codali/cognitive/ValidationRunner.d.ts.map +1 -0
- package/dist/vendor/codali/cognitive/ValidationRunner.js +515 -0
- package/dist/vendor/codali/config/Config.d.ts +249 -0
- package/dist/vendor/codali/config/Config.d.ts.map +1 -0
- package/dist/vendor/codali/config/Config.js +200 -0
- package/dist/vendor/codali/config/ConfigLoader.d.ts +56 -0
- package/dist/vendor/codali/config/ConfigLoader.d.ts.map +1 -0
- package/dist/vendor/codali/config/ConfigLoader.js +1246 -0
- package/dist/vendor/codali/docdex/DocdexClient.d.ts +158 -0
- package/dist/vendor/codali/docdex/DocdexClient.d.ts.map +1 -0
- package/dist/vendor/codali/docdex/DocdexClient.js +785 -0
- package/dist/vendor/codali/eval/EvalRunner.d.ts +35 -0
- package/dist/vendor/codali/eval/EvalRunner.d.ts.map +1 -0
- package/dist/vendor/codali/eval/EvalRunner.js +38 -0
- package/dist/vendor/codali/eval/EvalTaskExecutor.d.ts +81 -0
- package/dist/vendor/codali/eval/EvalTaskExecutor.d.ts.map +1 -0
- package/dist/vendor/codali/eval/EvalTaskExecutor.js +371 -0
- package/dist/vendor/codali/eval/GateEvaluator.d.ts +31 -0
- package/dist/vendor/codali/eval/GateEvaluator.d.ts.map +1 -0
- package/dist/vendor/codali/eval/GateEvaluator.js +134 -0
- package/dist/vendor/codali/eval/MetricTypes.d.ts +28 -0
- package/dist/vendor/codali/eval/MetricTypes.d.ts.map +1 -0
- package/dist/vendor/codali/eval/MetricTypes.js +1 -0
- package/dist/vendor/codali/eval/MetricsAggregator.d.ts +4 -0
- package/dist/vendor/codali/eval/MetricsAggregator.d.ts.map +1 -0
- package/dist/vendor/codali/eval/MetricsAggregator.js +97 -0
- package/dist/vendor/codali/eval/RegressionComparator.d.ts +29 -0
- package/dist/vendor/codali/eval/RegressionComparator.d.ts.map +1 -0
- package/dist/vendor/codali/eval/RegressionComparator.js +155 -0
- package/dist/vendor/codali/eval/ReportInputAdapter.d.ts +52 -0
- package/dist/vendor/codali/eval/ReportInputAdapter.d.ts.map +1 -0
- package/dist/vendor/codali/eval/ReportInputAdapter.js +229 -0
- package/dist/vendor/codali/eval/ReportSerializer.d.ts +32 -0
- package/dist/vendor/codali/eval/ReportSerializer.d.ts.map +1 -0
- package/dist/vendor/codali/eval/ReportSerializer.js +33 -0
- package/dist/vendor/codali/eval/ReportStore.d.ts +18 -0
- package/dist/vendor/codali/eval/ReportStore.d.ts.map +1 -0
- package/dist/vendor/codali/eval/ReportStore.js +96 -0
- package/dist/vendor/codali/eval/SuiteLoader.d.ts +12 -0
- package/dist/vendor/codali/eval/SuiteLoader.d.ts.map +1 -0
- package/dist/vendor/codali/eval/SuiteLoader.js +51 -0
- package/dist/vendor/codali/eval/SuiteSchema.d.ts +56 -0
- package/dist/vendor/codali/eval/SuiteSchema.d.ts.map +1 -0
- package/dist/vendor/codali/eval/SuiteSchema.js +357 -0
- package/dist/vendor/codali/index.d.ts +11 -0
- package/dist/vendor/codali/index.d.ts.map +1 -0
- package/dist/vendor/codali/index.js +5 -0
- package/dist/vendor/codali/providers/CodexCliProvider.d.ts +8 -0
- package/dist/vendor/codali/providers/CodexCliProvider.d.ts.map +1 -0
- package/dist/vendor/codali/providers/CodexCliProvider.js +282 -0
- package/dist/vendor/codali/providers/OllamaRemoteProvider.d.ts +8 -0
- package/dist/vendor/codali/providers/OllamaRemoteProvider.d.ts.map +1 -0
- package/dist/vendor/codali/providers/OllamaRemoteProvider.js +300 -0
- package/dist/vendor/codali/providers/OpenAiCompatibleProvider.d.ts +8 -0
- package/dist/vendor/codali/providers/OpenAiCompatibleProvider.d.ts.map +1 -0
- package/dist/vendor/codali/providers/OpenAiCompatibleProvider.js +192 -0
- package/dist/vendor/codali/providers/ProviderRegistry.d.ts +12 -0
- package/dist/vendor/codali/providers/ProviderRegistry.d.ts.map +1 -0
- package/dist/vendor/codali/providers/ProviderRegistry.js +28 -0
- package/dist/vendor/codali/providers/ProviderTypes.d.ts +81 -0
- package/dist/vendor/codali/providers/ProviderTypes.d.ts.map +1 -0
- package/dist/vendor/codali/providers/ProviderTypes.js +1 -0
- package/dist/vendor/codali/runtime/CodaliRuntime.d.ts +189 -0
- package/dist/vendor/codali/runtime/CodaliRuntime.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/CodaliRuntime.js +1435 -0
- package/dist/vendor/codali/runtime/DeepInvestigationErrors.d.ts +39 -0
- package/dist/vendor/codali/runtime/DeepInvestigationErrors.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/DeepInvestigationErrors.js +57 -0
- package/dist/vendor/codali/runtime/RunContext.d.ts +27 -0
- package/dist/vendor/codali/runtime/RunContext.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/RunContext.js +51 -0
- package/dist/vendor/codali/runtime/RunLogQuery.d.ts +48 -0
- package/dist/vendor/codali/runtime/RunLogQuery.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/RunLogQuery.js +36 -0
- package/dist/vendor/codali/runtime/RunLogReader.d.ts +19 -0
- package/dist/vendor/codali/runtime/RunLogReader.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/RunLogReader.js +361 -0
- package/dist/vendor/codali/runtime/RunLogger.d.ts +71 -0
- package/dist/vendor/codali/runtime/RunLogger.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/RunLogger.js +100 -0
- package/dist/vendor/codali/runtime/RunTelemetryTypes.d.ts +117 -0
- package/dist/vendor/codali/runtime/RunTelemetryTypes.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/RunTelemetryTypes.js +299 -0
- package/dist/vendor/codali/runtime/Runner.d.ts +66 -0
- package/dist/vendor/codali/runtime/Runner.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/Runner.js +215 -0
- package/dist/vendor/codali/runtime/StoragePaths.d.ts +3 -0
- package/dist/vendor/codali/runtime/StoragePaths.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/StoragePaths.js +19 -0
- package/dist/vendor/codali/runtime/WorkspaceLock.d.ts +30 -0
- package/dist/vendor/codali/runtime/WorkspaceLock.d.ts.map +1 -0
- package/dist/vendor/codali/runtime/WorkspaceLock.js +141 -0
- package/dist/vendor/codali/session/InstructionLoader.d.ts +14 -0
- package/dist/vendor/codali/session/InstructionLoader.d.ts.map +1 -0
- package/dist/vendor/codali/session/InstructionLoader.js +107 -0
- package/dist/vendor/codali/session/SessionStore.d.ts +81 -0
- package/dist/vendor/codali/session/SessionStore.d.ts.map +1 -0
- package/dist/vendor/codali/session/SessionStore.js +244 -0
- package/dist/vendor/codali/subagents/SubagentOrchestrator.d.ts +68 -0
- package/dist/vendor/codali/subagents/SubagentOrchestrator.d.ts.map +1 -0
- package/dist/vendor/codali/subagents/SubagentOrchestrator.js +150 -0
- package/dist/vendor/codali/tools/ToolRegistry.d.ts +9 -0
- package/dist/vendor/codali/tools/ToolRegistry.d.ts.map +1 -0
- package/dist/vendor/codali/tools/ToolRegistry.js +293 -0
- package/dist/vendor/codali/tools/ToolTypes.d.ts +66 -0
- package/dist/vendor/codali/tools/ToolTypes.d.ts.map +1 -0
- package/dist/vendor/codali/tools/ToolTypes.js +40 -0
- package/dist/vendor/codali/tools/diff/DiffTool.d.ts +3 -0
- package/dist/vendor/codali/tools/diff/DiffTool.d.ts.map +1 -0
- package/dist/vendor/codali/tools/diff/DiffTool.js +34 -0
- package/dist/vendor/codali/tools/docdex/DocdexTools.d.ts +4 -0
- package/dist/vendor/codali/tools/docdex/DocdexTools.d.ts.map +1 -0
- package/dist/vendor/codali/tools/docdex/DocdexTools.js +490 -0
- package/dist/vendor/codali/tools/filesystem/FileTools.d.ts +3 -0
- package/dist/vendor/codali/tools/filesystem/FileTools.d.ts.map +1 -0
- package/dist/vendor/codali/tools/filesystem/FileTools.js +141 -0
- package/dist/vendor/codali/tools/search/SearchTool.d.ts +3 -0
- package/dist/vendor/codali/tools/search/SearchTool.d.ts.map +1 -0
- package/dist/vendor/codali/tools/search/SearchTool.js +46 -0
- package/dist/vendor/codali/tools/shell/ShellTool.d.ts +3 -0
- package/dist/vendor/codali/tools/shell/ShellTool.d.ts.map +1 -0
- package/dist/vendor/codali/tools/shell/ShellTool.js +104 -0
- package/package.json +5 -3
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ProviderMessage } from "../providers/ProviderTypes.js";
|
|
2
|
+
export interface BudgetEstimate {
|
|
3
|
+
totalTokens: number;
|
|
4
|
+
systemTokens: number;
|
|
5
|
+
bundleTokens: number;
|
|
6
|
+
historyTokens: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const DEFAULT_CHAR_PER_TOKEN = 4;
|
|
9
|
+
export declare const DEFAULT_MODEL_TOKEN_LIMIT = 8192;
|
|
10
|
+
export declare const estimateTokens: (text: string, charPerToken?: number) => number;
|
|
11
|
+
export declare const estimateMessagesTokens: (messages: ProviderMessage[], charPerToken?: number) => number;
|
|
12
|
+
export declare const estimateBudget: (input: {
|
|
13
|
+
systemPrompt?: string;
|
|
14
|
+
bundle?: string;
|
|
15
|
+
history?: ProviderMessage[];
|
|
16
|
+
charPerToken?: number;
|
|
17
|
+
}) => BudgetEstimate;
|
|
18
|
+
export declare const resolveModelTokenLimit: (model: string, overrides?: Record<string, number>, fallback?: number) => number;
|
|
19
|
+
//# sourceMappingURL=ContextBudget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextBudget.d.ts","sourceRoot":"","sources":["../../src/cognitive/ContextBudget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAE9C,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,eAAc,MAA+B,KAAG,MAM5F,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,eAAe,EAAE,EAC3B,eAAc,MAA+B,KAC5C,MAA6G,CAAC;AAEjH,eAAO,MAAM,cAAc,GAAI,OAAO;IACpC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,KAAG,cAWH,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,OAAO,MAAM,EACb,YAAW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EACtC,WAAU,MAAkC,KAC3C,MAQF,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export const DEFAULT_CHAR_PER_TOKEN = 4;
|
|
2
|
+
export const DEFAULT_MODEL_TOKEN_LIMIT = 8192;
|
|
3
|
+
export const estimateTokens = (text, charPerToken = DEFAULT_CHAR_PER_TOKEN) => {
|
|
4
|
+
if (!text)
|
|
5
|
+
return 0;
|
|
6
|
+
if (charPerToken <= 0) {
|
|
7
|
+
throw new Error("charPerToken must be greater than zero");
|
|
8
|
+
}
|
|
9
|
+
return Math.ceil(text.length / charPerToken);
|
|
10
|
+
};
|
|
11
|
+
export const estimateMessagesTokens = (messages, charPerToken = DEFAULT_CHAR_PER_TOKEN) => messages.reduce((total, message) => total + estimateTokens(message.content ?? "", charPerToken), 0);
|
|
12
|
+
export const estimateBudget = (input) => {
|
|
13
|
+
const charPerToken = input.charPerToken ?? DEFAULT_CHAR_PER_TOKEN;
|
|
14
|
+
const systemTokens = estimateTokens(input.systemPrompt ?? "", charPerToken);
|
|
15
|
+
const bundleTokens = estimateTokens(input.bundle ?? "", charPerToken);
|
|
16
|
+
const historyTokens = input.history ? estimateMessagesTokens(input.history, charPerToken) : 0;
|
|
17
|
+
return {
|
|
18
|
+
totalTokens: systemTokens + bundleTokens + historyTokens,
|
|
19
|
+
systemTokens,
|
|
20
|
+
bundleTokens,
|
|
21
|
+
historyTokens,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export const resolveModelTokenLimit = (model, overrides = {}, fallback = DEFAULT_MODEL_TOKEN_LIMIT) => {
|
|
25
|
+
if (!model)
|
|
26
|
+
return fallback;
|
|
27
|
+
const direct = overrides[model];
|
|
28
|
+
if (direct)
|
|
29
|
+
return direct;
|
|
30
|
+
const base = model.split(":")[0];
|
|
31
|
+
const baseMatch = overrides[base];
|
|
32
|
+
if (baseMatch)
|
|
33
|
+
return baseMatch;
|
|
34
|
+
return fallback;
|
|
35
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DocdexClient } from "../docdex/DocdexClient.js";
|
|
2
|
+
import type { ContextFileEntry } from "./Types.js";
|
|
3
|
+
import type { ContextRedactor } from "./ContextRedactor.js";
|
|
4
|
+
export interface ContextFileLoaderOptions {
|
|
5
|
+
workspaceRoot: string;
|
|
6
|
+
readStrategy: "docdex" | "fs";
|
|
7
|
+
focusMaxFileBytes: number;
|
|
8
|
+
peripheryMaxBytes: number;
|
|
9
|
+
skeletonizeLargeFiles: boolean;
|
|
10
|
+
redactor?: ContextRedactor;
|
|
11
|
+
}
|
|
12
|
+
export declare class ContextFileLoader {
|
|
13
|
+
private client;
|
|
14
|
+
private options;
|
|
15
|
+
readonly ignoredPaths: string[];
|
|
16
|
+
readonly loadErrors: Array<{
|
|
17
|
+
path: string;
|
|
18
|
+
role: "focus" | "periphery";
|
|
19
|
+
error: string;
|
|
20
|
+
}>;
|
|
21
|
+
redactionCount: number;
|
|
22
|
+
constructor(client: DocdexClient, options: ContextFileLoaderOptions);
|
|
23
|
+
loadFocus(paths: string[]): Promise<ContextFileEntry[]>;
|
|
24
|
+
loadPeriphery(paths: string[]): Promise<ContextFileEntry[]>;
|
|
25
|
+
private recordLoadError;
|
|
26
|
+
private safeSymbols;
|
|
27
|
+
private safeAstRange;
|
|
28
|
+
private readContent;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=ContextFileLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextFileLoader.d.ts","sourceRoot":"","sources":["../../src/cognitive/ContextFileLoader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B;AAuID,qBAAa,iBAAiB;IAKhB,OAAO,CAAC,MAAM;IAAgB,OAAO,CAAC,OAAO;IAJzD,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAM;IACrC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAM;IAC9F,cAAc,SAAK;gBAEC,MAAM,EAAE,YAAY,EAAU,OAAO,EAAE,wBAAwB;IAE7E,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA+DvD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA0DjE,OAAO,CAAC,eAAe;YAST,WAAW;YASX,YAAY;YASZ,WAAW;CAe1B"}
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
const normalizePath = (workspaceRoot, targetPath) => {
|
|
4
|
+
const resolved = path.resolve(workspaceRoot, targetPath);
|
|
5
|
+
const relative = path.relative(workspaceRoot, resolved);
|
|
6
|
+
if (relative.startsWith("..") || path.isAbsolute(relative)) {
|
|
7
|
+
throw new Error("Path is outside workspace root");
|
|
8
|
+
}
|
|
9
|
+
return resolved;
|
|
10
|
+
};
|
|
11
|
+
const estimateTokens = (content) => {
|
|
12
|
+
return Math.max(1, Math.ceil(content.length / 4));
|
|
13
|
+
};
|
|
14
|
+
const DOC_EXTENSIONS = new Set([".md", ".mdx", ".rst", ".txt"]);
|
|
15
|
+
const isDocPath = (value) => {
|
|
16
|
+
const normalized = value.replace(/\\\\/g, "/").toLowerCase();
|
|
17
|
+
if (normalized.startsWith("docs/"))
|
|
18
|
+
return true;
|
|
19
|
+
const ext = path.extname(normalized);
|
|
20
|
+
if (!ext)
|
|
21
|
+
return false;
|
|
22
|
+
return DOC_EXTENSIONS.has(ext);
|
|
23
|
+
};
|
|
24
|
+
const readLineValue = (value) => {
|
|
25
|
+
if (typeof value === "number" && Number.isFinite(value))
|
|
26
|
+
return value;
|
|
27
|
+
if (value && typeof value === "object" && "line" in value) {
|
|
28
|
+
const line = value.line;
|
|
29
|
+
if (typeof line === "number" && Number.isFinite(line))
|
|
30
|
+
return line;
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
};
|
|
34
|
+
const findAstRange = (payload) => {
|
|
35
|
+
if (!payload || typeof payload !== "object")
|
|
36
|
+
return undefined;
|
|
37
|
+
const nodes = payload.nodes;
|
|
38
|
+
if (!Array.isArray(nodes))
|
|
39
|
+
return undefined;
|
|
40
|
+
const ranges = [];
|
|
41
|
+
for (const node of nodes) {
|
|
42
|
+
if (!node || typeof node !== "object")
|
|
43
|
+
continue;
|
|
44
|
+
const record = node;
|
|
45
|
+
const start = readLineValue(record.start_line) ??
|
|
46
|
+
readLineValue(record.startLine) ??
|
|
47
|
+
readLineValue(record.start);
|
|
48
|
+
const end = readLineValue(record.end_line) ??
|
|
49
|
+
readLineValue(record.endLine) ??
|
|
50
|
+
readLineValue(record.end);
|
|
51
|
+
if (typeof start === "number" && typeof end === "number" && end >= start) {
|
|
52
|
+
ranges.push({ start, end });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
if (!ranges.length)
|
|
56
|
+
return undefined;
|
|
57
|
+
return ranges.reduce((best, current) => {
|
|
58
|
+
const bestSpan = best.end - best.start;
|
|
59
|
+
const currentSpan = current.end - current.start;
|
|
60
|
+
return currentSpan < bestSpan ? current : best;
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
const buildSkeleton = (content, maxBytes, symbols, forceTruncate = false) => {
|
|
64
|
+
const needsSlice = content.length > maxBytes;
|
|
65
|
+
if (!needsSlice && !forceTruncate)
|
|
66
|
+
return content;
|
|
67
|
+
const sliceSize = Math.max(1, Math.floor(maxBytes / 3));
|
|
68
|
+
const head = needsSlice ? content.slice(0, sliceSize) : content;
|
|
69
|
+
const middleStart = Math.max(0, Math.floor(content.length / 2) - Math.floor(sliceSize / 2));
|
|
70
|
+
const middle = needsSlice ? content.slice(middleStart, middleStart + sliceSize) : "";
|
|
71
|
+
const tail = needsSlice ? content.slice(-sliceSize) : "";
|
|
72
|
+
const separator = "\n/* ...truncated... */\n";
|
|
73
|
+
const symbolBlock = symbols ? `\n/* symbols */\n${symbols}` : "";
|
|
74
|
+
if (!needsSlice) {
|
|
75
|
+
return `${content}${separator}${symbolBlock}`;
|
|
76
|
+
}
|
|
77
|
+
return `${head}${separator}${middle}${separator}${tail}${symbolBlock}`;
|
|
78
|
+
};
|
|
79
|
+
const truncateWithMarker = (content, maxBytes) => {
|
|
80
|
+
if (content.length <= maxBytes)
|
|
81
|
+
return content;
|
|
82
|
+
const marker = "\n/* ...truncated... */\n";
|
|
83
|
+
if (maxBytes <= marker.length) {
|
|
84
|
+
return content.slice(0, maxBytes);
|
|
85
|
+
}
|
|
86
|
+
return `${content.slice(0, maxBytes - marker.length)}${marker}`;
|
|
87
|
+
};
|
|
88
|
+
const toStringPayload = (payload) => {
|
|
89
|
+
if (typeof payload === "string")
|
|
90
|
+
return payload;
|
|
91
|
+
try {
|
|
92
|
+
return JSON.stringify(payload, null, 2);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return String(payload);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const extractDocdexOpenContent = (payload) => {
|
|
99
|
+
if (typeof payload === "string")
|
|
100
|
+
return payload;
|
|
101
|
+
if (!payload || typeof payload !== "object")
|
|
102
|
+
return undefined;
|
|
103
|
+
const record = payload;
|
|
104
|
+
if (typeof record.content === "string")
|
|
105
|
+
return record.content;
|
|
106
|
+
if (typeof record.text === "string")
|
|
107
|
+
return record.text;
|
|
108
|
+
if (record.snippet && typeof record.snippet.text === "string")
|
|
109
|
+
return record.snippet.text;
|
|
110
|
+
if (record.data && typeof record.data.content === "string")
|
|
111
|
+
return record.data.content;
|
|
112
|
+
if (record.data && typeof record.data.text === "string")
|
|
113
|
+
return record.data.text;
|
|
114
|
+
if (record.file && typeof record.file.content === "string")
|
|
115
|
+
return record.file.content;
|
|
116
|
+
if (record.file && typeof record.file.text === "string")
|
|
117
|
+
return record.file.text;
|
|
118
|
+
if (Array.isArray(record.lines)) {
|
|
119
|
+
const lines = record.lines
|
|
120
|
+
.map((line) => {
|
|
121
|
+
if (typeof line === "string")
|
|
122
|
+
return line;
|
|
123
|
+
if (!line || typeof line !== "object")
|
|
124
|
+
return "";
|
|
125
|
+
const row = line;
|
|
126
|
+
if (typeof row.text === "string")
|
|
127
|
+
return row.text;
|
|
128
|
+
if (typeof row.content === "string")
|
|
129
|
+
return row.content;
|
|
130
|
+
return "";
|
|
131
|
+
})
|
|
132
|
+
.filter((line) => line.length > 0);
|
|
133
|
+
if (lines.length > 0)
|
|
134
|
+
return lines.join("\n");
|
|
135
|
+
}
|
|
136
|
+
return undefined;
|
|
137
|
+
};
|
|
138
|
+
export class ContextFileLoader {
|
|
139
|
+
constructor(client, options) {
|
|
140
|
+
this.client = client;
|
|
141
|
+
this.options = options;
|
|
142
|
+
this.ignoredPaths = [];
|
|
143
|
+
this.loadErrors = [];
|
|
144
|
+
this.redactionCount = 0;
|
|
145
|
+
}
|
|
146
|
+
async loadFocus(paths) {
|
|
147
|
+
const results = [];
|
|
148
|
+
for (const filePath of paths) {
|
|
149
|
+
if (this.options.redactor?.shouldIgnore(filePath)) {
|
|
150
|
+
this.ignoredPaths.push(filePath);
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
const resolved = normalizePath(this.options.workspaceRoot, filePath);
|
|
155
|
+
const stats = await fs.stat(resolved);
|
|
156
|
+
const size = stats.size;
|
|
157
|
+
const content = await this.readContent(filePath, this.options.focusMaxFileBytes);
|
|
158
|
+
let truncated = false;
|
|
159
|
+
let sliceStrategy = "full";
|
|
160
|
+
let finalContent = content;
|
|
161
|
+
let redactions = 0;
|
|
162
|
+
const warnings = [];
|
|
163
|
+
if (size > this.options.focusMaxFileBytes) {
|
|
164
|
+
truncated = true;
|
|
165
|
+
const symbols = await this.safeSymbols(filePath);
|
|
166
|
+
const astRange = await this.safeAstRange(filePath);
|
|
167
|
+
if (this.options.skeletonizeLargeFiles) {
|
|
168
|
+
const astHint = astRange
|
|
169
|
+
? `/* ast_focus lines ${astRange.start}-${astRange.end} */\n`
|
|
170
|
+
: "";
|
|
171
|
+
sliceStrategy = astRange ? "head_middle_tail_ast_hint" : "head_middle_tail";
|
|
172
|
+
finalContent =
|
|
173
|
+
`${astHint}${buildSkeleton(content, this.options.focusMaxFileBytes, symbols, true)}`;
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
sliceStrategy = "head";
|
|
177
|
+
finalContent = truncateWithMarker(content, this.options.focusMaxFileBytes);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
if (this.options.redactor) {
|
|
181
|
+
const redacted = this.options.redactor.redact(finalContent);
|
|
182
|
+
finalContent = redacted.content;
|
|
183
|
+
redactions = redacted.redactions;
|
|
184
|
+
if (redactions > 0) {
|
|
185
|
+
warnings.push("redacted");
|
|
186
|
+
this.redactionCount += redactions;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// no-op: keep readable branch for clarity
|
|
191
|
+
}
|
|
192
|
+
results.push({
|
|
193
|
+
path: filePath,
|
|
194
|
+
role: "focus",
|
|
195
|
+
content: finalContent,
|
|
196
|
+
size,
|
|
197
|
+
truncated,
|
|
198
|
+
sliceStrategy,
|
|
199
|
+
origin: this.options.readStrategy === "docdex" ? "docdex" : "fs",
|
|
200
|
+
token_estimate: estimateTokens(finalContent),
|
|
201
|
+
warnings: warnings.length ? warnings : undefined,
|
|
202
|
+
redactions: redactions || undefined,
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
this.recordLoadError(filePath, "focus", error);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return results;
|
|
210
|
+
}
|
|
211
|
+
async loadPeriphery(paths) {
|
|
212
|
+
const results = [];
|
|
213
|
+
for (const filePath of paths) {
|
|
214
|
+
if (this.options.redactor?.shouldIgnore(filePath)) {
|
|
215
|
+
this.ignoredPaths.push(filePath);
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
try {
|
|
219
|
+
const docFile = isDocPath(filePath);
|
|
220
|
+
const symbols = docFile ? "" : await this.safeSymbols(filePath);
|
|
221
|
+
let content = docFile
|
|
222
|
+
? await this.readContent(filePath, this.options.peripheryMaxBytes)
|
|
223
|
+
: symbols ?? "";
|
|
224
|
+
const warnings = [];
|
|
225
|
+
let redactions = 0;
|
|
226
|
+
let truncated = false;
|
|
227
|
+
if (this.options.redactor) {
|
|
228
|
+
const redacted = this.options.redactor.redact(content);
|
|
229
|
+
content = redacted.content;
|
|
230
|
+
redactions = redacted.redactions;
|
|
231
|
+
if (redactions > 0) {
|
|
232
|
+
warnings.push("redacted");
|
|
233
|
+
this.redactionCount += redactions;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
if (content.length > this.options.peripheryMaxBytes) {
|
|
237
|
+
truncated = true;
|
|
238
|
+
content = truncateWithMarker(content, this.options.peripheryMaxBytes);
|
|
239
|
+
}
|
|
240
|
+
results.push({
|
|
241
|
+
path: filePath,
|
|
242
|
+
role: "periphery",
|
|
243
|
+
content,
|
|
244
|
+
size: content.length,
|
|
245
|
+
truncated,
|
|
246
|
+
sliceStrategy: docFile
|
|
247
|
+
? truncated
|
|
248
|
+
? "doc_truncated"
|
|
249
|
+
: "doc_full"
|
|
250
|
+
: truncated
|
|
251
|
+
? "symbols_truncated"
|
|
252
|
+
: "symbols",
|
|
253
|
+
origin: docFile
|
|
254
|
+
? this.options.readStrategy === "docdex"
|
|
255
|
+
? "docdex"
|
|
256
|
+
: "fs"
|
|
257
|
+
: "docdex",
|
|
258
|
+
token_estimate: estimateTokens(content),
|
|
259
|
+
warnings: warnings.length ? warnings : undefined,
|
|
260
|
+
redactions: redactions || undefined,
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
this.recordLoadError(filePath, "periphery", error);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return results;
|
|
268
|
+
}
|
|
269
|
+
recordLoadError(filePath, role, error) {
|
|
270
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
271
|
+
this.loadErrors.push({ path: filePath, role, error: message });
|
|
272
|
+
}
|
|
273
|
+
async safeSymbols(filePath) {
|
|
274
|
+
try {
|
|
275
|
+
const result = await this.client.symbols(filePath);
|
|
276
|
+
return toStringPayload(result);
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
return "";
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
async safeAstRange(filePath) {
|
|
283
|
+
try {
|
|
284
|
+
const result = await this.client.ast(filePath);
|
|
285
|
+
return findAstRange(result);
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
return undefined;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
async readContent(filePath, _maxBytes) {
|
|
292
|
+
if (this.options.readStrategy === "docdex") {
|
|
293
|
+
try {
|
|
294
|
+
const result = await this.client.openFile(filePath, { clamp: true });
|
|
295
|
+
const extracted = extractDocdexOpenContent(result);
|
|
296
|
+
if (typeof extracted === "string" && extracted.trim().length > 0) {
|
|
297
|
+
return extracted;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
// fallback to fs
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
const resolved = normalizePath(this.options.workspaceRoot, filePath);
|
|
305
|
+
return fs.readFile(resolved, "utf8");
|
|
306
|
+
}
|
|
307
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ProviderMessage } from "../providers/ProviderTypes.js";
|
|
2
|
+
import type { RunLogger } from "../runtime/RunLogger.js";
|
|
3
|
+
import type { ContextLane, ContextLaneRole, LaneScope, LocalContextConfig } from "./Types.js";
|
|
4
|
+
import { ContextStore } from "./ContextStore.js";
|
|
5
|
+
import { ContextRedactor } from "./ContextRedactor.js";
|
|
6
|
+
import { ContextSummarizer } from "./ContextSummarizer.js";
|
|
7
|
+
export interface ContextManagerOptions {
|
|
8
|
+
config: LocalContextConfig;
|
|
9
|
+
store: ContextStore;
|
|
10
|
+
redactor?: ContextRedactor;
|
|
11
|
+
summarizer?: ContextSummarizer;
|
|
12
|
+
logger?: RunLogger;
|
|
13
|
+
charPerToken?: number;
|
|
14
|
+
}
|
|
15
|
+
export declare const buildLaneId: (scope: LaneScope) => string;
|
|
16
|
+
export declare class ContextManager {
|
|
17
|
+
private options;
|
|
18
|
+
private lanes;
|
|
19
|
+
private enabled;
|
|
20
|
+
private charPerToken;
|
|
21
|
+
constructor(options: ContextManagerOptions);
|
|
22
|
+
getLane(scope: LaneScope): Promise<ContextLane>;
|
|
23
|
+
append(laneId: string, message: ProviderMessage, meta?: {
|
|
24
|
+
model?: string;
|
|
25
|
+
tokens?: number;
|
|
26
|
+
role?: ContextLaneRole;
|
|
27
|
+
persisted?: boolean;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
prepare(laneId: string, options?: {
|
|
30
|
+
systemPrompt?: string;
|
|
31
|
+
bundle?: string;
|
|
32
|
+
model?: string;
|
|
33
|
+
}): Promise<ProviderMessage[]>;
|
|
34
|
+
summarizeIfNeeded(laneId: string, options?: {
|
|
35
|
+
systemPrompt?: string;
|
|
36
|
+
bundle?: string;
|
|
37
|
+
model?: string;
|
|
38
|
+
}): Promise<void>;
|
|
39
|
+
flush(laneId: string): Promise<void>;
|
|
40
|
+
private ensureLane;
|
|
41
|
+
private enforceStorageLimits;
|
|
42
|
+
private updateStateFromSnapshot;
|
|
43
|
+
private logLaneUpdate;
|
|
44
|
+
private logLaneSummarized;
|
|
45
|
+
private logLaneTrimmed;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ContextManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextManager.d.ts","sourceRoot":"","sources":["../../src/cognitive/ContextManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,YAAY,EAAuD,MAAM,mBAAmB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAS3D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,KAAG,MAI9C,CAAC;AAkBF,qBAAa,cAAc;IAKb,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,YAAY,CAAS;gBAET,OAAO,EAAE,qBAAqB;IAK5C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAe/C,MAAM,CACV,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,IAAI,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,eAAe,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GAC1F,OAAO,CAAC,IAAI,CAAC;IAiDV,OAAO,CACX,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACvE,OAAO,CAAC,eAAe,EAAE,CAAC;IAUvB,iBAAiB,CACrB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GACvE,OAAO,CAAC,IAAI,CAAC;IAgEV,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAM5B,UAAU;YAwBV,oBAAoB;IA2ClC,OAAO,CAAC,uBAAuB;YAiBjB,aAAa;YAWb,iBAAiB;YAyBjB,cAAc;CAsB7B"}
|