@clappstore/connect 0.7.7 → 0.7.8

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 (41) hide show
  1. package/dist/agent-client.d.ts +6 -0
  2. package/dist/agent-client.d.ts.map +1 -1
  3. package/dist/agent-client.js +109 -18
  4. package/dist/agent-client.js.map +1 -1
  5. package/dist/auth.d.ts +18 -0
  6. package/dist/auth.d.ts.map +1 -0
  7. package/dist/auth.js +248 -0
  8. package/dist/auth.js.map +1 -0
  9. package/dist/chat-handler.d.ts +52 -0
  10. package/dist/chat-handler.d.ts.map +1 -0
  11. package/dist/chat-handler.js +453 -0
  12. package/dist/chat-handler.js.map +1 -0
  13. package/dist/defaults.d.ts +1 -1
  14. package/dist/defaults.d.ts.map +1 -1
  15. package/dist/defaults.js +36 -23
  16. package/dist/defaults.js.map +1 -1
  17. package/dist/index.d.ts +1 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +53 -30
  20. package/dist/index.js.map +1 -1
  21. package/dist/server.d.ts +1 -0
  22. package/dist/server.d.ts.map +1 -1
  23. package/dist/server.js +88 -7
  24. package/dist/server.js.map +1 -1
  25. package/dist/settings-handler.d.ts +76 -0
  26. package/dist/settings-handler.d.ts.map +1 -0
  27. package/dist/settings-handler.js +848 -0
  28. package/dist/settings-handler.js.map +1 -0
  29. package/package.json +4 -8
  30. package/web-app/assets/{index-CEpgiIwf.js → index-CWzlxjUK.js} +86 -56
  31. package/web-app/assets/index-Cic64hbc.css +1 -0
  32. package/web-app/index.html +2 -2
  33. package/clapps/settings/README.md +0 -74
  34. package/clapps/settings/clapp.json +0 -25
  35. package/clapps/settings/components/ProviderEditor.tsx +0 -512
  36. package/clapps/settings/components/ProviderList.tsx +0 -300
  37. package/clapps/settings/components/SessionList.tsx +0 -189
  38. package/clapps/settings/handlers/settings-handler.js +0 -742
  39. package/clapps/settings/views/default.settings.view.md +0 -35
  40. package/clapps/settings/views/settings.app.md +0 -12
  41. package/web-app/assets/index-BsI5PEAv.css +0 -1
