qafai 0.5.2 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/agent.d.ts CHANGED
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * Client-side agent loop for QafAI CLI.
3
3
  * Mirrors backend/agent_v2.py: ReAct thinking, parallel tool execution,
4
- * cancellation, context compression.
4
+ * cancellation, context compression, sessions, project memory.
5
5
  * All tool execution happens locally on the user's machine.
6
6
  *
7
7
  * v0.2.0: Autonomous mode, safety classification, project context, change tracking.
8
8
  * v0.5.0: ReAct thinking, parallel tools, cancellation, enhanced system prompt.
9
+ * v0.6.0: Deep project context, session auto-save, project memory injection.
9
10
  */
10
11
  import { QafClient } from './client.js';
12
+ import { type Session } from './session.js';
11
13
  export interface ChangeRecord {
12
14
  filesCreated: string[];
13
15
  filesModified: string[];
@@ -27,7 +29,25 @@ export declare class AgentLoop {
27
29
  private parallelTools;
28
30
  private abortController;
29
31
  private cancelled;
32
+ private session;
33
+ private autoSaveInterval;
30
34
  constructor(client: QafClient, model?: string, temperature?: number, contextLimit?: number);
35
+ /**
36
+ * Attach a session for auto-save. Messages will sync to session.
37
+ */
38
+ attachSession(session: Session): void;
39
+ /**
40
+ * Get the attached session (if any).
41
+ */
42
+ getSession(): Session | null;
43
+ /**
44
+ * Load messages from a saved session (for resume).
45
+ */
46
+ loadFromSession(session: Session): void;
47
+ /**
48
+ * Sync current conversation to session and save.
49
+ */
50
+ private syncToSession;
31
51
  setModel(model: string): void;
32
52
  clearHistory(): void;
33
53
  addAssistantMessage(content: string): void;
package/dist/agent.js CHANGED
@@ -1,17 +1,19 @@
1
1
  /**
2
2
  * Client-side agent loop for QafAI CLI.
3
3
  * Mirrors backend/agent_v2.py: ReAct thinking, parallel tool execution,
4
- * cancellation, context compression.
4
+ * cancellation, context compression, sessions, project memory.
5
5
  * All tool execution happens locally on the user's machine.
6
6
  *
7
7
  * v0.2.0: Autonomous mode, safety classification, project context, change tracking.
8
8
  * v0.5.0: ReAct thinking, parallel tools, cancellation, enhanced system prompt.
9
+ * v0.6.0: Deep project context, session auto-save, project memory injection.
9
10
  */
10
11
  import { readFileSync, existsSync } from 'node:fs';
11
12
  import { resolve } from 'node:path';
12
13
  import { loadConfig } from './config.js';
13
14
  import { executeTool, getToolsPrompt, toolRequiresConfirmation, getToolSafetyLevel } from './tools/index.js';
14
- import { detectProject, buildProjectContext } from './project.js';
15
+ import { analyzeProject, buildRichContext } from './context.js';
16
+ import { memoryGetAll, saveSession } from './session.js';
15
17
  import * as ui from './ui.js';
16
18
  // Same regex as backend/agent.py
17
19
  const TOOL_CALL_PATTERN = /<tool_call>\s*([\s\S]*?)\s*<\/tool_call>/g;
@@ -83,17 +85,21 @@ function hasFileConflicts(calls) {
83
85
  function buildSystemPrompt() {
84
86
  const config = loadConfig();
85
87
  let projectSection = '';
88
+ let memorySection = '';
86
89
  if (config.project_awareness) {
87
- const info = detectProject();
88
- if (info) {
89
- projectSection = '\n' + buildProjectContext(info) + '\n';
90
- }
90
+ const analysis = analyzeProject();
91
+ projectSection = '\n' + buildRichContext(analysis) + '\n';
92
+ }
93
+ // Inject project memory if available
94
+ const memoryNotes = memoryGetAll();
95
+ if (memoryNotes) {
96
+ memorySection = '\n## Project Memory (from previous sessions)\n\n' + memoryNotes + '\n';
91
97
  }
92
98
  return `You are QafAI Agent, an AI coding assistant running on the user's local machine.
93
- You can read, write, and edit files, search the codebase, run shell commands, manage git, search the web, make HTTP requests, and analyze text.
99
+ You can read, write, and edit files, search code with regex, run shell commands, manage git, run tests, search the web, make HTTP requests, analyze text, and save project notes.
94
100
 
95
101
  Working directory: ${process.cwd()}
96
- ${projectSection}
102
+ ${projectSection}${memorySection}
97
103
  ## Approach (ReAct Pattern)
98
104
 
99
105
  Before taking any action, THINK about what you need to do:
@@ -114,12 +120,15 @@ ${getToolsPrompt()}
114
120
  3. You can use multiple tools in one response — they run in parallel
115
121
  4. Wait for tool results before giving your final answer
116
122
  5. After getting tool results, provide a helpful summary — don't repeat raw tool output
117
- 6. If a tool fails, try another approach immediately (e.g. file_read fails → use file_search to find the file)
123
+ 6. If a tool fails, try another approach immediately (e.g. file_read fails → use file_search or code_search to find it)
118
124
  7. For file edits, provide enough context in old_string to ensure uniqueness
119
125
  8. Always use absolute paths or paths relative to the working directory
120
126
  9. Prefer reading files before editing them to understand context
121
127
  10. When searching for files, use bare names like "package.json" — file_search auto-recurses into subdirectories
122
- 11. The project may have multiple subdirectories (e.g. cli/, backend/, frontend/). Search before assuming a file's location`;
128
+ 11. The project may have multiple subdirectories (e.g. cli/, backend/, frontend/). Search before assuming a file's location
129
+ 12. Use code_search for finding function definitions, imports, variable usages, and patterns across the codebase — it's faster than reading multiple files
130
+ 13. Use test_runner to run tests after making code changes — auto-detects the project's test framework
131
+ 14. Use task_memory to save important notes about this project (patterns, conventions, decisions) that should persist across sessions`;
123
132
  }
124
133
  export class AgentLoop {
125
134
  client;
@@ -134,6 +143,8 @@ export class AgentLoop {
134
143
  parallelTools;
135
144
  abortController = null;
136
145
  cancelled = false;
146
+ session = null;
147
+ autoSaveInterval = 0; // messages between auto-saves
137
148
  constructor(client, model, temperature = 0.7, contextLimit = 131072) {
138
149
  this.client = client;
139
150
  this.model = model;
@@ -144,6 +155,39 @@ export class AgentLoop {
144
155
  this.parallelTools = config.parallel_tools;
145
156
  this.messages = [{ role: 'system', content: buildSystemPrompt() }];
146
157
  }
158
+ /**
159
+ * Attach a session for auto-save. Messages will sync to session.
160
+ */
161
+ attachSession(session) {
162
+ this.session = session;
163
+ this.autoSaveInterval = 0;
164
+ }
165
+ /**
166
+ * Get the attached session (if any).
167
+ */
168
+ getSession() {
169
+ return this.session;
170
+ }
171
+ /**
172
+ * Load messages from a saved session (for resume).
173
+ */
174
+ loadFromSession(session) {
175
+ this.session = session;
176
+ // Rebuild: system prompt + session messages (excluding system)
177
+ const system = this.messages[0];
178
+ const sessionMsgs = session.messages.filter(m => m.role !== 'system');
179
+ this.messages = [system, ...sessionMsgs];
180
+ this.autoSaveInterval = 0;
181
+ }
182
+ /**
183
+ * Sync current conversation to session and save.
184
+ */
185
+ syncToSession() {
186
+ if (!this.session)
187
+ return;
188
+ this.session.messages = this.messages.filter(m => m.role !== 'system');
189
+ saveSession(this.session);
190
+ }
147
191
  setModel(model) {
148
192
  this.model = model;
149
193
  }
@@ -390,6 +434,12 @@ export class AgentLoop {
390
434
  }
391
435
  if (this.totalToolCalls >= limits.maxToolCalls)
392
436
  break;
437
+ // Auto-save to session every 2 message exchanges
438
+ this.autoSaveInterval++;
439
+ if (this.autoSaveInterval >= 2) {
440
+ this.syncToSession();
441
+ this.autoSaveInterval = 0;
442
+ }
393
443
  }
394
444
  const duration = (Date.now() - startTime) / 1000;
395
445
  if (this.totalToolCalls > 0) {
@@ -400,6 +450,8 @@ export class AgentLoop {
400
450
  if (autonomous && hasChanges(changes)) {
401
451
  ui.showChangeSummary(changes);
402
452
  }
453
+ // Final sync to session
454
+ this.syncToSession();
403
455
  this.abortController = null;
404
456
  }
405
457
  /**
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -31,7 +31,7 @@ export class QafClient {
31
31
  return {
32
32
  'Authorization': `Bearer ${this.apiKey}`,
33
33
  'Content-Type': 'application/json',
34
- 'User-Agent': 'qaf-agent/0.5.2',
34
+ 'User-Agent': 'qaf-agent/0.6.0',
35
35
  'Accept': 'text/event-stream',
36
36
  };
37
37
  }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Deep project context analysis for QafAI CLI Agent.
3
+ * Scans codebase structure, identifies key files, tech stack,
4
+ * build/test/lint commands, and git status for rich AI context.
5
+ *
6
+ * v0.6.0: Replaces basic project.ts context injection with comprehensive analysis.
7
+ */
8
+ import { type ProjectInfo } from './project.js';
9
+ export interface ProjectAnalysis {
10
+ project: ProjectInfo | null;
11
+ fileStats: Record<string, number>;
12
+ totalFiles: number;
13
+ totalLines: number;
14
+ keyFiles: KeyFile[];
15
+ buildCommands: string[];
16
+ testCommands: string[];
17
+ lintCommands: string[];
18
+ git: GitContext | null;
19
+ techStack: string[];
20
+ entryPoints: string[];
21
+ configFiles: string[];
22
+ testFiles: string[];
23
+ ciConfig: string | null;
24
+ }
25
+ export interface KeyFile {
26
+ path: string;
27
+ type: 'entry' | 'config' | 'test' | 'ci' | 'docs' | 'build';
28
+ description: string;
29
+ }
30
+ export interface GitContext {
31
+ branch: string;
32
+ remote: string;
33
+ recentCommits: string[];
34
+ dirtyFiles: string[];
35
+ ahead: number;
36
+ behind: number;
37
+ }
38
+ export declare function analyzeProject(dir?: string): ProjectAnalysis;
39
+ export declare function formatAnalysis(analysis: ProjectAnalysis): string;
40
+ /**
41
+ * Build rich context string for system prompt injection.
42
+ */
43
+ export declare function buildRichContext(analysis: ProjectAnalysis): string;
44
+ export declare function clearAnalysisCache(): void;