Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/content/docs/guards/authoring.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ renaming a policy isn't a move.
The create page asks whether the policy guards a coding agent or an action in
your own application, and the answer decides the editor.

| | Application policy | Coding agent policy |
| ------------- | --------------------------------------------------- | ---------------------------------------------------------------- |
| Guards | An action your own code takes | A tool call a developer's Claude Code, Copilot, Codex, or Cursor session makes |
| Selected by | The `label` a `guard()` call passes | What it **executes on**: Tool call or Prompt |
| Inputs | You declare them and the application sends them | Fixed. Arcjet builds every value from the agent's hook payload |
| To turn it on | Write the `guard()` call | Publish it |
| | Application policy | Coding agent policy |
| ------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| Guards | An action your own code takes | A tool call, prompt, or model switch in a developer's Claude Code, Copilot, Codex, Cursor, or Muse Code session |
| Selected by | The `label` a `guard()` call passes | What it **executes on**: **Tool call**, **Prompt**, **Model switch**, or a combination |
| Inputs | You declare them and the application sends them | Fixed. Arcjet builds every value from the agent's hook payload |
| To turn it on | Write the `guard()` call | Publish it |

The rest of this page applies to both kinds. For the coding agent contract and
its starter policies, see
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/guards/errors.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ These are the ones you're most likely to see:
| `AJV2008` | A rule's execution doesn't match its detector | Execution is derived. Let the Console or the compiler set it |
| `AJV2012` | The policy doesn't satisfy its stored tests | Validate to list every failing test at once |
| `AJV2015` | A live rule needs at least one stored test | Add a test, or leave every rule in dry run until you have one |
| `AJV2016` | A coding agent policy executes on something other than Tool call or Prompt | Pick one of the two. Omit the setting for an application policy |
| `AJV2016` | A coding agent policy executes on something other than Tool call, Prompt, or Model switch | Pick one or more of the three. Omit the setting for an application policy |
| `AJV2017` | The policy declares a detector kind that isn't available | Choose a detector the site can run |

`AJV2007` isn't a preference you can override. Prompt injection runs on the
Expand Down
18 changes: 10 additions & 8 deletions src/content/docs/guards/remote-policies.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,16 @@ Every policy input is named and explicitly constructed. Plain values are
rejected; the SDK doesn't inspect the tool schema or discover arguments for
you.

| Exposure | Type | JavaScript / TypeScript | Python | Example value |
| -------- | ----------- | -------------------------------------- | --------------------------------- | ------------------------------------ |
| `SERVER` | String | `policyInput.server.string(value)` | `server_input.string(value)` | `"customer@example.com"` |
| `SERVER` | Boolean | `policyInput.server.boolean(value)` | `server_input.boolean(value)` | `true` |
| `SERVER` | Integer | `policyInput.server.integer(value)` | `server_input.integer(value)` | `3` |
| `SERVER` | Number | `policyInput.server.number(value)` | `server_input.number(value)` | `49.95` |
| `SERVER` | String list | `policyInput.server.stringList(value)` | `server_input.string_list(value)` | `["a@example.com", "b@example.com"]` |
| `LOCAL` | String | `policyInput.local.string(value)` | `local_input.string(value)` | `"Email body to inspect"` |
| Exposure | Type | JavaScript / TypeScript | Python | Go | Example value |
| -------- | ----------- | -------------------------------------- | --------------------------------- | ------------------------------------------- | ------------------------------------ |
| `SERVER` | String | `policyInput.server.string(value)` | `server_input.string(value)` | `arcjet.GuardPolicyServerString(value)` | `"customer@example.com"` |
| `SERVER` | Boolean | `policyInput.server.boolean(value)` | `server_input.boolean(value)` | `arcjet.GuardPolicyServerBoolean(value)` | `true` |
| `SERVER` | Integer | `policyInput.server.integer(value)` | `server_input.integer(value)` | `arcjet.GuardPolicyServerInteger(value)` | `3` |
| `SERVER` | Number | `policyInput.server.number(value)` | `server_input.number(value)` | `arcjet.GuardPolicyServerNumber(value)` | `49.95` |
| `SERVER` | String list | `policyInput.server.stringList(value)` | `server_input.string_list(value)` | `arcjet.GuardPolicyServerStringList(value)` | `["a@example.com", "b@example.com"]` |
| `LOCAL` | String | `policyInput.local.string(value)` | `local_input.string(value)` | `arcjet.GuardPolicyLocalString(value)` | `"Email body to inspect"` |

In Go, an integer input takes an `int64` and a number input takes a `float64`.

An email policy can receive a selected recipient, the trusted allow list to
compare it with, and a message body that stays local:
Expand Down
2 changes: 1 addition & 1 deletion src/content/docs/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ that follow, and you can start with any of them.
<Link.Card
title="Enforce"
href="/guards/quick-start"
description="Put an ALLOW or DENY decision in front of every tool call, in your own agents through the SDKs or in Claude Code, Copilot, Codex, and Cursor through the hooks they already fire."
description="Put an ALLOW or DENY decision in front of every tool call, in your own agents through the SDKs or in Claude Code, Copilot, Codex, Cursor, and Muse Code through the hooks they already fire."
/>
<Link.Card
title="Audit"
Expand Down
5 changes: 3 additions & 2 deletions src/content/docs/mcp-server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -216,8 +216,9 @@ Console compile and publish through one implementation. A typical flow:
4. Call `put-guard-policy` to publish. A live rule can't publish without at
least one stored test.

A policy that guards a coding agent declares what it executes on, Tool call
or Prompt, and the summary reports that as `executeOn`. Its inputs are the
A policy that guards a coding agent declares what it executes on – any
combination of Tool call, Prompt, and Model switch – and the summary reports
that as `executeOn`. Its inputs are the
fixed coding agent contract, so copy a starter policy from
<Link.Page href="/coding-agents/policies">Coding agent policies</Link.Page>
rather than declaring inputs by hand. Publishing it is what turns it on.
Expand Down
4 changes: 2 additions & 2 deletions src/content/docs/observe.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -229,7 +229,7 @@ activity with no decision beside it is an action nothing enforced. That gap is
the point of the view. Use it to find the actions worth guarding, then add an
enforcement point and a policy for each, or install the
<Link.Page href="/coding-agents">coding agent hooks</Link.Page> where the
sessions are Claude Code, Copilot, Codex, or Cursor.
sessions are Claude Code, Copilot, Codex, Cursor, or Muse Code.

## Data handling

Expand All @@ -250,7 +250,7 @@ For what Arcjet retains and for how long, see the
## Related

- <Link.Page href="/coding-agents">Secure coding agents</Link.Page> – enforce
policy on Claude Code, Copilot, Codex, and Cursor tool calls
policy on Claude Code, Copilot, Codex, Cursor, and Muse Code tool calls
- <Link.Page href="/coding-agents/block-personal-accounts">Block personal coding agent accounts</Link.Page> –
network and MDM restrictions so personal sessions don't reach ingest
- <Link.Page href="/guards">Agent guards</Link.Page> – enforce a policy before
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading