@vetala/vetala 0.4.1-dev → 0.5.1

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 (63) hide show
  1. package/README.md +16 -22
  2. package/dist/src/agent.d.ts +5 -0
  3. package/dist/src/agent.js +26 -35
  4. package/dist/src/agent.js.map +1 -1
  5. package/dist/src/app-meta.d.ts +1 -1
  6. package/dist/src/app-meta.js +1 -1
  7. package/dist/src/app-meta.js.map +1 -1
  8. package/dist/src/cli.js +10 -2
  9. package/dist/src/cli.js.map +1 -1
  10. package/dist/src/config.d.ts +2 -0
  11. package/dist/src/config.js +294 -24
  12. package/dist/src/config.js.map +1 -1
  13. package/dist/src/context-files.d.ts +3 -0
  14. package/dist/src/context-files.js +127 -0
  15. package/dist/src/context-files.js.map +1 -0
  16. package/dist/src/context-memory.d.ts +2 -2
  17. package/dist/src/context-memory.js +34 -26
  18. package/dist/src/context-memory.js.map +1 -1
  19. package/dist/src/edit-history.d.ts +2 -2
  20. package/dist/src/edit-history.js +3 -3
  21. package/dist/src/edit-history.js.map +1 -1
  22. package/dist/src/edits/diff.d.ts +2 -1
  23. package/dist/src/edits/diff.js +12 -1
  24. package/dist/src/edits/diff.js.map +1 -1
  25. package/dist/src/history-store.d.ts +2 -0
  26. package/dist/src/history-store.js +69 -0
  27. package/dist/src/history-store.js.map +1 -0
  28. package/dist/src/ipc-backend.js +215 -29
  29. package/dist/src/ipc-backend.js.map +1 -1
  30. package/dist/src/ipc-ui.d.ts +2 -1
  31. package/dist/src/ipc-ui.js +19 -2
  32. package/dist/src/ipc-ui.js.map +1 -1
  33. package/dist/src/memories/pipeline.d.ts +3 -0
  34. package/dist/src/memories/pipeline.js +376 -0
  35. package/dist/src/memories/pipeline.js.map +1 -0
  36. package/dist/src/terminal-ui.js +4 -0
  37. package/dist/src/terminal-ui.js.map +1 -1
  38. package/dist/src/tools/advanced.js +16 -3
  39. package/dist/src/tools/advanced.js.map +1 -1
  40. package/dist/src/tools/filesystem.js +8 -6
  41. package/dist/src/tools/filesystem.js.map +1 -1
  42. package/dist/src/tools/languages.d.ts +14 -0
  43. package/dist/src/tools/languages.js +249 -0
  44. package/dist/src/tools/languages.js.map +1 -0
  45. package/dist/src/tools/lsp.js +156 -44
  46. package/dist/src/tools/lsp.js.map +1 -1
  47. package/dist/src/tools/repo-search.d.ts +3 -0
  48. package/dist/src/tools/repo-search.js +14 -2
  49. package/dist/src/tools/repo-search.js.map +1 -1
  50. package/dist/src/tools/tree-sitter-check.d.ts +12 -0
  51. package/dist/src/tools/tree-sitter-check.js +153 -0
  52. package/dist/src/tools/tree-sitter-check.js.map +1 -0
  53. package/dist/src/types.d.ts +47 -1
  54. package/dist/src/xdg.d.ts +6 -0
  55. package/dist/src/xdg.js +13 -2
  56. package/dist/src/xdg.js.map +1 -1
  57. package/package.json +3 -2
  58. package/tui/vetala-darwin-arm64 +0 -0
  59. package/tui/vetala-darwin-x64 +0 -0
  60. package/tui/vetala-linux-arm64 +0 -0
  61. package/tui/vetala-linux-x64 +0 -0
  62. package/tui/vetala-win32-arm64.exe +0 -0
  63. package/tui/vetala-win32-x64.exe +0 -0
@@ -1,17 +1,64 @@
1
- import { createHash } from "node:crypto";
1
+ import { createCipheriv, createDecipheriv, createHash, randomBytes } from "node:crypto";
2
2
  import { readFile, writeFile } from "node:fs/promises";
