dot-agents 0.5.0 → 0.7.4
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.
- package/README.md +239 -122
- package/dist/cli/commands/channel.d.ts +19 -0
- package/dist/cli/commands/channel.d.ts.map +1 -1
- package/dist/cli/commands/channel.js +220 -13
- package/dist/cli/commands/channel.js.map +1 -1
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +61 -1
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/index.d.ts +2 -0
- package/dist/cli/commands/index.d.ts.map +1 -1
- package/dist/cli/commands/index.js +2 -0
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/personas.d.ts +3 -0
- package/dist/cli/commands/personas.d.ts.map +1 -0
- package/dist/cli/commands/personas.js +402 -0
- package/dist/cli/commands/personas.js.map +1 -0
- package/dist/cli/commands/projects.d.ts +3 -0
- package/dist/cli/commands/projects.d.ts.map +1 -0
- package/dist/cli/commands/projects.js +138 -0
- package/dist/cli/commands/projects.js.map +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +4 -5
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/index.js +3 -11
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/lib/runner.d.ts +2 -0
- package/dist/cli/lib/runner.d.ts.map +1 -1
- package/dist/cli/lib/runner.js +67 -8
- package/dist/cli/lib/runner.js.map +1 -1
- package/dist/daemon/api/channels.d.ts +6 -0
- package/dist/daemon/api/channels.d.ts.map +1 -0
- package/dist/daemon/api/channels.js +143 -0
- package/dist/daemon/api/channels.js.map +1 -0
- package/dist/daemon/api/server.d.ts.map +1 -1
- package/dist/daemon/api/server.js +56 -0
- package/dist/daemon/api/server.js.map +1 -1
- package/dist/daemon/daemon.d.ts +28 -3
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +142 -26
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/lib/executor.d.ts +0 -4
- package/dist/daemon/lib/executor.d.ts.map +1 -1
- package/dist/daemon/lib/executor.js +48 -135
- package/dist/daemon/lib/executor.js.map +1 -1
- package/dist/daemon/lib/index.d.ts +1 -0
- package/dist/daemon/lib/index.d.ts.map +1 -1
- package/dist/daemon/lib/index.js +1 -0
- package/dist/daemon/lib/index.js.map +1 -1
- package/dist/daemon/lib/safeguards.d.ts +68 -0
- package/dist/daemon/lib/safeguards.d.ts.map +1 -0
- package/dist/daemon/lib/safeguards.js +135 -0
- package/dist/daemon/lib/safeguards.js.map +1 -0
- package/dist/daemon/lib/watcher.d.ts.map +1 -1
- package/dist/daemon/lib/watcher.js +48 -8
- package/dist/daemon/lib/watcher.js.map +1 -1
- package/dist/daemon/web/app.js +433 -0
- package/dist/daemon/web/index.html +68 -0
- package/dist/daemon/web/styles.css +452 -0
- package/dist/lib/channel.d.ts +53 -1
- package/dist/lib/channel.d.ts.map +1 -1
- package/dist/lib/channel.js +221 -30
- package/dist/lib/channel.js.map +1 -1
- package/dist/lib/daemon-status.d.ts +26 -0
- package/dist/lib/daemon-status.d.ts.map +1 -0
- package/dist/lib/daemon-status.js +64 -0
- package/dist/lib/daemon-status.js.map +1 -0
- package/dist/lib/environment.d.ts +88 -0
- package/dist/lib/environment.d.ts.map +1 -0
- package/dist/lib/environment.js +238 -0
- package/dist/lib/environment.js.map +1 -0
- package/dist/lib/frontmatter.d.ts +8 -0
- package/dist/lib/frontmatter.d.ts.map +1 -1
- package/dist/lib/frontmatter.js +16 -3
- package/dist/lib/frontmatter.js.map +1 -1
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +7 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/invoke.d.ts +31 -0
- package/dist/lib/invoke.d.ts.map +1 -0
- package/dist/lib/invoke.js +170 -0
- package/dist/lib/invoke.js.map +1 -0
- package/dist/lib/persona.d.ts +22 -1
- package/dist/lib/persona.d.ts.map +1 -1
- package/dist/lib/persona.js +176 -31
- package/dist/lib/persona.js.map +1 -1
- package/dist/lib/processor.d.ts +58 -0
- package/dist/lib/processor.d.ts.map +1 -0
- package/dist/lib/processor.js +149 -0
- package/dist/lib/processor.js.map +1 -0
- package/dist/lib/registry.d.ts +109 -0
- package/dist/lib/registry.d.ts.map +1 -0
- package/dist/lib/registry.js +192 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/session-thread.d.ts +75 -0
- package/dist/lib/session-thread.d.ts.map +1 -0
- package/dist/lib/session-thread.js +132 -0
- package/dist/lib/session-thread.js.map +1 -0
- package/dist/lib/session.d.ts +150 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/session.js +183 -0
- package/dist/lib/session.js.map +1 -0
- package/dist/lib/types/channel.d.ts +4 -0
- package/dist/lib/types/channel.d.ts.map +1 -1
- package/dist/lib/types/persona.d.ts +49 -6
- package/dist/lib/types/persona.d.ts.map +1 -1
- package/dist/lib/validation/persona.d.ts.map +1 -1
- package/dist/lib/validation/persona.js +41 -4
- package/dist/lib/validation/persona.js.map +1 -1
- package/internal/personas/_base/PERSONA.md +222 -39
- package/internal/skills/channels/list/SKILL.md +76 -0
- package/package.json +15 -5
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
/* Reset and base styles */
|
|
2
|
+
* {
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
margin: 0;
|
|
5
|
+
padding: 0;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:root {
|
|
9
|
+
--bg-primary: #1a1a2e;
|
|
10
|
+
--bg-secondary: #16213e;
|
|
11
|
+
--bg-tertiary: #0f3460;
|
|
12
|
+
--text-primary: #eaeaea;
|
|
13
|
+
--text-secondary: #a0a0a0;
|
|
14
|
+
--text-muted: #6b6b6b;
|
|
15
|
+
--accent: #e94560;
|
|
16
|
+
--accent-hover: #ff6b6b;
|
|
17
|
+
--border: #2a2a4a;
|
|
18
|
+
--success: #4ade80;
|
|
19
|
+
--warning: #fbbf24;
|
|
20
|
+
--error: #ef4444;
|
|
21
|
+
--channel-public: #4ade80;
|
|
22
|
+
--channel-dm: #60a5fa;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
html, body {
|
|
26
|
+
height: 100%;
|
|
27
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
28
|
+
font-size: 14px;
|
|
29
|
+
background: var(--bg-primary);
|
|
30
|
+
color: var(--text-primary);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* App layout */
|
|
34
|
+
.app {
|
|
35
|
+
display: flex;
|
|
36
|
+
height: 100vh;
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Sidebar */
|
|
41
|
+
.sidebar {
|
|
42
|
+
width: 260px;
|
|
43
|
+
min-width: 260px;
|
|
44
|
+
background: var(--bg-secondary);
|
|
45
|
+
border-right: 1px solid var(--border);
|
|
46
|
+
display: flex;
|
|
47
|
+
flex-direction: column;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.sidebar-header {
|
|
51
|
+
padding: 16px;
|
|
52
|
+
border-bottom: 1px solid var(--border);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.sidebar-header h1 {
|
|
56
|
+
font-size: 18px;
|
|
57
|
+
font-weight: 600;
|
|
58
|
+
margin-bottom: 4px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.connection-status {
|
|
62
|
+
font-size: 12px;
|
|
63
|
+
color: var(--text-muted);
|
|
64
|
+
display: flex;
|
|
65
|
+
align-items: center;
|
|
66
|
+
gap: 6px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.connection-status::before {
|
|
70
|
+
content: "";
|
|
71
|
+
width: 8px;
|
|
72
|
+
height: 8px;
|
|
73
|
+
border-radius: 50%;
|
|
74
|
+
background: var(--warning);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.connection-status.connected::before {
|
|
78
|
+
background: var(--success);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.connection-status.disconnected::before {
|
|
82
|
+
background: var(--error);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* Channel list */
|
|
86
|
+
.channel-list {
|
|
87
|
+
flex: 1;
|
|
88
|
+
overflow-y: auto;
|
|
89
|
+
padding: 8px;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.channel-list .loading {
|
|
93
|
+
padding: 16px;
|
|
94
|
+
text-align: center;
|
|
95
|
+
color: var(--text-muted);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.channel-section {
|
|
99
|
+
margin-bottom: 16px;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.channel-section-title {
|
|
103
|
+
font-size: 11px;
|
|
104
|
+
font-weight: 600;
|
|
105
|
+
text-transform: uppercase;
|
|
106
|
+
letter-spacing: 0.5px;
|
|
107
|
+
color: var(--text-muted);
|
|
108
|
+
padding: 8px 8px 4px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.channel-item {
|
|
112
|
+
display: flex;
|
|
113
|
+
align-items: center;
|
|
114
|
+
padding: 8px 12px;
|
|
115
|
+
border-radius: 6px;
|
|
116
|
+
cursor: pointer;
|
|
117
|
+
transition: background 0.15s ease;
|
|
118
|
+
gap: 8px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.channel-item:hover {
|
|
122
|
+
background: var(--bg-tertiary);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.channel-item.active {
|
|
126
|
+
background: var(--accent);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.channel-icon {
|
|
130
|
+
font-size: 16px;
|
|
131
|
+
font-weight: 600;
|
|
132
|
+
width: 20px;
|
|
133
|
+
text-align: center;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.channel-icon.public {
|
|
137
|
+
color: var(--channel-public);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.channel-icon.dm {
|
|
141
|
+
color: var(--channel-dm);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.channel-item.active .channel-icon {
|
|
145
|
+
color: var(--text-primary);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.channel-name {
|
|
149
|
+
flex: 1;
|
|
150
|
+
overflow: hidden;
|
|
151
|
+
text-overflow: ellipsis;
|
|
152
|
+
white-space: nowrap;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/* Main content */
|
|
156
|
+
.content {
|
|
157
|
+
flex: 1;
|
|
158
|
+
display: flex;
|
|
159
|
+
flex-direction: column;
|
|
160
|
+
min-width: 0;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.content-header {
|
|
164
|
+
padding: 16px 20px;
|
|
165
|
+
border-bottom: 1px solid var(--border);
|
|
166
|
+
background: var(--bg-secondary);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.content-header h2 {
|
|
170
|
+
font-size: 18px;
|
|
171
|
+
font-weight: 600;
|
|
172
|
+
margin-bottom: 2px;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.channel-description {
|
|
176
|
+
font-size: 13px;
|
|
177
|
+
color: var(--text-secondary);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* Messages area */
|
|
181
|
+
.messages {
|
|
182
|
+
flex: 1;
|
|
183
|
+
overflow-y: auto;
|
|
184
|
+
padding: 16px 20px;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.empty-state {
|
|
188
|
+
display: flex;
|
|
189
|
+
align-items: center;
|
|
190
|
+
justify-content: center;
|
|
191
|
+
height: 100%;
|
|
192
|
+
color: var(--text-muted);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.message {
|
|
196
|
+
padding: 12px 0;
|
|
197
|
+
border-bottom: 1px solid var(--border);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.message:last-child {
|
|
201
|
+
border-bottom: none;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.message-header {
|
|
205
|
+
display: flex;
|
|
206
|
+
align-items: baseline;
|
|
207
|
+
gap: 8px;
|
|
208
|
+
margin-bottom: 6px;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.message-from {
|
|
212
|
+
font-weight: 600;
|
|
213
|
+
color: var(--text-primary);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.message-time {
|
|
217
|
+
font-size: 12px;
|
|
218
|
+
color: var(--text-muted);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.message-host {
|
|
222
|
+
font-size: 11px;
|
|
223
|
+
color: var(--text-muted);
|
|
224
|
+
background: var(--bg-tertiary);
|
|
225
|
+
padding: 2px 6px;
|
|
226
|
+
border-radius: 4px;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.message-content {
|
|
230
|
+
color: var(--text-primary);
|
|
231
|
+
line-height: 1.5;
|
|
232
|
+
white-space: pre-wrap;
|
|
233
|
+
word-break: break-word;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.message-content p {
|
|
237
|
+
margin-bottom: 8px;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.message-content p:last-child {
|
|
241
|
+
margin-bottom: 0;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.message-content code {
|
|
245
|
+
background: var(--bg-tertiary);
|
|
246
|
+
padding: 2px 6px;
|
|
247
|
+
border-radius: 4px;
|
|
248
|
+
font-family: "SF Mono", Monaco, "Cascadia Code", monospace;
|
|
249
|
+
font-size: 13px;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.message-content pre {
|
|
253
|
+
background: var(--bg-tertiary);
|
|
254
|
+
padding: 12px;
|
|
255
|
+
border-radius: 6px;
|
|
256
|
+
overflow-x: auto;
|
|
257
|
+
margin: 8px 0;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.message-content pre code {
|
|
261
|
+
background: none;
|
|
262
|
+
padding: 0;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.message-footer {
|
|
266
|
+
display: flex;
|
|
267
|
+
align-items: center;
|
|
268
|
+
gap: 12px;
|
|
269
|
+
margin-top: 8px;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
.message-tags {
|
|
273
|
+
display: flex;
|
|
274
|
+
gap: 4px;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.tag {
|
|
278
|
+
font-size: 11px;
|
|
279
|
+
background: var(--bg-tertiary);
|
|
280
|
+
color: var(--text-secondary);
|
|
281
|
+
padding: 2px 8px;
|
|
282
|
+
border-radius: 12px;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.reply-count {
|
|
286
|
+
font-size: 12px;
|
|
287
|
+
color: var(--accent);
|
|
288
|
+
cursor: pointer;
|
|
289
|
+
transition: color 0.15s ease;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.reply-count:hover {
|
|
293
|
+
color: var(--accent-hover);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/* Composer */
|
|
297
|
+
.composer {
|
|
298
|
+
padding: 16px 20px;
|
|
299
|
+
border-top: 1px solid var(--border);
|
|
300
|
+
background: var(--bg-secondary);
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
.composer form,
|
|
304
|
+
.thread-composer form {
|
|
305
|
+
display: flex;
|
|
306
|
+
gap: 8px;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.composer input,
|
|
310
|
+
.thread-composer input {
|
|
311
|
+
flex: 1;
|
|
312
|
+
padding: 10px 14px;
|
|
313
|
+
background: var(--bg-primary);
|
|
314
|
+
border: 1px solid var(--border);
|
|
315
|
+
border-radius: 6px;
|
|
316
|
+
color: var(--text-primary);
|
|
317
|
+
font-size: 14px;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.composer input:focus,
|
|
321
|
+
.thread-composer input:focus {
|
|
322
|
+
outline: none;
|
|
323
|
+
border-color: var(--accent);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.composer button,
|
|
327
|
+
.thread-composer button {
|
|
328
|
+
padding: 10px 20px;
|
|
329
|
+
background: var(--accent);
|
|
330
|
+
border: none;
|
|
331
|
+
border-radius: 6px;
|
|
332
|
+
color: var(--text-primary);
|
|
333
|
+
font-size: 14px;
|
|
334
|
+
font-weight: 500;
|
|
335
|
+
cursor: pointer;
|
|
336
|
+
transition: background 0.15s ease;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.composer button:hover,
|
|
340
|
+
.thread-composer button:hover {
|
|
341
|
+
background: var(--accent-hover);
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
/* Thread panel */
|
|
345
|
+
.thread-panel {
|
|
346
|
+
width: 400px;
|
|
347
|
+
min-width: 400px;
|
|
348
|
+
background: var(--bg-secondary);
|
|
349
|
+
border-left: 1px solid var(--border);
|
|
350
|
+
display: flex;
|
|
351
|
+
flex-direction: column;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.thread-header {
|
|
355
|
+
display: flex;
|
|
356
|
+
align-items: center;
|
|
357
|
+
justify-content: space-between;
|
|
358
|
+
padding: 16px;
|
|
359
|
+
border-bottom: 1px solid var(--border);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
.thread-header h3 {
|
|
363
|
+
font-size: 16px;
|
|
364
|
+
font-weight: 600;
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
.close-thread {
|
|
368
|
+
width: 28px;
|
|
369
|
+
height: 28px;
|
|
370
|
+
display: flex;
|
|
371
|
+
align-items: center;
|
|
372
|
+
justify-content: center;
|
|
373
|
+
background: none;
|
|
374
|
+
border: none;
|
|
375
|
+
color: var(--text-secondary);
|
|
376
|
+
font-size: 20px;
|
|
377
|
+
cursor: pointer;
|
|
378
|
+
border-radius: 4px;
|
|
379
|
+
transition: background 0.15s ease;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.close-thread:hover {
|
|
383
|
+
background: var(--bg-tertiary);
|
|
384
|
+
color: var(--text-primary);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
.thread-messages {
|
|
388
|
+
flex: 1;
|
|
389
|
+
overflow-y: auto;
|
|
390
|
+
padding: 16px;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.thread-composer {
|
|
394
|
+
padding: 16px;
|
|
395
|
+
border-top: 1px solid var(--border);
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
/* Loading spinner */
|
|
399
|
+
.loading-spinner {
|
|
400
|
+
display: inline-block;
|
|
401
|
+
width: 20px;
|
|
402
|
+
height: 20px;
|
|
403
|
+
border: 2px solid var(--border);
|
|
404
|
+
border-top-color: var(--accent);
|
|
405
|
+
border-radius: 50%;
|
|
406
|
+
animation: spin 0.8s linear infinite;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
@keyframes spin {
|
|
410
|
+
to {
|
|
411
|
+
transform: rotate(360deg);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/* Responsive */
|
|
416
|
+
@media (max-width: 900px) {
|
|
417
|
+
.thread-panel {
|
|
418
|
+
position: fixed;
|
|
419
|
+
top: 0;
|
|
420
|
+
right: 0;
|
|
421
|
+
bottom: 0;
|
|
422
|
+
width: 100%;
|
|
423
|
+
max-width: 400px;
|
|
424
|
+
z-index: 100;
|
|
425
|
+
transform: translateX(100%);
|
|
426
|
+
transition: transform 0.2s ease;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
.thread-panel.open {
|
|
430
|
+
transform: translateX(0);
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
@media (max-width: 600px) {
|
|
435
|
+
.sidebar {
|
|
436
|
+
position: fixed;
|
|
437
|
+
top: 0;
|
|
438
|
+
left: 0;
|
|
439
|
+
bottom: 0;
|
|
440
|
+
z-index: 100;
|
|
441
|
+
transform: translateX(-100%);
|
|
442
|
+
transition: transform 0.2s ease;
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.sidebar.open {
|
|
446
|
+
transform: translateX(0);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.content-header h2 {
|
|
450
|
+
font-size: 16px;
|
|
451
|
+
}
|
|
452
|
+
}
|
package/dist/lib/channel.d.ts
CHANGED
|
@@ -21,7 +21,7 @@ export declare function publishMessage(channelsDir: string, channelName: string,
|
|
|
21
21
|
/**
|
|
22
22
|
* Read messages from a channel
|
|
23
23
|
*/
|
|
24
|
-
export declare function readChannel(channelsDir: string, channelName: string, limit?: number, since?: Date): Promise<ChannelMessage[]>;
|
|
24
|
+
export declare function readChannel(channelsDir: string, channelName: string, limit?: number, since?: Date, threadId?: string): Promise<ChannelMessage[]>;
|
|
25
25
|
/**
|
|
26
26
|
* Reply to a message in a channel
|
|
27
27
|
*/
|
|
@@ -30,4 +30,56 @@ export declare function replyToMessage(channelsDir: string, channelName: string,
|
|
|
30
30
|
* Load channel metadata
|
|
31
31
|
*/
|
|
32
32
|
export declare function loadChannelMetadata(channelsDir: string, channelName: string): Promise<ChannelMetadata | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Get the last processed timestamp for a channel
|
|
35
|
+
*/
|
|
36
|
+
export declare function getLastProcessedTime(channelsDir: string, channelName: string): Promise<Date | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Mark a channel as processed at the current time
|
|
39
|
+
*/
|
|
40
|
+
export declare function markChannelProcessed(channelsDir: string, channelName: string): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* A pending message that needs processing
|
|
43
|
+
*/
|
|
44
|
+
export interface PendingMessage {
|
|
45
|
+
/** Message ID (ISO 8601 timestamp) */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Channel name (e.g., @persona) */
|
|
48
|
+
channel: string;
|
|
49
|
+
/** Path to the message file */
|
|
50
|
+
path: string;
|
|
51
|
+
/** Message content (body, without frontmatter) */
|
|
52
|
+
content: string;
|
|
53
|
+
/** Message metadata */
|
|
54
|
+
meta: ChannelMessageMeta;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get pending (unprocessed) messages for a DM channel
|
|
58
|
+
* Returns messages newer than the last processed timestamp
|
|
59
|
+
*/
|
|
60
|
+
export declare function getPendingMessages(channelsDir: string, channelName: string): Promise<PendingMessage[]>;
|
|
61
|
+
/**
|
|
62
|
+
* List all DM channels (@persona) in the channels directory
|
|
63
|
+
*/
|
|
64
|
+
export declare function listDMChannels(channelsDir: string): Promise<string[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Get the workspace directory path for a thread.
|
|
67
|
+
* The workspace is a directory within the thread for working files.
|
|
68
|
+
*
|
|
69
|
+
* @param channelsDir - Base channels directory
|
|
70
|
+
* @param channelName - Channel name (e.g., "#sessions")
|
|
71
|
+
* @param threadId - Thread ID (ISO timestamp)
|
|
72
|
+
* @param create - If true, creates the workspace directory if it doesn't exist
|
|
73
|
+
* @returns Path to the workspace directory, or null if thread doesn't exist
|
|
74
|
+
*/
|
|
75
|
+
export declare function getThreadWorkspace(channelsDir: string, channelName: string, threadId: string, create?: boolean): Promise<string | null>;
|
|
76
|
+
/**
|
|
77
|
+
* Get the thread directory path.
|
|
78
|
+
*
|
|
79
|
+
* @param channelsDir - Base channels directory
|
|
80
|
+
* @param channelName - Channel name (e.g., "#sessions")
|
|
81
|
+
* @param threadId - Thread ID (ISO timestamp)
|
|
82
|
+
* @returns Path to the thread directory, or null if it doesn't exist
|
|
83
|
+
*/
|
|
84
|
+
export declare function getThreadPath(channelsDir: string, channelName: string, threadId: string): Promise<string | null>;
|
|
33
85
|
//# sourceMappingURL=channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/lib/channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/lib/channel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAyD5B;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,EAAE,CAAC,CAiCxD;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAiB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAoBf;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAsBjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,IAAI,EACZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,EAAE,CAAC,CA4E3B;AAmDD;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CASjC;AAYD;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CActB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,EAAE,CAAC,CA4D3B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,EAAE,CAAC,CAgBnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB"}
|