k0ntext 3.0.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.
Files changed (239) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +623 -0
  3. package/bin/k0ntext.js +12 -0
  4. package/dist/agents/cleanup-agent.d.ts +39 -0
  5. package/dist/agents/cleanup-agent.d.ts.map +1 -0
  6. package/dist/agents/cleanup-agent.js +56 -0
  7. package/dist/agents/cleanup-agent.js.map +1 -0
  8. package/dist/agents/performance-agent.d.ts +37 -0
  9. package/dist/agents/performance-agent.d.ts.map +1 -0
  10. package/dist/agents/performance-agent.js +91 -0
  11. package/dist/agents/performance-agent.js.map +1 -0
  12. package/dist/analyzer/index.d.ts +5 -0
  13. package/dist/analyzer/index.d.ts.map +1 -0
  14. package/dist/analyzer/index.js +5 -0
  15. package/dist/analyzer/index.js.map +1 -0
  16. package/dist/analyzer/intelligent-analyzer.d.ts +111 -0
  17. package/dist/analyzer/intelligent-analyzer.d.ts.map +1 -0
  18. package/dist/analyzer/intelligent-analyzer.js +537 -0
  19. package/dist/analyzer/intelligent-analyzer.js.map +1 -0
  20. package/dist/cli/commands/cleanup.d.ts +3 -0
  21. package/dist/cli/commands/cleanup.d.ts.map +1 -0
  22. package/dist/cli/commands/cleanup.js +24 -0
  23. package/dist/cli/commands/cleanup.js.map +1 -0
  24. package/dist/cli/commands/export.d.ts +9 -0
  25. package/dist/cli/commands/export.d.ts.map +1 -0
  26. package/dist/cli/commands/export.js +72 -0
  27. package/dist/cli/commands/export.js.map +1 -0
  28. package/dist/cli/commands/import.d.ts +9 -0
  29. package/dist/cli/commands/import.d.ts.map +1 -0
  30. package/dist/cli/commands/import.js +62 -0
  31. package/dist/cli/commands/import.js.map +1 -0
  32. package/dist/cli/commands/performance.d.ts +9 -0
  33. package/dist/cli/commands/performance.d.ts.map +1 -0
  34. package/dist/cli/commands/performance.js +36 -0
  35. package/dist/cli/commands/performance.js.map +1 -0
  36. package/dist/cli/commands/validate.d.ts +9 -0
  37. package/dist/cli/commands/validate.d.ts.map +1 -0
  38. package/dist/cli/commands/validate.js +82 -0
  39. package/dist/cli/commands/validate.js.map +1 -0
  40. package/dist/cli/commands/watch.d.ts +9 -0
  41. package/dist/cli/commands/watch.d.ts.map +1 -0
  42. package/dist/cli/commands/watch.js +72 -0
  43. package/dist/cli/commands/watch.js.map +1 -0
  44. package/dist/cli/generate.d.ts +3 -0
  45. package/dist/cli/generate.d.ts.map +1 -0
  46. package/dist/cli/generate.js +194 -0
  47. package/dist/cli/generate.js.map +1 -0
  48. package/dist/cli/index.d.ts +9 -0
  49. package/dist/cli/index.d.ts.map +1 -0
  50. package/dist/cli/index.js +448 -0
  51. package/dist/cli/index.js.map +1 -0
  52. package/dist/cli/sync.d.ts +26 -0
  53. package/dist/cli/sync.d.ts.map +1 -0
  54. package/dist/cli/sync.js +163 -0
  55. package/dist/cli/sync.js.map +1 -0
  56. package/dist/config/cleanup-config.d.ts +26 -0
  57. package/dist/config/cleanup-config.d.ts.map +1 -0
  58. package/dist/config/cleanup-config.js +21 -0
  59. package/dist/config/cleanup-config.js.map +1 -0
  60. package/dist/db/client.d.ts +284 -0
  61. package/dist/db/client.d.ts.map +1 -0
  62. package/dist/db/client.js +688 -0
  63. package/dist/db/client.js.map +1 -0
  64. package/dist/db/index.d.ts +6 -0
  65. package/dist/db/index.d.ts.map +1 -0
  66. package/dist/db/index.js +6 -0
  67. package/dist/db/index.js.map +1 -0
  68. package/dist/db/schema.d.ts +41 -0
  69. package/dist/db/schema.d.ts.map +1 -0
  70. package/dist/db/schema.js +226 -0
  71. package/dist/db/schema.js.map +1 -0
  72. package/dist/embeddings/index.d.ts +5 -0
  73. package/dist/embeddings/index.d.ts.map +1 -0
  74. package/dist/embeddings/index.js +5 -0
  75. package/dist/embeddings/index.js.map +1 -0
  76. package/dist/embeddings/openrouter.d.ts +133 -0
  77. package/dist/embeddings/openrouter.d.ts.map +1 -0
  78. package/dist/embeddings/openrouter.js +455 -0
  79. package/dist/embeddings/openrouter.js.map +1 -0
  80. package/dist/index.d.ts +14 -0
  81. package/dist/index.d.ts.map +1 -0
  82. package/dist/index.js +18 -0
  83. package/dist/index.js.map +1 -0
  84. package/dist/mcp.d.ts +29 -0
  85. package/dist/mcp.d.ts.map +1 -0
  86. package/dist/mcp.js +257 -0
  87. package/dist/mcp.js.map +1 -0
  88. package/docs/ARCHIVE/MIGRATE_TO_NEW_REPO.md +222 -0
  89. package/docs/ARCHIVE/MIGRATE_TO_UNIFIED.md +220 -0
  90. package/docs/CLEANUP.md +76 -0
  91. package/docs/MCP_QUICKSTART.md +219 -0
  92. package/docs/QUICKSTART.md +119 -0
  93. package/docs/TROUBLESHOOTING.md +611 -0
  94. package/package.json +100 -0
  95. package/skills/context-optimize/SKILL.md +86 -0
  96. package/skills/implement/SKILL.md +150 -0
  97. package/skills/plan/SKILL.md +143 -0
  98. package/skills/research/SKILL.md +103 -0
  99. package/skills/validate/SKILL.md +62 -0
  100. package/skills/verify-docs/SKILL.md +77 -0
  101. package/src/agents/cleanup-agent.ts +96 -0
  102. package/src/agents/performance-agent.ts +117 -0
  103. package/src/analyzer/index.ts +10 -0
  104. package/src/analyzer/intelligent-analyzer.ts +640 -0
  105. package/src/cli/commands/cleanup.ts +26 -0
  106. package/src/cli/commands/export.ts +82 -0
  107. package/src/cli/commands/import.ts +73 -0
  108. package/src/cli/commands/performance.ts +40 -0
  109. package/src/cli/commands/validate.ts +98 -0
  110. package/src/cli/commands/watch.ts +83 -0
  111. package/src/cli/generate.ts +219 -0
  112. package/src/cli/index.ts +510 -0
  113. package/src/cli/sync.ts +194 -0
  114. package/src/config/cleanup-config.ts +42 -0
  115. package/src/db/client.ts +949 -0
  116. package/src/db/index.ts +19 -0
  117. package/src/db/schema.ts +241 -0
  118. package/src/embeddings/index.ts +11 -0
  119. package/src/embeddings/openrouter.ts +592 -0
  120. package/src/index.ts +57 -0
  121. package/src/mcp.ts +354 -0
  122. package/templates/AI_CONTEXT.md.template +245 -0
  123. package/templates/base/README.md +260 -0
  124. package/templates/base/RPI_WORKFLOW_PLAN.md +325 -0
  125. package/templates/base/agents/api-developer.md +76 -0
  126. package/templates/base/agents/context-engineer.md +525 -0
  127. package/templates/base/agents/core-architect.md +76 -0
  128. package/templates/base/agents/database-ops.md +76 -0
  129. package/templates/base/agents/deployment-ops.md +76 -0
  130. package/templates/base/agents/integration-hub.md +76 -0
  131. package/templates/base/analytics/README.md +114 -0
  132. package/templates/base/automation/config.json +58 -0
  133. package/templates/base/automation/generators/code-mapper.js +308 -0
  134. package/templates/base/automation/generators/index-builder.js +321 -0
  135. package/templates/base/automation/hooks/post-commit.sh +83 -0
  136. package/templates/base/automation/hooks/pre-commit.sh +103 -0
  137. package/templates/base/ci-templates/README.md +108 -0
  138. package/templates/base/ci-templates/github-actions/context-check.yml +144 -0
  139. package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -0
  140. package/templates/base/commands/analytics.md +238 -0
  141. package/templates/base/commands/auto-sync.md +172 -0
  142. package/templates/base/commands/collab.md +194 -0
  143. package/templates/base/commands/context-optimize.md +226 -0
  144. package/templates/base/commands/help.md +485 -0
  145. package/templates/base/commands/rpi-implement.md +164 -0
  146. package/templates/base/commands/rpi-plan.md +147 -0
  147. package/templates/base/commands/rpi-research.md +145 -0
  148. package/templates/base/commands/session-resume.md +144 -0
  149. package/templates/base/commands/session-save.md +112 -0
  150. package/templates/base/commands/validate-all.md +77 -0
  151. package/templates/base/commands/verify-docs-current.md +86 -0
  152. package/templates/base/config/base.json +57 -0
  153. package/templates/base/config/environments/development.json +13 -0
  154. package/templates/base/config/environments/production.json +17 -0
  155. package/templates/base/config/environments/staging.json +13 -0
  156. package/templates/base/config/local.json.example +21 -0
  157. package/templates/base/context/.meta/generated-at.json +18 -0
  158. package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -0
  159. package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -0
  160. package/templates/base/context/FILE_OWNERSHIP.md +57 -0
  161. package/templates/base/context/INTEGRATION_POINTS.md +92 -0
  162. package/templates/base/context/KNOWN_GOTCHAS.md +195 -0
  163. package/templates/base/context/TESTING_MAP.md +95 -0
  164. package/templates/base/context/WORKFLOW_INDEX.md +129 -0
  165. package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -0
  166. package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -0
  167. package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -0
  168. package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -0
  169. package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -0
  170. package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -0
  171. package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -0
  172. package/templates/base/knowledge/README.md +98 -0
  173. package/templates/base/knowledge/sessions/README.md +88 -0
  174. package/templates/base/knowledge/sessions/TEMPLATE.md +150 -0
  175. package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -0
  176. package/templates/base/knowledge/shared/decisions/README.md +49 -0
  177. package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -0
  178. package/templates/base/knowledge/shared/patterns/README.md +62 -0
  179. package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -0
  180. package/templates/base/plans/PLAN_TEMPLATE.md +316 -0
  181. package/templates/base/plans/active/.gitkeep +0 -0
  182. package/templates/base/plans/completed/.gitkeep +0 -0
  183. package/templates/base/research/RESEARCH_TEMPLATE.md +245 -0
  184. package/templates/base/research/active/.gitkeep +0 -0
  185. package/templates/base/research/completed/.gitkeep +0 -0
  186. package/templates/base/schemas/agent.schema.json +141 -0
  187. package/templates/base/schemas/anchors.schema.json +54 -0
  188. package/templates/base/schemas/automation.schema.json +93 -0
  189. package/templates/base/schemas/command.schema.json +134 -0
  190. package/templates/base/schemas/hashes.schema.json +40 -0
  191. package/templates/base/schemas/manifest.schema.json +117 -0
  192. package/templates/base/schemas/plan.schema.json +136 -0
  193. package/templates/base/schemas/research.schema.json +115 -0
  194. package/templates/base/schemas/roles.schema.json +34 -0
  195. package/templates/base/schemas/session.schema.json +77 -0
  196. package/templates/base/schemas/settings.schema.json +244 -0
  197. package/templates/base/schemas/staleness.schema.json +53 -0
  198. package/templates/base/schemas/team-config.schema.json +42 -0
  199. package/templates/base/schemas/workflow.schema.json +126 -0
  200. package/templates/base/session/checkpoints/.gitkeep +2 -0
  201. package/templates/base/session/current/state.json +20 -0
  202. package/templates/base/session/history/.gitkeep +2 -0
  203. package/templates/base/settings.json +3 -0
  204. package/templates/base/standards/COMPATIBILITY.md +219 -0
  205. package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -0
  206. package/templates/base/standards/QUALITY_CHECKLIST.md +211 -0
  207. package/templates/base/standards/README.md +66 -0
  208. package/templates/base/sync/anchors.json +6 -0
  209. package/templates/base/sync/hashes.json +6 -0
  210. package/templates/base/sync/staleness.json +10 -0
  211. package/templates/base/team/README.md +168 -0
  212. package/templates/base/team/config.json +79 -0
  213. package/templates/base/team/roles.json +145 -0
  214. package/templates/base/tools/bin/claude-context.js +151 -0
  215. package/templates/base/tools/lib/anchor-resolver.js +276 -0
  216. package/templates/base/tools/lib/config-loader.js +363 -0
  217. package/templates/base/tools/lib/detector.js +350 -0
  218. package/templates/base/tools/lib/diagnose.js +206 -0
  219. package/templates/base/tools/lib/drift-detector.js +373 -0
  220. package/templates/base/tools/lib/errors.js +199 -0
  221. package/templates/base/tools/lib/index.js +36 -0
  222. package/templates/base/tools/lib/init.js +192 -0
  223. package/templates/base/tools/lib/logger.js +230 -0
  224. package/templates/base/tools/lib/placeholder.js +201 -0
  225. package/templates/base/tools/lib/session-manager.js +354 -0
  226. package/templates/base/tools/lib/validate.js +521 -0
  227. package/templates/base/tools/package.json +49 -0
  228. package/templates/handlebars/aider-config.hbs +146 -0
  229. package/templates/handlebars/antigravity.hbs +377 -0
  230. package/templates/handlebars/claude.hbs +183 -0
  231. package/templates/handlebars/cline.hbs +62 -0
  232. package/templates/handlebars/continue-config.hbs +116 -0
  233. package/templates/handlebars/copilot.hbs +130 -0
  234. package/templates/handlebars/partials/gotcha-list.hbs +11 -0
  235. package/templates/handlebars/partials/header.hbs +3 -0
  236. package/templates/handlebars/partials/workflow-summary.hbs +16 -0
  237. package/templates/handlebars/windsurf-rules.hbs +69 -0
  238. package/templates/hooks/post-commit.hbs +28 -0
  239. package/templates/hooks/pre-commit.hbs +46 -0
