goto-assistant 0.5.3 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -173,51 +173,9 @@ Messages go through the same AI pipeline as the web chat. The agent only respond
173
173
 
174
174
  ## Architecture
175
175
 
176
- ```
177
- ┌───────────────────────────────────────────┐ ┌────────────────────┐
178
- │ Browser │ │ WhatsApp │
179
- │ ┌───────────────────────┐ ┌────────────┐ │ │ │
180
- │ │ index.html │ │ setup.html │ │ │ Self-chat sends │
181
- │ │ ┌───────┐ ┌─────────┐ │ │ (Config + │ │ │ messages to agent │
182
- │ │ │ Chat │ │ Tasks │ │ │ Wizard) │ │ │ │
183
- │ │ │ │ │Dashboard│ │ │ │ │ └──────────┬──────────┘
184
- │ │ └───────┘ └─────────┘ │ └─────┬──────┘ │ │
185
- │ └───────────┬────────────┘ │ │ WhatsApp servers
186
- │ │ WebSocket │ HTTP │ │ WebSocket
187
- └──────────────┼─────────────────────┼────────┘ │
188
- │ │ │
189
- ┌──────────────┼─────────────────────┼──────────────────────┼───────┐
190
- │ server.ts │ │ │ │
191
- │ ┌───────────┴───┐ ┌─────────────┴─┐ ┌─────────────────┴──┐ │
192
- │ │ WebSocket │ │ REST API │ │ whatsapp.ts │ │
193
- │ │ Handler │ │ /api/* │ │ │ │
194
- │ └───────┬───────┘ └───────────────┘ └──────────┬─────────┘ │
195
- │ │ │ │
196
- │ ┌───────┴─────────────────────────────────────────┴──┐ │
197
- │ │ router.ts ──── routes by provider │ │
198
- │ └──┬─────────┬───────────────────────────────────────┘ │
199
- │ │ │ │
200
- │ ┌──┴───┐ ┌──┴───┐ ┌────────────────────────────────── ┐ │
201
- │ │Claude│ │OpenAI│───▶│ MCP Servers │ │
202
- │ │Agent │ │Agent │ │ │ │
203
- │ │ SDK │ │ SDK │ │ ┌────────┐ ┌────────────┐ ··· │ │
204
- │ └──┬───┘ └──┬───┘ │ │ memory │ │ filesystem │ │ │
205
- │ │ │ │ └────────┘ └────────────┘ │ │
206
- │ │ │ │ ▲ ▲ │ │
207
- │ │ │ │ │ │ │ │
208
- │ │ │ │ ┌────┴────────────┴───────────┐ │ │
209
- │ │ │ │ │ mcp-cron │ │ │
210
- │ │ │ │ │ AI tasks (w/ MCP access) │ │ │
211
- │ │ │ │ │ + shell commands │ │ │
212
- │ │ │ │ └─────────────────────────────┘ │ │
213
- │ │ │ └────────────────────────────────────┘ │
214
- │ │ │ │
215
- │ ┌──┴─────────┴──┐ ┌────────────┐ │
216
- │ │ sessions.ts │───▶│ SQLite DB │ │
217
- │ │ (persistence) │ │ data/ │ │
218
- │ └───────────────┘ └────────────┘ │
219
- └───────────────────────────────────────────────────────────────────┘
220
- ```
176
+ Browser and WhatsApp clients connect to `server.ts` (WebSocket + REST), which routes messages through `router.ts` to the Claude or OpenAI agent SDK. Agents access MCP servers (memory, filesystem, cron, messaging, etc.) for extended capabilities. Messaging flows through a channel registry — the `mcp-messaging` MCP server proxies tool calls to `POST /api/messaging/send`, which routes to the appropriate channel (WhatsApp, etc.).
177
+
178
+ See [docs/architecture.md](docs/architecture.md) for the full architecture diagram.
221
179
 
222
180
  ## Development Setup
223
181
 
