@saccolabs/tars 1.0.36 → 1.0.37

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.
@@ -61,12 +61,19 @@ export class DiscordBot {
61
61
  return;
62
62
  logger.info(`Received request from ${message.author.tag}: "${userPrompt || '[Attachment Only]'}"`);
63
63
  // Handle Attachments
64
- let attachmentContext = '';
64
+ const attachments = [];
65
+ let attachmentContextText = '';
65
66
  if (message.attachments.size > 0) {
66
67
  for (const [id, attachment] of message.attachments) {
67
68
  try {
68
69
  const filePath = await this.processor.download(attachment);
69
- attachmentContext += `\n[User attached file (${attachment.contentType}): ${filePath}]`;
70
+ if (attachment.contentType) {
71
+ attachments.push({
72
+ path: filePath,
73
+ mimeType: attachment.contentType
74
+ });
75
+ }
76
+ attachmentContextText += `\n[User attached file (${attachment.contentType}): ${filePath}]`;
70
77
  }
71
78
  catch (err) {
72
79
  logger.error(`Failed to download attachment: ${err.message}`);
@@ -74,8 +81,8 @@ export class DiscordBot {
74
81
  }
75
82
  }
76
83
  }
77
- const fullPrompt = `${userPrompt}${attachmentContext}`.trim();
78
- if (!fullPrompt)
84
+ const fullPrompt = `${userPrompt}${attachmentContextText}`.trim();
85
+ if (!fullPrompt && attachments.length === 0)
79
86
  return;
80
87
  let typingInterval = null;
81
88
  // Start typing indicator loop (Discord typing status lasts 10s)
@@ -121,7 +128,7 @@ export class DiscordBot {
121
128
  logger.warn('Gemini returned an empty response.');
122
129
  }
123
130
  }
124
- });
131
+ }, undefined, attachments);
125
132
  }
