(input: {
readonly integration: string;
readonly slug: string;
readonly clientId: string;
readonly tokenUrl: string;
})
| 92 | // the boundary does with the excess field (drop or reject), the secret VALUE |
| 93 | // must not appear anywhere in the agent-visible result. |
| 94 | const smuggleSecretCode = (input: { |
| 95 | readonly integration: string; |
| 96 | readonly slug: string; |
| 97 | readonly clientId: string; |
| 98 | readonly tokenUrl: string; |
| 99 | }) => ` |
| 100 | const handoff = await tools.executor.coreTools.oauth.clients.createHandoff({ |
| 101 | integration: ${JSON.stringify(input.integration)}, |
| 102 | slug: ${JSON.stringify(input.slug)}, |
| 103 | grant: "client_credentials", |
| 104 | clientId: ${JSON.stringify(input.clientId)}, |
| 105 | tokenUrl: ${JSON.stringify(input.tokenUrl)}, |
| 106 | clientSecret: ${JSON.stringify(SMUGGLED_SECRET)}, |
| 107 | }); |
| 108 | return JSON.stringify(handoff); |
| 109 | `; |
| 110 | |
| 111 | scenario( |
| 112 | "OAuth client · createHandoff returns a secret-free deep link and is not approval-gated", |
no outgoing calls
no test coverage detected