@@ -0,0 +1,453 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { homedir } from "node:os";
4
+ const PAGE_SIZE = 30;
5
+ export class ChatHandler {
6
+ stateDir;
7
+ store;
8
+ agentClient;
9
+ sessionsDir;
10
+ constructor(options) {
11
+ this.stateDir = options.stateDir;
12
+ this.store = options.store;
13
+ this.agentClient = options.agentClient;
14
+ this.sessionsDir = resolve(homedir(), ".openclaw", "workspace", "chat-sessions");
15
+ // Ensure sessions directory exists
16
+ mkdirSync(this.sessionsDir, { recursive: true });
17
+ }
18
+ /** Returns true if the intent was handled */
19
+ handleIntent = (intent) => {
20
+ if (!intent.intent.startsWith("chat."))
21
+ return false;
22
+ switch (intent.intent) {
23
+ case "chat.init": {
24
+ this.initChat();
25
+ return true;
26
+ }
27
+ case "chat.send": {
28
+ const text = intent.payload.text;
29
+ if (typeof text !== "string" || text.trim().length === 0) {
30
+ return true;
31
+ }
32
+ this.sendMessage(text.trim());
33
+ return true;
34
+ }
35
+ case "chat.newSession": {
36
+ this.createNewSession();
37
+ return true;
38
+ }
39
+ case "chat.switchSession": {
40
+ const sessionKey = intent.payload.sessionKey;
41
+ if (typeof sessionKey === "string") {
42
+ this.switchSession(sessionKey);
43
+ }
44
+ return true;
45
+ }
46
+ case "chat.deleteSession": {
47
+ const sessionKey = intent.payload.sessionKey;
48
+ if (typeof sessionKey === "string") {
49
+ this.deleteSession(sessionKey);
50
+ }
51
+ return true;
52
+ }
53
+ case "chat.loadOlder": {
54
+ this.loadOlder();
55
+ return true;
56
+ }
57
+ default:
58
+ return false;
59
+ }
60
+ };
61
+ /** Initialize chat state */
62
+ initChat() {
63
+ let sessions = this.loadSessions();
64
+ let activeSession = sessions[0]?.key ?? null;
65
+ // Create a default session if none exist
66
+ if (sessions.length === 0) {
67
+ const newSession = this.createSessionData();
68
+ sessions.push(newSession);
69
+ activeSession = newSession.key;
70
+ this.saveSessionMessages(newSession.key, []);
71
+ this.saveSessions(sessions);
72
+ }
73
+ sessions = this.refreshSessionsFromFiles(sessions);
74
+ let allMessages = activeSession ? this.loadSessionMessages(activeSession) : [];
75
+ const loadedCount = Math.min(PAGE_SIZE, allMessages.length);
76
+ const messages = allMessages.slice(-loadedCount);
77
+ this.pushState({
78
+ sessions,
79
+ activeSession,
80
+ messages,
81
+ loading: false,
82
+ loadingOlder: false,
83
+ loadedCount,
84
+ hasMore: allMessages.length > loadedCount,
85
+ });
86
+ }
87
+ /** Send a message to the active session */
88
+ sendMessage(text) {
89
+ const state = this.getCurrentState();
90
+ let { sessions, activeSession } = state;
91
+ // Create session if none active
92
+ if (!activeSession) {
93
+ const newSession = this.createSessionData();
94
+ sessions = [newSession, ...sessions];
95
+ activeSession = newSession.key;
96
+ }
97
+ const activeMeta = sessions.find((s) => s.key === activeSession);
98
+ const allBefore = this.loadSessionMessages(activeSession);
99
+ // Add user message
100
+ const userMessage = {
101
+ id: `msg-${Date.now()}-user`,
102
+ role: "user",
103
+ content: text,
104
+ timestamp: new Date().toISOString(),
105
+ };
106
+ const allWithUser = [...allBefore, userMessage];
107
+ this.saveSessionMessages(activeSession, allWithUser);
108
+ const loadedCount = Math.min(allWithUser.length, Math.max(state.loadedCount, PAGE_SIZE) + 1);
109
+ const messages = allWithUser.slice(-loadedCount);
110
+ sessions = this.refreshSessionsFromFiles(sessions);
111
+ // Update state with user message and loading
112
+ this.pushState({
113
+ sessions,
114
+ activeSession,
115
+ messages,
116
+ loading: true,
117
+ loadingOlder: false,
118
+ loadedCount,
119
+ hasMore: allWithUser.length > loadedCount,
120
+ });
121
+ // Send to OpenClaw and get response
122
+ this.getAssistantResponse(activeSession, activeMeta.acpSessionKey, text, allWithUser, loadedCount);
123
+ }
124
+ /** Get assistant response from OpenClaw via ACP */
125
+ async getAssistantResponse(sessionKey, acpSessionKey, userText, allCurrentMessages, loadedCountBefore) {
126
+ try {
127
+ console.log(`[chat] Sending message to ACP: "${userText.slice(0, 50)}..."`);
128
+ // Send message via ACP and get response
129
+ const response = await this.agentClient.sendMessage(userText, acpSessionKey);
130
+ console.log(`[chat] Got response (${response?.length ?? 0} chars): "${response?.slice(0, 100)}..."`);
131
+ const rawContent = response || "I apologize, but I encountered an error processing your request.";
132
+ const assistantContent = rawContent.replace(/^\s*\[\[[^\]]+\]\]\s*/u, "");
133
+ // Add assistant message
134
+ const assistantMessage = {
135
+ id: `msg-${Date.now()}-assistant`,
136
+ role: "assistant",
137
+ content: assistantContent,
138
+ timestamp: new Date().toISOString(),
139
+ };
140
+ const allUpdatedMessages = [...allCurrentMessages, assistantMessage];
141
+ this.saveSessionMessages(sessionKey, allUpdatedMessages);
142
+ const sessions = this.refreshSessionsFromFiles(this.loadSessions()).map((s) => s.key === sessionKey && !s.title
143
+ ? { ...s, title: this.generateTitle(userText) }
144
+ : s);
145
+ this.saveSessions(sessions);
146
+ const loadedCount = Math.min(allUpdatedMessages.length, loadedCountBefore + 1);
147
+ const messages = allUpdatedMessages.slice(-loadedCount);
148
+ this.pushState({
149
+ sessions,
150
+ activeSession: sessionKey,
151
+ messages,
152
+ loading: false,
153
+ loadingOlder: false,
154
+ loadedCount,
155
+ hasMore: allUpdatedMessages.length > loadedCount,
156
+ });
157
+ }
158
+ catch (err) {
159
+ console.error(`[chat] Error getting response: ${err}`);
160
+ // Show error to user
161
+ const errorMessage = {
162
+ id: `msg-${Date.now()}-assistant`,
163
+ role: "assistant",
164
+ content: `Sorry, I couldn't process your request: ${err instanceof Error ? err.message : 'Unknown error'}`,
165
+ timestamp: new Date().toISOString(),
166
+ };
167
+ const allUpdatedMessages = [...allCurrentMessages, errorMessage];
168
+ this.saveSessionMessages(sessionKey, allUpdatedMessages);
169
+ const loadedCount = Math.min(allUpdatedMessages.length, loadedCountBefore + 1);
170
+ this.pushState({
171
+ sessions: this.refreshSessionsFromFiles(this.loadSessions()),
172
+ activeSession: sessionKey,
173
+ messages: allUpdatedMessages.slice(-loadedCount),
174
+ loading: false,
175
+ loadingOlder: false,
176
+ loadedCount,
177
+ hasMore: allUpdatedMessages.length > loadedCount,
178
+ });
179
+ }
180
+ }
181
+ /** Create a new session */
182
+ createNewSession() {
183
+ const state = this.getCurrentState();
184
+ const newSession = this.createSessionData();
185
+ const sessions = [newSession, ...state.sessions];
186
+ this.saveSessions(sessions);
187
+ this.saveSessionMessages(newSession.key, []);
188
+ this.pushState({
189
+ sessions,
190
+ activeSession: newSession.key,
191
+ messages: [],
192
+ loading: false,
193
+ loadingOlder: false,
194
+ loadedCount: 0,
195
+ hasMore: false,
196
+ });
197
+ }
198
+ /** Switch to a different session */
199
+ switchSession(sessionKey) {
200
+ const state = this.getCurrentState();
201
+ const target = state.sessions.find((s) => s.key === sessionKey);
202
+ const allMessages = target ? this.hydrateSessionFromAcpLog(target) : this.loadSessionMessages(sessionKey);
203
+ const loadedCount = Math.min(PAGE_SIZE, allMessages.length);
204
+ this.pushState({
205
+ ...state,
206
+ sessions: this.refreshSessionsFromFiles(state.sessions),
207
+ activeSession: sessionKey,
208
+ messages: allMessages.slice(-loadedCount),
209
+ loading: false,
210
+ loadingOlder: false,
211
+ loadedCount,
212
+ hasMore: allMessages.length > loadedCount,
213
+ });
214
+ }
215
+ /** Load older messages for the active session */
216
+ loadOlder() {
217
+ const state = this.getCurrentState();
218
+ const sessionKey = state.activeSession;
219
+ if (!sessionKey || state.loadingOlder || !state.hasMore)
220
+ return;
221
+ this.pushState({ ...state, loadingOlder: true });
222
+ const allMessages = this.loadSessionMessages(sessionKey);
223
+ const newLoadedCount = Math.min(allMessages.length, state.loadedCount + PAGE_SIZE);
224
+ this.pushState({
225
+ ...state,
226
+ loadingOlder: false,
227
+ loadedCount: newLoadedCount,
228
+ hasMore: allMessages.length > newLoadedCount,
229
+ messages: allMessages.slice(-newLoadedCount),
230
+ });
231
+ }
232
+ /** Delete a session */
233
+ deleteSession(sessionKey) {
234
+ const state = this.getCurrentState();
235
+ const sessions = state.sessions.filter(s => s.key !== sessionKey);
236
+ this.saveSessions(sessions);
237
+ // Delete messages file
238
+ const messagesPath = resolve(this.sessionsDir, `${sessionKey}.json`);
239
+ try {
240
+ if (existsSync(messagesPath)) {
241
+ writeFileSync(messagesPath, "[]", "utf-8");
242
+ }
243
+ }
244
+ catch {
245
+ // Ignore
246
+ }
247
+ // Switch to another session if we deleted the active one
248
+ let activeSession = state.activeSession;
249
+ let messages = state.messages;
250
+ if (sessionKey === state.activeSession) {
251
+ activeSession = sessions[0]?.key ?? null;
252
+ messages = activeSession ? this.loadSessionMessages(activeSession) : [];
253
+ }
254
+ const loadedCount = messages.length;
255
+ this.pushState({
256
+ sessions: this.refreshSessionsFromFiles(sessions),
257
+ activeSession,
258
+ messages,
259
+ loading: false,
260
+ loadingOlder: false,
261
+ loadedCount,
262
+ hasMore: activeSession ? this.loadSessionMessages(activeSession).length > loadedCount : false,
263
+ });
264
+ }
265
+ /** Generate a title from the first message */
266
+ generateTitle(text) {
267
+ const cleaned = text.replace(/\n/g, " ").trim();
268
+ if (cleaned.length <= 40)
269
+ return cleaned;
270
+ return cleaned.slice(0, 37) + "...";
271
+ }
272
+ /** Create a new session data object */
273
+ createSessionData() {
274
+ const id = Date.now();
275
+ return {
276
+ key: `session-${id}`,
277
+ acpSessionKey: `agent:main:clapps-chat:${id}`,
278
+ title: "",
279
+ preview: "",
280
+ updatedAt: new Date().toISOString(),
281
+ messageCount: 0,
282
+ };
283
+ }
284
+ /** Load all sessions */
285
+ loadSessions() {
286
+ const sessionsPath = resolve(this.sessionsDir, "_sessions.json");
287
+ try {
288
+ if (existsSync(sessionsPath)) {
289
+ const parsed = JSON.parse(readFileSync(sessionsPath, "utf-8"));
290
+ return (parsed ?? []).map((s) => ({
291
+ key: s.key ?? `session-${Date.now()}`,
292
+ acpSessionKey: s.acpSessionKey ?? "agent:main:clapps-chat",
293
+ title: s.title ?? "",
294
+ preview: s.preview ?? "",
295
+ updatedAt: s.updatedAt ?? new Date().toISOString(),
296
+ messageCount: s.messageCount ?? 0,
297
+ }));
298
+ }
299
+ }
300
+ catch {
301
+ // Return empty
302
+ }
303
+ return [];
304
+ }
305
+ /** Save sessions list */
306
+ saveSessions(sessions) {
307
+ const sessionsPath = resolve(this.sessionsDir, "_sessions.json");
308
+ writeFileSync(sessionsPath, JSON.stringify(sessions, null, 2), "utf-8");
309
+ }
310
+ /** Refresh sidebar session metadata from session message files */
311
+ refreshSessionsFromFiles(sessions) {
312
+ const refreshed = sessions.map((s) => {
313
+ const messages = this.loadSessionMessages(s.key);
314
+ const firstUser = messages.find((m) => m.role === "user")?.content ?? "";
315
+ const last = messages[messages.length - 1];
316
+ const preview = last?.content?.slice(0, 100) ?? "";
317
+ const updatedAt = last?.timestamp ?? s.updatedAt;
318
+ const title = s.title || this.generateTitle(firstUser || "New conversation");
319
+ return {
320
+ ...s,
321
+ title,
322
+ preview,
323
+ updatedAt,
324
+ messageCount: messages.length,
325
+ };
326
+ });
327
+ return refreshed.sort((a, b) => (b.updatedAt || "").localeCompare(a.updatedAt || ""));
328
+ }
329
+ /** Load messages for a session */
330
+ loadSessionMessages(sessionKey) {
331
+ const messagesPath = resolve(this.sessionsDir, `${sessionKey}.json`);
332
+ try {
333
+ if (existsSync(messagesPath)) {
334
+ return JSON.parse(readFileSync(messagesPath, "utf-8"));
335
+ }
336
+ }
337
+ catch {
338
+ // Return empty
339
+ }
340
+ return [];
341
+ }
342
+ /** Save messages for a session */
343
+ saveSessionMessages(sessionKey, messages) {
344
+ const messagesPath = resolve(this.sessionsDir, `${sessionKey}.json`);
345
+ writeFileSync(messagesPath, JSON.stringify(messages, null, 2), "utf-8");
346
+ }
347
+ /** If local transcript is empty, hydrate it from OpenClaw session jsonl */
348
+ hydrateSessionFromAcpLog(session) {
349
+ const existing = this.loadSessionMessages(session.key);
350
+ if (existing.length > 0)
351
+ return existing;
352
+ try {
353
+ const sessionsMapPath = resolve(homedir(), ".openclaw", "agents", "main", "sessions", "sessions.json");
354
+ if (!existsSync(sessionsMapPath))
355
+ return existing;
356
+ const sessionsMap = JSON.parse(readFileSync(sessionsMapPath, "utf-8"));
357
+ const sessionMeta = sessionsMap[session.acpSessionKey];
358
+ if (!sessionMeta?.sessionId)
359
+ return existing;
360
+ const jsonlPath = resolve(homedir(), ".openclaw", "agents", "main", "sessions", `${sessionMeta.sessionId}.jsonl`);
361
+ if (!existsSync(jsonlPath))
362
+ return existing;
363
+ const lines = readFileSync(jsonlPath, "utf-8").trim().split("\n");
364
+ const hydrated = [];
365
+ for (const line of lines) {
366
+ try {
367
+ const row = JSON.parse(line);
368
+ if (row?.type !== "message")
369
+ continue;
370
+ const msg = row?.message;
371
+ if (!msg || (msg.role !== "user" && msg.role !== "assistant"))
372
+ continue;
373
+ const parts = Array.isArray(msg.content) ? msg.content : [];
374
+ const text = parts
375
+ .filter((p) => p?.type === "text" && typeof p?.text === "string")
376
+ .map((p) => p.text)
377
+ .join("\n")
378
+ .trim();
379
+ if (!text)
380
+ continue;
381
+ hydrated.push({
382
+ id: row.id ?? `msg-${Date.now()}-${hydrated.length}`,
383
+ role: msg.role,
384
+ content: text.replace(/^\s*\[\[[^\]]+\]\]\s*/u, ""),
385
+ timestamp: msg.timestamp ? new Date(msg.timestamp).toISOString() : (row.timestamp ?? new Date().toISOString()),
386
+ });
387
+ }
388
+ catch {
389
+ // ignore malformed row
390
+ }
391
+ }
392
+ if (hydrated.length > 0) {
393
+ this.saveSessionMessages(session.key, hydrated);
394
+ return hydrated;
395
+ }
396
+ }
397
+ catch {
398
+ // ignore hydrate failures
399
+ }
400
+ return existing;
401
+ }
402
+ /** Get current state */
403
+ getCurrentState() {
404
+ // Prefer last pushed UI state if available
405
+ const statePath = resolve(this.stateDir, "chat.json");
406
+ try {
407
+ if (existsSync(statePath)) {
408
+ const parsed = JSON.parse(readFileSync(statePath, "utf-8"));
409
+ const chat = parsed?.state?.chat;
410
+ if (chat && typeof chat === "object") {
411
+ return {
412
+ sessions: Array.isArray(chat.sessions) ? chat.sessions : this.loadSessions(),
413
+ activeSession: typeof chat.activeSession === "string" ? chat.activeSession : null,
414
+ messages: Array.isArray(chat.messages) ? chat.messages : [],
415
+ loading: Boolean(chat.loading),
416
+ loadingOlder: Boolean(chat.loadingOlder),
417
+ loadedCount: Number(chat.loadedCount ?? (Array.isArray(chat.messages) ? chat.messages.length : 0)),
418
+ hasMore: Boolean(chat.hasMore),
419
+ };
420
+ }
421
+ }
422
+ }
423
+ catch {
424
+ // fallback below
425
+ }
426
+ const sessions = this.loadSessions();
427
+ const activeSession = sessions[0]?.key ?? null;
428
+ const messages = activeSession ? this.loadSessionMessages(activeSession) : [];
429
+ return {
430
+ sessions,
431
+ activeSession,
432
+ messages,
433
+ loading: false,
434
+ loadingOlder: false,
435
+ loadedCount: messages.length,
436
+ hasMore: activeSession ? this.loadSessionMessages(activeSession).length > messages.length : false,
437
+ };
438
+ }
439
+ /** Push state to store */
440
+ pushState(chatState) {
441
+ const state = {
442
+ version: Date.now(),
443
+ timestamp: new Date().toISOString(),
444
+ state: {
445
+ chat: chatState,
446
+ },
447
+ };
448
+ const statePath = resolve(this.stateDir, "chat.json");
449
+ writeFileSync(statePath, JSON.stringify(state, null, 2), "utf-8");
450
+ this.store.setState("chat", state);
451
+ }
452
+ }
453
+ //# sourceMappingURL=chat-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-handler.js","sourceRoot":"","sources":["../src/chat-handler.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,5 @@ export declare function installDefaultClapps(): void;
7
7
  /** Seed default views and apps registry */
