myshell-tools 2.2.0 → 2.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/CHANGELOG.md
CHANGED
|
@@ -11,6 +11,12 @@ and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.
|
|
|
11
11
|
- Cross-OS CI execution (requires a public remote).
|
|
12
12
|
- First npm publish.
|
|
13
13
|
|
|
14
|
+
## [2.3.0]
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- **Import native conversations**: `[i] Import` reads a Claude or Codex transcript (read-only) and seeds a NEW persistent myshell-tools conversation with its history — resume/continue it under orchestration. Native conversations stay native; titles use the first real prompt (system wrappers skipped).
|
|
18
|
+
- **Raw provider passthrough**: `[r]` opens the native `claude`/`codex` CLI directly (a native-owned session, not orchestrated).
|
|
19
|
+
|
|
14
20
|
## [2.2.0]
|
|
15
21
|
|
|
16
22
|
### Added
|
package/dist/interface/menu.js
CHANGED
|
@@ -16,11 +16,13 @@
|
|
|
16
16
|
* - All rendering goes through ui/tui.ts primitives.
|
|
17
17
|
*/
|
|
18
18
|
import readline from 'node:readline';
|
|
19
|
+
import { execa } from 'execa';
|
|
19
20
|
import { saveConfig } from '../infra/config.js';
|
|
20
21
|
import { readLedger } from '../infra/ledger.js';
|
|
21
22
|
import { summarizeSpend, formatUsd } from '../infra/insights.js';
|
|
22
23
|
import { detectEnvironment, getInstallCommand } from '../providers/detect.js';
|
|
23
24
|
import { installProvider, installCommandFor } from '../providers/install.js';
|
|
25
|
+
import { listNativeSessions, importNativeSession } from '../providers/native-sessions.js';
|
|
24
26
|
import { DEFAULT_POLICY, POLICY_PRESETS } from '../core/policy.js';
|
|
25
27
|
import { runTask } from './run.js';
|
|
26
28
|
import { runLogin } from '../commands/login.js';
|
|
@@ -409,6 +411,100 @@ async function runManage(ctx, out, readLine) {
|
|
|
409
411
|
// else: back
|
|
410
412
|
}
|
|
411
413
|
// ---------------------------------------------------------------------------
|
|
414
|
+
// Import a native conversation
|
|
415
|
+
// ---------------------------------------------------------------------------
|
|
416
|
+
/**
|
|
417
|
+
* Ask the user which provider to import from, list its native sessions, let the
|
|
418
|
+
* user pick one, then import it into a new myshell-tools conversation and enter
|
|
419
|
+
* the chat loop for that conversation.
|
|
420
|
+
*
|
|
421
|
+
* Follows the injected `readLine` seam so it is fully testable without TTY.
|
|
422
|
+
* Never modifies the native CLI's files.
|
|
423
|
+
*/
|
|
424
|
+
async function runImportNative(ctx, mutableCtx, out, readLine) {
|
|
425
|
+
out.write('\nImport from:\n [1] Claude\n [2] Codex\n\n> ');
|
|
426
|
+
const choice = await readLine();
|
|
427
|
+
if (choice === null)
|
|
428
|
+
return;
|
|
429
|
+
let provider;
|
|
430
|
+
if (choice === '1') {
|
|
431
|
+
provider = 'claude';
|
|
432
|
+
}
|
|
433
|
+
else if (choice === '2') {
|
|
434
|
+
provider = 'codex';
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
out.write('Cancelled.\n');
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
const sessions = await listNativeSessions(provider);
|
|
441
|
+
if (sessions.length === 0) {
|
|
442
|
+
out.write(`No ${provider} conversations found.\n`);
|
|
443
|
+
return;
|
|
444
|
+
}
|
|
445
|
+
// Render a numbered picker
|
|
446
|
+
const nowMs = ctx.clock.now();
|
|
447
|
+
out.write('\n' + separator(`${provider} conversations`) + '\n');
|
|
448
|
+
for (let idx = 0; idx < sessions.length; idx++) {
|
|
449
|
+
const s = sessions[idx];
|
|
450
|
+
if (s === undefined)
|
|
451
|
+
continue;
|
|
452
|
+
const thenMs = new Date(s.updatedAt).getTime();
|
|
453
|
+
const rel = relativeTime(thenMs, nowMs);
|
|
454
|
+
const titleDisplay = s.title.length > 0 ? s.title : '(untitled)';
|
|
455
|
+
out.write(` [${idx + 1}] ${rel} ${titleDisplay} (${s.messageCount} msgs)\n`);
|
|
456
|
+
}
|
|
457
|
+
out.write('\nPick a conversation number (or Enter to cancel): ');
|
|
458
|
+
const pick = await readLine();
|
|
459
|
+
if (pick === null || pick.length === 0)
|
|
460
|
+
return;
|
|
461
|
+
const num = parseInt(pick, 10);
|
|
462
|
+
if (Number.isNaN(num) || num < 1 || num > sessions.length) {
|
|
463
|
+
out.write('Invalid selection.\n');
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
const session = sessions[num - 1];
|
|
467
|
+
if (session === undefined)
|
|
468
|
+
return;
|
|
469
|
+
const { id, imported } = await importNativeSession(session, ctx.store);
|
|
470
|
+
const convTitle = session.title.length > 0 ? session.title : '(untitled)';
|
|
471
|
+
out.write(`Imported ${imported} messages into a new conversation: "${convTitle}"\n`);
|
|
472
|
+
// Enter the chat loop for the newly imported conversation
|
|
473
|
+
await runChatLoop(ctx, mutableCtx, id, out, readLine);
|
|
474
|
+
}
|
|
475
|
+
// ---------------------------------------------------------------------------
|
|
476
|
+
// Raw provider passthrough
|
|
477
|
+
// ---------------------------------------------------------------------------
|
|
478
|
+
/**
|
|
479
|
+
* Launch the native `claude` or `codex` interactive CLI directly (stdio:inherit),
|
|
480
|
+
* so the user gets a raw provider session. The session is owned by the native CLI
|
|
481
|
+
* (not by myshell-tools); we simply hand over the terminal and wait.
|
|
482
|
+
*
|
|
483
|
+
* On exit (any exit code), control returns to the myshell-tools menu.
|
|
484
|
+
*/
|
|
485
|
+
async function runRawProviderSession(out, readLine) {
|
|
486
|
+
out.write('\nOpen raw session with:\n [1] Claude\n [2] Codex\n\n> ');
|
|
487
|
+
const choice = await readLine();
|
|
488
|
+
if (choice === null)
|
|
489
|
+
return;
|
|
490
|
+
let bin;
|
|
491
|
+
if (choice === '1') {
|
|
492
|
+
bin = 'claude';
|
|
493
|
+
}
|
|
494
|
+
else if (choice === '2') {
|
|
495
|
+
bin = 'codex';
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
out.write('Cancelled.\n');
|
|
499
|
+
return;
|
|
500
|
+
}
|
|
501
|
+
out.write(`\nLaunching ${bin} — press Ctrl+C or type /exit inside ${bin} to return.\n`);
|
|
502
|
+
// stdio:'inherit' hands the terminal to the native CLI so its interactive
|
|
503
|
+
// session runs in place. reject:false so we return to menu on any exit code.
|
|
504
|
+
await execa(bin, [], { stdio: 'inherit', reject: false });
|
|
505
|
+
out.write(`\nReturned from ${bin}.\n`);
|
|
506
|
+
}
|
|
507
|
+
// ---------------------------------------------------------------------------
|
|
412
508
|
// Chat loop
|
|
413
509
|
// ---------------------------------------------------------------------------
|
|
414
510
|
async function runChatLoop(ctx, mutableCtx, convId, out, readLine) {
|
|
@@ -506,6 +602,8 @@ async function renderMainScreen(ctx, mutableCtx, metas, out) {
|
|
|
506
602
|
{ key: 'n', label: 'New conversation', section: 'Conversations' },
|
|
507
603
|
{ key: '1-9', label: 'Resume numbered conversation', section: 'Conversations' },
|
|
508
604
|
{ key: 'e', label: 'Manage conversations', section: 'Conversations' },
|
|
605
|
+
{ key: 'i', label: 'Import a conversation', section: 'Conversations' },
|
|
606
|
+
{ key: 'r', label: 'Open a raw provider session', section: 'Conversations' },
|
|
509
607
|
{ key: 'j', label: 'Login Claude', section: 'Auth' },
|
|
510
608
|
{ key: 'k', label: 'Login Codex', section: 'Auth' },
|
|
511
609
|
{ key: 's', label: 'Settings', section: 'Options' },
|
|
@@ -621,6 +719,16 @@ export async function startMenu(ctx, out) {
|
|
|
621
719
|
await runManage(ctx, out, readLine);
|
|
622
720
|
continue;
|
|
623
721
|
}
|
|
722
|
+
// ---- [i] Import a native conversation -----------------------------------
|
|
723
|
+
if (key === 'i') {
|
|
724
|
+
await runImportNative(ctx, mutableCtx, out, readLine);
|
|
725
|
+
continue;
|
|
726
|
+
}
|
|
727
|
+
// ---- [r] Open a raw provider session ------------------------------------
|
|
728
|
+
if (key === 'r') {
|
|
729
|
+
await runRawProviderSession(out, readLine);
|
|
730
|
+
continue;
|
|
731
|
+
}
|
|
624
732
|
// ---- [j] Login Claude ---------------------------------------------------
|
|
625
733
|
if (key === 'j') {
|
|
626
734
|
await runLogin(out, 'claude');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/interface/menu.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/interface/menu.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/providers/native-sessions.ts — Read-only access to native Claude/Codex transcripts.
|
|
3
|
+
*
|
|
4
|
+
* Supports two operations:
|
|
5
|
+
* 1. `listNativeSessions` — scan the native CLI's transcript directory and
|
|
6
|
+
* return lightweight metadata (newest first, bounded by `limit`).
|
|
7
|
+
* 2. `importNativeSession` — parse a native session and seed a NEW myshell-tools
|
|
8
|
+
* conversation from its message history. The native file is NEVER modified.
|
|
9
|
+
*
|
|
10
|
+
* Pure parsers (`parseClaudeSession`, `parseCodexSession`) contain zero I/O — they
|
|
11
|
+
* operate on raw file content strings and are hermetic-testable.
|
|
12
|
+
*
|
|
13
|
+
* On-disk formats (defensive — never throw on bad input):
|
|
14
|
+
*
|
|
15
|
+
* Claude: `~/.claude/projects/<slug>/<session-uuid>.jsonl`
|
|
16
|
+
* Each line has a `type`. Conversation turns are `type:"user"` or `type:"assistant"`,
|
|
17
|
+
* with `message.role` and `message.content` (string or text-block array).
|
|
18
|
+
* Meta line types to skip: custom-title, agent-name, agent-setting, permission-mode,
|
|
19
|
+
* file-history-snapshot, summary, system, and anything else.
|
|
20
|
+
*
|
|
21
|
+
* Codex: `~/.codex/archived_sessions/rollout-<ts>-<uuid>.jsonl`
|
|
22
|
+
* A `type:"session_meta"` line carries `{ id, timestamp, cwd, ... }`.
|
|
23
|
+
* Conversation turns are `type:"response_item"` with `payload.type:"message"`,
|
|
24
|
+
* `payload.role` ('user'|'assistant'|'developer'), `payload.content` array of
|
|
25
|
+
* `{ type:"input_text"|"output_text", text:"..." }`.
|
|
26
|
+
* Skip role 'developer'/'system'.
|
|
27
|
+
*/
|
|
28
|
+
import type { SessionEntry } from '../core/types.js';
|
|
29
|
+
import type { ConversationStore } from '../infra/conversation-store.js';
|
|
30
|
+
import type { ProviderId } from './port.js';
|
|
31
|
+
export interface NativeSession {
|
|
32
|
+
readonly provider: ProviderId;
|
|
33
|
+
readonly id: string;
|
|
34
|
+
readonly file: string;
|
|
35
|
+
readonly updatedAt: string;
|
|
36
|
+
readonly title: string;
|
|
37
|
+
readonly messageCount: number;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Parse a raw Claude JSONL session file content into ordered SessionEntry[].
|
|
41
|
+
*
|
|
42
|
+
* Pure, hermetic, never throws. Returns [] on any unrecoverable input.
|
|
43
|
+
*/
|
|
44
|
+
export declare function parseClaudeSession(content: string): SessionEntry[];
|
|
45
|
+
/**
|
|
46
|
+
* Parse a raw Codex JSONL session file content into ordered SessionEntry[].
|
|
47
|
+
*
|
|
48
|
+
* Pure, hermetic, never throws. Returns [] on any unrecoverable input.
|
|
49
|
+
*/
|
|
50
|
+
export declare function parseCodexSession(content: string): SessionEntry[];
|
|
51
|
+
/**
|
|
52
|
+
* Derive a display title from the first REAL user message (skipping system
|
|
53
|
+
* wrappers), with any residual XML-ish tags stripped. Falls back to the first
|
|
54
|
+
* user message if every one looks like a wrapper.
|
|
55
|
+
*/
|
|
56
|
+
export declare function deriveTitle(entries: SessionEntry[]): string;
|
|
57
|
+
/**
|
|
58
|
+
* Scan the native CLI's transcript directories for the given provider, sort by
|
|
59
|
+
* file mtime descending, take up to `limit` (default 12), parse each for title
|
|
60
|
+
* and messageCount, and return `NativeSession[]`.
|
|
61
|
+
*
|
|
62
|
+
* Returns [] if the directories do not exist. Never throws.
|
|
63
|
+
*/
|
|
64
|
+
export declare function listNativeSessions(provider: ProviderId, opts?: {
|
|
65
|
+
homeDir?: string;
|
|
66
|
+
limit?: number;
|
|
67
|
+
}): Promise<NativeSession[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Parse a native session file and seed a NEW myshell-tools conversation with
|
|
70
|
+
* its message history. The native file is NEVER modified.
|
|
71
|
+
*
|
|
72
|
+
* Returns the new conversation's `id` and the number of messages imported.
|
|
73
|
+
*/
|
|
74
|
+
export declare function importNativeSession(session: NativeSession, store: ConversationStore): Promise<{
|
|
75
|
+
id: string;
|
|
76
|
+
imported: number;
|
|
77
|
+
}>;
|
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* src/providers/native-sessions.ts — Read-only access to native Claude/Codex transcripts.
|
|
3
|
+
*
|
|
4
|
+
* Supports two operations:
|
|
5
|
+
* 1. `listNativeSessions` — scan the native CLI's transcript directory and
|
|
6
|
+
* return lightweight metadata (newest first, bounded by `limit`).
|
|
7
|
+
* 2. `importNativeSession` — parse a native session and seed a NEW myshell-tools
|
|
8
|
+
* conversation from its message history. The native file is NEVER modified.
|
|
9
|
+
*
|
|
10
|
+
* Pure parsers (`parseClaudeSession`, `parseCodexSession`) contain zero I/O — they
|
|
11
|
+
* operate on raw file content strings and are hermetic-testable.
|
|
12
|
+
*
|
|
13
|
+
* On-disk formats (defensive — never throw on bad input):
|
|
14
|
+
*
|
|
15
|
+
* Claude: `~/.claude/projects/<slug>/<session-uuid>.jsonl`
|
|
16
|
+
* Each line has a `type`. Conversation turns are `type:"user"` or `type:"assistant"`,
|
|
17
|
+
* with `message.role` and `message.content` (string or text-block array).
|
|
18
|
+
* Meta line types to skip: custom-title, agent-name, agent-setting, permission-mode,
|
|
19
|
+
* file-history-snapshot, summary, system, and anything else.
|
|
20
|
+
*
|
|
21
|
+
* Codex: `~/.codex/archived_sessions/rollout-<ts>-<uuid>.jsonl`
|
|
22
|
+
* A `type:"session_meta"` line carries `{ id, timestamp, cwd, ... }`.
|
|
23
|
+
* Conversation turns are `type:"response_item"` with `payload.type:"message"`,
|
|
24
|
+
* `payload.role` ('user'|'assistant'|'developer'), `payload.content` array of
|
|
25
|
+
* `{ type:"input_text"|"output_text", text:"..." }`.
|
|
26
|
+
* Skip role 'developer'/'system'.
|
|
27
|
+
*/
|
|
28
|
+
import { readFile, readdir, stat } from 'node:fs/promises';
|
|
29
|
+
import { homedir } from 'node:os';
|
|
30
|
+
import { join } from 'node:path';
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Claude parser
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
/** Meta line types that are not conversation turns — skip silently. */
|
|
35
|
+
const CLAUDE_META_TYPES = new Set([
|
|
36
|
+
'custom-title',
|
|
37
|
+
'agent-name',
|
|
38
|
+
'agent-setting',
|
|
39
|
+
'permission-mode',
|
|
40
|
+
'file-history-snapshot',
|
|
41
|
+
'summary',
|
|
42
|
+
'system',
|
|
43
|
+
]);
|
|
44
|
+
/**
|
|
45
|
+
* Extract the text from a Claude message content value.
|
|
46
|
+
* Content may be a plain string or an array of blocks like
|
|
47
|
+
* `[{ "type": "text", "text": "..." }, ...]`.
|
|
48
|
+
* Only `type:"text"` blocks are extracted; tool_use/tool_result blocks are ignored.
|
|
49
|
+
*/
|
|
50
|
+
function extractClaudeContent(content) {
|
|
51
|
+
if (typeof content === 'string')
|
|
52
|
+
return content;
|
|
53
|
+
if (!Array.isArray(content))
|
|
54
|
+
return '';
|
|
55
|
+
const parts = [];
|
|
56
|
+
for (const block of content) {
|
|
57
|
+
if (typeof block === 'object' &&
|
|
58
|
+
block !== null &&
|
|
59
|
+
block['type'] === 'text') {
|
|
60
|
+
const text = block['text'];
|
|
61
|
+
if (typeof text === 'string')
|
|
62
|
+
parts.push(text);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return parts.join('');
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Parse a raw Claude JSONL session file content into ordered SessionEntry[].
|
|
69
|
+
*
|
|
70
|
+
* Pure, hermetic, never throws. Returns [] on any unrecoverable input.
|
|
71
|
+
*/
|
|
72
|
+
export function parseClaudeSession(content) {
|
|
73
|
+
const entries = [];
|
|
74
|
+
for (const raw of content.split('\n')) {
|
|
75
|
+
const line = raw.trim();
|
|
76
|
+
if (line.length === 0)
|
|
77
|
+
continue;
|
|
78
|
+
let obj;
|
|
79
|
+
try {
|
|
80
|
+
const parsed = JSON.parse(line);
|
|
81
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
82
|
+
continue;
|
|
83
|
+
obj = parsed;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
const type = obj['type'];
|
|
89
|
+
if (typeof type !== 'string')
|
|
90
|
+
continue;
|
|
91
|
+
// Skip known meta line types
|
|
92
|
+
if (CLAUDE_META_TYPES.has(type))
|
|
93
|
+
continue;
|
|
94
|
+
// Only process user/assistant turns
|
|
95
|
+
if (type !== 'user' && type !== 'assistant')
|
|
96
|
+
continue;
|
|
97
|
+
const message = obj['message'];
|
|
98
|
+
if (typeof message !== 'object' || message === null)
|
|
99
|
+
continue;
|
|
100
|
+
const msg = message;
|
|
101
|
+
const role = msg['role'];
|
|
102
|
+
if (role !== 'user' && role !== 'assistant')
|
|
103
|
+
continue;
|
|
104
|
+
const text = extractClaudeContent(msg['content']);
|
|
105
|
+
if (text.trim().length === 0)
|
|
106
|
+
continue;
|
|
107
|
+
// Prefer explicit timestamp if present
|
|
108
|
+
const ts = typeof obj['timestamp'] === 'string' && obj['timestamp'].length > 0
|
|
109
|
+
? obj['timestamp']
|
|
110
|
+
: new Date().toISOString();
|
|
111
|
+
entries.push({
|
|
112
|
+
timestamp: ts,
|
|
113
|
+
role: role,
|
|
114
|
+
content: text,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return entries;
|
|
118
|
+
}
|
|
119
|
+
// ---------------------------------------------------------------------------
|
|
120
|
+
// Codex parser
|
|
121
|
+
// ---------------------------------------------------------------------------
|
|
122
|
+
/**
|
|
123
|
+
* Parse a raw Codex JSONL session file content into ordered SessionEntry[].
|
|
124
|
+
*
|
|
125
|
+
* Pure, hermetic, never throws. Returns [] on any unrecoverable input.
|
|
126
|
+
*/
|
|
127
|
+
export function parseCodexSession(content) {
|
|
128
|
+
const entries = [];
|
|
129
|
+
let sessionTimestamp = null;
|
|
130
|
+
for (const raw of content.split('\n')) {
|
|
131
|
+
const line = raw.trim();
|
|
132
|
+
if (line.length === 0)
|
|
133
|
+
continue;
|
|
134
|
+
let obj;
|
|
135
|
+
try {
|
|
136
|
+
const parsed = JSON.parse(line);
|
|
137
|
+
if (typeof parsed !== 'object' || parsed === null)
|
|
138
|
+
continue;
|
|
139
|
+
obj = parsed;
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const type = obj['type'];
|
|
145
|
+
if (typeof type !== 'string')
|
|
146
|
+
continue;
|
|
147
|
+
// Capture session-level timestamp from session_meta
|
|
148
|
+
if (type === 'session_meta') {
|
|
149
|
+
if (typeof obj['timestamp'] === 'string') {
|
|
150
|
+
sessionTimestamp = obj['timestamp'];
|
|
151
|
+
}
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
// Only process response_item turns
|
|
155
|
+
if (type !== 'response_item')
|
|
156
|
+
continue;
|
|
157
|
+
const payload = obj['payload'];
|
|
158
|
+
if (typeof payload !== 'object' || payload === null)
|
|
159
|
+
continue;
|
|
160
|
+
const p = payload;
|
|
161
|
+
// Only message payloads
|
|
162
|
+
if (p['type'] !== 'message')
|
|
163
|
+
continue;
|
|
164
|
+
const role = p['role'];
|
|
165
|
+
// Skip developer/system roles
|
|
166
|
+
if (role !== 'user' && role !== 'assistant')
|
|
167
|
+
continue;
|
|
168
|
+
// Extract text from content array
|
|
169
|
+
const contentArr = p['content'];
|
|
170
|
+
if (!Array.isArray(contentArr))
|
|
171
|
+
continue;
|
|
172
|
+
const parts = [];
|
|
173
|
+
for (const block of contentArr) {
|
|
174
|
+
if (typeof block !== 'object' || block === null)
|
|
175
|
+
continue;
|
|
176
|
+
const b = block;
|
|
177
|
+
const bType = b['type'];
|
|
178
|
+
if (bType === 'input_text' || bType === 'output_text') {
|
|
179
|
+
if (typeof b['text'] === 'string')
|
|
180
|
+
parts.push(b['text']);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
const text = parts.join('');
|
|
184
|
+
if (text.trim().length === 0)
|
|
185
|
+
continue;
|
|
186
|
+
const ts = sessionTimestamp ?? new Date().toISOString();
|
|
187
|
+
entries.push({
|
|
188
|
+
timestamp: ts,
|
|
189
|
+
role: role,
|
|
190
|
+
content: text,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
return entries;
|
|
194
|
+
}
|
|
195
|
+
// ---------------------------------------------------------------------------
|
|
196
|
+
// Title derivation
|
|
197
|
+
// ---------------------------------------------------------------------------
|
|
198
|
+
const MAX_TITLE_LEN = 80;
|
|
199
|
+
/**
|
|
200
|
+
* Is this content a system-injected wrapper rather than a real human prompt?
|
|
201
|
+
* Both CLIs prepend context/caveat blocks (e.g. `<environment_context>`,
|
|
202
|
+
* `<local-command-caveat>`, `<command-name>`, "Caveat: …") as the first "user"
|
|
203
|
+
* turn — those make terrible titles, so we skip them.
|
|
204
|
+
*/
|
|
205
|
+
function isWrapperMessage(content) {
|
|
206
|
+
const s = content.trim();
|
|
207
|
+
return s.startsWith('<') || /^caveat:/i.test(s);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Derive a display title from the first REAL user message (skipping system
|
|
211
|
+
* wrappers), with any residual XML-ish tags stripped. Falls back to the first
|
|
212
|
+
* user message if every one looks like a wrapper.
|
|
213
|
+
*/
|
|
214
|
+
export function deriveTitle(entries) {
|
|
215
|
+
const users = entries.filter((e) => e.role === 'user' && e.content.trim().length > 0);
|
|
216
|
+
const chosen = users.find((u) => !isWrapperMessage(u.content)) ?? users[0];
|
|
217
|
+
if (chosen === undefined)
|
|
218
|
+
return '';
|
|
219
|
+
let s = chosen.content.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
220
|
+
if (s.length === 0)
|
|
221
|
+
s = chosen.content.trim();
|
|
222
|
+
return s.length <= MAX_TITLE_LEN ? s : s.slice(0, MAX_TITLE_LEN);
|
|
223
|
+
}
|
|
224
|
+
// ---------------------------------------------------------------------------
|
|
225
|
+
// Directory layout
|
|
226
|
+
// ---------------------------------------------------------------------------
|
|
227
|
+
/** Return the directories to scan for a given provider, under homeDir. */
|
|
228
|
+
function nativeDirs(provider, homeDir) {
|
|
229
|
+
if (provider === 'claude') {
|
|
230
|
+
return [
|
|
231
|
+
join(homeDir, '.claude', 'projects'),
|
|
232
|
+
join(homeDir, '.claude', 'sessions'),
|
|
233
|
+
];
|
|
234
|
+
}
|
|
235
|
+
return [
|
|
236
|
+
join(homeDir, '.codex', 'archived_sessions'),
|
|
237
|
+
join(homeDir, '.codex', 'sessions'),
|
|
238
|
+
];
|
|
239
|
+
}
|
|
240
|
+
/** True when a filename looks like a native session file for the given provider. */
|
|
241
|
+
function isNativeFile(provider, name) {
|
|
242
|
+
if (provider === 'claude')
|
|
243
|
+
return name.endsWith('.jsonl');
|
|
244
|
+
// Codex: rollout-<ts>-<uuid>.jsonl or any .jsonl
|
|
245
|
+
return name.endsWith('.jsonl');
|
|
246
|
+
}
|
|
247
|
+
// ---------------------------------------------------------------------------
|
|
248
|
+
// listNativeSessions
|
|
249
|
+
// ---------------------------------------------------------------------------
|
|
250
|
+
/**
|
|
251
|
+
* Scan the native CLI's transcript directories for the given provider, sort by
|
|
252
|
+
* file mtime descending, take up to `limit` (default 12), parse each for title
|
|
253
|
+
* and messageCount, and return `NativeSession[]`.
|
|
254
|
+
*
|
|
255
|
+
* Returns [] if the directories do not exist. Never throws.
|
|
256
|
+
*/
|
|
257
|
+
export async function listNativeSessions(provider, opts) {
|
|
258
|
+
const home = opts?.homeDir ?? homedir();
|
|
259
|
+
const limit = opts?.limit ?? 12;
|
|
260
|
+
const dirs = nativeDirs(provider, home);
|
|
261
|
+
// Collect candidate files across all directories
|
|
262
|
+
const candidates = [];
|
|
263
|
+
for (const dir of dirs) {
|
|
264
|
+
// Recursively scan (Claude stores sessions in per-project sub-dirs)
|
|
265
|
+
await collectFiles(dir, provider, candidates);
|
|
266
|
+
}
|
|
267
|
+
// Sort newest first
|
|
268
|
+
candidates.sort((a, b) => b.mtimeMs - a.mtimeMs);
|
|
269
|
+
// Take at most `limit` and parse each
|
|
270
|
+
const top = candidates.slice(0, limit);
|
|
271
|
+
const sessions = [];
|
|
272
|
+
for (const { file, mtimeMs } of top) {
|
|
273
|
+
try {
|
|
274
|
+
const content = await readFile(file, 'utf8');
|
|
275
|
+
const entries = provider === 'claude' ? parseClaudeSession(content) : parseCodexSession(content);
|
|
276
|
+
const id = deriveId(provider, file);
|
|
277
|
+
const title = deriveTitle(entries);
|
|
278
|
+
const updatedAt = new Date(mtimeMs).toISOString();
|
|
279
|
+
sessions.push({
|
|
280
|
+
provider,
|
|
281
|
+
id,
|
|
282
|
+
file,
|
|
283
|
+
updatedAt,
|
|
284
|
+
title,
|
|
285
|
+
messageCount: entries.length,
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
catch {
|
|
289
|
+
// Skip files we can't read
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
return sessions;
|
|
293
|
+
}
|
|
294
|
+
/** Recursively collect .jsonl files and their mtime, appending into `out`. */
|
|
295
|
+
async function collectFiles(dir, provider, out) {
|
|
296
|
+
let entries;
|
|
297
|
+
try {
|
|
298
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
return; // directory missing or inaccessible
|
|
302
|
+
}
|
|
303
|
+
for (const entry of entries) {
|
|
304
|
+
const full = join(dir, String(entry.name));
|
|
305
|
+
if (entry.isDirectory()) {
|
|
306
|
+
await collectFiles(full, provider, out);
|
|
307
|
+
}
|
|
308
|
+
else if (entry.isFile() && isNativeFile(provider, entry.name)) {
|
|
309
|
+
try {
|
|
310
|
+
const s = await stat(full);
|
|
311
|
+
out.push({ file: full, mtimeMs: s.mtimeMs });
|
|
312
|
+
}
|
|
313
|
+
catch {
|
|
314
|
+
// skip
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
/** Derive a session id from the file path. For Claude: the filename stem (= session uuid). */
|
|
320
|
+
function deriveId(_provider, file) {
|
|
321
|
+
const base = file.split(/[\\/]/).at(-1) ?? file;
|
|
322
|
+
return base.replace(/\.jsonl$/, '');
|
|
323
|
+
}
|
|
324
|
+
// ---------------------------------------------------------------------------
|
|
325
|
+
// importNativeSession
|
|
326
|
+
// ---------------------------------------------------------------------------
|
|
327
|
+
/**
|
|
328
|
+
* Parse a native session file and seed a NEW myshell-tools conversation with
|
|
329
|
+
* its message history. The native file is NEVER modified.
|
|
330
|
+
*
|
|
331
|
+
* Returns the new conversation's `id` and the number of messages imported.
|
|
332
|
+
*/
|
|
333
|
+
export async function importNativeSession(session, store) {
|
|
334
|
+
const content = await readFile(session.file, 'utf8');
|
|
335
|
+
const entries = session.provider === 'claude'
|
|
336
|
+
? parseClaudeSession(content)
|
|
337
|
+
: parseCodexSession(content);
|
|
338
|
+
const title = session.title.length > 0 ? session.title : `Imported from ${session.provider} — ${session.id}`;
|
|
339
|
+
const meta = await store.create(title);
|
|
340
|
+
const writer = store.writer(meta.id);
|
|
341
|
+
for (const entry of entries) {
|
|
342
|
+
await writer.append(entry);
|
|
343
|
+
}
|
|
344
|
+
return { id: meta.id, imported: entries.length };
|
|
345
|
+
}
|
|
346
|
+
//# sourceMappingURL=native-sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-sessions.js","sourceRoot":"","sources":["../../src/providers/native-sessions.ts"],"names":[],"mappings":"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"}
|