paean 0.8.13 → 0.8.15

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 (128) hide show
  1. package/dist/agent/service.d.ts +5 -0
  2. package/dist/agent/service.d.ts.map +1 -1
  3. package/dist/agent/service.js +8 -4
  4. package/dist/agent/service.js.map +1 -1
  5. package/dist/agent/types.d.ts +12 -2
  6. package/dist/agent/types.d.ts.map +1 -1
  7. package/dist/agent/utils.d.ts.map +1 -1
  8. package/dist/agent/utils.js +47 -32
  9. package/dist/agent/utils.js.map +1 -1
  10. package/dist/api/auth.d.ts +7 -0
  11. package/dist/api/auth.d.ts.map +1 -1
  12. package/dist/api/auth.js +70 -0
  13. package/dist/api/auth.js.map +1 -1
  14. package/dist/api/client.d.ts.map +1 -1
  15. package/dist/api/client.js +101 -7
  16. package/dist/api/client.js.map +1 -1
  17. package/dist/api/devices.d.ts +35 -0
  18. package/dist/api/devices.d.ts.map +1 -0
  19. package/dist/api/devices.js +77 -0
  20. package/dist/api/devices.js.map +1 -0
  21. package/dist/api/todo.d.ts +21 -0
  22. package/dist/api/todo.d.ts.map +1 -1
  23. package/dist/api/todo.js +18 -0
  24. package/dist/api/todo.js.map +1 -1
  25. package/dist/cli.js +17 -1
  26. package/dist/cli.js.map +1 -1
  27. package/dist/commands/completion.d.ts +7 -0
  28. package/dist/commands/completion.d.ts.map +1 -0
  29. package/dist/commands/completion.js +217 -0
  30. package/dist/commands/completion.js.map +1 -0
  31. package/dist/commands/config.d.ts +7 -0
  32. package/dist/commands/config.d.ts.map +1 -0
  33. package/dist/commands/config.js +107 -0
  34. package/dist/commands/config.js.map +1 -0
  35. package/dist/commands/devices.d.ts +7 -0
  36. package/dist/commands/devices.d.ts.map +1 -0
  37. package/dist/commands/devices.js +86 -0
  38. package/dist/commands/devices.js.map +1 -0
  39. package/dist/commands/history.d.ts +20 -0
  40. package/dist/commands/history.d.ts.map +1 -1
  41. package/dist/commands/history.js +160 -10
  42. package/dist/commands/history.js.map +1 -1
  43. package/dist/commands/login.d.ts.map +1 -1
  44. package/dist/commands/login.js +110 -1
  45. package/dist/commands/login.js.map +1 -1
  46. package/dist/commands/logout.d.ts.map +1 -1
  47. package/dist/commands/logout.js +11 -0
  48. package/dist/commands/logout.js.map +1 -1
  49. package/dist/commands/mcp.d.ts +7 -0
  50. package/dist/commands/mcp.d.ts.map +1 -0
  51. package/dist/commands/mcp.js +179 -0
  52. package/dist/commands/mcp.js.map +1 -0
  53. package/dist/commands/sparklet.d.ts +7 -0
  54. package/dist/commands/sparklet.d.ts.map +1 -0
  55. package/dist/commands/sparklet.js +145 -0
  56. package/dist/commands/sparklet.js.map +1 -0
  57. package/dist/commands/tasks.d.ts.map +1 -1
  58. package/dist/commands/tasks.js +48 -1
  59. package/dist/commands/tasks.js.map +1 -1
  60. package/dist/commands/worker.d.ts.map +1 -1
  61. package/dist/commands/worker.js +83 -27
  62. package/dist/commands/worker.js.map +1 -1
  63. package/dist/mcp/cli-agent-tools.d.ts.map +1 -1
  64. package/dist/mcp/cli-agent-tools.js +4 -2
  65. package/dist/mcp/cli-agent-tools.js.map +1 -1
  66. package/dist/mcp/client.d.ts +5 -0
  67. package/dist/mcp/client.d.ts.map +1 -1
  68. package/dist/mcp/client.js +23 -2
  69. package/dist/mcp/client.js.map +1 -1
  70. package/dist/mcp/system.d.ts.map +1 -1
  71. package/dist/mcp/system.js +291 -3
  72. package/dist/mcp/system.js.map +1 -1
  73. package/dist/mcp/tools.d.ts.map +1 -1
  74. package/dist/mcp/tools.js +287 -4
  75. package/dist/mcp/tools.js.map +1 -1
  76. package/dist/mcp/worker-tools.js +1 -1
  77. package/dist/mcp/worker-tools.js.map +1 -1
  78. package/dist/ui/App.d.ts.map +1 -1
  79. package/dist/ui/App.js +4 -4
  80. package/dist/ui/App.js.map +1 -1
  81. package/dist/ui/components/InputArea.d.ts +3 -1
  82. package/dist/ui/components/InputArea.d.ts.map +1 -1
  83. package/dist/ui/components/InputArea.js +164 -26
  84. package/dist/ui/components/InputArea.js.map +1 -1
  85. package/dist/ui/components/ToolCallIndicator.d.ts +23 -0
  86. package/dist/ui/components/ToolCallIndicator.d.ts.map +1 -1
  87. package/dist/ui/components/ToolCallIndicator.js +31 -4
  88. package/dist/ui/components/ToolCallIndicator.js.map +1 -1
  89. package/dist/ui/components/index.d.ts +2 -1
  90. package/dist/ui/components/index.d.ts.map +1 -1
  91. package/dist/ui/components/index.js +1 -1
  92. package/dist/ui/components/index.js.map +1 -1
  93. package/dist/ui/hooks/useAgentStream.d.ts +2 -0
  94. package/dist/ui/hooks/useAgentStream.d.ts.map +1 -1
  95. package/dist/ui/hooks/useAgentStream.js +41 -8
  96. package/dist/ui/hooks/useAgentStream.js.map +1 -1
  97. package/dist/ui/hooks/useCommands.d.ts +4 -5
  98. package/dist/ui/hooks/useCommands.d.ts.map +1 -1
  99. package/dist/ui/hooks/useCommands.js +76 -11
  100. package/dist/ui/hooks/useCommands.js.map +1 -1
  101. package/dist/utils/config.d.ts +18 -0
  102. package/dist/utils/config.d.ts.map +1 -1
  103. package/dist/utils/config.js +39 -3
  104. package/dist/utils/config.js.map +1 -1
  105. package/dist/utils/output.d.ts +25 -8
  106. package/dist/utils/output.d.ts.map +1 -1
  107. package/dist/utils/output.js +46 -9
  108. package/dist/utils/output.js.map +1 -1
  109. package/dist/worker/executors/articulate.d.ts +23 -0
  110. package/dist/worker/executors/articulate.d.ts.map +1 -0
  111. package/dist/worker/executors/articulate.js +151 -0
  112. package/dist/worker/executors/articulate.js.map +1 -0
  113. package/dist/worker/index.d.ts +1 -0
  114. package/dist/worker/index.d.ts.map +1 -1
  115. package/dist/worker/index.js +1 -0
  116. package/dist/worker/index.js.map +1 -1
  117. package/dist/worker/service.d.ts +1 -0
  118. package/dist/worker/service.d.ts.map +1 -1
  119. package/dist/worker/service.js +8 -0
  120. package/dist/worker/service.js.map +1 -1
  121. package/dist/worker/supervisor.d.ts.map +1 -1
  122. package/dist/worker/supervisor.js +59 -21
  123. package/dist/worker/supervisor.js.map +1 -1
  124. package/dist/worker/types.d.ts +3 -1
  125. package/dist/worker/types.d.ts.map +1 -1
  126. package/dist/worker/types.js +20 -2
  127. package/dist/worker/types.js.map +1 -1
  128. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Devices Command
