thatgfsj-code 0.3.0 → 0.3.1
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/CHANGELOG.md +229 -0
- package/DEVELOPMENT.md +286 -0
- package/README.md +144 -79
- package/dist/agent/core.d.ts +56 -0
- package/dist/agent/core.d.ts.map +1 -0
- package/dist/agent/core.js +142 -0
- package/dist/agent/core.js.map +1 -0
- package/dist/agent/index.d.ts +8 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +8 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/intent.d.ts +36 -0
- package/dist/agent/intent.d.ts.map +1 -0
- package/dist/agent/intent.js +146 -0
- package/dist/agent/intent.js.map +1 -0
- package/dist/agent/streaming.d.ts +50 -0
- package/dist/agent/streaming.d.ts.map +1 -0
- package/dist/agent/streaming.js +110 -0
- package/dist/agent/streaming.js.map +1 -0
- package/dist/core/ai-engine.d.ts +76 -0
- package/dist/core/ai-engine.d.ts.map +1 -0
- package/dist/core/ai-engine.js +394 -0
- package/dist/core/ai-engine.js.map +1 -0
- package/dist/core/cli.d.ts +21 -0
- package/dist/core/cli.d.ts.map +1 -0
- package/dist/core/cli.js +143 -0
- package/dist/core/cli.js.map +1 -0
- package/dist/core/config.d.ts +55 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +162 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/context-compactor.d.ts +54 -0
- package/dist/core/context-compactor.d.ts.map +1 -0
- package/dist/core/context-compactor.js +197 -0
- package/dist/core/context-compactor.js.map +1 -0
- package/dist/core/hooks.d.ts +75 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +146 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/permissions.d.ts +52 -0
- package/dist/core/permissions.d.ts.map +1 -0
- package/dist/core/permissions.js +237 -0
- package/dist/core/permissions.js.map +1 -0
- package/dist/core/session.d.ts +54 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +147 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +175 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/state.d.ts +60 -0
- package/dist/core/state.d.ts.map +1 -0
- package/dist/core/state.js +106 -0
- package/dist/core/state.js.map +1 -0
- package/dist/core/subagent.d.ts +68 -0
- package/dist/core/subagent.d.ts.map +1 -0
- package/dist/core/subagent.js +142 -0
- package/dist/core/subagent.js.map +1 -0
- package/dist/core/system-prompt.d.ts +40 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +138 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/tool-registry.d.ts +53 -0
- package/dist/core/tool-registry.d.ts.map +1 -0
- package/dist/core/tool-registry.js +138 -0
- package/dist/core/tool-registry.js.map +1 -0
- package/dist/core/types.d.ts +206 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +127 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/{cmd/index.d.ts.map → index.d.ts.map} +1 -1
- package/dist/index.js +472 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/client.d.ts +1 -1
- package/dist/mcp/client.d.ts.map +1 -1
- package/dist/repl/index.d.ts +8 -0
- package/dist/repl/index.d.ts.map +1 -0
- package/dist/repl/index.js +8 -0
- package/dist/repl/index.js.map +1 -0
- package/dist/repl/input.d.ts +69 -0
- package/dist/repl/input.d.ts.map +1 -0
- package/dist/repl/input.js +139 -0
- package/dist/repl/input.js.map +1 -0
- package/dist/repl/loop.d.ts +184 -0
- package/dist/repl/loop.d.ts.map +1 -0
- package/dist/repl/loop.js +932 -0
- package/dist/repl/loop.js.map +1 -0
- package/dist/repl/output.d.ts +105 -0
- package/dist/repl/output.d.ts.map +1 -0
- package/dist/repl/output.js +199 -0
- package/dist/repl/output.js.map +1 -0
- package/dist/repl/welcome.d.ts +68 -0
- package/dist/repl/welcome.d.ts.map +1 -0
- package/dist/repl/welcome.js +254 -0
- package/dist/repl/welcome.js.map +1 -0
- package/dist/tools/file.d.ts +1 -1
- package/dist/tools/file.d.ts.map +1 -1
- package/dist/tools/git.d.ts +1 -1
- package/dist/tools/git.d.ts.map +1 -1
- package/dist/tools/index.d.ts +15 -35
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +31 -80
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/search.d.ts +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/shell.d.ts +11 -4
- package/dist/tools/shell.d.ts.map +1 -1
- package/dist/tools/shell.js +78 -42
- package/dist/tools/shell.js.map +1 -1
- package/dist/utils/diff-preview.d.ts +42 -0
- package/dist/utils/diff-preview.d.ts.map +1 -0
- package/dist/utils/diff-preview.js +174 -0
- package/dist/utils/diff-preview.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/memory.d.ts +81 -0
- package/dist/utils/memory.d.ts.map +1 -0
- package/dist/utils/memory.js +186 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/project-context.d.ts +62 -0
- package/dist/utils/project-context.d.ts.map +1 -0
- package/dist/utils/project-context.js +197 -0
- package/dist/utils/project-context.js.map +1 -0
- package/docs/API_KEY_GUIDE.md +6 -0
- package/docs/FAQ.md +25 -3
- package/package.json +41 -9
- package/ROADMAP.md +0 -61
- package/dist/app/agent.d.ts +0 -31
- package/dist/app/agent.d.ts.map +0 -1
- package/dist/app/agent.js +0 -106
- package/dist/app/agent.js.map +0 -1
- package/dist/app/index.d.ts +0 -39
- package/dist/app/index.d.ts.map +0 -1
- package/dist/app/index.js +0 -80
- package/dist/app/index.js.map +0 -1
- package/dist/cmd/index.d.ts +0 -12
- package/dist/cmd/index.js +0 -85
- package/dist/cmd/index.js.map +0 -1
- package/dist/config/index.d.ts +0 -39
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -110
- package/dist/config/index.js.map +0 -1
- package/dist/config/providers.d.ts +0 -23
- package/dist/config/providers.d.ts.map +0 -1
- package/dist/config/providers.js +0 -152
- package/dist/config/providers.js.map +0 -1
- package/dist/config/types.d.ts +0 -33
- package/dist/config/types.d.ts.map +0 -1
- package/dist/config/types.js +0 -5
- package/dist/config/types.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -31
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -71
- package/dist/hooks/index.js.map +0 -1
- package/dist/llm/anthropic.d.ts +0 -17
- package/dist/llm/anthropic.d.ts.map +0 -1
- package/dist/llm/anthropic.js +0 -126
- package/dist/llm/anthropic.js.map +0 -1
- package/dist/llm/gemini.d.ts +0 -16
- package/dist/llm/gemini.d.ts.map +0 -1
- package/dist/llm/gemini.js +0 -107
- package/dist/llm/gemini.js.map +0 -1
- package/dist/llm/index.d.ts +0 -48
- package/dist/llm/index.d.ts.map +0 -1
- package/dist/llm/index.js +0 -174
- package/dist/llm/index.js.map +0 -1
- package/dist/llm/openai.d.ts +0 -17
- package/dist/llm/openai.d.ts.map +0 -1
- package/dist/llm/openai.js +0 -113
- package/dist/llm/openai.js.map +0 -1
- package/dist/llm/provider.d.ts +0 -33
- package/dist/llm/provider.d.ts.map +0 -1
- package/dist/llm/provider.js +0 -6
- package/dist/llm/provider.js.map +0 -1
- package/dist/prompts/index.d.ts +0 -27
- package/dist/prompts/index.d.ts.map +0 -1
- package/dist/prompts/index.js +0 -102
- package/dist/prompts/index.js.map +0 -1
- package/dist/session/compactor.d.ts +0 -48
- package/dist/session/compactor.d.ts.map +0 -1
- package/dist/session/compactor.js +0 -77
- package/dist/session/compactor.js.map +0 -1
- package/dist/session/index.d.ts +0 -48
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -69
- package/dist/session/index.js.map +0 -1
- package/dist/session/message.d.ts +0 -26
- package/dist/session/message.d.ts.map +0 -1
- package/dist/session/message.js +0 -34
- package/dist/session/message.js.map +0 -1
- package/dist/tools/types.d.ts +0 -68
- package/dist/tools/types.d.ts.map +0 -1
- package/dist/tools/types.js +0 -57
- package/dist/tools/types.js.map +0 -1
- package/dist/tui/index.d.ts +0 -8
- package/dist/tui/index.d.ts.map +0 -1
- package/dist/tui/index.js +0 -8
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/input.d.ts +0 -14
- package/dist/tui/input.d.ts.map +0 -1
- package/dist/tui/input.js +0 -50
- package/dist/tui/input.js.map +0 -1
- package/dist/tui/output.d.ts +0 -20
- package/dist/tui/output.d.ts.map +0 -1
- package/dist/tui/output.js +0 -70
- package/dist/tui/output.js.map +0 -1
- package/dist/tui/repl.d.ts +0 -25
- package/dist/tui/repl.d.ts.map +0 -1
- package/dist/tui/repl.js +0 -114
- package/dist/tui/repl.js.map +0 -1
- package/dist/tui/welcome.d.ts +0 -15
- package/dist/tui/welcome.d.ts.map +0 -1
- package/dist/tui/welcome.js +0 -86
- package/dist/tui/welcome.js.map +0 -1
- package/dist/types.d.ts +0 -38
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/utils/diff.d.ts +0 -22
- package/dist/utils/diff.d.ts.map +0 -1
- package/dist/utils/diff.js +0 -60
- package/dist/utils/diff.js.map +0 -1
- package/dist/utils/project.d.ts +0 -32
- package/dist/utils/project.d.ts.map +0 -1
- package/dist/utils/project.js +0 -89
- package/dist/utils/project.js.map +0 -1
- package/src/app/agent.ts +0 -140
- package/src/app/index.ts +0 -101
- package/src/cmd/index.ts +0 -96
- package/src/config/index.ts +0 -130
- package/src/config/providers.ts +0 -160
- package/src/config/types.ts +0 -46
- package/src/hooks/index.ts +0 -111
- package/src/llm/anthropic.ts +0 -146
- package/src/llm/gemini.ts +0 -127
- package/src/llm/index.ts +0 -209
- package/src/llm/openai.ts +0 -132
- package/src/llm/provider.ts +0 -38
- package/src/mcp/client.ts +0 -330
- package/src/prompts/index.ts +0 -123
- package/src/session/compactor.ts +0 -103
- package/src/session/index.ts +0 -81
- package/src/session/message.ts +0 -42
- package/src/tools/file.ts +0 -117
- package/src/tools/git.ts +0 -132
- package/src/tools/index.ts +0 -108
- package/src/tools/search.ts +0 -263
- package/src/tools/shell.ts +0 -136
- package/src/tools/types.ts +0 -122
- package/src/tui/index.ts +0 -8
- package/src/tui/input.ts +0 -56
- package/src/tui/output.ts +0 -83
- package/src/tui/repl.ts +0 -131
- package/src/tui/welcome.ts +0 -101
- package/src/types.ts +0 -42
- package/src/utils/diff.ts +0 -71
- package/src/utils/project.ts +0 -99
- package/tsconfig.json +0 -19
package/src/utils/diff.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Diff Preview - Show file changes in a readable format
|
|
3
|
-
* Migrated from old src/utils/diff-preview.ts
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export interface DiffResult {
|
|
7
|
-
original: string;
|
|
8
|
-
modified: string;
|
|
9
|
-
diff: string;
|
|
10
|
-
added: number;
|
|
11
|
-
removed: number;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export class DiffPreview {
|
|
15
|
-
/**
|
|
16
|
-
* Generate a simple line-by-line diff
|
|
17
|
-
*/
|
|
18
|
-
static diff(original: string, modified: string): DiffResult {
|
|
19
|
-
const originalLines = original.split('\n');
|
|
20
|
-
const modifiedLines = modified.split('\n');
|
|
21
|
-
const diffLines: string[] = [];
|
|
22
|
-
let added = 0;
|
|
23
|
-
let removed = 0;
|
|
24
|
-
|
|
25
|
-
// Simple diff: show removed (-) and added (+) lines
|
|
26
|
-
const maxLen = Math.max(originalLines.length, modifiedLines.length);
|
|
27
|
-
|
|
28
|
-
for (let i = 0; i < maxLen; i++) {
|
|
29
|
-
const orig = originalLines[i];
|
|
30
|
-
const mod = modifiedLines[i];
|
|
31
|
-
|
|
32
|
-
if (orig === mod) {
|
|
33
|
-
diffLines.push(` ${orig}`);
|
|
34
|
-
} else {
|
|
35
|
-
if (orig !== undefined) {
|
|
36
|
-
diffLines.push(`- ${orig}`);
|
|
37
|
-
removed++;
|
|
38
|
-
}
|
|
39
|
-
if (mod !== undefined) {
|
|
40
|
-
diffLines.push(`+ ${mod}`);
|
|
41
|
-
added++;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return {
|
|
47
|
-
original,
|
|
48
|
-
modified,
|
|
49
|
-
diff: diffLines.join('\n'),
|
|
50
|
-
added,
|
|
51
|
-
removed,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Format diff for display
|
|
57
|
-
*/
|
|
58
|
-
static format(result: DiffResult): string {
|
|
59
|
-
const lines = result.diff.split('\n').map(line => {
|
|
60
|
-
if (line.startsWith('+')) return `\x1b[32m${line}\x1b[0m`;
|
|
61
|
-
if (line.startsWith('-')) return `\x1b[31m${line}\x1b[0m`;
|
|
62
|
-
return line;
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
return [
|
|
66
|
-
`\x1b[36m--- Changes: -${result.removed} / +${result.added} ---\x1b[0m`,
|
|
67
|
-
...lines,
|
|
68
|
-
`\x1b[36m--- End ---\x1b[0m`,
|
|
69
|
-
].join('\n');
|
|
70
|
-
}
|
|
71
|
-
}
|
package/src/utils/project.ts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project Context - Detect project type and gather info
|
|
3
|
-
* Migrated from old src/utils/project-context.ts + getProjectContext() from index.ts
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { existsSync, readdirSync, statSync, readFileSync } from 'fs';
|
|
7
|
-
import { join } from 'path';
|
|
8
|
-
|
|
9
|
-
export interface ProjectInfo {
|
|
10
|
-
type: string;
|
|
11
|
-
name: string;
|
|
12
|
-
path: string;
|
|
13
|
-
fileCount: number;
|
|
14
|
-
dependencies: number;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface PackageJson {
|
|
18
|
-
name?: string;
|
|
19
|
-
version?: string;
|
|
20
|
-
dependencies?: Record<string, string>;
|
|
21
|
-
devDependencies?: Record<string, string>;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export class ProjectContext {
|
|
25
|
-
/**
|
|
26
|
-
* Get project context string for display
|
|
27
|
-
*/
|
|
28
|
-
static getSummary(cwd: string = process.cwd()): string {
|
|
29
|
-
const info: string[] = [];
|
|
30
|
-
|
|
31
|
-
try {
|
|
32
|
-
const pkgPath = join(cwd, 'package.json');
|
|
33
|
-
if (existsSync(pkgPath)) {
|
|
34
|
-
const pkg: PackageJson = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
35
|
-
info.push(`📦 Project: ${cwd}`);
|
|
36
|
-
info.push(` Name: ${pkg.name || 'unknown'}`);
|
|
37
|
-
const depCount = Object.keys(pkg.dependencies || {}).length;
|
|
38
|
-
if (depCount > 0) info.push(` Deps: ${depCount} packages`);
|
|
39
|
-
} else {
|
|
40
|
-
info.push(`📁 Working dir: ${cwd}`);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const fileCount = ProjectContext.countCodeFiles(cwd);
|
|
44
|
-
if (fileCount > 0) {
|
|
45
|
-
info.push(` Files: ${fileCount} code files`);
|
|
46
|
-
}
|
|
47
|
-
} catch {
|
|
48
|
-
info.push(`📁 Working dir: ${cwd}`);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return info.join('\n');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Count code files in directory (skipping node_modules, .git, etc.)
|
|
56
|
-
*/
|
|
57
|
-
static countCodeFiles(dir: string, maxDepth = 3): number {
|
|
58
|
-
let count = 0;
|
|
59
|
-
const codeExts = /\.(ts|js|py|go|rs|java|cpp|c|h|tsx|jsx|vue|svelte)$/;
|
|
60
|
-
|
|
61
|
-
const walk = (d: string, depth: number) => {
|
|
62
|
-
if (depth > maxDepth) return;
|
|
63
|
-
try {
|
|
64
|
-
const items = readdirSync(d);
|
|
65
|
-
for (const item of items) {
|
|
66
|
-
if (['node_modules', '.git', 'dist', 'build', '__pycache__'].includes(item)) continue;
|
|
67
|
-
const fullPath = join(d, item);
|
|
68
|
-
try {
|
|
69
|
-
const stat = statSync(fullPath);
|
|
70
|
-
if (stat.isDirectory()) {
|
|
71
|
-
walk(fullPath, depth + 1);
|
|
72
|
-
} else if (codeExts.test(item)) {
|
|
73
|
-
count++;
|
|
74
|
-
}
|
|
75
|
-
} catch {
|
|
76
|
-
// Skip inaccessible files
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
} catch {
|
|
80
|
-
// Skip inaccessible directories
|
|
81
|
-
}
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
walk(dir, 0);
|
|
85
|
-
return count;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Detect project type from files
|
|
90
|
-
*/
|
|
91
|
-
static detectType(cwd: string = process.cwd()): string {
|
|
92
|
-
if (existsSync(join(cwd, 'package.json'))) return 'node';
|
|
93
|
-
if (existsSync(join(cwd, 'Cargo.toml'))) return 'rust';
|
|
94
|
-
if (existsSync(join(cwd, 'go.mod'))) return 'go';
|
|
95
|
-
if (existsSync(join(cwd, 'pyproject.toml')) || existsSync(join(cwd, 'requirements.txt'))) return 'python';
|
|
96
|
-
if (existsSync(join(cwd, 'build.gradle'))) return 'java';
|
|
97
|
-
return 'unknown';
|
|
98
|
-
}
|
|
99
|
-
}
|
package/tsconfig.json
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ESNext",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"outDir": "./dist",
|
|
7
|
-
"rootDir": "./src",
|
|
8
|
-
"strict": true,
|
|
9
|
-
"esModuleInterop": true,
|
|
10
|
-
"skipLibCheck": true,
|
|
11
|
-
"forceConsistentCasingInFileNames": true,
|
|
12
|
-
"resolveJsonModule": true,
|
|
13
|
-
"declaration": true,
|
|
14
|
-
"declarationMap": true,
|
|
15
|
-
"sourceMap": true
|
|
16
|
-
},
|
|
17
|
-
"include": ["src/**/*"],
|
|
18
|
-
"exclude": ["node_modules", "dist"]
|
|
19
|
-
}
|