8
8
  export declare function seedDefaults(viewsDir: string, stateDir: string): void;
9
9
  /** Check if the agent has an AI provider configured and write _status.json */
10
- export declare function checkAuthStatus(stateDir: string): void;
10
+ export declare function checkAuthStatus(stateDir: string, authProfilesPath?: string): void;
11
11
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAuJA,sCAAsC;AACtC,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AA6BD,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,IAAI,CAwB3C;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CA2CrE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAsCtD"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AA2JA,sCAAsC;AACtC,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,8DAA8D;AAC9D,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AA6BD,8DAA8D;AAC9D,wBAAgB,oBAAoB,IAAI,IAAI,CAwB3C;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CA2CrE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAyDjF"}
package/dist/defaults.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { existsSync, readFileSync, writeFileSync, mkdirSync, cpSync } from "node:fs";
2
- import { spawnSync } from "node:child_process";
3
2
  import { resolve, dirname } from "node:path";
4
3
  import { homedir } from "node:os";
5
4
  import { fileURLToPath } from "node:url";
@@ -24,23 +23,25 @@ version: 0.1.0
24
23
  ---
25
24
 
26
25
  ## State Bindings
27
- - \`messages\` -> array
28
- - \`loading\` -> boolean
26
+ - \`chat.sessions\` -> array
27
+ - \`chat.activeSession\` -> string
28
+ - \`chat.messages\` -> array
29
+ - \`chat.loading\` -> boolean
29
30
 
30
31
  ## Layout
31
32
  \`\`\`clapp-layout
32
- Column(gap=4):
33
- List(data=messages):
34
- Conditional(when=loading):
35
- Skeleton:
36
- IntentForm(intent=chat.send, submitLabel=Send):
37
- TextInput(name=text, placeholder=Type a message...):
33
+ ChatLayout():
38
34
  \`\`\`
39
35
 
40
36
  ## Intents
41
37
  | Name | Payload | Description |
42
38
  |------|---------|-------------|
43
- | chat.send | \`{ text: string }\` | Send a chat message |
39
+ | chat.init | \`{}\` | Initialize chat and load sessions |
40
+ | chat.send | \`{ text: string }\` | Send a message |
41
+ | chat.newSession | \`{}\` | Create a new chat session |
42
+ | chat.switchSession | \`{ sessionKey: string }\` | Switch to a different session |
43
+ | chat.deleteSession | \`{ sessionKey: string }\` | Delete a session |
44
+ | chat.loadOlder | \`{}\` | Load older messages for current session |
44
45
  `;
