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,234 @@
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 { existsSync, readFileSync } from 'fs';
12
+ import { join, basename } from 'path';
13
+ import { homedir } from 'os';
14
+ // Memory file names in priority order (first match wins for each type)
15
+ // CLAUDE.md for Claude Code compatibility, AGENT.md as universal standard
16
+ const PROJECT_MEMORY_FILES = ['CLAUDE.md', 'AGENT.md'];
17
+ const LOCAL_MEMORY_FILE = 'AGENT.local.md';
18
+ const USER_MEMORY_FILE = 'AGENT.md';
19
+ // Priority values (lower = loaded first, higher = takes precedence)
20
+ const PRIORITY = {
21
+ user: 10,
22
+ project: 20,
23
+ local: 30,
24
+ rules: 25, // between project and local
25
+ };
26
+ export class MemoryManager {
27
+ cwd;
28
+ userHome;
29
+ cachedMemories = null;
30
+ constructor(cwd) {
31
+ this.cwd = cwd || process.cwd();
32
+ this.userHome = homedir();
33
+ }
34
+ /**
35
+ * Update working directory and clear cache
36
+ */
37
+ setCwd(cwd) {
38
+ this.cwd = cwd;
39
+ this.cachedMemories = null;
40
+ }
41
+ /**
42
+ * Get current working directory
43
+ */
44
+ getCwd() {
45
+ return this.cwd;
46
+ }
47
+ /**
48
+ * Clear cached memories (call when files might have changed)
49
+ */
50
+ clearCache() {
51
+ this.cachedMemories = null;
52
+ }
53
+ /**
54
+ * Load all memory files in priority order
55
+ */
56
+ loadMemories() {
57
+ if (this.cachedMemories) {
58
+ return this.cachedMemories;
59
+ }
60
+ const memories = [];
61
+ // 1. User memory (~/.mycode/AGENT.md)
62
+ const userMemory = this.loadUserMemory();
63
+ if (userMemory) {
64
+ memories.push(userMemory);
65
+ }
66
+ // 2. Project memory (CLAUDE.md or AGENT.md in cwd)
67
+ const projectMemory = this.loadProjectMemory();
68
+ if (projectMemory) {
69
+ memories.push(projectMemory);
70
+ }
71
+ // 3. Rules directory (.mycode/rules/*.md)
72
+ const rulesMemories = this.loadRulesMemories();
73
+ memories.push(...rulesMemories);
74
+ // 4. Local memory (AGENT.local.md)
75
+ const localMemory = this.loadLocalMemory();
76
+ if (localMemory) {
77
+ memories.push(localMemory);
78
+ }
79
+ // Sort by priority (lower first)
80
+ memories.sort((a, b) => a.priority - b.priority);
81
+ this.cachedMemories = memories;
82
+ return memories;
83
+ }
84
+ /**
85
+ * Load user-level memory file
86
+ */
87
+ loadUserMemory() {
88
+ const userMemoryPath = join(this.userHome, '.mycode', USER_MEMORY_FILE);
89
+ return this.loadFile(userMemoryPath, 'user', PRIORITY.user);
90
+ }
91
+ /**
92
+ * Load project-level memory file (CLAUDE.md or AGENT.md)
93
+ */
94
+ loadProjectMemory() {
95
+ for (const filename of PROJECT_MEMORY_FILES) {
96
+ const filePath = join(this.cwd, filename);
97
+ const memory = this.loadFile(filePath, 'project', PRIORITY.project);
98
+ if (memory) {
99
+ return memory; // Return first found (CLAUDE.md has priority)
100
+ }
101
+ }
102
+ return null;
103
+ }
104
+ /**
105
+ * Load local memory file (private, gitignored)
106
+ */
107
+ loadLocalMemory() {
108
+ const localMemoryPath = join(this.cwd, LOCAL_MEMORY_FILE);
109
+ return this.loadFile(localMemoryPath, 'local', PRIORITY.local);
110
+ }
111
+ /**
112
+ * Load all .md files from .mycode/rules/ directory
113
+ */
114
+ loadRulesMemories() {
115
+ const memories = [];
116
+ const rulesDir = join(this.cwd, '.mycode', 'rules');
117
+ if (!existsSync(rulesDir)) {
118
+ return memories;
119
+ }
120
+ try {
121
+ const { readdirSync } = require('fs');
122
+ const files = readdirSync(rulesDir);
123
+ for (const file of files) {
124
+ if (file.endsWith('.md')) {
125
+ const filePath = join(rulesDir, file);
126
+ const memory = this.loadFile(filePath, 'rules', PRIORITY.rules);
127
+ if (memory) {
128
+ memories.push(memory);
129
+ }
130
+ }
131
+ }
132
+ }
133
+ catch {
134
+ // Directory doesn't exist or can't be read
135
+ }
136
+ return memories;
137
+ }
138
+ /**
139
+ * Load a single memory file
140
+ */
141
+ loadFile(filePath, type, priority) {
142
+ if (!existsSync(filePath)) {
143
+ return null;
144
+ }
145
+ try {
146
+ const content = readFileSync(filePath, 'utf-8');
147
+ if (!content.trim()) {
148
+ return null; // Skip empty files
149
+ }
150
+ return {
151
+ path: filePath,
152
+ content: content.trim(),
153
+ type,
154
+ priority,
155
+ filename: basename(filePath),
156
+ };
157
+ }
158
+ catch {
159
+ return null;
160
+ }
161
+ }
162
+ /**
163
+ * Build merged context string from all memory files
164
+ */
165
+ buildContext() {
166
+ const memories = this.loadMemories();
167
+ if (memories.length === 0) {
168
+ return '';
169
+ }
170
+ // Build sections with source annotations
171
+ const sections = memories.map((m) => {
172
+ const source = this.getSourceLabel(m);
173
+ return `<!-- Source: ${source} -->\n${m.content}`;
174
+ });
175
+ return sections.join('\n\n---\n\n');
176
+ }
177
+ /**
178
+ * Get a human-readable source label for a memory file
179
+ */
180
+ getSourceLabel(memory) {
181
+ switch (memory.type) {
182
+ case 'user':
183
+ return `~/.mycode/${memory.filename}`;
184
+ case 'project':
185
+ return `./${memory.filename}`;
186
+ case 'local':
187
+ return `./${memory.filename} (local)`;
188
+ case 'rules':
189
+ return `.mycode/rules/${memory.filename}`;
190
+ default:
191
+ return memory.filename;
192
+ }
193
+ }
194
+ /**
195
+ * Get list of loaded memory files for display
196
+ */
197
+ getLoadedFiles() {
198
+ return this.loadMemories().map((m) => ({
199
+ path: m.path,
200
+ type: m.type,
201
+ }));
202
+ }
203
+ /**
204
+ * Check if any memory files are loaded
205
+ */
206
+ hasMemory() {
207
+ return this.loadMemories().length > 0;
208
+ }
209
+ /**
210
+ * Get the path where /init should create the memory file
211
+ */
212
+ getInitFilePath() {
213
+ return join(this.cwd, 'AGENT.md');
214
+ }
215
+ /**
216
+ * Check if a project memory file already exists
217
+ */
218
+ hasProjectMemory() {
219
+ return PROJECT_MEMORY_FILES.some((f) => existsSync(join(this.cwd, f)));
220
+ }
221
+ /**
222
+ * Get the existing project memory file path (if any)
223
+ */
224
+ getExistingProjectMemoryPath() {
225
+ for (const filename of PROJECT_MEMORY_FILES) {
226
+ const filePath = join(this.cwd, filename);
227
+ if (existsSync(filePath)) {
228
+ return filePath;
229
+ }
230
+ }
231
+ return null;
232
+ }
233
+ }
234
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/memory/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Memory System Types
3
+ * Types for the memory/context management system
4
+ */
5
+ /**
6
+ * Type of memory file based on its location
7
+ */
8
+ export type MemoryType = 'user' | 'project' | 'local' | 'rules';
9
+ /**
10
+ * Represents a loaded memory file
11
+ */
12
+ export interface MemoryFile {
13
+ /** Absolute path to the file */
14
+ path: string;
15
+ /** File content */
16
+ content: string;
17
+ /** Type of memory (user, project, local, rules) */
18
+ type: MemoryType;
19
+ /** Priority for merging (lower = loaded first, higher = takes precedence) */
20
+ priority: number;
21
+ /** Original filename */
22
+ filename: string;
23
+ }
24
+ /**
25
+ * Result of project analysis for /init command
26
+ */
27
+ export interface ProjectAnalysis {
28
+ /** Project name (from package.json, go.mod, etc.) */
29
+ name: string;
30
+ /** Detected project type */
31
+ type: 'node' | 'python' | 'go' | 'rust' | 'java' | 'unknown';
32
+ /** Build commands found in config files */
33
+ buildCommands: string[];
34
+ /** Test commands found in config files */
35
+ testCommands: string[];
36
+ /** Key directories and their purposes */
37
+ directories: Array<{
38
+ path: string;
39
+ purpose: string;
40
+ }>;
41
+ /** Configuration files found */
42
+ configFiles: string[];
43
+ /** Package manager detected */
44
+ packageManager?: 'npm' | 'yarn' | 'pnpm' | 'pip' | 'poetry' | 'cargo' | 'go';
45
+ }
46
+ /**
47
+ * Options for the /init command
48
+ */
49
+ export interface InitOptions {
50
+ /** Working directory to analyze */
51
+ cwd: string;
52
+ /** Force overwrite without prompting */
53
+ force?: boolean;
54
+ /** Output file path (default: AGENT.md in cwd) */
55
+ output?: string;
56
+ }
57
+ /**
58
+ * Result from running /init
59
+ */
60
+ export interface InitResult {
61
+ /** Whether initialization succeeded */
62
+ success: boolean;
63
+ /** Path to created/updated file */
64
+ filePath?: string;
65
+ /** User-friendly message */
66
+ message: string;
67
+ /** Whether file was created (true) or updated (false) */
68
+ created?: boolean;
69
+ }
70
+ /**
71
+ * Conflict resolution choice when file exists
72
+ */
73
+ export type ConflictResolution = 'overwrite' | 'merge' | 'cancel';
74
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,IAAI,EAAE,UAAU,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC7D,2CAA2C;IAC3C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,yCAAyC;IACzC,WAAW,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtD,gCAAgC;IAChC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Memory System Types
3
+ * Types for the memory/context management system
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Permission System
3
+ */
4
+ export * from './types.js';
5
+ export { PermissionManager } from './manager.js';
6
+ export type { ConfirmCallback } from './manager.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Permission System
3
+ */
4
+ export * from './types.js';
5
+ export { PermissionManager } from './manager.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/permissions/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Permission Manager - Controls tool execution permissions
3
+ */
4
+ import type { PermissionConfig, PermissionMode } from './types.js';
5
+ export type ConfirmCallback = (tool: string, input: unknown) => Promise<boolean>;
6
+ export declare class PermissionManager {
7
+ private config;
8
+ private confirmCallback?;
9
+ private approvedTools;
10
+ constructor(config?: Partial<PermissionConfig>);
11
+ /**
12
+ * Set the confirmation callback
13
+ */
14
+ setConfirmCallback(callback: ConfirmCallback): void;
15
+ /**
16
+ * Get the permission mode for a tool
17
+ */
18
+ getModeForTool(tool: string): PermissionMode;
19
+ /**
20
+ * Check if a tool can be executed
21
+ */
22
+ checkPermission(tool: string, input: unknown): Promise<boolean>;
23
+ /**
24
+ * Approve a tool for this session
25
+ */
26
+ approveToolForSession(tool: string): void;
27
+ /**
28
+ * Clear all session approvals
29
+ */
30
+ clearApprovals(): void;
31
+ }
32
+ //# sourceMappingURL=manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGnE,MAAM,MAAM,eAAe,GAAG,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,KACX,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,aAAa,CAA0B;gBAEnC,MAAM,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAO9C;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAInD;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc;IAa5C;;OAEG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAiCrE;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACH,cAAc,IAAI,IAAI;CAGvB"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Permission Manager - Controls tool execution permissions
3
+ */
4
+ import { DEFAULT_PERMISSION_CONFIG } from './types.js';
5
+ export class PermissionManager {
6
+ config;
7
+ confirmCallback;
8
+ approvedTools = new Set();
9
+ constructor(config) {
10
+ this.config = {
11
+ ...DEFAULT_PERMISSION_CONFIG,
12
+ ...config,
13
+ };
14
+ }
15
+ /**
16
+ * Set the confirmation callback
17
+ */
18
+ setConfirmCallback(callback) {
19
+ this.confirmCallback = callback;
20
+ }
21
+ /**
22
+ * Get the permission mode for a tool
23
+ */
24
+ getModeForTool(tool) {
25
+ for (const rule of this.config.rules) {
26
+ if (typeof rule.tool === 'string') {
27
+ if (rule.tool === tool) {
28
+ return rule.mode;
29
+ }
30
+ }
31
+ else if (rule.tool.test(tool)) {
32
+ return rule.mode;
33
+ }
34
+ }
35
+ return this.config.defaultMode;
36
+ }
37
+ /**
38
+ * Check if a tool can be executed
39
+ */
40
+ async checkPermission(tool, input) {
41
+ const mode = this.getModeForTool(tool);
42
+ switch (mode) {
43
+ case 'auto':
44
+ return true;
45
+ case 'deny':
46
+ return false;
47
+ case 'confirm':
48
+ // Check if already approved this session
49
+ const key = `${tool}:${JSON.stringify(input)}`;
50
+ if (this.approvedTools.has(key)) {
51
+ return true;
52
+ }
53
+ if (!this.confirmCallback) {
54
+ // No callback, auto-approve in non-interactive mode
55
+ return true;
56
+ }
57
+ const approved = await this.confirmCallback(tool, input);
58
+ if (approved) {
59
+ this.approvedTools.add(key);
60
+ }
61
+ return approved;
62
+ default:
63
+ return false;
64
+ }
65
+ }
66
+ /**
67
+ * Approve a tool for this session
68
+ */
69
+ approveToolForSession(tool) {
70
+ this.approvedTools.add(tool);
71
+ }
72
+ /**
73
+ * Clear all session approvals
74
+ */
75
+ clearApprovals() {
76
+ this.approvedTools.clear();
77
+ }
78
+ }
79
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/permissions/manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAOvD,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,eAAe,CAAmB;IAClC,aAAa,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE/C,YAAY,MAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,yBAAyB;YAC5B,GAAG,MAAM;SACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,QAAyB;QAC1C,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY;QACzB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,KAAc;QAChD,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAEvC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC;YAEd,KAAK,MAAM;gBACT,OAAO,KAAK,CAAC;YAEf,KAAK,SAAS;gBACZ,yCAAyC;gBACzC,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/C,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1B,oDAAoD;oBACpD,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACzD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO,QAAQ,CAAC;YAElB;gBACE,OAAO,KAAK,CAAC;QACjB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,IAAY;QAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Permission System Types
3
+ */
4
+ export type PermissionMode = 'auto' | 'confirm' | 'deny';
5
+ export interface PermissionRule {
6
+ tool: string | RegExp;
7
+ mode: PermissionMode;
8
+ }
9
+ export interface PermissionConfig {
10
+ defaultMode: PermissionMode;
11
+ rules: PermissionRule[];
12
+ }
13
+ export declare const DEFAULT_PERMISSION_CONFIG: PermissionConfig;
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/permissions/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,cAAc,CAAC;IAC5B,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,eAAO,MAAM,yBAAyB,EAAE,gBAYvC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Permission System Types
3
+ */
4
+ export const DEFAULT_PERMISSION_CONFIG = {
5
+ defaultMode: 'confirm',
6
+ rules: [
7
+ // Read-only tools are auto-approved
8
+ { tool: 'Read', mode: 'auto' },
9
+ { tool: 'Glob', mode: 'auto' },
10
+ { tool: 'Grep', mode: 'auto' },
11
+ // Write operations require confirmation
12
+ { tool: 'Write', mode: 'confirm' },
13
+ { tool: 'Edit', mode: 'confirm' },
14
+ { tool: 'Bash', mode: 'confirm' },
15
+ ],
16
+ };
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/permissions/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,MAAM,CAAC,MAAM,yBAAyB,GAAqB;IACzD,WAAW,EAAE,SAAS;IACtB,KAAK,EAAE;QACL,oCAAoC;QACpC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QAC9B,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QAC9B,wCAAwC;QACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;KAClC;CACF,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Anthropic Provider Implementation
3
+ * Supports Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Haiku, etc.
4
+ */
5
+ import type { LLMProvider, CompletionOptions, CompletionResponse, StreamChunk, AnthropicConfig, ModelInfo } from './types.js';
6
+ export declare class AnthropicProvider implements LLMProvider {
7
+ readonly name = "anthropic";
8
+ private client;
9
+ constructor(config?: AnthropicConfig);
10
+ complete(options: CompletionOptions): Promise<CompletionResponse>;
11
+ stream(options: CompletionOptions): AsyncGenerator<StreamChunk, void, unknown>;
12
+ private convertMessages;
13
+ private convertToAnthropicContent;
14
+ private convertTools;
15
+ private convertResponse;
16
+ private convertContent;
17
+ private convertStopReason;
18
+ listModels(): Promise<ModelInfo[]>;
19
+ }
20
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EAKX,eAAe,EACf,SAAS,EACV,MAAM,YAAY,CAAC;AAMpB,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,GAAE,eAAoB;IAOlC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgBhE,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC;IA2DrF,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,yBAAyB;IAiCjC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,iBAAiB;IAcnB,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAUzC"}