claude-code-workflow 6.2.7 → 6.3.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/.claude/CLAUDE.md +16 -1
- package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +11 -4
- package/.claude/workflows/cli-templates/protocols/write-protocol.md +10 -75
- package/.claude/workflows/cli-tools-usage.md +14 -24
- package/.codex/AGENTS.md +51 -1
- package/.codex/prompts/compact.md +378 -0
- package/.gemini/GEMINI.md +57 -20
- package/ccw/dist/cli.d.ts.map +1 -1
- package/ccw/dist/cli.js +21 -8
- package/ccw/dist/cli.js.map +1 -1
- package/ccw/dist/commands/cli.d.ts +2 -0
- package/ccw/dist/commands/cli.d.ts.map +1 -1
- package/ccw/dist/commands/cli.js +129 -8
- package/ccw/dist/commands/cli.js.map +1 -1
- package/ccw/dist/commands/hook.d.ts.map +1 -1
- package/ccw/dist/commands/hook.js +3 -2
- package/ccw/dist/commands/hook.js.map +1 -1
- package/ccw/dist/config/litellm-api-config-manager.d.ts +180 -0
- package/ccw/dist/config/litellm-api-config-manager.d.ts.map +1 -0
- package/ccw/dist/config/litellm-api-config-manager.js +770 -0
- package/ccw/dist/config/litellm-api-config-manager.js.map +1 -0
- package/ccw/dist/config/provider-models.d.ts +73 -0
- package/ccw/dist/config/provider-models.d.ts.map +1 -0
- package/ccw/dist/config/provider-models.js +172 -0
- package/ccw/dist/config/provider-models.js.map +1 -0
- package/ccw/dist/core/cache-manager.d.ts.map +1 -1
- package/ccw/dist/core/cache-manager.js +3 -5
- package/ccw/dist/core/cache-manager.js.map +1 -1
- package/ccw/dist/core/dashboard-generator.d.ts.map +1 -1
- package/ccw/dist/core/dashboard-generator.js +3 -1
- package/ccw/dist/core/dashboard-generator.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +169 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.js +234 -18
- package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/hooks-routes.js +30 -32
- package/ccw/dist/core/routes/hooks-routes.js.map +1 -1
- package/ccw/dist/core/routes/litellm-api-routes.d.ts +21 -0
- package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/litellm-api-routes.js +780 -0
- package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -0
- package/ccw/dist/core/routes/litellm-routes.d.ts +20 -0
- package/ccw/dist/core/routes/litellm-routes.d.ts.map +1 -0
- package/ccw/dist/core/routes/litellm-routes.js +85 -0
- package/ccw/dist/core/routes/litellm-routes.js.map +1 -0
- package/ccw/dist/core/routes/mcp-routes.js +2 -2
- package/ccw/dist/core/routes/mcp-routes.js.map +1 -1
- package/ccw/dist/core/routes/status-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/status-routes.js +39 -0
- package/ccw/dist/core/routes/status-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +1 -1
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/dist/core/server.d.ts.map +1 -1
- package/ccw/dist/core/server.js +15 -1
- package/ccw/dist/core/server.js.map +1 -1
- package/ccw/dist/mcp-server/index.js +1 -1
- package/ccw/dist/mcp-server/index.js.map +1 -1
- package/ccw/dist/tools/claude-cli-tools.d.ts +82 -0
- package/ccw/dist/tools/claude-cli-tools.d.ts.map +1 -0
- package/ccw/dist/tools/claude-cli-tools.js +216 -0
- package/ccw/dist/tools/claude-cli-tools.js.map +1 -0
- package/ccw/dist/tools/cli-executor.d.ts.map +1 -1
- package/ccw/dist/tools/cli-executor.js +76 -14
- package/ccw/dist/tools/cli-executor.js.map +1 -1
- package/ccw/dist/tools/codex-lens.d.ts +9 -2
- package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
- package/ccw/dist/tools/codex-lens.js +114 -9
- package/ccw/dist/tools/codex-lens.js.map +1 -1
- package/ccw/dist/tools/context-cache-store.d.ts +136 -0
- package/ccw/dist/tools/context-cache-store.d.ts.map +1 -0
- package/ccw/dist/tools/context-cache-store.js +256 -0
- package/ccw/dist/tools/context-cache-store.js.map +1 -0
- package/ccw/dist/tools/context-cache.d.ts +56 -0
- package/ccw/dist/tools/context-cache.d.ts.map +1 -0
- package/ccw/dist/tools/context-cache.js +294 -0
- package/ccw/dist/tools/context-cache.js.map +1 -0
- package/ccw/dist/tools/core-memory.d.ts.map +1 -1
- package/ccw/dist/tools/core-memory.js +33 -19
- package/ccw/dist/tools/core-memory.js.map +1 -1
- package/ccw/dist/tools/index.d.ts.map +1 -1
- package/ccw/dist/tools/index.js +2 -0
- package/ccw/dist/tools/index.js.map +1 -1
- package/ccw/dist/tools/litellm-client.d.ts +85 -0
- package/ccw/dist/tools/litellm-client.d.ts.map +1 -0
- package/ccw/dist/tools/litellm-client.js +188 -0
- package/ccw/dist/tools/litellm-client.js.map +1 -0
- package/ccw/dist/tools/litellm-executor.d.ts +34 -0
- package/ccw/dist/tools/litellm-executor.d.ts.map +1 -0
- package/ccw/dist/tools/litellm-executor.js +192 -0
- package/ccw/dist/tools/litellm-executor.js.map +1 -0
- package/ccw/dist/tools/pattern-parser.d.ts +55 -0
- package/ccw/dist/tools/pattern-parser.d.ts.map +1 -0
- package/ccw/dist/tools/pattern-parser.js +237 -0
- package/ccw/dist/tools/pattern-parser.js.map +1 -0
- package/ccw/dist/tools/smart-search.d.ts +1 -0
- package/ccw/dist/tools/smart-search.d.ts.map +1 -1
- package/ccw/dist/tools/smart-search.js +117 -41
- package/ccw/dist/tools/smart-search.js.map +1 -1
- package/ccw/dist/types/litellm-api-config.d.ts +294 -0
- package/ccw/dist/types/litellm-api-config.d.ts.map +1 -0
- package/ccw/dist/types/litellm-api-config.js +8 -0
- package/ccw/dist/types/litellm-api-config.js.map +1 -0
- package/ccw/src/cli.ts +258 -244
- package/ccw/src/commands/cli.ts +153 -9
- package/ccw/src/commands/hook.ts +3 -2
- package/ccw/src/config/.litellm-api-config-manager.ts.2025-12-23T11-57-43-727Z.bak +441 -0
- package/ccw/src/config/litellm-api-config-manager.ts +1012 -0
- package/ccw/src/config/provider-models.ts +222 -0
- package/ccw/src/core/cache-manager.ts +292 -294
- package/ccw/src/core/dashboard-generator.ts +3 -1
- package/ccw/src/core/routes/cli-routes.ts +192 -0
- package/ccw/src/core/routes/codexlens-routes.ts +241 -19
- package/ccw/src/core/routes/hooks-routes.ts +399 -405
- package/ccw/src/core/routes/litellm-api-routes.ts +930 -0
- package/ccw/src/core/routes/litellm-routes.ts +107 -0
- package/ccw/src/core/routes/mcp-routes.ts +1271 -1271
- package/ccw/src/core/routes/status-routes.ts +51 -0
- package/ccw/src/core/routes/system-routes.ts +1 -1
- package/ccw/src/core/server.ts +15 -1
- package/ccw/src/mcp-server/index.ts +1 -1
- package/ccw/src/templates/dashboard-css/12-cli-legacy.css +44 -0
- package/ccw/src/templates/dashboard-css/31-api-settings.css +2265 -0
- package/ccw/src/templates/dashboard-js/components/cli-history.js +15 -8
- package/ccw/src/templates/dashboard-js/components/cli-status.js +323 -9
- package/ccw/src/templates/dashboard-js/components/navigation.js +329 -313
- package/ccw/src/templates/dashboard-js/i18n.js +583 -1
- package/ccw/src/templates/dashboard-js/views/api-settings.js +3362 -0
- package/ccw/src/templates/dashboard-js/views/cli-manager.js +199 -24
- package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +1265 -27
- package/ccw/src/templates/dashboard.html +840 -831
- package/ccw/src/tools/claude-cli-tools.ts +300 -0
- package/ccw/src/tools/cli-executor.ts +83 -14
- package/ccw/src/tools/codex-lens.ts +146 -9
- package/ccw/src/tools/context-cache-store.ts +368 -0
- package/ccw/src/tools/context-cache.ts +393 -0
- package/ccw/src/tools/core-memory.ts +33 -19
- package/ccw/src/tools/index.ts +2 -0
- package/ccw/src/tools/litellm-client.ts +246 -0
- package/ccw/src/tools/litellm-executor.ts +241 -0
- package/ccw/src/tools/pattern-parser.ts +329 -0
- package/ccw/src/tools/smart-search.ts +142 -41
- package/ccw/src/types/litellm-api-config.ts +402 -0
- package/ccw-litellm/README.md +180 -0
- package/ccw-litellm/pyproject.toml +35 -0
- package/ccw-litellm/src/ccw_litellm/__init__.py +47 -0
- package/ccw-litellm/src/ccw_litellm/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/__pycache__/cli.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/cli.py +108 -0
- package/ccw-litellm/src/ccw_litellm/clients/__init__.py +12 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +251 -0
- package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +165 -0
- package/ccw-litellm/src/ccw_litellm/config/__init__.py +22 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/config/loader.py +316 -0
- package/ccw-litellm/src/ccw_litellm/config/models.py +130 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__init__.py +14 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/__init__.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/embedder.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/llm.cpython-313.pyc +0 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/embedder.py +52 -0
- package/ccw-litellm/src/ccw_litellm/interfaces/llm.py +45 -0
- package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/cli/commands.py +378 -23
- package/codex-lens/src/codexlens/cli/embedding_manager.py +660 -56
- package/codex-lens/src/codexlens/cli/model_manager.py +31 -18
- package/codex-lens/src/codexlens/cli/output.py +12 -1
- package/codex-lens/src/codexlens/config.py +93 -0
- package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/search/chain_search.py +6 -2
- package/codex-lens/src/codexlens/search/hybrid_search.py +44 -21
- package/codex-lens/src/codexlens/search/ranking.py +1 -1
- package/codex-lens/src/codexlens/semantic/__init__.py +42 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/base.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/semantic/base.py +61 -0
- package/codex-lens/src/codexlens/semantic/chunker.py +43 -20
- package/codex-lens/src/codexlens/semantic/embedder.py +60 -13
- package/codex-lens/src/codexlens/semantic/factory.py +98 -0
- package/codex-lens/src/codexlens/semantic/gpu_support.py +225 -3
- package/codex-lens/src/codexlens/semantic/litellm_embedder.py +144 -0
- package/codex-lens/src/codexlens/semantic/rotational_embedder.py +434 -0
- package/codex-lens/src/codexlens/semantic/vector_store.py +33 -8
- package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
- package/codex-lens/src/codexlens/storage/path_mapper.py +27 -1
- package/package.json +15 -5
- package/.codex/prompts.zip +0 -0
- package/ccw/package.json +0 -65
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pattern Parser - Parse @expression patterns to file lists
|
|
3
|
+
* Supports glob patterns like @src/**.ts, @CLAUDE.md, @../shared/**
|
|
4
|
+
*/
|
|
5
|
+
import { glob } from 'glob';
|
|
6
|
+
import { resolve, isAbsolute, normalize } from 'path';
|
|
7
|
+
import { existsSync, statSync, readFileSync } from 'fs';
|
|
8
|
+
/** Default ignore patterns */
|
|
9
|
+
const DEFAULT_IGNORE = [
|
|
10
|
+
'**/node_modules/**',
|
|
11
|
+
'**/.git/**',
|
|
12
|
+
'**/dist/**',
|
|
13
|
+
'**/build/**',
|
|
14
|
+
'**/.next/**',
|
|
15
|
+
'**/__pycache__/**',
|
|
16
|
+
'**/*.pyc',
|
|
17
|
+
'**/venv/**',
|
|
18
|
+
'**/.venv/**',
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Extract pattern from @expression
|
|
22
|
+
* Example: "@src/**.ts" -> "src/**.ts"
|
|
23
|
+
*/
|
|
24
|
+
function extractPattern(expression) {
|
|
25
|
+
const trimmed = expression.trim();
|
|
26
|
+
if (!trimmed.startsWith('@')) {
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
return trimmed.slice(1);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Check if a pattern is a glob pattern or exact file
|
|
33
|
+
*/
|
|
34
|
+
function isGlobPattern(pattern) {
|
|
35
|
+
return pattern.includes('*') || pattern.includes('?') || pattern.includes('{') || pattern.includes('[');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Validate that a path is within allowed directories
|
|
39
|
+
*/
|
|
40
|
+
function isPathAllowed(filePath, allowedDirs) {
|
|
41
|
+
const normalized = normalize(filePath);
|
|
42
|
+
return allowedDirs.some(dir => normalized.startsWith(normalize(dir)));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Build allowed directories list from options
|
|
46
|
+
*/
|
|
47
|
+
function buildAllowedDirs(cwd, includeDirs) {
|
|
48
|
+
const allowed = [cwd];
|
|
49
|
+
if (includeDirs) {
|
|
50
|
+
for (const dir of includeDirs) {
|
|
51
|
+
const absDir = isAbsolute(dir) ? dir : resolve(cwd, dir);
|
|
52
|
+
if (existsSync(absDir) && statSync(absDir).isDirectory()) {
|
|
53
|
+
allowed.push(absDir);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return allowed.map(d => normalize(d));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse @expressions and return matched files
|
|
61
|
+
*/
|
|
62
|
+
export async function parsePatterns(patterns, options = {}) {
|
|
63
|
+
const { cwd = process.cwd(), includeDirs = [], ignore = [], maxFiles = 1000, followSymlinks = false, } = options;
|
|
64
|
+
const result = {
|
|
65
|
+
files: [],
|
|
66
|
+
patterns: [],
|
|
67
|
+
errors: [],
|
|
68
|
+
stats: {
|
|
69
|
+
total_files: 0,
|
|
70
|
+
total_patterns: patterns.length,
|
|
71
|
+
matched_patterns: 0,
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
// Build allowed directories
|
|
75
|
+
const allowedDirs = buildAllowedDirs(cwd, includeDirs);
|
|
76
|
+
// Merge ignore patterns
|
|
77
|
+
const allIgnore = [...DEFAULT_IGNORE, ...ignore];
|
|
78
|
+
// Track unique files
|
|
79
|
+
const fileSet = new Set();
|
|
80
|
+
for (const expr of patterns) {
|
|
81
|
+
const pattern = extractPattern(expr);
|
|
82
|
+
if (!pattern) {
|
|
83
|
+
result.errors.push(`Invalid pattern: ${expr} (must start with @)`);
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
result.patterns.push(pattern);
|
|
87
|
+
try {
|
|
88
|
+
if (isGlobPattern(pattern)) {
|
|
89
|
+
// Glob pattern - use glob package
|
|
90
|
+
// Determine base directory for pattern
|
|
91
|
+
let baseDir = cwd;
|
|
92
|
+
let globPattern = pattern;
|
|
93
|
+
// Handle relative paths like ../shared/**
|
|
94
|
+
if (pattern.startsWith('../') || pattern.startsWith('./')) {
|
|
95
|
+
const parts = pattern.split('/');
|
|
96
|
+
const pathParts = [];
|
|
97
|
+
let i = 0;
|
|
98
|
+
// Extract path prefix
|
|
99
|
+
while (i < parts.length && (parts[i] === '..' || parts[i] === '.')) {
|
|
100
|
+
pathParts.push(parts[i]);
|
|
101
|
+
i++;
|
|
102
|
+
}
|
|
103
|
+
// Keep non-glob path parts
|
|
104
|
+
while (i < parts.length && !isGlobPattern(parts[i])) {
|
|
105
|
+
pathParts.push(parts[i]);
|
|
106
|
+
i++;
|
|
107
|
+
}
|
|
108
|
+
// Resolve base directory
|
|
109
|
+
if (pathParts.length > 0) {
|
|
110
|
+
baseDir = resolve(cwd, pathParts.join('/'));
|
|
111
|
+
globPattern = parts.slice(i).join('/') || '**/*';
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// Check if base directory is allowed
|
|
115
|
+
if (!isPathAllowed(baseDir, allowedDirs)) {
|
|
116
|
+
result.errors.push(`Pattern ${expr}: base directory not in allowed paths`);
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
// Execute glob using the glob package
|
|
120
|
+
const matches = await glob(globPattern, {
|
|
121
|
+
cwd: baseDir,
|
|
122
|
+
absolute: true,
|
|
123
|
+
nodir: true,
|
|
124
|
+
follow: followSymlinks,
|
|
125
|
+
ignore: allIgnore,
|
|
126
|
+
dot: false,
|
|
127
|
+
});
|
|
128
|
+
let matchCount = 0;
|
|
129
|
+
for (const file of matches) {
|
|
130
|
+
// Validate each file is in allowed directories
|
|
131
|
+
if (isPathAllowed(file, allowedDirs)) {
|
|
132
|
+
fileSet.add(file);
|
|
133
|
+
matchCount++;
|
|
134
|
+
if (fileSet.size >= maxFiles)
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (matchCount > 0) {
|
|
139
|
+
result.stats.matched_patterns++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
// Exact file path
|
|
144
|
+
const absPath = isAbsolute(pattern) ? pattern : resolve(cwd, pattern);
|
|
145
|
+
// Validate path is allowed
|
|
146
|
+
if (!isPathAllowed(absPath, allowedDirs)) {
|
|
147
|
+
result.errors.push(`Pattern ${expr}: path not in allowed directories`);
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
// Check file exists
|
|
151
|
+
if (existsSync(absPath) && statSync(absPath).isFile()) {
|
|
152
|
+
fileSet.add(absPath);
|
|
153
|
+
result.stats.matched_patterns++;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
result.errors.push(`Pattern ${expr}: file not found`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
result.errors.push(`Pattern ${expr}: ${err.message}`);
|
|
162
|
+
}
|
|
163
|
+
// Check max files limit
|
|
164
|
+
if (fileSet.size >= maxFiles) {
|
|
165
|
+
result.errors.push(`Max files limit (${maxFiles}) reached`);
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
result.files = Array.from(fileSet);
|
|
170
|
+
result.stats.total_files = result.files.length;
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Pack files into a single content string with metadata headers
|
|
175
|
+
*/
|
|
176
|
+
export async function packFiles(files, options = {}) {
|
|
177
|
+
const { includeMetadata = true, separator = '\n\n', maxFileSize = 1024 * 1024, // 1MB default
|
|
178
|
+
} = options;
|
|
179
|
+
const parts = [];
|
|
180
|
+
const packedFiles = [];
|
|
181
|
+
const skippedFiles = [];
|
|
182
|
+
let totalBytes = 0;
|
|
183
|
+
for (const file of files) {
|
|
184
|
+
try {
|
|
185
|
+
const stats = statSync(file);
|
|
186
|
+
// Skip files that are too large
|
|
187
|
+
if (stats.size > maxFileSize) {
|
|
188
|
+
skippedFiles.push(file);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
const content = readFileSync(file, 'utf-8');
|
|
192
|
+
if (includeMetadata) {
|
|
193
|
+
// Add file header with metadata
|
|
194
|
+
const header = [
|
|
195
|
+
`=== FILE: ${file} ===`,
|
|
196
|
+
`Size: ${stats.size} bytes`,
|
|
197
|
+
`Modified: ${stats.mtime.toISOString()}`,
|
|
198
|
+
'---',
|
|
199
|
+
].join('\n');
|
|
200
|
+
parts.push(header + '\n' + content);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
parts.push(content);
|
|
204
|
+
}
|
|
205
|
+
packedFiles.push(file);
|
|
206
|
+
totalBytes += content.length;
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
skippedFiles.push(file);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
content: parts.join(separator),
|
|
214
|
+
packedFiles,
|
|
215
|
+
skippedFiles,
|
|
216
|
+
totalBytes,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Parse patterns and pack files in one call
|
|
221
|
+
*/
|
|
222
|
+
export async function parseAndPack(patterns, options = {}) {
|
|
223
|
+
const parseResult = await parsePatterns(patterns, options);
|
|
224
|
+
const packResult = await packFiles(parseResult.files, {
|
|
225
|
+
includeMetadata: options.includeMetadata,
|
|
226
|
+
separator: options.separator,
|
|
227
|
+
maxFileSize: options.maxFileSize,
|
|
228
|
+
});
|
|
229
|
+
return {
|
|
230
|
+
content: packResult.content,
|
|
231
|
+
parseResult,
|
|
232
|
+
packedFiles: packResult.packedFiles,
|
|
233
|
+
skippedFiles: packResult.skippedFiles,
|
|
234
|
+
totalBytes: packResult.totalBytes,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=pattern-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pattern-parser.js","sourceRoot":"","sources":["../../src/tools/pattern-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-search.d.ts","sourceRoot":"","sources":["../../src/tools/smart-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAM/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"smart-search.d.ts","sourceRoot":"","sources":["../../src/tools/smart-search.ts"],"names":[],"mappings":"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"}
|