@clappstore/connect 0.3.3 → 0.5.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.
@@ -0,0 +1,18 @@
1
+ import type { IntentMessage } from "@clapps/core";
2
+ import type { AgentClient } from "./agent-client.js";
3
+ import type { RelayClient } from "./relay-client.js";
4
+ export interface AgentHandlerOptions {
5
+ agentClient: AgentClient;
6
+ relay: RelayClient;
7
+ stateDir: string;
8
+ viewsDir?: string;
9
+ }
10
+ export declare class AgentHandler {
11
+ private agentClient;
12
+ private relay;
13
+ private stateDir;
14
+ private viewsDir;
15
+ constructor(options: AgentHandlerOptions);
16
+ handleIntent(intent: IntentMessage): Promise<void>;
17
+ }
18
+ //# sourceMappingURL=agent-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-handler.d.ts","sourceRoot":"","sources":["../src/agent-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,OAAO,EAAE,mBAAmB;IAOlC,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAIzD"}
@@ -0,0 +1,17 @@
1
+ export class AgentHandler {
2
+ agentClient;
3
+ relay;
4
+ stateDir;
5
+ viewsDir;
6
+ constructor(options) {
7
+ this.agentClient = options.agentClient;
8
+ this.relay = options.relay;
9
+ this.stateDir = options.stateDir;
10
+ this.viewsDir = options.viewsDir;
11
+ }
12
+ async handleIntent(intent) {
13
+ await this.agentClient.sendIntent(intent);
14
+ await this.relay.syncDir(this.stateDir, this.viewsDir);
15
+ }
16
+ }
17
+ //# sourceMappingURL=agent-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-handler.js","sourceRoot":"","sources":["../src/agent-handler.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,YAAY;IACf,WAAW,CAAc;IACzB,KAAK,CAAc;IACnB,QAAQ,CAAS;IACjB,QAAQ,CAAqB;IAErC,YAAY,OAA4B;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAqB;QACtC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;CACF"}
@@ -1,4 +1,7 @@
1
+ import type { RelayClient } from "./relay-client.js";
1
2
  export declare function seedDefaults(viewsDir: string, stateDir: string): void;
3
+ /** Push all seeded files to the relay in one shot */
4
+ export declare function pushDefaults(relay: RelayClient, viewsDir: string, stateDir: string): Promise<void>;
2
5
  /** Check if the agent has an AI provider API key configured and write _status.json */
3
6
  export declare function checkAuthStatus(stateDir: string, authPath?: string): void;
4
7
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AA4DA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAkCrE;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAmDzE"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAkIrD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAwCrE;AAED,qDAAqD;AACrD,wBAAsB,YAAY,CAChC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,sFAAsF;AACtF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAmDzE"}
package/dist/defaults.js CHANGED
@@ -46,41 +46,120 @@ const DEFAULT_CHAT_APP_ENTRY = {
46
46
  description: "Chat with the agent",
47
47
  pinned: true,
48
48
  };
