@peakinfer/cli 1.0.133
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/.claude/settings.local.json +8 -0
- package/.env.example +6 -0
- package/.github/workflows/peakinfer.yml +64 -0
- package/CHANGELOG.md +31 -0
- package/LICENSE +190 -0
- package/README.md +335 -0
- package/data/inferencemax.json +274 -0
- package/dist/agent-analyzer.d.ts +45 -0
- package/dist/agent-analyzer.d.ts.map +1 -0
- package/dist/agent-analyzer.js +374 -0
- package/dist/agent-analyzer.js.map +1 -0
- package/dist/agent.d.ts +76 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +965 -0
- package/dist/agent.js.map +1 -0
- package/dist/agents/correlation-analyzer.d.ts +34 -0
- package/dist/agents/correlation-analyzer.d.ts.map +1 -0
- package/dist/agents/correlation-analyzer.js +261 -0
- package/dist/agents/correlation-analyzer.js.map +1 -0
- package/dist/agents/index.d.ts +91 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +111 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/runtime-analyzer.d.ts +38 -0
- package/dist/agents/runtime-analyzer.d.ts.map +1 -0
- package/dist/agents/runtime-analyzer.js +244 -0
- package/dist/agents/runtime-analyzer.js.map +1 -0
- package/dist/analysis-types.d.ts +500 -0
- package/dist/analysis-types.d.ts.map +1 -0
- package/dist/analysis-types.js +11 -0
- package/dist/analysis-types.js.map +1 -0
- package/dist/analytics.d.ts +25 -0
- package/dist/analytics.d.ts.map +1 -0
- package/dist/analytics.js +94 -0
- package/dist/analytics.js.map +1 -0
- package/dist/analyzer.d.ts +48 -0
- package/dist/analyzer.d.ts.map +1 -0
- package/dist/analyzer.js +547 -0
- package/dist/analyzer.js.map +1 -0
- package/dist/artifacts.d.ts +44 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +165 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/benchmarks/index.d.ts +88 -0
- package/dist/benchmarks/index.d.ts.map +1 -0
- package/dist/benchmarks/index.js +205 -0
- package/dist/benchmarks/index.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +427 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ci.d.ts +19 -0
- package/dist/commands/ci.d.ts.map +1 -0
- package/dist/commands/ci.js +253 -0
- package/dist/commands/ci.js.map +1 -0
- package/dist/commands/config.d.ts +16 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +249 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/demo.d.ts +15 -0
- package/dist/commands/demo.d.ts.map +1 -0
- package/dist/commands/demo.js +106 -0
- package/dist/commands/demo.js.map +1 -0
- package/dist/commands/export.d.ts +14 -0
- package/dist/commands/export.d.ts.map +1 -0
- package/dist/commands/export.js +209 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/history.d.ts +15 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +389 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/template.d.ts +14 -0
- package/dist/commands/template.d.ts.map +1 -0
- package/dist/commands/template.js +341 -0
- package/dist/commands/template.js.map +1 -0
- package/dist/commands/validate-map.d.ts +12 -0
- package/dist/commands/validate-map.d.ts.map +1 -0
- package/dist/commands/validate-map.js +274 -0
- package/dist/commands/validate-map.js.map +1 -0
- package/dist/commands/whatif.d.ts +17 -0
- package/dist/commands/whatif.d.ts.map +1 -0
- package/dist/commands/whatif.js +206 -0
- package/dist/commands/whatif.js.map +1 -0
- package/dist/comparison.d.ts +38 -0
- package/dist/comparison.d.ts.map +1 -0
- package/dist/comparison.js +223 -0
- package/dist/comparison.js.map +1 -0
- package/dist/config.d.ts +42 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +158 -0
- package/dist/config.js.map +1 -0
- package/dist/connectors/helicone.d.ts +9 -0
- package/dist/connectors/helicone.d.ts.map +1 -0
- package/dist/connectors/helicone.js +106 -0
- package/dist/connectors/helicone.js.map +1 -0
- package/dist/connectors/index.d.ts +37 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +65 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/langsmith.d.ts +9 -0
- package/dist/connectors/langsmith.d.ts.map +1 -0
- package/dist/connectors/langsmith.js +122 -0
- package/dist/connectors/langsmith.js.map +1 -0
- package/dist/connectors/types.d.ts +83 -0
- package/dist/connectors/types.d.ts.map +1 -0
- package/dist/connectors/types.js +98 -0
- package/dist/connectors/types.js.map +1 -0
- package/dist/cost-estimator.d.ts +46 -0
- package/dist/cost-estimator.d.ts.map +1 -0
- package/dist/cost-estimator.js +104 -0
- package/dist/cost-estimator.js.map +1 -0
- package/dist/costs.d.ts +57 -0
- package/dist/costs.d.ts.map +1 -0
- package/dist/costs.js +251 -0
- package/dist/costs.js.map +1 -0
- package/dist/counterfactuals.d.ts +29 -0
- package/dist/counterfactuals.d.ts.map +1 -0
- package/dist/counterfactuals.js +448 -0
- package/dist/counterfactuals.js.map +1 -0
- package/dist/enhancement-prompts.d.ts +41 -0
- package/dist/enhancement-prompts.d.ts.map +1 -0
- package/dist/enhancement-prompts.js +88 -0
- package/dist/enhancement-prompts.js.map +1 -0
- package/dist/envelopes.d.ts +20 -0
- package/dist/envelopes.d.ts.map +1 -0
- package/dist/envelopes.js +790 -0
- package/dist/envelopes.js.map +1 -0
- package/dist/format-normalizer.d.ts +71 -0
- package/dist/format-normalizer.d.ts.map +1 -0
- package/dist/format-normalizer.js +1331 -0
- package/dist/format-normalizer.js.map +1 -0
- package/dist/history.d.ts +79 -0
- package/dist/history.d.ts.map +1 -0
- package/dist/history.js +313 -0
- package/dist/history.js.map +1 -0
- package/dist/html.d.ts +11 -0
- package/dist/html.d.ts.map +1 -0
- package/dist/html.js +463 -0
- package/dist/html.js.map +1 -0
- package/dist/impact.d.ts +42 -0
- package/dist/impact.d.ts.map +1 -0
- package/dist/impact.js +443 -0
- package/dist/impact.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/insights.d.ts +5 -0
- package/dist/insights.d.ts.map +1 -0
- package/dist/insights.js +271 -0
- package/dist/insights.js.map +1 -0
- package/dist/joiner.d.ts +9 -0
- package/dist/joiner.d.ts.map +1 -0
- package/dist/joiner.js +247 -0
- package/dist/joiner.js.map +1 -0
- package/dist/orchestrator.d.ts +34 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +827 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/pdf.d.ts +26 -0
- package/dist/pdf.d.ts.map +1 -0
- package/dist/pdf.js +84 -0
- package/dist/pdf.js.map +1 -0
- package/dist/prediction.d.ts +33 -0
- package/dist/prediction.d.ts.map +1 -0
- package/dist/prediction.js +316 -0
- package/dist/prediction.js.map +1 -0
- package/dist/prompts/loader.d.ts +38 -0
- package/dist/prompts/loader.d.ts.map +1 -0
- package/dist/prompts/loader.js +60 -0
- package/dist/prompts/loader.js.map +1 -0
- package/dist/renderer.d.ts +64 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +923 -0
- package/dist/renderer.js.map +1 -0
- package/dist/runid.d.ts +57 -0
- package/dist/runid.d.ts.map +1 -0
- package/dist/runid.js +199 -0
- package/dist/runid.js.map +1 -0
- package/dist/runtime.d.ts +29 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +366 -0
- package/dist/runtime.js.map +1 -0
- package/dist/scanner.d.ts +11 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +426 -0
- package/dist/scanner.js.map +1 -0
- package/dist/templates.d.ts +120 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +429 -0
- package/dist/templates.js.map +1 -0
- package/dist/tools/index.d.ts +153 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +177 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +3647 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +703 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +7 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +23 -0
- package/dist/version.js.map +1 -0
- package/docs/demo-guide.md +423 -0
- package/docs/events-format.md +295 -0
- package/docs/inferencemap-spec.md +344 -0
- package/docs/migration-v2.md +293 -0
- package/fixtures/demo/precomputed.json +142 -0
- package/fixtures/demo-project/README.md +52 -0
- package/fixtures/demo-project/ai-service.ts +65 -0
- package/fixtures/demo-project/sample-events.jsonl +15 -0
- package/fixtures/demo-project/src/ai-service.ts +128 -0
- package/fixtures/demo-project/src/llm-client.ts +155 -0
- package/package.json +65 -0
- package/prompts/agent-analyzer.yaml +47 -0
- package/prompts/ci-gate.yaml +98 -0
- package/prompts/correlation-analyzer.yaml +178 -0
- package/prompts/format-normalizer.yaml +46 -0
- package/prompts/peak-performance.yaml +180 -0
- package/prompts/pr-comment.yaml +111 -0
- package/prompts/runtime-analyzer.yaml +189 -0
- package/prompts/unified-analyzer.yaml +241 -0
- package/schemas/inference-map.v0.1.json +215 -0
- package/scripts/benchmark.ts +394 -0
- package/scripts/demo-v1.5.sh +158 -0
- package/scripts/sync-from-site.sh +197 -0
- package/scripts/validate-sync.sh +178 -0
- package/src/agent-analyzer.ts +481 -0
- package/src/agent.ts +1232 -0
- package/src/agents/correlation-analyzer.ts +353 -0
- package/src/agents/index.ts +235 -0
- package/src/agents/runtime-analyzer.ts +343 -0
- package/src/analysis-types.ts +558 -0
- package/src/analytics.ts +100 -0
- package/src/analyzer.ts +692 -0
- package/src/artifacts.ts +218 -0
- package/src/benchmarks/index.ts +309 -0
- package/src/cli.ts +503 -0
- package/src/commands/ci.ts +336 -0
- package/src/commands/config.ts +288 -0
- package/src/commands/demo.ts +175 -0
- package/src/commands/export.ts +297 -0
- package/src/commands/history.ts +425 -0
- package/src/commands/template.ts +385 -0
- package/src/commands/validate-map.ts +324 -0
- package/src/commands/whatif.ts +272 -0
- package/src/comparison.ts +283 -0
- package/src/config.ts +188 -0
- package/src/connectors/helicone.ts +164 -0
- package/src/connectors/index.ts +93 -0
- package/src/connectors/langsmith.ts +179 -0
- package/src/connectors/types.ts +180 -0
- package/src/cost-estimator.ts +146 -0
- package/src/costs.ts +347 -0
- package/src/counterfactuals.ts +516 -0
- package/src/enhancement-prompts.ts +118 -0
- package/src/envelopes.ts +814 -0
- package/src/format-normalizer.ts +1486 -0
- package/src/history.ts +400 -0
- package/src/html.ts +512 -0
- package/src/impact.ts +522 -0
- package/src/index.ts +83 -0
- package/src/insights.ts +341 -0
- package/src/joiner.ts +289 -0
- package/src/orchestrator.ts +1015 -0
- package/src/pdf.ts +110 -0
- package/src/prediction.ts +392 -0
- package/src/prompts/loader.ts +88 -0
- package/src/renderer.ts +1045 -0
- package/src/runid.ts +261 -0
- package/src/runtime.ts +450 -0
- package/src/scanner.ts +508 -0
- package/src/templates.ts +561 -0
- package/src/tools/index.ts +214 -0
- package/src/types.ts +873 -0
- package/src/version.ts +24 -0
- package/templates/context-accumulation.yaml +23 -0
- package/templates/cost-concentration.yaml +20 -0
- package/templates/dead-code.yaml +20 -0
- package/templates/latency-explainer.yaml +23 -0
- package/templates/optimizations/ab-testing-framework.yaml +74 -0
- package/templates/optimizations/api-gateway-optimization.yaml +81 -0
- package/templates/optimizations/api-model-routing-strategy.yaml +126 -0
- package/templates/optimizations/auto-scaling-optimization.yaml +85 -0
- package/templates/optimizations/batch-utilization-diagnostic.yaml +142 -0
- package/templates/optimizations/comprehensive-apm.yaml +76 -0
- package/templates/optimizations/context-window-optimization.yaml +91 -0
- package/templates/optimizations/cost-sensitive-batch-processing.yaml +77 -0
- package/templates/optimizations/distributed-training-optimization.yaml +77 -0
- package/templates/optimizations/document-analysis-edge.yaml +77 -0
- package/templates/optimizations/document-pipeline-optimization.yaml +78 -0
- package/templates/optimizations/domain-specific-distillation.yaml +78 -0
- package/templates/optimizations/error-handling-optimization.yaml +76 -0
- package/templates/optimizations/gptq-4bit-quantization.yaml +96 -0
- package/templates/optimizations/long-context-memory-management.yaml +78 -0
- package/templates/optimizations/max-tokens-optimization.yaml +76 -0
- package/templates/optimizations/memory-bandwidth-optimization.yaml +73 -0
- package/templates/optimizations/multi-framework-resilience.yaml +75 -0
- package/templates/optimizations/multi-tenant-optimization.yaml +75 -0
- package/templates/optimizations/prompt-caching-optimization.yaml +143 -0
- package/templates/optimizations/pytorch-to-onnx-migration.yaml +109 -0
- package/templates/optimizations/quality-monitoring.yaml +74 -0
- package/templates/optimizations/realtime-budget-controls.yaml +74 -0
- package/templates/optimizations/realtime-latency-optimization.yaml +74 -0
- package/templates/optimizations/sglang-concurrency-optimization.yaml +78 -0
- package/templates/optimizations/smart-model-routing.yaml +96 -0
- package/templates/optimizations/streaming-batch-selection.yaml +167 -0
- package/templates/optimizations/system-prompt-optimization.yaml +75 -0
- package/templates/optimizations/tensorrt-llm-performance.yaml +77 -0
- package/templates/optimizations/vllm-high-throughput-optimization.yaml +93 -0
- package/templates/optimizations/vllm-migration-memory-bound.yaml +78 -0
- package/templates/overpowered-extraction.yaml +32 -0
- package/templates/overpowered-model.yaml +31 -0
- package/templates/prompt-bloat.yaml +24 -0
- package/templates/retry-explosion.yaml +28 -0
- package/templates/schema/insight.schema.json +113 -0
- package/templates/schema/optimization.schema.json +180 -0
- package/templates/streaming-drift.yaml +30 -0
- package/templates/throughput-gap.yaml +21 -0
- package/templates/token-underutilization.yaml +28 -0
- package/templates/untested-fallback.yaml +21 -0
- package/tests/accuracy/drift-detection.test.ts +184 -0
- package/tests/accuracy/false-positives.test.ts +166 -0
- package/tests/accuracy/templates.test.ts +205 -0
- package/tests/action/commands.test.ts +125 -0
- package/tests/action/comments.test.ts +347 -0
- package/tests/cli.test.ts +203 -0
- package/tests/comparison.test.ts +309 -0
- package/tests/correlation-analyzer.test.ts +534 -0
- package/tests/counterfactuals.test.ts +347 -0
- package/tests/fixtures/events/missing-id.jsonl +1 -0
- package/tests/fixtures/events/missing-input.jsonl +1 -0
- package/tests/fixtures/events/missing-latency.jsonl +1 -0
- package/tests/fixtures/events/missing-model.jsonl +1 -0
- package/tests/fixtures/events/missing-output.jsonl +1 -0
- package/tests/fixtures/events/missing-provider.jsonl +1 -0
- package/tests/fixtures/events/missing-ts.jsonl +1 -0
- package/tests/fixtures/events/valid.csv +3 -0
- package/tests/fixtures/events/valid.json +1 -0
- package/tests/fixtures/events/valid.jsonl +2 -0
- package/tests/fixtures/events/with-callsite.jsonl +1 -0
- package/tests/fixtures/events/with-intent.jsonl +1 -0
- package/tests/fixtures/events/wrong-type.jsonl +1 -0
- package/tests/fixtures/repos/empty/.gitkeep +0 -0
- package/tests/fixtures/repos/hybrid-router/router.py +35 -0
- package/tests/fixtures/repos/saas-anthropic/agent.ts +27 -0
- package/tests/fixtures/repos/saas-openai/assistant.js +33 -0
- package/tests/fixtures/repos/saas-openai/client.py +26 -0
- package/tests/fixtures/repos/self-hosted-vllm/inference.py +22 -0
- package/tests/github-action.test.ts +292 -0
- package/tests/insights.test.ts +878 -0
- package/tests/joiner.test.ts +168 -0
- package/tests/performance/action-latency.test.ts +132 -0
- package/tests/performance/benchmark.test.ts +189 -0
- package/tests/performance/cli-latency.test.ts +102 -0
- package/tests/pr-comment.test.ts +313 -0
- package/tests/prediction.test.ts +296 -0
- package/tests/runtime-analyzer.test.ts +375 -0
- package/tests/runtime.test.ts +205 -0
- package/tests/scanner.test.ts +122 -0
- package/tests/template-conformance.test.ts +526 -0
- package/tests/unit/cost-calculator.test.ts +303 -0
- package/tests/unit/credits.test.ts +180 -0
- package/tests/unit/inference-map.test.ts +276 -0
- package/tests/unit/schema.test.ts +300 -0
- package/tsconfig.json +20 -0
- package/vitest.config.ts +14 -0
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync } from 'fs';
|
|
2
|
+
import { join, dirname } from 'path';
|
|
3
|
+
import { fileURLToPath } from 'url';
|
|
4
|
+
import { parse as parseYAML } from 'yaml';
|
|
5
|
+
import { InsightTemplate, OptimizationTemplate } from './types.js';
|
|
6
|
+
// =============================================================================
|
|
7
|
+
// CONSTANTS
|
|
8
|
+
// =============================================================================
|
|
9
|
+
const TEMPLATES_REPO = 'https://raw.githubusercontent.com/Kalmantic/peakinfer_templates/main';
|
|
10
|
+
const MANIFEST_URL = `${TEMPLATES_REPO}/insights/manifest.json`;
|
|
11
|
+
const CACHE_DIR = '.peakinfer/cache/templates';
|
|
12
|
+
const CACHE_TTL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
13
|
+
// Get bundled templates directory (relative to this file)
|
|
14
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
15
|
+
const __dirname = dirname(__filename);
|
|
16
|
+
const BUNDLED_DIR = join(__dirname, '..', 'templates');
|
|
17
|
+
const OPTIMIZATIONS_DIR = join(__dirname, '..', 'templates', 'optimizations');
|
|
18
|
+
const PROMPTS_DIR = join(__dirname, '..', 'prompts');
|
|
19
|
+
// =============================================================================
|
|
20
|
+
// HELPERS
|
|
21
|
+
// =============================================================================
|
|
22
|
+
function getCacheDir() {
|
|
23
|
+
return join(process.cwd(), CACHE_DIR);
|
|
24
|
+
}
|
|
25
|
+
function getCacheMetaPath() {
|
|
26
|
+
return join(getCacheDir(), 'meta.json');
|
|
27
|
+
}
|
|
28
|
+
function isCacheValid() {
|
|
29
|
+
const metaPath = getCacheMetaPath();
|
|
30
|
+
if (!existsSync(metaPath))
|
|
31
|
+
return false;
|
|
32
|
+
try {
|
|
33
|
+
const meta = JSON.parse(readFileSync(metaPath, 'utf-8'));
|
|
34
|
+
return Date.now() - meta.fetchedAt < CACHE_TTL_MS;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function findYamlFiles(dir) {
|
|
41
|
+
if (!existsSync(dir))
|
|
42
|
+
return [];
|
|
43
|
+
const results = [];
|
|
44
|
+
const entries = readdirSync(dir, { withFileTypes: true });
|
|
45
|
+
for (const entry of entries) {
|
|
46
|
+
const fullPath = join(dir, entry.name);
|
|
47
|
+
if (entry.isDirectory()) {
|
|
48
|
+
results.push(...findYamlFiles(fullPath));
|
|
49
|
+
}
|
|
50
|
+
else if (entry.name.endsWith('.yaml')) {
|
|
51
|
+
results.push(fullPath);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return results;
|
|
55
|
+
}
|
|
56
|
+
function loadCachedTemplates() {
|
|
57
|
+
const cacheDir = getCacheDir();
|
|
58
|
+
if (!existsSync(cacheDir))
|
|
59
|
+
return [];
|
|
60
|
+
const templates = [];
|
|
61
|
+
const files = findYamlFiles(cacheDir);
|
|
62
|
+
for (const file of files) {
|
|
63
|
+
try {
|
|
64
|
+
const content = readFileSync(file, 'utf-8');
|
|
65
|
+
const parsed = parseYAML(content);
|
|
66
|
+
const validated = InsightTemplate.parse(parsed);
|
|
67
|
+
templates.push(validated);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Skip invalid templates
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return templates;
|
|
74
|
+
}
|
|
75
|
+
function loadBundledTemplates() {
|
|
76
|
+
if (!existsSync(BUNDLED_DIR))
|
|
77
|
+
return [];
|
|
78
|
+
const templates = [];
|
|
79
|
+
const files = readdirSync(BUNDLED_DIR).filter(f => f.endsWith('.yaml'));
|
|
80
|
+
for (const file of files) {
|
|
81
|
+
try {
|
|
82
|
+
const content = readFileSync(join(BUNDLED_DIR, file), 'utf-8');
|
|
83
|
+
const parsed = parseYAML(content);
|
|
84
|
+
const validated = InsightTemplate.parse(parsed);
|
|
85
|
+
templates.push(validated);
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Skip invalid templates
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return templates;
|
|
92
|
+
}
|
|
93
|
+
async function fetchManifest() {
|
|
94
|
+
try {
|
|
95
|
+
const response = await fetch(MANIFEST_URL);
|
|
96
|
+
if (!response.ok)
|
|
97
|
+
return null;
|
|
98
|
+
return await response.json();
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function fetchTemplate(templatePath) {
|
|
105
|
+
try {
|
|
106
|
+
// Templates are now in insights/{category}/{name}.yaml
|
|
107
|
+
const url = `${TEMPLATES_REPO}/insights/${templatePath}`;
|
|
108
|
+
const response = await fetch(url);
|
|
109
|
+
if (!response.ok)
|
|
110
|
+
return null;
|
|
111
|
+
return await response.text();
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
function saveToCache(templates, version) {
|
|
118
|
+
const cacheDir = getCacheDir();
|
|
119
|
+
mkdirSync(cacheDir, { recursive: true });
|
|
120
|
+
// Save each template (handle nested paths like cost/prompt-bloat.yaml)
|
|
121
|
+
for (const [name, content] of templates) {
|
|
122
|
+
const filePath = join(cacheDir, name);
|
|
123
|
+
mkdirSync(dirname(filePath), { recursive: true });
|
|
124
|
+
writeFileSync(filePath, content);
|
|
125
|
+
}
|
|
126
|
+
// Save meta
|
|
127
|
+
const meta = {
|
|
128
|
+
fetchedAt: Date.now(),
|
|
129
|
+
version,
|
|
130
|
+
};
|
|
131
|
+
writeFileSync(getCacheMetaPath(), JSON.stringify(meta, null, 2));
|
|
132
|
+
}
|
|
133
|
+
export async function loadTemplates(opts = {}) {
|
|
134
|
+
// If offline mode, skip remote fetch
|
|
135
|
+
if (opts.offline) {
|
|
136
|
+
const cached = loadCachedTemplates();
|
|
137
|
+
if (cached.length > 0)
|
|
138
|
+
return cached;
|
|
139
|
+
return loadBundledTemplates();
|
|
140
|
+
}
|
|
141
|
+
// Check cache validity
|
|
142
|
+
if (isCacheValid()) {
|
|
143
|
+
const cached = loadCachedTemplates();
|
|
144
|
+
if (cached.length > 0)
|
|
145
|
+
return cached;
|
|
146
|
+
}
|
|
147
|
+
// Try to fetch from remote
|
|
148
|
+
const manifest = await fetchManifest();
|
|
149
|
+
if (manifest) {
|
|
150
|
+
const templateContents = new Map();
|
|
151
|
+
const templates = [];
|
|
152
|
+
for (const templatePath of manifest.templates) {
|
|
153
|
+
const content = await fetchTemplate(templatePath);
|
|
154
|
+
if (content) {
|
|
155
|
+
templateContents.set(templatePath, content);
|
|
156
|
+
try {
|
|
157
|
+
const parsed = parseYAML(content);
|
|
158
|
+
const validated = InsightTemplate.parse(parsed);
|
|
159
|
+
templates.push(validated);
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
// Skip invalid templates
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (templates.length > 0) {
|
|
167
|
+
saveToCache(templateContents, manifest.version);
|
|
168
|
+
return templates;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
// Fall back to stale cache
|
|
172
|
+
const cached = loadCachedTemplates();
|
|
173
|
+
if (cached.length > 0) {
|
|
174
|
+
console.warn('[templates] Using stale cache');
|
|
175
|
+
return cached;
|
|
176
|
+
}
|
|
177
|
+
// Fall back to bundled templates
|
|
178
|
+
console.warn('[templates] Using bundled templates');
|
|
179
|
+
return loadBundledTemplates();
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get a single template by ID
|
|
183
|
+
*/
|
|
184
|
+
export async function getTemplate(id, opts = {}) {
|
|
185
|
+
const templates = await loadTemplates(opts);
|
|
186
|
+
return templates.find(t => t.id === id) || null;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Clear template cache
|
|
190
|
+
*/
|
|
191
|
+
export function clearCache() {
|
|
192
|
+
const cacheDir = getCacheDir();
|
|
193
|
+
if (existsSync(cacheDir)) {
|
|
194
|
+
const files = readdirSync(cacheDir);
|
|
195
|
+
for (const file of files) {
|
|
196
|
+
const filePath = join(cacheDir, file);
|
|
197
|
+
try {
|
|
198
|
+
readFileSync(filePath); // Check if readable
|
|
199
|
+
writeFileSync(filePath, ''); // Clear content
|
|
200
|
+
}
|
|
201
|
+
catch {
|
|
202
|
+
// Skip
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// =============================================================================
|
|
208
|
+
// OPTIMIZATION TEMPLATES API (v1.8 - Inference Squeeze Guide)
|
|
209
|
+
// =============================================================================
|
|
210
|
+
/**
|
|
211
|
+
* Load bundled optimization templates from templates/optimizations/
|
|
212
|
+
* These are community optimization runbooks with implementation steps
|
|
213
|
+
*/
|
|
214
|
+
export function loadOptimizationTemplates() {
|
|
215
|
+
if (!existsSync(OPTIMIZATIONS_DIR))
|
|
216
|
+
return [];
|
|
217
|
+
const templates = [];
|
|
218
|
+
const files = readdirSync(OPTIMIZATIONS_DIR).filter(f => f.endsWith('.yaml'));
|
|
219
|
+
for (const file of files) {
|
|
220
|
+
try {
|
|
221
|
+
const content = readFileSync(join(OPTIMIZATIONS_DIR, file), 'utf-8');
|
|
222
|
+
const parsed = parseYAML(content);
|
|
223
|
+
const validated = OptimizationTemplate.parse(parsed);
|
|
224
|
+
templates.push(validated);
|
|
225
|
+
}
|
|
226
|
+
catch (err) {
|
|
227
|
+
// Skip invalid templates but log for debugging
|
|
228
|
+
console.warn(`[templates] Failed to load optimization template ${file}:`, err);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return templates;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get a single optimization template by ID
|
|
235
|
+
*/
|
|
236
|
+
export function getOptimizationTemplate(id) {
|
|
237
|
+
const templates = loadOptimizationTemplates();
|
|
238
|
+
return templates.find(t => t.id === id) || null;
|
|
239
|
+
}
|
|
240
|
+
// =============================================================================
|
|
241
|
+
// ANALYSIS PROMPTS API
|
|
242
|
+
// =============================================================================
|
|
243
|
+
/**
|
|
244
|
+
* Load an analysis prompt by ID from the prompts directory
|
|
245
|
+
* @param id - Prompt ID (e.g., 'peak-performance')
|
|
246
|
+
* @returns AnalysisPrompt or null if not found
|
|
247
|
+
*/
|
|
248
|
+
export function loadPrompt(id) {
|
|
249
|
+
const promptPath = join(PROMPTS_DIR, `${id}.yaml`);
|
|
250
|
+
if (!existsSync(promptPath)) {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
try {
|
|
254
|
+
const content = readFileSync(promptPath, 'utf-8');
|
|
255
|
+
const parsed = parseYAML(content);
|
|
256
|
+
// Validate required fields
|
|
257
|
+
if (!parsed.id || !parsed.prompt) {
|
|
258
|
+
console.warn(`[prompts] Invalid prompt file: ${promptPath} (missing id or prompt)`);
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
return parsed;
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
264
|
+
console.warn(`[prompts] Failed to load prompt ${id}:`, err);
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* List all available analysis prompts
|
|
270
|
+
* @returns Array of prompt IDs
|
|
271
|
+
*/
|
|
272
|
+
export function listPrompts() {
|
|
273
|
+
if (!existsSync(PROMPTS_DIR)) {
|
|
274
|
+
return [];
|
|
275
|
+
}
|
|
276
|
+
try {
|
|
277
|
+
const files = readdirSync(PROMPTS_DIR).filter(f => f.endsWith('.yaml'));
|
|
278
|
+
return files.map(f => f.replace('.yaml', ''));
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
return [];
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Get the default analysis prompt (peak-performance)
|
|
286
|
+
* @returns AnalysisPrompt
|
|
287
|
+
* @throws Error if default prompt not found
|
|
288
|
+
*/
|
|
289
|
+
export function getDefaultPrompt() {
|
|
290
|
+
const prompt = loadPrompt('peak-performance');
|
|
291
|
+
if (!prompt) {
|
|
292
|
+
throw new Error('[prompts] Default prompt "peak-performance" not found. Ensure prompts/peak-performance.yaml exists.');
|
|
293
|
+
}
|
|
294
|
+
return prompt;
|
|
295
|
+
}
|
|
296
|
+
// =============================================================================
|
|
297
|
+
// CONFIGURATION API
|
|
298
|
+
// =============================================================================
|
|
299
|
+
const CONFIG_DIR = join(__dirname, '..', 'config');
|
|
300
|
+
// Default configuration (used as fallback)
|
|
301
|
+
const DEFAULT_CONFIG = {
|
|
302
|
+
id: 'peakinfer',
|
|
303
|
+
version: '1.0',
|
|
304
|
+
description: 'Default PeakInfer configuration',
|
|
305
|
+
analysis: {
|
|
306
|
+
mode: 'agent',
|
|
307
|
+
cascade: true,
|
|
308
|
+
},
|
|
309
|
+
models: {
|
|
310
|
+
agent: {
|
|
311
|
+
primary: 'claude-opus-4-5-20251101',
|
|
312
|
+
fallback: 'claude-sonnet-4-20250514',
|
|
313
|
+
},
|
|
314
|
+
llm: {
|
|
315
|
+
primary: 'claude-sonnet-4-20250514',
|
|
316
|
+
fallback: 'claude-sonnet-4-20250514',
|
|
317
|
+
},
|
|
318
|
+
},
|
|
319
|
+
agent: {
|
|
320
|
+
max_iterations: 15,
|
|
321
|
+
verbose: false,
|
|
322
|
+
},
|
|
323
|
+
scanner: {
|
|
324
|
+
extensions: ['.py', '.ts', '.tsx', '.js', '.jsx'],
|
|
325
|
+
max_file_size: 1048576,
|
|
326
|
+
ignore: ['node_modules', '.git', '__pycache__', '.venv', 'venv', 'dist', 'build'],
|
|
327
|
+
},
|
|
328
|
+
output: {
|
|
329
|
+
format: 'json',
|
|
330
|
+
include_confidence: true,
|
|
331
|
+
min_confidence: 0.5,
|
|
332
|
+
},
|
|
333
|
+
};
|
|
334
|
+
// Cached config
|
|
335
|
+
let cachedConfig = null;
|
|
336
|
+
/**
|
|
337
|
+
* Load PeakInfer configuration from config/peakinfer.yaml
|
|
338
|
+
* Environment variables override file settings:
|
|
339
|
+
* - PEAKINFER_MODE: analysis mode (agent, llm, regex)
|
|
340
|
+
* - PEAKINFER_MODEL: primary model override
|
|
341
|
+
* - PEAKINFER_VERBOSE: enable verbose output
|
|
342
|
+
* @returns PeakInferConfig
|
|
343
|
+
*/
|
|
344
|
+
export function loadConfig() {
|
|
345
|
+
// Return cached config if available
|
|
346
|
+
if (cachedConfig) {
|
|
347
|
+
return cachedConfig;
|
|
348
|
+
}
|
|
349
|
+
let config = { ...DEFAULT_CONFIG };
|
|
350
|
+
// Try to load from config file
|
|
351
|
+
const configPath = join(CONFIG_DIR, 'peakinfer.yaml');
|
|
352
|
+
if (existsSync(configPath)) {
|
|
353
|
+
try {
|
|
354
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
355
|
+
const parsed = parseYAML(content);
|
|
356
|
+
// Deep merge with defaults
|
|
357
|
+
config = deepMerge(DEFAULT_CONFIG, parsed);
|
|
358
|
+
}
|
|
359
|
+
catch (err) {
|
|
360
|
+
console.warn('[config] Failed to load config file, using defaults:', err);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
// Apply environment variable overrides
|
|
364
|
+
if (process.env.PEAKINFER_MODE) {
|
|
365
|
+
const mode = process.env.PEAKINFER_MODE.toLowerCase();
|
|
366
|
+
if (['agent', 'llm', 'regex'].includes(mode)) {
|
|
367
|
+
config.analysis.mode = mode;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
if (process.env.PEAKINFER_MODEL) {
|
|
371
|
+
config.models.agent.primary = process.env.PEAKINFER_MODEL;
|
|
372
|
+
config.models.llm.primary = process.env.PEAKINFER_MODEL;
|
|
373
|
+
}
|
|
374
|
+
if (process.env.PEAKINFER_VERBOSE === '1' || process.env.PEAKINFER_VERBOSE === 'true') {
|
|
375
|
+
config.agent.verbose = true;
|
|
376
|
+
}
|
|
377
|
+
// Cache the config
|
|
378
|
+
cachedConfig = config;
|
|
379
|
+
return config;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Get the configured model for a given analysis type
|
|
383
|
+
* @param type - 'agent' or 'llm'
|
|
384
|
+
* @param fallback - whether to return fallback model
|
|
385
|
+
* @returns model name
|
|
386
|
+
*/
|
|
387
|
+
export function getConfiguredModel(type, fallback = false) {
|
|
388
|
+
const config = loadConfig();
|
|
389
|
+
const models = config.models[type];
|
|
390
|
+
return fallback ? models.fallback : models.primary;
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Get the configured analysis mode
|
|
394
|
+
* @returns analysis mode
|
|
395
|
+
*/
|
|
396
|
+
export function getConfiguredMode() {
|
|
397
|
+
const config = loadConfig();
|
|
398
|
+
return config.analysis.mode;
|
|
399
|
+
}
|
|
400
|
+
/**
|
|
401
|
+
* Check if cascade fallback is enabled
|
|
402
|
+
* @returns true if cascade is enabled
|
|
403
|
+
*/
|
|
404
|
+
export function isCascadeEnabled() {
|
|
405
|
+
const config = loadConfig();
|
|
406
|
+
return config.analysis.cascade;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Deep merge two objects
|
|
410
|
+
*/
|
|
411
|
+
function deepMerge(target, source) {
|
|
412
|
+
const result = { ...target };
|
|
413
|
+
for (const key of Object.keys(source)) {
|
|
414
|
+
if (source[key] !== undefined) {
|
|
415
|
+
if (typeof source[key] === 'object' &&
|
|
416
|
+
source[key] !== null &&
|
|
417
|
+
!Array.isArray(source[key]) &&
|
|
418
|
+
typeof target[key] === 'object' &&
|
|
419
|
+
target[key] !== null) {
|
|
420
|
+
result[key] = deepMerge(target[key], source[key]);
|
|
421
|
+
}
|
|
422
|
+
else {
|
|
423
|
+
result[key] = source[key];
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
return result;
|
|
428
|
+
}
|
|
429
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool definitions for agent-driven analysis
|
|
3
|
+
*
|
|
4
|
+
* From Autonomous Agent Architecture Patterns v0.1:
|
|
5
|
+
* - Schema-first design using Zod
|
|
6
|
+
* - Tool registry pattern for LLM tool resolution
|
|
7
|
+
*
|
|
8
|
+
* From DESIGN.md v2.0 Section 2.4:
|
|
9
|
+
* - Agent analysis constrained to: Glob -> Grep -> Read
|
|
10
|
+
* - Returns structured JSON (validated)
|
|
11
|
+
* - No unbounded tool access
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
export interface Tool<TInput, TOutput> {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
inputSchema: z.ZodSchema<TInput>;
|
|
18
|
+
outputSchema: z.ZodSchema<TOutput>;
|
|
19
|
+
execute: (input: TInput) => Promise<TOutput>;
|
|
20
|
+
}
|
|
21
|
+
declare const GlobInputSchema: z.ZodObject<{
|
|
22
|
+
pattern: z.ZodString;
|
|
23
|
+
cwd: z.ZodOptional<z.ZodString>;
|
|
24
|
+
ignore: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
25
|
+
}, "strip", z.ZodTypeAny, {
|
|
26
|
+
pattern: string;
|
|
27
|
+
cwd?: string | undefined;
|
|
28
|
+
ignore?: string[] | undefined;
|
|
29
|
+
}, {
|
|
30
|
+
pattern: string;
|
|
31
|
+
cwd?: string | undefined;
|
|
32
|
+
ignore?: string[] | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
declare const GlobOutputSchema: z.ZodObject<{
|
|
35
|
+
files: z.ZodArray<z.ZodString, "many">;
|
|
36
|
+
count: z.ZodNumber;
|
|
37
|
+
}, "strip", z.ZodTypeAny, {
|
|
38
|
+
files: string[];
|
|
39
|
+
count: number;
|
|
40
|
+
}, {
|
|
41
|
+
files: string[];
|
|
42
|
+
count: number;
|
|
43
|
+
}>;
|
|
44
|
+
export declare const GlobTool: Tool<z.infer<typeof GlobInputSchema>, z.infer<typeof GlobOutputSchema>>;
|
|
45
|
+
declare const GrepInputSchema: z.ZodObject<{
|
|
46
|
+
pattern: z.ZodString;
|
|
47
|
+
files: z.ZodArray<z.ZodString, "many">;
|
|
48
|
+
maxMatches: z.ZodOptional<z.ZodNumber>;
|
|
49
|
+
}, "strip", z.ZodTypeAny, {
|
|
50
|
+
files: string[];
|
|
51
|
+
pattern: string;
|
|
52
|
+
maxMatches?: number | undefined;
|
|
53
|
+
}, {
|
|
54
|
+
files: string[];
|
|
55
|
+
pattern: string;
|
|
56
|
+
maxMatches?: number | undefined;
|
|
57
|
+
}>;
|
|
58
|
+
declare const GrepOutputSchema: z.ZodObject<{
|
|
59
|
+
matches: z.ZodArray<z.ZodObject<{
|
|
60
|
+
file: z.ZodString;
|
|
61
|
+
line: z.ZodNumber;
|
|
62
|
+
content: z.ZodString;
|
|
63
|
+
}, "strip", z.ZodTypeAny, {
|
|
64
|
+
file: string;
|
|
65
|
+
line: number;
|
|
66
|
+
content: string;
|
|
67
|
+
}, {
|
|
68
|
+
file: string;
|
|
69
|
+
line: number;
|
|
70
|
+
content: string;
|
|
71
|
+
}>, "many">;
|
|
72
|
+
totalMatches: z.ZodNumber;
|
|
73
|
+
}, "strip", z.ZodTypeAny, {
|
|
74
|
+
matches: {
|
|
75
|
+
file: string;
|
|
76
|
+
line: number;
|
|
77
|
+
content: string;
|
|
78
|
+
}[];
|
|
79
|
+
totalMatches: number;
|
|
80
|
+
}, {
|
|
81
|
+
matches: {
|
|
82
|
+
file: string;
|
|
83
|
+
line: number;
|
|
84
|
+
content: string;
|
|
85
|
+
}[];
|
|
86
|
+
totalMatches: number;
|
|
87
|
+
}>;
|
|
88
|
+
export declare const GrepTool: Tool<z.infer<typeof GrepInputSchema>, z.infer<typeof GrepOutputSchema>>;
|
|
89
|
+
declare const ReadInputSchema: z.ZodObject<{
|
|
90
|
+
file: z.ZodString;
|
|
91
|
+
maxLines: z.ZodOptional<z.ZodNumber>;
|
|
92
|
+
startLine: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
}, "strip", z.ZodTypeAny, {
|
|
94
|
+
file: string;
|
|
95
|
+
maxLines?: number | undefined;
|
|
96
|
+
startLine?: number | undefined;
|
|
97
|
+
}, {
|
|
98
|
+
file: string;
|
|
99
|
+
maxLines?: number | undefined;
|
|
100
|
+
startLine?: number | undefined;
|
|
101
|
+
}>;
|
|
102
|
+
declare const ReadOutputSchema: z.ZodObject<{
|
|
103
|
+
content: z.ZodString;
|
|
104
|
+
lines: z.ZodNumber;
|
|
105
|
+
truncated: z.ZodBoolean;
|
|
106
|
+
}, "strip", z.ZodTypeAny, {
|
|
107
|
+
content: string;
|
|
108
|
+
lines: number;
|
|
109
|
+
truncated: boolean;
|
|
110
|
+
}, {
|
|
111
|
+
content: string;
|
|
112
|
+
lines: number;
|
|
113
|
+
truncated: boolean;
|
|
114
|
+
}>;
|
|
115
|
+
export declare const ReadTool: Tool<z.infer<typeof ReadInputSchema>, z.infer<typeof ReadOutputSchema>>;
|
|
116
|
+
export declare class ToolRegistry {
|
|
117
|
+
private tools;
|
|
118
|
+
register<TInput, TOutput>(tool: Tool<TInput, TOutput>): void;
|
|
119
|
+
get(name: string): Tool<unknown, unknown> | undefined;
|
|
120
|
+
execute(name: string, args: unknown): Promise<unknown>;
|
|
121
|
+
getSchemaPrompt(): string;
|
|
122
|
+
list(): string[];
|
|
123
|
+
}
|
|
124
|
+
export declare function createConstrainedRegistry(): ToolRegistry;
|
|
125
|
+
export declare const AGENT_TOOLS: (Tool<{
|
|
126
|
+
pattern: string;
|
|
127
|
+
cwd?: string | undefined;
|
|
128
|
+
ignore?: string[] | undefined;
|
|
129
|
+
}, {
|
|
130
|
+
files: string[];
|
|
131
|
+
count: number;
|
|
132
|
+
}> | Tool<{
|
|
133
|
+
files: string[];
|
|
134
|
+
pattern: string;
|
|
135
|
+
maxMatches?: number | undefined;
|
|
136
|
+
}, {
|
|
137
|
+
matches: {
|
|
138
|
+
file: string;
|
|
139
|
+
line: number;
|
|
140
|
+
content: string;
|
|
141
|
+
}[];
|
|
142
|
+
totalMatches: number;
|
|
143
|
+
}> | Tool<{
|
|
144
|
+
file: string;
|
|
145
|
+
maxLines?: number | undefined;
|
|
146
|
+
startLine?: number | undefined;
|
|
147
|
+
}, {
|
|
148
|
+
content: string;
|
|
149
|
+
lines: number;
|
|
150
|
+
truncated: boolean;
|
|
151
|
+
}>)[];
|
|
152
|
+
export {};
|
|
153
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,MAAM,WAAW,IAAI,CAAC,MAAM,EAAE,OAAO;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAMD,QAAA,MAAM,eAAe;;;;;;;;;;;;EAInB,CAAC;AAEH,QAAA,MAAM,gBAAgB;;;;;;;;;EAGpB,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAa5F,CAAC;AAMF,QAAA,MAAM,eAAe;;;;;;;;;;;;EAInB,CAAC;AAQH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGpB,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CA2B5F,CAAC;AAMF,QAAA,MAAM,eAAe;;;;;;;;;;;;EAInB,CAAC;AAEH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;EAIpB,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAqC5F,CAAC;AAMF,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA6C;IAE1D,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS;IAI/C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ5D,eAAe,IAAI,MAAM;IAQzB,IAAI,IAAI,MAAM,EAAE;CAGjB;AAMD,wBAAgB,yBAAyB,IAAI,YAAY,CAMxD;AAGD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;KAAiC,CAAC"}
|