@managoat/fountain-sdk 1.27.0 → 1.29.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/client.d.ts +28 -6
- package/dist/client.js +28 -5
- package/dist/client.js.map +1 -1
- package/dist/generated/openapi.d.ts +1025 -75
- package/dist/http.d.ts +1 -1
- package/dist/http.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schemas.d.ts +4 -0
- package/dist/types.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1306,6 +1306,8 @@ export interface paths {
|
|
|
1306
1306
|
* @description Answers a `session/request_permission` the agent is blocked on (#940). The request and its options arrive as a `permission_request` block on the conversation's event stream; `option_id` must be one of the `optionId` values that block carried. Never send an option the agent did not offer.
|
|
1307
1307
|
*
|
|
1308
1308
|
* First answer wins: another attached client, the timeout, or the turn ending may already have resolved it, and all of those return 409. The resolution appears on the stream as a `request` stage event with state `done`.
|
|
1309
|
+
*
|
|
1310
|
+
* A request that outlived its turn (#1635) is answered here too. The agent ended that turn with stop reason `waiting`, so the conversation is idle and the sandbox may be suspended; GET /api/conversations/{id} lists such requests as `pending_requests`. Answering one resolves it and opens a new turn carrying the request id and the option, which wakes the sandbox.
|
|
1309
1311
|
*/
|
|
1310
1312
|
post: operations["FountainWeb.ConversationController.answer_request"];
|
|
1311
1313
|
delete?: never;
|
|
@@ -1538,6 +1540,55 @@ export interface paths {
|
|
|
1538
1540
|
patch?: never;
|
|
1539
1541
|
trace?: never;
|
|
1540
1542
|
};
|
|
1543
|
+
"/api/oauth/clients": {
|
|
1544
|
+
parameters: {
|
|
1545
|
+
query?: never;
|
|
1546
|
+
header?: never;
|
|
1547
|
+
path?: never;
|
|
1548
|
+
cookie?: never;
|
|
1549
|
+
};
|
|
1550
|
+
/**
|
|
1551
|
+
* List OAuth clients
|
|
1552
|
+
* @description The OAuth clients this account registered. Each one is in development mode until an operator publishes it, which means it signs in its owner and refuses every other account.
|
|
1553
|
+
*/
|
|
1554
|
+
get: operations["FountainWeb.OAuthClientController.index"];
|
|
1555
|
+
put?: never;
|
|
1556
|
+
/**
|
|
1557
|
+
* Register an OAuth client
|
|
1558
|
+
* @description Register an app that can offer "Sign in with Fountain". The response carries the generated `client_id` to put in the app. Redirect URIs match exactly, must be https unless they are loopback, and a loopback URI matches on any port. The client starts in development mode, so it signs in nobody but you. A sandbox's public HTTPS URL is valid.
|
|
1559
|
+
*/
|
|
1560
|
+
post: operations["FountainWeb.OAuthClientController.create"];
|
|
1561
|
+
delete?: never;
|
|
1562
|
+
options?: never;
|
|
1563
|
+
head?: never;
|
|
1564
|
+
patch?: never;
|
|
1565
|
+
trace?: never;
|
|
1566
|
+
};
|
|
1567
|
+
"/api/oauth/clients/{id}": {
|
|
1568
|
+
parameters: {
|
|
1569
|
+
query?: never;
|
|
1570
|
+
header?: never;
|
|
1571
|
+
path?: never;
|
|
1572
|
+
cookie?: never;
|
|
1573
|
+
};
|
|
1574
|
+
/** Get an OAuth client */
|
|
1575
|
+
get: operations["FountainWeb.OAuthClientController.show"];
|
|
1576
|
+
put?: never;
|
|
1577
|
+
post?: never;
|
|
1578
|
+
/**
|
|
1579
|
+
* Unregister an OAuth client
|
|
1580
|
+
* @description Deleting a client stops new sign-ins through it. Keys it already issued are ordinary API keys and outlive it — revoke those under the API keys endpoint. A published client can only be removed by an operator, because every account signs in through it.
|
|
1581
|
+
*/
|
|
1582
|
+
delete: operations["FountainWeb.OAuthClientController.delete"];
|
|
1583
|
+
options?: never;
|
|
1584
|
+
head?: never;
|
|
1585
|
+
/**
|
|
1586
|
+
* Change an OAuth client
|
|
1587
|
+
* @description Rename the client or replace its redirect URIs. `client_id` never changes. Publishing is not a self-serve operation, and a published client can only be changed by an operator.
|
|
1588
|
+
*/
|
|
1589
|
+
patch: operations["FountainWeb.OAuthClientController.update"];
|
|
1590
|
+
trace?: never;
|
|
1591
|
+
};
|
|
1541
1592
|
"/api/oauth/revoke": {
|
|
1542
1593
|
parameters: {
|
|
1543
1594
|
query?: never;
|
|
@@ -1638,6 +1689,50 @@ export interface paths {
|
|
|
1638
1689
|
patch?: never;
|
|
1639
1690
|
trace?: never;
|
|
1640
1691
|
};
|
|
1692
|
+
"/api/sandbox-queue": {
|
|
1693
|
+
parameters: {
|
|
1694
|
+
query?: never;
|
|
1695
|
+
header?: never;
|
|
1696
|
+
path?: never;
|
|
1697
|
+
cookie?: never;
|
|
1698
|
+
};
|
|
1699
|
+
/**
|
|
1700
|
+
* List queued sandbox requests
|
|
1701
|
+
* @description The caller's waiting requests, oldest first, each with its one-based position. Only requests that are still waiting appear here. One the drainer has already claimed is not listed, and neither is one that finished; read either by id instead.
|
|
1702
|
+
*/
|
|
1703
|
+
get: operations["FountainWeb.SandboxQueueController.index"];
|
|
1704
|
+
put?: never;
|
|
1705
|
+
post?: never;
|
|
1706
|
+
delete?: never;
|
|
1707
|
+
options?: never;
|
|
1708
|
+
head?: never;
|
|
1709
|
+
patch?: never;
|
|
1710
|
+
trace?: never;
|
|
1711
|
+
};
|
|
1712
|
+
"/api/sandbox-queue/{id}": {
|
|
1713
|
+
parameters: {
|
|
1714
|
+
query?: never;
|
|
1715
|
+
header?: never;
|
|
1716
|
+
path?: never;
|
|
1717
|
+
cookie?: never;
|
|
1718
|
+
};
|
|
1719
|
+
/**
|
|
1720
|
+
* Get a sandbox request
|
|
1721
|
+
* @description The request's current status. `conversation_id` is set once it started; `error` says why if it failed. A request nobody else owns reads as 404.
|
|
1722
|
+
*/
|
|
1723
|
+
get: operations["FountainWeb.SandboxQueueController.show"];
|
|
1724
|
+
put?: never;
|
|
1725
|
+
post?: never;
|
|
1726
|
+
/**
|
|
1727
|
+
* Cancel a queued sandbox request
|
|
1728
|
+
* @description Gives up a request that is still waiting. A request the drainer has already claimed reads as 404 rather than being cancelled out from under a start in flight.
|
|
1729
|
+
*/
|
|
1730
|
+
delete: operations["FountainWeb.SandboxQueueController.delete"];
|
|
1731
|
+
options?: never;
|
|
1732
|
+
head?: never;
|
|
1733
|
+
patch?: never;
|
|
1734
|
+
trace?: never;
|
|
1735
|
+
};
|
|
1641
1736
|
"/api/sandboxes": {
|
|
1642
1737
|
parameters: {
|
|
1643
1738
|
query?: never;
|
|
@@ -1708,7 +1803,7 @@ export interface paths {
|
|
|
1708
1803
|
};
|
|
1709
1804
|
/**
|
|
1710
1805
|
* Read a file on a sandbox
|
|
1711
|
-
* @description The bytes of one file, redacted: every value of the sandbox's environment and vault is replaced with `[REDACTED]`, as in the transcript. `content` is the text when it is valid UTF-8 (`encoding: utf-8`) and base64 otherwise (`encoding: base64`). `size` is the whole file; `truncated` says whether `content`
|
|
1806
|
+
* @description The bytes of one file, redacted: every value of the sandbox's environment and vault is replaced with `[REDACTED]`, as in the transcript. `content` is the text when it is valid UTF-8 (`encoding: utf-8`) and base64 otherwise (`encoding: base64`). `size` is the whole file; `truncated` says whether `content` is short of it, which happens when the file is longer than `max_bytes` and also when redaction grows what was read past that cap. Full scope.
|
|
1712
1807
|
*/
|
|
1713
1808
|
get: operations["FountainWeb.SandboxFilesController.show"];
|
|
1714
1809
|
put?: never;
|
|
@@ -1739,6 +1834,26 @@ export interface paths {
|
|
|
1739
1834
|
patch?: never;
|
|
1740
1835
|
trace?: never;
|
|
1741
1836
|
};
|
|
1837
|
+
"/api/sandboxes/{sandbox_id}/git-status": {
|
|
1838
|
+
parameters: {
|
|
1839
|
+
query?: never;
|
|
1840
|
+
header?: never;
|
|
1841
|
+
path?: never;
|
|
1842
|
+
cookie?: never;
|
|
1843
|
+
};
|
|
1844
|
+
/**
|
|
1845
|
+
* git status on a sandbox
|
|
1846
|
+
* @description `git status` of the repository containing `path` (default: the agent's working directory), one entry per changed path. This is the view that shows a file the agent created and never staged: `/diff` compares tracked content, so an untracked file is invisible to it whatever flags it is given. Entries cover the whole repository whatever `path` names inside it, and each entry's `path` is relative to `repo_root`. `index` and `worktree` are git's two porcelain columns read separately, so a file staged and then edited again reports a state in both; an untracked file reads `untracked` in both. `renamed_from` is set only where that side is a rename or a copy. `branch` is null on a detached HEAD. A directory outside any repository is `422 not_a_repository`. Full scope.
|
|
1847
|
+
*/
|
|
1848
|
+
get: operations["FountainWeb.SandboxFilesController.git_status"];
|
|
1849
|
+
put?: never;
|
|
1850
|
+
post?: never;
|
|
1851
|
+
delete?: never;
|
|
1852
|
+
options?: never;
|
|
1853
|
+
head?: never;
|
|
1854
|
+
patch?: never;
|
|
1855
|
+
trace?: never;
|
|
1856
|
+
};
|
|
1742
1857
|
"/api/search": {
|
|
1743
1858
|
parameters: {
|
|
1744
1859
|
query?: never;
|
|
@@ -2615,9 +2730,12 @@ export interface components {
|
|
|
2615
2730
|
model: string | null;
|
|
2616
2731
|
name: string;
|
|
2617
2732
|
/** @description Per-tool permission policy: a map of key to verdict, plus an optional "default" key. A key is matched against the tool card's title first and then ACP's kind (execute, edit, read, fetch, …); prefer a kind, because claude titles a tool call with the command it is about to run. Unset keys fall back to the default, and an unset default is auto_allow — today's behaviour. "ask" holds the tool until a human answers it on the conversation stream, and denies if nobody does before the timeout. A runtime that never asks (opencode) refuses anything stricter than auto_allow with 422 permission_policy_unenforceable. */
|
|
2618
|
-
permission_policy?: {
|
|
2619
|
-
|
|
2620
|
-
|
|
2733
|
+
permission_policy?: ({
|
|
2734
|
+
/** @description Seconds a permission request that outlived its turn waits before it is denied (#1635). Names no tool, so it is the one key whose value is a number rather than a verdict, which is why the value schema below is a union. Absent leaves the global ask timeout. A request may shorten it with `_meta.fountain.timeout` on its own session/request_permission, and may not lengthen it. A launch may only shorten what the agent set, or the global ask timeout where the agent set nothing. Capped at a year, which is where the deadline stops fitting in a timestamp rather than a limit on how long a wait is useful. */
|
|
2735
|
+
ask_timeout?: number;
|
|
2736
|
+
} & {
|
|
2737
|
+
[key: string]: ("auto_allow" | "ask" | "auto_deny") | number;
|
|
2738
|
+
}) | null;
|
|
2621
2739
|
/** @enum {string} */
|
|
2622
2740
|
runtime: "claude" | "codex" | "gemini" | "opencode" | "acp" | "fountain-fixture";
|
|
2623
2741
|
/** @description The command the acp runtime launches inside the sandbox, as a shell line resolved there (for example `chant acp`). Required when runtime is acp, and rejected on every other runtime, which resolves its own executable. A free string by design: it runs under the same isolation as an environment's setup script. */
|
|
@@ -2670,9 +2788,12 @@ export interface components {
|
|
|
2670
2788
|
model?: string | null;
|
|
2671
2789
|
name: string;
|
|
2672
2790
|
/** @description Per-tool permission policy: a map of key to verdict, plus an optional "default" key. A key is matched against the tool card's title first and then ACP's kind (execute, edit, read, fetch, …); prefer a kind, because claude titles a tool call with the command it is about to run. Unset keys fall back to the default, and an unset default is auto_allow. "ask" holds the tool until a human answers it on the conversation stream, and denies if nobody does before the timeout. A conversation may narrow this at launch, never widen it. A runtime that never asks (opencode) refuses anything stricter than auto_allow with 422 permission_policy_unenforceable. */
|
|
2673
|
-
permission_policy?: {
|
|
2674
|
-
|
|
2675
|
-
|
|
2791
|
+
permission_policy?: ({
|
|
2792
|
+
/** @description Seconds a permission request that outlived its turn waits before it is denied (#1635). Names no tool, so it is the one key whose value is a number rather than a verdict, which is why the value schema below is a union. Absent leaves the global ask timeout. A request may shorten it with `_meta.fountain.timeout` on its own session/request_permission, and may not lengthen it. A launch may only shorten what the agent set, or the global ask timeout where the agent set nothing. Capped at a year, which is where the deadline stops fitting in a timestamp rather than a limit on how long a wait is useful. */
|
|
2793
|
+
ask_timeout?: number;
|
|
2794
|
+
} & {
|
|
2795
|
+
[key: string]: ("auto_allow" | "ask" | "auto_deny") | number;
|
|
2796
|
+
}) | null;
|
|
2676
2797
|
/** @enum {string} */
|
|
2677
2798
|
runtime: "claude" | "codex" | "gemini" | "opencode" | "acp" | "fountain-fixture";
|
|
2678
2799
|
/** @description The command the acp runtime launches inside the sandbox, as a shell line resolved there (for example `chant acp`). Required when runtime is acp, and rejected on every other runtime, which resolves its own executable. A free string by design: it runs under the same isolation as an environment's setup script. */
|
|
@@ -2722,9 +2843,12 @@ export interface components {
|
|
|
2722
2843
|
model?: string | null;
|
|
2723
2844
|
name?: string;
|
|
2724
2845
|
/** @description Per-tool permission policy: a map of key to verdict, plus an optional "default" key. A key is matched against the tool card's title first and then ACP's kind (execute, edit, read, fetch, …); prefer a kind, because claude titles a tool call with the command it is about to run. Unset keys fall back to the default, and an unset default is auto_allow. "ask" holds the tool until a human answers it on the conversation stream, and denies if nobody does before the timeout. A conversation may narrow this at launch, never widen it. A runtime that never asks (opencode) refuses anything stricter than auto_allow with 422 permission_policy_unenforceable. */
|
|
2725
|
-
permission_policy?: {
|
|
2726
|
-
|
|
2727
|
-
|
|
2846
|
+
permission_policy?: ({
|
|
2847
|
+
/** @description Seconds a permission request that outlived its turn waits before it is denied (#1635). Names no tool, so it is the one key whose value is a number rather than a verdict, which is why the value schema below is a union. Absent leaves the global ask timeout. A request may shorten it with `_meta.fountain.timeout` on its own session/request_permission, and may not lengthen it. A launch may only shorten what the agent set, or the global ask timeout where the agent set nothing. Capped at a year, which is where the deadline stops fitting in a timestamp rather than a limit on how long a wait is useful. */
|
|
2848
|
+
ask_timeout?: number;
|
|
2849
|
+
} & {
|
|
2850
|
+
[key: string]: ("auto_allow" | "ask" | "auto_deny") | number;
|
|
2851
|
+
}) | null;
|
|
2728
2852
|
/** @enum {string} */
|
|
2729
2853
|
runtime?: "claude" | "codex" | "gemini" | "opencode" | "acp" | "fountain-fixture";
|
|
2730
2854
|
/** @description The command the acp runtime launches inside the sandbox, as a shell line resolved there (for example `chant acp`). Required when runtime is acp, and rejected on every other runtime, which resolves its own executable. A free string by design: it runs under the same isolation as an environment's setup script. */
|
|
@@ -3540,10 +3664,15 @@ export interface components {
|
|
|
3540
3664
|
last_read_at?: string | null;
|
|
3541
3665
|
/** Format: uuid */
|
|
3542
3666
|
parent_conversation_id?: string | null;
|
|
3667
|
+
/** @description Permission requests that outlived a turn and are still waiting for an answer (#1635). Served on GET /api/conversations/{id} only; absent from the list and from the create response. */
|
|
3668
|
+
pending_requests?: components["schemas"]["PendingPermissionRequest"][];
|
|
3543
3669
|
/** @description The per-launch permission override this conversation was started with, or null if it had none. The policy actually in force is this merged with the agent's, taking the stricter of the two per tool. */
|
|
3544
|
-
permission_policy?: {
|
|
3545
|
-
|
|
3546
|
-
|
|
3670
|
+
permission_policy?: ({
|
|
3671
|
+
/** @description Seconds a permission request that outlived its turn waits before it is denied (#1635). Names no tool, so it is the one key whose value is a number rather than a verdict, which is why the value schema below is a union. Absent leaves the global ask timeout. A request may shorten it with `_meta.fountain.timeout` on its own session/request_permission, and may not lengthen it. A launch may only shorten what the agent set, or the global ask timeout where the agent set nothing. Capped at a year, which is where the deadline stops fitting in a timestamp rather than a limit on how long a wait is useful. */
|
|
3672
|
+
ask_timeout?: number;
|
|
3673
|
+
} & {
|
|
3674
|
+
[key: string]: ("auto_allow" | "ask" | "auto_deny") | number;
|
|
3675
|
+
}) | null;
|
|
3547
3676
|
/** @enum {string} */
|
|
3548
3677
|
runtime: "claude" | "codex" | "gemini" | "opencode" | "acp" | "fountain-fixture";
|
|
3549
3678
|
runtime_session_id?: string | null;
|
|
@@ -3583,18 +3712,23 @@ export interface components {
|
|
|
3583
3712
|
environment_id?: string | null;
|
|
3584
3713
|
/** @description With channel_id: skip the resume and open a new conversation (201), which then becomes the channel's binding. Sent by a chat harness relaying its owner's rotate command. Ignored without channel_id. */
|
|
3585
3714
|
fresh?: boolean | null;
|
|
3586
|
-
/** @description Optional images to attach to the initial prompt. */
|
|
3715
|
+
/** @description Optional images to attach to the initial prompt. They require that prompt: images with no opening text are refused with 422 invalid_prompt, and an image whose media_type is unsupported or whose decoded bytes are empty or over the 10MB ceiling is refused with 422 invalid_images. Both refusals happen before a sandbox is reserved. */
|
|
3587
3716
|
images?: components["schemas"]["ImageInput"][] | null;
|
|
3588
3717
|
/** @description Key/value strings to stamp on the conversation. At most 32 entries; a key is at most 64 bytes and a value at most 256 bytes, and a 422 names the offending key under `errors.labels`. With channel_id, a resume merges these into the conversation it hands back rather than dropping them. */
|
|
3589
3718
|
labels?: {
|
|
3590
3719
|
[key: string]: string;
|
|
3591
3720
|
} | null;
|
|
3592
3721
|
/** @description Per-launch permission override (#939). Keys are matched against the tool card's title first and then ACP's kind (execute, edit, read, fetch, …); "default" covers the rest. Prefer a kind: claude titles a tool call with the command it is about to run, so a title matches one invocation only. Merged with the agent's own policy, taking the stricter of the two. It may only narrow: a policy that would loosen any tool is refused with 422 permission_policy_widens rather than silently clamped, and one the runtime never consults is refused with 422 permission_policy_unenforceable. */
|
|
3593
|
-
permission_policy?: {
|
|
3594
|
-
|
|
3595
|
-
|
|
3596
|
-
|
|
3722
|
+
permission_policy?: ({
|
|
3723
|
+
/** @description Seconds a permission request that outlived its turn waits before it is denied (#1635). Names no tool, so it is the one key whose value is a number rather than a verdict, which is why the value schema below is a union. Absent leaves the global ask timeout. A request may shorten it with `_meta.fountain.timeout` on its own session/request_permission, and may not lengthen it. A launch may only shorten what the agent set, or the global ask timeout where the agent set nothing. Capped at a year, which is where the deadline stops fitting in a timestamp rather than a limit on how long a wait is useful. */
|
|
3724
|
+
ask_timeout?: number;
|
|
3725
|
+
} & {
|
|
3726
|
+
[key: string]: ("auto_allow" | "ask" | "auto_deny") | number;
|
|
3727
|
+
}) | null;
|
|
3728
|
+
/** @description Optional first turn prompt. A launch may open with no prompt at all, but a prompt that is present must carry words: blank and whitespace-only text is refused with 422 invalid_prompt, before the launch reserves a sandbox. */
|
|
3597
3729
|
prompt?: string;
|
|
3730
|
+
/** @description When a fresh start reaches the tenant or the fleet concurrency ceiling, wait in the bounded sandbox queue and return 202 with a SandboxRequest instead of 429 or 503 (ADR 0042). Starts carrying images or an explicit sandbox_id are never queued, and a full queue keeps the immediate error. */
|
|
3731
|
+
queue?: boolean | null;
|
|
3598
3732
|
/**
|
|
3599
3733
|
* @description none omits the sandbox Fountain credential on provision and every wake. Requires a fresh ephemeral sandbox; unavailable on attach or policy-changing channel resume.
|
|
3600
3734
|
* @enum {string}
|
|
@@ -3997,6 +4131,56 @@ export interface components {
|
|
|
3997
4131
|
detail: string;
|
|
3998
4132
|
};
|
|
3999
4133
|
};
|
|
4134
|
+
/**
|
|
4135
|
+
* OAuthClient
|
|
4136
|
+
* @description A tenant-owned OAuth client. Unpublished clients are in development mode and can sign in only their owner. Their redirect origins are also admitted by CORS.
|
|
4137
|
+
*/
|
|
4138
|
+
OAuthClient: {
|
|
4139
|
+
/** @description The client_id sent to /oauth/authorize. */
|
|
4140
|
+
client_id: string;
|
|
4141
|
+
/** Format: date-time */
|
|
4142
|
+
created_at: string;
|
|
4143
|
+
/** Format: uuid */
|
|
4144
|
+
id: string;
|
|
4145
|
+
/** @description Shown on the consent page. */
|
|
4146
|
+
name: string;
|
|
4147
|
+
/** @description Origins derived from redirect_uris and admitted by CORS. A loopback origin is admitted on any port, not only the port shown here. */
|
|
4148
|
+
origins: string[];
|
|
4149
|
+
/** @description False means development mode with owner-only sign-in. */
|
|
4150
|
+
published: boolean;
|
|
4151
|
+
/** @description Exact match, except that an unpublished loopback URI matches on any port. */
|
|
4152
|
+
redirect_uris: string[];
|
|
4153
|
+
/** Format: date-time */
|
|
4154
|
+
updated_at: string;
|
|
4155
|
+
};
|
|
4156
|
+
/** OAuthClientListResponse */
|
|
4157
|
+
OAuthClientListResponse: {
|
|
4158
|
+
data: components["schemas"]["OAuthClient"][];
|
|
4159
|
+
};
|
|
4160
|
+
/**
|
|
4161
|
+
* OAuthClientRequest
|
|
4162
|
+
* @example {
|
|
4163
|
+
* "name": "Notes",
|
|
4164
|
+
* "redirect_uris": [
|
|
4165
|
+
* "https://abc123.sprites.app/callback",
|
|
4166
|
+
* "http://localhost:5173/callback"
|
|
4167
|
+
* ]
|
|
4168
|
+
* }
|
|
4169
|
+
*/
|
|
4170
|
+
OAuthClientRequest: {
|
|
4171
|
+
name: string;
|
|
4172
|
+
redirect_uris: string[];
|
|
4173
|
+
};
|
|
4174
|
+
/**
|
|
4175
|
+
* OAuthClientUpdateRequest
|
|
4176
|
+
* @example {
|
|
4177
|
+
* "name": "Notes for Fountain"
|
|
4178
|
+
* }
|
|
4179
|
+
*/
|
|
4180
|
+
OAuthClientUpdateRequest: {
|
|
4181
|
+
name?: string;
|
|
4182
|
+
redirect_uris?: string[];
|
|
4183
|
+
};
|
|
4000
4184
|
/** OAuthTokenRequest */
|
|
4001
4185
|
OAuthTokenRequest: {
|
|
4002
4186
|
client_id: string;
|
|
@@ -4056,6 +4240,28 @@ export interface components {
|
|
|
4056
4240
|
/** @description From the reset email. */
|
|
4057
4241
|
token: string;
|
|
4058
4242
|
};
|
|
4243
|
+
/**
|
|
4244
|
+
* PendingPermissionRequest
|
|
4245
|
+
* @description A permission request that outlived its turn (#1635). The agent ended the turn with stop reason `waiting` while this request was open, so the conversation is idle, the sandbox may be suspended, and the request is still waiting for an answer. Answer it at POST /api/conversations/{id}/requests/{request_id}, which resolves it and opens a new turn carrying the outcome to the agent.
|
|
4246
|
+
*/
|
|
4247
|
+
PendingPermissionRequest: {
|
|
4248
|
+
/** Format: date-time */
|
|
4249
|
+
asked_at?: string | null;
|
|
4250
|
+
/**
|
|
4251
|
+
* Format: date-time
|
|
4252
|
+
* @description When the request is denied for want of an answer. Set from the request's own `_meta.fountain.timeout`, else the policy's `ask_timeout`, else the global ask timeout.
|
|
4253
|
+
*/
|
|
4254
|
+
deadline?: string | null;
|
|
4255
|
+
/** @description The options the agent offered, verbatim. `option_id` must be one of these `optionId` values; an id from another runtime is refused. */
|
|
4256
|
+
options: {
|
|
4257
|
+
[key: string]: unknown;
|
|
4258
|
+
}[];
|
|
4259
|
+
request_id: string;
|
|
4260
|
+
/** @description The tool the agent asked about, as the transcript labels it. */
|
|
4261
|
+
tool?: string | null;
|
|
4262
|
+
/** Format: uuid */
|
|
4263
|
+
turn_id?: string;
|
|
4264
|
+
};
|
|
4059
4265
|
/** PermissionAnswerRequest */
|
|
4060
4266
|
PermissionAnswerRequest: {
|
|
4061
4267
|
/** @description One of the `optionId` values from the request's own `options` list, as carried on the `permission_request` block. An id the agent did not offer is refused (422 unknown_option) rather than forwarded. */
|
|
@@ -4211,6 +4417,26 @@ export interface components {
|
|
|
4211
4417
|
/** Format: uuid */
|
|
4212
4418
|
vault_id?: string | null;
|
|
4213
4419
|
};
|
|
4420
|
+
/**
|
|
4421
|
+
* SandboxChange
|
|
4422
|
+
* @description One path `git status` reports, relative to `repo_root` (ADR 0039). An untracked file reads `untracked` on both sides, which is what git reports for it and the one state a diff cannot show.
|
|
4423
|
+
*/
|
|
4424
|
+
SandboxChange: {
|
|
4425
|
+
/**
|
|
4426
|
+
* @description The staged side: what a commit would record.
|
|
4427
|
+
* @enum {string}
|
|
4428
|
+
*/
|
|
4429
|
+
index: "added" | "copied" | "deleted" | "ignored" | "modified" | "renamed" | "type_changed" | "unchanged" | "unmerged" | "untracked";
|
|
4430
|
+
/** @description Relative to `repo_root`. */
|
|
4431
|
+
path: string;
|
|
4432
|
+
/** @description The old path, when that side is a rename or a copy; null otherwise. */
|
|
4433
|
+
renamed_from?: string | null;
|
|
4434
|
+
/**
|
|
4435
|
+
* @description The unstaged side: what the disk holds beyond the index.
|
|
4436
|
+
* @enum {string}
|
|
4437
|
+
*/
|
|
4438
|
+
worktree: "added" | "copied" | "deleted" | "ignored" | "modified" | "renamed" | "type_changed" | "unchanged" | "unmerged" | "untracked";
|
|
4439
|
+
};
|
|
4214
4440
|
/**
|
|
4215
4441
|
* SandboxConversation
|
|
4216
4442
|
* @description A conversation on a sandbox, as the sandbox lists it.
|
|
@@ -4292,13 +4518,13 @@ export interface components {
|
|
|
4292
4518
|
diff: string;
|
|
4293
4519
|
/** @description The directory the diff was asked for, absolute. */
|
|
4294
4520
|
path: string;
|
|
4295
|
-
/** @description The revision diffed against, or null
|
|
4521
|
+
/** @description The revision diffed against, or null when the caller named none. */
|
|
4296
4522
|
ref?: string | null;
|
|
4297
4523
|
/** @description The repository's top-level directory. */
|
|
4298
4524
|
repo_root: string;
|
|
4299
4525
|
/** @description True when the index was diffed (`--cached`). */
|
|
4300
4526
|
staged: boolean;
|
|
4301
|
-
/** @description True when `diff`
|
|
4527
|
+
/** @description True when `diff` is not the whole diff: either it is longer than `max_bytes`, or redaction grew what was read past it. False means `diff` is everything. */
|
|
4302
4528
|
truncated: boolean;
|
|
4303
4529
|
};
|
|
4304
4530
|
/** SandboxDiffResponse */
|
|
@@ -4331,7 +4557,7 @@ export interface components {
|
|
|
4331
4557
|
path: string;
|
|
4332
4558
|
/** @description The whole file, in bytes. */
|
|
4333
4559
|
size: number;
|
|
4334
|
-
/** @description True when `content`
|
|
4560
|
+
/** @description True when `content` is not the whole file: either the file is longer than `max_bytes`, or redaction grew what was read past it. False means `content` is everything. */
|
|
4335
4561
|
truncated: boolean;
|
|
4336
4562
|
};
|
|
4337
4563
|
/** SandboxFileResponse */
|
|
@@ -4357,10 +4583,67 @@ export interface components {
|
|
|
4357
4583
|
SandboxListingResponse: {
|
|
4358
4584
|
data: components["schemas"]["SandboxListing"];
|
|
4359
4585
|
};
|
|
4586
|
+
/**
|
|
4587
|
+
* SandboxRequest
|
|
4588
|
+
* @description Work waiting for sandbox capacity (ADR 0042).
|
|
4589
|
+
*/
|
|
4590
|
+
SandboxRequest: {
|
|
4591
|
+
/** Format: uuid */
|
|
4592
|
+
agent_id: string;
|
|
4593
|
+
/**
|
|
4594
|
+
* Format: uuid
|
|
4595
|
+
* @description The conversation the request became, once it started.
|
|
4596
|
+
*/
|
|
4597
|
+
conversation_id?: string | null;
|
|
4598
|
+
error?: string | null;
|
|
4599
|
+
/** Format: uuid */
|
|
4600
|
+
id: string;
|
|
4601
|
+
/** Format: date-time */
|
|
4602
|
+
inserted_at?: string;
|
|
4603
|
+
/** @enum {string} */
|
|
4604
|
+
kind: "start" | "schedule_run";
|
|
4605
|
+
/** @description One-based place in the tenant's queue; null once it stops waiting. */
|
|
4606
|
+
position?: number | null;
|
|
4607
|
+
source?: string | null;
|
|
4608
|
+
/** @enum {string} */
|
|
4609
|
+
status: "queued" | "starting" | "started" | "cancelled" | "expired" | "failed";
|
|
4610
|
+
};
|
|
4611
|
+
/** SandboxRequestListResponse */
|
|
4612
|
+
SandboxRequestListResponse: {
|
|
4613
|
+
data: components["schemas"]["SandboxRequest"][];
|
|
4614
|
+
};
|
|
4615
|
+
/** SandboxRequestResponse */
|
|
4616
|
+
SandboxRequestResponse: {
|
|
4617
|
+
data: components["schemas"]["SandboxRequest"];
|
|
4618
|
+
};
|
|
4360
4619
|
/** SandboxResponse */
|
|
4361
4620
|
SandboxResponse: {
|
|
4362
4621
|
data: components["schemas"]["SandboxDetail"];
|
|
4363
4622
|
};
|
|
4623
|
+
/**
|
|
4624
|
+
* SandboxStatus
|
|
4625
|
+
* @description `git status` of a repository on a sandbox, one entry per changed path.
|
|
4626
|
+
*/
|
|
4627
|
+
SandboxStatus: {
|
|
4628
|
+
/** @description The checked-out branch, or null on a detached HEAD. */
|
|
4629
|
+
branch?: string | null;
|
|
4630
|
+
entries: components["schemas"]["SandboxChange"][];
|
|
4631
|
+
/** @description The directory the status was asked for, absolute. */
|
|
4632
|
+
path: string;
|
|
4633
|
+
/** @description The repository's top-level directory. */
|
|
4634
|
+
repo_root: string;
|
|
4635
|
+
/** @description True when the repository holds more changes than were returned. */
|
|
4636
|
+
truncated: boolean;
|
|
4637
|
+
/**
|
|
4638
|
+
* @description What was asked about untracked paths.
|
|
4639
|
+
* @enum {string}
|
|
4640
|
+
*/
|
|
4641
|
+
untracked: "normal" | "all" | "no";
|
|
4642
|
+
};
|
|
4643
|
+
/** SandboxStatusResponse */
|
|
4644
|
+
SandboxStatusResponse: {
|
|
4645
|
+
data: components["schemas"]["SandboxStatus"];
|
|
4646
|
+
};
|
|
4364
4647
|
/**
|
|
4365
4648
|
* SearchHit
|
|
4366
4649
|
* @description One search hit: what matched, and where to jump.
|
|
@@ -4806,6 +5089,8 @@ export interface components {
|
|
|
4806
5089
|
turn_number: number;
|
|
4807
5090
|
/** @description The end-of-turn token figure; null while the turn runs, when the runtime reported none, or on turns that predate the field. */
|
|
4808
5091
|
usage?: components["schemas"]["TurnUsage"] | null;
|
|
5092
|
+
/** @description The turn ended with a permission request still open (#1635): the agent answered with stop reason `waiting`, the turn is `completed` and the request is on the conversation as a `pending_requests` entry. */
|
|
5093
|
+
waiting?: boolean;
|
|
4809
5094
|
};
|
|
4810
5095
|
/** TurnListResponse */
|
|
4811
5096
|
TurnListResponse: {
|
|
@@ -10248,6 +10533,15 @@ export interface operations {
|
|
|
10248
10533
|
"application/json": components["schemas"]["ConversationResponse"];
|
|
10249
10534
|
};
|
|
10250
10535
|
};
|
|
10536
|
+
/** @description Queued for sandbox capacity */
|
|
10537
|
+
202: {
|
|
10538
|
+
headers: {
|
|
10539
|
+
[name: string]: unknown;
|
|
10540
|
+
};
|
|
10541
|
+
content: {
|
|
10542
|
+
"application/json": components["schemas"]["SandboxRequestResponse"];
|
|
10543
|
+
};
|
|
10544
|
+
};
|
|
10251
10545
|
/** @description Invalid request */
|
|
10252
10546
|
400: {
|
|
10253
10547
|
headers: {
|
|
@@ -10323,7 +10617,7 @@ export interface operations {
|
|
|
10323
10617
|
"application/json": components["schemas"]["UnprocessableEntityError"];
|
|
10324
10618
|
};
|
|
10325
10619
|
};
|
|
10326
|
-
/** @description
|
|
10620
|
+
/** @description Tenant concurrency cap reached */
|
|
10327
10621
|
429: {
|
|
10328
10622
|
headers: {
|
|
10329
10623
|
[name: string]: unknown;
|
|
@@ -10881,6 +11175,15 @@ export interface operations {
|
|
|
10881
11175
|
"application/json": components["schemas"]["PermissionAnswerResponse"];
|
|
10882
11176
|
};
|
|
10883
11177
|
};
|
|
11178
|
+
/** @description Busy */
|
|
11179
|
+
400: {
|
|
11180
|
+
headers: {
|
|
11181
|
+
[name: string]: unknown;
|
|
11182
|
+
};
|
|
11183
|
+
content: {
|
|
11184
|
+
"application/json": components["schemas"]["Error"];
|
|
11185
|
+
};
|
|
11186
|
+
};
|
|
10884
11187
|
/** @description Unauthorized */
|
|
10885
11188
|
401: {
|
|
10886
11189
|
headers: {
|
|
@@ -10890,7 +11193,16 @@ export interface operations {
|
|
|
10890
11193
|
"application/json": components["schemas"]["Error"];
|
|
10891
11194
|
};
|
|
10892
11195
|
};
|
|
10893
|
-
/** @description
|
|
11196
|
+
/** @description Insufficient credits */
|
|
11197
|
+
402: {
|
|
11198
|
+
headers: {
|
|
11199
|
+
[name: string]: unknown;
|
|
11200
|
+
};
|
|
11201
|
+
content: {
|
|
11202
|
+
"application/json": components["schemas"]["Error"];
|
|
11203
|
+
};
|
|
11204
|
+
};
|
|
11205
|
+
/** @description The sandbox may not answer */
|
|
10894
11206
|
403: {
|
|
10895
11207
|
headers: {
|
|
10896
11208
|
[name: string]: unknown;
|
|
@@ -10917,7 +11229,7 @@ export interface operations {
|
|
|
10917
11229
|
"application/json": components["schemas"]["NegotiationError"];
|
|
10918
11230
|
};
|
|
10919
11231
|
};
|
|
10920
|
-
/** @description Already resolved */
|
|
11232
|
+
/** @description Already resolved, or resolved but not delivered */
|
|
10921
11233
|
409: {
|
|
10922
11234
|
headers: {
|
|
10923
11235
|
[name: string]: unknown;
|
|
@@ -12122,7 +12434,7 @@ export interface operations {
|
|
|
12122
12434
|
};
|
|
12123
12435
|
};
|
|
12124
12436
|
};
|
|
12125
|
-
"FountainWeb.
|
|
12437
|
+
"FountainWeb.OAuthClientController.index": {
|
|
12126
12438
|
parameters: {
|
|
12127
12439
|
query?: never;
|
|
12128
12440
|
header?: never;
|
|
@@ -12131,14 +12443,16 @@ export interface operations {
|
|
|
12131
12443
|
};
|
|
12132
12444
|
requestBody?: never;
|
|
12133
12445
|
responses: {
|
|
12134
|
-
/** @description
|
|
12135
|
-
|
|
12446
|
+
/** @description Clients */
|
|
12447
|
+
200: {
|
|
12136
12448
|
headers: {
|
|
12137
12449
|
[name: string]: unknown;
|
|
12138
12450
|
};
|
|
12139
|
-
content
|
|
12451
|
+
content: {
|
|
12452
|
+
"application/json": components["schemas"]["OAuthClientListResponse"];
|
|
12453
|
+
};
|
|
12140
12454
|
};
|
|
12141
|
-
/** @description
|
|
12455
|
+
/** @description Missing or invalid key */
|
|
12142
12456
|
401: {
|
|
12143
12457
|
headers: {
|
|
12144
12458
|
[name: string]: unknown;
|
|
@@ -12147,7 +12461,7 @@ export interface operations {
|
|
|
12147
12461
|
"application/json": components["schemas"]["Error"];
|
|
12148
12462
|
};
|
|
12149
12463
|
};
|
|
12150
|
-
/** @description
|
|
12464
|
+
/** @description Insufficient scope */
|
|
12151
12465
|
403: {
|
|
12152
12466
|
headers: {
|
|
12153
12467
|
[name: string]: unknown;
|
|
@@ -12176,31 +12490,40 @@ export interface operations {
|
|
|
12176
12490
|
};
|
|
12177
12491
|
};
|
|
12178
12492
|
};
|
|
12179
|
-
"FountainWeb.
|
|
12493
|
+
"FountainWeb.OAuthClientController.create": {
|
|
12180
12494
|
parameters: {
|
|
12181
12495
|
query?: never;
|
|
12182
12496
|
header?: never;
|
|
12183
12497
|
path?: never;
|
|
12184
12498
|
cookie?: never;
|
|
12185
12499
|
};
|
|
12186
|
-
/** @description
|
|
12187
|
-
requestBody
|
|
12500
|
+
/** @description Client */
|
|
12501
|
+
requestBody: {
|
|
12188
12502
|
content: {
|
|
12189
|
-
"application/json": components["schemas"]["
|
|
12503
|
+
"application/json": components["schemas"]["OAuthClientRequest"];
|
|
12190
12504
|
};
|
|
12191
12505
|
};
|
|
12192
12506
|
responses: {
|
|
12193
|
-
/** @description
|
|
12194
|
-
|
|
12507
|
+
/** @description Client */
|
|
12508
|
+
201: {
|
|
12195
12509
|
headers: {
|
|
12196
12510
|
[name: string]: unknown;
|
|
12197
12511
|
};
|
|
12198
12512
|
content: {
|
|
12199
|
-
"application/json": components["schemas"]["
|
|
12513
|
+
"application/json": components["schemas"]["OAuthClient"];
|
|
12200
12514
|
};
|
|
12201
12515
|
};
|
|
12202
|
-
/** @description
|
|
12203
|
-
|
|
12516
|
+
/** @description Missing or invalid key */
|
|
12517
|
+
401: {
|
|
12518
|
+
headers: {
|
|
12519
|
+
[name: string]: unknown;
|
|
12520
|
+
};
|
|
12521
|
+
content: {
|
|
12522
|
+
"application/json": components["schemas"]["Error"];
|
|
12523
|
+
};
|
|
12524
|
+
};
|
|
12525
|
+
/** @description Insufficient scope */
|
|
12526
|
+
403: {
|
|
12204
12527
|
headers: {
|
|
12205
12528
|
[name: string]: unknown;
|
|
12206
12529
|
};
|
|
@@ -12217,24 +12540,45 @@ export interface operations {
|
|
|
12217
12540
|
"application/json": components["schemas"]["NegotiationError"];
|
|
12218
12541
|
};
|
|
12219
12542
|
};
|
|
12543
|
+
/** @description Validation error */
|
|
12544
|
+
422: {
|
|
12545
|
+
headers: {
|
|
12546
|
+
[name: string]: unknown;
|
|
12547
|
+
};
|
|
12548
|
+
content: {
|
|
12549
|
+
"application/json": components["schemas"]["Error"];
|
|
12550
|
+
};
|
|
12551
|
+
};
|
|
12552
|
+
/** @description Too Many Requests */
|
|
12553
|
+
429: {
|
|
12554
|
+
headers: {
|
|
12555
|
+
[name: string]: unknown;
|
|
12556
|
+
};
|
|
12557
|
+
content: {
|
|
12558
|
+
"application/json": components["schemas"]["Error"];
|
|
12559
|
+
};
|
|
12560
|
+
};
|
|
12220
12561
|
};
|
|
12221
12562
|
};
|
|
12222
|
-
"FountainWeb.
|
|
12563
|
+
"FountainWeb.OAuthClientController.show": {
|
|
12223
12564
|
parameters: {
|
|
12224
12565
|
query?: never;
|
|
12225
12566
|
header?: never;
|
|
12226
|
-
path
|
|
12567
|
+
path: {
|
|
12568
|
+
/** @description Client record id */
|
|
12569
|
+
id: string;
|
|
12570
|
+
};
|
|
12227
12571
|
cookie?: never;
|
|
12228
12572
|
};
|
|
12229
12573
|
requestBody?: never;
|
|
12230
12574
|
responses: {
|
|
12231
|
-
/** @description
|
|
12575
|
+
/** @description Client */
|
|
12232
12576
|
200: {
|
|
12233
12577
|
headers: {
|
|
12234
12578
|
[name: string]: unknown;
|
|
12235
12579
|
};
|
|
12236
12580
|
content: {
|
|
12237
|
-
"application/json": components["schemas"]["
|
|
12581
|
+
"application/json": components["schemas"]["OAuthClient"];
|
|
12238
12582
|
};
|
|
12239
12583
|
};
|
|
12240
12584
|
/** @description Missing or invalid key */
|
|
@@ -12246,7 +12590,7 @@ export interface operations {
|
|
|
12246
12590
|
"application/json": components["schemas"]["Error"];
|
|
12247
12591
|
};
|
|
12248
12592
|
};
|
|
12249
|
-
/** @description
|
|
12593
|
+
/** @description Insufficient scope */
|
|
12250
12594
|
403: {
|
|
12251
12595
|
headers: {
|
|
12252
12596
|
[name: string]: unknown;
|
|
@@ -12255,13 +12599,414 @@ export interface operations {
|
|
|
12255
12599
|
"application/json": components["schemas"]["Error"];
|
|
12256
12600
|
};
|
|
12257
12601
|
};
|
|
12258
|
-
/** @description No
|
|
12259
|
-
|
|
12602
|
+
/** @description No such client */
|
|
12603
|
+
404: {
|
|
12260
12604
|
headers: {
|
|
12261
12605
|
[name: string]: unknown;
|
|
12262
12606
|
};
|
|
12263
12607
|
content: {
|
|
12264
|
-
"application/json": components["schemas"]["
|
|
12608
|
+
"application/json": components["schemas"]["Error"];
|
|
12609
|
+
};
|
|
12610
|
+
};
|
|
12611
|
+
/** @description No acceptable representation */
|
|
12612
|
+
406: {
|
|
12613
|
+
headers: {
|
|
12614
|
+
[name: string]: unknown;
|
|
12615
|
+
};
|
|
12616
|
+
content: {
|
|
12617
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
12618
|
+
};
|
|
12619
|
+
};
|
|
12620
|
+
/** @description Too Many Requests */
|
|
12621
|
+
429: {
|
|
12622
|
+
headers: {
|
|
12623
|
+
[name: string]: unknown;
|
|
12624
|
+
};
|
|
12625
|
+
content: {
|
|
12626
|
+
"application/json": components["schemas"]["Error"];
|
|
12627
|
+
};
|
|
12628
|
+
};
|
|
12629
|
+
};
|
|
12630
|
+
};
|
|
12631
|
+
"FountainWeb.OAuthClientController.delete": {
|
|
12632
|
+
parameters: {
|
|
12633
|
+
query?: never;
|
|
12634
|
+
header?: never;
|
|
12635
|
+
path: {
|
|
12636
|
+
/** @description Client record id */
|
|
12637
|
+
id: string;
|
|
12638
|
+
};
|
|
12639
|
+
cookie?: never;
|
|
12640
|
+
};
|
|
12641
|
+
requestBody?: never;
|
|
12642
|
+
responses: {
|
|
12643
|
+
/** @description Deleted */
|
|
12644
|
+
204: {
|
|
12645
|
+
headers: {
|
|
12646
|
+
[name: string]: unknown;
|
|
12647
|
+
};
|
|
12648
|
+
content?: never;
|
|
12649
|
+
};
|
|
12650
|
+
/** @description Missing or invalid key */
|
|
12651
|
+
401: {
|
|
12652
|
+
headers: {
|
|
12653
|
+
[name: string]: unknown;
|
|
12654
|
+
};
|
|
12655
|
+
content: {
|
|
12656
|
+
"application/json": components["schemas"]["Error"];
|
|
12657
|
+
};
|
|
12658
|
+
};
|
|
12659
|
+
/** @description Insufficient scope */
|
|
12660
|
+
403: {
|
|
12661
|
+
headers: {
|
|
12662
|
+
[name: string]: unknown;
|
|
12663
|
+
};
|
|
12664
|
+
content: {
|
|
12665
|
+
"application/json": components["schemas"]["Error"];
|
|
12666
|
+
};
|
|
12667
|
+
};
|
|
12668
|
+
/** @description No such client */
|
|
12669
|
+
404: {
|
|
12670
|
+
headers: {
|
|
12671
|
+
[name: string]: unknown;
|
|
12672
|
+
};
|
|
12673
|
+
content: {
|
|
12674
|
+
"application/json": components["schemas"]["Error"];
|
|
12675
|
+
};
|
|
12676
|
+
};
|
|
12677
|
+
/** @description No acceptable representation */
|
|
12678
|
+
406: {
|
|
12679
|
+
headers: {
|
|
12680
|
+
[name: string]: unknown;
|
|
12681
|
+
};
|
|
12682
|
+
content: {
|
|
12683
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
12684
|
+
};
|
|
12685
|
+
};
|
|
12686
|
+
/** @description Refused */
|
|
12687
|
+
422: {
|
|
12688
|
+
headers: {
|
|
12689
|
+
[name: string]: unknown;
|
|
12690
|
+
};
|
|
12691
|
+
content: {
|
|
12692
|
+
"application/json": components["schemas"]["Error"];
|
|
12693
|
+
};
|
|
12694
|
+
};
|
|
12695
|
+
/** @description Too Many Requests */
|
|
12696
|
+
429: {
|
|
12697
|
+
headers: {
|
|
12698
|
+
[name: string]: unknown;
|
|
12699
|
+
};
|
|
12700
|
+
content: {
|
|
12701
|
+
"application/json": components["schemas"]["Error"];
|
|
12702
|
+
};
|
|
12703
|
+
};
|
|
12704
|
+
};
|
|
12705
|
+
};
|
|
12706
|
+
"FountainWeb.OAuthClientController.update": {
|
|
12707
|
+
parameters: {
|
|
12708
|
+
query?: never;
|
|
12709
|
+
header?: never;
|
|
12710
|
+
path: {
|
|
12711
|
+
/** @description Client record id */
|
|
12712
|
+
id: string;
|
|
12713
|
+
};
|
|
12714
|
+
cookie?: never;
|
|
12715
|
+
};
|
|
12716
|
+
/** @description Client changes */
|
|
12717
|
+
requestBody: {
|
|
12718
|
+
content: {
|
|
12719
|
+
"application/json": components["schemas"]["OAuthClientUpdateRequest"];
|
|
12720
|
+
};
|
|
12721
|
+
};
|
|
12722
|
+
responses: {
|
|
12723
|
+
/** @description Client */
|
|
12724
|
+
200: {
|
|
12725
|
+
headers: {
|
|
12726
|
+
[name: string]: unknown;
|
|
12727
|
+
};
|
|
12728
|
+
content: {
|
|
12729
|
+
"application/json": components["schemas"]["OAuthClient"];
|
|
12730
|
+
};
|
|
12731
|
+
};
|
|
12732
|
+
/** @description Missing or invalid key */
|
|
12733
|
+
401: {
|
|
12734
|
+
headers: {
|
|
12735
|
+
[name: string]: unknown;
|
|
12736
|
+
};
|
|
12737
|
+
content: {
|
|
12738
|
+
"application/json": components["schemas"]["Error"];
|
|
12739
|
+
};
|
|
12740
|
+
};
|
|
12741
|
+
/** @description Insufficient scope */
|
|
12742
|
+
403: {
|
|
12743
|
+
headers: {
|
|
12744
|
+
[name: string]: unknown;
|
|
12745
|
+
};
|
|
12746
|
+
content: {
|
|
12747
|
+
"application/json": components["schemas"]["Error"];
|
|
12748
|
+
};
|
|
12749
|
+
};
|
|
12750
|
+
/** @description No such client */
|
|
12751
|
+
404: {
|
|
12752
|
+
headers: {
|
|
12753
|
+
[name: string]: unknown;
|
|
12754
|
+
};
|
|
12755
|
+
content: {
|
|
12756
|
+
"application/json": components["schemas"]["Error"];
|
|
12757
|
+
};
|
|
12758
|
+
};
|
|
12759
|
+
/** @description No acceptable representation */
|
|
12760
|
+
406: {
|
|
12761
|
+
headers: {
|
|
12762
|
+
[name: string]: unknown;
|
|
12763
|
+
};
|
|
12764
|
+
content: {
|
|
12765
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
12766
|
+
};
|
|
12767
|
+
};
|
|
12768
|
+
/** @description Validation error */
|
|
12769
|
+
422: {
|
|
12770
|
+
headers: {
|
|
12771
|
+
[name: string]: unknown;
|
|
12772
|
+
};
|
|
12773
|
+
content: {
|
|
12774
|
+
"application/json": components["schemas"]["Error"];
|
|
12775
|
+
};
|
|
12776
|
+
};
|
|
12777
|
+
/** @description Too Many Requests */
|
|
12778
|
+
429: {
|
|
12779
|
+
headers: {
|
|
12780
|
+
[name: string]: unknown;
|
|
12781
|
+
};
|
|
12782
|
+
content: {
|
|
12783
|
+
"application/json": components["schemas"]["Error"];
|
|
12784
|
+
};
|
|
12785
|
+
};
|
|
12786
|
+
};
|
|
12787
|
+
};
|
|
12788
|
+
"FountainWeb.OAuthTokenController.revoke": {
|
|
12789
|
+
parameters: {
|
|
12790
|
+
query?: never;
|
|
12791
|
+
header?: never;
|
|
12792
|
+
path?: never;
|
|
12793
|
+
cookie?: never;
|
|
12794
|
+
};
|
|
12795
|
+
requestBody?: never;
|
|
12796
|
+
responses: {
|
|
12797
|
+
/** @description Revoked */
|
|
12798
|
+
204: {
|
|
12799
|
+
headers: {
|
|
12800
|
+
[name: string]: unknown;
|
|
12801
|
+
};
|
|
12802
|
+
content?: never;
|
|
12803
|
+
};
|
|
12804
|
+
/** @description Unauthorized */
|
|
12805
|
+
401: {
|
|
12806
|
+
headers: {
|
|
12807
|
+
[name: string]: unknown;
|
|
12808
|
+
};
|
|
12809
|
+
content: {
|
|
12810
|
+
"application/json": components["schemas"]["Error"];
|
|
12811
|
+
};
|
|
12812
|
+
};
|
|
12813
|
+
/** @description Forbidden */
|
|
12814
|
+
403: {
|
|
12815
|
+
headers: {
|
|
12816
|
+
[name: string]: unknown;
|
|
12817
|
+
};
|
|
12818
|
+
content: {
|
|
12819
|
+
"application/json": components["schemas"]["Error"];
|
|
12820
|
+
};
|
|
12821
|
+
};
|
|
12822
|
+
/** @description No acceptable representation */
|
|
12823
|
+
406: {
|
|
12824
|
+
headers: {
|
|
12825
|
+
[name: string]: unknown;
|
|
12826
|
+
};
|
|
12827
|
+
content: {
|
|
12828
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
12829
|
+
};
|
|
12830
|
+
};
|
|
12831
|
+
/** @description Too Many Requests */
|
|
12832
|
+
429: {
|
|
12833
|
+
headers: {
|
|
12834
|
+
[name: string]: unknown;
|
|
12835
|
+
};
|
|
12836
|
+
content: {
|
|
12837
|
+
"application/json": components["schemas"]["Error"];
|
|
12838
|
+
};
|
|
12839
|
+
};
|
|
12840
|
+
};
|
|
12841
|
+
};
|
|
12842
|
+
"FountainWeb.OAuthTokenController.token": {
|
|
12843
|
+
parameters: {
|
|
12844
|
+
query?: never;
|
|
12845
|
+
header?: never;
|
|
12846
|
+
path?: never;
|
|
12847
|
+
cookie?: never;
|
|
12848
|
+
};
|
|
12849
|
+
/** @description Token request */
|
|
12850
|
+
requestBody?: {
|
|
12851
|
+
content: {
|
|
12852
|
+
"application/json": components["schemas"]["OAuthTokenRequest"];
|
|
12853
|
+
};
|
|
12854
|
+
};
|
|
12855
|
+
responses: {
|
|
12856
|
+
/** @description Token */
|
|
12857
|
+
200: {
|
|
12858
|
+
headers: {
|
|
12859
|
+
[name: string]: unknown;
|
|
12860
|
+
};
|
|
12861
|
+
content: {
|
|
12862
|
+
"application/json": components["schemas"]["OAuthTokenResponse"];
|
|
12863
|
+
};
|
|
12864
|
+
};
|
|
12865
|
+
/** @description invalid_grant / unsupported_grant_type */
|
|
12866
|
+
400: {
|
|
12867
|
+
headers: {
|
|
12868
|
+
[name: string]: unknown;
|
|
12869
|
+
};
|
|
12870
|
+
content: {
|
|
12871
|
+
"application/json": components["schemas"]["Error"];
|
|
12872
|
+
};
|
|
12873
|
+
};
|
|
12874
|
+
/** @description No acceptable representation */
|
|
12875
|
+
406: {
|
|
12876
|
+
headers: {
|
|
12877
|
+
[name: string]: unknown;
|
|
12878
|
+
};
|
|
12879
|
+
content: {
|
|
12880
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
12881
|
+
};
|
|
12882
|
+
};
|
|
12883
|
+
};
|
|
12884
|
+
};
|
|
12885
|
+
"FountainWeb.RunnerController.index": {
|
|
12886
|
+
parameters: {
|
|
12887
|
+
query?: never;
|
|
12888
|
+
header?: never;
|
|
12889
|
+
path?: never;
|
|
12890
|
+
cookie?: never;
|
|
12891
|
+
};
|
|
12892
|
+
requestBody?: never;
|
|
12893
|
+
responses: {
|
|
12894
|
+
/** @description Runners */
|
|
12895
|
+
200: {
|
|
12896
|
+
headers: {
|
|
12897
|
+
[name: string]: unknown;
|
|
12898
|
+
};
|
|
12899
|
+
content: {
|
|
12900
|
+
"application/json": components["schemas"]["RunnerListResponse"];
|
|
12901
|
+
};
|
|
12902
|
+
};
|
|
12903
|
+
/** @description Missing or invalid key */
|
|
12904
|
+
401: {
|
|
12905
|
+
headers: {
|
|
12906
|
+
[name: string]: unknown;
|
|
12907
|
+
};
|
|
12908
|
+
content: {
|
|
12909
|
+
"application/json": components["schemas"]["Error"];
|
|
12910
|
+
};
|
|
12911
|
+
};
|
|
12912
|
+
/** @description Forbidden */
|
|
12913
|
+
403: {
|
|
12914
|
+
headers: {
|
|
12915
|
+
[name: string]: unknown;
|
|
12916
|
+
};
|
|
12917
|
+
content: {
|
|
12918
|
+
"application/json": components["schemas"]["Error"];
|
|
12919
|
+
};
|
|
12920
|
+
};
|
|
12921
|
+
/** @description No acceptable representation */
|
|
12922
|
+
406: {
|
|
12923
|
+
headers: {
|
|
12924
|
+
[name: string]: unknown;
|
|
12925
|
+
};
|
|
12926
|
+
content: {
|
|
12927
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
12928
|
+
};
|
|
12929
|
+
};
|
|
12930
|
+
/** @description Too Many Requests */
|
|
12931
|
+
429: {
|
|
12932
|
+
headers: {
|
|
12933
|
+
[name: string]: unknown;
|
|
12934
|
+
};
|
|
12935
|
+
content: {
|
|
12936
|
+
"application/json": components["schemas"]["Error"];
|
|
12937
|
+
};
|
|
12938
|
+
};
|
|
12939
|
+
};
|
|
12940
|
+
};
|
|
12941
|
+
"FountainWeb.RunnerController.connect": {
|
|
12942
|
+
parameters: {
|
|
12943
|
+
query: {
|
|
12944
|
+
/** @description The runner's name (lowercase, unique per account). */
|
|
12945
|
+
name: string;
|
|
12946
|
+
hostname?: string;
|
|
12947
|
+
os?: string;
|
|
12948
|
+
arch?: string;
|
|
12949
|
+
/** @description Daemon version. */
|
|
12950
|
+
version?: string;
|
|
12951
|
+
/** @description Sandbox root on the host. */
|
|
12952
|
+
root?: string;
|
|
12953
|
+
};
|
|
12954
|
+
header?: never;
|
|
12955
|
+
path?: never;
|
|
12956
|
+
cookie?: never;
|
|
12957
|
+
};
|
|
12958
|
+
requestBody?: never;
|
|
12959
|
+
responses: {
|
|
12960
|
+
/** @description Upgraded */
|
|
12961
|
+
101: {
|
|
12962
|
+
headers: {
|
|
12963
|
+
[name: string]: unknown;
|
|
12964
|
+
};
|
|
12965
|
+
content?: never;
|
|
12966
|
+
};
|
|
12967
|
+
/** @description Not a WebSocket upgrade, or a bad name */
|
|
12968
|
+
400: {
|
|
12969
|
+
headers: {
|
|
12970
|
+
[name: string]: unknown;
|
|
12971
|
+
};
|
|
12972
|
+
content: {
|
|
12973
|
+
"application/json": components["schemas"]["Error"];
|
|
12974
|
+
};
|
|
12975
|
+
};
|
|
12976
|
+
/** @description Missing or invalid key */
|
|
12977
|
+
401: {
|
|
12978
|
+
headers: {
|
|
12979
|
+
[name: string]: unknown;
|
|
12980
|
+
};
|
|
12981
|
+
content: {
|
|
12982
|
+
"application/json": components["schemas"]["Error"];
|
|
12983
|
+
};
|
|
12984
|
+
};
|
|
12985
|
+
/** @description The presented key lacks full scope */
|
|
12986
|
+
403: {
|
|
12987
|
+
headers: {
|
|
12988
|
+
[name: string]: unknown;
|
|
12989
|
+
};
|
|
12990
|
+
content: {
|
|
12991
|
+
"application/json": components["schemas"]["Error"];
|
|
12992
|
+
};
|
|
12993
|
+
};
|
|
12994
|
+
/** @description Runners are disabled on this instance */
|
|
12995
|
+
404: {
|
|
12996
|
+
headers: {
|
|
12997
|
+
[name: string]: unknown;
|
|
12998
|
+
};
|
|
12999
|
+
content: {
|
|
13000
|
+
"application/json": components["schemas"]["Error"];
|
|
13001
|
+
};
|
|
13002
|
+
};
|
|
13003
|
+
/** @description A runner with this name is already connected */
|
|
13004
|
+
409: {
|
|
13005
|
+
headers: {
|
|
13006
|
+
[name: string]: unknown;
|
|
13007
|
+
};
|
|
13008
|
+
content: {
|
|
13009
|
+
"application/json": components["schemas"]["Error"];
|
|
12265
13010
|
};
|
|
12266
13011
|
};
|
|
12267
13012
|
/** @description Too Many Requests */
|
|
@@ -12275,34 +13020,92 @@ export interface operations {
|
|
|
12275
13020
|
};
|
|
12276
13021
|
};
|
|
12277
13022
|
};
|
|
12278
|
-
"FountainWeb.RunnerController.
|
|
13023
|
+
"FountainWeb.RunnerController.delete": {
|
|
12279
13024
|
parameters: {
|
|
12280
|
-
query
|
|
12281
|
-
|
|
12282
|
-
|
|
12283
|
-
|
|
12284
|
-
|
|
12285
|
-
|
|
12286
|
-
|
|
12287
|
-
|
|
12288
|
-
|
|
12289
|
-
|
|
13025
|
+
query?: never;
|
|
13026
|
+
header?: never;
|
|
13027
|
+
path: {
|
|
13028
|
+
/** @description Runner id. */
|
|
13029
|
+
id: string;
|
|
13030
|
+
};
|
|
13031
|
+
cookie?: never;
|
|
13032
|
+
};
|
|
13033
|
+
requestBody?: never;
|
|
13034
|
+
responses: {
|
|
13035
|
+
/** @description Forgotten */
|
|
13036
|
+
204: {
|
|
13037
|
+
headers: {
|
|
13038
|
+
[name: string]: unknown;
|
|
13039
|
+
};
|
|
13040
|
+
content?: never;
|
|
13041
|
+
};
|
|
13042
|
+
/** @description Missing or invalid key */
|
|
13043
|
+
401: {
|
|
13044
|
+
headers: {
|
|
13045
|
+
[name: string]: unknown;
|
|
13046
|
+
};
|
|
13047
|
+
content: {
|
|
13048
|
+
"application/json": components["schemas"]["Error"];
|
|
13049
|
+
};
|
|
13050
|
+
};
|
|
13051
|
+
/** @description Forbidden */
|
|
13052
|
+
403: {
|
|
13053
|
+
headers: {
|
|
13054
|
+
[name: string]: unknown;
|
|
13055
|
+
};
|
|
13056
|
+
content: {
|
|
13057
|
+
"application/json": components["schemas"]["Error"];
|
|
13058
|
+
};
|
|
13059
|
+
};
|
|
13060
|
+
/** @description No such runner */
|
|
13061
|
+
404: {
|
|
13062
|
+
headers: {
|
|
13063
|
+
[name: string]: unknown;
|
|
13064
|
+
};
|
|
13065
|
+
content: {
|
|
13066
|
+
"application/json": components["schemas"]["Error"];
|
|
13067
|
+
};
|
|
13068
|
+
};
|
|
13069
|
+
/** @description No acceptable representation */
|
|
13070
|
+
406: {
|
|
13071
|
+
headers: {
|
|
13072
|
+
[name: string]: unknown;
|
|
13073
|
+
};
|
|
13074
|
+
content: {
|
|
13075
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
13076
|
+
};
|
|
13077
|
+
};
|
|
13078
|
+
/** @description Too Many Requests */
|
|
13079
|
+
429: {
|
|
13080
|
+
headers: {
|
|
13081
|
+
[name: string]: unknown;
|
|
13082
|
+
};
|
|
13083
|
+
content: {
|
|
13084
|
+
"application/json": components["schemas"]["Error"];
|
|
13085
|
+
};
|
|
12290
13086
|
};
|
|
13087
|
+
};
|
|
13088
|
+
};
|
|
13089
|
+
"FountainWeb.SandboxQueueController.index": {
|
|
13090
|
+
parameters: {
|
|
13091
|
+
query?: never;
|
|
12291
13092
|
header?: never;
|
|
12292
13093
|
path?: never;
|
|
12293
13094
|
cookie?: never;
|
|
12294
13095
|
};
|
|
12295
13096
|
requestBody?: never;
|
|
12296
13097
|
responses: {
|
|
12297
|
-
/** @description
|
|
12298
|
-
|
|
13098
|
+
/** @description Sandbox requests */
|
|
13099
|
+
200: {
|
|
12299
13100
|
headers: {
|
|
12300
13101
|
[name: string]: unknown;
|
|
12301
13102
|
};
|
|
12302
|
-
content
|
|
13103
|
+
content: {
|
|
13104
|
+
"application/json": components["schemas"]["SandboxRequestListResponse"];
|
|
13105
|
+
};
|
|
12303
13106
|
};
|
|
12304
|
-
/** @description
|
|
12305
|
-
|
|
13107
|
+
/** @description Unauthorized */
|
|
13108
|
+
401: {
|
|
12306
13109
|
headers: {
|
|
12307
13110
|
[name: string]: unknown;
|
|
12308
13111
|
};
|
|
@@ -12310,7 +13113,56 @@ export interface operations {
|
|
|
12310
13113
|
"application/json": components["schemas"]["Error"];
|
|
12311
13114
|
};
|
|
12312
13115
|
};
|
|
12313
|
-
/** @description
|
|
13116
|
+
/** @description Forbidden */
|
|
13117
|
+
403: {
|
|
13118
|
+
headers: {
|
|
13119
|
+
[name: string]: unknown;
|
|
13120
|
+
};
|
|
13121
|
+
content: {
|
|
13122
|
+
"application/json": components["schemas"]["Error"];
|
|
13123
|
+
};
|
|
13124
|
+
};
|
|
13125
|
+
/** @description No acceptable representation */
|
|
13126
|
+
406: {
|
|
13127
|
+
headers: {
|
|
13128
|
+
[name: string]: unknown;
|
|
13129
|
+
};
|
|
13130
|
+
content: {
|
|
13131
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
13132
|
+
};
|
|
13133
|
+
};
|
|
13134
|
+
/** @description Too Many Requests */
|
|
13135
|
+
429: {
|
|
13136
|
+
headers: {
|
|
13137
|
+
[name: string]: unknown;
|
|
13138
|
+
};
|
|
13139
|
+
content: {
|
|
13140
|
+
"application/json": components["schemas"]["Error"];
|
|
13141
|
+
};
|
|
13142
|
+
};
|
|
13143
|
+
};
|
|
13144
|
+
};
|
|
13145
|
+
"FountainWeb.SandboxQueueController.show": {
|
|
13146
|
+
parameters: {
|
|
13147
|
+
query?: never;
|
|
13148
|
+
header?: never;
|
|
13149
|
+
path: {
|
|
13150
|
+
id: string;
|
|
13151
|
+
};
|
|
13152
|
+
cookie?: never;
|
|
13153
|
+
};
|
|
13154
|
+
requestBody?: never;
|
|
13155
|
+
responses: {
|
|
13156
|
+
/** @description Sandbox request */
|
|
13157
|
+
200: {
|
|
13158
|
+
headers: {
|
|
13159
|
+
[name: string]: unknown;
|
|
13160
|
+
};
|
|
13161
|
+
content: {
|
|
13162
|
+
"application/json": components["schemas"]["SandboxRequestResponse"];
|
|
13163
|
+
};
|
|
13164
|
+
};
|
|
13165
|
+
/** @description Unauthorized */
|
|
12314
13166
|
401: {
|
|
12315
13167
|
headers: {
|
|
12316
13168
|
[name: string]: unknown;
|
|
@@ -12319,7 +13171,7 @@ export interface operations {
|
|
|
12319
13171
|
"application/json": components["schemas"]["Error"];
|
|
12320
13172
|
};
|
|
12321
13173
|
};
|
|
12322
|
-
/** @description
|
|
13174
|
+
/** @description Forbidden */
|
|
12323
13175
|
403: {
|
|
12324
13176
|
headers: {
|
|
12325
13177
|
[name: string]: unknown;
|
|
@@ -12328,7 +13180,7 @@ export interface operations {
|
|
|
12328
13180
|
"application/json": components["schemas"]["Error"];
|
|
12329
13181
|
};
|
|
12330
13182
|
};
|
|
12331
|
-
/** @description
|
|
13183
|
+
/** @description Not found */
|
|
12332
13184
|
404: {
|
|
12333
13185
|
headers: {
|
|
12334
13186
|
[name: string]: unknown;
|
|
@@ -12337,13 +13189,13 @@ export interface operations {
|
|
|
12337
13189
|
"application/json": components["schemas"]["Error"];
|
|
12338
13190
|
};
|
|
12339
13191
|
};
|
|
12340
|
-
/** @description
|
|
12341
|
-
|
|
13192
|
+
/** @description No acceptable representation */
|
|
13193
|
+
406: {
|
|
12342
13194
|
headers: {
|
|
12343
13195
|
[name: string]: unknown;
|
|
12344
13196
|
};
|
|
12345
13197
|
content: {
|
|
12346
|
-
"application/json": components["schemas"]["
|
|
13198
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
12347
13199
|
};
|
|
12348
13200
|
};
|
|
12349
13201
|
/** @description Too Many Requests */
|
|
@@ -12357,26 +13209,25 @@ export interface operations {
|
|
|
12357
13209
|
};
|
|
12358
13210
|
};
|
|
12359
13211
|
};
|
|
12360
|
-
"FountainWeb.
|
|
13212
|
+
"FountainWeb.SandboxQueueController.delete": {
|
|
12361
13213
|
parameters: {
|
|
12362
13214
|
query?: never;
|
|
12363
13215
|
header?: never;
|
|
12364
13216
|
path: {
|
|
12365
|
-
/** @description Runner id. */
|
|
12366
13217
|
id: string;
|
|
12367
13218
|
};
|
|
12368
13219
|
cookie?: never;
|
|
12369
13220
|
};
|
|
12370
13221
|
requestBody?: never;
|
|
12371
13222
|
responses: {
|
|
12372
|
-
/** @description
|
|
13223
|
+
/** @description Cancelled */
|
|
12373
13224
|
204: {
|
|
12374
13225
|
headers: {
|
|
12375
13226
|
[name: string]: unknown;
|
|
12376
13227
|
};
|
|
12377
13228
|
content?: never;
|
|
12378
13229
|
};
|
|
12379
|
-
/** @description
|
|
13230
|
+
/** @description Unauthorized */
|
|
12380
13231
|
401: {
|
|
12381
13232
|
headers: {
|
|
12382
13233
|
[name: string]: unknown;
|
|
@@ -12394,7 +13245,7 @@ export interface operations {
|
|
|
12394
13245
|
"application/json": components["schemas"]["Error"];
|
|
12395
13246
|
};
|
|
12396
13247
|
};
|
|
12397
|
-
/** @description
|
|
13248
|
+
/** @description Not found or no longer queued */
|
|
12398
13249
|
404: {
|
|
12399
13250
|
headers: {
|
|
12400
13251
|
[name: string]: unknown;
|
|
@@ -12648,7 +13499,7 @@ export interface operations {
|
|
|
12648
13499
|
path?: string;
|
|
12649
13500
|
/** @description Diff the index (`--cached`). */
|
|
12650
13501
|
staged?: boolean;
|
|
12651
|
-
/** @description A commit, branch or tag to diff against
|
|
13502
|
+
/** @description A commit, branch or tag to diff against. Without it the comparison is the working tree against the index, or with `staged`, the index against HEAD. */
|
|
12652
13503
|
ref?: string;
|
|
12653
13504
|
/** @description How many bytes to return, at most 4194304 (default 262144). `truncated` says whether the content stopped short. */
|
|
12654
13505
|
max_bytes?: number;
|
|
@@ -12940,6 +13791,105 @@ export interface operations {
|
|
|
12940
13791
|
};
|
|
12941
13792
|
};
|
|
12942
13793
|
};
|
|
13794
|
+
"FountainWeb.SandboxFilesController.git_status": {
|
|
13795
|
+
parameters: {
|
|
13796
|
+
query?: {
|
|
13797
|
+
/** @description In-sandbox path, absolute or relative to the agent's working directory (`/home/sprite` for claude and codex, `/tmp/gemini-workspace` and `/tmp/opencode-workspace` for the others). Confined to those directories: anything else is `422 path_outside_sandbox`. */
|
|
13798
|
+
path?: string;
|
|
13799
|
+
/** @description What to do about untracked paths: collapse an untracked directory to one entry (`normal`), list every file under it (`all`), or leave them out (`no`). */
|
|
13800
|
+
untracked?: "normal" | "all" | "no";
|
|
13801
|
+
};
|
|
13802
|
+
header?: never;
|
|
13803
|
+
path: {
|
|
13804
|
+
sandbox_id: string;
|
|
13805
|
+
};
|
|
13806
|
+
cookie?: never;
|
|
13807
|
+
};
|
|
13808
|
+
requestBody?: never;
|
|
13809
|
+
responses: {
|
|
13810
|
+
/** @description Status */
|
|
13811
|
+
200: {
|
|
13812
|
+
headers: {
|
|
13813
|
+
[name: string]: unknown;
|
|
13814
|
+
};
|
|
13815
|
+
content: {
|
|
13816
|
+
"application/json": components["schemas"]["SandboxStatusResponse"];
|
|
13817
|
+
};
|
|
13818
|
+
};
|
|
13819
|
+
/** @description Unauthorized */
|
|
13820
|
+
401: {
|
|
13821
|
+
headers: {
|
|
13822
|
+
[name: string]: unknown;
|
|
13823
|
+
};
|
|
13824
|
+
content: {
|
|
13825
|
+
"application/json": components["schemas"]["Error"];
|
|
13826
|
+
};
|
|
13827
|
+
};
|
|
13828
|
+
/** @description Insufficient scope */
|
|
13829
|
+
403: {
|
|
13830
|
+
headers: {
|
|
13831
|
+
[name: string]: unknown;
|
|
13832
|
+
};
|
|
13833
|
+
content: {
|
|
13834
|
+
"application/json": components["schemas"]["Error"];
|
|
13835
|
+
};
|
|
13836
|
+
};
|
|
13837
|
+
/** @description No such sandbox or path */
|
|
13838
|
+
404: {
|
|
13839
|
+
headers: {
|
|
13840
|
+
[name: string]: unknown;
|
|
13841
|
+
};
|
|
13842
|
+
content: {
|
|
13843
|
+
"application/json": components["schemas"]["Error"];
|
|
13844
|
+
};
|
|
13845
|
+
};
|
|
13846
|
+
/** @description No acceptable representation */
|
|
13847
|
+
406: {
|
|
13848
|
+
headers: {
|
|
13849
|
+
[name: string]: unknown;
|
|
13850
|
+
};
|
|
13851
|
+
content: {
|
|
13852
|
+
"application/json": components["schemas"]["NegotiationError"];
|
|
13853
|
+
};
|
|
13854
|
+
};
|
|
13855
|
+
/** @description Sandbox is not ready */
|
|
13856
|
+
409: {
|
|
13857
|
+
headers: {
|
|
13858
|
+
[name: string]: unknown;
|
|
13859
|
+
};
|
|
13860
|
+
content: {
|
|
13861
|
+
"application/json": components["schemas"]["Error"];
|
|
13862
|
+
};
|
|
13863
|
+
};
|
|
13864
|
+
/** @description Not a repository, or outside the sandbox */
|
|
13865
|
+
422: {
|
|
13866
|
+
headers: {
|
|
13867
|
+
[name: string]: unknown;
|
|
13868
|
+
};
|
|
13869
|
+
content: {
|
|
13870
|
+
"application/json": components["schemas"]["Error"];
|
|
13871
|
+
};
|
|
13872
|
+
};
|
|
13873
|
+
/** @description Too Many Requests */
|
|
13874
|
+
429: {
|
|
13875
|
+
headers: {
|
|
13876
|
+
[name: string]: unknown;
|
|
13877
|
+
};
|
|
13878
|
+
content: {
|
|
13879
|
+
"application/json": components["schemas"]["Error"];
|
|
13880
|
+
};
|
|
13881
|
+
};
|
|
13882
|
+
/** @description Sandbox provider unreachable */
|
|
13883
|
+
503: {
|
|
13884
|
+
headers: {
|
|
13885
|
+
[name: string]: unknown;
|
|
13886
|
+
};
|
|
13887
|
+
content: {
|
|
13888
|
+
"application/json": components["schemas"]["Error"];
|
|
13889
|
+
};
|
|
13890
|
+
};
|
|
13891
|
+
};
|
|
13892
|
+
};
|
|
12943
13893
|
"FountainWeb.SearchController.index": {
|
|
12944
13894
|
parameters: {
|
|
12945
13895
|
query: {
|