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,96 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { DEFAULT_CLEANUP_CONFIG } from '../config/cleanup-config.js';
4
+
5
+ export interface CleanupOptions {
6
+ dryRun?: boolean;
7
+ keep?: string[];
8
+ verbose?: boolean;
9
+ cwd?: string;
10
+ }
11
+
12
+ export interface CleanupConfig {
13
+ /** Default dry run mode (safe mode) */
14
+ dryRun: boolean;
15
+
16
+ /** Default folders to keep */
17
+ defaultKeep: string[];
18
+
19
+ /** Verbose output by default */
20
+ verbose: boolean;
21
+
22
+ /** Maximum folder depth to scan */
23
+ maxDepth: number;
24
+
25
+ /** Timeout for folder operations in milliseconds */
26
+ timeout: number;
27
+
28
+ /** Default working directory */
29
+ cwd: string;
30
+ }
31
+
32
+ export interface CleanupResult {
33
+ scanned: number;
34
+ removed: string[];
35
+ kept: string[];
36
+ errors: Array<{ folder: string; error: unknown }>;
37
+ }
38
+
39
+ export class CleanupAgent {
40
+ private readonly KNOWN_TOOL_FOLDERS = [
41
+ '.cursor', '.windsurf', '.cline', '.aider',
42
+ '.continue', '.copilot', '.cursorrules',
43
+ '.ai-context', // legacy
44
+ '.github', '.vscode', '.idea', '.devcontainer'
45
+ ];
46
+
47
+ private config: typeof DEFAULT_CLEANUP_CONFIG;
48
+
49
+ constructor(config?: Partial<typeof DEFAULT_CLEANUP_CONFIG>) {
50
+ this.config = { ...DEFAULT_CLEANUP_CONFIG, ...config, cwd: config?.cwd || process.cwd() };
51
+ }
52
+
53
+ async cleanup(options: CleanupOptions = {}): Promise<CleanupResult> {
54
+ const cwd = options.cwd || this.config.cwd;
55
+ const entries = fs.readdirSync(cwd, { withFileTypes: true });
56
+
57
+ const toolFolders = entries
58
+ .filter(e => e.isDirectory() && e.name.startsWith('.'))
59
+ .filter(e => this.KNOWN_TOOL_FOLDERS.includes(e.name))
60
+ .filter(e => !options.keep?.includes(e.name) && !this.config.defaultKeep.includes(e.name));
61
+
62
+ const results: CleanupResult = {
63
+ scanned: toolFolders.length,
64
+ removed: [],
65
+ kept: [],
66
+ errors: [],
67
+ };
68
+
69
+ for (const folder of toolFolders) {
70
+ try {
71
+ const folderPath = path.join(cwd, folder.name);
72
+
73
+ if (options.dryRun || this.config.dryRun) {
74
+ results.removed.push(folder.name + ' (dry-run)');
75
+ if (options.verbose || this.config.verbose) console.log(`Would remove: ${folder.name}`);
76
+ } else {
77
+ fs.rmSync(folderPath, { recursive: true, force: true });
78
+ results.removed.push(folder.name);
79
+ if (options.verbose || this.config.verbose) console.log(`Removed: ${folder.name}`);
80
+ }
81
+ } catch (error) {
82
+ results.errors.push({ folder: folder.name, error });
83
+ }
84
+ }
85
+
86
+ return results;
87
+ }
88
+
89
+ async analyze(options: Omit<CleanupOptions, 'dryRun'> = {}): Promise<CleanupResult> {
90
+ return this.cleanup({ ...options, dryRun: true, verbose: true });
91
+ }
92
+
93
+ getConfig(): typeof DEFAULT_CLEANUP_CONFIG {
94
+ return { ...this.config };
95
+ }
96
+ }
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Performance Monitor Agent
3
+ *
4
+ * Monitors database performance, query times, and system metrics.
5
+ */
6
+
7
+ import path from 'path';
8
+ import fs from 'fs';
9
+ import { DatabaseClient } from '../db/client.js';
10
+
11
+ export interface PerformanceMetrics {
12
+ queryCount: number;
13
+ avgQueryTime: number;
14
+ slowQueries: number;
15
+ databaseSize: number;
16
+ indexUsage: number;
17
+ cacheHitRate: number;
18
+ }
19
+
20
+ export class PerformanceMonitorAgent {
21
+ private db: DatabaseClient;
22
+ private queryTimes: number[] = [];
23
+ private slowQueryThreshold = 1000; // ms
24
+
25
+ constructor(projectRoot: string) {
26
+ this.db = new DatabaseClient(projectRoot);
27
+ }
28
+
29
+ /**
30
+ * Track query execution time
31
+ */
32
+ trackQuery(durationMs: number): void {
33
+ this.queryTimes.push(durationMs);
34
+
35
+ // Keep only last 100 queries
36
+ if (this.queryTimes.length > 100) {
37
+ this.queryTimes.shift();
38
+ }
39
+ }
40
+
41
+ /**
42
+ * Get current performance metrics
43
+ */
44
+ getMetrics(): PerformanceMetrics {
45
+ const avgQueryTime = this.queryTimes.length > 0
46
+ ? this.queryTimes.reduce((a, b) => a + b, 0) / this.queryTimes.length
47
+ : 0;
48
+
49
+ const slowQueries = this.queryTimes.filter(t => t > this.slowQueryThreshold).length;
50
+
51
+ // Get database size
52
+ const dbPath = path.resolve(this.db.getPath());
53
+ let databaseSize = 0;
54
+ try {
55
+ const stats = fs.statSync(dbPath);
56
+ databaseSize = stats.size;
57
+ } catch (error) {
58
+ // File doesn't exist or can't be read
59
+ console.error(`Warning: Could not read database size for ${dbPath}:`, error instanceof Error ? error.message : error);
60
+ }
61
+
62
+ return {
63
+ queryCount: this.queryTimes.length,
64
+ avgQueryTime,
65
+ slowQueries,
66
+ databaseSize,
67
+ indexUsage: 0, // Would need PRAGMA stats
68
+ cacheHitRate: 0 // Would need cache tracking
69
+ };
70
+ }
71
+
72
+ /**
73
+ * Generate performance report
74
+ */
75
+ generateReport(): string {
76
+ const metrics = this.getMetrics();
77
+
78
+ let report = 'Performance Report\n';
79
+ report += '==================\n\n';
80
+ report += `Query Count: ${metrics.queryCount}\n`;
81
+ report += `Avg Query Time: ${metrics.avgQueryTime.toFixed(2)}ms\n`;
82
+ report += `Slow Queries: ${metrics.slowQueries}\n`;
83
+ report += `Database Size: ${(metrics.databaseSize / 1024).toFixed(2)} KB\n\n`;
84
+
85
+ if (metrics.slowQueries > 0) {
86
+ report += '⚠ Warning: Slow queries detected. Consider adding indexes.\n';
87
+ }
88
+
89
+ return report;
90
+ }
91
+
92
+ /**
93
+ * Suggest optimizations
94
+ */
95
+ suggestOptimizations(): string[] {
96
+ const suggestions: string[] = [];
97
+ const metrics = this.getMetrics();
98
+
99
+ if (metrics.avgQueryTime > 500) {
100
+ suggestions.push('Consider adding indexes for frequently queried columns');
101
+ }
102
+
103
+ if (metrics.databaseSize > 10 * 1024 * 1024) { // 10 MB
104
+ suggestions.push('Database is large. Consider running VACUUM to reclaim space');
105
+ }
106
+
107
+ if (metrics.slowQueries > 0) {
108
+ suggestions.push('Review slow queries and optimize with proper indexes');
109
+ }
110
+
111
+ return suggestions;
112
+ }
113
+
114
+ close(): void {
115
+ this.db.close();
116
+ }
117
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Analyzer Module Index
3
+ */
4
+
5
+ export {
6
+ IntelligentAnalyzer,
7
+ createIntelligentAnalyzer,
8
+ type DiscoveredFile,
9
+ type AnalysisResult
10
+ } from './intelligent-analyzer.js';