antri_cli 1.26.1 → 1.28.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 (39) hide show
  1. package/README.md +89 -42
  2. package/assets/desktop_panel.png +0 -0
  3. package/assets/home.png +0 -0
  4. package/dist/cli/promptToolkit.d.ts.map +1 -1
  5. package/dist/cli/promptToolkit.js +2 -0
  6. package/dist/cli/promptToolkit.js.map +1 -1
  7. package/dist/cli/shortcuts.d.ts.map +1 -1
  8. package/dist/cli/shortcuts.js +13 -0
  9. package/dist/cli/shortcuts.js.map +1 -1
  10. package/dist/core/config.js +1 -1
  11. package/dist/core/config.js.map +1 -1
  12. package/dist/core/updater.d.ts +1 -1
  13. package/dist/core/updater.js +1 -1
  14. package/dist/desktop/public/app.js +699 -0
  15. package/dist/desktop/public/index.html +338 -0
  16. package/dist/desktop/public/style.css +962 -0
  17. package/dist/desktop/server.d.ts +11 -0
  18. package/dist/desktop/server.d.ts.map +1 -0
  19. package/dist/desktop/server.js +361 -0
  20. package/dist/desktop/server.js.map +1 -0
  21. package/dist/index.js +30 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/memory/episodic.d.ts +1 -0
  24. package/dist/memory/episodic.d.ts.map +1 -1
  25. package/dist/memory/episodic.js +3 -0
  26. package/dist/memory/episodic.js.map +1 -1
  27. package/dist/memory/manager.d.ts +6 -0
  28. package/dist/memory/manager.d.ts.map +1 -1
  29. package/dist/memory/manager.js +8 -0
  30. package/dist/memory/manager.js.map +1 -1
  31. package/dist/mobile/public/app.js +449 -0
  32. package/dist/mobile/public/index.html +287 -0
  33. package/dist/mobile/public/manifest.json +16 -0
  34. package/dist/mobile/public/style.css +589 -0
  35. package/dist/mobile/server.d.ts +14 -0
  36. package/dist/mobile/server.d.ts.map +1 -0
  37. package/dist/mobile/server.js +232 -0
  38. package/dist/mobile/server.js.map +1 -0
  39. package/package.json +5 -2
