@standardagents/builder 0.8.1 → 0.8.2

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/dist/mcp.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
2
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
3
- import { tools } from 'virtual:agent-tools';
3
+ import { tools } from 'virtual:@standardagents-tools';
4
4
  import { zodown } from 'zodown';
5
5
 
6
6
  // src/mcp/server.ts
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/ServerResponseProxy.ts","../src/utils/IncomingMessageProxy.ts","../src/mcp/server.ts"],"names":["args"],"mappings":"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","file":"mcp.js","sourcesContent":["type HttpHeaders = Record<string, string | string[] | number | undefined>;\n\nexport class ServerResponseProxy {\n private _statusCode: number = 200;\n private _statusMessage?: string;\n private _headers: Record<string, string | string[]> = {};\n private _cookies: string[] = [];\n private _body: Uint8Array[] = [];\n private _finished: boolean = false;\n private _headersSent: boolean = false;\n private _listeners: Map<string, Function[]> = new Map();\n private _closed: boolean = false;\n private _streamController?: ReadableStreamDefaultController<Uint8Array>;\n private _isStreaming: boolean = false;\n\n constructor() {}\n\n get statusCode(): number {\n return this._statusCode;\n }\n\n set statusCode(code: number) {\n if (this._headersSent) {\n throw new Error(\"Cannot set status code after headers have been sent\");\n }\n this._statusCode = code;\n }\n\n get statusMessage(): string | undefined {\n return this._statusMessage;\n }\n\n set statusMessage(message: string | undefined) {\n if (this._headersSent) {\n throw new Error(\"Cannot set status message after headers have been sent\");\n }\n this._statusMessage = message;\n }\n\n get headersSent(): boolean {\n return this._headersSent;\n }\n\n get finished(): boolean {\n return this._finished;\n }\n\n writeHead(\n statusCode: number,\n statusMessage?: string | HttpHeaders,\n headers?: HttpHeaders\n ): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n\n this._statusCode = statusCode;\n\n if (typeof statusMessage === \"string\") {\n this._statusMessage = statusMessage;\n if (headers) {\n this._setHeaders(headers);\n }\n } else if (statusMessage) {\n this._setHeaders(statusMessage);\n }\n\n // Don't set _headersSent here - wait until first write()\n return this;\n }\n\n setHeader(name: string, value: string | string[] | number): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n this._headers[name.toLowerCase()] = String(value);\n return this;\n }\n\n getHeader(name: string): string | string[] | undefined {\n return this._headers[name.toLowerCase()];\n }\n\n getHeaders(): Record<string, string | string[]> {\n return { ...this._headers };\n }\n\n getHeaderNames(): string[] {\n return Object.keys(this._headers);\n }\n\n hasHeader(name: string): boolean {\n return name.toLowerCase() in this._headers;\n }\n\n removeHeader(name: string): this {\n if (this._headersSent) {\n throw new Error(\"Cannot remove headers after they are sent\");\n }\n delete this._headers[name.toLowerCase()];\n return this;\n }\n\n write(\n chunk: string | Uint8Array,\n encoding?: string | (() => void),\n callback?: () => void\n ): boolean {\n if (this._finished) {\n throw new Error(\"Cannot write after end\");\n }\n\n if (!this._headersSent) {\n this._headersSent = true;\n }\n\n let data: Uint8Array;\n if (typeof chunk === \"string\") {\n const enc = typeof encoding === \"string\" ? encoding : \"utf8\";\n data = new TextEncoder().encode(chunk);\n } else {\n data = chunk;\n }\n\n // Check if this is a streaming response\n const contentType = this._headers['content-type'];\n if (typeof contentType === 'string' && contentType.includes('text/event-stream')) {\n this._isStreaming = true;\n // For streaming responses, immediately send the chunk if we have a controller\n if (this._streamController) {\n this._streamController.enqueue(data);\n } else {\n // Store for later if controller not ready yet\n this._body.push(data);\n }\n } else {\n this._body.push(data);\n }\n\n if (typeof encoding === \"function\") {\n encoding();\n } else if (callback) {\n callback();\n }\n\n return true;\n }\n\n end(\n chunk?: string | Uint8Array,\n encoding?: string | (() => void),\n callback?: () => void\n ): this {\n if (this._finished) {\n return this;\n }\n\n if (chunk !== undefined) {\n this.write(chunk, encoding, callback);\n } else if (typeof encoding === \"function\") {\n encoding();\n } else if (callback) {\n callback();\n }\n\n if (!this._headersSent) {\n this._headersSent = true;\n }\n\n this._finished = true;\n \n // Close stream if streaming\n if (this._streamController) {\n this._streamController.close();\n }\n \n // Emit finish event\n this.emit('finish');\n \n return this;\n }\n\n writeContinue(): void {\n // No-op for proxy\n }\n\n writeProcessing(): void {\n // No-op for proxy\n }\n\n flushHeaders(): void {\n if (!this._headersSent) {\n this._headersSent = true;\n }\n }\n\n setTimeout(msecs: number, callback?: () => void): this {\n // No-op for proxy\n return this;\n }\n\n addTrailers(headers: HttpHeaders): void {\n // No-op for proxy - Response API doesn't support trailers\n }\n\n cork(): void {\n // No-op for proxy\n }\n\n uncork(): void {\n // No-op for proxy\n }\n\n destroy(error?: Error): boolean {\n if (!this._closed) {\n this._closed = true;\n this.emit('close');\n }\n this._finished = true;\n return true;\n }\n\n // Event emitter methods\n on(event: string, listener: (...args: any[]) => void): this {\n if (!this._listeners.has(event)) {\n this._listeners.set(event, []);\n }\n this._listeners.get(event)!.push(listener);\n return this;\n }\n\n once(event: string, listener: (...args: any[]) => void): this {\n const onceWrapper = (...args: any[]) => {\n this.off(event, onceWrapper);\n listener(...args);\n };\n return this.on(event, onceWrapper);\n }\n\n off(event: string, listener: (...args: any[]) => void): this {\n const listeners = this._listeners.get(event);\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n }\n return this;\n }\n\n emit(event: string, ...args: any[]): boolean {\n const listeners = this._listeners.get(event);\n if (listeners && listeners.length > 0) {\n listeners.forEach(listener => {\n try {\n listener(...args);\n } catch (error) {\n // Emit error if listener throws\n setTimeout(() => this.emit('error', error), 0);\n }\n });\n return true;\n }\n return false;\n }\n\n addListener(event: string, listener: (...args: any[]) => void): this {\n return this.on(event, listener);\n }\n\n removeListener(event: string, listener: (...args: any[]) => void): this {\n return this.off(event, listener);\n }\n\n removeAllListeners(event?: string): this {\n if (event) {\n this._listeners.delete(event);\n } else {\n this._listeners.clear();\n }\n return this;\n }\n\n // Cookie handling methods\n cookie(\n name: string,\n value: string,\n options?: {\n domain?: string;\n expires?: Date;\n httpOnly?: boolean;\n maxAge?: number;\n path?: string;\n secure?: boolean;\n signed?: boolean;\n sameSite?: boolean | \"lax\" | \"strict\" | \"none\";\n }\n ): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n\n let cookie = `${name}=${value}`;\n\n if (options) {\n if (options.domain) cookie += `; Domain=${options.domain}`;\n if (options.expires)\n cookie += `; Expires=${options.expires.toUTCString()}`;\n if (options.httpOnly) cookie += \"; HttpOnly\";\n if (options.maxAge) cookie += `; Max-Age=${options.maxAge}`;\n if (options.path) cookie += `; Path=${options.path}`;\n if (options.secure) cookie += \"; Secure\";\n if (options.sameSite) {\n if (typeof options.sameSite === \"boolean\") {\n cookie += \"; SameSite=Strict\";\n } else {\n cookie += `; SameSite=${options.sameSite}`;\n }\n }\n }\n\n this._cookies.push(cookie);\n return this;\n }\n\n clearCookie(\n name: string,\n options?: { domain?: string; path?: string }\n ): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n\n let cookie = `${name}=; Expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n\n if (options) {\n if (options.domain) cookie += `; Domain=${options.domain}`;\n if (options.path) cookie += `; Path=${options.path}`;\n }\n\n this._cookies.push(cookie);\n return this;\n }\n\n private _setHeaders(headers: HttpHeaders): void {\n for (const [key, value] of Object.entries(headers)) {\n if (value !== undefined) {\n this._headers[key.toLowerCase()] = Array.isArray(value)\n ? value\n : String(value);\n }\n }\n }\n\n toResponse(): Response {\n const headers = new Headers();\n\n // Set regular headers\n for (const [key, value] of Object.entries(this._headers)) {\n if (Array.isArray(value)) {\n value.forEach((v) => headers.append(key, v));\n } else {\n headers.set(key, value);\n }\n }\n\n // Set cookies\n this._cookies.forEach((cookie) => {\n headers.append(\"set-cookie\", cookie);\n });\n\n // Check if this is a streaming response\n const contentType = headers.get('content-type');\n if (contentType && contentType.includes('text/event-stream')) {\n // Create a ReadableStream for streaming responses\n const stream = new ReadableStream<Uint8Array>({\n start: (controller) => {\n this._streamController = controller;\n \n // Send any buffered chunks immediately\n if (this._body.length > 0) {\n for (const chunk of this._body) {\n controller.enqueue(chunk);\n }\n this._body = []; // Clear buffered chunks\n }\n \n // If already finished, close immediately\n if (this._finished) {\n controller.close();\n }\n },\n cancel: () => {\n this._streamController = undefined;\n this._closed = true;\n this.emit('close');\n }\n });\n\n return new Response(stream, {\n status: this._statusCode,\n statusText: this._statusMessage,\n headers,\n });\n } else {\n // Regular non-streaming response\n let body: BodyInit | null = null;\n if (this._body.length > 0) {\n const totalLength = this._body.reduce(\n (sum, chunk) => sum + chunk.length,\n 0\n );\n const combined = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of this._body) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n body = combined;\n }\n\n return new Response(body, {\n status: this._statusCode,\n statusText: this._statusMessage,\n headers,\n });\n }\n }\n}\n","export class IncomingMessageProxy {\n private _request: Request;\n private _url: URL;\n private _body?: ArrayBuffer;\n private _bodyRead = false;\n private _streaming = false;\n private _streamEnded = false;\n private _streamDestroyed = false;\n private _listeners: Map<string, Function[]> = new Map();\n private _encoding?: string;\n\n constructor(request: Request) {\n this._request = request;\n this._url = new URL(request.url);\n }\n\n // HTTP version (mock)\n get httpVersion(): string {\n return \"1.1\";\n }\n\n get httpVersionMajor(): number {\n return 1;\n }\n\n get httpVersionMinor(): number {\n return 1;\n }\n\n // Request method\n get method(): string {\n return this._request.method;\n }\n\n // URL and path properties\n get url(): string {\n return this._url.pathname + this._url.search;\n }\n\n get pathname(): string {\n return this._url.pathname;\n }\n\n get search(): string {\n return this._url.search;\n }\n\n get query(): string {\n return this._url.search.slice(1); // Remove the '?' prefix\n }\n\n get path(): string {\n return this._url.pathname + this._url.search;\n }\n\n // Headers proxy\n get headers(): Record<string, string | string[]> {\n const headers: Record<string, string | string[]> = {};\n\n this._request.headers.forEach((value, key) => {\n const lowerKey = key.toLowerCase();\n if (headers[lowerKey]) {\n // Convert to array if multiple values\n if (Array.isArray(headers[lowerKey])) {\n (headers[lowerKey] as string[]).push(value);\n } else {\n headers[lowerKey] = [headers[lowerKey] as string, value];\n }\n } else {\n headers[lowerKey] = value;\n }\n });\n\n return headers;\n }\n\n get rawHeaders(): string[] {\n const raw: string[] = [];\n this._request.headers.forEach((value, key) => {\n raw.push(key, value);\n });\n return raw;\n }\n\n // Host and connection info\n get host(): string {\n return this._url.host;\n }\n\n get hostname(): string {\n return this._url.hostname;\n }\n\n get port(): string {\n return this._url.port || (this._url.protocol === \"https:\" ? \"443\" : \"80\");\n }\n\n get protocol(): string {\n return this._url.protocol;\n }\n\n // Socket properties (mocked for compatibility)\n get connection(): any {\n return {\n remoteAddress:\n this._request.headers.get(\"cf-connecting-ip\") ||\n this._request.headers.get(\"x-forwarded-for\")?.split(\",\")[0]?.trim() ||\n \"127.0.0.1\",\n remotePort: null,\n localAddress: this._url.hostname,\n localPort: parseInt(this.port),\n encrypted: this._url.protocol === \"https:\",\n };\n }\n\n get socket(): any {\n return this.connection;\n }\n\n // Complete flag (always true for Request objects)\n get complete(): boolean {\n return true;\n }\n\n // Readable stream properties\n get readable(): boolean {\n return !this._streamEnded && !this._streamDestroyed;\n }\n\n get readableEnded(): boolean {\n return this._streamEnded;\n }\n\n get destroyed(): boolean {\n return this._streamDestroyed;\n }\n\n // Status code (only available on responses, null for requests)\n get statusCode(): number | null {\n return null;\n }\n\n get statusMessage(): string | null {\n return null;\n }\n\n // Trailer support (not supported by fetch API)\n get trailers(): Record<string, string> {\n return {};\n }\n\n get rawTrailers(): string[] {\n return [];\n }\n\n // Body reading methods\n async read(): Promise<Uint8Array | null> {\n if (this._bodyRead) {\n return null;\n }\n\n if (!this._body) {\n this._body = await this._request.arrayBuffer();\n }\n\n this._bodyRead = true;\n return new Uint8Array(this._body);\n }\n\n async text(): Promise<string> {\n if (!this._body) {\n this._body = await this._request.arrayBuffer();\n }\n return new TextDecoder().decode(this._body);\n }\n\n async json(): Promise<any> {\n const text = await this.text();\n return JSON.parse(text);\n }\n\n async arrayBuffer(): Promise<ArrayBuffer> {\n if (!this._body) {\n this._body = await this._request.arrayBuffer();\n }\n return this._body;\n }\n\n // Event emitter methods\n on(event: string, listener: (...args: any[]) => void): this {\n if (!this._listeners.has(event)) {\n this._listeners.set(event, []);\n }\n this._listeners.get(event)!.push(listener);\n \n // Auto-start streaming when someone listens for data\n if (event === 'data' && !this._streaming && !this._streamEnded) {\n this._startStreaming();\n }\n \n return this;\n }\n\n once(event: string, listener: (...args: any[]) => void): this {\n const onceWrapper = (...args: any[]) => {\n this.off(event, onceWrapper);\n listener(...args);\n };\n return this.on(event, onceWrapper);\n }\n\n off(event: string, listener: (...args: any[]) => void): this {\n const listeners = this._listeners.get(event);\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n }\n return this;\n }\n\n emit(event: string, ...args: any[]): boolean {\n const listeners = this._listeners.get(event);\n if (listeners && listeners.length > 0) {\n listeners.forEach(listener => {\n try {\n listener(...args);\n } catch (error) {\n // Emit error if listener throws\n setTimeout(() => this.emit('error', error), 0);\n }\n });\n return true;\n }\n return false;\n }\n\n addListener(event: string, listener: (...args: any[]) => void): this {\n return this.on(event, listener);\n }\n\n removeListener(event: string, listener: (...args: any[]) => void): this {\n return this.off(event, listener);\n }\n\n removeAllListeners(event?: string): this {\n if (event) {\n this._listeners.delete(event);\n } else {\n this._listeners.clear();\n }\n return this;\n }\n\n setEncoding(encoding: string): this {\n this._encoding = encoding;\n return this;\n }\n\n pause(): this {\n return this;\n }\n\n resume(): this {\n return this;\n }\n\n isPaused(): boolean {\n return false;\n }\n\n pipe<T>(destination: T): T {\n return destination;\n }\n\n unpipe(destination?: any): this {\n return this;\n }\n\n wrap(stream: any): this {\n return this;\n }\n\n push(chunk: any, encoding?: string): boolean {\n return false;\n }\n\n unshift(chunk: any, encoding?: string): void {\n // No-op\n }\n\n setTimeout(msecs: number, callback?: () => void): this {\n return this;\n }\n\n destroy(error?: Error): this {\n if (this._streamDestroyed) {\n return this;\n }\n \n this._streamDestroyed = true;\n this._streamEnded = true;\n \n if (error) {\n this.emit('error', error);\n }\n this.emit('close');\n \n return this;\n }\n\n // Utility methods\n header(name: string): string | string[] | undefined {\n return this.headers[name.toLowerCase()];\n }\n\n get(name: string): string | undefined {\n const header = this.headers[name.toLowerCase()];\n return Array.isArray(header) ? header[0] : header;\n }\n\n // Private method to start streaming the body\n private async _startStreaming(): Promise<void> {\n if (this._streaming || this._streamEnded || this._streamDestroyed) {\n return;\n }\n\n this._streaming = true;\n\n try {\n if (!this._request.body) {\n // No body, immediately end\n this._streamEnded = true;\n this.emit('end');\n return;\n }\n\n const reader = this._request.body.getReader();\n \n while (true) {\n const { done, value } = await reader.read();\n \n if (this._streamDestroyed) {\n reader.cancel();\n break;\n }\n \n if (done) {\n this._streamEnded = true;\n this.emit('end');\n break;\n }\n \n if (value) {\n let chunk: Uint8Array | string = value;\n \n // Apply encoding if set\n if (this._encoding) {\n chunk = new TextDecoder(this._encoding).decode(value);\n }\n \n this.emit('data', chunk);\n }\n }\n } catch (error) {\n this._streamEnded = true;\n this.emit('error', error);\n }\n }\n}\n","import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\n// import { isInitializeRequest } from \"@modelcontextprotocol/sdk/types.js\";\nimport { tools } from \"virtual:agent-tools\";\nimport type { FlowState } from \"../tools\";\nimport { ServerResponseProxy } from \"../utils/ServerResponseProxy\";\nimport { IncomingMessageProxy } from \"../utils/IncomingMessageProxy\";\nimport { zodown } from \"zodown\";\n\nexport async function handle(req: Request, env: Env): Promise<Response> {\n const transport = new StreamableHTTPServerTransport({\n sessionIdGenerator: undefined,\n enableJsonResponse: true,\n });\n\n const server = await createMCPServer(env, req);\n await server.connect(transport);\n const res = new ServerResponseProxy();\n\n await transport.handleRequest(new IncomingMessageProxy(req), res);\n\n // Give the transport a moment to finish writing\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n return res.toResponse();\n}\n\nexport async function createMCPServer(\n env: Env,\n req: Request\n): Promise<McpServer> {\n const server = new McpServer({\n name: \"agent-kit\",\n version: \"1.0.0\",\n });\n\n for (const name in tools) {\n const [description, args, tool] = await tools[name]();\n const v3Args = zodown(args);\n server.tool(\n name,\n description,\n args ? (v3Args.shape as Record<string, any>) : {},\n (args: Record<string, any>) => {\n const flow: FlowState = {\n id: \"stateless\",\n active: {\n tool: \"1\",\n args: {},\n retries: 0,\n reasons: [],\n },\n queue: [],\n };\n return tool(flow, args);\n }\n );\n }\n return server;\n}\n"]}
1
+ {"version":3,"sources":["../src/utils/ServerResponseProxy.ts","../src/utils/IncomingMessageProxy.ts","../src/mcp/server.ts"],"names":["args"],"mappings":"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","file":"mcp.js","sourcesContent":["type HttpHeaders = Record<string, string | string[] | number | undefined>;\n\nexport class ServerResponseProxy {\n private _statusCode: number = 200;\n private _statusMessage?: string;\n private _headers: Record<string, string | string[]> = {};\n private _cookies: string[] = [];\n private _body: Uint8Array[] = [];\n private _finished: boolean = false;\n private _headersSent: boolean = false;\n private _listeners: Map<string, Function[]> = new Map();\n private _closed: boolean = false;\n private _streamController?: ReadableStreamDefaultController<Uint8Array>;\n private _isStreaming: boolean = false;\n\n constructor() {}\n\n get statusCode(): number {\n return this._statusCode;\n }\n\n set statusCode(code: number) {\n if (this._headersSent) {\n throw new Error(\"Cannot set status code after headers have been sent\");\n }\n this._statusCode = code;\n }\n\n get statusMessage(): string | undefined {\n return this._statusMessage;\n }\n\n set statusMessage(message: string | undefined) {\n if (this._headersSent) {\n throw new Error(\"Cannot set status message after headers have been sent\");\n }\n this._statusMessage = message;\n }\n\n get headersSent(): boolean {\n return this._headersSent;\n }\n\n get finished(): boolean {\n return this._finished;\n }\n\n writeHead(\n statusCode: number,\n statusMessage?: string | HttpHeaders,\n headers?: HttpHeaders\n ): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n\n this._statusCode = statusCode;\n\n if (typeof statusMessage === \"string\") {\n this._statusMessage = statusMessage;\n if (headers) {\n this._setHeaders(headers);\n }\n } else if (statusMessage) {\n this._setHeaders(statusMessage);\n }\n\n // Don't set _headersSent here - wait until first write()\n return this;\n }\n\n setHeader(name: string, value: string | string[] | number): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n this._headers[name.toLowerCase()] = String(value);\n return this;\n }\n\n getHeader(name: string): string | string[] | undefined {\n return this._headers[name.toLowerCase()];\n }\n\n getHeaders(): Record<string, string | string[]> {\n return { ...this._headers };\n }\n\n getHeaderNames(): string[] {\n return Object.keys(this._headers);\n }\n\n hasHeader(name: string): boolean {\n return name.toLowerCase() in this._headers;\n }\n\n removeHeader(name: string): this {\n if (this._headersSent) {\n throw new Error(\"Cannot remove headers after they are sent\");\n }\n delete this._headers[name.toLowerCase()];\n return this;\n }\n\n write(\n chunk: string | Uint8Array,\n encoding?: string | (() => void),\n callback?: () => void\n ): boolean {\n if (this._finished) {\n throw new Error(\"Cannot write after end\");\n }\n\n if (!this._headersSent) {\n this._headersSent = true;\n }\n\n let data: Uint8Array;\n if (typeof chunk === \"string\") {\n const enc = typeof encoding === \"string\" ? encoding : \"utf8\";\n data = new TextEncoder().encode(chunk);\n } else {\n data = chunk;\n }\n\n // Check if this is a streaming response\n const contentType = this._headers['content-type'];\n if (typeof contentType === 'string' && contentType.includes('text/event-stream')) {\n this._isStreaming = true;\n // For streaming responses, immediately send the chunk if we have a controller\n if (this._streamController) {\n this._streamController.enqueue(data);\n } else {\n // Store for later if controller not ready yet\n this._body.push(data);\n }\n } else {\n this._body.push(data);\n }\n\n if (typeof encoding === \"function\") {\n encoding();\n } else if (callback) {\n callback();\n }\n\n return true;\n }\n\n end(\n chunk?: string | Uint8Array,\n encoding?: string | (() => void),\n callback?: () => void\n ): this {\n if (this._finished) {\n return this;\n }\n\n if (chunk !== undefined) {\n this.write(chunk, encoding, callback);\n } else if (typeof encoding === \"function\") {\n encoding();\n } else if (callback) {\n callback();\n }\n\n if (!this._headersSent) {\n this._headersSent = true;\n }\n\n this._finished = true;\n \n // Close stream if streaming\n if (this._streamController) {\n this._streamController.close();\n }\n \n // Emit finish event\n this.emit('finish');\n \n return this;\n }\n\n writeContinue(): void {\n // No-op for proxy\n }\n\n writeProcessing(): void {\n // No-op for proxy\n }\n\n flushHeaders(): void {\n if (!this._headersSent) {\n this._headersSent = true;\n }\n }\n\n setTimeout(msecs: number, callback?: () => void): this {\n // No-op for proxy\n return this;\n }\n\n addTrailers(headers: HttpHeaders): void {\n // No-op for proxy - Response API doesn't support trailers\n }\n\n cork(): void {\n // No-op for proxy\n }\n\n uncork(): void {\n // No-op for proxy\n }\n\n destroy(error?: Error): boolean {\n if (!this._closed) {\n this._closed = true;\n this.emit('close');\n }\n this._finished = true;\n return true;\n }\n\n // Event emitter methods\n on(event: string, listener: (...args: any[]) => void): this {\n if (!this._listeners.has(event)) {\n this._listeners.set(event, []);\n }\n this._listeners.get(event)!.push(listener);\n return this;\n }\n\n once(event: string, listener: (...args: any[]) => void): this {\n const onceWrapper = (...args: any[]) => {\n this.off(event, onceWrapper);\n listener(...args);\n };\n return this.on(event, onceWrapper);\n }\n\n off(event: string, listener: (...args: any[]) => void): this {\n const listeners = this._listeners.get(event);\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n }\n return this;\n }\n\n emit(event: string, ...args: any[]): boolean {\n const listeners = this._listeners.get(event);\n if (listeners && listeners.length > 0) {\n listeners.forEach(listener => {\n try {\n listener(...args);\n } catch (error) {\n // Emit error if listener throws\n setTimeout(() => this.emit('error', error), 0);\n }\n });\n return true;\n }\n return false;\n }\n\n addListener(event: string, listener: (...args: any[]) => void): this {\n return this.on(event, listener);\n }\n\n removeListener(event: string, listener: (...args: any[]) => void): this {\n return this.off(event, listener);\n }\n\n removeAllListeners(event?: string): this {\n if (event) {\n this._listeners.delete(event);\n } else {\n this._listeners.clear();\n }\n return this;\n }\n\n // Cookie handling methods\n cookie(\n name: string,\n value: string,\n options?: {\n domain?: string;\n expires?: Date;\n httpOnly?: boolean;\n maxAge?: number;\n path?: string;\n secure?: boolean;\n signed?: boolean;\n sameSite?: boolean | \"lax\" | \"strict\" | \"none\";\n }\n ): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n\n let cookie = `${name}=${value}`;\n\n if (options) {\n if (options.domain) cookie += `; Domain=${options.domain}`;\n if (options.expires)\n cookie += `; Expires=${options.expires.toUTCString()}`;\n if (options.httpOnly) cookie += \"; HttpOnly\";\n if (options.maxAge) cookie += `; Max-Age=${options.maxAge}`;\n if (options.path) cookie += `; Path=${options.path}`;\n if (options.secure) cookie += \"; Secure\";\n if (options.sameSite) {\n if (typeof options.sameSite === \"boolean\") {\n cookie += \"; SameSite=Strict\";\n } else {\n cookie += `; SameSite=${options.sameSite}`;\n }\n }\n }\n\n this._cookies.push(cookie);\n return this;\n }\n\n clearCookie(\n name: string,\n options?: { domain?: string; path?: string }\n ): this {\n if (this._headersSent) {\n throw new Error(\"Cannot set headers after they are sent\");\n }\n\n let cookie = `${name}=; Expires=Thu, 01 Jan 1970 00:00:00 GMT`;\n\n if (options) {\n if (options.domain) cookie += `; Domain=${options.domain}`;\n if (options.path) cookie += `; Path=${options.path}`;\n }\n\n this._cookies.push(cookie);\n return this;\n }\n\n private _setHeaders(headers: HttpHeaders): void {\n for (const [key, value] of Object.entries(headers)) {\n if (value !== undefined) {\n this._headers[key.toLowerCase()] = Array.isArray(value)\n ? value\n : String(value);\n }\n }\n }\n\n toResponse(): Response {\n const headers = new Headers();\n\n // Set regular headers\n for (const [key, value] of Object.entries(this._headers)) {\n if (Array.isArray(value)) {\n value.forEach((v) => headers.append(key, v));\n } else {\n headers.set(key, value);\n }\n }\n\n // Set cookies\n this._cookies.forEach((cookie) => {\n headers.append(\"set-cookie\", cookie);\n });\n\n // Check if this is a streaming response\n const contentType = headers.get('content-type');\n if (contentType && contentType.includes('text/event-stream')) {\n // Create a ReadableStream for streaming responses\n const stream = new ReadableStream<Uint8Array>({\n start: (controller) => {\n this._streamController = controller;\n \n // Send any buffered chunks immediately\n if (this._body.length > 0) {\n for (const chunk of this._body) {\n controller.enqueue(chunk);\n }\n this._body = []; // Clear buffered chunks\n }\n \n // If already finished, close immediately\n if (this._finished) {\n controller.close();\n }\n },\n cancel: () => {\n this._streamController = undefined;\n this._closed = true;\n this.emit('close');\n }\n });\n\n return new Response(stream, {\n status: this._statusCode,\n statusText: this._statusMessage,\n headers,\n });\n } else {\n // Regular non-streaming response\n let body: BodyInit | null = null;\n if (this._body.length > 0) {\n const totalLength = this._body.reduce(\n (sum, chunk) => sum + chunk.length,\n 0\n );\n const combined = new Uint8Array(totalLength);\n let offset = 0;\n for (const chunk of this._body) {\n combined.set(chunk, offset);\n offset += chunk.length;\n }\n body = combined;\n }\n\n return new Response(body, {\n status: this._statusCode,\n statusText: this._statusMessage,\n headers,\n });\n }\n }\n}\n","export class IncomingMessageProxy {\n private _request: Request;\n private _url: URL;\n private _body?: ArrayBuffer;\n private _bodyRead = false;\n private _streaming = false;\n private _streamEnded = false;\n private _streamDestroyed = false;\n private _listeners: Map<string, Function[]> = new Map();\n private _encoding?: string;\n\n constructor(request: Request) {\n this._request = request;\n this._url = new URL(request.url);\n }\n\n // HTTP version (mock)\n get httpVersion(): string {\n return \"1.1\";\n }\n\n get httpVersionMajor(): number {\n return 1;\n }\n\n get httpVersionMinor(): number {\n return 1;\n }\n\n // Request method\n get method(): string {\n return this._request.method;\n }\n\n // URL and path properties\n get url(): string {\n return this._url.pathname + this._url.search;\n }\n\n get pathname(): string {\n return this._url.pathname;\n }\n\n get search(): string {\n return this._url.search;\n }\n\n get query(): string {\n return this._url.search.slice(1); // Remove the '?' prefix\n }\n\n get path(): string {\n return this._url.pathname + this._url.search;\n }\n\n // Headers proxy\n get headers(): Record<string, string | string[]> {\n const headers: Record<string, string | string[]> = {};\n\n this._request.headers.forEach((value, key) => {\n const lowerKey = key.toLowerCase();\n if (headers[lowerKey]) {\n // Convert to array if multiple values\n if (Array.isArray(headers[lowerKey])) {\n (headers[lowerKey] as string[]).push(value);\n } else {\n headers[lowerKey] = [headers[lowerKey] as string, value];\n }\n } else {\n headers[lowerKey] = value;\n }\n });\n\n return headers;\n }\n\n get rawHeaders(): string[] {\n const raw: string[] = [];\n this._request.headers.forEach((value, key) => {\n raw.push(key, value);\n });\n return raw;\n }\n\n // Host and connection info\n get host(): string {\n return this._url.host;\n }\n\n get hostname(): string {\n return this._url.hostname;\n }\n\n get port(): string {\n return this._url.port || (this._url.protocol === \"https:\" ? \"443\" : \"80\");\n }\n\n get protocol(): string {\n return this._url.protocol;\n }\n\n // Socket properties (mocked for compatibility)\n get connection(): any {\n return {\n remoteAddress:\n this._request.headers.get(\"cf-connecting-ip\") ||\n this._request.headers.get(\"x-forwarded-for\")?.split(\",\")[0]?.trim() ||\n \"127.0.0.1\",\n remotePort: null,\n localAddress: this._url.hostname,\n localPort: parseInt(this.port),\n encrypted: this._url.protocol === \"https:\",\n };\n }\n\n get socket(): any {\n return this.connection;\n }\n\n // Complete flag (always true for Request objects)\n get complete(): boolean {\n return true;\n }\n\n // Readable stream properties\n get readable(): boolean {\n return !this._streamEnded && !this._streamDestroyed;\n }\n\n get readableEnded(): boolean {\n return this._streamEnded;\n }\n\n get destroyed(): boolean {\n return this._streamDestroyed;\n }\n\n // Status code (only available on responses, null for requests)\n get statusCode(): number | null {\n return null;\n }\n\n get statusMessage(): string | null {\n return null;\n }\n\n // Trailer support (not supported by fetch API)\n get trailers(): Record<string, string> {\n return {};\n }\n\n get rawTrailers(): string[] {\n return [];\n }\n\n // Body reading methods\n async read(): Promise<Uint8Array | null> {\n if (this._bodyRead) {\n return null;\n }\n\n if (!this._body) {\n this._body = await this._request.arrayBuffer();\n }\n\n this._bodyRead = true;\n return new Uint8Array(this._body);\n }\n\n async text(): Promise<string> {\n if (!this._body) {\n this._body = await this._request.arrayBuffer();\n }\n return new TextDecoder().decode(this._body);\n }\n\n async json(): Promise<any> {\n const text = await this.text();\n return JSON.parse(text);\n }\n\n async arrayBuffer(): Promise<ArrayBuffer> {\n if (!this._body) {\n this._body = await this._request.arrayBuffer();\n }\n return this._body;\n }\n\n // Event emitter methods\n on(event: string, listener: (...args: any[]) => void): this {\n if (!this._listeners.has(event)) {\n this._listeners.set(event, []);\n }\n this._listeners.get(event)!.push(listener);\n \n // Auto-start streaming when someone listens for data\n if (event === 'data' && !this._streaming && !this._streamEnded) {\n this._startStreaming();\n }\n \n return this;\n }\n\n once(event: string, listener: (...args: any[]) => void): this {\n const onceWrapper = (...args: any[]) => {\n this.off(event, onceWrapper);\n listener(...args);\n };\n return this.on(event, onceWrapper);\n }\n\n off(event: string, listener: (...args: any[]) => void): this {\n const listeners = this._listeners.get(event);\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n }\n return this;\n }\n\n emit(event: string, ...args: any[]): boolean {\n const listeners = this._listeners.get(event);\n if (listeners && listeners.length > 0) {\n listeners.forEach(listener => {\n try {\n listener(...args);\n } catch (error) {\n // Emit error if listener throws\n setTimeout(() => this.emit('error', error), 0);\n }\n });\n return true;\n }\n return false;\n }\n\n addListener(event: string, listener: (...args: any[]) => void): this {\n return this.on(event, listener);\n }\n\n removeListener(event: string, listener: (...args: any[]) => void): this {\n return this.off(event, listener);\n }\n\n removeAllListeners(event?: string): this {\n if (event) {\n this._listeners.delete(event);\n } else {\n this._listeners.clear();\n }\n return this;\n }\n\n setEncoding(encoding: string): this {\n this._encoding = encoding;\n return this;\n }\n\n pause(): this {\n return this;\n }\n\n resume(): this {\n return this;\n }\n\n isPaused(): boolean {\n return false;\n }\n\n pipe<T>(destination: T): T {\n return destination;\n }\n\n unpipe(destination?: any): this {\n return this;\n }\n\n wrap(stream: any): this {\n return this;\n }\n\n push(chunk: any, encoding?: string): boolean {\n return false;\n }\n\n unshift(chunk: any, encoding?: string): void {\n // No-op\n }\n\n setTimeout(msecs: number, callback?: () => void): this {\n return this;\n }\n\n destroy(error?: Error): this {\n if (this._streamDestroyed) {\n return this;\n }\n \n this._streamDestroyed = true;\n this._streamEnded = true;\n \n if (error) {\n this.emit('error', error);\n }\n this.emit('close');\n \n return this;\n }\n\n // Utility methods\n header(name: string): string | string[] | undefined {\n return this.headers[name.toLowerCase()];\n }\n\n get(name: string): string | undefined {\n const header = this.headers[name.toLowerCase()];\n return Array.isArray(header) ? header[0] : header;\n }\n\n // Private method to start streaming the body\n private async _startStreaming(): Promise<void> {\n if (this._streaming || this._streamEnded || this._streamDestroyed) {\n return;\n }\n\n this._streaming = true;\n\n try {\n if (!this._request.body) {\n // No body, immediately end\n this._streamEnded = true;\n this.emit('end');\n return;\n }\n\n const reader = this._request.body.getReader();\n \n while (true) {\n const { done, value } = await reader.read();\n \n if (this._streamDestroyed) {\n reader.cancel();\n break;\n }\n \n if (done) {\n this._streamEnded = true;\n this.emit('end');\n break;\n }\n \n if (value) {\n let chunk: Uint8Array | string = value;\n \n // Apply encoding if set\n if (this._encoding) {\n chunk = new TextDecoder(this._encoding).decode(value);\n }\n \n this.emit('data', chunk);\n }\n }\n } catch (error) {\n this._streamEnded = true;\n this.emit('error', error);\n }\n }\n}\n","import { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\n// import { isInitializeRequest } from \"@modelcontextprotocol/sdk/types.js\";\nimport { tools } from \"virtual:@standardagents-tools\";\nimport type { FlowState } from \"../tools\";\nimport { ServerResponseProxy } from \"../utils/ServerResponseProxy\";\nimport { IncomingMessageProxy } from \"../utils/IncomingMessageProxy\";\nimport { zodown } from \"zodown\";\n\nexport async function handle(req: Request, env: Env): Promise<Response> {\n const transport = new StreamableHTTPServerTransport({\n sessionIdGenerator: undefined,\n enableJsonResponse: true,\n });\n\n const server = await createMCPServer(env, req);\n await server.connect(transport);\n const res = new ServerResponseProxy();\n\n await transport.handleRequest(new IncomingMessageProxy(req), res);\n\n // Give the transport a moment to finish writing\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n return res.toResponse();\n}\n\nexport async function createMCPServer(\n env: Env,\n req: Request\n): Promise<McpServer> {\n const server = new McpServer({\n name: \"agent-kit\",\n version: \"1.0.0\",\n });\n\n for (const name in tools) {\n const [description, args, tool] = await tools[name]();\n const v3Args = zodown(args);\n server.tool(\n name,\n description,\n args ? (v3Args.shape as Record<string, any>) : {},\n (args: Record<string, any>) => {\n const flow: FlowState = {\n id: \"stateless\",\n active: {\n tool: \"1\",\n args: {},\n retries: 0,\n reasons: [],\n },\n queue: [],\n };\n return tool(flow, args);\n }\n );\n }\n return server;\n}\n"]}
package/dist/plugin.js CHANGED
@@ -1780,6 +1780,9 @@ async function scanHooksDirectory(dir) {
1780
1780
  for (const entry of entries) {
1781
1781
  if (entry.isFile() && entry.name.endsWith(".ts")) {
1782
1782
  const fileName = entry.name.replace(".ts", "");
1783
+ if (fileName === "index") {
1784
+ continue;
1785
+ }
1783
1786
  const filePath = path3.join(dir, entry.name);
1784
1787
  const importPath = "./" + path3.relative(process.cwd(), filePath).replace(/\\/g, "/");
1785
1788
  hooks.push({ name: fileName, importPath });
@@ -1878,9 +1881,7 @@ function agentbuilder(options = {}) {
1878
1881
  };
1879
1882
  function regenerateTypes() {
1880
1883
  if (needsRegeneration(typeGenConfig)) {
1881
- console.log("[vite-plugin-agent] Regenerating types...");
1882
1884
  generateTypes(typeGenConfig);
1883
- console.log("[vite-plugin-agent] Types regenerated at .agents/types.d.ts");
1884
1885
  }
1885
1886
  }
1886
1887
  const __filename = fileURLToPath(import.meta.url);
@@ -2017,7 +2018,7 @@ function agentbuilder(options = {}) {
2017
2018
  }
2018
2019
  return false;
2019
2020
  }
2020
- function handleFileChange(file, server, action) {
2021
+ function handleFileChange(file, server) {
2021
2022
  const isToolFile = file.startsWith(toolsDir) && file.endsWith(".ts");
2022
2023
  const isThreadApiFile = file.startsWith(threadApiDir) && file.endsWith(".ts");
2023
2024
  const isHookFile = file.startsWith(hooksDir) && file.endsWith(".ts");
@@ -2026,13 +2027,6 @@ function agentbuilder(options = {}) {
2026
2027
  const isAgentFile = file.startsWith(agentsDir) && file.endsWith(".ts");
2027
2028
  const isConfigFile = isModelFile || isPromptFile || isAgentFile;
2028
2029
  if (!isToolFile && !isThreadApiFile && !isHookFile && !isConfigFile) return;
2029
- const fileType = isToolFile ? "tool" : isThreadApiFile ? "thread-api" : isHookFile ? "hook" : isModelFile ? "model" : isPromptFile ? "prompt" : "agent";
2030
- console.log(
2031
- `[vite-plugin-agent] ${action} ${fileType}: ${path3.relative(
2032
- process.cwd(),
2033
- file
2034
- )}`
2035
- );
2036
2030
  if (isConfigFile || isToolFile) {
2037
2031
  regenerateTypes();
2038
2032
  }
@@ -2060,6 +2054,8 @@ function agentbuilder(options = {}) {
2060
2054
  config() {
2061
2055
  return {
2062
2056
  optimizeDeps: {
2057
+ // Pre-bundle these deps to prevent reload during startup
2058
+ include: ["openai", "zod"],
2063
2059
  // Exclude @standardagents/builder/mcp from pre-bundling (used for MCP server, not needed in worker)
2064
2060
  exclude: [
2065
2061
  "@standardagents/builder/mcp"
@@ -2086,50 +2082,35 @@ function agentbuilder(options = {}) {
2086
2082
  };
2087
2083
  },
2088
2084
  resolveId(id) {
2089
- if (id.includes("virtual:") || id.includes("agent")) {
2090
- console.log("[plugin.resolveId]", id);
2091
- }
2092
2085
  if (id === VIRTUAL_TOOLS_ID) {
2093
- console.log("[plugin.resolveId] \u2713 Resolving tools");
2094
2086
  return RESOLVED_VIRTUAL_TOOLS_ID;
2095
2087
  }
2096
2088
  if (id === VIRTUAL_ROUTES_ID || id === VIRTUAL_ROUTER_ID) {
2097
- console.log("[plugin.resolveId] \u2713 Resolving routes");
2098
2089
  return RESOLVED_VIRTUAL_ROUTES_ID;
2099
2090
  }
2100
2091
  if (id === VIRTUAL_HOOKS_ID) {
2101
- console.log("[plugin.resolveId] \u2713 Resolving hooks");
2102
2092
  return RESOLVED_VIRTUAL_HOOKS_ID;
2103
2093
  }
2104
2094
  if (id === VIRTUAL_CONFIG_ID) {
2105
- console.log("[plugin.resolveId] \u2713 Resolving config");
2106
2095
  return RESOLVED_VIRTUAL_CONFIG_ID;
2107
2096
  }
2108
2097
  if (id === VIRTUAL_THREAD_API_ID) {
2109
- console.log("[plugin.resolveId] \u2713 Resolving thread API");
2110
2098
  return RESOLVED_VIRTUAL_THREAD_API_ID;
2111
2099
  }
2112
2100
  if (id === VIRTUAL_MODELS_ID) {
2113
- console.log("[plugin.resolveId] \u2713 Resolving models");
2114
2101
  return RESOLVED_VIRTUAL_MODELS_ID;
2115
2102
  }
2116
2103
  if (id === VIRTUAL_PROMPTS_ID) {
2117
- console.log("[plugin.resolveId] \u2713 Resolving prompts");
2118
2104
  return RESOLVED_VIRTUAL_PROMPTS_ID;
2119
2105
  }
2120
2106
  if (id === VIRTUAL_AGENTS_ID) {
2121
- console.log("[plugin.resolveId] \u2713 Resolving agents");
2122
2107
  return RESOLVED_VIRTUAL_AGENTS_ID;
2123
2108
  }
2124
2109
  if (id === VIRTUAL_BUILDER_ID) {
2125
- console.log("[plugin.resolveId] \u2713 Resolving consolidated builder module");
2126
2110
  return RESOLVED_VIRTUAL_BUILDER_ID;
2127
2111
  }
2128
2112
  },
2129
2113
  async load(id) {
2130
- if (id.includes("\0virtual:") || id.includes("agent")) {
2131
- console.log("[plugin.load]", id);
2132
- }
2133
2114
  if (id === RESOLVED_VIRTUAL_TOOLS_ID) {
2134
2115
  const tools = await scanToolsDirectory(toolsDir);
2135
2116
  const toolsCode = tools.map(({ name, importPath, error }) => {
@@ -2174,11 +2155,8 @@ import { hooks } from "virtual:@standardagents-hooks";
2174
2155
  import { models, modelNames } from "virtual:@standardagents-models";
2175
2156
  import { prompts, promptNames } from "virtual:@standardagents-prompts";
2176
2157
  import { agents, agentNames } from "virtual:@standardagents-agents";
2177
- import { DurableThread as _DurableThread } from "@standardagents/builder/runtime";
2178
2158
  import { requireAuth } from "@standardagents/builder/runtime";
2179
2159
 
2180
- console.log('[Router] Virtual modules loaded - tools:', Object.keys(tools || {}), 'hooks:', Object.keys(hooks || {}), 'models:', modelNames, 'prompts:', promptNames, 'agents:', agentNames);
2181
-
2182
2160
  const MOUNT_POINT = "${mountPoint}";
2183
2161
 
2184
2162
  // Routes that don't require authentication
@@ -2335,15 +2313,10 @@ async function serveUI(pathname, env) {
2335
2313
  }
2336
2314
  }
2337
2315
 
2338
- // Export DurableThread so users can re-export it from virtual module
2339
- export { _DurableThread as DurableThread };
2340
2316
  `;
2341
2317
  }
2342
2318
  if (id === RESOLVED_VIRTUAL_HOOKS_ID) {
2343
- console.log("[plugin.load] \u2713 Loading HOOKS virtual module");
2344
- console.log("[plugin.load] hooksDir:", hooksDir);
2345
2319
  const hooks = await scanHooksDirectory(hooksDir);
2346
- console.log(`[plugin.load] Scanned hooks directory, found ${hooks.length} hooks:`, hooks.map((h) => h.name));
2347
2320
  const hooksCode = hooks.map(({ name, importPath }) => {
2348
2321
  return ` "${name}": async () => {
2349
2322
  try {
@@ -2355,7 +2328,6 @@ export { _DurableThread as DurableThread };
2355
2328
  },`;
2356
2329
  }).join("\n");
2357
2330
  return `// Virtual agent hooks module
2358
- console.log('[virtual:agent-hooks] Module loaded with hooks:', Object.keys({${hooks.map((h) => `'${h.name}': null`).join(", ")}}));
2359
2331
  export const hooks = {
2360
2332
  ${hooksCode}
2361
2333
  };`;
@@ -2634,10 +2606,10 @@ export class DurableAgentBuilder extends _BaseDurableAgentBuilder {
2634
2606
  },
2635
2607
  configureServer(server) {
2636
2608
  server.watcher.on("add", async (file) => {
2637
- handleFileChange(file, server, "New file detected");
2609
+ handleFileChange(file, server);
2638
2610
  });
2639
2611
  server.watcher.on("unlink", (file) => {
2640
- handleFileChange(file, server, "File removed");
2612
+ handleFileChange(file, server);
2641
2613
  });
2642
2614
  server.middlewares.use(async (req, res, next) => {
2643
2615
  const url = req.url;
@@ -3133,7 +3105,7 @@ export class DurableAgentBuilder extends _BaseDurableAgentBuilder {
3133
3105
  });
3134
3106
  },
3135
3107
  handleHotUpdate({ file, server }) {
3136
- handleFileChange(file, server, "File modified");
3108
+ handleFileChange(file, server);
3137
3109
  },
3138
3110
  writeBundle(options2, bundle) {
3139
3111
  const outDir = options2.dir || "dist";
@@ -3173,7 +3145,6 @@ export class DurableAgentBuilder extends _BaseDurableAgentBuilder {
3173
3145
  }
3174
3146
  }
3175
3147
  copyRecursive(clientDir, mountDir);
3176
- console.log(`[agentbuilder] Copied client files to ${mountDir}`);
3177
3148
  }
3178
3149
  };
3179
3150
  }