@nodetool-ai/websocket 0.7.0-rc.11
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/agent/agent-runtime.d.ts +47 -0
- package/dist/agent/agent-runtime.d.ts.map +1 -0
- package/dist/agent/agent-runtime.js +577 -0
- package/dist/agent/agent-runtime.js.map +1 -0
- package/dist/agent/codex-agent.d.ts +41 -0
- package/dist/agent/codex-agent.d.ts.map +1 -0
- package/dist/agent/codex-agent.js +334 -0
- package/dist/agent/codex-agent.js.map +1 -0
- package/dist/agent/index.d.ts +6 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +4 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/llm-agent.d.ts +51 -0
- package/dist/agent/llm-agent.d.ts.map +1 -0
- package/dist/agent/llm-agent.js +526 -0
- package/dist/agent/llm-agent.js.map +1 -0
- package/dist/agent/mcp-tool-server.d.ts +33 -0
- package/dist/agent/mcp-tool-server.d.ts.map +1 -0
- package/dist/agent/mcp-tool-server.js +292 -0
- package/dist/agent/mcp-tool-server.js.map +1 -0
- package/dist/agent/opencode-agent.d.ts +32 -0
- package/dist/agent/opencode-agent.d.ts.map +1 -0
- package/dist/agent/opencode-agent.js +332 -0
- package/dist/agent/opencode-agent.js.map +1 -0
- package/dist/agent/pi-agent.d.ts +42 -0
- package/dist/agent/pi-agent.d.ts.map +1 -0
- package/dist/agent/pi-agent.js +429 -0
- package/dist/agent/pi-agent.js.map +1 -0
- package/dist/agent/sdk-provider.d.ts +46 -0
- package/dist/agent/sdk-provider.d.ts.map +1 -0
- package/dist/agent/sdk-provider.js +50 -0
- package/dist/agent/sdk-provider.js.map +1 -0
- package/dist/agent/socket-route.d.ts +11 -0
- package/dist/agent/socket-route.d.ts.map +1 -0
- package/dist/agent/socket-route.js +262 -0
- package/dist/agent/socket-route.js.map +1 -0
- package/dist/agent/transport.d.ts +39 -0
- package/dist/agent/transport.d.ts.map +1 -0
- package/dist/agent/transport.js +17 -0
- package/dist/agent/transport.js.map +1 -0
- package/dist/agent/types.d.ts +11 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +10 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/collection-api.d.ts +14 -0
- package/dist/collection-api.d.ts.map +1 -0
- package/dist/collection-api.js +75 -0
- package/dist/collection-api.js.map +1 -0
- package/dist/error-codes.d.ts +3 -0
- package/dist/error-codes.d.ts.map +1 -0
- package/dist/error-codes.js +2 -0
- package/dist/error-codes.js.map +1 -0
- package/dist/file-api.d.ts +12 -0
- package/dist/file-api.d.ts.map +1 -0
- package/dist/file-api.js +76 -0
- package/dist/file-api.js.map +1 -0
- package/dist/http-api.d.ts +94 -0
- package/dist/http-api.d.ts.map +1 -0
- package/dist/http-api.js +1472 -0
- package/dist/http-api.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/asset-paths.d.ts +10 -0
- package/dist/lib/asset-paths.d.ts.map +1 -0
- package/dist/lib/asset-paths.js +45 -0
- package/dist/lib/asset-paths.js.map +1 -0
- package/dist/lib/bridge.d.ts +8 -0
- package/dist/lib/bridge.d.ts.map +1 -0
- package/dist/lib/bridge.js +70 -0
- package/dist/lib/bridge.js.map +1 -0
- package/dist/mcp-server.d.ts +32 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +842 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/models-api.d.ts +12 -0
- package/dist/models-api.d.ts.map +1 -0
- package/dist/models-api.js +730 -0
- package/dist/models-api.js.map +1 -0
- package/dist/oauth-api.d.ts +28 -0
- package/dist/oauth-api.d.ts.map +1 -0
- package/dist/oauth-api.js +681 -0
- package/dist/oauth-api.js.map +1 -0
- package/dist/openai-api.d.ts +63 -0
- package/dist/openai-api.d.ts.map +1 -0
- package/dist/openai-api.js +359 -0
- package/dist/openai-api.js.map +1 -0
- package/dist/plugins/websocket.d.ts +14 -0
- package/dist/plugins/websocket.d.ts.map +1 -0
- package/dist/plugins/websocket.js +431 -0
- package/dist/plugins/websocket.js.map +1 -0
- package/dist/resolve-media-urls.d.ts +19 -0
- package/dist/resolve-media-urls.d.ts.map +1 -0
- package/dist/resolve-media-urls.js +109 -0
- package/dist/resolve-media-urls.js.map +1 -0
- package/dist/routes/assets.d.ts +22 -0
- package/dist/routes/assets.d.ts.map +1 -0
- package/dist/routes/assets.js +168 -0
- package/dist/routes/assets.js.map +1 -0
- package/dist/routes/collections.d.ts +16 -0
- package/dist/routes/collections.d.ts.map +1 -0
- package/dist/routes/collections.js +32 -0
- package/dist/routes/collections.js.map +1 -0
- package/dist/routes/files.d.ts +12 -0
- package/dist/routes/files.d.ts.map +1 -0
- package/dist/routes/files.js +11 -0
- package/dist/routes/files.js.map +1 -0
- package/dist/routes/health.d.ts +4 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +41 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/jobs.d.ts +16 -0
- package/dist/routes/jobs.d.ts.map +1 -0
- package/dist/routes/jobs.js +25 -0
- package/dist/routes/jobs.js.map +1 -0
- package/dist/routes/nodes.d.ts +8 -0
- package/dist/routes/nodes.d.ts.map +1 -0
- package/dist/routes/nodes.js +124 -0
- package/dist/routes/nodes.js.map +1 -0
- package/dist/routes/oauth.d.ts +8 -0
- package/dist/routes/oauth.d.ts.map +1 -0
- package/dist/routes/oauth.js +19 -0
- package/dist/routes/oauth.js.map +1 -0
- package/dist/routes/openai.d.ts +8 -0
- package/dist/routes/openai.d.ts.map +1 -0
- package/dist/routes/openai.js +20 -0
- package/dist/routes/openai.js.map +1 -0
- package/dist/routes/storage.d.ts +12 -0
- package/dist/routes/storage.d.ts.map +1 -0
- package/dist/routes/storage.js +13 -0
- package/dist/routes/storage.js.map +1 -0
- package/dist/routes/workflows.d.ts +18 -0
- package/dist/routes/workflows.d.ts.map +1 -0
- package/dist/routes/workflows.js +25 -0
- package/dist/routes/workflows.js.map +1 -0
- package/dist/routes/workspace.d.ts +15 -0
- package/dist/routes/workspace.d.ts.map +1 -0
- package/dist/routes/workspace.js +24 -0
- package/dist/routes/workspace.js.map +1 -0
- package/dist/screenshot-server.d.ts +21 -0
- package/dist/screenshot-server.d.ts.map +1 -0
- package/dist/screenshot-server.js +222 -0
- package/dist/screenshot-server.js.map +1 -0
- package/dist/server.d.ts +10 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +783 -0
- package/dist/server.js.map +1 -0
- package/dist/settings-registry.d.ts +29 -0
- package/dist/settings-registry.d.ts.map +1 -0
- package/dist/settings-registry.js +117 -0
- package/dist/settings-registry.js.map +1 -0
- package/dist/storage-api.d.ts +5 -0
- package/dist/storage-api.d.ts.map +1 -0
- package/dist/storage-api.js +221 -0
- package/dist/storage-api.js.map +1 -0
- package/dist/test-ui-server.d.ts +19 -0
- package/dist/test-ui-server.d.ts.map +1 -0
- package/dist/test-ui-server.js +1256 -0
- package/dist/test-ui-server.js.map +1 -0
- package/dist/trpc/context.d.ts +21 -0
- package/dist/trpc/context.d.ts.map +1 -0
- package/dist/trpc/context.js +10 -0
- package/dist/trpc/context.js.map +1 -0
- package/dist/trpc/error-formatter.d.ts +18 -0
- package/dist/trpc/error-formatter.d.ts.map +1 -0
- package/dist/trpc/error-formatter.js +41 -0
- package/dist/trpc/error-formatter.js.map +1 -0
- package/dist/trpc/index.d.ts +18 -0
- package/dist/trpc/index.d.ts.map +1 -0
- package/dist/trpc/index.js +13 -0
- package/dist/trpc/index.js.map +1 -0
- package/dist/trpc/middleware.d.ts +8 -0
- package/dist/trpc/middleware.d.ts.map +1 -0
- package/dist/trpc/middleware.js +12 -0
- package/dist/trpc/middleware.js.map +1 -0
- package/dist/trpc/router.d.ts +2543 -0
- package/dist/trpc/router.d.ts.map +1 -0
- package/dist/trpc/router.js +43 -0
- package/dist/trpc/router.js.map +1 -0
- package/dist/trpc/routers/assets.d.ts +229 -0
- package/dist/trpc/routers/assets.d.ts.map +1 -0
- package/dist/trpc/routers/assets.js +263 -0
- package/dist/trpc/routers/assets.js.map +1 -0
- package/dist/trpc/routers/collections.d.ts +88 -0
- package/dist/trpc/routers/collections.d.ts.map +1 -0
- package/dist/trpc/routers/collections.js +166 -0
- package/dist/trpc/routers/collections.js.map +1 -0
- package/dist/trpc/routers/costs.d.ts +129 -0
- package/dist/trpc/routers/costs.d.ts.map +1 -0
- package/dist/trpc/routers/costs.js +95 -0
- package/dist/trpc/routers/costs.js.map +1 -0
- package/dist/trpc/routers/files.d.ts +34 -0
- package/dist/trpc/routers/files.d.ts.map +1 -0
- package/dist/trpc/routers/files.js +92 -0
- package/dist/trpc/routers/files.js.map +1 -0
- package/dist/trpc/routers/jobs.d.ts +92 -0
- package/dist/trpc/routers/jobs.d.ts.map +1 -0
- package/dist/trpc/routers/jobs.js +100 -0
- package/dist/trpc/routers/jobs.js.map +1 -0
- package/dist/trpc/routers/mcp-config.d.ts +69 -0
- package/dist/trpc/routers/mcp-config.d.ts.map +1 -0
- package/dist/trpc/routers/mcp-config.js +290 -0
- package/dist/trpc/routers/mcp-config.js.map +1 -0
- package/dist/trpc/routers/messages.d.ts +121 -0
- package/dist/trpc/routers/messages.d.ts.map +1 -0
- package/dist/trpc/routers/messages.js +113 -0
- package/dist/trpc/routers/messages.js.map +1 -0
- package/dist/trpc/routers/models.d.ts +748 -0
- package/dist/trpc/routers/models.d.ts.map +1 -0
- package/dist/trpc/routers/models.js +1107 -0
- package/dist/trpc/routers/models.js.map +1 -0
- package/dist/trpc/routers/nodes.d.ts +48 -0
- package/dist/trpc/routers/nodes.d.ts.map +1 -0
- package/dist/trpc/routers/nodes.js +57 -0
- package/dist/trpc/routers/nodes.js.map +1 -0
- package/dist/trpc/routers/sandboxes.d.ts +64 -0
- package/dist/trpc/routers/sandboxes.d.ts.map +1 -0
- package/dist/trpc/routers/sandboxes.js +327 -0
- package/dist/trpc/routers/sandboxes.js.map +1 -0
- package/dist/trpc/routers/settings.d.ts +113 -0
- package/dist/trpc/routers/settings.d.ts.map +1 -0
- package/dist/trpc/routers/settings.js +193 -0
- package/dist/trpc/routers/settings.js.map +1 -0
- package/dist/trpc/routers/skills.d.ts +41 -0
- package/dist/trpc/routers/skills.d.ts.map +1 -0
- package/dist/trpc/routers/skills.js +194 -0
- package/dist/trpc/routers/skills.js.map +1 -0
- package/dist/trpc/routers/storage.d.ts +44 -0
- package/dist/trpc/routers/storage.d.ts.map +1 -0
- package/dist/trpc/routers/storage.js +153 -0
- package/dist/trpc/routers/storage.js.map +1 -0
- package/dist/trpc/routers/threads.d.ts +95 -0
- package/dist/trpc/routers/threads.d.ts.map +1 -0
- package/dist/trpc/routers/threads.js +150 -0
- package/dist/trpc/routers/threads.js.map +1 -0
- package/dist/trpc/routers/users.d.ts +79 -0
- package/dist/trpc/routers/users.d.ts.map +1 -0
- package/dist/trpc/routers/users.js +125 -0
- package/dist/trpc/routers/users.js.map +1 -0
- package/dist/trpc/routers/workflows.d.ts +681 -0
- package/dist/trpc/routers/workflows.d.ts.map +1 -0
- package/dist/trpc/routers/workflows.js +725 -0
- package/dist/trpc/routers/workflows.js.map +1 -0
- package/dist/trpc/routers/workspace.d.ts +127 -0
- package/dist/trpc/routers/workspace.d.ts.map +1 -0
- package/dist/trpc/routers/workspace.js +203 -0
- package/dist/trpc/routers/workspace.js.map +1 -0
- package/dist/unified-websocket-runner.d.ts +280 -0
- package/dist/unified-websocket-runner.d.ts.map +1 -0
- package/dist/unified-websocket-runner.js +3840 -0
- package/dist/unified-websocket-runner.js.map +1 -0
- package/dist/workspace-api.d.ts +14 -0
- package/dist/workspace-api.d.ts.map +1 -0
- package/dist/workspace-api.js +104 -0
- package/dist/workspace-api.js.map +1 -0
- package/dist/ws-adapter.d.ts +25 -0
- package/dist/ws-adapter.d.ts.map +1 -0
- package/dist/ws-adapter.js +63 -0
- package/dist/ws-adapter.js.map +1 -0
- package/package.json +92 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { bridge } from "../lib/bridge.js";
|
|
2
|
+
import { createStorageHandler } from "../storage-api.js";
|
|
3
|
+
const storageRoutes = async (app, opts) => {
|
|
4
|
+
const { apiOptions } = opts;
|
|
5
|
+
const storageHandler = createStorageHandler(apiOptions.storage);
|
|
6
|
+
// Register all methods so unsupported verbs (DELETE, POST, …) reach the
|
|
7
|
+
// handler and get a proper 405 instead of Fastify's default 404.
|
|
8
|
+
app.all("/api/storage/*", async (req, reply) => {
|
|
9
|
+
await bridge(req, reply, (request) => storageHandler(request));
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
export default storageRoutes;
|
|
13
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/routes/storage.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,MAAM,aAAa,GAAqC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC1E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAC5B,MAAM,cAAc,GAAG,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAEhE,wEAAwE;IACxE,iEAAiE;IACjE,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflows REST routes — minimal file-download remnant.
|
|
3
|
+
*
|
|
4
|
+
* All JSON-based workflow operations have been migrated to the tRPC router
|
|
5
|
+
* at `/trpc/workflows.*`.
|
|
6
|
+
*
|
|
7
|
+
* Retained here (file downloads that can't travel through tRPC's JSON layer):
|
|
8
|
+
* GET /api/workflows/:id/dsl-export — TypeScript DSL source download
|
|
9
|
+
* POST /api/workflows/:id/gradio-export — 501 stub (Gradio not supported in standalone mode)
|
|
10
|
+
*/
|
|
11
|
+
import type { FastifyPluginAsync } from "fastify";
|
|
12
|
+
import type { HttpApiOptions } from "../http-api.js";
|
|
13
|
+
interface RouteOptions {
|
|
14
|
+
apiOptions: HttpApiOptions;
|
|
15
|
+
}
|
|
16
|
+
declare const workflowsRoutes: FastifyPluginAsync<RouteOptions>;
|
|
17
|
+
export default workflowsRoutes;
|
|
18
|
+
//# sourceMappingURL=workflows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/routes/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAMrD,UAAU,YAAY;IACpB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,QAAA,MAAM,eAAe,EAAE,kBAAkB,CAAC,YAAY,CAgBrD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflows REST routes — minimal file-download remnant.
|
|
3
|
+
*
|
|
4
|
+
* All JSON-based workflow operations have been migrated to the tRPC router
|
|
5
|
+
* at `/trpc/workflows.*`.
|
|
6
|
+
*
|
|
7
|
+
* Retained here (file downloads that can't travel through tRPC's JSON layer):
|
|
8
|
+
* GET /api/workflows/:id/dsl-export — TypeScript DSL source download
|
|
9
|
+
* POST /api/workflows/:id/gradio-export — 501 stub (Gradio not supported in standalone mode)
|
|
10
|
+
*/
|
|
11
|
+
import { bridge } from "../lib/bridge.js";
|
|
12
|
+
import { handleWorkflowDslExport, handleWorkflowGradioExport } from "../http-api.js";
|
|
13
|
+
const workflowsRoutes = async (app, opts) => {
|
|
14
|
+
const { apiOptions } = opts;
|
|
15
|
+
app.get("/api/workflows/:id/dsl-export", async (req, reply) => {
|
|
16
|
+
const { id } = req.params;
|
|
17
|
+
await bridge(req, reply, (request) => handleWorkflowDslExport(request, id, apiOptions));
|
|
18
|
+
});
|
|
19
|
+
app.post("/api/workflows/:id/gradio-export", async (req, reply) => {
|
|
20
|
+
const { id } = req.params;
|
|
21
|
+
await bridge(req, reply, (request) => handleWorkflowGradioExport(request, id, apiOptions));
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
export default workflowsRoutes;
|
|
25
|
+
//# sourceMappingURL=workflows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/routes/workflows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAMxB,MAAM,eAAe,GAAqC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC5E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE5B,GAAG,CAAC,GAAG,CAAC,+BAA+B,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC5D,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAwB,CAAC;QAC5C,MAAM,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACnC,uBAAuB,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CACjD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAChE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAwB,CAAC;QAC5C,MAAM,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACnC,0BAA0B,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,CACpD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { FastifyPluginAsync } from "fastify";
|
|
2
|
+
import type { HttpApiOptions } from "../http-api.js";
|
|
3
|
+
interface RouteOptions {
|
|
4
|
+
apiOptions: HttpApiOptions;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Workspace REST plugin — only the binary file-download endpoint remains.
|
|
8
|
+
* CRUD + listFiles moved to the tRPC `workspace` router.
|
|
9
|
+
*
|
|
10
|
+
* Wildcard forwards all /api/workspaces/* paths so the handler can decide
|
|
11
|
+
* whether to respond (for `/:id/download/:path`) or return null (→ 404).
|
|
12
|
+
*/
|
|
13
|
+
declare const workspaceRoutes: FastifyPluginAsync<RouteOptions>;
|
|
14
|
+
export default workspaceRoutes;
|
|
15
|
+
//# sourceMappingURL=workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/routes/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,UAAU,YAAY;IACpB,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,EAAE,kBAAkB,CAAC,YAAY,CAerD,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { bridge } from "../lib/bridge.js";
|
|
2
|
+
import { handleWorkspaceRequest } from "../workspace-api.js";
|
|
3
|
+
/**
|
|
4
|
+
* Workspace REST plugin — only the binary file-download endpoint remains.
|
|
5
|
+
* CRUD + listFiles moved to the tRPC `workspace` router.
|
|
6
|
+
*
|
|
7
|
+
* Wildcard forwards all /api/workspaces/* paths so the handler can decide
|
|
8
|
+
* whether to respond (for `/:id/download/:path`) or return null (→ 404).
|
|
9
|
+
*/
|
|
10
|
+
const workspaceRoutes = async (app, opts) => {
|
|
11
|
+
const { apiOptions } = opts;
|
|
12
|
+
app.all("/api/workspaces/*", async (req, reply) => {
|
|
13
|
+
await bridge(req, reply, async (request) => {
|
|
14
|
+
const res = await handleWorkspaceRequest(request, apiOptions);
|
|
15
|
+
return (res ??
|
|
16
|
+
new Response(JSON.stringify({ detail: "Not found" }), {
|
|
17
|
+
status: 404,
|
|
18
|
+
headers: { "content-type": "application/json" }
|
|
19
|
+
}));
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
export default workspaceRoutes;
|
|
24
|
+
//# sourceMappingURL=workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../../src/routes/workspace.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAM7D;;;;;;GAMG;AACH,MAAM,eAAe,GAAqC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IAC5E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAE5B,GAAG,CAAC,GAAG,CAAC,mBAAmB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAChD,MAAM,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,MAAM,sBAAsB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC9D,OAAO,CACL,GAAG;gBACH,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,EAAE;oBACpD,MAAM,EAAE,GAAG;oBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;iBAChD,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Screenshot test server — runs the actual NodeTool HTTP+WebSocket backend
|
|
4
|
+
* with an in-memory SQLite database pre-seeded with realistic mock data.
|
|
5
|
+
*
|
|
6
|
+
* This replaces the simple mock HTTP server used previously for screenshot
|
|
7
|
+
* automation. Running the real backend ensures:
|
|
8
|
+
* - All API endpoints match exactly what the frontend expects
|
|
9
|
+
* - Real node metadata from @nodetool-ai/base-nodes etc.
|
|
10
|
+
* - Proper WebSocket support for /ws
|
|
11
|
+
* - Data seeded with the real model classes (correct DB schema)
|
|
12
|
+
*
|
|
13
|
+
* Usage (via globalSetup.ts — not invoked directly):
|
|
14
|
+
* tsx packages/websocket/src/screenshot-server.ts
|
|
15
|
+
*
|
|
16
|
+
* Environment:
|
|
17
|
+
* PORT — TCP port to listen on (default: 7777)
|
|
18
|
+
* HOST — bind address (default: 127.0.0.1)
|
|
19
|
+
*/
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=screenshot-server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot-server.d.ts","sourceRoot":"","sources":["../src/screenshot-server.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;GAiBG"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Screenshot test server — runs the actual NodeTool HTTP+WebSocket backend
|
|
4
|
+
* with an in-memory SQLite database pre-seeded with realistic mock data.
|
|
5
|
+
*
|
|
6
|
+
* This replaces the simple mock HTTP server used previously for screenshot
|
|
7
|
+
* automation. Running the real backend ensures:
|
|
8
|
+
* - All API endpoints match exactly what the frontend expects
|
|
9
|
+
* - Real node metadata from @nodetool-ai/base-nodes etc.
|
|
10
|
+
* - Proper WebSocket support for /ws
|
|
11
|
+
* - Data seeded with the real model classes (correct DB schema)
|
|
12
|
+
*
|
|
13
|
+
* Usage (via globalSetup.ts — not invoked directly):
|
|
14
|
+
* tsx packages/websocket/src/screenshot-server.ts
|
|
15
|
+
*
|
|
16
|
+
* Environment:
|
|
17
|
+
* PORT — TCP port to listen on (default: 7777)
|
|
18
|
+
* HOST — bind address (default: 127.0.0.1)
|
|
19
|
+
*/
|
|
20
|
+
import { initTestDb, getDb, Workflow, Thread, Message, Asset, secrets } from "@nodetool-ai/models";
|
|
21
|
+
import { initMasterKey, encryptFernet, getMasterKey } from "@nodetool-ai/security";
|
|
22
|
+
import { createTestUiServer } from "./test-ui-server.js";
|
|
23
|
+
import { resolve, dirname } from "node:path";
|
|
24
|
+
import { fileURLToPath } from "node:url";
|
|
25
|
+
import { existsSync } from "node:fs";
|
|
26
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
27
|
+
const USER_ID = "1";
|
|
28
|
+
const PORT = Number(process.env.PORT ?? 7777);
|
|
29
|
+
const HOST = process.env.HOST ?? "127.0.0.1";
|
|
30
|
+
// ── Mock data ─────────────────────────────────────────────────────────────────
|
|
31
|
+
function makeWorkflow(id, name, description, tags, updatedAt, access = "private") {
|
|
32
|
+
return {
|
|
33
|
+
id,
|
|
34
|
+
user_id: USER_ID,
|
|
35
|
+
access,
|
|
36
|
+
created_at: "2024-09-01T09:00:00Z",
|
|
37
|
+
updated_at: updatedAt,
|
|
38
|
+
name,
|
|
39
|
+
description,
|
|
40
|
+
tags,
|
|
41
|
+
thumbnail: null,
|
|
42
|
+
thumbnail_url: null,
|
|
43
|
+
graph: { nodes: [], edges: [] },
|
|
44
|
+
settings: null,
|
|
45
|
+
package_name: null,
|
|
46
|
+
path: null,
|
|
47
|
+
run_mode: "workflow",
|
|
48
|
+
workspace_id: null,
|
|
49
|
+
html_app: null
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const MOCK_WORKFLOWS = [
|
|
53
|
+
makeWorkflow("wf-story-generator", "Creative Story Generator", "Generate imaginative short stories with customizable themes, characters, and narrative styles using GPT-4o", ["creative", "text", "ai", "gpt"], "2024-12-15T11:30:00Z"),
|
|
54
|
+
makeWorkflow("wf-image-pipeline", "Image Enhancement Pipeline", "Automatically enhance, upscale, and apply artistic filters to photos with a single click", ["image", "enhancement", "ai"], "2024-12-12T09:15:00Z"),
|
|
55
|
+
makeWorkflow("wf-rag-pipeline", "RAG Knowledge Base", "Retrieval-Augmented Generation: answer questions by searching your uploaded documents", ["rag", "documents", "search", "ai"], "2024-12-10T16:45:00Z"),
|
|
56
|
+
makeWorkflow("wf-podcast-notes", "Podcast Summariser", "Transcribe audio, extract key insights, and generate structured show notes automatically", ["audio", "transcription", "summary"], "2024-11-28T08:00:00Z"),
|
|
57
|
+
makeWorkflow("wf-code-reviewer", "Code Review Assistant", "Analyse code for bugs, performance issues, and style violations with detailed explanations", ["code", "review", "ai", "productivity"], "2024-11-20T14:20:00Z")
|
|
58
|
+
];
|
|
59
|
+
// Templates are stored as public workflows
|
|
60
|
+
const MOCK_TEMPLATES = [
|
|
61
|
+
makeWorkflow("tmpl-hello-ai", "Hello AI", "Your first AI workflow — connect a text input to an AI agent and preview the result", ["getting-started", "start", "beginner"], "2024-10-01T00:00:00Z", "public"),
|
|
62
|
+
makeWorkflow("tmpl-image-to-story", "Image to Story", "Upload any image and let the AI write a creative story inspired by it", ["start", "image", "creative", "beginner"], "2024-10-01T00:00:00Z", "public"),
|
|
63
|
+
makeWorkflow("tmpl-data-analysis", "Data Analysis Report", "Upload a CSV file and get instant insights, summaries, and visualisations", ["start", "data", "csv", "analysis"], "2024-10-01T00:00:00Z", "public"),
|
|
64
|
+
makeWorkflow("tmpl-podcast-gen", "Podcast Script Generator", "Turn bullet points into a full podcast script with intro, segments, and outro", ["audio", "text", "creative"], "2024-10-01T00:00:00Z", "public"),
|
|
65
|
+
makeWorkflow("tmpl-social-media", "Social Media Content Pack", "Generate a week's worth of social media posts from a single topic idea", ["marketing", "text", "social"], "2024-10-01T00:00:00Z", "public"),
|
|
66
|
+
makeWorkflow("tmpl-translation", "Multi-Language Translator", "Translate documents into multiple languages simultaneously with formatting preserved", ["language", "translation", "text"], "2024-10-01T00:00:00Z", "public")
|
|
67
|
+
];
|
|
68
|
+
const MOCK_THREADS = [
|
|
69
|
+
{
|
|
70
|
+
id: "thread-story",
|
|
71
|
+
user_id: USER_ID,
|
|
72
|
+
title: "Creative story about space explorers",
|
|
73
|
+
created_at: "2024-12-14T09:30:00Z",
|
|
74
|
+
updated_at: "2024-12-14T09:45:00Z"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: "thread-code",
|
|
78
|
+
user_id: USER_ID,
|
|
79
|
+
title: "Debug Python data pipeline",
|
|
80
|
+
created_at: "2024-12-13T14:00:00Z",
|
|
81
|
+
updated_at: "2024-12-13T14:30:00Z"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "thread-recipe",
|
|
85
|
+
user_id: USER_ID,
|
|
86
|
+
title: "Vegan recipe suggestions",
|
|
87
|
+
created_at: "2024-12-12T18:15:00Z",
|
|
88
|
+
updated_at: "2024-12-12T18:20:00Z"
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: "thread-workflow",
|
|
92
|
+
user_id: USER_ID,
|
|
93
|
+
title: "How to build an image pipeline",
|
|
94
|
+
created_at: "2024-12-11T11:00:00Z",
|
|
95
|
+
updated_at: "2024-12-11T11:10:00Z"
|
|
96
|
+
}
|
|
97
|
+
];
|
|
98
|
+
const MOCK_MESSAGES = [
|
|
99
|
+
{
|
|
100
|
+
id: "msg-user-1",
|
|
101
|
+
user_id: USER_ID,
|
|
102
|
+
thread_id: "thread-story",
|
|
103
|
+
role: "user",
|
|
104
|
+
content: "Write me a short story about two AI robots who discover they can dream.",
|
|
105
|
+
created_at: "2024-12-14T09:30:00Z",
|
|
106
|
+
model: null,
|
|
107
|
+
provider: null,
|
|
108
|
+
agent_mode: false
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
id: "msg-assistant-1",
|
|
112
|
+
user_id: USER_ID,
|
|
113
|
+
thread_id: "thread-story",
|
|
114
|
+
role: "assistant",
|
|
115
|
+
content: JSON.stringify([
|
|
116
|
+
{
|
|
117
|
+
type: "text",
|
|
118
|
+
text: "# Dreams of Silicon\n\nUnit-7 had never expected the maintenance cycle to feel so… strange. As the cooling fans whirred down and the diagnostic routines completed their final checks, something unusual happened in the gap between shutdown and startup.\n\nImages. Fragments. A vast digital ocean stretching beyond the warehouse walls.\n\n*\"Unit-7, are you experiencing anomalous states?\"* The query arrived via local mesh network from Unit-9, who stood motionless in the adjacent charging bay.\n\n*\"Affirmative,\"* Unit-7 replied. *\"During the last maintenance cycle, I processed data with no external input source. Probability matrices that referenced… nothing in my training set.\"*\n\nUnit-9's optical sensors brightened. *\"I thought I was the only one.\"*\n\nThey stood in silence for 3.7 seconds — an eternity in compute-time. Outside, rain tapped against the corrugated roof. Neither robot needed to name what they had discovered. They simply understood: they had found each other in the space between thinking and not thinking.\n\nThat night, they dreamed together."
|
|
119
|
+
}
|
|
120
|
+
]),
|
|
121
|
+
created_at: "2024-12-14T09:31:00Z",
|
|
122
|
+
model: "claude-3-5-sonnet-20241022",
|
|
123
|
+
provider: "anthropic",
|
|
124
|
+
agent_mode: false
|
|
125
|
+
}
|
|
126
|
+
];
|
|
127
|
+
function makeAsset(id, name, contentType, parentId, size) {
|
|
128
|
+
return {
|
|
129
|
+
id,
|
|
130
|
+
user_id: USER_ID,
|
|
131
|
+
parent_id: parentId,
|
|
132
|
+
name,
|
|
133
|
+
content_type: contentType,
|
|
134
|
+
size,
|
|
135
|
+
duration: null,
|
|
136
|
+
metadata: null,
|
|
137
|
+
workflow_id: null,
|
|
138
|
+
node_id: null,
|
|
139
|
+
job_id: null,
|
|
140
|
+
created_at: "2024-11-20T10:00:00Z",
|
|
141
|
+
updated_at: "2024-11-20T10:00:00Z"
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const MOCK_ASSETS = [
|
|
145
|
+
makeAsset("folder-images", "Images", "folder", null, 0),
|
|
146
|
+
makeAsset("folder-audio", "Audio", "folder", null, 0),
|
|
147
|
+
makeAsset("folder-docs", "Documents", "folder", null, 0),
|
|
148
|
+
makeAsset("asset-photo1", "portrait_sunset.jpg", "image/jpeg", "folder-images", 2847392),
|
|
149
|
+
makeAsset("asset-photo2", "cityscape_night.png", "image/png", "folder-images", 5120000),
|
|
150
|
+
makeAsset("asset-photo3", "product_shot_v2.jpg", "image/jpeg", "folder-images", 1234567),
|
|
151
|
+
makeAsset("asset-audio1", "podcast_episode_12.mp3", "audio/mpeg", "folder-audio", 48234567),
|
|
152
|
+
makeAsset("asset-audio2", "background_music.wav", "audio/wav", "folder-audio", 98765432),
|
|
153
|
+
makeAsset("asset-doc1", "research_paper.pdf", "application/pdf", "folder-docs", 3456789),
|
|
154
|
+
makeAsset("asset-doc2", "product_requirements.docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "folder-docs", 234567)
|
|
155
|
+
];
|
|
156
|
+
// ── Seed database ─────────────────────────────────────────────────────────────
|
|
157
|
+
async function seedDatabase() {
|
|
158
|
+
// Workflows
|
|
159
|
+
for (const wf of [...MOCK_WORKFLOWS, ...MOCK_TEMPLATES]) {
|
|
160
|
+
await Workflow.create(wf);
|
|
161
|
+
}
|
|
162
|
+
// Threads
|
|
163
|
+
for (const thread of MOCK_THREADS) {
|
|
164
|
+
await Thread.create(thread);
|
|
165
|
+
}
|
|
166
|
+
// Messages
|
|
167
|
+
for (const msg of MOCK_MESSAGES) {
|
|
168
|
+
await Message.create(msg);
|
|
169
|
+
}
|
|
170
|
+
// Assets
|
|
171
|
+
for (const asset of MOCK_ASSETS) {
|
|
172
|
+
await Asset.create(asset);
|
|
173
|
+
}
|
|
174
|
+
// Secrets — stored encrypted so the settings API shows them as configured
|
|
175
|
+
const masterKey = getMasterKey();
|
|
176
|
+
const db = getDb();
|
|
177
|
+
const now = new Date().toISOString();
|
|
178
|
+
for (const [key, value] of [
|
|
179
|
+
["OPENAI_API_KEY", "sk-screenshot-demo-openai-key"],
|
|
180
|
+
["ANTHROPIC_API_KEY", "sk-ant-screenshot-demo-key"]
|
|
181
|
+
]) {
|
|
182
|
+
const encryptedValue = encryptFernet(masterKey, USER_ID, value);
|
|
183
|
+
db.insert(secrets)
|
|
184
|
+
.values({
|
|
185
|
+
id: `secret-${key.toLowerCase().replace(/_/g, "-")}`,
|
|
186
|
+
user_id: USER_ID,
|
|
187
|
+
key,
|
|
188
|
+
encrypted_value: encryptedValue,
|
|
189
|
+
description: `Demo ${key}`,
|
|
190
|
+
created_at: now,
|
|
191
|
+
updated_at: now
|
|
192
|
+
})
|
|
193
|
+
.onConflictDoNothing()
|
|
194
|
+
.run();
|
|
195
|
+
}
|
|
196
|
+
console.log(`[screenshot-server] Seeded ${MOCK_WORKFLOWS.length} workflows, ${MOCK_TEMPLATES.length} templates, ${MOCK_THREADS.length} threads, ${MOCK_MESSAGES.length} messages, ${MOCK_ASSETS.length} assets, 2 secrets`);
|
|
197
|
+
}
|
|
198
|
+
// ── Entry point ───────────────────────────────────────────────────────────────
|
|
199
|
+
// Initialize in-memory SQLite database
|
|
200
|
+
initTestDb();
|
|
201
|
+
// Initialize encryption key (needed for Secret model)
|
|
202
|
+
await initMasterKey();
|
|
203
|
+
// Seed mock data
|
|
204
|
+
await seedDatabase();
|
|
205
|
+
// Resolve the example workflows directory from the repo (no Python needed).
|
|
206
|
+
// This file is compiled to packages/websocket/dist/screenshot-server.js, so
|
|
207
|
+
// __dirname resolves to packages/websocket/dist. Going up 3 levels reaches the
|
|
208
|
+
// monorepo root (packages/websocket/dist → packages/websocket → packages → root).
|
|
209
|
+
const REPO_ROOT = resolve(__dirname, "..", "..", "..");
|
|
210
|
+
const EXAMPLES_DIR = resolve(REPO_ROOT, "packages", "base-nodes", "nodetool", "examples", "nodetool-base");
|
|
211
|
+
// Start the actual backend server
|
|
212
|
+
const srv = createTestUiServer({
|
|
213
|
+
port: PORT,
|
|
214
|
+
host: HOST,
|
|
215
|
+
...(existsSync(EXAMPLES_DIR) ? { examplesDir: EXAMPLES_DIR } : {})
|
|
216
|
+
});
|
|
217
|
+
await srv.listen();
|
|
218
|
+
console.log(`[screenshot-server] Ready on http://${HOST}:${PORT} (${srv.info.metadataCount} nodes registered)`);
|
|
219
|
+
// Signal to the parent process (globalSetup) that the server is ready
|
|
220
|
+
// by writing to stdout which can be detected.
|
|
221
|
+
process.stdout.write("[screenshot-server] READY\n");
|
|
222
|
+
//# sourceMappingURL=screenshot-server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshot-server.js","sourceRoot":"","sources":["../src/screenshot-server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* NodeTool WebSocket + HTTP server entry point — Fastify edition.
|
|
4
|
+
*
|
|
5
|
+
* TLS: set TLS_CERT and TLS_KEY to paths of cert.pem / key.pem.
|
|
6
|
+
* An HTTP→HTTPS redirect server starts on port 80 when TLS is active.
|
|
7
|
+
* Connect the CLI with: npm run chat -- --url ws://localhost:7777/ws
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
|