@@ -0,0 +1,163 @@
1
+ import { Command } from 'commander';
2
+ import { DatabaseClient } from '../db/client.js';
3
+ import ora from 'ora';
4
+ import chalk from 'chalk';
5
+ import crypto from 'crypto';
6
+ import fs from 'fs/promises';
7
+ export const syncCommand = new Command('sync')
8
+ .description('Synchronize context across all AI tools')
9
+ .option('--check', 'Only check synchronization status')
10
+ .option('--from <tool>', 'Sync from specific tool')
11
+ .option('--to <tool>', 'Sync to specific tool')
12
+ .option('--force', 'Force sync even if up-to-date')
13
+ .action(async (options) => {
14
+ const spinner = ora('Checking sync status...').start();
15
+ try {
16
+ const db = new DatabaseClient(process.cwd());
17
+ const syncManager = new SyncManager(db);
18
+ if (options.check) {
19
+ const status = await syncManager.checkStatus();
20
+ if (status.synced) {
21
+ spinner.succeed(chalk.green('All tools are synchronized'));
22
+ }
23
+ else {
24
+ spinner.warn(chalk.yellow('Tools are out of sync'));
25
+ console.log(chalk.dim('Differences:'), status.differences.join(', '));
26
+ }
27
+ return;
28
+ }
29
+ if (options.from) {
30
+ spinner.text = `Syncing from ${options.from}...`;
31
+ await syncManager.syncFrom(options.from);
32
+ spinner.succeed(chalk.green(`Synced from ${options.from}`));
33
+ return;
34
+ }
35
+ // Default: sync all tools
36
+ spinner.text = 'Syncing all tools...';
37
+ const result = await syncManager.syncAll({ force: options.force });
38
+ spinner.succeed(chalk.green(`Synced ${result.count} tools`));
39
+ if (result.files.length > 0) {
40
+ console.log(chalk.dim('Synced:'), result.files.join(', '));
41
+ }
42
+ }
43
+ catch (error) {
44
+ const errorMessage = error instanceof Error ? error.message : String(error);
45
+ spinner.fail(chalk.red('Sync failed'));
46
+ console.error(chalk.dim(errorMessage));
47
+ process.exit(1);
48
+ }
49
+ });
50
+ export class SyncManager {
51
+ db;
52
+ constructor(db) {
53
+ this.db = db;
54
+ }
55
+ async checkStatus() {
56
+ const tools = await this.getToolFiles();
57
+ const hashes = await this.getFileHashes(tools);
58
+ const differences = [];
59
+ for (const [tool, hash] of Object.entries(hashes)) {
60
+ const stored = this.db.getSyncState(tool);
61
+ const storedHash = Array.isArray(stored) && stored.length > 0 ? stored[0]?.contentHash : undefined;
62
+ if (storedHash !== undefined && storedHash !== hash) {
63
+ differences.push(tool);
64
+ }
65
+ }
66
+ return {
67
+ synced: differences.length === 0,
68
+ differences
69
+ };
70
+ }
71
+ async syncFrom(tool) {
72
+ const configs = this.db.getToolConfigs(tool);
73
+ if (!configs || configs.length === 0) {
74
+ throw new Error(`Tool ${tool} not found in database`);
75
+ }
76
+ // Sync logic - propagate changes from this tool to others
77
+ const content = await this.readToolFile(tool);
78
+ await this.propagateToTools(tool, content);
79
+ }
80
+ async syncAll(options) {
81
+ const tools = ['claude', 'copilot', 'cline', 'antigravity', 'windsurf', 'aider', 'continue', 'cursor', 'gemini'];
82
+ const synced = [];
83
+ for (const tool of tools) {
84
+ try {
85
+ await this.syncTool(tool, options);
86
+ synced.push(tool);
87
+ }
88
+ catch (error) {
89
+ const errorMessage = error instanceof Error ? error.message : String(error);
90
+ // Continue with other tools even if one fails
91
+ console.error(chalk.dim(`Failed to sync ${tool}: ${errorMessage}`));
92
+ }
93
+ }
94
+ return { count: synced.length, files: synced };
95
+ }
96
+ async getToolFiles() {
97
+ return ['claude', 'copilot', 'cline', 'antigravity', 'windsurf', 'aider', 'continue', 'cursor', 'gemini'];
98
+ }
99
+ async getFileHashes(tools) {
100
+ const hashes = {};
101
+ const toolPaths = {
102
+ claude: 'AI_CONTEXT.md',
103
+ copilot: '.github/copilot-instructions.md',
104
+ cline: '.clinerules',
105
+ antigravity: '.agent/README.md',
106
+ windsurf: '.windsurf/rules.md',
107
+ aider: '.aider.conf.yml',
108
+ continue: '.continue/config.json',
109
+ cursor: '.cursorrules',
110
+ gemini: '.gemini/config.md'
111
+ };
112
+ for (const tool of tools) {
113
+ try {
114
+ const content = await fs.readFile(toolPaths[tool], 'utf-8');
115
+ hashes[tool] = crypto.createHash('sha256').update(content).digest('hex');
116
+ }
117
+ catch (error) {
118
+ const message = error instanceof Error ? error.message : String(error);
119
+ console.error(chalk.yellow(`Warning: Failed to read tool file for "${tool}" at "${toolPaths[tool]}": ${message}`));
120
+ hashes[tool] = '';
121
+ }
122
+ }
123
+ return hashes;
124
+ }
125
+ async readToolFile(tool) {
126
+ const toolPaths = {
127
+ claude: 'AI_CONTEXT.md',
128
+ copilot: '.github/copilot-instructions.md',
129
+ cline: '.clinerules',
130
+ antigravity: '.agent/README.md',
131
+ windsurf: '.windsurf/rules.md',
132
+ aider: '.aider.conf.yml',
133
+ continue: '.continue/config.json',
134
+ cursor: '.cursorrules',
135
+ gemini: '.gemini/config.md'
136
+ };
137
+ return await fs.readFile(toolPaths[tool], 'utf-8');
138
+ }
139
+ async propagateToTools(_fromTool, _content) {
140
+ // In a full implementation, this would parse the content
141
+ // and propagate it to all other tools
142
+ // For now, this is a placeholder
143
+ console.log(chalk.dim(`Propagating from ${_fromTool} to other tools...`));
144
+ }
145
+ async syncTool(tool, options) {
146
+ // Check if sync is needed
147
+ if (!options.force) {
148
+ const content = this.db.getAllItems();
149
+ if (content.length === 0) {
150
+ throw new Error(`No content in database for ${tool}`);
151
+ }
152
+ }
153
+ // Update sync state
154
+ this.db.updateSyncState({
155
+ id: `sync:${tool}`,
156
+ tool: tool,
157
+ contentHash: Date.now().toString(),
158
+ lastSync: new Date().toISOString(),
159
+ status: 'synced'
160
+ });
161
+ }
162
+ }
163
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/cli/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Cleanup configuration options
3
+ */
4
+ export interface CleanupConfig {
5
+ /** Default dry run mode (safe mode) */
6
+ dryRun: boolean;
7
+ /** Default folders to keep */
8
+ defaultKeep: string[];
9
+ /** Verbose output by default */
10
+ verbose: boolean;
11
+ /** Maximum folder depth to scan */
12
+ maxDepth: number;
13
+ /** Timeout for folder operations in milliseconds */
14
+ timeout: number;
15
+ /** Default working directory */
16
+ cwd: string;
17
+ }
18
+ /**
19
+ * Default cleanup configuration
20
+ */
21
+ export declare const DEFAULT_CLEANUP_CONFIG: CleanupConfig;
22
+ /**
23
+ * Get cleanup configuration (can be extended to load from file)
24
+ */
25
+ export declare function getCleanupConfig(): CleanupConfig;
26
+ //# sourceMappingURL=cleanup-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-config.d.ts","sourceRoot":"","sources":["../../src/config/cleanup-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,MAAM,EAAE,OAAO,CAAC;IAEhB,8BAA8B;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IAEtB,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IAEjB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IAEjB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,aAOpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAEhD"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Cleanup configuration options
3
+ */
4
+ /**
5
+ * Default cleanup configuration
6
+ */
7
+ export const DEFAULT_CLEANUP_CONFIG = {
8
+ dryRun: true,
9
+ defaultKeep: ['.github', '.vscode', '.idea', '.devcontainer'],
10
+ verbose: false,
11
+ maxDepth: 3,
12
+ timeout: 30000,
13
+ cwd: process.cwd()
14
+ };
15
+ /**
16
+ * Get cleanup configuration (can be extended to load from file)
17
+ */
18
+ export function getCleanupConfig() {
19
+ return { ...DEFAULT_CLEANUP_CONFIG };
20
+ }
21
+ //# sourceMappingURL=cleanup-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanup-config.js","sourceRoot":"","sources":["../../src/config/cleanup-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAkB;IACnD,MAAM,EAAE,IAAI;IACZ,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC;IAC7D,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,KAAK;IACd,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,GAAG,sBAAsB,EAAE,CAAC;AACvC,CAAC"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Database Client
3
+ *
4
+ * SQLite database operations for AI context storage.
5
+ * Handles CRUD operations, queries, and vector search.
6
+ */
7
+ import Database from 'better-sqlite3';
8
+ import { type ContextType, type RelationType, type SyncStatus, type AITool } from './schema.js';
9
+ /**
10
+ * Context item structure
11
+ */
12
+ export interface ContextItem {
13
+ id: string;
14
+ type: ContextType;
15
+ name: string;
16
+ content: string;
17
+ metadata?: Record<string, unknown>;
18
+ filePath?: string;
19
+ contentHash?: string;
20
+ createdAt?: string;
21
+ updatedAt?: string;
22
+ }
23
+ /**
24
+ * Knowledge graph edge
25
+ */
26
+ export interface GraphEdge {
27
+ id?: number;
28
+ sourceId: string;
29
+ targetId: string;
30
+ relationType: RelationType;
31
+ weight?: number;
32
+ metadata?: Record<string, unknown>;
33
+ }
34
+ /**
35
+ * Git commit record
36
+ */
37
+ export interface GitCommit {
38
+ sha: string;
39
+ message: string;
40
+ authorName?: string;
41
+ authorEmail?: string;
42
+ timestamp: string;
43
+ filesChanged?: string[];
44
+ stats?: {
45
+ additions: number;
46
+ deletions: number;
47
+ };
48
+ }
49
+ /**
50
+ * Sync state record
51
+ */
52
+ export interface SyncState {
53
+ id: string;
54
+ tool: string;
55
+ contentHash?: string;
56
+ lastSync: string;
57
+ filePath?: string;
58
+ status: SyncStatus;
59
+ metadata?: Record<string, unknown>;
60
+ }
61
+ /**
62
+ * AI tool configuration record
63
+ */
64
+ export interface AIToolConfig {
65
+ id: string;
66
+ toolName: AITool;
67
+ configPath: string;
68
+ content: string;
69
+ contentHash?: string;
70
+ lastSync: string;
71
+ status: SyncStatus;
72
+ metadata?: Record<string, unknown>;
73
+ }
74
+ /**
75
+ * Search result with similarity score
76
+ */
77
+ export interface SearchResult {
78
+ item: ContextItem;
79
+ similarity: number;
80
+ }
81
+ /**
82
+ * Database client for AI context storage
83
+ */
84
+ export declare class DatabaseClient {
85
+ private db;
86
+ private dbPath;
87
+ constructor(projectRoot: string, dbFileName?: string);
88
+ /**
89
+ * Migrate legacy database
90
+ */
91
+ private migrateLegacyDatabase;
92
+ /**
93
+ * Initialize database schema
94
+ */
95
+ private initSchema;
96
+ /**
97
+ * Execute callback within a transaction (sync)
98
+ */
99
+ transaction<T>(callback: () => T): T;
100
+ /**
101
+ * Execute callback within a transaction (async)
102
+ */
103
+ transaction<T>(callback: () => Promise<T>): Promise<T>;
104
+ /**
105
+ * Begin a manual transaction (returns rollback/commit functions)
106
+ */
107
+ beginTransaction(): {
108
+ rollback: () => void;
109
+ commit: () => void;
110
+ };
111
+ /**
112
+ * Check database connection health
113
+ */
114
+ healthCheck(): {
115
+ healthy: boolean;
116
+ error?: string;
117
+ };
118
+ /**
119
+ * Generate content hash for deduplication
120
+ */
121
+ private hashContent;
122
+ /**
123
+ * Generate a unique ID for a context item
124
+ */
125
+ private generateId;
126
+ /**
127
+ * Insert or update a context item
128
+ */
129
+ upsertItem(item: Omit<ContextItem, 'id' | 'contentHash' | 'createdAt' | 'updatedAt'>): ContextItem;
130
+ /**
131
+ * Get a context item by ID
132
+ */
133
+ getItem(id: string): ContextItem | null;
134
+ /**
135
+ * Get items by type
136
+ */
137
+ getItemsByType(type: ContextType): ContextItem[];
138
+ /**
139
+ * Get all items
140
+ */
141
+ getAllItems(): ContextItem[];
142
+ /**
143
+ * Delete a context item
144
+ */
145
+ deleteItem(id: string): boolean;
146
+ /**
147
+ * Delete items older than specified days
148
+ */
149
+ deleteStaleItems(daysOld: number, type?: ContextType): number;
150
+ /**
151
+ * Search items by text (full-text grep-style)
152
+ */
153
+ searchText(query: string, type?: ContextType): ContextItem[];
154
+ /**
155
+ * Convert database row to ContextItem
156
+ */
157
+ private rowToItem;
158
+ /**
159
+ * Calculate relevance score for a search result
160
+ */
161
+ private calculateRelevance;
162
+ /**
163
+ * Upsert an AI tool configuration
164
+ */
165
+ upsertToolConfig(config: Omit<AIToolConfig, 'contentHash' | 'lastSync'>): AIToolConfig;
166
+ /**
167
+ * Get tool configs by tool name
168
+ */
169
+ getToolConfigs(toolName: AITool): AIToolConfig[];
170
+ /**
171
+ * Get all tool configs
172
+ */
173
+ getAllToolConfigs(): AIToolConfig[];
174
+ /**
175
+ * Add a relationship to the knowledge graph
176
+ */
177
+ addRelation(edge: Omit<GraphEdge, 'id'>): GraphEdge;
178
+ /**
179
+ * Get relations from a source item
180
+ */
181
+ getRelationsFrom(sourceId: string, relationType?: RelationType): GraphEdge[];
182
+ /**
183
+ * Get relations to a target item
184
+ */
185
+ getRelationsTo(targetId: string, relationType?: RelationType): GraphEdge[];
186
+ /**
187
+ * Traverse the graph from a starting point
188
+ */
189
+ traverseGraph(startId: string, maxDepth?: number): Map<string, {
190
+ item: ContextItem;
191
+ depth: number;
192
+ }>;
193
+ /**
194
+ * Insert or update a git commit
195
+ */
196
+ upsertCommit(commit: GitCommit): void;
197
+ /**
198
+ * Get recent commits
199
+ */
200
+ getRecentCommits(limit?: number): GitCommit[];
201
+ /**
202
+ * Update sync state for a tool
203
+ */
204
+ updateSyncState(state: SyncState): void;
205
+ /**
206
+ * Get sync state for a tool
207
+ */
208
+ getSyncState(tool: string): SyncState[];
209
+ /**
210
+ * Store an embedding
211
+ */
212
+ storeEmbedding(contextId: string, embedding: number[]): void;
213
+ /**
214
+ * Search by embedding similarity
215
+ */
216
+ searchByEmbedding(queryEmbedding: number[], limit?: number): SearchResult[];
217
+ /**
218
+ * Hybrid search combining vector and text search
219
+ */
220
+ hybridSearch(query: string, queryEmbedding: number[] | null, options?: {
221
+ limit?: number;
222
+ type?: ContextType;
223
+ vectorWeight?: number;
224
+ }): SearchResult[];
225
+ /**
226
+ * Delete an embedding
227
+ */
228
+ deleteEmbedding(contextId: string): boolean;
229
+ /**
230
+ * Insert or update an embedding for a file by path
231
+ */
232
+ insertEmbedding(filePath: string, embedding: number[]): void;
233
+ /**
234
+ * Get item ID by file path
235
+ */
236
+ private getItemIdByPath;
237
+ /**
238
+ * Log a usage event
239
+ */
240
+ logUsage(toolName: string, query?: string, resultCount?: number, latencyMs?: number): void;
241
+ /**
242
+ * Get usage statistics
243
+ */
244
+ getUsageStats(days?: number): {
245
+ toolName: string;
246
+ count: number;
247
+ avgLatency: number;
248
+ }[];
249
+ /**
250
+ * Get database path
251
+ */
252
+ getPath(): string;
253
+ /**
254
+ * Get database statistics
255
+ */
256
+ getStats(): {
257
+ items: number;
258
+ relations: number;
259
+ commits: number;
260
+ embeddings: number;
261
+ toolConfigs: number;
262
+ };
263
+ /**
264
+ * Get raw database instance (for advanced operations)
265
+ */
266
+ getRawDb(): Database.Database;
267
+ /**
268
+ * Vacuum database to reclaim space
269
+ */
270
+ vacuum(): void;
271
+ /**
272
+ * Reindex database for optimization
273
+ */
274
+ reindex(): void;
275
+ /**
276
+ * Backup database to specified path
277
+ */
278
+ backup(backupPath: string): void;
279
+ /**
280
+ * Close database connection
281
+ */
282
+ close(): void;
283
+ }
284
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"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"}