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.
- package/LICENSE +21 -0
- package/README.md +623 -0
- package/bin/k0ntext.js +12 -0
- package/dist/agents/cleanup-agent.d.ts +39 -0
- package/dist/agents/cleanup-agent.d.ts.map +1 -0
- package/dist/agents/cleanup-agent.js +56 -0
- package/dist/agents/cleanup-agent.js.map +1 -0
- package/dist/agents/performance-agent.d.ts +37 -0
- package/dist/agents/performance-agent.d.ts.map +1 -0
- package/dist/agents/performance-agent.js +91 -0
- package/dist/agents/performance-agent.js.map +1 -0
- package/dist/analyzer/index.d.ts +5 -0
- package/dist/analyzer/index.d.ts.map +1 -0
- package/dist/analyzer/index.js +5 -0
- package/dist/analyzer/index.js.map +1 -0
- package/dist/analyzer/intelligent-analyzer.d.ts +111 -0
- package/dist/analyzer/intelligent-analyzer.d.ts.map +1 -0
- package/dist/analyzer/intelligent-analyzer.js +537 -0
- package/dist/analyzer/intelligent-analyzer.js.map +1 -0
- package/dist/cli/commands/cleanup.d.ts +3 -0
- package/dist/cli/commands/cleanup.d.ts.map +1 -0
- package/dist/cli/commands/cleanup.js +24 -0
- package/dist/cli/commands/cleanup.js.map +1 -0
- package/dist/cli/commands/export.d.ts +9 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +72 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/import.d.ts +9 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +62 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/performance.d.ts +9 -0
- package/dist/cli/commands/performance.d.ts.map +1 -0
- package/dist/cli/commands/performance.js +36 -0
- package/dist/cli/commands/performance.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +9 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +82 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/watch.d.ts +9 -0
- package/dist/cli/commands/watch.d.ts.map +1 -0
- package/dist/cli/commands/watch.js +72 -0
- package/dist/cli/commands/watch.js.map +1 -0
- package/dist/cli/generate.d.ts +3 -0
- package/dist/cli/generate.d.ts.map +1 -0
- package/dist/cli/generate.js +194 -0
- package/dist/cli/generate.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +448 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/sync.d.ts +26 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +163 -0
- package/dist/cli/sync.js.map +1 -0
- package/dist/config/cleanup-config.d.ts +26 -0
- package/dist/config/cleanup-config.d.ts.map +1 -0
- package/dist/config/cleanup-config.js +21 -0
- package/dist/config/cleanup-config.js.map +1 -0
- package/dist/db/client.d.ts +284 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +688 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/index.d.ts +6 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +6 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +41 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +226 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/embeddings/index.d.ts +5 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +5 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/openrouter.d.ts +133 -0
- package/dist/embeddings/openrouter.d.ts.map +1 -0
- package/dist/embeddings/openrouter.js +455 -0
- package/dist/embeddings/openrouter.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +29 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +257 -0
- package/dist/mcp.js.map +1 -0
- package/docs/ARCHIVE/MIGRATE_TO_NEW_REPO.md +222 -0
- package/docs/ARCHIVE/MIGRATE_TO_UNIFIED.md +220 -0
- package/docs/CLEANUP.md +76 -0
- package/docs/MCP_QUICKSTART.md +219 -0
- package/docs/QUICKSTART.md +119 -0
- package/docs/TROUBLESHOOTING.md +611 -0
- package/package.json +100 -0
- package/skills/context-optimize/SKILL.md +86 -0
- package/skills/implement/SKILL.md +150 -0
- package/skills/plan/SKILL.md +143 -0
- package/skills/research/SKILL.md +103 -0
- package/skills/validate/SKILL.md +62 -0
- package/skills/verify-docs/SKILL.md +77 -0
- package/src/agents/cleanup-agent.ts +96 -0
- package/src/agents/performance-agent.ts +117 -0
- package/src/analyzer/index.ts +10 -0
- package/src/analyzer/intelligent-analyzer.ts +640 -0
- package/src/cli/commands/cleanup.ts +26 -0
- package/src/cli/commands/export.ts +82 -0
- package/src/cli/commands/import.ts +73 -0
- package/src/cli/commands/performance.ts +40 -0
- package/src/cli/commands/validate.ts +98 -0
- package/src/cli/commands/watch.ts +83 -0
- package/src/cli/generate.ts +219 -0
- package/src/cli/index.ts +510 -0
- package/src/cli/sync.ts +194 -0
- package/src/config/cleanup-config.ts +42 -0
- package/src/db/client.ts +949 -0
- package/src/db/index.ts +19 -0
- package/src/db/schema.ts +241 -0
- package/src/embeddings/index.ts +11 -0
- package/src/embeddings/openrouter.ts +592 -0
- package/src/index.ts +57 -0
- package/src/mcp.ts +354 -0
- package/templates/AI_CONTEXT.md.template +245 -0
- package/templates/base/README.md +260 -0
- package/templates/base/RPI_WORKFLOW_PLAN.md +325 -0
- package/templates/base/agents/api-developer.md +76 -0
- package/templates/base/agents/context-engineer.md +525 -0
- package/templates/base/agents/core-architect.md +76 -0
- package/templates/base/agents/database-ops.md +76 -0
- package/templates/base/agents/deployment-ops.md +76 -0
- package/templates/base/agents/integration-hub.md +76 -0
- package/templates/base/analytics/README.md +114 -0
- package/templates/base/automation/config.json +58 -0
- package/templates/base/automation/generators/code-mapper.js +308 -0
- package/templates/base/automation/generators/index-builder.js +321 -0
- package/templates/base/automation/hooks/post-commit.sh +83 -0
- package/templates/base/automation/hooks/pre-commit.sh +103 -0
- package/templates/base/ci-templates/README.md +108 -0
- package/templates/base/ci-templates/github-actions/context-check.yml +144 -0
- package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -0
- package/templates/base/commands/analytics.md +238 -0
- package/templates/base/commands/auto-sync.md +172 -0
- package/templates/base/commands/collab.md +194 -0
- package/templates/base/commands/context-optimize.md +226 -0
- package/templates/base/commands/help.md +485 -0
- package/templates/base/commands/rpi-implement.md +164 -0
- package/templates/base/commands/rpi-plan.md +147 -0
- package/templates/base/commands/rpi-research.md +145 -0
- package/templates/base/commands/session-resume.md +144 -0
- package/templates/base/commands/session-save.md +112 -0
- package/templates/base/commands/validate-all.md +77 -0
- package/templates/base/commands/verify-docs-current.md +86 -0
- package/templates/base/config/base.json +57 -0
- package/templates/base/config/environments/development.json +13 -0
- package/templates/base/config/environments/production.json +17 -0
- package/templates/base/config/environments/staging.json +13 -0
- package/templates/base/config/local.json.example +21 -0
- package/templates/base/context/.meta/generated-at.json +18 -0
- package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -0
- package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -0
- package/templates/base/context/FILE_OWNERSHIP.md +57 -0
- package/templates/base/context/INTEGRATION_POINTS.md +92 -0
- package/templates/base/context/KNOWN_GOTCHAS.md +195 -0
- package/templates/base/context/TESTING_MAP.md +95 -0
- package/templates/base/context/WORKFLOW_INDEX.md +129 -0
- package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -0
- package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -0
- package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -0
- package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -0
- package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -0
- package/templates/base/knowledge/README.md +98 -0
- package/templates/base/knowledge/sessions/README.md +88 -0
- package/templates/base/knowledge/sessions/TEMPLATE.md +150 -0
- package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -0
- package/templates/base/knowledge/shared/decisions/README.md +49 -0
- package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -0
- package/templates/base/knowledge/shared/patterns/README.md +62 -0
- package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -0
- package/templates/base/plans/PLAN_TEMPLATE.md +316 -0
- package/templates/base/plans/active/.gitkeep +0 -0
- package/templates/base/plans/completed/.gitkeep +0 -0
- package/templates/base/research/RESEARCH_TEMPLATE.md +245 -0
- package/templates/base/research/active/.gitkeep +0 -0
- package/templates/base/research/completed/.gitkeep +0 -0
- package/templates/base/schemas/agent.schema.json +141 -0
- package/templates/base/schemas/anchors.schema.json +54 -0
- package/templates/base/schemas/automation.schema.json +93 -0
- package/templates/base/schemas/command.schema.json +134 -0
- package/templates/base/schemas/hashes.schema.json +40 -0
- package/templates/base/schemas/manifest.schema.json +117 -0
- package/templates/base/schemas/plan.schema.json +136 -0
- package/templates/base/schemas/research.schema.json +115 -0
- package/templates/base/schemas/roles.schema.json +34 -0
- package/templates/base/schemas/session.schema.json +77 -0
- package/templates/base/schemas/settings.schema.json +244 -0
- package/templates/base/schemas/staleness.schema.json +53 -0
- package/templates/base/schemas/team-config.schema.json +42 -0
- package/templates/base/schemas/workflow.schema.json +126 -0
- package/templates/base/session/checkpoints/.gitkeep +2 -0
- package/templates/base/session/current/state.json +20 -0
- package/templates/base/session/history/.gitkeep +2 -0
- package/templates/base/settings.json +3 -0
- package/templates/base/standards/COMPATIBILITY.md +219 -0
- package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -0
- package/templates/base/standards/QUALITY_CHECKLIST.md +211 -0
- package/templates/base/standards/README.md +66 -0
- package/templates/base/sync/anchors.json +6 -0
- package/templates/base/sync/hashes.json +6 -0
- package/templates/base/sync/staleness.json +10 -0
- package/templates/base/team/README.md +168 -0
- package/templates/base/team/config.json +79 -0
- package/templates/base/team/roles.json +145 -0
- package/templates/base/tools/bin/claude-context.js +151 -0
- package/templates/base/tools/lib/anchor-resolver.js +276 -0
- package/templates/base/tools/lib/config-loader.js +363 -0
- package/templates/base/tools/lib/detector.js +350 -0
- package/templates/base/tools/lib/diagnose.js +206 -0
- package/templates/base/tools/lib/drift-detector.js +373 -0
- package/templates/base/tools/lib/errors.js +199 -0
- package/templates/base/tools/lib/index.js +36 -0
- package/templates/base/tools/lib/init.js +192 -0
- package/templates/base/tools/lib/logger.js +230 -0
- package/templates/base/tools/lib/placeholder.js +201 -0
- package/templates/base/tools/lib/session-manager.js +354 -0
- package/templates/base/tools/lib/validate.js +521 -0
- package/templates/base/tools/package.json +49 -0
- package/templates/handlebars/aider-config.hbs +146 -0
- package/templates/handlebars/antigravity.hbs +377 -0
- package/templates/handlebars/claude.hbs +183 -0
- package/templates/handlebars/cline.hbs +62 -0
- package/templates/handlebars/continue-config.hbs +116 -0
- package/templates/handlebars/copilot.hbs +130 -0
- package/templates/handlebars/partials/gotcha-list.hbs +11 -0
- package/templates/handlebars/partials/header.hbs +3 -0
- package/templates/handlebars/partials/workflow-summary.hbs +16 -0
- package/templates/handlebars/windsurf-rules.hbs +69 -0
- package/templates/hooks/post-commit.hbs +28 -0
- package/templates/hooks/pre-commit.hbs +46 -0
package/dist/cli/sync.js
ADDED
|
@@ -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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,aAAa,CAAC;AAY7B,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,SAAS,EAAE,mCAAmC,CAAC;KACtD,MAAM,CAAC,eAAe,EAAE,yBAAyB,CAAC;KAClD,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;KAC9C,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;QAExC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,GAAG,gBAAgB,OAAO,CAAC,IAAI,KAAK,CAAC;YACjD,MAAM,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,0BAA0B;QAC1B,OAAO,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC;QAE7D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,OAAO,WAAW;IACF;IAApB,YAAoB,EAAkB;QAAlB,OAAE,GAAF,EAAE,CAAgB;IAAG,CAAC;IAE1C,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACnG,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACpD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,OAAO;YACL,MAAM,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;YAChC,WAAW;SACZ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAW,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,wBAAwB,CAAC,CAAC;QACxD,CAAC;QAED,0DAA0D;QAC1D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA4B;QACxC,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACjH,MAAM,MAAM,GAAG,EAAE,CAAC;QAElB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,8CAA8C;gBAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,YAAY,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACjD,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC5G,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,KAAe;QACzC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,MAAM,SAAS,GAA2B;YACxC,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,iCAAiC;YAC1C,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,oBAAoB;YAC9B,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,uBAAuB;YACjC,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,mBAAmB;SAC5B,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBAC5D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CACV,0CAA0C,IAAI,SAAS,SAAS,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CACtF,CACF,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAY;QACrC,MAAM,SAAS,GAA2B;YACxC,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,iCAAiC;YAC1C,KAAK,EAAE,aAAa;YACpB,WAAW,EAAE,kBAAkB;YAC/B,QAAQ,EAAE,oBAAoB;YAC9B,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,uBAAuB;YACjC,MAAM,EAAE,cAAc;YACtB,MAAM,EAAE,mBAAmB;SAC5B,CAAC;QAEF,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,SAAiB,EAAE,QAAgB;QAChE,yDAAyD;QACzD,sCAAsC;QACtC,iCAAiC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,SAAS,oBAAoB,CAAC,CAAC,CAAC;IAC5E,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,OAA4B;QAC/D,0BAA0B;QAC1B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;YACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC;YACpB,EAAE,EAAE,QAAQ,IAAI,EAAE;YAClB,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAClC,MAAM,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -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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"}
|