kimi-code-memory-mcp-server 0.1.0 → 0.1.2

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 (129) hide show
  1. package/CHANGELOG.md +29 -1
  2. package/README.en.md +342 -0
  3. package/README.md +267 -125
  4. package/assets/contextFlow.svg +144 -0
  5. package/assets/user-agents.md +111 -0
  6. package/dist/config.d.ts +13 -0
  7. package/dist/config.js +13 -0
  8. package/dist/config.js.map +1 -1
  9. package/dist/context/wire-context.d.ts +3 -0
  10. package/dist/context/wire-context.js +20 -50
  11. package/dist/context/wire-context.js.map +1 -1
  12. package/dist/dao/constants.d.ts +33 -0
  13. package/dist/dao/constants.js +17 -0
  14. package/dist/dao/constants.js.map +1 -0
  15. package/dist/dao/index-catalog.d.ts +19 -0
  16. package/dist/dao/index-catalog.js +94 -0
  17. package/dist/dao/index-catalog.js.map +1 -0
  18. package/dist/dao/index-reconciler.d.ts +13 -0
  19. package/dist/dao/index-reconciler.js +162 -0
  20. package/dist/dao/index-reconciler.js.map +1 -0
  21. package/dist/dao/index-store.d.ts +31 -0
  22. package/dist/dao/index-store.js +128 -0
  23. package/dist/dao/index-store.js.map +1 -0
  24. package/dist/dao/index.d.ts +12 -31
  25. package/dist/dao/index.js +50 -404
  26. package/dist/dao/index.js.map +1 -1
  27. package/dist/dao/memory-store.js +2 -10
  28. package/dist/dao/memory-store.js.map +1 -1
  29. package/dist/dao/memory-tree-renderer.d.ts +22 -0
  30. package/dist/dao/memory-tree-renderer.js +75 -0
  31. package/dist/dao/memory-tree-renderer.js.map +1 -0
  32. package/dist/prompts/index.d.ts +26 -0
  33. package/dist/prompts/index.js +103 -0
  34. package/dist/prompts/index.js.map +1 -0
  35. package/dist/refine/adapter.d.ts +6 -0
  36. package/dist/refine/adapter.js +28 -0
  37. package/dist/refine/adapter.js.map +1 -0
  38. package/dist/refine/constants.d.ts +35 -0
  39. package/dist/refine/constants.js +107 -0
  40. package/dist/refine/constants.js.map +1 -0
  41. package/dist/refine/extractor.d.ts +12 -0
  42. package/dist/refine/extractor.js +122 -0
  43. package/dist/refine/extractor.js.map +1 -0
  44. package/dist/refine/store.d.ts +19 -0
  45. package/dist/refine/store.js +139 -0
  46. package/dist/refine/store.js.map +1 -0
  47. package/dist/refine/types.d.ts +56 -0
  48. package/dist/refine/types.js +5 -0
  49. package/dist/refine/types.js.map +1 -0
  50. package/dist/refined-manager.d.ts +10 -56
  51. package/dist/refined-manager.js +22 -341
  52. package/dist/refined-manager.js.map +1 -1
  53. package/dist/resources/index.d.ts +15 -0
  54. package/dist/resources/index.js +134 -0
  55. package/dist/resources/index.js.map +1 -0
  56. package/dist/server.js +46 -2
  57. package/dist/server.js.map +1 -1
  58. package/dist/setup-cli.d.ts +11 -0
  59. package/dist/setup-cli.js +84 -0
  60. package/dist/setup-cli.js.map +1 -0
  61. package/dist/setup.d.ts +33 -0
  62. package/dist/setup.js +206 -0
  63. package/dist/setup.js.map +1 -0
  64. package/dist/tools/context-tools.d.ts +16 -51
  65. package/dist/tools/context-tools.js +247 -55
  66. package/dist/tools/context-tools.js.map +1 -1
  67. package/dist/tools/index.d.ts +5 -827
  68. package/dist/tools/index.js +23 -354
  69. package/dist/tools/index.js.map +1 -1
  70. package/dist/tools/memory-tools.d.ts +4 -60
  71. package/dist/tools/memory-tools.js +129 -79
  72. package/dist/tools/memory-tools.js.map +1 -1
  73. package/dist/tools/system-tools.d.ts +3 -34
  74. package/dist/tools/system-tools.js +86 -32
  75. package/dist/tools/system-tools.js.map +1 -1
  76. package/dist/tools/theme-tools.d.ts +3 -31
  77. package/dist/tools/theme-tools.js +78 -22
  78. package/dist/tools/theme-tools.js.map +1 -1
  79. package/dist/tools/types.d.ts +21 -0
  80. package/dist/tools/types.js +13 -0
  81. package/dist/tools/types.js.map +1 -0
  82. package/dist/types.d.ts +4 -2
  83. package/dist/utils/action-entities.d.ts +16 -0
  84. package/dist/utils/action-entities.js +35 -0
  85. package/dist/utils/action-entities.js.map +1 -0
  86. package/dist/utils/date.d.ts +11 -0
  87. package/dist/utils/date.js +13 -0
  88. package/dist/utils/date.js.map +1 -0
  89. package/dist/utils/file-helpers.d.ts +10 -0
  90. package/dist/utils/file-helpers.js +28 -0
  91. package/dist/utils/file-helpers.js.map +1 -0
  92. package/dist/utils/headings.d.ts +5 -0
  93. package/dist/utils/headings.js +21 -0
  94. package/dist/utils/headings.js.map +1 -0
  95. package/dist/utils/search.d.ts +17 -0
  96. package/dist/utils/search.js +60 -0
  97. package/dist/utils/search.js.map +1 -0
  98. package/dist/utils/tools.d.ts +5 -0
  99. package/dist/utils/tools.js +10 -0
  100. package/dist/utils/tools.js.map +1 -0
  101. package/dist/version.d.ts +1 -1
  102. package/dist/version.js +1 -1
  103. package/dist/vis/api.d.ts +82 -0
  104. package/dist/vis/api.js +212 -0
  105. package/dist/vis/api.js.map +1 -0
  106. package/dist/vis/auto-start.d.ts +12 -0
  107. package/dist/vis/auto-start.js +87 -0
  108. package/dist/vis/auto-start.js.map +1 -0
  109. package/dist/vis/server.d.ts +14 -0
  110. package/dist/vis/server.js +103 -0
  111. package/dist/vis/server.js.map +1 -0
  112. package/dist/vis/static/app.js +395 -0
  113. package/dist/vis/static/index.html +95 -0
  114. package/dist/vis/static/style.css +707 -0
  115. package/dist/vis-cli.d.ts +7 -0
  116. package/dist/vis-cli.js +140 -0
  117. package/dist/vis-cli.js.map +1 -0
  118. package/docs/0.agent-memory-market-research.md +354 -0
  119. package/docs/1.memory-system-proposal-for-kimi-code.md +688 -0
  120. package/docs/2.memory-architecture-overview.md +417 -0
  121. package/docs/3.memory-skill-prompt-design.md +430 -0
  122. package/docs/4.kimi-code-native-evolution-roadmap.md +559 -0
  123. package/docs/5.decision-guard-design-notes.md +500 -0
  124. package/docs/ARCHITECTURE.md +2 -2
  125. package/docs/design-story.md +350 -0
  126. package/docs/three-layer-memory-model.md +153 -0
  127. package/docs/three-layer-memory-model.zh-CN.md +153 -0
  128. package/package.json +14 -6
  129. package/README.zh-CN.md +0 -227