45
46
  const DEFAULT_SETTINGS_APP_MD = `---
46
47
  name: Settings
@@ -73,7 +74,10 @@ version: 0.6.0
73
74
  Column(gap=5):
74
75
  Card(title=AI Providers):
75
76
  Column(gap=4):
76
- ProviderList(data=configuredProviders):
77
+ Conditional(when=active.isConfigured):
78
+ ProviderList(data=configuredProviders):
79
+ Conditional(when=!active.isConfigured):
80
+ Heading(level=4): "No providers configured"
77
81
  SessionList():
78
82
  \`\`\`
79
83
 
@@ -131,7 +135,7 @@ export function getUserClappsDir() {
131
135
  /** Get the bundled clapps directory (shipped with package) */
132
136
  export function getBundledClappsDir() {
133
137
  const __dirname = dirname(fileURLToPath(import.meta.url));
134
- return resolve(__dirname, "..", "clapps");
138
+ return resolve(__dirname, "..", "..", "..", "clapps");
135
139
  }
136
140
  /** Load a view file, checking user dir first, then bundled, then fallback to embedded */
137
141
  function loadView(clappId, viewFile, fallback) {
@@ -223,26 +227,35 @@ export function seedDefaults(viewsDir, stateDir) {
223
227
  }
224
228
  }
225
229
  /** Check if the agent has an AI provider configured and write _status.json */
226
- export function checkAuthStatus(stateDir) {
230
+ export function checkAuthStatus(stateDir, authProfilesPath) {
231
+ const defaultAuthProfilesPath = resolve(homedir(), ".openclaw", "agents", "main", "agent", "auth-profiles.json");
232
+ const targetPath = authProfilesPath ?? defaultAuthProfilesPath;
227
233
  let setupRequired = true;
228
234
  let message = "Your agent needs an AI provider key to respond to messages. Run:\n" +
229
235
  "`openclaw models auth` to configure authentication.";
230
236
  try {
231
- const result = spawnSync("openclaw", ["models", "status", "--json"], {
232
- encoding: "utf-8",
233
- timeout: 10_000,
234
- });
235
- if (result.status === 0) {
236
- const status = JSON.parse(result.stdout);
237
- const hasProviders = (status.auth?.providers ?? []).some((p) => p.profiles > 0);
238
- if (hasProviders) {
237
+ if (existsSync(targetPath)) {
238
+ const raw = readFileSync(targetPath, "utf-8");
239
+ const data = JSON.parse(raw);
240
+ // Check if any profile has actual credentials
241
+ const profiles = data.profiles ?? data;
242
+ const hasCredentials = Object.values(profiles).some((profile) => {
243
+ if (typeof profile === "object" && profile !== null) {
244
+ const p = profile;
245
+ return ((typeof p.token === "string" && p.token.length > 0) ||
246
+ (typeof p.key === "string" && p.key.length > 0) ||
247
+ (typeof p.access === "string" && p.access.length > 0));
248
+ }
249
+ return false;
250
+ });
251
+ if (hasCredentials) {
239
252
  setupRequired = false;
240
253
  message = "";
241
254
  }
242
255
  }
243
256
  }
244
257
  catch {
245
- // If CLI unavailable, assume setup is required
258
+ // If we can't read auth-profiles.json, assume setup is required
246
259
  }
247
260
  const statusPath = resolve(stateDir, "_status.json");
248
261
  writeFileSync(statusPath, JSON.stringify({
@@ -251,7 +264,7 @@ export function checkAuthStatus(stateDir) {
251
264
  state: { setupRequired, message },
252
265
  }, null, 2), "utf-8");
253
266
  if (setupRequired) {
254
- console.warn("No AI provider configured — _status.json written with setupRequired: true");
267
+ console.warn("⚠️ No AI provider configured — _status.json written with setupRequired: true");
255
268
  }
256
269
  }
257
270
  //# sourceMappingURL=defaults.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAUzC,gEAAgE;AAEhE,MAAM,mBAAmB,GAAG;;;;;;;;;;;;CAY3B,CAAC;AAEF,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBzB,CAAC;AAEF,MAAM,uBAAuB,GAAG;;;;;;;;;;;;CAY/B,CAAC;AAEF,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmC7B,CAAC;AAEF,MAAM,mBAAmB,GAAe;IACtC;QACE,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE,IAAI;KACb;IACD;QACE,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,sBAAsB;QACnC,MAAM,EAAE,IAAI;KACb;CACF,CAAC;AAUF,MAAM,cAAc,GAAe;IACjC;QACE,EAAE,EAAE,MAAM;QACV,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,sBAAsB;QAChC,KAAK,EAAE,mBAAmB;QAC1B,MAAM,EAAE,iBAAiB;KAC1B;IACD;QACE,EAAE,EAAE,UAAU;QACd,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,0BAA0B;QACpC,KAAK,EAAE,uBAAuB;QAC9B,MAAM,EAAE,qBAAqB;KAC9B;CACF,CAAC;AAEF,wBAAwB;AAExB,sCAAsC;AACtC,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,mBAAmB;IACjC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED,yFAAyF;AACzF,SAAS,QAAQ,CACf,OAAe,EACf,QAAgB,EAChB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzC,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/E,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,oBAAoB;IAClC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QACtD,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5D,sCAAsC;QACtC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,SAAS;QACX,CAAC;QAED,iCAAiC;QACjC,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7C,MAAM,CAAC,eAAe,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC3D,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,CAAC,EAAE,OAAO,YAAY,EAAE,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,+BAA+B,KAAK,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,QAAgB;IAC7D,yCAAyC;IACzC,oBAAoB,EAAE,CAAC;IAEvB,wCAAwC;IACxC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpF,aAAa,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,2BAA2B;IAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,qCAAqC,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,MAAM,QAAQ,GAAe,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACzE,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,KAAK,MAAM,KAAK,IAAI,mBAAmB,EAAE,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;oBACjD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,GAAG,IAAI,CAAC;oBACf,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,EAAE,gCAAgC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,IAAI,CAAC,uBAAuB,QAAQ,wBAAwB,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,IAAI,aAAa,GAAG,IAAI,CAAC;IACzB,IAAI,OAAO,GACT,oEAAoE;QACpE,qDAAqD,CAAC;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE;YACnE,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CACtD,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAC5C,CAAC;YACF,IAAI,YAAY,EAAE,CAAC;gBACjB,aAAa,GAAG,KAAK,CAAC;gBACtB,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+CAA+C;IACjD,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACrD,aAAa,CACX,UAAU,EACV,IAAI,CAAC,SAAS,CAAC;QACb,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACnB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE;KAClC,EAAE,IAAI,EAAE,CAAC,CAAC,EACX,OAAO,CACR,CAAC;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC5F,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- export type { ClappHandler, ClappHandlerContext, ClappHandlerFactory } from "./clapp-handler.js";
2
+ export {};
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAeA,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}