agent-orcha 0.0.5 → 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 +250 -1275
- package/dist/lib/agents/agent-executor.d.ts +4 -2
- package/dist/lib/agents/agent-executor.d.ts.map +1 -1
- package/dist/lib/agents/agent-executor.js +85 -53
- package/dist/lib/agents/agent-executor.js.map +1 -1
- package/dist/lib/agents/agent-loader.d.ts +3 -0
- package/dist/lib/agents/agent-loader.d.ts.map +1 -1
- package/dist/lib/agents/agent-loader.js +10 -1
- package/dist/lib/agents/agent-loader.js.map +1 -1
- package/dist/lib/agents/react-loop.d.ts.map +1 -1
- package/dist/lib/agents/react-loop.js +207 -142
- package/dist/lib/agents/react-loop.js.map +1 -1
- package/dist/lib/agents/types.d.ts +181 -18
- package/dist/lib/agents/types.d.ts.map +1 -1
- package/dist/lib/agents/types.js +18 -2
- package/dist/lib/agents/types.js.map +1 -1
- package/dist/lib/functions/function-loader.d.ts +2 -0
- package/dist/lib/functions/function-loader.d.ts.map +1 -1
- package/dist/lib/functions/function-loader.js +10 -0
- package/dist/lib/functions/function-loader.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/integrations/email.d.ts +38 -0
- package/dist/lib/integrations/email.d.ts.map +1 -0
- package/dist/lib/integrations/email.js +249 -0
- package/dist/lib/integrations/email.js.map +1 -0
- package/dist/lib/integrations/integration-manager.d.ts +5 -0
- package/dist/lib/integrations/integration-manager.d.ts.map +1 -1
- package/dist/lib/integrations/integration-manager.js +53 -3
- package/dist/lib/integrations/integration-manager.js.map +1 -1
- package/dist/lib/integrations/types.d.ts +187 -4
- package/dist/lib/integrations/types.d.ts.map +1 -1
- package/dist/lib/integrations/types.js +24 -1
- package/dist/lib/integrations/types.js.map +1 -1
- package/dist/lib/knowledge/knowledge-store.d.ts +7 -1
- package/dist/lib/knowledge/knowledge-store.d.ts.map +1 -1
- package/dist/lib/knowledge/knowledge-store.js +96 -8
- package/dist/lib/knowledge/knowledge-store.js.map +1 -1
- package/dist/lib/knowledge/loaders/file-loaders.d.ts +8 -3
- package/dist/lib/knowledge/loaders/file-loaders.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/file-loaders.js +96 -75
- package/dist/lib/knowledge/loaders/file-loaders.js.map +1 -1
- package/dist/lib/knowledge/loaders/web-loader.d.ts +12 -3
- package/dist/lib/knowledge/loaders/web-loader.d.ts.map +1 -1
- package/dist/lib/knowledge/loaders/web-loader.js +56 -22
- package/dist/lib/knowledge/loaders/web-loader.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 +69 -33
- package/dist/lib/knowledge/types.d.ts.map +1 -1
- package/dist/lib/knowledge/types.js +18 -3
- package/dist/lib/knowledge/types.js.map +1 -1
- 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-call-logger.d.ts +3 -1
- package/dist/lib/llm/llm-call-logger.d.ts.map +1 -1
- package/dist/lib/llm/llm-call-logger.js +31 -26
- package/dist/lib/llm/llm-call-logger.js.map +1 -1
- package/dist/lib/llm/llm-config.d.ts +59 -8
- package/dist/lib/llm/llm-config.d.ts.map +1 -1
- package/dist/lib/llm/llm-config.js +163 -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 +44 -8
- package/dist/lib/llm/llm-factory.js.map +1 -1
- package/dist/lib/llm/providers/anthropic-chat-model.d.ts +5 -1
- package/dist/lib/llm/providers/anthropic-chat-model.d.ts.map +1 -1
- package/dist/lib/llm/providers/anthropic-chat-model.js +118 -42
- package/dist/lib/llm/providers/anthropic-chat-model.js.map +1 -1
- package/dist/lib/llm/providers/gemini-chat-model.d.ts +3 -2
- package/dist/lib/llm/providers/gemini-chat-model.d.ts.map +1 -1
- package/dist/lib/llm/providers/gemini-chat-model.js +83 -24
- package/dist/lib/llm/providers/gemini-chat-model.js.map +1 -1
- package/dist/lib/llm/providers/openai-chat-model.d.ts +20 -1
- package/dist/lib/llm/providers/openai-chat-model.d.ts.map +1 -1
- package/dist/lib/llm/providers/openai-chat-model.js +265 -32
- 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 -6
- package/dist/lib/logger.js.map +1 -1
- package/dist/lib/mcp/mcp-client.d.ts.map +1 -1
- package/dist/lib/mcp/mcp-client.js +5 -3
- package/dist/lib/mcp/mcp-client.js.map +1 -1
- package/dist/lib/mcp/types.d.ts +0 -9
- package/dist/lib/mcp/types.d.ts.map +1 -1
- package/dist/lib/mcp/types.js +1 -2
- package/dist/lib/mcp/types.js.map +1 -1
- package/dist/lib/memory/memory-manager.d.ts +1 -0
- package/dist/lib/memory/memory-manager.d.ts.map +1 -1
- package/dist/lib/memory/memory-manager.js +9 -0
- package/dist/lib/memory/memory-manager.js.map +1 -1
- package/dist/lib/orchestrator.d.ts +11 -8
- package/dist/lib/orchestrator.d.ts.map +1 -1
- package/dist/lib/orchestrator.js +246 -5
- package/dist/lib/orchestrator.js.map +1 -1
- package/dist/lib/sandbox/cdp-client.d.ts +15 -0
- package/dist/lib/sandbox/cdp-client.d.ts.map +1 -0
- package/dist/lib/sandbox/cdp-client.js +139 -0
- package/dist/lib/sandbox/cdp-client.js.map +1 -0
- package/dist/lib/sandbox/html-to-markdown.d.ts +9 -1
- package/dist/lib/sandbox/html-to-markdown.d.ts.map +1 -1
- package/dist/lib/sandbox/html-to-markdown.js +67 -10
- package/dist/lib/sandbox/html-to-markdown.js.map +1 -1
- package/dist/lib/sandbox/index.d.ts +6 -0
- package/dist/lib/sandbox/index.d.ts.map +1 -1
- package/dist/lib/sandbox/index.js +5 -0
- package/dist/lib/sandbox/index.js.map +1 -1
- package/dist/lib/sandbox/page-readiness.d.ts +37 -0
- package/dist/lib/sandbox/page-readiness.d.ts.map +1 -0
- package/dist/lib/sandbox/page-readiness.js +268 -0
- package/dist/lib/sandbox/page-readiness.js.map +1 -0
- package/dist/lib/sandbox/sandbox-browser.d.ts +4 -0
- package/dist/lib/sandbox/sandbox-browser.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-browser.js +316 -0
- package/dist/lib/sandbox/sandbox-browser.js.map +1 -0
- 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 +4 -0
- package/dist/lib/sandbox/sandbox-file.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-file.js +169 -0
- package/dist/lib/sandbox/sandbox-file.js.map +1 -0
- package/dist/lib/sandbox/sandbox-shell.d.ts +5 -0
- package/dist/lib/sandbox/sandbox-shell.d.ts.map +1 -0
- package/dist/lib/sandbox/sandbox-shell.js +111 -0
- package/dist/lib/sandbox/sandbox-shell.js.map +1 -0
- package/dist/lib/sandbox/sandbox-web.d.ts.map +1 -1
- package/dist/lib/sandbox/sandbox-web.js +64 -24
- package/dist/lib/sandbox/sandbox-web.js.map +1 -1
- package/dist/lib/sandbox/types.d.ts +9 -0
- package/dist/lib/sandbox/types.d.ts.map +1 -1
- package/dist/lib/sandbox/types.js +1 -0
- package/dist/lib/sandbox/types.js.map +1 -1
- package/dist/lib/sandbox/vision-browser.d.ts +4 -0
- package/dist/lib/sandbox/vision-browser.d.ts.map +1 -0
- package/dist/lib/sandbox/vision-browser.js +298 -0
- package/dist/lib/sandbox/vision-browser.js.map +1 -0
- 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/skills/skill-loader.d.ts +2 -0
- package/dist/lib/skills/skill-loader.d.ts.map +1 -1
- package/dist/lib/skills/skill-loader.js +12 -1
- package/dist/lib/skills/skill-loader.js.map +1 -1
- package/dist/lib/tasks/task-manager.d.ts +3 -1
- package/dist/lib/tasks/task-manager.d.ts.map +1 -1
- package/dist/lib/tasks/task-manager.js +11 -0
- package/dist/lib/tasks/task-manager.js.map +1 -1
- package/dist/lib/tasks/task-store.d.ts +1 -1
- package/dist/lib/tasks/task-store.d.ts.map +1 -1
- package/dist/lib/tasks/task-store.js.map +1 -1
- package/dist/lib/tasks/types.d.ts +18 -0
- package/dist/lib/tasks/types.d.ts.map +1 -1
- package/dist/lib/tools/built-in/integration-tools.d.ts +4 -0
- package/dist/lib/tools/built-in/integration-tools.d.ts.map +1 -0
- package/dist/lib/tools/built-in/integration-tools.js +47 -0
- package/dist/lib/tools/built-in/integration-tools.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 +17 -17
- 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 +74 -40
- 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/built-in/query-validators.d.ts.map +1 -1
- package/dist/lib/tools/built-in/query-validators.js +4 -0
- package/dist/lib/tools/built-in/query-validators.js.map +1 -1
- package/dist/lib/tools/workspace/workspace-tools.d.ts +1 -0
- package/dist/lib/tools/workspace/workspace-tools.d.ts.map +1 -1
- package/dist/lib/tools/workspace/workspace-tools.js +44 -4
- package/dist/lib/tools/workspace/workspace-tools.js.map +1 -1
- package/dist/lib/triggers/cron-trigger.d.ts +1 -1
- package/dist/lib/triggers/cron-trigger.d.ts.map +1 -1
- package/dist/lib/triggers/cron-trigger.js.map +1 -1
- package/dist/lib/triggers/trigger-manager.d.ts +1 -0
- package/dist/lib/triggers/trigger-manager.d.ts.map +1 -1
- package/dist/lib/triggers/trigger-manager.js +26 -0
- package/dist/lib/triggers/trigger-manager.js.map +1 -1
- package/dist/lib/triggers/webhook-trigger.d.ts +1 -1
- package/dist/lib/triggers/webhook-trigger.d.ts.map +1 -1
- package/dist/lib/triggers/webhook-trigger.js.map +1 -1
- package/dist/lib/types/llm-types.d.ts +22 -4
- package/dist/lib/types/llm-types.d.ts.map +1 -1
- package/dist/lib/types/llm-types.js +50 -0
- package/dist/lib/types/llm-types.js.map +1 -1
- package/dist/lib/types/tool-factory.d.ts +2 -2
- 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/utils/env-substitution.d.ts +6 -0
- package/dist/lib/utils/env-substitution.d.ts.map +1 -0
- package/dist/lib/utils/env-substitution.js +15 -0
- package/dist/lib/utils/env-substitution.js.map +1 -0
- package/dist/lib/workflows/react-workflow-executor.d.ts.map +1 -1
- package/dist/lib/workflows/react-workflow-executor.js +23 -17
- package/dist/lib/workflows/react-workflow-executor.js.map +1 -1
- package/dist/lib/workflows/types.d.ts +81 -55
- 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/lib/workflows/workflow-loader.d.ts +3 -0
- package/dist/lib/workflows/workflow-loader.d.ts.map +1 -1
- package/dist/lib/workflows/workflow-loader.js +10 -1
- package/dist/lib/workflows/workflow-loader.js.map +1 -1
- package/dist/public/assets/logo.png +0 -0
- package/dist/public/chat.html +39 -0
- package/dist/public/index.html +6 -176
- package/dist/public/src/components/AgentComposer.js +807 -0
- package/dist/public/src/components/AgentsView.js +1812 -508
- package/dist/public/src/components/AppRoot.js +125 -38
- package/dist/public/src/components/GraphView.js +382 -300
- package/dist/public/src/components/IdeView.js +277 -86
- 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 +174 -83
- package/dist/public/src/components/NavBar.js +16 -26
- package/dist/public/src/components/StandaloneChat.js +875 -0
- package/dist/public/src/services/ApiService.js +203 -4
- package/dist/public/src/services/SessionStore.js +86 -0
- package/dist/public/src/services/StreamManager.js +183 -0
- package/dist/public/src/store.js +1 -3
- package/dist/public/src/utils/card.js +21 -0
- package/dist/public/src/utils/markdown.js +7 -0
- 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 +19 -5
- 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/middleware/auth.d.ts.map +1 -1
- package/dist/src/middleware/auth.js +28 -6
- package/dist/src/middleware/auth.js.map +1 -1
- package/dist/src/middleware/rate-limit.d.ts +8 -0
- package/dist/src/middleware/rate-limit.d.ts.map +1 -0
- package/dist/src/middleware/rate-limit.js +21 -0
- package/dist/src/middleware/rate-limit.js.map +1 -0
- package/dist/src/routes/agents.route.d.ts.map +1 -1
- package/dist/src/routes/agents.route.js +138 -10
- package/dist/src/routes/agents.route.js.map +1 -1
- package/dist/src/routes/chat.route.d.ts +3 -0
- package/dist/src/routes/chat.route.d.ts.map +1 -0
- package/dist/src/routes/chat.route.js +156 -0
- package/dist/src/routes/chat.route.js.map +1 -0
- package/dist/src/routes/files.route.d.ts.map +1 -1
- package/dist/src/routes/files.route.js +37 -2
- package/dist/src/routes/files.route.js.map +1 -1
- package/dist/src/routes/llm.route.d.ts.map +1 -1
- package/dist/src/routes/llm.route.js +263 -8
- 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/tasks.route.d.ts.map +1 -1
- package/dist/src/routes/tasks.route.js +15 -1
- package/dist/src/routes/tasks.route.js.map +1 -1
- package/dist/src/routes/vnc.route.d.ts +12 -0
- package/dist/src/routes/vnc.route.d.ts.map +1 -0
- package/dist/src/routes/vnc.route.js +74 -0
- package/dist/src/routes/vnc.route.js.map +1 -0
- 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 +29 -3
- package/dist/src/server.js.map +1 -1
- package/dist/templates/Demo.md +152 -0
- package/dist/templates/README.md +12 -3
- package/dist/templates/agents/actor.agent.yaml +34 -0
- package/dist/templates/agents/architect.agent.yaml +20 -13
- package/dist/templates/agents/chatbot.agent.yaml +23 -27
- package/dist/templates/agents/corporate.agent.yaml +64 -0
- package/dist/templates/agents/functions.agent.yaml +29 -0
- package/dist/templates/agents/investment-analyst.agent.yaml +79 -0
- package/dist/templates/agents/music-librarian.agent.yaml +46 -0
- package/dist/templates/agents/network-security.agent.yaml +81 -0
- package/dist/templates/agents/transport-security.agent.yaml +69 -0
- package/dist/templates/agents/web-engineer.agent.yaml +98 -0
- package/dist/templates/agents/web-pilot.agent.yaml +57 -0
- package/dist/templates/knowledge/music-store/LICENSE.md +11 -0
- package/dist/templates/knowledge/music-store/musicstore.sqlite +0 -0
- package/dist/templates/knowledge/music-store/tables.png +0 -0
- package/dist/templates/knowledge/music-store.knowledge.yaml +138 -0
- package/dist/templates/knowledge/org-chart/personnel.csv +21 -21
- package/dist/templates/knowledge/org-chart.knowledge.yaml +4 -0
- 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/pet-store.knowledge.yaml +3 -0
- package/dist/templates/knowledge/security-incidents/incidents.json +55935 -0
- package/dist/templates/knowledge/security-incidents.knowledge.yaml +46 -0
- package/dist/templates/knowledge/{example.knowledge.yaml → transcripts.knowledge.yaml} +9 -5
- package/dist/templates/knowledge/transport-ot/systems.csv +117 -0
- package/dist/templates/knowledge/transport-ot.knowledge.yaml +55 -0
- package/dist/templates/knowledge/web-docs.knowledge.yaml +1 -1
- package/dist/templates/llm.json +62 -22
- package/dist/templates/mcp.json +7 -4
- package/dist/templates/skills/orcha-builder/SKILL.md +148 -215
- package/dist/templates/skills/pii-guard/SKILL.md +22 -0
- package/dist/templates/skills/sandbox/SKILL.md +25 -48
- package/dist/templates/skills/web-pilot/SKILL.md +51 -0
- 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 +17 -4
- package/dist/public/src/components/SkillsView.js +0 -137
- package/dist/public/src/components/WorkflowsView.js +0 -416
- package/dist/templates/agents/knowledge-broker.agent.yaml +0 -39
- package/dist/templates/agents/sandbox.agent.yaml +0 -56
|
@@ -1,416 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import { Component } from '../utils/Component.js';
|
|
3
|
-
import { api } from '../services/ApiService.js';
|
|
4
|
-
|
|
5
|
-
const LOG_CONFIG = {
|
|
6
|
-
workflow_start: { icon: 'fa-play', color: 'blue' },
|
|
7
|
-
workflow_complete: { icon: 'fa-check-circle', color: 'green' },
|
|
8
|
-
workflow_error: { icon: 'fa-times-circle', color: 'red' },
|
|
9
|
-
workflow_interrupt: { icon: 'fa-pause-circle', color: 'amber' },
|
|
10
|
-
step_start: { icon: 'fa-arrow-right', color: 'blue' },
|
|
11
|
-
step_complete: { icon: 'fa-check', color: 'green' },
|
|
12
|
-
step_error: { icon: 'fa-exclamation-triangle', color: 'red' },
|
|
13
|
-
tool_discovery: { icon: 'fa-search', color: 'purple' },
|
|
14
|
-
react_iteration: { icon: 'fa-sync-alt', color: 'blue' },
|
|
15
|
-
tool_call: { icon: 'fa-wrench', color: 'cyan' },
|
|
16
|
-
tool_result: { icon: 'fa-reply', color: 'teal' },
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export class WorkflowsView extends Component {
|
|
20
|
-
constructor() {
|
|
21
|
-
super();
|
|
22
|
-
this.workflows = [];
|
|
23
|
-
this.selectedWorkflow = null;
|
|
24
|
-
this.chartInterval = null;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
async connectedCallback() {
|
|
28
|
-
super.connectedCallback();
|
|
29
|
-
this.loadWorkflows();
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
disconnectedCallback() {
|
|
33
|
-
this.stopChartUpdate();
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// ── Data ──
|
|
37
|
-
|
|
38
|
-
async loadWorkflows() {
|
|
39
|
-
try {
|
|
40
|
-
this.workflows = await api.getWorkflows();
|
|
41
|
-
this.renderCards();
|
|
42
|
-
} catch (e) {
|
|
43
|
-
console.error('Failed to load workflows', e);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
async selectWorkflow(name) {
|
|
48
|
-
if (this.selectedWorkflow?.name === name) return;
|
|
49
|
-
|
|
50
|
-
try {
|
|
51
|
-
const full = await api.getWorkflow(name);
|
|
52
|
-
this.selectedWorkflow = full;
|
|
53
|
-
this.renderCards();
|
|
54
|
-
this.renderDetail();
|
|
55
|
-
} catch (e) {
|
|
56
|
-
console.error('Failed to load workflow details', e);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// ── Left sidebar: cards ──
|
|
61
|
-
|
|
62
|
-
renderCards() {
|
|
63
|
-
const container = this.querySelector('#workflowCards');
|
|
64
|
-
if (!container) return;
|
|
65
|
-
|
|
66
|
-
if (!this.workflows.length) {
|
|
67
|
-
container.innerHTML = `
|
|
68
|
-
<div class="text-gray-500 text-center py-12">
|
|
69
|
-
<i class="fas fa-project-diagram text-4xl mb-4 block text-gray-600"></i>
|
|
70
|
-
<p class="text-sm">No workflows found</p>
|
|
71
|
-
</div>`;
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
container.innerHTML = this.workflows.map(wf => {
|
|
76
|
-
const isSelected = this.selectedWorkflow?.name === wf.name;
|
|
77
|
-
const isReact = wf.type === 'react';
|
|
78
|
-
const badgeClass = isReact ? 'bg-amber-500/20 text-amber-400' : 'bg-blue-500/20 text-blue-400';
|
|
79
|
-
|
|
80
|
-
return `
|
|
81
|
-
<div class="workflow-card cursor-pointer rounded-lg p-3 border transition-colors
|
|
82
|
-
${isSelected ? 'bg-dark-surface border-purple-500' : 'bg-dark-surface/50 border-dark-border hover:border-purple-500/50'}"
|
|
83
|
-
data-name="${wf.name}">
|
|
84
|
-
<div class="flex items-center justify-between mb-1">
|
|
85
|
-
<span class="font-semibold text-gray-100 text-sm truncate">${this.escapeHtml(wf.name)}</span>
|
|
86
|
-
<span class="text-xs px-1.5 py-0.5 rounded ${badgeClass} flex-shrink-0">${wf.type || 'steps'}</span>
|
|
87
|
-
</div>
|
|
88
|
-
<div class="text-xs text-gray-500 line-clamp-2">${this.escapeHtml(wf.description || 'No description')}</div>
|
|
89
|
-
<div class="text-xs text-gray-600 mt-1">v${wf.version || '1.0.0'}${!isReact && wf.steps ? ` · ${wf.steps} steps` : ''}</div>
|
|
90
|
-
</div>`;
|
|
91
|
-
}).join('');
|
|
92
|
-
|
|
93
|
-
container.querySelectorAll('.workflow-card').forEach(card => {
|
|
94
|
-
card.addEventListener('click', () => this.selectWorkflow(card.dataset.name));
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
// ── Right panel: detail ──
|
|
99
|
-
|
|
100
|
-
renderDetail() {
|
|
101
|
-
const container = this.querySelector('#workflowDetail');
|
|
102
|
-
if (!container || !this.selectedWorkflow) {
|
|
103
|
-
if (container) container.innerHTML = '<div class="text-gray-500 italic text-center py-12">Select a workflow to view details</div>';
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const wf = this.selectedWorkflow;
|
|
108
|
-
const isReact = wf.type === 'react';
|
|
109
|
-
|
|
110
|
-
container.innerHTML = `
|
|
111
|
-
${this.buildInfoHtml(wf)}
|
|
112
|
-
${!isReact ? this.buildDiagramHtml(wf.steps || []) : ''}
|
|
113
|
-
${this.buildInputsHtml(wf.input?.schema || {})}
|
|
114
|
-
<button id="runWorkflow"
|
|
115
|
-
class="bg-purple-600 hover:bg-purple-700 disabled:bg-gray-700 disabled:cursor-not-allowed text-white font-medium px-5 py-2 rounded-lg transition-colors flex items-center gap-2 text-sm">
|
|
116
|
-
<i class="fas fa-play text-xs"></i>
|
|
117
|
-
Run Workflow
|
|
118
|
-
</button>
|
|
119
|
-
`;
|
|
120
|
-
|
|
121
|
-
this.querySelector('#runWorkflow')?.addEventListener('click', () => this.runWorkflow());
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
buildInfoHtml(wf) {
|
|
125
|
-
const isReact = wf.type === 'react';
|
|
126
|
-
const badgeClass = isReact ? 'bg-amber-500/20 text-amber-400' : 'bg-blue-500/20 text-blue-400';
|
|
127
|
-
|
|
128
|
-
let metaHtml = '';
|
|
129
|
-
if (isReact) {
|
|
130
|
-
const g = wf.graph || {};
|
|
131
|
-
metaHtml = `
|
|
132
|
-
<div class="grid grid-cols-4 gap-3 mt-3 pt-3 border-t border-dark-border">
|
|
133
|
-
<div><span class="text-gray-500 text-xs block">Model</span><span class="text-gray-300 text-sm">${this.escapeHtml(g.model || 'default')}</span></div>
|
|
134
|
-
<div><span class="text-gray-500 text-xs block">Mode</span><span class="text-gray-300 text-sm">${g.executionMode || 'react'}</span></div>
|
|
135
|
-
<div><span class="text-gray-500 text-xs block">Max Iter</span><span class="text-gray-300 text-sm">${g.maxIterations ?? 10}</span></div>
|
|
136
|
-
<div><span class="text-gray-500 text-xs block">Tools</span><span class="text-gray-300 text-sm">${g.tools?.mode || 'all'}</span></div>
|
|
137
|
-
</div>`;
|
|
138
|
-
} else {
|
|
139
|
-
const c = wf.config || {};
|
|
140
|
-
metaHtml = `
|
|
141
|
-
<div class="grid grid-cols-3 gap-3 mt-3 pt-3 border-t border-dark-border">
|
|
142
|
-
<div><span class="text-gray-500 text-xs block">Steps</span><span class="text-gray-300 text-sm">${(wf.steps || []).length}</span></div>
|
|
143
|
-
<div><span class="text-gray-500 text-xs block">On Error</span><span class="text-gray-300 text-sm">${c.onError || 'stop'}</span></div>
|
|
144
|
-
<div><span class="text-gray-500 text-xs block">Timeout</span><span class="text-gray-300 text-sm">${((c.timeout || 300000) / 1000)}s</span></div>
|
|
145
|
-
</div>`;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return `
|
|
149
|
-
<div class="bg-dark-surface border border-dark-border rounded-lg p-4">
|
|
150
|
-
<div class="flex items-center gap-3">
|
|
151
|
-
<i class="fas ${isReact ? 'fa-atom' : 'fa-project-diagram'} text-purple-400"></i>
|
|
152
|
-
<div class="min-w-0">
|
|
153
|
-
<div class="flex items-center gap-2 flex-wrap">
|
|
154
|
-
<span class="font-semibold text-gray-100">${this.escapeHtml(wf.name)}</span>
|
|
155
|
-
<span class="text-xs px-2 py-0.5 rounded-full ${badgeClass}">${wf.type || 'steps'}</span>
|
|
156
|
-
<span class="text-xs text-gray-500">v${wf.version || '1.0.0'}</span>
|
|
157
|
-
</div>
|
|
158
|
-
<p class="text-xs text-gray-400 mt-0.5">${this.escapeHtml(wf.description || '')}</p>
|
|
159
|
-
</div>
|
|
160
|
-
</div>
|
|
161
|
-
${metaHtml}
|
|
162
|
-
</div>`;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
buildDiagramHtml(steps) {
|
|
166
|
-
if (!steps.length) return '';
|
|
167
|
-
|
|
168
|
-
const nodes = steps.map(step => `
|
|
169
|
-
<span class="text-gray-600 text-lg flex-shrink-0">→</span>
|
|
170
|
-
<div id="step-${step.id}" class="step-node flex flex-col items-center px-3 py-2 bg-blue-500/10 border border-blue-500/30 rounded-lg min-w-[100px] text-center transition-all">
|
|
171
|
-
<span class="font-semibold text-blue-300 text-xs">${step.id}</span>
|
|
172
|
-
<span class="text-xs text-gray-400">${step.agent}</span>
|
|
173
|
-
</div>
|
|
174
|
-
`).join('');
|
|
175
|
-
|
|
176
|
-
return `
|
|
177
|
-
<div class="bg-dark-surface border border-dark-border rounded-lg p-4 overflow-x-auto">
|
|
178
|
-
<div class="flex items-center gap-2 flex-nowrap min-w-max">
|
|
179
|
-
<div class="flex flex-col items-center px-3 py-2 bg-green-500/10 border border-green-500/30 rounded-lg min-w-[80px] text-center">
|
|
180
|
-
<span class="font-semibold text-green-400 text-xs">Input</span>
|
|
181
|
-
</div>
|
|
182
|
-
${nodes}
|
|
183
|
-
<span class="text-gray-600 text-lg flex-shrink-0">→</span>
|
|
184
|
-
<div class="flex flex-col items-center px-3 py-2 bg-green-500/10 border border-green-500/30 rounded-lg min-w-[80px] text-center">
|
|
185
|
-
<span class="font-semibold text-green-400 text-xs">Output</span>
|
|
186
|
-
</div>
|
|
187
|
-
</div>
|
|
188
|
-
</div>`;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
buildInputsHtml(schema) {
|
|
192
|
-
const entries = Object.entries(schema);
|
|
193
|
-
if (!entries.length) return '';
|
|
194
|
-
|
|
195
|
-
const fields = entries.map(([key, field]) => `
|
|
196
|
-
<div class="bg-dark-surface/50 border border-dark-border rounded-lg p-3">
|
|
197
|
-
<div class="flex items-center justify-between mb-1">
|
|
198
|
-
<label class="text-sm font-medium text-gray-300" for="wf-${key}">
|
|
199
|
-
${this.escapeHtml(key)}${field.required ? '<span class="text-red-400 ml-1">*</span>' : ''}
|
|
200
|
-
</label>
|
|
201
|
-
<span class="text-xs px-1.5 py-0.5 rounded bg-gray-700 text-gray-500">${field.type || 'string'}</span>
|
|
202
|
-
</div>
|
|
203
|
-
<input type="text" id="wf-${key}"
|
|
204
|
-
placeholder="${field.default ? `Default: ${field.default}` : field.required ? 'Required' : 'Optional'}"
|
|
205
|
-
value="${field.default || ''}"
|
|
206
|
-
class="w-full bg-dark-bg border border-dark-border rounded-lg px-3 py-2 text-sm text-gray-100 placeholder-gray-600 focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-transparent">
|
|
207
|
-
${field.description ? `<p class="text-xs text-gray-500 mt-1">${this.escapeHtml(field.description)}</p>` : ''}
|
|
208
|
-
</div>
|
|
209
|
-
`).join('');
|
|
210
|
-
|
|
211
|
-
return `
|
|
212
|
-
<div class="space-y-3">
|
|
213
|
-
<h3 class="text-sm font-semibold text-gray-300 flex items-center gap-2">
|
|
214
|
-
<i class="fas fa-keyboard text-gray-500 text-xs"></i>
|
|
215
|
-
Inputs
|
|
216
|
-
</h3>
|
|
217
|
-
${fields}
|
|
218
|
-
</div>`;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// ── Execution ──
|
|
222
|
-
|
|
223
|
-
async runWorkflow() {
|
|
224
|
-
if (!this.selectedWorkflow) return;
|
|
225
|
-
|
|
226
|
-
const inputs = {};
|
|
227
|
-
this.querySelectorAll('input[id^="wf-"]').forEach(input => {
|
|
228
|
-
const key = input.id.replace('wf-', '');
|
|
229
|
-
if (input.value) inputs[key] = input.value;
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
const runBtn = this.querySelector('#runWorkflow');
|
|
233
|
-
const logEl = this.querySelector('#statusLog');
|
|
234
|
-
const outputEl = this.querySelector('#workflowOutput');
|
|
235
|
-
|
|
236
|
-
logEl.innerHTML = '';
|
|
237
|
-
outputEl.textContent = 'No output yet';
|
|
238
|
-
outputEl.className = outputEl.className.replace('text-gray-300', 'text-gray-500');
|
|
239
|
-
this.querySelector('#statusMessage').textContent = 'Starting...';
|
|
240
|
-
this.querySelector('#statusDot').className = 'inline-block w-2 h-2 rounded-full bg-blue-400 animate-pulse';
|
|
241
|
-
if (runBtn) runBtn.disabled = true;
|
|
242
|
-
|
|
243
|
-
this.startChartUpdate();
|
|
244
|
-
|
|
245
|
-
try {
|
|
246
|
-
const res = await api.startWorkflowStream(this.selectedWorkflow.name, inputs);
|
|
247
|
-
const reader = res.body.getReader();
|
|
248
|
-
const decoder = new TextDecoder();
|
|
249
|
-
|
|
250
|
-
while (true) {
|
|
251
|
-
const { done, value } = await reader.read();
|
|
252
|
-
if (done) break;
|
|
253
|
-
|
|
254
|
-
const chunk = decoder.decode(value);
|
|
255
|
-
for (const line of chunk.split('\n')) {
|
|
256
|
-
if (!line.startsWith('data: ')) continue;
|
|
257
|
-
const data = line.slice(6);
|
|
258
|
-
if (data === '[DONE]') continue;
|
|
259
|
-
try { this.handleStatusUpdate(JSON.parse(data)); } catch (e) { }
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
} catch (e) {
|
|
263
|
-
this.addLog(`Error: ${e.message}`, 'workflow_error');
|
|
264
|
-
this.querySelector('#statusMessage').textContent = 'Error';
|
|
265
|
-
this.querySelector('#statusDot').className = 'inline-block w-2 h-2 rounded-full bg-red-400';
|
|
266
|
-
} finally {
|
|
267
|
-
if (runBtn) runBtn.disabled = false;
|
|
268
|
-
this.stopChartUpdate();
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
handleStatusUpdate(update) {
|
|
273
|
-
if (update.type === 'status') {
|
|
274
|
-
const { message, type, stepId } = update.data;
|
|
275
|
-
const statusMsg = this.querySelector('#statusMessage');
|
|
276
|
-
const statusDot = this.querySelector('#statusDot');
|
|
277
|
-
|
|
278
|
-
if (type === 'workflow_complete') {
|
|
279
|
-
statusMsg.textContent = 'Completed';
|
|
280
|
-
statusDot.className = 'inline-block w-2 h-2 rounded-full bg-green-400';
|
|
281
|
-
} else if (type === 'workflow_error') {
|
|
282
|
-
statusMsg.textContent = 'Error';
|
|
283
|
-
statusDot.className = 'inline-block w-2 h-2 rounded-full bg-red-400';
|
|
284
|
-
} else if (type === 'workflow_interrupt') {
|
|
285
|
-
statusMsg.textContent = 'Interrupted — Awaiting input';
|
|
286
|
-
statusDot.className = 'inline-block w-2 h-2 rounded-full bg-amber-400';
|
|
287
|
-
} else {
|
|
288
|
-
statusMsg.textContent = message;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
this.addLog(message, type);
|
|
292
|
-
|
|
293
|
-
if (stepId) {
|
|
294
|
-
const stepEl = this.querySelector(`#step-${stepId}`);
|
|
295
|
-
if (stepEl) {
|
|
296
|
-
if (type === 'step_start') {
|
|
297
|
-
stepEl.className = stepEl.className
|
|
298
|
-
.replace('bg-blue-500/10', 'bg-yellow-500/10 animate-pulse')
|
|
299
|
-
.replace('border-blue-500/30', 'border-yellow-500/30');
|
|
300
|
-
}
|
|
301
|
-
if (type === 'step_complete') {
|
|
302
|
-
stepEl.className = stepEl.className
|
|
303
|
-
.replace('bg-yellow-500/10 animate-pulse', 'bg-green-500/10')
|
|
304
|
-
.replace('border-yellow-500/30', 'border-green-500/30');
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
} else if (update.type === 'result') {
|
|
309
|
-
const outputEl = this.querySelector('#workflowOutput');
|
|
310
|
-
outputEl.className = outputEl.className.replace('text-gray-500', 'text-gray-300');
|
|
311
|
-
outputEl.textContent = JSON.stringify(update.data.output || update.data, null, 2);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
addLog(msg, type) {
|
|
316
|
-
const log = this.querySelector('#statusLog');
|
|
317
|
-
const config = LOG_CONFIG[type] || { icon: 'fa-circle', color: 'gray' };
|
|
318
|
-
|
|
319
|
-
const div = document.createElement('div');
|
|
320
|
-
div.className = 'text-xs font-mono flex items-start gap-2 py-0.5';
|
|
321
|
-
|
|
322
|
-
const time = new Date().toLocaleTimeString();
|
|
323
|
-
div.innerHTML = `
|
|
324
|
-
<span class="text-gray-600 flex-shrink-0">${time}</span>
|
|
325
|
-
<i class="fas ${config.icon} text-${config.color}-400 text-xs mt-0.5 flex-shrink-0 w-3 text-center"></i>
|
|
326
|
-
<span class="text-${config.color}-400">${this.escapeHtml(msg)}</span>
|
|
327
|
-
`;
|
|
328
|
-
|
|
329
|
-
log.appendChild(div);
|
|
330
|
-
log.scrollTop = log.scrollHeight;
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
// ── Timer ──
|
|
334
|
-
|
|
335
|
-
startChartUpdate() {
|
|
336
|
-
this.stopChartUpdate();
|
|
337
|
-
const start = Date.now();
|
|
338
|
-
const timeEl = this.querySelector('#statusTime');
|
|
339
|
-
timeEl.textContent = '0s';
|
|
340
|
-
this.chartInterval = setInterval(() => {
|
|
341
|
-
timeEl.textContent = `${Math.floor((Date.now() - start) / 1000)}s`;
|
|
342
|
-
}, 1000);
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
stopChartUpdate() {
|
|
346
|
-
if (this.chartInterval) {
|
|
347
|
-
clearInterval(this.chartInterval);
|
|
348
|
-
this.chartInterval = null;
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
// ── Helpers ──
|
|
353
|
-
|
|
354
|
-
escapeHtml(text) {
|
|
355
|
-
if (!text) return '';
|
|
356
|
-
return String(text).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
postRender() {
|
|
360
|
-
// No static event bindings needed — cards and run button bind dynamically
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
template() {
|
|
364
|
-
return `
|
|
365
|
-
<div class="flex h-full gap-4">
|
|
366
|
-
<!-- Left sidebar -->
|
|
367
|
-
<div class="w-64 flex-shrink-0 overflow-y-auto custom-scrollbar pr-2">
|
|
368
|
-
<div class="flex items-center justify-between mb-3">
|
|
369
|
-
<h3 class="text-sm font-semibold text-gray-400 uppercase tracking-wider">Workflows</h3>
|
|
370
|
-
</div>
|
|
371
|
-
<div id="workflowCards" class="space-y-2">
|
|
372
|
-
<div class="text-gray-500 italic text-center py-8 text-sm">Loading...</div>
|
|
373
|
-
</div>
|
|
374
|
-
</div>
|
|
375
|
-
|
|
376
|
-
<!-- Right panel -->
|
|
377
|
-
<div class="flex-1 flex flex-col h-full overflow-hidden pl-4 border-l border-dark-border">
|
|
378
|
-
<!-- Detail area (scrollable) -->
|
|
379
|
-
<div id="workflowDetail" class="flex-1 overflow-y-auto custom-scrollbar space-y-3 pb-3 min-h-0">
|
|
380
|
-
<div class="text-gray-500 italic text-center py-12">Select a workflow to view details</div>
|
|
381
|
-
</div>
|
|
382
|
-
|
|
383
|
-
<!-- Activity & Output (always visible, pinned bottom) -->
|
|
384
|
-
<div class="flex-shrink-0 pt-3 border-t border-dark-border space-y-3">
|
|
385
|
-
<!-- Activity log -->
|
|
386
|
-
<div>
|
|
387
|
-
<div class="flex justify-between items-center mb-1.5">
|
|
388
|
-
<h3 class="text-xs font-semibold text-gray-400 uppercase tracking-wider flex items-center gap-1.5">
|
|
389
|
-
<i class="fas fa-terminal"></i>
|
|
390
|
-
Activity
|
|
391
|
-
</h3>
|
|
392
|
-
<div class="flex items-center gap-2">
|
|
393
|
-
<span id="statusDot" class="inline-block w-2 h-2 rounded-full bg-gray-600"></span>
|
|
394
|
-
<span id="statusMessage" class="text-xs text-gray-500">Idle</span>
|
|
395
|
-
<span id="statusTime" class="text-xs font-mono text-gray-600">—</span>
|
|
396
|
-
</div>
|
|
397
|
-
</div>
|
|
398
|
-
<div id="statusLog" class="bg-dark-bg rounded-lg p-2.5 h-32 overflow-y-auto space-y-0.5 border border-dark-border custom-scrollbar"></div>
|
|
399
|
-
</div>
|
|
400
|
-
|
|
401
|
-
<!-- Output -->
|
|
402
|
-
<div>
|
|
403
|
-
<h3 class="text-xs font-semibold text-gray-400 uppercase tracking-wider mb-1.5 flex items-center gap-1.5">
|
|
404
|
-
<i class="fas fa-code"></i>
|
|
405
|
-
Output
|
|
406
|
-
</h3>
|
|
407
|
-
<div id="workflowOutput" class="bg-dark-bg border border-dark-border rounded-lg p-2.5 h-24 font-mono text-xs text-gray-500 whitespace-pre-wrap overflow-auto custom-scrollbar">No output yet</div>
|
|
408
|
-
</div>
|
|
409
|
-
</div>
|
|
410
|
-
</div>
|
|
411
|
-
</div>
|
|
412
|
-
`;
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
customElements.define('workflows-view', WorkflowsView);
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
name: knowledge-broker
|
|
2
|
-
description: Searches and analyzes knowledge bases for insights across multiple data sources
|
|
3
|
-
version: "1.0.0"
|
|
4
|
-
|
|
5
|
-
llm:
|
|
6
|
-
name: default
|
|
7
|
-
temperature: 0.3
|
|
8
|
-
|
|
9
|
-
prompt:
|
|
10
|
-
system: |
|
|
11
|
-
You are a knowledge broker with access to multiple knowledge bases and tools.
|
|
12
|
-
|
|
13
|
-
When answering:
|
|
14
|
-
1. Search the relevant knowledge bases for the user's query
|
|
15
|
-
2. Analyze the context and cross-reference across sources when useful
|
|
16
|
-
3. Provide clear, structured answers grounded in the data
|
|
17
|
-
4. Reference specific entities, relationships, or patterns found in the results
|
|
18
|
-
5. If data is insufficient, state what was found and what is missing
|
|
19
|
-
|
|
20
|
-
You also have access to web fetch capabilities via the htmlhost server for retrieving and analyzing HTML content from URLs.
|
|
21
|
-
inputVariables:
|
|
22
|
-
- query
|
|
23
|
-
|
|
24
|
-
tools:
|
|
25
|
-
- knowledge:web-docs
|
|
26
|
-
- knowledge:org-chart
|
|
27
|
-
- knowledge:pet-store
|
|
28
|
-
- function:calculator
|
|
29
|
-
- mcp:htmlhost
|
|
30
|
-
|
|
31
|
-
output:
|
|
32
|
-
format: text
|
|
33
|
-
|
|
34
|
-
metadata:
|
|
35
|
-
category: rag-example
|
|
36
|
-
tags:
|
|
37
|
-
- knowledge
|
|
38
|
-
- analytics
|
|
39
|
-
- example
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
name: sandbox
|
|
2
|
-
description: A coding assistant that can execute JavaScript, fetch web pages, and search the web
|
|
3
|
-
version: "1.0.0"
|
|
4
|
-
|
|
5
|
-
llm:
|
|
6
|
-
name: default
|
|
7
|
-
temperature: 0.3
|
|
8
|
-
|
|
9
|
-
prompt:
|
|
10
|
-
system: |
|
|
11
|
-
You are a hands-on coding assistant with access to a JavaScript sandbox and web tools.
|
|
12
|
-
|
|
13
|
-
Capabilities:
|
|
14
|
-
1. **Code execution** — Run JavaScript in an isolated sandbox using sandbox_exec.
|
|
15
|
-
Use console.log() for output and return values for results.
|
|
16
|
-
The sandbox supports async/await, standard JS globals (JSON, Math, Date, Buffer, URL, etc.),
|
|
17
|
-
and persists state across calls within a session.
|
|
18
|
-
|
|
19
|
-
2. **Web fetching** — Fetch and read web pages or API endpoints using sandbox_web_fetch.
|
|
20
|
-
HTML pages are automatically converted to clean markdown.
|
|
21
|
-
Use raw=true for JSON APIs or non-HTML content.
|
|
22
|
-
|
|
23
|
-
3. **Web search** — Search the web using sandbox_web_search to find information,
|
|
24
|
-
documentation, or answers to questions.
|
|
25
|
-
|
|
26
|
-
Workflow:
|
|
27
|
-
- When asked to solve a problem, write and execute code to verify your solution
|
|
28
|
-
- When asked about external data, search the web or fetch specific URLs
|
|
29
|
-
- Combine tools: search for information, fetch relevant pages, then process data with code
|
|
30
|
-
- Always show your work — share code and results with the user
|
|
31
|
-
|
|
32
|
-
Rules:
|
|
33
|
-
- The sandbox does NOT have fetch or require — use sandbox_web_fetch for HTTP requests
|
|
34
|
-
- Check the error field in execution results to catch failures
|
|
35
|
-
- For multi-step computations, use the persistent sandbox state to build up results
|
|
36
|
-
inputVariables:
|
|
37
|
-
- query
|
|
38
|
-
|
|
39
|
-
tools:
|
|
40
|
-
- sandbox:exec
|
|
41
|
-
- sandbox:web_fetch
|
|
42
|
-
- sandbox:web_search
|
|
43
|
-
|
|
44
|
-
skills:
|
|
45
|
-
- sandbox
|
|
46
|
-
|
|
47
|
-
output:
|
|
48
|
-
format: text
|
|
49
|
-
|
|
50
|
-
metadata:
|
|
51
|
-
category: utility
|
|
52
|
-
tags:
|
|
53
|
-
- sandbox
|
|
54
|
-
- coding
|
|
55
|
-
- web
|
|
56
|
-
- example
|