@enruana/claude-orka 0.3.0 → 0.3.1

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 (88) hide show
  1. package/dist/cli.js +1 -1
  2. package/dist/src/cli/index.js +0 -0
  3. package/dist/src/core/SessionManager.js +1 -1
  4. package/dist/src/core/SessionManager.js.map +1 -1
  5. package/package.json +1 -1
  6. package/dist/core/ClaudeOrka.d.ts +0 -111
  7. package/dist/core/ClaudeOrka.d.ts.map +0 -1
  8. package/dist/core/ClaudeOrka.js +0 -160
  9. package/dist/core/ClaudeOrka.js.map +0 -1
  10. package/dist/core/SessionManager.d.ts +0 -82
  11. package/dist/core/SessionManager.d.ts.map +0 -1
  12. package/dist/core/SessionManager.js +0 -519
  13. package/dist/core/SessionManager.js.map +0 -1
  14. package/dist/core/StateManager.d.ts +0 -92
  15. package/dist/core/StateManager.d.ts.map +0 -1
  16. package/dist/core/StateManager.js +0 -307
  17. package/dist/core/StateManager.js.map +0 -1
  18. package/dist/core/index.d.ts +0 -4
  19. package/dist/core/index.d.ts.map +0 -1
  20. package/dist/core/index.js +0 -20
  21. package/dist/core/index.js.map +0 -1
  22. package/dist/electron/main/ipc-handlers.d.ts +0 -5
  23. package/dist/electron/main/ipc-handlers.d.ts.map +0 -1
  24. package/dist/electron/main/ipc-handlers.js +0 -169
  25. package/dist/electron/main/ipc-handlers.js.map +0 -1
  26. package/dist/electron/renderer/app.js +0 -808
  27. package/dist/electron/renderer/index.html +0 -189
  28. package/dist/electron/renderer/src/App.d.ts +0 -3
  29. package/dist/electron/renderer/src/App.d.ts.map +0 -1
  30. package/dist/electron/renderer/src/App.js +0 -74
  31. package/dist/electron/renderer/src/App.js.map +0 -1
  32. package/dist/electron/renderer/src/components/ActionPanel.d.ts +0 -9
  33. package/dist/electron/renderer/src/components/ActionPanel.d.ts.map +0 -1
  34. package/dist/electron/renderer/src/components/ActionPanel.js +0 -29
  35. package/dist/electron/renderer/src/components/ActionPanel.js.map +0 -1
  36. package/dist/electron/renderer/src/components/NodeCard.d.ts +0 -11
  37. package/dist/electron/renderer/src/components/NodeCard.d.ts.map +0 -1
  38. package/dist/electron/renderer/src/components/NodeCard.js +0 -45
  39. package/dist/electron/renderer/src/components/NodeCard.js.map +0 -1
  40. package/dist/electron/renderer/src/components/SessionInfo.d.ts +0 -7
  41. package/dist/electron/renderer/src/components/SessionInfo.d.ts.map +0 -1
  42. package/dist/electron/renderer/src/components/SessionInfo.js +0 -49
  43. package/dist/electron/renderer/src/components/SessionInfo.js.map +0 -1
  44. package/dist/electron/renderer/src/components/SessionTree.d.ts +0 -10
  45. package/dist/electron/renderer/src/components/SessionTree.d.ts.map +0 -1
  46. package/dist/electron/renderer/src/components/SessionTree.js +0 -57
  47. package/dist/electron/renderer/src/components/SessionTree.js.map +0 -1
  48. package/dist/electron/renderer/src/main.d.ts +0 -2
  49. package/dist/electron/renderer/src/main.d.ts.map +0 -1
  50. package/dist/electron/renderer/src/main.js +0 -7
  51. package/dist/electron/renderer/src/main.js.map +0 -1
  52. package/dist/electron/renderer/styles.css +0 -736
  53. package/dist/electron/renderer/vite.config.d.ts +0 -3
  54. package/dist/electron/renderer/vite.config.d.ts.map +0 -1
  55. package/dist/electron/renderer/vite.config.js +0 -20
  56. package/dist/electron/renderer/vite.config.js.map +0 -1
  57. package/dist/index.d.ts +0 -9
  58. package/dist/index.d.ts.map +0 -1
  59. package/dist/index.js +0 -18
  60. package/dist/index.js.map +0 -1
  61. package/dist/models/Fork.d.ts +0 -26
  62. package/dist/models/Fork.d.ts.map +0 -1
  63. package/dist/models/Fork.js +0 -3
  64. package/dist/models/Fork.js.map +0 -1
  65. package/dist/models/Session.d.ts +0 -38
  66. package/dist/models/Session.d.ts.map +0 -1
  67. package/dist/models/Session.js +0 -3
  68. package/dist/models/Session.js.map +0 -1
  69. package/dist/models/State.d.ts +0 -24
  70. package/dist/models/State.d.ts.map +0 -1
  71. package/dist/models/State.js +0 -3
  72. package/dist/models/State.js.map +0 -1
  73. package/dist/models/index.d.ts +0 -4
  74. package/dist/models/index.d.ts.map +0 -1
  75. package/dist/models/index.js +0 -20
  76. package/dist/models/index.js.map +0 -1
  77. package/dist/utils/index.d.ts +0 -3
  78. package/dist/utils/index.d.ts.map +0 -1
  79. package/dist/utils/index.js +0 -19
  80. package/dist/utils/index.js.map +0 -1
  81. package/dist/utils/logger.d.ts +0 -20
  82. package/dist/utils/logger.d.ts.map +0 -1
  83. package/dist/utils/logger.js +0 -41
  84. package/dist/utils/logger.js.map +0 -1
  85. package/dist/utils/tmux.d.ts +0 -77
  86. package/dist/utils/tmux.d.ts.map +0 -1
  87. package/dist/utils/tmux.js +0 -270
  88. package/dist/utils/tmux.js.map +0 -1
