codeprobe 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +406 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +104 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/ab.d.ts +7 -0
- package/dist/commands/ab.d.ts.map +1 -0
- package/dist/commands/ab.js +230 -0
- package/dist/commands/ab.js.map +1 -0
- package/dist/commands/agents.d.ts +10 -0
- package/dist/commands/agents.d.ts.map +1 -0
- package/dist/commands/agents.js +326 -0
- package/dist/commands/agents.js.map +1 -0
- package/dist/commands/autotest.d.ts +10 -0
- package/dist/commands/autotest.d.ts.map +1 -0
- package/dist/commands/autotest.js +408 -0
- package/dist/commands/autotest.js.map +1 -0
- package/dist/commands/benchmark.d.ts +6 -0
- package/dist/commands/benchmark.d.ts.map +1 -0
- package/dist/commands/benchmark.js +215 -0
- package/dist/commands/benchmark.js.map +1 -0
- package/dist/commands/check.d.ts +10 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +333 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/context.d.ts +16 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +219 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/cost.d.ts +9 -0
- package/dist/commands/cost.d.ts.map +1 -0
- package/dist/commands/cost.js +142 -0
- package/dist/commands/cost.js.map +1 -0
- package/dist/commands/dashboard.d.ts +10 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +462 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/diff.d.ts +6 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +118 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.d.ts +12 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +203 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/explain.d.ts +7 -0
- package/dist/commands/explain.d.ts.map +1 -0
- package/dist/commands/explain.js +164 -0
- package/dist/commands/explain.js.map +1 -0
- package/dist/commands/flaky.d.ts +10 -0
- package/dist/commands/flaky.d.ts.map +1 -0
- package/dist/commands/flaky.js +141 -0
- package/dist/commands/flaky.js.map +1 -0
- package/dist/commands/generateClaudeMd.d.ts +11 -0
- package/dist/commands/generateClaudeMd.d.ts.map +1 -0
- package/dist/commands/generateClaudeMd.js +278 -0
- package/dist/commands/generateClaudeMd.js.map +1 -0
- package/dist/commands/generateRules.d.ts +11 -0
- package/dist/commands/generateRules.d.ts.map +1 -0
- package/dist/commands/generateRules.js +413 -0
- package/dist/commands/generateRules.js.map +1 -0
- package/dist/commands/heatmap.d.ts +7 -0
- package/dist/commands/heatmap.d.ts.map +1 -0
- package/dist/commands/heatmap.js +117 -0
- package/dist/commands/heatmap.js.map +1 -0
- package/dist/commands/history.d.ts +13 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +113 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/hooks.d.ts +9 -0
- package/dist/commands/hooks.d.ts.map +1 -0
- package/dist/commands/hooks.js +199 -0
- package/dist/commands/hooks.js.map +1 -0
- package/dist/commands/improve.d.ts +7 -0
- package/dist/commands/improve.d.ts.map +1 -0
- package/dist/commands/improve.js +192 -0
- package/dist/commands/improve.js.map +1 -0
- package/dist/commands/init.d.ts +9 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +270 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/installHook.d.ts +9 -0
- package/dist/commands/installHook.d.ts.map +1 -0
- package/dist/commands/installHook.js +78 -0
- package/dist/commands/installHook.js.map +1 -0
- package/dist/commands/lint.d.ts +6 -0
- package/dist/commands/lint.d.ts.map +1 -0
- package/dist/commands/lint.js +237 -0
- package/dist/commands/lint.js.map +1 -0
- package/dist/commands/map.d.ts +9 -0
- package/dist/commands/map.d.ts.map +1 -0
- package/dist/commands/map.js +114 -0
- package/dist/commands/map.js.map +1 -0
- package/dist/commands/mcp.d.ts +6 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +151 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/models.d.ts +9 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +89 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/pack.d.ts +10 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/commands/pack.js +248 -0
- package/dist/commands/pack.js.map +1 -0
- package/dist/commands/recommend.d.ts +10 -0
- package/dist/commands/recommend.d.ts.map +1 -0
- package/dist/commands/recommend.js +472 -0
- package/dist/commands/recommend.js.map +1 -0
- package/dist/commands/regression.d.ts +10 -0
- package/dist/commands/regression.d.ts.map +1 -0
- package/dist/commands/regression.js +212 -0
- package/dist/commands/regression.js.map +1 -0
- package/dist/commands/repl.d.ts +9 -0
- package/dist/commands/repl.d.ts.map +1 -0
- package/dist/commands/repl.js +245 -0
- package/dist/commands/repl.js.map +1 -0
- package/dist/commands/scan.d.ts +10 -0
- package/dist/commands/scan.d.ts.map +1 -0
- package/dist/commands/scan.js +352 -0
- package/dist/commands/scan.js.map +1 -0
- package/dist/commands/score.d.ts +10 -0
- package/dist/commands/score.d.ts.map +1 -0
- package/dist/commands/score.js +192 -0
- package/dist/commands/score.js.map +1 -0
- package/dist/commands/security.d.ts +10 -0
- package/dist/commands/security.d.ts.map +1 -0
- package/dist/commands/security.js +211 -0
- package/dist/commands/security.js.map +1 -0
- package/dist/commands/simulate.d.ts +7 -0
- package/dist/commands/simulate.d.ts.map +1 -0
- package/dist/commands/simulate.js +149 -0
- package/dist/commands/simulate.js.map +1 -0
- package/dist/commands/summary.d.ts +9 -0
- package/dist/commands/summary.d.ts.map +1 -0
- package/dist/commands/summary.js +271 -0
- package/dist/commands/summary.js.map +1 -0
- package/dist/commands/test.d.ts +9 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +219 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/ui.d.ts +8 -0
- package/dist/commands/ui.d.ts.map +1 -0
- package/dist/commands/ui.js +222 -0
- package/dist/commands/ui.js.map +1 -0
- package/dist/commands/validate.d.ts +7 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +254 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/workflow.d.ts +39 -0
- package/dist/commands/workflow.d.ts.map +1 -0
- package/dist/commands/workflow.js +309 -0
- package/dist/commands/workflow.js.map +1 -0
- package/dist/core/__tests__/contextAnalyzer.test.d.ts +2 -0
- package/dist/core/__tests__/contextAnalyzer.test.d.ts.map +1 -0
- package/dist/core/__tests__/contextAnalyzer.test.js +48 -0
- package/dist/core/__tests__/contextAnalyzer.test.js.map +1 -0
- package/dist/core/__tests__/promptLinter.test.d.ts +2 -0
- package/dist/core/__tests__/promptLinter.test.d.ts.map +1 -0
- package/dist/core/__tests__/promptLinter.test.js +74 -0
- package/dist/core/__tests__/promptLinter.test.js.map +1 -0
- package/dist/core/__tests__/promptRunner.test.d.ts +2 -0
- package/dist/core/__tests__/promptRunner.test.d.ts.map +1 -0
- package/dist/core/__tests__/promptRunner.test.js +84 -0
- package/dist/core/__tests__/promptRunner.test.js.map +1 -0
- package/dist/core/__tests__/securityScanner.test.d.ts +2 -0
- package/dist/core/__tests__/securityScanner.test.d.ts.map +1 -0
- package/dist/core/__tests__/securityScanner.test.js +39 -0
- package/dist/core/__tests__/securityScanner.test.js.map +1 -0
- package/dist/core/agentTracer.d.ts +21 -0
- package/dist/core/agentTracer.d.ts.map +1 -0
- package/dist/core/agentTracer.js +355 -0
- package/dist/core/agentTracer.js.map +1 -0
- package/dist/core/anthropicClient.d.ts +26 -0
- package/dist/core/anthropicClient.d.ts.map +1 -0
- package/dist/core/anthropicClient.js +62 -0
- package/dist/core/anthropicClient.js.map +1 -0
- package/dist/core/benchmarkRunner.d.ts +25 -0
- package/dist/core/benchmarkRunner.d.ts.map +1 -0
- package/dist/core/benchmarkRunner.js +182 -0
- package/dist/core/benchmarkRunner.js.map +1 -0
- package/dist/core/contextAnalyzer.d.ts +19 -0
- package/dist/core/contextAnalyzer.d.ts.map +1 -0
- package/dist/core/contextAnalyzer.js +221 -0
- package/dist/core/contextAnalyzer.js.map +1 -0
- package/dist/core/contextPacker.d.ts +26 -0
- package/dist/core/contextPacker.d.ts.map +1 -0
- package/dist/core/contextPacker.js +358 -0
- package/dist/core/contextPacker.js.map +1 -0
- package/dist/core/datasetRunner.d.ts +10 -0
- package/dist/core/datasetRunner.d.ts.map +1 -0
- package/dist/core/datasetRunner.js +130 -0
- package/dist/core/datasetRunner.js.map +1 -0
- package/dist/core/doctorRunner.d.ts +24 -0
- package/dist/core/doctorRunner.d.ts.map +1 -0
- package/dist/core/doctorRunner.js +278 -0
- package/dist/core/doctorRunner.js.map +1 -0
- package/dist/core/hookScanner.d.ts +24 -0
- package/dist/core/hookScanner.d.ts.map +1 -0
- package/dist/core/hookScanner.js +226 -0
- package/dist/core/hookScanner.js.map +1 -0
- package/dist/core/mcpScanner.d.ts +22 -0
- package/dist/core/mcpScanner.d.ts.map +1 -0
- package/dist/core/mcpScanner.js +290 -0
- package/dist/core/mcpScanner.js.map +1 -0
- package/dist/core/modelRegistry.d.ts +35 -0
- package/dist/core/modelRegistry.d.ts.map +1 -0
- package/dist/core/modelRegistry.js +97 -0
- package/dist/core/modelRegistry.js.map +1 -0
- package/dist/core/promptDiff.d.ts +25 -0
- package/dist/core/promptDiff.d.ts.map +1 -0
- package/dist/core/promptDiff.js +130 -0
- package/dist/core/promptDiff.js.map +1 -0
- package/dist/core/promptExplainer.d.ts +17 -0
- package/dist/core/promptExplainer.d.ts.map +1 -0
- package/dist/core/promptExplainer.js +334 -0
- package/dist/core/promptExplainer.js.map +1 -0
- package/dist/core/promptImprover.d.ts +19 -0
- package/dist/core/promptImprover.d.ts.map +1 -0
- package/dist/core/promptImprover.js +260 -0
- package/dist/core/promptImprover.js.map +1 -0
- package/dist/core/promptLinter.d.ts +24 -0
- package/dist/core/promptLinter.d.ts.map +1 -0
- package/dist/core/promptLinter.js +319 -0
- package/dist/core/promptLinter.js.map +1 -0
- package/dist/core/promptRunner.d.ts +31 -0
- package/dist/core/promptRunner.d.ts.map +1 -0
- package/dist/core/promptRunner.js +427 -0
- package/dist/core/promptRunner.js.map +1 -0
- package/dist/core/providers/anthropic.d.ts +10 -0
- package/dist/core/providers/anthropic.d.ts.map +1 -0
- package/dist/core/providers/anthropic.js +26 -0
- package/dist/core/providers/anthropic.js.map +1 -0
- package/dist/core/providers/base.d.ts +22 -0
- package/dist/core/providers/base.d.ts.map +1 -0
- package/dist/core/providers/base.js +2 -0
- package/dist/core/providers/base.js.map +1 -0
- package/dist/core/providers/factory.d.ts +7 -0
- package/dist/core/providers/factory.d.ts.map +1 -0
- package/dist/core/providers/factory.js +42 -0
- package/dist/core/providers/factory.js.map +1 -0
- package/dist/core/providers/google.d.ts +10 -0
- package/dist/core/providers/google.d.ts.map +1 -0
- package/dist/core/providers/google.js +47 -0
- package/dist/core/providers/google.js.map +1 -0
- package/dist/core/providers/openai.d.ts +19 -0
- package/dist/core/providers/openai.d.ts.map +1 -0
- package/dist/core/providers/openai.js +54 -0
- package/dist/core/providers/openai.js.map +1 -0
- package/dist/core/regressionRunner.d.ts +11 -0
- package/dist/core/regressionRunner.d.ts.map +1 -0
- package/dist/core/regressionRunner.js +116 -0
- package/dist/core/regressionRunner.js.map +1 -0
- package/dist/core/repositorySimulator.d.ts +17 -0
- package/dist/core/repositorySimulator.d.ts.map +1 -0
- package/dist/core/repositorySimulator.js +104 -0
- package/dist/core/repositorySimulator.js.map +1 -0
- package/dist/core/scorer.d.ts +30 -0
- package/dist/core/scorer.d.ts.map +1 -0
- package/dist/core/scorer.js +317 -0
- package/dist/core/scorer.js.map +1 -0
- package/dist/core/securityScanner.d.ts +23 -0
- package/dist/core/securityScanner.d.ts.map +1 -0
- package/dist/core/securityScanner.js +216 -0
- package/dist/core/securityScanner.js.map +1 -0
- package/dist/core/skillValidator.d.ts +41 -0
- package/dist/core/skillValidator.d.ts.map +1 -0
- package/dist/core/skillValidator.js +235 -0
- package/dist/core/skillValidator.js.map +1 -0
- package/dist/core/testHistory.d.ts +44 -0
- package/dist/core/testHistory.d.ts.map +1 -0
- package/dist/core/testHistory.js +91 -0
- package/dist/core/testHistory.js.map +1 -0
- package/dist/tokenizers/claudeTokenizer.d.ts +26 -0
- package/dist/tokenizers/claudeTokenizer.d.ts.map +1 -0
- package/dist/tokenizers/claudeTokenizer.js +83 -0
- package/dist/tokenizers/claudeTokenizer.js.map +1 -0
- package/dist/types/agent.d.ts +26 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +5 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/config.d.ts +30 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/context.d.ts +77 -0
- package/dist/types/context.d.ts.map +1 -0
- package/dist/types/context.js +5 -0
- package/dist/types/context.js.map +1 -0
- package/dist/types/dataset.d.ts +26 -0
- package/dist/types/dataset.d.ts.map +1 -0
- package/dist/types/dataset.js +5 -0
- package/dist/types/dataset.js.map +1 -0
- package/dist/types/diagnostics.d.ts +31 -0
- package/dist/types/diagnostics.d.ts.map +1 -0
- package/dist/types/diagnostics.js +5 -0
- package/dist/types/diagnostics.js.map +1 -0
- package/dist/types/prompt.d.ts +53 -0
- package/dist/types/prompt.d.ts.map +1 -0
- package/dist/types/prompt.js +5 -0
- package/dist/types/prompt.js.map +1 -0
- package/dist/types/results.d.ts +42 -0
- package/dist/types/results.d.ts.map +1 -0
- package/dist/types/results.js +5 -0
- package/dist/types/results.js.map +1 -0
- package/dist/ui/dashboard.d.ts +57 -0
- package/dist/ui/dashboard.d.ts.map +1 -0
- package/dist/ui/dashboard.js +644 -0
- package/dist/ui/dashboard.js.map +1 -0
- package/dist/utils/__tests__/hashing.test.d.ts +2 -0
- package/dist/utils/__tests__/hashing.test.d.ts.map +1 -0
- package/dist/utils/__tests__/hashing.test.js +28 -0
- package/dist/utils/__tests__/hashing.test.js.map +1 -0
- package/dist/utils/__tests__/output.test.d.ts +2 -0
- package/dist/utils/__tests__/output.test.d.ts.map +1 -0
- package/dist/utils/__tests__/output.test.js +62 -0
- package/dist/utils/__tests__/output.test.js.map +1 -0
- package/dist/utils/cache.d.ts +29 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +87 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/config.d.ts +15 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +61 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/errors.d.ts +43 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +83 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/fs.d.ts +44 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +119 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/hashing.d.ts +13 -0
- package/dist/utils/hashing.d.ts.map +1 -0
- package/dist/utils/hashing.js +18 -0
- package/dist/utils/hashing.js.map +1 -0
- package/dist/utils/logger.d.ts +32 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +76 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/output.d.ts +34 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +99 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/paths.d.ts +33 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +51 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/spinner.d.ts +23 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +79 -0
- package/dist/utils/spinner.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent tracer: heuristic scanner for Claude-related workflow assets.
|
|
3
|
+
*
|
|
4
|
+
* Walks a repository tree and identifies files that are part of a
|
|
5
|
+
* Claude Code workflow -- configuration, agents, skills, hooks,
|
|
6
|
+
* MCP configs, and prompt specs.
|
|
7
|
+
*/
|
|
8
|
+
import type { ClaudeAsset } from '../types/agent.js';
|
|
9
|
+
/**
|
|
10
|
+
* Heuristically scan a repository for Claude-related workflow assets.
|
|
11
|
+
*
|
|
12
|
+
* Walks the directory tree (skipping node_modules, .git, dist, etc.)
|
|
13
|
+
* and matches files against a set of pattern rules to identify
|
|
14
|
+
* configuration files, agents, skills, hooks, MCP configs, and
|
|
15
|
+
* prompt specs.
|
|
16
|
+
*
|
|
17
|
+
* @param rootPath Absolute path to the repository root.
|
|
18
|
+
* @returns Array of discovered Claude assets with confidence and reason.
|
|
19
|
+
*/
|
|
20
|
+
export declare function scanForClaudeAssets(rootPath: string): Promise<ClaudeAsset[]>;
|
|
21
|
+
//# sourceMappingURL=agentTracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentTracer.d.ts","sourceRoot":"","sources":["../../src/core/agentTracer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,mBAAmB,CAAC;AAwUtE;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,EAAE,CAAC,CAkDxB"}
|
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent tracer: heuristic scanner for Claude-related workflow assets.
|
|
3
|
+
*
|
|
4
|
+
* Walks a repository tree and identifies files that are part of a
|
|
5
|
+
* Claude Code workflow -- configuration, agents, skills, hooks,
|
|
6
|
+
* MCP configs, and prompt specs.
|
|
7
|
+
*/
|
|
8
|
+
import { basename, extname } from 'node:path';
|
|
9
|
+
import { stat } from 'node:fs/promises';
|
|
10
|
+
import { walkDirectory } from '../utils/fs.js';
|
|
11
|
+
/** Directories to skip during traversal. */
|
|
12
|
+
const SKIP_DIRS = new Set([
|
|
13
|
+
'node_modules', '.git', 'dist', 'build', 'coverage',
|
|
14
|
+
'__pycache__', '.next', '.nuxt', '.cache', '.turbo',
|
|
15
|
+
'.parcel-cache', '.vscode', '.idea', 'vendor', 'tmp',
|
|
16
|
+
'.tmp', '.terraform',
|
|
17
|
+
]);
|
|
18
|
+
const ASSET_RULES = [
|
|
19
|
+
// CLAUDE.md at any level
|
|
20
|
+
{
|
|
21
|
+
match: (_rel, name) => name === 'CLAUDE.md',
|
|
22
|
+
type: 'claude-config',
|
|
23
|
+
confidence: 'high',
|
|
24
|
+
reason: 'CLAUDE.md is a Claude Code project instructions file.',
|
|
25
|
+
},
|
|
26
|
+
// .claude/ directory contents
|
|
27
|
+
{
|
|
28
|
+
match: (rel) => rel.startsWith('.claude/') || rel.startsWith('.claude\\'),
|
|
29
|
+
type: 'claude-config',
|
|
30
|
+
confidence: 'high',
|
|
31
|
+
reason: 'File inside .claude/ directory (Claude Code configuration).',
|
|
32
|
+
},
|
|
33
|
+
// .claude/settings.json specifically
|
|
34
|
+
{
|
|
35
|
+
match: (rel) => rel === '.claude/settings.json' ||
|
|
36
|
+
rel === '.claude\\settings.json',
|
|
37
|
+
type: 'claude-config',
|
|
38
|
+
confidence: 'high',
|
|
39
|
+
reason: 'Claude Code settings file.',
|
|
40
|
+
},
|
|
41
|
+
// agents/*.yaml or agents/*.yml
|
|
42
|
+
{
|
|
43
|
+
match: (rel, _name, ext) => {
|
|
44
|
+
const parts = rel.split(/[/\\]/);
|
|
45
|
+
return parts.length >= 2 &&
|
|
46
|
+
parts[0] === 'agents' &&
|
|
47
|
+
(ext === '.yaml' || ext === '.yml');
|
|
48
|
+
},
|
|
49
|
+
type: 'agent',
|
|
50
|
+
confidence: 'medium',
|
|
51
|
+
reason: 'YAML file in agents/ directory -- likely an agent definition.',
|
|
52
|
+
},
|
|
53
|
+
// SKILL.md
|
|
54
|
+
{
|
|
55
|
+
match: (_rel, name) => name === 'SKILL.md',
|
|
56
|
+
type: 'skill',
|
|
57
|
+
confidence: 'medium',
|
|
58
|
+
reason: 'SKILL.md is a Claude Code skill definition file.',
|
|
59
|
+
},
|
|
60
|
+
// skills/*.md
|
|
61
|
+
{
|
|
62
|
+
match: (rel, _name, ext) => {
|
|
63
|
+
const parts = rel.split(/[/\\]/);
|
|
64
|
+
return parts.length >= 2 &&
|
|
65
|
+
parts[0] === 'skills' &&
|
|
66
|
+
ext === '.md';
|
|
67
|
+
},
|
|
68
|
+
type: 'skill',
|
|
69
|
+
confidence: 'medium',
|
|
70
|
+
reason: 'Markdown file in skills/ directory -- likely a skill definition.',
|
|
71
|
+
},
|
|
72
|
+
// hooks/ directory at root
|
|
73
|
+
{
|
|
74
|
+
match: (rel) => {
|
|
75
|
+
const parts = rel.split(/[/\\]/);
|
|
76
|
+
return parts.length >= 2 && parts[0] === 'hooks';
|
|
77
|
+
},
|
|
78
|
+
type: 'hook',
|
|
79
|
+
confidence: 'medium',
|
|
80
|
+
reason: 'File in hooks/ directory.',
|
|
81
|
+
},
|
|
82
|
+
// .claude/hooks directory
|
|
83
|
+
{
|
|
84
|
+
match: (rel) => rel.startsWith('.claude/hooks/') ||
|
|
85
|
+
rel.startsWith('.claude\\hooks\\'),
|
|
86
|
+
type: 'hook',
|
|
87
|
+
confidence: 'medium',
|
|
88
|
+
reason: 'File in .claude/hooks/ directory.',
|
|
89
|
+
},
|
|
90
|
+
// MCP config files
|
|
91
|
+
{
|
|
92
|
+
match: (_rel, name) => name === '.mcp.json' ||
|
|
93
|
+
name === 'mcp.json',
|
|
94
|
+
type: 'mcp-config',
|
|
95
|
+
confidence: 'high',
|
|
96
|
+
reason: 'MCP configuration file.',
|
|
97
|
+
},
|
|
98
|
+
// .claude/mcp*.json
|
|
99
|
+
{
|
|
100
|
+
match: (rel, name) => {
|
|
101
|
+
const parts = rel.split(/[/\\]/);
|
|
102
|
+
return parts.length >= 2 &&
|
|
103
|
+
parts[0] === '.claude' &&
|
|
104
|
+
name.startsWith('mcp') &&
|
|
105
|
+
name.endsWith('.json');
|
|
106
|
+
},
|
|
107
|
+
type: 'mcp-config',
|
|
108
|
+
confidence: 'high',
|
|
109
|
+
reason: 'MCP configuration file in .claude/ directory.',
|
|
110
|
+
},
|
|
111
|
+
// *.prompt.yaml / *.prompt.yml
|
|
112
|
+
{
|
|
113
|
+
match: (_rel, name) => name.endsWith('.prompt.yaml') ||
|
|
114
|
+
name.endsWith('.prompt.yml'),
|
|
115
|
+
type: 'prompt-spec',
|
|
116
|
+
confidence: 'high',
|
|
117
|
+
reason: 'Prompt specification file (*.prompt.yaml).',
|
|
118
|
+
},
|
|
119
|
+
// prompts/*.yaml
|
|
120
|
+
{
|
|
121
|
+
match: (rel, _name, ext) => {
|
|
122
|
+
const parts = rel.split(/[/\\]/);
|
|
123
|
+
return parts.length >= 2 &&
|
|
124
|
+
parts[0] === 'prompts' &&
|
|
125
|
+
(ext === '.yaml' || ext === '.yml');
|
|
126
|
+
},
|
|
127
|
+
type: 'prompt-spec',
|
|
128
|
+
confidence: 'medium',
|
|
129
|
+
reason: 'YAML file in prompts/ directory -- likely a prompt specification.',
|
|
130
|
+
},
|
|
131
|
+
// ── Cursor ──────────────────────────────────────────────
|
|
132
|
+
{
|
|
133
|
+
match: (_rel, name) => name === '.cursorrules',
|
|
134
|
+
type: 'cursor-config',
|
|
135
|
+
confidence: 'high',
|
|
136
|
+
reason: 'Cursor rules configuration file.',
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
match: (rel) => rel.startsWith('.cursor/rules/') || rel.startsWith('.cursor\\rules\\'),
|
|
140
|
+
type: 'cursor-config',
|
|
141
|
+
confidence: 'high',
|
|
142
|
+
reason: 'File inside .cursor/rules/ directory (Cursor rule definition).',
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
match: (rel) => rel === '.cursor/mcp.json' || rel === '.cursor\\mcp.json',
|
|
146
|
+
type: 'mcp-config',
|
|
147
|
+
confidence: 'high',
|
|
148
|
+
reason: 'MCP configuration file for Cursor.',
|
|
149
|
+
},
|
|
150
|
+
// ── Windsurf ────────────────────────────────────────────
|
|
151
|
+
{
|
|
152
|
+
match: (_rel, name) => name === '.windsurfrules',
|
|
153
|
+
type: 'windsurf-config',
|
|
154
|
+
confidence: 'high',
|
|
155
|
+
reason: 'Windsurf rules configuration file.',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
match: (rel) => rel.startsWith('.windsurf/rules/') || rel.startsWith('.windsurf\\rules\\'),
|
|
159
|
+
type: 'windsurf-config',
|
|
160
|
+
confidence: 'high',
|
|
161
|
+
reason: 'File inside .windsurf/rules/ directory (Windsurf rule definition).',
|
|
162
|
+
},
|
|
163
|
+
// ── GitHub Copilot ──────────────────────────────────────
|
|
164
|
+
{
|
|
165
|
+
match: (rel) => rel === '.github/copilot-instructions.md' ||
|
|
166
|
+
rel === '.github\\copilot-instructions.md',
|
|
167
|
+
type: 'copilot-config',
|
|
168
|
+
confidence: 'high',
|
|
169
|
+
reason: 'GitHub Copilot custom instructions file.',
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
match: (rel) => rel.startsWith('.copilot/') || rel.startsWith('.copilot\\'),
|
|
173
|
+
type: 'copilot-config',
|
|
174
|
+
confidence: 'medium',
|
|
175
|
+
reason: 'File inside .copilot/ directory (GitHub Copilot configuration).',
|
|
176
|
+
},
|
|
177
|
+
// ── Aider ───────────────────────────────────────────────
|
|
178
|
+
{
|
|
179
|
+
match: (_rel, name) => name === '.aider.conf.yml',
|
|
180
|
+
type: 'aider-config',
|
|
181
|
+
confidence: 'high',
|
|
182
|
+
reason: 'Aider configuration file.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
match: (_rel, name) => name === '.aiderignore',
|
|
186
|
+
type: 'aider-config',
|
|
187
|
+
confidence: 'high',
|
|
188
|
+
reason: 'Aider ignore file.',
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
match: (_rel, name) => name === '.aider.model.settings.yml',
|
|
192
|
+
type: 'aider-config',
|
|
193
|
+
confidence: 'high',
|
|
194
|
+
reason: 'Aider model settings file.',
|
|
195
|
+
},
|
|
196
|
+
// ── Continue.dev ────────────────────────────────────────
|
|
197
|
+
{
|
|
198
|
+
match: (rel) => rel === '.continue/config.json' || rel === '.continue\\config.json',
|
|
199
|
+
type: 'continue-config',
|
|
200
|
+
confidence: 'high',
|
|
201
|
+
reason: 'Continue.dev configuration file.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
match: (_rel, name) => name === '.continuerules',
|
|
205
|
+
type: 'continue-config',
|
|
206
|
+
confidence: 'high',
|
|
207
|
+
reason: 'Continue.dev rules file.',
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
match: (rel) => rel.startsWith('.continue/') || rel.startsWith('.continue\\'),
|
|
211
|
+
type: 'continue-config',
|
|
212
|
+
confidence: 'medium',
|
|
213
|
+
reason: 'File inside .continue/ directory (Continue.dev configuration).',
|
|
214
|
+
},
|
|
215
|
+
// ── Cline ───────────────────────────────────────────────
|
|
216
|
+
{
|
|
217
|
+
match: (_rel, name) => name === '.clinerules',
|
|
218
|
+
type: 'cline-config',
|
|
219
|
+
confidence: 'high',
|
|
220
|
+
reason: 'Cline rules configuration file.',
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
match: (rel) => rel.startsWith('.cline/') || rel.startsWith('.cline\\'),
|
|
224
|
+
type: 'cline-config',
|
|
225
|
+
confidence: 'medium',
|
|
226
|
+
reason: 'File inside .cline/ directory (Cline configuration).',
|
|
227
|
+
},
|
|
228
|
+
// ── OpenAI Codex CLI ────────────────────────────────────
|
|
229
|
+
{
|
|
230
|
+
match: (_rel, name) => name === 'codex.md' || name === 'CODEX.md',
|
|
231
|
+
type: 'codex-config',
|
|
232
|
+
confidence: 'high',
|
|
233
|
+
reason: 'OpenAI Codex CLI instruction file.',
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
match: (rel) => rel.startsWith('.codex/') || rel.startsWith('.codex\\'),
|
|
237
|
+
type: 'codex-config',
|
|
238
|
+
confidence: 'medium',
|
|
239
|
+
reason: 'File inside .codex/ directory (OpenAI Codex configuration).',
|
|
240
|
+
},
|
|
241
|
+
// ── General AI context files ────────────────────────────
|
|
242
|
+
{
|
|
243
|
+
match: (_rel, name) => name === 'AGENTS.md',
|
|
244
|
+
type: 'context-file',
|
|
245
|
+
confidence: 'medium',
|
|
246
|
+
reason: 'AI agent instructions file.',
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
match: (_rel, name) => name === 'CONTEXT.md',
|
|
250
|
+
type: 'context-file',
|
|
251
|
+
confidence: 'medium',
|
|
252
|
+
reason: 'AI context documentation file.',
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
match: (_rel, name) => name === 'AI.md',
|
|
256
|
+
type: 'context-file',
|
|
257
|
+
confidence: 'medium',
|
|
258
|
+
reason: 'AI instructions file.',
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
match: (rel) => rel.startsWith('.ai/') || rel.startsWith('.ai\\'),
|
|
262
|
+
type: 'context-file',
|
|
263
|
+
confidence: 'medium',
|
|
264
|
+
reason: 'File inside .ai/ directory (AI configuration).',
|
|
265
|
+
},
|
|
266
|
+
// ── Agentic workflow files ──────────────────────────────
|
|
267
|
+
{
|
|
268
|
+
match: (rel) => rel === 'tasks/todo.md' || rel === 'tasks\\todo.md',
|
|
269
|
+
type: 'agentic-workflow',
|
|
270
|
+
confidence: 'high',
|
|
271
|
+
reason: 'Agentic workflow task list.',
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
match: (rel) => rel === 'tasks/lessons.md' || rel === 'tasks\\lessons.md',
|
|
275
|
+
type: 'agentic-workflow',
|
|
276
|
+
confidence: 'high',
|
|
277
|
+
reason: 'Agentic workflow lessons learned.',
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
match: (_rel, name) => name === 'PLAN.md',
|
|
281
|
+
type: 'agentic-workflow',
|
|
282
|
+
confidence: 'medium',
|
|
283
|
+
reason: 'Agentic workflow plan file.',
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
match: (rel, _name, ext) => {
|
|
287
|
+
const parts = rel.split(/[/\\]/);
|
|
288
|
+
return parts.length >= 2 &&
|
|
289
|
+
parts[0] === 'plans' &&
|
|
290
|
+
ext === '.md';
|
|
291
|
+
},
|
|
292
|
+
type: 'agentic-workflow',
|
|
293
|
+
confidence: 'medium',
|
|
294
|
+
reason: 'Markdown file in plans/ directory -- likely an agentic workflow plan.',
|
|
295
|
+
},
|
|
296
|
+
];
|
|
297
|
+
/**
|
|
298
|
+
* Heuristically scan a repository for Claude-related workflow assets.
|
|
299
|
+
*
|
|
300
|
+
* Walks the directory tree (skipping node_modules, .git, dist, etc.)
|
|
301
|
+
* and matches files against a set of pattern rules to identify
|
|
302
|
+
* configuration files, agents, skills, hooks, MCP configs, and
|
|
303
|
+
* prompt specs.
|
|
304
|
+
*
|
|
305
|
+
* @param rootPath Absolute path to the repository root.
|
|
306
|
+
* @returns Array of discovered Claude assets with confidence and reason.
|
|
307
|
+
*/
|
|
308
|
+
export async function scanForClaudeAssets(rootPath) {
|
|
309
|
+
// Verify root exists and is a directory
|
|
310
|
+
try {
|
|
311
|
+
const rootStat = await stat(rootPath);
|
|
312
|
+
if (!rootStat.isDirectory()) {
|
|
313
|
+
return [];
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
catch {
|
|
317
|
+
return [];
|
|
318
|
+
}
|
|
319
|
+
const assets = [];
|
|
320
|
+
const seenPaths = new Set();
|
|
321
|
+
const entries = await walkDirectory(rootPath, { ignoreDirs: SKIP_DIRS });
|
|
322
|
+
for (const entry of entries) {
|
|
323
|
+
if (!entry.isFile)
|
|
324
|
+
continue;
|
|
325
|
+
const relativePath = entry.relativePath;
|
|
326
|
+
const fileName = basename(entry.path);
|
|
327
|
+
const ext = extname(entry.path).toLowerCase();
|
|
328
|
+
for (const rule of ASSET_RULES) {
|
|
329
|
+
if (rule.match(relativePath, fileName, ext)) {
|
|
330
|
+
// Avoid duplicates when multiple rules match the same file.
|
|
331
|
+
// Use the first (highest priority) match.
|
|
332
|
+
if (!seenPaths.has(entry.path)) {
|
|
333
|
+
seenPaths.add(entry.path);
|
|
334
|
+
assets.push({
|
|
335
|
+
path: entry.path,
|
|
336
|
+
type: rule.type,
|
|
337
|
+
confidence: rule.confidence,
|
|
338
|
+
reason: rule.reason,
|
|
339
|
+
});
|
|
340
|
+
}
|
|
341
|
+
break;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
// Sort by confidence (high first), then by path
|
|
346
|
+
const confidenceOrder = { high: 0, medium: 1, low: 2 };
|
|
347
|
+
assets.sort((a, b) => {
|
|
348
|
+
const confDiff = confidenceOrder[a.confidence] - confidenceOrder[b.confidence];
|
|
349
|
+
if (confDiff !== 0)
|
|
350
|
+
return confDiff;
|
|
351
|
+
return a.path.localeCompare(b.path);
|
|
352
|
+
});
|
|
353
|
+
return assets;
|
|
354
|
+
}
|
|
355
|
+
//# sourceMappingURL=agentTracer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agentTracer.js","sourceRoot":"","sources":["../../src/core/agentTracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic API client — thin wrapper for live execution mode.
|
|
3
|
+
*
|
|
4
|
+
* Uses dynamic import so anthropic SDK is optional.
|
|
5
|
+
* Install with: npm install @anthropic-ai/sdk
|
|
6
|
+
*/
|
|
7
|
+
export interface AnthropicMessage {
|
|
8
|
+
role: 'user' | 'assistant';
|
|
9
|
+
content: string;
|
|
10
|
+
}
|
|
11
|
+
export interface AnthropicRequest {
|
|
12
|
+
model: string;
|
|
13
|
+
system?: string;
|
|
14
|
+
messages: AnthropicMessage[];
|
|
15
|
+
maxTokens?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface AnthropicResponse {
|
|
18
|
+
content: string;
|
|
19
|
+
inputTokens: number;
|
|
20
|
+
outputTokens: number;
|
|
21
|
+
model: string;
|
|
22
|
+
stopReason: string;
|
|
23
|
+
}
|
|
24
|
+
export declare function isAnthropicAvailable(): Promise<boolean>;
|
|
25
|
+
export declare function callAnthropic(request: AnthropicRequest): Promise<AnthropicResponse>;
|
|
26
|
+
//# sourceMappingURL=anthropicClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropicClient.d.ts","sourceRoot":"","sources":["../../src/core/anthropicClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,OAAO,CAAC,CAQ7D;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgDzF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic API client — thin wrapper for live execution mode.
|
|
3
|
+
*
|
|
4
|
+
* Uses dynamic import so anthropic SDK is optional.
|
|
5
|
+
* Install with: npm install @anthropic-ai/sdk
|
|
6
|
+
*/
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
let clientInstance = null;
|
|
9
|
+
export async function isAnthropicAvailable() {
|
|
10
|
+
try {
|
|
11
|
+
const SDK_MODULE = '@anthropic-ai/sdk';
|
|
12
|
+
await import(SDK_MODULE);
|
|
13
|
+
return !!process.env.ANTHROPIC_API_KEY;
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export async function callAnthropic(request) {
|
|
20
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
21
|
+
throw new Error('ANTHROPIC_API_KEY environment variable is required for live mode');
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
// Dynamic import — only loaded when live mode is used.
|
|
25
|
+
// Use a string variable to prevent TypeScript from attempting
|
|
26
|
+
// static module resolution on an optional dependency.
|
|
27
|
+
const SDK_MODULE = '@anthropic-ai/sdk';
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
|
+
const mod = await import(SDK_MODULE);
|
|
30
|
+
const Anthropic = mod.default ?? mod.Anthropic ?? mod;
|
|
31
|
+
if (!clientInstance) {
|
|
32
|
+
clientInstance = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
|
|
33
|
+
}
|
|
34
|
+
const response = await clientInstance.messages.create({
|
|
35
|
+
model: request.model,
|
|
36
|
+
max_tokens: request.maxTokens ?? 1024,
|
|
37
|
+
system: request.system,
|
|
38
|
+
messages: request.messages,
|
|
39
|
+
});
|
|
40
|
+
// Extract text content from response
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
|
+
const contentBlocks = response.content;
|
|
43
|
+
const text = contentBlocks
|
|
44
|
+
.filter((block) => block.type === 'text')
|
|
45
|
+
.map((block) => block.text ?? '')
|
|
46
|
+
.join('');
|
|
47
|
+
return {
|
|
48
|
+
content: text,
|
|
49
|
+
inputTokens: response.usage?.input_tokens ?? 0,
|
|
50
|
+
outputTokens: response.usage?.output_tokens ?? 0,
|
|
51
|
+
model: request.model,
|
|
52
|
+
stopReason: response.stop_reason ?? 'unknown',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
if (err instanceof Error && err.message.includes('Cannot find package')) {
|
|
57
|
+
throw new Error('Live mode requires the Anthropic SDK. Install it with: npm install @anthropic-ai/sdk');
|
|
58
|
+
}
|
|
59
|
+
throw err;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=anthropicClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropicClient.js","sourceRoot":"","sources":["../../src/core/anthropicClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH,8DAA8D;AAC9D,IAAI,cAAc,GAAQ,IAAI,CAAC;AAE/B,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACvC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAyB;IAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,CAAC;QACH,uDAAuD;QACvD,8DAA8D;QAC9D,sDAAsD;QACtD,MAAM,UAAU,GAAG,mBAAmB,CAAC;QACvC,8DAA8D;QAC9D,MAAM,GAAG,GAAQ,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC;QAEtD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC;YACpD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;YACrC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;QAEH,qCAAqC;QACrC,8DAA8D;QAC9D,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAiD,CAAC;QACjF,MAAM,IAAI,GAAG,aAAa;aACvB,MAAM,CAAC,CAAC,KAAuB,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;aAC1D,GAAG,CAAC,CAAC,KAAsC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;aACjE,IAAI,CAAC,EAAE,CAAC,CAAC;QAEZ,OAAO;YACL,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC;YAC9C,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC;YAChD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,QAAQ,CAAC,WAAW,IAAI,SAAS;SAC9C,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;YACxE,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmark runner for AI models.
|
|
3
|
+
*
|
|
4
|
+
* Runs a prompt spec against one or more models, collecting
|
|
5
|
+
* score, token usage, latency, and cost data across multiple runs.
|
|
6
|
+
* Supports a mock mode for offline development and CI pipelines.
|
|
7
|
+
*
|
|
8
|
+
* Pricing and model metadata are sourced from the central model registry.
|
|
9
|
+
*/
|
|
10
|
+
import type { BenchmarkResult } from '../types/results.js';
|
|
11
|
+
export interface BenchmarkOptions {
|
|
12
|
+
models?: string[];
|
|
13
|
+
runs?: number;
|
|
14
|
+
mode?: 'mock' | 'live';
|
|
15
|
+
verbose?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Run benchmarks for a prompt spec across one or more models.
|
|
19
|
+
*
|
|
20
|
+
* @param specPath Path to a YAML prompt spec file.
|
|
21
|
+
* @param options Benchmark configuration.
|
|
22
|
+
* @returns An array of results, one per model.
|
|
23
|
+
*/
|
|
24
|
+
export declare function runBenchmark(specPath: string, options?: BenchmarkOptions): Promise<BenchmarkResult[]>;
|
|
25
|
+
//# sourceMappingURL=benchmarkRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmarkRunner.d.ts","sourceRoot":"","sources":["../../src/core/benchmarkRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,qBAAqB,CAAC;AAGzE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA+ID;;;;;;GAMG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,eAAe,EAAE,CAAC,CA2D5B"}
|