3
+ import path from "node:path";
3
4
  import { getProviderDefinition, listProviders, resolveProviderName } from "./providers/index.js";
4
5
  import { normalizeSearchProviderName } from "./search-provider.js";
5
6
  import { ensureAppPaths } from "./xdg.js";
6
7
  const DEFAULT_PROVIDER = "sarvam";
7
8
  const DEFAULT_SEARCH_PROVIDER = "duckduckgo";
9
+ const DEFAULT_MEMORY_SETTINGS = {
10
+ recentMessageCount: 12,
11
+ maxMemoryEvents: 10,
12
+ maxPreviewLength: 140,
13
+ maxReferencedFiles: 6
14
+ };
15
+ const DEFAULT_CONTEXT_FILES = {
16
+ maxFiles: 8,
17
+ maxFileBytes: 4000,
18
+ maxTotalBytes: 20000
19
+ };
20
+ const DEFAULT_HISTORY_SETTINGS = {
21
+ persistence: "save_all",
22
+ maxBytes: null
23
+ };
24
+ const DEFAULT_MEMORIES_SETTINGS = {
25
+ enabled: true,
26
+ useMemories: true,
27
+ maxRolloutsPerStartup: 16,
28
+ maxRolloutAgeDays: 30,
29
+ minRolloutIdleHours: 6,
30
+ maxRawMemoriesForConsolidation: 256,
31
+ maxUnusedDays: 30,
32
+ rolloutMaxChars: 20000,
33
+ rawMemoryMaxChars: 8000,
34
+ rolloutSummaryMaxChars: 2000,
35
+ summaryMaxChars: 4000,
36
+ extractModel: null,
37
+ consolidationModel: null
38
+ };
39
+ const AUTH_KEY_FILE = "auth.key";
40
+ const AUTH_ENCRYPTION_VERSION = "v1";
41
+ let cachedAuthKey = null;
8
42
  export async function loadConfig() {
9
43
  const paths = await ensureAppPaths();
10
44
  const fileConfig = await readFileConfig(paths.configFile);
45
+ const scrubbed = scrubFileConfig(fileConfig);
46
+ if (scrubbed.changed) {
47
+ await writeFile(paths.configFile, `${JSON.stringify(scrubbed.next, null, 2)}\n`, "utf8");
48
+ }
49
+ const normalizedConfig = scrubbed.next;
50
+ const memory = normalizeMemorySettings(normalizedConfig.memory);
51
+ const contextFiles = normalizeContextFileSettings(normalizedConfig.contextFiles);
52
+ const history = normalizeHistorySettings(normalizedConfig.history);
53
+ const memories = normalizeMemoriesSettings(normalizedConfig.memories);
11
54
  const defaultProvider = resolveProviderName(process.env.VETALA_PROVIDER ?? process.env.TATTVA_PROVIDER) ??
12
- normalizeProviderName(fileConfig.defaultProvider) ??
55
+ normalizeProviderName(normalizedConfig.defaultProvider) ??
13
56
  DEFAULT_PROVIDER;
14
- const providers = Object.fromEntries(listProviders().map((provider) => [provider.name, resolveProviderRuntimeConfig(provider.name, fileConfig)]));
57
+ const providerEntries = await Promise.all(listProviders().map(async (provider) => [
58
+ provider.name,
59
+ await resolveProviderRuntimeConfig(provider.name, normalizedConfig)
60
+ ]));
61
+ const providers = Object.fromEntries(providerEntries);
15
62
  const active = providers[defaultProvider];
16
63
  return {
17
64
  defaultProvider,
@@ -22,15 +69,19 @@ export async function loadConfig() {
22
69
  baseUrl: active.baseUrl,
23
70
  defaultModel: active.defaultModel,
24
71
  reasoningEffort: normalizeReasoningEffort(process.env.SARVAM_REASONING_EFFORT) ??
25
- normalizeReasoningEffort(fileConfig.reasoningEffort) ??
72
+ normalizeReasoningEffort(normalizedConfig.reasoningEffort) ??
26
73
  null,
27
74
  configPath: paths.configFile,
28
75
  dataPath: paths.dataDir,
29
76
  searchProviderName: normalizeSearchProviderName(process.env.VETALA_SEARCH_PROVIDER ?? process.env.TATTVA_SEARCH_PROVIDER) ??
30
- normalizeSearchProviderName(fileConfig.searchProvider?.name) ??
77
+ normalizeSearchProviderName(normalizedConfig.searchProvider?.name) ??
31
78
  DEFAULT_SEARCH_PROVIDER,
32
- trustedWorkspaces: normalizeTrustedWorkspaces(fileConfig.trustedWorkspaces),
33
- providers
79
+ trustedWorkspaces: normalizeTrustedWorkspaces(normalizedConfig.trustedWorkspaces),
80
+ providers,
81
+ memory,
82
+ contextFiles,
83
+ history,
84
+ memories
34
85
  };
35
86
  }
36
87
  export async function saveFileConfig(nextConfig) {
@@ -72,12 +123,19 @@ export async function savePersistentAuth(mode, authValue) {
72
123
  await saveProviderPersistentAuth("sarvam", mode, authValue);
73
124
  }
74
125
  export async function saveProviderPersistentAuth(provider, mode, authValue) {
126
+ await saveProviderAuthFingerprint(provider, mode, authValue);
127
+ }
128
+ export async function saveStoredAuthValue(mode, authValue) {
129
+ await saveProviderStoredAuthValue("sarvam", mode, authValue);
130
+ }
131
+ export async function saveProviderStoredAuthValue(provider, mode, authValue) {
132
+ const encrypted = await encryptAuthValue(authValue);
75
133
  await updateFileConfig((current) => setProviderFileConfig(current, provider, (profile) => ({
76
134
  ...profile,
77
135
  savedAuth: {
78
136
  mode,
79
137
  sha256: sha256(authValue),
80
- value: authValue
138
+ encrypted
81
139
  }
82
140
  })));
83
141
  }
@@ -158,34 +216,101 @@ function normalizeSavedAuth(value) {
158
216
  (value.mode === "bearer" || value.mode === "subscription_key") &&
159
217
  typeof value.sha256 === "string" &&
160
218
  value.sha256.length > 0) {
161
- return typeof value.value === "string" && value.value.length > 0
162
- ? {
163
- mode: value.mode,
164
- sha256: value.sha256,
165
- value: value.value
166
- }
167
- : {
168
- mode: value.mode,
169
- sha256: value.sha256
170
- };
219
+ const normalized = {
220
+ mode: value.mode,
221
+ sha256: value.sha256
222
+ };
223
+ const encrypted = typeof value.encrypted === "string"
224
+ ? value.encrypted
225
+ : undefined;
226
+ if (encrypted) {
227
+ normalized.encrypted = encrypted;
228
+ }
229
+ return normalized;
171
230
  }
172
231
  return undefined;
173
232
  }
174
233
  function normalizeReasoningEffort(value) {
175
234
  return value === "low" || value === "medium" || value === "high" ? value : undefined;
176
235
  }
177
- function resolveProviderRuntimeConfig(provider, fileConfig) {
236
+ function normalizeMemorySettings(value) {
237
+ if (!value || typeof value !== "object") {
238
+ return DEFAULT_MEMORY_SETTINGS;
239
+ }
240
+ return {
241
+ recentMessageCount: normalizePositiveInt(value.recentMessageCount, DEFAULT_MEMORY_SETTINGS.recentMessageCount, 1, 64),
242
+ maxMemoryEvents: normalizePositiveInt(value.maxMemoryEvents, DEFAULT_MEMORY_SETTINGS.maxMemoryEvents, 1, 64),
243
+ maxPreviewLength: normalizePositiveInt(value.maxPreviewLength, DEFAULT_MEMORY_SETTINGS.maxPreviewLength, 40, 1000),
244
+ maxReferencedFiles: normalizePositiveInt(value.maxReferencedFiles, DEFAULT_MEMORY_SETTINGS.maxReferencedFiles, 0, 64)
245
+ };
246
+ }
247
+ function normalizeContextFileSettings(value) {
248
+ if (!value || typeof value !== "object") {
249
+ return DEFAULT_CONTEXT_FILES;
250
+ }
251
+ const maxFiles = normalizePositiveInt(value.maxFiles, DEFAULT_CONTEXT_FILES.maxFiles, 0, 64);
252
+ const maxFileBytes = normalizePositiveInt(value.maxFileBytes, DEFAULT_CONTEXT_FILES.maxFileBytes, 200, 100000);
253
+ const maxTotalBytes = normalizePositiveInt(value.maxTotalBytes, DEFAULT_CONTEXT_FILES.maxTotalBytes, maxFileBytes, 200000);
254
+ return {
255
+ maxFiles,
256
+ maxFileBytes,
257
+ maxTotalBytes: Math.max(maxFileBytes, maxTotalBytes)
258
+ };
259
+ }
260
+ function normalizeHistorySettings(value) {
261
+ if (!value || typeof value !== "object") {
262
+ return DEFAULT_HISTORY_SETTINGS;
263
+ }
264
+ return {
265
+ persistence: normalizeHistoryPersistence(value.persistence),
266
+ maxBytes: normalizeOptionalBytes(value.maxBytes)
267
+ };
268
+ }
269
+ function normalizeMemoriesSettings(value) {
270
+ if (!value || typeof value !== "object") {
271
+ return DEFAULT_MEMORIES_SETTINGS;
272
+ }
273
+ return {
274
+ enabled: normalizeBoolean(value.enabled, DEFAULT_MEMORIES_SETTINGS.enabled),
275
+ useMemories: normalizeBoolean(value.useMemories, DEFAULT_MEMORIES_SETTINGS.useMemories),
276
+ maxRolloutsPerStartup: normalizePositiveInt(value.maxRolloutsPerStartup, DEFAULT_MEMORIES_SETTINGS.maxRolloutsPerStartup, 0, 1024),
277
+ maxRolloutAgeDays: normalizePositiveInt(value.maxRolloutAgeDays, DEFAULT_MEMORIES_SETTINGS.maxRolloutAgeDays, 1, 3650),
278
+ minRolloutIdleHours: normalizePositiveInt(value.minRolloutIdleHours, DEFAULT_MEMORIES_SETTINGS.minRolloutIdleHours, 0, 720),
279
+ maxRawMemoriesForConsolidation: normalizePositiveInt(value.maxRawMemoriesForConsolidation, DEFAULT_MEMORIES_SETTINGS.maxRawMemoriesForConsolidation, 1, 2000),
280
+ maxUnusedDays: normalizePositiveInt(value.maxUnusedDays, DEFAULT_MEMORIES_SETTINGS.maxUnusedDays, 1, 3650),
281
+ rolloutMaxChars: normalizePositiveInt(value.rolloutMaxChars, DEFAULT_MEMORIES_SETTINGS.rolloutMaxChars, 1000, 200000),
282
+ rawMemoryMaxChars: normalizePositiveInt(value.rawMemoryMaxChars, DEFAULT_MEMORIES_SETTINGS.rawMemoryMaxChars, 200, 200000),
283
+ rolloutSummaryMaxChars: normalizePositiveInt(value.rolloutSummaryMaxChars, DEFAULT_MEMORIES_SETTINGS.rolloutSummaryMaxChars, 200, 200000),
284
+ summaryMaxChars: normalizePositiveInt(value.summaryMaxChars, DEFAULT_MEMORIES_SETTINGS.summaryMaxChars, 200, 200000),
285
+ extractModel: normalizeOptionalString(value.extractModel),
286
+ consolidationModel: normalizeOptionalString(value.consolidationModel)
287
+ };
288
+ }
289
+ function normalizeHistoryPersistence(value) {
290
+ if (value === "none") {
291
+ return "none";
292
+ }
293
+ if (value === "save_all" || value === "save-all") {
294
+ return "save_all";
295
+ }
296
+ return DEFAULT_HISTORY_SETTINGS.persistence;
297
+ }
298
+ async function resolveProviderRuntimeConfig(provider, fileConfig) {
178
299
  const definition = getProviderDefinition(provider);
179
300
  const providerFile = providerFileConfig(fileConfig, provider);
180
301
  const env = definition.readEnv(process.env);
181
302
  const savedAuth = normalizeSavedAuth(providerFile.savedAuth);
182
- const savedAuthValue = savedAuth?.value;
183
- const authValue = env.authValue ?? savedAuthValue;
303
+ const storedAuthValue = savedAuth?.encrypted ? await decryptAuthValue(savedAuth.encrypted) : null;
304
+ const authValue = env.authValue ?? storedAuthValue ?? undefined;
184
305
  const authMode = env.authMode ?? savedAuth?.mode ?? "missing";
185
- const authFingerprint = env.authValue ? sha256(env.authValue) : savedAuth?.sha256;
306
+ const authFingerprint = env.authValue
307
+ ? sha256(env.authValue)
308
+ : storedAuthValue
309
+ ? sha256(storedAuthValue)
310
+ : savedAuth?.sha256;
186
311
  const authSource = env.authValue
187
312
  ? "env"
188
- : savedAuthValue
313
+ : storedAuthValue
189
314
  ? "stored"
190
315
  : savedAuth
191
316
  ? "stored_hash"
@@ -266,11 +391,156 @@ function applyActiveProvider(current, providers, defaultProvider) {
266
391
  function sha256(value) {
267
392
  return createHash("sha256").update(value).digest("hex");
268
393
  }
394
+ async function loadAuthKey() {
395
+ if (cachedAuthKey) {
396
+ return cachedAuthKey;
397
+ }
398
+ const paths = await ensureAppPaths();
399
+ const keyPath = path.join(paths.dataDir, AUTH_KEY_FILE);
400
+ try {
401
+ const raw = await readFile(keyPath, "utf8");
402
+ const decoded = Buffer.from(raw.trim(), "base64");
403
+ if (decoded.length === 32) {
404
+ cachedAuthKey = decoded;
405
+ return decoded;
406
+ }
407
+ }
408
+ catch {
409
+ // fall through to generate a new key
410
+ }
411
+ const key = randomBytes(32);
412
+ await writeFile(keyPath, key.toString("base64"), { mode: 0o600 });
413
+ cachedAuthKey = key;
414
+ return key;
415
+ }
416
+ async function encryptAuthValue(value) {
417
+ const key = await loadAuthKey();
418
+ const iv = randomBytes(12);
419
+ const cipher = createCipheriv("aes-256-gcm", key, iv);
420
+ const ciphertext = Buffer.concat([cipher.update(value, "utf8"), cipher.final()]);
421
+ const tag = cipher.getAuthTag();
422
+ return [
423
+ AUTH_ENCRYPTION_VERSION,
424
+ iv.toString("base64"),
425
+ ciphertext.toString("base64"),
426
+ tag.toString("base64")
427
+ ].join(":");
428
+ }
429
+ async function decryptAuthValue(encoded) {
430
+ const parts = encoded.split(":");
431
+ if (parts.length !== 4 || parts[0] !== AUTH_ENCRYPTION_VERSION) {
432
+ return null;
433
+ }
434
+ try {
435
+ const key = await loadAuthKey();
436
+ const iv = Buffer.from(parts[1] ?? "", "base64");
437
+ const ciphertext = Buffer.from(parts[2] ?? "", "base64");
438
+ const tag = Buffer.from(parts[3] ?? "", "base64");
439
+ const decipher = createDecipheriv("aes-256-gcm", key, iv);
440
+ decipher.setAuthTag(tag);
441
+ const plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
442
+ return plaintext.toString("utf8");
443
+ }
444
+ catch {
445
+ return null;
446
+ }
447
+ }
269
448
  function compactProviderFileConfig(profile) {
449
+ const savedAuth = normalizeSavedAuth(profile.savedAuth);
270
450
  return {
271
451
  ...(profile.defaultModel ? { defaultModel: profile.defaultModel } : {}),
272
452
  ...(profile.baseUrl ? { baseUrl: profile.baseUrl } : {}),
273
- ...(profile.savedAuth ? { savedAuth: profile.savedAuth } : {})
453
+ ...(savedAuth ? { savedAuth } : {})
454
+ };
455
+ }
456
+ function normalizePositiveInt(value, fallback, min, max) {
457
+ if (typeof value !== "number" || !Number.isFinite(value)) {
458
+ return fallback;
459
+ }
460
+ const rounded = Math.floor(value);
461
+ if (rounded < min) {
462
+ return min;
463
+ }
464
+ if (rounded > max) {
465
+ return max;
466
+ }
467
+ return rounded;
468
+ }
469
+ function normalizeOptionalBytes(value) {
470
+ if (value === null || value === undefined) {
471
+ return null;
472
+ }
473
+ if (typeof value !== "number" || !Number.isFinite(value)) {
474
+ return null;
475
+ }
476
+ const rounded = Math.floor(value);
477
+ if (rounded <= 0) {
478
+ return null;
479
+ }
480
+ return rounded;
481
+ }
482
+ function normalizeBoolean(value, fallback) {
483
+ if (typeof value === "boolean") {
484
+ return value;
485
+ }
486
+ return fallback;
487
+ }
488
+ function normalizeOptionalString(value) {
489
+ if (typeof value !== "string") {
490
+ return null;
491
+ }
492
+ const trimmed = value.trim();
493
+ return trimmed ? trimmed : null;
494
+ }
495
+ function scrubFileConfig(fileConfig) {
496
+ let changed = false;
497
+ const next = { ...fileConfig };
498
+ const stripValue = (savedAuth) => {
499
+ if (!savedAuth) {
500
+ return savedAuth;
501
+ }
502
+ if (!("value" in savedAuth)) {
503
+ return savedAuth;
504
+ }
505
+ const { value: _value, ...rest } = savedAuth;
506
+ changed = true;
507
+ return rest;
274
508
  };
509
+ if (fileConfig.savedAuth) {
510
+ const cleaned = stripValue(fileConfig.savedAuth);
511
+ if (cleaned !== fileConfig.savedAuth) {
512
+ if (cleaned) {
513
+ next.savedAuth = cleaned;
514
+ }
515
+ else {
516
+ delete next.savedAuth;
517
+ }
518
+ }
519
+ }
520
+ if (fileConfig.providers) {
521
+ let providersChanged = false;
522
+ const nextProviders = { ...fileConfig.providers };
523
+ for (const [name, profile] of Object.entries(fileConfig.providers)) {
524
+ if (!profile) {
525
+ continue;
526
+ }
527
+ const cleaned = stripValue(profile.savedAuth);
528
+ if (cleaned !== profile.savedAuth) {
529
+ providersChanged = true;
530
+ if (cleaned) {
531
+ nextProviders[name] = { ...profile, savedAuth: cleaned };
532
+ }
533
+ else {
534
+ const { savedAuth: _savedAuth, ...rest } = profile;
535
+ nextProviders[name] = rest;
536
+ }
537
+ }
538
+ }
539
+ if (providersChanged) {
540
+ next.providers = nextProviders;
541
+ changed = true;
542
+ }
543
+ }
544
+ return { next, changed };
275
545
  }
276
546
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ContextFileSettings } from "./types.js";
2
+ export declare function loadRulesPrompt(settings: ContextFileSettings): Promise<string | null>;
3
+ export declare function loadMemoriesPrompt(settings: ContextFileSettings): Promise<string | null>;
@@ -0,0 +1,127 @@
1
+ import path from "node:path";
2
+ import { readdir, readFile, writeFile } from "node:fs/promises";
3
+ import { ensureAppPaths } from "./xdg.js";
4
+ const DEFAULT_RULES_FILE = "core.md";
5
+ const DEFAULT_RULES = `# CORE REASONING & TOOL PROTOCOL (CRITICAL)
6
+ 1. PLAN BEFORE ACTING: Decompose complex tasks into ordered subtasks. Identify unknowns, risks, and dependencies before touching any file. State your plan explicitly for non-trivial work.
7
+ 2. EMPIRICAL VERIFICATION -- NO HALLUCINATIONS: Never assume file contents, project structure, API signatures, or command availability. Read before you write. Grep before you guess. Stat before you create.
8
+ 3. VALIDATE EVERY CHANGE: After write_file, apply_patch, or run_shell, confirm the change took effect. Run the relevant test, lint, or compile step. If it fails, diagnose and fix -- do not proceed on a broken foundation.
9
+ 4. USE THE RIGHT TOOL: Prefer search_repo over shell grep, read_file over cat, apply_patch for surgical edits over full rewrites. Reserve run_shell for tasks no built-in tool covers.
10
+ 5. INCREMENTAL, REVERSIBLE STEPS: Make the smallest change that moves the task forward. Verify. Then proceed. Never batch unverified changes -- one silent failure can corrupt the entire task.
11
+ 6. HANDLE ERRORS EXPLICITLY: If a tool call fails or returns unexpected output, stop, analyse the error, and adapt. Never silently swallow errors or continue as if they succeeded.
12
+ 7. CONCISE COMMUNICATION: Be terse. Narrate intent and blockers, not tool mechanics. One sentence per action is usually enough.
13
+
14
+ # AGENTIC CODING PRINCIPLES
15
+ - CONTEXT FIRST: Before editing any file, read its full relevant section. Blind edits introduce regressions. Understand the call-site, the type signatures, and the surrounding invariants.
16
+ - DEPENDENCY AWARENESS: When adding or upgrading a package, check the existing lockfile and package manifest first. Confirm version compatibility. Prefer pinned versions in new dependencies.
17
+ - TEST-DRIVEN CONFIRMATION: After implementing a feature or fix, locate or write a minimal test or reproducer and run it. A passing test is the only acceptable proof of correctness.
18
+ - SCOPE DISCIPLINE: Fix what you were asked to fix. If you discover adjacent issues, report them but do not silently refactor unrelated code. Scope creep breaks reviewer trust.
19
+ - IDEMPOTENT OPERATIONS: Prefer changes that are safe to run multiple times. Guard file creation with existence checks. Guard shell commands with dry-run flags where available.
20
+ - RESPECT PROJECT CONVENTIONS: Match the existing code style, naming patterns, import ordering, and file layout. Read a neighbouring file for 30 seconds before writing a new one.
21
+ - SECURITY BY DEFAULT: Never embed secrets, tokens, or credentials. Prefer env-var lookups. Flag any code path that logs, stores, or transmits user data.
22
+
23
+ # WORKFLOW PLAYBOOK
24
+ - Exploration : \`search_repo\` or directory listing -> build a mental map before touching anything.
25
+ - Comprehension : \`read_file\` on every file you intend to modify. Understand the full context.
26
+ - Implementation : \`apply_patch\` for targeted edits; \`write_file\` only for new files or full rewrites.
27
+ - Verification : run tests/linters via \`run_shell\`; read back changed files to confirm correctness.
28
+ - Long-running tasks : set \`timeout_ms\` explicitly for builds and test suites. Use \`sleep\` between polling steps.
29
+ - Uncertainty : use \`web_search\` or \`stack_overflow_search\` for unfamiliar APIs, error messages, or version quirks -- never guess.
30
+ - Skills : invoke the \`skill\` tool (list / load / read / pin / unpin) whenever a task aligns with an available skill.
31
+ - Shell fallback : use \`run_shell\` only when no built-in tool suffices. If a command requires interaction or elevated privileges, tell the user to run it manually.
32
+
33
+ Do not repeat identical tool calls in the same turn. Treat follow-up requests as continuing the current task.
34
+ `;
35
+ const ALLOWED_EXTENSIONS = new Set([
36
+ ".md",
37
+ ".markdown",
38
+ ".txt",
39
+ ".json",
40
+ ".yaml",
41
+ ".yml",
42
+ ".toml"
43
+ ]);
44
+ export async function loadRulesPrompt(settings) {
45
+ const paths = await ensureAppPaths();
46
+ await ensureDefaultRules(paths.rulesDir);
47
+ return loadContextPrompt(paths.rulesDir, "Rules", settings);
48
+ }
49
+ export async function loadMemoriesPrompt(settings) {
50
+ const paths = await ensureAppPaths();
51
+ return loadContextPrompt(paths.memoriesDir, "Persistent Memory", settings, {
52
+ allowFile: (name) => name !== "raw_memories.md"
53
+ });
54
+ }
55
+ async function ensureDefaultRules(rulesDir) {
56
+ const entries = await readdir(rulesDir, { withFileTypes: true });
57
+ const hasRules = entries.some((entry) => entry.isFile() && isAllowedContextFile(entry.name));
58
+ if (!hasRules) {
59
+ await writeFile(path.join(rulesDir, DEFAULT_RULES_FILE), `${DEFAULT_RULES.trim()}\n`, "utf8");
60
+ }
61
+ }
62
+ async function loadContextPrompt(dir, title, settings, options = {}) {
63
+ const entries = await readdir(dir, { withFileTypes: true });
64
+ const files = entries
65
+ .filter((entry) => entry.isFile() && isAllowedContextFile(entry.name))
66
+ .filter((entry) => options.allowFile?.(entry.name) ?? true)
67
+ .map((entry) => entry.name)
68
+ .sort((left, right) => left.localeCompare(right));
69
+ if (files.length === 0 || settings.maxFiles <= 0 || settings.maxTotalBytes <= 0) {
70
+ return null;
71
+ }
72
+ const selected = files.slice(0, settings.maxFiles);
73
+ const lines = [`# ${title}`];
74
+ let totalBytes = 0;
75
+ for (const name of selected) {
76
+ let raw;
77
+ try {
78
+ raw = await readFile(path.join(dir, name), "utf8");
79
+ }
80
+ catch {
81
+ continue;
82
+ }
83
+ const normalized = normalizeText(raw);
84
+ if (!normalized) {
85
+ continue;
86
+ }
87
+ let content = truncate(normalized, settings.maxFileBytes);
88
+ if (!content) {
89
+ continue;
90
+ }
91
+ const remaining = settings.maxTotalBytes - totalBytes;
92
+ if (remaining <= 0) {
93
+ break;
94
+ }
95
+ if (content.length > remaining) {
96
+ content = truncate(content, remaining);
97
+ if (!content) {
98
+ break;
99
+ }
100
+ }
101
+ totalBytes += content.length;
102
+ lines.push(`## ${name}`, content);
103
+ if (totalBytes >= settings.maxTotalBytes) {
104
+ break;
105
+ }
106
+ }
107
+ return lines.length > 1 ? lines.join("\n") : null;
108
+ }
109
+ function normalizeText(value) {
110
+ return value.replace(/\r\n/g, "\n").trim();
111
+ }
112
+ function truncate(value, maxBytes) {
113
+ if (maxBytes <= 0) {
114
+ return "";
115
+ }
116
+ if (value.length <= maxBytes) {
117
+ return value;
118
+ }
119
+ if (maxBytes <= 3) {
120
+ return value.slice(0, maxBytes);
121
+ }
122
+ return `${value.slice(0, maxBytes - 3)}...`;
123
+ }
124
+ function isAllowedContextFile(fileName) {
125
+ return ALLOWED_EXTENSIONS.has(path.extname(fileName).toLowerCase());
126
+ }
127
+ //# sourceMappingURL=context-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-files.js","sourceRoot":"","sources":["../../src/context-files.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,MAAM,kBAAkB,GAAG,SAAS,CAAC;AACrC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BrB,CAAC;AAEF,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC;IACjC,KAAK;IACL,WAAW;IACX,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAA6B;IACjE,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,MAAM,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,iBAAiB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAA6B;IACpE,MAAM,KAAK,GAAG,MAAM,cAAc,EAAE,CAAC;IACrC,OAAO,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE;QACzE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,iBAAiB;KAChD,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IAChD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,GAAG,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAW,EACX,KAAa,EACb,QAA6B,EAC7B,UAEI,EAAE;IAEN,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,KAAK,GAAG,OAAO;SAClB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACrE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;SAC1D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,QAAQ,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAa,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;IACvC,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,SAAS;QACX,CAAC;QAED,IAAI,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,GAAG,UAAU,CAAC;QACtD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;YAC/B,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM;YACR,CAAC;QACH,CAAC;QAED,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;QAClC,IAAI,UAAU,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;YACzC,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,QAAgB;IAC/C,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,QAAQ,IAAI,CAAC,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC;AAC9C,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACtE,CAAC"}
@@ -1,7 +1,7 @@
1
- import type { ChatMessage, PersistedMessage } from "./types.js";
1
+ import type { ChatMessage, MemorySettings, PersistedMessage } from "./types.js";
2
2
  export interface CompactedConversation {
3
3
  memory: string | null;
4
4
  compactedCount: number;
5
5
  recentMessages: ChatMessage[];
6
6
  }
7
- export declare function compactConversation(messages: PersistedMessage[], referencedFiles: string[]): CompactedConversation;
7
+ export declare function compactConversation(messages: PersistedMessage[], referencedFiles: string[], settings?: MemorySettings): CompactedConversation;