49
+ const DEFAULT_SETTINGS_APP_MD = `---
50
+ name: Settings
51
+ domain: default
52
+ ---
53
+
54
+ ## Modules
55
+ - default/settings
56
+
57
+ ## Layout
58
+ \`\`\`clapp-layout
59
+ Module(ref=default/settings):
60
+ \`\`\`
61
+ `;
62
+ const DEFAULT_SETTINGS_VIEW = `---
63
+ name: settings
64
+ domain: default
65
+ version: 0.1.0
66
+ ---
67
+
68
+ ## State Bindings
69
+ - \`providers.anthropic.configured\` -> boolean
70
+ - \`providers.anthropic.maskedKey\` -> string
71
+
72
+ ## Layout
73
+ \`\`\`clapp-layout
74
+ Column(gap=4):
75
+ Heading(level=2): "Settings"
76
+ Card(title=Anthropic API Key):
77
+ Column(gap=3):
78
+ Conditional(when=providers.anthropic.configured):
79
+ Heading(level=4): "Configured"
80
+ Conditional(when=!providers.anthropic.configured):
81
+ Heading(level=4): "Not configured"
82
+ IntentForm(intent=settings.setAnthropicKey, submitLabel=Save Key):
83
+ TextInput(name=apiKey, type=password, placeholder=sk-ant-...):
84
+ \`\`\`
85
+
86
+ ## Intents
87
+ | Name | Payload | Description |
88
+ |------|---------|-------------|
89
+ | settings.setAnthropicKey | \`{ apiKey: string }\` | Set the Anthropic API key |
90
+ `;
91
+ const DEFAULT_SETTINGS_APP_ENTRY = {
92
+ id: "settings",
93
+ name: "Settings",
94
+ emoji: "\u2699\uFE0F",
95
+ description: "Configure your agent",
96
+ pinned: true,
97
+ };
98
+ const DEFAULT_APP_ENTRIES = [
99
+ DEFAULT_CHAT_APP_ENTRY,
100
+ DEFAULT_SETTINGS_APP_ENTRY,
101
+ ];
102
+ const DEFAULT_APPS = [
103
+ {
104
+ appPath: "chat.app.md",
105
+ viewPath: "default.chat.view.md",
106
+ appMd: DEFAULT_CHAT_APP_MD,
107
+ viewMd: DEFAULT_CHAT_VIEW,
108
+ },
109
+ {
110
+ appPath: "settings.app.md",
111
+ viewPath: "default.settings.view.md",
112
+ appMd: DEFAULT_SETTINGS_APP_MD,
113
+ viewMd: DEFAULT_SETTINGS_VIEW,
114
+ },
115
+ ];
49
116
  export function seedDefaults(viewsDir, stateDir) {
50
- // Seed chat.app.md (app definition) if missing
51
- const appPath = resolve(viewsDir, "chat.app.md");
52
- if (!existsSync(appPath)) {
53
- writeFileSync(appPath, DEFAULT_CHAT_APP_MD, "utf-8");
54
- console.log(`📝 Created default chat app: ${appPath}`);
55
- }
56
- // Seed default.chat.view.md (view module) if missing
57
- const viewPath = resolve(viewsDir, "default.chat.view.md");
58
- if (!existsSync(viewPath)) {
59
- writeFileSync(viewPath, DEFAULT_CHAT_VIEW, "utf-8");
60
- console.log(`📝 Created default chat view: ${viewPath}`);
117
+ // Seed app definitions and view modules
118
+ for (const { appPath, viewPath, appMd, viewMd } of DEFAULT_APPS) {
119
+ const fullAppPath = resolve(viewsDir, appPath);
120
+ if (!existsSync(fullAppPath)) {
121
+ writeFileSync(fullAppPath, appMd, "utf-8");
122
+ console.log(`📝 Created default app: ${fullAppPath}`);
123
+ }
124
+ const fullViewPath = resolve(viewsDir, viewPath);
125
+ if (!existsSync(fullViewPath)) {
126
+ writeFileSync(fullViewPath, viewMd, "utf-8");
127
+ console.log(`📝 Created default view: ${fullViewPath}`);
128
+ }
61
129
  }
62
130
  // Seed or merge _apps.json
63
131
  const appsPath = resolve(stateDir, "_apps.json");
64
132
  if (!existsSync(appsPath)) {
65
- writeFileSync(appsPath, JSON.stringify([DEFAULT_CHAT_APP_ENTRY], null, 2), "utf-8");
133
+ writeFileSync(appsPath, JSON.stringify(DEFAULT_APP_ENTRIES, null, 2), "utf-8");
66
134
  console.log(`📝 Created default apps registry: ${appsPath}`);
67
135
  }
68
136
  else {
69
137
  try {
70
138
  const existing = JSON.parse(readFileSync(appsPath, "utf-8"));
71
- const hasChatEntry = existing.some((app) => app.id === "chat");
72
- if (!hasChatEntry) {
73
- existing.push(DEFAULT_CHAT_APP_ENTRY);
139
+ let changed = false;
140
+ for (const entry of DEFAULT_APP_ENTRIES) {
141
+ if (!existing.some((app) => app.id === entry.id)) {
142
+ existing.push(entry);
143
+ changed = true;
144
+ console.log(`📝 Added ${entry.id} app to existing apps registry`);
145
+ }
146
+ }
147
+ if (changed) {
74
148
  writeFileSync(appsPath, JSON.stringify(existing, null, 2), "utf-8");
75
- console.log(`📝 Added chat app to existing apps registry`);
76
149
  }
77
150
  }
78
151
  catch {
79
152
  // If _apps.json is malformed, don't overwrite — let the user fix it
80
- console.warn(`⚠️ Could not parse ${appsPath}, skipping chat app seeding`);
153
+ console.warn(`⚠️ Could not parse ${appsPath}, skipping app seeding`);
81
154
  }
82
155
  }
83
156
  }
157
+ /** Push all seeded files to the relay in one shot */
158
+ export async function pushDefaults(relay, viewsDir, stateDir) {
159
+ console.log("Pushing defaults to relay...");
160
+ await relay.syncDir(stateDir, viewsDir);
161
+ console.log("Initial sync complete");
162
+ }
84
163
  /** Check if the agent has an AI provider API key configured and write _status.json */
85
164
  export function checkAuthStatus(stateDir, authPath) {
86
165
  const defaultAuthPath = resolve(homedir(), ".openclaw", "agents", "main", "agent", "auth.json");
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,10 +3,12 @@ import { resolve } from "node:path";
3
3
  import { homedir } from "node:os";
4
4
  import { mkdirSync } from "node:fs";
5
5
  import { AgentClient } from "./agent-client.js";
6
+ import { AgentHandler } from "./agent-handler.js";
6
7
  import { IntentPoller } from "./intent-poller.js";
7
- import { StateWatcher } from "./state-watcher.js";
8
+ import { RelayClient } from "./relay-client.js";
8
9
  import { loadToken, saveToken, CREDENTIALS_PATH } from "./credentials.js";
9
- import { seedDefaults, checkAuthStatus } from "./defaults.js";
10
+ import { seedDefaults, checkAuthStatus, pushDefaults } from "./defaults.js";
11
+ import { SettingsHandler } from "./settings-handler.js";
10
12
  function parseArgs(args) {
11
13
  const opts = {};
12
14
  for (let i = 0; i < args.length; i++) {
@@ -68,29 +70,18 @@ async function main() {
68
70
  // Ensure directories exist
69
71
  mkdirSync(stateDir, { recursive: true });
70
72
  mkdirSync(viewsDir, { recursive: true });
71
- const agentClient = new AgentClient({
72
- session,
73
- agentToken,
74
- onError: (err) => console.error("[acp]", err.message),
75
- });
76
- const intentPoller = new IntentPoller({
77
- relayUrl,
78
- token,
79
- agentId,
80
- agentClient,
81
- onError: (err) => console.error("[intent-poller]", err.message),
82
- });
83
- const stateWatcher = new StateWatcher({
84
- stateDir,
85
- viewsDir,
86
- relayUrl,
87
- token,
88
- agentId,
89
- onError: (err) => console.error("[state-watcher]", err.message),
90
- });
73
+ // 1. Create RelayClient
74
+ const relay = new RelayClient({ relayUrl, token, agentId });
75
+ // 2. Seed defaults to disk
76
+ seedDefaults(viewsDir, stateDir);
77
+ checkAuthStatus(stateDir);
78
+ const settingsHandler = new SettingsHandler({ stateDir, relay });
79
+ settingsHandler.writeSettingsState();
80
+ // 3. Push everything to relay (retried, awaited)
81
+ await pushDefaults(relay, viewsDir, stateDir);
91
82
  console.log(`🤖 Agent ID: ${agentId}`);
92
- console.log(`📁 Watching state: ${stateDir}`);
93
- console.log(`📄 Watching views: ${viewsDir}`);
83
+ console.log(`📁 State dir: ${stateDir}`);
84
+ console.log(`📄 Views dir: ${viewsDir}`);
94
85
  // Create/reuse a stable link token for browser access
95
86
  try {
96
87
  const linkRes = await fetch(`${relayUrl}/api/agent/links`, {
@@ -114,12 +105,12 @@ async function main() {
114
105
  catch (err) {
115
106
  console.warn(`⚠️ Could not create link: ${err instanceof Error ? err.message : err}`);
116
107
  }
117
- stateWatcher.start();
118
- // Wait for chokidar to finish initial scan, then seed defaults so writes are detected
119
- await stateWatcher.waitReady();
120
- seedDefaults(viewsDir, stateDir);
121
- checkAuthStatus(stateDir);
122
- // Start ACP subprocess, then begin polling for intents
108
+ // 4. Start ACP subprocess
109
+ const agentClient = new AgentClient({
110
+ session,
111
+ agentToken,
112
+ onError: (err) => console.error("[acp]", err.message),
113
+ });
123
114
  try {
124
115
  await agentClient.start();
125
116
  }
@@ -127,13 +118,27 @@ async function main() {
127
118
  console.error(`⚠️ ACP failed to start: ${err instanceof Error ? err.message : err}`);
128
119
  console.error(" Intent processing will not work until ACP is available.");
129
120
  }
121
+ // 5. Start polling for intents
122
+ const agentHandler = new AgentHandler({
123
+ agentClient,
124
+ relay,
125
+ stateDir,
126
+ viewsDir,
127
+ });
128
+ const intentPoller = new IntentPoller({
129
+ relayUrl,
130
+ token,
131
+ agentId,
132
+ agentHandler,
133
+ onIntent: settingsHandler.handleIntent,
134
+ onError: (err) => console.error("[intent-poller]", err.message),
135
+ });
130
136
  intentPoller.start();
131
137
  // Graceful shutdown
132
- process.on("SIGINT", async () => {
138
+ process.on("SIGINT", () => {
133
139
  console.log("\nShutting down...");
134
140
  intentPoller.stop();
135
141
  agentClient.stop();
136
- await stateWatcher.stop();
137
142
  process.exit(0);
138
143
  });
139
144
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import { AgentClient } from "./agent-client.js";
1
+ import type { IntentMessage } from "@clapps/core";
2
+ import type { AgentHandler } from "./agent-handler.js";
2
3
  export interface IntentPollerOptions {
3
4
  relayUrl: string;
4
5
  token: string;
5
6
  agentId: string;
6
- agentClient: AgentClient;
7
+ agentHandler: AgentHandler;
7
8
  intervalMs?: number;
9
+ onIntent?: (intent: IntentMessage) => boolean;
8
10
  onError?: (error: Error) => void;
9
11
  }
10
12
  /** Poll the relay for pending intents and forward them to the agent */
@@ -1 +1 @@
1
- {"version":3,"file":"intent-poller.d.ts","sourceRoot":"","sources":["../src/intent-poller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,uEAAuE;AACvE,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAM;gBAEV,OAAO,EAAE,mBAAmB;IAIxC,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;YAOE,IAAI;CAyBnB"}
1
+ {"version":3,"file":"intent-poller.d.ts","sourceRoot":"","sources":["../src/intent-poller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,uEAAuE;AACvE,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAM;gBAEV,OAAO,EAAE,mBAAmB;IAIxC,KAAK,IAAI,IAAI;IASb,IAAI,IAAI,IAAI;YAOE,IAAI;CA2BnB"}
@@ -1,4 +1,3 @@
1
- import { AgentClient } from "./agent-client.js";
2
1
  /** Poll the relay for pending intents and forward them to the agent */
3
2
  export class IntentPoller {
4
3
  options;
@@ -34,7 +33,10 @@ export class IntentPoller {
34
33
  for (const intent of data.intents) {
35
34
  this.lastSeen = intent.id;
36
35
  try {
37
- await this.options.agentClient.sendIntent(intent);
36
+ // Let onIntent handle it locally; skip ACP if it returns true
37
+ if (this.options.onIntent?.(intent))
38
+ continue;
39
+ await this.options.agentHandler.handleIntent(intent);
38
40
  }
39
41
  catch (err) {
40
42
  this.options.onError?.(err);
@@ -1 +1 @@
1
- {"version":3,"file":"intent-poller.js","sourceRoot":"","sources":["../src/intent-poller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWhD,uEAAuE;AACvE,MAAM,OAAO,YAAY;IACf,OAAO,CAAsB;IAC7B,KAAK,GAA0C,IAAI,CAAC;IACpD,QAAQ,GAAG,EAAE,CAAC;IAEtB,YAAY,OAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,GAAG,WAAW,CACtB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAChC,CAAC;IACJ,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YAEpB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAC;YAChE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACpD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAY,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAY,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"intent-poller.js","sourceRoot":"","sources":["../src/intent-poller.ts"],"names":[],"mappings":"AAaA,uEAAuE;AACvE,MAAM,OAAO,YAAY;IACf,OAAO,CAAsB;IAC7B,KAAK,GAA0C,IAAI,CAAC;IACpD,QAAQ,GAAG,EAAE,CAAC;IAEtB,YAAY,OAA4B;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,KAAK,GAAG,WAAW,CACtB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EACjB,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAChC,CAAC;IACJ,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACjE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO;YAEpB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAiC,CAAC;YAChE,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,8DAA8D;oBAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC;wBAAE,SAAS;oBAC9C,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACvD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAY,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAY,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ export interface RelayClientOptions {
2
+ relayUrl: string;
3
+ token: string;
4
+ agentId: string;
5
+ }
6
+ export declare class RelayClient {
7
+ private relayUrl;
8
+ private token;
9
+ private agentId;
10
+ constructor(options: RelayClientOptions);
11
+ pushState(clappId: string, state: object): Promise<void>;
12
+ pushApps(apps: unknown[]): Promise<void>;
13
+ pushView(viewId: string, content: string): Promise<void>;
14
+ syncDir(stateDir: string, viewsDir?: string): Promise<void>;
15
+ }
16
+ //# sourceMappingURL=relay-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAwCD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,kBAAkB;IAMjC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBxC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmClE"}
@@ -0,0 +1,121 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import { readdir } from "node:fs/promises";
3
+ import { basename, resolve } from "node:path";
4
+ const MAX_RETRIES = 4;
5
+ const BASE_DELAY_MS = 500;
6
+ async function retryFetch(url, init, label) {
7
+ for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
8
+ try {
9
+ const res = await fetch(url, init);
10
+ if (res.ok)
11
+ return res;
12
+ if (attempt < MAX_RETRIES - 1 && res.status >= 500) {
13
+ const delay = BASE_DELAY_MS * 2 ** attempt + Math.random() * BASE_DELAY_MS;
14
+ console.warn(`[relay] Retry ${attempt + 1} for ${label}: HTTP ${res.status}`);
15
+ await new Promise((r) => setTimeout(r, delay));
16
+ continue;
17
+ }
18
+ throw new Error(`Failed to push ${label}: HTTP ${res.status}`);
19
+ }
20
+ catch (err) {
21
+ if (attempt < MAX_RETRIES - 1 && err.code) {
22
+ const delay = BASE_DELAY_MS * 2 ** attempt + Math.random() * BASE_DELAY_MS;
23
+ console.warn(`[relay] Retry ${attempt + 1} for ${label}: ${err.message}`);
24
+ await new Promise((r) => setTimeout(r, delay));
25
+ continue;
26
+ }
27
+ throw err;
28
+ }
29
+ }
30
+ throw new Error(`Failed to push ${label} after ${MAX_RETRIES} attempts`);
31
+ }
32
+ export class RelayClient {
33
+ relayUrl;
34
+ token;
35
+ agentId;
36
+ constructor(options) {
37
+ this.relayUrl = options.relayUrl;
38
+ this.token = options.token;
39
+ this.agentId = options.agentId;
40
+ }
41
+ async pushState(clappId, state) {
42
+ await retryFetch(`${this.relayUrl}/api/agent/state`, {
43
+ method: "POST",
44
+ headers: {
45
+ "Content-Type": "application/json",
46
+ Authorization: `Bearer ${this.token}`,
47
+ },
48
+ body: JSON.stringify({
49
+ agentId: this.agentId,
50
+ clappId,
51
+ ...state,
52
+ }),
53
+ }, `state/${clappId}`);
54
+ }
55
+ async pushApps(apps) {
56
+ await retryFetch(`${this.relayUrl}/api/agent/apps`, {
57
+ method: "POST",
58
+ headers: {
59
+ "Content-Type": "application/json",
60
+ Authorization: `Bearer ${this.token}`,
61
+ },
62
+ body: JSON.stringify({
63
+ agentId: this.agentId,
64
+ apps,
65
+ }),
66
+ }, "apps");
67
+ }
68
+ async pushView(viewId, content) {
69
+ await retryFetch(`${this.relayUrl}/api/agent/views`, {
70
+ method: "POST",
71
+ headers: {
72
+ "Content-Type": "application/json",
73
+ Authorization: `Bearer ${this.token}`,
74
+ },
75
+ body: JSON.stringify({
76
+ agentId: this.agentId,
77
+ viewId,
78
+ content,
79
+ }),
80
+ }, `view/${viewId}`);
81
+ }
82
+ async syncDir(stateDir, viewsDir) {
83
+ // Push all .json files from stateDir
84
+ const stateFiles = await readdir(stateDir);
85
+ for (const file of stateFiles) {
86
+ if (!file.endsWith(".json"))
87
+ continue;
88
+ try {
89
+ const content = await readFile(resolve(stateDir, file), "utf-8");
90
+ const parsed = JSON.parse(content);
91
+ const name = basename(file, ".json");
92
+ if (name === "_apps") {
93
+ await this.pushApps(parsed);
94
+ }
95
+ else {
96
+ await this.pushState(name, parsed);
97
+ }
98
+ }
99
+ catch (err) {
100
+ console.warn(`[relay] Failed to push ${file}: ${err.message}`);
101
+ }
102
+ }
103
+ // Push all .md files from viewsDir
104
+ if (viewsDir) {
105
+ const viewFiles = await readdir(viewsDir);
106
+ for (const file of viewFiles) {
107
+ if (!file.endsWith(".md"))
108
+ continue;
109
+ try {
110
+ const content = await readFile(resolve(viewsDir, file), "utf-8");
111
+ const viewId = basename(file, ".md");
112
+ await this.pushView(viewId, content);
113
+ }
114
+ catch (err) {
115
+ console.warn(`[relay] Failed to push view ${file}: ${err.message}`);
116
+ }
117
+ }
118
+ }
119
+ }
120
+ }
121
+ //# sourceMappingURL=relay-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { IntentMessage } from "@clapps/core";
2
+ import type { RelayClient } from "./relay-client.js";
3
+ export interface SettingsHandlerOptions {
4
+ stateDir: string;
5
+ relay: RelayClient;
6
+ authPath?: string;
7
+ }
8
+ export declare class SettingsHandler {
9
+ private stateDir;
10
+ private relay;
11
+ private authPath;
12
+ constructor(options: SettingsHandlerOptions);
13
+ /** Returns true if the intent was handled locally (should not be forwarded to ACP) */
14
+ handleIntent: (intent: IntentMessage) => boolean;
15
+ /** Write auth.json with the Anthropic API key */
16
+ private setAnthropicKey;
17
+ /** Write settings.json state with provider status (masked keys) */
18
+ writeSettingsState(): void;
19
+ /** Push settings.json state to relay */
20
+ pushSettingsState(): Promise<void>;
21
+ /** Push _status.json state to relay */
22
+ pushStatusState(): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=settings-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-handler.d.ts","sourceRoot":"","sources":["../src/settings-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,sBAAsB;IAQ3C,sFAAsF;IACtF,YAAY,GAAI,QAAQ,aAAa,KAAG,OAAO,CAiB7C;IAEF,iDAAiD;IACjD,OAAO,CAAC,eAAe;IA+BvB,mEAAmE;IACnE,kBAAkB,IAAI,IAAI;IAwC1B,wCAAwC;IAClC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC,uCAAuC;IACjC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAKvC"}
@@ -0,0 +1,103 @@
1
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
2
+ import { dirname, resolve } from "node:path";
3
+ import { homedir } from "node:os";
4
+ import { checkAuthStatus } from "./defaults.js";
5
+ export class SettingsHandler {
6
+ stateDir;
7
+ relay;
8
+ authPath;
9
+ constructor(options) {
10
+ this.stateDir = options.stateDir;
11
+ this.relay = options.relay;
12
+ this.authPath =
13
+ options.authPath ??
14
+ resolve(homedir(), ".openclaw", "agents", "main", "agent", "auth.json");
15
+ }
16
+ /** Returns true if the intent was handled locally (should not be forwarded to ACP) */
17
+ handleIntent = (intent) => {
18
+ if (!intent.intent.startsWith("settings."))
19
+ return false;
20
+ switch (intent.intent) {
21
+ case "settings.setAnthropicKey": {
22
+ const apiKey = intent.payload.apiKey;
23
+ if (typeof apiKey !== "string" || apiKey.trim().length === 0) {
24
+ console.warn("[settings] Invalid apiKey payload, ignoring");
25
+ return true;
26
+ }
27
+ this.setAnthropicKey(apiKey.trim());
28
+ return true;
29
+ }
30
+ default:
31
+ console.warn(`[settings] Unknown settings intent: ${intent.intent}`);
32
+ return true;
33
+ }
34
+ };
35
+ /** Write auth.json with the Anthropic API key */
36
+ setAnthropicKey(apiKey) {
37
+ // Read existing auth or start fresh
38
+ let auth = {};
39
+ try {
40
+ if (existsSync(this.authPath)) {
41
+ auth = JSON.parse(readFileSync(this.authPath, "utf-8"));
42
+ }
43
+ }
44
+ catch {
45
+ // Start fresh if unreadable
46
+ }
47
+ auth.anthropic = { apiKey };
48
+ // Ensure directory exists
49
+ mkdirSync(dirname(this.authPath), { recursive: true });
50
+ writeFileSync(this.authPath, JSON.stringify(auth, null, 2), "utf-8");
51
+ console.log(`✅ Anthropic API key saved to ${this.authPath}`);
52
+ // Update settings state with masked key and push directly
53
+ this.writeSettingsState();
54
+ this.pushSettingsState().catch((err) => console.error(`[settings] Failed to push settings: ${err.message}`));
55
+ // Re-check auth status so _status.json reflects the new key, then push
56
+ checkAuthStatus(this.stateDir, this.authPath);
57
+ this.pushStatusState().catch((err) => console.error(`[settings] Failed to push status: ${err.message}`));
58
+ }
59
+ /** Write settings.json state with provider status (masked keys) */
60
+ writeSettingsState() {
61
+ let configured = false;
62
+ let maskedKey = "";
63
+ try {
64
+ if (existsSync(this.authPath)) {
65
+ const auth = JSON.parse(readFileSync(this.authPath, "utf-8"));
66
+ const key = auth?.anthropic?.apiKey;
67
+ if (typeof key === "string" && key.length > 0) {
68
+ configured = true;
69
+ maskedKey =
70
+ key.length > 8
71
+ ? key.slice(0, 7) + "..." + key.slice(-4)
72
+ : "***";
73
+ }
74
+ }
75
+ }
76
+ catch {
77
+ // Leave as unconfigured
78
+ }
79
+ const statePath = resolve(this.stateDir, "settings.json");
80
+ writeFileSync(statePath, JSON.stringify({
81
+ version: Date.now(),
82
+ timestamp: new Date().toISOString(),
83
+ state: {
84
+ providers: {
85
+ anthropic: { configured, maskedKey },
86
+ },
87
+ },
88
+ }, null, 2), "utf-8");
89
+ }
90
+ /** Push settings.json state to relay */
91
+ async pushSettingsState() {
92
+ const statePath = resolve(this.stateDir, "settings.json");
93
+ const content = readFileSync(statePath, "utf-8");
94
+ await this.relay.pushState("settings", JSON.parse(content));
95
+ }
96
+ /** Push _status.json state to relay */
97
+ async pushStatusState() {
98
+ const statePath = resolve(this.stateDir, "_status.json");
99
+ const content = readFileSync(statePath, "utf-8");
100
+ await this.relay.pushState("_status", JSON.parse(content));
101
+ }
102
+ }
103
+ //# sourceMappingURL=settings-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings-handler.js","sourceRoot":"","sources":["../src/settings-handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clappstore/connect",
3
- "version": "0.3.3",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "clapps-connect": "./dist/index.js"
@@ -13,9 +13,6 @@
13
13
  "build": "tsc",
14
14
  "clean": "rm -rf dist"
15
15
  },
16
- "dependencies": {
17
- "chokidar": "^4.0.3"
18
- },
19
16
  "devDependencies": {
20
17
  "@clapps/core": "workspace:*"
21
18
  }