@diggerhq/anyware 0.7.27 → 0.7.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,250 @@
1
+ # Anyware CLI
2
+
3
+ The command-line client for [Anyware](https://anyware.run) — control Claude Code from anywhere, on any device.
4
+
5
+ Anyware CLI runs Claude Code locally on your machine while streaming the session to the cloud. Continue working from your phone, laptop, or any browser. Get notified when Claude needs your input.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install -g @diggerhq/anyware
11
+ ```
12
+
13
+ Requires Node.js >= 20.0.0
14
+
15
+ ## Quick Start
16
+
17
+ ```bash
18
+ # Login (opens browser for authentication)
19
+ anyware login
20
+
21
+ # Start a session in your project directory
22
+ cd /path/to/your/project
23
+ anyware
24
+ ```
25
+
26
+ That's it. Your session is now live at [anyware.run](https://anyware.run).
27
+
28
+ ## How It Works
29
+
30
+ ```
31
+ ┌─────────────────────────────────────────────────────────────────────────┐
32
+ │ Your Machine │
33
+ │ ┌──────────────────────────────────────────────────────────────────┐ │
34
+ │ │ anyware CLI │ │
35
+ │ │ ┌────────────┐ ┌─────────────┐ ┌─────────────────────┐ │ │
36
+ │ │ │ Loop │◄──►│ Session │◄──►│ WebSocket Client │───┼──┼──► anyware.run
37
+ │ │ │ local/ │ │ manager │ │ (real-time sync) │ │ │
38
+ │ │ │ remote │ └─────────────┘ └─────────────────────┘ │ │
39
+ │ │ └─────┬──────┘ │ │
40
+ │ │ │ │ │
41
+ │ │ ▼ │ │
42
+ │ │ ┌────────────┐ ┌─────────────┐ │ │
43
+ │ │ │ Claude │───►│ LLM Proxy │─────────────────────────────┼──┼──► OpenRouter
44
+ │ │ │ Code │ │ (model │ │ │
45
+ │ │ │ (spawned) │ │ routing) │ │ │
46
+ │ │ └────────────┘ └─────────────┘ │ │
47
+ │ └──────────────────────────────────────────────────────────────────┘ │
48
+ └─────────────────────────────────────────────────────────────────────────┘
49
+ ```
50
+
51
+ ### Dual-Mode Operation
52
+
53
+ The CLI operates in two modes that switch automatically:
54
+
55
+ - **Local mode**: You type directly in the terminal. Claude responds locally, and output streams to the web dashboard.
56
+ - **Remote mode**: Commands come from the web dashboard via WebSocket. Output appears both in your terminal and the web UI.
57
+
58
+ Mode switching happens seamlessly:
59
+ - **Local → Remote**: When you send a message from the web dashboard
60
+ - **Remote → Local**: When you press Enter in the terminal to take back control
61
+
62
+ ## Commands
63
+
64
+ ### `anyware`
65
+
66
+ Start a Claude Code session in the current directory.
67
+
68
+ ```bash
69
+ anyware # Start session
70
+ anyware --model openai/gpt-4o # Use a specific model via OpenRouter
71
+ anyware --continue # Continue the last conversation
72
+ anyware --resume <sessionId> # Resume a specific Claude session
73
+ anyware --remote # Start in remote mode
74
+ anyware --path /other/dir # Use a different working directory
75
+ ```
76
+
77
+ ### `anyware login`
78
+
79
+ Authenticate with anyware.run. Opens your browser to complete the OAuth flow.
80
+
81
+ ```bash
82
+ anyware login
83
+ ```
84
+
85
+ ### `anyware logout`
86
+
87
+ Clear local credentials.
88
+
89
+ ```bash
90
+ anyware logout
91
+ ```
92
+
93
+ ### `anyware status`
94
+
95
+ Show current login status and configuration.
96
+
97
+ ```bash
98
+ anyware status
99
+ ```
100
+
101
+ ### `anyware config`
102
+
103
+ View or set configuration options.
104
+
105
+ ```bash
106
+ anyware config # Show current config
107
+ anyware config --api-url <url> # Set custom API URL
108
+ anyware config --llm-url <url> # Set custom LLM proxy URL
109
+ ```
110
+
111
+ ### `anyware update`
112
+
113
+ Update to the latest version.
114
+
115
+ ```bash
116
+ anyware update
117
+ ```
118
+
119
+ ### `anyware version`
120
+
121
+ Print version information and check for updates.
122
+
123
+ ```bash
124
+ anyware version
125
+ ```
126
+
127
+ ### `anyware alias`
128
+
129
+ Set up `claude` as an alias for `anyware` in your shell.
130
+
131
+ ```bash
132
+ anyware alias
133
+ ```
134
+
135
+ ### `anyware claude-args`
136
+
137
+ Show valid Claude Code arguments that can be passed through.
138
+
139
+ ```bash
140
+ anyware claude-args
141
+ ```
142
+
143
+ ## Custom Models
144
+
145
+ Use any model available on [OpenRouter](https://openrouter.ai):
146
+
147
+ ```bash
148
+ anyware --model openai/gpt-4o
149
+ anyware --model google/gemini-2.0-flash-001
150
+ anyware --model anthropic/claude-sonnet-4
151
+ ```
152
+
153
+ Or set a default model via environment variable:
154
+
155
+ ```bash
156
+ export ANYWARE_MODEL=openai/gpt-4o
157
+ anyware
158
+ ```
159
+
160
+ ## Configuration
161
+
162
+ Configuration is stored in `~/.anyware/config.json`.
163
+
164
+ ### Environment Variables
165
+
166
+ | Variable | Description |
167
+ |----------|-------------|
168
+ | `ANYWARE_API_URL` | Override the API URL (default: `https://anyware.run`) |
169
+ | `ANYWARE_LLM_URL` | Override the LLM proxy URL (default: `https://llm.anyware.run`) |
170
+ | `ANYWARE_MODEL` | Default model to use via OpenRouter |
171
+
172
+ ## Web Dashboard
173
+
174
+ 1. Go to [anyware.run](https://anyware.run)
175
+ 2. Login with the same account
176
+ 3. See active sessions, click to view live terminal
177
+ 4. Type to send prompts, approve tool permissions
178
+
179
+ ## Notifications
180
+
181
+ Get SMS or WhatsApp alerts when Claude needs input and you're away from your terminal. Configure at [anyware.run/settings/notifications](https://anyware.run/settings/notifications).
182
+
183
+ ## Development
184
+
185
+ ### Prerequisites
186
+
187
+ - Node.js >= 20.0.0
188
+ - npm
189
+
190
+ ### Setup
191
+
192
+ ```bash
193
+ # Clone the repository
194
+ git clone https://github.com/diggerhq/anyware-cli.git
195
+ cd anyware-cli
196
+
197
+ # Install dependencies
198
+ npm install
199
+
200
+ # Build
201
+ npm run build
202
+
203
+ # Run in development mode
204
+ npm run dev
205
+ ```
206
+
207
+ ### Scripts
208
+
209
+ | Command | Description |
210
+ |---------|-------------|
211
+ | `npm run build` | Compile TypeScript to `dist/` |
212
+ | `npm run dev` | Run from source with tsx |
213
+ | `npm run start` | Run compiled output |
214
+ | `npm run typecheck` | Type-check without emitting |
215
+
216
+ ### Project Structure
217
+
218
+ ```
219
+ src/
220
+ ├── main.ts # CLI entry point (commander setup)
221
+ ├── api/ # Server communication
222
+ │ ├── auth.ts # OAuth login flow
223
+ │ ├── session.ts # Session creation/management
224
+ │ └── wsClient.ts # WebSocket client
225
+ ├── claude/ # Claude Code integration
226
+ │ ├── loop.ts # Local/remote mode switching
227
+ │ ├── session.ts # Session state management
228
+ │ ├── claudeLocal*.ts # Local mode (terminal UI)
229
+ │ ├── claudeRemote*.ts # Remote mode (SDK-based)
230
+ │ └── sdk/ # Claude SDK wrapper
231
+ ├── config/ # Configuration management
232
+ ├── hooks/ # Session hooks
233
+ ├── ui/ # Terminal UI components
234
+ ├── update/ # Self-update functionality
235
+ └── utils/ # Utilities (message queue, etc.)
236
+ ```
237
+
238
+ ## Self-Hosting
239
+
240
+ See the main [Anyware repository](https://github.com/diggerhq/anyware) for self-hosting documentation.
241
+
242
+ ## License
243
+
244
+ MIT
245
+
246
+ ## Links
247
+
248
+ - [Anyware Website](https://anyware.run)
249
+ - [Documentation](https://docs.anyware.run)
250
+ - [Main Repository](https://github.com/diggerhq/anyware)
@@ -1,3 +1,4 @@
1
+ import type { HistoricalEvent } from '../utils/claudeHistory.js';
1
2
  interface Session {
2
3
  id: string;
3
4
  userId: string;
@@ -7,7 +8,12 @@ interface Session {
7
8
  startedAt: string;
8
9
  endedAt?: string;
9
10
  }
10
- export declare function createSession(cwd: string): Promise<string>;
11
+ interface CreateSessionOptions {
12
+ cwd: string;
13
+ continueFromHistory?: boolean;
14
+ history?: HistoricalEvent[];
15
+ }
16
+ export declare function createSession(cwdOrOptions: string | CreateSessionOptions): Promise<string>;
11
17
  export declare function endSession(sessionId: string): Promise<void>;
12
18
  export declare function getSession(sessionId: string): Promise<Session | null>;
13
19
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/api/session.ts"],"names":[],"mappings":"AAMA,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA4BhE;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjE;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAuB3E"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/api/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAMjE,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,oBAAoB;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwChG;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjE;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAuB3E"}
@@ -1,16 +1,25 @@
1
1
  import { loadConfig } from '../config/config.js';
2
- export async function createSession(cwd) {
2
+ export async function createSession(cwdOrOptions) {
3
3
  const config = loadConfig();
4
4
  if (!config.accessToken) {
5
5
  throw new Error('Not logged in. Please run "anyware login" first.');
6
6
  }
7
+ // Support both old signature (just cwd string) and new options object
8
+ const options = typeof cwdOrOptions === 'string'
9
+ ? { cwd: cwdOrOptions }
10
+ : cwdOrOptions;
11
+ const body = { cwd: options.cwd };
12
+ if (options.continueFromHistory && options.history && options.history.length > 0) {
13
+ body.history = options.history;
14
+ console.log(`[session] Sending ${options.history.length} historical events`);
15
+ }
7
16
  const response = await fetch(`${config.apiUrl}/api/v1/sessions`, {
8
17
  method: 'POST',
9
18
  headers: {
10
19
  'Content-Type': 'application/json',
11
20
  'Authorization': `Bearer ${config.accessToken}`,
12
21
  },
13
- body: JSON.stringify({ cwd }),
22
+ body: JSON.stringify(body),
14
23
  });
15
24
  if (response.status === 429) {
16
25
  const data = await response.json();
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/api/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAgBjD,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,kBAAkB,EAAE;QAC/D,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;SAChD;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA4D,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuB,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,0BAA0B,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA2B,CAAC;IAC9D,OAAO,MAAM,CAAC,SAAS,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,oBAAoB,SAAS,MAAM,EAAE;QAChF,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;SAChD;KACF,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB;IAChD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,oBAAoB,SAAS,EAAE,EAAE;QAC5E,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;SAChD;KACF,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA0B,CAAC;IAC7D,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/api/session.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,aAAa,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CA8K7G"}
1
+ {"version":3,"file":"wsClient.d.ts","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;KAC5B,CAAC;CACH;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,KAAK,GAAG,IAAI,GAAG,QAAQ,CAAC;KACnC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,yBAAyB,GAAG,aAAa,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,IAAI,CAAC;IACnC,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC;IACnD,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1D,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,eAAe,KAAK,IAAI,KAAK,IAAI,CAAC;IACjE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACvC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAwL7G"}
@@ -102,12 +102,21 @@ export function createWSClient(sessionId, userId, deviceId) {
102
102
  },
103
103
  sendClaudeEvent: (event, sid) => {
104
104
  if (ws.readyState === WebSocket.OPEN) {
105
+ // Use event's original timestamp if available, otherwise current time
106
+ const eventWithTs = event;
107
+ let timestamp = Date.now();
108
+ if (eventWithTs.timestamp) {
109
+ const parsed = new Date(eventWithTs.timestamp).getTime();
110
+ if (!isNaN(parsed)) {
111
+ timestamp = parsed;
112
+ }
113
+ }
105
114
  ws.send(JSON.stringify({
106
115
  type: 'claude_event',
107
116
  payload: {
108
117
  sessionId: sid,
109
118
  event,
110
- timestamp: Date.now(),
119
+ timestamp,
111
120
  },
112
121
  }));
113
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"wsClient.js","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyDjD,MAAM,UAAU,cAAc,CAAC,SAAiB,EAAE,MAAc,EAAE,QAAiB;IACjF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtF,6DAA6D;QAC7D,MAAM,WAAW,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,GAAG,GAAG,GAAG,KAAK,eAAe,SAAS,oBAAoB,MAAM,GAAG,WAAW,UAAU,MAAM,CAAC,WAAW,EAAE,CAAC;QAEnH,IAAI,EAAa,CAAC;QAClB,IAAI,cAAc,GAAgD,IAAI,CAAC;QACvE,IAAI,YAAY,GAAwB,IAAI,CAAC;QAC7C,IAAI,YAAY,GAA0B,IAAI,CAAC;QAC/C,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC,0CAA0C;QACpE,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,IAAI,cAAc,GAAG,KAAK,CAAC;QAE3B,SAAS,OAAO;YACd,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;YAE1B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;gBACf,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;gBACvC,CAAC;gBACD,iBAAiB,GAAG,CAAC,CAAC;gBAExB,+CAA+C;gBAC7C,IAAI,YAAY;oBAAE,aAAa,CAAC,YAAY,CAAC,CAAC;gBAChD,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;wBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC,EAAE,KAAK,CAAC,CAAC;gBAER,mCAAmC;gBACnC,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,cAAc,GAAG,IAAI,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC,CAAC;gBAClB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAc,CAAC;oBAEzD,uBAAuB;oBACvB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC5B,OAAO;oBACT,CAAC;oBAED,qBAAqB;oBACrB,IAAI,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,IAAI,OAAO,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;wBAC7H,cAAc,CAAC,OAA0B,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClB,IAAI,YAAY,EAAE,CAAC;oBACjB,aAAa,CAAC,YAAY,CAAC,CAAC;oBAC5B,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAED,IAAI,qBAAqB,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;oBAC9C,IAAI,YAAY,EAAE,CAAC;wBACjB,YAAY,EAAE,CAAC;oBACjB,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,iBAAiB;gBACjB,IAAI,iBAAiB,GAAG,aAAa,EAAE,CAAC;oBACtC,iBAAiB,EAAE,CAAC;oBACpB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC,oBAAoB;oBAC7E,OAAO,CAAC,GAAG,CAAC,yCAAyC,KAAK,GAAG,IAAI,cAAc,iBAAiB,IAAI,aAAa,GAAG,CAAC,CAAC;oBACtH,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;oBAC9D,IAAI,YAAY,EAAE,CAAC;wBACjB,YAAY,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,CAAC,KAAK,CAAC,CAAC;gBAChB,CAAC;gBACD,6EAA6E;YAC/E,CAAC,CAAC,CAAC;QACL,CAAC;QAEC,MAAM,MAAM,GAAoB;YAC9B,IAAI,EAAE,CAAC,OAAkB,EAAE,EAAE;gBAC3B,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,eAAe,EAAE,CAAC,KAAkB,EAAE,GAAW,EAAE,EAAE;gBACnD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE;4BACP,SAAS,EAAE,GAAG;4BACd,KAAK;4BACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB;qBACF,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,YAAY,EAAE,CAAC,QAAiB,EAAE,EAAE;gBAClC,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE;4BACP,QAAQ;4BACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB;qBACF,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,cAAc,EAAE,CAAC,IAAwB,EAAE,EAAE;gBAC3C,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;oBACrC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;wBACrB,IAAI,EAAE,aAAa;wBACnB,OAAO,EAAE;4BACP,IAAI;4BACJ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;yBACtB;qBACF,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,4DAA4D;YAC5D,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;YACtB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;YAEtB,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;gBACrB,cAAc,GAAG,OAAO,CAAC;YAC3B,CAAC;YAED,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;gBACnB,YAAY,GAAG,OAAO,CAAC;YACzB,CAAC;YAED,KAAK,EAAE,GAAG,EAAE;gBACZ,qBAAqB,GAAG,IAAI,CAAC;gBAC3B,IAAI,YAAY,EAAE,CAAC;oBACjB,aAAa,CAAC,YAAY,CAAC,CAAC;gBAC9B,CAAC;gBACD,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;SACF,CAAC;QAEJ,2BAA2B;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"wsClient.js","sourceRoot":"","sources":["../../src/api/wsClient.ts"],"names":[],"mappings":"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"}
package/dist/main.js CHANGED
@@ -193,6 +193,9 @@ program
193
193
  console.log(`Using model: ${model}`);
194
194
  }
195
195
  try {
196
+ // Note: We no longer pre-import historical events here.
197
+ // The session scanner (TUI mode) or SDK (remote mode) will capture events
198
+ // with their original timestamps, avoiding duplicate imports.
196
199
  // Create server session
197
200
  const serverSessionId = await createSession(options.path);
198
201
  // Create and start status bar
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,GAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAE5E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,KAAK,EAAE,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,qBAAqB,CAAC;KAClC,MAAM,CAAC,GAAG,EAAE;IACX,WAAW,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,GAAG,EAAE;IACX,UAAU,EAAE,CAAC;AACf,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,UAAU,EAAE,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACrE,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,sCAAsC;AACtC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sCAAsC;IACxC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QAEpC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC;QACxD,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mBAAmB,CAAC;KAChC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;KACxC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC;KACxC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;IAClB,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,mBAAmB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,2BAA2B;AAC3B,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,6DAA6D,CAAC;KAC1E,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,6BAA6B;AAC7B,OAAO;KACJ,OAAO,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;KACnC,WAAW,CAAC,wHAAwH,CAAC;KACrI,QAAQ,CAAC,kBAAkB,EAAE,uEAAuE,CAAC;KACrG,MAAM,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC/D,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;KACzD,MAAM,CAAC,YAAY,EAAE,gCAAgC,CAAC;KACtD,MAAM,CAAC,UAAU,EAAE,sBAAsB,CAAC;KAC1C,MAAM,CAAC,qBAAqB,EAAE,8EAA8E,CAAC;KAC7G,kBAAkB,EAAE;KACpB,MAAM,CAAC,KAAK,EAAE,qBAA+B,EAAE,OAAO,EAAE,EAAE;IACzD,cAAc;IACd,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,uEAAuE;IACvE,MAAM,eAAe,GAAG,qBAAqB,CAAC;IAE9C,mCAAmC;IACnC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;QAEvD,gBAAgB;QAChB,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,UAAU,GAAG,sBAAsB,CAAC,EAAE,GAAG,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;QAChG,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,sBAAsB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,yDAAyD;IACzD,MAAM,cAAc,EAAE,CAAC;IAEvB,yDAAyD;IACzD,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,eAAe,GAAG,CAAC,SAAS,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1D,UAAU,CAAC,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAC;IAE9C,+EAA+E;IAC/E,0FAA0F;IAC1F,IAAI,eAAe,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAM,uBAAuB,EAAE,CAAC;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,oEAAoE;IACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAEzD,yCAAyC;IACzC,mFAAmF;IACnF,kEAAkE;IAClE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,MAAM,CAAC,WAAW,CAAC;IACtD,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAE,2BAA2B;IAElE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1D,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;QAEhE,oBAAoB;QACpB,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE,CAAC;YACV,qCAAqC;YACrC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAChC,CAAC;QAED,iCAAiC;QACjC,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,kBAAkB,CAAC,eAAe,CAAC,CAAC;YACvD,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QAED,0BAA0B;QAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;YAC1B,eAAe;YACf,MAAM,EAAE,MAAM,CAAC,MAAO;YACtB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;SAC3D,CAAC,CAAC;QAEH,uBAAuB;QACvB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QAExB,oCAAoC;QACpC,SAAS,CAAC,KAAK,EAAE,CAAC;QAElB,iBAAiB;QACjB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;YACzB,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;YAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/B,oBAAoB;QACpB,MAAM,IAAI,CAAC;YACT,OAAO;YACP,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;YACjD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC;YAC/C,MAAM,EAAE,GAAG,EAAE;gBACX,oDAAoD;gBACpD,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC;SACF,CAAC,CAAC;QAEH,yBAAyB;QACzB,SAAS,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,UAAU,CAAC,eAAe,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,gBAAgB;AAChB,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Read Claude Code's local session history for a given project path.
3
+ *
4
+ * Claude stores sessions in ~/.claude/projects/{encoded-path}/*.jsonl
5
+ * where {encoded-path} is the full path with / replaced by -
6
+ */
7
+ export interface HistoricalEvent {
8
+ type: 'user' | 'assistant' | 'tool_use' | 'tool_result';
9
+ timestamp: number;
10
+ content?: string;
11
+ message?: {
12
+ role: string;
13
+ content: unknown;
14
+ };
15
+ toolName?: string;
16
+ toolInput?: unknown;
17
+ toolResult?: unknown;
18
+ }
19
+ /**
20
+ * Read Claude's local session history for a project path
21
+ * Returns the most recent N events from the latest session, or null if none found
22
+ * @param projectPath - The project directory path
23
+ * @param limit - Maximum number of messages to return (default 100)
24
+ */
25
+ export declare function readClaudeLocalHistory(projectPath: string, limit?: number): HistoricalEvent[] | null;
26
+ /**
27
+ * Get info about previous sessions in a project folder
28
+ */
29
+ export declare function getSessionsInfo(projectPath: string): {
30
+ count: number;
31
+ latestTimestamp: number | null;
32
+ };
33
+ //# sourceMappingURL=claudeHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeHistory.d.ts","sourceRoot":"","sources":["../../src/utils/claudeHistory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA2HD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,eAAe,EAAE,GAAG,IAAI,CA4BzG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAwBtG"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * Read Claude Code's local session history for a given project path.
3
+ *
4
+ * Claude stores sessions in ~/.claude/projects/{encoded-path}/*.jsonl
5
+ * where {encoded-path} is the full path with / replaced by -
6
+ */
7
+ import { readFileSync, readdirSync, statSync, existsSync } from 'node:fs';
8
+ import { join } from 'node:path';
9
+ import { homedir } from 'node:os';
10
+ /**
11
+ * Encode a path the same way Claude does for project folders
12
+ * /Users/brian/myproject -> -Users-brian-myproject
13
+ */
14
+ function encodeProjectPath(path) {
15
+ return path.replace(/\//g, '-');
16
+ }
17
+ /**
18
+ * Get the Claude projects directory
19
+ */
20
+ function getClaudeProjectsDir() {
21
+ return join(homedir(), '.claude', 'projects');
22
+ }
23
+ /**
24
+ * Find the most recent MAIN session file for a project (not sub-agent sessions)
25
+ * Main session files have UUID format: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.jsonl
26
+ * Sub-agent files have format: agent-xxxxxxx.jsonl
27
+ */
28
+ function findLatestSessionFile(projectDir) {
29
+ if (!existsSync(projectDir)) {
30
+ return null;
31
+ }
32
+ // UUID pattern for main session files
33
+ const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\.jsonl$/i;
34
+ const files = readdirSync(projectDir)
35
+ .filter(f => f.endsWith('.jsonl'))
36
+ // Only include main session files (UUID format), not sub-agent files
37
+ .filter(f => uuidPattern.test(f))
38
+ .map(f => ({
39
+ name: f,
40
+ path: join(projectDir, f),
41
+ mtime: statSync(join(projectDir, f)).mtime.getTime(),
42
+ size: statSync(join(projectDir, f)).size,
43
+ }))
44
+ // Filter out empty files
45
+ .filter(f => f.size > 0)
46
+ // Sort by modification time, newest first
47
+ .sort((a, b) => b.mtime - a.mtime);
48
+ if (files.length === 0) {
49
+ console.log('[history] No main session files found (agent sessions excluded)');
50
+ return null;
51
+ }
52
+ console.log(`[history] Found ${files.length} main session files, using: ${files[0].name} (${files[0].size} bytes)`);
53
+ return files[0].path;
54
+ }
55
+ /**
56
+ * Parse a JSONL file into events
57
+ */
58
+ function parseSessionFile(filePath) {
59
+ const content = readFileSync(filePath, 'utf-8');
60
+ const lines = content.trim().split('\n');
61
+ const events = [];
62
+ for (const line of lines) {
63
+ if (!line.trim())
64
+ continue;
65
+ try {
66
+ const parsed = JSON.parse(line);
67
+ events.push(parsed);
68
+ }
69
+ catch {
70
+ // Skip malformed lines
71
+ }
72
+ }
73
+ return events;
74
+ }
75
+ /**
76
+ * Convert Claude's local events to our API format
77
+ */
78
+ function convertToHistoricalEvents(events) {
79
+ const result = [];
80
+ let userCount = 0;
81
+ let assistantCount = 0;
82
+ let skippedCount = 0;
83
+ for (const event of events) {
84
+ // Skip internal events
85
+ if (event.type === 'queue-operation' || event.type === 'change' || event.type === 'file-history-snapshot') {
86
+ skippedCount++;
87
+ continue;
88
+ }
89
+ const timestamp = event.timestamp ? new Date(event.timestamp).getTime() : Date.now();
90
+ if (event.type === 'user' && event.message) {
91
+ userCount++;
92
+ // Extract content for logging
93
+ const content = event.message.content;
94
+ const preview = typeof content === 'string'
95
+ ? content.slice(0, 50)
96
+ : Array.isArray(content)
97
+ ? (content[0]?.text?.slice(0, 50) || '[complex content]')
98
+ : '[unknown format]';
99
+ console.log(`[history] User message: "${preview}..."`);
100
+ result.push({
101
+ type: 'user',
102
+ timestamp,
103
+ message: event.message,
104
+ });
105
+ }
106
+ else if (event.type === 'assistant' && event.message) {
107
+ assistantCount++;
108
+ result.push({
109
+ type: 'assistant',
110
+ timestamp,
111
+ message: event.message,
112
+ });
113
+ }
114
+ }
115
+ console.log(`[history] Conversion stats: ${userCount} user, ${assistantCount} assistant, ${skippedCount} skipped`);
116
+ return result;
117
+ }
118
+ /**
119
+ * Read Claude's local session history for a project path
120
+ * Returns the most recent N events from the latest session, or null if none found
121
+ * @param projectPath - The project directory path
122
+ * @param limit - Maximum number of messages to return (default 100)
123
+ */
124
+ export function readClaudeLocalHistory(projectPath, limit = 250) {
125
+ const projectsDir = getClaudeProjectsDir();
126
+ const encodedPath = encodeProjectPath(projectPath);
127
+ const projectDir = join(projectsDir, encodedPath);
128
+ console.log(`[history] Looking for Claude history in: ${projectDir}`);
129
+ const latestSession = findLatestSessionFile(projectDir);
130
+ if (!latestSession) {
131
+ console.log('[history] No Claude session history found');
132
+ return null;
133
+ }
134
+ console.log(`[history] Found session file: ${latestSession}`);
135
+ const events = parseSessionFile(latestSession);
136
+ console.log(`[history] Parsed ${events.length} raw events`);
137
+ const historicalEvents = convertToHistoricalEvents(events);
138
+ console.log(`[history] Converted to ${historicalEvents.length} historical events`);
139
+ // Return only the most recent N messages
140
+ if (historicalEvents.length > limit) {
141
+ console.log(`[history] Limiting to most recent ${limit} messages (had ${historicalEvents.length})`);
142
+ return historicalEvents.slice(-limit);
143
+ }
144
+ return historicalEvents;
145
+ }
146
+ /**
147
+ * Get info about previous sessions in a project folder
148
+ */
149
+ export function getSessionsInfo(projectPath) {
150
+ const projectsDir = getClaudeProjectsDir();
151
+ const encodedPath = encodeProjectPath(projectPath);
152
+ const projectDir = join(projectsDir, encodedPath);
153
+ if (!existsSync(projectDir)) {
154
+ return { count: 0, latestTimestamp: null };
155
+ }
156
+ const files = readdirSync(projectDir)
157
+ .filter(f => f.endsWith('.jsonl'))
158
+ .map(f => ({
159
+ path: join(projectDir, f),
160
+ mtime: statSync(join(projectDir, f)).mtime.getTime(),
161
+ size: statSync(join(projectDir, f)).size,
162
+ }))
163
+ .filter(f => f.size > 0);
164
+ if (files.length === 0) {
165
+ return { count: 0, latestTimestamp: null };
166
+ }
167
+ const latestTimestamp = Math.max(...files.map(f => f.mtime));
168
+ return { count: files.length, latestTimestamp };
169
+ }
170
+ //# sourceMappingURL=claudeHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claudeHistory.js","sourceRoot":"","sources":["../../src/utils/claudeHistory.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@diggerhq/anyware",
3
- "version": "0.7.27",
3
+ "version": "0.7.29",
4
4
  "description": "Anyware CLI - Claude Code with remote control",
5
5
  "type": "module",
6
6
  "main": "dist/main.js",