3
+ * Manage device sessions
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const devicesCommand: Command;
7
+ //# sourceMappingURL=devices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.d.ts","sourceRoot":"","sources":["../../src/commands/devices.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,cAAc,SAwCrB,CAAC"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Devices Command
3
+ * Manage device sessions
4
+ */
5
+ import { Command } from 'commander';
6
+ import chalk from 'chalk';
7
+ import { listDevices, revokeDevice, revokeAllOtherDevices } from '../api/devices.js';
8
+ import { checkAuthentication } from '../agent/utils.js';
9
+ export const devicesCommand = new Command('devices')
10
+ .description('List and manage active device sessions')
11
+ .option('--json', 'Output as JSON')
12
+ .action(async (options) => {
13
+ checkAuthentication();
14
+ try {
15
+ const devices = await listDevices();
16
+ if (options.json) {
17
+ console.log(JSON.stringify(devices, null, 2));
18
+ return;
19
+ }
20
+ if (devices.length === 0) {
21
+ console.log(chalk.dim('No active device sessions.'));
22
+ return;
23
+ }
24
+ console.log(chalk.bold.blue('\nActive Device Sessions\n'));
25
+ for (const device of devices) {
26
+ const current = device.isCurrentDevice ? chalk.green(' (current)') : '';
27
+ const name = device.deviceName || device.deviceType || 'Unknown';
28
+ const type = chalk.dim(`[${device.deviceType}]`);
29
+ const lastActive = device.lastActiveAt
30
+ ? chalk.dim(new Date(device.lastActiveAt).toLocaleString())
31
+ : chalk.dim('unknown');
32
+ console.log(` ${chalk.cyan(String(device.id))} ${name} ${type}${current} ${lastActive}`);
33
+ }
34
+ console.log('');
35
+ console.log(chalk.dim('Revoke: paean devices revoke <id> | Revoke all: paean devices revoke-all'));
36
+ console.log('');
37
+ }
38
+ catch (error) {
39
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
40
+ console.error(chalk.red(`Failed to list devices: ${errorMessage}`));
41
+ process.exit(1);
42
+ }
43
+ });
44
+ // Subcommand: devices revoke
45
+ devicesCommand
46
+ .command('revoke <id>')
47
+ .description('Revoke a device session')
48
+ .action(async (id) => {
49
+ checkAuthentication();
50
+ try {
51
+ const success = await revokeDevice(id);
52
+ if (success) {
53
+ console.log(chalk.green('Device session revoked.'));
54
+ }
55
+ else {
56
+ console.log(chalk.red('Failed to revoke device session.'));
57
+ }
58
+ }
59
+ catch (error) {
60
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
61
+ console.error(chalk.red(`Failed to revoke device: ${errorMessage}`));
62
+ process.exit(1);
63
+ }
64
+ });
65
+ // Subcommand: devices revoke-all
66
+ devicesCommand
67
+ .command('revoke-all')
68
+ .description('Revoke all other device sessions')
69
+ .action(async () => {
70
+ checkAuthentication();
71
+ try {
72
+ const success = await revokeAllOtherDevices();
73
+ if (success) {
74
+ console.log(chalk.green('All other device sessions revoked.'));
75
+ }
76
+ else {
77
+ console.log(chalk.red('Failed to revoke device sessions.'));
78
+ }
79
+ }
80
+ catch (error) {
81
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
82
+ console.error(chalk.red(`Failed to revoke devices: ${errorMessage}`));
83
+ process.exit(1);
84
+ }
85
+ });
86
+ //# sourceMappingURL=devices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/commands/devices.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,26 @@ import { Command } from 'commander';
7
7
  * List conversations command
