wispy-ai 0.4.2 → 0.4.6

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.
@@ -1,3 +1,3 @@
1
1
  import type { SessionType } from "../security/isolation.js";
2
- export declare function buildSystemPrompt(soulDir: string, sessionType: SessionType, extraContext?: string): string;
2
+ export declare function buildSystemPrompt(soulDir: string, sessionType: SessionType, extraContext?: string, integrationContext?: string): string;
3
3
  //# sourceMappingURL=prompts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAuCR"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,WAAW,EACxB,YAAY,CAAC,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,MAAM,CA0CR"}
@@ -1,7 +1,7 @@
1
1
  import { readMD } from "../utils/file.js";
2
2
  import { resolve } from "path";
3
3
  import { getPermissions } from "../security/isolation.js";
4
- export function buildSystemPrompt(soulDir, sessionType, extraContext) {
4
+ export function buildSystemPrompt(soulDir, sessionType, extraContext, integrationContext) {
5
5
  const parts = [];
6
6
  // Soul
7
7
  const soul = readMD(resolve(soulDir, "SOUL.md"));
@@ -32,6 +32,9 @@ export function buildSystemPrompt(soulDir, sessionType, extraContext) {
32
32
  if (memory)
33
33
  parts.push(memory);
34
34
  }
35
+ // Integration context (available tools/services)
36
+ if (integrationContext)
37
+ parts.push(integrationContext);
35
38
  // Extra context
36
39
  if (extraContext)
37
40
  parts.push(extraContext);
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,WAAwB,EACxB,YAAqB;IAErB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,OAAO;IACP,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,WAAW;IACX,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IACzD,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnC,kBAAkB;IAClB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/B,QAAQ;IACR,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7B,oCAAoC;IACpC,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,8BAA8B;IAC9B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,gBAAgB;IAChB,IAAI,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE3C,sBAAsB;IACtB,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,GAAG,CAAC,CAAC;IAE/C,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/ai/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,WAAwB,EACxB,YAAqB,EACrB,kBAA2B;IAE3B,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,OAAO;IACP,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,IAAI,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE3B,WAAW;IACX,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IACzD,IAAI,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnC,kBAAkB;IAClB,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;IACrD,IAAI,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE/B,QAAQ;IACR,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACnD,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7B,oCAAoC;IACpC,MAAM,KAAK,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QACjD,IAAI,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,8BAA8B;IAC9B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;QACrD,IAAI,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,iDAAiD;IACjD,IAAI,kBAAkB;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAEvD,gBAAgB;IAChB,IAAI,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAE3C,sBAAsB;IACtB,KAAK,CAAC,IAAI,CAAC,oBAAoB,WAAW,GAAG,CAAC,CAAC;IAE/C,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC"}
@@ -1,13 +1,19 @@
1
1
  /**
2
- * Wispy REPL — Rich Terminal UI
2
+ * Wispy REPL — Clean CLI modeled exactly after Claude Code.
3
3
  *
4
- * Uses raw stdin with ANSI escape codes for:
5
- * - Persistent status bar (tokens, memory, session, context)
6
- * - Bordered input box with full line editing
7
- * - Double-ESC to clear prompt
8
- * - History browsing (Ctrl+R)
9
- * - Recents panel on launch
10
- * - Scroll region for chat output
4
+ * Layout:
5
+ * [cloud icon] Wispy v0.4.6
6
+ * Gemini 2.5 Flash
7
+ * C:\Users\...
8
+ *
9
+ * ─────────────────────────────────
10
+ * user input here
11
+ *
12
+ * ● Agent response here.
13
+ *
14
+ * ─────────────────────────────────
15
+ * ❯ _
16
+ * ? for shortcuts
11
17
  */
12
18
  export interface ReplOpts {
13
19
  rootDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA2BH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,iBAka7C"}
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAqBH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD,wBAAsB,SAAS,CAAC,IAAI,EAAE,QAAQ,iBA8K7C"}
package/dist/cli/repl.js CHANGED
@@ -1,18 +1,27 @@
1
1
  /**
2
- * Wispy REPL — Rich Terminal UI
2
+ * Wispy REPL — Clean CLI modeled exactly after Claude Code.
3
3
  *
4
- * Uses raw stdin with ANSI escape codes for:
5
- * - Persistent status bar (tokens, memory, session, context)
6
- * - Bordered input box with full line editing
7
- * - Double-ESC to clear prompt
8
- * - History browsing (Ctrl+R)
9
- * - Recents panel on launch
10
- * - Scroll region for chat output
4
+ * Layout:
5
+ * [cloud icon] Wispy v0.4.6
6
+ * Gemini 2.5 Flash
7
+ * C:\Users\...
8
+ *
9
+ * ─────────────────────────────────
10
+ * user input here
11
+ *
12
+ * ● Agent response here.
13
+ *
14
+ * ─────────────────────────────────
15
+ * ❯ _
16
+ * ? for shortcuts
11
17
  */
18
+ import * as readline from "readline";
12
19
  import { existsSync } from "fs";
13
20
  import { join } from "path";
21
+ import chalk from "chalk";
14
22
  import { showBanner } from "./ui/banner.js";
15
23
  import { t } from "./ui/theme.js";
24
+ import { startSpinner, stopSpinner, updateSpinner } from "./ui/spinner.js";
16
25
  import { formatToolCall } from "./ui/tool-display.js";
17
26
  import { CliHistory } from "./history.js";
18
27
  import { handleSlashCommand } from "./commands.js";
@@ -24,18 +33,13 @@ import { Agent } from "../core/agent.js";
24
33
  import { runBoot } from "../gateway/boot.js";
25
34
  import { logger } from "../infra/logger.js";
26
35
  import { TokenManager } from "../token/estimator.js";
27
- // TUI components
28
- import { screen } from "./tui/screen.js";
29
- import { KeyHandler } from "./tui/key-handler.js";
30
- import { InputBox } from "./tui/input-box.js";
31
- import { StatusBar } from "./tui/status-bar.js";
32
- import { calculateLayout, onResize } from "./tui/layout.js";
33
- import { showRecentsPanel } from "./tui/recents-panel.js";
34
- import { browseHistory } from "./tui/history-browser.js";
36
+ function printSeparator() {
37
+ const width = process.stdout.columns || 80;
38
+ console.log(chalk.dim("─".repeat(width)));
39
+ }
35
40
  export async function startRepl(opts) {
36
41
  const { rootDir, runtimeDir, soulDir } = opts;
37
42
  loadEnv(rootDir);
38
- // First-run detection
39
43
  const configPath = join(runtimeDir, "config.yaml");
40
44
  if (!existsSync(configPath)) {
41
45
  const { runSetupWizard } = await import("./setup/wizard.js");
@@ -63,355 +67,131 @@ export async function startRepl(opts) {
63
67
  const agent = new Agent({ config, runtimeDir, soulDir });
64
68
  const history = new CliHistory(runtimeDir);
65
69
  const tokenManager = new TokenManager();
66
- let currentSession = "main";
70
+ let currentSession = "cli-repl";
67
71
  const cmdCtx = {
68
72
  agent,
69
73
  runtimeDir,
70
74
  soulDir,
71
75
  currentSession,
72
- setSession: (key) => {
73
- currentSession = key;
74
- cmdCtx.currentSession = key;
75
- statusBar.setState({ session: key });
76
- renderChrome();
77
- },
76
+ setSession: (key) => { currentSession = key; cmdCtx.currentSession = key; },
78
77
  };
79
- // ── Banner + Recents ─────────────────────────────────────────────
78
+ // ── Launch layout ──
80
79
  showBanner();
81
- // Show recents panel (non-TUI — normal console output before TUI starts)
82
- const picked = await showRecentsPanel(runtimeDir, config.agent.id);
83
- if (picked) {
84
- currentSession = picked;
85
- cmdCtx.currentSession = picked;
80
+ printSeparator();
81
+ // ── Readline ──
82
+ const rl = readline.createInterface({
83
+ input: process.stdin,
84
+ output: process.stdout,
85
+ prompt: t.prompt,
86
+ historySize: 200,
87
+ });
88
+ const pastEntries = history.getAll();
89
+ for (const entry of pastEntries) {
90
+ rl.history?.unshift(entry);
86
91
  }
87
- // ── Initialize TUI ───────────────────────────────────────────────
88
- let layout = calculateLayout();
89
- const inputBox = new InputBox(layout);
90
- const statusBar = new StatusBar(layout);
91
- const keyHandler = new KeyHandler();
92
- // Check memory status
93
- const memoryDbPath = join(runtimeDir, "memory", "embeddings.db");
94
- const memStatus = existsSync(memoryDbPath) ? "active" : "inactive";
95
- statusBar.setState({ session: currentSession, memory: memStatus });
96
- // History navigation state
97
- let historyIndex = -1;
98
- let savedInput = "";
99
- const historyEntries = history.getAll();
100
- // Is the agent currently responding?
101
- let busy = false;
102
- function renderChrome() {
103
- screen.saveCursor();
104
- statusBar.render();
105
- inputBox.render();
106
- screen.restoreCursor();
107
- }
108
- function moveToChatArea() {
109
- screen.moveTo(layout.chatBottom, 1);
110
- }
111
- function writeChatLine(text) {
112
- // Write to the scroll region — chat area scrolls naturally
113
- screen.saveCursor();
114
- moveToChatArea();
115
- process.stdout.write(text);
116
- screen.restoreCursor();
117
- }
118
- // ── Set up scroll region ─────────────────────────────────────────
119
- screen.clear();
120
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
121
- screen.moveTo(layout.chatTop, 1);
122
- // Show a greeting in the chat area
123
- console.log(t.brand(" Wispy") + t.dim(" is ready. Type a message or /help for commands.\n"));
124
- renderChrome();
125
- // ── Resize handler ───────────────────────────────────────────────
126
- onResize((newLayout) => {
127
- layout = newLayout;
128
- inputBox.updateLayout(newLayout);
129
- statusBar.updateLayout(newLayout);
130
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
131
- renderChrome();
92
+ process.on("uncaughtException", (err) => {
93
+ stopSpinner();
94
+ console.error(chalk.red(`Fatal: ${err.message}`));
95
+ rl.prompt();
132
96
  });
133
- // ── Process input ────────────────────────────────────────────────
134
- async function processInput(text) {
135
- if (!text.trim())
97
+ process.on("unhandledRejection", (err) => {
98
+ stopSpinner();
99
+ console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
100
+ rl.prompt();
101
+ });
102
+ rl.prompt();
103
+ rl.on("line", async (line) => {
104
+ const input = line.trim();
105
+ if (!input) {
106
+ rl.prompt();
136
107
  return;
137
- busy = true;
138
- history.add(text);
139
- historyIndex = -1;
140
- // Echo user input in chat area
141
- screen.saveCursor();
142
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
143
- screen.moveTo(layout.chatBottom, 1);
144
- console.log(t.user("You") + t.dim(": ") + text);
145
- screen.restoreCursor();
146
- // Slash commands
147
- if (text.startsWith("/")) {
148
- // Special handling for /prompts and /recents
149
- if (text.trim() === "/prompts") {
150
- keyHandler.stop();
151
- const selected = await browseHistory(history, layout);
152
- keyHandler.start();
153
- if (selected) {
154
- inputBox.setLine(selected);
155
- }
156
- renderChrome();
157
- busy = false;
158
- return;
159
- }
160
- if (text.trim() === "/recents") {
161
- keyHandler.stop();
162
- const sessionKey = await showRecentsPanel(runtimeDir, config.agent.id);
163
- keyHandler.start();
164
- if (sessionKey) {
165
- currentSession = sessionKey;
166
- cmdCtx.currentSession = sessionKey;
167
- statusBar.setState({ session: sessionKey });
168
- }
169
- renderChrome();
170
- busy = false;
171
- return;
108
+ }
109
+ rl.pause();
110
+ history.add(input);
111
+ // ? shortcut
112
+ if (input === "?") {
113
+ try {
114
+ await handleSlashCommand("/help", cmdCtx);
172
115
  }
173
- // Redirect console output to chat area
174
- screen.saveCursor();
175
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
176
- screen.moveTo(layout.chatBottom, 1);
116
+ catch { }
117
+ rl.resume();
118
+ rl.prompt();
119
+ return;
120
+ }
121
+ // Slash commands
122
+ if (input.startsWith("/")) {
177
123
  try {
178
- await handleSlashCommand(text, cmdCtx);
124
+ await handleSlashCommand(input, cmdCtx);
179
125
  }
180
126
  catch (err) {
181
- console.error(t.err(`Command error: ${err instanceof Error ? err.message : String(err)}`));
127
+ console.error(chalk.red(`Command error: ${err instanceof Error ? err.message : String(err)}`));
182
128
  }
183
- screen.restoreCursor();
184
- renderChrome();
185
- busy = false;
129
+ rl.resume();
130
+ rl.prompt();
186
131
  return;
187
132
  }
188
- // ── Chat with agent ──────────────────────────────────────────
133
+ // ── Chat ──
189
134
  const thinkStart = Date.now();
190
- let outputTokenCount = 0;
191
- // Show thinking indicator in status bar
192
- statusBar.setState({ contextPercent: 0 });
193
- renderChrome();
135
+ startSpinner("Thinking...");
194
136
  try {
195
137
  let firstText = true;
196
- screen.saveCursor();
197
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
198
- screen.moveTo(layout.chatBottom, 1);
199
- // Print agent label
200
- process.stdout.write(t.agent("Wispy") + t.dim(": "));
201
- for await (const chunk of agent.chatStream(text, "cli-user", "cli", "main")) {
138
+ let outputChars = 0;
139
+ for await (const chunk of agent.chatStream(input, "cli-user", "cli", "main")) {
202
140
  switch (chunk.type) {
203
- case "thinking": {
204
- const elapsed = ((Date.now() - thinkStart) / 1000).toFixed(1);
205
- statusBar.setState({ contextPercent: Math.min(99, Math.round(outputTokenCount / 10)) });
206
- screen.saveCursor();
207
- statusBar.render();
208
- screen.restoreCursor();
141
+ case "thinking":
142
+ updateSpinner(`Thinking... (${((Date.now() - thinkStart) / 1000).toFixed(1)}s)`);
209
143
  break;
210
- }
211
144
  case "tool_call": {
212
- const tc = {
213
- name: chunk.content,
214
- args: {},
215
- status: "pending",
216
- };
217
- process.stdout.write("\n" + formatToolCall(tc));
145
+ stopSpinner();
146
+ const tc = { name: chunk.content, args: {}, status: "pending" };
147
+ process.stdout.write(formatToolCall(tc) + "\n");
218
148
  break;
219
149
  }
220
150
  case "tool_result": {
221
- const tr = {
222
- name: "tool",
223
- args: {},
224
- status: "ok",
225
- result: chunk.content.slice(0, 200),
226
- };
227
- process.stdout.write("\n" + formatToolCall(tr));
151
+ const tr = { name: "tool", args: {}, status: "ok", result: chunk.content.slice(0, 200) };
152
+ process.stdout.write(formatToolCall(tr) + "\n");
228
153
  break;
229
154
  }
230
155
  case "text":
231
156
  if (firstText) {
157
+ stopSpinner();
158
+ process.stdout.write("\n" + chalk.white.bold("● "));
232
159
  firstText = false;
233
160
  }
234
161
  process.stdout.write(chunk.content);
235
- // Live token count
236
- outputTokenCount += Math.ceil(chunk.content.length / 4);
237
- tokenManager.recordUsage("gemini-2.5-flash", 0, Math.ceil(chunk.content.length / 4));
238
- const stats = tokenManager.getStats();
239
- statusBar.setState({
240
- tokens: stats.sessionTokens,
241
- cost: stats.sessionCost,
242
- });
243
- screen.saveCursor();
244
- statusBar.render();
245
- screen.restoreCursor();
162
+ outputChars += chunk.content.length;
246
163
  break;
247
164
  case "done":
165
+ if (firstText)
166
+ stopSpinner();
248
167
  break;
249
168
  }
250
169
  }
251
- process.stdout.write("\n\n");
252
- screen.restoreCursor();
170
+ const outputTokens = Math.ceil(outputChars / 4);
171
+ const inputTokens = Math.ceil(input.length / 4) + 100;
172
+ tokenManager.recordUsage("gemini-2.5-flash", inputTokens, outputTokens);
173
+ console.log();
174
+ console.log();
175
+ printSeparator();
176
+ console.log(chalk.dim(" ? for shortcuts"));
253
177
  }
254
178
  catch (err) {
255
- console.error(t.err(`\nError: ${err instanceof Error ? err.message : String(err)}\n`));
256
- screen.restoreCursor();
257
- }
258
- renderChrome();
259
- busy = false;
260
- }
261
- // ── Key handler events ───────────────────────────────────────────
262
- keyHandler.on("char", (ev) => {
263
- if (busy)
264
- return;
265
- inputBox.insert(ev.sequence);
266
- historyIndex = -1;
267
- inputBox.render();
268
- });
269
- keyHandler.on("backspace", () => {
270
- if (busy)
271
- return;
272
- inputBox.backspace();
273
- inputBox.render();
274
- });
275
- keyHandler.on("delete", () => {
276
- if (busy)
277
- return;
278
- inputBox.deleteChar();
279
- inputBox.render();
280
- });
281
- keyHandler.on("left", () => {
282
- if (busy)
283
- return;
284
- inputBox.moveCursorLeft();
285
- inputBox.render();
286
- });
287
- keyHandler.on("right", () => {
288
- if (busy)
289
- return;
290
- inputBox.moveCursorRight();
291
- inputBox.render();
292
- });
293
- keyHandler.on("home", () => {
294
- if (busy)
295
- return;
296
- inputBox.home();
297
- inputBox.render();
298
- });
299
- keyHandler.on("end", () => {
300
- if (busy)
301
- return;
302
- inputBox.end();
303
- inputBox.render();
304
- });
305
- keyHandler.on("enter", () => {
306
- if (busy)
307
- return;
308
- const text = inputBox.submit();
309
- inputBox.render();
310
- if (text.trim()) {
311
- processInput(text);
312
- }
313
- });
314
- keyHandler.on("double-esc", () => {
315
- if (busy)
316
- return;
317
- const cleared = inputBox.clear();
318
- if (cleared) {
319
- screen.saveCursor();
320
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
321
- screen.moveTo(layout.chatBottom, 1);
322
- console.log(t.dim(" (input cleared)"));
323
- screen.restoreCursor();
324
- }
325
- inputBox.render();
326
- });
327
- keyHandler.on("up", () => {
328
- if (busy)
329
- return;
330
- if (historyIndex === -1) {
331
- savedInput = inputBox.getBuffer();
332
- }
333
- if (historyIndex < historyEntries.length - 1) {
334
- historyIndex++;
335
- const entry = historyEntries[historyEntries.length - 1 - historyIndex];
336
- if (entry)
337
- inputBox.setLine(entry);
338
- inputBox.render();
339
- }
340
- });
341
- keyHandler.on("down", () => {
342
- if (busy)
343
- return;
344
- if (historyIndex > 0) {
345
- historyIndex--;
346
- const entry = historyEntries[historyEntries.length - 1 - historyIndex];
347
- if (entry)
348
- inputBox.setLine(entry);
349
- inputBox.render();
350
- }
351
- else if (historyIndex === 0) {
352
- historyIndex = -1;
353
- inputBox.setLine(savedInput);
354
- inputBox.render();
355
- }
356
- });
357
- keyHandler.on("ctrl-r", async () => {
358
- if (busy)
359
- return;
360
- keyHandler.stop();
361
- const selected = await browseHistory(history, layout);
362
- keyHandler.start();
363
- if (selected) {
364
- inputBox.setLine(selected);
179
+ stopSpinner();
180
+ console.error(chalk.red(`\nError: ${err instanceof Error ? err.message : String(err)}`));
181
+ printSeparator();
365
182
  }
366
- renderChrome();
183
+ rl.resume();
184
+ rl.prompt();
367
185
  });
368
- keyHandler.on("tab", async () => {
369
- if (busy)
370
- return;
371
- const buf = inputBox.getBuffer();
372
- if (buf.startsWith("/")) {
373
- const partial = buf.slice(1).toLowerCase();
374
- const { getCommands } = await import("./commands.js");
375
- const cmds = getCommands();
376
- const match = cmds.find((c) => c.name.startsWith(partial));
377
- if (match) {
378
- inputBox.setLine("/" + match.name + " ");
379
- inputBox.render();
380
- }
381
- }
382
- });
383
- keyHandler.on("sigint", () => {
384
- shutdown();
385
- });
386
- function shutdown() {
186
+ rl.on("close", () => {
387
187
  history.save();
388
- keyHandler.stop();
389
- screen.resetScrollRegion();
390
- screen.showCursor();
391
- screen.moveTo(layout.height, 1);
392
- console.log(t.dim("\nGoodbye!\n"));
188
+ console.log(chalk.dim("\nGoodbye!\n"));
393
189
  process.exit(0);
394
- }
395
- // Prevent crashes
396
- process.on("uncaughtException", (err) => {
397
- screen.saveCursor();
398
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
399
- screen.moveTo(layout.chatBottom, 1);
400
- console.error(t.err(`Fatal: ${err.message}`));
401
- screen.restoreCursor();
402
- busy = false;
403
- renderChrome();
404
190
  });
405
- process.on("unhandledRejection", (err) => {
406
- screen.saveCursor();
407
- screen.scrollRegion(layout.chatTop, layout.chatBottom);
408
- screen.moveTo(layout.chatBottom, 1);
409
- console.error(t.err(`Error: ${err instanceof Error ? err.message : String(err)}`));
410
- screen.restoreCursor();
411
- busy = false;
412
- renderChrome();
191
+ rl.on("SIGINT", () => {
192
+ history.save();
193
+ console.log(chalk.dim("\nGoodbye!\n"));
194
+ process.exit(0);
413
195
  });
414
- // ── Start ────────────────────────────────────────────────────────
415
- keyHandler.start();
416
196
  }
417
197
  //# sourceMappingURL=repl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repl.js","sourceRoot":"","sources":["../../src/cli/repl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAmBA,wBAAgB,UAAU,CAAC,SAAS,SAAqB,GAAG,IAAI,CAkB/D;AAID,wBAAgB,iBAAiB,IAAI,IAAI,CAexC;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAcA,wBAAgB,UAAU,CAAC,SAAS,SAAqB,GAAG,IAAI,CAS/D;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAMxC;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC"}
@@ -2,51 +2,30 @@ import chalk from "chalk";
2
2
  const sky = chalk.rgb(77, 209, 249);
3
3
  const skyBold = chalk.rgb(77, 209, 249).bold;
4
4
  const dark = chalk.rgb(30, 30, 30);
5
- // ── Mini Cloud Logo (5 lines) ─────────────────────
6
- // Scaled down from the full 79x33 ASCII art
7
- // Cloud with two tall pause-bar eyes, inline with info
8
- const MINI_CLOUD = [
9
- ` ${sky("▒▒▒▒▒▒▒▒▒▒")}`,
10
- ` ${sky("▒▒▒▒▒▒▒▒▒▒▒▒▒▒")}${sky("▒▒▒▒▒▒▒▒▒▒")}`,
11
- `${sky("▒▒▒▒▒")}${dark("▒▒")}${sky("▒▒▒")}${dark("▒▒")}${sky("▒▒▒▒▒▒▒▒▒▒▒▒▒▒")}`,
12
- `${sky("▒▒▒▒▒")}${dark("▒▒")}${sky("▒▒▒")}${dark("▒▒")}${sky("▒▒▒▒▒▒▒▒▒▒▒▒▒▒")}`,
13
- ` ${sky("▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒")}`,
14
- ` ${sky("▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒")}`,
5
+ // ── Tiny cloud icon (3 lines, ~7 chars wide) ──
6
+ // Matches Claude Code's robot icon scale exactly
7
+ const ICON = [
8
+ ` ${sky("█████")}`,
9
+ `${sky("██")}${dark("█")}${sky("")}${dark("█")}${sky("██")}`,
10
+ `${sky("███████")}`,
15
11
  ];
16
12
  export function showBanner(modelName = "Gemini 2.5 Flash") {
17
13
  const cwd = process.cwd();
18
- const version = "v0.4.1";
19
- const infoLines = [
20
- "",
21
- ` ${skyBold("Wispy")} ${chalk.dim(version)}`,
22
- ` ${chalk.dim(modelName)}`,
23
- ` ${chalk.dim(cwd)}`,
24
- "",
25
- "",
26
- ];
14
+ const version = "v0.4.6";
27
15
  console.log();
28
- for (let i = 0; i < MINI_CLOUD.length; i++) {
29
- console.log(MINI_CLOUD[i] + (infoLines[i] ?? ""));
30
- }
16
+ console.log(` ${ICON[0]} ${skyBold("Wispy")} ${chalk.dim(version)}`);
17
+ console.log(` ${ICON[1]} ${chalk.dim(modelName)}`);
18
+ console.log(` ${ICON[2]} ${chalk.dim(cwd)}`);
31
19
  console.log();
32
20
  }
33
- // ── Onboarding Banner ─────────────────────────
34
21
  export function showOnboardBanner() {
35
- const infoLines = [
36
- "",
37
- ` ${skyBold("Welcome to Wispy")}`,
38
- ` ${chalk.dim("Your autonomous AI agent")}`,
39
- ` ${chalk.dim("Powered by Gemini. Let's get you set up.")}`,
40
- "",
41
- "",
42
- ];
43
22
  console.log();
44
- for (let i = 0; i < MINI_CLOUD.length; i++) {
45
- console.log(MINI_CLOUD[i] + (infoLines[i] ?? ""));
46
- }
23
+ console.log(` ${ICON[0]} ${skyBold("Welcome to Wispy")}`);
24
+ console.log(` ${ICON[1]} ${chalk.dim("Your autonomous AI agent")}`);
25
+ console.log(` ${ICON[2]} ${chalk.dim("Powered by Gemini. Let's get you set up.")}`);
47
26
  console.log();
48
27
  }
49
28
  export function getScaledLogo() {
50
- return MINI_CLOUD;
29
+ return ICON;
51
30
  }
52
31
  //# sourceMappingURL=banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEnC,qDAAqD;AACrD,4CAA4C;AAC5C,uDAAuD;AAEvD,MAAM,UAAU,GAAG;IACjB,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE;IACzB,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE;IAC/C,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE;IAChF,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE;IAChF,IAAI,GAAG,CAAC,0BAA0B,CAAC,EAAE;IACrC,MAAM,GAAG,CAAC,sBAAsB,CAAC,EAAE;CACpC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,SAAS,GAAG,kBAAkB;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC;IAEzB,MAAM,SAAS,GAAG;QAChB,EAAE;QACF,KAAK,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;QAC7C,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QAC3B,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACrB,EAAE;QACF,EAAE;KACH,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,iDAAiD;AAEjD,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAAG;QAChB,EAAE;QACF,KAAK,OAAO,CAAC,kBAAkB,CAAC,EAAE;QAClC,KAAK,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE;QAC5C,KAAK,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,EAAE;QAC5D,EAAE;QACF,EAAE;KACH,CAAC;IAEF,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../../src/cli/ui/banner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;AAC7C,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEnC,iDAAiD;AACjD,iDAAiD;AACjD,MAAM,IAAI,GAAG;IACX,KAAK,GAAG,CAAC,OAAO,CAAC,EAAE;IACnB,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE;IAC7D,GAAG,GAAG,CAAC,SAAS,CAAC,EAAE;CACpB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,SAAS,GAAG,kBAAkB;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC;IAEzB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,0CAA0C,CAAC,EAAE,CAAC,CAAC;IACvF,OAAO,CAAC,GAAG,EAAE,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -26,6 +26,11 @@ export declare class Agent {
26
26
  */
27
27
  setIntegrationRegistry(registry: IntegrationRegistry): void;
28
28
  getIntegrationRegistry(): IntegrationRegistry | undefined;
29
+ /**
30
+ * Build a context string describing available integrations so the model
31
+ * knows what services/tools it can use (like Meltbot/Clawdbot awareness).
32
+ */
33
+ private buildIntegrationContext;
29
34
  chat(userMessage: string, peerId: string, channel: string, sessionType?: SessionType): Promise<AgentResponse>;
30
35
  chatStream(userMessage: string, peerId: string, channel: string, sessionType?: SessionType): AsyncGenerator<{
31
36
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAiB,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOvD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAAsB;gBAEtC,GAAG,EAAE,YAAY;IAW7B;;;OAGG;IACH,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAW3D,sBAAsB,IAAI,mBAAmB,GAAG,SAAS;IAInD,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,WAAoB,GAChC,OAAO,CAAC,aAAa,CAAC;IAwHlB,UAAU,CACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,WAAoB,GAChC,cAAc,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAoDpD,gBAAgB,IAAI,aAAa;IAIjC,eAAe,IAAI,YAAY;CAGhC"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,YAAY,EAAiB,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAOvD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,GAAG,CAAe;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAC,CAAsB;gBAEtC,GAAG,EAAE,YAAY;IAW7B;;;OAGG;IACH,sBAAsB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAW3D,sBAAsB,IAAI,mBAAmB,GAAG,SAAS;IAIzD;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAiCzB,IAAI,CACR,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,WAAoB,GAChC,OAAO,CAAC,aAAa,CAAC;IAyHlB,UAAU,CACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,WAAoB,GAChC,cAAc,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAqDpD,gBAAgB,IAAI,aAAa;IAIjC,eAAe,IAAI,YAAY;CAGhC"}
@@ -31,6 +31,35 @@ export class Agent {
31
31
  getIntegrationRegistry() {
32
32
  return this.integrationRegistry;
33
33
  }
34
+ /**
35
+ * Build a context string describing available integrations so the model
36
+ * knows what services/tools it can use (like Meltbot/Clawdbot awareness).
37
+ */
38
+ buildIntegrationContext() {
39
+ if (!this.integrationRegistry || this.integrationRegistry.size === 0)
40
+ return undefined;
41
+ const status = this.integrationRegistry.getStatus();
42
+ const enabled = status.filter((s) => s.status === "active");
43
+ const available = status.filter((s) => s.status !== "active");
44
+ const lines = ["## Available Integrations\n"];
45
+ if (enabled.length > 0) {
46
+ lines.push("**Enabled (ready to use):**");
47
+ for (const s of enabled) {
48
+ lines.push(`- ${s.name} (${s.category}) — ${s.tools} tool(s)`);
49
+ }
50
+ }
51
+ if (available.length > 0) {
52
+ lines.push("\n**Available (not yet enabled):**");
53
+ for (const s of available) {
54
+ const note = s.status === "auth-required" ? " [needs auth]" : "";
55
+ lines.push(`- ${s.name} (${s.category})${note}`);
56
+ }
57
+ }
58
+ lines.push("\nYou can use enabled integrations directly via their tools. " +
59
+ "If a user asks about a disabled integration, let them know it exists " +
60
+ "and can be enabled with `/integrations`.");
61
+ return lines.join("\n");
62
+ }
34
63
  async chat(userMessage, peerId, channel, sessionType = "main") {
35
64
  const { config, runtimeDir, soulDir } = this.ctx;
36
65
  const agentId = config.agent.id;
@@ -52,7 +81,8 @@ export class Agent {
52
81
  }));
53
82
  const thinkingLevel = inferThinkingLevel(userMessage);
54
83
  const route = routeTask("reasoning", config);
55
- const systemPrompt = buildSystemPrompt(soulDir, sessionType);
84
+ const integrationCtx = this.buildIntegrationContext();
85
+ const systemPrompt = buildSystemPrompt(soulDir, sessionType, undefined, integrationCtx);
56
86
  log.info("Chat [%s] model=%s thinking=%s", session.sessionKey.slice(0, 30), route.model, thinkingLevel);
57
87
  // Agentic loop — generate, execute tools, feed results back, repeat
58
88
  let allToolResults = [];
@@ -139,7 +169,8 @@ export class Agent {
139
169
  }));
140
170
  const thinkingLevel = inferThinkingLevel(userMessage);
141
171
  const route = routeTask("reasoning", config);
142
- const systemPrompt = buildSystemPrompt(soulDir, sessionType);
172
+ const integrationCtx = this.buildIntegrationContext();
173
+ const systemPrompt = buildSystemPrompt(soulDir, sessionType, undefined, integrationCtx);
143
174
  let fullText = "";
144
175
  for await (const chunk of generateStream({
145
176
  model: route.model,
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/core/agent.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wispy-ai",
3
- "version": "0.4.2",
3
+ "version": "0.4.6",
4
4
  "description": "Autonomous AI agent platform powered by Google Gemini — multi-agent, 27+ integrations, voice mode, MCP server",
5
5
  "type": "module",
6
6
  "bin": {