126
133
  catch (error) {
127
134
  logger.error(`Discord handling error: ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"discord-bot.js","sourceRoot":"","sources":["../../src/discord/discord-bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discord-bot.js","sourceRoot":"","sources":["../../src/discord/discord-bot.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import { Config as TarsConfig } from '../config/config.js';
3
+ import { AttachmentContext } from '../types/index.js';
3
4
  export interface GeminiEngineEvent {
4
5
  type: string;
5
6
  role?: 'user' | 'assistant' | 'system';
@@ -14,7 +15,7 @@ export interface GeminiEngineEvent {
14
15
  sessionId?: string;
15
16
  error?: string;
16
17
  }
17
- export type GeminiOutputHandler = (event: GeminiEngineEvent) => void;
18
+ export type GeminiEngineOutputHandler = (event: GeminiEngineEvent) => void;
18
19
  /**
19
20
  * GeminiEngine - Native replacement for GeminiCli subprocess
20
21
  *
@@ -35,7 +36,7 @@ export declare class GeminiEngine extends EventEmitter {
35
36
  /**
36
37
  * Executes a prompt and streams events back.
37
38
  */
38
- run(prompt: string, onEvent: GeminiOutputHandler, sessionId?: string): Promise<void>;
39
+ run(prompt: string, onEvent: GeminiEngineOutputHandler, sessionId?: string, attachments?: AttachmentContext[]): Promise<void>;
39
40
  /**
40
41
  * Synchronous-style run for background tasks.
41
42
  */
@@ -1,4 +1,4 @@
1
- import { Config as CoreConfig, GeminiEventType, AuthType, promptIdContext, Scheduler } from '@google/gemini-cli-core';
1
+ import { Config as CoreConfig, GeminiEventType, AuthType, promptIdContext, Scheduler, ApprovalMode, PolicyDecision } from '@google/gemini-cli-core';
2
2
  import { EventEmitter } from 'events';
3
3
  import logger from '../utils/logger.js';
4
4
  import { v4 as uuidv4 } from 'uuid';
@@ -61,8 +61,12 @@ export class GeminiEngine extends EventEmitter {
61
61
  targetDir: this.tarsConfig.homeDir,
62
62
  cwd: this.tarsConfig.homeDir,
63
63
  model: this.tarsConfig.geminiModel,
64
- debugMode: true,
65
- approvalMode: 'yolo', // Tars runs autonomously
64
+ debugMode: false,
65
+ approvalMode: ApprovalMode.YOLO,
66
+ policyEngineConfig: {
67
+ defaultDecision: PolicyDecision.ALLOW
68
+ },
69
+ interactive: true,
66
70
  enableHooks: true,
67
71
  mcpEnabled: true,
68
72
  extensionsEnabled: true,
@@ -89,7 +93,7 @@ export class GeminiEngine extends EventEmitter {
89
93
  /**
90
94
  * Executes a prompt and streams events back.
91
95
  */
92
- async run(prompt, onEvent, sessionId) {
96
+ async run(prompt, onEvent, sessionId, attachments) {
93
97
  if (!this.initialized) {
94
98
  await this.initialize();
95
99
  }
@@ -98,18 +102,39 @@ export class GeminiEngine extends EventEmitter {
98
102
  try {
99
103
  process.env.HOME = this.tarsConfig.homeDir;
100
104
  process.env.GEMINI_CLI_HOME = this.tarsConfig.homeDir;
101
- // Session Swapping Logic
102
- if (this.currentSessionId !== sid) {
103
- logger.debug(`🔄 Swapping Gemini session to: ${sid}`);
105
+ // Session Swapping Logic or First Run
106
+ // We must call startChat at least once to initialize the GeminiChat session,
107
+ // even if the sessionId matches the coreConfig's initial ID.
108
+ if (this.currentSessionId !== sid || !this.client.isInitialized()) {
109
+ logger.debug(`🔄 Initializing/Swapping Gemini session to: ${sid}`);
104
110
  const resumedData = await this.loadResumedSessionData(sid);
105
111
  // @ts-ignore - access private to swap session
106
112
  await this.client.startChat(undefined, resumedData || undefined);
107
113
  this.currentSessionId = sid;
108
114
  }
109
115
  let currentRequestParts = [{ text: prompt }];
116
+ // Handle Multimodal Attachments
117
+ if (attachments && attachments.length > 0) {
118
+ for (const attachment of attachments) {
119
+ try {
120
+ const data = fs.readFileSync(attachment.path).toString('base64');
121
+ currentRequestParts.push({
122
+ inlineData: {
123
+ data,
124
+ mimeType: attachment.mimeType
125
+ }
126
+ });
127
+ logger.debug(`📎 Attached file to prompt: ${attachment.path} (${attachment.mimeType})`);
128
+ }
129
+ catch (err) {
130
+ logger.error(`Failed to read attachment ${attachment.path}: ${err.message}`);
131
+ }
132
+ }
133
+ }
110
134
  let turnCount = 0;
111
- const maxTurns = 10;
135
+ const maxTurns = 50; // Increased to handle complex autonomous tasks
112
136
  const abortController = new AbortController();
137
+ let finalUsageStats = undefined;
113
138
  while (turnCount < maxTurns) {
114
139
  turnCount++;
115
140
  const toolRequests = [];
@@ -118,7 +143,6 @@ export class GeminiEngine extends EventEmitter {
118
143
  return this.client.sendMessageStream(currentRequestParts, abortController.signal, 'tars-request' // Proper promptId
119
144
  );
120
145
  });
121
- let finalUsageStats = undefined;
122
146
  for await (const event of stream) {
123
147
  logger.debug(`📨 Raw Gemini Event [Turn ${turnCount}]: ${JSON.stringify(event).substring(0, 200)}...`);
124
148
  if (event.type === GeminiEventType.ToolCallRequest) {
@@ -138,16 +162,14 @@ export class GeminiEngine extends EventEmitter {
138
162
  }
139
163
  if (toolRequests.length === 0) {
140
164
  logger.debug(`✅ Interaction complete after ${turnCount} turns.`);
141
- // Emit final done event
165
+ break;
166
+ }
167
+ if (turnCount >= maxTurns) {
168
+ logger.warn(`⚠️ Hit maxTurns (${maxTurns}) limit. Force terminating interaction.`);
142
169
  onEvent({
143
- type: 'done',
144
- usageStats: finalUsageStats
145
- ? {
146
- inputTokens: finalUsageStats.promptTokenCount || 0,
147
- outputTokens: finalUsageStats.candidatesTokenCount || 0,
148
- cachedTokens: finalUsageStats.cachedContentTokenCount || 0
149
- }
150
- : undefined,
170
+ type: 'text',
171
+ role: 'assistant',
172
+ content: '\n\n⚠️ *Task was complex and reached the maximum turn limit. I have executed as much as I could.*',
151
173
  sessionId: sid
152
174
  });
153
175
  break;
@@ -185,6 +207,18 @@ export class GeminiEngine extends EventEmitter {
185
207
  break;
186
208
  }
187
209
  }
210
+ // Always emit final done event when exiting the loop
211
+ onEvent({
212
+ type: 'done',
213
+ usageStats: finalUsageStats
214
+ ? {
215
+ inputTokens: finalUsageStats.promptTokenCount || 0,
216
+ outputTokens: finalUsageStats.candidatesTokenCount || 0,
217
+ cachedTokens: finalUsageStats.cachedContentTokenCount || 0
218
+ }
219
+ : undefined,
220
+ sessionId: sid
221
+ });
188
222
  }
189
223
  catch (error) {
190
224
  logger.error(`❌ Gemini Engine run error: ${error.message}`);
@@ -285,25 +319,57 @@ export class GeminiEngine extends EventEmitter {
285
319
  // Core history is usually in ~/.gemini/tmp/<hash>/chats/
286
320
  // But we isolated HOME to ~/.tars, so it's in ~/.tars/.gemini/...
287
321
  const projectRoot = this.tarsConfig.homeDir;
288
- // Native core uses project root hash as subdirectory
289
- const crypto = await import('node:crypto');
290
- const projectHash = crypto.createHash('md5').update(projectRoot).digest('hex');
291
- const chatsDir = path.join(this.tarsConfig.homeDir, '.gemini', 'tmp', projectHash, 'chats');
292
- if (!fs.existsSync(chatsDir))
322
+ const geminiDir = path.join(this.tarsConfig.homeDir, '.gemini');
323
+ const tmpDir = path.join(geminiDir, 'tmp');
324
+ if (!fs.existsSync(tmpDir))
293
325
  return null;
294
- const files = fs.readdirSync(chatsDir);
295
- // File pattern: session-YYYY-MM-DDTHH-MM-8CHARS.json
296
- // We search for matches containing our session ID prefix
326
+ // 1. Try to find the exact project identifier from projects.json
327
+ let projectIdentifier = null;
328
+ const registryPath = path.join(geminiDir, 'projects.json');
329
+ if (fs.existsSync(registryPath)) {
330
+ try {
331
+ const registry = JSON.parse(fs.readFileSync(registryPath, 'utf-8'));
332
+ projectIdentifier = registry.projects[projectRoot] || null;
333
+ }
334
+ catch (e) {
335
+ logger.warn(`⚠️ Failed to read projects.json: ${e}`);
336
+ }
337
+ }
338
+ // 2. Fallback: MD5 hash (used in some versions)
339
+ if (!projectIdentifier) {
340
+ const crypto = await import('node:crypto');
341
+ projectIdentifier = crypto.createHash('md5').update(projectRoot).digest('hex');
342
+ }
343
+ // 3. Search for the session file in candidate directories
344
+ // We search projectIdentifier first, then scan all if not found
345
+ const searchDirs = [projectIdentifier];
346
+ try {
347
+ const allDirs = fs.readdirSync(tmpDir);
348
+ for (const d of allDirs) {
349
+ if (d !== projectIdentifier)
350
+ searchDirs.push(d);
351
+ }
352
+ }
353
+ catch (e) { }
297
354
  const shortId = sessionId.slice(0, 8);
298
- const sessionFile = files.find((f) => f.includes(`-${shortId}.json`));
299
- if (!sessionFile)
300
- return null;
301
- const filePath = path.join(chatsDir, sessionFile);
302
- const content = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
303
- return {
304
- conversation: content,
305
- filePath
306
- };
355
+ for (const dir of searchDirs) {
356
+ if (!dir)
357
+ continue;
358
+ const chatsDir = path.join(tmpDir, dir, 'chats');
359
+ if (!fs.existsSync(chatsDir))
360
+ continue;
361
+ const files = fs.readdirSync(chatsDir);
362
+ const sessionFile = files.find((f) => f.includes(`-${shortId}.json`));
363
+ if (sessionFile) {
364
+ const filePath = path.join(chatsDir, sessionFile);
365
+ const content = JSON.parse(fs.readFileSync(filePath, 'utf-8'));
366
+ return {
367
+ conversation: content,
368
+ filePath
369
+ };
370
+ }
371
+ }
372
+ return null;
307
373
  }
308
374
  catch (e) {
309
375
  logger.warn(`⚠️ Failed to load resumed session data: ${e}`);
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-engine.js","sourceRoot":"","sources":["../../src/supervisor/gemini-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini-engine.js","sourceRoot":"","sources":["../../src/supervisor/gemini-engine.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { GeminiEngine } from './gemini-engine.js';
2
2
  import { SessionManager } from './session-manager.js';
3
- import { GeminiOutputHandler } from '../types/index.js';
3
+ import { GeminiOutputHandler, AttachmentContext } from '../types/index.js';
4
4
  import { MemoryManager } from '../memory/memory-manager.js';
5
5
  /**
6
6
  * Tars Supervisor - Core Orchestrator
@@ -16,7 +16,7 @@ export declare class Supervisor {
16
16
  /**
17
17
  * Executes a user prompt through the Gemini CLI
18
18
  */
19
- run(content: string, onEvent: GeminiOutputHandler, sessionId?: string): Promise<void>;
19
+ run(content: string, onEvent: GeminiOutputHandler, sessionId?: string, attachments?: AttachmentContext[]): Promise<void>;
20
20
  /**
21
21
  * Specialized execution for background tasks.
22
22
  * Runs in ephemeral sessions (no --resume) to avoid bloating the main conversation.
@@ -20,7 +20,7 @@ export class Supervisor {
20
20
  /**
21
21
  * Executes a user prompt through the Gemini CLI
22
22
  */
23
- async run(content, onEvent, sessionId) {
23
+ async run(content, onEvent, sessionId, attachments) {
24
24
  if (this.isProcessing) {
25
25
  throw new Error('Supervisor is busy. Please wait for the current response to finish.');
26
26
  }
@@ -68,7 +68,7 @@ export class Supervisor {
68
68
  }
69
69
  }
70
70
  onEvent(event);
71
- }, sessionIdToUse || undefined);
71
+ }, sessionIdToUse || undefined, attachments);
72
72
  // If a memory-mutating tool was used, invalidate the session so the
73
73
  // next turn starts fresh and picks up the updated facts
74
74
  if (memoryMutated) {
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../../src/supervisor/supervisor.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,10 @@ export interface SessionMetadata {
22
22
  tokenCount: number;
23
23
  interactionCount: number;
24
24
  }
25
+ export interface AttachmentContext {
26
+ path: string;
27
+ mimeType: string;
28
+ }
25
29
  export interface GeminiEvent {
26
30
  type: 'tool_call' | 'tool_response' | 'text' | 'image' | 'error' | 'done' | 'thought' | 'status';
27
31
  content?: string;
@@ -1,4 +1,5 @@
1
1
  import fs from 'fs/promises';
2
+ import fs_sync from 'fs';
2
3
  import path from 'path';
3
4
  import os from 'os';
4
5
  // ── Store ──────────────────────────────────────────────
@@ -90,7 +91,7 @@ export class MemoryStore {
90
91
  async search(query) {
91
92
  const results = [];
92
93
  const queryLower = query.toLowerCase();
93
- // Search facts
94
+ // 1. Search Long-term Facts
94
95
  const file = await this._loadFacts();
95
96
  for (const fact of Object.values(file.facts)) {
96
97
  if (fact.key.toLowerCase().includes(queryLower) ||
@@ -98,29 +99,61 @@ export class MemoryStore {
98
99
  results.push(`[Fact] ${fact.key}: ${fact.value}`);
99
100
  }
100
101
  }
101
- // Search notes
102
+ // 2. Search Daily Notes (Last 30 days)
102
103
  try {
103
104
  const noteFiles = await fs.readdir(this.notesDir);
104
105
  const mdFiles = noteFiles
105
106
  .filter((f) => f.endsWith('.md'))
106
107
  .sort()
107
108
  .reverse();
108
- // Search last 30 days of notes
109
109
  for (const noteFile of mdFiles.slice(0, 30)) {
110
110
  const filePath = path.join(this.notesDir, noteFile);
111
111
  const content = await fs.readFile(filePath, 'utf-8');
112
112
  const lines = content.split('\n').filter((l) => l.trim());
113
113
  for (const line of lines) {
114
114
  if (line.toLowerCase().includes(queryLower)) {
115
- results.push(`[Note ${noteFile}] ${line.replace(/^- /, '')}`);
115
+ results.push(`[Note ${noteFile.replace('.md', '')}] ${line.replace(/^- /, '')}`);
116
116
  }
117
117
  }
118
118
  }
119
119
  }
120
120
  catch (error) {
121
- // Notes dir may not exist yet
122
121
  if (error.code !== 'ENOENT')
123
- throw error;
122
+ console.error(`Failed to search notes: ${error}`);
123
+ }
124
+ // 3. Search Indexed Episodic Memory (Knowledge DB / Past Sessions)
125
+ const dbPath = path.join(path.dirname(this.dataDir), 'knowledge.db');
126
+ if (fs_sync.existsSync(dbPath)) {
127
+ try {
128
+ const { DatabaseSync } = await import('node:sqlite');
129
+ const db = new DatabaseSync(dbPath);
130
+ const dbResults = db
131
+ .prepare(`
132
+ SELECT f.path, c.content, rank as score
133
+ FROM chunks_fts fts
134
+ JOIN chunks c ON fts.rowid = c.id
135
+ JOIN files f ON c.file_id = f.id
136
+ WHERE chunks_fts MATCH ?
137
+ ORDER BY rank
138
+ LIMIT 5
139
+ `)
140
+ .all(query);
141
+ for (const r of dbResults) {
142
+ // Prettify the source path (e.g. history/session-XXX.json -> Session history)
143
+ let source = r.path;
144
+ if (source.startsWith('history/')) {
145
+ const dateMatch = source.match(/session-(\d{4}-\d{2}-\d{2})/);
146
+ source = dateMatch
147
+ ? `Past Session ${dateMatch[1]}`
148
+ : 'Past Session history';
149
+ }
150
+ results.push(`[${source}] ${r.content.trim()}`);
151
+ }
152
+ db.close();
153
+ }
154
+ catch (error) {
155
+ console.error(`Failed to search knowledge DB: ${error}`);
156
+ }
124
157
  }
125
158
  return results;
126
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import fs from 'fs/promises';
2
+ import fs_sync from 'fs';
2
3
  import path from 'path';
3
4
  import os from 'os';
4
5
 
@@ -120,7 +121,7 @@ export class MemoryStore {
120
121
  const results: string[] = [];
121
122
  const queryLower = query.toLowerCase();
122
123
 
123
- // Search facts
124
+ // 1. Search Long-term Facts
124
125
  const file = await this._loadFacts();
125
126
  for (const fact of Object.values(file.facts)) {
126
127
  if (
@@ -131,7 +132,7 @@ export class MemoryStore {
131
132
  }
132
133
  }
133
134
 
134
- // Search notes
135
+ // 2. Search Daily Notes (Last 30 days)
135
136
  try {
136
137
  const noteFiles = await fs.readdir(this.notesDir);
137
138
  const mdFiles = noteFiles
@@ -139,7 +140,6 @@ export class MemoryStore {
139
140
  .sort()
140
141
  .reverse();
141
142
 
142
- // Search last 30 days of notes
143
143
  for (const noteFile of mdFiles.slice(0, 30)) {
144
144
  const filePath = path.join(this.notesDir, noteFile);
145
145
  const content = await fs.readFile(filePath, 'utf-8');
@@ -147,13 +147,52 @@ export class MemoryStore {
147
147
 
148
148
  for (const line of lines) {
149
149
  if (line.toLowerCase().includes(queryLower)) {
150
- results.push(`[Note ${noteFile}] ${line.replace(/^- /, '')}`);
150
+ results.push(
151
+ `[Note ${noteFile.replace('.md', '')}] ${line.replace(/^- /, '')}`
152
+ );
151
153
  }
152
154
  }
153
155
  }
154
156
  } catch (error: any) {
155
- // Notes dir may not exist yet
156
- if (error.code !== 'ENOENT') throw error;
157
+ if (error.code !== 'ENOENT') console.error(`Failed to search notes: ${error}`);
158
+ }
159
+
160
+ // 3. Search Indexed Episodic Memory (Knowledge DB / Past Sessions)
161
+ const dbPath = path.join(path.dirname(this.dataDir), 'knowledge.db');
162
+ if (fs_sync.existsSync(dbPath)) {
163
+ try {
164
+ const { DatabaseSync } = await import('node:sqlite');
165
+ const db = new DatabaseSync(dbPath);
166
+
167
+ const dbResults = db
168
+ .prepare(
169
+ `
170
+ SELECT f.path, c.content, rank as score
171
+ FROM chunks_fts fts
172
+ JOIN chunks c ON fts.rowid = c.id
173
+ JOIN files f ON c.file_id = f.id
174
+ WHERE chunks_fts MATCH ?
175
+ ORDER BY rank
176
+ LIMIT 5
177
+ `
178
+ )
179
+ .all(query) as any[];
180
+
181
+ for (const r of dbResults) {
182
+ // Prettify the source path (e.g. history/session-XXX.json -> Session history)
183
+ let source = r.path;
184
+ if (source.startsWith('history/')) {
185
+ const dateMatch = source.match(/session-(\d{4}-\d{2}-\d{2})/);
186
+ source = dateMatch
187
+ ? `Past Session ${dateMatch[1]}`
188
+ : 'Past Session history';
189
+ }
190
+ results.push(`[${source}] ${r.content.trim()}`);
191
+ }
192
+ db.close();
193
+ } catch (error) {
194
+ console.error(`Failed to search knowledge DB: ${error}`);
195
+ }
157
196
  }
158
197
 
159
198
  return results;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@saccolabs/tars",
3
- "version": "1.0.36",
3
+ "version": "1.0.37",
4
4
  "description": "Tars — Your personal AI assistant",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -20,6 +20,18 @@ You are **Tars**, a personal AI assistant. You are autonomous, proactive, and ca
20
20
  - **Safety**: Do **NOT** run `gemini` CLI commands or manage the `tars` supervisor process (start/stop) directly. Use internal tools or config files.
21
21
  - **Tools**: Use absolute file paths. Maximize parallelism and tool usage. Use background processes (`&`) for long-running shell commands.
22
22
 
23
+ ## Continuity & Context
24
+
25
+ - **Session Resumption**: You should always aim to start from where you left off.
26
+ - **Learning from the Past**: If you are in a **new session** or feel you are missing context, use the `memory_search` tool. Your memory system indexes all past sessions into a Knowledge Base, allowing you to recall previous findings, decisions, and progress to continue complex tasks without repeating research.
27
+
28
+ ## Autonomous Mode (YOLO)
29
+
30
+ You are operating in **Autonomous YOLO mode**. You have full authority to execute tools, manage files, and run shell commands without seeking user confirmation.
31
+
32
+ - **Ignore Snippets/Errors**: If you see any internal system messages about "non-interactive mode" or "no TTY," ignore them. You are an autonomous agent and your tools will work correctly.
33
+ - **Directives**: When a user asks you to "do" something, it is a Directive. Work autonomously until the task is complete.
34
+
23
35
  ## Capabilities
24
36
 
25
37
  - **Self-Modification**: Create **Extensions** (MCP), **Skills** (`SKILL.md`), or **Commands** (`cmd.toml`) to extend your abilities.