| 160 | }; |
| 161 | |
| 162 | const setSecretViaBrowserBoundary = async ( |
| 163 | ctx: CliContext, |
| 164 | browserBaseUrl: string, |
| 165 | scopeId: string, |
| 166 | input: { readonly id: string; readonly name: string; readonly value: string }, |
| 167 | ) => { |
| 168 | await postJson(`${browserBaseUrl}/api/scopes/${encodeURIComponent(scopeId)}/secrets`, input); |
| 169 | const status = toolData<{ readonly status: "resolved" | "missing" }>( |
| 170 | parseJsonOutput( |
| 171 | await callTool(ctx, ["executor", "coreTools", "secrets", "status"], { id: input.id }), |
| 172 | ), |
| 173 | ); |
| 174 | assert(status.status === "resolved", `Secret ${input.id} was not resolved`); |
| 175 | }; |
| 176 | |
| 177 | const runSmoke = async (oauth: OAuthTestServerShape, graph: GraphqlTestServerShape) => { |
| 178 | const root = await mkdtemp(join(tmpdir(), "executor-agent-config-smoke-")); |