gencode-ai 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/.env.example +11 -0
- package/CLAUDE.md +70 -0
- package/LICENSE +21 -0
- package/README.md +117 -0
- package/dist/agent/agent.d.ts +84 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +233 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/index.d.ts +6 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +6 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/types.d.ts +47 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +5 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/cli/components/App.d.ts +14 -0
- package/dist/cli/components/App.d.ts.map +1 -0
- package/dist/cli/components/App.js +395 -0
- package/dist/cli/components/App.js.map +1 -0
- package/dist/cli/components/CommandSuggestions.d.ts +13 -0
- package/dist/cli/components/CommandSuggestions.d.ts.map +1 -0
- package/dist/cli/components/CommandSuggestions.js +32 -0
- package/dist/cli/components/CommandSuggestions.js.map +1 -0
- package/dist/cli/components/Header.d.ts +9 -0
- package/dist/cli/components/Header.d.ts.map +1 -0
- package/dist/cli/components/Header.js +13 -0
- package/dist/cli/components/Header.js.map +1 -0
- package/dist/cli/components/Input.d.ts +13 -0
- package/dist/cli/components/Input.d.ts.map +1 -0
- package/dist/cli/components/Input.js +27 -0
- package/dist/cli/components/Input.js.map +1 -0
- package/dist/cli/components/Logo.d.ts +2 -0
- package/dist/cli/components/Logo.d.ts.map +1 -0
- package/dist/cli/components/Logo.js +8 -0
- package/dist/cli/components/Logo.js.map +1 -0
- package/dist/cli/components/Messages.d.ts +37 -0
- package/dist/cli/components/Messages.d.ts.map +1 -0
- package/dist/cli/components/Messages.js +106 -0
- package/dist/cli/components/Messages.js.map +1 -0
- package/dist/cli/components/ModelSelector.d.ts +13 -0
- package/dist/cli/components/ModelSelector.d.ts.map +1 -0
- package/dist/cli/components/ModelSelector.js +72 -0
- package/dist/cli/components/ModelSelector.js.map +1 -0
- package/dist/cli/components/Spinner.d.ts +12 -0
- package/dist/cli/components/Spinner.d.ts.map +1 -0
- package/dist/cli/components/Spinner.js +45 -0
- package/dist/cli/components/Spinner.js.map +1 -0
- package/dist/cli/components/index.d.ts +12 -0
- package/dist/cli/components/index.d.ts.map +1 -0
- package/dist/cli/components/index.js +12 -0
- package/dist/cli/components/index.js.map +1 -0
- package/dist/cli/components/theme.d.ts +31 -0
- package/dist/cli/components/theme.d.ts.map +1 -0
- package/dist/cli/components/theme.js +36 -0
- package/dist/cli/components/theme.js.map +1 -0
- package/dist/cli/index-legacy.d.ts +7 -0
- package/dist/cli/index-legacy.d.ts.map +1 -0
- package/dist/cli/index-legacy.js +431 -0
- package/dist/cli/index-legacy.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +116 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ink-cli.d.ts +7 -0
- package/dist/cli/ink-cli.d.ts.map +1 -0
- package/dist/cli/ink-cli.js +105 -0
- package/dist/cli/ink-cli.js.map +1 -0
- package/dist/cli/session-picker.d.ts +16 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +280 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli/ui.d.ts +61 -0
- package/dist/cli/ui.d.ts.map +1 -0
- package/dist/cli/ui.js +364 -0
- package/dist/cli/ui.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/manager.d.ts +31 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +65 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/types.d.ts +22 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +6 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/index.d.ts +10 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +9 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/init.d.ts +20 -0
- package/dist/memory/init.d.ts.map +1 -0
- package/dist/memory/init.js +332 -0
- package/dist/memory/init.js.map +1 -0
- package/dist/memory/manager.d.ts +85 -0
- package/dist/memory/manager.d.ts.map +1 -0
- package/dist/memory/manager.js +234 -0
- package/dist/memory/manager.js.map +1 -0
- package/dist/memory/types.d.ts +74 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +6 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/permissions/index.d.ts +7 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +6 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/permissions/manager.d.ts +32 -0
- package/dist/permissions/manager.d.ts.map +1 -0
- package/dist/permissions/manager.js +79 -0
- package/dist/permissions/manager.js.map +1 -0
- package/dist/permissions/types.d.ts +14 -0
- package/dist/permissions/types.d.ts.map +1 -0
- package/dist/permissions/types.js +17 -0
- package/dist/permissions/types.js.map +1 -0
- package/dist/providers/anthropic.d.ts +20 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +185 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/gemini.d.ts +21 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +241 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/index.d.ts +34 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +72 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +19 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +221 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/types.d.ts +125 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +6 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/session/index.d.ts +6 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +6 -0
- package/dist/session/index.js.map +1 -0
- package/dist/session/manager.d.ts +101 -0
- package/dist/session/manager.d.ts.map +1 -0
- package/dist/session/manager.js +295 -0
- package/dist/session/manager.js.map +1 -0
- package/dist/session/types.d.ts +39 -0
- package/dist/session/types.d.ts.map +1 -0
- package/dist/session/types.js +10 -0
- package/dist/session/types.js.map +1 -0
- package/dist/tools/builtin/bash.d.ts +7 -0
- package/dist/tools/builtin/bash.d.ts.map +1 -0
- package/dist/tools/builtin/bash.js +80 -0
- package/dist/tools/builtin/bash.js.map +1 -0
- package/dist/tools/builtin/edit.d.ts +7 -0
- package/dist/tools/builtin/edit.d.ts.map +1 -0
- package/dist/tools/builtin/edit.js +32 -0
- package/dist/tools/builtin/edit.js.map +1 -0
- package/dist/tools/builtin/glob.d.ts +7 -0
- package/dist/tools/builtin/glob.d.ts.map +1 -0
- package/dist/tools/builtin/glob.js +36 -0
- package/dist/tools/builtin/glob.js.map +1 -0
- package/dist/tools/builtin/grep.d.ts +7 -0
- package/dist/tools/builtin/grep.d.ts.map +1 -0
- package/dist/tools/builtin/grep.js +59 -0
- package/dist/tools/builtin/grep.js.map +1 -0
- package/dist/tools/builtin/read.d.ts +7 -0
- package/dist/tools/builtin/read.d.ts.map +1 -0
- package/dist/tools/builtin/read.js +29 -0
- package/dist/tools/builtin/read.js.map +1 -0
- package/dist/tools/builtin/write.d.ts +7 -0
- package/dist/tools/builtin/write.d.ts.map +1 -0
- package/dist/tools/builtin/write.js +24 -0
- package/dist/tools/builtin/write.js.map +1 -0
- package/dist/tools/index.d.ts +38 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +32 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/registry.d.ts +22 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +71 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/types.d.ts +62 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +126 -0
- package/dist/tools/types.js.map +1 -0
- package/docs/README.md +16 -0
- package/docs/proposals/0001-web-fetch-tool.md +293 -0
- package/docs/proposals/0002-web-search-tool.md +306 -0
- package/docs/proposals/0003-task-subagents.md +333 -0
- package/docs/proposals/0004-plan-mode.md +338 -0
- package/docs/proposals/0005-todo-system.md +299 -0
- package/docs/proposals/0006-memory-system.md +539 -0
- package/docs/proposals/0007-context-management.md +429 -0
- package/docs/proposals/0008-checkpointing.md +327 -0
- package/docs/proposals/0009-hooks-system.md +343 -0
- package/docs/proposals/0010-mcp-integration.md +382 -0
- package/docs/proposals/0011-custom-commands.md +374 -0
- package/docs/proposals/0012-ask-user-question.md +317 -0
- package/docs/proposals/0013-multi-edit-tool.md +345 -0
- package/docs/proposals/0014-lsp-tool.md +478 -0
- package/docs/proposals/0015-ls-tool.md +407 -0
- package/docs/proposals/0016-kill-shell-tool.md +455 -0
- package/docs/proposals/0017-background-tasks.md +489 -0
- package/docs/proposals/0018-parallel-tool-execution.md +415 -0
- package/docs/proposals/0019-session-enhancements.md +462 -0
- package/docs/proposals/0020-session-summarization.md +447 -0
- package/docs/proposals/0021-skills-system.md +409 -0
- package/docs/proposals/0022-plugin-system.md +467 -0
- package/docs/proposals/0023-permission-enhancements.md +470 -0
- package/docs/proposals/0024-keyboard-shortcuts.md +443 -0
- package/docs/proposals/0025-cost-tracking.md +447 -0
- package/docs/proposals/0026-git-integration.md +475 -0
- package/docs/proposals/0027-enhanced-read-tool.md +514 -0
- package/docs/proposals/0028-enhanced-bash-tool.md +511 -0
- package/docs/proposals/0029-notebook-edit-tool.md +413 -0
- package/docs/proposals/0030-plugin-marketplace.md +360 -0
- package/docs/proposals/0031-command-suggestions.md +295 -0
- package/docs/proposals/0032-ide-integrations.md +328 -0
- package/docs/proposals/0033-enterprise-deployment.md +221 -0
- package/docs/proposals/0034-sandboxing.md +273 -0
- package/docs/proposals/0035-auto-updater.md +311 -0
- package/docs/proposals/0036-enhanced-glob-tool.md +267 -0
- package/docs/proposals/0037-enhanced-grep-tool.md +360 -0
- package/docs/proposals/0038-interactive-cli-ui.md +373 -0
- package/docs/proposals/0039-streaming-enhancements.md +359 -0
- package/docs/proposals/0040-multi-provider-enhancements.md +369 -0
- package/docs/proposals/README.md +84 -0
- package/docs/proposals/TEMPLATE.md +57 -0
- package/docs/proposals/research/claude-code-research.md +307 -0
- package/examples/agent-demo.ts +115 -0
- package/examples/basic.ts +166 -0
- package/package.json +50 -0
- package/src/agent/agent.ts +276 -0
- package/src/agent/index.ts +6 -0
- package/src/agent/types.ts +62 -0
- package/src/cli/components/App.tsx +565 -0
- package/src/cli/components/CommandSuggestions.tsx +58 -0
- package/src/cli/components/Header.tsx +36 -0
- package/src/cli/components/Input.tsx +60 -0
- package/src/cli/components/Logo.tsx +16 -0
- package/src/cli/components/Messages.tsx +210 -0
- package/src/cli/components/ModelSelector.tsx +135 -0
- package/src/cli/components/Spinner.tsx +72 -0
- package/src/cli/components/index.ts +21 -0
- package/src/cli/components/theme.ts +36 -0
- package/src/cli/index.tsx +136 -0
- package/src/config/index.ts +7 -0
- package/src/config/manager.ts +77 -0
- package/src/config/types.ts +25 -0
- package/src/index.ts +86 -0
- package/src/permissions/index.ts +7 -0
- package/src/permissions/manager.ts +97 -0
- package/src/permissions/types.ts +29 -0
- package/src/providers/anthropic.ts +224 -0
- package/src/providers/gemini.ts +295 -0
- package/src/providers/index.ts +97 -0
- package/src/providers/openai.ts +261 -0
- package/src/providers/types.ts +181 -0
- package/src/session/index.ts +6 -0
- package/src/session/manager.ts +354 -0
- package/src/session/types.ts +49 -0
- package/src/tools/builtin/bash.ts +92 -0
- package/src/tools/builtin/edit.ts +37 -0
- package/src/tools/builtin/glob.ts +42 -0
- package/src/tools/builtin/grep.ts +67 -0
- package/src/tools/builtin/read.ts +34 -0
- package/src/tools/builtin/write.ts +27 -0
- package/src/tools/index.ts +36 -0
- package/src/tools/registry.ts +83 -0
- package/src/tools/types.ts +172 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Initialization - /init command implementation
|
|
3
|
+
*
|
|
4
|
+
* Analyzes project structure and generates a AGENT.md file
|
|
5
|
+
* with project-specific context for the AI assistant.
|
|
6
|
+
*/
|
|
7
|
+
import type { ProjectAnalysis, InitOptions, InitResult, ConflictResolution } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Analyze a project directory to extract metadata
|
|
10
|
+
*/
|
|
11
|
+
export declare function analyzeProject(cwd: string): Promise<ProjectAnalysis>;
|
|
12
|
+
/**
|
|
13
|
+
* Generate AGENT.md content from project analysis
|
|
14
|
+
*/
|
|
15
|
+
export declare function generateMemoryContent(analysis: ProjectAnalysis): string;
|
|
16
|
+
/**
|
|
17
|
+
* Run the /init command
|
|
18
|
+
*/
|
|
19
|
+
export declare function runInit(options: InitOptions, resolveConflict?: () => Promise<ConflictResolution>): Promise<InitResult>;
|
|
20
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/memory/init.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAoF1E;AAsID;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAyEvE;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,OAAO,EAAE,WAAW,EACpB,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,CAyDrB"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Initialization - /init command implementation
|
|
3
|
+
*
|
|
4
|
+
* Analyzes project structure and generates a AGENT.md file
|
|
5
|
+
* with project-specific context for the AI assistant.
|
|
6
|
+
*/
|
|
7
|
+
import { existsSync, readFileSync, writeFileSync, readdirSync, statSync } from 'fs';
|
|
8
|
+
import { join, basename } from 'path';
|
|
9
|
+
import { MemoryManager } from './manager.js';
|
|
10
|
+
/**
|
|
11
|
+
* Analyze a project directory to extract metadata
|
|
12
|
+
*/
|
|
13
|
+
export async function analyzeProject(cwd) {
|
|
14
|
+
const analysis = {
|
|
15
|
+
name: basename(cwd),
|
|
16
|
+
type: 'unknown',
|
|
17
|
+
buildCommands: [],
|
|
18
|
+
testCommands: [],
|
|
19
|
+
directories: [],
|
|
20
|
+
configFiles: [],
|
|
21
|
+
};
|
|
22
|
+
// Check for various project config files
|
|
23
|
+
const configChecks = [
|
|
24
|
+
{ file: 'package.json', handler: parsePackageJson },
|
|
25
|
+
{ file: 'pyproject.toml', handler: parsePyprojectToml },
|
|
26
|
+
{ file: 'go.mod', handler: parseGoMod },
|
|
27
|
+
{ file: 'Cargo.toml', handler: parseCargoToml },
|
|
28
|
+
{ file: 'pom.xml', handler: parsePomXml },
|
|
29
|
+
{ file: 'Makefile', handler: parseMakefile },
|
|
30
|
+
];
|
|
31
|
+
for (const { file, handler } of configChecks) {
|
|
32
|
+
const filePath = join(cwd, file);
|
|
33
|
+
if (existsSync(filePath)) {
|
|
34
|
+
analysis.configFiles.push(file);
|
|
35
|
+
try {
|
|
36
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
37
|
+
handler(content, analysis);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Skip if can't parse
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Detect common directories
|
|
45
|
+
const commonDirs = [
|
|
46
|
+
{ pattern: 'src', purpose: 'Source code' },
|
|
47
|
+
{ pattern: 'lib', purpose: 'Library code' },
|
|
48
|
+
{ pattern: 'test', purpose: 'Test files' },
|
|
49
|
+
{ pattern: 'tests', purpose: 'Test files' },
|
|
50
|
+
{ pattern: '__tests__', purpose: 'Test files' },
|
|
51
|
+
{ pattern: 'spec', purpose: 'Test specifications' },
|
|
52
|
+
{ pattern: 'docs', purpose: 'Documentation' },
|
|
53
|
+
{ pattern: 'doc', purpose: 'Documentation' },
|
|
54
|
+
{ pattern: 'examples', purpose: 'Example code' },
|
|
55
|
+
{ pattern: 'scripts', purpose: 'Build/utility scripts' },
|
|
56
|
+
{ pattern: 'bin', purpose: 'Executables' },
|
|
57
|
+
{ pattern: 'cmd', purpose: 'Command entrypoints (Go)' },
|
|
58
|
+
{ pattern: 'pkg', purpose: 'Public packages (Go)' },
|
|
59
|
+
{ pattern: 'internal', purpose: 'Internal packages' },
|
|
60
|
+
{ pattern: 'api', purpose: 'API definitions' },
|
|
61
|
+
{ pattern: 'config', purpose: 'Configuration files' },
|
|
62
|
+
{ pattern: 'public', purpose: 'Public assets' },
|
|
63
|
+
{ pattern: 'static', purpose: 'Static files' },
|
|
64
|
+
{ pattern: 'assets', purpose: 'Assets' },
|
|
65
|
+
{ pattern: 'components', purpose: 'UI components' },
|
|
66
|
+
{ pattern: 'pages', purpose: 'Page components' },
|
|
67
|
+
{ pattern: 'app', purpose: 'Application code' },
|
|
68
|
+
];
|
|
69
|
+
try {
|
|
70
|
+
const entries = readdirSync(cwd);
|
|
71
|
+
for (const entry of entries) {
|
|
72
|
+
const entryPath = join(cwd, entry);
|
|
73
|
+
try {
|
|
74
|
+
if (statSync(entryPath).isDirectory()) {
|
|
75
|
+
const match = commonDirs.find((d) => d.pattern.toLowerCase() === entry.toLowerCase());
|
|
76
|
+
if (match) {
|
|
77
|
+
analysis.directories.push({
|
|
78
|
+
path: entry,
|
|
79
|
+
purpose: match.purpose,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
// Skip if can't stat
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Skip if can't read directory
|
|
91
|
+
}
|
|
92
|
+
return analysis;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parse package.json for Node.js projects
|
|
96
|
+
*/
|
|
97
|
+
function parsePackageJson(content, analysis) {
|
|
98
|
+
try {
|
|
99
|
+
const pkg = JSON.parse(content);
|
|
100
|
+
analysis.name = pkg.name || analysis.name;
|
|
101
|
+
analysis.type = 'node';
|
|
102
|
+
// Detect package manager
|
|
103
|
+
if (existsSync(join(process.cwd(), 'pnpm-lock.yaml'))) {
|
|
104
|
+
analysis.packageManager = 'pnpm';
|
|
105
|
+
}
|
|
106
|
+
else if (existsSync(join(process.cwd(), 'yarn.lock'))) {
|
|
107
|
+
analysis.packageManager = 'yarn';
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
analysis.packageManager = 'npm';
|
|
111
|
+
}
|
|
112
|
+
const pm = analysis.packageManager;
|
|
113
|
+
// Extract scripts
|
|
114
|
+
if (pkg.scripts) {
|
|
115
|
+
if (pkg.scripts.build) {
|
|
116
|
+
analysis.buildCommands.push(`${pm} run build`);
|
|
117
|
+
}
|
|
118
|
+
if (pkg.scripts.dev) {
|
|
119
|
+
analysis.buildCommands.push(`${pm} run dev`);
|
|
120
|
+
}
|
|
121
|
+
if (pkg.scripts.start) {
|
|
122
|
+
analysis.buildCommands.push(`${pm} start`);
|
|
123
|
+
}
|
|
124
|
+
if (pkg.scripts.test) {
|
|
125
|
+
analysis.testCommands.push(`${pm} test`);
|
|
126
|
+
}
|
|
127
|
+
if (pkg.scripts.lint) {
|
|
128
|
+
analysis.testCommands.push(`${pm} run lint`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// Invalid JSON
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Parse pyproject.toml for Python projects
|
|
138
|
+
*/
|
|
139
|
+
function parsePyprojectToml(content, analysis) {
|
|
140
|
+
analysis.type = 'python';
|
|
141
|
+
// Simple regex parsing for common patterns
|
|
142
|
+
const nameMatch = content.match(/name\s*=\s*["']([^"']+)["']/);
|
|
143
|
+
if (nameMatch) {
|
|
144
|
+
analysis.name = nameMatch[1];
|
|
145
|
+
}
|
|
146
|
+
// Detect package manager
|
|
147
|
+
if (content.includes('[tool.poetry]')) {
|
|
148
|
+
analysis.packageManager = 'poetry';
|
|
149
|
+
analysis.buildCommands.push('poetry install');
|
|
150
|
+
analysis.testCommands.push('poetry run pytest');
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
analysis.packageManager = 'pip';
|
|
154
|
+
analysis.buildCommands.push('pip install -e .');
|
|
155
|
+
analysis.testCommands.push('pytest');
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Parse go.mod for Go projects
|
|
160
|
+
*/
|
|
161
|
+
function parseGoMod(content, analysis) {
|
|
162
|
+
analysis.type = 'go';
|
|
163
|
+
analysis.packageManager = 'go';
|
|
164
|
+
const moduleMatch = content.match(/module\s+(\S+)/);
|
|
165
|
+
if (moduleMatch) {
|
|
166
|
+
// Extract last part of module path as name
|
|
167
|
+
const parts = moduleMatch[1].split('/');
|
|
168
|
+
analysis.name = parts[parts.length - 1];
|
|
169
|
+
}
|
|
170
|
+
analysis.buildCommands.push('go build ./...');
|
|
171
|
+
analysis.testCommands.push('go test ./...');
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Parse Cargo.toml for Rust projects
|
|
175
|
+
*/
|
|
176
|
+
function parseCargoToml(content, analysis) {
|
|
177
|
+
analysis.type = 'rust';
|
|
178
|
+
analysis.packageManager = 'cargo';
|
|
179
|
+
const nameMatch = content.match(/name\s*=\s*["']([^"']+)["']/);
|
|
180
|
+
if (nameMatch) {
|
|
181
|
+
analysis.name = nameMatch[1];
|
|
182
|
+
}
|
|
183
|
+
analysis.buildCommands.push('cargo build');
|
|
184
|
+
analysis.testCommands.push('cargo test');
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Parse pom.xml for Java projects
|
|
188
|
+
*/
|
|
189
|
+
function parsePomXml(content, analysis) {
|
|
190
|
+
analysis.type = 'java';
|
|
191
|
+
const artifactIdMatch = content.match(/<artifactId>([^<]+)<\/artifactId>/);
|
|
192
|
+
if (artifactIdMatch) {
|
|
193
|
+
analysis.name = artifactIdMatch[1];
|
|
194
|
+
}
|
|
195
|
+
analysis.buildCommands.push('mvn compile');
|
|
196
|
+
analysis.testCommands.push('mvn test');
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Parse Makefile for make targets
|
|
200
|
+
*/
|
|
201
|
+
function parseMakefile(content, analysis) {
|
|
202
|
+
// Look for common targets
|
|
203
|
+
if (content.includes('build:')) {
|
|
204
|
+
analysis.buildCommands.push('make build');
|
|
205
|
+
}
|
|
206
|
+
if (content.includes('test:')) {
|
|
207
|
+
analysis.testCommands.push('make test');
|
|
208
|
+
}
|
|
209
|
+
if (content.includes('all:')) {
|
|
210
|
+
analysis.buildCommands.unshift('make');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Generate AGENT.md content from project analysis
|
|
215
|
+
*/
|
|
216
|
+
export function generateMemoryContent(analysis) {
|
|
217
|
+
const sections = [];
|
|
218
|
+
// Header
|
|
219
|
+
sections.push(`# ${analysis.name}`);
|
|
220
|
+
sections.push('');
|
|
221
|
+
// Project type
|
|
222
|
+
if (analysis.type !== 'unknown') {
|
|
223
|
+
const typeLabels = {
|
|
224
|
+
node: 'Node.js/TypeScript',
|
|
225
|
+
python: 'Python',
|
|
226
|
+
go: 'Go',
|
|
227
|
+
rust: 'Rust',
|
|
228
|
+
java: 'Java',
|
|
229
|
+
};
|
|
230
|
+
sections.push(`This is a ${typeLabels[analysis.type] || analysis.type} project.`);
|
|
231
|
+
sections.push('');
|
|
232
|
+
}
|
|
233
|
+
// Build commands
|
|
234
|
+
if (analysis.buildCommands.length > 0) {
|
|
235
|
+
sections.push('## Build Commands');
|
|
236
|
+
sections.push('');
|
|
237
|
+
sections.push('```bash');
|
|
238
|
+
for (const cmd of analysis.buildCommands) {
|
|
239
|
+
sections.push(cmd);
|
|
240
|
+
}
|
|
241
|
+
sections.push('```');
|
|
242
|
+
sections.push('');
|
|
243
|
+
}
|
|
244
|
+
// Test commands
|
|
245
|
+
if (analysis.testCommands.length > 0) {
|
|
246
|
+
sections.push('## Test Commands');
|
|
247
|
+
sections.push('');
|
|
248
|
+
sections.push('```bash');
|
|
249
|
+
for (const cmd of analysis.testCommands) {
|
|
250
|
+
sections.push(cmd);
|
|
251
|
+
}
|
|
252
|
+
sections.push('```');
|
|
253
|
+
sections.push('');
|
|
254
|
+
}
|
|
255
|
+
// Key directories
|
|
256
|
+
if (analysis.directories.length > 0) {
|
|
257
|
+
sections.push('## Key Directories');
|
|
258
|
+
sections.push('');
|
|
259
|
+
for (const dir of analysis.directories) {
|
|
260
|
+
sections.push(`- \`${dir.path}/\` - ${dir.purpose}`);
|
|
261
|
+
}
|
|
262
|
+
sections.push('');
|
|
263
|
+
}
|
|
264
|
+
// Config files found
|
|
265
|
+
if (analysis.configFiles.length > 0) {
|
|
266
|
+
sections.push('## Configuration');
|
|
267
|
+
sections.push('');
|
|
268
|
+
sections.push(`Config files: ${analysis.configFiles.join(', ')}`);
|
|
269
|
+
sections.push('');
|
|
270
|
+
}
|
|
271
|
+
// Instructions placeholder
|
|
272
|
+
sections.push('## Notes');
|
|
273
|
+
sections.push('');
|
|
274
|
+
sections.push('<!-- Add project-specific instructions, conventions, or notes here -->');
|
|
275
|
+
sections.push('');
|
|
276
|
+
return sections.join('\n');
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Run the /init command
|
|
280
|
+
*/
|
|
281
|
+
export async function runInit(options, resolveConflict) {
|
|
282
|
+
const manager = new MemoryManager(options.cwd);
|
|
283
|
+
const outputPath = options.output || manager.getInitFilePath();
|
|
284
|
+
// Check for existing file
|
|
285
|
+
const existingPath = manager.getExistingProjectMemoryPath();
|
|
286
|
+
if (existingPath && !options.force) {
|
|
287
|
+
if (!resolveConflict) {
|
|
288
|
+
return {
|
|
289
|
+
success: false,
|
|
290
|
+
message: `Memory file already exists: ${basename(existingPath)}. Use --force to overwrite.`,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
const resolution = await resolveConflict();
|
|
294
|
+
if (resolution === 'cancel') {
|
|
295
|
+
return {
|
|
296
|
+
success: false,
|
|
297
|
+
message: 'Initialization cancelled.',
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
if (resolution === 'merge') {
|
|
301
|
+
// For merge, we'll append to the existing content
|
|
302
|
+
// This is a simple implementation - could be enhanced
|
|
303
|
+
return {
|
|
304
|
+
success: false,
|
|
305
|
+
message: 'Merge not yet implemented. Use overwrite or cancel.',
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
// resolution === 'overwrite' - continue with generation
|
|
309
|
+
}
|
|
310
|
+
// Analyze project
|
|
311
|
+
const analysis = await analyzeProject(options.cwd);
|
|
312
|
+
// Generate content
|
|
313
|
+
const content = generateMemoryContent(analysis);
|
|
314
|
+
// Write file
|
|
315
|
+
try {
|
|
316
|
+
writeFileSync(outputPath, content, 'utf-8');
|
|
317
|
+
manager.clearCache();
|
|
318
|
+
return {
|
|
319
|
+
success: true,
|
|
320
|
+
filePath: outputPath,
|
|
321
|
+
message: `Created ${basename(outputPath)}`,
|
|
322
|
+
created: !existingPath,
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
return {
|
|
327
|
+
success: false,
|
|
328
|
+
message: `Failed to write file: ${error instanceof Error ? error.message : String(error)}`,
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/memory/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MemoryManager - Discovers, loads, and merges memory files
|
|
3
|
+
*
|
|
4
|
+
* Memory file priority (lowest to highest):
|
|
5
|
+
* 1. User memory (~/.mycode/AGENT.md) - global preferences
|
|
6
|
+
* 2. Project memory (CLAUDE.md or AGENT.md) - project-specific
|
|
7
|
+
* 3. Local memory (AGENT.local.md) - private project preferences
|
|
8
|
+
*
|
|
9
|
+
* CLAUDE.md takes precedence over AGENT.md for Claude Code compatibility.
|
|
10
|
+
*/
|
|
11
|
+
import type { MemoryFile, MemoryType } from './types.js';
|
|
12
|
+
export declare class MemoryManager {
|
|
13
|
+
private cwd;
|
|
14
|
+
private userHome;
|
|
15
|
+
private cachedMemories;
|
|
16
|
+
constructor(cwd?: string);
|
|
17
|
+
/**
|
|
18
|
+
* Update working directory and clear cache
|
|
19
|
+
*/
|
|
20
|
+
setCwd(cwd: string): void;
|
|
21
|
+
/**
|
|
22
|
+
* Get current working directory
|
|
23
|
+
*/
|
|
24
|
+
getCwd(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Clear cached memories (call when files might have changed)
|
|
27
|
+
*/
|
|
28
|
+
clearCache(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Load all memory files in priority order
|
|
31
|
+
*/
|
|
32
|
+
loadMemories(): MemoryFile[];
|
|
33
|
+
/**
|
|
34
|
+
* Load user-level memory file
|
|
35
|
+
*/
|
|
36
|
+
private loadUserMemory;
|
|
37
|
+
/**
|
|
38
|
+
* Load project-level memory file (CLAUDE.md or AGENT.md)
|
|
39
|
+
*/
|
|
40
|
+
private loadProjectMemory;
|
|
41
|
+
/**
|
|
42
|
+
* Load local memory file (private, gitignored)
|
|
43
|
+
*/
|
|
44
|
+
private loadLocalMemory;
|
|
45
|
+
/**
|
|
46
|
+
* Load all .md files from .mycode/rules/ directory
|
|
47
|
+
*/
|
|
48
|
+
private loadRulesMemories;
|
|
49
|
+
/**
|
|
50
|
+
* Load a single memory file
|
|
51
|
+
*/
|
|
52
|
+
private loadFile;
|
|
53
|
+
/**
|
|
54
|
+
* Build merged context string from all memory files
|
|
55
|
+
*/
|
|
56
|
+
buildContext(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Get a human-readable source label for a memory file
|
|
59
|
+
*/
|
|
60
|
+
private getSourceLabel;
|
|
61
|
+
/**
|
|
62
|
+
* Get list of loaded memory files for display
|
|
63
|
+
*/
|
|
64
|
+
getLoadedFiles(): Array<{
|
|
65
|
+
path: string;
|
|
66
|
+
type: MemoryType;
|
|
67
|
+
}>;
|
|
68
|
+
/**
|
|
69
|
+
* Check if any memory files are loaded
|
|
70
|
+
*/
|
|
71
|
+
hasMemory(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Get the path where /init should create the memory file
|
|
74
|
+
*/
|
|
75
|
+
getInitFilePath(): string;
|
|
76
|
+
/**
|
|
77
|
+
* Check if a project memory file already exists
|
|
78
|
+
*/
|
|
79
|
+
hasProjectMemory(): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Get the existing project memory file path (if any)
|
|
82
|
+
*/
|
|
83
|
+
getExistingProjectMemoryPath(): string | null;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/memory/manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAgBzD,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAA6B;gBAEvC,GAAG,CAAC,EAAE,MAAM;IAKxB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,YAAY,IAAI,UAAU,EAAE;IAoC5B;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IA2BhB;;OAEG;IACH,YAAY,IAAI,MAAM;IAgBtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAetB;;OAEG;IACH,cAAc,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,UAAU,CAAA;KAAE,CAAC;IAO3D;;OAEG;IACH,SAAS,IAAI,OAAO;IAIpB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;OAEG;IACH,4BAA4B,IAAI,MAAM,GAAG,IAAI;CAS9C"}
|