8
8
  */
9
9
  export declare const historyCommand: Command;
10
+ /**
11
+ * Show a specific conversation with its messages
12
+ */
13
+ export declare const showCommand: Command;
14
+ /**
15
+ * Star/unstar a conversation
16
+ */
17
+ export declare const starCommand: Command;
18
+ /**
19
+ * Rename a conversation
20
+ */
21
+ export declare const renameCommand: Command;
22
+ /**
23
+ * Delete a conversation
24
+ */
25
+ export declare const deleteCommand: Command;
26
+ /**
27
+ * Archive a conversation
28
+ */
29
+ export declare const archiveCommand: Command;
10
30
  /**
11
31
  * Resume conversation command
12
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0EpC;;GAEG;AACH,eAAO,MAAM,cAAc,SAoDrB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,aAAa,SAmCpB,CAAC"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmHpC;;GAEG;AACH,eAAO,MAAM,cAAc,SAoDrB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,WAAW,SA4ClB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,WAAW,SAoBlB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,aAAa,SAepB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,aAAa,SAcpB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,cAAc,SAcrB,CAAC;AAEP;;GAEG;AACH,eAAO,MAAM,aAAa,SAiCpB,CAAC"}
@@ -49,10 +49,39 @@ async function fetchHistory(options) {
49
49
  params.set('includeArchived', 'true');
50
50
  if (options.starredOnly)
51
51
  params.set('starred', 'true');
52
- params.set('clientTypes', 'cli'); // Filter to CLI conversations only
52
+ params.set('clientTypes', 'cli');
53
53
  const response = await client.get(`/agent/history?${params.toString()}`);
54
54
  return response.data;
55
55
  }
56
+ /**
57
+ * Fetch a single conversation with messages
58
+ */
59
+ async function fetchConversation(hashKey) {
60
+ const client = getApiClient();
61
+ const response = await client.get(`/agent/history/${hashKey}`);
62
+ return response.data.conversation || response.data;
63
+ }
64
+ /**
65
+ * Update a conversation (star, rename)
66
+ */
67
+ async function updateConversation(hashKey, updates) {
68
+ const client = getApiClient();
69
+ await client.patch(`/agent/history/${hashKey}`, updates);
70
+ }
71
+ /**
72
+ * Delete a conversation
73
+ */
74
+ async function deleteConversation(hashKey) {
75
+ const client = getApiClient();
76
+ await client.delete(`/agent/history/${hashKey}`);
77
+ }
78
+ /**
79
+ * Archive a conversation
80
+ */
81
+ async function archiveConversation(hashKey) {
82
+ const client = getApiClient();
83
+ await client.post(`/agent/history/${hashKey}/archive`);
84
+ }
56
85
  /**
57
86
  * List conversations command
58
87
  */
