cohvu 2.1.0 → 2.2.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 (102) hide show
  1. package/dist/api.d.ts +44 -26
  2. package/dist/api.js +43 -59
  3. package/dist/api.js.map +1 -1
  4. package/dist/auth.d.ts +2 -13
  5. package/dist/auth.js +41 -105
  6. package/dist/auth.js.map +1 -1
  7. package/dist/constants.d.ts +1 -0
  8. package/dist/constants.js +2 -0
  9. package/dist/constants.js.map +1 -0
  10. package/dist/index.js +59 -103
  11. package/dist/index.js.map +1 -1
  12. package/dist/instructions.d.ts +2 -2
  13. package/dist/instructions.js +22 -26
  14. package/dist/instructions.js.map +1 -1
  15. package/dist/platforms.js +22 -25
  16. package/dist/platforms.js.map +1 -1
  17. package/dist/proxy.js +26 -14
  18. package/dist/proxy.js.map +1 -1
  19. package/dist/setup.d.ts +0 -1
  20. package/dist/setup.js +43 -75
  21. package/dist/setup.js.map +1 -1
  22. package/dist/tui/App.d.ts +1 -0
  23. package/dist/tui/App.js +1091 -0
  24. package/dist/tui/App.js.map +1 -0
  25. package/dist/tui/components/Banner.d.ts +4 -0
  26. package/dist/tui/components/Banner.js +78 -0
  27. package/dist/tui/components/Banner.js.map +1 -0
  28. package/dist/tui/components/Divider.d.ts +1 -0
  29. package/dist/tui/components/Divider.js +7 -0
  30. package/dist/tui/components/Divider.js.map +1 -0
  31. package/dist/tui/components/Footer.d.ts +4 -0
  32. package/dist/tui/components/Footer.js +143 -0
  33. package/dist/tui/components/Footer.js.map +1 -0
  34. package/dist/tui/components/Header.d.ts +4 -0
  35. package/dist/tui/components/Header.js +53 -0
  36. package/dist/tui/components/Header.js.map +1 -0
  37. package/dist/tui/components/Modal.d.ts +5 -0
  38. package/dist/tui/components/Modal.js +99 -0
  39. package/dist/tui/components/Modal.js.map +1 -0
  40. package/dist/tui/components/TabBar.d.ts +4 -0
  41. package/dist/tui/components/TabBar.js +16 -0
  42. package/dist/tui/components/TabBar.js.map +1 -0
  43. package/dist/tui/components/Toast.d.ts +4 -0
  44. package/dist/tui/components/Toast.js +9 -0
  45. package/dist/tui/components/Toast.js.map +1 -0
  46. package/dist/tui/index.js +19 -0
  47. package/dist/tui/index.js.map +1 -0
  48. package/dist/tui/platform-detect.d.ts +1 -1
  49. package/dist/tui/platform-detect.js +19 -22
  50. package/dist/tui/platform-detect.js.map +1 -1
  51. package/dist/tui/state.d.ts +33 -6
  52. package/dist/tui/state.js +65 -17
  53. package/dist/tui/state.js.map +1 -1
  54. package/dist/tui/tabs/BillingTab.d.ts +4 -0
  55. package/dist/tui/tabs/BillingTab.js +68 -0
  56. package/dist/tui/tabs/BillingTab.js.map +1 -0
  57. package/dist/tui/tabs/KnowledgeTab.d.ts +5 -0
  58. package/dist/tui/tabs/KnowledgeTab.js +83 -0
  59. package/dist/tui/tabs/KnowledgeTab.js.map +1 -0
  60. package/dist/tui/tabs/ProjectTab.d.ts +4 -0
  61. package/dist/tui/tabs/ProjectTab.js +31 -0
  62. package/dist/tui/tabs/ProjectTab.js.map +1 -0
  63. package/dist/tui/tabs/TeamTab.d.ts +4 -0
  64. package/dist/tui/tabs/TeamTab.js +39 -0
  65. package/dist/tui/tabs/TeamTab.js.map +1 -0
  66. package/dist/tui/tabs/YouTab.d.ts +4 -0
  67. package/dist/tui/tabs/YouTab.js +9 -0
  68. package/dist/tui/tabs/YouTab.js.map +1 -0
  69. package/dist/tui/utils.d.ts +6 -0
  70. package/dist/tui/utils.js +58 -0
  71. package/dist/tui/utils.js.map +1 -0
  72. package/package.json +9 -2
  73. package/dist/tui/ansi.d.ts +0 -41
  74. package/dist/tui/ansi.js +0 -117
  75. package/dist/tui/ansi.js.map +0 -1
  76. package/dist/tui/dashboard.js +0 -1250
  77. package/dist/tui/dashboard.js.map +0 -1
  78. package/dist/tui/keys.d.ts +0 -31
  79. package/dist/tui/keys.js +0 -56
  80. package/dist/tui/keys.js.map +0 -1
  81. package/dist/tui/render.d.ts +0 -5
  82. package/dist/tui/render.js +0 -158
  83. package/dist/tui/render.js.map +0 -1
  84. package/dist/tui/views/billing.d.ts +0 -3
  85. package/dist/tui/views/billing.js +0 -127
  86. package/dist/tui/views/billing.js.map +0 -1
  87. package/dist/tui/views/knowledge.d.ts +0 -3
  88. package/dist/tui/views/knowledge.js +0 -202
  89. package/dist/tui/views/knowledge.js.map +0 -1
  90. package/dist/tui/views/modals.d.ts +0 -3
  91. package/dist/tui/views/modals.js +0 -198
  92. package/dist/tui/views/modals.js.map +0 -1
  93. package/dist/tui/views/project.d.ts +0 -3
  94. package/dist/tui/views/project.js +0 -76
  95. package/dist/tui/views/project.js.map +0 -1
  96. package/dist/tui/views/team.d.ts +0 -3
  97. package/dist/tui/views/team.js +0 -106
  98. package/dist/tui/views/team.js.map +0 -1
  99. package/dist/tui/views/you.d.ts +0 -3
  100. package/dist/tui/views/you.js +0 -40
  101. package/dist/tui/views/you.js.map +0 -1
  102. /package/dist/tui/{dashboard.d.ts → index.d.ts} +0 -0