@@ -1,189 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="es">
3
- <head>
4
- <meta charset="UTF-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Claude Orka</title>
7
- <link rel="stylesheet" href="styles.css">
8
- </head>
9
- <body>
10
- <div class="app">
11
- <!-- Header -->
12
- <header class="header">
13
- <div class="header-left">
14
- <h1>🐋 Claude Orka</h1>
15
- <span id="project-path" class="project-path"></span>
16
- </div>
17
- <div class="header-right">
18
- <button id="refresh-btn" class="btn btn-icon" title="Refresh">🔄</button>
19
- <button id="new-session-btn" class="btn btn-primary">➕ New Session</button>
20
- </div>
21
- </header>
22
-
23
- <div class="main-layout">
24
- <!-- Left Sidebar: Sessions List -->
25
- <aside class="sessions-sidebar">
26
- <div class="sidebar-header">
27
- <h2>SESSIONS</h2>
28
- <div class="filter-tabs">
29
- <button class="filter-tab active" data-filter="all">All</button>
30
- <button class="filter-tab" data-filter="active">Active</button>
31
- <button class="filter-tab" data-filter="saved">Saved</button>
32
- </div>
33
- </div>
34
- <div class="sessions-list" id="sessions-list">
35
- <div class="loading">Loading...</div>
36
- </div>
37
- </aside>
38
-
39
- <!-- Center: Graph Visualization -->
40
- <div class="graph-panel">
41
- <div class="graph-header">
42
- <div class="graph-title">
43
- <span class="branch-icon">🌿</span>
44
- <span id="current-session-title">Select a session</span>
45
- </div>
46
- <div class="graph-controls">
47
- <button id="zoom-out-btn" class="btn btn-icon" title="Zoom Out">−</button>
48
- <button id="zoom-reset-btn" class="btn btn-icon" title="Reset Zoom">⊙</button>
49
- <button id="zoom-in-btn" class="btn btn-icon" title="Zoom In">+</button>
50
- </div>
51
- </div>
52
- <div class="graph-container">
53
- <canvas id="graph-canvas"></canvas>
54
- <div id="graph-empty" class="graph-empty">
55
- <div class="empty-icon">📊</div>
56
- <p>Select a session to view its branch graph</p>
57
- </div>
58
- </div>
59
- </div>
60
-
61
- <!-- Right Sidebar: Details & Actions -->
62
- <aside class="details-sidebar">
63
- <div id="details-empty" class="details-empty active">
64
- <div class="empty-icon">👆</div>
65
- <p>Click on a node in the graph<br>to see details</p>
66
- </div>
67
-
68
- <div id="details-main" class="details-content">
69
- <div class="details-header">
70
- <h3>Main Branch</h3>
71
- <div class="status-indicator status-active" id="main-status"></div>
72
- </div>
73
- <div class="details-body">
74
- <div class="detail-row">
75
- <label>Session:</label>
76
- <span id="main-session-name"></span>
77
- </div>
78
- <div class="detail-row">
79
- <label>Created:</label>
80
- <span id="main-created"></span>
81
- </div>
82
- <div class="detail-row">
83
- <label>Tmux:</label>
84
- <span id="main-tmux" class="mono"></span>
85
- </div>
86
- <div class="detail-row" id="main-context-row" style="display:none;">
87
- <label>Context:</label>
88
- <span id="main-context" class="mono"></span>
89
- </div>
90
- </div>
91
- <div class="details-actions">
92
- <button id="main-resume-btn" class="btn btn-success btn-block">▶ Resume</button>
93
- <button id="main-close-btn" class="btn btn-warning btn-block">⏸ Close & Save</button>
94
- <button id="new-fork-btn" class="btn btn-primary btn-block">🌿 Create Fork</button>
95
- <button id="send-command-main-btn" class="btn btn-secondary btn-block">💬 Send Command</button>
96
- </div>
97
- </div>
98
-
99
- <div id="details-fork" class="details-content">
100
- <div class="details-header">
101
- <h3 id="fork-name"></h3>
102
- <div class="status-indicator" id="fork-status"></div>
103
- </div>
104
- <div class="details-body">
105
- <div class="detail-row">
106
- <label>Fork ID:</label>
107
- <span id="fork-id" class="mono"></span>
108
- </div>
109
- <div class="detail-row">
110
- <label>Created:</label>
111
- <span id="fork-created"></span>
112
- </div>
113
- <div class="detail-row">
114
- <label>Tmux Pane:</label>
115
- <span id="fork-pane" class="mono"></span>
116
- </div>
117
- <div class="detail-row" id="fork-context-row" style="display:none;">
118
- <label>Context:</label>
119
- <span id="fork-context" class="mono"></span>
120
- </div>
121
- <div class="detail-row" id="fork-merged-row" style="display:none;">
122
- <label>Merged:</label>
123
- <span id="fork-merged"></span>
124
- </div>
125
- </div>
126
- <div class="details-actions">
127
- <button id="fork-export-btn" class="btn btn-info btn-block">💾 Export Context</button>
128
- <button id="fork-merge-btn" class="btn btn-success btn-block">🔀 Merge to Main</button>
129
- <button id="fork-resume-btn" class="btn btn-primary btn-block">▶ Resume</button>
130
- <button id="fork-close-btn" class="btn btn-warning btn-block">⏸ Close & Save</button>
131
- <button id="send-command-fork-btn" class="btn btn-secondary btn-block">💬 Send Command</button>
132
- <button id="fork-delete-btn" class="btn btn-danger btn-block">🗑 Delete</button>
133
- </div>
134
- </div>
135
-
136
- <div id="details-session" class="details-content">
137
- <div class="details-header">
138
- <h3 id="session-detail-name"></h3>
139
- <div class="status-indicator" id="session-detail-status"></div>
140
- </div>
141
- <div class="details-body">
142
- <div class="detail-row">
143
- <label>Session ID:</label>
144
- <span id="session-detail-id" class="mono"></span>
145
- </div>
146
- <div class="detail-row">
147
- <label>Forks:</label>
148
- <span id="session-detail-forks"></span>
149
- </div>
150
- <div class="detail-row">
151
- <label>Created:</label>
152
- <span id="session-detail-created"></span>
153
- </div>
154
- </div>
155
- <div class="details-actions">
156
- <button id="session-detail-resume-btn" class="btn btn-success btn-block">▶ Resume Session</button>
157
- <button id="session-detail-close-btn" class="btn btn-warning btn-block">⏸ Close Session</button>
158
- <button id="session-detail-delete-btn" class="btn btn-danger btn-block">🗑 Delete Session</button>
159
- </div>
160
- </div>
161
- </aside>
162
- </div>
163
-
164
- <!-- Command Input Modal -->
165
- <div id="command-modal" class="modal">
166
- <div class="modal-content">
167
- <div class="modal-header">
168
- <h3>Send Command</h3>
169
- <button class="modal-close">&times;</button>
170
- </div>
171
- <div class="modal-body">
172
- <label>Target: <strong id="command-target-label"></strong></label>
173
- <textarea id="command-input" class="textarea" placeholder="Enter command to send..." rows="6"></textarea>
174
- <div class="modal-hint">Tip: This will be sent directly to the tmux pane</div>
175
- </div>
176
- <div class="modal-footer">
177
- <button id="command-cancel-btn" class="btn btn-secondary">Cancel</button>
178
- <button id="command-send-btn" class="btn btn-primary">Send</button>
179
- </div>
180
- </div>
181
- </div>
182
-
183
- <!-- Toast notifications -->
184
- <div id="toast-container" class="toast-container"></div>
185
- </div>
186
-
187
- <script src="app.js"></script>
188
- </body>
189
- </html>
@@ -1,3 +0,0 @@
1
- import './styles/global.css';
2
- export declare function App(): import("react").JSX.Element;
3
- //# sourceMappingURL=App.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../../../electron/renderer/src/App.tsx"],"names":[],"mappings":"AAKA,OAAO,qBAAqB,CAAA;AAE5B,wBAAgB,GAAG,gCA4FlB"}
@@ -1,74 +0,0 @@
1
- import { useState, useEffect } from 'react';
2
- import { SessionTree } from './components/SessionTree';
3
- import { SessionInfo } from './components/SessionInfo';
4
- import { ActionPanel } from './components/ActionPanel';
5
- import './styles/global.css';
6
- export function App() {
7
- const [session, setSession] = useState(null);
8
- const [selectedNode, setSelectedNode] = useState('main');
9
- const [loading, setLoading] = useState(true);
10
- useEffect(() => {
11
- // Request session data from main process
12
- window.electronAPI.getSession().then((sessionData) => {
13
- setSession(sessionData);
14
- setLoading(false);
15
- });
16
- // Listen for state updates
17
- window.electronAPI.onStateUpdate((updatedSession) => {
18
- setSession(updatedSession);
19
- });
20
- }, []);
21
- const handleNodeClick = async (nodeId) => {
22
- setSelectedNode(nodeId);
23
- await window.electronAPI.selectNode(nodeId);
24
- };
25
- const handleCreateFork = async () => {
26
- if (!session)
27
- return;
28
- const forkName = prompt('Enter fork name:');
29
- if (!forkName)
30
- return;
31
- await window.electronAPI.createFork(session.id, forkName);
32
- };
33
- const handleExportFork = async () => {
34
- if (!session || selectedNode === 'main')
35
- return;
36
- await window.electronAPI.exportFork(session.id, selectedNode);
37
- };
38
- const handleMergeFork = async () => {
39
- if (!session || selectedNode === 'main')
40
- return;
41
- const confirm = window.confirm(`Are you sure you want to merge "${selectedNode}" to main?`);
42
- if (!confirm)
43
- return;
44
- await window.electronAPI.mergeFork(session.id, selectedNode);
45
- };
46
- if (loading) {
47
- return (<div className="loading">
48
- <div className="spinner"></div>
49
- <p>Loading session...</p>
50
- </div>);
51
- }
52
- if (!session) {
53
- return (<div className="error">
54
- <p>No session data available</p>
55
- </div>);
56
- }
57
- return (<div className="app">
58
- <div className="titlebar" data-tauri-drag-region>
59
- <span className="titlebar-text">🎭 Claude-Orka</span>
60
- <button className="titlebar-button" onClick={() => window.electronAPI.closeWindow()}>
61
-
62
- </button>
63
- </div>
64
-
65
- <SessionInfo session={session}/>
66
-
67
- <div className="content">
68
- <SessionTree session={session} selectedNode={selectedNode} onNodeClick={handleNodeClick}/>
69
- </div>
70
-
71
- <ActionPanel selectedNode={selectedNode} onCreateFork={handleCreateFork} onExportFork={handleExportFork} onMergeFork={handleMergeFork}/>
72
- </div>);
73
- }
74
- //# sourceMappingURL=App.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"App.js","sourceRoot":"","sources":["../../../../electron/renderer/src/App.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- interface ActionPanelProps {
2
- selectedNode: string;
3
- onCreateFork: () => void;
4
- onExportFork: () => void;
5
- onMergeFork: () => void;
6
- }
7
- export declare function ActionPanel({ selectedNode, onCreateFork, onExportFork, onMergeFork, }: ActionPanelProps): import("react").JSX.Element;
8
- export {};
9
- //# sourceMappingURL=ActionPanel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionPanel.d.ts","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/ActionPanel.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,EAAE,MAAM,IAAI,CAAA;CACxB;AAED,wBAAgB,WAAW,CAAC,EAC1B,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,EAAE,gBAAgB,+BA2ClB"}
@@ -1,29 +0,0 @@
1
- import { GitBranch, Upload, GitMerge } from 'lucide-react';
2
- export function ActionPanel({ selectedNode, onCreateFork, onExportFork, onMergeFork, }) {
3
- const isForkSelected = selectedNode !== 'main';
4
- return (<div className="action-panel">
5
- <div className="action-panel-header">
6
- <span className="action-panel-title">
7
- Actions for: <strong>{selectedNode === 'main' ? 'MAIN' : selectedNode.slice(0, 8)}...</strong>
8
- </span>
9
- </div>
10
-
11
- <div className="action-buttons">
12
- <button className="action-button primary" onClick={onCreateFork} title="Create a new fork from the current branch">
13
- <GitBranch size={18}/>
14
- <span>New Fork</span>
15
- </button>
16
-
17
- <button className="action-button" onClick={onExportFork} disabled={!isForkSelected} title="Export fork summary">
18
- <Upload size={18}/>
19
- <span>Export</span>
20
- </button>
21
-
22
- <button className="action-button" onClick={onMergeFork} disabled={!isForkSelected} title="Merge fork back to main">
23
- <GitMerge size={18}/>
24
- <span>Merge</span>
25
- </button>
26
- </div>
27
- </div>);
28
- }
29
- //# sourceMappingURL=ActionPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionPanel.js","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/ActionPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAS1D,MAAM,UAAU,WAAW,CAAC,EAC1B,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,GACM;IACjB,MAAM,cAAc,GAAG,YAAY,KAAK,MAAM,CAAA;IAE9C,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAC3B;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAClC;QAAA,CAAC,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAClC;uBAAa,CAAC,MAAM,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAC/F;QAAA,EAAE,IAAI,CACR;MAAA,EAAE,GAAG,CAEL;;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAC7B;QAAA,CAAC,MAAM,CACL,SAAS,CAAC,uBAAuB,CACjC,OAAO,CAAC,CAAC,YAAY,CAAC,CACtB,KAAK,CAAC,2CAA2C,CAEjD;UAAA,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EACpB;UAAA,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CACtB;QAAA,EAAE,MAAM,CAER;;QAAA,CAAC,MAAM,CACL,SAAS,CAAC,eAAe,CACzB,OAAO,CAAC,CAAC,YAAY,CAAC,CACtB,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAC1B,KAAK,CAAC,qBAAqB,CAE3B;UAAA,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EACjB;UAAA,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CACpB;QAAA,EAAE,MAAM,CAER;;QAAA,CAAC,MAAM,CACL,SAAS,CAAC,eAAe,CACzB,OAAO,CAAC,CAAC,WAAW,CAAC,CACrB,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAC1B,KAAK,CAAC,yBAAyB,CAE/B;UAAA,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EACnB;UAAA,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CACnB;QAAA,EAAE,MAAM,CACV;MAAA,EAAE,GAAG,CACP;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC"}
@@ -1,11 +0,0 @@
1
- interface NodeCardProps {
2
- data: {
3
- label: string;
4
- status: string;
5
- claudeSessionId?: string;
6
- selected: boolean;
7
- };
8
- }
9
- export declare function NodeCard({ data }: NodeCardProps): import("react").JSX.Element;
10
- export {};
11
- //# sourceMappingURL=NodeCard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeCard.d.ts","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/NodeCard.tsx"],"names":[],"mappings":"AAGA,UAAU,aAAa;IACrB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;QACd,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;CACF;AAED,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,aAAa,+BA+C/C"}
@@ -1,45 +0,0 @@
1
- import { Handle, Position } from 'reactflow';
2
- import { Circle, CheckCircle, PlayCircle } from 'lucide-react';
3
- export function NodeCard({ data }) {
4
- const getStatusIcon = () => {
5
- switch (data.status) {
6
- case 'active':
7
- return <PlayCircle className="status-icon active" size={16}/>;
8
- case 'saved':
9
- return <CheckCircle className="status-icon saved" size={16}/>;
10
- default:
11
- return <Circle className="status-icon" size={16}/>;
12
- }
13
- };
14
- const getStatusColor = () => {
15
- switch (data.status) {
16
- case 'active':
17
- return 'active';
18
- case 'saved':
19
- return 'saved';
20
- case 'merged':
21
- return 'merged';
22
- default:
23
- return '';
24
- }
25
- };
26
- return (<div className={`node-card ${data.selected ? 'selected' : ''} ${getStatusColor()}`}>
27
- <Handle type="target" position={Position.Top} className="node-handle"/>
28
-
29
- <div className="node-header">
30
- {getStatusIcon()}
31
- <span className="node-label">{data.label}</span>
32
- </div>
33
-
34
- {data.claudeSessionId && (<div className="node-id">
35
- {data.claudeSessionId.slice(0, 8)}...
36
- </div>)}
37
-
38
- <div className="node-status-badge">
39
- {data.status}
40
- </div>
41
-
42
- <Handle type="source" position={Position.Bottom} className="node-handle"/>
43
- </div>);
44
- }
45
- //# sourceMappingURL=NodeCard.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NodeCard.js","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/NodeCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAW9D,MAAM,UAAU,QAAQ,CAAC,EAAE,IAAI,EAAiB;IAC9C,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAG,CAAA;YAChE,KAAK,OAAO;gBACV,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAG,CAAA;YAChE;gBACE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAG,CAAA;QACvD,CAAC;IACH,CAAC,CAAA;IAED,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB,KAAK,OAAO;gBACV,OAAO,OAAO,CAAA;YAChB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAA;YACjB;gBACE,OAAO,EAAE,CAAA;QACb,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,cAAc,EAAE,EAAE,CAAC,CACjF;MAAA,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,aAAa,EAErE;;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAC1B;QAAA,CAAC,aAAa,EAAE,CAChB;QAAA,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CACjD;MAAA,EAAE,GAAG,CAEL;;MAAA,CAAC,IAAI,CAAC,eAAe,IAAI,CACvB,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CACtB;UAAA,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,EAAE,GAAG,CAAC,CACP,CAED;;MAAA,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,CAChC;QAAA,CAAC,IAAI,CAAC,MAAM,CACd;MAAA,EAAE,GAAG,CAEL;;MAAA,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,EAC1E;IAAA,EAAE,GAAG,CAAC,CACP,CAAA;AACH,CAAC"}
@@ -1,7 +0,0 @@
1
- import type { Session } from '../../../../src/models/Session';
2
- interface SessionInfoProps {
3
- session: Session;
4
- }
5
- export declare function SessionInfo({ session }: SessionInfoProps): import("react").JSX.Element;
6
- export {};
7
- //# sourceMappingURL=SessionInfo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionInfo.d.ts","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/SessionInfo.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAE7D,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAA;CACjB;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,gBAAgB,+BAiDxD"}
@@ -1,49 +0,0 @@
1
- import { Clock, FolderOpen, GitBranch } from 'lucide-react';
2
- export function SessionInfo({ session }) {
3
- const formatDate = (date) => {
4
- const d = new Date(date);
5
- const now = new Date();
6
- const diff = now.getTime() - d.getTime();
7
- const hours = Math.floor(diff / (1000 * 60 * 60));
8
- const days = Math.floor(hours / 24);
9
- if (days > 0) {
10
- return `${days} day${days > 1 ? 's' : ''} ago`;
11
- }
12
- else if (hours > 0) {
13
- return `${hours} hour${hours > 1 ? 's' : ''} ago`;
14
- }
15
- else {
16
- return 'Just now';
17
- }
18
- };
19
- const activeForks = session.forks.filter((f) => f.status === 'active').length;
20
- const savedForks = session.forks.filter((f) => f.status === 'saved').length;
21
- return (<div className="session-info">
22
- <div className="session-info-header">
23
- <h2 className="session-name">{session.name || 'Unnamed Session'}</h2>
24
- <div className={`session-status-badge ${session.status}`}>
25
- {session.status}
26
- </div>
27
- </div>
28
-
29
- <div className="session-meta">
30
- <div className="session-meta-item">
31
- <Clock size={14}/>
32
- <span>{formatDate(session.createdAt)}</span>
33
- </div>
34
-
35
- <div className="session-meta-item">
36
- <FolderOpen size={14}/>
37
- <span>{session.projectPath?.split('/').pop()}</span>
38
- </div>
39
-
40
- <div className="session-meta-item">
41
- <GitBranch size={14}/>
42
- <span>
43
- {activeForks + savedForks} fork{activeForks + savedForks !== 1 ? 's' : ''}
44
- </span>
45
- </div>
46
- </div>
47
- </div>);
48
- }
49
- //# sourceMappingURL=SessionInfo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionInfo.js","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/SessionInfo.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import 'reactflow/dist/style.css';
2
- import type { Session } from '../../../../src/models/Session';
3
- interface SessionTreeProps {
4
- session: Session;
5
- selectedNode: string;
6
- onNodeClick: (nodeId: string) => void;
7
- }
8
- export declare function SessionTree({ session, selectedNode, onNodeClick }: SessionTreeProps): import("react").JSX.Element;
9
- export {};
10
- //# sourceMappingURL=SessionTree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionTree.d.ts","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/SessionTree.tsx"],"names":[],"mappings":"AAOA,OAAO,0BAA0B,CAAA;AAEjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAA;AAE7D,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC;AAMD,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,gBAAgB,+BA+DnF"}
@@ -1,57 +0,0 @@
1
- import ReactFlow, { Background, Controls, MarkerType, } from 'reactflow';
2
- import 'reactflow/dist/style.css';
3
- import { NodeCard } from './NodeCard';
4
- const nodeTypes = {
5
- sessionNode: NodeCard,
6
- };
7
- export function SessionTree({ session, selectedNode, onNodeClick }) {
8
- // Create nodes for main and forks
9
- const nodes = [
10
- {
11
- id: 'main',
12
- type: 'sessionNode',
13
- position: { x: 250, y: 50 },
14
- data: {
15
- label: 'MAIN',
16
- status: session.main?.status || session.status,
17
- claudeSessionId: session.main?.claudeSessionId,
18
- selected: selectedNode === 'main',
19
- },
20
- },
21
- ...session.forks.map((fork, index) => ({
22
- id: fork.id,
23
- type: 'sessionNode',
24
- position: {
25
- x: 100 + index * 150 - (session.forks.length * 75) + 250,
26
- y: 200,
27
- },
28
- data: {
29
- label: fork.name || `Fork ${index + 1}`,
30
- status: fork.status,
31
- claudeSessionId: fork.claudeSessionId,
32
- selected: selectedNode === fork.id,
33
- },
34
- })),
35
- ];
36
- // Create edges from main to each fork
37
- const edges = session.forks.map((fork) => ({
38
- id: `main-${fork.id}`,
39
- source: 'main',
40
- target: fork.id,
41
- animated: fork.status === 'active',
42
- markerEnd: {
43
- type: MarkerType.ArrowClosed,
44
- },
45
- style: {
46
- stroke: fork.status === 'active' ? '#a6e3a1' : '#585b70',
47
- strokeWidth: 2,
48
- },
49
- }));
50
- return (<div style={{ width: '100%', height: '100%' }}>
51
- <ReactFlow nodes={nodes} edges={edges} nodeTypes={nodeTypes} onNodeClick={(_, node) => onNodeClick(node.id)} fitView minZoom={0.5} maxZoom={1.5} defaultViewport={{ x: 0, y: 0, zoom: 1 }} proOptions={{ hideAttribution: true }}>
52
- <Background />
53
- <Controls />
54
- </ReactFlow>
55
- </div>);
56
- }
57
- //# sourceMappingURL=SessionTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionTree.js","sourceRoot":"","sources":["../../../../../electron/renderer/src/components/SessionTree.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=main.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../electron/renderer/src/main.tsx"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import ReactDOM from 'react-dom/client';
3
- import { App } from './App';
4
- ReactDOM.createRoot(document.getElementById('root')).render(<React.StrictMode>
5
- <App />
6
- </React.StrictMode>);
7
- //# sourceMappingURL=main.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../../../electron/renderer/src/main.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAE3B,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,KAAK,CAAC,UAAU,CACf;IAAA,CAAC,GAAG,CAAC,AAAD,EACN;EAAA,EAAE,KAAK,CAAC,UAAU,CAAC,CACpB,CAAA"}