@@ -76,15 +105,15 @@ export const historyCommand = new Command('ls')
76
105
  return;
77
106
  }
78
107
  if (result.conversations.length === 0) {
79
- console.log(chalk.yellow('📭 No conversation history found.'));
108
+ console.log(chalk.yellow('No conversation history found.'));
80
109
  console.log(chalk.dim('Start a new conversation with: paean'));
81
110
  return;
82
111
  }
83
- console.log(chalk.bold.blue('\n📋 Recent Conversations\n'));
112
+ console.log(chalk.bold.blue('\nRecent Conversations\n'));
84
113
  result.conversations.forEach((conv, index) => {
85
114
  const num = chalk.dim(`${index + 1}.`);
86
115
  const id = chalk.cyan(conv.hashKey.substring(0, 8));
87
- const star = conv.isStarred ? chalk.yellow(' ') : '';
116
+ const star = conv.isStarred ? chalk.yellow('* ') : '';
88
117
  const archived = conv.isArchived ? chalk.dim('[archived] ') : '';
89
118
  const title = chalk.white(truncate(conv.title || 'Untitled', 40));
90
119
  const msgs = chalk.dim(`${conv.messageCount} msgs`);
@@ -93,12 +122,135 @@ export const historyCommand = new Command('ls')
93
122
  });
94
123
  console.log('');
95
124
  console.log(chalk.dim(`Showing ${result.conversations.length} of ${result.total} conversations`));
96
- console.log(chalk.dim(`💡 Resume: paean resume <id> or paean --resume=<id>`));
125
+ console.log(chalk.dim('Resume: paean resume <id> | Show: paean show <id> | Star: paean star <id>'));
97
126
  console.log('');
98
127
  }