@@ -0,0 +1,589 @@
1
+ /* ANTRI Mobile - Cream White Minimalist Theme */
2
+
3
+ :root {
4
+ --bg-body: #fcfbf9;
5
+ --bg-header: #f7f4ee;
6
+ --bg-card: #ffffff;
7
+ --bg-subtle: #f4efe6;
8
+ --bg-hover: #ebe4d6;
9
+
10
+ --text-primary: #1c1917;
11
+ --text-secondary: #57534e;
12
+ --text-tertiary: #8c827a;
13
+ --text-inverted: #fcfbf9;
14
+
15
+ --accent-primary: #1c1917;
16
+ --accent-active: #0c0a09;
17
+ --accent-success: #15803d;
18
+
19
+ --border-main: #e6e0d4;
20
+ --border-light: #eee9dd;
21
+
22
+ --radius-xs: 4px;
23
+ --radius-sm: 6px;
24
+ --radius-md: 8px;
25
+ --radius-lg: 12px;
26
+
27
+ --font-sans: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
28
+ --font-mono: 'Fira Code', monospace;
29
+ }
30
+
31
+ * {
32
+ box-sizing: border-box;
33
+ margin: 0;
34
+ padding: 0;
35
+ -webkit-tap-highlight-color: transparent;
36
+ }
37
+
38
+ body.mobile-app {
39
+ font-family: var(--font-sans);
40
+ background-color: var(--bg-body);
41
+ color: var(--text-primary);
42
+ height: 100vh;
43
+ height: 100dvh;
44
+ display: flex;
45
+ flex-direction: column;
46
+ overflow: hidden;
47
+ -webkit-font-smoothing: antialiased;
48
+ }
49
+
50
+ /* Header */
51
+ .mobile-header {
52
+ height: 56px;
53
+ background: var(--bg-header);
54
+ border-bottom: 1px solid var(--border-main);
55
+ display: flex;
56
+ align-items: center;
57
+ justify-content: space-between;
58
+ padding: 0 1.2rem;
59
+ padding-top: env(safe-area-inset-top);
60
+ z-index: 20;
61
+ }
62
+
63
+ .brand-zone {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: 0.5rem;
67
+ }
68
+
69
+ .logo-mark {
70
+ font-size: 0.95rem;
71
+ font-weight: 800;
72
+ letter-spacing: 0.08em;
73
+ color: var(--text-primary);
74
+ text-transform: uppercase;
75
+ }
76
+
77
+ .version-tag {
78
+ font-family: var(--font-mono);
79
+ font-size: 0.65rem;
80
+ font-weight: 600;
81
+ color: var(--text-tertiary);
82
+ background: var(--bg-subtle);
83
+ padding: 0.15rem 0.4rem;
84
+ border-radius: var(--radius-xs);
85
+ border: 1px solid var(--border-main);
86
+ }
87
+
88
+ .mode-toggles {
89
+ display: flex;
90
+ background: var(--bg-subtle);
91
+ padding: 2px;
92
+ border-radius: var(--radius-sm);
93
+ border: 1px solid var(--border-main);
94
+ gap: 2px;
95
+ }
96
+
97
+ .mode-btn {
98
+ background: transparent;
99
+ border: none;
100
+ color: var(--text-secondary);
101
+ font-family: var(--font-sans);
102
+ font-size: 0.76rem;
103
+ font-weight: 600;
104
+ padding: 0.3rem 0.65rem;
105
+ border-radius: var(--radius-xs);
106
+ cursor: pointer;
107
+ display: flex;
108
+ align-items: center;
109
+ gap: 5px;
110
+ transition: all 0.15s ease;
111
+ }
112
+
113
+ .mode-btn .indicator-dot {
114
+ width: 5px;
115
+ height: 5px;
116
+ border-radius: 50%;
117
+ background: var(--text-tertiary);
118
+ }
119
+
120
+ .mode-btn.active {
121
+ background: var(--bg-card);
122
+ color: var(--text-primary);
123
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
124
+ }
125
+
126
+ .mode-btn.active .indicator-dot {
127
+ background: var(--text-primary);
128
+ }
129
+
130
+ /* Main Container */
131
+ .mobile-main {
132
+ flex: 1;
133
+ overflow-y: auto;
134
+ position: relative;
135
+ display: flex;
136
+ flex-direction: column;
137
+ }
138
+
139
+ .mobile-view {
140
+ display: none;
141
+ height: 100%;
142
+ padding: 1.25rem;
143
+ padding-bottom: calc(75px + env(safe-area-inset-bottom));
144
+ overflow-y: auto;
145
+ flex-direction: column;
146
+ }
147
+
148
+ .mobile-view.active {
149
+ display: flex;
150
+ }
151
+
152
+ /* Chat View */
153
+ #view-chat {
154
+ padding: 1rem;
155
+ padding-bottom: calc(85px + env(safe-area-inset-bottom));
156
+ display: none;
157
+ flex-direction: column;
158
+ height: 100%;
159
+ position: relative;
160
+ }
161
+
162
+ #view-chat.active {
163
+ display: flex;
164
+ }
165
+
166
+ .chat-messages {
167
+ flex: 1;
168
+ overflow-y: auto;
169
+ display: flex;
170
+ flex-direction: column;
171
+ gap: 0.85rem;
172
+ padding-bottom: 5rem;
173
+ }
174
+
175
+ .welcome-card {
176
+ background: var(--bg-card);
177
+ border: 1px solid var(--border-main);
178
+ border-radius: var(--radius-md);
179
+ padding: 1.75rem 1.25rem;
180
+ text-align: center;
181
+ margin-top: 0.5rem;
182
+ }
183
+
184
+ .welcome-card h2 {
185
+ font-size: 1.2rem;
186
+ font-weight: 700;
187
+ margin-bottom: 0.4rem;
188
+ }
189
+
190
+ .welcome-card p {
191
+ font-size: 0.82rem;
192
+ color: var(--text-secondary);
193
+ line-height: 1.5;
194
+ margin-bottom: 1.15rem;
195
+ }
196
+
197
+ .quick-pills {
198
+ display: flex;
199
+ flex-wrap: wrap;
200
+ gap: 0.4rem;
201
+ justify-content: center;
202
+ }
203
+
204
+ .quick-pills button {
205
+ background: var(--bg-subtle);
206
+ border: 1px solid var(--border-main);
207
+ color: var(--text-primary);
208
+ padding: 0.35rem 0.75rem;
209
+ border-radius: var(--radius-sm);
210
+ font-family: var(--font-sans);
211
+ font-size: 0.75rem;
212
+ font-weight: 500;
213
+ }
214
+
215
+ /* Messages */
216
+ .msg-row {
217
+ display: flex;
218
+ flex-direction: column;
219
+ width: 100%;
220
+ }
221
+
222
+ .msg-row.user .msg-content {
223
+ align-self: flex-end;
224
+ background: var(--accent-primary);
225
+ color: var(--text-inverted);
226
+ border-radius: var(--radius-md) var(--radius-md) 2px var(--radius-md);
227
+ max-width: 88%;
228
+ }
229
+
230
+ .msg-row.assistant .msg-content {
231
+ align-self: flex-start;
232
+ background: var(--bg-card);
233
+ color: var(--text-primary);
234
+ border: 1px solid var(--border-main);
235
+ border-radius: var(--radius-md) var(--radius-md) var(--radius-md) 2px;
236
+ max-width: 94%;
237
+ }
238
+
239
+ .msg-content {
240
+ padding: 0.8rem 1rem;
241
+ font-size: 0.86rem;
242
+ line-height: 1.55;
243
+ white-space: pre-wrap;
244
+ }
245
+
246
+ .tool-badge-pill {
247
+ font-family: var(--font-mono);
248
+ font-size: 0.68rem;
249
+ color: var(--text-secondary);
250
+ background: var(--bg-subtle);
251
+ border: 1px solid var(--border-main);
252
+ padding: 0.2rem 0.45rem;
253
+ border-radius: var(--radius-xs);
254
+ margin-bottom: 0.3rem;
255
+ display: inline-block;
256
+ }
257
+
258
+ /* Mobile Input Bar */
259
+ .mobile-input-bar {
260
+ position: absolute;
261
+ bottom: 0.5rem;
262
+ left: 0.85rem;
263
+ right: 0.85rem;
264
+ z-index: 15;
265
+ }
266
+
267
+ .mobile-attachment-tray {
268
+ display: flex;
269
+ flex-wrap: wrap;
270
+ gap: 0.4rem;
271
+ background: var(--bg-card);
272
+ border: 1px solid var(--border-main);
273
+ border-radius: var(--radius-sm);
274
+ padding: 0.4rem;
275
+ margin-bottom: 0.4rem;
276
+ }
277
+
278
+ .mobile-attach-chip {
279
+ display: flex;
280
+ align-items: center;
281
+ gap: 0.3rem;
282
+ background: var(--bg-subtle);
283
+ border: 1px solid var(--border-main);
284
+ padding: 0.2rem 0.5rem;
285
+ border-radius: var(--radius-xs);
286
+ font-size: 0.72rem;
287
+ font-family: var(--font-mono);
288
+ }
289
+
290
+ .mobile-attach-chip img {
291
+ width: 16px;
292
+ height: 16px;
293
+ object-fit: cover;
294
+ border-radius: 2px;
295
+ }
296
+
297
+ .mobile-input-container {
298
+ background: var(--bg-card);
299
+ border: 1px solid var(--border-main);
300
+ border-radius: 24px;
301
+ padding: 0.35rem 0.6rem 0.35rem 0.45rem;
302
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.05);
303
+ display: flex;
304
+ align-items: center;
305
+ gap: 0.4rem;
306
+ }
307
+
308
+ .mobile-attach-btn {
309
+ width: 34px;
310
+ height: 34px;
311
+ min-width: 34px;
312
+ border-radius: 50%;
313
+ border: 1px solid var(--border-main);
314
+ background: var(--bg-subtle);
315
+ color: var(--text-primary);
316
+ font-size: 1.25rem;
317
+ font-weight: 500;
318
+ display: flex;
319
+ align-items: center;
320
+ justify-content: center;
321
+ cursor: pointer;
322
+ }
323
+
324
+ .mobile-input-container textarea {
325
+ flex: 1;
326
+ background: transparent;
327
+ border: none;
328
+ color: var(--text-primary);
329
+ font-family: var(--font-sans);
330
+ font-size: 0.88rem;
331
+ line-height: 1.4;
332
+ max-height: 100px;
333
+ resize: none;
334
+ outline: none;
335
+ padding: 0.35rem 0.25rem;
336
+ }
337
+
338
+ .mobile-send-btn {
339
+ background: var(--accent-primary);
340
+ color: var(--text-inverted);
341
+ border: none;
342
+ padding: 0.45rem 0.9rem;
343
+ border-radius: 18px;
344
+ font-family: var(--font-sans);
345
+ font-weight: 600;
346
+ font-size: 0.78rem;
347
+ cursor: pointer;
348
+ }
349
+
350
+ /* Generic Mobile Panels & Cards */
351
+ .mobile-panel-header {
352
+ margin-bottom: 1.1rem;
353
+ }
354
+
355
+ .mobile-panel-header h2 {
356
+ font-size: 1.25rem;
357
+ font-weight: 800;
358
+ margin-bottom: 0.2rem;
359
+ }
360
+
361
+ .mobile-panel-header p {
362
+ font-size: 0.8rem;
363
+ color: var(--text-secondary);
364
+ }
365
+
366
+ .mobile-debate-input-card {
367
+ background: var(--bg-card);
368
+ border: 1px solid var(--border-main);
369
+ border-radius: var(--radius-md);
370
+ padding: 0.85rem;
371
+ display: flex;
372
+ flex-direction: column;
373
+ gap: 0.5rem;
374
+ margin-bottom: 1.1rem;
375
+ }
376
+
377
+ .mobile-debate-input-card input {
378
+ background: var(--bg-subtle);
379
+ border: 1px solid var(--border-light);
380
+ border-radius: var(--radius-xs);
381
+ padding: 0.55rem 0.75rem;
382
+ font-family: var(--font-sans);
383
+ font-size: 0.84rem;
384
+ outline: none;
385
+ }
386
+
387
+ .mobile-debate-actions {
388
+ display: flex;
389
+ gap: 0.4rem;
390
+ }
391
+
392
+ .mobile-debate-actions select {
393
+ flex: 1;
394
+ background: var(--bg-subtle);
395
+ border: 1px solid var(--border-light);
396
+ border-radius: var(--radius-xs);
397
+ padding: 0.45rem;
398
+ font-size: 0.8rem;
399
+ }
400
+
401
+ .mobile-action-btn {
402
+ background: var(--accent-primary);
403
+ color: var(--text-inverted);
404
+ border: none;
405
+ padding: 0.5rem 1rem;
406
+ border-radius: var(--radius-xs);
407
+ font-family: var(--font-sans);
408
+ font-weight: 600;
409
+ font-size: 0.8rem;
410
+ cursor: pointer;
411
+ }
412
+
413
+ .mobile-persona-cards,
414
+ .mobile-goal-stages {
415
+ display: flex;
416
+ flex-direction: column;
417
+ gap: 0.85rem;
418
+ }
419
+
420
+ .mobile-card {
421
+ background: var(--bg-card);
422
+ border: 1px solid var(--border-main);
423
+ border-radius: var(--radius-md);
424
+ display: flex;
425
+ flex-direction: column;
426
+ overflow: hidden;
427
+ }
428
+
429
+ .card-header {
430
+ padding: 0.75rem 0.95rem;
431
+ background: var(--bg-header);
432
+ border-bottom: 1px solid var(--border-main);
433
+ display: flex;
434
+ justify-content: space-between;
435
+ align-items: center;
436
+ }
437
+
438
+ .card-header h4 {
439
+ font-size: 0.88rem;
440
+ font-weight: 700;
441
+ }
442
+
443
+ .card-tag {
444
+ font-size: 0.68rem;
445
+ color: var(--text-tertiary);
446
+ text-transform: uppercase;
447
+ font-weight: 600;
448
+ }
449
+
450
+ .card-body {
451
+ padding: 0.85rem;
452
+ font-size: 0.82rem;
453
+ line-height: 1.55;
454
+ color: var(--text-secondary);
455
+ white-space: pre-wrap;
456
+ }
457
+
458
+ /* Profile Controls */
459
+ .mobile-profile-controls {
460
+ display: flex;
461
+ gap: 0.4rem;
462
+ margin-bottom: 1rem;
463
+ }
464
+
465
+ .mobile-profile-controls select {
466
+ flex: 1;
467
+ background: var(--bg-card);
468
+ border: 1px solid var(--border-main);
469
+ border-radius: var(--radius-sm);
470
+ padding: 0.55rem;
471
+ font-size: 0.82rem;
472
+ }
473
+
474
+ .mobile-subtle-btn {
475
+ background: var(--bg-card);
476
+ border: 1px solid var(--border-main);
477
+ padding: 0.55rem 0.9rem;
478
+ border-radius: var(--radius-sm);
479
+ font-weight: 600;
480
+ font-size: 0.8rem;
481
+ }
482
+
483
+ .mobile-profile-editor-card {
484
+ background: var(--bg-card);
485
+ border: 1px solid var(--border-main);
486
+ border-radius: var(--radius-md);
487
+ display: flex;
488
+ flex-direction: column;
489
+ flex: 1;
490
+ min-height: 300px;
491
+ overflow: hidden;
492
+ }
493
+
494
+ .mobile-save-btn {
495
+ background: var(--accent-primary);
496
+ color: var(--text-inverted);
497
+ border: none;
498
+ padding: 0.25rem 0.65rem;
499
+ border-radius: var(--radius-xs);
500
+ font-size: 0.72rem;
501
+ font-weight: 600;
502
+ }
503
+
504
+ .mobile-profile-editor-card textarea {
505
+ flex: 1;
506
+ background: transparent;
507
+ border: none;
508
+ padding: 0.85rem;
509
+ font-family: var(--font-mono);
510
+ font-size: 0.8rem;
511
+ line-height: 1.55;
512
+ resize: none;
513
+ outline: none;
514
+ min-height: 240px;
515
+ }
516
+
517
+ /* Settings */
518
+ .mobile-settings-card {
519
+ background: var(--bg-card);
520
+ border: 1px solid var(--border-main);
521
+ border-radius: var(--radius-md);
522
+ padding: 1.15rem;
523
+ display: flex;
524
+ flex-direction: column;
525
+ gap: 0.85rem;
526
+ }
527
+
528
+ .setting-item {
529
+ display: flex;
530
+ flex-direction: column;
531
+ gap: 0.35rem;
532
+ }
533
+
534
+ .setting-item label {
535
+ font-size: 0.72rem;
536
+ font-weight: 700;
537
+ text-transform: uppercase;
538
+ color: var(--text-tertiary);
539
+ }
540
+
541
+ .setting-item input,
542
+ .setting-item select {
543
+ background: var(--bg-subtle);
544
+ border: 1px solid var(--border-light);
545
+ border-radius: var(--radius-xs);
546
+ padding: 0.55rem 0.75rem;
547
+ font-size: 0.84rem;
548
+ font-family: var(--font-sans);
549
+ outline: none;
550
+ }
551
+
552
+ /* Mobile Bottom Nav */
553
+ .mobile-bottom-nav {
554
+ height: 60px;
555
+ background: var(--bg-header);
556
+ border-top: 1px solid var(--border-main);
557
+ display: flex;
558
+ align-items: center;
559
+ justify-content: space-around;
560
+ padding: 0 0.5rem;
561
+ padding-bottom: env(safe-area-inset-bottom);
562
+ z-index: 25;
563
+ }
564
+
565
+ .nav-btn {
566
+ flex: 1;
567
+ background: transparent;
568
+ border: none;
569
+ display: flex;
570
+ flex-direction: column;
571
+ align-items: center;
572
+ justify-content: center;
573
+ padding: 0.4rem 0;
574
+ color: var(--text-secondary);
575
+ font-family: var(--font-sans);
576
+ font-size: 0.75rem;
577
+ font-weight: 500;
578
+ cursor: pointer;
579
+ transition: all 0.15s ease;
580
+ }
581
+
582
+ .nav-btn.active {
583
+ color: var(--text-primary);
584
+ font-weight: 700;
585
+ }
586
+
587
+ .hidden {
588
+ display: none !important;
589
+ }
@@ -0,0 +1,14 @@
1
+ export declare class MobileServer {
2
+ private server;
3
+ private port;
4
+ private activeAgent;
5
+ constructor();
6
+ start(): Promise<{
7
+ port: number;
8
+ localIp: string;
9
+ }>;
10
+ stop(): Promise<void>;
11
+ private handleApi;
12
+ static launchMobile(): Promise<void>;
13
+ }
14
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mobile/server.ts"],"names":[],"mappings":"AAyCA,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,IAAI,CAAQ;IACpB,OAAO,CAAC,WAAW,CAAa;;IAMnB,KAAK,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAoEnD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAUpB,SAAS;WAqGH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAyBlD"}