@okrapdf/cli 0.1.0 → 0.1.2

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 (115) hide show
  1. package/README.md +163 -0
  2. package/dist/cli.d.ts +19 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +175 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/auth.d.ts +6 -0
  7. package/dist/commands/auth.d.ts.map +1 -0
  8. package/dist/commands/auth.js +155 -0
  9. package/dist/commands/auth.js.map +1 -0
  10. package/dist/commands/chat.d.ts +6 -0
  11. package/dist/commands/chat.d.ts.map +1 -0
  12. package/dist/commands/chat.js +218 -0
  13. package/dist/commands/chat.js.map +1 -0
  14. package/dist/commands/docs.d.ts +6 -0
  15. package/dist/commands/docs.d.ts.map +1 -0
  16. package/dist/commands/docs.js +181 -0
  17. package/dist/commands/docs.js.map +1 -0
  18. package/dist/commands/jobs.d.ts +6 -0
  19. package/dist/commands/jobs.d.ts.map +1 -0
  20. package/dist/commands/jobs.js +348 -0
  21. package/dist/commands/jobs.js.map +1 -0
  22. package/dist/commands/jobs.test.d.ts +5 -0
  23. package/dist/commands/jobs.test.d.ts.map +1 -0
  24. package/dist/commands/jobs.test.js +118 -0
  25. package/dist/commands/jobs.test.js.map +1 -0
  26. package/dist/commands/logs.d.ts +8 -0
  27. package/dist/commands/logs.d.ts.map +1 -0
  28. package/dist/commands/logs.js +186 -0
  29. package/dist/commands/logs.js.map +1 -0
  30. package/dist/commands/processors.d.ts +8 -0
  31. package/dist/commands/processors.d.ts.map +1 -0
  32. package/dist/commands/processors.js +91 -0
  33. package/dist/commands/processors.js.map +1 -0
  34. package/dist/commands/review.d.ts +3 -0
  35. package/dist/commands/review.d.ts.map +1 -0
  36. package/dist/commands/review.js +370 -0
  37. package/dist/commands/review.js.map +1 -0
  38. package/dist/commands/shortcuts.d.ts +20 -0
  39. package/dist/commands/shortcuts.d.ts.map +1 -0
  40. package/dist/commands/shortcuts.js +405 -0
  41. package/dist/commands/shortcuts.js.map +1 -0
  42. package/dist/commands/tables.d.ts +6 -0
  43. package/dist/commands/tables.d.ts.map +1 -0
  44. package/dist/commands/tables.js +189 -0
  45. package/dist/commands/tables.js.map +1 -0
  46. package/dist/commands/templates.d.ts +8 -0
  47. package/dist/commands/templates.d.ts.map +1 -0
  48. package/dist/commands/templates.js +202 -0
  49. package/dist/commands/templates.js.map +1 -0
  50. package/dist/index.d.ts +14 -412
  51. package/dist/index.d.ts.map +1 -0
  52. package/dist/index.js +23 -46
  53. package/dist/index.js.map +1 -1
  54. package/dist/lib/browser.d.ts +11 -0
  55. package/dist/lib/browser.d.ts.map +1 -0
  56. package/dist/lib/browser.js +33 -0
  57. package/dist/lib/browser.js.map +1 -0
  58. package/dist/lib/client.d.ts +57 -0
  59. package/dist/lib/client.d.ts.map +1 -0
  60. package/dist/lib/client.js +176 -0
  61. package/dist/lib/client.js.map +1 -0
  62. package/dist/lib/config.d.ts +56 -0
  63. package/dist/lib/config.d.ts.map +1 -0
  64. package/dist/lib/config.js +110 -0
  65. package/dist/lib/config.js.map +1 -0
  66. package/dist/lib/config.test.d.ts +5 -0
  67. package/dist/lib/config.test.d.ts.map +1 -0
  68. package/dist/lib/config.test.js +81 -0
  69. package/dist/lib/config.test.js.map +1 -0
  70. package/dist/lib/logs.d.ts +89 -0
  71. package/dist/lib/logs.d.ts.map +1 -0
  72. package/dist/lib/logs.js +196 -0
  73. package/dist/lib/logs.js.map +1 -0
  74. package/dist/lib/logs.test.d.ts +5 -0
  75. package/dist/lib/logs.test.d.ts.map +1 -0
  76. package/dist/lib/logs.test.js +183 -0
  77. package/dist/lib/logs.test.js.map +1 -0
  78. package/dist/lib/output.d.ts +73 -0
  79. package/dist/lib/output.d.ts.map +1 -0
  80. package/dist/lib/output.js +204 -0
  81. package/dist/lib/output.js.map +1 -0
  82. package/dist/lib/output.test.d.ts +5 -0
  83. package/dist/lib/output.test.d.ts.map +1 -0
  84. package/dist/lib/output.test.js +174 -0
  85. package/dist/lib/output.test.js.map +1 -0
  86. package/dist/lib/processors.d.ts +73 -0
  87. package/dist/lib/processors.d.ts.map +1 -0
  88. package/dist/lib/processors.js +94 -0
  89. package/dist/lib/processors.js.map +1 -0
  90. package/dist/lib/processors.test.d.ts +5 -0
  91. package/dist/lib/processors.test.d.ts.map +1 -0
  92. package/dist/lib/processors.test.js +83 -0
  93. package/dist/lib/processors.test.js.map +1 -0
  94. package/dist/lib/progress.d.ts +44 -0
  95. package/dist/lib/progress.d.ts.map +1 -0
  96. package/dist/lib/progress.js +102 -0
  97. package/dist/lib/progress.js.map +1 -0
  98. package/dist/lib/templates.d.ts +56 -0
  99. package/dist/lib/templates.d.ts.map +1 -0
  100. package/dist/lib/templates.js +204 -0
  101. package/dist/lib/templates.js.map +1 -0
  102. package/dist/lib/templates.test.d.ts +5 -0
  103. package/dist/lib/templates.test.d.ts.map +1 -0
  104. package/dist/lib/templates.test.js +101 -0
  105. package/dist/lib/templates.test.js.map +1 -0
  106. package/dist/types.d.ts +144 -0
  107. package/dist/types.d.ts.map +1 -0
  108. package/dist/types.js +5 -0
  109. package/dist/types.js.map +1 -0
  110. package/package.json +56 -25
  111. package/dist/bin.d.ts +0 -1
  112. package/dist/bin.js +0 -152
  113. package/dist/bin.js.map +0 -1
  114. package/dist/chunk-A6YTW4WL.js +0 -499
  115. package/dist/chunk-A6YTW4WL.js.map +0 -1
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Chat commands for interactive document conversations
3
+ */
4
+ import { Command } from 'commander';
5
+ import { createInterface } from 'readline';
6
+ import chalk from 'chalk';
7
+ import { get, post, OkraApiError, EXIT_CODES } from '../lib/client.js';
8
+ import { error, info, formatOutput } from '../lib/output.js';
9
+ import { createSpinner, withSpinner } from '../lib/progress.js';
10
+ export function createChatCommand() {
11
+ const chat = new Command('chat')
12
+ .description('Chat with documents using AI')
13
+ .argument('<documentUuid>', 'Document UUID to chat with')
14
+ .option('-m, --message <message>', 'Single message (non-interactive mode)')
15
+ .option('-o, --output <format>', 'Output format (text, json)', 'text')
16
+ .option('--system <prompt>', 'Custom system prompt')
17
+ .action(async (documentUuid, options) => {
18
+ // Verify document exists
19
+ try {
20
+ const doc = await withSpinner('Loading document', () => get(`api/library/document`, { uuid: documentUuid }));
21
+ info(`Chatting with: ${doc.file_name}`);
22
+ }
23
+ catch (err) {
24
+ if (err instanceof OkraApiError && err.statusCode === 404) {
25
+ error(`Document not found: ${documentUuid}`);
26
+ process.exit(EXIT_CODES.NOT_FOUND);
27
+ }
28
+ throw err;
29
+ }
30
+ // Single message mode
31
+ if (options.message) {
32
+ const response = await sendMessage(documentUuid, options.message, options.system);
33
+ if (options.output === 'json') {
34
+ console.log(formatOutput(response, 'json'));
35
+ }
36
+ else {
37
+ console.log(response.message.content);
38
+ }
39
+ return;
40
+ }
41
+ // Interactive mode
42
+ await interactiveChat(documentUuid, options.system);
43
+ });
44
+ return chat;
45
+ }
46
+ /**
47
+ * Send a single message to the chat API
48
+ */
49
+ async function sendMessage(documentUuid, message, systemPrompt) {
50
+ const spinner = createSpinner('Thinking...');
51
+ spinner.start();
52
+ try {
53
+ const response = await post('api/v1/messages', {
54
+ document_uuid: documentUuid,
55
+ message,
56
+ system_prompt: systemPrompt,
57
+ });
58
+ spinner.stop();
59
+ return response;
60
+ }
61
+ catch (err) {
62
+ spinner.fail('Failed to get response');
63
+ throw err;
64
+ }
65
+ }
66
+ /**
67
+ * Interactive chat session
68
+ */
69
+ async function interactiveChat(documentUuid, systemPrompt) {
70
+ const history = [];
71
+ console.log();
72
+ console.log(chalk.bold('OkraPDF Document Chat'));
73
+ console.log(chalk.dim('Type your questions about the document. Use /quit to exit.'));
74
+ console.log(chalk.dim('Commands: /quit, /clear, /history, /export'));
75
+ console.log();
76
+ const rl = createInterface({
77
+ input: process.stdin,
78
+ output: process.stdout,
79
+ prompt: chalk.cyan('You: '),
80
+ });
81
+ rl.prompt();
82
+ rl.on('line', async (line) => {
83
+ const input = line.trim();
84
+ if (!input) {
85
+ rl.prompt();
86
+ return;
87
+ }
88
+ // Handle commands
89
+ if (input.startsWith('/')) {
90
+ await handleCommand(input, history, documentUuid, rl);
91
+ return;
92
+ }
93
+ // Add user message to history
94
+ const userMessage = {
95
+ role: 'user',
96
+ content: input,
97
+ timestamp: new Date().toISOString(),
98
+ };
99
+ history.push(userMessage);
100
+ try {
101
+ const response = await sendMessage(documentUuid, input, systemPrompt);
102
+ // Add assistant message to history
103
+ const assistantMessage = {
104
+ role: 'assistant',
105
+ content: response.message.content,
106
+ timestamp: new Date().toISOString(),
107
+ };
108
+ history.push(assistantMessage);
109
+ console.log();
110
+ console.log(chalk.green('Assistant:'), response.message.content);
111
+ // Show output files if any
112
+ if (response.output_files && response.output_files.length > 0) {
113
+ console.log();
114
+ console.log(chalk.dim('Generated files:'));
115
+ for (const file of response.output_files) {
116
+ console.log(chalk.dim(` - ${file.filename}`));
117
+ }
118
+ }
119
+ console.log();
120
+ }
121
+ catch (err) {
122
+ if (err instanceof OkraApiError) {
123
+ console.log(chalk.red('Error:'), err.message);
124
+ }
125
+ else {
126
+ console.log(chalk.red('Error:'), 'Failed to get response');
127
+ }
128
+ console.log();
129
+ }
130
+ rl.prompt();
131
+ });
132
+ rl.on('close', () => {
133
+ console.log();
134
+ console.log(chalk.dim('Chat session ended'));
135
+ process.exit(0);
136
+ });
137
+ }
138
+ /**
139
+ * Handle chat commands
140
+ */
141
+ async function handleCommand(input, history, documentUuid, rl) {
142
+ const [command, ...args] = input.slice(1).split(' ');
143
+ switch (command.toLowerCase()) {
144
+ case 'quit':
145
+ case 'exit':
146
+ case 'q':
147
+ rl.close();
148
+ break;
149
+ case 'clear':
150
+ history.length = 0;
151
+ console.log(chalk.dim('Chat history cleared'));
152
+ console.log();
153
+ rl.prompt();
154
+ break;
155
+ case 'history':
156
+ if (history.length === 0) {
157
+ console.log(chalk.dim('No chat history'));
158
+ }
159
+ else {
160
+ console.log();
161
+ console.log(chalk.bold('Chat History'));
162
+ console.log(chalk.dim('─'.repeat(50)));
163
+ for (const msg of history) {
164
+ const role = msg.role === 'user' ? chalk.cyan('You') : chalk.green('Assistant');
165
+ console.log(`${role}: ${msg.content.slice(0, 100)}${msg.content.length > 100 ? '...' : ''}`);
166
+ }
167
+ }
168
+ console.log();
169
+ rl.prompt();
170
+ break;
171
+ case 'export':
172
+ const format = args[0] || 'json';
173
+ const filename = `chat-${documentUuid.slice(0, 8)}-${Date.now()}.${format}`;
174
+ try {
175
+ const { writeFileSync } = await import('fs');
176
+ if (format === 'json') {
177
+ writeFileSync(filename, JSON.stringify(history, null, 2));
178
+ }
179
+ else if (format === 'md' || format === 'markdown') {
180
+ const md = history.map(msg => {
181
+ const role = msg.role === 'user' ? '**You**' : '**Assistant**';
182
+ return `${role}: ${msg.content}`;
183
+ }).join('\n\n');
184
+ writeFileSync(filename.replace(/\.\w+$/, '.md'), md);
185
+ }
186
+ else {
187
+ console.log(chalk.red('Unknown format. Use: json, md'));
188
+ rl.prompt();
189
+ return;
190
+ }
191
+ console.log(chalk.green('✓'), `Exported to: ${filename}`);
192
+ }
193
+ catch (err) {
194
+ console.log(chalk.red('Failed to export:'), err instanceof Error ? err.message : 'Unknown error');
195
+ }
196
+ console.log();
197
+ rl.prompt();
198
+ break;
199
+ case 'help':
200
+ console.log();
201
+ console.log(chalk.bold('Available Commands'));
202
+ console.log(chalk.dim('─'.repeat(30)));
203
+ console.log('/quit, /exit, /q - Exit chat');
204
+ console.log('/clear - Clear chat history');
205
+ console.log('/history - Show chat history');
206
+ console.log('/export [format] - Export history (json, md)');
207
+ console.log('/help - Show this help');
208
+ console.log();
209
+ rl.prompt();
210
+ break;
211
+ default:
212
+ console.log(chalk.yellow('Unknown command:'), command);
213
+ console.log(chalk.dim('Use /help for available commands'));
214
+ console.log();
215
+ rl.prompt();
216
+ }
217
+ }
218
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Document management commands
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare function createDocsCommand(): Command;
6
+ //# sourceMappingURL=docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,wBAAgB,iBAAiB,IAAI,OAAO,CAgN3C"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Document management commands
3
+ */
4
+ import { Command } from 'commander';
5
+ import { statSync, existsSync } from 'fs';
6
+ import { basename, resolve } from 'path';
7
+ import chalk from 'chalk';
8
+ import { get, post, del, uploadFile, downloadFile, OkraApiError, EXIT_CODES } from '../lib/client.js';
9
+ import { formatOutput, formatFileSize, formatDate, success, error, } from '../lib/output.js';
10
+ import { withSpinner } from '../lib/progress.js';
11
+ import { getDefaultFormat } from '../lib/config.js';
12
+ // Columns for document table display
13
+ const DOC_COLUMNS = [
14
+ { key: 'uuid', header: 'ID', width: 38 },
15
+ { key: 'file_name', header: 'Name', width: 40 },
16
+ { key: 'file_size_fmt', header: 'Size', width: 10 },
17
+ { key: 'upload_date_fmt', header: 'Uploaded', width: 12 },
18
+ { key: 'tables_count', header: 'Tables', width: 8 },
19
+ ];
20
+ export function createDocsCommand() {
21
+ const docs = new Command('docs')
22
+ .alias('documents')
23
+ .description('Manage documents');
24
+ // docs list
25
+ docs
26
+ .command('list')
27
+ .alias('ls')
28
+ .description('List all documents')
29
+ .option('-o, --output <format>', 'Output format (table, json, csv)', getDefaultFormat())
30
+ .option('-l, --limit <n>', 'Limit results', '20')
31
+ .option('-p, --page <n>', 'Page number', '1')
32
+ .action(async (options) => {
33
+ const response = await withSpinner('Fetching documents', () => get('api/documents', {
34
+ limit: options.limit,
35
+ page: options.page,
36
+ }));
37
+ if (response.items.length === 0) {
38
+ console.log(chalk.dim('No documents found'));
39
+ return;
40
+ }
41
+ const formatted = response.items.map(doc => ({
42
+ ...doc,
43
+ file_size_fmt: formatFileSize(doc.file_size),
44
+ upload_date_fmt: formatDate(doc.upload_date),
45
+ tables_count: doc.tables_count ?? 0,
46
+ }));
47
+ console.log(formatOutput(formatted, options.output, DOC_COLUMNS));
48
+ const { pagination } = response;
49
+ if (pagination.totalPages > 1) {
50
+ console.log(chalk.dim(`\nPage ${pagination.page} of ${pagination.totalPages} (${pagination.total} total)`));
51
+ }
52
+ });
53
+ // docs get
54
+ docs
55
+ .command('get <uuid>')
56
+ .description('Get document details')
57
+ .option('-o, --output <format>', 'Output format (table, json)', getDefaultFormat())
58
+ .action(async (uuid, options) => {
59
+ try {
60
+ const doc = await withSpinner('Fetching document', () => get(`api/library/document`, { uuid }));
61
+ if (options.output === 'json') {
62
+ console.log(formatOutput(doc, 'json'));
63
+ }
64
+ else {
65
+ console.log(chalk.bold('Document Details'));
66
+ console.log(chalk.dim('─'.repeat(50)));
67
+ console.log(chalk.bold('UUID:'), doc.uuid);
68
+ console.log(chalk.bold('Name:'), doc.file_name);
69
+ console.log(chalk.bold('Size:'), formatFileSize(doc.file_size));
70
+ console.log(chalk.bold('Type:'), doc.document_type);
71
+ console.log(chalk.bold('Uploaded:'), new Date(doc.upload_date).toLocaleString());
72
+ if (doc.tables_count !== undefined) {
73
+ console.log(chalk.bold('Tables:'), doc.tables_count);
74
+ }
75
+ }
76
+ }
77
+ catch (err) {
78
+ if (err instanceof OkraApiError && err.statusCode === 404) {
79
+ error(`Document not found: ${uuid}`);
80
+ process.exit(EXIT_CODES.NOT_FOUND);
81
+ }
82
+ throw err;
83
+ }
84
+ });
85
+ // docs upload
86
+ docs
87
+ .command('upload <file>')
88
+ .description('Upload a PDF document')
89
+ .option('-n, --name <name>', 'Custom document name')
90
+ .option('-t, --type <type>', 'Document type (refinery, pdf_chat)', 'refinery')
91
+ .option('-o, --output <format>', 'Output format (table, json)', getDefaultFormat())
92
+ .action(async (file, options) => {
93
+ const filePath = resolve(file);
94
+ // Validate file exists
95
+ if (!existsSync(filePath)) {
96
+ error(`File not found: ${filePath}`);
97
+ process.exit(EXIT_CODES.INVALID_ARGS);
98
+ }
99
+ // Validate file is a PDF
100
+ if (!filePath.toLowerCase().endsWith('.pdf')) {
101
+ error('Only PDF files are supported');
102
+ process.exit(EXIT_CODES.INVALID_ARGS);
103
+ }
104
+ const fileName = options.name || basename(filePath);
105
+ const fileSize = statSync(filePath).size;
106
+ // Get signed URL for upload
107
+ const signedUrlResponse = await withSpinner('Preparing upload', () => post('api/chat/upload/signed-url', {
108
+ file_name: fileName,
109
+ file_size: fileSize,
110
+ content_type: 'application/pdf',
111
+ document_type: options.type,
112
+ }));
113
+ // Upload file to GCS
114
+ await withSpinner(`Uploading ${fileName}`, () => uploadFile(signedUrlResponse.upload_url, filePath, 'application/pdf'));
115
+ // Confirm upload
116
+ const doc = await withSpinner('Confirming upload', () => post('api/library/save', {
117
+ uuid: signedUrlResponse.document_uuid,
118
+ file_name: fileName,
119
+ gcs_path: signedUrlResponse.gcs_path,
120
+ file_size: fileSize,
121
+ document_type: options.type,
122
+ }));
123
+ if (options.output === 'json') {
124
+ console.log(formatOutput(doc, 'json'));
125
+ }
126
+ else {
127
+ success(`Document uploaded: ${doc.uuid}`);
128
+ console.log(chalk.dim(`Use 'okra jobs create ${doc.uuid}' to start extraction`));
129
+ }
130
+ });
131
+ // docs download
132
+ docs
133
+ .command('download <uuid>')
134
+ .description('Download original PDF')
135
+ .option('-o, --out <path>', 'Output file path')
136
+ .action(async (uuid, options) => {
137
+ // Get document details
138
+ const doc = await withSpinner('Fetching document info', () => get(`api/library/document`, { uuid }));
139
+ // Get download URL
140
+ const downloadInfo = await withSpinner('Getting download URL', () => get('api/library/file', { uuid }));
141
+ // Determine output path
142
+ const outputPath = options.out || doc.file_name;
143
+ // Download file
144
+ await withSpinner(`Downloading to ${outputPath}`, () => downloadFile(downloadInfo.url, outputPath));
145
+ success(`Downloaded: ${outputPath}`);
146
+ });
147
+ // docs delete
148
+ docs
149
+ .command('delete <uuid>')
150
+ .alias('rm')
151
+ .description('Delete a document')
152
+ .option('-f, --force', 'Skip confirmation')
153
+ .action(async (uuid, options) => {
154
+ if (!options.force) {
155
+ const { prompt } = await import('enquirer');
156
+ const response = await prompt({
157
+ type: 'confirm',
158
+ name: 'confirm',
159
+ message: `Are you sure you want to delete document ${uuid}?`,
160
+ initial: false,
161
+ });
162
+ if (!response.confirm) {
163
+ console.log('Cancelled');
164
+ return;
165
+ }
166
+ }
167
+ try {
168
+ await withSpinner('Deleting document', () => del(`api/library/delete?uuid=${uuid}`));
169
+ success(`Document deleted: ${uuid}`);
170
+ }
171
+ catch (err) {
172
+ if (err instanceof OkraApiError && err.statusCode === 404) {
173
+ error(`Document not found: ${uuid}`);
174
+ process.exit(EXIT_CODES.NOT_FOUND);
175
+ }
176
+ throw err;
177
+ }
178
+ });
179
+ return docs;
180
+ }
181
+ //# sourceMappingURL=docs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Job management commands
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare function createJobsCommand(): Command;
6
+ //# sourceMappingURL=jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../../src/commands/jobs.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0CpC,wBAAgB,iBAAiB,IAAI,OAAO,CAkY3C"}