From 9d16573619ee503f1009511aecc8968c6e5e59fe Mon Sep 17 00:00:00 2001 From: Bryant Date: Fri, 6 Nov 2026 07:39:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=93=9D=20(python-sdk-docs):=20Resync?= =?UTF-8?q?=20the=2016=20quick-start=20snippets=20with=20the=20examples'?= =?UTF-8?q?=20enforcement=5Fmode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The examples now pass enforcement_mode="observe" in each offline quick start because the default posture fails closed when registration cannot reach a gateway. The vendored snippets and the generated tabs still showed the old call, so copying them verbatim into an offline script failed closed. The local import headers and the completed with-bodies are kept. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01TLpw696KjUDUg4QjH83En4 --- docs/quick-start.md | 48 +++++++++++++++++++ quickstart_snippets/agno-tool-policy.py | 3 ++ quickstart_snippets/autogen-tool-policy.py | 3 ++ quickstart_snippets/crewai-research-crew.py | 3 ++ quickstart_snippets/custom-tool-policy.py | 3 ++ quickstart_snippets/google-adk.py | 3 ++ quickstart_snippets/haystack-tool-policy.py | 3 ++ quickstart_snippets/langchain-basic-agent.py | 3 ++ .../langchain-research-agent.py | 3 ++ quickstart_snippets/langgraph.py | 3 ++ quickstart_snippets/llamaindex-tool-policy.py | 3 ++ .../microsoft-agent-framework-tool-policy.py | 3 ++ quickstart_snippets/openai-agents-sdk.py | 3 ++ quickstart_snippets/pydantic-ai.py | 3 ++ .../semantic-kernel-tool-policy.py | 3 ++ quickstart_snippets/smolagents-tool-policy.py | 3 ++ .../strands-agents-tool-policy.py | 3 ++ 17 files changed, 96 insertions(+) diff --git a/docs/quick-start.md b/docs/quick-start.md index 918ad001..50af20d4 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -119,6 +119,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="agno-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -165,6 +168,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="autogen-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -196,6 +202,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="crewai-research-crew", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -235,6 +244,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="custom-tool-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -271,6 +283,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="google-adk-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -299,6 +314,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="haystack-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -344,6 +362,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="langchain-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -375,6 +396,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="langchain-research-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -407,6 +431,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="langgraph-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -444,6 +471,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="llamaindex-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -507,6 +537,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="microsoft-agent-framework-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -536,6 +569,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="openai-agents-demo", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -564,6 +600,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="pydantic-ai-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -592,6 +631,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="semantic-kernel-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -621,6 +663,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="smolagents-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") @@ -653,6 +698,9 @@ with no API keys and no outbound network. api_key=api_key, agent_id="strands-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/agno-tool-policy.py b/quickstart_snippets/agno-tool-policy.py index 482dd47f..10b6d588 100644 --- a/quickstart_snippets/agno-tool-policy.py +++ b/quickstart_snippets/agno-tool-policy.py @@ -8,6 +8,9 @@ api_key=api_key, agent_id="agno-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/autogen-tool-policy.py b/quickstart_snippets/autogen-tool-policy.py index f1c61c4f..83f1d106 100644 --- a/quickstart_snippets/autogen-tool-policy.py +++ b/quickstart_snippets/autogen-tool-policy.py @@ -7,6 +7,9 @@ api_key=api_key, agent_id="autogen-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/crewai-research-crew.py b/quickstart_snippets/crewai-research-crew.py index 2b2fc581..7fc55d92 100644 --- a/quickstart_snippets/crewai-research-crew.py +++ b/quickstart_snippets/crewai-research-crew.py @@ -9,6 +9,9 @@ api_key=api_key, agent_id="crewai-research-crew", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/custom-tool-policy.py b/quickstart_snippets/custom-tool-policy.py index 31438a3a..5891d9ae 100644 --- a/quickstart_snippets/custom-tool-policy.py +++ b/quickstart_snippets/custom-tool-policy.py @@ -13,6 +13,9 @@ api_key=api_key, agent_id="custom-tool-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/google-adk.py b/quickstart_snippets/google-adk.py index 78629ce1..990b1000 100644 --- a/quickstart_snippets/google-adk.py +++ b/quickstart_snippets/google-adk.py @@ -14,6 +14,9 @@ api_key=api_key, agent_id="google-adk-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/haystack-tool-policy.py b/quickstart_snippets/haystack-tool-policy.py index 42e797b6..5d197974 100644 --- a/quickstart_snippets/haystack-tool-policy.py +++ b/quickstart_snippets/haystack-tool-policy.py @@ -8,6 +8,9 @@ api_key=api_key, agent_id="haystack-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/langchain-basic-agent.py b/quickstart_snippets/langchain-basic-agent.py index 8e2eaa7a..5ba3911b 100644 --- a/quickstart_snippets/langchain-basic-agent.py +++ b/quickstart_snippets/langchain-basic-agent.py @@ -8,6 +8,9 @@ api_key=api_key, agent_id="langchain-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/langchain-research-agent.py b/quickstart_snippets/langchain-research-agent.py index 9a9fe0ee..f73ae8d5 100644 --- a/quickstart_snippets/langchain-research-agent.py +++ b/quickstart_snippets/langchain-research-agent.py @@ -8,6 +8,9 @@ api_key=api_key, agent_id="langchain-research-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/langgraph.py b/quickstart_snippets/langgraph.py index 347dbe9e..7e0e42dc 100644 --- a/quickstart_snippets/langgraph.py +++ b/quickstart_snippets/langgraph.py @@ -9,6 +9,9 @@ api_key=api_key, agent_id="langgraph-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/llamaindex-tool-policy.py b/quickstart_snippets/llamaindex-tool-policy.py index 6cd1d72a..6cfd772a 100644 --- a/quickstart_snippets/llamaindex-tool-policy.py +++ b/quickstart_snippets/llamaindex-tool-policy.py @@ -8,6 +8,9 @@ api_key=api_key, agent_id="llamaindex-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/microsoft-agent-framework-tool-policy.py b/quickstart_snippets/microsoft-agent-framework-tool-policy.py index fee46e6b..f95e118f 100644 --- a/quickstart_snippets/microsoft-agent-framework-tool-policy.py +++ b/quickstart_snippets/microsoft-agent-framework-tool-policy.py @@ -24,6 +24,9 @@ api_key=api_key, agent_id="microsoft-agent-framework-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/openai-agents-sdk.py b/quickstart_snippets/openai-agents-sdk.py index 8390909e..5d67ef31 100644 --- a/quickstart_snippets/openai-agents-sdk.py +++ b/quickstart_snippets/openai-agents-sdk.py @@ -8,6 +8,9 @@ api_key=api_key, agent_id="openai-agents-demo", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/pydantic-ai.py b/quickstart_snippets/pydantic-ai.py index da8a4bc4..c018a651 100644 --- a/quickstart_snippets/pydantic-ai.py +++ b/quickstart_snippets/pydantic-ai.py @@ -13,6 +13,9 @@ api_key=api_key, agent_id="pydantic-ai-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/semantic-kernel-tool-policy.py b/quickstart_snippets/semantic-kernel-tool-policy.py index 87152324..e6f7aecc 100644 --- a/quickstart_snippets/semantic-kernel-tool-policy.py +++ b/quickstart_snippets/semantic-kernel-tool-policy.py @@ -8,6 +8,9 @@ api_key=api_key, agent_id="semantic-kernel-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/smolagents-tool-policy.py b/quickstart_snippets/smolagents-tool-policy.py index 4e173fa1..fde0479e 100644 --- a/quickstart_snippets/smolagents-tool-policy.py +++ b/quickstart_snippets/smolagents-tool-policy.py @@ -14,6 +14,9 @@ api_key=api_key, agent_id="smolagents-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") diff --git a/quickstart_snippets/strands-agents-tool-policy.py b/quickstart_snippets/strands-agents-tool-policy.py index 3cba7408..dc028294 100644 --- a/quickstart_snippets/strands-agents-tool-policy.py +++ b/quickstart_snippets/strands-agents-tool-policy.py @@ -7,6 +7,9 @@ api_key=api_key, agent_id="strands-demo-agent", mode="sdk-only", + # No gateway here: the default posture fails closed when registration + # can't reach one, so an offline demo must name its dry-run posture. + enforcement_mode="observe", ) as ctx: print(f" Agent: {ctx.client.agent_id}") print(f" Gateway: {ctx.client.gateway_url}") From a996c3df130e37e1cd48eb3c04aab6973f28b1b0 Mon Sep 17 00:00:00 2001 From: Bryant Date: Tue, 10 Nov 2026 05:40:41 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=F0=9F=93=9D=20(docs):=20Say=20that=20the?= =?UTF-8?q?=20quick-start=20snippets=20run=20in=20observe,=20not=20enforce?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The snippets pass enforcement_mode="observe" for offline demos, which makes the SDK's local checks fail open. Copying one into a service without a gateway would silently run ungoverned, so say so next to the snippets and name what to change. Found in independent review of the snippet resync. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01TLpw696KjUDUg4QjH83En4 --- docs/quick-start.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/quick-start.md b/docs/quick-start.md index 50af20d4..008abc46 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -104,6 +104,12 @@ below is the part that wires in governance. Every example runs **offline** in `mode="sdk-only"` against a local policy, so you can try it with no API keys and no outbound network. +These offline snippets also pass `enforcement_mode="observe"`, the dry-run posture: every +action proceeds (the SDK's local checks fail open) and the gateway only records what would have +been blocked. That suits a demo with no gateway. Before you copy a snippet into a real service, +drop `enforcement_mode="observe"` (the default is `enforce`) and `mode="sdk-only"`, and point +the SDK at your gateway. + === "Agno" From 6d005bd4a4f6d5ac0189c0fa7785fd4745712fc3 Mon Sep 17 00:00:00 2001 From: Bryant Date: Tue, 10 Nov 2026 05:44:53 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=F0=9F=93=9D=20(python-sdk-docs):=20Drop=20?= =?UTF-8?q?unbound=20enforcement=20claims=20from=20the=20quick-start=20obs?= =?UTF-8?q?erve=20note?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The paragraph asserted fail-open and default-enforce behaviour with no ClaimBinding. Keep only the configuration instruction and allow-list the two remaining sentences with written justifications. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01TLpw696KjUDUg4QjH83En4 --- docs/quick-start.md | 8 +++----- test/unit/test_quickstart_claim_bindings.py | 6 ++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/docs/quick-start.md b/docs/quick-start.md index 008abc46..45f0be03 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -104,11 +104,9 @@ below is the part that wires in governance. Every example runs **offline** in `mode="sdk-only"` against a local policy, so you can try it with no API keys and no outbound network. -These offline snippets also pass `enforcement_mode="observe"`, the dry-run posture: every -action proceeds (the SDK's local checks fail open) and the gateway only records what would have -been blocked. That suits a demo with no gateway. Before you copy a snippet into a real service, -drop `enforcement_mode="observe"` (the default is `enforce`) and `mode="sdk-only"`, and point -the SDK at your gateway. +These offline snippets also pass `enforcement_mode="observe"`, a demo posture for running +without a gateway. Before you copy a snippet into a real service, remove +`enforcement_mode="observe"` and `mode="sdk-only"`, and point the SDK at your gateway. diff --git a/test/unit/test_quickstart_claim_bindings.py b/test/unit/test_quickstart_claim_bindings.py index a63655ae..4481aa24 100644 --- a/test/unit/test_quickstart_claim_bindings.py +++ b/test/unit/test_quickstart_claim_bindings.py @@ -598,6 +598,12 @@ class ClaimBinding: "Names what the [runtime] extra adds to the install. Packaging composition; whether that binary is actually reachable is a separate, bound claim." ), "You have three options:": ("A list lead-in with no predicate of its own."), + 'These offline snippets also pass `enforcement_mode="observe"`, a demo posture for running without a gateway.': ( + "Names the argument the offline snippets pass and the setting they are meant for. States no behaviour of observe mode; what that mode does is documented and bound elsewhere." + ), + 'Before you copy a snippet into a real service, remove `enforcement_mode="observe"` and `mode="sdk-only"`, and point the SDK at your gateway.': ( + "An instruction to change two demo arguments and add a gateway endpoint when moving off the offline setup. An imperative about configuration, with no claim about what the SDK or gateway then does." + ), "**Let the SDK auto-start one.**": ( "The bold label of a bullet. The behavioural claim it introduces is the next sentence, which is bound and registered unproven." ), From 69be38db6a42a51418aa40493b6b3dd314f85b04 Mon Sep 17 00:00:00 2001 From: Bryant Date: Tue, 10 Nov 2026 05:50:27 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=F0=9F=93=9D=20(python-sdk-docs):=20Describ?= =?UTF-8?q?e=20the=20observe=20demo=20posture=20as=20offline=20against=20a?= =?UTF-8?q?=20local=20policy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The snippets still pass a gateway URL, so 'without a gateway' was loose. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_01TLpw696KjUDUg4QjH83En4 --- docs/quick-start.md | 2 +- test/unit/test_quickstart_claim_bindings.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/quick-start.md b/docs/quick-start.md index 45f0be03..cd461774 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -105,7 +105,7 @@ Every example runs **offline** in `mode="sdk-only"` against a local policy, so y with no API keys and no outbound network. These offline snippets also pass `enforcement_mode="observe"`, a demo posture for running -without a gateway. Before you copy a snippet into a real service, remove +offline against a local policy. Before you copy a snippet into a real service, remove `enforcement_mode="observe"` and `mode="sdk-only"`, and point the SDK at your gateway. diff --git a/test/unit/test_quickstart_claim_bindings.py b/test/unit/test_quickstart_claim_bindings.py index 4481aa24..abc71f41 100644 --- a/test/unit/test_quickstart_claim_bindings.py +++ b/test/unit/test_quickstart_claim_bindings.py @@ -598,7 +598,7 @@ class ClaimBinding: "Names what the [runtime] extra adds to the install. Packaging composition; whether that binary is actually reachable is a separate, bound claim." ), "You have three options:": ("A list lead-in with no predicate of its own."), - 'These offline snippets also pass `enforcement_mode="observe"`, a demo posture for running without a gateway.': ( + 'These offline snippets also pass `enforcement_mode="observe"`, a demo posture for running offline against a local policy.': ( "Names the argument the offline snippets pass and the setting they are meant for. States no behaviour of observe mode; what that mode does is documented and bound elsewhere." ), 'Before you copy a snippet into a real service, remove `enforcement_mode="observe"` and `mode="sdk-only"`, and point the SDK at your gateway.': (