@@ -1,202 +0,0 @@
1
- "use strict";
2
- // Knowledge tab — browse, search, forget modes.
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.renderKnowledge = renderKnowledge;
5
- exports.knowledgeFooter = knowledgeFooter;
6
- const ansi_1 = require("../ansi");
7
- function renderKnowledge(state, width, height) {
8
- switch (state.knowledgeMode) {
9
- case 'browse': return renderBrowse(state, width, height);
10
- case 'search': return renderSearch(state, width, height);
11
- case 'forget': return renderForget(state, width, height);
12
- }
13
- }
14
- function renderBrowse(state, width, height) {
15
- const lines = [''];
16
- if (state.memories.length === 0 && !state.memoryLoading) {
17
- return centerText(height, [
18
- ansi_1.C.muted + 'your agents will start contributing automatically' + ansi_1.C.reset,
19
- ansi_1.C.dim + 'open any agent and start working' + ansi_1.C.reset,
20
- ]);
21
- }
22
- const maxLines = height - 3; // blank line top + pagination line + blank bottom
23
- const visible = state.memories.slice(state.memoryScroll, state.memoryScroll + maxLines);
24
- let linesUsed = 0;
25
- for (let i = 0; i < visible.length && linesUsed < maxLines; i++) {
26
- const mem = visible[i];
27
- const globalIdx = state.memoryScroll + i;
28
- const isSelected = globalIdx === state.memorySelected;
29
- const isLive = mem.id === state.liveDotId && Date.now() < state.liveDotExpiry;
30
- const dot = isLive ? ansi_1.C.green + '\u00b7 ' + ansi_1.C.reset : ansi_1.C.dim + '\u00b7 ' + ansi_1.C.reset;
31
- const ts = ansi_1.C.muted + (0, ansi_1.timeAgo)(mem.updated_at) + ansi_1.C.reset;
32
- const bodyWidth = width - 12;
33
- if (isSelected) {
34
- const prefix = '> ' + dot;
35
- lines.push(prefix + ansi_1.C.primary + (0, ansi_1.truncate)(mem.body, bodyWidth) + ansi_1.C.reset + rightPad(ts, width, prefix + (0, ansi_1.truncate)(mem.body, bodyWidth)));
36
- linesUsed++;
37
- // Expanded lines — only if room
38
- const bodyLines = wrapText(mem.body, width - 6);
39
- if (bodyLines.length > 1 && linesUsed < maxLines) {
40
- lines.push(' ' + ansi_1.C.muted + (0, ansi_1.truncate)(bodyLines[1], width - 6) + ansi_1.C.reset);
41
- linesUsed++;
42
- }
43
- if (bodyLines.length > 2 && linesUsed < maxLines) {
44
- lines.push(' ' + ansi_1.C.muted + (0, ansi_1.truncate)(bodyLines[2], width - 6) + '\u2026' + ansi_1.C.reset);
45
- linesUsed++;
46
- }
47
- }
48
- else {
49
- const prefix = ' ' + dot;
50
- lines.push(prefix + ansi_1.C.secondary + (0, ansi_1.truncate)(mem.body, bodyWidth) + ansi_1.C.reset + rightPad(ts, width, prefix + (0, ansi_1.truncate)(mem.body, bodyWidth)));
51
- linesUsed++;
52
- }
53
- }
54
- // Pagination
55
- lines.push('');
56
- if (state.memories.length > 0) {
57
- const start = state.memoryScroll + 1;
58
- const end = Math.min(state.memoryScroll + maxLines, state.memories.length);
59
- let pag = ' ' + ansi_1.C.muted + start + '\u2013' + end + ' of ' + state.memoryTotal + ansi_1.C.reset;
60
- if (state.memoryHasMore) {
61
- pag += ansi_1.C.dim + ' \u00b7 space for more' + ansi_1.C.reset;
62
- }
63
- lines.push(pag);
64
- }
65
- return lines;
66
- }
67
- function renderSearch(state, width, height) {
68
- const lines = [''];
69
- // Search input
70
- lines.push(' ' + ansi_1.C.muted + '/ ' + ansi_1.C.reset + ansi_1.C.primary + state.searchQuery + '_' + ansi_1.C.reset);
71
- lines.push('');
72
- lines.push(' ' + (0, ansi_1.divider)(width - 4));
73
- lines.push('');
74
- if (state.searching) {
75
- lines.push(' ' + ansi_1.C.dim + 'searching\u2026' + ansi_1.C.reset);
76
- return lines;
77
- }
78
- const results = state.searchResults;
79
- if (!results) {
80
- return lines;
81
- }
82
- if (results.length === 0) {
83
- lines.push(' ' + ansi_1.C.muted + 'no results' + ansi_1.C.reset);
84
- return lines;
85
- }
86
- for (let i = 0; i < results.length; i++) {
87
- const mem = results[i];
88
- const isSelected = i === state.memorySelected;
89
- const isLive = mem.id === state.liveDotId && Date.now() < state.liveDotExpiry;
90
- const dot = isLive ? ansi_1.C.green + '\u00b7 ' + ansi_1.C.reset : ansi_1.C.dim + '\u00b7 ' + ansi_1.C.reset;
91
- const ts = ansi_1.C.muted + (0, ansi_1.timeAgo)(mem.updated_at) + ansi_1.C.reset;
92
- const bodyWidth = width - 12;
93
- if (isSelected) {
94
- const prefix = '> ' + dot;
95
- lines.push(prefix + ansi_1.C.primary + (0, ansi_1.truncate)(mem.body, bodyWidth) + ansi_1.C.reset + rightPad(ts, width, prefix + (0, ansi_1.truncate)(mem.body, bodyWidth)));
96
- }
97
- else {
98
- const prefix = ' ' + dot;
99
- lines.push(prefix + ansi_1.C.secondary + (0, ansi_1.truncate)(mem.body, bodyWidth) + ansi_1.C.reset + rightPad(ts, width, prefix + (0, ansi_1.truncate)(mem.body, bodyWidth)));
100
- }
101
- }
102
- lines.push('');
103
- lines.push(' ' + ansi_1.C.muted + results.length + ' result' + (results.length !== 1 ? 's' : '') + ansi_1.C.reset);
104
- return lines;
105
- }
106
- function renderForget(state, width, height) {
107
- // Use search results if they exist (entered forget from search mode)
108
- const list = state.searchResults ?? state.memories;
109
- const lines = [''];
110
- lines.push(' ' + ansi_1.C.muted + 'select memories to remove \u00b7 space to toggle' + ansi_1.C.reset);
111
- lines.push('');
112
- const filtered = state.userRole === 'admin'
113
- ? list
114
- : list.filter(m => m.contributed_by?.user_id === state.user?.id);
115
- for (let i = 0; i < filtered.length; i++) {
116
- const mem = filtered[i];
117
- const isCursor = i === state.memorySelected;
118
- const isToggled = state.forgetSelected.has(mem.id);
119
- const prefix = isCursor ? '> ' : ' ';
120
- if (isToggled) {
121
- lines.push(prefix + ansi_1.C.red + '[x] ' + ansi_1.C.reset + ansi_1.C.secondary + (0, ansi_1.truncate)(mem.body, width - 8) + ansi_1.C.reset);
122
- }
123
- else {
124
- lines.push(prefix + ansi_1.C.dim + '[ ] ' + ansi_1.C.reset + ansi_1.C.muted + (0, ansi_1.truncate)(mem.body, width - 8) + ansi_1.C.reset);
125
- }
126
- }
127
- if (filtered.length === 0 && state.userRole !== 'admin') {
128
- lines.push(' ' + ansi_1.C.muted + 'you can only forget memories your agents contributed' + ansi_1.C.reset);
129
- }
130
- lines.push('');
131
- const count = state.forgetSelected.size;
132
- if (count > 0) {
133
- lines.push(' ' + ansi_1.C.yellow + count + ' selected' + ansi_1.C.reset);
134
- }
135
- else {
136
- lines.push(' ' + ansi_1.C.muted + '0 selected' + ansi_1.C.reset);
137
- }
138
- return lines;
139
- }
140
- function knowledgeFooter(state) {
141
- switch (state.knowledgeMode) {
142
- case 'browse':
143
- if (state.memories.length === 0) {
144
- return ansi_1.C.muted + 'tab switch tab q quit' + ansi_1.C.reset;
145
- }
146
- if (state.userRole === 'viewer') {
147
- return ansi_1.C.muted + '/ search \u2191\u2193 navigate tab switch q quit' + ansi_1.C.reset;
148
- }
149
- if (state.userRole === 'admin') {
150
- return ansi_1.C.muted + '/ search d forget D forget all \u2191\u2193 navigate q quit' + ansi_1.C.reset;
151
- }
152
- return ansi_1.C.muted + '/ search d forget \u2191\u2193 navigate q quit' + ansi_1.C.reset;
153
- case 'search':
154
- if (state.userRole === 'viewer') {
155
- return ansi_1.C.muted + 'enter search esc cancel \u2191\u2193 navigate' + ansi_1.C.reset;
156
- }
157
- return ansi_1.C.muted + 'enter search esc cancel \u2325d forget \u2191\u2193 navigate' + ansi_1.C.reset;
158
- case 'forget':
159
- if (state.forgetConfirming) {
160
- const n = state.forgetSelected.size;
161
- return ansi_1.C.muted + 'remove ' + n + ' memor' + (n === 1 ? 'y' : 'ies') + '? y confirm n cancel' + ansi_1.C.reset;
162
- }
163
- return ansi_1.C.muted + 'space toggle enter confirm esc cancel' + ansi_1.C.reset;
164
- }
165
- }
166
- // Helpers
167
- function rightPad(ts, totalWidth, prefix) {
168
- const prefixLen = (0, ansi_1.stripAnsi)(prefix).length;
169
- const tsLen = (0, ansi_1.stripAnsi)(ts).length;
170
- const gap = totalWidth - prefixLen - tsLen;
171
- if (gap <= 0)
172
- return '';
173
- return ' '.repeat(gap) + ts;
174
- }
175
- function wrapText(text, maxWidth) {
176
- const words = text.split(/\s+/);
177
- const lines = [];
178
- let current = '';
179
- for (const word of words) {
180
- if (current.length + word.length + 1 > maxWidth) {
181
- if (current)
182
- lines.push(current);
183
- current = word;
184
- }
185
- else {
186
- current = current ? current + ' ' + word : word;
187
- }
188
- }
189
- if (current)
190
- lines.push(current);
191
- return lines;
192
- }
193
- function centerText(height, textLines) {
194
- const lines = [];
195
- const padTop = Math.floor((height - textLines.length) / 2);
196
- for (let i = 0; i < padTop; i++)
197
- lines.push('');
198
- for (const line of textLines)
199
- lines.push(' ' + line);
200
- return lines;
201
- }
202
- //# sourceMappingURL=knowledge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"knowledge.js","sourceRoot":"","sources":["../../../src/tui/views/knowledge.ts"],"names":[],"mappings":";AAAA,gDAAgD;;AAKhD,0CAMC;AAqJD,0CAyBC;AAvLD,kCAAmE;AAGnE,SAAgB,eAAe,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IAC5E,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,KAAK,QAAQ,CAAC,CAAC,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IAClE,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACxD,OAAO,UAAU,CAAC,MAAM,EAAE;YACxB,QAAC,CAAC,KAAK,GAAG,mDAAmD,GAAG,QAAC,CAAC,KAAK;YACvE,QAAC,CAAC,GAAG,GAAG,kCAAkC,GAAG,QAAC,CAAC,KAAK;SACrD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,kDAAkD;IAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC;IAExF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,SAAS,KAAK,KAAK,CAAC,cAAc,CAAC;QACtD,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,QAAC,CAAC,KAAK,GAAG,SAAS,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAC,CAAC,GAAG,GAAG,SAAS,GAAG,QAAC,CAAC,KAAK,CAAC;QACjF,MAAM,EAAE,GAAG,QAAC,CAAC,KAAK,GAAG,IAAA,cAAO,EAAC,GAAG,CAAC,UAAU,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC;QAEvD,MAAM,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC;QAE7B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,OAAO,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,QAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACvI,SAAS,EAAE,CAAC;YAEZ,gCAAgC;YAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAChD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,KAAK,GAAG,IAAA,eAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;gBAC3E,SAAS,EAAE,CAAC;YACd,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,GAAG,QAAQ,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,KAAK,GAAG,IAAA,eAAQ,EAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;gBACtF,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,SAAS,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,QAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YACzI,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED,aAAa;IACb,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3E,IAAI,GAAG,GAAG,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,WAAW,GAAG,QAAC,CAAC,KAAK,CAAC;QACzF,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;YACxB,GAAG,IAAI,QAAC,CAAC,GAAG,GAAG,0BAA0B,GAAG,QAAC,CAAC,KAAK,CAAC;QACtD,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IAClE,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAE7B,eAAe;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,OAAO,GAAG,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAA,cAAO,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,GAAG,GAAG,iBAAiB,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,YAAY,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC;QAC9E,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,QAAC,CAAC,KAAK,GAAG,SAAS,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAC,CAAC,GAAG,GAAG,SAAS,GAAG,QAAC,CAAC,KAAK,CAAC;QACjF,MAAM,EAAE,GAAG,QAAC,CAAC,KAAK,GAAG,IAAA,cAAO,EAAC,GAAG,CAAC,UAAU,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC;QACvD,MAAM,SAAS,GAAG,KAAK,GAAG,EAAE,CAAC;QAE7B,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,OAAO,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,QAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QACzI,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,SAAS,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,GAAG,QAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3I,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAEtG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IAClE,qEAAqE;IACrE,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC;IACnD,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAE7B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,kDAAkD,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAC1F,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,OAAO;QACzC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAEnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC;QAC5C,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEtC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,GAAG,GAAG,MAAM,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;QACxG,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,QAAC,CAAC,GAAG,GAAG,MAAM,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,IAAA,eAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,sDAAsD,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;IACxC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,MAAM,GAAG,KAAK,GAAG,WAAW,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,YAAY,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,eAAe,CAAC,KAAe;IAC7C,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC;QAC5B,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAChC,OAAO,QAAC,CAAC,KAAK,GAAG,yBAAyB,GAAG,QAAC,CAAC,KAAK,CAAC;YACvD,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,QAAC,CAAC,KAAK,GAAG,wDAAwD,GAAG,QAAC,CAAC,KAAK,CAAC;YACtF,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAC/B,OAAO,QAAC,CAAC,KAAK,GAAG,qEAAqE,GAAG,QAAC,CAAC,KAAK,CAAC;YACnG,CAAC;YACD,OAAO,QAAC,CAAC,KAAK,GAAG,sDAAsD,GAAG,QAAC,CAAC,KAAK,CAAC;QACpF,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAChC,OAAO,QAAC,CAAC,KAAK,GAAG,mDAAmD,GAAG,QAAC,CAAC,KAAK,CAAC;YACjF,CAAC;YACD,OAAO,QAAC,CAAC,KAAK,GAAG,oEAAoE,GAAG,QAAC,CAAC,KAAK,CAAC;QAClG,KAAK,QAAQ;YACX,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;gBACpC,OAAO,QAAC,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,wBAAwB,GAAG,QAAC,CAAC,KAAK,CAAC;YAC3G,CAAC;YACD,OAAO,QAAC,CAAC,KAAK,GAAG,2CAA2C,GAAG,QAAC,CAAC,KAAK,CAAC;IAC3E,CAAC;AACH,CAAC;AAED,UAAU;AAEV,SAAS,QAAQ,CAAC,EAAU,EAAE,UAAkB,EAAE,MAAc;IAC9D,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,gBAAS,EAAC,EAAE,CAAC,CAAC,MAAM,CAAC;IACnC,MAAM,GAAG,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,CAAC;IAC3C,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAgB;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,EAAE,CAAC;YAChD,IAAI,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAClD,CAAC;IACH,CAAC;IACD,IAAI,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,SAAmB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChD,KAAK,MAAM,IAAI,IAAI,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACtD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { Modal, AppState } from "../state";
2
- export declare function renderModal(modal: NonNullable<Modal>, width: number, height: number, state?: AppState): string[];
3
- export declare function modalFooter(modal: NonNullable<Modal>): string;
@@ -1,198 +0,0 @@
1
- "use strict";
2
- // Modal overlays — replace content area, header/tabs/footer stay.
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.renderModal = renderModal;
5
- exports.modalFooter = modalFooter;
6
- const ansi_1 = require("../ansi");
7
- function renderModal(modal, width, height, state) {
8
- const lines = [];
9
- const pad = Math.floor(height / 4);
10
- for (let i = 0; i < pad; i++)
11
- lines.push('');
12
- switch (modal.kind) {
13
- case 'confirm-forget':
14
- lines.push(' ' + ansi_1.C.muted + 'remove this memory?' + ansi_1.C.reset);
15
- lines.push('');
16
- lines.push(' ' + ansi_1.C.dim + '"' + ansi_1.C.muted + (0, ansi_1.truncate)(modal.preview, width - 6) + ansi_1.C.dim + '"' + ansi_1.C.reset);
17
- lines.push('');
18
- lines.push(' ' + ansi_1.C.secondary + 'remove? ' + ansi_1.C.reset + ansi_1.C.primary + '(y/n) _' + ansi_1.C.reset);
19
- break;
20
- case 'confirm-forget-all':
21
- lines.push(' ' + ansi_1.C.red + 'remove all ' + ansi_1.C.reset + ansi_1.C.primary + String(modal.memoryCount) + ansi_1.C.reset +
22
- ansi_1.C.red + ' memories from ' + ansi_1.C.reset + ansi_1.C.primary + modal.slug + ansi_1.C.reset + ansi_1.C.red + '?' + ansi_1.C.reset);
23
- lines.push(' ' + ansi_1.C.muted + 'project, team, and billing remain intact.' + ansi_1.C.reset);
24
- lines.push('');
25
- lines.push(' ' + ansi_1.C.muted + 'type "' + ansi_1.C.reset + ansi_1.C.secondary + modal.slug + ansi_1.C.reset +
26
- ansi_1.C.muted + '" to confirm \u203a ' + ansi_1.C.reset + ansi_1.C.primary + modal.input + '_' + ansi_1.C.reset);
27
- break;
28
- case 'confirm-delete':
29
- lines.push(' ' + ansi_1.C.red + 'permanently delete ' + ansi_1.C.reset + ansi_1.C.primary + modal.slug + ansi_1.C.reset +
30
- ansi_1.C.red + ' and all ' + ansi_1.C.reset + ansi_1.C.primary + String(modal.memoryCount) + ansi_1.C.reset + ansi_1.C.red + ' memories?' + ansi_1.C.reset);
31
- lines.push(' ' + ansi_1.C.muted + 'subscription will be canceled at period end.' + ansi_1.C.reset);
32
- lines.push('');
33
- lines.push(' ' + ansi_1.C.muted + 'type "' + ansi_1.C.reset + ansi_1.C.secondary + modal.slug + ansi_1.C.reset +
34
- ansi_1.C.muted + '" to confirm \u203a ' + ansi_1.C.reset + ansi_1.C.primary + modal.input + '_' + ansi_1.C.reset);
35
- break;
36
- case 'confirm-clear':
37
- lines.push(' ' + ansi_1.C.red + 'remove all ' + ansi_1.C.reset + ansi_1.C.primary + String(modal.memoryCount) + ansi_1.C.reset +
38
- ansi_1.C.red + ' memories from ' + ansi_1.C.reset + ansi_1.C.primary + modal.slug + ansi_1.C.reset + ansi_1.C.red + '?' + ansi_1.C.reset);
39
- lines.push(' ' + ansi_1.C.muted + 'project, team, and billing remain intact.' + ansi_1.C.reset);
40
- lines.push('');
41
- lines.push(' ' + ansi_1.C.muted + 'type "' + ansi_1.C.reset + ansi_1.C.secondary + modal.slug + ansi_1.C.reset +
42
- ansi_1.C.muted + '" to confirm \u203a ' + ansi_1.C.reset + ansi_1.C.primary + modal.input + '_' + ansi_1.C.reset);
43
- break;
44
- case 'confirm-remove-member': {
45
- const projectName = state?.projects.find(p => p.project_id === state?.activeProjectId)?.slug ?? 'the project';
46
- lines.push(' ' + ansi_1.C.muted + 'remove ' + ansi_1.C.reset + ansi_1.C.secondary + modal.email + ansi_1.C.reset +
47
- ansi_1.C.muted + ' from ' + ansi_1.C.reset + ansi_1.C.secondary + projectName + ansi_1.C.reset + ansi_1.C.muted + '?' + ansi_1.C.reset);
48
- lines.push('');
49
- lines.push(' ' + ansi_1.C.secondary + 'remove? ' + ansi_1.C.reset + ansi_1.C.primary + '(y/n) _' + ansi_1.C.reset);
50
- break;
51
- }
52
- case 'confirm-leave': {
53
- const leaveProjectName = state?.projects.find(p => p.project_id === state?.activeProjectId)?.slug ?? 'this project';
54
- lines.push(' ' + ansi_1.C.muted + 'leave ' + ansi_1.C.reset + ansi_1.C.secondary + leaveProjectName + ansi_1.C.reset + ansi_1.C.muted + '?' + ansi_1.C.reset);
55
- lines.push(' ' + ansi_1.C.muted + 'you will lose access immediately.' + ansi_1.C.reset);
56
- lines.push('');
57
- lines.push(' ' + ansi_1.C.secondary + 'leave? ' + ansi_1.C.reset + ansi_1.C.primary + '(y/n) _' + ansi_1.C.reset);
58
- break;
59
- }
60
- case 'confirm-logout': {
61
- const email = state?.user?.email ?? 'cohvu';
62
- lines.push(' ' + ansi_1.C.muted + 'sign out of ' + ansi_1.C.reset + ansi_1.C.secondary + email + ansi_1.C.reset + ansi_1.C.muted + '?' + ansi_1.C.reset);
63
- lines.push('');
64
- lines.push(' ' + ansi_1.C.secondary + '(y/n) _' + ansi_1.C.reset);
65
- break;
66
- }
67
- case 'rename': {
68
- const slug = modal.input
69
- .toLowerCase()
70
- .replace(/[^a-z0-9]+/g, '-')
71
- .replace(/^-+|-+$/g, '');
72
- lines.push(' ' + ansi_1.C.muted + 'rename project' + ansi_1.C.reset);
73
- lines.push('');
74
- lines.push(' ' + ansi_1.C.muted + 'new name \u203a ' + ansi_1.C.reset + ansi_1.C.primary + modal.input + '_' + ansi_1.C.reset);
75
- lines.push(' ' + ansi_1.C.dim + 'slug ' + ansi_1.C.reset + ansi_1.C.muted + (slug || '(derived from name)') + ansi_1.C.reset);
76
- break;
77
- }
78
- case 'create-project': {
79
- const slug = modal.input
80
- .toLowerCase()
81
- .replace(/[^a-z0-9]+/g, '-')
82
- .replace(/^-+|-+$/g, '');
83
- lines.push(' ' + ansi_1.C.muted + 'new project' + ansi_1.C.reset);
84
- lines.push('');
85
- lines.push(' ' + ansi_1.C.muted + 'name \u203a ' + ansi_1.C.reset + ansi_1.C.primary + (modal.input || '_') + ansi_1.C.reset);
86
- lines.push(' ' + ansi_1.C.dim + 'slug ' + ansi_1.C.reset + ansi_1.C.muted + (slug || '(derived from name)') + ansi_1.C.reset);
87
- break;
88
- }
89
- case 'switch-project': {
90
- lines.push(' ' + ansi_1.C.muted + 'switch project' + ansi_1.C.reset);
91
- lines.push('');
92
- const projects = state?.projects ?? [];
93
- const activeId = state?.activeProjectId;
94
- for (let i = 0; i < projects.length; i++) {
95
- const p = projects[i];
96
- const isActive = p.project_id === activeId;
97
- const isSelected = i === modal.selected;
98
- const status = p.billing_status === 'active' ? ansi_1.C.green + 'active' + ansi_1.C.reset
99
- : p.trial_ends_at ? ansi_1.C.yellow + 'trial' + ansi_1.C.reset
100
- : '';
101
- const projectRole = p.role ?? 'member';
102
- if (isSelected) {
103
- lines.push('> ' + (isActive ? ansi_1.C.green + '\u2713 ' + ansi_1.C.reset : ' ') +
104
- ansi_1.C.primary + (0, ansi_1.padEnd)(p.slug, 18) + ansi_1.C.reset + ' ' +
105
- (0, ansi_1.padEnd)(status ? status : '', 16) +
106
- ansi_1.C.muted + projectRole + ansi_1.C.reset);
107
- }
108
- else {
109
- lines.push(' ' + (isActive ? ansi_1.C.green + '\u2713 ' + ansi_1.C.reset : ' ') +
110
- ansi_1.C.muted + (0, ansi_1.padEnd)(p.slug, 18) + ansi_1.C.reset + ' ' +
111
- (0, ansi_1.padEnd)(status ? status : '', 16) +
112
- ansi_1.C.muted + projectRole + ansi_1.C.reset);
113
- }
114
- }
115
- lines.push('');
116
- const newProjectSelected = modal.selected === (state?.projects.length ?? 0);
117
- if (newProjectSelected) {
118
- lines.push('> ' + ansi_1.C.primary + ' + new project' + ansi_1.C.reset);
119
- }
120
- else {
121
- lines.push(' ' + ansi_1.C.dim + ' + new project' + ansi_1.C.reset);
122
- }
123
- break;
124
- }
125
- case 'edit-role': {
126
- const roles = ['admin', 'member', 'viewer'];
127
- lines.push(' ' + ansi_1.C.muted + 'change role for ' + ansi_1.C.reset + ansi_1.C.secondary + modal.targetEmail + ansi_1.C.reset);
128
- lines.push('');
129
- for (let i = 0; i < roles.length; i++) {
130
- if (i === modal.selected) {
131
- lines.push('> ' + ansi_1.C.primary + roles[i] + ansi_1.C.reset);
132
- }
133
- else {
134
- lines.push(' ' + ansi_1.C.muted + roles[i] + ansi_1.C.reset);
135
- }
136
- }
137
- break;
138
- }
139
- case 'initiate-consensus': {
140
- lines.push(' ' + ansi_1.C.muted + modal.description + ' requires approval from all admins' + ansi_1.C.reset);
141
- lines.push('');
142
- const adminEmails = (state?.members ?? [])
143
- .filter(m => m.role === 'admin')
144
- .map(m => m.email ?? m.user_id)
145
- .join(', ');
146
- lines.push(' ' + ansi_1.C.muted + 'admins: ' + ansi_1.C.reset + ansi_1.C.secondary + adminEmails + ansi_1.C.reset);
147
- lines.push('');
148
- lines.push(' ' + ansi_1.C.muted + 'initiate? other admins will be notified. expires in 24 hours.' + ansi_1.C.reset);
149
- lines.push('');
150
- lines.push(' ' + ansi_1.C.secondary + '(y/n) _' + ansi_1.C.reset);
151
- break;
152
- }
153
- case 'approve-action': {
154
- lines.push(' ' + ansi_1.C.secondary + modal.initiator + ansi_1.C.reset +
155
- ansi_1.C.muted + ' wants to ' + ansi_1.C.reset + ansi_1.C.red + modal.description + ansi_1.C.reset);
156
- lines.push('');
157
- lines.push(' ' + ansi_1.C.muted + 'expires in ' + ansi_1.C.reset + ansi_1.C.muted + modal.expiresIn + ansi_1.C.reset);
158
- lines.push('');
159
- lines.push(' ' + ansi_1.C.secondary + 'approve? ' + ansi_1.C.reset + ansi_1.C.primary + '(y/n) _' + ansi_1.C.reset);
160
- break;
161
- }
162
- case 'confirm-regen-link': {
163
- lines.push(' ' + ansi_1.C.muted + 'regenerate ' + ansi_1.C.reset + ansi_1.C.secondary + modal.role + ansi_1.C.reset +
164
- ansi_1.C.muted + ' link?' + ansi_1.C.reset);
165
- lines.push(' ' + ansi_1.C.muted + 'old link stops working immediately.' + ansi_1.C.reset);
166
- lines.push('');
167
- lines.push(' ' + ansi_1.C.secondary + '(y/n) _' + ansi_1.C.reset);
168
- break;
169
- }
170
- }
171
- return lines;
172
- }
173
- function modalFooter(modal) {
174
- switch (modal.kind) {
175
- case 'confirm-forget':
176
- case 'confirm-remove-member':
177
- case 'confirm-leave':
178
- case 'confirm-logout':
179
- return ansi_1.C.muted + 'y confirm n cancel' + ansi_1.C.reset;
180
- case 'confirm-forget-all':
181
- case 'confirm-delete':
182
- case 'confirm-clear':
183
- case 'rename':
184
- return ansi_1.C.muted + 'enter confirm esc cancel' + ansi_1.C.reset;
185
- case 'create-project':
186
- return ansi_1.C.muted + 'enter create esc cancel' + ansi_1.C.reset;
187
- case 'switch-project':
188
- return ansi_1.C.muted + '\u2191\u2193 navigate enter select esc cancel' + ansi_1.C.reset;
189
- case 'edit-role':
190
- return ansi_1.C.muted + '\u2191\u2193 navigate enter confirm esc cancel' + ansi_1.C.reset;
191
- case 'initiate-consensus':
192
- case 'confirm-regen-link':
193
- return ansi_1.C.muted + 'y confirm n cancel' + ansi_1.C.reset;
194
- case 'approve-action':
195
- return ansi_1.C.muted + 'y approve n decline esc back' + ansi_1.C.reset;
196
- }
197
- }
198
- //# sourceMappingURL=modals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modals.js","sourceRoot":"","sources":["../../../src/tui/views/modals.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { AppState } from "../state";
2
- export declare function renderProject(state: AppState, width: number, height: number): string[];
3
- export declare function projectFooter(state: AppState): string;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- // Project tab — info, rename, delete, clear, switch, new.
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.renderProject = renderProject;
5
- exports.projectFooter = projectFooter;
6
- const ansi_1 = require("../ansi");
7
- const state_1 = require("../state");
8
- function renderProject(state, width, height) {
9
- const lines = [''];
10
- const project = (0, state_1.getActiveProject)(state);
11
- if (!project) {
12
- lines.push(' ' + ansi_1.C.muted + 'no active project' + ansi_1.C.reset);
13
- return lines;
14
- }
15
- // Project info
16
- lines.push(' ' + ansi_1.C.dim + (0, ansi_1.padEnd)('name', 10) + ansi_1.C.reset + ansi_1.C.secondary + project.name + ansi_1.C.reset);
17
- lines.push(' ' + ansi_1.C.dim + (0, ansi_1.padEnd)('slug', 10) + ansi_1.C.reset + ansi_1.C.muted + project.slug + ansi_1.C.reset);
18
- if (project.created_at) {
19
- lines.push(' ' + ansi_1.C.dim + (0, ansi_1.padEnd)('created', 10) + ansi_1.C.reset + ansi_1.C.muted + (0, ansi_1.formatDate)(project.created_at) + ansi_1.C.reset);
20
- }
21
- // Actions
22
- lines.push('');
23
- lines.push((0, ansi_1.divider)(width));
24
- lines.push('');
25
- if (state.userRole === 'admin') {
26
- lines.push(' ' + ansi_1.C.muted + 'r ' + ansi_1.C.secondary + 'rename project' + ansi_1.C.reset);
27
- }
28
- lines.push(' ' + ansi_1.C.muted + 'n ' + ansi_1.C.secondary + 'new project' + ansi_1.C.reset);
29
- if (state.projects.length > 1) {
30
- lines.push(' ' + ansi_1.C.muted + 'w ' + ansi_1.C.secondary + 'switch project' + ansi_1.C.reset);
31
- }
32
- // Destructive section (admin only)
33
- if (state.userRole === 'admin') {
34
- const pendingProjectApproval = state.pendingApprovals.find(a => a.action === 'delete_project' || a.action === 'clear_memories');
35
- lines.push('');
36
- lines.push((0, ansi_1.divider)(width));
37
- lines.push('');
38
- if (pendingProjectApproval) {
39
- const actionLabel = pendingProjectApproval.action === 'delete_project' ? 'delete project' : 'clear memories';
40
- const approved = pendingProjectApproval.approved_by.length;
41
- const required = pendingProjectApproval.required_count;
42
- const expires = (0, ansi_1.timeUntil)(pendingProjectApproval.expires_at);
43
- lines.push(' ' + ansi_1.C.yellow + '! ' + ansi_1.C.reset + ansi_1.C.secondary + 'pending: ' + actionLabel + ansi_1.C.reset +
44
- ansi_1.C.muted + ' ' + approved + '/' + required + ' approved expires ' + expires + ansi_1.C.reset);
45
- lines.push(' ' + ansi_1.C.muted + 'a ' + ansi_1.C.secondary + 'approve' + ansi_1.C.reset +
46
- ' ' + ansi_1.C.muted + 'x ' + ansi_1.C.secondary + 'cancel' + ansi_1.C.reset);
47
- }
48
- else {
49
- lines.push(' ' + ansi_1.C.red + 'c ' + ansi_1.C.reset + ansi_1.C.muted + 'clear all memories' + ansi_1.C.reset);
50
- lines.push(' ' + ansi_1.C.red + 'd ' + ansi_1.C.reset + ansi_1.C.muted + 'delete project' + ansi_1.C.reset);
51
- }
52
- }
53
- return lines;
54
- }
55
- function projectFooter(state) {
56
- if (state.userRole === 'admin') {
57
- const hasPending = state.pendingApprovals.some(a => a.action === 'delete_project' || a.action === 'clear_memories');
58
- const parts = ['r rename', 'n new'];
59
- if (state.projects.length > 1)
60
- parts.push('w switch');
61
- if (hasPending) {
62
- parts.push('a approve', 'x cancel');
63
- }
64
- else {
65
- parts.push('c clear', 'd delete');
66
- }
67
- parts.push('q quit');
68
- return ansi_1.C.muted + parts.join(' ') + ansi_1.C.reset;
69
- }
70
- const parts = ['n new'];
71
- if (state.projects.length > 1)
72
- parts.push('w switch');
73
- parts.push('q quit');
74
- return ansi_1.C.muted + parts.join(' ') + ansi_1.C.reset;
75
- }
76
- //# sourceMappingURL=project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../src/tui/views/project.ts"],"names":[],"mappings":";AAAA,0DAA0D;;AAM1D,sCAuDC;AAED,sCAmBC;AAhFD,kCAAoE;AAEpE,oCAA4C;AAE5C,SAAgB,aAAa,CAAC,KAAe,EAAE,KAAa,EAAE,MAAc;IAC1E,MAAM,KAAK,GAAa,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAA,wBAAgB,EAAC,KAAK,CAAC,CAAC;IACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,mBAAmB,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,eAAe;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,GAAG,GAAG,IAAA,aAAM,EAAC,MAAM,EAAE,EAAE,CAAC,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAC/F,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,GAAG,GAAG,IAAA,aAAM,EAAC,MAAM,EAAE,EAAE,CAAC,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAE3F,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,GAAG,GAAG,IAAA,aAAM,EAAC,SAAS,EAAE,EAAE,CAAC,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,IAAA,iBAAU,EAAC,OAAO,CAAC,UAAU,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAClH,CAAC;IAED,UAAU;IACV,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,gBAAgB,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,aAAa,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAC3E,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,gBAAgB,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;IAChF,CAAC;IAED,mCAAmC;IACnC,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,sBAAsB,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CACxD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB,CACpE,CAAC;QAEF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,IAAI,sBAAsB,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,sBAAsB,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC7G,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,CAAC,MAAM,CAAC;YAC3D,MAAM,QAAQ,GAAG,sBAAsB,CAAC,cAAc,CAAC;YACvD,MAAM,OAAO,GAAG,IAAA,gBAAS,EAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YAC7D,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,MAAM,GAAG,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,QAAC,CAAC,KAAK;gBAC7F,QAAC,CAAC,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,GAAG,qBAAqB,GAAG,OAAO,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,SAAS,GAAG,QAAC,CAAC,KAAK;gBACnE,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,KAAK,GAAG,QAAC,CAAC,SAAS,GAAG,QAAQ,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,GAAG,GAAG,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,oBAAoB,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;YACtF,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,QAAC,CAAC,GAAG,GAAG,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,QAAC,CAAC,KAAK,GAAG,gBAAgB,GAAG,QAAC,CAAC,KAAK,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,aAAa,CAAC,KAAe;IAC3C,IAAI,KAAK,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAC5C,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,gBAAgB,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB,CACpE,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,UAAU,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrB,OAAO,QAAC,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC;IAC/C,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,OAAO,QAAC,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,QAAC,CAAC,KAAK,CAAC;AAC/C,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { AppState } from "../state";
2
- export declare function renderTeam(state: AppState, width: number, _height: number): string[];
3
- export declare function teamFooter(state: AppState): string;