99
128
  catch (error) {
100
129
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
101
- console.error(chalk.red(`❌ Failed to fetch history: ${errorMessage}`));
130
+ console.error(chalk.red(`Failed to fetch history: ${errorMessage}`));
131
+ process.exit(1);
132
+ }
133
+ });
134
+ /**
135
+ * Show a specific conversation with its messages
136
+ */
137
+ export const showCommand = new Command('show')
138
+ .description('Show a conversation with its messages')
139
+ .argument('<id>', 'Conversation ID (full or partial hash)')
140
+ .option('--json', 'Output as JSON')
141
+ .action(async (id, options) => {
142
+ checkAuthentication();
143
+ try {
144
+ const conv = await fetchConversation(id);
145
+ if (options.json) {
146
+ console.log(JSON.stringify(conv, null, 2));
147
+ return;
148
+ }
149
+ const star = conv.isStarred ? chalk.yellow(' *') : '';
150
+ const archived = conv.isArchived ? chalk.dim(' [archived]') : '';
151
+ console.log(chalk.bold.blue(`\n${conv.title || 'Untitled'}${star}${archived}`));
152
+ console.log(chalk.dim(`ID: ${conv.hashKey} | ${conv.messageCount} messages | ${formatRelativeTime(conv.updatedAt)}`));
153
+ console.log(chalk.dim('─'.repeat(60)));
154
+ if (conv.messages && conv.messages.length > 0) {
155
+ for (const msg of conv.messages) {
156
+ const roleLabel = msg.role === 'user'
157
+ ? chalk.cyan('You')
158
+ : msg.role === 'assistant'
159
+ ? chalk.magenta('Paean')
160
+ : chalk.dim('System');
161
+ const time = chalk.dim(formatRelativeTime(msg.createdAt));
162
+ console.log(`\n${roleLabel} ${time}`);
163
+ console.log(msg.content);
164
+ }
165
+ }
166
+ else {
167
+ console.log(chalk.dim('\nNo messages to display.'));
168
+ }
169
+ console.log('');
170
+ console.log(chalk.dim(`Resume: paean resume ${conv.hashKey.substring(0, 8)}`));
171
+ console.log('');
172
+ }
173
+ catch (error) {
174
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
175
+ console.error(chalk.red(`Failed to show conversation: ${errorMessage}`));
176
+ process.exit(1);
177
+ }
178
+ });
179
+ /**
180
+ * Star/unstar a conversation
181
+ */
182
+ export const starCommand = new Command('star')
183
+ .description('Toggle star on a conversation')
184
+ .argument('<id>', 'Conversation ID')
185
+ .action(async (id) => {
186
+ checkAuthentication();
187
+ try {
188
+ // Fetch current state to toggle
189
+ const conv = await fetchConversation(id);
190
+ const newStarred = !conv.isStarred;
191
+ await updateConversation(id, { isStarred: newStarred });
192
+ console.log(newStarred
193
+ ? chalk.yellow(`Starred: ${conv.title || 'Untitled'}`)
194
+ : chalk.dim(`Unstarred: ${conv.title || 'Untitled'}`));
195
+ }
196
+ catch (error) {
197
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
198
+ console.error(chalk.red(`Failed to update conversation: ${errorMessage}`));
199
+ process.exit(1);
200
+ }
201
+ });
202
+ /**
203
+ * Rename a conversation
204
+ */
205
+ export const renameCommand = new Command('rename')
206
+ .description('Rename a conversation')
207
+ .argument('<id>', 'Conversation ID')
208
+ .argument('<title>', 'New title')
209
+ .action(async (id, title) => {
210
+ checkAuthentication();
211
+ try {
212
+ await updateConversation(id, { title });
213
+ console.log(chalk.green(`Renamed to: ${title}`));
214
+ }
215
+ catch (error) {
216
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
217
+ console.error(chalk.red(`Failed to rename conversation: ${errorMessage}`));
218
+ process.exit(1);
219
+ }
220
+ });
221
+ /**
222
+ * Delete a conversation
223
+ */
224
+ export const deleteCommand = new Command('delete')
225
+ .description('Delete a conversation')
226
+ .argument('<id>', 'Conversation ID')
227
+ .action(async (id) => {
228
+ checkAuthentication();
229
+ try {
230
+ await deleteConversation(id);
231
+ console.log(chalk.green('Conversation deleted.'));
232
+ }
233
+ catch (error) {
234
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
235
+ console.error(chalk.red(`Failed to delete conversation: ${errorMessage}`));
236
+ process.exit(1);
237
+ }
238
+ });
239
+ /**
240
+ * Archive a conversation
241
+ */
242
+ export const archiveCommand = new Command('archive')
243
+ .description('Archive a conversation')
244
+ .argument('<id>', 'Conversation ID')
245
+ .action(async (id) => {
246
+ checkAuthentication();
247
+ try {
248
+ await archiveConversation(id);
249
+ console.log(chalk.green('Conversation archived.'));
250
+ }
251
+ catch (error) {
252
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
253
+ console.error(chalk.red(`Failed to archive conversation: ${errorMessage}`));
102
254
  process.exit(1);
103
255
  }
104
256
  });
@@ -112,18 +264,16 @@ export const resumeCommand = new Command('resume')
112
264
  checkAuthentication();
