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.
Files changed (66) hide show
  1. package/README.md +44 -39
  2. package/dist/__tests__/commands/list.test.d.ts +2 -0
  3. package/dist/__tests__/commands/list.test.d.ts.map +1 -0
  4. package/dist/__tests__/commands/list.test.js +109 -0
  5. package/dist/__tests__/commands/list.test.js.map +1 -0
  6. package/dist/__tests__/commands/pull.test.js +153 -58
  7. package/dist/__tests__/commands/pull.test.js.map +1 -1
  8. package/dist/__tests__/integration/complete-user-journeys.test.d.ts +2 -0
  9. package/dist/__tests__/integration/complete-user-journeys.test.d.ts.map +1 -0
  10. package/dist/__tests__/integration/complete-user-journeys.test.js +348 -0
  11. package/dist/__tests__/integration/complete-user-journeys.test.js.map +1 -0
  12. package/dist/__tests__/integration/config-integration.test.d.ts +2 -0
  13. package/dist/__tests__/integration/config-integration.test.d.ts.map +1 -0
  14. package/dist/__tests__/integration/config-integration.test.js +151 -0
  15. package/dist/__tests__/integration/config-integration.test.js.map +1 -0
  16. package/dist/__tests__/integration/data-integrity.test.d.ts +2 -0
  17. package/dist/__tests__/integration/data-integrity.test.d.ts.map +1 -0
  18. package/dist/__tests__/integration/data-integrity.test.js +296 -0
  19. package/dist/__tests__/integration/data-integrity.test.js.map +1 -0
  20. package/dist/__tests__/integration/edge-cases-advanced.test.d.ts +2 -0
  21. package/dist/__tests__/integration/edge-cases-advanced.test.d.ts.map +1 -0
  22. package/dist/__tests__/integration/edge-cases-advanced.test.js +286 -0
  23. package/dist/__tests__/integration/edge-cases-advanced.test.js.map +1 -0
  24. package/dist/__tests__/integration/error-recovery.test.d.ts +2 -0
  25. package/dist/__tests__/integration/error-recovery.test.d.ts.map +1 -0
  26. package/dist/__tests__/integration/error-recovery.test.js +277 -0
  27. package/dist/__tests__/integration/error-recovery.test.js.map +1 -0
  28. package/dist/__tests__/integration/filesystem-edge-cases.test.d.ts +2 -0
  29. package/dist/__tests__/integration/filesystem-edge-cases.test.d.ts.map +1 -0
  30. package/dist/__tests__/integration/filesystem-edge-cases.test.js +218 -0
  31. package/dist/__tests__/integration/filesystem-edge-cases.test.js.map +1 -0
  32. package/dist/__tests__/integration/filtering-operations.test.d.ts +2 -0
  33. package/dist/__tests__/integration/filtering-operations.test.d.ts.map +1 -0
  34. package/dist/__tests__/integration/filtering-operations.test.js +278 -0
  35. package/dist/__tests__/integration/filtering-operations.test.js.map +1 -0
  36. package/dist/__tests__/integration/full-workflow.test.js +3 -57
  37. package/dist/__tests__/integration/full-workflow.test.js.map +1 -1
  38. package/dist/__tests__/integration/state-transitions.test.d.ts +2 -0
  39. package/dist/__tests__/integration/state-transitions.test.d.ts.map +1 -0
  40. package/dist/__tests__/integration/state-transitions.test.js +320 -0
  41. package/dist/__tests__/integration/state-transitions.test.js.map +1 -0
  42. package/dist/commands/auth.js +2 -2
  43. package/dist/commands/auth.js.map +1 -1
  44. package/dist/commands/config.js +1 -1
  45. package/dist/commands/list.d.ts +4 -0
  46. package/dist/commands/list.d.ts.map +1 -0
  47. package/dist/commands/list.js +19 -0
  48. package/dist/commands/list.js.map +1 -0
  49. package/dist/commands/pull.d.ts.map +1 -1
  50. package/dist/commands/pull.js +6 -4
  51. package/dist/commands/pull.js.map +1 -1
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +3 -5
  54. package/dist/index.js.map +1 -1
  55. package/dist/utils/listOperations.d.ts +5 -0
  56. package/dist/utils/listOperations.d.ts.map +1 -0
  57. package/dist/utils/listOperations.js +138 -0
  58. package/dist/utils/listOperations.js.map +1 -0
  59. package/dist/utils/projectConfig.d.ts.map +1 -1
  60. package/dist/utils/projectConfig.js +5 -6
  61. package/dist/utils/projectConfig.js.map +1 -1
  62. package/dist/utils/pullOperations.d.ts +8 -0
  63. package/dist/utils/pullOperations.d.ts.map +1 -0
  64. package/dist/utils/pullOperations.js +319 -0
  65. package/dist/utils/pullOperations.js.map +1 -0
  66. 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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAcrD;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAU;IACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;IAE/C,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,UAAU,CAAC;IACpC,IAAI,QAAQ,GAAG,EAAE;QAAE,OAAO,GAAG,QAAQ,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC1E,IAAI,SAAS,GAAG,EAAE;QAAE,OAAO,GAAG,SAAS,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC9E,IAAI,QAAQ,GAAG,EAAE;QAAE,OAAO,GAAG,QAAQ,OAAO,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAE1E,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;IAC7C,OAAO,GAAG,UAAU,SAAS,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAElD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAEpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAEpC,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE;oBAClC,KAAK,EAAE,KAAK,CAAC,KAAK;iBACnB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gCAAgC;YAChC,SAAS;QACX,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAmB,EAAE,QAAoC;IAClF,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAE5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,OAAO,CAAC;IACjB,CAAC;SAAM,IAAI,UAAU,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,WAAW,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,cAAc,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,mCAAmC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEjE,IAAI,CAAC;QACH,4CAA4C;QAC5C,OAAO,CAAC,IAAI,GAAG,4BAA4B,CAAC;QAC5C,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC/C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,4DAA4D;QAC5D,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QAEvD,sBAAsB;QACtB,MAAM,QAAQ,GAAG,iBAAiB,EAAE,CAAC;QAErC,yCAAyC;QACzC,OAAO,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACxC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ;aACvD,IAAI,CAAC,gBAAgB,CAAC;aACtB,MAAM,CAAC,GAAG,CAAC;aACX,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAE7C,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;YACrE,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,OAAO,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACzC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEzC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,oBAAoB;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,SAAS,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC;QAElF,SAA8B,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACnD,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,kBAAkB,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;YAClE,MAAM,WAAW,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;YAE1G,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;gBACzB,KAAK,GAAG,CAAC,KAAK,GAAG;gBACjB,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC5B,aAAa,YAAY,GAAG;gBAC5B,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,CAC1B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAE1J,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -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,CA+DtF;AAGD,wBAAsB,oBAAoB,CAAC,OAAO,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBlG"}
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 sync!'));
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 sync --pull') + chalk.gray(' # Download docs from Kaimon'));
133
- console.log(chalk.cyan(' kaimon sync --push') + chalk.gray(' # Upload docs to Kaimon'));
134
- console.log(chalk.cyan(' kaimon sync --diff') + chalk.gray(' # Preview changes\n'));
135
- // Show what will be synced
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.1.46",
4
- "minimumVersion": "0.1.45",
5
- "description": "CLI tool to sync Kaimon files (.md) with your codebase",
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
- "sync",
23
+ "pull",
24
+ "download",
24
25
  "cli"
25
26
  ],
26
27
  "author": "Kaimon",