diff options
author | A.J. Shulman <Shulman.aj@gmail.com> | 2025-05-27 14:08:11 -0400 |
---|---|---|
committer | A.J. Shulman <Shulman.aj@gmail.com> | 2025-05-27 14:08:11 -0400 |
commit | 656dbe6dc64013215eb312173df398fe4606d788 (patch) | |
tree | 05c2d35e5f636091c637779d1c8352c25e9ce7f6 /src/server/server_Initialization.ts | |
parent | c3dba47bcda10bbcd72010c177afa8fd301e87e1 (diff) |
feat: implement dynamic tool creation with deferred webpack rebuild and AI integration
Added runtime tool registry to Agent.ts for dynamic tool lookup
Implemented CreateNewTool agent tool for AI-driven code analysis and tool generation
Enabled deferred saving to avoid interrupting AI workflows with immediate rebuilds
Introduced user-controlled modal for confirming tool installation and page reload
Added REST API and secure server-side persistence for dynamic tools
Built TypeScript validation, transpilation, and sandboxed execution for safe tool handling
UI enhancements: modal with blur, responsive design, clear messaging
Ensured compatibility with Webpack using dynamic require() calls
Full error handling, code validation, and secure storage on client and server sides
Diffstat (limited to 'src/server/server_Initialization.ts')
-rw-r--r-- | src/server/server_Initialization.ts | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts index 514e2ce1e..80cf977ee 100644 --- a/src/server/server_Initialization.ts +++ b/src/server/server_Initialization.ts @@ -21,6 +21,7 @@ import { Database } from './database'; import { WebSocket } from './websocket'; import axios from 'axios'; import { JSDOM } from 'jsdom'; +import { setupDynamicToolsAPI } from './api/dynamicTools'; /* RouteSetter is a wrapper around the server that prevents the server from being exposed. */ @@ -210,6 +211,10 @@ export default async function InitializeServer(routeSetter: RouteSetter) { // app.use(cors({ origin: (_origin: any, callback: any) => callback(null, true) })); registerAuthenticationRoutes(app); // this adds routes to authenticate a user (login, etc) registerCorsProxy(app); // this adds a /corsproxy/ route to allow clients to get to urls that would otherwise be blocked by cors policies + + // Set up the dynamic tools API + setupDynamicToolsAPI(app); + isRelease && !SSL.Loaded && SSL.exit(); routeSetter(new RouteManager(app, isRelease)); // this sets up all the regular supervised routes (things like /home, download/upload api's, pdf, search, session, etc) isRelease && process.env.serverPort && (resolvedPorts.server = Number(process.env.serverPort)); |