agent-nuvira 2.7.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/agents/writer-tool-calling.d.ts +14 -0
- package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
- package/dist/agents/agents/writer-tool-calling.js +20 -0
- package/dist/agents/agents/writer-tool-calling.js.map +1 -1
- package/dist/agents/agents/writer.d.ts.map +1 -1
- package/dist/agents/agents/writer.js +15 -4
- package/dist/agents/agents/writer.js.map +1 -1
- package/dist/agents/edit-module.d.ts +7 -0
- package/dist/agents/edit-module.d.ts.map +1 -1
- package/dist/agents/edit-module.js +21 -6
- package/dist/agents/edit-module.js.map +1 -1
- package/dist/agents/orchestrator.d.ts +40 -0
- package/dist/agents/orchestrator.d.ts.map +1 -1
- package/dist/agents/orchestrator.js +116 -27
- package/dist/agents/orchestrator.js.map +1 -1
- package/dist/agents/tool-calling-agent.d.ts +19 -0
- package/dist/agents/tool-calling-agent.d.ts.map +1 -1
- package/dist/agents/tool-calling-agent.js +42 -2
- package/dist/agents/tool-calling-agent.js.map +1 -1
- package/dist/auth-api.d.ts +2 -0
- package/dist/auth-api.d.ts.map +1 -0
- package/dist/auth-api.js +61 -0
- package/dist/auth-api.js.map +1 -0
- package/dist/auth.test.d.ts +1 -0
- package/dist/auth.test.d.ts.map +1 -0
- package/dist/auth.test.js +3 -0
- package/dist/auth.test.js.map +1 -0
- package/dist/cli/chat.d.ts +66 -1
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +323 -77
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/cli-program.d.ts +6 -0
- package/dist/cli/cli-program.d.ts.map +1 -0
- package/dist/cli/cli-program.js +222 -0
- package/dist/cli/cli-program.js.map +1 -0
- package/dist/cli/edit.d.ts.map +1 -1
- package/dist/cli/edit.js +18 -3
- package/dist/cli/edit.js.map +1 -1
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +29 -5
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/failover-runner.d.ts +13 -0
- package/dist/cli/failover-runner.d.ts.map +1 -1
- package/dist/cli/failover-runner.js +11 -0
- package/dist/cli/failover-runner.js.map +1 -1
- package/dist/cli/gateway.d.ts +16 -0
- package/dist/cli/gateway.d.ts.map +1 -1
- package/dist/cli/gateway.js +108 -2
- package/dist/cli/gateway.js.map +1 -1
- package/dist/cli/loop-executor.d.ts.map +1 -1
- package/dist/cli/loop-executor.js +296 -20
- package/dist/cli/loop-executor.js.map +1 -1
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +20 -6
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/process-control.d.ts +10 -0
- package/dist/cli/process-control.d.ts.map +1 -1
- package/dist/cli/process-control.js +73 -7
- package/dist/cli/process-control.js.map +1 -1
- package/dist/cli/router.d.ts +16 -5
- package/dist/cli/router.d.ts.map +1 -1
- package/dist/cli/router.js +31 -206
- package/dist/cli/router.js.map +1 -1
- package/dist/config/paths.d.ts +23 -0
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +30 -0
- package/dist/config/paths.js.map +1 -1
- package/dist/config/provider-env.d.ts +37 -0
- package/dist/config/provider-env.d.ts.map +1 -0
- package/dist/config/provider-env.js +86 -0
- package/dist/config/provider-env.js.map +1 -0
- package/dist/context/history.d.ts.map +1 -1
- package/dist/context/history.js +24 -8
- package/dist/context/history.js.map +1 -1
- package/dist/context/session-recall.d.ts +30 -0
- package/dist/context/session-recall.d.ts.map +1 -1
- package/dist/context/session-recall.js +61 -0
- package/dist/context/session-recall.js.map +1 -1
- package/dist/file.js +0 -1
- package/dist/file.js.map +1 -1
- package/dist/gateway/adapters.d.ts +10 -0
- package/dist/gateway/adapters.d.ts.map +1 -1
- package/dist/gateway/adapters.js +4 -1
- package/dist/gateway/adapters.js.map +1 -1
- package/dist/gateway/dedup.d.ts +105 -0
- package/dist/gateway/dedup.d.ts.map +1 -0
- package/dist/gateway/dedup.js +160 -0
- package/dist/gateway/dedup.js.map +1 -0
- package/dist/gateway/heartbeat.d.ts +99 -0
- package/dist/gateway/heartbeat.d.ts.map +1 -0
- package/dist/gateway/heartbeat.js +122 -0
- package/dist/gateway/heartbeat.js.map +1 -0
- package/dist/gateway/inbox.d.ts +14 -1
- package/dist/gateway/inbox.d.ts.map +1 -1
- package/dist/gateway/inbox.js.map +1 -1
- package/dist/gateway/platform-config.d.ts +5 -0
- package/dist/gateway/platform-config.d.ts.map +1 -1
- package/dist/gateway/platform-config.js +8 -13
- package/dist/gateway/platform-config.js.map +1 -1
- package/dist/gateway/registry.d.ts +65 -0
- package/dist/gateway/registry.d.ts.map +1 -1
- package/dist/gateway/registry.js +307 -32
- package/dist/gateway/registry.js.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
- package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/baileys-bridge.js +64 -1
- package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
- package/dist/gateway/whatsapp/bridge.d.ts +4 -2
- package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
- package/dist/gateway/whatsapp/bridge.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/inference/factory.d.ts +16 -0
- package/dist/inference/factory.d.ts.map +1 -1
- package/dist/inference/factory.js +42 -0
- package/dist/inference/factory.js.map +1 -1
- package/dist/inference/gemini-adapter.d.ts.map +1 -1
- package/dist/inference/gemini-adapter.js +3 -0
- package/dist/inference/gemini-adapter.js.map +1 -1
- package/dist/inference/interface.d.ts +12 -0
- package/dist/inference/interface.d.ts.map +1 -1
- package/dist/inference/local-adapter.d.ts +2 -0
- package/dist/inference/local-adapter.d.ts.map +1 -1
- package/dist/inference/local-adapter.js +36 -5
- package/dist/inference/local-adapter.js.map +1 -1
- package/dist/inference/model-catalog.d.ts +8 -0
- package/dist/inference/model-catalog.d.ts.map +1 -1
- package/dist/inference/model-catalog.js +40 -0
- package/dist/inference/model-catalog.js.map +1 -1
- package/dist/inference/model-probe.d.ts +7 -0
- package/dist/inference/model-probe.d.ts.map +1 -1
- package/dist/inference/model-probe.js +25 -7
- package/dist/inference/model-probe.js.map +1 -1
- package/dist/inference/native-tools.d.ts +8 -0
- package/dist/inference/native-tools.d.ts.map +1 -1
- package/dist/inference/native-tools.js +14 -3
- package/dist/inference/native-tools.js.map +1 -1
- package/dist/inference/tool-call-utils.d.ts +66 -7
- package/dist/inference/tool-call-utils.d.ts.map +1 -1
- package/dist/inference/tool-call-utils.js +134 -13
- package/dist/inference/tool-call-utils.js.map +1 -1
- package/dist/learning/auto-router.d.ts +21 -0
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +282 -21
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/context-budget.d.ts +133 -0
- package/dist/learning/context-budget.d.ts.map +1 -0
- package/dist/learning/context-budget.js +196 -0
- package/dist/learning/context-budget.js.map +1 -0
- package/dist/learning/cost-tracker.d.ts.map +1 -1
- package/dist/learning/cost-tracker.js +20 -8
- package/dist/learning/cost-tracker.js.map +1 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +6 -2
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/failure-bookkeeping.d.ts +41 -0
- package/dist/learning/failure-bookkeeping.d.ts.map +1 -1
- package/dist/learning/failure-bookkeeping.js +122 -4
- package/dist/learning/failure-bookkeeping.js.map +1 -1
- package/dist/learning/feedback.d.ts.map +1 -1
- package/dist/learning/feedback.js +19 -8
- package/dist/learning/feedback.js.map +1 -1
- package/dist/learning/model-first-router.d.ts.map +1 -1
- package/dist/learning/model-first-router.js +5 -11
- package/dist/learning/model-first-router.js.map +1 -1
- package/dist/learning/model-harness.d.ts +76 -0
- package/dist/learning/model-harness.d.ts.map +1 -0
- package/dist/learning/model-harness.js +119 -0
- package/dist/learning/model-harness.js.map +1 -0
- package/dist/learning/model-registry.d.ts +29 -0
- package/dist/learning/model-registry.d.ts.map +1 -1
- package/dist/learning/model-registry.js +129 -3
- package/dist/learning/model-registry.js.map +1 -1
- package/dist/learning/model-scoring.d.ts.map +1 -1
- package/dist/learning/model-scoring.js +6 -1
- package/dist/learning/model-scoring.js.map +1 -1
- package/dist/learning/model-selection.d.ts +15 -0
- package/dist/learning/model-selection.d.ts.map +1 -1
- package/dist/learning/model-selection.js +40 -1
- package/dist/learning/model-selection.js.map +1 -1
- package/dist/learning/provider-fallback.d.ts +12 -0
- package/dist/learning/provider-fallback.d.ts.map +1 -1
- package/dist/learning/provider-fallback.js +84 -0
- package/dist/learning/provider-fallback.js.map +1 -1
- package/dist/learning/provider-revival.d.ts +106 -0
- package/dist/learning/provider-revival.d.ts.map +1 -0
- package/dist/learning/provider-revival.js +154 -0
- package/dist/learning/provider-revival.js.map +1 -0
- package/dist/learning/quota-ledger.d.ts +64 -3
- package/dist/learning/quota-ledger.d.ts.map +1 -1
- package/dist/learning/quota-ledger.js +122 -9
- package/dist/learning/quota-ledger.js.map +1 -1
- package/dist/learning/resilient-call.d.ts +98 -0
- package/dist/learning/resilient-call.d.ts.map +1 -1
- package/dist/learning/resilient-call.js +252 -46
- package/dist/learning/resilient-call.js.map +1 -1
- package/dist/nlu/conversation-gate.d.ts +37 -0
- package/dist/nlu/conversation-gate.d.ts.map +1 -1
- package/dist/nlu/conversation-gate.js +49 -0
- package/dist/nlu/conversation-gate.js.map +1 -1
- package/dist/nlu/schema.d.ts +4 -4
- package/dist/observability/dag-bridge.d.ts +69 -0
- package/dist/observability/dag-bridge.d.ts.map +1 -0
- package/dist/observability/dag-bridge.js +56 -0
- package/dist/observability/dag-bridge.js.map +1 -0
- package/dist/observability/event-bus.d.ts +5 -10
- package/dist/observability/event-bus.d.ts.map +1 -1
- package/dist/observability/event-bus.js +10 -42
- package/dist/observability/event-bus.js.map +1 -1
- package/dist/routes/auth.d.ts +3 -0
- package/dist/routes/auth.d.ts.map +1 -0
- package/dist/routes/auth.js +41 -36
- package/dist/routes/auth.js.map +1 -0
- package/dist/skills/execution-audit.d.ts.map +1 -1
- package/dist/skills/execution-audit.js +17 -5
- package/dist/skills/execution-audit.js.map +1 -1
- package/dist/skills/sandbox-executor.d.ts +12 -1
- package/dist/skills/sandbox-executor.d.ts.map +1 -1
- package/dist/skills/sandbox-executor.js +28 -6
- package/dist/skills/sandbox-executor.js.map +1 -1
- package/dist/skills/secret-capture.d.ts +45 -1
- package/dist/skills/secret-capture.d.ts.map +1 -1
- package/dist/skills/secret-capture.js +82 -19
- package/dist/skills/secret-capture.js.map +1 -1
- package/dist/skills/skill-env-inventory.d.ts +79 -0
- package/dist/skills/skill-env-inventory.d.ts.map +1 -0
- package/dist/skills/skill-env-inventory.js +167 -0
- package/dist/skills/skill-env-inventory.js.map +1 -0
- package/dist/skills/skill-executor.d.ts +2 -0
- package/dist/skills/skill-executor.d.ts.map +1 -1
- package/dist/skills/skill-executor.js +19 -24
- package/dist/skills/skill-executor.js.map +1 -1
- package/dist/tools/ask-user.d.ts +14 -1
- package/dist/tools/ask-user.d.ts.map +1 -1
- package/dist/tools/ask-user.js +25 -1
- package/dist/tools/ask-user.js.map +1 -1
- package/dist/tools/followup-utils.d.ts +64 -0
- package/dist/tools/followup-utils.d.ts.map +1 -0
- package/dist/tools/followup-utils.js +158 -0
- package/dist/tools/followup-utils.js.map +1 -0
- package/dist/tools/memory-tools.d.ts +35 -0
- package/dist/tools/memory-tools.d.ts.map +1 -1
- package/dist/tools/memory-tools.js +76 -0
- package/dist/tools/memory-tools.js.map +1 -1
- package/dist/tools/pipeline-tool.d.ts.map +1 -1
- package/dist/tools/pipeline-tool.js +8 -3
- package/dist/tools/pipeline-tool.js.map +1 -1
- package/dist/tools/registry.d.ts +25 -12
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +31 -6
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/skill-tool.d.ts.map +1 -1
- package/dist/tools/skill-tool.js +52 -5
- package/dist/tools/skill-tool.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +63 -1
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +305 -66
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.d.ts +19 -3
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +21 -5
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/env.js +9 -13
- package/dist/utils/env.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +13 -1
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +16 -2
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/hub-data.d.ts +2 -0
- package/dist/web-dashboard/hub-data.d.ts.map +1 -1
- package/dist/web-dashboard/hub-data.js +4 -0
- package/dist/web-dashboard/hub-data.js.map +1 -1
- package/dist/web-dashboard/server.d.ts +6 -0
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +196 -3
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +31 -1
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +11 -1
- package/src/web-dashboard/public/assets/index-56yPnN_m.js +207 -0
- package/src/web-dashboard/public/assets/index-56yPnN_m.js.map +1 -0
- package/src/web-dashboard/public/assets/{index-C507EUWf.css → index-Cyd6tIew.css} +1 -1
- package/src/web-dashboard/public/index.html +2 -2
- package/dist/example.d.ts +0 -1
- package/dist/example.d.ts.map +0 -1
- package/dist/example.js +0 -3
- package/dist/example.js.map +0 -1
- package/dist/fresh.d.ts +0 -2
- package/dist/fresh.d.ts.map +0 -1
- package/dist/fresh.js +0 -2
- package/dist/fresh.js.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.d.ts +0 -94
- package/dist/mcp/mcp-dashboard-oauth.d.ts.map +0 -1
- package/dist/mcp/mcp-dashboard-oauth.js +0 -140
- package/dist/mcp/mcp-dashboard-oauth.js.map +0 -1
- package/dist/memory/background-sync.d.ts +0 -107
- package/dist/memory/background-sync.d.ts.map +0 -1
- package/dist/memory/background-sync.js +0 -242
- package/dist/memory/background-sync.js.map +0 -1
- package/dist/memory/cross-session.d.ts +0 -68
- package/dist/memory/cross-session.d.ts.map +0 -1
- package/dist/memory/cross-session.js +0 -153
- package/dist/memory/cross-session.js.map +0 -1
- package/dist/memory/drift-detector.d.ts +0 -76
- package/dist/memory/drift-detector.d.ts.map +0 -1
- package/dist/memory/drift-detector.js +0 -216
- package/dist/memory/drift-detector.js.map +0 -1
- package/dist/memory/enhanced-manager.d.ts +0 -105
- package/dist/memory/enhanced-manager.d.ts.map +0 -1
- package/dist/memory/enhanced-manager.js +0 -280
- package/dist/memory/enhanced-manager.js.map +0 -1
- package/dist/memory/session-extraction.d.ts +0 -93
- package/dist/memory/session-extraction.d.ts.map +0 -1
- package/dist/memory/session-extraction.js +0 -290
- package/dist/memory/session-extraction.js.map +0 -1
- package/dist/memory/sqlite-store.d.ts +0 -208
- package/dist/memory/sqlite-store.d.ts.map +0 -1
- package/dist/memory/sqlite-store.js +0 -556
- package/dist/memory/sqlite-store.js.map +0 -1
- package/dist/skills/daytona-executor.d.ts +0 -78
- package/dist/skills/daytona-executor.d.ts.map +0 -1
- package/dist/skills/daytona-executor.js +0 -256
- package/dist/skills/daytona-executor.js.map +0 -1
- package/dist/skills/modal-executor.d.ts +0 -81
- package/dist/skills/modal-executor.d.ts.map +0 -1
- package/dist/skills/modal-executor.js +0 -285
- package/dist/skills/modal-executor.js.map +0 -1
- package/dist/sync/inventory.d.ts +0 -1
- package/dist/sync/inventory.d.ts.map +0 -1
- package/dist/sync/inventory.js +0 -3
- package/dist/sync/inventory.js.map +0 -1
- package/dist/sync/validate.d.ts +0 -1
- package/dist/sync/validate.d.ts.map +0 -1
- package/dist/sync/validate.js +0 -3
- package/dist/sync/validate.js.map +0 -1
- package/dist/test.d.ts +0 -2
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -3
- package/dist/test.js.map +0 -1
- package/dist/tools/browser-tool.d.ts +0 -206
- package/dist/tools/browser-tool.d.ts.map +0 -1
- package/dist/tools/browser-tool.js +0 -726
- package/dist/tools/browser-tool.js.map +0 -1
- package/dist/tools/delegate-tool.d.ts +0 -109
- package/dist/tools/delegate-tool.d.ts.map +0 -1
- package/dist/tools/delegate-tool.js +0 -185
- package/dist/tools/delegate-tool.js.map +0 -1
- package/dist/tools/delegation-state.d.ts +0 -87
- package/dist/tools/delegation-state.d.ts.map +0 -1
- package/dist/tools/delegation-state.js +0 -278
- package/dist/tools/delegation-state.js.map +0 -1
- package/dist/tools/desktop-ui.d.ts +0 -148
- package/dist/tools/desktop-ui.d.ts.map +0 -1
- package/dist/tools/desktop-ui.js +0 -486
- package/dist/tools/desktop-ui.js.map +0 -1
- package/dist/tools/image-video-tool.d.ts +0 -88
- package/dist/tools/image-video-tool.d.ts.map +0 -1
- package/dist/tools/image-video-tool.js +0 -276
- package/dist/tools/image-video-tool.js.map +0 -1
- package/dist/tools/kanban-cron-tools.d.ts +0 -92
- package/dist/tools/kanban-cron-tools.d.ts.map +0 -1
- package/dist/tools/kanban-cron-tools.js +0 -197
- package/dist/tools/kanban-cron-tools.js.map +0 -1
- package/dist/tools/messaging-tool.d.ts +0 -127
- package/dist/tools/messaging-tool.d.ts.map +0 -1
- package/dist/tools/messaging-tool.js +0 -314
- package/dist/tools/messaging-tool.js.map +0 -1
- package/dist/tools/modality/generic-caller.d.ts +0 -43
- package/dist/tools/modality/generic-caller.d.ts.map +0 -1
- package/dist/tools/modality/generic-caller.js +0 -254
- package/dist/tools/modality/generic-caller.js.map +0 -1
- package/dist/tools/modality/modality-catalog.d.ts +0 -134
- package/dist/tools/modality/modality-catalog.d.ts.map +0 -1
- package/dist/tools/modality/modality-catalog.js +0 -445
- package/dist/tools/modality/modality-catalog.js.map +0 -1
- package/dist/tools/modality/tool-router.d.ts +0 -81
- package/dist/tools/modality/tool-router.d.ts.map +0 -1
- package/dist/tools/modality/tool-router.js +0 -84
- package/dist/tools/modality/tool-router.js.map +0 -1
- package/dist/tools/security-tools.d.ts +0 -107
- package/dist/tools/security-tools.d.ts.map +0 -1
- package/dist/tools/security-tools.js +0 -264
- package/dist/tools/security-tools.js.map +0 -1
- package/dist/tools/ssh-tool.d.ts +0 -130
- package/dist/tools/ssh-tool.d.ts.map +0 -1
- package/dist/tools/ssh-tool.js +0 -328
- package/dist/tools/ssh-tool.js.map +0 -1
- package/dist/tools/tts-tool.d.ts +0 -91
- package/dist/tools/tts-tool.d.ts.map +0 -1
- package/dist/tools/tts-tool.js +0 -406
- package/dist/tools/tts-tool.js.map +0 -1
- package/dist/utils/shell-detection.d.ts +0 -124
- package/dist/utils/shell-detection.d.ts.map +0 -1
- package/dist/utils/shell-detection.js +0 -305
- package/dist/utils/shell-detection.js.map +0 -1
- package/dist/utils/windows-paths.d.ts +0 -185
- package/dist/utils/windows-paths.d.ts.map +0 -1
- package/dist/utils/windows-paths.js +0 -472
- package/dist/utils/windows-paths.js.map +0 -1
- package/src/web-dashboard/public/assets/index-C4frng1Q.js +0 -207
- package/src/web-dashboard/public/assets/index-C4frng1Q.js.map +0 -1
|
@@ -1,256 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Daytona Cloud Executor — Runs skills in Daytona cloud sandboxes.
|
|
3
|
-
*
|
|
4
|
-
* This provides enterprise-grade execution with:
|
|
5
|
-
* - Persistent sandboxes across sessions
|
|
6
|
-
* - Resource limits (CPU, memory, disk)
|
|
7
|
-
* - Sandbox lifecycle management (start, stop, resume)
|
|
8
|
-
* - File sync between local and cloud
|
|
9
|
-
*
|
|
10
|
-
* Flow:
|
|
11
|
-
* 1. Create or resume a Daytona sandbox
|
|
12
|
-
* 2. Sync skill files to the sandbox
|
|
13
|
-
* 3. Execute the skill in the cloud
|
|
14
|
-
* 4. Capture output and sync results back
|
|
15
|
-
* 5. Optionally persist the sandbox for reuse
|
|
16
|
-
*/
|
|
17
|
-
import { spawn } from 'node:child_process';
|
|
18
|
-
import { writeFile, mkdir } from 'node:fs/promises';
|
|
19
|
-
import { join } from 'node:path';
|
|
20
|
-
import { tmpdir } from 'node:os';
|
|
21
|
-
import { randomBytes } from 'node:crypto';
|
|
22
|
-
// ─── Default Configuration ───────────────────────────────────────────────
|
|
23
|
-
const DEFAULT_DAYTONA_CONFIG = {
|
|
24
|
-
image: 'ubuntu:22.04',
|
|
25
|
-
cpu: 1,
|
|
26
|
-
memoryMb: 5120,
|
|
27
|
-
diskMb: 10240,
|
|
28
|
-
timeoutMs: 60_000,
|
|
29
|
-
persistent: true,
|
|
30
|
-
cwd: '/home/daytona',
|
|
31
|
-
};
|
|
32
|
-
// ─── Daytona Execution ───────────────────────────────────────────────────
|
|
33
|
-
/**
|
|
34
|
-
* Execute a skill in a Daytona cloud sandbox.
|
|
35
|
-
*
|
|
36
|
-
* @param scriptContent - The script content to execute
|
|
37
|
-
* @param scriptPath - Original file path (for runtime detection)
|
|
38
|
-
* @param env - Environment variables to inject
|
|
39
|
-
* @param args - Arguments to pass to the script
|
|
40
|
-
* @param config - Daytona configuration
|
|
41
|
-
* @returns Execution result
|
|
42
|
-
*/
|
|
43
|
-
export async function executeInDaytona(scriptContent, scriptPath, env, args, config) {
|
|
44
|
-
const startTime = Date.now();
|
|
45
|
-
const cfg = { ...DEFAULT_DAYTONA_CONFIG, ...config };
|
|
46
|
-
// Check if Daytona CLI is available
|
|
47
|
-
const daytonaAvailable = await checkDaytonaAvailable();
|
|
48
|
-
if (!daytonaAvailable.available) {
|
|
49
|
-
throw new Error(`Daytona CLI not available: ${daytonaAvailable.error}`);
|
|
50
|
-
}
|
|
51
|
-
// Create a temporary directory for the script
|
|
52
|
-
const tmpDir = join(tmpdir(), 'daytona-exec', randomBytes(8).toString('hex'));
|
|
53
|
-
await mkdir(tmpDir, { recursive: true });
|
|
54
|
-
// Determine script extension and container script path
|
|
55
|
-
const ext = getScriptExtension(scriptPath);
|
|
56
|
-
const containerScript = `${cfg.cwd}/skill${ext}`;
|
|
57
|
-
const hostScript = join(tmpDir, `skill${ext}`);
|
|
58
|
-
try {
|
|
59
|
-
// Write script to temporary file
|
|
60
|
-
await writeFile(hostScript, scriptContent, 'utf-8');
|
|
61
|
-
// Build Daytona command
|
|
62
|
-
const daytonaArgs = buildDaytonaArgs(hostScript, containerScript, env, args, cfg);
|
|
63
|
-
// Execute in Daytona
|
|
64
|
-
const result = await spawnDaytona(daytonaArgs, cfg.timeoutMs);
|
|
65
|
-
return {
|
|
66
|
-
success: result.exitCode === 0,
|
|
67
|
-
stdout: result.stdout,
|
|
68
|
-
stderr: result.stderr,
|
|
69
|
-
exitCode: result.exitCode,
|
|
70
|
-
durationMs: Date.now() - startTime,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
finally {
|
|
74
|
-
// Cleanup temporary directory
|
|
75
|
-
try {
|
|
76
|
-
const { rm } = await import('node:fs/promises');
|
|
77
|
-
await rm(tmpDir, { recursive: true, force: true });
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// Ignore cleanup errors
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Build Daytona arguments for cloud execution.
|
|
86
|
-
*/
|
|
87
|
-
function buildDaytonaArgs(hostScript, containerScript, env, args, config) {
|
|
88
|
-
const cfg = { ...DEFAULT_DAYTONA_CONFIG, ...config };
|
|
89
|
-
// Daytona uses a CLI-based approach
|
|
90
|
-
const daytonaArgs = [
|
|
91
|
-
'sandbox',
|
|
92
|
-
'create',
|
|
93
|
-
'--image', cfg.image,
|
|
94
|
-
'--cpu', String(cfg.cpu),
|
|
95
|
-
'--memory', String(cfg.memoryMb),
|
|
96
|
-
'--disk', String(cfg.diskMb),
|
|
97
|
-
];
|
|
98
|
-
// Add sandbox name if persistent
|
|
99
|
-
if (cfg.persistent && cfg.sandboxName) {
|
|
100
|
-
daytonaArgs.push('--name', cfg.sandboxName);
|
|
101
|
-
}
|
|
102
|
-
// Add the script to execute
|
|
103
|
-
daytonaArgs.push('exec', '--', 'bash', '-c', `
|
|
104
|
-
cat > ${containerScript} << 'SCRIPT_EOF'
|
|
105
|
-
$(cat ${hostScript})
|
|
106
|
-
SCRIPT_EOF
|
|
107
|
-
chmod +x ${containerScript}
|
|
108
|
-
${containerScript} ${args?.join(' ') || ''}
|
|
109
|
-
`);
|
|
110
|
-
return daytonaArgs;
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Spawn Daytona process with timeout and output capture.
|
|
114
|
-
*/
|
|
115
|
-
async function spawnDaytona(args, timeoutMs) {
|
|
116
|
-
return new Promise((resolve, reject) => {
|
|
117
|
-
const child = spawn('daytona', args, {
|
|
118
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
119
|
-
});
|
|
120
|
-
let stdout = '';
|
|
121
|
-
let stderr = '';
|
|
122
|
-
let killed = false;
|
|
123
|
-
// Capture stdout
|
|
124
|
-
child.stdout?.on('data', (data) => {
|
|
125
|
-
stdout += data.toString();
|
|
126
|
-
});
|
|
127
|
-
// Capture stderr
|
|
128
|
-
child.stderr?.on('data', (data) => {
|
|
129
|
-
stderr += data.toString();
|
|
130
|
-
});
|
|
131
|
-
// Set timeout
|
|
132
|
-
const timer = setTimeout(() => {
|
|
133
|
-
killed = true;
|
|
134
|
-
child.kill('SIGTERM');
|
|
135
|
-
// Force kill after 10 seconds
|
|
136
|
-
setTimeout(() => {
|
|
137
|
-
if (!child.killed) {
|
|
138
|
-
child.kill('SIGKILL');
|
|
139
|
-
}
|
|
140
|
-
}, 10000);
|
|
141
|
-
}, timeoutMs);
|
|
142
|
-
// Handle completion
|
|
143
|
-
child.on('close', (code) => {
|
|
144
|
-
clearTimeout(timer);
|
|
145
|
-
if (killed) {
|
|
146
|
-
resolve({
|
|
147
|
-
stdout,
|
|
148
|
-
stderr: stderr + '\n[Daytona execution timed out]',
|
|
149
|
-
exitCode: code ?? 124,
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
resolve({
|
|
154
|
-
stdout,
|
|
155
|
-
stderr,
|
|
156
|
-
exitCode: code ?? 1,
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
// Handle errors
|
|
161
|
-
child.on('error', (err) => {
|
|
162
|
-
clearTimeout(timer);
|
|
163
|
-
reject(err);
|
|
164
|
-
});
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
// ─── Helpers ─────────────────────────────────────────────────────────────
|
|
168
|
-
/**
|
|
169
|
-
* Get script extension from file path.
|
|
170
|
-
*/
|
|
171
|
-
function getScriptExtension(filePath) {
|
|
172
|
-
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
173
|
-
switch (ext) {
|
|
174
|
-
case 'py':
|
|
175
|
-
return '.py';
|
|
176
|
-
case 'js':
|
|
177
|
-
case 'mjs':
|
|
178
|
-
case 'cjs':
|
|
179
|
-
return '.js';
|
|
180
|
-
case 'ts':
|
|
181
|
-
case 'mts':
|
|
182
|
-
case 'cts':
|
|
183
|
-
return '.ts';
|
|
184
|
-
case 'rb':
|
|
185
|
-
return '.rb';
|
|
186
|
-
case 'go':
|
|
187
|
-
return '.go';
|
|
188
|
-
case 'rs':
|
|
189
|
-
return '.rs';
|
|
190
|
-
case 'sh':
|
|
191
|
-
case 'bash':
|
|
192
|
-
return '.sh';
|
|
193
|
-
default:
|
|
194
|
-
return '.sh';
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
// ─── Daytona Availability Check ──────────────────────────────────────────
|
|
198
|
-
/**
|
|
199
|
-
* Check if Daytona CLI is available and configured.
|
|
200
|
-
*/
|
|
201
|
-
export async function checkDaytonaAvailable() {
|
|
202
|
-
try {
|
|
203
|
-
const result = await spawnDaytona(['--version'], 5000);
|
|
204
|
-
if (result.exitCode === 0) {
|
|
205
|
-
const version = result.stdout.trim();
|
|
206
|
-
return { available: true, version };
|
|
207
|
-
}
|
|
208
|
-
return { available: false, error: result.stderr };
|
|
209
|
-
}
|
|
210
|
-
catch (err) {
|
|
211
|
-
return {
|
|
212
|
-
available: false,
|
|
213
|
-
error: err instanceof Error ? err.message : String(err),
|
|
214
|
-
};
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* List Daytona sandboxes.
|
|
219
|
-
*/
|
|
220
|
-
export async function listDaytonaSandboxes() {
|
|
221
|
-
try {
|
|
222
|
-
const result = await spawnDaytona(['sandbox', 'list', '--json'], 10000);
|
|
223
|
-
if (result.exitCode === 0) {
|
|
224
|
-
return JSON.parse(result.stdout);
|
|
225
|
-
}
|
|
226
|
-
return [];
|
|
227
|
-
}
|
|
228
|
-
catch {
|
|
229
|
-
return [];
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
/**
|
|
233
|
-
* Stop a Daytona sandbox.
|
|
234
|
-
*/
|
|
235
|
-
export async function stopDaytonaSandbox(sandboxId) {
|
|
236
|
-
try {
|
|
237
|
-
const result = await spawnDaytona(['sandbox', 'stop', sandboxId], 10000);
|
|
238
|
-
return result.exitCode === 0;
|
|
239
|
-
}
|
|
240
|
-
catch {
|
|
241
|
-
return false;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
/**
|
|
245
|
-
* Delete a Daytona sandbox.
|
|
246
|
-
*/
|
|
247
|
-
export async function deleteDaytonaSandbox(sandboxId) {
|
|
248
|
-
try {
|
|
249
|
-
const result = await spawnDaytona(['sandbox', 'delete', sandboxId], 10000);
|
|
250
|
-
return result.exitCode === 0;
|
|
251
|
-
}
|
|
252
|
-
catch {
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
//# sourceMappingURL=daytona-executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"daytona-executor.js","sourceRoot":"","sources":["../../src/skills/daytona-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Modal Cloud Executor — Runs skills in Modal cloud sandboxes.
|
|
3
|
-
*
|
|
4
|
-
* This provides enterprise-grade execution:
|
|
5
|
-
* - Persistent sandboxes across sessions
|
|
6
|
-
* - Custom Docker images
|
|
7
|
-
* - GPU support for ML workloads
|
|
8
|
-
* - File sync between local and cloud
|
|
9
|
-
* - Automatic scaling
|
|
10
|
-
*
|
|
11
|
-
* Flow:
|
|
12
|
-
* 1. Create or resume a Modal sandbox
|
|
13
|
-
* 2. Sync skill files to the sandbox
|
|
14
|
-
* 3. Execute the skill in the cloud
|
|
15
|
-
* 4. Capture output and sync results back
|
|
16
|
-
* 5. Optionally persist the sandbox for reuse
|
|
17
|
-
*/
|
|
18
|
-
export interface ModalConfig {
|
|
19
|
-
/** Modal image (default: python:3.11) */
|
|
20
|
-
image?: string;
|
|
21
|
-
/** CPU count (default: 1) */
|
|
22
|
-
cpu?: number;
|
|
23
|
-
/** Memory in MB (default: 1024) */
|
|
24
|
-
memoryMb?: number;
|
|
25
|
-
/** GPU type (e.g., 'A10G', 'T4', 'A100') */
|
|
26
|
-
gpu?: string;
|
|
27
|
-
/** Timeout in milliseconds (default: 60000) */
|
|
28
|
-
timeoutMs?: number;
|
|
29
|
-
/** Whether to persist the sandbox */
|
|
30
|
-
persistent?: boolean;
|
|
31
|
-
/** Sandbox name for persistence */
|
|
32
|
-
sandboxName?: string;
|
|
33
|
-
/** Working directory in sandbox */
|
|
34
|
-
cwd?: string;
|
|
35
|
-
/** Secrets to mount */
|
|
36
|
-
secrets?: Record<string, string>;
|
|
37
|
-
}
|
|
38
|
-
export interface ModalExecutionResult {
|
|
39
|
-
success: boolean;
|
|
40
|
-
stdout: string;
|
|
41
|
-
stderr: string;
|
|
42
|
-
exitCode: number;
|
|
43
|
-
durationMs: number;
|
|
44
|
-
sandboxId?: string;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Execute a skill in a Modal cloud sandbox.
|
|
48
|
-
*
|
|
49
|
-
* @param scriptContent - The script content to execute
|
|
50
|
-
* @param scriptPath - Original file path (for runtime detection)
|
|
51
|
-
* @param env - Environment variables to inject
|
|
52
|
-
* @param args - Arguments to pass to the script
|
|
53
|
-
* @param config - Modal configuration
|
|
54
|
-
* @returns Execution result
|
|
55
|
-
*/
|
|
56
|
-
export declare function executeInModal(scriptContent: string, scriptPath: string, env?: Record<string, string>, args?: string[], config?: Partial<ModalConfig>): Promise<ModalExecutionResult>;
|
|
57
|
-
/**
|
|
58
|
-
* Check if Modal CLI is available and configured.
|
|
59
|
-
*/
|
|
60
|
-
export declare function checkModalAvailable(): Promise<{
|
|
61
|
-
available: boolean;
|
|
62
|
-
version?: string;
|
|
63
|
-
error?: string;
|
|
64
|
-
}>;
|
|
65
|
-
/**
|
|
66
|
-
* List available Modal images.
|
|
67
|
-
*/
|
|
68
|
-
export declare function listModalImages(): Promise<string[]>;
|
|
69
|
-
/**
|
|
70
|
-
* List running Modal sandboxes.
|
|
71
|
-
*/
|
|
72
|
-
export declare function listModalSandboxes(): Promise<Array<{
|
|
73
|
-
id: string;
|
|
74
|
-
name: string;
|
|
75
|
-
status: string;
|
|
76
|
-
}>>;
|
|
77
|
-
/**
|
|
78
|
-
* Stop a Modal sandbox.
|
|
79
|
-
*/
|
|
80
|
-
export declare function stopModalSandbox(sandboxId: string): Promise<boolean>;
|
|
81
|
-
//# sourceMappingURL=modal-executor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modal-executor.d.ts","sourceRoot":"","sources":["../../src/skills/modal-executor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,MAAM,WAAW,WAAW;IAC1B,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAeD;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA6C/B;AAuKD;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAcD;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAUzD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,KAAK,CAAC;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC,CAAC,CAUF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO1E"}
|
|
@@ -1,285 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Modal Cloud Executor — Runs skills in Modal cloud sandboxes.
|
|
3
|
-
*
|
|
4
|
-
* This provides enterprise-grade execution:
|
|
5
|
-
* - Persistent sandboxes across sessions
|
|
6
|
-
* - Custom Docker images
|
|
7
|
-
* - GPU support for ML workloads
|
|
8
|
-
* - File sync between local and cloud
|
|
9
|
-
* - Automatic scaling
|
|
10
|
-
*
|
|
11
|
-
* Flow:
|
|
12
|
-
* 1. Create or resume a Modal sandbox
|
|
13
|
-
* 2. Sync skill files to the sandbox
|
|
14
|
-
* 3. Execute the skill in the cloud
|
|
15
|
-
* 4. Capture output and sync results back
|
|
16
|
-
* 5. Optionally persist the sandbox for reuse
|
|
17
|
-
*/
|
|
18
|
-
import { spawn } from 'node:child_process';
|
|
19
|
-
import { writeFile, mkdir } from 'node:fs/promises';
|
|
20
|
-
import { join } from 'node:path';
|
|
21
|
-
import { tmpdir } from 'node:os';
|
|
22
|
-
import { randomBytes } from 'node:crypto';
|
|
23
|
-
// ─── Default Configuration ───────────────────────────────────────────────
|
|
24
|
-
const DEFAULT_MODAL_CONFIG = {
|
|
25
|
-
image: 'python:3.11',
|
|
26
|
-
cpu: 1,
|
|
27
|
-
memoryMb: 1024,
|
|
28
|
-
timeoutMs: 60_000,
|
|
29
|
-
persistent: false,
|
|
30
|
-
cwd: '/root',
|
|
31
|
-
};
|
|
32
|
-
// ─── Modal Execution ─────────────────────────────────────────────────────
|
|
33
|
-
/**
|
|
34
|
-
* Execute a skill in a Modal cloud sandbox.
|
|
35
|
-
*
|
|
36
|
-
* @param scriptContent - The script content to execute
|
|
37
|
-
* @param scriptPath - Original file path (for runtime detection)
|
|
38
|
-
* @param env - Environment variables to inject
|
|
39
|
-
* @param args - Arguments to pass to the script
|
|
40
|
-
* @param config - Modal configuration
|
|
41
|
-
* @returns Execution result
|
|
42
|
-
*/
|
|
43
|
-
export async function executeInModal(scriptContent, scriptPath, env, args, config) {
|
|
44
|
-
const startTime = Date.now();
|
|
45
|
-
const cfg = { ...DEFAULT_MODAL_CONFIG, ...config };
|
|
46
|
-
// Check if Modal CLI is available
|
|
47
|
-
const modalAvailable = await checkModalAvailable();
|
|
48
|
-
if (!modalAvailable.available) {
|
|
49
|
-
throw new Error(`Modal CLI not available: ${modalAvailable.error}`);
|
|
50
|
-
}
|
|
51
|
-
// Create a temporary directory for the script
|
|
52
|
-
const tmpDir = join(tmpdir(), 'modal-exec', randomBytes(8).toString('hex'));
|
|
53
|
-
await mkdir(tmpDir, { recursive: true });
|
|
54
|
-
// Determine script extension and container script path
|
|
55
|
-
const ext = getScriptExtension(scriptPath);
|
|
56
|
-
const containerScript = `/root/skill${ext}`;
|
|
57
|
-
const hostScript = join(tmpDir, `skill${ext}`);
|
|
58
|
-
try {
|
|
59
|
-
// Write script to temporary file
|
|
60
|
-
await writeFile(hostScript, scriptContent, 'utf-8');
|
|
61
|
-
// Build Modal command
|
|
62
|
-
const modalArgs = buildModalArgs(hostScript, containerScript, env, args, cfg);
|
|
63
|
-
// Execute in Modal
|
|
64
|
-
const result = await spawnModal(modalArgs, cfg.timeoutMs);
|
|
65
|
-
return {
|
|
66
|
-
success: result.exitCode === 0,
|
|
67
|
-
stdout: result.stdout,
|
|
68
|
-
stderr: result.stderr,
|
|
69
|
-
exitCode: result.exitCode,
|
|
70
|
-
durationMs: Date.now() - startTime,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
finally {
|
|
74
|
-
// Cleanup temporary directory
|
|
75
|
-
try {
|
|
76
|
-
const { rm } = await import('node:fs/promises');
|
|
77
|
-
await rm(tmpDir, { recursive: true, force: true });
|
|
78
|
-
}
|
|
79
|
-
catch {
|
|
80
|
-
// Ignore cleanup errors
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Build Modal arguments for cloud execution.
|
|
86
|
-
*/
|
|
87
|
-
function buildModalArgs(hostScript, containerScript, env, args, config) {
|
|
88
|
-
const cfg = { ...DEFAULT_MODAL_CONFIG, ...config };
|
|
89
|
-
// Modal uses a Python-based CLI
|
|
90
|
-
const modalArgs = [
|
|
91
|
-
'run',
|
|
92
|
-
'--image', cfg.image,
|
|
93
|
-
'--cpu', String(cfg.cpu),
|
|
94
|
-
'--memory', String(cfg.memoryMb),
|
|
95
|
-
];
|
|
96
|
-
// Add GPU if specified
|
|
97
|
-
if (cfg.gpu) {
|
|
98
|
-
modalArgs.push('--gpu', cfg.gpu);
|
|
99
|
-
}
|
|
100
|
-
// Add secrets
|
|
101
|
-
if (cfg.secrets) {
|
|
102
|
-
for (const [key, value] of Object.entries(cfg.secrets)) {
|
|
103
|
-
modalArgs.push('--secret', `${key}=${value}`);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// Add environment variables
|
|
107
|
-
if (env) {
|
|
108
|
-
for (const [key, value] of Object.entries(env)) {
|
|
109
|
-
modalArgs.push('--env', `${key}=${value}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
// Add the script to execute
|
|
113
|
-
modalArgs.push('python', '-c', `
|
|
114
|
-
import subprocess
|
|
115
|
-
import sys
|
|
116
|
-
|
|
117
|
-
# Read the script
|
|
118
|
-
with open('${containerScript}', 'r') as f:
|
|
119
|
-
script = f.read()
|
|
120
|
-
|
|
121
|
-
# Execute the script
|
|
122
|
-
result = subprocess.run(
|
|
123
|
-
[sys.executable, '-c', script],
|
|
124
|
-
capture_output=True,
|
|
125
|
-
text=True
|
|
126
|
-
)
|
|
127
|
-
|
|
128
|
-
# Print output
|
|
129
|
-
print(result.stdout)
|
|
130
|
-
if result.stderr:
|
|
131
|
-
print(result.stderr, file=sys.stderr)
|
|
132
|
-
|
|
133
|
-
# Exit with the same code
|
|
134
|
-
sys.exit(result.returncode)
|
|
135
|
-
`);
|
|
136
|
-
return modalArgs;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Spawn Modal process with timeout and output capture.
|
|
140
|
-
*/
|
|
141
|
-
async function spawnModal(args, timeoutMs) {
|
|
142
|
-
return new Promise((resolve, reject) => {
|
|
143
|
-
const child = spawn('modal', args, {
|
|
144
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
145
|
-
});
|
|
146
|
-
let stdout = '';
|
|
147
|
-
let stderr = '';
|
|
148
|
-
let killed = false;
|
|
149
|
-
// Capture stdout
|
|
150
|
-
child.stdout?.on('data', (data) => {
|
|
151
|
-
stdout += data.toString();
|
|
152
|
-
});
|
|
153
|
-
// Capture stderr
|
|
154
|
-
child.stderr?.on('data', (data) => {
|
|
155
|
-
stderr += data.toString();
|
|
156
|
-
});
|
|
157
|
-
// Set timeout
|
|
158
|
-
const timer = setTimeout(() => {
|
|
159
|
-
killed = true;
|
|
160
|
-
child.kill('SIGTERM');
|
|
161
|
-
// Force kill after 10 seconds
|
|
162
|
-
setTimeout(() => {
|
|
163
|
-
if (!child.killed) {
|
|
164
|
-
child.kill('SIGKILL');
|
|
165
|
-
}
|
|
166
|
-
}, 10000);
|
|
167
|
-
}, timeoutMs);
|
|
168
|
-
// Handle completion
|
|
169
|
-
child.on('close', (code) => {
|
|
170
|
-
clearTimeout(timer);
|
|
171
|
-
if (killed) {
|
|
172
|
-
resolve({
|
|
173
|
-
stdout,
|
|
174
|
-
stderr: stderr + '\n[Modal execution timed out]',
|
|
175
|
-
exitCode: code ?? 124,
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
else {
|
|
179
|
-
resolve({
|
|
180
|
-
stdout,
|
|
181
|
-
stderr,
|
|
182
|
-
exitCode: code ?? 1,
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
});
|
|
186
|
-
// Handle errors
|
|
187
|
-
child.on('error', (err) => {
|
|
188
|
-
clearTimeout(timer);
|
|
189
|
-
reject(err);
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
// ─── Helpers ─────────────────────────────────────────────────────────────
|
|
194
|
-
/**
|
|
195
|
-
* Get script extension from file path.
|
|
196
|
-
*/
|
|
197
|
-
function getScriptExtension(filePath) {
|
|
198
|
-
const ext = filePath.split('.').pop()?.toLowerCase();
|
|
199
|
-
switch (ext) {
|
|
200
|
-
case 'py':
|
|
201
|
-
return '.py';
|
|
202
|
-
case 'js':
|
|
203
|
-
case 'mjs':
|
|
204
|
-
case 'cjs':
|
|
205
|
-
return '.js';
|
|
206
|
-
case 'ts':
|
|
207
|
-
case 'mts':
|
|
208
|
-
case 'cts':
|
|
209
|
-
return '.ts';
|
|
210
|
-
case 'rb':
|
|
211
|
-
return '.rb';
|
|
212
|
-
case 'go':
|
|
213
|
-
return '.go';
|
|
214
|
-
case 'rs':
|
|
215
|
-
return '.rs';
|
|
216
|
-
case 'sh':
|
|
217
|
-
case 'bash':
|
|
218
|
-
return '.sh';
|
|
219
|
-
default:
|
|
220
|
-
return '.sh';
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
// ─── Modal Availability Check ────────────────────────────────────────────
|
|
224
|
-
/**
|
|
225
|
-
* Check if Modal CLI is available and configured.
|
|
226
|
-
*/
|
|
227
|
-
export async function checkModalAvailable() {
|
|
228
|
-
try {
|
|
229
|
-
const result = await spawnModal(['--version'], 5000);
|
|
230
|
-
if (result.exitCode === 0) {
|
|
231
|
-
const version = result.stdout.trim();
|
|
232
|
-
return { available: true, version };
|
|
233
|
-
}
|
|
234
|
-
return { available: false, error: result.stderr };
|
|
235
|
-
}
|
|
236
|
-
catch (err) {
|
|
237
|
-
return {
|
|
238
|
-
available: false,
|
|
239
|
-
error: err instanceof Error ? err.message : String(err),
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* List available Modal images.
|
|
245
|
-
*/
|
|
246
|
-
export async function listModalImages() {
|
|
247
|
-
try {
|
|
248
|
-
const result = await spawnModal(['image', 'list'], 10000);
|
|
249
|
-
if (result.exitCode === 0) {
|
|
250
|
-
return result.stdout.trim().split('\n').filter(Boolean);
|
|
251
|
-
}
|
|
252
|
-
return [];
|
|
253
|
-
}
|
|
254
|
-
catch {
|
|
255
|
-
return [];
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* List running Modal sandboxes.
|
|
260
|
-
*/
|
|
261
|
-
export async function listModalSandboxes() {
|
|
262
|
-
try {
|
|
263
|
-
const result = await spawnModal(['sandbox', 'list', '--json'], 10000);
|
|
264
|
-
if (result.exitCode === 0) {
|
|
265
|
-
return JSON.parse(result.stdout);
|
|
266
|
-
}
|
|
267
|
-
return [];
|
|
268
|
-
}
|
|
269
|
-
catch {
|
|
270
|
-
return [];
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Stop a Modal sandbox.
|
|
275
|
-
*/
|
|
276
|
-
export async function stopModalSandbox(sandboxId) {
|
|
277
|
-
try {
|
|
278
|
-
const result = await spawnModal(['sandbox', 'stop', sandboxId], 10000);
|
|
279
|
-
return result.exitCode === 0;
|
|
280
|
-
}
|
|
281
|
-
catch {
|
|
282
|
-
return false;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
//# sourceMappingURL=modal-executor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"modal-executor.js","sourceRoot":"","sources":["../../src/skills/modal-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/inventory.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=inventory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../src/sync/inventory.ts"],"names":[],"mappings":""}
|
package/dist/sync/inventory.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"inventory.js","sourceRoot":"","sources":["../../src/sync/inventory.ts"],"names":[],"mappings":";AAAA,iCAAiC"}
|
package/dist/sync/validate.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/sync/validate.ts"],"names":[],"mappings":""}
|
package/dist/sync/validate.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/sync/validate.ts"],"names":[],"mappings":";AAAA,iCAAiC"}
|