113
265
  try {
114
266
  let conversationId = id;
115
- // If no ID provided, get the latest conversation
116
267
  if (!conversationId) {
117
268
  const result = await fetchHistory({ limit: 1 });
118
269
  if (result.conversations.length === 0) {
119
- console.log(chalk.yellow('📭 No conversation history found.'));
270
+ console.log(chalk.yellow('No conversation history found.'));
120
271
  console.log(chalk.dim('Start a new conversation with: paean'));
121
272
  return;
122
273
  }
123
274
  conversationId = result.conversations[0].hashKey;
124
275
  console.log(chalk.dim(`Resuming latest: "${result.conversations[0].title || 'Untitled'}"`));
125
276
  }
126
- // Import and run agent mode with resume option
127
277
  const { runAgentMode } = await import('./agent.js');
128
278
  await runAgentMode({
129
279
  mcp: true,
@@ -132,7 +282,7 @@ export const resumeCommand = new Command('resume')
132
282
  }
133
283
  catch (error) {
134
284
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
135
- console.error(chalk.red(`❌ Failed to resume: ${errorMessage}`));
285
+ console.error(chalk.red(`Failed to resume: ${errorMessage}`));
136
286
  process.exit(1);
137
287
  }
138
288
  });
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/commands/history.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,YAAY,SA4ErB,CAAC"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,YAAY,SA0FrB,CAAC"}
@@ -3,13 +3,15 @@
3
3
  * Authenticate with Paean AI using QR code or browser OAuth
4
4
  */
5
5
  import { Command } from 'commander';
6
- import { qrLogin, browserLogin, getCurrentUser, validateToken } from '../api/auth.js';
6
+ import { qrLogin, browserLogin, emailLogin, getCurrentUser, validateToken } from '../api/auth.js';
7
+ import { registerDevice } from '../api/devices.js';
7
8
  import { isAuthenticated, getConfigValue } from '../utils/config.js';
8
9
  import * as output from '../utils/output.js';
9
10
  export const loginCommand = new Command('login')
10
11
  .description('Authenticate with Paean AI')
11
12
  .option('--qr', 'Use QR code login (scan with mobile app)')
12
13
  .option('--browser', 'Use browser-based login')
14
+ .option('--email', 'Use email/password login')
13
15
  .option('--check', 'Check current authentication status')
14
16
  .action(async (options) => {
15
17
  // Check current status
@@ -24,6 +26,11 @@ export const loginCommand = new Command('login')
24
26
  output.dim('Use "paean logout" to sign out, or "paean login --check" to verify.');
25
27
  return;
26
28
  }
29
+ // Handle email login
30
+ if (options.email) {
31
+ await handleEmailLogin();
32
+ return;
33
+ }
27
34
  // Determine login method
28
35
  const useQr = options.qr;
29
36
  const useBrowser = options.browser;
@@ -48,6 +55,13 @@ export const loginCommand = new Command('login')
48
55
  if (result.success) {
49
56
  output.newline();
50
57
  output.success('Login successful!');
58
+ // Register device session
59
+ try {
60
+ await registerDevice();
61
+ }
62
+ catch {
63
+ // Best effort device registration
64
+ }
51
65
  // Show user info
52
66
  const user = await getCurrentUser();
53
67
  if (user) {
@@ -74,6 +88,101 @@ export const loginCommand = new Command('login')
74
88
  process.exit(1);
75
89
  }
76
90
  });
