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.
Files changed (274) hide show
  1. package/.env.example +11 -0
  2. package/CLAUDE.md +70 -0
  3. package/LICENSE +21 -0
  4. package/README.md +117 -0
  5. package/dist/agent/agent.d.ts +84 -0
  6. package/dist/agent/agent.d.ts.map +1 -0
  7. package/dist/agent/agent.js +233 -0
  8. package/dist/agent/agent.js.map +1 -0
  9. package/dist/agent/index.d.ts +6 -0
  10. package/dist/agent/index.d.ts.map +1 -0
  11. package/dist/agent/index.js +6 -0
  12. package/dist/agent/index.js.map +1 -0
  13. package/dist/agent/types.d.ts +47 -0
  14. package/dist/agent/types.d.ts.map +1 -0
  15. package/dist/agent/types.js +5 -0
  16. package/dist/agent/types.js.map +1 -0
  17. package/dist/cli/components/App.d.ts +14 -0
  18. package/dist/cli/components/App.d.ts.map +1 -0
  19. package/dist/cli/components/App.js +395 -0
  20. package/dist/cli/components/App.js.map +1 -0
  21. package/dist/cli/components/CommandSuggestions.d.ts +13 -0
  22. package/dist/cli/components/CommandSuggestions.d.ts.map +1 -0
  23. package/dist/cli/components/CommandSuggestions.js +32 -0
  24. package/dist/cli/components/CommandSuggestions.js.map +1 -0
  25. package/dist/cli/components/Header.d.ts +9 -0
  26. package/dist/cli/components/Header.d.ts.map +1 -0
  27. package/dist/cli/components/Header.js +13 -0
  28. package/dist/cli/components/Header.js.map +1 -0
  29. package/dist/cli/components/Input.d.ts +13 -0
  30. package/dist/cli/components/Input.d.ts.map +1 -0
  31. package/dist/cli/components/Input.js +27 -0
  32. package/dist/cli/components/Input.js.map +1 -0
  33. package/dist/cli/components/Logo.d.ts +2 -0
  34. package/dist/cli/components/Logo.d.ts.map +1 -0
  35. package/dist/cli/components/Logo.js +8 -0
  36. package/dist/cli/components/Logo.js.map +1 -0
  37. package/dist/cli/components/Messages.d.ts +37 -0
  38. package/dist/cli/components/Messages.d.ts.map +1 -0
  39. package/dist/cli/components/Messages.js +106 -0
  40. package/dist/cli/components/Messages.js.map +1 -0
  41. package/dist/cli/components/ModelSelector.d.ts +13 -0
  42. package/dist/cli/components/ModelSelector.d.ts.map +1 -0
  43. package/dist/cli/components/ModelSelector.js +72 -0
  44. package/dist/cli/components/ModelSelector.js.map +1 -0
  45. package/dist/cli/components/Spinner.d.ts +12 -0
  46. package/dist/cli/components/Spinner.d.ts.map +1 -0
  47. package/dist/cli/components/Spinner.js +45 -0
  48. package/dist/cli/components/Spinner.js.map +1 -0
  49. package/dist/cli/components/index.d.ts +12 -0
  50. package/dist/cli/components/index.d.ts.map +1 -0
  51. package/dist/cli/components/index.js +12 -0
  52. package/dist/cli/components/index.js.map +1 -0
  53. package/dist/cli/components/theme.d.ts +31 -0
  54. package/dist/cli/components/theme.d.ts.map +1 -0
  55. package/dist/cli/components/theme.js +36 -0
  56. package/dist/cli/components/theme.js.map +1 -0
  57. package/dist/cli/index-legacy.d.ts +7 -0
  58. package/dist/cli/index-legacy.d.ts.map +1 -0
  59. package/dist/cli/index-legacy.js +431 -0
  60. package/dist/cli/index-legacy.js.map +1 -0
  61. package/dist/cli/index.d.ts +7 -0
  62. package/dist/cli/index.d.ts.map +1 -0
  63. package/dist/cli/index.js +116 -0
  64. package/dist/cli/index.js.map +1 -0
  65. package/dist/cli/ink-cli.d.ts +7 -0
  66. package/dist/cli/ink-cli.d.ts.map +1 -0
  67. package/dist/cli/ink-cli.js +105 -0
  68. package/dist/cli/ink-cli.js.map +1 -0
  69. package/dist/cli/session-picker.d.ts +16 -0
  70. package/dist/cli/session-picker.d.ts.map +1 -0
  71. package/dist/cli/session-picker.js +280 -0
  72. package/dist/cli/session-picker.js.map +1 -0
  73. package/dist/cli/ui.d.ts +61 -0
  74. package/dist/cli/ui.d.ts.map +1 -0
  75. package/dist/cli/ui.js +364 -0
  76. package/dist/cli/ui.js.map +1 -0
  77. package/dist/config/index.d.ts +7 -0
  78. package/dist/config/index.d.ts.map +1 -0
  79. package/dist/config/index.js +6 -0
  80. package/dist/config/index.js.map +1 -0
  81. package/dist/config/manager.d.ts +31 -0
  82. package/dist/config/manager.d.ts.map +1 -0
  83. package/dist/config/manager.js +65 -0
  84. package/dist/config/manager.js.map +1 -0
  85. package/dist/config/types.d.ts +22 -0
  86. package/dist/config/types.d.ts.map +1 -0
  87. package/dist/config/types.js +6 -0
  88. package/dist/config/types.js.map +1 -0
  89. package/dist/index.d.ts +12 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js +21 -0
  92. package/dist/index.js.map +1 -0
  93. package/dist/memory/index.d.ts +10 -0
  94. package/dist/memory/index.d.ts.map +1 -0
  95. package/dist/memory/index.js +9 -0
  96. package/dist/memory/index.js.map +1 -0
  97. package/dist/memory/init.d.ts +20 -0
  98. package/dist/memory/init.d.ts.map +1 -0
  99. package/dist/memory/init.js +332 -0
  100. package/dist/memory/init.js.map +1 -0
  101. package/dist/memory/manager.d.ts +85 -0
  102. package/dist/memory/manager.d.ts.map +1 -0
  103. package/dist/memory/manager.js +234 -0
  104. package/dist/memory/manager.js.map +1 -0
  105. package/dist/memory/types.d.ts +74 -0
  106. package/dist/memory/types.d.ts.map +1 -0
  107. package/dist/memory/types.js +6 -0
  108. package/dist/memory/types.js.map +1 -0
  109. package/dist/permissions/index.d.ts +7 -0
  110. package/dist/permissions/index.d.ts.map +1 -0
  111. package/dist/permissions/index.js +6 -0
  112. package/dist/permissions/index.js.map +1 -0
  113. package/dist/permissions/manager.d.ts +32 -0
  114. package/dist/permissions/manager.d.ts.map +1 -0
  115. package/dist/permissions/manager.js +79 -0
  116. package/dist/permissions/manager.js.map +1 -0
  117. package/dist/permissions/types.d.ts +14 -0
  118. package/dist/permissions/types.d.ts.map +1 -0
  119. package/dist/permissions/types.js +17 -0
  120. package/dist/permissions/types.js.map +1 -0
  121. package/dist/providers/anthropic.d.ts +20 -0
  122. package/dist/providers/anthropic.d.ts.map +1 -0
  123. package/dist/providers/anthropic.js +185 -0
  124. package/dist/providers/anthropic.js.map +1 -0
  125. package/dist/providers/gemini.d.ts +21 -0
  126. package/dist/providers/gemini.d.ts.map +1 -0
  127. package/dist/providers/gemini.js +241 -0
  128. package/dist/providers/gemini.js.map +1 -0
  129. package/dist/providers/index.d.ts +34 -0
  130. package/dist/providers/index.d.ts.map +1 -0
  131. package/dist/providers/index.js +72 -0
  132. package/dist/providers/index.js.map +1 -0
  133. package/dist/providers/openai.d.ts +19 -0
  134. package/dist/providers/openai.d.ts.map +1 -0
  135. package/dist/providers/openai.js +221 -0
  136. package/dist/providers/openai.js.map +1 -0
  137. package/dist/providers/types.d.ts +125 -0
  138. package/dist/providers/types.d.ts.map +1 -0
  139. package/dist/providers/types.js +6 -0
  140. package/dist/providers/types.js.map +1 -0
  141. package/dist/session/index.d.ts +6 -0
  142. package/dist/session/index.d.ts.map +1 -0
  143. package/dist/session/index.js +6 -0
  144. package/dist/session/index.js.map +1 -0
  145. package/dist/session/manager.d.ts +101 -0
  146. package/dist/session/manager.d.ts.map +1 -0
  147. package/dist/session/manager.js +295 -0
  148. package/dist/session/manager.js.map +1 -0
  149. package/dist/session/types.d.ts +39 -0
  150. package/dist/session/types.d.ts.map +1 -0
  151. package/dist/session/types.js +10 -0
  152. package/dist/session/types.js.map +1 -0
  153. package/dist/tools/builtin/bash.d.ts +7 -0
  154. package/dist/tools/builtin/bash.d.ts.map +1 -0
  155. package/dist/tools/builtin/bash.js +80 -0
  156. package/dist/tools/builtin/bash.js.map +1 -0
  157. package/dist/tools/builtin/edit.d.ts +7 -0
  158. package/dist/tools/builtin/edit.d.ts.map +1 -0
  159. package/dist/tools/builtin/edit.js +32 -0
  160. package/dist/tools/builtin/edit.js.map +1 -0
  161. package/dist/tools/builtin/glob.d.ts +7 -0
  162. package/dist/tools/builtin/glob.d.ts.map +1 -0
  163. package/dist/tools/builtin/glob.js +36 -0
  164. package/dist/tools/builtin/glob.js.map +1 -0
  165. package/dist/tools/builtin/grep.d.ts +7 -0
  166. package/dist/tools/builtin/grep.d.ts.map +1 -0
  167. package/dist/tools/builtin/grep.js +59 -0
  168. package/dist/tools/builtin/grep.js.map +1 -0
  169. package/dist/tools/builtin/read.d.ts +7 -0
  170. package/dist/tools/builtin/read.d.ts.map +1 -0
  171. package/dist/tools/builtin/read.js +29 -0
  172. package/dist/tools/builtin/read.js.map +1 -0
  173. package/dist/tools/builtin/write.d.ts +7 -0
  174. package/dist/tools/builtin/write.d.ts.map +1 -0
  175. package/dist/tools/builtin/write.js +24 -0
  176. package/dist/tools/builtin/write.js.map +1 -0
  177. package/dist/tools/index.d.ts +38 -0
  178. package/dist/tools/index.d.ts.map +1 -0
  179. package/dist/tools/index.js +32 -0
  180. package/dist/tools/index.js.map +1 -0
  181. package/dist/tools/registry.d.ts +22 -0
  182. package/dist/tools/registry.d.ts.map +1 -0
  183. package/dist/tools/registry.js +71 -0
  184. package/dist/tools/registry.js.map +1 -0
  185. package/dist/tools/types.d.ts +62 -0
  186. package/dist/tools/types.d.ts.map +1 -0
  187. package/dist/tools/types.js +126 -0
  188. package/dist/tools/types.js.map +1 -0
  189. package/docs/README.md +16 -0
  190. package/docs/proposals/0001-web-fetch-tool.md +293 -0
  191. package/docs/proposals/0002-web-search-tool.md +306 -0
  192. package/docs/proposals/0003-task-subagents.md +333 -0
  193. package/docs/proposals/0004-plan-mode.md +338 -0
  194. package/docs/proposals/0005-todo-system.md +299 -0
  195. package/docs/proposals/0006-memory-system.md +539 -0
  196. package/docs/proposals/0007-context-management.md +429 -0
  197. package/docs/proposals/0008-checkpointing.md +327 -0
  198. package/docs/proposals/0009-hooks-system.md +343 -0
  199. package/docs/proposals/0010-mcp-integration.md +382 -0
  200. package/docs/proposals/0011-custom-commands.md +374 -0
  201. package/docs/proposals/0012-ask-user-question.md +317 -0
  202. package/docs/proposals/0013-multi-edit-tool.md +345 -0
  203. package/docs/proposals/0014-lsp-tool.md +478 -0
  204. package/docs/proposals/0015-ls-tool.md +407 -0
  205. package/docs/proposals/0016-kill-shell-tool.md +455 -0
  206. package/docs/proposals/0017-background-tasks.md +489 -0
  207. package/docs/proposals/0018-parallel-tool-execution.md +415 -0
  208. package/docs/proposals/0019-session-enhancements.md +462 -0
  209. package/docs/proposals/0020-session-summarization.md +447 -0
  210. package/docs/proposals/0021-skills-system.md +409 -0
  211. package/docs/proposals/0022-plugin-system.md +467 -0
  212. package/docs/proposals/0023-permission-enhancements.md +470 -0
  213. package/docs/proposals/0024-keyboard-shortcuts.md +443 -0
  214. package/docs/proposals/0025-cost-tracking.md +447 -0
  215. package/docs/proposals/0026-git-integration.md +475 -0
  216. package/docs/proposals/0027-enhanced-read-tool.md +514 -0
  217. package/docs/proposals/0028-enhanced-bash-tool.md +511 -0
  218. package/docs/proposals/0029-notebook-edit-tool.md +413 -0
  219. package/docs/proposals/0030-plugin-marketplace.md +360 -0
  220. package/docs/proposals/0031-command-suggestions.md +295 -0
  221. package/docs/proposals/0032-ide-integrations.md +328 -0
  222. package/docs/proposals/0033-enterprise-deployment.md +221 -0
  223. package/docs/proposals/0034-sandboxing.md +273 -0
  224. package/docs/proposals/0035-auto-updater.md +311 -0
  225. package/docs/proposals/0036-enhanced-glob-tool.md +267 -0
  226. package/docs/proposals/0037-enhanced-grep-tool.md +360 -0
  227. package/docs/proposals/0038-interactive-cli-ui.md +373 -0
  228. package/docs/proposals/0039-streaming-enhancements.md +359 -0
  229. package/docs/proposals/0040-multi-provider-enhancements.md +369 -0
  230. package/docs/proposals/README.md +84 -0
  231. package/docs/proposals/TEMPLATE.md +57 -0
  232. package/docs/proposals/research/claude-code-research.md +307 -0
  233. package/examples/agent-demo.ts +115 -0
  234. package/examples/basic.ts +166 -0
  235. package/package.json +50 -0
  236. package/src/agent/agent.ts +276 -0
  237. package/src/agent/index.ts +6 -0
  238. package/src/agent/types.ts +62 -0
  239. package/src/cli/components/App.tsx +565 -0
  240. package/src/cli/components/CommandSuggestions.tsx +58 -0
  241. package/src/cli/components/Header.tsx +36 -0
  242. package/src/cli/components/Input.tsx +60 -0
  243. package/src/cli/components/Logo.tsx +16 -0
  244. package/src/cli/components/Messages.tsx +210 -0
  245. package/src/cli/components/ModelSelector.tsx +135 -0
  246. package/src/cli/components/Spinner.tsx +72 -0
  247. package/src/cli/components/index.ts +21 -0
  248. package/src/cli/components/theme.ts +36 -0
  249. package/src/cli/index.tsx +136 -0
  250. package/src/config/index.ts +7 -0
  251. package/src/config/manager.ts +77 -0
  252. package/src/config/types.ts +25 -0
  253. package/src/index.ts +86 -0
  254. package/src/permissions/index.ts +7 -0
  255. package/src/permissions/manager.ts +97 -0
  256. package/src/permissions/types.ts +29 -0
  257. package/src/providers/anthropic.ts +224 -0
  258. package/src/providers/gemini.ts +295 -0
  259. package/src/providers/index.ts +97 -0
  260. package/src/providers/openai.ts +261 -0
  261. package/src/providers/types.ts +181 -0
  262. package/src/session/index.ts +6 -0
  263. package/src/session/manager.ts +354 -0
  264. package/src/session/types.ts +49 -0
  265. package/src/tools/builtin/bash.ts +92 -0
  266. package/src/tools/builtin/edit.ts +37 -0
  267. package/src/tools/builtin/glob.ts +42 -0
  268. package/src/tools/builtin/grep.ts +67 -0
  269. package/src/tools/builtin/read.ts +34 -0
  270. package/src/tools/builtin/write.ts +27 -0
  271. package/src/tools/index.ts +36 -0
  272. package/src/tools/registry.ts +83 -0
  273. package/src/tools/types.ts +172 -0
  274. 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"}