@probelabs/visor 0.1.179-ee → 0.1.180-ee
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/defaults/assistant.yaml +29 -1
- package/defaults/code-talk.yaml +331 -441
- package/defaults/engineer.yaml +608 -0
- package/defaults/project-setup.yaml +489 -0
- package/defaults/skills/engineer.yaml +41 -0
- package/dist/{560.index.js → 736.index.js} +359 -3132
- package/dist/agent-protocol/task-store.d.ts +3 -0
- package/dist/agent-protocol/task-store.d.ts.map +1 -1
- package/dist/agent-protocol/track-execution.d.ts.map +1 -1
- package/dist/ai-review-service.d.ts +6 -0
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli.d.ts +5 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/defaults/assistant.yaml +29 -1
- package/dist/defaults/code-talk.yaml +331 -441
- package/dist/defaults/engineer.yaml +608 -0
- package/dist/defaults/project-setup.yaml +489 -0
- package/dist/defaults/skills/engineer.yaml +41 -0
- package/dist/docs/advanced-ai.md +39 -0
- package/dist/docs/ai-configuration.md +32 -0
- package/dist/docs/ai-custom-tools.md +25 -0
- package/dist/docs/architecture.md +3 -0
- package/dist/docs/assistant-workflows.md +395 -25
- package/dist/docs/configuration.md +2 -1
- package/dist/docs/glossary.md +27 -1
- package/dist/docs/guides/build-ai-agent.md +4 -0
- package/dist/docs/mcp.md +26 -0
- package/dist/docs/migration.md +2 -0
- package/dist/docs/pluggable.md +28 -1
- package/dist/docs/telemetry-reference.md +41 -0
- package/dist/docs/timeouts.md +86 -1
- package/dist/docs/utcp-provider.md +343 -0
- package/dist/docs/workflows.md +30 -0
- package/dist/examples/negotiated-timeout.yaml +65 -0
- package/dist/examples/screenshot-tool.yaml +100 -0
- package/dist/examples/utcp-provider-example.yaml +290 -0
- package/dist/examples/workflows/helper-workflow.yaml +15 -0
- package/dist/frontends/slack-frontend.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +75 -8
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +86 -8
- package/dist/index.js +42497 -33912
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/check-provider-registry.d.ts.map +1 -1
- package/dist/providers/check-provider.interface.d.ts +6 -0
- package/dist/providers/check-provider.interface.d.ts.map +1 -1
- package/dist/providers/http-client-provider.d.ts.map +1 -1
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/mcp-check-provider.d.ts +0 -8
- package/dist/providers/mcp-check-provider.d.ts.map +1 -1
- package/dist/providers/mcp-custom-sse-server.d.ts +5 -0
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
- package/dist/providers/utcp-check-provider.d.ts +81 -0
- package/dist/providers/utcp-check-provider.d.ts.map +1 -0
- package/dist/providers/workflow-check-provider.d.ts.map +1 -1
- package/dist/sandbox/check-runner.d.ts +1 -1
- package/dist/sandbox/check-runner.d.ts.map +1 -1
- package/dist/sandbox/compose-generator.d.ts +45 -0
- package/dist/sandbox/compose-generator.d.ts.map +1 -0
- package/dist/sandbox/index.d.ts +2 -1
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/sandbox-manager.d.ts +21 -1
- package/dist/sandbox/sandbox-manager.d.ts.map +1 -1
- package/dist/sandbox/types.d.ts +40 -0
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/sdk/{a2a-frontend-KJFLIZJT.mjs → a2a-frontend-6FNPD53G.mjs} +20 -2
- package/dist/sdk/a2a-frontend-6FNPD53G.mjs.map +1 -0
- package/dist/sdk/{check-provider-registry-SYAHJMWJ.mjs → check-provider-registry-T4HIUBMT.mjs} +8 -7
- package/dist/sdk/{check-provider-registry-J27YX4IT.mjs → check-provider-registry-Z4MVXFLJ.mjs} +9 -8
- package/dist/sdk/{chunk-ZJYQMNPA.mjs → chunk-3ZKBUWDB.mjs} +3 -3
- package/dist/sdk/{chunk-OYHDBTKY.mjs → chunk-5DQY4LTK.mjs} +2 -2
- package/dist/sdk/chunk-ANCIFGQH.mjs +825 -0
- package/dist/sdk/chunk-ANCIFGQH.mjs.map +1 -0
- package/dist/sdk/chunk-F25U4YWJ.mjs +825 -0
- package/dist/sdk/chunk-F25U4YWJ.mjs.map +1 -0
- package/dist/sdk/{chunk-UBTZE3FO.mjs → chunk-J27D43HS.mjs} +51 -8
- package/dist/sdk/chunk-J27D43HS.mjs.map +1 -0
- package/dist/sdk/{chunk-BMXVAJ2M.mjs → chunk-KAVOGMLR.mjs} +90 -15
- package/dist/sdk/chunk-KAVOGMLR.mjs.map +1 -0
- package/dist/sdk/{chunk-FTPLYUQ3.mjs → chunk-MWUQFSEK.mjs} +6981 -6461
- package/dist/sdk/chunk-MWUQFSEK.mjs.map +1 -0
- package/dist/sdk/{chunk-CHARL3TY.mjs → chunk-NBUN22ZG.mjs} +12 -2
- package/dist/sdk/chunk-NBUN22ZG.mjs.map +1 -0
- package/dist/sdk/{chunk-KWHLB5E3.mjs → chunk-STAAKOPU.mjs} +6516 -5996
- package/dist/sdk/chunk-STAAKOPU.mjs.map +1 -0
- package/dist/sdk/{config-DFOF7LP4.mjs → config-ZZKC47SV.mjs} +2 -2
- package/dist/sdk/dist-X4HSBKSA.mjs +5716 -0
- package/dist/sdk/dist-X4HSBKSA.mjs.map +1 -0
- package/dist/sdk/dist-XF2FTM6E.mjs +5716 -0
- package/dist/sdk/dist-XF2FTM6E.mjs.map +1 -0
- package/dist/sdk/{failure-condition-evaluator-V2YGFRKO.mjs → failure-condition-evaluator-WNCCIP6N.mjs} +3 -3
- package/dist/sdk/{github-frontend-4LM4NAZK.mjs → github-frontend-QVMVUL3Y.mjs} +3 -3
- package/dist/sdk/{host-GBXJKNHL.mjs → host-5TJBWGGH.mjs} +4 -4
- package/dist/sdk/{host-XXPPPC76.mjs → host-RVLIZMTE.mjs} +4 -4
- package/dist/sdk/{loader-Q7K76ZIY.mjs → loader-ZNKKJEZ3.mjs} +1 -1
- package/dist/sdk/{routing-YAYBIVPL.mjs → routing-5DHNS7IW.mjs} +4 -4
- package/dist/sdk/{schedule-tool-OIVJDIDK.mjs → schedule-tool-25CFKVOI.mjs} +8 -7
- package/dist/sdk/{schedule-tool-WACIV77L.mjs → schedule-tool-UGWYLGJK.mjs} +9 -8
- package/dist/sdk/{schedule-tool-handler-ODKY57FO.mjs → schedule-tool-handler-VWBX4JEF.mjs} +8 -7
- package/dist/sdk/{schedule-tool-handler-SJF4ZKSB.mjs → schedule-tool-handler-WK22RO3M.mjs} +9 -8
- package/dist/sdk/sdk.d.mts +42 -2
- package/dist/sdk/sdk.d.ts +42 -2
- package/dist/sdk/sdk.js +28250 -21090
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +8 -7
- package/dist/sdk/sdk.mjs.map +1 -1
- package/dist/sdk/{slack-frontend-OWD7BSWF.mjs → slack-frontend-BPWXNIHE.mjs} +3 -3
- package/dist/sdk/slack-frontend-BPWXNIHE.mjs.map +1 -0
- package/dist/sdk/{trace-helpers-QL2B75AK.mjs → trace-helpers-GCLQ3YKO.mjs} +2 -2
- package/dist/sdk/{track-execution-2Q66SXBZ.mjs → track-execution-GCGJKMAO.mjs} +6 -4
- package/dist/sdk/track-execution-GCGJKMAO.mjs.map +1 -0
- package/dist/sdk/utcp-check-provider-6YTBN5WQ.mjs +16 -0
- package/dist/sdk/utcp-check-provider-HT2MA5SS.mjs +16 -0
- package/dist/sdk/{workflow-check-provider-IXW6BMQA.mjs → workflow-check-provider-I732XE7D.mjs} +8 -7
- package/dist/sdk/{workflow-check-provider-UZQZYPOE.mjs → workflow-check-provider-T4PFK2EG.mjs} +9 -8
- package/dist/sdk/workflow-check-provider-T4PFK2EG.mjs.map +1 -0
- package/dist/sdk/{workflow-registry-LRSRWUM5.mjs → workflow-registry-X2IPY35M.mjs} +2 -2
- package/dist/sdk/workflow-registry-X2IPY35M.mjs.map +1 -0
- package/dist/slack/adapter.d.ts +8 -0
- package/dist/slack/adapter.d.ts.map +1 -1
- package/dist/slack/client.d.ts +1 -0
- package/dist/slack/client.d.ts.map +1 -1
- package/dist/slack/socket-runner.d.ts +1 -0
- package/dist/slack/socket-runner.d.ts.map +1 -1
- package/dist/state-machine/dispatch/execution-invoker.d.ts.map +1 -1
- package/dist/state-machine/dispatch/sandbox-routing.d.ts +25 -1
- package/dist/state-machine/dispatch/sandbox-routing.d.ts.map +1 -1
- package/dist/state-machine-execution-engine.d.ts.map +1 -1
- package/dist/telemetry/opentelemetry.d.ts +6 -0
- package/dist/telemetry/opentelemetry.d.ts.map +1 -1
- package/dist/test-runner/core/flow-stage.d.ts +1 -2
- package/dist/test-runner/core/flow-stage.d.ts.map +1 -1
- package/dist/test-runner/index.d.ts +0 -3
- package/dist/test-runner/index.d.ts.map +1 -1
- package/dist/test-runner/validator.d.ts.map +1 -1
- package/dist/types/config.d.ts +36 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/issue-normalizer.d.ts +27 -0
- package/dist/utils/issue-normalizer.d.ts.map +1 -0
- package/dist/utils/worktree-manager.d.ts +9 -2
- package/dist/utils/worktree-manager.d.ts.map +1 -1
- package/dist/workflow-registry.d.ts +5 -0
- package/dist/workflow-registry.d.ts.map +1 -1
- package/package.json +12 -2
- package/dist/sdk/a2a-frontend-KJFLIZJT.mjs.map +0 -1
- package/dist/sdk/chunk-BMXVAJ2M.mjs.map +0 -1
- package/dist/sdk/chunk-CHARL3TY.mjs.map +0 -1
- package/dist/sdk/chunk-FTPLYUQ3.mjs.map +0 -1
- package/dist/sdk/chunk-KWHLB5E3.mjs.map +0 -1
- package/dist/sdk/chunk-UBTZE3FO.mjs.map +0 -1
- package/dist/sdk/slack-frontend-OWD7BSWF.mjs.map +0 -1
- package/dist/sdk/track-execution-2Q66SXBZ.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-J27YX4IT.mjs.map → check-provider-registry-T4HIUBMT.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-SYAHJMWJ.mjs.map → check-provider-registry-Z4MVXFLJ.mjs.map} +0 -0
- /package/dist/sdk/{chunk-ZJYQMNPA.mjs.map → chunk-3ZKBUWDB.mjs.map} +0 -0
- /package/dist/sdk/{chunk-OYHDBTKY.mjs.map → chunk-5DQY4LTK.mjs.map} +0 -0
- /package/dist/sdk/{config-DFOF7LP4.mjs.map → config-ZZKC47SV.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-V2YGFRKO.mjs.map → failure-condition-evaluator-WNCCIP6N.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-4LM4NAZK.mjs.map → github-frontend-QVMVUL3Y.mjs.map} +0 -0
- /package/dist/sdk/{host-GBXJKNHL.mjs.map → host-5TJBWGGH.mjs.map} +0 -0
- /package/dist/sdk/{host-XXPPPC76.mjs.map → host-RVLIZMTE.mjs.map} +0 -0
- /package/dist/sdk/{loader-Q7K76ZIY.mjs.map → loader-ZNKKJEZ3.mjs.map} +0 -0
- /package/dist/sdk/{routing-YAYBIVPL.mjs.map → routing-5DHNS7IW.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-OIVJDIDK.mjs.map → schedule-tool-25CFKVOI.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-WACIV77L.mjs.map → schedule-tool-UGWYLGJK.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-ODKY57FO.mjs.map → schedule-tool-handler-VWBX4JEF.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-SJF4ZKSB.mjs.map → schedule-tool-handler-WK22RO3M.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-QL2B75AK.mjs.map → trace-helpers-GCLQ3YKO.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-IXW6BMQA.mjs.map → utcp-check-provider-6YTBN5WQ.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-UZQZYPOE.mjs.map → utcp-check-provider-HT2MA5SS.mjs.map} +0 -0
- /package/dist/sdk/{workflow-registry-LRSRWUM5.mjs.map → workflow-check-provider-I732XE7D.mjs.map} +0 -0
package/README.md
CHANGED
|
@@ -19,8 +19,8 @@ Visor is an open-source workflow engine that lets you define multi-step AI pipel
|
|
|
19
19
|
|
|
20
20
|
- **YAML-driven pipelines** — define checks, transforms, routing, and AI prompts in a single config file.
|
|
21
21
|
- **8 runtime modes** — CLI, GitHub Action, Slack bot, Telegram bot, Email, WhatsApp, Teams, HTTP server — same config, any surface.
|
|
22
|
-
- **
|
|
23
|
-
- **AI orchestration** — multi-provider (Gemini, Claude, OpenAI, Bedrock), session reuse, MCP tool calling, retry & fallback.
|
|
22
|
+
- **17 provider types** — `ai`, `command`, `script`, `mcp`, `utcp`, `http`, `claude-code`, `a2a`, `github`, `memory`, `workflow`, and more.
|
|
23
|
+
- **AI orchestration** — multi-provider (Gemini, Claude, OpenAI, Bedrock), session reuse, MCP/UTCP tool calling, retry & fallback.
|
|
24
24
|
- **Execution engine** — dependency DAGs, parallel waves, forEach fan-out, conditional routing, failure auto-remediation.
|
|
25
25
|
- **Built-in testing** — YAML-native integration tests with fixtures, mocks, and assertions.
|
|
26
26
|
|
|
@@ -34,6 +34,7 @@ Visor is an open-source workflow engine that lets you define multi-step AI pipel
|
|
|
34
34
|
| **Chat assistant / Bot** | [Bot Integrations](docs/bot-integrations.md) | [teams-assistant.yaml](examples/teams-assistant.yaml) |
|
|
35
35
|
| **Run shell commands + AI** | [Command Provider](docs/command-provider.md) | [ai-with-bash.yaml](examples/ai-with-bash.yaml) |
|
|
36
36
|
| **Connect MCP tools** | [MCP Provider](docs/mcp-provider.md) | [mcp-provider-example.yaml](examples/mcp-provider-example.yaml) |
|
|
37
|
+
| **Call tools via UTCP** | [UTCP Provider](docs/utcp-provider.md) | [utcp-provider-example.yaml](examples/utcp-provider-example.yaml) |
|
|
37
38
|
| **Add API integrations (TDD)** | [Guide: TDD Assistant Workflows](docs/guides/tdd-assistant-workflows.md) | [workable.tests.yaml](https://github.com/TykTechnologies/REFINE/blob/main/Oel/tests/workable.tests.yaml) |
|
|
38
39
|
|
|
39
40
|
> **First time?** Run `npx visor init` to scaffold a working config, then `npx visor` to run it.
|
|
@@ -241,7 +242,7 @@ Learn more: [docs/commands.md](docs/commands.md)
|
|
|
241
242
|
| Concept | What it is |
|
|
242
243
|
|---------|-----------|
|
|
243
244
|
| **Step** (or Check) | Unit of work — a shell command, AI call, HTTP request, script, etc. |
|
|
244
|
-
| **Provider** | How a step runs: `ai`, `command`, `script`, `mcp`, `http`, `claude-code`, `github`, `memory`, `workflow`, … |
|
|
245
|
+
| **Provider** | How a step runs: `ai`, `command`, `script`, `mcp`, `utcp`, `http`, `claude-code`, `github`, `memory`, `workflow`, … |
|
|
245
246
|
| **depends_on** | Execution order — independents run in parallel, dependents wait. |
|
|
246
247
|
| **forEach** | Fan-out — transform output into an array, run dependents per item. |
|
|
247
248
|
| **Routing** | `on_fail`, `on_success`, `goto`, `retry` — conditional flow with loop safety. |
|
|
@@ -260,6 +261,7 @@ Learn more: [docs/commands.md](docs/commands.md)
|
|
|
260
261
|
| `command` | Shell commands with Liquid templating | Run tests, build, lint |
|
|
261
262
|
| `script` | JavaScript in a secure sandbox | Transform data, custom logic |
|
|
262
263
|
| `mcp` | MCP tool execution (stdio/SSE/HTTP) | External tool integration |
|
|
264
|
+
| `utcp` | UTCP tool execution (HTTP/CLI/SSE) | Direct tool calling via manuals |
|
|
263
265
|
| `claude-code` | Claude Code SDK with MCP tools | Deep code analysis, refactoring |
|
|
264
266
|
| `http` | HTTP output/webhook sender | Notify Slack, trigger CI |
|
|
265
267
|
| `http_input` | Webhook receiver | Accept external events |
|
|
@@ -778,7 +780,7 @@ Learn more: [docs/enterprise-policy.md](docs/enterprise-policy.md)
|
|
|
778
780
|
[Tools & Toolkits](docs/tools-and-toolkits.md) · [Assistant workflows](docs/assistant-workflows.md) · [TDD for assistant workflows](docs/guides/tdd-assistant-workflows.md) · [Workflow creation](docs/workflow-creation-guide.md) · [Workflow style guide](docs/guides/workflow-style-guide.md) · [Dependencies](docs/dependencies.md) · [forEach propagation](docs/foreach-dependency-propagation.md) · [Failure routing](docs/failure-routing.md) · [Router patterns](docs/router-patterns.md) · [Lifecycle hooks](docs/lifecycle-hooks.md) · [Liquid templates](docs/liquid-templates.md) · [Schema-template system](docs/schema-templates.md) · [Fail conditions](docs/fail-if.md) · [Failure conditions schema](docs/failure-conditions-schema.md) · [Failure conditions impl](docs/failure-conditions-implementation.md) · [Timeouts](docs/timeouts.md) · [Execution limits](docs/limits.md) · [Event triggers](docs/event-triggers.md) · [Output formats](docs/output-formats.md) · [Output formatting](docs/output-formatting.md) · [Default output schema](docs/default-output-schema.md) · [Output history](docs/output-history.md) · [Reusable workflows](docs/workflows.md) · [Criticality modes](docs/guides/criticality-modes.md) · [Fault management](docs/guides/fault-management-and-contracts.md)
|
|
779
781
|
|
|
780
782
|
**Providers:**
|
|
781
|
-
[A2A](docs/a2a-provider.md) · [Command](docs/command-provider.md) · [Script](docs/script.md) · [MCP](docs/mcp-provider.md) · [MCP tools for AI](docs/mcp.md) · [Claude Code](docs/claude-code.md) · [AI custom tools](docs/ai-custom-tools.md) · [AI custom tools usage](docs/ai-custom-tools-usage.md) · [Custom tools](docs/custom-tools.md) · [GitHub ops](docs/github-ops.md) · [Git checkout](docs/providers/git-checkout.md) · [HTTP integration](docs/http.md) · [Memory](docs/memory.md) · [Human input](docs/human-input-provider.md) · [Custom providers](docs/pluggable.md)
|
|
783
|
+
[A2A](docs/a2a-provider.md) · [Command](docs/command-provider.md) · [Script](docs/script.md) · [MCP](docs/mcp-provider.md) · [UTCP](docs/utcp-provider.md) · [MCP tools for AI](docs/mcp.md) · [Claude Code](docs/claude-code.md) · [AI custom tools](docs/ai-custom-tools.md) · [AI custom tools usage](docs/ai-custom-tools-usage.md) · [Custom tools](docs/custom-tools.md) · [GitHub ops](docs/github-ops.md) · [Git checkout](docs/providers/git-checkout.md) · [HTTP integration](docs/http.md) · [Memory](docs/memory.md) · [Human input](docs/human-input-provider.md) · [Custom providers](docs/pluggable.md)
|
|
782
784
|
|
|
783
785
|
**Operations:**
|
|
784
786
|
[Security](docs/security.md) · [Performance](docs/performance.md) · [Observability](docs/observability.md) · [Debugging](docs/debugging.md) · [Debug visualizer](docs/debug-visualizer.md) · [Telemetry setup](docs/telemetry-setup.md) · [Dashboards](docs/dashboards/README.md) · [Troubleshooting](docs/troubleshooting.md) · [Suppressions](docs/suppressions.md) · [GitHub checks](docs/GITHUB_CHECKS.md) · [Bot integrations](docs/bot-integrations.md) · [Slack](docs/slack-integration.md) · [Telegram](docs/telegram-integration.md) · [Email](docs/email-integration.md) · [WhatsApp](docs/whatsapp-integration.md) · [Teams](docs/teams-integration.md) · [Scheduler](docs/scheduler.md) · [Sandbox engines](docs/sandbox-engines.md)
|
package/defaults/assistant.yaml
CHANGED
|
@@ -72,6 +72,7 @@ version: "1.0.0"
|
|
|
72
72
|
imports:
|
|
73
73
|
- intent-router.yaml
|
|
74
74
|
- code-talk.yaml
|
|
75
|
+
- engineer.yaml
|
|
75
76
|
|
|
76
77
|
inputs:
|
|
77
78
|
# =========================================================================
|
|
@@ -536,6 +537,7 @@ steps:
|
|
|
536
537
|
const knowledgeParts = [];
|
|
537
538
|
const bashAllow = [];
|
|
538
539
|
const bashDeny = [];
|
|
540
|
+
const extraAllowedFolders = [];
|
|
539
541
|
let bashEnabled = false;
|
|
540
542
|
let executePlanEnabled = false;
|
|
541
543
|
|
|
@@ -685,6 +687,15 @@ steps:
|
|
|
685
687
|
}
|
|
686
688
|
}
|
|
687
689
|
}
|
|
690
|
+
|
|
691
|
+
// Collect extra allowed folders (e.g. /tmp for screenshot tools)
|
|
692
|
+
if (Array.isArray(skill.allowed_folders)) {
|
|
693
|
+
for (let j = 0; j < skill.allowed_folders.length; j++) {
|
|
694
|
+
if (extraAllowedFolders.indexOf(skill.allowed_folders[j]) === -1) {
|
|
695
|
+
extraAllowedFolders.push(skill.allowed_folders[j]);
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
688
699
|
}
|
|
689
700
|
}
|
|
690
701
|
|
|
@@ -747,7 +758,8 @@ steps:
|
|
|
747
758
|
bash_config: {
|
|
748
759
|
allow: bashAllow,
|
|
749
760
|
deny: bashDeny
|
|
750
|
-
}
|
|
761
|
+
},
|
|
762
|
+
extra_allowed_folders: extraAllowedFolders
|
|
751
763
|
};
|
|
752
764
|
|
|
753
765
|
# -------------------------------------------------------------------------
|
|
@@ -762,6 +774,20 @@ steps:
|
|
|
762
774
|
- "outputs['build-config'] != null"
|
|
763
775
|
guarantee: "(output?.text ?? '').length > 0"
|
|
764
776
|
ai:
|
|
777
|
+
# ── Timeout Configuration ──────────────────────────────────────────
|
|
778
|
+
# Visor hard kill: 2 hours (safety net, always active)
|
|
779
|
+
timeout: 7200000
|
|
780
|
+
# Probe soft timeout: 30 minutes — observer fires here
|
|
781
|
+
ai_timeout: 1800000
|
|
782
|
+
# Negotiated: independent observer LLM decides extensions
|
|
783
|
+
timeout_behavior: negotiated
|
|
784
|
+
# Budget: 60 min total (3 × 20 min extensions → up to 1.5h total)
|
|
785
|
+
negotiated_timeout_budget: 3600000
|
|
786
|
+
negotiated_timeout_max_requests: 3
|
|
787
|
+
negotiated_timeout_max_per_request: 1200000
|
|
788
|
+
# Wind-down for sub-workflows (engineer, code-talk) after stop
|
|
789
|
+
graceful_stop_deadline: 30000
|
|
790
|
+
# ──────────────────────────────────────────────────────────────────
|
|
765
791
|
max_iterations: "{{ inputs.max_iterations }}"
|
|
766
792
|
enableDelegate: "{{ inputs.enableDelegate }}"
|
|
767
793
|
enableTasks: "{{ inputs.enableTasks }}"
|
|
@@ -820,6 +846,8 @@ steps:
|
|
|
820
846
|
ai_mcp_servers_js: |
|
|
821
847
|
// Return the pre-built MCP servers from build-config
|
|
822
848
|
return outputs['build-config']?.mcp_servers ?? {};
|
|
849
|
+
ai_extra_allowed_folders_js: |
|
|
850
|
+
return outputs['build-config']?.extra_allowed_folders ?? [];
|
|
823
851
|
ai_bash_config_js: |
|
|
824
852
|
return outputs['build-config']?.bash_config ?? {};
|
|
825
853
|
schema:
|