hypercore-cli 1.1.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.
Files changed (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +110 -0
  3. package/dist/api-XGC7D5AW.js +162 -0
  4. package/dist/auth-DNQWYQKT.js +21 -0
  5. package/dist/background-2EGCAAQH.js +14 -0
  6. package/dist/backlog-Q2NZCLNY.js +24 -0
  7. package/dist/chunk-2CMSCWQW.js +162 -0
  8. package/dist/chunk-2LJ2DVEB.js +167 -0
  9. package/dist/chunk-3RPFCQKJ.js +288 -0
  10. package/dist/chunk-43OLRXM5.js +263 -0
  11. package/dist/chunk-4DVYJAJL.js +57 -0
  12. package/dist/chunk-6OL3GA3P.js +173 -0
  13. package/dist/chunk-AUHU7ALH.js +2023 -0
  14. package/dist/chunk-B6A2AKLN.js +139 -0
  15. package/dist/chunk-BE46C7JW.js +46 -0
  16. package/dist/chunk-CUVAUOXL.js +58 -0
  17. package/dist/chunk-GH7E2OJE.js +223 -0
  18. package/dist/chunk-GOOTEPBK.js +271 -0
  19. package/dist/chunk-GPPMJYSM.js +133 -0
  20. package/dist/chunk-GU2FZQ6A.js +69 -0
  21. package/dist/chunk-IOPKN5GD.js +190 -0
  22. package/dist/chunk-IXOIOGR5.js +1505 -0
  23. package/dist/chunk-KRPOPWGA.js +251 -0
  24. package/dist/chunk-MGLJ53QN.js +219 -0
  25. package/dist/chunk-MV4TTRYX.js +533 -0
  26. package/dist/chunk-OPZYEVYR.js +150 -0
  27. package/dist/chunk-QTSLP47C.js +166 -0
  28. package/dist/chunk-R3GPQC7I.js +393 -0
  29. package/dist/chunk-RKB2JOV2.js +43 -0
  30. package/dist/chunk-RNG3K465.js +80 -0
  31. package/dist/chunk-TGTYKBGC.js +86 -0
  32. package/dist/chunk-U5SGAIMM.js +681 -0
  33. package/dist/chunk-V5UHPPSY.js +140 -0
  34. package/dist/chunk-WHLVZCQY.js +245 -0
  35. package/dist/chunk-XDRCBMZZ.js +66 -0
  36. package/dist/chunk-XOS6HPEF.js +134 -0
  37. package/dist/chunk-ZSBHUGWR.js +262 -0
  38. package/dist/claude-NSQ442XD.js +12 -0
  39. package/dist/commands-CK3WFAGI.js +128 -0
  40. package/dist/commands-U63OEO5J.js +1044 -0
  41. package/dist/commands-ZE6GD3WC.js +232 -0
  42. package/dist/config-4EW42BSF.js +8 -0
  43. package/dist/config-loader-SXO674TF.js +24 -0
  44. package/dist/diagnose-AFW3ZTZ4.js +12 -0
  45. package/dist/display-IIUBEYWN.js +58 -0
  46. package/dist/extractor-QV53W2YJ.js +129 -0
  47. package/dist/history-WMSCHERZ.js +180 -0
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.js +406 -0
  50. package/dist/instance-registry-YSIJXSO7.js +15 -0
  51. package/dist/keybindings-JAAMLH3G.js +15 -0
  52. package/dist/loader-WHNTZTLP.js +58 -0
  53. package/dist/network-MM6YWPGO.js +279 -0
  54. package/dist/notify-HPTALZDC.js +14 -0
  55. package/dist/openai-compat-UQWJXBEK.js +12 -0
  56. package/dist/permissions-JUKXMNDH.js +10 -0
  57. package/dist/prompt-QV45TXRL.js +166 -0
  58. package/dist/quality-ST7PPNFR.js +16 -0
  59. package/dist/repl-RT3AHL7M.js +3375 -0
  60. package/dist/roadmap-5OBEKROY.js +17 -0
  61. package/dist/server-PORT7OEG.js +57 -0
  62. package/dist/session-4VUNDWLH.js +21 -0
  63. package/dist/skills-V4A35XKG.js +175 -0
  64. package/dist/store-Y4LU5QTO.js +25 -0
  65. package/dist/team-HO7Z4SIM.js +385 -0
  66. package/dist/telemetry-6R4EIE6O.js +30 -0
  67. package/dist/test-runner-ZQH5Y6OJ.js +619 -0
  68. package/dist/theme-3SYJ3UQA.js +14 -0
  69. package/dist/upgrade-7TGI3SXO.js +83 -0
  70. package/dist/verify-JUDKTPKZ.js +14 -0
  71. package/dist/web/static/app.js +562 -0
  72. package/dist/web/static/index.html +132 -0
  73. package/dist/web/static/mirror.css +1001 -0
  74. package/dist/web/static/mirror.html +184 -0
  75. package/dist/web/static/mirror.js +1125 -0
  76. package/dist/web/static/onboard.css +302 -0
  77. package/dist/web/static/onboard.html +140 -0
  78. package/dist/web/static/onboard.js +260 -0
  79. package/dist/web/static/style.css +602 -0
  80. package/dist/web/static/workspace.css +1568 -0
  81. package/dist/web/static/workspace.html +408 -0
  82. package/dist/web/static/workspace.js +1683 -0
  83. package/dist/web-Z5HSCQHW.js +39 -0
  84. package/package.json +67 -0
@@ -0,0 +1,408 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Hypercore Workspace</title>
7
+ <link rel="stylesheet" href="workspace.css">
8
+ </head>
9
+ <body>
10
+ <!-- ===== Header ===== -->
11
+ <header class="wb-header">
12
+ <div class="wb-header-left">
13
+ <span class="wb-logo">⚡ Hypercore</span>
14
+ <span class="wb-badge" id="modelBadge">--</span>
15
+ </div>
16
+ <div class="wb-header-center">
17
+ <span class="wb-status" id="connStatus">
18
+ <span class="wb-dot wb-dot-disconnected"></span>
19
+ 连接中…
20
+ </span>
21
+ </div>
22
+ <div class="wb-header-right">
23
+ <button class="wb-btn-icon" id="btnSettings" title="设置">⚙️</button>
24
+ </div>
25
+ </header>
26
+
27
+ <!-- ===== Main Layout ===== -->
28
+ <main class="wb-main">
29
+ <!-- 左栏: 导航 -->
30
+ <aside class="wb-sidebar">
31
+ <nav class="wb-nav">
32
+ <button class="wb-nav-item active" data-tab="chat">💬 Chat</button>
33
+ <button class="wb-nav-item" data-tab="files">📁 Files</button>
34
+ <button class="wb-nav-item" data-tab="memory">🧠 Memory</button>
35
+ <button class="wb-nav-item" data-tab="tools">🔧 Tools</button>
36
+ <div class="wb-nav-divider"></div>
37
+ <button class="wb-nav-item" data-tab="team">👥 Team</button>
38
+ <button class="wb-nav-item" data-tab="network">🌐 Network</button>
39
+ </nav>
40
+
41
+ <div class="wb-sidebar-section">
42
+ <div class="wb-section-title">快捷命令</div>
43
+ <div class="wb-shortcuts" id="shortcuts">
44
+ <button class="wb-shortcut" data-cmd="/new">🆕 新会话</button>
45
+ <button class="wb-shortcut" data-cmd="/save">💾 保存</button>
46
+ <button class="wb-shortcut" data-cmd="/cost">💰 费用</button>
47
+ <button class="wb-shortcut" data-cmd="/compact">📦 压缩</button>
48
+ <button class="wb-shortcut" data-cmd="/memory">🧠 记忆</button>
49
+ </div>
50
+ </div>
51
+
52
+ <div class="wb-sidebar-section" id="recommendedLinesSection" style="display:none">
53
+ <div class="wb-section-title">推荐生产线</div>
54
+ <div id="recommendedLines"></div>
55
+ </div>
56
+
57
+ <div class="wb-sidebar-section">
58
+ <div class="wb-section-title">会话</div>
59
+ <div class="wb-session-info" id="sessionInfo">
60
+ <span class="wb-session-id">--</span>
61
+ </div>
62
+ </div>
63
+ </aside>
64
+
65
+ <!-- 中央: Tab 面板 -->
66
+ <section class="wb-content">
67
+ <!-- Chat Tab -->
68
+ <div class="wb-tab-panel active" id="panel-chat">
69
+ <div class="wb-chat-messages" id="chatMessages">
70
+ <div class="wb-welcome-msg">
71
+ <div class="wb-welcome-icon">⚡</div>
72
+ <div class="wb-welcome-text">Hypercore Workspace</div>
73
+ <div class="wb-welcome-sub">CLI 和 GUI 共享同一个会话,输入输出双向同步</div>
74
+ </div>
75
+ </div>
76
+ <div class="wb-chat-input-area">
77
+ <textarea class="wb-chat-input" id="chatInput"
78
+ placeholder="输入消息… (Enter 发送, Shift+Enter 换行)"
79
+ rows="1"></textarea>
80
+ <button class="wb-btn-send" id="btnSend" title="发送">▶</button>
81
+ </div>
82
+ </div>
83
+
84
+ <!-- Files Tab -->
85
+ <div class="wb-tab-panel" id="panel-files">
86
+ <div class="wb-panel-header">
87
+ <span>📁 文件浏览器</span>
88
+ <span class="wb-path-display" id="currentPath">.</span>
89
+ </div>
90
+ <div class="wb-file-list" id="fileList">
91
+ <div class="wb-empty">加载中…</div>
92
+ </div>
93
+ </div>
94
+
95
+ <!-- Memory Tab -->
96
+ <div class="wb-tab-panel" id="panel-memory">
97
+ <div class="wb-panel-header">
98
+ <span>🧠 记忆系统</span>
99
+ <div class="wb-search-box">
100
+ <input type="text" id="memorySearch" placeholder="搜索记忆…" class="wb-search-input">
101
+ <button id="btnMemorySearch" class="wb-search-btn">🔍</button>
102
+ </div>
103
+ </div>
104
+ <div class="wb-memory-stats" id="memoryStats">
105
+ <div class="wb-empty">加载中…</div>
106
+ </div>
107
+ <div class="wb-memory-list" id="memoryList"></div>
108
+ </div>
109
+
110
+ <!-- Tools Tab -->
111
+ <div class="wb-tab-panel" id="panel-tools">
112
+ <div class="wb-panel-header">🔧 工具注册表</div>
113
+ <div class="wb-tool-list" id="toolList">
114
+ <div class="wb-empty">加载中…</div>
115
+ </div>
116
+ </div>
117
+
118
+ <!-- Team Tab -->
119
+ <div class="wb-tab-panel" id="panel-team">
120
+ <div class="wb-panel-header">
121
+ <span>👥 团队协作</span>
122
+ <span class="wb-team-online" id="teamOnlineCount"></span>
123
+ </div>
124
+
125
+ <!-- 未加入团队 -->
126
+ <div id="teamJoinSection" class="wb-team-join">
127
+ <div class="wb-team-join-card">
128
+ <h3>创建或加入团队</h3>
129
+ <div class="wb-join-form">
130
+ <div class="wb-form-group">
131
+ <label>创建新团队</label>
132
+ <div class="wb-form-row">
133
+ <input type="text" id="teamCreateName" placeholder="团队名称" class="wb-input">
134
+ <input type="text" id="teamCreateOwner" placeholder="你的名字" class="wb-input wb-input-sm">
135
+ <button id="btnTeamCreate" class="wb-btn-primary">创建</button>
136
+ </div>
137
+ </div>
138
+ <div class="wb-form-divider">或</div>
139
+ <div class="wb-form-group">
140
+ <label>加入已有团队</label>
141
+ <div class="wb-form-row">
142
+ <input type="text" id="teamJoinCode" placeholder="加入码" class="wb-input">
143
+ <input type="text" id="teamJoinName" placeholder="你的名字" class="wb-input wb-input-sm">
144
+ <button id="btnTeamJoin" class="wb-btn-primary">加入</button>
145
+ </div>
146
+ </div>
147
+ </div>
148
+ </div>
149
+ </div>
150
+
151
+ <!-- 已加入团队 -->
152
+ <div id="teamContent" style="display:none" class="wb-team-content">
153
+ <div class="wb-team-info-bar">
154
+ <span class="wb-team-name" id="teamName">--</span>
155
+ <span class="wb-team-code" id="teamJoinCodeDisplay" title="点击复制加入码">--</span>
156
+ </div>
157
+
158
+ <div class="wb-team-subtabs">
159
+ <button class="wb-subtab active" data-subtab="members">成员</button>
160
+ <button class="wb-subtab" data-subtab="tasks">任务</button>
161
+ <button class="wb-subtab" data-subtab="chat">聊天</button>
162
+ </div>
163
+
164
+ <!-- 成员列表 -->
165
+ <div class="wb-subtab-panel active" id="subtab-members">
166
+ <div class="wb-member-list" id="memberList"></div>
167
+ </div>
168
+
169
+ <!-- 任务看板 -->
170
+ <div class="wb-subtab-panel" id="subtab-tasks">
171
+ <div class="wb-kanban-header">
172
+ <button id="btnAddTask" class="wb-btn-sm">+ 新任务</button>
173
+ </div>
174
+ <div id="taskAddForm" class="wb-task-add-form" style="display:none">
175
+ <input type="text" id="taskTitle" placeholder="任务标题" class="wb-input">
176
+ <select id="taskPriority" class="wb-select">
177
+ <option value="A">A级</option>
178
+ <option value="S">S级</option>
179
+ <option value="B">B级</option>
180
+ <option value="C">C级</option>
181
+ </select>
182
+ <button id="btnTaskSubmit" class="wb-btn-primary wb-btn-sm">添加</button>
183
+ </div>
184
+ <div class="wb-kanban" id="kanbanBoard">
185
+ <div class="wb-kanban-col" data-status="todo">
186
+ <div class="wb-kanban-col-header">📋 TODO</div>
187
+ <div class="wb-kanban-cards" id="col-todo"></div>
188
+ </div>
189
+ <div class="wb-kanban-col" data-status="doing">
190
+ <div class="wb-kanban-col-header">🔨 DOING</div>
191
+ <div class="wb-kanban-cards" id="col-doing"></div>
192
+ </div>
193
+ <div class="wb-kanban-col" data-status="review">
194
+ <div class="wb-kanban-col-header">👀 REVIEW</div>
195
+ <div class="wb-kanban-cards" id="col-review"></div>
196
+ </div>
197
+ <div class="wb-kanban-col" data-status="done">
198
+ <div class="wb-kanban-col-header">✅ DONE</div>
199
+ <div class="wb-kanban-cards" id="col-done"></div>
200
+ </div>
201
+ </div>
202
+ </div>
203
+
204
+ <!-- 团队聊天 -->
205
+ <div class="wb-subtab-panel" id="subtab-chat">
206
+ <div class="wb-team-chat-messages" id="teamChatMessages">
207
+ <div class="wb-empty">暂无消息</div>
208
+ </div>
209
+ <div class="wb-team-chat-typing" id="teamTyping"></div>
210
+ <div class="wb-team-chat-input">
211
+ <input type="text" id="teamChatInput" placeholder="输入消息…" class="wb-input">
212
+ <button id="btnTeamChatSend" class="wb-btn-primary wb-btn-sm">发送</button>
213
+ </div>
214
+ </div>
215
+ </div>
216
+ </div>
217
+
218
+ <!-- Network Tab -->
219
+ <div class="wb-tab-panel" id="panel-network">
220
+ <div class="wb-panel-header">
221
+ <span>🌐 Hyper Network</span>
222
+ <button id="btnRunNetwork" class="wb-btn-primary wb-btn-sm" style="margin-left:auto">运行匹配</button>
223
+ </div>
224
+
225
+ <!-- 需要先加入团队 -->
226
+ <div id="networkNeedTeam" class="wb-empty-state">
227
+ <div class="wb-empty-icon">🔗</div>
228
+ <div>请先在 Team 面板加入团队</div>
229
+ </div>
230
+
231
+ <!-- 已有团队 -->
232
+ <div id="networkContent" style="display:none" class="wb-network-content">
233
+ <!-- 我的档案 -->
234
+ <div class="wb-network-section">
235
+ <div class="wb-section-title">我的档案</div>
236
+ <div class="wb-profile-field">
237
+ <label>Skills</label>
238
+ <div class="wb-tag-list" id="profileSkills"></div>
239
+ <div class="wb-tag-add">
240
+ <input type="text" id="addSkill" placeholder="添加技能…" class="wb-input wb-input-xs">
241
+ <button class="wb-btn-xs" onclick="workspace.addProfileTag('skills','addSkill')">+</button>
242
+ </div>
243
+ </div>
244
+ <div class="wb-profile-field">
245
+ <label>Needs</label>
246
+ <div class="wb-tag-list" id="profileNeeds"></div>
247
+ <div class="wb-tag-add">
248
+ <input type="text" id="addNeed" placeholder="添加需求…" class="wb-input wb-input-xs">
249
+ <button class="wb-btn-xs" onclick="workspace.addProfileTag('needs','addNeed')">+</button>
250
+ </div>
251
+ </div>
252
+ <div class="wb-profile-field">
253
+ <label>Offerings</label>
254
+ <div class="wb-tag-list" id="profileOfferings"></div>
255
+ <div class="wb-tag-add">
256
+ <input type="text" id="addOffering" placeholder="添加提供…" class="wb-input wb-input-xs">
257
+ <button class="wb-btn-xs" onclick="workspace.addProfileTag('offerings','addOffering')">+</button>
258
+ </div>
259
+ </div>
260
+ </div>
261
+
262
+ <!-- 匹配轮次 -->
263
+ <div class="wb-network-section">
264
+ <div class="wb-section-title">匹配轮次</div>
265
+ <div id="networkRoundList" class="wb-round-list">
266
+ <div class="wb-empty">暂无轮次</div>
267
+ </div>
268
+ </div>
269
+
270
+ <!-- 最新摘要 -->
271
+ <div class="wb-network-section">
272
+ <div class="wb-section-title">最新摘要</div>
273
+ <div id="networkDigest" class="wb-digest-area">
274
+ <div class="wb-empty">暂无摘要</div>
275
+ </div>
276
+ </div>
277
+ </div>
278
+ </div>
279
+ </section>
280
+
281
+ <!-- 右栏: 上下文 -->
282
+ <aside class="wb-context">
283
+ <div class="wb-context-section">
284
+ <div class="wb-section-title">会话信息</div>
285
+ <div class="wb-context-item">
286
+ <span class="wb-ctx-label">Session</span>
287
+ <span class="wb-ctx-value" id="ctxSession">--</span>
288
+ </div>
289
+ <div class="wb-context-item">
290
+ <span class="wb-ctx-label">Model</span>
291
+ <span class="wb-ctx-value" id="ctxModel">--</span>
292
+ </div>
293
+ <div class="wb-context-item">
294
+ <span class="wb-ctx-label">Provider</span>
295
+ <span class="wb-ctx-value" id="ctxProvider">--</span>
296
+ </div>
297
+ </div>
298
+
299
+ <div class="wb-context-section">
300
+ <div class="wb-section-title">Token 用量</div>
301
+ <div class="wb-token-bar">
302
+ <div class="wb-token-bar-fill" id="ctxTokenBar" style="width: 0%"></div>
303
+ </div>
304
+ <div class="wb-context-item">
305
+ <span class="wb-ctx-label">Input</span>
306
+ <span class="wb-ctx-value" id="ctxInputTokens">0</span>
307
+ </div>
308
+ <div class="wb-context-item">
309
+ <span class="wb-ctx-label">Output</span>
310
+ <span class="wb-ctx-value" id="ctxOutputTokens">0</span>
311
+ </div>
312
+ <div class="wb-context-item">
313
+ <span class="wb-ctx-label">Total</span>
314
+ <span class="wb-ctx-value wb-ctx-highlight" id="ctxTotalTokens">0</span>
315
+ </div>
316
+ </div>
317
+
318
+ <div class="wb-context-section">
319
+ <div class="wb-section-title">Git</div>
320
+ <div class="wb-context-item">
321
+ <span class="wb-ctx-label">Branch</span>
322
+ <span class="wb-ctx-value wb-ctx-mono" id="ctxGitBranch">--</span>
323
+ </div>
324
+ <div class="wb-context-item">
325
+ <span class="wb-ctx-label">Status</span>
326
+ <span class="wb-ctx-value" id="ctxGitStatus">--</span>
327
+ </div>
328
+ </div>
329
+
330
+ <div class="wb-context-section">
331
+ <div class="wb-section-title">工具</div>
332
+ <div class="wb-ctx-value" id="ctxToolCount">0 个注册工具</div>
333
+ </div>
334
+
335
+ <div class="wb-context-section">
336
+ <div class="wb-section-title">工作目录</div>
337
+ <div class="wb-ctx-value wb-ctx-mono" id="ctxCwd">--</div>
338
+ </div>
339
+ </aside>
340
+ </main>
341
+
342
+ <!-- ===== Footer ===== -->
343
+ <footer class="wb-footer">
344
+ <span id="footerConn">⚪ 未连接</span>
345
+ <span id="footerSession">--</span>
346
+ <span id="footerModel">--</span>
347
+ <span id="footerTokens">0 / 0</span>
348
+ </footer>
349
+
350
+ <!-- Task Edit Modal -->
351
+ <div class="wb-modal-overlay" id="taskEditModal">
352
+ <div class="wb-modal" style="width: min(500px, 90vw)">
353
+ <div class="wb-modal-header">
354
+ <span class="wb-modal-title">编辑任务</span>
355
+ <button class="wb-modal-close" onclick="document.getElementById('taskEditModal').classList.remove('visible')">&times;</button>
356
+ </div>
357
+ <div class="wb-modal-form">
358
+ <input type="hidden" id="editTaskId">
359
+ <div class="wb-form-group">
360
+ <label>标题</label>
361
+ <input type="text" id="editTaskTitle" class="wb-input">
362
+ </div>
363
+ <div class="wb-form-row">
364
+ <div class="wb-form-group" style="flex:1">
365
+ <label>状态</label>
366
+ <select id="editTaskStatus" class="wb-select">
367
+ <option value="todo">TODO</option>
368
+ <option value="doing">DOING</option>
369
+ <option value="review">REVIEW</option>
370
+ <option value="done">DONE</option>
371
+ </select>
372
+ </div>
373
+ <div class="wb-form-group" style="flex:1">
374
+ <label>优先级</label>
375
+ <select id="editTaskPriority" class="wb-select">
376
+ <option value="S">S级</option>
377
+ <option value="A">A级</option>
378
+ <option value="B">B级</option>
379
+ <option value="C">C级</option>
380
+ </select>
381
+ </div>
382
+ </div>
383
+ <div class="wb-form-group">
384
+ <label>指派</label>
385
+ <input type="text" id="editTaskAssignee" class="wb-input" placeholder="成员名称">
386
+ </div>
387
+ <div class="wb-form-actions">
388
+ <button id="btnTaskDelete" class="wb-btn-danger wb-btn-sm">删除</button>
389
+ <button id="btnTaskSave" class="wb-btn-primary wb-btn-sm">保存</button>
390
+ </div>
391
+ </div>
392
+ </div>
393
+ </div>
394
+
395
+ <!-- File Preview Modal -->
396
+ <div class="wb-modal-overlay" id="filePreviewModal">
397
+ <div class="wb-modal">
398
+ <div class="wb-modal-header">
399
+ <span class="wb-modal-title" id="previewFileName">--</span>
400
+ <button class="wb-modal-close" id="btnClosePreview">&times;</button>
401
+ </div>
402
+ <pre class="wb-modal-body"><code id="previewContent"></code></pre>
403
+ </div>
404
+ </div>
405
+
406
+ <script src="workspace.js"></script>
407
+ </body>
408
+ </html>