attocode 0.1.0 → 0.1.3

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 (103) hide show
  1. package/CHANGELOG.md +64 -1
  2. package/README.md +138 -10
  3. package/dist/src/agent.d.ts +75 -1
  4. package/dist/src/agent.d.ts.map +1 -1
  5. package/dist/src/agent.js +700 -25
  6. package/dist/src/agent.js.map +1 -1
  7. package/dist/src/commands/agents-commands.d.ts +24 -0
  8. package/dist/src/commands/agents-commands.d.ts.map +1 -0
  9. package/dist/src/commands/agents-commands.js +284 -0
  10. package/dist/src/commands/agents-commands.js.map +1 -0
  11. package/dist/src/commands/handler.d.ts.map +1 -1
  12. package/dist/src/commands/handler.js +135 -19
  13. package/dist/src/commands/handler.js.map +1 -1
  14. package/dist/src/commands/init-commands.d.ts +35 -0
  15. package/dist/src/commands/init-commands.d.ts.map +1 -0
  16. package/dist/src/commands/init-commands.js +187 -0
  17. package/dist/src/commands/init-commands.js.map +1 -0
  18. package/dist/src/commands/skills-commands.d.ts +26 -0
  19. package/dist/src/commands/skills-commands.d.ts.map +1 -0
  20. package/dist/src/commands/skills-commands.js +309 -0
  21. package/dist/src/commands/skills-commands.js.map +1 -0
  22. package/dist/src/commands/types.d.ts +13 -2
  23. package/dist/src/commands/types.d.ts.map +1 -1
  24. package/dist/src/defaults.d.ts +29 -1
  25. package/dist/src/defaults.d.ts.map +1 -1
  26. package/dist/src/defaults.js +66 -0
  27. package/dist/src/defaults.js.map +1 -1
  28. package/dist/src/integrations/agent-registry.d.ts +68 -2
  29. package/dist/src/integrations/agent-registry.d.ts.map +1 -1
  30. package/dist/src/integrations/agent-registry.js +230 -23
  31. package/dist/src/integrations/agent-registry.js.map +1 -1
  32. package/dist/src/integrations/cancellation.d.ts +5 -0
  33. package/dist/src/integrations/cancellation.d.ts.map +1 -1
  34. package/dist/src/integrations/cancellation.js +7 -0
  35. package/dist/src/integrations/cancellation.js.map +1 -1
  36. package/dist/src/integrations/capabilities.d.ts +160 -0
  37. package/dist/src/integrations/capabilities.d.ts.map +1 -0
  38. package/dist/src/integrations/capabilities.js +426 -0
  39. package/dist/src/integrations/capabilities.js.map +1 -0
  40. package/dist/src/integrations/context-engineering.d.ts +6 -1
  41. package/dist/src/integrations/context-engineering.d.ts.map +1 -1
  42. package/dist/src/integrations/context-engineering.js +7 -0
  43. package/dist/src/integrations/context-engineering.js.map +1 -1
  44. package/dist/src/integrations/index.d.ts +12 -2
  45. package/dist/src/integrations/index.d.ts.map +1 -1
  46. package/dist/src/integrations/index.js +22 -2
  47. package/dist/src/integrations/index.js.map +1 -1
  48. package/dist/src/integrations/interactive-planning.d.ts +322 -0
  49. package/dist/src/integrations/interactive-planning.d.ts.map +1 -0
  50. package/dist/src/integrations/interactive-planning.js +655 -0
  51. package/dist/src/integrations/interactive-planning.js.map +1 -0
  52. package/dist/src/integrations/learning-store.d.ts +291 -0
  53. package/dist/src/integrations/learning-store.d.ts.map +1 -0
  54. package/dist/src/integrations/learning-store.js +640 -0
  55. package/dist/src/integrations/learning-store.js.map +1 -0
  56. package/dist/src/integrations/pending-plan.d.ts.map +1 -1
  57. package/dist/src/integrations/pending-plan.js +69 -10
  58. package/dist/src/integrations/pending-plan.js.map +1 -1
  59. package/dist/src/integrations/skill-executor.d.ts +113 -0
  60. package/dist/src/integrations/skill-executor.d.ts.map +1 -0
  61. package/dist/src/integrations/skill-executor.js +270 -0
  62. package/dist/src/integrations/skill-executor.js.map +1 -0
  63. package/dist/src/integrations/skills.d.ts +98 -7
  64. package/dist/src/integrations/skills.d.ts.map +1 -1
  65. package/dist/src/integrations/skills.js +210 -11
  66. package/dist/src/integrations/skills.js.map +1 -1
  67. package/dist/src/providers/circuit-breaker.d.ts +180 -0
  68. package/dist/src/providers/circuit-breaker.d.ts.map +1 -0
  69. package/dist/src/providers/circuit-breaker.js +349 -0
  70. package/dist/src/providers/circuit-breaker.js.map +1 -0
  71. package/dist/src/providers/fallback-chain.d.ts +194 -0
  72. package/dist/src/providers/fallback-chain.d.ts.map +1 -0
  73. package/dist/src/providers/fallback-chain.js +363 -0
  74. package/dist/src/providers/fallback-chain.js.map +1 -0
  75. package/dist/src/providers/llm-resilience.d.ts +126 -0
  76. package/dist/src/providers/llm-resilience.d.ts.map +1 -0
  77. package/dist/src/providers/llm-resilience.js +261 -0
  78. package/dist/src/providers/llm-resilience.js.map +1 -0
  79. package/dist/src/providers/resilient-provider.d.ts +124 -0
  80. package/dist/src/providers/resilient-provider.d.ts.map +1 -0
  81. package/dist/src/providers/resilient-provider.js +242 -0
  82. package/dist/src/providers/resilient-provider.js.map +1 -0
  83. package/dist/src/tricks/recursive-context.d.ts +296 -0
  84. package/dist/src/tricks/recursive-context.d.ts.map +1 -0
  85. package/dist/src/tricks/recursive-context.js +518 -0
  86. package/dist/src/tricks/recursive-context.js.map +1 -0
  87. package/dist/src/tui/app.d.ts.map +1 -1
  88. package/dist/src/tui/app.js +226 -29
  89. package/dist/src/tui/app.js.map +1 -1
  90. package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -1
  91. package/dist/src/tui/components/ApprovalDialog.js +1 -1
  92. package/dist/src/tui/components/ApprovalDialog.js.map +1 -1
  93. package/dist/src/tui/index.d.ts +1 -0
  94. package/dist/src/tui/index.d.ts.map +1 -1
  95. package/dist/src/tui/index.js +2 -0
  96. package/dist/src/tui/index.js.map +1 -1
  97. package/dist/src/tui/transparency-aggregator.d.ts +100 -0
  98. package/dist/src/tui/transparency-aggregator.d.ts.map +1 -0
  99. package/dist/src/tui/transparency-aggregator.js +234 -0
  100. package/dist/src/tui/transparency-aggregator.js.map +1 -0
  101. package/dist/src/types.d.ts +155 -0
  102. package/dist/src/types.d.ts.map +1 -1
  103. package/package.json +1 -1
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Trick U: Recursive Language Model Context (RLM)
3
+ *
4
+ * Instead of cramming everything into context or summarizing, let the model
5
+ * "browse" the context as an external environment through recursive self-calls.
6
+ *
7
+ * Inspired by arXiv:2512.24601 - Recursive Language Models.
8
+ *
9
+ * Problem: Traditional approaches either:
10
+ * - Stuff everything in context → hits limits, loses attention
11
+ * - Summarize → loses critical details
12
+ *
13
+ * Solution: Let the model decide what parts of context to examine, then
14
+ * recursively call itself with focused snippets, synthesizing across calls.
15
+ *
16
+ * @example
17
+ * ```typescript
18
+ * const rlm = createRecursiveContext({
19
+ * maxDepth: 3,
20
+ * snippetTokens: 2000,
21
+ * synthesisTokens: 1000,
22
+ * });
23
+ *
24
+ * // Register context sources
25
+ * rlm.registerSource('files', {
26
+ * describe: () => 'Project source files',
27
+ * list: async () => ['src/main.ts', 'src/agent.ts', ...],
28
+ * fetch: async (key) => readFile(key),
29
+ * });
30
+ *
31
+ * // Process a query with recursive context access
32
+ * const result = await rlm.process(query, llmCall, {
33
+ * depth: 0,
34
+ * budget: 10000,
35
+ * });
36
+ * ```
37
+ */
38
+ /**
39
+ * A context source that can be browsed.
40
+ */
41
+ export interface ContextSource {
42
+ /** Brief description of this source */
43
+ describe: () => string;
44
+ /** List available items in this source */
45
+ list: (filter?: string) => Promise<string[]>;
46
+ /** Fetch a specific item */
47
+ fetch: (key: string) => Promise<string>;
48
+ /** Optional: search within this source */
49
+ search?: (query: string) => Promise<Array<{
50
+ key: string;
51
+ snippet: string;
52
+ score: number;
53
+ }>>;
54
+ }
55
+ /**
56
+ * A navigation command from the model.
57
+ */
58
+ export interface NavigationCommand {
59
+ /** Type of navigation */
60
+ type: 'list' | 'fetch' | 'search' | 'synthesize' | 'done';
61
+ /** Source to navigate (for list/fetch/search) */
62
+ source?: string;
63
+ /** Key to fetch or query to search */
64
+ key?: string;
65
+ /** Reason for this navigation */
66
+ reason?: string;
67
+ }
68
+ /**
69
+ * Result of a recursive call.
70
+ */
71
+ export interface RecursiveResult {
72
+ /** Final synthesized answer */
73
+ answer: string;
74
+ /** Breadcrumb trail of navigation */
75
+ path: NavigationStep[];
76
+ /** Statistics */
77
+ stats: RecursiveStats;
78
+ }
79
+ /**
80
+ * A step in the navigation path.
81
+ */
82
+ export interface NavigationStep {
83
+ /** Depth in the recursion tree */
84
+ depth: number;
85
+ /** Command executed */
86
+ command: NavigationCommand;
87
+ /** Result (truncated if large) */
88
+ result: string;
89
+ /** Tokens used */
90
+ tokens: number;
91
+ }
92
+ /**
93
+ * Statistics about recursive processing.
94
+ */
95
+ export interface RecursiveStats {
96
+ /** Total LLM calls made */
97
+ totalCalls: number;
98
+ /** Maximum depth reached */
99
+ maxDepthReached: number;
100
+ /** Total tokens used */
101
+ totalTokens: number;
102
+ /** Context sources accessed */
103
+ sourcesAccessed: string[];
104
+ /** Items fetched */
105
+ itemsFetched: number;
106
+ /** Processing time in ms */
107
+ duration: number;
108
+ }
109
+ /**
110
+ * Configuration for recursive context.
111
+ */
112
+ export interface RecursiveContextConfig {
113
+ /** Maximum recursion depth */
114
+ maxDepth?: number;
115
+ /** Maximum tokens per snippet */
116
+ snippetTokens?: number;
117
+ /** Maximum tokens for synthesis */
118
+ synthesisTokens?: number;
119
+ /** Token budget for entire process */
120
+ totalBudget?: number;
121
+ /** Whether to cache fetched items */
122
+ cacheResults?: boolean;
123
+ /** Timeout per LLM call in ms */
124
+ callTimeout?: number;
125
+ }
126
+ /**
127
+ * Options for a recursive process call.
128
+ */
129
+ export interface ProcessOptions {
130
+ /** Current depth (for recursive calls) */
131
+ depth?: number;
132
+ /** Remaining token budget */
133
+ budget?: number;
134
+ /** Previous navigation context (for recursive calls) */
135
+ navigationContext?: string;
136
+ /** Cancel token */
137
+ cancelToken?: {
138
+ isCancelled: boolean;
139
+ };
140
+ }
141
+ /**
142
+ * LLM call function signature.
143
+ */
144
+ export type LLMCallFunction = (systemPrompt: string, userMessage: string, options?: {
145
+ maxTokens?: number;
146
+ }) => Promise<{
147
+ content: string;
148
+ tokens: number;
149
+ }>;
150
+ /**
151
+ * Events emitted during recursive processing.
152
+ */
153
+ export type RecursiveContextEvent = {
154
+ type: 'process.started';
155
+ query: string;
156
+ depth: number;
157
+ } | {
158
+ type: 'navigation.command';
159
+ command: NavigationCommand;
160
+ depth: number;
161
+ } | {
162
+ type: 'source.accessed';
163
+ source: string;
164
+ command: string;
165
+ } | {
166
+ type: 'synthesis.started';
167
+ depth: number;
168
+ itemCount: number;
169
+ } | {
170
+ type: 'process.completed';
171
+ stats: RecursiveStats;
172
+ } | {
173
+ type: 'budget.warning';
174
+ remaining: number;
175
+ total: number;
176
+ } | {
177
+ type: 'depth.warning';
178
+ current: number;
179
+ max: number;
180
+ };
181
+ export type RecursiveContextEventListener = (event: RecursiveContextEvent) => void;
182
+ /**
183
+ * Manages recursive context navigation.
184
+ */
185
+ export declare class RecursiveContextManager {
186
+ private config;
187
+ private sources;
188
+ private cache;
189
+ private listeners;
190
+ constructor(config?: RecursiveContextConfig);
191
+ /**
192
+ * Register a context source.
193
+ */
194
+ registerSource(name: string, source: ContextSource): void;
195
+ /**
196
+ * Unregister a context source.
197
+ */
198
+ unregisterSource(name: string): void;
199
+ /**
200
+ * Get registered source names.
201
+ */
202
+ getSourceNames(): string[];
203
+ /**
204
+ * Process a query with recursive context navigation.
205
+ */
206
+ process(query: string, llmCall: LLMCallFunction, options?: ProcessOptions): Promise<RecursiveResult>;
207
+ /**
208
+ * Clear the results cache.
209
+ */
210
+ clearCache(): void;
211
+ /**
212
+ * Subscribe to events.
213
+ */
214
+ on(listener: RecursiveContextEventListener): () => void;
215
+ private buildSourceDescriptions;
216
+ private buildContextSummary;
217
+ private parseNavigationCommand;
218
+ private executeCommand;
219
+ private synthesize;
220
+ private formatGatheredItem;
221
+ private truncate;
222
+ private estimateTokens;
223
+ private emit;
224
+ }
225
+ /**
226
+ * Create a recursive context manager.
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * const rlm = createRecursiveContext({
231
+ * maxDepth: 3,
232
+ * snippetTokens: 2000,
233
+ * totalBudget: 50000,
234
+ * });
235
+ *
236
+ * // Register file system source
237
+ * rlm.registerSource('files', {
238
+ * describe: () => 'Project source files',
239
+ * list: async () => glob('src/*.ts'),
240
+ * fetch: async (path) => fs.readFile(path, 'utf-8'),
241
+ * search: async (query) => grep(query),
242
+ * });
243
+ *
244
+ * // Process a complex query
245
+ * const result = await rlm.process(
246
+ * 'How does authentication work in this codebase?',
247
+ * async (system, user, opts) => {
248
+ * const response = await provider.chat([
249
+ * { role: 'system', content: system },
250
+ * { role: 'user', content: user },
251
+ * ], opts);
252
+ * return { content: response.content, tokens: response.usage.totalTokens };
253
+ * }
254
+ * );
255
+ *
256
+ * console.log(result.answer);
257
+ * console.log(`Used ${result.stats.totalTokens} tokens across ${result.stats.totalCalls} calls`);
258
+ * ```
259
+ */
260
+ export declare function createRecursiveContext(config?: RecursiveContextConfig): RecursiveContextManager;
261
+ /**
262
+ * Create a minimal recursive context manager for testing.
263
+ */
264
+ export declare function createMinimalRecursiveContext(): RecursiveContextManager;
265
+ /**
266
+ * Create a file system context source.
267
+ */
268
+ export declare function createFileSystemSource(options: {
269
+ basePath: string;
270
+ glob: (pattern: string) => Promise<string[]>;
271
+ readFile: (path: string) => Promise<string>;
272
+ grep?: (query: string, path?: string) => Promise<Array<{
273
+ file: string;
274
+ line: number;
275
+ content: string;
276
+ }>>;
277
+ }): ContextSource;
278
+ /**
279
+ * Create a conversation history context source.
280
+ */
281
+ export declare function createConversationSource(options: {
282
+ getMessages: () => Array<{
283
+ role: string;
284
+ content: string;
285
+ timestamp?: string;
286
+ }>;
287
+ }): ContextSource;
288
+ /**
289
+ * Format recursive result for display.
290
+ */
291
+ export declare function formatRecursiveResult(result: RecursiveResult): string;
292
+ /**
293
+ * Format statistics for display.
294
+ */
295
+ export declare function formatRecursiveStats(stats: RecursiveStats): string;
296
+ //# sourceMappingURL=recursive-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursive-context.d.ts","sourceRoot":"","sources":["../../../src/tricks/recursive-context.ts"],"names":[],"mappings":"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"}