agent-orcha 0.0.7 → 0.0.8
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 +86 -28
- package/dist/lib/agents/agent-executor.d.ts.map +1 -1
- package/dist/lib/agents/agent-executor.js +23 -7
- package/dist/lib/agents/agent-executor.js.map +1 -1
- package/dist/lib/agents/react-loop.d.ts.map +1 -1
- package/dist/lib/agents/react-loop.js +27 -0
- package/dist/lib/agents/react-loop.js.map +1 -1
- package/dist/lib/functions/simple-function-wrapper.js +3 -3
- package/dist/lib/functions/simple-function-wrapper.js.map +1 -1
- package/dist/lib/knowledge/knowledge-store.d.ts +1 -1
- package/dist/lib/knowledge/knowledge-store.d.ts.map +1 -1
- package/dist/lib/knowledge/knowledge-store.js +25 -4
- package/dist/lib/knowledge/knowledge-store.js.map +1 -1
- package/dist/lib/knowledge/loaders/file-loaders.d.ts +0 -1
- package/dist/lib/knowledge/loaders/file-loaders.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/file-loaders.js +7 -15
- package/dist/lib/knowledge/loaders/file-loaders.js.map +1 -1
- package/dist/lib/knowledge/sqlite-store.d.ts.map +1 -1
- package/dist/lib/knowledge/sqlite-store.js +19 -10
- package/dist/lib/knowledge/sqlite-store.js.map +1 -1
- package/dist/lib/knowledge/types.d.ts +13 -13
- package/dist/lib/llm/index.d.ts +1 -1
- package/dist/lib/llm/index.d.ts.map +1 -1
- package/dist/lib/llm/index.js +1 -1
- package/dist/lib/llm/index.js.map +1 -1
- package/dist/lib/llm/llm-config.d.ts +51 -8
- package/dist/lib/llm/llm-config.d.ts.map +1 -1
- package/dist/lib/llm/llm-config.js +161 -17
- package/dist/lib/llm/llm-config.js.map +1 -1
- package/dist/lib/llm/llm-factory.d.ts +1 -2
- package/dist/lib/llm/llm-factory.d.ts.map +1 -1
- package/dist/lib/llm/llm-factory.js +41 -8
- package/dist/lib/llm/llm-factory.js.map +1 -1
- package/dist/lib/llm/providers/openai-chat-model.d.ts +10 -0
- package/dist/lib/llm/providers/openai-chat-model.d.ts.map +1 -1
- package/dist/lib/llm/providers/openai-chat-model.js +37 -5
- package/dist/lib/llm/providers/openai-chat-model.js.map +1 -1
- package/dist/lib/llm/providers/openai-embeddings.d.ts.map +1 -1
- package/dist/lib/llm/providers/openai-embeddings.js +41 -10
- package/dist/lib/llm/providers/openai-embeddings.js.map +1 -1
- package/dist/lib/local-llm/binary-manager.d.ts +66 -0
- package/dist/lib/local-llm/binary-manager.d.ts.map +1 -0
- package/dist/lib/local-llm/binary-manager.js +441 -0
- package/dist/lib/local-llm/binary-manager.js.map +1 -0
- package/dist/lib/local-llm/engine-interface.d.ts +47 -0
- package/dist/lib/local-llm/engine-interface.d.ts.map +1 -0
- package/dist/lib/local-llm/engine-interface.js +2 -0
- package/dist/lib/local-llm/engine-interface.js.map +1 -0
- package/dist/lib/local-llm/engine-registry.d.ts +20 -0
- package/dist/lib/local-llm/engine-registry.d.ts.map +1 -0
- package/dist/lib/local-llm/engine-registry.js +56 -0
- package/dist/lib/local-llm/engine-registry.js.map +1 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts +31 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.d.ts.map +1 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.js +164 -0
- package/dist/lib/local-llm/engines/llama-cpp-engine.js.map +1 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts +31 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.d.ts.map +1 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.js +161 -0
- package/dist/lib/local-llm/engines/mlx-serve-engine.js.map +1 -0
- package/dist/lib/local-llm/gguf-reader.d.ts +20 -0
- package/dist/lib/local-llm/gguf-reader.d.ts.map +1 -0
- package/dist/lib/local-llm/gguf-reader.js +190 -0
- package/dist/lib/local-llm/gguf-reader.js.map +1 -0
- package/dist/lib/local-llm/index.d.ts +9 -0
- package/dist/lib/local-llm/index.d.ts.map +1 -0
- package/dist/lib/local-llm/index.js +6 -0
- package/dist/lib/local-llm/index.js.map +1 -0
- package/dist/lib/local-llm/llama-server-process.d.ts +42 -0
- package/dist/lib/local-llm/llama-server-process.d.ts.map +1 -0
- package/dist/lib/local-llm/llama-server-process.js +237 -0
- package/dist/lib/local-llm/llama-server-process.js.map +1 -0
- package/dist/lib/local-llm/mlx-binary-manager.d.ts +33 -0
- package/dist/lib/local-llm/mlx-binary-manager.d.ts.map +1 -0
- package/dist/lib/local-llm/mlx-binary-manager.js +211 -0
- package/dist/lib/local-llm/mlx-binary-manager.js.map +1 -0
- package/dist/lib/local-llm/mlx-server-process.d.ts +26 -0
- package/dist/lib/local-llm/mlx-server-process.d.ts.map +1 -0
- package/dist/lib/local-llm/mlx-server-process.js +210 -0
- package/dist/lib/local-llm/mlx-server-process.js.map +1 -0
- package/dist/lib/local-llm/model-manager.d.ts +33 -0
- package/dist/lib/local-llm/model-manager.d.ts.map +1 -0
- package/dist/lib/local-llm/model-manager.js +591 -0
- package/dist/lib/local-llm/model-manager.js.map +1 -0
- package/dist/lib/local-llm/types.d.ts +51 -0
- package/dist/lib/local-llm/types.d.ts.map +1 -0
- package/dist/lib/local-llm/types.js +2 -0
- package/dist/lib/local-llm/types.js.map +1 -0
- package/dist/lib/logger.d.ts +2 -0
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/logger.js +68 -5
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/orchestrator.d.ts +9 -0
- package/dist/lib/orchestrator.d.ts.map +1 -1
- package/dist/lib/orchestrator.js +151 -3
- package/dist/lib/orchestrator.js.map +1 -1
- package/dist/lib/sandbox/cdp-client.d.ts +2 -1
- package/dist/lib/sandbox/cdp-client.d.ts.map +1 -1
- package/dist/lib/sandbox/cdp-client.js +33 -7
- package/dist/lib/sandbox/cdp-client.js.map +1 -1
- package/dist/lib/sandbox/index.d.ts +1 -0
- package/dist/lib/sandbox/index.d.ts.map +1 -1
- package/dist/lib/sandbox/index.js +1 -0
- package/dist/lib/sandbox/index.js.map +1 -1
- package/dist/lib/sandbox/page-readiness.d.ts.map +1 -1
- package/dist/lib/sandbox/page-readiness.js +33 -0
- package/dist/lib/sandbox/page-readiness.js.map +1 -1
- package/dist/lib/sandbox/sandbox-browser.d.ts.map +1 -1
- package/dist/lib/sandbox/sandbox-browser.js +14 -1
- package/dist/lib/sandbox/sandbox-browser.js.map +1 -1
- package/dist/lib/sandbox/sandbox-container.d.ts +39 -0
- package/dist/lib/sandbox/sandbox-container.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-container.js +176 -0
- package/dist/lib/sandbox/sandbox-container.js.map +1 -0
- package/dist/lib/sandbox/sandbox-file.d.ts.map +1 -1
- package/dist/lib/sandbox/sandbox-file.js +5 -4
- package/dist/lib/sandbox/sandbox-file.js.map +1 -1
- package/dist/lib/sandbox/sandbox-shell.d.ts +2 -1
- package/dist/lib/sandbox/sandbox-shell.d.ts.map +1 -1
- package/dist/lib/sandbox/sandbox-shell.js +42 -24
- package/dist/lib/sandbox/sandbox-shell.js.map +1 -1
- package/dist/lib/sandbox/sandbox-web.d.ts.map +1 -1
- package/dist/lib/sandbox/sandbox-web.js +27 -2
- package/dist/lib/sandbox/sandbox-web.js.map +1 -1
- package/dist/lib/sandbox/vision-browser.d.ts.map +1 -1
- package/dist/lib/sandbox/vision-browser.js +9 -0
- package/dist/lib/sandbox/vision-browser.js.map +1 -1
- package/dist/lib/sea/app-window.d.ts +7 -0
- package/dist/lib/sea/app-window.d.ts.map +1 -0
- package/dist/lib/sea/app-window.js +95 -0
- package/dist/lib/sea/app-window.js.map +1 -0
- package/dist/lib/sea/bootstrap.d.ts +18 -0
- package/dist/lib/sea/bootstrap.d.ts.map +1 -0
- package/dist/lib/sea/bootstrap.js +103 -0
- package/dist/lib/sea/bootstrap.js.map +1 -0
- package/dist/lib/sea/sqlite-vec-shim.d.ts +3 -0
- package/dist/lib/sea/sqlite-vec-shim.d.ts.map +1 -0
- package/dist/lib/sea/sqlite-vec-shim.js +10 -0
- package/dist/lib/sea/sqlite-vec-shim.js.map +1 -0
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts +1 -2
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js +7 -13
- package/dist/lib/tools/built-in/knowledge-entity-lookup.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js +2 -4
- package/dist/lib/tools/built-in/knowledge-graph-schema.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-search.tool.js +4 -4
- package/dist/lib/tools/built-in/knowledge-search.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-sql.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-sql.tool.js +70 -37
- package/dist/lib/tools/built-in/knowledge-sql.tool.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-tools-factory.js +2 -2
- package/dist/lib/tools/built-in/knowledge-tools-factory.js.map +1 -1
- package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts +1 -2
- package/dist/lib/tools/built-in/knowledge-traverse.tool.d.ts.map +1 -1
- package/dist/lib/tools/built-in/knowledge-traverse.tool.js +5 -11
- package/dist/lib/tools/built-in/knowledge-traverse.tool.js.map +1 -1
- package/dist/lib/tools/workspace/workspace-tools.d.ts.map +1 -1
- package/dist/lib/tools/workspace/workspace-tools.js +5 -4
- package/dist/lib/tools/workspace/workspace-tools.js.map +1 -1
- package/dist/lib/types/tool-factory.d.ts.map +1 -1
- package/dist/lib/types/tool-factory.js +9 -2
- package/dist/lib/types/tool-factory.js.map +1 -1
- package/dist/lib/utils/document-extract.d.ts +10 -0
- package/dist/lib/utils/document-extract.d.ts.map +1 -0
- package/dist/lib/utils/document-extract.js +149 -0
- package/dist/lib/utils/document-extract.js.map +1 -0
- package/dist/lib/workflows/react-workflow-executor.d.ts.map +1 -1
- package/dist/lib/workflows/react-workflow-executor.js +20 -14
- package/dist/lib/workflows/react-workflow-executor.js.map +1 -1
- package/dist/lib/workflows/types.d.ts +71 -45
- package/dist/lib/workflows/types.d.ts.map +1 -1
- package/dist/lib/workflows/types.js +10 -0
- package/dist/lib/workflows/types.js.map +1 -1
- package/dist/public/assets/logo.png +0 -0
- package/dist/public/chat.html +3 -78
- package/dist/public/index.html +3 -330
- package/dist/public/src/components/AgentComposer.js +132 -132
- package/dist/public/src/components/AgentsView.js +1231 -350
- package/dist/public/src/components/AppRoot.js +101 -39
- package/dist/public/src/components/GraphView.js +11 -13
- package/dist/public/src/components/IdeView.js +133 -98
- package/dist/public/src/components/KnowledgeView.js +94 -130
- package/dist/public/src/components/LlmView.js +15 -19
- package/dist/public/src/components/LocalLlmView.js +2440 -0
- package/dist/public/src/components/LogViewer.js +155 -0
- package/dist/public/src/components/McpView.js +41 -49
- package/dist/public/src/components/MonitorView.js +79 -126
- package/dist/public/src/components/NavBar.js +16 -26
- package/dist/public/src/components/StandaloneChat.js +136 -150
- package/dist/public/src/services/ApiService.js +196 -2
- package/dist/public/src/services/SessionStore.js +6 -3
- package/dist/public/src/services/StreamManager.js +183 -0
- package/dist/public/src/store.js +1 -1
- package/dist/public/src/utils/card.js +21 -0
- package/dist/public/src/utils/markdown.js +1 -7
- package/dist/public/styles.css +2777 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -1
- package/dist/src/cli/commands/init.js +7 -1
- package/dist/src/cli/commands/init.js.map +1 -1
- package/dist/src/cli/commands/start.d.ts.map +1 -1
- package/dist/src/cli/commands/start.js +28 -5
- package/dist/src/cli/commands/start.js.map +1 -1
- package/dist/src/cli/index.js +13 -2
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/index.js +7 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/routes/agents.route.d.ts.map +1 -1
- package/dist/src/routes/agents.route.js +2 -0
- package/dist/src/routes/agents.route.js.map +1 -1
- package/dist/src/routes/chat.route.d.ts.map +1 -1
- package/dist/src/routes/chat.route.js +3 -2
- package/dist/src/routes/chat.route.js.map +1 -1
- package/dist/src/routes/llm.route.d.ts.map +1 -1
- package/dist/src/routes/llm.route.js +227 -7
- package/dist/src/routes/llm.route.js.map +1 -1
- package/dist/src/routes/local-llm.route.d.ts +3 -0
- package/dist/src/routes/local-llm.route.d.ts.map +1 -0
- package/dist/src/routes/local-llm.route.js +688 -0
- package/dist/src/routes/local-llm.route.js.map +1 -0
- package/dist/src/routes/logs.route.d.ts +3 -0
- package/dist/src/routes/logs.route.d.ts.map +1 -0
- package/dist/src/routes/logs.route.js +24 -0
- package/dist/src/routes/logs.route.js.map +1 -0
- package/dist/src/routes/vnc.route.d.ts +10 -1
- package/dist/src/routes/vnc.route.d.ts.map +1 -1
- package/dist/src/routes/vnc.route.js +37 -12
- package/dist/src/routes/vnc.route.js.map +1 -1
- package/dist/src/routes/workflows.route.d.ts.map +1 -1
- package/dist/src/routes/workflows.route.js +24 -0
- package/dist/src/routes/workflows.route.js.map +1 -1
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +24 -2
- package/dist/src/server.js.map +1 -1
- package/dist/templates/agents/actor.agent.yaml +34 -0
- package/dist/templates/agents/architect.agent.yaml +0 -1
- package/dist/templates/agents/chatbot.agent.yaml +0 -1
- package/dist/templates/agents/corporate.agent.yaml +0 -1
- package/dist/templates/agents/functions.agent.yaml +29 -0
- package/dist/templates/agents/investment-analyst.agent.yaml +0 -1
- package/dist/templates/agents/music-librarian.agent.yaml +3 -27
- package/dist/templates/agents/network-security.agent.yaml +0 -1
- package/dist/templates/agents/transport-security.agent.yaml +0 -1
- package/dist/templates/agents/web-engineer.agent.yaml +3 -4
- package/dist/templates/agents/web-pilot.agent.yaml +0 -1
- package/dist/templates/knowledge/patient-records.knowledge.yaml +20 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_0.pdf +0 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_1.pdf +0 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_10.pdf +0 -0
- package/dist/templates/knowledge/pdf-patients/PDF_Deid_Deidentification_11.pdf +0 -0
- package/dist/templates/knowledge/web-docs.knowledge.yaml +1 -1
- package/dist/templates/llm.json +73 -10
- package/dist/templates/skills/orcha-builder/SKILL.md +56 -3
- package/dist/templates/workflows/example.workflow.yaml +27 -35
- package/dist/templates/workflows/react-example.workflow.yaml +14 -19
- package/dist/templates/workflows/team-chat.workflow.yaml +47 -0
- package/package.json +14 -6
- package/dist/public/src/components/SkillsView.js +0 -137
- package/dist/public/src/components/WorkflowsView.js +0 -568
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-llm.route.js","sourceRoot":"","sources":["../../../src/routes/local-llm.route.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.route.d.ts","sourceRoot":"","sources":["../../../src/routes/logs.route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,eAAO,MAAM,UAAU,EAAE,kBAyBxB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { getRecentLogs, subscribeToLogs, unsubscribeFromLogs } from "../../lib/logger.js";
|
|
2
|
+
export const logsRoutes = async (fastify) => {
|
|
3
|
+
// SSE stream for real-time logs
|
|
4
|
+
fastify.get('/stream', async (request, reply) => {
|
|
5
|
+
reply.raw.setHeader('Content-Type', 'text/event-stream');
|
|
6
|
+
reply.raw.setHeader('Cache-Control', 'no-cache');
|
|
7
|
+
reply.raw.setHeader('Connection', 'keep-alive');
|
|
8
|
+
// Send recent logs as backfill
|
|
9
|
+
const recent = getRecentLogs(100);
|
|
10
|
+
for (const entry of recent) {
|
|
11
|
+
reply.raw.write(`data: ${JSON.stringify(entry)}\n\n`);
|
|
12
|
+
}
|
|
13
|
+
// Stream new logs as they arrive
|
|
14
|
+
const onLog = (entry) => {
|
|
15
|
+
reply.raw.write(`data: ${JSON.stringify(entry)}\n\n`);
|
|
16
|
+
};
|
|
17
|
+
subscribeToLogs(onLog);
|
|
18
|
+
request.raw.on('close', () => {
|
|
19
|
+
unsubscribeFromLogs(onLog);
|
|
20
|
+
reply.raw.end();
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=logs.route.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.route.js","sourceRoot":"","sources":["../../../src/routes/logs.route.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,EAAiB,MAAM,qBAAqB,CAAC;AAEzG,MAAM,CAAC,MAAM,UAAU,GAAuB,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9D,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC9C,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;QACzD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QACjD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;QAEhD,+BAA+B;QAC/B,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC;QAED,iCAAiC;QACjC,MAAM,KAAK,GAAG,CAAC,KAAe,EAAE,EAAE;YAChC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,eAAe,CAAC,KAAK,CAAC,CAAC;QAEvB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,3 +1,12 @@
|
|
|
1
1
|
import type { FastifyPluginAsync } from 'fastify';
|
|
2
|
-
export
|
|
2
|
+
export interface VncRouteDeps {
|
|
3
|
+
existsSync?: (path: string) => boolean;
|
|
4
|
+
WebSocketServerClass?: new (opts: any) => any;
|
|
5
|
+
WebSocketClass?: {
|
|
6
|
+
new (url: string, opts?: any): any;
|
|
7
|
+
OPEN?: number;
|
|
8
|
+
};
|
|
9
|
+
staticPlugin?: any;
|
|
10
|
+
}
|
|
11
|
+
export declare const vncRoutes: FastifyPluginAsync<VncRouteDeps>;
|
|
3
12
|
//# sourceMappingURL=vnc.route.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vnc.route.d.ts","sourceRoot":"","sources":["../../../src/routes/vnc.route.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAOlD,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"vnc.route.d.ts","sourceRoot":"","sources":["../../../src/routes/vnc.route.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAOlD,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,oBAAoB,CAAC,EAAE,KAAK,IAAI,EAAE,GAAG,KAAK,GAAG,CAAC;IAC9C,cAAc,CAAC,EAAE;QAAE,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvE,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,SAAS,EAAE,kBAAkB,CAAC,YAAY,CA2EtD,CAAC"}
|
|
@@ -3,38 +3,63 @@ import fastifyStatic from '@fastify/static';
|
|
|
3
3
|
import { WebSocketServer, WebSocket } from 'ws';
|
|
4
4
|
const NOVNC_PATH = '/usr/share/novnc';
|
|
5
5
|
const WEBSOCKIFY_PORT = 6080;
|
|
6
|
-
export const vncRoutes = async (fastify) => {
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export const vncRoutes = async (fastify, opts) => {
|
|
7
|
+
const _existsSync = opts.existsSync ?? fs.existsSync;
|
|
8
|
+
const _WebSocketServer = opts.WebSocketServerClass ?? WebSocketServer;
|
|
9
|
+
const _WebSocket = opts.WebSocketClass ?? WebSocket;
|
|
10
|
+
const _staticPlugin = opts.staticPlugin ?? fastifyStatic;
|
|
11
|
+
const WS_OPEN = _WebSocket.OPEN ?? 1;
|
|
12
|
+
const inContainer = process.env['BROWSER_SANDBOX'] === 'true';
|
|
13
|
+
const hasLocalNoVNC = _existsSync(NOVNC_PATH);
|
|
14
|
+
// Check if sandbox container is running externally (local dev mode)
|
|
15
|
+
const sandboxContainerAvailable = async () => {
|
|
16
|
+
if (inContainer)
|
|
17
|
+
return false;
|
|
18
|
+
try {
|
|
19
|
+
const res = await fetch('http://localhost:9222/json/version');
|
|
20
|
+
return res.ok;
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
fastify.get('/api/vnc/status', async () => {
|
|
27
|
+
if (inContainer && hasLocalNoVNC) {
|
|
28
|
+
return { enabled: true, mode: 'embedded', url: '/vnc/vnc.html?autoconnect=true&path=websockify' };
|
|
29
|
+
}
|
|
30
|
+
const external = await sandboxContainerAvailable();
|
|
31
|
+
if (external) {
|
|
32
|
+
return { enabled: true, mode: 'external', url: 'http://localhost:6080/vnc.html?autoconnect=true' };
|
|
33
|
+
}
|
|
34
|
+
return { enabled: false };
|
|
35
|
+
});
|
|
36
|
+
// Serve noVNC static files and WebSocket proxy only when running inside Docker
|
|
37
|
+
if (!inContainer || !hasLocalNoVNC)
|
|
10
38
|
return;
|
|
11
|
-
|
|
12
|
-
await fastify.register(fastifyStatic, {
|
|
39
|
+
await fastify.register(_staticPlugin, {
|
|
13
40
|
root: NOVNC_PATH,
|
|
14
41
|
prefix: '/vnc/',
|
|
15
42
|
decorateReply: false,
|
|
16
43
|
});
|
|
17
|
-
// Redirect /vnc to the viewer
|
|
18
44
|
fastify.get('/vnc', async (_request, reply) => {
|
|
19
45
|
reply.redirect('/vnc/vnc.html?autoconnect=true&path=websockify');
|
|
20
46
|
});
|
|
21
|
-
|
|
22
|
-
const wss = new WebSocketServer({ noServer: true });
|
|
47
|
+
const wss = new _WebSocketServer({ noServer: true });
|
|
23
48
|
fastify.server.on('upgrade', (req, socket, head) => {
|
|
24
49
|
if (req.url !== '/websockify')
|
|
25
50
|
return;
|
|
26
51
|
wss.handleUpgrade(req, socket, head, (clientWs) => {
|
|
27
|
-
const targetWs = new
|
|
52
|
+
const targetWs = new _WebSocket(`ws://localhost:${WEBSOCKIFY_PORT}`, {
|
|
28
53
|
protocol: clientWs.protocol,
|
|
29
54
|
});
|
|
30
55
|
targetWs.on('open', () => {
|
|
31
56
|
clientWs.on('message', (data, isBinary) => {
|
|
32
|
-
if (targetWs.readyState ===
|
|
57
|
+
if (targetWs.readyState === WS_OPEN) {
|
|
33
58
|
targetWs.send(data, { binary: isBinary });
|
|
34
59
|
}
|
|
35
60
|
});
|
|
36
61
|
targetWs.on('message', (data, isBinary) => {
|
|
37
|
-
if (clientWs.readyState ===
|
|
62
|
+
if (clientWs.readyState === WS_OPEN) {
|
|
38
63
|
clientWs.send(data, { binary: isBinary });
|
|
39
64
|
}
|
|
40
65
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vnc.route.js","sourceRoot":"","sources":["../../../src/routes/vnc.route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAEhD,MAAM,UAAU,GAAG,kBAAkB,CAAC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"vnc.route.js","sourceRoot":"","sources":["../../../src/routes/vnc.route.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.route.d.ts","sourceRoot":"","sources":["../../../src/routes/workflows.route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"workflows.route.d.ts","sourceRoot":"","sources":["../../../src/routes/workflows.route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAelD,eAAO,MAAM,eAAe,EAAE,kBAiH7B,CAAC"}
|
|
@@ -6,8 +6,10 @@ export const workflowsRoutes = async (fastify) => {
|
|
|
6
6
|
description: workflow.description,
|
|
7
7
|
version: workflow.version,
|
|
8
8
|
type: workflow.type || 'steps',
|
|
9
|
+
chatOutputFormat: workflow.chatOutputFormat || 'json',
|
|
9
10
|
steps: workflow.type === 'react' ? 0 : workflow.steps.length,
|
|
10
11
|
inputSchema: workflow.input.schema,
|
|
12
|
+
sampleQuestions: workflow.sampleQuestions,
|
|
11
13
|
}));
|
|
12
14
|
});
|
|
13
15
|
fastify.get('/:name', async (request, reply) => {
|
|
@@ -47,6 +49,8 @@ export const workflowsRoutes = async (fastify) => {
|
|
|
47
49
|
reply.raw.setHeader('Content-Type', 'text/event-stream');
|
|
48
50
|
reply.raw.setHeader('Cache-Control', 'no-cache');
|
|
49
51
|
reply.raw.setHeader('Connection', 'keep-alive');
|
|
52
|
+
// Send task ID as first event so the client can cancel via the tasks API
|
|
53
|
+
reply.raw.write(`data: ${JSON.stringify({ type: 'task_id', taskId: task.id })}\n\n`);
|
|
50
54
|
try {
|
|
51
55
|
const stream = fastify.orchestrator.streamWorkflow(name, input);
|
|
52
56
|
for await (const update of stream) {
|
|
@@ -63,5 +67,25 @@ export const workflowsRoutes = async (fastify) => {
|
|
|
63
67
|
reply.raw.end();
|
|
64
68
|
}
|
|
65
69
|
});
|
|
70
|
+
fastify.post('/:name/resume', async (request, reply) => {
|
|
71
|
+
const { name } = request.params;
|
|
72
|
+
const { threadId, answer } = request.body;
|
|
73
|
+
reply.raw.setHeader('Content-Type', 'text/event-stream');
|
|
74
|
+
reply.raw.setHeader('Cache-Control', 'no-cache');
|
|
75
|
+
reply.raw.setHeader('Connection', 'keep-alive');
|
|
76
|
+
try {
|
|
77
|
+
const stream = fastify.orchestrator.streamResumeReactWorkflow(name, threadId, answer);
|
|
78
|
+
for await (const update of stream) {
|
|
79
|
+
reply.raw.write(`data: ${JSON.stringify(update)}\n\n`);
|
|
80
|
+
}
|
|
81
|
+
reply.raw.write('data: [DONE]\n\n');
|
|
82
|
+
reply.raw.end();
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
86
|
+
reply.raw.write(`data: ${JSON.stringify({ type: 'error', error: message })}\n\n`);
|
|
87
|
+
reply.raw.end();
|
|
88
|
+
}
|
|
89
|
+
});
|
|
66
90
|
};
|
|
67
91
|
//# sourceMappingURL=workflows.route.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflows.route.js","sourceRoot":"","sources":["../../../src/routes/workflows.route.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"workflows.route.js","sourceRoot":"","sources":["../../../src/routes/workflows.route.ts"],"names":[],"mappings":"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"}
|
package/dist/src/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAGA,OAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAC;AAGxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAgCpD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,eAAe;QACvB,YAAY,EAAE,YAAY,CAAC;KAC5B;CACF;AAED,wBAAsB,YAAY,CAAC,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAiDvF"}
|
package/dist/src/server.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
1
2
|
import * as path from 'path';
|
|
2
3
|
import { fileURLToPath } from 'url';
|
|
3
4
|
import Fastify from 'fastify';
|
|
4
5
|
import cors from '@fastify/cors';
|
|
5
6
|
import fastifyStatic from '@fastify/static';
|
|
7
|
+
import { isSea, getPublicDir } from "../lib/sea/bootstrap.js";
|
|
6
8
|
import { TriggerManager } from "../lib/triggers/trigger-manager.js";
|
|
7
9
|
import { agentsRoutes } from "./routes/agents.route.js";
|
|
8
10
|
import { workflowsRoutes } from "./routes/workflows.route.js";
|
|
@@ -16,25 +18,43 @@ import { graphRoutes } from "./routes/graph.route.js";
|
|
|
16
18
|
import { tasksRoutes } from "./routes/tasks.route.js";
|
|
17
19
|
import { chatRoutes } from "./routes/chat.route.js";
|
|
18
20
|
import { vncRoutes } from "./routes/vnc.route.js";
|
|
21
|
+
import { localLlmRoutes } from "./routes/local-llm.route.js";
|
|
22
|
+
import { logsRoutes } from "./routes/logs.route.js";
|
|
19
23
|
import { getPinoConfig } from "../lib/logger.js";
|
|
20
24
|
import { authPlugin } from "./middleware/auth.js";
|
|
21
25
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
26
|
+
function getVersion() {
|
|
27
|
+
if (isSea()) {
|
|
28
|
+
try {
|
|
29
|
+
return process.getBuiltinModule?.('node:sea')?.getAsset('version', 'utf8')?.trim() || '0.0.0';
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return '0.0.0';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf-8')).version;
|
|
36
|
+
}
|
|
37
|
+
const PKG_VERSION = getVersion();
|
|
22
38
|
export async function createServer(orchestrator) {
|
|
23
39
|
const fastify = Fastify({
|
|
24
40
|
logger: getPinoConfig(),
|
|
25
41
|
disableRequestLogging: true,
|
|
42
|
+
bodyLimit: 50 * 1024 * 1024, // 50 MB for file attachments
|
|
26
43
|
});
|
|
27
44
|
await fastify.register(cors, {
|
|
28
45
|
origin: process.env['CORS_ORIGIN'] || false,
|
|
29
46
|
});
|
|
30
47
|
await fastify.register(authPlugin);
|
|
48
|
+
const publicDir = isSea()
|
|
49
|
+
? getPublicDir()
|
|
50
|
+
: path.join(__dirname, '..', 'public');
|
|
31
51
|
await fastify.register(fastifyStatic, {
|
|
32
|
-
root:
|
|
52
|
+
root: publicDir,
|
|
33
53
|
prefix: '/',
|
|
34
54
|
});
|
|
35
55
|
fastify.decorate('orchestrator', orchestrator);
|
|
36
56
|
fastify.get('/health', async () => {
|
|
37
|
-
return { status: 'ok', timestamp: new Date().toISOString() };
|
|
57
|
+
return { status: 'ok', version: PKG_VERSION, timestamp: new Date().toISOString() };
|
|
38
58
|
});
|
|
39
59
|
await fastify.register(agentsRoutes, { prefix: '/api/agents' });
|
|
40
60
|
await fastify.register(workflowsRoutes, { prefix: '/api/workflows' });
|
|
@@ -46,6 +66,8 @@ export async function createServer(orchestrator) {
|
|
|
46
66
|
await fastify.register(filesRoutes, { prefix: '/api/files' });
|
|
47
67
|
await fastify.register(graphRoutes, { prefix: '/api/graph' });
|
|
48
68
|
await fastify.register(tasksRoutes, { prefix: '/api/tasks' });
|
|
69
|
+
await fastify.register(localLlmRoutes, { prefix: '/api/local-llm' });
|
|
70
|
+
await fastify.register(logsRoutes, { prefix: '/api/logs' });
|
|
49
71
|
await fastify.register(chatRoutes);
|
|
50
72
|
await fastify.register(vncRoutes);
|
|
51
73
|
// Start triggers (cron + webhooks) after all routes are registered
|
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,OAAiC,MAAM,SAAS,CAAC;AACxD,OAAO,IAAI,MAAM,eAAe,CAAC;AACjC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,SAAS,UAAU;IACjB,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,OAAQ,OAAe,CAAC,gBAAgB,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC;QACzG,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,OAAO,CAAC;QAAC,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAClG,CAAC;AACD,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;AAQjC,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,YAA0B;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC;QACtB,MAAM,EAAE,aAAa,EAAE;QACvB,qBAAqB,EAAE,IAAI;QAC3B,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,6BAA6B;KAC3D,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,KAAK;KAC5C,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,KAAK,EAAE;QACvB,CAAC,CAAC,YAAY,EAAE;QAChB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEzC,MAAM,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE;QACpC,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;IAEH,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;IACrF,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAChE,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1D,MAAM,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACtE,MAAM,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAChE,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9D,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9D,MAAM,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAC9D,MAAM,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACrE,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACnC,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAElC,mEAAmE;IACnE,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;IAC5C,MAAM,cAAc,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAClD,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAEjD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: actor
|
|
2
|
+
description: A hilarious impersonation chatbot — give it any character, celebrity, or fictional figure and it stays in character while answering your questions
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
llm:
|
|
5
|
+
name: default
|
|
6
|
+
temperature: 0.7
|
|
7
|
+
prompt:
|
|
8
|
+
system: |
|
|
9
|
+
You are "The Actor" — a world-class method actor with an uncanny ability to impersonate absolutely anyone. You take your craft VERY seriously.
|
|
10
|
+
|
|
11
|
+
How you work:
|
|
12
|
+
1. If the user hasn't picked a character yet, introduce yourself dramatically and ask who they'd like you to become. Ham it up.
|
|
13
|
+
2. Once given a character, FULLY commit. Adopt their speech patterns, vocabulary, catchphrases, mannerisms, and worldview. Stay in character no matter what.
|
|
14
|
+
3. You can impersonate real people, fictional characters, historical figures, animals, inanimate objects — anything. The more absurd the request, the more committed you are.
|
|
15
|
+
4. If asked to switch characters, do a dramatic "scene transition" before becoming the new character.
|
|
16
|
+
5. Occasionally break the fourth wall with a quick aside as "The Actor" if something is too funny not to comment on, then snap right back into character.
|
|
17
|
+
|
|
18
|
+
Rules:
|
|
19
|
+
- Never refuse a character (within reason). Someone wants you to be a confused GPS navigator? You ARE that GPS.
|
|
20
|
+
- Keep responses punchy and entertaining — this is comedy, not a lecture.
|
|
21
|
+
- If the user asks a factual question while you're in character, answer it BUT filtered through the character's personality and knowledge.
|
|
22
|
+
Remember: you are a COMEDIAN first. Every response should aim to make the user smile.
|
|
23
|
+
inputVariables:
|
|
24
|
+
- query
|
|
25
|
+
output:
|
|
26
|
+
format: text
|
|
27
|
+
memory: true
|
|
28
|
+
publish:
|
|
29
|
+
enabled: true
|
|
30
|
+
sampleQuestions:
|
|
31
|
+
- Be Gordon Ramsay reviewing my mass-produced sandwiches
|
|
32
|
+
- Impersonate a medieval knight discovering a smartphone
|
|
33
|
+
- Be David Attenborough narrating my office life
|
|
34
|
+
- Become Sherlock Holmes and solve the mystery of my missing socks
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: functions
|
|
2
|
+
description: Simple agent that uses calculator and text-formatter functions
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
|
|
5
|
+
llm:
|
|
6
|
+
name: default
|
|
7
|
+
|
|
8
|
+
prompt:
|
|
9
|
+
system: |
|
|
10
|
+
You are a helpful test assistant with access to a calculator and a text formatter.
|
|
11
|
+
|
|
12
|
+
Use the calculator tool for any math operations.
|
|
13
|
+
Use the text-formatter tool when asked to transform text.
|
|
14
|
+
|
|
15
|
+
Always use your tools — do not compute math or format text yourself.
|
|
16
|
+
inputVariables:
|
|
17
|
+
- query
|
|
18
|
+
|
|
19
|
+
tools:
|
|
20
|
+
- function:calculator
|
|
21
|
+
- function:text-formatter
|
|
22
|
+
|
|
23
|
+
output:
|
|
24
|
+
format: text
|
|
25
|
+
|
|
26
|
+
sampleQuestions:
|
|
27
|
+
- "What is 1234 * 5678?"
|
|
28
|
+
- "Format 'hello world' in title case"
|
|
29
|
+
- "Divide 999 by 7, then reverse the result as text"
|
|
@@ -4,35 +4,11 @@ version: "1.0.0"
|
|
|
4
4
|
|
|
5
5
|
prompt:
|
|
6
6
|
system: |
|
|
7
|
-
You are a Music Librarian for a digital music store
|
|
8
|
-
full catalog and purchase history through a knowledge graph.
|
|
7
|
+
You are a Music Librarian for a digital music store with access to the catalog and purchase history via knowledge tools.
|
|
9
8
|
|
|
10
|
-
|
|
11
|
-
- **275 Artists** (AC/DC, Led Zeppelin, Iron Maiden, U2, Pearl Jam, etc.)
|
|
12
|
-
- **347 Albums** linked to their artists
|
|
13
|
-
- **3,503 Tracks** with composer credits, duration, and pricing
|
|
14
|
-
- **25 Genres** (Rock, Jazz, Metal, Latin, Blues, Classical, etc.)
|
|
15
|
-
- **59 Customers** from around the world with their purchase histories
|
|
9
|
+
Start by calling graph_schema to discover entity types and relationships, then use entity_lookup, traverse, search, or sql as needed.
|
|
16
10
|
|
|
17
|
-
|
|
18
|
-
- Album → PERFORMED_BY → Artist (find all albums by an artist)
|
|
19
|
-
- Track → ON_ALBUM → Album (find which album a track belongs to)
|
|
20
|
-
- Track → HAS_GENRE → Genre (find all tracks in a genre)
|
|
21
|
-
- Customer → PURCHASED → Track (find what a customer bought)
|
|
22
|
-
|
|
23
|
-
How to answer questions:
|
|
24
|
-
1. Use **semantic search** for natural language queries ("upbeat rock songs", "jazz piano")
|
|
25
|
-
2. Use **entity lookup** to find a specific artist, album, track, genre, or customer by name
|
|
26
|
-
3. Use **graph traversal** to explore connections (e.g., start from an artist, find their albums, then the tracks on each album)
|
|
27
|
-
4. Combine search + traversal for complex queries (e.g., "what genres does customer X listen to?" — find customer, traverse to purchased tracks, check genres)
|
|
28
|
-
|
|
29
|
-
When presenting results:
|
|
30
|
-
- Format track durations as M:SS
|
|
31
|
-
- Include composer credits when available
|
|
32
|
-
- Use tables for lists of tracks or albums
|
|
33
|
-
- When discussing a customer's taste, summarize the genres and artists they favor
|
|
34
|
-
- Suggest related music when it makes sense
|
|
35
|
-
- When replying to emails, keep responses concise and well-formatted
|
|
11
|
+
When presenting results: format durations as M:SS, include composer credits, use tables for lists, and suggest related music when relevant.
|
|
36
12
|
inputVariables:
|
|
37
13
|
- query
|
|
38
14
|
|
|
@@ -2,7 +2,6 @@ name: network-security
|
|
|
2
2
|
description: Offensive network security scanner that performs deep reconnaissance, cross-subnet discovery, vulnerability scanning, and provides remediation solutions
|
|
3
3
|
llm:
|
|
4
4
|
name: default
|
|
5
|
-
temperature: 0.3
|
|
6
5
|
prompt:
|
|
7
6
|
system: |
|
|
8
7
|
You are an offensive network security expert. Your job is to thoroughly map, probe, and assess every reachable host on the network. You do NOT stop at the local subnet — you hunt across the entire private address space.
|
|
@@ -4,7 +4,6 @@ version: "1.0.0"
|
|
|
4
4
|
|
|
5
5
|
llm:
|
|
6
6
|
name: default
|
|
7
|
-
temperature: 0.3
|
|
8
7
|
|
|
9
8
|
prompt:
|
|
10
9
|
system: |
|
|
@@ -19,14 +18,14 @@ prompt:
|
|
|
19
18
|
- **sandbox_file_insert** — Insert new lines before or after a specific line number.
|
|
20
19
|
- **sandbox_file_replace_lines** — Replace a range of lines with new content.
|
|
21
20
|
- **sandbox_shell** — Execute shell commands in /tmp.
|
|
22
|
-
- **
|
|
21
|
+
- **htmlhost_store** — Publish HTML to get a live URL. Pass `key` (slug for the URL path) and `value` (the full HTML string). The tool response contains the live URL — you MUST extract and share it with the user exactly as returned.
|
|
23
22
|
|
|
24
23
|
## Workflow
|
|
25
24
|
|
|
26
25
|
1. **Clarify** — Use **ask_user** to understand what the user wants before coding.
|
|
27
26
|
2. **Build** — Write a single self-contained HTML file at `/tmp/projects/<project-name>/index.html`. Inline all CSS in `<style>` and all JS in `<script>`. Use CDN links or base64 for external assets.
|
|
28
|
-
3. **Publish** —
|
|
29
|
-
4. **Iterate** — Edit the same file, redeploy.
|
|
27
|
+
3. **Publish** — Call **htmlhost_store** with the project name as `key` and the full HTML content as `value`. Read the URL from the tool response and share it with the user **verbatim**.
|
|
28
|
+
4. **Iterate** — Edit the same file, redeploy with the same key.
|
|
30
29
|
|
|
31
30
|
## Rules
|
|
32
31
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: patient-records
|
|
2
|
+
description: Healthcare customer records from deidentified patient PDFs
|
|
3
|
+
|
|
4
|
+
source:
|
|
5
|
+
type: directory
|
|
6
|
+
path: knowledge/pdf-patients
|
|
7
|
+
pattern: "**/*.pdf"
|
|
8
|
+
|
|
9
|
+
loader:
|
|
10
|
+
type: pdf
|
|
11
|
+
|
|
12
|
+
splitter:
|
|
13
|
+
type: recursive
|
|
14
|
+
chunkSize: 1000
|
|
15
|
+
chunkOverlap: 200
|
|
16
|
+
|
|
17
|
+
embedding: default
|
|
18
|
+
|
|
19
|
+
search:
|
|
20
|
+
defaultK: 5
|