@@ -256,15 +214,6 @@ The assistant comes pre-configured with these MCP servers:
256
214
  | **filesystem** | [`@modelcontextprotocol/server-filesystem`](https://github.com/modelcontextprotocol/servers/tree/main/src/filesystem) | Read, write, and manage local files |
257
215
  | **time** | [`mcp-server-time`](https://github.com/modelcontextprotocol/servers/tree/main/src/time) | Current time and timezone conversions |
258
216
  | **cron** | [`mcp-cron`](https://github.com/jolks/mcp-cron) | Schedule or run on-demand shell commands and AI prompts with access to MCP servers |
217
+ | **messaging** | built-in | Send messages via connected platforms (WhatsApp, more coming) |
259
218
 
260
- Add your own through the setup page — either via the form or by asking the setup wizard AI chat — or by editing `data/mcp.json` directly. Any MCP server that supports stdio transport will work — browse the [MCP server directory](https://github.com/modelcontextprotocol/servers) for more.
261
-
262
- ### Claude Code MCP servers
263
-
264
- If you use [Claude Code](https://claude.ai/code), copy the example config to get MCP servers for development:
265
-
266
- ```bash
267
- cp .mcp.json.example .mcp.json
268
- ```
269
-
270
- Edit `.mcp.json` to set your preferred AI provider/model for the cron server. This file is gitignored since it contains personal preferences.
219
+ Add your own through the setup page — either via the form or by asking the setup wizard AI chat — or by editing `data/mcp.json` directly. Any MCP server that supports stdio transport will work — browse the [MCP server directory](https://github.com/modelcontextprotocol/servers) for more.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ await import("../dist/mcp-messaging.js");
@@ -1,5 +1,6 @@
1
1
  import { query } from "@anthropic-ai/claude-agent-sdk";
2
2
  import { MAX_AGENT_TURNS, MEMORY_FILE_PATH, MEMORY_SERVER_NAME } from "../config.js";
3
+ import { extractFileId, formatUploadRef } from "../uploads.js";
3
4
  export async function runClaude(prompt, config, mcpServersConfig, onChunk, options) {
4
5
  const { resumeSessionId, attachments, systemPromptOverride } = options ?? {};
5
6
  const env = {
@@ -28,23 +29,24 @@ export async function runClaude(prompt, config, mcpServersConfig, onChunk, optio
28
29
  permissionMode: "bypassPermissions",
29
30
  allowDangerouslySkipPermissions: true,
30
31
  allowedTools: Object.keys(mcpServersConfig).map((name) => `mcp__${name}__*`),
31
- systemPrompt: systemPromptOverride || "You are a helpful personal AI assistant. You have access to MCP tools for memory, filesystem, browser automation, and scheduled tasks. Use them when appropriate. IMPORTANT: At the start of each conversation, you MUST call the memory read_graph tool to retrieve all known context about the user before responding to their first message.",
32
+ systemPrompt: systemPromptOverride || "You are a helpful personal AI assistant. You have access to MCP tools for memory, filesystem, browser automation, and scheduled tasks. Use them when appropriate. You can also send messages to the user via connected messaging channels (e.g. WhatsApp) using the messaging tools — send to self or to any phone number. IMPORTANT: At the start of each conversation, you MUST call the memory read_graph tool to retrieve all known context about the user before responding to their first message.",
32
33
  env,
33
34
  maxTurns: MAX_AGENT_TURNS,
34
35
  };
35
36
  if (resumeSessionId) {
36
37
  queryOptions.resume = resumeSessionId;
37
38
  }
38
- // When attachments are present, reference file paths in the prompt so Claude
39
- // can read them via the filesystem MCP server's read_media_file tool.
40
- // The query() function only accepts a plain string prompt.
39
+ // Pass image file paths in the prompt so Claude reads them with its built-in
40
+ // Read tool (which returns proper ImageFileOutput for image files).
41
+ // Note: the Agent SDK's query() AsyncIterable<SDKUserMessage> path does NOT
42
+ // support image content blocks — it serializes them as text over IPC.
41
43
  let queryPrompt = prompt;
42
44
  if (attachments && attachments.length > 0) {
43
- const paths = attachments
44
- .filter((att) => att.filePath)
45
- .map((att) => att.filePath);
46
- if (paths.length > 0) {
47
- queryPrompt = `${prompt}\n\n[The user attached ${paths.length} image(s). Read them using the filesystem read_media_file tool to see the content:\n${paths.join("\n")}]`;
45
+ const withPaths = attachments.filter((att) => att.filePath);
46
+ if (withPaths.length > 0) {
47
+ const paths = withPaths.map((att) => att.filePath);
48
+ const refs = withPaths.map(a => formatUploadRef(extractFileId(a.filePath), a.filename, a.mimeType));
49
+ queryPrompt = `${refs.join("\n")}\n${prompt}\n\n[The user attached ${paths.length} image(s). You MUST use the Read tool to view each image before responding. Do NOT describe images without reading them first. Image paths:\n${paths.join("\n")}]`;
48
50
  }
49
51
  }
50
52
  let sessionId = null;
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAcrF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAAc,EACd,gBAAiD,EACjD,OAA+B,EAC/B,OAAuB;IAEvB,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAC7E,MAAM,GAAG,GAA2B;QAClC,GAAG,OAAO,CAAC,GAA6B;QACxC,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;KACxC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1B,GAAG,CAAC,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IACjD,CAAC;IAED,+CAA+C;IAC/C,MAAM,UAAU,GAAoC,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAA2B,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACpE,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAChD,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,GAAG;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,EAAE,SAAS;SACf,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAA4B;QAC5C,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;QAC1B,UAAU;QACV,cAAc,EAAE,mBAAmB;QACnC,+BAA+B,EAAE,IAAI;QACrC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,KAAK,CAAC;QAC5E,YAAY,EAAE,oBAAoB,IAAI,iVAAiV;QACvX,GAAG;QACH,QAAQ,EAAE,eAAe;KAC1B,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,YAAY,CAAC,MAAM,GAAG,eAAe,CAAC;IACxC,CAAC;IAED,6EAA6E;IAC7E,sEAAsE;IACtE,2DAA2D;IAC3D,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW;aACtB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC7B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,WAAW,GAAG,GAAG,MAAM,0BAA0B,KAAK,CAAC,MAAM,uFAAuF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1K,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;IAErE,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,MAAM,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAC5D,SAAS,GAAI,OAAmC,CAAC,UAAU,IAAI,IAAI,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,OAAO,GAAI,OAAgE,CAAC,OAAO,CAAC;YAC1F,IAAI,OAAO,EAAE,CAAC;gBACZ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/D,MAAM,SAAS,GAAG,OAAmD,CAAC;YACtE,SAAS,GAAG,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC;YAC9C,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,iBAAiB,EAAE,CAAC;YACvE,MAAM,SAAS,GAAG,OAAkC,CAAC;YACrD,SAAS,GAAG,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC;YAC9C,OAAO,CAAC,+DAA+D,eAAe,oEAAoE,CAAC,CAAC;QAC9J,CAAC;IACH,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,12 @@ export interface OpenAIOptions {
5
5
  history?: HistoryMessage[];
6
6
  systemPromptOverride?: string;
7
7
  }
8
+ /**
9
+ * Trim conversation history to avoid 413 errors from size-constrained gateways.
10
+ * 1. Cap message count to `maxMessages` (keeps most recent history + current message).
11
+ * 2. Strip `input_image` blocks from messages outside the `recentImageWindow`,
12
+ * replacing them with a text placeholder.
13
+ * Returns a new array — does not mutate the original.
14
+ */
15
+ export declare function trimHistory(inputMessages: Array<Record<string, unknown>>, maxMessages?: number, recentImageWindow?: number): Array<Record<string, unknown>>;
8
16
  export declare function runOpenAI(prompt: string, config: Config, mcpServersConfig: Record<string, McpServerConfig>, onChunk: (text: string) => void, options?: OpenAIOptions): Promise<void>;
@@ -1,9 +1,9 @@
1
- import { Agent, run, MCPServerStdio, shellTool, MaxTurnsExceededError } from "@openai/agents";
1
+ import { Agent, Runner, MCPServerStdio, shellTool, MaxTurnsExceededError, setOpenAIAPI, OpenAIProvider } from "@openai/agents";
2
2
  import { exec } from "node:child_process";
3
3
  import { promisify } from "node:util";
4
- import { MAX_AGENT_TURNS, MEMORY_FILE_PATH, MEMORY_SERVER_NAME } from "../config.js";
4
+ import { MAX_AGENT_TURNS, MAX_HISTORY_MESSAGES, RECENT_IMAGE_WINDOW, MEMORY_FILE_PATH, MEMORY_SERVER_NAME, isChatCompletionsGateway } from "../config.js";
5
5
  import { parseMessageContent } from "../sessions.js";
6
- import { getUpload } from "../uploads.js";
6
+ import { getUpload, ALLOWED_IMAGE_TYPES, extractFileId, formatUploadRef } from "../uploads.js";
7
7
  const execAsync = promisify(exec);
8
8
  class LocalShell {
9
9
  async run(action) {
@@ -35,8 +35,60 @@ class LocalShell {
35
35
  return { output };
36
36
  }
37
37
  }
38
+ /**
39
+ * Trim conversation history to avoid 413 errors from size-constrained gateways.
40
+ * 1. Cap message count to `maxMessages` (keeps most recent history + current message).
41
+ * 2. Strip `input_image` blocks from messages outside the `recentImageWindow`,
42
+ * replacing them with a text placeholder.
43
+ * Returns a new array — does not mutate the original.
44
+ */
45
+ export function trimHistory(inputMessages, maxMessages = MAX_HISTORY_MESSAGES, recentImageWindow = RECENT_IMAGE_WINDOW) {
46
+ if (inputMessages.length === 0)
47
+ return [];
48
+ // Separate current message (last) from history
49
+ const current = inputMessages[inputMessages.length - 1];
50
+ const history = inputMessages.slice(0, -1);
51
+ // Cap history to maxMessages
52
+ const trimmed = history.length > maxMessages
53
+ ? history.slice(history.length - maxMessages)
54
+ : history.slice();
55
+ // Strip images from messages outside the recent window
56
+ const imageKeepStart = trimmed.length - recentImageWindow;
57
+ const result = trimmed.map((msg, i) => {
58
+ if (i >= imageKeepStart)
59
+ return msg;
60
+ if (!Array.isArray(msg.content))
61
+ return msg;
62
+ const content = msg.content;
63
+ const hasImages = content.some(block => block.type === "input_image");
64
+ if (!hasImages)
65
+ return msg;
66
+ const imageCount = content.filter(block => block.type === "input_image").length;
67
+ const placeholder = imageCount === 1
68
+ ? "[Image previously shared]"
69
+ : `[${imageCount} images previously shared]`;
70
+ const newContent = [
71
+ { type: "input_text", text: placeholder },
72
+ ...content.filter(block => block.type !== "input_image"),
73
+ ];
74
+ return { ...msg, content: newContent };
75
+ });
76
+ result.push(current);
77
+ return result;
78
+ }
38
79
  export async function runOpenAI(prompt, config, mcpServersConfig, onChunk, options) {
39
80
  const { attachments, history, systemPromptOverride } = options || {};
81
+ // Use Chat Completions API for gateways that don't support the Responses API
82
+ const useChatCompletions = isChatCompletionsGateway(config.openai.baseUrl);
83
+ setOpenAIAPI(useChatCompletions ? "chat_completions" : "responses");
84
+ // Create a fresh provider + runner each call so config changes (API key, base
85
+ // URL) take effect immediately. Both the default OpenAIProvider and default
86
+ // Runner are cached singletons that never refresh, so we bypass them entirely.
87
+ const provider = new OpenAIProvider({
88
+ apiKey: config.openai.apiKey,
89
+ baseURL: config.openai.baseUrl || undefined,
90
+ });
91
+ const runner = new Runner({ modelProvider: provider });
40
92
  const env = {
41
93
  ...process.env,
42
94
  OPENAI_API_KEY: config.openai.apiKey,
@@ -64,10 +116,11 @@ export async function runOpenAI(prompt, config, mcpServersConfig, onChunk, optio
64
116
  }
65
117
  const agent = new Agent({
66
118
  name: "goto-assistant",
67
- instructions: systemPromptOverride || "You are a helpful personal AI assistant. You have access to MCP tools for memory, filesystem, browser automation, and scheduled tasks. You also have a shell tool to execute commands on the host machine. Use them when appropriate. IMPORTANT: At the start of each conversation, you MUST call the memory read_graph tool to retrieve all known context about the user before responding to their first message.",
119
+ instructions: systemPromptOverride || "You are a helpful personal AI assistant. You have access to MCP tools for memory, filesystem, browser automation, and scheduled tasks. You also have a shell tool to execute commands on the host machine. You can also send messages to the user via connected messaging channels (e.g. WhatsApp) using the messaging tools — send to self or to any phone number. Use them when appropriate. IMPORTANT: At the start of each conversation, you MUST call the memory read_graph tool to retrieve all known context about the user before responding to their first message.",
68
120
  model: config.openai.model,
69
121
  mcpServers,
70
- tools: [
122
+ // shellTool is a hosted tool — only available with the Responses API
123
+ tools: useChatCompletions ? [] : [
71
124
  shellTool({ shell: new LocalShell() }),
72
125
  ],
73
126
  });
@@ -87,16 +140,27 @@ export async function runOpenAI(prompt, config, mcpServersConfig, onChunk, optio
87
140
  else if (parsed.attachments && parsed.attachments.length > 0) {
88
141
  // Re-read image data for user messages that had attachments
89
142
  const content = [];
143
+ const refs = [];
90
144
  for (const att of parsed.attachments) {
145
+ // Use stored mimeType (accurate at save time); skip non-image attachments
146
+ const mimeType = att.mimeType;
147
+ const ref = formatUploadRef(att.fileId, att.filename, mimeType);
148
+ if (!ALLOWED_IMAGE_TYPES.includes(mimeType)) {
149
+ refs.push(ref);
150
+ continue;
151
+ }
91
152
  const upload = getUpload(att.fileId);
92
153
  if (upload) {
93
154
  content.push({
94
155
  type: "input_image",
95
- image: `data:${upload.mimeType};base64,${upload.data.toString("base64")}`,
156
+ image: `data:${mimeType};base64,${upload.data.toString("base64")}`,
96
157
  });
158
+ refs.push(ref);
97
159
  }
98
160
  }
99
- content.push({ type: "input_text", text: parsed.text });
161
+ // Include upload references so the model can use send_message media with upload:{fileId}
162
+ const text = refs.length > 0 ? `${refs.join("\n")}\n${parsed.text}` : parsed.text;
163
+ content.push({ type: "input_text", text });
100
164
  inputMessages.push({ role: "user", content });
101
165
  }
102
166
  else {
@@ -107,21 +171,31 @@ export async function runOpenAI(prompt, config, mcpServersConfig, onChunk, optio
107
171
  // Add current message
108
172
  if (attachments && attachments.length > 0) {
109
173
  const content = [];
174
+ const refs = [];
110
175
  for (const att of attachments) {
111
- content.push({
112
- type: "input_image",
113
- image: `data:${att.mimeType};base64,${att.data.toString("base64")}`,
114
- });
176
+ // Build upload reference for the model to use with send_message media
177
+ if (att.filePath) {
178
+ refs.push(formatUploadRef(extractFileId(att.filePath), att.filename, att.mimeType));
179
+ }
180
+ // Only include image types as input_image blocks; skip non-image attachments
181
+ if (ALLOWED_IMAGE_TYPES.includes(att.mimeType)) {
182
+ content.push({
183
+ type: "input_image",
184
+ image: `data:${att.mimeType};base64,${att.data.toString("base64")}`,
185
+ });
186
+ }
115
187
  }
116
- content.push({ type: "input_text", text: prompt });
188
+ const text = refs.length > 0 ? `${refs.join("\n")}\n${prompt}` : prompt;
189
+ content.push({ type: "input_text", text });
117
190
  inputMessages.push({ role: "user", content });
118
191
  }
119
192
  else {
120
193
  inputMessages.push({ role: "user", content: prompt });
121
194
  }
122
- const input = inputMessages.length === 1 && !history?.length && !attachments?.length ? prompt : inputMessages;
195
+ const trimmedMessages = trimHistory(inputMessages);
196
+ const input = trimmedMessages.length === 1 && !history?.length && !attachments?.length ? prompt : trimmedMessages;
123
197
  try {
124
- const result = await run(agent, input, { stream: true, maxTurns: MAX_AGENT_TURNS });
198
+ const result = await runner.run(agent, input, { stream: true, maxTurns: MAX_AGENT_TURNS });
125
199
  for await (const event of result) {
126
200
  if (event.type === "raw_model_stream_event" &&
127
201
  event.data?.type === "output_text_delta") {
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/agents/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/agents/openai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,qBAAqB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE/H,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAE1J,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/F,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,UAAU;IACd,KAAK,CAAC,GAAG,CAAC,MAAmB;QAC3B,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,OAAO,GAAiC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,EAAE;oBACtC,OAAO,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM;oBACnC,SAAS,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI,GAAG,IAAI;iBACjD,CAAC,CAAC;gBACH,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;gBACvB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,KAAiH,CAAC;gBAC9H,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;gBACzC,OAAO,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS;oBAC9C,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE;oBACrB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACzC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM;QACxC,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CACzB,aAA6C,EAC7C,cAAsB,oBAAoB,EAC1C,oBAA4B,mBAAmB;IAE/C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,+CAA+C;IAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE3C,6BAA6B;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,WAAW;QAC1C,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;QAC7C,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAEpB,uDAAuD;IACvD,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,iBAAiB,CAAC;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,IAAI,cAAc;YAAE,OAAO,GAAG,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,GAAG,CAAC;QAE5C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAyC,CAAC;QAC9D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS;YAAE,OAAO,GAAG,CAAC;QAE3B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,MAAM,CAAC;QAChF,MAAM,WAAW,GAAG,UAAU,KAAK,CAAC;YAClC,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,IAAI,UAAU,4BAA4B,CAAC;QAE/C,MAAM,UAAU,GAAG;YACjB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE;YACzC,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC;SACzD,CAAC;QACF,OAAO,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAc,EACd,MAAc,EACd,gBAAiD,EACjD,OAA+B,EAC/B,OAAuB;IAEvB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAErE,6EAA6E;IAC7E,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3E,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAEpE,8EAA8E;IAC9E,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;QAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS;KAC5C,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEvD,MAAM,GAAG,GAA2B;QAClC,GAAG,OAAO,CAAC,GAA6B;QACxC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;KACrC,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC1B,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IAC9C,CAAC;IAED,2BAA2B;IAC3B,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAA2B,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;QACpE,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAChC,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAChD,CAAC;QACD,UAAU,CAAC,IAAI,CACb,IAAI,cAAc,CAAC;YACjB,IAAI;YACJ,WAAW,EAAE,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACzD,GAAG,EAAE,SAAS;SACf,CAAC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,0BAA0B;QAC1B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;YACtB,IAAI,EAAE,gBAAgB;YACtB,YAAY,EACV,oBAAoB,IAAI,8iBAA8iB;YACxkB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAC1B,UAAU;YACV,qEAAqE;YACrE,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/B,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC;aACvC;SACF,CAAC,CAAC;QAEH,wCAAwC;QACxC,MAAM,aAAa,GAAmC,EAAE,CAAC;QAEzD,yDAAyD;QACzD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC7B,+EAA+E;oBAC/E,aAAa,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;qBACtD,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC/D,4DAA4D;oBAC5D,MAAM,OAAO,GAAmC,EAAE,CAAC;oBACnD,MAAM,IAAI,GAAa,EAAE,CAAC;oBAC1B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;wBACrC,0EAA0E;wBAC1E,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;wBAC9B,MAAM,GAAG,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;wBAChE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;4BACf,SAAS;wBACX,CAAC;wBACD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACrC,IAAI,MAAM,EAAE,CAAC;4BACX,OAAO,CAAC,IAAI,CAAC;gCACX,IAAI,EAAE,aAAa;gCACnB,KAAK,EAAE,QAAQ,QAAQ,WAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;6BACnE,CAAC,CAAC;4BACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACjB,CAAC;oBACH,CAAC;oBACD,yFAAyF;oBACzF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;oBAClF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC3C,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChD,CAAC;qBAAM,CAAC;oBACN,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAmC,EAAE,CAAC;YACnD,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,sEAAsE;gBACtE,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACjB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACtF,CAAC;gBACD,6EAA6E;gBAC7E,IAAI,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/C,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE,QAAQ,GAAG,CAAC,QAAQ,WAAW,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;qBACpE,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3C,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;QAElH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;YAErG,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IACE,KAAK,CAAC,IAAI,KAAK,wBAAwB;oBACvC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK,mBAAmB,EACxC,CAAC;oBACD,MAAM,KAAK,GAAI,KAAK,CAAC,IAA2B,CAAC,KAAK,CAAC;oBACvD,IAAI,KAAK,EAAE,CAAC;wBACV,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;gBAC3C,OAAO,CAAC,+DAA+D,eAAe,oEAAoE,CAAC,CAAC;gBAC5J,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;YAAS,CAAC;QACT,6BAA6B;QAC7B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
package/dist/config.d.ts CHANGED
@@ -30,6 +30,9 @@ export declare const MCP_CONFIG_PATH: string;
30
30
  export declare const MEMORY_FILE_PATH: string;
31
31
  export declare const MEMORY_SERVER_NAME = "memory";
32
32
  export declare const MAX_AGENT_TURNS = 30;
33
+ export declare const MAX_HISTORY_MESSAGES = 100;
34
+ export declare const RECENT_IMAGE_WINDOW = 10;
35
+ export declare const MCP_PROTOCOL_VERSION = "2024-11-05";
33
36
  export declare function isConfigured(): boolean;
34
37
  export declare function loadConfig(): Config;
35
38
  export declare function saveConfig(config: Config): void;
@@ -47,4 +50,15 @@ export declare function isMaskedValue(value: string): boolean;
47
50
  export declare function unmaskMcpServers(incoming: Record<string, McpServerConfig>, existing: Record<string, McpServerConfig>, config?: Config): Record<string, McpServerConfig>;
48
51
  export declare function maskApiKey(key: string): string;
49
52
  export declare function getMaskedConfig(config: Config): Config;
53
+ export declare const MESSAGING_SERVER_NAME = "messaging";
54
+ /**
55
+ * Auto-manage the messaging MCP server entry in mcp.json.
56
+ * Adds when any messaging channel is enabled; removes when none are.
57
+ * Updates GOTO_ASSISTANT_URL when the port changes.
58
+ */
59
+ export declare function syncMessagingMcpServer(config?: Config): void;
60
+ /** Known gateways that only support Chat Completions (not the Responses API). */
61
+ export declare const CHAT_COMPLETIONS_ONLY_GATEWAYS: readonly ["api.kilo.ai"];
62
+ /** Check if a base URL points to a known Chat Completions-only gateway. */
63
+ export declare function isChatCompletionsGateway(baseUrl: string | undefined): boolean;
50
64
  export declare function getMaskedMcpServers(servers: Record<string, McpServerConfig>): Record<string, McpServerConfig>;
package/dist/config.js CHANGED
@@ -6,6 +6,9 @@ export const MCP_CONFIG_PATH = path.join(DATA_DIR, "mcp.json");
6
6
  export const MEMORY_FILE_PATH = path.join(DATA_DIR, "memory.json");
7
7
  export const MEMORY_SERVER_NAME = "memory";
8
8
  export const MAX_AGENT_TURNS = 30;
9
+ export const MAX_HISTORY_MESSAGES = 100;
10
+ export const RECENT_IMAGE_WINDOW = 10;
11
+ export const MCP_PROTOCOL_VERSION = "2024-11-05";
9
12
  export function isConfigured() {
10
13
  return fs.existsSync(CONFIG_PATH);
11
14
  }
@@ -103,6 +106,45 @@ export function getMaskedConfig(config) {
103
106
  openai: { ...config.openai, apiKey: maskApiKey(config.openai.apiKey) },
104
107
  };
105
108
  }
109
+ export const MESSAGING_SERVER_NAME = "messaging";
110
+ /**
111
+ * Auto-manage the messaging MCP server entry in mcp.json.
112
+ * Adds when any messaging channel is enabled; removes when none are.
113
+ * Updates GOTO_ASSISTANT_URL when the port changes.
114
+ */
115
+ export function syncMessagingMcpServer(config) {
116
+ const cfg = config ?? (isConfigured() ? loadConfig() : undefined);
117
+ if (!cfg)
118
+ return;
119
+ const servers = loadMcpServers();
120
+ const hasMessagingChannel = cfg.whatsapp?.enabled === true;
121
+ const port = cfg.server.port;
122
+ const url = `http://localhost:${port}`;
123
+ if (hasMessagingChannel) {
124
+ // Always resolve to dist/ — works in both dev (src/../dist/) and prod (dist/../dist/)
125
+ const entryPoint = path.resolve(import.meta.dirname, "..", "dist", "mcp-messaging.js");
126
+ const desired = { command: "node", args: [entryPoint], env: { GOTO_ASSISTANT_URL: url } };
127
+ // Key order is deterministic (both objects built programmatically).
128
+ // Hand-edited mcp.json with different key order causes a harmless re-write.
129
+ if (JSON.stringify(servers[MESSAGING_SERVER_NAME]) === JSON.stringify(desired))
130
+ return;
131
+ servers[MESSAGING_SERVER_NAME] = desired;
132
+ }
133
+ else {
134
+ if (!(MESSAGING_SERVER_NAME in servers))
135
+ return;
136
+ delete servers[MESSAGING_SERVER_NAME];
137
+ }
138
+ saveMcpServers(servers);
139
+ }
140
+ /** Known gateways that only support Chat Completions (not the Responses API). */
141
+ export const CHAT_COMPLETIONS_ONLY_GATEWAYS = ["api.kilo.ai"];
142
+ /** Check if a base URL points to a known Chat Completions-only gateway. */
143
+ export function isChatCompletionsGateway(baseUrl) {
144
+ if (!baseUrl)
145
+ return false;
146
+ return CHAT_COMPLETIONS_ONLY_GATEWAYS.some((gw) => baseUrl.includes(gw));
147
+ }
106
148
  export function getMaskedMcpServers(servers) {
107
149
  return Object.fromEntries(Object.entries(servers).map(([name, server]) => [
108
150
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/cron.d.ts CHANGED
@@ -12,3 +12,5 @@ export declare function callCronTool(toolName: string, args?: Record<string, unk
12
12
  export declare function startCronServer(): Promise<void>;
13
13
  export declare function restartCronServer(): Promise<void>;
14
14
  export declare function stopCronServer(): Promise<void>;
15
+ /** Synchronous stop for use in process.on("exit") handler. */
16
+ export declare function stopCronSync(): void;
package/dist/cron.js CHANGED
@@ -154,6 +154,21 @@ export async function stopCronServer() {
154
154
  const proc = cronProc;
155
155
  cronProc = null;
156
156
  lastCronFingerprint = null;
157
+ // Wait for process to actually exit after sending SIGTERM.
158
+ // The broken stdin pipe causes mcp-cron to exit on EOF.
159
+ const exited = new Promise((resolve) => {
160
+ proc.on("exit", () => resolve());
161
+ setTimeout(resolve, 5000); // fallback: don't block shutdown forever
162
+ });
163
+ killProc(proc);
164
+ await exited;
165
+ }
166
+ /** Synchronous stop for use in process.on("exit") handler. */
167
+ export function stopCronSync() {
168
+ if (!cronProc)
169
+ return;
170
+ const proc = cronProc;
171
+ cronProc = null;
157
172
  killProc(proc);
158
173
  }
159
174
  //# sourceMappingURL=cron.js.map
package/dist/cron.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cron.js","sourceRoot":"","sources":["../src/cron.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../src/cron.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createApp, createServer } from "./server.js";
2
- import { isConfigured, loadConfig } from "./config.js";
2
+ import { isConfigured, loadConfig, syncMessagingMcpServer } from "./config.js";
3
3
  import { runMigrations } from "./migrations.js";
4
- import { startCronServer, stopCronServer } from "./cron.js";
4
+ import { startCronServer, stopCronServer, stopCronSync } from "./cron.js";
5
5
  import { startWhatsApp, stopWhatsApp } from "./whatsapp.js";
6
6
  runMigrations();
7
7
  const app = createApp();
@@ -13,8 +13,10 @@ server.listen(port, () => {
13
13
  console.log("First run detected — visit the URL above to configure.");
14
14
  }
15
15
  else {
16
- startCronServer().catch((err) => console.error("Failed to start mcp-cron:", err));
17
16
  const config = loadConfig();
17
+ // Channel registration happens inside whatsapp.ts on connection open
18
+ syncMessagingMcpServer(config);
19
+ startCronServer().catch((err) => console.error("Failed to start mcp-cron:", err));
18
20
  if (config.whatsapp?.enabled) {
19
21
  startWhatsApp().catch((err) => console.error("Failed to start WhatsApp:", err));
20
22
  }
@@ -28,4 +30,5 @@ function shutdown() {
28
30
  }
29
31
  process.on("SIGTERM", shutdown);
30
32
  process.on("SIGINT", shutdown);
33
+ process.on("exit", () => { stopCronSync(); });
31
34
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,aAAa,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AACxB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEjC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAE9D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAChD,CAAC;QACF,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC7B,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAChD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACxD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE5D,aAAa,EAAE,CAAC;AAEhB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AACxB,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AAEjC,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAE9D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IACvB,OAAO,CAAC,GAAG,CAAC,8CAA8C,IAAI,EAAE,CAAC,CAAC;IAClE,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,qEAAqE;QACrE,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/B,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC9B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAChD,CAAC;QACF,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC7B,aAAa,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAC5B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAChD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;QACxD,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/B,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * MCP stdio server for messaging.
3
+ * Proxies send_message / list_channels tool calls to the main Express server's HTTP API.
4
+ */
5
+ export {};