From 71eeb2439efbc059b7b43e0c7538f0d605334386 Mon Sep 17 00:00:00 2001 From: Your Name Date: Mon, 13 Apr 2026 21:14:54 +1000 Subject: [PATCH] chore: bump version to 1.5.0 Comprehensive version bump across all source files, specs, templates, conformance cases, registry, Website content, npm package, and docs. New in 1.5.0: - Immutable Inference Sandboxing (IIS) with sandbox: spec key - Chain-wide deep-copy input immutability - History threading (stateless multi-turn via history input field) - Memory-retriever registry spec (LLM re-ranker for long-term memory) - Spec Registry (oa:// URL scheme, openagentspec.dev/registry/) - npm CLI (@prime-vector/open-agent-spec) - CLI terminal UI redesign (compact banner, spinner, smart output) - --quiet mode clean string output New artifacts: spec/open-agent-spec-1.5.md, spec/schema/oas-schema-1.5.json Made-with: Cursor --- .agents/ci-failure-repair.yaml | 2 +- .agents/codex-runner.yaml | 2 +- .agents/hello-world-agent.yaml | 2 +- .agents/review.yaml | 2 +- CHANGELOG.md | 25 + CONTRIBUTING.md | 6 +- README.md | 4 +- Website/app/page.tsx | 8 +- Website/app/registry/page.tsx | 2 +- Website/content/codexSpec.ts | 2 +- Website/content/codexSpec.yaml | 2 +- Website/content/defaultSpec.ts | 2 +- Website/content/defaultSpec.yaml | 2 +- Website/content/multiTaskSpec.ts | 2 +- Website/content/researchAssistantSpec.ts | 2 +- Website/content/researchAssistantSpec.yaml | 2 +- Website/content/toolsSpec.ts | 2 +- .../prime-vector/classifier/1.0.0/spec.yaml | 2 +- .../prime-vector/classifier/latest/spec.yaml | 2 +- .../code-reviewer/1.0.0/spec.yaml | 2 +- .../code-reviewer/latest/spec.yaml | 2 +- .../keyword-extractor/1.0.0/spec.yaml | 2 +- .../keyword-extractor/latest/spec.yaml | 2 +- .../prime-vector/sentiment/1.0.0/spec.yaml | 2 +- .../prime-vector/sentiment/latest/spec.yaml | 2 +- .../prime-vector/summariser/1.0.0/spec.yaml | 2 +- .../prime-vector/summariser/latest/spec.yaml | 2 +- Website/tsconfig.tsbuildinfo | 1 + docs/REFERENCE.md | 4 +- examples/file-reader/file-reader.yaml | 2 +- examples/mcp-local/agent.yaml | 2 +- examples/mcp-search/mcp-search.yaml | 2 +- examples/registry-demo/pipeline.yaml | 2 +- examples/spec-composition/coordinator.yaml | 2 +- .../spec-composition/shared/sentiment.yaml | 2 +- .../spec-composition/shared/summariser.yaml | 2 +- npm/README.md | 2 +- npm/package.json | 2 +- npm/src/cli.ts | 2 +- npm/src/types.ts | 2 +- oas_cli/templates/aac-example.yaml | 2 +- oas_cli/templates/aac-review.yaml | 2 +- .../templates/minimal-agent-tool-usage.yaml | 2 +- oas_cli/templates/minimal-agent.yaml | 2 +- .../templates/minimal-multi-task-agent.yaml | 2 +- pyproject.toml | 2 +- spec/conformance/README.md | 6 +- .../cases/delegation/default-task-name.yaml | 2 +- .../cases/delegation/delegated-spec.yaml | 2 +- .../cases/delegation/local-path.yaml | 2 +- .../cases/delegation/missing-task.yaml | 2 +- .../cases/depends-on/cycle-detection.yaml | 2 +- .../cases/depends-on/linear-chain.yaml | 2 +- .../cases/depends-on/merge-order.yaml | 2 +- .../depends-on/no-chain-key-without-deps.yaml | 2 +- .../cases/depends-on/unknown-dependency.yaml | 2 +- .../conformance/cases/errors/chain-cycle.yaml | 2 +- .../cases/errors/chain-input-missing.yaml | 2 +- .../cases/errors/contract-violation.yaml | 2 +- .../cases/errors/error-structure.yaml | 2 +- .../cases/errors/task-not-found.yaml | 2 +- .../cases/prompt-resolution/cli-override.yaml | 2 +- .../prompt-resolution/global-fallback.yaml | 2 +- .../independent-resolution.yaml | 2 +- .../prompt-resolution/legacy-task-map.yaml | 2 +- .../prompt-resolution/per-task-inline.yaml | 2 +- .../fence-stripping-no-lang.yaml | 2 +- .../response-format/fence-stripping.yaml | 2 +- .../cases/response-format/json-default.yaml | 2 +- .../output-schema-validation.yaml | 2 +- .../cases/response-format/text-mode.yaml | 2 +- .../cases/schema/invalid-engine.yaml | 2 +- .../cases/schema/missing-agent.yaml | 2 +- .../cases/schema/missing-intelligence.yaml | 2 +- .../cases/schema/missing-tasks.yaml | 2 +- .../cases/schema/valid-minimal.yaml | 2 +- spec/conformance/runner/conformance_runner.py | 4 +- spec/open-agent-spec-1.5.md | 741 ++++++++++++++++++ spec/schema/oas-schema-1.5.json | 522 ++++++++++++ tests/test_main.py | 4 +- tests/test_multi_task_workflows.py | 8 +- tests/test_registry.py | 8 +- tests/test_runner.py | 14 +- tests/test_spec_composition.py | 2 +- tests/test_spec_test.py | 2 +- tests/test_tool_providers.py | 2 +- 86 files changed, 1394 insertions(+), 105 deletions(-) create mode 100644 Website/tsconfig.tsbuildinfo create mode 100644 spec/open-agent-spec-1.5.md create mode 100644 spec/schema/oas-schema-1.5.json diff --git a/.agents/ci-failure-repair.yaml b/.agents/ci-failure-repair.yaml index 0d0aeed..8c070a5 100644 --- a/.agents/ci-failure-repair.yaml +++ b/.agents/ci-failure-repair.yaml @@ -11,7 +11,7 @@ # oa run --spec .agents/ci-failure-repair.yaml --task diagnose_and_remediate \ # --input "$(jq -n --rawfile log log.txt '{workflow_name:"CI",branch:"main",job_log:$log}')" --quiet # -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: ci-failure-repair-agent diff --git a/.agents/codex-runner.yaml b/.agents/codex-runner.yaml index c41d810..5d5398a 100644 --- a/.agents/codex-runner.yaml +++ b/.agents/codex-runner.yaml @@ -1,4 +1,4 @@ -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: codex-runner-agent diff --git a/.agents/hello-world-agent.yaml b/.agents/hello-world-agent.yaml index fcfbf91..f595bd1 100644 --- a/.agents/hello-world-agent.yaml +++ b/.agents/hello-world-agent.yaml @@ -1,4 +1,4 @@ -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: hello-world-agent diff --git a/.agents/review.yaml b/.agents/review.yaml index 37ddfc7..fe1a669 100644 --- a/.agents/review.yaml +++ b/.agents/review.yaml @@ -3,7 +3,7 @@ # git diff > change.diff # oa run --spec .agents/review.yaml --task review --input change.diff --quiet # -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: code-reviewer diff --git a/CHANGELOG.md b/CHANGELOG.md index edf46fe..6196cdc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,31 @@ All notable changes to **open-agent-spec** (Open Agent CLI) will be documented i The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.5.0] - 2026-04-13 + +### Added +- **Immutable Inference Sandboxing (IIS)** — a new `sandbox:` spec key that lets you declare hard execution constraints enforced by the runner *before* any tool call reaches the I/O layer. Three constraint types: `tools.allow`/`deny` (tool allowlist/denylist), `http.allow_domains` (HTTP host restriction for `http.get`/`http.post`), `file.allow_paths` (file path restriction for `file.read`/`file.write`). Sandbox can be declared at root level (all tasks) or per-task (overrides root). Three structured error codes: `SANDBOX_TOOL_VIOLATION`, `SANDBOX_DOMAIN_VIOLATION`, `SANDBOX_PATH_VIOLATION`. +- **Chain-wide input immutability** — every task boundary now receives a deep copy of its input. Upstream chain mutations can never leak into downstream inputs or back to the caller's original dict. +- **History threading** — pass a `history` array in the input to any task and it is injected into the LLM message list between system and user turns, enabling stateless multi-turn conversations without OAS managing persistence. +- **Memory-retriever registry spec** (`oa://prime-vector/memory-retriever`) — an LLM re-ranker that accepts pre-fetched `candidates` (prior conversation turns from your own store) and returns the most contextually relevant ones as a `history` array, ready to inject into any chat-capable task. +- **Spec Registry** — `openagentspec.dev/registry/` hosts shareable specs via `oa://` shorthand URLs. Includes seed specs: `oa://prime-vector/summariser`, `classifier`, `sentiment`, `code-reviewer`, `keyword-extractor`, and `memory-retriever`. +- **npm CLI** (`@prime-vector/open-agent-spec`) — a native TypeScript port of `oa run` for Node.js environments. Supports OpenAI and Anthropic providers, `depends_on` chains, and history threading. No Python required. +- **CLI terminal UI redesign** — new compact bot-face banner (`Panel.fit`), live inference spinner, syntax-highlighted JSON output panel, smart string rendering (Markdown for prose, extracted fenced JSON), and a unified help panel combining the bot face and command reference. +- **`examples/sandboxed-agent/`** — demo spec showing root-level sandbox, per-task sandbox override, and the OAS vs BCE boundary. +- **`examples/chat-agent/`** and **`examples/memory-chat/`** — reference implementations for history threading and the memory-retriever re-ranker pattern. +- **Formal spec** `spec/open-agent-spec-1.5.md` and canonical schema `spec/schema/oas-schema-1.5.json` updated with all new keys (`sandbox:`, `history` threading convention). + +### Changed +- `--quiet` mode: plain-string outputs are now written directly (no `json.dumps` quoting/escaping). Dict/list outputs remain pretty-printed JSON. +- `OARunError` now propagates through the `except Exception` catch block in `_run_single_task` so structured errors (sandbox violations, delegation errors) are never re-wrapped as `RUN_ERROR`. +- `oa://` registry URL scheme formalised — the runner resolves `oa:///` to `https://openagentspec.dev/registry///latest/spec.yaml`. +- BCE `allowed_tools` field noted as a future rename to `expected_tools` (audit-not-enforcement semantics) in docs and REFERENCE.md. + +### Fixed +- Banner `Panel()` replaced with `Panel.fit()` — banner no longer stretches to full terminal width. +- `--input ` correctly maps file content to the single required string field; `.json` files are always parsed as JSON objects. +- File-reader example prompt now explicitly names required output fields (`summary`, `key_points`) to prevent the model omitting them. + ## [1.4.1] - 2026-04-12 ### Added diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 76d8940..141218a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ The Open Agent Spec (OA) uses YAML files to define agent configurations. Use the #### Basic Structure ```yaml -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: my-agent @@ -52,7 +52,7 @@ intelligence: 1. Trading Agent: ```yaml -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: market-analyzer @@ -71,7 +71,7 @@ intelligence: 2. Content Generator: ```yaml -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: content-creator diff --git a/README.md b/README.md index e80e76c..b6dc80d 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ oa run --spec .agents/review.yaml --task review --input change.diff --quiet Start from this shape: ```yaml -open_agent_spec: "1.4.0" +open_agent_spec: "1.5.0" agent: name: hello-world-agent @@ -236,7 +236,7 @@ The formal specification defines what a conforming OAS runtime must do, independ | Resource | Contents | |----------|----------| -| [spec/open-agent-spec-1.4.md](spec/open-agent-spec-1.4.md) | Formal specification — normative MUST/SHOULD/MAY requirements for OAS 1.4.0 | +| [spec/open-agent-spec-1.4.md](spec/open-agent-spec-1.4.md) | Formal specification — normative MUST/SHOULD/MAY requirements for OAS 1.5.0 | | [spec/schema/oas-schema-1.4.json](spec/schema/oas-schema-1.4.json) | Canonical JSON Schema for validating spec documents | | [spec/conformance/README.md](spec/conformance/README.md) | Conformance test structure and contribution guide | diff --git a/Website/app/page.tsx b/Website/app/page.tsx index bc074ba..a807381 100644 --- a/Website/app/page.tsx +++ b/Website/app/page.tsx @@ -89,7 +89,7 @@ export default function HomePage() { Open source · MIT - Spec v1.4.0 + Spec v1.5.0 Python · Node.js @@ -125,11 +125,11 @@ export default function HomePage() { - {/* What's new in 1.4.0 */} + {/* What's new in 1.5.0 */}
- New in 1.4.0 + New in 1.5.0

Tool use, spec composition, and a test harness | all from YAML. @@ -517,7 +517,7 @@ tasks: Open source · MIT - Spec v1.4.0 + Spec v1.5.0

diff --git a/Website/app/registry/page.tsx b/Website/app/registry/page.tsx index d4b0a12..cbb4cef 100644 --- a/Website/app/registry/page.tsx +++ b/Website/app/registry/page.tsx @@ -173,7 +173,7 @@ export default function RegistryPage() {
-                {`open_agent_spec: "1.4.0"
+                {`open_agent_spec: "1.5.0"
 
 agent:
   name: my-pipeline
diff --git a/Website/content/codexSpec.ts b/Website/content/codexSpec.ts
index eefa4cd..9278322 100644
--- a/Website/content/codexSpec.ts
+++ b/Website/content/codexSpec.ts
@@ -1,5 +1,5 @@
 // Codex engine example spec. Keep in sync with codexSpec.yaml.
-export const CODEX_SPEC_YAML = `open_agent_spec: "1.4.0"
+export const CODEX_SPEC_YAML = `open_agent_spec: "1.5.0"
 
 agent:
   name: repo-refactor-agent
diff --git a/Website/content/codexSpec.yaml b/Website/content/codexSpec.yaml
index 1ca9789..d6467e8 100644
--- a/Website/content/codexSpec.yaml
+++ b/Website/content/codexSpec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: repo-refactor-agent
diff --git a/Website/content/defaultSpec.ts b/Website/content/defaultSpec.ts
index fa6ff36..5073204 100644
--- a/Website/content/defaultSpec.ts
+++ b/Website/content/defaultSpec.ts
@@ -1,5 +1,5 @@
 // Default YAML shown in the playground editor. Keep in sync with defaultSpec.yaml.
-export const DEFAULT_SPEC_YAML = `open_agent_spec: "1.4.0"
+export const DEFAULT_SPEC_YAML = `open_agent_spec: "1.5.0"
 
 agent:
   name: hello-world-agent
diff --git a/Website/content/defaultSpec.yaml b/Website/content/defaultSpec.yaml
index 71cc3f2..1a8ec81 100644
--- a/Website/content/defaultSpec.yaml
+++ b/Website/content/defaultSpec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: hello-world-agent
diff --git a/Website/content/multiTaskSpec.ts b/Website/content/multiTaskSpec.ts
index 723afa8..719bdb9 100644
--- a/Website/content/multiTaskSpec.ts
+++ b/Website/content/multiTaskSpec.ts
@@ -1,4 +1,4 @@
-export const MULTI_TASK_SPEC_YAML = `open_agent_spec: "1.4.0"
+export const MULTI_TASK_SPEC_YAML = `open_agent_spec: "1.5.0"
 
 agent:
   name: research-pipeline
diff --git a/Website/content/researchAssistantSpec.ts b/Website/content/researchAssistantSpec.ts
index 68e0ede..5756925 100644
--- a/Website/content/researchAssistantSpec.ts
+++ b/Website/content/researchAssistantSpec.ts
@@ -1,5 +1,5 @@
 // Research assistant example. Keep in sync with researchAssistantSpec.yaml.
-export const RESEARCH_ASSISTANT_SPEC_YAML = `open_agent_spec: "1.4.0"
+export const RESEARCH_ASSISTANT_SPEC_YAML = `open_agent_spec: "1.5.0"
 
 agent:
   name: research-assistant
diff --git a/Website/content/researchAssistantSpec.yaml b/Website/content/researchAssistantSpec.yaml
index 1f20248..e19f8b6 100644
--- a/Website/content/researchAssistantSpec.yaml
+++ b/Website/content/researchAssistantSpec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: research-assistant
diff --git a/Website/content/toolsSpec.ts b/Website/content/toolsSpec.ts
index ab0ec72..431a738 100644
--- a/Website/content/toolsSpec.ts
+++ b/Website/content/toolsSpec.ts
@@ -1,4 +1,4 @@
-export const TOOLS_SPEC_YAML = `open_agent_spec: "1.4.0"
+export const TOOLS_SPEC_YAML = `open_agent_spec: "1.5.0"
 
 agent:
   name: file-analyst
diff --git a/Website/public/registry/prime-vector/classifier/1.0.0/spec.yaml b/Website/public/registry/prime-vector/classifier/1.0.0/spec.yaml
index d08b632..f263833 100644
--- a/Website/public/registry/prime-vector/classifier/1.0.0/spec.yaml
+++ b/Website/public/registry/prime-vector/classifier/1.0.0/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: classifier
diff --git a/Website/public/registry/prime-vector/classifier/latest/spec.yaml b/Website/public/registry/prime-vector/classifier/latest/spec.yaml
index d08b632..f263833 100644
--- a/Website/public/registry/prime-vector/classifier/latest/spec.yaml
+++ b/Website/public/registry/prime-vector/classifier/latest/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: classifier
diff --git a/Website/public/registry/prime-vector/code-reviewer/1.0.0/spec.yaml b/Website/public/registry/prime-vector/code-reviewer/1.0.0/spec.yaml
index 0d68c8d..0dda966 100644
--- a/Website/public/registry/prime-vector/code-reviewer/1.0.0/spec.yaml
+++ b/Website/public/registry/prime-vector/code-reviewer/1.0.0/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: code-reviewer
diff --git a/Website/public/registry/prime-vector/code-reviewer/latest/spec.yaml b/Website/public/registry/prime-vector/code-reviewer/latest/spec.yaml
index 0d68c8d..0dda966 100644
--- a/Website/public/registry/prime-vector/code-reviewer/latest/spec.yaml
+++ b/Website/public/registry/prime-vector/code-reviewer/latest/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: code-reviewer
diff --git a/Website/public/registry/prime-vector/keyword-extractor/1.0.0/spec.yaml b/Website/public/registry/prime-vector/keyword-extractor/1.0.0/spec.yaml
index ae2290a..3d6ad31 100644
--- a/Website/public/registry/prime-vector/keyword-extractor/1.0.0/spec.yaml
+++ b/Website/public/registry/prime-vector/keyword-extractor/1.0.0/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: keyword-extractor
diff --git a/Website/public/registry/prime-vector/keyword-extractor/latest/spec.yaml b/Website/public/registry/prime-vector/keyword-extractor/latest/spec.yaml
index ae2290a..3d6ad31 100644
--- a/Website/public/registry/prime-vector/keyword-extractor/latest/spec.yaml
+++ b/Website/public/registry/prime-vector/keyword-extractor/latest/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: keyword-extractor
diff --git a/Website/public/registry/prime-vector/sentiment/1.0.0/spec.yaml b/Website/public/registry/prime-vector/sentiment/1.0.0/spec.yaml
index 6998b26..163533d 100644
--- a/Website/public/registry/prime-vector/sentiment/1.0.0/spec.yaml
+++ b/Website/public/registry/prime-vector/sentiment/1.0.0/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: sentiment
diff --git a/Website/public/registry/prime-vector/sentiment/latest/spec.yaml b/Website/public/registry/prime-vector/sentiment/latest/spec.yaml
index 6998b26..163533d 100644
--- a/Website/public/registry/prime-vector/sentiment/latest/spec.yaml
+++ b/Website/public/registry/prime-vector/sentiment/latest/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: sentiment
diff --git a/Website/public/registry/prime-vector/summariser/1.0.0/spec.yaml b/Website/public/registry/prime-vector/summariser/1.0.0/spec.yaml
index 901cf95..a6446ac 100644
--- a/Website/public/registry/prime-vector/summariser/1.0.0/spec.yaml
+++ b/Website/public/registry/prime-vector/summariser/1.0.0/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: summariser
diff --git a/Website/public/registry/prime-vector/summariser/latest/spec.yaml b/Website/public/registry/prime-vector/summariser/latest/spec.yaml
index 901cf95..a6446ac 100644
--- a/Website/public/registry/prime-vector/summariser/latest/spec.yaml
+++ b/Website/public/registry/prime-vector/summariser/latest/spec.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: summariser
diff --git a/Website/tsconfig.tsbuildinfo b/Website/tsconfig.tsbuildinfo
new file mode 100644
index 0000000..f09de44
--- /dev/null
+++ b/Website/tsconfig.tsbuildinfo
@@ -0,0 +1 @@
+{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/future/route-kind.d.ts","./node_modules/next/dist/server/future/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/server/lib/revalidate.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/future/helpers/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/font-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-modules/route-module.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage-instance.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage.external.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/client/components/request-async-storage-instance.d.ts","./node_modules/next/dist/client/components/request-async-storage.external.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/router-reducer/create-initial-router-state.d.ts","./node_modules/next/dist/client/components/app-router.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/action-async-storage-instance.d.ts","./node_modules/next/dist/client/components/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/search-params.d.ts","./node_modules/next/dist/client/components/not-found-boundary.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/future/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/future/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/future/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/future/normalizers/normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/future/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefix.d.ts","./node_modules/next/dist/server/future/normalizers/request/postponed.d.ts","./node_modules/next/dist/server/future/normalizers/request/action.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/webpack/plugins/define-env-plugin.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/types/index.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/client/components/draft-mode.d.ts","./node_modules/next/dist/client/components/headers.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./tailwind.config.ts","./app/api/generate/route.ts","./node_modules/@types/js-yaml/index.d.ts","./node_modules/@types/js-yaml/index.d.mts","./app/api/run-demo/route.ts","./content/codexspec.ts","./content/defaultspec.ts","./content/multitaskspec.ts","./content/researchassistantspec.ts","./content/toolsspec.ts","./content/examples/index.ts","./lib/spec/types.ts","./lib/codegen/generate.ts","./lib/runtime/types.ts","./lib/runtime/mockruntime.ts","./node_modules/fast-uri/types/index.d.ts","./node_modules/ajv/dist/compile/codegen/code.d.ts","./node_modules/ajv/dist/compile/codegen/scope.d.ts","./node_modules/ajv/dist/compile/codegen/index.d.ts","./node_modules/ajv/dist/compile/rules.d.ts","./node_modules/ajv/dist/compile/util.d.ts","./node_modules/ajv/dist/compile/validate/subschema.d.ts","./node_modules/ajv/dist/compile/errors.d.ts","./node_modules/ajv/dist/compile/validate/index.d.ts","./node_modules/ajv/dist/compile/validate/datatype.d.ts","./node_modules/ajv/dist/vocabularies/applicator/additionalitems.d.ts","./node_modules/ajv/dist/vocabularies/applicator/items2020.d.ts","./node_modules/ajv/dist/vocabularies/applicator/contains.d.ts","./node_modules/ajv/dist/vocabularies/applicator/dependencies.d.ts","./node_modules/ajv/dist/vocabularies/applicator/propertynames.d.ts","./node_modules/ajv/dist/vocabularies/applicator/additionalproperties.d.ts","./node_modules/ajv/dist/vocabularies/applicator/not.d.ts","./node_modules/ajv/dist/vocabularies/applicator/anyof.d.ts","./node_modules/ajv/dist/vocabularies/applicator/oneof.d.ts","./node_modules/ajv/dist/vocabularies/applicator/if.d.ts","./node_modules/ajv/dist/vocabularies/applicator/index.d.ts","./node_modules/ajv/dist/vocabularies/validation/limitnumber.d.ts","./node_modules/ajv/dist/vocabularies/validation/multipleof.d.ts","./node_modules/ajv/dist/vocabularies/validation/pattern.d.ts","./node_modules/ajv/dist/vocabularies/validation/required.d.ts","./node_modules/ajv/dist/vocabularies/validation/uniqueitems.d.ts","./node_modules/ajv/dist/vocabularies/validation/const.d.ts","./node_modules/ajv/dist/vocabularies/validation/enum.d.ts","./node_modules/ajv/dist/vocabularies/validation/index.d.ts","./node_modules/ajv/dist/vocabularies/format/format.d.ts","./node_modules/ajv/dist/vocabularies/unevaluated/unevaluatedproperties.d.ts","./node_modules/ajv/dist/vocabularies/unevaluated/unevaluateditems.d.ts","./node_modules/ajv/dist/vocabularies/validation/dependentrequired.d.ts","./node_modules/ajv/dist/vocabularies/discriminator/types.d.ts","./node_modules/ajv/dist/vocabularies/discriminator/index.d.ts","./node_modules/ajv/dist/vocabularies/errors.d.ts","./node_modules/ajv/dist/types/json-schema.d.ts","./node_modules/ajv/dist/types/jtd-schema.d.ts","./node_modules/ajv/dist/runtime/validation_error.d.ts","./node_modules/ajv/dist/compile/ref_error.d.ts","./node_modules/ajv/dist/core.d.ts","./node_modules/ajv/dist/compile/resolve.d.ts","./node_modules/ajv/dist/compile/index.d.ts","./node_modules/ajv/dist/types/index.d.ts","./node_modules/ajv/dist/ajv.d.ts","./node_modules/ajv-formats/dist/formats.d.ts","./node_modules/ajv-formats/dist/limit.d.ts","./node_modules/ajv-formats/dist/index.d.ts","./lib/spec/schema.ts","./lib/spec/validate.ts","./lib/spec/parse.ts","./app/layout.tsx","./components/installcard.tsx","./app/page.tsx","./components/layout/splitscreen.tsx","./components/layout/resulttabs.tsx","./node_modules/@monaco-editor/loader/lib/types.d.ts","./node_modules/monaco-editor/esm/vs/editor/editor.api.d.ts","./node_modules/monaco-editor/esm/vs/editor/editor.main.d.ts","./node_modules/@monaco-editor/react/dist/index.d.ts","./components/editor/yamleditor.tsx","./components/playground/generatebutton.tsx","./components/playground/runbutton.tsx","./components/output/generatedcodetab.tsx","./components/output/logstab.tsx","./components/output/outputtab.tsx","./app/examples/page.tsx","./public/registry/index.json","./app/registry/page.tsx","./components/playground/runwithopenaimodal.tsx","./.next/types/app/layout.ts","./.next/types/app/page.ts","./node_modules/@types/json5/index.d.ts","./node_modules/@types/trusted-types/lib/index.d.ts","./node_modules/@types/trusted-types/index.d.ts"],"fileIdsList":[[99,145,359,500],[99,145,359,502],[99,145,404],[99,145,404,437],[87,99,145,444,445,446,447,448,499,503,504,509,510,511,512,513,514],[99,145,407],[99,145,386,388,408,501],[99,145,388,516],[87,99,145,375,508],[87,99,145],[87,99,145,447],[99,145],[99,145,439,440,441,442,443],[99,145,445],[99,145,445,447],[99,145,437,445,498],[99,145,445,493,496,497],[99,145,407,408],[87,99,145,505,507],[99,145,436],[99,142,145],[99,144,145],[145],[99,145,150,178],[99,145,146,151,156,164,175,186],[99,145,146,147,156,164],[94,95,96,99,145],[99,145,148,187],[99,145,149,150,157,165],[99,145,150,175,183],[99,145,151,153,156,164],[99,144,145,152],[99,145,153,154],[99,145,155,156],[99,144,145,156],[99,145,156,157,158,175,186],[99,145,156,157,158,171,175,178],[99,145,153,156,159,164,175,186],[99,145,156,157,159,160,164,175,183,186],[99,145,159,161,175,183,186],[97,98,99,100,101,102,103,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,156,162],[99,145,163,186,191],[99,145,153,156,164,175],[99,145,165],[99,145,166],[99,144,145,167],[99,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,169],[99,145,170],[99,145,156,171,172],[99,145,171,173,187,189],[99,145,156,175,176,178],[99,145,177,178],[99,145,175,176],[99,145,178],[99,145,179],[99,142,145,175,180],[99,145,156,181,182],[99,145,181,182],[99,145,150,164,175,183],[99,145,184],[99,145,164,185],[99,145,159,170,186],[99,145,150,187],[99,145,175,188],[99,145,163,189],[99,145,190],[99,140,145],[99,140,145,156,158,167,175,178,186,189,191],[99,145,175,192],[87,99,145,197,198,199],[87,99,145,197,198],[87,91,99,145,196,360,403],[87,91,99,145,195,360,403],[84,85,86,99,145],[99,145,522],[99,145,493],[99,145,493,494,495],[99,145,452,453,457,484,485,487,488,489,491,492],[99,145,450,451],[99,145,450],[99,145,452,492],[99,145,452,453,489,490,492],[99,145,492],[99,145,449,492,493],[99,145,452,453,491,492],[99,145,452,453,455,456,491,492],[99,145,452,453,454,491,492],[99,145,452,453,457,484,485,486,487,488,491,492],[99,145,449,452,453,457,489,491],[99,145,457,492],[99,145,459,460,461,462,463,464,465,466,467,468,492],[99,145,482,492],[99,145,458,469,477,478,479,480,481,483],[99,145,462,492],[99,145,470,471,472,473,474,475,476,492],[99,145,506],[92,99,145],[99,145,364],[99,145,366,367,368],[99,145,370],[99,145,202,212,218,220,360],[99,145,202,209,211,214,232],[99,145,212],[99,145,212,214,338],[99,145,267,285,300,406],[99,145,308],[99,145,202,212,219,253,263,335,336,406],[99,145,219,406],[99,145,212,263,264,265,406],[99,145,212,219,253,406],[99,145,406],[99,145,202,219,220,406],[99,145,293],[99,144,145,193,292],[87,99,145,286,287,288,305,306],[87,99,145,286],[99,145,276],[99,145,275,277,380],[87,99,145,286,287,303],[99,145,282,306,392],[99,145,390,391],[99,145,226,389],[99,145,279],[99,144,145,193,226,242,275,276,277,278],[87,99,145,303,305,306],[99,145,303,305],[99,145,303,304,306],[99,145,170,193],[99,145,274],[99,144,145,193,211,213,270,271,272,273],[87,99,145,203,383],[87,99,145,186,193],[87,99,145,219,251],[87,99,145,219],[99,145,249,254],[87,99,145,250,363],[87,91,99,145,159,193,195,196,360,401,402],[99,145,360],[99,145,201],[99,145,353,354,355,356,357,358],[99,145,355],[87,99,145,250,286,363],[87,99,145,286,361,363],[87,99,145,286,363],[99,145,159,193,213,363],[99,145,159,193,210,211,222,240,242,274,279,280,302,303],[99,145,271,274,279,287,289,290,291,293,294,295,296,297,298,299,406],[99,145,272],[87,99,145,170,193,211,212,240,242,243,245,270,302,306,360,406],[99,145,159,193,213,214,226,227,275],[99,145,159,193,212,214],[99,145,159,175,193,210,213,214],[99,145,159,170,186,193,210,211,212,213,214,219,222,223,233,234,236,239,240,242,243,244,245,269,270,303,311,313,316,318,321,323,324,325,326],[99,145,159,175,193],[99,145,202,203,204,210,211,360,363,406],[99,145,159,175,186,193,207,337,339,340,406],[99,145,170,186,193,207,210,213,230,234,236,237,238,243,270,316,327,329,335,349,350],[99,145,212,216,270],[99,145,210,212],[99,145,223,317],[99,145,319,320],[99,145,319],[99,145,317],[99,145,319,322],[99,145,206,207],[99,145,206,246],[99,145,206],[99,145,208,223,315],[99,145,314],[99,145,207,208],[99,145,208,312],[99,145,207],[99,145,302],[99,145,159,193,210,222,241,261,267,281,284,301,303],[99,145,255,256,257,258,259,260,282,283,306,361],[99,145,310],[99,145,159,193,210,222,241,247,307,309,311,360,363],[99,145,159,186,193,203,210,212,269],[99,145,266],[99,145,159,193,343,348],[99,145,233,242,269,363],[99,145,331,335,349,352],[99,145,159,216,335,343,344,352],[99,145,202,212,233,244,346],[99,145,159,193,212,219,244,330,331,341,342,345,347],[99,145,194,240,241,242,360,363],[99,145,159,170,186,193,208,210,211,213,216,221,222,230,233,234,236,237,238,239,243,245,269,270,313,327,328,363],[99,145,159,193,210,212,216,329,351],[99,145,159,193,211,213],[87,99,145,159,170,193,201,203,210,211,214,222,239,240,242,243,245,310,360,363],[99,145,159,170,186,193,205,208,209,213],[99,145,206,268],[99,145,159,193,206,211,222],[99,145,159,193,212,223],[99,145,159,193],[99,145,226],[99,145,225],[99,145,227],[99,145,212,224,226,230],[99,145,212,224,226],[99,145,159,193,205,212,213,219,227,228,229],[87,99,145,303,304,305],[99,145,262],[87,99,145,203],[87,99,145,236],[87,99,145,194,239,242,245,360,363],[99,145,203,383,384],[87,99,145,254],[87,99,145,170,186,193,201,248,250,252,253,363],[99,145,213,219,236],[99,145,235],[87,99,145,157,159,170,193,201,254,263,360,361,362],[83,87,88,89,90,99,145,195,196,360,403],[99,145,150],[99,145,332,333,334],[99,145,332],[99,145,372],[99,145,374],[99,145,376],[99,145,378],[99,145,381],[99,145,385],[91,93,99,145,360,365,369,371,373,375,377,379,382,386,388,394,395,397,404,405,406],[99,145,387],[99,145,393],[99,145,250],[99,145,396],[99,144,145,227,228,229,230,398,399,400,403],[99,145,193],[87,91,99,145,159,161,170,193,195,196,197,199,201,214,352,359,363,403],[99,145,425],[99,145,423,425],[99,145,414,422,423,424,426,428],[99,145,412],[99,145,415,420,425,428],[99,145,411,428],[99,145,415,416,419,420,421,428],[99,145,415,416,417,419,420,428],[99,145,412,413,414,415,416,420,421,422,424,425,426,428],[99,145,428],[99,145,410,412,413,414,415,416,417,419,420,421,422,423,424,425,426,427],[99,145,410,428],[99,145,415,417,418,420,421,428],[99,145,419,428],[99,145,420,421,425,428],[99,145,413,423],[99,145,430,431],[99,145,429,432],[99,112,116,145,186],[99,112,145,175,186],[99,107,145],[99,109,112,145,183,186],[99,145,164,183],[99,107,145,193],[99,109,112,145,164,186],[99,104,105,108,111,145,156,175,186],[99,112,119,145],[99,104,110,145],[99,112,133,134,145],[99,108,112,145,178,186,193],[99,133,145,193],[99,106,107,145,193],[99,112,145],[99,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,145],[99,112,127,145],[99,112,119,120,145],[99,110,112,120,121,145],[99,111,145],[99,104,107,112,145],[99,112,116,120,121,145],[99,116,145],[99,110,112,115,145,186],[99,104,109,112,119,145],[99,145,175],[99,107,112,133,145,191,193],[99,145,433]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"0990a7576222f248f0a3b888adcb7389f957928ce2afb1cd5128169086ff4d29","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc69795d9954ee4ad57545b10c7bf1a7260d990231b1685c147ea71a6faa265c","impliedFormat":1},{"version":"8bc6c94ff4f2af1f4023b7bb2379b08d3d7dd80c698c9f0b07431ea16101f05f","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"57194e1f007f3f2cbef26fa299d4c6b21f4623a2eddc63dfeef79e38e187a36e","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"4b34bdb6f29a4347b7db9c0f8622686035fe25adb1c9e927acd8d22a2cbb6ccb","impliedFormat":1},{"version":"714435130b9015fae551788df2a88038471a5a11eb471f27c4ede86552842bc9","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"27fdb0da0daf3b337c5530c5f266efe046a6ceb606e395b346974e4360c36419","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"47ab634529c5955b6ad793474ae188fce3e6163e3a3fb5edd7e0e48f14435333","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"fad4e3c207fe23922d0b2d06b01acbfb9714c4f2685cf80fd384c8a100c82fd0","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"05db535df8bdc30d9116fe754a3473d1b6479afbc14ae8eb18b605c62677d518","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"8caa5c86be1b793cd5f599e27ecb34252c41e011980f7d61ae4989a149ff6ccc","impliedFormat":1},{"version":"f9fd93190acb1ffe0bc0fb395df979452f8d625071e9ffc8636e4dfb86ab2508","impliedFormat":1},{"version":"5f41fd8732a89e940c58ce22206e3df85745feb8983e2b4c6257fb8cbb118493","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"1cfa8647d7d71cb03847d616bd79320abfc01ddea082a49569fda71ac5ece66b","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"cfe4ef4710c3786b6e23dae7c086c70b4f4835a2e4d77b75d39f9046106e83d3","impliedFormat":1},{"version":"cbea99888785d49bb630dcbb1613c73727f2b5a2cf02e1abcaab7bcf8d6bf3c5","impliedFormat":1},{"version":"3989ccb24f2526f7e82cf54268e23ce9e1df5b9982f8acd099ddd4853c26babd","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"2dad084c67e649f0f354739ec7df7c7df0779a28a4f55c97c6b6883ae850d1ce","impliedFormat":1},{"version":"fa5bbc7ab4130dd8cdc55ea294ec39f76f2bc507a0f75f4f873e38631a836ca7","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"cf86de1054b843e484a3c9300d62fbc8c97e77f168bbffb131d560ca0474d4a8","impliedFormat":1},{"version":"196c960b12253fde69b204aa4fbf69470b26daf7a430855d7f94107a16495ab0","impliedFormat":1},{"version":"ee15ea5dd7a9fc9f5013832e5843031817a880bf0f24f37a29fd8337981aae07","impliedFormat":1},{"version":"bf24f6d35f7318e246010ffe9924395893c4e96d34324cde77151a73f078b9ad","impliedFormat":1},{"version":"805c5db07d4b131bede36cc2dbded64cc3c8e49594e53119f4442af183f97935","impliedFormat":1},{"version":"10595c7ff5094dd5b6a959ccb1c00e6a06441b4e10a87bc09c15f23755d34439","impliedFormat":1},{"version":"9620c1ff645afb4a9ab4044c85c26676f0a93e8c0e4b593aea03a89ccb47b6d0","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"08ed0b3f0166787f84a6606f80aa3b1388c7518d78912571b203817406e471da","impliedFormat":1},{"version":"47e5af2a841356a961f815e7c55d72554db0c11b4cba4d0caab91f8717846a94","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"f5f541902bf7ae0512a177295de9b6bcd6809ea38307a2c0a18bfca72212f368","impliedFormat":1},{"version":"b0decf4b6da3ebc52ea0c96095bdfaa8503acc4ac8e9081c5f2b0824835dd3bd","impliedFormat":1},{"version":"ca1b882a105a1972f82cc58e3be491e7d750a1eb074ffd13b198269f57ed9e1b","impliedFormat":1},{"version":"fc3e1c87b39e5ba1142f27ec089d1966da168c04a859a4f6aab64dceae162c2b","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"61888522cec948102eba94d831c873200aa97d00d8989fdfd2a3e0ee75ec65a2","impliedFormat":1},{"version":"4e10622f89fea7b05dd9b52fb65e1e2b5cbd96d4cca3d9e1a60bb7f8a9cb86a1","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"59bf32919de37809e101acffc120596a9e45fdbab1a99de5087f31fdc36e2f11","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"b3aa6ede7dda2ee53ee78f257d5d6188f6ba75ac0a34a4b88be4ca93b869da07","impliedFormat":1},{"version":"c40c848daad198266370c1c72a7a8c3d18d2f50727c7859fcfefd3ff69a7f288","impliedFormat":1},{"version":"ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","impliedFormat":1},{"version":"6428e6edd944ce6789afdf43f9376c1f2e4957eea34166177625aaff4c0da1a0","impliedFormat":1},{"version":"ada39cbb2748ab2873b7835c90c8d4620723aedf323550e8489f08220e477c7f","impliedFormat":1},{"version":"6e5f5cee603d67ee1ba6120815497909b73399842254fc1e77a0d5cdc51d8c9c","impliedFormat":1},{"version":"8dba67056cbb27628e9b9a1cba8e57036d359dceded0725c72a3abe4b6c79cd4","impliedFormat":1},{"version":"70f3814c457f54a7efe2d9ce9d2686de9250bb42eb7f4c539bd2280a42e52d33","impliedFormat":1},{"version":"154dd2e22e1e94d5bc4ff7726706bc0483760bae40506bdce780734f11f7ec47","impliedFormat":1},{"version":"ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"15e3409b8397457d761d8d6f8c524795845c3aeb5dd0d4291ca0c54fec670b72","impliedFormat":1},{"version":"f6404e7837b96da3ea4d38c4f1a3812c96c9dcdf264e93d5bdb199f983a3ef4b","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"8b8f00491431fe82f060dfe8c7f2180a9fb239f3d851527db909b83230e75882","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"903e299a28282fa7b714586e28409ed73c3b63f5365519776bf78e8cf173db36","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"dd3900b24a6a8745efeb7ad27629c0f8a626470ac229c1d73f1fe29d67e44dca","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"ec29be0737d39268696edcec4f5e97ce26f449fa9b7afc2f0f99a86def34a418","impliedFormat":1},{"version":"aeab39e8e0b1a3b250434c3b2bb8f4d17bbec2a9dbce5f77e8a83569d3d2cbc2","impliedFormat":1},{"version":"ec6cba1c02c675e4dd173251b156792e8d3b0c816af6d6ad93f1a55d674591aa","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"d729408dfde75b451530bcae944cf89ee8277e2a9df04d1f62f2abfd8b03c1e1","impliedFormat":1},{"version":"e15d3c84d5077bb4a3adee4c791022967b764dc41cb8fa3cfa44d4379b2c95f5","impliedFormat":1},{"version":"5f58e28cd22e8fc1ac1b3bc6b431869f1e7d0b39e2c21fbf79b9fa5195a85980","impliedFormat":1},{"version":"e1fc1a1045db5aa09366be2b330e4ce391550041fc3e925f60998ca0b647aa97","impliedFormat":1},{"version":"63533978dcda286422670f6e184ac516805a365fb37a086eeff4309e812f1402","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"31fb49ef3aa3d76f0beb644984e01eab0ea222372ea9b49bb6533be5722d756c","impliedFormat":1},{"version":"33cd131e1461157e3e06b06916b5176e7a8ec3fce15a5cfe145e56de744e07d2","impliedFormat":1},{"version":"889ef863f90f4917221703781d9723278db4122d75596b01c429f7c363562b86","impliedFormat":1},{"version":"3556cfbab7b43da96d15a442ddbb970e1f2fc97876d055b6555d86d7ac57dae5","impliedFormat":1},{"version":"437751e0352c6e924ddf30e90849f1d9eb00ca78c94d58d6a37202ec84eb8393","impliedFormat":1},{"version":"48e8af7fdb2677a44522fd185d8c87deff4d36ee701ea003c6c780b1407a1397","impliedFormat":1},{"version":"d11308de5a36c7015bb73adb5ad1c1bdaac2baede4cc831a05cf85efa3cc7f2f","impliedFormat":1},{"version":"38e4684c22ed9319beda6765bab332c724103d3a966c2e5e1c5a49cf7007845f","impliedFormat":1},{"version":"f9812cfc220ecf7557183379531fa409acd249b9e5b9a145d0d52b76c20862de","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a403c4aeeb153bc0c1f11458d005f8e5a0af3535c4c93eedc6f7865a3593f8e","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"680793958f6a70a44c8d9ae7d46b7a385361c69ac29dcab3ed761edce1c14ab8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"913ddbba170240070bd5921b8f33ea780021bdf42fbdfcd4fcb2691b1884ddde","impliedFormat":1},{"version":"b4e6d416466999ff40d3fe5ceb95f7a8bfb7ac2262580287ac1a8391e5362431","impliedFormat":1},{"version":"5fe23bd829e6be57d41929ac374ee9551ccc3c44cee893167b7b5b77be708014","impliedFormat":1},{"version":"0a626484617019fcfbfc3c1bc1f9e84e2913f1adb73692aa9075817404fb41a1","impliedFormat":1},{"version":"438c7513b1df91dcef49b13cd7a1c4720f91a36e88c1df731661608b7c055f10","impliedFormat":1},{"version":"cf185cc4a9a6d397f416dd28cca95c227b29f0f27b160060a95c0e5e36cda865","impliedFormat":1},{"version":"0086f3e4ad898fd7ca56bb223098acfacf3fa065595182aaf0f6c4a6a95e6fbd","impliedFormat":1},{"version":"efaa078e392f9abda3ee8ade3f3762ab77f9c50b184e6883063a911742a4c96a","impliedFormat":1},{"version":"54a8bb487e1dc04591a280e7a673cdfb272c83f61e28d8a64cf1ac2e63c35c51","impliedFormat":1},{"version":"021a9498000497497fd693dd315325484c58a71b5929e2bbb91f419b04b24cea","impliedFormat":1},{"version":"9385cdc09850950bc9b59cca445a3ceb6fcca32b54e7b626e746912e489e535e","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"84124384abae2f6f66b7fbfc03862d0c2c0b71b826f7dbf42c8085d31f1d3f95","impliedFormat":1},{"version":"63a8e96f65a22604eae82737e409d1536e69a467bb738bec505f4f97cce9d878","impliedFormat":1},{"version":"3fd78152a7031315478f159c6a5872c712ece6f01212c78ea82aef21cb0726e2","impliedFormat":1},{"version":"250f9a1f11580b6b8a0a86835946f048eb605b3a596196741bfe72dc8f6c69cc","impliedFormat":1},{"version":"512fc15cca3a35b8dbbf6e23fe9d07e6f87ad03c895acffd3087ce09f352aad0","impliedFormat":1},{"version":"9a0946d15a005832e432ea0cd4da71b57797efb25b755cc07f32274296d62355","impliedFormat":1},{"version":"a52ff6c0a149e9f370372fc3c715d7f2beee1f3bab7980e271a7ab7d313ec677","impliedFormat":1},{"version":"fd933f824347f9edd919618a76cdb6a0c0085c538115d9a287fa0c7f59957ab3","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"6a1aa3e55bdc50503956c5cd09ae4cd72e3072692d742816f65c66ca14f4dfdd","impliedFormat":1},{"version":"ab75cfd9c4f93ffd601f7ca1753d6a9d953bbedfbd7a5b3f0436ac8a1de60dfa","impliedFormat":1},{"version":"f95180f03d827525ca4f990f49e17ec67198c316dd000afbe564655141f725cd","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"1364f64d2fb03bbb514edc42224abd576c064f89be6a990136774ecdd881a1da","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"950fb67a59be4c2dbe69a5786292e60a5cb0e8612e0e223537784c731af55db1","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"07ca44e8d8288e69afdec7a31fa408ce6ab90d4f3d620006701d5544646da6aa","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"4e4475fba4ed93a72f167b061cd94a2e171b82695c56de9899275e880e06ba41","impliedFormat":1},{"version":"97c5f5d580ab2e4decd0a3135204050f9b97cd7908c5a8fbc041eadede79b2fa","impliedFormat":1},{"version":"c99a3a5f2215d5b9d735aa04cec6e61ed079d8c0263248e298ffe4604d4d0624","impliedFormat":1},{"version":"49b2375c586882c3ac7f57eba86680ff9742a8d8cb2fe25fe54d1b9673690d41","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"9ff1e8df66450af44161c1bfe34bc92c43074cfeec7a0a75f721830e9aabe379","impliedFormat":1},{"version":"3ecfccf916fea7c6c34394413b55eb70e817a73e39b4417d6573e523784e3f8e","impliedFormat":1},{"version":"1630192eac4188881201c64522cd3ef08209d9c4db0f9b5f0889b703dc6d936a","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"f416c9c3eee9d47ff49132c34f96b9180e50485d435d5748f0e8b72521d28d2e","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"14e5cdec6f8ae82dfd0694e64903a0a54abdfe37e1d966de3d4128362acbf35f","impliedFormat":1},{"version":"bbc183d2d69f4b59fd4dd8799ffdf4eb91173d1c4ad71cce91a3811c021bf80c","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"8dbc4134a4b3623fc476be5f36de35c40f2768e2e3d9ed437e0d5f1c4cd850f6","impliedFormat":1},{"version":"4e06330a84dec7287f7ebdd64978f41a9f70a668d3b5edc69d5d4a50b9b376bb","impliedFormat":1},{"version":"65bfa72967fbe9fc33353e1ac03f0480aa2e2ea346d61ff3ea997dfd850f641a","impliedFormat":1},{"version":"c06f0bb92d1a1a5a6c6e4b5389a5664d96d09c31673296cb7da5fe945d54d786","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"872caaa31423f4345983d643e4649fb30f548e9883a334d6d1c5fff68ede22d4","impliedFormat":1},{"version":"94404c4a878fe291e7578a2a80264c6f18e9f1933fbb57e48f0eb368672e389c","impliedFormat":1},{"version":"5c1b7f03aa88be854bc15810bfd5bd5a1943c5a7620e1c53eddd2a013996343e","impliedFormat":1},{"version":"09dfc64fcd6a2785867f2368419859a6cc5a8d4e73cbe2538f205b1642eb0f51","impliedFormat":1},{"version":"bcf6f0a323653e72199105a9316d91463ad4744c546d1271310818b8cef7c608","impliedFormat":1},{"version":"01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","impliedFormat":1},{"version":"351475f9c874c62f9b45b1f0dc7e2704e80dfd5f1af83a3a9f841f9dfe5b2912","impliedFormat":1},{"version":"ac457ad39e531b7649e7b40ee5847606eac64e236efd76c5d12db95bf4eacd17","impliedFormat":1},{"version":"187a6fdbdecb972510b7555f3caacb44b58415da8d5825d03a583c4b73fde4cf","impliedFormat":1},{"version":"d4c3250105a612202289b3a266bb7e323db144f6b9414f9dea85c531c098b811","impliedFormat":1},{"version":"95b444b8c311f2084f0fb51c616163f950fb2e35f4eaa07878f313a2d36c98a4","impliedFormat":1},{"version":"741067675daa6d4334a2dc80a4452ca3850e89d5852e330db7cb2b5f867173b1","impliedFormat":1},{"version":"f8acecec1114f11690956e007d920044799aefeb3cece9e7f4b1f8a1d542b2c9","impliedFormat":1},{"version":"178071ccd043967a58c5d1a032db0ddf9bd139e7920766b537d9783e88eb615e","impliedFormat":1},{"version":"3a17f09634c50cce884721f54fd9e7b98e03ac505889c560876291fcf8a09e90","impliedFormat":1},{"version":"32531dfbb0cdc4525296648f53b2b5c39b64282791e2a8c765712e49e6461046","impliedFormat":1},{"version":"0ce1b2237c1c3df49748d61568160d780d7b26693bd9feb3acb0744a152cd86d","impliedFormat":1},{"version":"e489985388e2c71d3542612685b4a7db326922b57ac880f299da7026a4e8a117","impliedFormat":1},{"version":"5cad4158616d7793296dd41e22e1257440910ea8d01c7b75045d4dfb20c5a41a","impliedFormat":1},{"version":"04d3aad777b6af5bd000bfc409907a159fe77e190b9d368da4ba649cdc28d39e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74efc1d6523bd57eb159c18d805db4ead810626bc5bc7002a2c7f483044b2e0f","impliedFormat":1},{"version":"19252079538942a69be1645e153f7dbbc1ef56b4f983c633bf31fe26aeac32cd","impliedFormat":1},{"version":"bc11f3ac00ac060462597add171220aed628c393f2782ac75dd29ff1e0db871c","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"3b0b1d352b8d2e47f1c4df4fb0678702aee071155b12ef0185fce9eb4fa4af1e","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"a344403e7a7384e0e7093942533d309194ad0a53eca2a3100c0b0ab4d3932773","impliedFormat":1},{"version":"b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb18bf4a61a17b4a6199eb3938ecfa4a59eb7c40843ad4a82b975ab6f7e3d925","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"e9b6fc05f536dfddcdc65dbcf04e09391b1c968ab967382e48924f5cb90d88e1","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"3cd8f0464e0939b47bfccbb9bb474a6d87d57210e304029cd8eb59c63a81935d","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"3026abd48e5e312f2328629ede6e0f770d21c3cd32cee705c450e589d015ee09","impliedFormat":1},{"version":"8b140b398a6afbd17cc97c38aea5274b2f7f39b1ae5b62952cfe65bf493e3e75","impliedFormat":1},{"version":"7663d2c19ce5ef8288c790edba3d45af54e58c84f1b37b1249f6d49d962f3d91","impliedFormat":1},{"version":"5cce3b975cdb72b57ae7de745b3c5de5790781ee88bcb41ba142f07c0fa02e97","impliedFormat":1},{"version":"00bd6ebe607246b45296aa2b805bd6a58c859acecda154bfa91f5334d7c175c6","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"0d28b974a7605c4eda20c943b3fa9ae16cb452c1666fc9b8c341b879992c7612","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"87ac2fb61e629e777f4d161dff534c2023ee15afd9cb3b1589b9b1f014e75c58","impliedFormat":1},{"version":"13c8b4348db91e2f7d694adc17e7438e6776bc506d5c8f5de9ad9989707fa3fe","impliedFormat":1},{"version":"3c1051617aa50b38e9efaabce25e10a5dd9b1f42e372ef0e8a674076a68742ed","impliedFormat":1},{"version":"07a3e20cdcb0f1182f452c0410606711fbea922ca76929a41aacb01104bc0d27","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"4cd4b6b1279e9d744a3825cbd7757bbefe7f0708f3f1069179ad535f19e8ed2c","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"c0eeaaa67c85c3bb6c52b629ebbfd3b2292dc67e8c0ffda2fc6cd2f78dc471e6","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","impliedFormat":99},{"version":"c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","impliedFormat":99},{"version":"b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16","impliedFormat":99},{"version":"d23df9ff06ae8bf1dcb7cc933e97ae7da418ac77749fecee758bb43a8d69f840","affectsGlobalScope":true,"impliedFormat":1},{"version":"040c71dde2c406f869ad2f41e8d4ce579cc60c8dbe5aa0dd8962ac943b846572","affectsGlobalScope":true,"impliedFormat":1},{"version":"3586f5ea3cc27083a17bd5c9059ede9421d587286d5a47f4341a4c2d00e4fa91","impliedFormat":1},{"version":"a6df929821e62f4719551f7955b9f42c0cd53c1370aec2dd322e24196a7dfe33","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"9dd9d642cdb87d4d5b3173217e0c45429b3e47a6f5cf5fb0ead6c644ec5fed01",{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"333caa2bfff7f06017f114de738050dd99a765c7eb16571c6d25a38c0d5365dc","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1251d53755b03cde02466064260bb88fd83c30006a46395b7d9167340bc59b73","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"4cdf27e29feae6c7826cdd5c91751cc35559125e8304f9e7aed8faef97dcf572","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},"c6108165ab5c2883a77c6235f7d7def7a94494b418c0adf000037dd52aa1ef5e","f5d5df2603f1798b2af31fa8fec912dfdde738d6ff6d050ac999a4ce60c0b52e",{"version":"7a1dd1e9c8bf5e23129495b10718b280340c7500570e0cfe5cffcdee51e13e48","impliedFormat":1},{"version":"95bf7c19205d7a4c92f1699dae58e217bb18f324276dfe06b1c2e312c7c75cf2","impliedFormat":99},"8f9f47bef35378c897d2fb840143116e80479abbe33bce03a397ab90c50d2db4","76b8680066fcc69187549a3a60ab13ae937f1acffda314e7ee63d35c55213e2b","7e6739326bdf112f621a678b0da6667f8274dd18608f37711829f7567b08cccb","bd9a0ebca42271cdadf5c2c9ca25fc0da9c9b40f2f28f4c52edcc76628e5830c","5b5737f292dda9ca3bc68fdc25db68253c21dd1c9517e0e21de0cf9db80a2ce3","af4428685168fc860b062065a26cbcde28766ff3b8ea8337f146aff1ff223119","fa8bb3f8ede08b575868786202810987eca0c3b8d3e9a2b8ab55aaf7cd729a99","fda69584dd83e1cae9e72c4f272a49bcfbebbfb57c8f987492c708b26ba8e626","756c58f2166a9bfa0e59a23456eb0c4820822872caebd2bf6afd1198b43c1115","9745d70f52439b624fea1f57df8475625fc331700f8fdab04b87a00182b771b7","3d7fa29143d3b9eeea3c888e8327ea581f6b5a3d92500e59aaa36edd2703e871",{"version":"84bcc7c6b06f4d643a55dc63b56be0c81d990f8d549b66ea615c553268774dc3","impliedFormat":1},{"version":"2d225e7bda2871c066a7079c88174340950fb604f624f2586d3ea27bb9e5f4ff","impliedFormat":1},{"version":"6a785f84e63234035e511817dd48ada756d984dd8f9344e56eb8b2bdcd8fd001","impliedFormat":1},{"version":"c1422d016f7df2ccd3594c06f2923199acd09898f2c42f50ea8159f1f856f618","impliedFormat":1},{"version":"2973b1b7857ca144251375b97f98474e9847a890331e27132d5a8b3aea9350a8","impliedFormat":1},{"version":"0eb6152d37c84d6119295493dfcc20c331c6fda1304a513d159cdaa599dcb78b","impliedFormat":1},{"version":"237df26f8c326ca00cd9d2deb40214a079749062156386b6d75bdcecc6988a6b","impliedFormat":1},{"version":"cd44995ee13d5d23df17a10213fed7b483fabfd5ea08f267ab52c07ce0b6b4da","impliedFormat":1},{"version":"58ce1486f851942bd2d3056b399079bc9cb978ec933fe9833ea417e33eab676e","impliedFormat":1},{"version":"7557d4d7f19f94341f4413575a3453ba7f6039c9591015bcf4282a8e75414043","impliedFormat":1},{"version":"a3b2cc16f3ce2d882eca44e1066f57a24751545f2a5e4a153d4de31b4cac9bb5","impliedFormat":1},{"version":"ac2b3b377d3068bfb6e1cb8889c99098f2c875955e2325315991882a74d92cc8","impliedFormat":1},{"version":"8deb39d89095469957f73bd194d11f01d9894b8c1f1e27fbf3f6e8122576b336","impliedFormat":1},{"version":"a38a9c41f433b608a0d37e645a31eecf7233ef3d3fffeb626988d3219f80e32f","impliedFormat":1},{"version":"8e1428dcba6a984489863935049893631170a37f9584c0479f06e1a5b1f04332","impliedFormat":1},{"version":"1fce9ecb87a2d3898941c60df617e52e50fb0c03c9b7b2ba8381972448327285","impliedFormat":1},{"version":"5ef0597b8238443908b2c4bf69149ed3894ac0ddd0515ac583d38c7595b151f1","impliedFormat":1},{"version":"ac52b775a80badff5f4ac329c5725a26bd5aaadd57afa7ad9e98b4844767312a","impliedFormat":1},{"version":"6ae5b4a63010c82bf2522b4ecfc29ffe6a8b0c5eea6b2b35120077e9ac54d7a1","impliedFormat":1},{"version":"dd7109c49f416f218915921d44f0f28975df78e04e437c62e1e1eb3be5e18a35","impliedFormat":1},{"version":"eee181112e420b345fc78422a6cc32385ede3d27e2eaf8b8c4ad8b2c29e3e52e","impliedFormat":1},{"version":"25fbe57c8ee3079e2201fe580578fab4f3a78881c98865b7c96233af00bf9624","impliedFormat":1},{"version":"62cc8477858487b4c4de7d7ae5e745a8ce0015c1592f398b63ee05d6e64ca295","impliedFormat":1},{"version":"cc2a9ec3cb10e4c0b8738b02c31798fad312d21ef20b6a2f5be1d077e9f5409d","impliedFormat":1},{"version":"4b4fadcda7d34034737598c07e2dca5d7e1e633cb3ba8dd4d2e6a7782b30b296","impliedFormat":1},{"version":"360fdc8829a51c5428636f1f83e7db36fef6c5a15ed4411b582d00a1c2bd6e97","impliedFormat":1},{"version":"1cf0d15e6ab1ecabbf329b906ae8543e6b8955133b7f6655f04d433e3a0597ab","impliedFormat":1},{"version":"7c9f98fe812643141502b30fb2b5ec56d16aaf94f98580276ae37b7924dd44a4","impliedFormat":1},{"version":"b3547893f24f59d0a644c52f55901b15a3fa1a115bc5ea9a582911469b9348b7","impliedFormat":1},{"version":"596e5b88b6ca8399076afcc22af6e6e0c4700c7cd1f420a78d637c3fb44a885e","impliedFormat":1},{"version":"adddf736e08132c7059ee572b128fdacb1c2650ace80d0f582e93d097ed4fbaf","impliedFormat":1},{"version":"d4cad9dc13e9c5348637170ddd5d95f7ed5fdfc856ddca40234fa55518bc99a6","impliedFormat":1},{"version":"d70675ba7ba7d02e52b7070a369957a70827e4b2bca2c1680c38a832e87b61fd","impliedFormat":1},{"version":"3be71f4ce8988a01e2f5368bdd58e1d60236baf511e4510ee9291c7b3729a27e","impliedFormat":1},{"version":"423d2ccc38e369a7527988d682fafc40267bcd6688a7473e59c5eea20a29b64f","impliedFormat":1},{"version":"2f9fde0868ed030277c678b435f63fcf03d27c04301299580a4017963cc04ce6","impliedFormat":1},{"version":"feeb73d48cc41c6dd23d17473521b0af877751504c30c18dc84267c8eeea429a","impliedFormat":1},{"version":"25f1159094dc0bf3a71313a74e0885426af21c5d6564a254004f2cadf9c5b052","impliedFormat":1},{"version":"cde493e09daad4bb29922fe633f760be9f0e8e2f39cdca999cce3b8690b5e13a","impliedFormat":1},{"version":"3d7f9eb12aface876f7b535cc89dcd416daf77f0b3573333f16ec0a70bcf902a","impliedFormat":1},{"version":"4304f640f7cb4724ea82441accb7c7607fa7207541182470d625adda99b2900b","impliedFormat":1},{"version":"e0205f04611bea8b5b82168065b8ef1476a8e96236201494eb8c785331c43118","impliedFormat":1},{"version":"62d26d8ba4fa15ab425c1b57a050ed76c5b0ecbffaa53f182110aa3a02405a07","impliedFormat":1},{"version":"9941cbf7ca695e95d588f5f1692ab040b078d44a95d231fa9a8f828186b7b77d","impliedFormat":1},{"version":"41b8775befd7ded7245a627e9f4de6110236688ce4c124d2d40c37bc1a3bfe05","impliedFormat":1},{"version":"18992725cbd51b0846132ec46237bc7de4da1db440deb66a6242e2de8715dcfb","impliedFormat":1},{"version":"44f29187cfbc7aa4a6109204c8e5186509abc3b78874a2ee1498c51ab50f0f62","impliedFormat":1},{"version":"19ab78c1376c16e18c5b87dfa750813c935f0c4ce1d6ef88058ec38f9cf5ef08","impliedFormat":1},"2c9fb77ac9a33fd09901cc9b2f4bde850fad2a6c8fe3a3b414a4caf72c0bb812","463e9612cecf30fdacb7b5c574ae6e6f631279c834c4cb967877b3952a20413e","445add9e3edfe0f3bea43477e9d711c045bf04118321a7f4a77324b86ebf62c6","cda0f8b9aa579a547bbf63b7f2ea830d44200d1198c50ed7b3a33dcfd4041ed2",{"version":"89d810912556327bd3ff31c9e48dbf1dee2f79a20725c2f3f7675b652edc0b9b","signature":"382b2927b962b7fc355786b498d7b363af3a3c1db23a4ac91d81578e67cff35f"},{"version":"d80dcd7a2bd748fff9e3bf3dd8f3fce08d7a1725da22c918ed4869a58675be88","signature":"9b37defc1cf2817877d82929745263a4741c10b95e7ad1ae1b2386ec1056dc7f"},"eedd0aa6ee81aa7ebcbc85cafb9fc2fd9ee9324da84113a6176db0c92b941391","5214af8a9c3c1bdab1299caea5c33ad5d7b0e1b7b83f514116350773490a3dc4",{"version":"2e5c41e56098ae93bc42a15473acb1a176f28b2ba95c38f3c67820434acd85b6","impliedFormat":1},{"version":"b99c4ff8d11110b9699edc4e5c3bb304360a70ca47e4f9851fc42ad0b663ba83","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba340fc8e5b0f08d90c6ef8552b8ce7bb5dc8e18d47b57f90dee105bc77d0d9e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0f263eeea7877199808b1bc220df95b25a72695ec214eb96d740d4b06c7cc868","impliedFormat":1},"134b930a5e01b1004b42410c5e4f9dd59be89620fbc70cd5e3c71a550969478f","c7e1132b0a6f6bea07d14e83a8e9137564504eb4237093806d44fcef67103ce8","79fafa02e18740a2c56b04d2f4768408bfd048825dc6f98579d5e5a61925679b","91507ac36fb77266cde3ed27b029a9ed4bed10d244b521059052d6275326d405","2e4e7a0442fb145174bbefc0e5ffc02ed76d2f43b6067bc14b97ca1c9323d1aa","edfb240167939039a29fa9294a7c60040ef93e8e290d4a794b48884c434755a3","77d467f82f85f7a2248668372019792cd24d27f3750ccc57e1ae1982398c12d9","4ce412c8233fff0bf7c468286b7f2df946ce67badcf477e9c914b01aaed44ece",{"version":"3d3e691222655e0aeaba12763d79131614abe457fe95a203ab2749239ef970ea","signature":"2927db59f4ecab11b9c2361de272810481d2ee6c7ce9950c3ab66f5fe26b64d6"},"3c08fa367fb2cbb50b52219ac988a519961b9eab945c2f7948bdafc2e149f0aa","2a2e8612cd6057a500dbff09843c793b1d42ef9c0b6c396a3be0fcf05ebad8d0","6bd4e730492388ff2ec0bceab8e9951e8e5f5223d5ba7850655edf4ae5aadede",{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"15fe687c59d62741b4494d5e623d497d55eb38966ecf5bea7f36e48fc3fbe15e","impliedFormat":1},{"version":"2c3b8be03577c98530ef9cb1a76e2c812636a871f367e9edf4c5f3ce702b77f8","affectsGlobalScope":true,"impliedFormat":1}],"root":[409,434,435,[438,448],[497,504],[509,515],[517,520]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true},"referencedMap":[[519,1],[520,2],[435,3],[438,4],[515,5],[500,6],[502,7],[517,8],[509,9],[501,10],[504,10],[503,10],[512,10],[513,11],[514,11],[510,10],[511,10],[518,10],[439,12],[440,12],[444,13],[441,12],[442,12],[443,12],[446,14],[448,15],[447,12],[499,16],[497,12],[445,12],[498,17],[409,18],[505,12],[508,19],[362,12],[437,20],[436,12],[521,12],[142,21],[143,21],[144,22],[99,23],[145,24],[146,25],[147,26],[94,12],[97,27],[95,12],[96,12],[148,28],[149,29],[150,30],[151,31],[152,32],[153,33],[154,33],[155,34],[156,35],[157,36],[158,37],[100,12],[98,12],[159,38],[160,39],[161,40],[193,41],[162,42],[163,43],[164,44],[165,45],[166,46],[167,47],[168,48],[169,49],[170,50],[171,51],[172,51],[173,52],[174,12],[175,53],[177,54],[176,55],[178,56],[179,57],[180,58],[181,59],[182,60],[183,61],[184,62],[185,63],[186,64],[187,65],[188,66],[189,67],[190,68],[101,12],[102,12],[103,12],[141,69],[191,70],[192,71],[86,12],[198,72],[199,73],[197,10],[195,74],[196,75],[84,12],[87,76],[286,10],[523,77],[522,12],[494,78],[496,79],[495,78],[493,80],[450,12],[452,81],[451,82],[456,83],[491,84],[488,85],[490,86],[453,85],[454,87],[458,87],[457,88],[455,89],[489,90],[487,85],[492,91],[485,12],[486,12],[459,92],[464,85],[466,85],[461,85],[462,92],[468,85],[469,93],[460,85],[465,85],[467,85],[463,85],[483,94],[482,85],[484,95],[478,85],[480,85],[479,85],[475,85],[481,96],[476,85],[477,97],[470,85],[471,85],[472,85],[473,85],[474,85],[85,12],[449,12],[506,12],[507,98],[93,99],[365,100],[369,101],[371,102],[219,103],[233,104],[336,105],[265,12],[339,106],[301,107],[309,108],[337,109],[220,110],[264,12],[266,111],[338,112],[240,113],[221,114],[245,113],[234,113],[204,113],[292,115],[293,116],[209,12],[289,117],[294,118],[380,119],[287,118],[381,120],[271,12],[290,121],[393,122],[392,123],[296,118],[391,12],[389,12],[390,124],[291,10],[278,125],[279,126],[288,127],[304,128],[305,129],[295,130],[273,131],[274,132],[384,133],[387,134],[252,135],[251,136],[250,137],[396,10],[249,138],[225,12],[399,12],[402,12],[401,10],[403,139],[200,12],[330,12],[232,140],[202,141],[353,12],[354,12],[356,12],[359,142],[355,12],[357,143],[358,143],[218,12],[231,12],[364,144],[372,145],[376,146],[214,147],[281,148],[280,12],[272,131],[300,149],[298,150],[297,12],[299,12],[303,151],[276,152],[213,153],[238,154],[327,155],[205,156],[212,157],[201,105],[341,158],[351,159],[340,12],[350,160],[239,12],[223,161],[318,162],[317,12],[324,163],[326,164],[319,165],[323,166],[325,163],[322,165],[321,163],[320,165],[261,167],[246,167],[312,168],[247,168],[207,169],[206,12],[316,170],[315,171],[314,172],[313,173],[208,174],[285,175],[302,176],[284,177],[308,178],[310,179],[307,177],[241,174],[194,12],[328,180],[267,181],[349,182],[270,183],[344,184],[211,12],[345,185],[347,186],[348,187],[331,12],[343,156],[243,188],[329,189],[352,190],[215,12],[217,12],[222,191],[311,192],[210,193],[216,12],[269,194],[268,195],[224,196],[277,197],[275,198],[226,199],[228,200],[400,12],[227,201],[229,202],[367,12],[366,12],[368,12],[398,12],[230,203],[283,10],[92,12],[306,204],[253,12],[263,205],[242,12],[374,10],[383,206],[260,10],[378,118],[259,207],[361,208],[258,206],[203,12],[385,209],[256,10],[257,10],[248,12],[262,12],[255,210],[254,211],[244,212],[237,130],[346,12],[236,213],[235,12],[370,12],[282,10],[363,214],[83,12],[91,215],[88,10],[89,12],[90,12],[342,216],[335,217],[334,12],[333,218],[332,12],[373,219],[375,220],[377,221],[379,222],[382,223],[408,224],[386,224],[407,225],[388,226],[394,227],[395,228],[397,229],[404,230],[406,12],[405,231],[360,232],[426,233],[424,234],[425,235],[413,236],[414,234],[421,237],[412,238],[417,239],[427,12],[418,240],[423,241],[429,242],[428,243],[411,244],[419,245],[420,246],[415,247],[422,233],[416,248],[410,12],[432,249],[431,12],[430,12],[433,250],[81,12],[82,12],[13,12],[14,12],[16,12],[15,12],[2,12],[17,12],[18,12],[19,12],[20,12],[21,12],[22,12],[23,12],[24,12],[3,12],[25,12],[26,12],[4,12],[27,12],[31,12],[28,12],[29,12],[30,12],[32,12],[33,12],[34,12],[5,12],[35,12],[36,12],[37,12],[38,12],[6,12],[42,12],[39,12],[40,12],[41,12],[43,12],[7,12],[44,12],[49,12],[50,12],[45,12],[46,12],[47,12],[48,12],[8,12],[54,12],[51,12],[52,12],[53,12],[55,12],[9,12],[56,12],[57,12],[58,12],[60,12],[59,12],[61,12],[62,12],[10,12],[63,12],[64,12],[65,12],[11,12],[66,12],[67,12],[68,12],[69,12],[70,12],[1,12],[71,12],[72,12],[12,12],[76,12],[74,12],[79,12],[78,12],[73,12],[77,12],[75,12],[80,12],[119,251],[129,252],[118,251],[139,253],[110,254],[109,255],[138,231],[132,256],[137,257],[112,258],[126,259],[111,260],[135,261],[107,262],[106,231],[136,263],[108,264],[113,265],[114,12],[117,265],[104,12],[140,266],[130,267],[121,268],[122,269],[124,270],[120,271],[123,272],[133,231],[115,273],[116,274],[125,275],[105,276],[128,267],[127,265],[131,12],[134,277],[516,12],[434,278]],"affectedFilesPendingEmit":[519,520,435,438,515,500,502,517,509,501,504,503,512,513,514,510,511,518,439,440,444,441,442,443,446,448,447,499,497,445,498,434],"version":"5.9.3"}
\ No newline at end of file
diff --git a/docs/REFERENCE.md b/docs/REFERENCE.md
index 089f798..c9575be 100644
--- a/docs/REFERENCE.md
+++ b/docs/REFERENCE.md
@@ -2,12 +2,12 @@
 
 For a short intro, see the [README](../README.md). This page is the longer reference moved out of the main README so PyPI stays simple.
 
-> **Formal specification:** The normative definition of OAS 1.4.0 — what a conforming runtime MUST do — lives at [`spec/open-agent-spec-1.4.md`](../spec/open-agent-spec-1.4.md). This reference guide covers practical usage of the CLI and reference implementation. When this guide and the spec disagree, the spec is authoritative.
+> **Formal specification:** The normative definition of OAS 1.5.0 — what a conforming runtime MUST do — lives at [`spec/open-agent-spec-1.4.md`](../spec/open-agent-spec-1.4.md). This reference guide covers practical usage of the CLI and reference implementation. When this guide and the spec disagree, the spec is authoritative.
 
 ## Spec file structure
 
 ```yaml
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: "hello-world-agent"
diff --git a/examples/file-reader/file-reader.yaml b/examples/file-reader/file-reader.yaml
index 2c83455..767a9cf 100644
--- a/examples/file-reader/file-reader.yaml
+++ b/examples/file-reader/file-reader.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: file-reader
diff --git a/examples/mcp-local/agent.yaml b/examples/mcp-local/agent.yaml
index 4251220..a41fd60 100644
--- a/examples/mcp-local/agent.yaml
+++ b/examples/mcp-local/agent.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: text-analyser
diff --git a/examples/mcp-search/mcp-search.yaml b/examples/mcp-search/mcp-search.yaml
index 41d4e07..c0cc915 100644
--- a/examples/mcp-search/mcp-search.yaml
+++ b/examples/mcp-search/mcp-search.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: mcp-researcher
diff --git a/examples/registry-demo/pipeline.yaml b/examples/registry-demo/pipeline.yaml
index 5848285..e3409e8 100644
--- a/examples/registry-demo/pipeline.yaml
+++ b/examples/registry-demo/pipeline.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: registry-demo
diff --git a/examples/spec-composition/coordinator.yaml b/examples/spec-composition/coordinator.yaml
index 1e4e6a8..34f629f 100644
--- a/examples/spec-composition/coordinator.yaml
+++ b/examples/spec-composition/coordinator.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 # ─────────────────────────────────────────────────────────────────────────────
 # Spec Composition demo — coordinator.yaml
diff --git a/examples/spec-composition/shared/sentiment.yaml b/examples/spec-composition/shared/sentiment.yaml
index a945ea5..fe2453f 100644
--- a/examples/spec-composition/shared/sentiment.yaml
+++ b/examples/spec-composition/shared/sentiment.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: shared-sentiment
diff --git a/examples/spec-composition/shared/summariser.yaml b/examples/spec-composition/shared/summariser.yaml
index f8d32eb..5fc4b71 100644
--- a/examples/spec-composition/shared/summariser.yaml
+++ b/examples/spec-composition/shared/summariser.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: shared-summariser
diff --git a/npm/README.md b/npm/README.md
index 00a313f..2ba4e3a 100644
--- a/npm/README.md
+++ b/npm/README.md
@@ -22,7 +22,7 @@ npx @prime-vector/open-agent-spec run --spec agent.yaml --task summarise --input
 
 ```yaml
 # agent.yaml
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: my-agent
diff --git a/npm/package.json b/npm/package.json
index 93833ab..02439bf 100644
--- a/npm/package.json
+++ b/npm/package.json
@@ -1,6 +1,6 @@
 {
   "name": "@prime-vector/open-agent-spec",
-  "version": "1.4.0",
+  "version": "1.5.0",
   "description": "Run Open Agent Spec YAML files from Node.js — no Python required.",
   "keywords": [
     "ai",
diff --git a/npm/src/cli.ts b/npm/src/cli.ts
index 69882cf..74ad6bb 100644
--- a/npm/src/cli.ts
+++ b/npm/src/cli.ts
@@ -52,7 +52,7 @@ export function createCli(): Command {
   program
     .name("oa")
     .description("Open Agent Spec runner — execute YAML agent specs from the command line.")
-    .version("1.4.0");
+    .version("1.5.0");
 
   program
     .command("run")
diff --git a/npm/src/types.ts b/npm/src/types.ts
index abcfbf0..a14adee 100644
--- a/npm/src/types.ts
+++ b/npm/src/types.ts
@@ -1,4 +1,4 @@
-// TypeScript types mirroring the Open Agent Spec 1.4.0 YAML schema.
+// TypeScript types mirroring the Open Agent Spec 1.5.0 YAML schema.
 
 export interface OASpec {
   open_agent_spec: string;
diff --git a/oas_cli/templates/aac-example.yaml b/oas_cli/templates/aac-example.yaml
index 6de2d89..adf8b07 100644
--- a/oas_cli/templates/aac-example.yaml
+++ b/oas_cli/templates/aac-example.yaml
@@ -2,7 +2,7 @@
 #   oa run --spec .agents/example.yaml --task greet --input '{"name": "World"}' --quiet
 # Or generate code into a folder with:
 #   oa init --spec .agents/example.yaml --output ./my-agent
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: hello-world-agent
diff --git a/oas_cli/templates/aac-review.yaml b/oas_cli/templates/aac-review.yaml
index 37ddfc7..fe1a669 100644
--- a/oas_cli/templates/aac-review.yaml
+++ b/oas_cli/templates/aac-review.yaml
@@ -3,7 +3,7 @@
 #   git diff > change.diff
 #   oa run --spec .agents/review.yaml --task review --input change.diff --quiet
 #
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: code-reviewer
diff --git a/oas_cli/templates/minimal-agent-tool-usage.yaml b/oas_cli/templates/minimal-agent-tool-usage.yaml
index 938c2ca..9a860a2 100644
--- a/oas_cli/templates/minimal-agent-tool-usage.yaml
+++ b/oas_cli/templates/minimal-agent-tool-usage.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: hello-world-agent
diff --git a/oas_cli/templates/minimal-agent.yaml b/oas_cli/templates/minimal-agent.yaml
index 71cc3f2..1a8ec81 100644
--- a/oas_cli/templates/minimal-agent.yaml
+++ b/oas_cli/templates/minimal-agent.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: hello-world-agent
diff --git a/oas_cli/templates/minimal-multi-task-agent.yaml b/oas_cli/templates/minimal-multi-task-agent.yaml
index ca91ede..9564baf 100644
--- a/oas_cli/templates/minimal-multi-task-agent.yaml
+++ b/oas_cli/templates/minimal-multi-task-agent.yaml
@@ -1,4 +1,4 @@
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: hello-world-agent
diff --git a/pyproject.toml b/pyproject.toml
index c387a48..59297e6 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
 
 [project]
 name = "open-agent-spec"
-version = "1.4.0"
+version = "1.5.0"
 description = "YAML-first agent specs: run with `oa run` or generate a full Python project with `oa init`."
 authors = [{ name = "Andrew Whitehouse", email = "andrewswhitehouse@gmail.com" }]
 license = { text = "MIT" }
diff --git a/spec/conformance/README.md b/spec/conformance/README.md
index 159703a..0fcff27 100644
--- a/spec/conformance/README.md
+++ b/spec/conformance/README.md
@@ -1,10 +1,10 @@
 # OAS Conformance Tests
 
-This directory contains the conformance test suite for Open Agent Spec 1.4.0. Conformance tests validate **runtime behaviour**, not LLM output.
+This directory contains the conformance test suite for Open Agent Spec 1.5.0. Conformance tests validate **runtime behaviour**, not LLM output.
 
 ## Purpose
 
-The spec at `../open-agent-spec-1.4.md` defines what a conforming runtime MUST do. These tests operationalise that definition — any runtime that passes the full suite can claim OAS 1.4.0 conformance.
+The spec at `../open-agent-spec-1.4.md` defines what a conforming runtime MUST do. These tests operationalise that definition — any runtime that passes the full suite can claim OAS 1.5.0 conformance.
 
 Conformance tests differ from unit/integration tests in this repo:
 
@@ -146,7 +146,7 @@ Each test case will be a YAML file with this shape:
 # spec/conformance/cases/depends-on/linear-chain.yaml
 description: "Dependency output is merged into calling task input"
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/delegation/default-task-name.yaml b/spec/conformance/cases/delegation/default-task-name.yaml
index 5e3a926..ea71f24 100644
--- a/spec/conformance/cases/delegation/default-task-name.yaml
+++ b/spec/conformance/cases/delegation/default-task-name.yaml
@@ -6,7 +6,7 @@ uses_files:
   - delegated-spec.yaml
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: coordinator
     description: delegates without explicit task name
diff --git a/spec/conformance/cases/delegation/delegated-spec.yaml b/spec/conformance/cases/delegation/delegated-spec.yaml
index 3c5e2e4..43b85f8 100644
--- a/spec/conformance/cases/delegation/delegated-spec.yaml
+++ b/spec/conformance/cases/delegation/delegated-spec.yaml
@@ -1,6 +1,6 @@
 # Helper spec used as a delegation target by test cases in this directory.
 # Not a test case itself.
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: delegated-agent
diff --git a/spec/conformance/cases/delegation/local-path.yaml b/spec/conformance/cases/delegation/local-path.yaml
index 1d889d0..dd31e15 100644
--- a/spec/conformance/cases/delegation/local-path.yaml
+++ b/spec/conformance/cases/delegation/local-path.yaml
@@ -9,7 +9,7 @@ uses_files:
   - delegated-spec.yaml
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: coordinator
     description: delegates to another spec
diff --git a/spec/conformance/cases/delegation/missing-task.yaml b/spec/conformance/cases/delegation/missing-task.yaml
index 48ed619..f156833 100644
--- a/spec/conformance/cases/delegation/missing-task.yaml
+++ b/spec/conformance/cases/delegation/missing-task.yaml
@@ -6,7 +6,7 @@ uses_files:
   - delegated-spec.yaml
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: coordinator
     description: delegates to a task that does not exist
diff --git a/spec/conformance/cases/depends-on/cycle-detection.yaml b/spec/conformance/cases/depends-on/cycle-detection.yaml
index 1c95d73..e0b8f56 100644
--- a/spec/conformance/cases/depends-on/cycle-detection.yaml
+++ b/spec/conformance/cases/depends-on/cycle-detection.yaml
@@ -3,7 +3,7 @@ description: "Circular depends_on chain raises CHAIN_CYCLE_ERROR"
 spec_section: "7.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/depends-on/linear-chain.yaml b/spec/conformance/cases/depends-on/linear-chain.yaml
index e4d0935..212607c 100644
--- a/spec/conformance/cases/depends-on/linear-chain.yaml
+++ b/spec/conformance/cases/depends-on/linear-chain.yaml
@@ -3,7 +3,7 @@ description: "Dependency output is merged into calling task input"
 spec_section: "7.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/depends-on/merge-order.yaml b/spec/conformance/cases/depends-on/merge-order.yaml
index 7cb5cc9..4ca2631 100644
--- a/spec/conformance/cases/depends-on/merge-order.yaml
+++ b/spec/conformance/cases/depends-on/merge-order.yaml
@@ -3,7 +3,7 @@ description: "Later dependency output wins on key collision"
 spec_section: "7.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/depends-on/no-chain-key-without-deps.yaml b/spec/conformance/cases/depends-on/no-chain-key-without-deps.yaml
index 586f0cd..05a381c 100644
--- a/spec/conformance/cases/depends-on/no-chain-key-without-deps.yaml
+++ b/spec/conformance/cases/depends-on/no-chain-key-without-deps.yaml
@@ -3,7 +3,7 @@ description: "Result envelope has no 'chain' key when task has no depends_on"
 spec_section: "8.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/depends-on/unknown-dependency.yaml b/spec/conformance/cases/depends-on/unknown-dependency.yaml
index 1ee36f8..b35d708 100644
--- a/spec/conformance/cases/depends-on/unknown-dependency.yaml
+++ b/spec/conformance/cases/depends-on/unknown-dependency.yaml
@@ -3,7 +3,7 @@ description: "Unknown task in depends_on raises TASK_NOT_FOUND"
 spec_section: "11.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/errors/chain-cycle.yaml b/spec/conformance/cases/errors/chain-cycle.yaml
index 7279d04..7cb7a12 100644
--- a/spec/conformance/cases/errors/chain-cycle.yaml
+++ b/spec/conformance/cases/errors/chain-cycle.yaml
@@ -3,7 +3,7 @@ description: "Three-task transitive cycle raises CHAIN_CYCLE_ERROR"
 spec_section: "7.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/errors/chain-input-missing.yaml b/spec/conformance/cases/errors/chain-input-missing.yaml
index 6989c28..2060734 100644
--- a/spec/conformance/cases/errors/chain-input-missing.yaml
+++ b/spec/conformance/cases/errors/chain-input-missing.yaml
@@ -3,7 +3,7 @@ description: "Missing required input raises CHAIN_INPUT_MISSING"
 spec_section: "7.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/errors/contract-violation.yaml b/spec/conformance/cases/errors/contract-violation.yaml
index aa48773..db64675 100644
--- a/spec/conformance/cases/errors/contract-violation.yaml
+++ b/spec/conformance/cases/errors/contract-violation.yaml
@@ -4,7 +4,7 @@ spec_section: "10.4"
 requires: contracts
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/errors/error-structure.yaml b/spec/conformance/cases/errors/error-structure.yaml
index 53cc859..1edcd1d 100644
--- a/spec/conformance/cases/errors/error-structure.yaml
+++ b/spec/conformance/cases/errors/error-structure.yaml
@@ -3,7 +3,7 @@ description: "Error objects have required structure fields"
 spec_section: "11.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/errors/task-not-found.yaml b/spec/conformance/cases/errors/task-not-found.yaml
index f0a8113..875949b 100644
--- a/spec/conformance/cases/errors/task-not-found.yaml
+++ b/spec/conformance/cases/errors/task-not-found.yaml
@@ -3,7 +3,7 @@ description: "Unknown task name raises TASK_NOT_FOUND"
 spec_section: "11.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/prompt-resolution/cli-override.yaml b/spec/conformance/cases/prompt-resolution/cli-override.yaml
index 7911a38..4979a79 100644
--- a/spec/conformance/cases/prompt-resolution/cli-override.yaml
+++ b/spec/conformance/cases/prompt-resolution/cli-override.yaml
@@ -3,7 +3,7 @@ description: "CLI override system and user prompts take highest priority"
 spec_section: "9.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/prompt-resolution/global-fallback.yaml b/spec/conformance/cases/prompt-resolution/global-fallback.yaml
index cb00e71..eae3d11 100644
--- a/spec/conformance/cases/prompt-resolution/global-fallback.yaml
+++ b/spec/conformance/cases/prompt-resolution/global-fallback.yaml
@@ -3,7 +3,7 @@ description: "Global prompts used when task has no inline prompts"
 spec_section: "9.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/prompt-resolution/independent-resolution.yaml b/spec/conformance/cases/prompt-resolution/independent-resolution.yaml
index f14f944..8c7ad41 100644
--- a/spec/conformance/cases/prompt-resolution/independent-resolution.yaml
+++ b/spec/conformance/cases/prompt-resolution/independent-resolution.yaml
@@ -3,7 +3,7 @@ description: "System prompt from one source, user prompt from another"
 spec_section: "9.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/prompt-resolution/legacy-task-map.yaml b/spec/conformance/cases/prompt-resolution/legacy-task-map.yaml
index f741343..1b2c510 100644
--- a/spec/conformance/cases/prompt-resolution/legacy-task-map.yaml
+++ b/spec/conformance/cases/prompt-resolution/legacy-task-map.yaml
@@ -3,7 +3,7 @@ description: "Legacy per-task prompt map beats global fallback"
 spec_section: "9.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/prompt-resolution/per-task-inline.yaml b/spec/conformance/cases/prompt-resolution/per-task-inline.yaml
index 9f44108..019971b 100644
--- a/spec/conformance/cases/prompt-resolution/per-task-inline.yaml
+++ b/spec/conformance/cases/prompt-resolution/per-task-inline.yaml
@@ -3,7 +3,7 @@ description: "Per-task inline prompts override global fallback"
 spec_section: "9.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/response-format/fence-stripping-no-lang.yaml b/spec/conformance/cases/response-format/fence-stripping-no-lang.yaml
index 4a0ffb4..3fb0f03 100644
--- a/spec/conformance/cases/response-format/fence-stripping-no-lang.yaml
+++ b/spec/conformance/cases/response-format/fence-stripping-no-lang.yaml
@@ -3,7 +3,7 @@ description: "Code fences without language tag are stripped"
 spec_section: "8.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/response-format/fence-stripping.yaml b/spec/conformance/cases/response-format/fence-stripping.yaml
index 55c0c92..e19e60c 100644
--- a/spec/conformance/cases/response-format/fence-stripping.yaml
+++ b/spec/conformance/cases/response-format/fence-stripping.yaml
@@ -3,7 +3,7 @@ description: "Markdown code fences are stripped before JSON parsing"
 spec_section: "8.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/response-format/json-default.yaml b/spec/conformance/cases/response-format/json-default.yaml
index a5be596..fbc9235 100644
--- a/spec/conformance/cases/response-format/json-default.yaml
+++ b/spec/conformance/cases/response-format/json-default.yaml
@@ -3,7 +3,7 @@ description: "Default response_format parses output as JSON"
 spec_section: "8.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/response-format/output-schema-validation.yaml b/spec/conformance/cases/response-format/output-schema-validation.yaml
index 4b2cd1d..f3f1f40 100644
--- a/spec/conformance/cases/response-format/output-schema-validation.yaml
+++ b/spec/conformance/cases/response-format/output-schema-validation.yaml
@@ -3,7 +3,7 @@ description: "Output missing required schema fields raises an error"
 spec_section: "6.3"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/response-format/text-mode.yaml b/spec/conformance/cases/response-format/text-mode.yaml
index 9fc6626..bb4d785 100644
--- a/spec/conformance/cases/response-format/text-mode.yaml
+++ b/spec/conformance/cases/response-format/text-mode.yaml
@@ -3,7 +3,7 @@ description: "Text mode returns raw string without JSON parsing"
 spec_section: "8.1"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/schema/invalid-engine.yaml b/spec/conformance/cases/schema/invalid-engine.yaml
index 8b8664b..412a817 100644
--- a/spec/conformance/cases/schema/invalid-engine.yaml
+++ b/spec/conformance/cases/schema/invalid-engine.yaml
@@ -3,7 +3,7 @@ description: "Unknown engine value is rejected by schema validation"
 spec_section: "5.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/schema/missing-agent.yaml b/spec/conformance/cases/schema/missing-agent.yaml
index 4b3deae..f27ee99 100644
--- a/spec/conformance/cases/schema/missing-agent.yaml
+++ b/spec/conformance/cases/schema/missing-agent.yaml
@@ -3,7 +3,7 @@ description: "Spec missing required 'agent' key is rejected"
 spec_section: "3.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   intelligence:
     type: llm
     engine: openai
diff --git a/spec/conformance/cases/schema/missing-intelligence.yaml b/spec/conformance/cases/schema/missing-intelligence.yaml
index b77a29f..a2a49f3 100644
--- a/spec/conformance/cases/schema/missing-intelligence.yaml
+++ b/spec/conformance/cases/schema/missing-intelligence.yaml
@@ -3,7 +3,7 @@ description: "Spec missing required 'intelligence' key is rejected"
 spec_section: "3.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/schema/missing-tasks.yaml b/spec/conformance/cases/schema/missing-tasks.yaml
index c74db3f..2300c7a 100644
--- a/spec/conformance/cases/schema/missing-tasks.yaml
+++ b/spec/conformance/cases/schema/missing-tasks.yaml
@@ -3,7 +3,7 @@ description: "Spec missing required 'tasks' key is rejected"
 spec_section: "3.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: test
     description: test
diff --git a/spec/conformance/cases/schema/valid-minimal.yaml b/spec/conformance/cases/schema/valid-minimal.yaml
index 2f0a277..56dec8a 100644
--- a/spec/conformance/cases/schema/valid-minimal.yaml
+++ b/spec/conformance/cases/schema/valid-minimal.yaml
@@ -3,7 +3,7 @@ description: "Minimal valid spec document is accepted"
 spec_section: "3.2"
 
 spec: |
-  open_agent_spec: "1.4.0"
+  open_agent_spec: "1.5.0"
   agent:
     name: minimal
     description: minimal valid agent
diff --git a/spec/conformance/runner/conformance_runner.py b/spec/conformance/runner/conformance_runner.py
index bff6b24..d3f370b 100644
--- a/spec/conformance/runner/conformance_runner.py
+++ b/spec/conformance/runner/conformance_runner.py
@@ -1,4 +1,4 @@
-"""OAS 1.4.0 Conformance Test Runner.
+"""OAS 1.5.0 Conformance Test Runner.
 
 Loads YAML test cases from spec/conformance/cases/, mocks LLM calls,
 runs each case through the OAS runner, and asserts expected outcomes.
@@ -386,7 +386,7 @@ def main() -> None:
     verbose = "--quiet" not in args and "-q" not in args
 
     if verbose:
-        print("OAS 1.4.0 Conformance Suite")
+        print("OAS 1.5.0 Conformance Suite")
         print("=" * 40)
 
     passed, failed, skipped, _failures = run_conformance(category, verbose)
diff --git a/spec/open-agent-spec-1.5.md b/spec/open-agent-spec-1.5.md
new file mode 100644
index 0000000..b4d3c15
--- /dev/null
+++ b/spec/open-agent-spec-1.5.md
@@ -0,0 +1,741 @@
+# Open Agent Spec — Formal Specification
+
+**Version:** 1.5.0  
+**Status:** Draft  
+**Date:** 2026-04-12
+
+---
+
+## Abstract
+
+This document defines the Open Agent Spec (OAS) 1.5.0. It specifies the structure of an OAS document, the semantics that a conforming runtime MUST implement, and the boundaries of what OAS deliberately does not do. An independent implementor MUST be able to build a conforming runtime from this document alone.
+
+---
+
+## 1. Introduction & Scope
+
+Open Agent Spec is a YAML-based document format for declaring AI agent tasks. A spec document describes:
+
+- the agent's identity and role
+- the LLM engine and model to use
+- one or more tasks, each with typed input/output schemas and prompts
+- optional data dependencies between tasks
+- optional tool declarations
+- optional behavioural contracts
+
+OAS is **not** an execution framework, an orchestration engine, or an AI library. It is a document standard — a machine-readable contract between a spec author and a conforming runtime.
+
+### 1.1 What OAS is NOT
+
+OAS explicitly prohibits — and a conforming runtime MUST NOT implement — the following:
+
+| Feature | Classification | Rationale |
+|---------|---------------|-----------|
+| Conditional branching | Execution control | Belongs in the calling platform |
+| Loops and retries | Runtime policy | Belongs in the calling platform |
+| Parallel task execution | Scheduling | Belongs in the calling platform |
+| Fallback task routing | Dynamic routing | Belongs in the calling platform |
+| Dynamic task selection | Orchestration | Belongs in the calling platform |
+
+`depends_on` is a **data dependency declaration**, not a workflow instruction. It expresses what data a task needs, not how execution should proceed. See Section 7 for the full semantics.
+
+### 1.2 Key Words
+
+The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119).
+
+### 1.3 Normative References
+
+- [RFC 2119](https://datatracker.ietf.org/doc/html/rfc2119) — Key words for use in RFCs to indicate requirement levels
+- [JSON Schema Draft-07](https://json-schema.org/specification-links.html#draft-7) — Schema language used for input/output validation
+- `spec/schema/oas-schema-1.5.json` — Machine-readable JSON Schema for OAS documents (canonical, normative)
+
+---
+
+## 2. Terminology
+
+**Spec document** — A YAML file conforming to this specification.
+
+**Runtime** — Any software that loads a spec document and executes tasks according to the semantics defined herein.
+
+**Task** — A named unit of work defined in a spec. A task has typed inputs, typed outputs, prompts, and an LLM engine configuration.
+
+**Chain** — A sequence of tasks linked by `depends_on` declarations, where earlier task outputs are merged into later task inputs.
+
+**Delegation** — A task that forwards its execution to a task in a different spec document (via `spec:` + `task:`).
+
+**Result envelope** — The structured object a runtime returns after executing a task.
+
+**Behavioural contract** — An optional set of constraints on a task's output, enforced after the LLM response is parsed.
+
+**Provider** — The implementation that communicates with a specific LLM engine (e.g. OpenAI, Anthropic).
+
+**Template variable** — A `{{ key }}` placeholder in a prompt string that is substituted with the corresponding input value at run time.
+
+---
+
+## 3. Document Model
+
+### 3.1 Format
+
+An OAS document MUST be a valid YAML file that deserializes to a JSON-compatible mapping (object). The document MUST validate against the JSON Schema at `spec/schema/oas-schema-1.5.json`.
+
+### 3.2 Top-Level Keys
+
+| Key | Required | Type | Description |
+|-----|----------|------|-------------|
+| `open_agent_spec` | REQUIRED | string | Spec version. MUST match pattern `^(1\.(0\.[4-9]|[1-9]\.[0-9]+)|[2-9]\.[0-9]+\.[0-9]+)$` |
+| `agent` | REQUIRED | object | Agent identity. See Section 4. |
+| `intelligence` | REQUIRED | object | LLM engine configuration. See Section 5. |
+| `tasks` | REQUIRED | object | Task definitions. See Section 6. |
+| `prompts` | OPTIONAL | object | Global prompt fallbacks. See Section 9. |
+| `behavioural_contract` | OPTIONAL | object | Global behavioural contract baseline. See Section 11. |
+| `tools` | OPTIONAL | object | Tool declarations. See Section 10. |
+| `logging` | OPTIONAL | object | Logging configuration (implementation-specific). |
+| `interface` | OPTIONAL | object | Reserved for future use. |
+
+A runtime MUST ignore unknown top-level keys (forward compatibility). A runtime MUST reject documents that fail schema validation.
+
+---
+
+## 4. Agent Metadata
+
+The `agent` object identifies the agent.
+
+```yaml
+agent:
+  name: "my-agent"           # REQUIRED
+  description: "..."         # REQUIRED
+  role: "analyst"            # OPTIONAL
+```
+
+### 4.1 Fields
+
+| Field | Required | Type | Constraints |
+|-------|----------|------|-------------|
+| `name` | REQUIRED | string | Non-empty |
+| `description` | REQUIRED | string | Free text |
+| `role` | OPTIONAL | string | One of: `analyst`, `reviewer`, `chat`, `retriever`, `planner`, `executor` |
+
+`role` is informational. A runtime MAY use it for routing or logging but MUST NOT alter task execution semantics based on it.
+
+---
+
+## 5. Intelligence Configuration
+
+The `intelligence` object selects the LLM engine and model.
+
+```yaml
+intelligence:
+  type: "llm"                # REQUIRED — currently only "llm" is valid
+  engine: "openai"           # REQUIRED
+  model: "gpt-4o"            # REQUIRED
+  endpoint: "https://..."    # OPTIONAL
+  config:                    # OPTIONAL
+    temperature: 0.7
+    max_tokens: 1000
+    top_p: 1.0
+    frequency_penalty: 0.0
+    presence_penalty: 0.0
+```
+
+### 5.1 Required Fields
+
+| Field | Type | Constraints |
+|-------|------|-------------|
+| `type` | string | MUST be `"llm"` |
+| `engine` | string | One of the values in Section 5.2 |
+| `model` | string | Non-empty model identifier |
+
+### 5.2 Engines
+
+| Engine value | Aliases | Default endpoint | Auth env var |
+|---|---|---|---|
+| `openai` | — | `https://api.openai.com/v1` | `OPENAI_API_KEY` |
+| `anthropic` | — | `https://api.anthropic.com` | `ANTHROPIC_API_KEY` |
+| `grok` | `xai` | `https://api.x.ai/v1` | `XAI_API_KEY` |
+| `cortex` | — | User-provided via `endpoint` | `OPENAI_API_KEY` |
+| `codex` | — | (Codex CLI subprocess) | Codex CLI session |
+| `local` | — | `http://localhost:11434/v1` | _(none required)_ |
+| `custom` | — | User-provided via `endpoint` | _(user-defined)_ |
+
+A runtime MUST support at minimum `openai` and `anthropic`. Other engines are RECOMMENDED.
+
+`grok` and `xai` are aliases — a runtime MUST treat them identically.
+
+### 5.3 Optional Fields
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `endpoint` | string (HTTP/HTTPS URL) | Overrides the default API endpoint |
+| `config.temperature` | number [0, 2] | Sampling temperature |
+| `config.max_tokens` | integer ≥ 1 | Maximum tokens to generate |
+| `config.top_p` | number [0, 1] | Nucleus sampling parameter |
+| `config.frequency_penalty` | number [-2, 2] | Frequency penalty |
+| `config.presence_penalty` | number [-2, 2] | Presence penalty |
+
+A runtime MUST pass `temperature` and `max_tokens` to the LLM API when provided. Unknown `config` keys MAY be forwarded to the underlying engine or ignored.
+
+### 5.4 Custom Engine
+
+When `engine` is `custom`, the spec MAY additionally specify:
+
+```yaml
+intelligence:
+  type: "llm"
+  engine: "custom"
+  endpoint: "https://my-proxy.internal/v1"
+  model: "my-model"
+  module: "my_package.router.MyRouter"   # optional Python class
+```
+
+If `module` is provided, a runtime implementing the Python reference implementation MUST load the class via dynamic import. The class MUST implement:
+
+```python
+class MyRouter:
+    def __init__(self, endpoint: str, model: str, config: dict): ...
+    def run(self, prompt: str, **kwargs) -> str: ...  # returns JSON string
+```
+
+---
+
+## 6. Task Definitions
+
+The `tasks` object is a map from task name to task definition. Task names MUST match `^[a-zA-Z0-9_-]+$`.
+
+```yaml
+tasks:
+  greet:
+    description: "Say hello"     # REQUIRED
+    input: ...                   # OPTIONAL but recommended
+    output: ...                  # OPTIONAL but required for non-delegated tasks
+    prompts: ...                 # OPTIONAL (falls back to global prompts)
+    response_format: "json"      # OPTIONAL — "json" (default) or "text"
+    depends_on: [other_task]     # OPTIONAL — data dependency
+    tools: [tool_name]           # OPTIONAL — allowed tools from top-level tools:
+    behavioural_contract: ...    # OPTIONAL — merged with global contract
+    timeout: 30                  # OPTIONAL — seconds
+    spec: "./other.yaml"         # OPTIONAL — delegation target
+    task: "task_name"            # OPTIONAL — task name in delegated spec
+```
+
+### 6.1 Task Fields
+
+| Field | Required | Type | Description |
+|-------|----------|------|-------------|
+| `description` | REQUIRED | string | Human-readable description |
+| `input` | OPTIONAL | object | Input schema (JSON Schema subset) |
+| `output` | CONDITIONAL | object | Output schema. REQUIRED for non-delegated tasks without `depends_on` that are expected to return typed output. |
+| `prompts` | OPTIONAL | object | Per-task system/user prompts |
+| `response_format` | OPTIONAL | `"json"` \| `"text"` | Output parsing mode. Default: `"json"` |
+| `depends_on` | OPTIONAL | array of string | Data dependency declarations |
+| `tools` | OPTIONAL | array of string | Tool names from the top-level `tools:` block |
+| `behavioural_contract` | OPTIONAL | object | Per-task contract (merged with global) |
+| `timeout` | OPTIONAL | integer ≥ 1 | Timeout in seconds |
+| `spec` | OPTIONAL | string | Path or URL to a spec to delegate to |
+| `task` | OPTIONAL | string | Task name in the delegated spec |
+
+### 6.2 Input Schema
+
+```yaml
+input:
+  type: "object"         # MUST be "object" when present
+  properties:
+    field_name:
+      type: "string"     # REQUIRED — one of: string, number, integer, boolean, array, object
+      description: "..."
+      default: ...       # OPTIONAL
+      enum: [...]        # OPTIONAL
+      minimum: ...       # OPTIONAL — numeric constraints
+      maximum: ...
+      minLength: ...     # OPTIONAL — string constraints
+      maxLength: ...
+      pattern: "regex"   # OPTIONAL
+      items: {...}       # OPTIONAL — for array type
+  required: [field_name]
+```
+
+A runtime MUST validate that all `required` input fields are present before invoking the LLM. Missing required fields MUST raise `CHAIN_INPUT_MISSING`.
+
+### 6.3 Output Schema
+
+The output schema has the same structure as the input schema. A runtime MUST validate the parsed output against the output schema when `response_format` is `"json"`. Validation failures MUST be surfaced as errors.
+
+---
+
+## 7. Task Execution Semantics
+
+### 7.1 Single Task (no `depends_on`)
+
+Given a task with no `depends_on`:
+
+1. Validate required input fields are present. Raise `CHAIN_INPUT_MISSING` if any are missing.
+2. Resolve the system and user prompts (see Section 9).
+3. Substitute template variables in the user prompt (see Section 9.2).
+4. Build the intelligence configuration from `intelligence:`.
+5. If `tools:` is declared for the task, enter the tool-call loop (see Section 10.3). Otherwise, call the LLM once.
+6. Parse the raw output (see Section 8).
+7. Enforce the behavioural contract if declared (see Section 11).
+8. Return the result envelope (see Section 8).
+
+### 7.2 Dependent Tasks (`depends_on`)
+
+`depends_on` is a **data contract**, not an execution directive. When a task declares `depends_on: [dep1, dep2, ...]`:
+
+1. Cycle detection: if any dependency (transitively) references the calling task, raise `CHAIN_CYCLE_ERROR` before any LLM call.
+2. For each dependency in listed order:
+   a. Execute the dependency task recursively (applying the same semantics).
+   b. Merge its `output` into the running input map.
+3. Merge rule: `merged = {**caller_input, **dep1_output, **dep2_output, ...}` — later entries win on key collision.
+4. Validate required input fields against the merged map. Raise `CHAIN_INPUT_MISSING` if any are missing.
+5. Execute the calling task with the merged input.
+
+A runtime MUST NOT execute dependent tasks in parallel. A runtime MUST NOT execute a task until all its declared dependencies have produced output. A runtime MUST detect circular dependency chains and raise `CHAIN_CYCLE_ERROR` before invoking any model.
+
+**The following are permanently out of scope for `depends_on`:**
+- Conditional execution (if/else)
+- Loop control (while/for)
+- Retry semantics
+- Parallel fan-out
+- Dynamic task selection based on output values
+
+### 7.3 Spec Delegation (`spec:`)
+
+A task with a `spec:` field is a *delegated task*. Its implementation is defined in another spec document.
+
+```yaml
+tasks:
+  summarise:
+    description: "Summarise a document"
+    spec: "./summariser.yaml"    # local path (relative to calling spec) or oa:// URL
+    task: "summarise"            # optional — defaults to the calling task's name
+```
+
+Delegation semantics:
+
+1. Resolve the `spec:` reference:
+   - Local path: resolve relative to the calling spec's directory.
+   - `oa://namespace/name` or `oa://namespace/name@version`: expand to the registry URL.
+   - `http://` or `https://`: fetch directly.
+2. Load the referenced spec.
+3. Identify the target task: use `task:` if provided, else use the calling task's name.
+4. Validate the target task exists in the referenced spec. Raise `TASK_NOT_FOUND` if not.
+5. Cycle detection: if the referenced spec is already in the delegation stack, raise `DELEGATION_CYCLE_ERROR`.
+6. Execute the target task in the referenced spec, passing the current `input_data`.
+7. Surface the result under the coordinator's task name.
+8. Include `delegated_to: "#"` in the result envelope.
+
+When a task is delegated, the calling task's inline `prompts:` and `output:` schema are **ignored** — the referenced spec's task definition governs.
+
+---
+
+## 8. Response Format & Result Envelope
+
+### 8.1 Response Format
+
+`response_format` controls how the model's raw text output is processed:
+
+| Value | Behaviour |
+|-------|-----------|
+| `"json"` (default) | Strip markdown code fences if present, then parse as JSON. Validate against output schema. |
+| `"text"` | Return raw string as-is. Skip JSON parsing and output schema validation. |
+
+**Markdown fence stripping:** If the model wraps its response in ` ```json ... ``` ` or ` ``` ... ``` `, a runtime MUST strip the fences before attempting JSON parsing.
+
+**Parse failure:** If JSON parsing fails and `response_format` is `"json"`, a runtime SHOULD surface the raw string rather than raising a hard error, to preserve the response for inspection.
+
+### 8.2 Result Envelope
+
+A runtime MUST return the following envelope for every successfully executed task:
+
+```json
+{
+  "task": "",
+  "output": ,
+  "input": ,
+  "prompt": "\n\n",
+  "engine": "",
+  "model": "",
+  "raw_output": ""
+}
+```
+
+When the task has `depends_on` dependencies, the envelope MUST additionally include:
+
+```json
+{
+  "chain": {
+    "": {
+      "task": "",
+      "output": 
+    }
+  }
+}
+```
+
+Tasks with no `depends_on` MUST NOT include a `chain` key.
+
+When a task is delegated (has `spec:`), the envelope MUST additionally include:
+
+```json
+{
+  "delegated_to": "#"
+}
+```
+
+---
+
+## 9. Prompt Resolution
+
+### 9.1 Four-Level Precedence
+
+For each task invocation, the system prompt and user prompt template are resolved independently using this priority order (highest wins):
+
+| Priority | Source | How specified |
+|----------|--------|---------------|
+| 1 (highest) | CLI / runtime override | Passed at invocation time (`--system-prompt` / `--user-prompt`) |
+| 2 | Per-task inline | `tasks..prompts.system` / `tasks..prompts.user` |
+| 3 | Per-task map (legacy) | `prompts..system` / `prompts..user` |
+| 4 (lowest) | Global fallback | `prompts.system` / `prompts.user` |
+
+Each dimension (system, user) resolves independently. A runtime MUST apply this resolution order for every task invocation.
+
+The global `prompts:` block at the top level is a fallback only — it does not apply to tasks that have their own `prompts:` block.
+
+**Style A (preferred) — per-task prompts co-located with the task:**
+
+```yaml
+tasks:
+  greet:
+    prompts:
+      system: "You greet people warmly."
+      user: "{{ name }}"
+```
+
+**Style B (legacy) — keyed map under global `prompts:`:**
+
+```yaml
+prompts:
+  greet:
+    system: "You greet people warmly."
+    user: "{{ name }}"
+```
+
+Both styles are valid. Style A takes priority over Style B when both are present for the same task.
+
+### 9.2 Template Variable Substitution
+
+The user prompt template MAY contain `{{ key }}` placeholders. After prompt resolution, a runtime MUST substitute each placeholder with the corresponding value from the task's input data.
+
+**Supported substitution syntaxes** (a runtime MUST support both):
+
+| Syntax | Example | Notes |
+|--------|---------|-------|
+| `{{ key }}` | `{{ name }}` | Jinja-style, with spaces |
+| `{{ input.key }}` | `{{ input.name }}` | Jinja-style with `input.` prefix |
+| `{key}` | `{name}` | Python-style single braces |
+
+Substitution is applied to all three syntaxes. Values are stringified before substitution. A runtime MUST NOT fail if a placeholder references a key not present in the input — unresolved placeholders MAY be left as-is or substituted with an empty string (implementation choice, but SHOULD be documented).
+
+When no user prompt is configured at any level, a runtime SHOULD default to `"{{ input }}"`.
+
+---
+
+## 10. Extension Points
+
+### 10.1 Tools
+
+Tools extend a task with the ability to call external services or execute code. The top-level `tools:` block declares tools; each task's `tools:` list specifies which declared tools it may use.
+
+```yaml
+tools:
+  read_file:
+    type: "native"
+    native: "file.read"
+    description: "Read a file from disk"
+
+  search:
+    type: "mcp"
+    endpoint: "https://my-mcp-server.internal/mcp"
+    description: "Search the web"
+    headers:
+      Authorization: "${SEARCH_TOKEN}"
+
+  router:
+    type: "custom"
+    module: "my_package.tools.Router"
+    description: "Custom routing logic"
+    parameters:
+      type: object
+      properties:
+        query: { type: string }
+```
+
+### 10.2 Tool Types
+
+| `type` | Description | Required fields |
+|--------|-------------|-----------------|
+| `native` | Built-in zero-dependency tool | `native` (tool ID) |
+| `mcp` | JSON-RPC 2.0 over HTTP to an MCP server | `endpoint` |
+| `custom` | Dynamically loaded Python class | `module` |
+
+**Native tool IDs** (built-in, a conforming runtime SHOULD support):
+
+| ID | Operation |
+|----|-----------|
+| `file.read` | Read a file from disk |
+| `file.write` | Write a file to disk |
+| `http.get` | HTTP GET request |
+| `http.post` | HTTP POST request |
+| `env.read` | Read an environment variable |
+
+### 10.3 Tool-Call Loop
+
+When a task declares tools, the runtime MUST implement a multi-turn tool-call loop:
+
+1. Send the system prompt, user prompt, and tool definitions to the LLM.
+2. If the model returns tool calls, execute each call and feed results back as tool result messages.
+3. Repeat until the model returns a final text response or a maximum iteration limit is reached.
+4. A runtime MUST enforce a maximum iteration limit (the reference implementation uses 10). Exceeding the limit MUST raise `RUN_ERROR`.
+
+When the provider does not support native tool calling, a runtime SHOULD inject tool descriptions into the system prompt and fall back to a single LLM call.
+
+### 10.4 Behavioural Contracts
+
+Behavioural contracts declare constraints on task output. They are enforced **after output parsing, before the result is returned**. For chained tasks, contract enforcement runs **before** the dependency's output is merged into the next task's input.
+
+```yaml
+behavioural_contract:      # global — applies to all tasks as a baseline
+  version: "1.0"
+  response_contract:
+    output_format:
+      required_fields: [confidence]
+
+tasks:
+  summarise:
+    behavioural_contract:  # per-task — merged with global
+      version: "1.0"
+      response_contract:
+        output_format:
+          required_fields: [summary]
+    # effective required_fields: [confidence, summary]
+```
+
+**Contract merge rules:**
+
+| Value type | Merge behaviour |
+|-----------|-----------------|
+| Arrays | Unioned (order preserved, duplicates removed) |
+| Objects/dicts | Merged recursively with the same rules |
+| Scalars | Per-task value wins |
+
+A runtime MUST apply these merge rules when combining global and per-task contracts.
+
+**Contract enforcement is skipped when:**
+- `response_format: "text"` (field checks are meaningless on raw strings)
+- The output could not be parsed as a dict (warning logged, execution continues)
+- The behavioural contracts library is not installed (warning logged, execution continues)
+
+A contract violation MUST raise `CONTRACT_VIOLATION`.
+
+---
+
+## 11. Error Model
+
+### 11.1 Structured Errors
+
+A runtime MUST surface errors as structured objects with the following fields:
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `error` | string | Human-readable error message |
+| `code` | string | Machine-readable error code (see Section 11.2) |
+| `stage` | string | Pipeline stage where the error occurred |
+| `task` | string | Task name involved (OPTIONAL — omit when unknown) |
+
+### 11.2 Error Codes
+
+| Code | Stage | Trigger |
+|------|-------|---------|
+| `SPEC_LOAD_ERROR` | `load` | File not found, YAML parse error, spec does not validate against schema |
+| `TASK_NOT_FOUND` | `routing` or `delegation` | `--task` name absent from spec, unknown `depends_on` reference (`routing`), or missing task in delegated spec (`delegation`) |
+| `RUN_ERROR` | `run` | LLM invocation raises an exception, or tool-call loop exceeds maximum iterations |
+| `OUTPUT_SCHEMA_ERROR` | `output_validation` | Parsed output does not validate against the task's output schema (JSON mode only) |
+| `PROVIDER_ERROR` | `run` | Provider-specific error (network failure, API error, auth failure) |
+| `CHAIN_CYCLE_ERROR` | `routing` | Circular `depends_on` chain detected |
+| `CHAIN_INPUT_MISSING` | `input_validation` | Required input field missing after dependency merge |
+| `CONTRACT_VIOLATION` | `contract` | Task output failed behavioural contract validation |
+| `DELEGATION_CYCLE_ERROR` | `delegation` | Circular spec delegation detected (A→B→A) |
+
+A runtime MUST detect and raise `CHAIN_CYCLE_ERROR` and `DELEGATION_CYCLE_ERROR` before any model call is made.
+
+---
+
+## 12. Conformance
+
+### 12.1 Conformance Levels
+
+A runtime conforms to OAS 1.5.0 if it:
+
+1. **MUST** accept spec documents that validate against `spec/schema/oas-schema-1.5.json` and reject documents that do not.
+2. **MUST** implement the four-level prompt resolution order defined in Section 9.1.
+3. **MUST** implement template variable substitution as defined in Section 9.2.
+4. **MUST** implement `depends_on` chain semantics as defined in Section 7.2, including cycle detection.
+5. **MUST** implement the result envelope format defined in Section 8.2.
+6. **MUST** implement all error codes in Section 11.2.
+7. **MUST** implement spec delegation as defined in Section 7.3, including delegation cycle detection.
+8. **MUST** support at minimum the `openai` and `anthropic` engines.
+9. **MUST NOT** implement branching, loops, retries, parallel execution, or dynamic task selection as part of the `depends_on` or task execution model.
+
+A runtime additionally claiming "tool support" conformance **MUST** implement the tool-call loop defined in Section 10.3.
+
+A runtime additionally claiming "contract enforcement" conformance **MUST** implement the contract merge semantics defined in Section 10.4.
+
+### 12.2 Versioning
+
+The `open_agent_spec` field in a document declares the minimum spec version required. A runtime MUST reject documents whose version requirement it cannot satisfy.
+
+The version string MUST conform to Semantic Versioning. Minor and patch increments MUST be backward compatible. Major increments MAY introduce breaking changes.
+
+---
+
+## Appendix A — Minimal Valid Document
+
+```yaml
+open_agent_spec: "1.5.0"
+
+agent:
+  name: "hello-world"
+  description: "A minimal conforming agent"
+
+intelligence:
+  type: "llm"
+  engine: "openai"
+  model: "gpt-4o"
+
+tasks:
+  greet:
+    description: "Say hello"
+    input:
+      type: object
+      properties:
+        name: { type: string }
+      required: [name]
+    output:
+      type: object
+      properties:
+        response: { type: string }
+      required: [response]
+    prompts:
+      system: "You greet people warmly."
+      user: "{{ name }}"
+```
+
+---
+
+## Appendix B — Chain Example
+
+```yaml
+open_agent_spec: "1.5.0"
+
+agent:
+  name: "extract-and-summarise"
+  description: "Two-task chain demonstrating depends_on"
+
+intelligence:
+  type: "llm"
+  engine: "openai"
+  model: "gpt-4o"
+
+tasks:
+  extract:
+    description: "Extract key facts"
+    input:
+      type: object
+      properties:
+        document: { type: string }
+      required: [document]
+    output:
+      type: object
+      properties:
+        facts: { type: string }
+      required: [facts]
+    prompts:
+      system: "Extract the three most important facts."
+      user: "{{ document }}"
+
+  summarise:
+    description: "Summarise the extracted facts"
+    depends_on: [extract]
+    output:
+      type: object
+      properties:
+        summary: { type: string }
+      required: [summary]
+    prompts:
+      system: "Summarise in one sentence."
+      user: "{{ facts }}"
+```
+
+Result envelope for `summarise`:
+
+```json
+{
+  "task": "summarise",
+  "output": { "summary": "Three facts condensed." },
+  "input": { "document": "...", "facts": "fact1; fact2; fact3" },
+  "prompt": "Summarise in one sentence.\n\nfact1; fact2; fact3",
+  "engine": "openai",
+  "model": "gpt-4o",
+  "raw_output": "{\"summary\": \"Three facts condensed.\"}",
+  "chain": {
+    "extract": {
+      "task": "extract",
+      "output": { "facts": "fact1; fact2; fact3" }
+    }
+  }
+}
+```
+
+---
+
+## Appendix C — Error Examples
+
+**Missing required input:**
+```json
+{
+  "error": "Missing required input field(s) for task 'greet': name",
+  "code": "CHAIN_INPUT_MISSING",
+  "stage": "input_validation",
+  "task": "greet"
+}
+```
+
+**Contract violation:**
+```json
+{
+  "error": "Missing required field: 'confidence'",
+  "code": "CONTRACT_VIOLATION",
+  "stage": "contract",
+  "task": "summarise"
+}
+```
+
+**Circular dependency:**
+```json
+{
+  "error": "Circular dependency detected: 'extract' is already in the chain",
+  "code": "CHAIN_CYCLE_ERROR",
+  "stage": "routing",
+  "task": "summarise"
+}
+```
+
+**Delegation cycle:**
+```json
+{
+  "error": "Circular spec delegation detected: './summariser.yaml' is already in the delegation stack",
+  "code": "DELEGATION_CYCLE_ERROR",
+  "stage": "delegation",
+  "task": "summarise"
+}
+```
diff --git a/spec/schema/oas-schema-1.5.json b/spec/schema/oas-schema-1.5.json
new file mode 100644
index 0000000..5a646da
--- /dev/null
+++ b/spec/schema/oas-schema-1.5.json
@@ -0,0 +1,522 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "$id": "https://openagents.org/schemas/oas-schema.json",
+  "title": "Open Agent Spec",
+  "description": "Schema for Open Agent Spec YAML files",
+  "type": "object",
+  "required": [
+    "open_agent_spec",
+    "agent",
+    "intelligence",
+    "tasks"
+  ],
+  "properties": {
+    "open_agent_spec": {
+      "type": "string",
+      "pattern": "^(1\\.(0\\.[4-9]|[1-9]\\.[0-9]+)|[2-9]\\.[0-9]+\\.[0-9]+)$",
+      "description": "Version of the Open Agent Spec (minimum 1.0.4)"
+    },
+    "agent": {
+      "type": "object",
+      "properties": {
+        "name": {
+          "type": "string"
+        },
+        "description": {
+          "type": "string",
+          "description": "Free text description of what the agent does"
+        },
+        "role": {
+          "type": "string",
+          "enum": [
+            "analyst",
+            "reviewer",
+            "chat",
+            "retriever",
+            "planner",
+            "executor"
+          ],
+          "description": "Optional role type for the agent"
+        }
+      },
+      "required": [
+        "name",
+        "description"
+      ]
+    },
+    "intelligence": {
+      "type": "object",
+      "properties": {
+        "type": {
+          "type": "string",
+          "enum": [
+            "llm"
+          ],
+          "description": "Type of intelligence (currently only LLM supported)"
+        },
+        "engine": {
+          "type": "string",
+          "enum": [
+            "openai",
+            "anthropic",
+            "grok",
+            "xai",
+            "cortex",
+            "codex",
+            "local",
+            "custom"
+          ],
+          "description": "LLM engine provider (e.g., openai, anthropic, grok/xai, cortex, codex, local, custom)"
+        },
+        "model": {
+          "type": "string",
+          "description": "Model name/identifier"
+        },
+        "endpoint": {
+          "type": "string",
+          "pattern": "^(https?://)[^\\s]+$",
+          "description": "API endpoint URL for the LLM service (must be HTTP/HTTPS)"
+        },
+        "config": {
+          "type": "object",
+          "properties": {
+            "temperature": {
+              "type": "number",
+              "minimum": 0,
+              "maximum": 2,
+              "description": "Sampling temperature (0-2)"
+            },
+            "max_tokens": {
+              "type": "integer",
+              "minimum": 1,
+              "description": "Maximum number of tokens to generate"
+            },
+            "top_p": {
+              "type": "number",
+              "minimum": 0,
+              "maximum": 1,
+              "description": "Nucleus sampling parameter (0-1)"
+            },
+            "frequency_penalty": {
+              "type": "number",
+              "minimum": -2,
+              "maximum": 2,
+              "description": "Frequency penalty (-2 to 2)"
+            },
+            "presence_penalty": {
+              "type": "number",
+              "minimum": -2,
+              "maximum": 2,
+              "description": "Presence penalty (-2 to 2)"
+            },
+            "enable_layer3": {
+              "type": "boolean",
+              "description": "Enable Layer 3 intelligence capabilities (Cortex-specific)"
+            },
+            "enable_onnx": {
+              "type": "boolean",
+              "description": "Enable ONNX runtime optimization (Cortex-specific)"
+            },
+            "openai_api_key": {
+              "type": "string",
+              "description": "OpenAI API key for Cortex integration"
+            },
+            "claude_api_key": {
+              "type": "string",
+              "description": "Claude API key for Cortex integration"
+            }
+          },
+          "description": "Configuration parameters for the LLM"
+        }
+      },
+      "required": [
+        "type",
+        "engine",
+        "model"
+      ]
+    },
+    "tasks": {
+      "type": "object",
+      "patternProperties": {
+        "^[a-zA-Z0-9_-]+$": {
+          "type": "object",
+          "properties": {
+            "description": {
+              "type": "string",
+              "description": "Description of what this task does"
+            },
+            "timeout": {
+              "type": "integer",
+              "minimum": 1,
+              "description": "Timeout in seconds for this task"
+            },
+            "input": {
+              "type": "object",
+              "properties": {
+                "type": {
+                  "type": "string",
+                  "enum": [
+                    "object"
+                  ],
+                  "default": "object",
+                  "description": "Type of input (currently only object supported)"
+                },
+                "properties": {
+                  "type": "object",
+                  "patternProperties": {
+                    "^[a-zA-Z_][a-zA-Z0-9_]*$": {
+                      "type": "object",
+                      "properties": {
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "string",
+                            "number",
+                            "integer",
+                            "boolean",
+                            "array",
+                            "object"
+                          ],
+                          "description": "JSON Schema type for this property"
+                        },
+                        "description": {
+                          "type": "string",
+                          "description": "Description of this input property"
+                        },
+                        "default": {
+                          "description": "Default value for this property"
+                        },
+                        "enum": {
+                          "type": "array",
+                          "description": "Allowed values for this property"
+                        },
+                        "minimum": {
+                          "type": "number",
+                          "description": "Minimum value for numeric properties"
+                        },
+                        "maximum": {
+                          "type": "number",
+                          "description": "Maximum value for numeric properties"
+                        },
+                        "minLength": {
+                          "type": "integer",
+                          "minimum": 0,
+                          "description": "Minimum length for string properties"
+                        },
+                        "maxLength": {
+                          "type": "integer",
+                          "minimum": 0,
+                          "description": "Maximum length for string properties"
+                        },
+                        "pattern": {
+                          "type": "string",
+                          "description": "Regex pattern for string validation"
+                        },
+                        "items": {
+                          "type": "object",
+                          "description": "Schema for array items"
+                        },
+                        "properties": {
+                          "type": "object",
+                          "description": "Properties for object type"
+                        }
+                      },
+                      "required": [
+                        "type"
+                      ]
+                    }
+                  },
+                  "additionalProperties": false,
+                  "description": "Input properties schema"
+                },
+                "required": {
+                  "type": "array",
+                  "items": {
+                    "type": "string"
+                  },
+                  "description": "List of required input properties"
+                }
+              },
+              "description": "Input schema for this task"
+            },
+            "output": {
+              "type": "object",
+              "properties": {
+                "type": {
+                  "type": "string",
+                  "enum": [
+                    "object"
+                  ],
+                  "default": "object",
+                  "description": "Type of output (currently only object supported)"
+                },
+                "properties": {
+                  "type": "object",
+                  "patternProperties": {
+                    "^[a-zA-Z_][a-zA-Z0-9_]*$": {
+                      "type": "object",
+                      "properties": {
+                        "type": {
+                          "type": "string",
+                          "enum": [
+                            "string",
+                            "number",
+                            "integer",
+                            "boolean",
+                            "array",
+                            "object"
+                          ],
+                          "description": "JSON Schema type for this property"
+                        },
+                        "description": {
+                          "type": "string",
+                          "description": "Description of this output property"
+                        },
+                        "default": {
+                          "description": "Default value for this property"
+                        },
+                        "enum": {
+                          "type": "array",
+                          "description": "Allowed values for this property"
+                        },
+                        "minimum": {
+                          "type": "number",
+                          "description": "Minimum value for numeric properties"
+                        },
+                        "maximum": {
+                          "type": "number",
+                          "description": "Maximum value for numeric properties"
+                        },
+                        "minLength": {
+                          "type": "integer",
+                          "minimum": 0,
+                          "description": "Minimum length for string properties"
+                        },
+                        "maxLength": {
+                          "type": "integer",
+                          "minimum": 0,
+                          "description": "Maximum length for string properties"
+                        },
+                        "pattern": {
+                          "type": "string",
+                          "description": "Regex pattern for string validation"
+                        },
+                        "items": {
+                          "type": "object",
+                          "description": "Schema for array items"
+                        },
+                        "properties": {
+                          "type": "object",
+                          "description": "Properties for object type"
+                        }
+                      },
+                      "required": [
+                        "type"
+                      ]
+                    }
+                  },
+                  "additionalProperties": false,
+                  "description": "Output properties schema"
+                },
+                "required": {
+                  "type": "array",
+                  "items": {
+                    "type": "string"
+                  },
+                  "description": "List of required output properties"
+                }
+              },
+              "description": "Output schema for this task"
+            },
+            "prompts": {
+              "type": "object",
+              "properties": {
+                "system": {
+                  "type": "string",
+                  "description": "System prompt for this task (overrides global prompts.system)"
+                },
+                "user": {
+                  "type": "string",
+                  "description": "User prompt template for this task (overrides global prompts.user)"
+                }
+              },
+              "description": "Per-task prompts. Takes priority over the global prompts section."
+            },
+            "response_format": {
+              "type": "string",
+              "enum": [
+                "json",
+                "text"
+              ],
+              "default": "json",
+              "description": "Output format. 'json' (default): runner parses model output as JSON. 'text': raw model output is returned as-is; output schema validation is skipped."
+            },
+            "depends_on": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              },
+              "description": "Declares data dependencies: the named tasks must produce output before this task can run, and their outputs are merged into this task's input (later entries win on key collision). IMPORTANT \u2014 this is a data contract, not execution control. OAS intentionally prohibits: branching, conditionals, loops, retries, fallbacks, parallel execution, and dynamic task selection. If you need any of those, they belong outside OAS in the calling platform. Linear chains only."
+            },
+            "behavioural_contract": {
+              "type": "object",
+              "description": "Per-task behavioural contract. Merged with the top-level behavioural_contract (arrays are unioned, scalars use per-task-wins). Install behavioural-contracts to enable runtime enforcement."
+            },
+            "tools": {
+              "type": "array",
+              "items": {
+                "type": "string"
+              },
+              "description": "Names of tools from the top-level tools: block that this task is allowed to use."
+            },
+            "spec": {
+              "type": "string",
+              "description": "Path to another spec YAML file whose task implements this task. Relative paths are resolved from the directory of the calling spec. When present, this task is delegated \u2014 inline prompts and output schema are ignored in favour of the referenced spec's task definition."
+            },
+            "task": {
+              "type": "string",
+              "description": "Name of the task to run in the referenced spec (used with 'spec:'). Defaults to the same name as this task when omitted."
+            }
+          },
+          "required": [
+            "description"
+          ]
+        }
+      },
+      "description": "Tasks that this agent can perform"
+    },
+    "prompts": {
+      "type": "object",
+      "properties": {
+        "system": {
+          "type": "string",
+          "description": "Global fallback system prompt used when a task has no per-task prompts"
+        },
+        "user": {
+          "type": "string",
+          "description": "Global fallback user prompt template"
+        }
+      },
+      "description": "Global prompt fallbacks. Per-task prompts (tasks..prompts) take priority."
+    },
+    "logging": {
+      "type": "object",
+      "properties": {
+        "enabled": {
+          "type": "boolean",
+          "default": true,
+          "description": "Whether to enable DACP logging"
+        },
+        "level": {
+          "type": "string",
+          "enum": [
+            "DEBUG",
+            "INFO",
+            "WARNING",
+            "ERROR",
+            "CRITICAL"
+          ],
+          "default": "INFO",
+          "description": "Logging level"
+        },
+        "format_style": {
+          "type": "string",
+          "enum": [
+            "emoji",
+            "detailed",
+            "simple"
+          ],
+          "default": "emoji",
+          "description": "Logging format style"
+        },
+        "include_timestamp": {
+          "type": "boolean",
+          "default": true,
+          "description": "Include timestamps in logs"
+        },
+        "log_file": {
+          "type": "string",
+          "description": "Optional: log to file (auto-creates directories)"
+        },
+        "env_overrides": {
+          "type": "object",
+          "properties": {
+            "level": {
+              "type": "string",
+              "description": "Environment variable that overrides level"
+            },
+            "format_style": {
+              "type": "string",
+              "description": "Environment variable that overrides format_style"
+            },
+            "log_file": {
+              "type": "string",
+              "description": "Environment variable that overrides log_file"
+            }
+          },
+          "description": "Environment variable overrides for runtime configuration"
+        }
+      },
+      "description": "DACP logging configuration"
+    },
+    "behavioural_contract": {
+      "type": "object"
+    },
+    "interface": {
+      "type": "object"
+    },
+    "tools": {
+      "type": "object",
+      "patternProperties": {
+        "^[a-zA-Z0-9_-]+$": {
+          "type": "object",
+          "properties": {
+            "type": {
+              "type": "string",
+              "enum": [
+                "native",
+                "mcp",
+                "custom"
+              ],
+              "description": "Tool backend type. 'native' uses built-in OAS tools. 'mcp' connects to any MCP server (JSON-RPC 2.0 over HTTP). 'custom' loads a user-defined Python class."
+            },
+            "native": {
+              "type": "string",
+              "description": "Native tool ID (e.g. file.read, file.write, http.get, http.post, env.read). Required when type is 'native'."
+            },
+            "module": {
+              "type": "string",
+              "description": "Python dotted path to a class implementing ToolProvider. Required when type is 'custom'."
+            },
+            "description": {
+              "type": "string",
+              "description": "Human-readable description of what this tool does (used in model prompts)."
+            },
+            "parameters": {
+              "type": "object",
+              "description": "JSON Schema for tool arguments. Required for custom tools without a describe() method."
+            },
+            "endpoint": {
+              "type": "string",
+              "description": "HTTP endpoint of the MCP server. Required when type is 'mcp'."
+            },
+            "headers": {
+              "type": "object",
+              "description": "Optional HTTP headers sent with every MCP request. Values may use ${ENV_VAR} substitution."
+            },
+            "timeout": {
+              "type": "integer",
+              "minimum": 1,
+              "description": "Request timeout in seconds (default 30)."
+            }
+          },
+          "required": [
+            "type"
+          ],
+          "description": "A single tool declaration."
+        }
+      },
+      "description": "Tool declarations available to tasks. Tasks reference tools by name in their tools: list."
+    }
+  }
+}
diff --git a/tests/test_main.py b/tests/test_main.py
index af55d57..1d93167 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -28,7 +28,7 @@ def test_version_flag():
     """Test that the --version flag works correctly."""
     result = runner.invoke(app, ["--version"])
     assert result.exit_code == 0
-    # New banner shows "Open Agent Spec" text and a version digit (e.g. 1.4.0)
+    # New banner shows "Open Agent Spec" text and a version digit (e.g. 1.5.0)
     assert "Open Agent Spec" in result.output
     assert re.search(r"\d+\.\d+", result.output), (
         "Version output should contain a version-like string"
@@ -79,7 +79,7 @@ def test_init_with_directory_spec_returns_clean_error(tmp_path):
 # ---------------------------------------------------------------------------
 
 _MINIMAL_SPEC = """\
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: test-agent
diff --git a/tests/test_multi_task_workflows.py b/tests/test_multi_task_workflows.py
index 0793b58..d99420f 100644
--- a/tests/test_multi_task_workflows.py
+++ b/tests/test_multi_task_workflows.py
@@ -98,7 +98,7 @@ def _spec(
         prompts.update(style_b)
 
     s: dict = {
-        "open_agent_spec": "1.4.0",
+        "open_agent_spec": "1.5.0",
         "agent": {"name": "test-agent", "description": "test agent"},
         "intelligence": intelligence or _base_intelligence(),
         "tasks": tasks,
@@ -200,7 +200,7 @@ def test_empty_global_prompts_section_no_crash(self):
     def test_no_prompts_section_at_all(self):
         """Spec without any prompts key (per-task or global) runs without error."""
         spec = {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "a", "description": "b"},
             "intelligence": _base_intelligence(),
             "tasks": {"t": _task(system="task-sys", user="{{ q }}")},
@@ -720,7 +720,7 @@ class TestSpecShapePermutations:
     def test_per_task_only_no_global_prompts(self):
         """Spec with no top-level prompts section; each task has its own."""
         spec = {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "a", "description": "b"},
             "intelligence": _base_intelligence(),
             "tasks": {
@@ -923,7 +923,7 @@ def test_review_task_output_parsed(self):
 # ===========================================================================
 
 _CLI_SPEC_YAML = """\
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: cli-test-agent
diff --git a/tests/test_registry.py b/tests/test_registry.py
index fadaac8..66c580c 100644
--- a/tests/test_registry.py
+++ b/tests/test_registry.py
@@ -89,7 +89,7 @@ def _make_mock_response(body: str, status: int = 200):
 
 _MINIMAL_SPEC_YAML = yaml.dump(
     {
-        "open_agent_spec": "1.4.0",
+        "open_agent_spec": "1.5.0",
         "agent": {"name": "test", "description": "test", "role": "analyst"},
         "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o-mini"},
         "tasks": {
@@ -115,7 +115,7 @@ def test_successful_fetch(self):
             return_value=_make_mock_response(_MINIMAL_SPEC_YAML),
         ):
             spec = _fetch_remote_spec("https://example.com/spec.yaml")
-        assert spec["open_agent_spec"] == "1.4.0"
+        assert spec["open_agent_spec"] == "1.5.0"
         assert "tasks" in spec
 
     def test_http_error_raises(self):
@@ -171,7 +171,7 @@ def test_non_mapping_yaml_raises(self):
 
 def _make_coordinator_spec(spec_ref: str, task_ref: str = "run") -> dict:
     return {
-        "open_agent_spec": "1.4.0",
+        "open_agent_spec": "1.5.0",
         "agent": {"name": "coordinator", "description": "test", "role": "analyst"},
         "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o-mini"},
         "prompts": {"system": "s", "user": "u"},
@@ -233,7 +233,7 @@ def test_remote_cycle_detection(self, tmp_path):
 
         # The remote spec also delegates to itself
         self_delegating_spec = {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "cyclic", "description": "cycles", "role": "analyst"},
             "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o-mini"},
             "prompts": {"system": "s", "user": "u"},
diff --git a/tests/test_runner.py b/tests/test_runner.py
index 0a96b49..b54129f 100644
--- a/tests/test_runner.py
+++ b/tests/test_runner.py
@@ -53,7 +53,7 @@ def _spec(
         prompts["mytask"] = b
 
     return {
-        "open_agent_spec": "1.4.0",
+        "open_agent_spec": "1.5.0",
         "agent": {"name": "test-agent", "description": "test"},
         "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o"},
         "tasks": {"mytask": task_def},
@@ -271,7 +271,7 @@ def fake_invoke(system: str, user: str, config: dict) -> str:
 def _text_spec(response_format: str = "text") -> dict:
     """Minimal spec with response_format on the task."""
     return {
-        "open_agent_spec": "1.4.0",
+        "open_agent_spec": "1.5.0",
         "agent": {"name": "ta", "description": "ta"},
         "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o"},
         "tasks": {
@@ -411,7 +411,7 @@ def _chain_spec(*, add_text_format: bool = False) -> dict:
     if add_text_format:
         summarize_task["response_format"] = "text"
     return {
-        "open_agent_spec": "1.4.0",
+        "open_agent_spec": "1.5.0",
         "agent": {"name": "chain-agent", "description": "test"},
         "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o"},
         "tasks": {"extract": extract_task, "summarize": summarize_task},
@@ -602,7 +602,7 @@ def _spec_with_contracts(
         task_fields: list[str] | None = None,
     ) -> dict:
         spec: dict = {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "ta", "description": "ta"},
             "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o"},
             "tasks": {
@@ -686,7 +686,7 @@ def _contract_spec(
             },
         }
         return {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "ta", "description": "ta"},
             "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o"},
             "tasks": {"mytask": task},
@@ -733,7 +733,7 @@ def test_global_contract_enforced_on_task(self, monkeypatch):
             lambda s, u, c: '{"summary": "ok"}',  # missing global 'confidence'
         )
         spec = {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "ta", "description": "ta"},
             "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o"},
             "tasks": {
@@ -768,7 +768,7 @@ def fake_invoke(system: str, user: str, config: dict) -> str:
 
         monkeypatch.setattr("oas_cli.runner.invoke_intelligence", fake_invoke)
         spec = {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "ta", "description": "ta"},
             "intelligence": {"type": "llm", "engine": "openai", "model": "gpt-4o"},
             "tasks": {
diff --git a/tests/test_spec_composition.py b/tests/test_spec_composition.py
index 6a0701d..a524cbc 100644
--- a/tests/test_spec_composition.py
+++ b/tests/test_spec_composition.py
@@ -26,7 +26,7 @@
 
 def _make_spec(tasks: dict, prompts: dict | None = None) -> dict:
     return {
-        "open_agent_spec": "1.4.0",
+        "open_agent_spec": "1.5.0",
         "agent": {"name": "test", "description": "test", "role": "analyst"},
         "intelligence": _INTELLIGENCE,
         "tasks": tasks,
diff --git a/tests/test_spec_test.py b/tests/test_spec_test.py
index 20efc9c..469ca72 100644
--- a/tests/test_spec_test.py
+++ b/tests/test_spec_test.py
@@ -73,7 +73,7 @@ def test_load_test_definition_roundtrip(tmp_path: Path):
 
 
 _MINIMAL_RUNNABLE_SPEC = """\
-open_agent_spec: "1.4.0"
+open_agent_spec: "1.5.0"
 
 agent:
   name: test-agent
diff --git a/tests/test_tool_providers.py b/tests/test_tool_providers.py
index a4360e4..a53eb62 100644
--- a/tests/test_tool_providers.py
+++ b/tests/test_tool_providers.py
@@ -323,7 +323,7 @@ class TestInvokeWithToolsLoop:
 
     def _make_spec(self) -> dict:
         return {
-            "open_agent_spec": "1.4.0",
+            "open_agent_spec": "1.5.0",
             "agent": {"name": "test", "description": "test"},
             "intelligence": {
                 "type": "llm",