91
+ async function handleEmailLogin() {
92
+ const readline = await import('readline');
93
+ output.header('Paean AI Login (Email)');
94
+ output.newline();
95
+ const rl = readline.createInterface({
96
+ input: process.stdin,
97
+ output: process.stdout,
98
+ });
99
+ const email = await new Promise((resolve) => {
100
+ rl.question(' Email: ', resolve);
101
+ });
102
+ if (!email.trim()) {
103
+ rl.close();
104
+ output.error('Email is required.');
105
+ process.exit(1);
106
+ }
107
+ // Read password without echoing (manual raw mode)
108
+ const password = await new Promise((resolve) => {
109
+ process.stdout.write(' Password: ');
110
+ if (process.stdin.isTTY) {
111
+ let pw = '';
112
+ process.stdin.setRawMode(true);
113
+ process.stdin.resume();
114
+ process.stdin.setEncoding('utf-8');
115
+ const onData = (ch) => {
116
+ if (ch === '\n' || ch === '\r' || ch === '\u0004') {
117
+ process.stdin.setRawMode(false);
118
+ process.stdin.pause();
119
+ process.stdin.removeListener('data', onData);
120
+ process.stdout.write('\n');
121
+ resolve(pw);
122
+ }
123
+ else if (ch === '\u0003') {
124
+ process.exit(0);
125
+ }
126
+ else if (ch === '\u007f' || ch === '\b') {
127
+ if (pw.length > 0) {
128
+ pw = pw.slice(0, -1);
129
+ process.stdout.write('\b \b');
130
+ }
131
+ }
132
+ else if (ch.charCodeAt(0) >= 32) {
133
+ pw += ch;
134
+ process.stdout.write('*');
135
+ }
136
+ };
137
+ process.stdin.on('data', onData);
138
+ }
139
+ else {
140
+ rl.question('', resolve);
141
+ }
142
+ });
143
+ rl.close();
144
+ if (!password.trim()) {
145
+ output.error('Password is required.');
146
+ process.exit(1);
147
+ }
148
+ const spin = output.spinner('Logging in...').start();
149
+ try {
150
+ const result = await emailLogin(email.trim(), password);
151
+ spin.stop();
152
+ if (result.success) {
153
+ output.newline();
154
+ output.success('Login successful!');
155
+ // Register device
156
+ try {
157
+ await registerDevice();
158
+ }
159
+ catch {
160
+ // Best effort
161
+ }
162
+ const user = await getCurrentUser();
163
+ if (user) {
164
+ output.tableRow('Email', user.email);
165
+ if (user.name) {
166
+ output.tableRow('Name', user.name);
167
+ }
168
+ }
169
+ output.newline();
170
+ output.dim('You can now use "paean tasks" to view your tasks.');
171
+ process.exit(0);
172
+ }
173
+ else {
174
+ output.newline();
175
+ output.error(result.error || 'Login failed');
176
+ process.exit(1);
177
+ }
178
+ }
179
+ catch (error) {
180
+ spin.stop();
181
+ const message = error instanceof Error ? error.message : 'Unknown error';
182
+ output.error(`Login failed: ${message}`);
183
+ process.exit(1);
184
+ }
185
+ }
77
186
  async function checkAuthStatus() {
78
187
  output.header('Authentication Status');
79
188
  if (!isAuthenticated()) {
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SAgCtB,CAAC"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,aAAa,SA0CtB,CAAC"}
@@ -5,11 +5,13 @@
5
5
  import { Command } from 'commander';
6
6
  import { createInterface } from 'readline';
7
7
  import { logout } from '../api/auth.js';
8
+ import { revokeAllOtherDevices } from '../api/devices.js';
8
9
  import { isAuthenticated, getConfigValue } from '../utils/config.js';
9
10
  import * as output from '../utils/output.js';
10
11
  export const logoutCommand = new Command('logout')
11
12
  .description('Sign out of Paean AI')
12
13
  .option('--force', 'Force logout without confirmation')
14
+ .option('--all', 'Also revoke all other device sessions')
13
15
  .action(async (options) => {
14
16
  if (!isAuthenticated()) {
15
17
  output.info('Not currently logged in.');
@@ -31,6 +33,15 @@ export const logoutCommand = new Command('logout')
31
33
  return;
32
34
  }
33
35
  }
36
+ if (options.all) {
37
+ try {
38
+ await revokeAllOtherDevices();
39
+ output.dim('All other device sessions have been revoked.');
40
+ }
41
+ catch {
42
+ // Best effort
43
+ }
44
+ }
34
45
  logout();
35
46
  output.success('Successfully logged out.');
36
47
  output.dim('Use "paean login" to sign in again.');
@@ -1 +1 @@
1
- {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,SAAS,EAAE,mCAAmC,CAAC;KACtD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,4BAA4B,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7E,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,2BAA2B;QAC3B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC;IACT,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,SAAS,EAAE,mCAAmC,CAAC;KACtD,MAAM,CAAC,OAAO,EAAE,uCAAuC,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,4BAA4B,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC7E,MAAM,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,2BAA2B;QAC3B,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;YACnD,EAAE,CAAC,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,EAAE,CAAC,KAAK,EAAE,CAAC;QAEX,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,qBAAqB,EAAE,CAAC;YAC9B,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;QAC7D,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC;IACT,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * MCP Command
3
+ * Manage local and cloud MCP server configurations
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const mcpCommand: Command;
7
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoCpC,eAAO,MAAM,UAAU,SAKjB,CAAC"}