kaimon-cli 0.1.46 → 0.3.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/README.md +44 -39
- package/dist/__tests__/commands/list.test.d.ts +2 -0
- package/dist/__tests__/commands/list.test.d.ts.map +1 -0
- package/dist/__tests__/commands/list.test.js +109 -0
- package/dist/__tests__/commands/list.test.js.map +1 -0
- package/dist/__tests__/commands/pull.test.js +153 -58
- package/dist/__tests__/commands/pull.test.js.map +1 -1
- package/dist/__tests__/integration/complete-user-journeys.test.d.ts +2 -0
- package/dist/__tests__/integration/complete-user-journeys.test.d.ts.map +1 -0
- package/dist/__tests__/integration/complete-user-journeys.test.js +348 -0
- package/dist/__tests__/integration/complete-user-journeys.test.js.map +1 -0
- package/dist/__tests__/integration/config-integration.test.d.ts +2 -0
- package/dist/__tests__/integration/config-integration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/config-integration.test.js +151 -0
- package/dist/__tests__/integration/config-integration.test.js.map +1 -0
- package/dist/__tests__/integration/data-integrity.test.d.ts +2 -0
- package/dist/__tests__/integration/data-integrity.test.d.ts.map +1 -0
- package/dist/__tests__/integration/data-integrity.test.js +296 -0
- package/dist/__tests__/integration/data-integrity.test.js.map +1 -0
- package/dist/__tests__/integration/edge-cases-advanced.test.d.ts +2 -0
- package/dist/__tests__/integration/edge-cases-advanced.test.d.ts.map +1 -0
- package/dist/__tests__/integration/edge-cases-advanced.test.js +286 -0
- package/dist/__tests__/integration/edge-cases-advanced.test.js.map +1 -0
- package/dist/__tests__/integration/error-recovery.test.d.ts +2 -0
- package/dist/__tests__/integration/error-recovery.test.d.ts.map +1 -0
- package/dist/__tests__/integration/error-recovery.test.js +277 -0
- package/dist/__tests__/integration/error-recovery.test.js.map +1 -0
- package/dist/__tests__/integration/filesystem-edge-cases.test.d.ts +2 -0
- package/dist/__tests__/integration/filesystem-edge-cases.test.d.ts.map +1 -0
- package/dist/__tests__/integration/filesystem-edge-cases.test.js +218 -0
- package/dist/__tests__/integration/filesystem-edge-cases.test.js.map +1 -0
- package/dist/__tests__/integration/filtering-operations.test.d.ts +2 -0
- package/dist/__tests__/integration/filtering-operations.test.d.ts.map +1 -0
- package/dist/__tests__/integration/filtering-operations.test.js +278 -0
- package/dist/__tests__/integration/filtering-operations.test.js.map +1 -0
- package/dist/__tests__/integration/full-workflow.test.js +3 -57
- package/dist/__tests__/integration/full-workflow.test.js.map +1 -1
- package/dist/__tests__/integration/state-transitions.test.d.ts +2 -0
- package/dist/__tests__/integration/state-transitions.test.d.ts.map +1 -0
- package/dist/__tests__/integration/state-transitions.test.js +320 -0
- package/dist/__tests__/integration/state-transitions.test.js.map +1 -0
- package/dist/commands/auth.js +2 -2
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/config.js +1 -1
- package/dist/commands/list.d.ts +4 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +19 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/pull.d.ts.map +1 -1
- package/dist/commands/pull.js +6 -4
- package/dist/commands/pull.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/utils/listOperations.d.ts +5 -0
- package/dist/utils/listOperations.d.ts.map +1 -0
- package/dist/utils/listOperations.js +138 -0
- package/dist/utils/listOperations.js.map +1 -0
- package/dist/utils/projectConfig.d.ts.map +1 -1
- package/dist/utils/projectConfig.js +5 -6
- package/dist/utils/projectConfig.js.map +1 -1
- package/dist/utils/pullOperations.d.ts +8 -0
- package/dist/utils/pullOperations.d.ts.map +1 -0
- package/dist/utils/pullOperations.js +319 -0
- package/dist/utils/pullOperations.js.map +1 -0
- package/package.json +5 -4
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { getSupabaseClient } from './supabaseClient.js';
|
|
6
|
+
import { loadConfig } from './config.js';
|
|
7
|
+
import { parseFrontmatter } from './frontmatter.js';
|
|
8
|
+
import { ensureValidToken } from './tokenRefresh.js';
|
|
9
|
+
/**
|
|
10
|
+
* Format relative time (e.g., "2 hours ago", "3 days ago")
|
|
11
|
+
*/
|
|
12
|
+
function formatRelativeTime(date) {
|
|
13
|
+
const now = new Date();
|
|
14
|
+
const diffMs = now.getTime() - date.getTime();
|
|
15
|
+
const diffMins = Math.floor(diffMs / 60000);
|
|
16
|
+
const diffHours = Math.floor(diffMs / 3600000);
|
|
17
|
+
const diffDays = Math.floor(diffMs / 86400000);
|
|
18
|
+
if (diffMins < 1)
|
|
19
|
+
return 'just now';
|
|
20
|
+
if (diffMins < 60)
|
|
21
|
+
return `${diffMins} min${diffMins > 1 ? 's' : ''} ago`;
|
|
22
|
+
if (diffHours < 24)
|
|
23
|
+
return `${diffHours} hour${diffHours > 1 ? 's' : ''} ago`;
|
|
24
|
+
if (diffDays < 30)
|
|
25
|
+
return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`;
|
|
26
|
+
const diffMonths = Math.floor(diffDays / 30);
|
|
27
|
+
return `${diffMonths} month${diffMonths > 1 ? 's' : ''} ago`;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Scan local directory for markdown files and build a map by kaimon_id
|
|
31
|
+
*/
|
|
32
|
+
function scanLocalFiles(docsDir) {
|
|
33
|
+
const localMap = new Map();
|
|
34
|
+
if (!fs.existsSync(docsDir)) {
|
|
35
|
+
return localMap;
|
|
36
|
+
}
|
|
37
|
+
const files = fs.readdirSync(docsDir);
|
|
38
|
+
for (const file of files) {
|
|
39
|
+
if (!file.endsWith('.md'))
|
|
40
|
+
continue;
|
|
41
|
+
const filepath = path.join(docsDir, file);
|
|
42
|
+
try {
|
|
43
|
+
const content = fs.readFileSync(filepath, 'utf-8');
|
|
44
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
45
|
+
const stats = fs.statSync(filepath);
|
|
46
|
+
if (frontmatter.kaimon_id) {
|
|
47
|
+
localMap.set(frontmatter.kaimon_id, {
|
|
48
|
+
mtime: stats.mtime,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
// Skip files that can't be read
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return localMap;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Determine document status by comparing remote vs local timestamps
|
|
61
|
+
*/
|
|
62
|
+
function getDocumentStatus(doc, localMap) {
|
|
63
|
+
const local = localMap.get(doc.id);
|
|
64
|
+
const remoteTime = new Date(doc.updated_at);
|
|
65
|
+
if (!local) {
|
|
66
|
+
return '[NEW]';
|
|
67
|
+
}
|
|
68
|
+
else if (remoteTime > local.mtime) {
|
|
69
|
+
return '[UPDATED]';
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
return '[UP-TO-DATE]';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* List all documents from Kaimon with status
|
|
77
|
+
*/
|
|
78
|
+
export async function listDocuments() {
|
|
79
|
+
const spinner = ora('Fetching documents from Kaimon...').start();
|
|
80
|
+
try {
|
|
81
|
+
// Ensure token is valid (refresh if needed)
|
|
82
|
+
spinner.text = 'Checking authentication...';
|
|
83
|
+
const hasValidToken = await ensureValidToken();
|
|
84
|
+
if (!hasValidToken) {
|
|
85
|
+
spinner.fail(chalk.red('Authentication failed'));
|
|
86
|
+
console.log(chalk.yellow('\nYour session has expired or is invalid.'));
|
|
87
|
+
console.log(chalk.cyan('Please login again:\n'));
|
|
88
|
+
console.log(chalk.dim(' kaimon auth login\n'));
|
|
89
|
+
throw new Error('Not authenticated');
|
|
90
|
+
}
|
|
91
|
+
// Get user ID from global config (no project config needed)
|
|
92
|
+
const globalConfig = loadConfig();
|
|
93
|
+
if (!globalConfig.access_token) {
|
|
94
|
+
throw new Error('Not authenticated');
|
|
95
|
+
}
|
|
96
|
+
const currentFolder = process.cwd();
|
|
97
|
+
const docsDir = path.join(currentFolder, 'KaimonDocs');
|
|
98
|
+
// Get Supabase client
|
|
99
|
+
const supabase = getSupabaseClient();
|
|
100
|
+
// Fetch all user documents from database
|
|
101
|
+
spinner.text = 'Analyzing documents...';
|
|
102
|
+
const { data: documents, error: dbError } = await supabase
|
|
103
|
+
.from('user_documents')
|
|
104
|
+
.select('*')
|
|
105
|
+
.order('updated_at', { ascending: false });
|
|
106
|
+
if (dbError) {
|
|
107
|
+
throw new Error(`Database error: ${dbError.message}`);
|
|
108
|
+
}
|
|
109
|
+
if (!documents || documents.length === 0) {
|
|
110
|
+
spinner.succeed(chalk.yellow('No documents found in your Kaimon account'));
|
|
111
|
+
console.log(chalk.dim('Create some documents first at kaimon.ai\n'));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Scan local files to determine status
|
|
115
|
+
spinner.text = 'Scanning local files...';
|
|
116
|
+
const localMap = scanLocalFiles(docsDir);
|
|
117
|
+
spinner.stop();
|
|
118
|
+
// Display documents
|
|
119
|
+
console.log(chalk.blue(`\n📄 Available documents (${documents.length} total):\n`));
|
|
120
|
+
documents.forEach((doc, idx) => {
|
|
121
|
+
const status = getDocumentStatus(doc, localMap);
|
|
122
|
+
const relativeTime = formatRelativeTime(new Date(doc.updated_at));
|
|
123
|
+
const statusColor = status === '[NEW]' ? chalk.green : status === '[UPDATED]' ? chalk.yellow : chalk.gray;
|
|
124
|
+
console.log(chalk.cyan(`${idx + 1}.`) +
|
|
125
|
+
` "${doc.title}"` +
|
|
126
|
+
chalk.gray(` ID: ${doc.id}`) +
|
|
127
|
+
` (updated ${relativeTime})` +
|
|
128
|
+
` ${statusColor(status)}`);
|
|
129
|
+
});
|
|
130
|
+
console.log();
|
|
131
|
+
console.log(chalk.dim('Use: kaimon pull "title"') + chalk.gray(' or ') + chalk.dim('kaimon pull "ID"') + chalk.gray(' to pull specific document(s)\n'));
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
spinner.fail(chalk.red('Failed to list documents'));
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=listOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listOperations.js","sourceRoot":"","sources":["../../src/utils/listOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../src/utils/projectConfig.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,CAE3E;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,CAE5E;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAE7E;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,aAAa,GAAG,IAAI,CAavF;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,MAAsB,GAAG,IAAI,CAgB9F;AAGD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAejG;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CA8BlH;AAGD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"projectConfig.d.ts","sourceRoot":"","sources":["../../src/utils/projectConfig.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAOD,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,CAE3E;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAsB,GAAG,MAAM,CAE5E;AAGD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAE7E;AAGD,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,aAAa,GAAG,IAAI,CAavF;AAGD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,MAAsB,GAAG,IAAI,CAgB9F;AAGD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAejG;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAsB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG,IAAI,CA8BlH;AAGD,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DtF;AAGD,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBlG"}
|
|
@@ -126,14 +126,13 @@ export async function initProjectConfig(baseDir = process.cwd()) {
|
|
|
126
126
|
};
|
|
127
127
|
// Save config
|
|
128
128
|
saveProjectConfig(config, baseDir);
|
|
129
|
-
console.log(chalk.green('✅ Initialized Kaimon
|
|
129
|
+
console.log(chalk.green('✅ Initialized Kaimon pull!'));
|
|
130
130
|
console.log(chalk.gray(`Config saved to: ${getProjectConfigPath(baseDir)}`));
|
|
131
131
|
console.log(chalk.gray('\nYou can now use:'));
|
|
132
|
-
console.log(chalk.cyan(' kaimon
|
|
133
|
-
console.log(chalk.cyan(' kaimon
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
console.log(chalk.blue('📁 Sync Configuration:'));
|
|
132
|
+
console.log(chalk.cyan(' kaimon pull') + chalk.gray(' # Download docs from Kaimon'));
|
|
133
|
+
console.log(chalk.cyan(' kaimon pull --flat') + chalk.gray(' # Download to current folder\n'));
|
|
134
|
+
// Show what will be pulled
|
|
135
|
+
console.log(chalk.blue('📁 Pull Configuration:'));
|
|
137
136
|
if (config.sync_patterns) {
|
|
138
137
|
console.log(chalk.gray(' Include patterns:'));
|
|
139
138
|
config.sync_patterns.include.forEach(pattern => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/utils/projectConfig.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"projectConfig.js","sourceRoot":"","sources":["../../src/utils/projectConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pull documents from Kaimon and save as markdown files
|
|
3
|
+
* @param flat - If true, save directly to current folder; if false, create KaimonDocs/ subfolder
|
|
4
|
+
* @param skipConfirmation - If true, skip confirmation prompt
|
|
5
|
+
* @param selectedDocuments - Optional array of document titles or IDs to pull (pull all if not provided)
|
|
6
|
+
*/
|
|
7
|
+
export declare function pullDocuments(flat?: boolean, skipConfirmation?: boolean, selectedDocuments?: string[]): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=pullOperations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pullOperations.d.ts","sourceRoot":"","sources":["../../src/utils/pullOperations.ts"],"names":[],"mappings":"AAgJA;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,IAAI,GAAE,OAAe,EAAE,gBAAgB,GAAE,OAAe,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4PzI"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import ora from 'ora';
|
|
5
|
+
import { getSupabaseClient } from './supabaseClient.js';
|
|
6
|
+
import { loadConfig } from './config.js';
|
|
7
|
+
import { blocknoteToMarkdown } from './markdown.js';
|
|
8
|
+
import { ensureValidToken } from './tokenRefresh.js';
|
|
9
|
+
import { parseFrontmatter, combineFrontmatterAndMarkdown } from './frontmatter.js';
|
|
10
|
+
const BUCKET_NAME = 'user-documents';
|
|
11
|
+
/**
|
|
12
|
+
* Get document path in Supabase Storage
|
|
13
|
+
*/
|
|
14
|
+
function getDocumentPath(userId, documentId) {
|
|
15
|
+
return `users/${userId}/documents/${documentId}/latest.json`;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Sanitize filename (remove invalid characters)
|
|
19
|
+
*/
|
|
20
|
+
function sanitizeFilename(filename) {
|
|
21
|
+
return filename
|
|
22
|
+
.replace(/[<>:"/\\|?*]/g, '-') // Replace invalid chars
|
|
23
|
+
.replace(/\s+/g, '-') // Replace spaces with hyphens
|
|
24
|
+
.replace(/-+/g, '-') // Collapse multiple hyphens
|
|
25
|
+
.trim();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Format relative time (e.g., "2 hours ago", "3 days ago")
|
|
29
|
+
*/
|
|
30
|
+
function formatRelativeTime(date) {
|
|
31
|
+
const now = new Date();
|
|
32
|
+
const diffMs = now.getTime() - date.getTime();
|
|
33
|
+
const diffMins = Math.floor(diffMs / 60000);
|
|
34
|
+
const diffHours = Math.floor(diffMs / 3600000);
|
|
35
|
+
const diffDays = Math.floor(diffMs / 86400000);
|
|
36
|
+
if (diffMins < 1)
|
|
37
|
+
return 'just now';
|
|
38
|
+
if (diffMins < 60)
|
|
39
|
+
return `${diffMins} min${diffMins > 1 ? 's' : ''} ago`;
|
|
40
|
+
if (diffHours < 24)
|
|
41
|
+
return `${diffHours} hour${diffHours > 1 ? 's' : ''} ago`;
|
|
42
|
+
if (diffDays < 30)
|
|
43
|
+
return `${diffDays} day${diffDays > 1 ? 's' : ''} ago`;
|
|
44
|
+
const diffMonths = Math.floor(diffDays / 30);
|
|
45
|
+
return `${diffMonths} month${diffMonths > 1 ? 's' : ''} ago`;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Filter documents to pull based on selected titles or IDs
|
|
49
|
+
*/
|
|
50
|
+
function filterDocumentsToPull(toPull, selectedDocuments) {
|
|
51
|
+
const filtered = [];
|
|
52
|
+
const found = new Set();
|
|
53
|
+
const notFound = [];
|
|
54
|
+
for (const selector of selectedDocuments) {
|
|
55
|
+
const match = toPull.find(item => item.doc.id === selector || item.doc.title === selector);
|
|
56
|
+
if (match) {
|
|
57
|
+
// Only add if not already found (deduplicate)
|
|
58
|
+
if (!found.has(match.doc.id)) {
|
|
59
|
+
filtered.push(match);
|
|
60
|
+
found.add(match.doc.id);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
notFound.push(selector);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { filtered, notFound };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Scan local directory for markdown files and build a map by kaimon_id
|
|
71
|
+
*/
|
|
72
|
+
function scanLocalFiles(docsDir) {
|
|
73
|
+
const localMap = new Map();
|
|
74
|
+
if (!fs.existsSync(docsDir)) {
|
|
75
|
+
return localMap;
|
|
76
|
+
}
|
|
77
|
+
const files = fs.readdirSync(docsDir);
|
|
78
|
+
for (const file of files) {
|
|
79
|
+
if (!file.endsWith('.md'))
|
|
80
|
+
continue;
|
|
81
|
+
const filepath = path.join(docsDir, file);
|
|
82
|
+
try {
|
|
83
|
+
const content = fs.readFileSync(filepath, 'utf-8');
|
|
84
|
+
const { frontmatter } = parseFrontmatter(content);
|
|
85
|
+
const stats = fs.statSync(filepath);
|
|
86
|
+
if (frontmatter.kaimon_id) {
|
|
87
|
+
localMap.set(frontmatter.kaimon_id, {
|
|
88
|
+
path: filepath,
|
|
89
|
+
mtime: stats.mtime,
|
|
90
|
+
frontmatter
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
// Skip files that can't be read
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return localMap;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Pull documents from Kaimon and save as markdown files
|
|
103
|
+
* @param flat - If true, save directly to current folder; if false, create KaimonDocs/ subfolder
|
|
104
|
+
* @param skipConfirmation - If true, skip confirmation prompt
|
|
105
|
+
* @param selectedDocuments - Optional array of document titles or IDs to pull (pull all if not provided)
|
|
106
|
+
*/
|
|
107
|
+
export async function pullDocuments(flat = false, skipConfirmation = false, selectedDocuments) {
|
|
108
|
+
const spinner = ora('Fetching documents from Kaimon...').start();
|
|
109
|
+
try {
|
|
110
|
+
// Ensure token is valid (refresh if needed)
|
|
111
|
+
spinner.text = 'Checking authentication...';
|
|
112
|
+
const hasValidToken = await ensureValidToken();
|
|
113
|
+
if (!hasValidToken) {
|
|
114
|
+
spinner.fail(chalk.red('Authentication failed'));
|
|
115
|
+
console.log(chalk.yellow('\nYour session has expired or is invalid.'));
|
|
116
|
+
console.log(chalk.cyan('Please login again:\n'));
|
|
117
|
+
console.log(chalk.dim(' kaimon auth login\n'));
|
|
118
|
+
throw new Error('Not authenticated');
|
|
119
|
+
}
|
|
120
|
+
// Get user ID from global config (no project config needed)
|
|
121
|
+
const globalConfig = loadConfig();
|
|
122
|
+
if (!globalConfig.access_token) {
|
|
123
|
+
throw new Error('Not authenticated');
|
|
124
|
+
}
|
|
125
|
+
const currentFolder = process.cwd();
|
|
126
|
+
const docsDir = flat
|
|
127
|
+
? currentFolder
|
|
128
|
+
: path.join(currentFolder, 'KaimonDocs');
|
|
129
|
+
// Get Supabase client
|
|
130
|
+
const supabase = getSupabaseClient();
|
|
131
|
+
// Fetch all user documents from database
|
|
132
|
+
spinner.text = 'Analyzing documents...';
|
|
133
|
+
const { data: documents, error: dbError } = await supabase
|
|
134
|
+
.from('user_documents')
|
|
135
|
+
.select('*')
|
|
136
|
+
.order('updated_at', { ascending: false });
|
|
137
|
+
if (dbError) {
|
|
138
|
+
throw new Error(`Database error: ${dbError.message}`);
|
|
139
|
+
}
|
|
140
|
+
if (!documents || documents.length === 0) {
|
|
141
|
+
spinner.succeed(chalk.yellow('No documents found in your Kaimon account'));
|
|
142
|
+
console.log(chalk.dim('Create some documents first at kaimon.ai\n'));
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
// Scan local files to build map
|
|
146
|
+
const localMap = scanLocalFiles(docsDir);
|
|
147
|
+
// Determine what to pull based on timestamps
|
|
148
|
+
const toPull = [];
|
|
149
|
+
const toSkip = [];
|
|
150
|
+
for (const doc of documents) {
|
|
151
|
+
const local = localMap.get(doc.id);
|
|
152
|
+
const remoteTime = new Date(doc.updated_at);
|
|
153
|
+
if (!local) {
|
|
154
|
+
// New document - pull it
|
|
155
|
+
toPull.push({ doc, reason: 'new', remoteTime });
|
|
156
|
+
}
|
|
157
|
+
else if (remoteTime > local.mtime) {
|
|
158
|
+
// Remote is newer - pull it
|
|
159
|
+
toPull.push({ doc, reason: 'updated', localTime: local.mtime, remoteTime });
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// Local is up-to-date or newer - skip
|
|
163
|
+
toSkip.push(doc);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
spinner.stop();
|
|
167
|
+
// If nothing to pull, we're done
|
|
168
|
+
if (toPull.length === 0) {
|
|
169
|
+
console.log(chalk.green(`\n✅ All ${documents.length} document(s) are up to date!`));
|
|
170
|
+
console.log(chalk.dim('No changes to pull.\n'));
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
// Filter by selected documents if provided
|
|
174
|
+
let docsToProcess = toPull;
|
|
175
|
+
let notFoundDocs = [];
|
|
176
|
+
if (selectedDocuments && selectedDocuments.length > 0) {
|
|
177
|
+
const result = filterDocumentsToPull(toPull, selectedDocuments);
|
|
178
|
+
docsToProcess = result.filtered;
|
|
179
|
+
notFoundDocs = result.notFound;
|
|
180
|
+
// Show errors for documents not found
|
|
181
|
+
if (notFoundDocs.length > 0) {
|
|
182
|
+
console.log(chalk.yellow(`\n⚠️ Document(s) not found or not available to pull:`));
|
|
183
|
+
notFoundDocs.forEach(doc => {
|
|
184
|
+
console.log(chalk.gray(` - "${doc}"`));
|
|
185
|
+
});
|
|
186
|
+
console.log();
|
|
187
|
+
}
|
|
188
|
+
// If no documents match, stop here
|
|
189
|
+
if (docsToProcess.length === 0) {
|
|
190
|
+
console.log(chalk.yellow('\n⚠️ No matching documents to pull.\n'));
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Show preview
|
|
195
|
+
console.log(chalk.blue(`\n📄 Found ${docsToProcess.length} document(s) to pull:\n`));
|
|
196
|
+
const newDocs = docsToProcess.filter(item => item.reason === 'new');
|
|
197
|
+
const updatedDocs = docsToProcess.filter(item => item.reason === 'updated');
|
|
198
|
+
if (newDocs.length > 0) {
|
|
199
|
+
console.log(chalk.cyan('New documents:'));
|
|
200
|
+
newDocs.forEach((item, idx) => {
|
|
201
|
+
console.log(chalk.gray(` ${idx + 1}. ${item.doc.title} (created ${formatRelativeTime(item.remoteTime)})`));
|
|
202
|
+
});
|
|
203
|
+
console.log();
|
|
204
|
+
}
|
|
205
|
+
if (updatedDocs.length > 0) {
|
|
206
|
+
console.log(chalk.cyan('Updated documents:'));
|
|
207
|
+
updatedDocs.forEach((item, idx) => {
|
|
208
|
+
const localTime = formatRelativeTime(item.localTime);
|
|
209
|
+
const remoteTime = formatRelativeTime(item.remoteTime);
|
|
210
|
+
console.log(chalk.gray(` ${idx + 1}. ${item.doc.title} (Local: ${localTime}, Remote: ${remoteTime})`));
|
|
211
|
+
});
|
|
212
|
+
console.log();
|
|
213
|
+
}
|
|
214
|
+
if (toSkip.length > 0) {
|
|
215
|
+
console.log(chalk.dim(`⏭️ ${toSkip.length} document(s) already up to date\n`));
|
|
216
|
+
}
|
|
217
|
+
console.log(chalk.blue('📁 Pull Location'));
|
|
218
|
+
console.log(chalk.gray(` Will pull to: ${flat ? '.' : './KaimonDocs'}\n`));
|
|
219
|
+
// Show confirmation before pulling (unless --yes flag)
|
|
220
|
+
if (!skipConfirmation) {
|
|
221
|
+
const readline = await import('readline');
|
|
222
|
+
const rl = readline.createInterface({
|
|
223
|
+
input: process.stdin,
|
|
224
|
+
output: process.stdout
|
|
225
|
+
});
|
|
226
|
+
const answer = await new Promise((resolve) => {
|
|
227
|
+
rl.question(chalk.cyan('Continue? (y/N): '), (ans) => {
|
|
228
|
+
rl.close();
|
|
229
|
+
resolve(ans);
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
233
|
+
console.log(chalk.yellow('\n⚠️ Pull cancelled.\n'));
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
spinner.start();
|
|
238
|
+
spinner.text = `Pulling ${docsToProcess.length} document(s)...`;
|
|
239
|
+
// Create docs directory if it doesn't exist
|
|
240
|
+
if (!fs.existsSync(docsDir)) {
|
|
241
|
+
fs.mkdirSync(docsDir, { recursive: true });
|
|
242
|
+
}
|
|
243
|
+
let successCount = 0;
|
|
244
|
+
let errorCount = 0;
|
|
245
|
+
const errors = [];
|
|
246
|
+
// Download only documents in docsToProcess array
|
|
247
|
+
for (const item of docsToProcess) {
|
|
248
|
+
const doc = item.doc;
|
|
249
|
+
try {
|
|
250
|
+
const documentPath = getDocumentPath(doc.user_id, doc.id);
|
|
251
|
+
// Download from Supabase Storage
|
|
252
|
+
const { data: fileData, error: downloadError } = await supabase.storage
|
|
253
|
+
.from(BUCKET_NAME)
|
|
254
|
+
.download(documentPath);
|
|
255
|
+
if (downloadError) {
|
|
256
|
+
// Handle missing file gracefully
|
|
257
|
+
if (downloadError.message.includes('not found')) {
|
|
258
|
+
errors.push(`${doc.title}: file not found in storage`);
|
|
259
|
+
errorCount++;
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
throw downloadError;
|
|
263
|
+
}
|
|
264
|
+
// Parse JSON content
|
|
265
|
+
const text = await fileData.text();
|
|
266
|
+
const content = JSON.parse(text);
|
|
267
|
+
// Convert to markdown
|
|
268
|
+
let markdown = '';
|
|
269
|
+
if (content.type === 'blocknote' && Array.isArray(content.content)) {
|
|
270
|
+
markdown = blocknoteToMarkdown(content.content);
|
|
271
|
+
}
|
|
272
|
+
else if (typeof content.content === 'string') {
|
|
273
|
+
markdown = content.content;
|
|
274
|
+
}
|
|
275
|
+
else {
|
|
276
|
+
errors.push(`${doc.title}: unsupported format`);
|
|
277
|
+
errorCount++;
|
|
278
|
+
continue;
|
|
279
|
+
}
|
|
280
|
+
// Generate filename
|
|
281
|
+
const filename = sanitizeFilename(doc.title) + '.md';
|
|
282
|
+
const filepath = path.join(docsDir, filename);
|
|
283
|
+
// Create frontmatter
|
|
284
|
+
const frontmatterData = {
|
|
285
|
+
title: doc.title,
|
|
286
|
+
kaimon_id: doc.id,
|
|
287
|
+
created_at: doc.created_at,
|
|
288
|
+
updated_at: doc.updated_at
|
|
289
|
+
};
|
|
290
|
+
const fullContent = combineFrontmatterAndMarkdown(frontmatterData, markdown);
|
|
291
|
+
// Write to file
|
|
292
|
+
fs.writeFileSync(filepath, fullContent, 'utf-8');
|
|
293
|
+
// Update file mtime to match remote updated_at (for accurate next pull)
|
|
294
|
+
const remoteTime = new Date(doc.updated_at);
|
|
295
|
+
fs.utimesSync(filepath, remoteTime, remoteTime);
|
|
296
|
+
successCount++;
|
|
297
|
+
}
|
|
298
|
+
catch (error) {
|
|
299
|
+
errorCount++;
|
|
300
|
+
errors.push(`${doc.title}: ${error.message}`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
// Show results
|
|
304
|
+
spinner.succeed(chalk.green(`✅ Pulled ${successCount} document(s)`));
|
|
305
|
+
if (toSkip.length > 0) {
|
|
306
|
+
console.log(chalk.dim(`⏭️ Skipped ${toSkip.length} up-to-date document(s)`));
|
|
307
|
+
}
|
|
308
|
+
if (errorCount > 0) {
|
|
309
|
+
console.log(chalk.yellow(`\n⚠️ ${errorCount} error(s) occurred:`));
|
|
310
|
+
errors.forEach(err => console.log(chalk.dim(` - ${err}`)));
|
|
311
|
+
}
|
|
312
|
+
console.log();
|
|
313
|
+
}
|
|
314
|
+
catch (error) {
|
|
315
|
+
spinner.fail(chalk.red('Failed to pull documents'));
|
|
316
|
+
throw error;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=pullOperations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pullOperations.js","sourceRoot":"","sources":["../../src/utils/pullOperations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kaimon-cli",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"minimumVersion": "0.
|
|
5
|
-
"description": "CLI tool to
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"minimumVersion": "0.3.0",
|
|
5
|
+
"description": "CLI tool to download and pull Kaimon files (.md) into your codebase",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"bin": {
|
|
8
8
|
"kaimon": "./bin/index.js"
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"keywords": [
|
|
21
21
|
"kaimon",
|
|
22
22
|
"documentation",
|
|
23
|
-
"
|
|
23
|
+
"pull",
|
|
24
|
+
"download",
|
|
24
25
|
"cli"
|
|
25
26
|
],
|
|
26
27
|
"author": "Kaimon",
|