pulseed 0.4.14 → 0.4.16
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/assets/seedy.png +0 -0
- package/dist/adapters/agents/openai-codex.d.ts +2 -2
- package/dist/adapters/agents/openai-codex.js +2 -2
- package/dist/adapters/agents/openai-codex.js.map +1 -1
- package/dist/adapters/types/mcp.d.ts +6 -6
- package/dist/base/config/global-config.d.ts +44 -0
- package/dist/base/config/global-config.d.ts.map +1 -1
- package/dist/base/config/global-config.js +39 -2
- package/dist/base/config/global-config.js.map +1 -1
- package/dist/base/config/tool-metadata.d.ts +1 -1
- package/dist/base/config/tool-metadata.d.ts.map +1 -1
- package/dist/base/config/tool-metadata.js +21 -0
- package/dist/base/config/tool-metadata.js.map +1 -1
- package/dist/base/llm/codex-llm-client.d.ts +7 -1
- package/dist/base/llm/codex-llm-client.d.ts.map +1 -1
- package/dist/base/llm/codex-llm-client.js +10 -4
- package/dist/base/llm/codex-llm-client.js.map +1 -1
- package/dist/base/llm/provider-config.d.ts +8 -1
- package/dist/base/llm/provider-config.d.ts.map +1 -1
- package/dist/base/llm/provider-config.js +156 -94
- package/dist/base/llm/provider-config.js.map +1 -1
- package/dist/base/llm/provider-factory.d.ts.map +1 -1
- package/dist/base/llm/provider-factory.js +15 -0
- package/dist/base/llm/provider-factory.js.map +1 -1
- package/dist/base/utils/json-io.d.ts +6 -1
- package/dist/base/utils/json-io.d.ts.map +1 -1
- package/dist/base/utils/json-io.js +16 -3
- package/dist/base/utils/json-io.js.map +1 -1
- package/dist/interface/chat/chat-history.d.ts +7 -1
- package/dist/interface/chat/chat-history.d.ts.map +1 -1
- package/dist/interface/chat/chat-history.js +35 -2
- package/dist/interface/chat/chat-history.js.map +1 -1
- package/dist/interface/chat/chat-runner.d.ts +33 -1
- package/dist/interface/chat/chat-runner.d.ts.map +1 -1
- package/dist/interface/chat/chat-runner.js +559 -7
- package/dist/interface/chat/chat-runner.js.map +1 -1
- package/dist/interface/chat/grounding.d.ts.map +1 -1
- package/dist/interface/chat/grounding.js +2 -1
- package/dist/interface/chat/grounding.js.map +1 -1
- package/dist/interface/chat/mutation-tool-defs.d.ts +22 -9
- package/dist/interface/chat/mutation-tool-defs.d.ts.map +1 -1
- package/dist/interface/chat/mutation-tool-defs.js +26 -42
- package/dist/interface/chat/mutation-tool-defs.js.map +1 -1
- package/dist/interface/chat/self-knowledge-tools.d.ts +4 -0
- package/dist/interface/chat/self-knowledge-tools.d.ts.map +1 -1
- package/dist/interface/chat/self-knowledge-tools.js +16 -6
- package/dist/interface/chat/self-knowledge-tools.js.map +1 -1
- package/dist/interface/cli/commands/daemon.d.ts.map +1 -1
- package/dist/interface/cli/commands/daemon.js +4 -14
- package/dist/interface/cli/commands/daemon.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/apply.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/apply.js +4 -0
- package/dist/interface/cli/commands/setup/import/apply.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/discovery.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/discovery.js +10 -2
- package/dist/interface/cli/commands/setup/import/discovery.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/flow.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup/import/flow.js +11 -1
- package/dist/interface/cli/commands/setup/import/flow.js.map +1 -1
- package/dist/interface/cli/commands/setup/import/types.d.ts +3 -0
- package/dist/interface/cli/commands/setup/import/types.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup-wizard.d.ts.map +1 -1
- package/dist/interface/cli/commands/setup-wizard.js +14 -1
- package/dist/interface/cli/commands/setup-wizard.js.map +1 -1
- package/dist/interface/cli/setup.d.ts.map +1 -1
- package/dist/interface/cli/setup.js +6 -5
- package/dist/interface/cli/setup.js.map +1 -1
- package/dist/interface/mcp-server/index.d.ts.map +1 -1
- package/dist/interface/mcp-server/index.js +2 -1
- package/dist/interface/mcp-server/index.js.map +1 -1
- package/dist/interface/tui/app.d.ts +8 -0
- package/dist/interface/tui/app.d.ts.map +1 -1
- package/dist/interface/tui/app.js +50 -27
- package/dist/interface/tui/app.js.map +1 -1
- package/dist/interface/tui/chat.d.ts +2 -1
- package/dist/interface/tui/chat.d.ts.map +1 -1
- package/dist/interface/tui/chat.js +17 -22
- package/dist/interface/tui/chat.js.map +1 -1
- package/dist/interface/tui/clipboard.d.ts.map +1 -1
- package/dist/interface/tui/clipboard.js +2 -1
- package/dist/interface/tui/clipboard.js.map +1 -1
- package/dist/interface/tui/cursor-tracker.d.ts +4 -4
- package/dist/interface/tui/cursor-tracker.d.ts.map +1 -1
- package/dist/interface/tui/cursor-tracker.js +6 -10
- package/dist/interface/tui/cursor-tracker.js.map +1 -1
- package/dist/interface/tui/entry.d.ts.map +1 -1
- package/dist/interface/tui/entry.js +198 -154
- package/dist/interface/tui/entry.js.map +1 -1
- package/dist/interface/tui/flicker/AlternateScreen.d.ts +2 -1
- package/dist/interface/tui/flicker/AlternateScreen.d.ts.map +1 -1
- package/dist/interface/tui/flicker/AlternateScreen.js +5 -4
- package/dist/interface/tui/flicker/AlternateScreen.js.map +1 -1
- package/dist/interface/tui/flicker/MouseTracking.d.ts +2 -1
- package/dist/interface/tui/flicker/MouseTracking.d.ts.map +1 -1
- package/dist/interface/tui/flicker/MouseTracking.js +4 -3
- package/dist/interface/tui/flicker/MouseTracking.js.map +1 -1
- package/dist/interface/tui/flicker/frame-writer.js +3 -3
- package/dist/interface/tui/flicker/frame-writer.js.map +1 -1
- package/dist/interface/tui/fullscreen-chat.d.ts +3 -1
- package/dist/interface/tui/fullscreen-chat.d.ts.map +1 -1
- package/dist/interface/tui/fullscreen-chat.js +47 -44
- package/dist/interface/tui/fullscreen-chat.js.map +1 -1
- package/dist/interface/tui/git-branch.d.ts +2 -0
- package/dist/interface/tui/git-branch.d.ts.map +1 -0
- package/dist/interface/tui/git-branch.js +14 -0
- package/dist/interface/tui/git-branch.js.map +1 -0
- package/dist/interface/tui/output-controller.d.ts +10 -0
- package/dist/interface/tui/output-controller.d.ts.map +1 -0
- package/dist/interface/tui/output-controller.js +79 -0
- package/dist/interface/tui/output-controller.js.map +1 -0
- package/dist/interface/tui/terminal-output.d.ts +6 -0
- package/dist/interface/tui/terminal-output.d.ts.map +1 -0
- package/dist/interface/tui/terminal-output.js +11 -0
- package/dist/interface/tui/terminal-output.js.map +1 -0
- package/dist/interface/tui/test-app.d.ts +2 -1
- package/dist/interface/tui/test-app.d.ts.map +1 -1
- package/dist/interface/tui/test-app.js +2 -2
- package/dist/interface/tui/test-app.js.map +1 -1
- package/dist/interface/tui/test-entry.d.ts.map +1 -1
- package/dist/interface/tui/test-entry.js +40 -42
- package/dist/interface/tui/test-entry.js.map +1 -1
- package/dist/interface/tui/text-width.d.ts +3 -0
- package/dist/interface/tui/text-width.d.ts.map +1 -0
- package/dist/interface/tui/text-width.js +8 -0
- package/dist/interface/tui/text-width.js.map +1 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts +4 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js +29 -5
- package/dist/orchestrator/execution/agent-loop/agent-loop-context-assembler.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts +3 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js +13 -0
- package/dist/orchestrator/execution/agent-loop/agent-loop-prompts.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts +5 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js +4 -0
- package/dist/orchestrator/execution/agent-loop/chat-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/execution-policy.d.ts +26 -0
- package/dist/orchestrator/execution/agent-loop/execution-policy.d.ts.map +1 -0
- package/dist/orchestrator/execution/agent-loop/execution-policy.js +45 -0
- package/dist/orchestrator/execution/agent-loop/execution-policy.js.map +1 -0
- package/dist/orchestrator/execution/agent-loop/index.d.ts +1 -0
- package/dist/orchestrator/execution/agent-loop/index.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/index.js +1 -0
- package/dist/orchestrator/execution/agent-loop/index.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts +2 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js +2 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-context.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js +11 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-factory.js.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts +4 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.d.ts.map +1 -1
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js +3 -0
- package/dist/orchestrator/execution/agent-loop/task-agent-loop-runner.js.map +1 -1
- package/dist/orchestrator/execution/task/task-executor.d.ts.map +1 -1
- package/dist/orchestrator/execution/task/task-executor.js +9 -14
- package/dist/orchestrator/execution/task/task-executor.js.map +1 -1
- package/dist/platform/observation/observation-tools.d.ts.map +1 -1
- package/dist/platform/observation/observation-tools.js +4 -1
- package/dist/platform/observation/observation-tools.js.map +1 -1
- package/dist/platform/soil/config.d.ts.map +1 -1
- package/dist/platform/soil/config.js +1 -2
- package/dist/platform/soil/config.js.map +1 -1
- package/dist/platform/soil/contracts.d.ts +36 -36
- package/dist/platform/soil/display/index.d.ts +4 -0
- package/dist/platform/soil/display/index.d.ts.map +1 -0
- package/dist/platform/soil/display/index.js +4 -0
- package/dist/platform/soil/display/index.js.map +1 -0
- package/dist/platform/soil/display/materialize.d.ts +3 -0
- package/dist/platform/soil/display/materialize.d.ts.map +1 -0
- package/dist/platform/soil/display/materialize.js +381 -0
- package/dist/platform/soil/display/materialize.js.map +1 -0
- package/dist/platform/soil/display/registry.d.ts +4 -0
- package/dist/platform/soil/display/registry.d.ts.map +1 -0
- package/dist/platform/soil/display/registry.js +19 -0
- package/dist/platform/soil/display/registry.js.map +1 -0
- package/dist/platform/soil/display/types.d.ts +28 -0
- package/dist/platform/soil/display/types.d.ts.map +1 -0
- package/dist/platform/soil/display/types.js +2 -0
- package/dist/platform/soil/display/types.js.map +1 -0
- package/dist/platform/soil/index.d.ts +1 -0
- package/dist/platform/soil/index.d.ts.map +1 -1
- package/dist/platform/soil/index.js +1 -0
- package/dist/platform/soil/index.js.map +1 -1
- package/dist/platform/soil/open.d.ts.map +1 -1
- package/dist/platform/soil/open.js +2 -0
- package/dist/platform/soil/open.js.map +1 -1
- package/dist/platform/soil/publish/publisher.d.ts.map +1 -1
- package/dist/platform/soil/publish/publisher.js +2 -0
- package/dist/platform/soil/publish/publisher.js.map +1 -1
- package/dist/reflection/evening-catchup.d.ts.map +1 -1
- package/dist/reflection/evening-catchup.js +6 -41
- package/dist/reflection/evening-catchup.js.map +1 -1
- package/dist/reflection/morning-planning.d.ts.map +1 -1
- package/dist/reflection/morning-planning.js +6 -46
- package/dist/reflection/morning-planning.js.map +1 -1
- package/dist/reflection/reflection-utils.d.ts +16 -0
- package/dist/reflection/reflection-utils.d.ts.map +1 -0
- package/dist/reflection/reflection-utils.js +56 -0
- package/dist/reflection/reflection-utils.js.map +1 -0
- package/dist/reflection/weekly-review.d.ts.map +1 -1
- package/dist/reflection/weekly-review.js +3 -12
- package/dist/reflection/weekly-review.js.map +1 -1
- package/dist/reporting/report-formatters.d.ts +7 -0
- package/dist/reporting/report-formatters.d.ts.map +1 -1
- package/dist/reporting/report-formatters.js +22 -33
- package/dist/reporting/report-formatters.js.map +1 -1
- package/dist/reporting/reporting-engine.d.ts.map +1 -1
- package/dist/reporting/reporting-engine.js +34 -49
- package/dist/reporting/reporting-engine.js.map +1 -1
- package/dist/runtime/builtin-integrations.d.ts +4 -0
- package/dist/runtime/builtin-integrations.d.ts.map +1 -0
- package/dist/runtime/builtin-integrations.js +67 -0
- package/dist/runtime/builtin-integrations.js.map +1 -0
- package/dist/runtime/daemon/runner-lifecycle.d.ts +5 -0
- package/dist/runtime/daemon/runner-lifecycle.d.ts.map +1 -1
- package/dist/runtime/daemon/runner-lifecycle.js +6 -4
- package/dist/runtime/daemon/runner-lifecycle.js.map +1 -1
- package/dist/runtime/daemon/runner.d.ts +3 -0
- package/dist/runtime/daemon/runner.d.ts.map +1 -1
- package/dist/runtime/daemon/runner.js +1 -0
- package/dist/runtime/daemon/runner.js.map +1 -1
- package/dist/runtime/event/server.d.ts +1 -1
- package/dist/runtime/event/server.d.ts.map +1 -1
- package/dist/runtime/event/server.js +5 -27
- package/dist/runtime/event/server.js.map +1 -1
- package/dist/runtime/executor/loop-supervisor.d.ts.map +1 -1
- package/dist/runtime/executor/loop-supervisor.js +2 -2
- package/dist/runtime/executor/loop-supervisor.js.map +1 -1
- package/dist/runtime/foreign-plugins/compatibility.d.ts +7 -0
- package/dist/runtime/foreign-plugins/compatibility.d.ts.map +1 -0
- package/dist/runtime/foreign-plugins/compatibility.js +175 -0
- package/dist/runtime/foreign-plugins/compatibility.js.map +1 -0
- package/dist/runtime/foreign-plugins/index.d.ts +3 -0
- package/dist/runtime/foreign-plugins/index.d.ts.map +1 -0
- package/dist/runtime/foreign-plugins/index.js +2 -0
- package/dist/runtime/foreign-plugins/index.js.map +1 -0
- package/dist/runtime/foreign-plugins/types.d.ts +25 -0
- package/dist/runtime/foreign-plugins/types.d.ts.map +1 -0
- package/dist/runtime/foreign-plugins/types.js +2 -0
- package/dist/runtime/foreign-plugins/types.js.map +1 -0
- package/dist/runtime/interactive-automation/default-registry.d.ts +9 -0
- package/dist/runtime/interactive-automation/default-registry.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/default-registry.js +24 -0
- package/dist/runtime/interactive-automation/default-registry.js.map +1 -0
- package/dist/runtime/interactive-automation/index.d.ts +9 -0
- package/dist/runtime/interactive-automation/index.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/index.js +9 -0
- package/dist/runtime/interactive-automation/index.js.map +1 -0
- package/dist/runtime/interactive-automation/providers/anthropic-computer-use.d.ts +14 -0
- package/dist/runtime/interactive-automation/providers/anthropic-computer-use.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/providers/anthropic-computer-use.js +33 -0
- package/dist/runtime/interactive-automation/providers/anthropic-computer-use.js.map +1 -0
- package/dist/runtime/interactive-automation/providers/codex-app.d.ts +29 -0
- package/dist/runtime/interactive-automation/providers/codex-app.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/providers/codex-app.js +67 -0
- package/dist/runtime/interactive-automation/providers/codex-app.js.map +1 -0
- package/dist/runtime/interactive-automation/providers/manus-browser.d.ts +23 -0
- package/dist/runtime/interactive-automation/providers/manus-browser.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/providers/manus-browser.js +88 -0
- package/dist/runtime/interactive-automation/providers/manus-browser.js.map +1 -0
- package/dist/runtime/interactive-automation/providers/noop.d.ts +21 -0
- package/dist/runtime/interactive-automation/providers/noop.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/providers/noop.js +59 -0
- package/dist/runtime/interactive-automation/providers/noop.js.map +1 -0
- package/dist/runtime/interactive-automation/providers/perplexity-research.d.ts +25 -0
- package/dist/runtime/interactive-automation/providers/perplexity-research.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/providers/perplexity-research.js +124 -0
- package/dist/runtime/interactive-automation/providers/perplexity-research.js.map +1 -0
- package/dist/runtime/interactive-automation/registry.d.ts +20 -0
- package/dist/runtime/interactive-automation/registry.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/registry.js +55 -0
- package/dist/runtime/interactive-automation/registry.js.map +1 -0
- package/dist/runtime/interactive-automation/types.d.ts +132 -0
- package/dist/runtime/interactive-automation/types.d.ts.map +1 -0
- package/dist/runtime/interactive-automation/types.js +8 -0
- package/dist/runtime/interactive-automation/types.js.map +1 -0
- package/dist/runtime/schedule/engine.d.ts +12 -0
- package/dist/runtime/schedule/engine.d.ts.map +1 -1
- package/dist/runtime/schedule/engine.js +402 -243
- package/dist/runtime/schedule/engine.js.map +1 -1
- package/dist/runtime/types/builtin-integration.d.ts +13 -0
- package/dist/runtime/types/builtin-integration.d.ts.map +1 -0
- package/dist/runtime/types/builtin-integration.js +2 -0
- package/dist/runtime/types/builtin-integration.js.map +1 -0
- package/dist/tools/automation/InteractiveAutomationTools.d.ts +333 -0
- package/dist/tools/automation/InteractiveAutomationTools.d.ts.map +1 -0
- package/dist/tools/automation/InteractiveAutomationTools.js +424 -0
- package/dist/tools/automation/InteractiveAutomationTools.js.map +1 -0
- package/dist/tools/automation/index.d.ts +2 -0
- package/dist/tools/automation/index.d.ts.map +1 -0
- package/dist/tools/automation/index.js +2 -0
- package/dist/tools/automation/index.js.map +1 -0
- package/dist/tools/builtin/index.d.ts +6 -0
- package/dist/tools/builtin/index.d.ts.map +1 -1
- package/dist/tools/builtin/index.js +25 -0
- package/dist/tools/builtin/index.js.map +1 -1
- package/dist/tools/execution/SoilOpenTool/SoilOpenTool.d.ts +4 -4
- package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.d.ts +40 -8
- package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.d.ts.map +1 -1
- package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.js +28 -4
- package/dist/tools/execution/SpawnSessionTool/SpawnSessionTool.js.map +1 -1
- package/dist/tools/executor.d.ts.map +1 -1
- package/dist/tools/executor.js +18 -2
- package/dist/tools/executor.js.map +1 -1
- package/dist/tools/fs/FileEditTool/FileEditTool.js +1 -1
- package/dist/tools/fs/FileEditTool/FileEditTool.js.map +1 -1
- package/dist/tools/fs/FileValidationTool/FileValidationTool.d.ts +1 -1
- package/dist/tools/fs/FileValidationTool/FileValidationTool.d.ts.map +1 -1
- package/dist/tools/fs/FileValidationTool/FileValidationTool.js +3 -16
- package/dist/tools/fs/FileValidationTool/FileValidationTool.js.map +1 -1
- package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts +12 -0
- package/dist/tools/fs/FileValidationTool/protected-path-policy.d.ts.map +1 -0
- package/dist/tools/fs/FileValidationTool/protected-path-policy.js +58 -0
- package/dist/tools/fs/FileValidationTool/protected-path-policy.js.map +1 -0
- package/dist/tools/fs/FileWriteTool/FileWriteTool.js +1 -1
- package/dist/tools/fs/FileWriteTool/FileWriteTool.js.map +1 -1
- package/dist/tools/fs/GlobTool/GlobTool.js +1 -1
- package/dist/tools/fs/GlobTool/GlobTool.js.map +1 -1
- package/dist/tools/fs/GrepTool/GrepTool.js +1 -1
- package/dist/tools/fs/GrepTool/GrepTool.js.map +1 -1
- package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js +1 -1
- package/dist/tools/fs/JsonQueryTool/JsonQueryTool.js.map +1 -1
- package/dist/tools/fs/ListDirTool/ListDirTool.js +1 -1
- package/dist/tools/fs/ListDirTool/ListDirTool.js.map +1 -1
- package/dist/tools/fs/ReadPulseedFileTool/ReadPulseedFileTool.d.ts.map +1 -1
- package/dist/tools/fs/ReadPulseedFileTool/ReadPulseedFileTool.js +21 -5
- package/dist/tools/fs/ReadPulseedFileTool/ReadPulseedFileTool.js.map +1 -1
- package/dist/tools/fs/ReadTool/ReadTool.js +1 -1
- package/dist/tools/fs/ReadTool/ReadTool.js.map +1 -1
- package/dist/tools/fs/WritePulseedFileTool/WritePulseedFileTool.d.ts.map +1 -1
- package/dist/tools/fs/WritePulseedFileTool/WritePulseedFileTool.js +61 -6
- package/dist/tools/fs/WritePulseedFileTool/WritePulseedFileTool.js.map +1 -1
- package/dist/tools/interaction/plan-utils.js +2 -2
- package/dist/tools/interaction/plan-utils.js.map +1 -1
- package/dist/tools/network/HttpFetchTool/HttpFetchTool.js +1 -1
- package/dist/tools/network/HttpFetchTool/HttpFetchTool.js.map +1 -1
- package/dist/tools/network/McpStdioTool/McpStdioTool.d.ts +8 -8
- package/dist/tools/network/WebSearchTool/WebSearchTool.d.ts.map +1 -1
- package/dist/tools/network/WebSearchTool/WebSearchTool.js +1 -0
- package/dist/tools/network/WebSearchTool/WebSearchTool.js.map +1 -1
- package/dist/tools/permission.d.ts +1 -0
- package/dist/tools/permission.d.ts.map +1 -1
- package/dist/tools/permission.js +33 -0
- package/dist/tools/permission.js.map +1 -1
- package/dist/tools/query/ConfigTool/ConfigTool.d.ts.map +1 -1
- package/dist/tools/query/ConfigTool/ConfigTool.js +4 -3
- package/dist/tools/query/ConfigTool/ConfigTool.js.map +1 -1
- package/dist/tools/query/PluginStateTool/PluginStateTool.d.ts.map +1 -1
- package/dist/tools/query/PluginStateTool/PluginStateTool.js +13 -2
- package/dist/tools/query/PluginStateTool/PluginStateTool.js.map +1 -1
- package/dist/tools/system/EnvTool/EnvTool.d.ts +4 -4
- package/dist/tools/system/ProcessSessionTool/ProcessSessionTool.d.ts +4 -4
- package/dist/tools/system/ShellTool/ShellTool.d.ts.map +1 -1
- package/dist/tools/system/ShellTool/ShellTool.js +6 -46
- package/dist/tools/system/ShellTool/ShellTool.js.map +1 -1
- package/dist/tools/system/ShellTool/command-policy.d.ts +14 -0
- package/dist/tools/system/ShellTool/command-policy.d.ts.map +1 -0
- package/dist/tools/system/ShellTool/command-policy.js +121 -0
- package/dist/tools/system/ShellTool/command-policy.js.map +1 -0
- package/dist/tools/types.d.ts +9 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
const DEFAULT_BASE_URL = "https://api.manus.im";
|
|
2
|
+
export class ManusBrowserProvider {
|
|
3
|
+
id = "manus_browser";
|
|
4
|
+
family = "browser";
|
|
5
|
+
capabilities = [
|
|
6
|
+
"browser_control",
|
|
7
|
+
"cloud_browser",
|
|
8
|
+
"local_browser_session",
|
|
9
|
+
"agentic_workflow",
|
|
10
|
+
];
|
|
11
|
+
apiKey;
|
|
12
|
+
baseUrl;
|
|
13
|
+
fetchFn;
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
this.apiKey = options.apiKey ?? process.env["MANUS_API_KEY"];
|
|
16
|
+
this.baseUrl = (options.baseUrl ?? process.env["MANUS_BASE_URL"] ?? DEFAULT_BASE_URL).replace(/\/+$/, "");
|
|
17
|
+
this.fetchFn = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
18
|
+
}
|
|
19
|
+
async isAvailable() {
|
|
20
|
+
if (!this.apiKey) {
|
|
21
|
+
return { available: false, reason: "MANUS_API_KEY is not configured" };
|
|
22
|
+
}
|
|
23
|
+
return { available: true };
|
|
24
|
+
}
|
|
25
|
+
async describeEnvironment() {
|
|
26
|
+
const availability = await this.isAvailable();
|
|
27
|
+
return {
|
|
28
|
+
providerId: this.id,
|
|
29
|
+
family: this.family,
|
|
30
|
+
capabilities: [...this.capabilities],
|
|
31
|
+
available: availability.available,
|
|
32
|
+
...(availability.reason ? { reason: availability.reason } : {}),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async runBrowserWorkflow(input) {
|
|
36
|
+
this.assertAvailable();
|
|
37
|
+
const response = await this.fetchJson(`${this.baseUrl}/browser/workflows`, {
|
|
38
|
+
task: input.task,
|
|
39
|
+
start_url: input.startUrl,
|
|
40
|
+
session_id: input.sessionId,
|
|
41
|
+
});
|
|
42
|
+
return normalizeBrowserResult(response, "Manus browser workflow submitted");
|
|
43
|
+
}
|
|
44
|
+
async getBrowserState(input) {
|
|
45
|
+
this.assertAvailable();
|
|
46
|
+
const query = input.sessionId ? `?session_id=${encodeURIComponent(input.sessionId)}` : "";
|
|
47
|
+
const response = await this.fetchJson(`${this.baseUrl}/browser/state${query}`, undefined, "GET");
|
|
48
|
+
return normalizeBrowserResult(response, "Manus browser state fetched");
|
|
49
|
+
}
|
|
50
|
+
assertAvailable() {
|
|
51
|
+
if (!this.apiKey) {
|
|
52
|
+
throw new Error("MANUS_API_KEY is not configured");
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async fetchJson(url, body, method = "POST") {
|
|
56
|
+
const response = await this.fetchFn(url, {
|
|
57
|
+
method,
|
|
58
|
+
headers: {
|
|
59
|
+
"authorization": `Bearer ${this.apiKey}`,
|
|
60
|
+
"content-type": "application/json",
|
|
61
|
+
},
|
|
62
|
+
...(body === undefined ? {} : { body: JSON.stringify(body) }),
|
|
63
|
+
});
|
|
64
|
+
if (!response.ok) {
|
|
65
|
+
throw new Error(`Manus request failed with HTTP ${response.status}`);
|
|
66
|
+
}
|
|
67
|
+
return response.json();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function normalizeBrowserResult(raw, fallbackSummary) {
|
|
71
|
+
const source = raw;
|
|
72
|
+
const success = typeof source["success"] === "boolean" ? source["success"] : true;
|
|
73
|
+
const summary = typeof source["summary"] === "string" ? source["summary"] : fallbackSummary;
|
|
74
|
+
const sessionId = typeof source["session_id"] === "string"
|
|
75
|
+
? source["session_id"]
|
|
76
|
+
: typeof source["sessionId"] === "string"
|
|
77
|
+
? source["sessionId"]
|
|
78
|
+
: undefined;
|
|
79
|
+
const error = typeof source["error"] === "string" ? source["error"] : undefined;
|
|
80
|
+
return {
|
|
81
|
+
success,
|
|
82
|
+
summary,
|
|
83
|
+
...(sessionId ? { sessionId } : {}),
|
|
84
|
+
data: raw,
|
|
85
|
+
...(error ? { error } : {}),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=manus-browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manus-browser.js","sourceRoot":"","sources":["../../../../src/runtime/interactive-automation/providers/manus-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AppStateSnapshot, AutomationActionResult, AutomationEnvironment, BrowserStateInput, BrowserWorkflowInput, BrowserWorkflowResult, ClickInput, DesktopAppSummary, DragInput, GetAppStateInput, InteractiveAutomationCapability, InteractiveAutomationProvider, InteractiveAutomationProviderFamily, PressKeyInput, ProviderAvailability, ResearchAnswerInput, ResearchAnswerResult, ResearchWebInput, ResearchWebResult, ScrollInput, SetValueInput, TypeTextInput } from "../types.js";
|
|
2
|
+
export declare class NoopInteractiveAutomationProvider implements InteractiveAutomationProvider {
|
|
3
|
+
readonly id = "noop";
|
|
4
|
+
readonly family: InteractiveAutomationProviderFamily;
|
|
5
|
+
readonly capabilities: readonly InteractiveAutomationCapability[];
|
|
6
|
+
isAvailable(): Promise<ProviderAvailability>;
|
|
7
|
+
describeEnvironment(): Promise<AutomationEnvironment>;
|
|
8
|
+
listApps(): Promise<DesktopAppSummary[]>;
|
|
9
|
+
getAppState(input: GetAppStateInput): Promise<AppStateSnapshot>;
|
|
10
|
+
click(_input: ClickInput): Promise<AutomationActionResult>;
|
|
11
|
+
typeText(_input: TypeTextInput): Promise<AutomationActionResult>;
|
|
12
|
+
pressKey(_input: PressKeyInput): Promise<AutomationActionResult>;
|
|
13
|
+
scroll(_input: ScrollInput): Promise<AutomationActionResult>;
|
|
14
|
+
drag(_input: DragInput): Promise<AutomationActionResult>;
|
|
15
|
+
setValue(_input: SetValueInput): Promise<AutomationActionResult>;
|
|
16
|
+
researchWeb(input: ResearchWebInput): Promise<ResearchWebResult>;
|
|
17
|
+
answerWithSources(_input: ResearchAnswerInput): Promise<ResearchAnswerResult>;
|
|
18
|
+
runBrowserWorkflow(_input: BrowserWorkflowInput): Promise<BrowserWorkflowResult>;
|
|
19
|
+
getBrowserState(_input: BrowserStateInput): Promise<BrowserWorkflowResult>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=noop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noop.d.ts","sourceRoot":"","sources":["../../../../src/runtime/interactive-automation/providers/noop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,UAAU,EACV,iBAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACnC,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,aAAa,EACd,MAAM,aAAa,CAAC;AAKrB,qBAAa,iCAAkC,YAAW,6BAA6B;IACrF,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,MAAM,EAAE,mCAAmC,CAAW;IAC/D,QAAQ,CAAC,YAAY,EAAE,SAAS,+BAA+B,EAAE,CAAM;IAEjE,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAI5C,mBAAmB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAUrD,QAAQ,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIxC,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAO/D,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI1D,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIhE,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIhE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI5D,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIxD,QAAQ,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIhE,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIhE,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI7E,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhF,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAGjF"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { unavailableAction } from "../types.js";
|
|
2
|
+
const NOOP_REASON = "no interactive automation provider is configured";
|
|
3
|
+
export class NoopInteractiveAutomationProvider {
|
|
4
|
+
id = "noop";
|
|
5
|
+
family = "agent";
|
|
6
|
+
capabilities = [];
|
|
7
|
+
async isAvailable() {
|
|
8
|
+
return { available: false, reason: NOOP_REASON };
|
|
9
|
+
}
|
|
10
|
+
async describeEnvironment() {
|
|
11
|
+
return {
|
|
12
|
+
providerId: this.id,
|
|
13
|
+
family: this.family,
|
|
14
|
+
capabilities: [...this.capabilities],
|
|
15
|
+
available: false,
|
|
16
|
+
reason: NOOP_REASON,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
async listApps() {
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
22
|
+
async getAppState(input) {
|
|
23
|
+
return {
|
|
24
|
+
app: input.app,
|
|
25
|
+
metadata: { available: false, reason: NOOP_REASON },
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
async click(_input) {
|
|
29
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
30
|
+
}
|
|
31
|
+
async typeText(_input) {
|
|
32
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
33
|
+
}
|
|
34
|
+
async pressKey(_input) {
|
|
35
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
36
|
+
}
|
|
37
|
+
async scroll(_input) {
|
|
38
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
39
|
+
}
|
|
40
|
+
async drag(_input) {
|
|
41
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
42
|
+
}
|
|
43
|
+
async setValue(_input) {
|
|
44
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
45
|
+
}
|
|
46
|
+
async researchWeb(input) {
|
|
47
|
+
return { query: input.query, results: [], raw: { available: false, reason: NOOP_REASON } };
|
|
48
|
+
}
|
|
49
|
+
async answerWithSources(_input) {
|
|
50
|
+
return { answer: "", citations: [], raw: { available: false, reason: NOOP_REASON } };
|
|
51
|
+
}
|
|
52
|
+
async runBrowserWorkflow(_input) {
|
|
53
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
54
|
+
}
|
|
55
|
+
async getBrowserState(_input) {
|
|
56
|
+
return unavailableAction(this.id, NOOP_REASON);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=noop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noop.js","sourceRoot":"","sources":["../../../../src/runtime/interactive-automation/providers/noop.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,GAAG,kDAAkD,CAAC;AAEvE,MAAM,OAAO,iCAAiC;IACnC,EAAE,GAAG,MAAM,CAAC;IACZ,MAAM,GAAwC,OAAO,CAAC;IACtD,YAAY,GAA+C,EAAE,CAAC;IAEvE,KAAK,CAAC,WAAW;QACf,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,EAAE;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;YACpC,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,WAAW;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE;SACpD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAkB;QAC5B,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAqB;QAClC,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAqB;QAClC,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAmB;QAC9B,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAiB;QAC1B,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAqB;QAClC,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;IAC7F,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAA2B;QACjD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC;IACvF,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAA4B;QACnD,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAyB;QAC7C,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { AutomationEnvironment, InteractiveAutomationCapability, InteractiveAutomationProvider, ProviderAvailability, ResearchAnswerInput, ResearchAnswerResult, ResearchWebInput, ResearchWebResult } from "../types.js";
|
|
2
|
+
export type AutomationFetch = (input: string | URL, init?: RequestInit) => Promise<Response>;
|
|
3
|
+
export interface PerplexityResearchProviderOptions {
|
|
4
|
+
apiKey?: string;
|
|
5
|
+
baseUrl?: string;
|
|
6
|
+
model?: string;
|
|
7
|
+
fetch?: AutomationFetch;
|
|
8
|
+
}
|
|
9
|
+
export declare class PerplexityResearchProvider implements InteractiveAutomationProvider {
|
|
10
|
+
readonly id = "perplexity_research";
|
|
11
|
+
readonly family: "research";
|
|
12
|
+
readonly capabilities: readonly InteractiveAutomationCapability[];
|
|
13
|
+
private readonly apiKey?;
|
|
14
|
+
private readonly baseUrl;
|
|
15
|
+
private readonly model;
|
|
16
|
+
private readonly fetchFn;
|
|
17
|
+
constructor(options?: PerplexityResearchProviderOptions);
|
|
18
|
+
isAvailable(): Promise<ProviderAvailability>;
|
|
19
|
+
describeEnvironment(): Promise<AutomationEnvironment>;
|
|
20
|
+
researchWeb(input: ResearchWebInput): Promise<ResearchWebResult>;
|
|
21
|
+
answerWithSources(input: ResearchAnswerInput): Promise<ResearchAnswerResult>;
|
|
22
|
+
private assertAvailable;
|
|
23
|
+
private fetchJson;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=perplexity-research.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-research.d.ts","sourceRoot":"","sources":["../../../../src/runtime/interactive-automation/providers/perplexity-research.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,+BAA+B,EAC/B,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EAEpB,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE7F,MAAM,WAAW,iCAAiC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAKD,qBAAa,0BAA2B,YAAW,6BAA6B;IAC9E,QAAQ,CAAC,EAAE,yBAAyB;IACpC,QAAQ,CAAC,MAAM,EAAG,UAAU,CAAU;IACtC,QAAQ,CAAC,YAAY,EAAE,SAAS,+BAA+B,EAAE,CAAoB;IAErF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;gBAE9B,OAAO,GAAE,iCAAsC;IAOrD,WAAW,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAO5C,mBAAmB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAWrD,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAehE,iBAAiB,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAalF,OAAO,CAAC,eAAe;YAMT,SAAS;CAgBxB"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
const DEFAULT_BASE_URL = "https://api.perplexity.ai";
|
|
2
|
+
const DEFAULT_MODEL = "sonar";
|
|
3
|
+
export class PerplexityResearchProvider {
|
|
4
|
+
id = "perplexity_research";
|
|
5
|
+
family = "research";
|
|
6
|
+
capabilities = ["web_research"];
|
|
7
|
+
apiKey;
|
|
8
|
+
baseUrl;
|
|
9
|
+
model;
|
|
10
|
+
fetchFn;
|
|
11
|
+
constructor(options = {}) {
|
|
12
|
+
this.apiKey = options.apiKey ?? process.env["PERPLEXITY_API_KEY"];
|
|
13
|
+
this.baseUrl = trimTrailingSlash(options.baseUrl ?? process.env["PERPLEXITY_BASE_URL"] ?? DEFAULT_BASE_URL);
|
|
14
|
+
this.model = options.model ?? process.env["PERPLEXITY_MODEL"] ?? DEFAULT_MODEL;
|
|
15
|
+
this.fetchFn = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
16
|
+
}
|
|
17
|
+
async isAvailable() {
|
|
18
|
+
if (!this.apiKey) {
|
|
19
|
+
return { available: false, reason: "PERPLEXITY_API_KEY is not configured" };
|
|
20
|
+
}
|
|
21
|
+
return { available: true };
|
|
22
|
+
}
|
|
23
|
+
async describeEnvironment() {
|
|
24
|
+
const availability = await this.isAvailable();
|
|
25
|
+
return {
|
|
26
|
+
providerId: this.id,
|
|
27
|
+
family: this.family,
|
|
28
|
+
capabilities: [...this.capabilities],
|
|
29
|
+
available: availability.available,
|
|
30
|
+
...(availability.reason ? { reason: availability.reason } : {}),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async researchWeb(input) {
|
|
34
|
+
this.assertAvailable();
|
|
35
|
+
const response = await this.fetchJson(`${this.baseUrl}/search`, {
|
|
36
|
+
query: input.query,
|
|
37
|
+
max_results: input.maxResults,
|
|
38
|
+
domains: input.domains,
|
|
39
|
+
});
|
|
40
|
+
return {
|
|
41
|
+
query: input.query,
|
|
42
|
+
results: normalizeSearchResults(response),
|
|
43
|
+
citations: collectCitations(response),
|
|
44
|
+
raw: response,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async answerWithSources(input) {
|
|
48
|
+
this.assertAvailable();
|
|
49
|
+
const response = await this.fetchJson(`${this.baseUrl}/chat/completions`, {
|
|
50
|
+
model: input.model ?? this.model,
|
|
51
|
+
messages: [{ role: "user", content: input.question }],
|
|
52
|
+
});
|
|
53
|
+
return {
|
|
54
|
+
answer: extractAnswer(response),
|
|
55
|
+
citations: collectCitations(response),
|
|
56
|
+
raw: response,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
assertAvailable() {
|
|
60
|
+
if (!this.apiKey) {
|
|
61
|
+
throw new Error("PERPLEXITY_API_KEY is not configured");
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async fetchJson(url, body) {
|
|
65
|
+
const response = await this.fetchFn(url, {
|
|
66
|
+
method: "POST",
|
|
67
|
+
headers: {
|
|
68
|
+
"authorization": `Bearer ${this.apiKey}`,
|
|
69
|
+
"content-type": "application/json",
|
|
70
|
+
},
|
|
71
|
+
body: JSON.stringify(body),
|
|
72
|
+
});
|
|
73
|
+
if (!response.ok) {
|
|
74
|
+
throw new Error(`Perplexity request failed with HTTP ${response.status}`);
|
|
75
|
+
}
|
|
76
|
+
return response.json();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function trimTrailingSlash(value) {
|
|
80
|
+
return value.replace(/\/+$/, "");
|
|
81
|
+
}
|
|
82
|
+
function normalizeSearchResults(raw) {
|
|
83
|
+
const source = raw;
|
|
84
|
+
const candidates = Array.isArray(source["results"]) ? source["results"]
|
|
85
|
+
: Array.isArray(source["data"]) ? source["data"]
|
|
86
|
+
: [];
|
|
87
|
+
return candidates
|
|
88
|
+
.filter((item) => typeof item === "object" && item !== null)
|
|
89
|
+
.map((item) => ({
|
|
90
|
+
title: stringOrFallback(item["title"], stringOrFallback(item["name"], "Untitled")),
|
|
91
|
+
url: stringOrFallback(item["url"], ""),
|
|
92
|
+
snippet: optionalString(item["snippet"] ?? item["text"] ?? item["description"]),
|
|
93
|
+
source: optionalString(item["source"]),
|
|
94
|
+
}))
|
|
95
|
+
.filter((item) => item.url.length > 0);
|
|
96
|
+
}
|
|
97
|
+
function extractAnswer(raw) {
|
|
98
|
+
const source = raw;
|
|
99
|
+
const choices = source["choices"];
|
|
100
|
+
if (Array.isArray(choices)) {
|
|
101
|
+
const first = choices[0];
|
|
102
|
+
const message = first?.["message"];
|
|
103
|
+
const content = message?.["content"];
|
|
104
|
+
if (typeof content === "string")
|
|
105
|
+
return content;
|
|
106
|
+
}
|
|
107
|
+
const answer = source["answer"];
|
|
108
|
+
return typeof answer === "string" ? answer : "";
|
|
109
|
+
}
|
|
110
|
+
function collectCitations(raw) {
|
|
111
|
+
const source = raw;
|
|
112
|
+
const citations = source["citations"];
|
|
113
|
+
if (Array.isArray(citations)) {
|
|
114
|
+
return citations.filter((item) => typeof item === "string");
|
|
115
|
+
}
|
|
116
|
+
return normalizeSearchResults(raw).map((item) => item.url);
|
|
117
|
+
}
|
|
118
|
+
function optionalString(value) {
|
|
119
|
+
return typeof value === "string" ? value : undefined;
|
|
120
|
+
}
|
|
121
|
+
function stringOrFallback(value, fallback) {
|
|
122
|
+
return typeof value === "string" && value.length > 0 ? value : fallback;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=perplexity-research.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"perplexity-research.js","sourceRoot":"","sources":["../../../../src/runtime/interactive-automation/providers/perplexity-research.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { InteractiveAutomationCapability, InteractiveAutomationProvider, InteractiveAutomationProviderFamily } from "./types.js";
|
|
2
|
+
export interface ResolveAutomationProviderInput {
|
|
3
|
+
providerId?: string;
|
|
4
|
+
family?: InteractiveAutomationProviderFamily;
|
|
5
|
+
capability?: InteractiveAutomationCapability;
|
|
6
|
+
}
|
|
7
|
+
export interface InteractiveAutomationRegistryOptions {
|
|
8
|
+
defaultProviders?: Partial<Record<InteractiveAutomationProviderFamily, string>>;
|
|
9
|
+
}
|
|
10
|
+
export declare class InteractiveAutomationRegistry {
|
|
11
|
+
private readonly providers;
|
|
12
|
+
private readonly defaultProviders;
|
|
13
|
+
constructor(options?: InteractiveAutomationRegistryOptions);
|
|
14
|
+
register(provider: InteractiveAutomationProvider): void;
|
|
15
|
+
get(providerId: string): InteractiveAutomationProvider | undefined;
|
|
16
|
+
list(): InteractiveAutomationProvider[];
|
|
17
|
+
setDefaultProvider(family: InteractiveAutomationProviderFamily, providerId: string): void;
|
|
18
|
+
resolve(input: ResolveAutomationProviderInput): InteractiveAutomationProvider | undefined;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/runtime/interactive-automation/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,+BAA+B,EAC/B,6BAA6B,EAC7B,mCAAmC,EACpC,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,8BAA8B;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,mCAAmC,CAAC;IAC7C,UAAU,CAAC,EAAE,+BAA+B,CAAC;CAC9C;AAED,MAAM,WAAW,oCAAoC;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC,CAAC;CACjF;AAED,qBAAa,6BAA6B;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoD;IAC9E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA+D;gBAEpF,OAAO,GAAE,oCAAyC;IAI9D,QAAQ,CAAC,QAAQ,EAAE,6BAA6B,GAAG,IAAI;IAOvD,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,6BAA6B,GAAG,SAAS;IAIlE,IAAI,IAAI,6BAA6B,EAAE;IAIvC,kBAAkB,CAAC,MAAM,EAAE,mCAAmC,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAOzF,OAAO,CAAC,KAAK,EAAE,8BAA8B,GAAG,6BAA6B,GAAG,SAAS;CAqB1F"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export class InteractiveAutomationRegistry {
|
|
2
|
+
providers = new Map();
|
|
3
|
+
defaultProviders;
|
|
4
|
+
constructor(options = {}) {
|
|
5
|
+
this.defaultProviders = { ...options.defaultProviders };
|
|
6
|
+
}
|
|
7
|
+
register(provider) {
|
|
8
|
+
if (this.providers.has(provider.id)) {
|
|
9
|
+
throw new Error(`Interactive automation provider "${provider.id}" is already registered`);
|
|
10
|
+
}
|
|
11
|
+
this.providers.set(provider.id, provider);
|
|
12
|
+
}
|
|
13
|
+
get(providerId) {
|
|
14
|
+
return this.providers.get(providerId);
|
|
15
|
+
}
|
|
16
|
+
list() {
|
|
17
|
+
return [...this.providers.values()];
|
|
18
|
+
}
|
|
19
|
+
setDefaultProvider(family, providerId) {
|
|
20
|
+
if (!this.providers.has(providerId)) {
|
|
21
|
+
throw new Error(`Interactive automation provider "${providerId}" is not registered`);
|
|
22
|
+
}
|
|
23
|
+
this.defaultProviders[family] = providerId;
|
|
24
|
+
}
|
|
25
|
+
resolve(input) {
|
|
26
|
+
if (input.providerId) {
|
|
27
|
+
return this.providers.get(input.providerId);
|
|
28
|
+
}
|
|
29
|
+
if (input.family) {
|
|
30
|
+
if (hasConfiguredDefault(this.defaultProviders, input.family)) {
|
|
31
|
+
const defaultId = this.defaultProviders[input.family];
|
|
32
|
+
const defaultProvider = defaultId ? this.providers.get(defaultId) : undefined;
|
|
33
|
+
if (!defaultProvider) {
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
if (providerMatches(defaultProvider, input) || defaultProvider.id === "noop") {
|
|
37
|
+
return defaultProvider;
|
|
38
|
+
}
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return this.list().find((provider) => providerMatches(provider, input));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function hasConfiguredDefault(defaults, family) {
|
|
46
|
+
return Object.prototype.hasOwnProperty.call(defaults, family);
|
|
47
|
+
}
|
|
48
|
+
function providerMatches(provider, input) {
|
|
49
|
+
if (input.family && provider.family !== input.family)
|
|
50
|
+
return false;
|
|
51
|
+
if (input.capability && !provider.capabilities.includes(input.capability))
|
|
52
|
+
return false;
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/runtime/interactive-automation/registry.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,6BAA6B;IACvB,SAAS,GAAG,IAAI,GAAG,EAAyC,CAAC;IAC7D,gBAAgB,CAA+D;IAEhG,YAAY,UAAgD,EAAE;QAC5D,IAAI,CAAC,gBAAgB,GAAG,EAAE,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAC,QAAuC;QAC9C,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED,GAAG,CAAC,UAAkB;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,kBAAkB,CAAC,MAA2C,EAAE,UAAkB;QAChF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,oCAAoC,UAAU,qBAAqB,CAAC,CAAC;QACvF,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,KAAqC;QAC3C,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACtD,MAAM,eAAe,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9E,IAAI,CAAC,eAAe,EAAE,CAAC;oBACrB,OAAO,SAAS,CAAC;gBACnB,CAAC;gBACD,IAAI,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,IAAI,eAAe,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;oBAC7E,OAAO,eAAe,CAAC;gBACzB,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;CACF;AAED,SAAS,oBAAoB,CAC3B,QAAsE,EACtE,MAA2C;IAE3C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,eAAe,CACtB,QAAuC,EACvC,KAAqC;IAErC,IAAI,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACnE,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACxF,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
export type InteractiveAutomationProviderFamily = "desktop" | "browser" | "agent" | "research";
|
|
2
|
+
export type InteractiveAutomationCapability = "desktop_state" | "desktop_input" | "browser_control" | "cloud_browser" | "local_browser_session" | "web_research" | "agentic_workflow" | "code_workspace";
|
|
3
|
+
export interface ProviderAvailability {
|
|
4
|
+
available: boolean;
|
|
5
|
+
reason?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AutomationEnvironment {
|
|
8
|
+
providerId: string;
|
|
9
|
+
family: InteractiveAutomationProviderFamily;
|
|
10
|
+
capabilities: InteractiveAutomationCapability[];
|
|
11
|
+
available: boolean;
|
|
12
|
+
reason?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface DesktopAppSummary {
|
|
15
|
+
name: string;
|
|
16
|
+
appId?: string;
|
|
17
|
+
title?: string;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface GetAppStateInput {
|
|
21
|
+
app: string;
|
|
22
|
+
}
|
|
23
|
+
export interface AppStateSnapshot {
|
|
24
|
+
app: string;
|
|
25
|
+
title?: string;
|
|
26
|
+
screenshotPath?: string;
|
|
27
|
+
accessibilityTree?: unknown;
|
|
28
|
+
elements?: unknown[];
|
|
29
|
+
metadata?: Record<string, unknown>;
|
|
30
|
+
}
|
|
31
|
+
export interface ClickInput {
|
|
32
|
+
app: string;
|
|
33
|
+
elementId?: string;
|
|
34
|
+
x?: number;
|
|
35
|
+
y?: number;
|
|
36
|
+
button?: "left" | "right" | "middle";
|
|
37
|
+
clickCount?: number;
|
|
38
|
+
}
|
|
39
|
+
export interface TypeTextInput {
|
|
40
|
+
app: string;
|
|
41
|
+
text: string;
|
|
42
|
+
}
|
|
43
|
+
export interface PressKeyInput {
|
|
44
|
+
app: string;
|
|
45
|
+
key: string;
|
|
46
|
+
}
|
|
47
|
+
export interface ScrollInput {
|
|
48
|
+
app: string;
|
|
49
|
+
direction: "up" | "down" | "left" | "right";
|
|
50
|
+
elementId?: string;
|
|
51
|
+
pages?: number;
|
|
52
|
+
}
|
|
53
|
+
export interface DragInput {
|
|
54
|
+
app: string;
|
|
55
|
+
fromX: number;
|
|
56
|
+
fromY: number;
|
|
57
|
+
toX: number;
|
|
58
|
+
toY: number;
|
|
59
|
+
}
|
|
60
|
+
export interface SetValueInput {
|
|
61
|
+
app: string;
|
|
62
|
+
elementId: string;
|
|
63
|
+
value: string;
|
|
64
|
+
}
|
|
65
|
+
export interface AutomationActionResult {
|
|
66
|
+
success: boolean;
|
|
67
|
+
summary: string;
|
|
68
|
+
data?: unknown;
|
|
69
|
+
error?: string;
|
|
70
|
+
}
|
|
71
|
+
export interface ResearchWebInput {
|
|
72
|
+
query: string;
|
|
73
|
+
maxResults?: number;
|
|
74
|
+
domains?: string[];
|
|
75
|
+
}
|
|
76
|
+
export interface ResearchResultItem {
|
|
77
|
+
title: string;
|
|
78
|
+
url: string;
|
|
79
|
+
snippet?: string;
|
|
80
|
+
source?: string;
|
|
81
|
+
}
|
|
82
|
+
export interface ResearchWebResult {
|
|
83
|
+
query: string;
|
|
84
|
+
results: ResearchResultItem[];
|
|
85
|
+
citations?: string[];
|
|
86
|
+
raw?: unknown;
|
|
87
|
+
}
|
|
88
|
+
export interface ResearchAnswerInput {
|
|
89
|
+
question: string;
|
|
90
|
+
model?: string;
|
|
91
|
+
}
|
|
92
|
+
export interface ResearchAnswerResult {
|
|
93
|
+
answer: string;
|
|
94
|
+
citations: string[];
|
|
95
|
+
raw?: unknown;
|
|
96
|
+
}
|
|
97
|
+
export interface BrowserWorkflowInput {
|
|
98
|
+
task: string;
|
|
99
|
+
startUrl?: string;
|
|
100
|
+
sessionId?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface BrowserStateInput {
|
|
103
|
+
sessionId?: string;
|
|
104
|
+
}
|
|
105
|
+
export interface BrowserWorkflowResult {
|
|
106
|
+
success: boolean;
|
|
107
|
+
summary: string;
|
|
108
|
+
sessionId?: string;
|
|
109
|
+
data?: unknown;
|
|
110
|
+
error?: string;
|
|
111
|
+
}
|
|
112
|
+
export interface InteractiveAutomationProvider {
|
|
113
|
+
readonly id: string;
|
|
114
|
+
readonly family: InteractiveAutomationProviderFamily;
|
|
115
|
+
readonly capabilities: readonly InteractiveAutomationCapability[];
|
|
116
|
+
isAvailable(): Promise<ProviderAvailability>;
|
|
117
|
+
describeEnvironment(): Promise<AutomationEnvironment>;
|
|
118
|
+
listApps?(): Promise<DesktopAppSummary[]>;
|
|
119
|
+
getAppState?(input: GetAppStateInput): Promise<AppStateSnapshot>;
|
|
120
|
+
click?(input: ClickInput): Promise<AutomationActionResult>;
|
|
121
|
+
typeText?(input: TypeTextInput): Promise<AutomationActionResult>;
|
|
122
|
+
pressKey?(input: PressKeyInput): Promise<AutomationActionResult>;
|
|
123
|
+
scroll?(input: ScrollInput): Promise<AutomationActionResult>;
|
|
124
|
+
drag?(input: DragInput): Promise<AutomationActionResult>;
|
|
125
|
+
setValue?(input: SetValueInput): Promise<AutomationActionResult>;
|
|
126
|
+
researchWeb?(input: ResearchWebInput): Promise<ResearchWebResult>;
|
|
127
|
+
answerWithSources?(input: ResearchAnswerInput): Promise<ResearchAnswerResult>;
|
|
128
|
+
runBrowserWorkflow?(input: BrowserWorkflowInput): Promise<BrowserWorkflowResult>;
|
|
129
|
+
getBrowserState?(input: BrowserStateInput): Promise<BrowserWorkflowResult>;
|
|
130
|
+
}
|
|
131
|
+
export declare function unavailableAction(providerId: string, reason: string): AutomationActionResult;
|
|
132
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runtime/interactive-automation/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runtime/interactive-automation/types.ts"],"names":[],"mappings":"AAyKA,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,MAAc;IAClE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,GAAG,UAAU,oBAAoB,MAAM,EAAE;QAClD,KAAK,EAAE,MAAM;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -68,9 +68,20 @@ export declare class ScheduleEngine {
|
|
|
68
68
|
private memoryLifecycle?;
|
|
69
69
|
private knowledgeManager?;
|
|
70
70
|
private historyStore;
|
|
71
|
+
private schedulesLockPath;
|
|
72
|
+
private scheduleLockDepth;
|
|
71
73
|
constructor(deps: ScheduleEngineDeps);
|
|
72
74
|
loadEntries(): Promise<ScheduleEntry[]>;
|
|
75
|
+
private readEntriesFromDisk;
|
|
73
76
|
saveEntries(): Promise<void>;
|
|
77
|
+
private writeEntriesAndProject;
|
|
78
|
+
private refreshEntriesForMutation;
|
|
79
|
+
private captureExecutionSideEffects;
|
|
80
|
+
private applyExecutionSideEffects;
|
|
81
|
+
private withScheduleMutation;
|
|
82
|
+
private withScheduleFileLock;
|
|
83
|
+
private acquireScheduleFileLock;
|
|
84
|
+
private removeStaleScheduleLock;
|
|
74
85
|
ensureSoilPublishSchedule(): Promise<ScheduleEntry | null>;
|
|
75
86
|
private projectCurrentSchedulesToSoil;
|
|
76
87
|
getEntries(): ScheduleEntry[];
|
|
@@ -86,6 +97,7 @@ export declare class ScheduleEngine {
|
|
|
86
97
|
}>;
|
|
87
98
|
}>;
|
|
88
99
|
addEntry(input: Omit<ScheduleEntryInput, "id" | "created_at" | "updated_at" | "last_fired_at" | "next_fire_at" | "consecutive_failures" | "last_escalation_at" | "baseline_results" | "total_executions" | "total_tokens_used" | "max_tokens_per_day" | "tokens_used_today" | "budget_reset_at" | "escalation_timestamps">): Promise<ScheduleEntry>;
|
|
100
|
+
private addEntryInMemory;
|
|
89
101
|
removeEntry(id: string): Promise<boolean>;
|
|
90
102
|
updateEntry(id: string, patch: ScheduleEntryUpdateInput): Promise<ScheduleEntry | null>;
|
|
91
103
|
getDueEntries(): Promise<ScheduleEntry[]>;
|