attocode 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -1
- package/README.md +14 -10
- package/dist/src/agent.d.ts +2 -0
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +265 -7
- package/dist/src/agent.js.map +1 -1
- package/dist/src/defaults.d.ts +9 -1
- package/dist/src/defaults.d.ts.map +1 -1
- package/dist/src/defaults.js +22 -0
- package/dist/src/defaults.js.map +1 -1
- package/dist/src/integrations/index.d.ts +6 -0
- package/dist/src/integrations/index.d.ts.map +1 -1
- package/dist/src/integrations/index.js +12 -0
- package/dist/src/integrations/index.js.map +1 -1
- package/dist/src/integrations/interactive-planning.d.ts +322 -0
- package/dist/src/integrations/interactive-planning.d.ts.map +1 -0
- package/dist/src/integrations/interactive-planning.js +655 -0
- package/dist/src/integrations/interactive-planning.js.map +1 -0
- package/dist/src/integrations/learning-store.d.ts +291 -0
- package/dist/src/integrations/learning-store.d.ts.map +1 -0
- package/dist/src/integrations/learning-store.js +640 -0
- package/dist/src/integrations/learning-store.js.map +1 -0
- package/dist/src/integrations/pending-plan.d.ts.map +1 -1
- package/dist/src/integrations/pending-plan.js +69 -10
- package/dist/src/integrations/pending-plan.js.map +1 -1
- package/dist/src/providers/circuit-breaker.d.ts +180 -0
- package/dist/src/providers/circuit-breaker.d.ts.map +1 -0
- package/dist/src/providers/circuit-breaker.js +349 -0
- package/dist/src/providers/circuit-breaker.js.map +1 -0
- package/dist/src/providers/fallback-chain.d.ts +194 -0
- package/dist/src/providers/fallback-chain.d.ts.map +1 -0
- package/dist/src/providers/fallback-chain.js +363 -0
- package/dist/src/providers/fallback-chain.js.map +1 -0
- package/dist/src/providers/llm-resilience.d.ts +126 -0
- package/dist/src/providers/llm-resilience.d.ts.map +1 -0
- package/dist/src/providers/llm-resilience.js +261 -0
- package/dist/src/providers/llm-resilience.js.map +1 -0
- package/dist/src/providers/resilient-provider.d.ts +124 -0
- package/dist/src/providers/resilient-provider.d.ts.map +1 -0
- package/dist/src/providers/resilient-provider.js +242 -0
- package/dist/src/providers/resilient-provider.js.map +1 -0
- package/dist/src/tricks/recursive-context.d.ts +296 -0
- package/dist/src/tricks/recursive-context.d.ts.map +1 -0
- package/dist/src/tricks/recursive-context.js +518 -0
- package/dist/src/tricks/recursive-context.js.map +1 -0
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +97 -17
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/components/ApprovalDialog.d.ts.map +1 -1
- package/dist/src/tui/components/ApprovalDialog.js +1 -1
- package/dist/src/tui/components/ApprovalDialog.js.map +1 -1
- package/dist/src/types.d.ts +61 -0
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Learning Store Integration
|
|
3
|
+
*
|
|
4
|
+
* Provides cross-session persistence for failure patterns and learnings.
|
|
5
|
+
* Extends the failure-evidence system with long-term memory.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - SQLite persistence for learnings
|
|
9
|
+
* - Pattern extraction from failures
|
|
10
|
+
* - User validation workflow
|
|
11
|
+
* - Retrieval of relevant learnings for new sessions
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const store = createLearningStore({
|
|
16
|
+
* dbPath: '.agent/learnings.db',
|
|
17
|
+
* requireValidation: true,
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Connect failure tracker to store
|
|
21
|
+
* store.connectFailureTracker(tracker);
|
|
22
|
+
*
|
|
23
|
+
* // Learnings are auto-extracted and proposed
|
|
24
|
+
* store.on((event) => {
|
|
25
|
+
* if (event.type === 'learning.proposed') {
|
|
26
|
+
* // Ask user to validate
|
|
27
|
+
* const approved = await askUser(event.learning.description);
|
|
28
|
+
* if (approved) {
|
|
29
|
+
* store.validateLearning(event.learning.id, true);
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
* });
|
|
33
|
+
*
|
|
34
|
+
* // Retrieve relevant learnings for context
|
|
35
|
+
* const learnings = store.retrieveRelevant('file operations', 5);
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
import { type FailureTracker, type Failure, type FailurePattern, type FailureCategory } from '../tricks/failure-evidence.js';
|
|
39
|
+
/**
|
|
40
|
+
* Status of a learning.
|
|
41
|
+
*/
|
|
42
|
+
export type LearningStatus = 'proposed' | 'validated' | 'rejected' | 'archived';
|
|
43
|
+
/**
|
|
44
|
+
* Type of learning.
|
|
45
|
+
*/
|
|
46
|
+
export type LearningType = 'pattern' | 'workaround' | 'antipattern' | 'best_practice' | 'gotcha';
|
|
47
|
+
/**
|
|
48
|
+
* A learning record.
|
|
49
|
+
*/
|
|
50
|
+
export interface Learning {
|
|
51
|
+
/** Unique ID */
|
|
52
|
+
id: string;
|
|
53
|
+
/** When created */
|
|
54
|
+
createdAt: string;
|
|
55
|
+
/** When last updated */
|
|
56
|
+
updatedAt: string;
|
|
57
|
+
/** Learning type */
|
|
58
|
+
type: LearningType;
|
|
59
|
+
/** Current status */
|
|
60
|
+
status: LearningStatus;
|
|
61
|
+
/** Short description */
|
|
62
|
+
description: string;
|
|
63
|
+
/** Detailed explanation */
|
|
64
|
+
details?: string;
|
|
65
|
+
/** Related categories */
|
|
66
|
+
categories: FailureCategory[];
|
|
67
|
+
/** Related actions/tools */
|
|
68
|
+
actions: string[];
|
|
69
|
+
/** Keywords for retrieval */
|
|
70
|
+
keywords: string[];
|
|
71
|
+
/** How often this learning was applied */
|
|
72
|
+
applyCount: number;
|
|
73
|
+
/** How often it helped */
|
|
74
|
+
helpCount: number;
|
|
75
|
+
/** Confidence score (0-1) */
|
|
76
|
+
confidence: number;
|
|
77
|
+
/** Original failure IDs that led to this learning */
|
|
78
|
+
sourceFailureIds: string[];
|
|
79
|
+
/** User notes */
|
|
80
|
+
userNotes?: string;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Input for proposing a learning.
|
|
84
|
+
*/
|
|
85
|
+
export interface LearningProposal {
|
|
86
|
+
/** Learning type */
|
|
87
|
+
type: LearningType;
|
|
88
|
+
/** Short description */
|
|
89
|
+
description: string;
|
|
90
|
+
/** Detailed explanation */
|
|
91
|
+
details?: string;
|
|
92
|
+
/** Related categories */
|
|
93
|
+
categories?: FailureCategory[];
|
|
94
|
+
/** Related actions */
|
|
95
|
+
actions?: string[];
|
|
96
|
+
/** Keywords for retrieval */
|
|
97
|
+
keywords?: string[];
|
|
98
|
+
/** Source failures */
|
|
99
|
+
sourceFailures?: Failure[];
|
|
100
|
+
/** Initial confidence */
|
|
101
|
+
confidence?: number;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Configuration for learning store.
|
|
105
|
+
*/
|
|
106
|
+
export interface LearningStoreConfig {
|
|
107
|
+
/** Path to SQLite database */
|
|
108
|
+
dbPath?: string;
|
|
109
|
+
/** Whether to require user validation */
|
|
110
|
+
requireValidation?: boolean;
|
|
111
|
+
/** Minimum confidence to auto-validate */
|
|
112
|
+
autoValidateThreshold?: number;
|
|
113
|
+
/** Max learnings to keep */
|
|
114
|
+
maxLearnings?: number;
|
|
115
|
+
/** Whether to use in-memory database (for testing) */
|
|
116
|
+
inMemory?: boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Events emitted by learning store.
|
|
120
|
+
*/
|
|
121
|
+
export type LearningStoreEvent = {
|
|
122
|
+
type: 'learning.proposed';
|
|
123
|
+
learning: Learning;
|
|
124
|
+
} | {
|
|
125
|
+
type: 'learning.validated';
|
|
126
|
+
learningId: string;
|
|
127
|
+
} | {
|
|
128
|
+
type: 'learning.rejected';
|
|
129
|
+
learningId: string;
|
|
130
|
+
reason?: string;
|
|
131
|
+
} | {
|
|
132
|
+
type: 'learning.applied';
|
|
133
|
+
learningId: string;
|
|
134
|
+
context: string;
|
|
135
|
+
} | {
|
|
136
|
+
type: 'learning.helped';
|
|
137
|
+
learningId: string;
|
|
138
|
+
} | {
|
|
139
|
+
type: 'pattern.extracted';
|
|
140
|
+
pattern: FailurePattern;
|
|
141
|
+
learning: Learning;
|
|
142
|
+
};
|
|
143
|
+
export type LearningStoreEventListener = (event: LearningStoreEvent) => void;
|
|
144
|
+
/**
|
|
145
|
+
* Manages persistent storage and retrieval of learnings.
|
|
146
|
+
*/
|
|
147
|
+
export declare class LearningStore {
|
|
148
|
+
private config;
|
|
149
|
+
private db;
|
|
150
|
+
private listeners;
|
|
151
|
+
private failureTrackerUnsubscribe?;
|
|
152
|
+
constructor(config?: LearningStoreConfig);
|
|
153
|
+
/**
|
|
154
|
+
* Initialize the database schema.
|
|
155
|
+
*/
|
|
156
|
+
private initializeSchema;
|
|
157
|
+
/**
|
|
158
|
+
* Connect a failure tracker to automatically extract learnings.
|
|
159
|
+
*/
|
|
160
|
+
connectFailureTracker(tracker: FailureTracker): () => void;
|
|
161
|
+
/**
|
|
162
|
+
* Propose a new learning.
|
|
163
|
+
*/
|
|
164
|
+
proposeLearning(proposal: LearningProposal): Learning;
|
|
165
|
+
/**
|
|
166
|
+
* Validate a proposed learning.
|
|
167
|
+
*/
|
|
168
|
+
validateLearning(learningId: string, approved: boolean, reason?: string): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Record that a learning was applied.
|
|
171
|
+
*/
|
|
172
|
+
recordApply(learningId: string, context: string): boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Record that a learning helped.
|
|
175
|
+
*/
|
|
176
|
+
recordHelped(learningId: string): boolean;
|
|
177
|
+
/**
|
|
178
|
+
* Get a learning by ID.
|
|
179
|
+
*/
|
|
180
|
+
getLearning(id: string): Learning | null;
|
|
181
|
+
/**
|
|
182
|
+
* Get all validated learnings.
|
|
183
|
+
*/
|
|
184
|
+
getValidatedLearnings(): Learning[];
|
|
185
|
+
/**
|
|
186
|
+
* Get proposed learnings awaiting validation.
|
|
187
|
+
*/
|
|
188
|
+
getPendingLearnings(): Learning[];
|
|
189
|
+
/**
|
|
190
|
+
* Retrieve learnings relevant to a query.
|
|
191
|
+
*/
|
|
192
|
+
retrieveRelevant(query: string, limit?: number): Learning[];
|
|
193
|
+
/**
|
|
194
|
+
* Retrieve learnings by keyword (fallback).
|
|
195
|
+
*/
|
|
196
|
+
private retrieveByKeyword;
|
|
197
|
+
/**
|
|
198
|
+
* Retrieve learnings by category.
|
|
199
|
+
*/
|
|
200
|
+
retrieveByCategory(category: FailureCategory, limit?: number): Learning[];
|
|
201
|
+
/**
|
|
202
|
+
* Retrieve learnings by action.
|
|
203
|
+
*/
|
|
204
|
+
retrieveByAction(action: string, limit?: number): Learning[];
|
|
205
|
+
/**
|
|
206
|
+
* Get learning context formatted for LLM inclusion.
|
|
207
|
+
*/
|
|
208
|
+
getLearningContext(options?: {
|
|
209
|
+
query?: string;
|
|
210
|
+
categories?: FailureCategory[];
|
|
211
|
+
actions?: string[];
|
|
212
|
+
maxLearnings?: number;
|
|
213
|
+
}): string;
|
|
214
|
+
/**
|
|
215
|
+
* Archive a learning.
|
|
216
|
+
*/
|
|
217
|
+
archiveLearning(learningId: string): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Delete a learning.
|
|
220
|
+
*/
|
|
221
|
+
deleteLearning(learningId: string): boolean;
|
|
222
|
+
/**
|
|
223
|
+
* Get learning statistics.
|
|
224
|
+
*/
|
|
225
|
+
getStats(): {
|
|
226
|
+
total: number;
|
|
227
|
+
byStatus: Record<LearningStatus, number>;
|
|
228
|
+
byType: Record<LearningType, number>;
|
|
229
|
+
topApplied: Array<{
|
|
230
|
+
id: string;
|
|
231
|
+
description: string;
|
|
232
|
+
applyCount: number;
|
|
233
|
+
}>;
|
|
234
|
+
topHelpful: Array<{
|
|
235
|
+
id: string;
|
|
236
|
+
description: string;
|
|
237
|
+
helpCount: number;
|
|
238
|
+
}>;
|
|
239
|
+
};
|
|
240
|
+
/**
|
|
241
|
+
* Subscribe to events.
|
|
242
|
+
*/
|
|
243
|
+
on(listener: LearningStoreEventListener): () => void;
|
|
244
|
+
/**
|
|
245
|
+
* Close the database connection.
|
|
246
|
+
*/
|
|
247
|
+
close(): void;
|
|
248
|
+
private shouldAutoValidate;
|
|
249
|
+
private extractLearningFromPattern;
|
|
250
|
+
private extractKeywords;
|
|
251
|
+
private sanitizeFtsQuery;
|
|
252
|
+
private saveLearning;
|
|
253
|
+
private rowToLearning;
|
|
254
|
+
private emit;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Create a learning store.
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```typescript
|
|
261
|
+
* const store = createLearningStore({
|
|
262
|
+
* dbPath: '.agent/learnings.db',
|
|
263
|
+
* requireValidation: true,
|
|
264
|
+
* });
|
|
265
|
+
*
|
|
266
|
+
* // Propose a learning manually
|
|
267
|
+
* store.proposeLearning({
|
|
268
|
+
* type: 'gotcha',
|
|
269
|
+
* description: 'Always check file exists before reading',
|
|
270
|
+
* actions: ['read_file'],
|
|
271
|
+
* categories: ['not_found'],
|
|
272
|
+
* });
|
|
273
|
+
*
|
|
274
|
+
* // Retrieve relevant learnings
|
|
275
|
+
* const learnings = store.retrieveRelevant('file permissions');
|
|
276
|
+
* ```
|
|
277
|
+
*/
|
|
278
|
+
export declare function createLearningStore(config?: LearningStoreConfig): LearningStore;
|
|
279
|
+
/**
|
|
280
|
+
* Create an in-memory learning store (for testing).
|
|
281
|
+
*/
|
|
282
|
+
export declare function createInMemoryLearningStore(config?: Omit<LearningStoreConfig, 'dbPath' | 'inMemory'>): LearningStore;
|
|
283
|
+
/**
|
|
284
|
+
* Format learnings as context for LLM.
|
|
285
|
+
*/
|
|
286
|
+
export declare function formatLearningsContext(learnings: Learning[]): string;
|
|
287
|
+
/**
|
|
288
|
+
* Format learning stats for display.
|
|
289
|
+
*/
|
|
290
|
+
export declare function formatLearningStats(stats: ReturnType<LearningStore['getStats']>): string;
|
|
291
|
+
//# sourceMappingURL=learning-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learning-store.d.ts","sourceRoot":"","sources":["../../../src/integrations/learning-store.ts"],"names":[],"mappings":"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"}
|