@@ -0,0 +1,707 @@
1
+ :root {
2
+ --bg: #0d0d0d;
3
+ --card: #141414;
4
+ --border: #262626;
5
+ --text: #e5e5e5;
6
+ --text-secondary: #a3a3a3;
7
+ --accent: #3b82f6;
8
+ --accent-hover: #2563eb;
9
+ --hover: #1f1f1f;
10
+ --danger: #ef4444;
11
+ --success: #22c55e;
12
+ --radius: 12px;
13
+ --font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
14
+ --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
15
+ }
16
+
17
+ * {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ html,
22
+ body {
23
+ margin: 0;
24
+ padding: 0;
25
+ height: 100%;
26
+ }
27
+
28
+ body {
29
+ font-family: var(--font);
30
+ background: var(--bg);
31
+ color: var(--text);
32
+ line-height: 1.5;
33
+ -webkit-font-smoothing: antialiased;
34
+ }
35
+
36
+ .app {
37
+ display: flex;
38
+ height: 100vh;
39
+ overflow: hidden;
40
+ }
41
+
42
+ .sidebar {
43
+ width: 240px;
44
+ flex-shrink: 0;
45
+ background: var(--card);
46
+ border-right: 1px solid var(--border);
47
+ display: flex;
48
+ flex-direction: column;
49
+ transition: transform 0.2s ease;
50
+ }
51
+
52
+ .brand {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: 12px;
56
+ padding: 20px 18px;
57
+ border-bottom: 1px solid var(--border);
58
+ }
59
+
60
+ .brand-icon {
61
+ width: 32px;
62
+ height: 32px;
63
+ border-radius: 8px;
64
+ background: var(--accent);
65
+ display: grid;
66
+ place-items: center;
67
+ font-weight: 700;
68
+ color: #fff;
69
+ }
70
+
71
+ .brand-text {
72
+ font-weight: 600;
73
+ font-size: 16px;
74
+ }
75
+
76
+ .nav {
77
+ padding: 12px 10px;
78
+ display: flex;
79
+ flex-direction: column;
80
+ gap: 4px;
81
+ flex: 1;
82
+ }
83
+
84
+ .nav-item {
85
+ display: flex;
86
+ align-items: center;
87
+ gap: 12px;
88
+ padding: 10px 12px;
89
+ border-radius: 8px;
90
+ color: var(--text-secondary);
91
+ text-decoration: none;
92
+ font-size: 14px;
93
+ transition: background 0.15s ease, color 0.15s ease;
94
+ }
95
+
96
+ .nav-item:hover,
97
+ .nav-item.active {
98
+ background: var(--hover);
99
+ color: var(--text);
100
+ }
101
+
102
+ .nav-icon {
103
+ font-size: 16px;
104
+ width: 20px;
105
+ text-align: center;
106
+ }
107
+
108
+ .sidebar-footer {
109
+ padding: 14px;
110
+ border-top: 1px solid var(--border);
111
+ }
112
+
113
+ .main {
114
+ flex: 1;
115
+ display: flex;
116
+ flex-direction: column;
117
+ min-width: 0;
118
+ }
119
+
120
+ .topbar {
121
+ height: 56px;
122
+ background: var(--card);
123
+ border-bottom: 1px solid var(--border);
124
+ display: flex;
125
+ align-items: center;
126
+ gap: 12px;
127
+ padding: 0 20px;
128
+ }
129
+
130
+ .menu-toggle {
131
+ display: none;
132
+ background: transparent;
133
+ border: none;
134
+ color: var(--text);
135
+ font-size: 20px;
136
+ cursor: pointer;
137
+ padding: 4px 8px;
138
+ border-radius: 6px;
139
+ }
140
+
141
+ .menu-toggle:hover {
142
+ background: var(--hover);
143
+ }
144
+
145
+ .workspace-id {
146
+ font-family: var(--mono);
147
+ font-size: 12px;
148
+ color: var(--text-secondary);
149
+ white-space: nowrap;
150
+ overflow: hidden;
151
+ text-overflow: ellipsis;
152
+ }
153
+
154
+ .content {
155
+ flex: 1;
156
+ overflow-y: auto;
157
+ padding: 24px;
158
+ }
159
+
160
+ .view {
161
+ display: none;
162
+ animation: fadeIn 0.2s ease;
163
+ }
164
+
165
+ .view-active {
166
+ display: block;
167
+ }
168
+
169
+ @keyframes fadeIn {
170
+ from {
171
+ opacity: 0;
172
+ transform: translateY(6px);
173
+ }
174
+ to {
175
+ opacity: 1;
176
+ transform: translateY(0);
177
+ }
178
+ }
179
+
180
+ .page-title {
181
+ margin: 0 0 20px;
182
+ font-size: 24px;
183
+ font-weight: 600;
184
+ }
185
+
186
+ .card {
187
+ background: var(--card);
188
+ border: 1px solid var(--border);
189
+ border-radius: var(--radius);
190
+ padding: 18px;
191
+ margin-bottom: 16px;
192
+ }
193
+
194
+ .card-header {
195
+ display: flex;
196
+ align-items: center;
197
+ justify-content: space-between;
198
+ margin-bottom: 14px;
199
+ }
200
+
201
+ .card-title {
202
+ margin: 0;
203
+ font-size: 16px;
204
+ font-weight: 600;
205
+ }
206
+
207
+ .stats-grid {
208
+ display: grid;
209
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
210
+ gap: 14px;
211
+ margin-bottom: 20px;
212
+ }
213
+
214
+ .stat-card {
215
+ background: var(--card);
216
+ border: 1px solid var(--border);
217
+ border-radius: var(--radius);
218
+ padding: 16px;
219
+ }
220
+
221
+ .stat-value {
222
+ font-size: 28px;
223
+ font-weight: 700;
224
+ color: var(--text);
225
+ margin-bottom: 4px;
226
+ }
227
+
228
+ .stat-label {
229
+ font-size: 13px;
230
+ color: var(--text-secondary);
231
+ text-transform: capitalize;
232
+ }
233
+
234
+ .essence-editor {
235
+ width: 100%;
236
+ min-height: 320px;
237
+ background: var(--bg);
238
+ border: 1px solid var(--border);
239
+ border-radius: 8px;
240
+ color: var(--text);
241
+ font-family: var(--font);
242
+ font-size: 14px;
243
+ line-height: 1.6;
244
+ padding: 14px;
245
+ resize: vertical;
246
+ outline: none;
247
+ transition: border-color 0.15s ease;
248
+ }
249
+
250
+ .essence-editor:focus {
251
+ border-color: var(--accent);
252
+ }
253
+
254
+ .status {
255
+ margin-top: 10px;
256
+ font-size: 13px;
257
+ min-height: 20px;
258
+ }
259
+
260
+ .status.success {
261
+ color: var(--success);
262
+ }
263
+
264
+ .status.error {
265
+ color: var(--danger);
266
+ }
267
+
268
+ .btn {
269
+ display: inline-flex;
270
+ align-items: center;
271
+ justify-content: center;
272
+ gap: 6px;
273
+ padding: 8px 14px;
274
+ border-radius: 8px;
275
+ font-size: 14px;
276
+ font-weight: 500;
277
+ border: 1px solid transparent;
278
+ cursor: pointer;
279
+ transition: background 0.15s ease, border-color 0.15s ease;
280
+ background: var(--hover);
281
+ color: var(--text);
282
+ }
283
+
284
+ .btn:hover {
285
+ background: #2a2a2a;
286
+ }
287
+
288
+ .btn-primary {
289
+ background: var(--accent);
290
+ color: #fff;
291
+ }
292
+
293
+ .btn-primary:hover {
294
+ background: var(--accent-hover);
295
+ }
296
+
297
+ .btn-ghost {
298
+ background: transparent;
299
+ border-color: var(--border);
300
+ color: var(--text-secondary);
301
+ width: 100%;
302
+ }
303
+
304
+ .btn-ghost:hover {
305
+ background: var(--hover);
306
+ color: var(--text);
307
+ }
308
+
309
+ .btn-sm {
310
+ padding: 6px 10px;
311
+ font-size: 12px;
312
+ }
313
+
314
+ .themes-grid {
315
+ display: grid;
316
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
317
+ gap: 14px;
318
+ }
319
+
320
+ .theme-card {
321
+ background: var(--card);
322
+ border: 1px solid var(--border);
323
+ border-radius: var(--radius);
324
+ padding: 16px;
325
+ cursor: pointer;
326
+ transition: border-color 0.15s ease, transform 0.1s ease;
327
+ }
328
+
329
+ .theme-card:hover {
330
+ border-color: var(--accent);
331
+ transform: translateY(-2px);
332
+ }
333
+
334
+ .theme-name {
335
+ font-size: 15px;
336
+ font-weight: 600;
337
+ margin-bottom: 6px;
338
+ word-break: break-word;
339
+ }
340
+
341
+ .theme-meta {
342
+ font-size: 12px;
343
+ color: var(--text-secondary);
344
+ display: flex;
345
+ gap: 12px;
346
+ }
347
+
348
+ .decisions-list {
349
+ display: flex;
350
+ flex-direction: column;
351
+ gap: 14px;
352
+ }
353
+
354
+ .decision-card {
355
+ background: var(--card);
356
+ border: 1px solid var(--border);
357
+ border-radius: var(--radius);
358
+ padding: 16px;
359
+ }
360
+
361
+ .decision-header {
362
+ display: flex;
363
+ align-items: center;
364
+ justify-content: space-between;
365
+ margin-bottom: 10px;
366
+ }
367
+
368
+ .decision-title {
369
+ font-size: 14px;
370
+ font-weight: 600;
371
+ margin: 0;
372
+ }
373
+
374
+ .decision-time {
375
+ font-family: var(--mono);
376
+ font-size: 11px;
377
+ color: var(--text-secondary);
378
+ }
379
+
380
+ .decision-summary {
381
+ font-size: 14px;
382
+ color: var(--text-secondary);
383
+ margin-bottom: 12px;
384
+ }
385
+
386
+ .decision-bullets {
387
+ margin: 0;
388
+ padding-left: 18px;
389
+ font-size: 14px;
390
+ }
391
+
392
+ .decision-bullets li {
393
+ margin-bottom: 6px;
394
+ }
395
+
396
+ .tag-list {
397
+ display: flex;
398
+ flex-wrap: wrap;
399
+ gap: 6px;
400
+ margin-top: 12px;
401
+ }
402
+
403
+ .tag {
404
+ font-size: 11px;
405
+ padding: 3px 8px;
406
+ border-radius: 999px;
407
+ background: var(--hover);
408
+ color: var(--text-secondary);
409
+ border: 1px solid var(--border);
410
+ }
411
+
412
+ .tag.file {
413
+ font-family: var(--mono);
414
+ }
415
+
416
+ .memories-layout {
417
+ display: grid;
418
+ grid-template-columns: 320px 1fr;
419
+ gap: 16px;
420
+ height: calc(100vh - 140px);
421
+ }
422
+
423
+ .memory-tree,
424
+ .memory-preview {
425
+ background: var(--card);
426
+ border: 1px solid var(--border);
427
+ border-radius: var(--radius);
428
+ overflow-y: auto;
429
+ padding: 14px;
430
+ }
431
+
432
+ .tree-node {
433
+ margin-left: 14px;
434
+ }
435
+
436
+ .tree-folder {
437
+ display: flex;
438
+ align-items: center;
439
+ gap: 8px;
440
+ padding: 6px 0;
441
+ font-size: 14px;
442
+ font-weight: 500;
443
+ color: var(--text);
444
+ cursor: pointer;
445
+ user-select: none;
446
+ }
447
+
448
+ .tree-folder:hover {
449
+ color: var(--accent);
450
+ }
451
+
452
+ .tree-folder-icon {
453
+ color: var(--accent);
454
+ }
455
+
456
+ .tree-file {
457
+ display: flex;
458
+ align-items: center;
459
+ gap: 8px;
460
+ padding: 5px 0 5px 22px;
461
+ font-size: 13px;
462
+ color: var(--text-secondary);
463
+ cursor: pointer;
464
+ border-radius: 6px;
465
+ }
466
+
467
+ .tree-file:hover,
468
+ .tree-file.active {
469
+ background: var(--hover);
470
+ color: var(--text);
471
+ }
472
+
473
+ .tree-comment {
474
+ font-size: 12px;
475
+ color: var(--text-secondary);
476
+ margin: -4px 0 6px 22px;
477
+ }
478
+
479
+ .memory-preview .empty-state {
480
+ display: grid;
481
+ place-items: center;
482
+ height: 100%;
483
+ color: var(--text-secondary);
484
+ font-size: 14px;
485
+ }
486
+
487
+ .preview-header {
488
+ display: flex;
489
+ align-items: flex-start;
490
+ justify-content: space-between;
491
+ gap: 12px;
492
+ margin-bottom: 14px;
493
+ padding-bottom: 14px;
494
+ border-bottom: 1px solid var(--border);
495
+ }
496
+
497
+ .preview-title {
498
+ margin: 0;
499
+ font-size: 18px;
500
+ font-weight: 600;
501
+ }
502
+
503
+ .preview-path {
504
+ font-family: var(--mono);
505
+ font-size: 12px;
506
+ color: var(--text-secondary);
507
+ margin-top: 4px;
508
+ }
509
+
510
+ .preview-content {
511
+ font-size: 14px;
512
+ line-height: 1.7;
513
+ white-space: pre-wrap;
514
+ word-break: break-word;
515
+ }
516
+
517
+ .timeline {
518
+ display: flex;
519
+ flex-direction: column;
520
+ gap: 16px;
521
+ }
522
+
523
+ .timeline-item {
524
+ position: relative;
525
+ padding-left: 28px;
526
+ }
527
+
528
+ .timeline-item::before {
529
+ content: '';
530
+ position: absolute;
531
+ left: 6px;
532
+ top: 28px;
533
+ bottom: -16px;
534
+ width: 2px;
535
+ background: var(--border);
536
+ }
537
+
538
+ .timeline-item:last-child::before {
539
+ display: none;
540
+ }
541
+
542
+ .timeline-dot {
543
+ position: absolute;
544
+ left: 0;
545
+ top: 6px;
546
+ width: 14px;
547
+ height: 14px;
548
+ border-radius: 50%;
549
+ background: var(--accent);
550
+ border: 3px solid var(--card);
551
+ }
552
+
553
+ .timeline-dot.memory {
554
+ background: var(--success);
555
+ }
556
+
557
+ .timeline-time {
558
+ font-family: var(--mono);
559
+ font-size: 11px;
560
+ color: var(--text-secondary);
561
+ margin-bottom: 6px;
562
+ }
563
+
564
+ .timeline-card {
565
+ background: var(--card);
566
+ border: 1px solid var(--border);
567
+ border-radius: var(--radius);
568
+ padding: 14px;
569
+ }
570
+
571
+ .timeline-card h4 {
572
+ margin: 0 0 8px;
573
+ font-size: 14px;
574
+ font-weight: 600;
575
+ }
576
+
577
+ .timeline-card p {
578
+ margin: 0 0 10px;
579
+ font-size: 13px;
580
+ color: var(--text-secondary);
581
+ }
582
+
583
+ .timeline-meta {
584
+ font-size: 12px;
585
+ color: var(--text-secondary);
586
+ display: flex;
587
+ flex-wrap: wrap;
588
+ gap: 10px;
589
+ }
590
+
591
+ .modal {
592
+ display: none;
593
+ position: fixed;
594
+ inset: 0;
595
+ z-index: 100;
596
+ }
597
+
598
+ .modal.open {
599
+ display: block;
600
+ }
601
+
602
+ .modal-backdrop {
603
+ position: absolute;
604
+ inset: 0;
605
+ background: rgba(0, 0, 0, 0.7);
606
+ backdrop-filter: blur(2px);
607
+ }
608
+
609
+ .modal-content {
610
+ position: absolute;
611
+ top: 50%;
612
+ left: 50%;
613
+ transform: translate(-50%, -50%);
614
+ width: min(900px, calc(100vw - 32px));
615
+ max-height: calc(100vh - 48px);
616
+ background: var(--card);
617
+ border: 1px solid var(--border);
618
+ border-radius: var(--radius);
619
+ display: flex;
620
+ flex-direction: column;
621
+ }
622
+
623
+ .modal-header {
624
+ display: flex;
625
+ align-items: center;
626
+ justify-content: space-between;
627
+ padding: 16px 20px;
628
+ border-bottom: 1px solid var(--border);
629
+ }
630
+
631
+ .modal-title {
632
+ margin: 0;
633
+ font-size: 18px;
634
+ font-weight: 600;
635
+ }
636
+
637
+ .modal-close {
638
+ background: transparent;
639
+ border: none;
640
+ color: var(--text-secondary);
641
+ font-size: 24px;
642
+ cursor: pointer;
643
+ }
644
+
645
+ .modal-close:hover {
646
+ color: var(--text);
647
+ }
648
+
649
+ .modal-body {
650
+ padding: 20px;
651
+ overflow-y: auto;
652
+ }
653
+
654
+ .inline-edit {
655
+ display: flex;
656
+ align-items: center;
657
+ gap: 10px;
658
+ margin-bottom: 16px;
659
+ }
660
+
661
+ .inline-edit input {
662
+ flex: 1;
663
+ background: var(--bg);
664
+ border: 1px solid var(--border);
665
+ border-radius: 6px;
666
+ color: var(--text);
667
+ padding: 8px 10px;
668
+ font-size: 14px;
669
+ }
670
+
671
+ .inline-edit input:focus {
672
+ outline: none;
673
+ border-color: var(--accent);
674
+ }
675
+
676
+ @media (max-width: 820px) {
677
+ .sidebar {
678
+ position: fixed;
679
+ left: 0;
680
+ top: 0;
681
+ bottom: 0;
682
+ z-index: 50;
683
+ transform: translateX(-100%);
684
+ }
685
+
686
+ .sidebar.open {
687
+ transform: translateX(0);
688
+ }
689
+
690
+ .menu-toggle {
691
+ display: block;
692
+ }
693
+
694
+ .content {
695
+ padding: 16px;
696
+ }
697
+
698
+ .memories-layout {
699
+ grid-template-columns: 1fr;
700
+ height: auto;
701
+ }
702
+
703
+ .memory-tree,
704
+ .memory-preview {
705
+ min-height: 240px;
706
+ }
707
+ }
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * CLI entry point for `npx kimi-memory-vis`.
4
+ *
5
+ * Launches a local web dashboard that visualizes the workspace memory.
6
+ */
7
+ export {};