@kortix/sdk 0.12.8 → 0.13.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/README.md +3 -6
- package/dist/browser/session-sync/session-sync-registry.d.ts +7 -2
- package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
- package/dist/browser/session-sync/session-sync-registry.js +33 -44
- package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
- package/dist/browser/stores/opencode-compaction-store.d.ts +9 -3
- package/dist/browser/stores/opencode-compaction-store.d.ts.map +1 -1
- package/dist/browser/stores/opencode-compaction-store.js +5 -12
- package/dist/browser/stores/opencode-compaction-store.js.map +1 -1
- package/dist/browser/stores/sandbox-connection-store.d.ts +28 -17
- package/dist/browser/stores/sandbox-connection-store.d.ts.map +1 -1
- package/dist/browser/stores/sandbox-connection-store.js +32 -84
- package/dist/browser/stores/sandbox-connection-store.js.map +1 -1
- package/dist/browser/stores/session-working-store.d.ts +73 -0
- package/dist/browser/stores/session-working-store.d.ts.map +1 -0
- package/dist/browser/stores/session-working-store.js +86 -0
- package/dist/browser/stores/session-working-store.js.map +1 -0
- package/dist/browser/stores/sync-store/types.d.ts +14 -4
- package/dist/browser/stores/sync-store/types.d.ts.map +1 -1
- package/dist/browser/stores/sync-store.d.ts +140 -3
- package/dist/browser/stores/sync-store.d.ts.map +1 -1
- package/dist/browser/stores/sync-store.js +425 -36
- package/dist/browser/stores/sync-store.js.map +1 -1
- package/dist/core/client/kortix.d.ts +102 -1
- package/dist/core/client/kortix.d.ts.map +1 -1
- package/dist/core/client/kortix.js +78 -0
- package/dist/core/client/kortix.js.map +1 -1
- package/dist/core/files/client.d.ts +50 -2
- package/dist/core/files/client.d.ts.map +1 -1
- package/dist/core/files/client.js +253 -44
- package/dist/core/files/client.js.map +1 -1
- package/dist/core/files/types.d.ts +11 -0
- package/dist/core/files/types.d.ts.map +1 -1
- package/dist/core/http/abort-error.d.ts +89 -0
- package/dist/core/http/abort-error.d.ts.map +1 -0
- package/dist/core/http/abort-error.js +190 -0
- package/dist/core/http/abort-error.js.map +1 -0
- package/dist/core/http/api-client.d.ts.map +1 -1
- package/dist/core/http/api-client.js +18 -4
- package/dist/core/http/api-client.js.map +1 -1
- package/dist/core/rest/platform-client/github-app.d.ts +13 -0
- package/dist/core/rest/platform-client/github-app.d.ts.map +1 -1
- package/dist/core/rest/platform-client/github-app.js +2 -0
- package/dist/core/rest/platform-client/github-app.js.map +1 -1
- package/dist/core/rest/platform-client/members.d.ts +10 -64
- package/dist/core/rest/platform-client/members.d.ts.map +1 -1
- package/dist/core/rest/platform-client/members.js +10 -28
- package/dist/core/rest/platform-client/members.js.map +1 -1
- package/dist/core/rest/projects-client/accounts.d.ts +30 -1
- package/dist/core/rest/projects-client/accounts.d.ts.map +1 -1
- package/dist/core/rest/projects-client/accounts.js +1 -1
- package/dist/core/rest/projects-client/accounts.js.map +1 -1
- package/dist/core/rest/projects-client/apps.d.ts +13 -0
- package/dist/core/rest/projects-client/apps.d.ts.map +1 -1
- package/dist/core/rest/projects-client/apps.js.map +1 -1
- package/dist/core/rest/projects-client/assignments.d.ts +114 -0
- package/dist/core/rest/projects-client/assignments.d.ts.map +1 -0
- package/dist/core/rest/projects-client/assignments.js +91 -0
- package/dist/core/rest/projects-client/assignments.js.map +1 -0
- package/dist/core/rest/projects-client/billing.d.ts +10 -1
- package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
- package/dist/core/rest/projects-client/billing.js +11 -2
- package/dist/core/rest/projects-client/billing.js.map +1 -1
- package/dist/core/rest/projects-client/connectors.d.ts +2 -0
- package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
- package/dist/core/rest/projects-client/connectors.js.map +1 -1
- package/dist/core/rest/projects-client/files.js +2 -2
- package/dist/core/rest/projects-client/files.js.map +1 -1
- package/dist/core/rest/projects-client/gateway.d.ts +51 -0
- package/dist/core/rest/projects-client/gateway.d.ts.map +1 -1
- package/dist/core/rest/projects-client/gateway.js.map +1 -1
- package/dist/core/rest/projects-client/iam.d.ts +51 -3
- package/dist/core/rest/projects-client/iam.d.ts.map +1 -1
- package/dist/core/rest/projects-client/iam.js +18 -1
- package/dist/core/rest/projects-client/iam.js.map +1 -1
- package/dist/core/rest/projects-client/index.d.ts +1 -0
- package/dist/core/rest/projects-client/index.d.ts.map +1 -1
- package/dist/core/rest/projects-client/index.js +1 -0
- package/dist/core/rest/projects-client/index.js.map +1 -1
- package/dist/core/rest/projects-client/projects.d.ts +1 -1
- package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
- package/dist/core/rest/projects-client/projects.js +3 -0
- package/dist/core/rest/projects-client/projects.js.map +1 -1
- package/dist/core/rest/projects-client/secrets.d.ts +11 -0
- package/dist/core/rest/projects-client/secrets.d.ts.map +1 -1
- package/dist/core/rest/projects-client/secrets.js +1 -1
- package/dist/core/rest/projects-client/secrets.js.map +1 -1
- package/dist/core/rest/projects-client/session-costs.d.ts +33 -0
- package/dist/core/rest/projects-client/session-costs.d.ts.map +1 -1
- package/dist/core/rest/projects-client/session-costs.js.map +1 -1
- package/dist/core/rest/projects-client/sessions.d.ts +226 -2
- package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
- package/dist/core/rest/projects-client/sessions.js +101 -4
- package/dist/core/rest/projects-client/sessions.js.map +1 -1
- package/dist/core/rest/projects-client/shared.d.ts +10 -1
- package/dist/core/rest/projects-client/shared.d.ts.map +1 -1
- package/dist/core/rest/projects-client/shared.js.map +1 -1
- package/dist/core/rest/projects-client/tokens.d.ts +13 -1
- package/dist/core/rest/projects-client/tokens.d.ts.map +1 -1
- package/dist/core/rest/projects-client/tokens.js +7 -2
- package/dist/core/rest/projects-client/tokens.js.map +1 -1
- package/dist/core/rest/projects-client/triggers.d.ts +69 -2
- package/dist/core/rest/projects-client/triggers.d.ts.map +1 -1
- package/dist/core/rest/projects-client/triggers.js +1 -1
- package/dist/core/rest/projects-client/triggers.js.map +1 -1
- package/dist/core/session/compaction.d.ts +98 -0
- package/dist/core/session/compaction.d.ts.map +1 -0
- package/dist/core/session/compaction.js +108 -0
- package/dist/core/session/compaction.js.map +1 -0
- package/dist/core/session/health.d.ts +22 -0
- package/dist/core/session/health.d.ts.map +1 -1
- package/dist/core/session/health.js +31 -5
- package/dist/core/session/health.js.map +1 -1
- package/dist/core/session/index.d.ts +2 -0
- package/dist/core/session/index.d.ts.map +1 -1
- package/dist/core/session/index.js +2 -0
- package/dist/core/session/index.js.map +1 -1
- package/dist/core/session/message-queue.d.ts +79 -15
- package/dist/core/session/message-queue.d.ts.map +1 -1
- package/dist/core/session/message-queue.js +73 -27
- package/dist/core/session/message-queue.js.map +1 -1
- package/dist/core/session/rewind.d.ts +76 -10
- package/dist/core/session/rewind.d.ts.map +1 -1
- package/dist/core/session/rewind.js +68 -11
- package/dist/core/session/rewind.js.map +1 -1
- package/dist/core/session/working.d.ts +241 -0
- package/dist/core/session/working.d.ts.map +1 -0
- package/dist/core/session/working.js +261 -0
- package/dist/core/session/working.js.map +1 -0
- package/dist/core/session-sync/session-sync-controller.d.ts +35 -20
- package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
- package/dist/core/session-sync/session-sync-controller.js +48 -115
- package/dist/core/session-sync/session-sync-controller.js.map +1 -1
- package/dist/core/stream/event-stream.d.ts +22 -0
- package/dist/core/stream/event-stream.d.ts.map +1 -1
- package/dist/core/stream/event-stream.js +132 -36
- package/dist/core/stream/event-stream.js.map +1 -1
- package/dist/core/turns/grouping.d.ts +32 -2
- package/dist/core/turns/grouping.d.ts.map +1 -1
- package/dist/core/turns/grouping.js +31 -2
- package/dist/core/turns/grouping.js.map +1 -1
- package/dist/core/turns/index.d.ts +1 -0
- package/dist/core/turns/index.d.ts.map +1 -1
- package/dist/core/turns/index.js +1 -0
- package/dist/core/turns/index.js.map +1 -1
- package/dist/core/turns/open-turn.d.ts +81 -0
- package/dist/core/turns/open-turn.d.ts.map +1 -0
- package/dist/core/turns/open-turn.js +77 -0
- package/dist/core/turns/open-turn.js.map +1 -0
- package/dist/core/turns/state.js +26 -26
- package/dist/core/turns/state.js.map +1 -1
- package/dist/core/turns/types.d.ts +5 -0
- package/dist/core/turns/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/kortix.esm.min.js +25 -25
- package/dist/kortix.global.js +25 -25
- package/dist/node/server.d.ts.map +1 -1
- package/dist/node/server.js +14 -2
- package/dist/node/server.js.map +1 -1
- package/dist/react/index.d.ts +2 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +7 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/initial-session-pin.d.ts +17 -0
- package/dist/react/initial-session-pin.d.ts.map +1 -1
- package/dist/react/initial-session-pin.js +58 -0
- package/dist/react/initial-session-pin.js.map +1 -1
- package/dist/react/opencode.d.ts +6 -2
- package/dist/react/opencode.d.ts.map +1 -1
- package/dist/react/opencode.js +5 -1
- package/dist/react/opencode.js.map +1 -1
- package/dist/react/prefetch-session-start.d.ts +10 -4
- package/dist/react/prefetch-session-start.d.ts.map +1 -1
- package/dist/react/prefetch-session-start.js +10 -4
- package/dist/react/prefetch-session-start.js.map +1 -1
- package/dist/react/query-keys.d.ts +8 -2
- package/dist/react/query-keys.d.ts.map +1 -1
- package/dist/react/query-keys.js +8 -2
- package/dist/react/query-keys.js.map +1 -1
- package/dist/react/session-start-stash.d.ts +25 -0
- package/dist/react/session-start-stash.d.ts.map +1 -1
- package/dist/react/session-start-stash.js +34 -3
- package/dist/react/session-start-stash.js.map +1 -1
- package/dist/react/session-title-sync.d.ts +5 -1
- package/dist/react/session-title-sync.d.ts.map +1 -1
- package/dist/react/session-title-sync.js +16 -4
- package/dist/react/session-title-sync.js.map +1 -1
- package/dist/react/use-can.d.ts +105 -0
- package/dist/react/use-can.d.ts.map +1 -0
- package/dist/react/use-can.js +190 -0
- package/dist/react/use-can.js.map +1 -0
- package/dist/react/use-canonical-opencode-session.d.ts +6 -1
- package/dist/react/use-canonical-opencode-session.d.ts.map +1 -1
- package/dist/react/use-canonical-opencode-session.js +46 -3
- package/dist/react/use-canonical-opencode-session.js.map +1 -1
- package/dist/react/use-opencode-events/handle-event.d.ts +10 -0
- package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
- package/dist/react/use-opencode-events/handle-event.js +76 -7
- package/dist/react/use-opencode-events/handle-event.js.map +1 -1
- package/dist/react/use-opencode-events/helpers.d.ts +21 -8
- package/dist/react/use-opencode-events/helpers.d.ts.map +1 -1
- package/dist/react/use-opencode-events/helpers.js +25 -26
- package/dist/react/use-opencode-events/helpers.js.map +1 -1
- package/dist/react/use-opencode-events/index.d.ts.map +1 -1
- package/dist/react/use-opencode-events/index.js +43 -26
- package/dist/react/use-opencode-events/index.js.map +1 -1
- package/dist/react/use-opencode-events/use-event-stream-refs.d.ts.map +1 -1
- package/dist/react/use-opencode-events/use-event-stream-refs.js +66 -3
- package/dist/react/use-opencode-events/use-event-stream-refs.js.map +1 -1
- package/dist/react/use-opencode-local.d.ts +17 -0
- package/dist/react/use-opencode-local.d.ts.map +1 -1
- package/dist/react/use-opencode-local.js +41 -7
- package/dist/react/use-opencode-local.js.map +1 -1
- package/dist/react/use-opencode-sessions/messages.d.ts +101 -1
- package/dist/react/use-opencode-sessions/messages.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/messages.js +481 -63
- package/dist/react/use-opencode-sessions/messages.js.map +1 -1
- package/dist/react/use-project-apps.d.ts +24 -1
- package/dist/react/use-project-apps.d.ts.map +1 -1
- package/dist/react/use-project-apps.js +5 -3
- package/dist/react/use-project-apps.js.map +1 -1
- package/dist/react/use-runtime-boot-stalled.d.ts +32 -0
- package/dist/react/use-runtime-boot-stalled.d.ts.map +1 -0
- package/dist/react/use-runtime-boot-stalled.js +48 -0
- package/dist/react/use-runtime-boot-stalled.js.map +1 -0
- package/dist/react/use-runtime-reconnect.d.ts +67 -1
- package/dist/react/use-runtime-reconnect.d.ts.map +1 -1
- package/dist/react/use-runtime-reconnect.js +116 -18
- package/dist/react/use-runtime-reconnect.js.map +1 -1
- package/dist/react/use-session-prompts.d.ts +113 -0
- package/dist/react/use-session-prompts.d.ts.map +1 -0
- package/dist/react/use-session-prompts.js +242 -0
- package/dist/react/use-session-prompts.js.map +1 -0
- package/dist/react/use-session-send.d.ts +169 -20
- package/dist/react/use-session-send.d.ts.map +1 -1
- package/dist/react/use-session-send.js +178 -29
- package/dist/react/use-session-send.js.map +1 -1
- package/dist/react/use-session-sync.d.ts +35 -2
- package/dist/react/use-session-sync.d.ts.map +1 -1
- package/dist/react/use-session-sync.js +46 -9
- package/dist/react/use-session-sync.js.map +1 -1
- package/dist/react/use-session-working.d.ts +57 -0
- package/dist/react/use-session-working.d.ts.map +1 -0
- package/dist/react/use-session-working.js +178 -0
- package/dist/react/use-session-working.js.map +1 -0
- package/dist/react/use-session.d.ts +122 -5
- package/dist/react/use-session.d.ts.map +1 -1
- package/dist/react/use-session.js +343 -69
- package/dist/react/use-session.js.map +1 -1
- package/package.json +2 -2
- package/dist/browser/stores/tab-store.d.ts +0 -91
- package/dist/browser/stores/tab-store.d.ts.map +0 -1
- package/dist/browser/stores/tab-store.js +0 -369
- package/dist/browser/stores/tab-store.js.map +0 -1
- package/dist/core/session/send-queue.d.ts +0 -70
- package/dist/core/session/send-queue.d.ts.map +0 -1
- package/dist/core/session/send-queue.js +0 -116
- package/dist/core/session/send-queue.js.map +0 -1
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
* opencode client. DOM-bound helpers (download / zip) stay in the host UI and
|
|
8
8
|
* consume `readBlob`/`list` from here.
|
|
9
9
|
*/
|
|
10
|
-
import { getClient } from '../runtime/client.js';
|
|
10
|
+
import { getClient, RuntimeNotReadyError } from '../runtime/client.js';
|
|
11
11
|
import { getActiveOpenCodeUrl } from '../session/server-store/active.js';
|
|
12
|
-
import {
|
|
12
|
+
import { authenticatedFetch } from '../http/auth.js';
|
|
13
13
|
import { ApiError } from '../http/api/errors.js';
|
|
14
14
|
function unwrap(result) {
|
|
15
15
|
if (result.error) {
|
|
@@ -35,14 +35,41 @@ async function errorMessage(res) {
|
|
|
35
35
|
catch { /* not JSON */ }
|
|
36
36
|
return parsed?.error || text || res.statusText || `HTTP ${res.status}`;
|
|
37
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolve the daemon base url for ONE operation — or refuse to run it.
|
|
40
|
+
*
|
|
41
|
+
* `getActiveOpenCodeUrl()` returns `''` on a billing-enabled deployment until a
|
|
42
|
+
* session runtime is bound (`session/server-store/active.ts`). Interpolating
|
|
43
|
+
* that `''` into a template makes the request URL RELATIVE, so the browser sent
|
|
44
|
+
* the user's file AND their bearer token to the WEB origin
|
|
45
|
+
* (`https://dev.kortix.com/file/upload`), which answered with the Next.js 404
|
|
46
|
+
* HTML shell — surfacing as "Upload failed (404): Not Found".
|
|
47
|
+
*
|
|
48
|
+
* The send path already refuses this race (`runtime/client.ts` `getClient()`
|
|
49
|
+
* throws `RuntimeNotReadyError`); the files transport now refuses it the same
|
|
50
|
+
* way, with the same error class, so a host can classify both with one
|
|
51
|
+
* `instanceof` and retry once the session is ready. An explicitly-passed empty
|
|
52
|
+
* string is refused too — a caller that hands us a blank base url has the same
|
|
53
|
+
* unresolved runtime, and falling back to the module-global would silently
|
|
54
|
+
* target a DIFFERENT session's sandbox.
|
|
55
|
+
*
|
|
56
|
+
* Every operation in this module goes through here. A relative-URL fetch must
|
|
57
|
+
* be impossible from this file.
|
|
58
|
+
*/
|
|
59
|
+
function requireBaseUrl(baseUrl) {
|
|
60
|
+
const resolved = (baseUrl ?? getActiveOpenCodeUrl()).trim();
|
|
61
|
+
if (!resolved)
|
|
62
|
+
throw new RuntimeNotReadyError();
|
|
63
|
+
return resolved;
|
|
64
|
+
}
|
|
38
65
|
/**
|
|
39
66
|
* GET a daemon JSON endpoint (list/status/find), surfacing the server's error.
|
|
40
67
|
* `baseUrl` defaults to the module-global "active" sandbox for back-compat —
|
|
41
68
|
* pass an explicit one (e.g. from `kortix.session(pid, sid).files`) to hit a
|
|
42
69
|
* SPECIFIC session's own runtime instead.
|
|
43
70
|
*/
|
|
44
|
-
async function fetchDaemonJson(relUrl, baseUrl
|
|
45
|
-
const response = await authenticatedFetch(`${baseUrl}${relUrl}`);
|
|
71
|
+
async function fetchDaemonJson(relUrl, baseUrl) {
|
|
72
|
+
const response = await authenticatedFetch(`${requireBaseUrl(baseUrl)}${relUrl}`);
|
|
46
73
|
if (!response.ok) {
|
|
47
74
|
throw new ApiError(await errorMessage(response), { status: response.status, response });
|
|
48
75
|
}
|
|
@@ -94,24 +121,27 @@ export const toWorkspaceRelative = toDaemonPath;
|
|
|
94
121
|
* the module-global "active" sandbox; pass one explicitly to target a
|
|
95
122
|
* specific session's runtime (see `kortix.session(pid, sid).files`).
|
|
96
123
|
*/
|
|
97
|
-
export async function listFiles(dirPath, baseUrl
|
|
124
|
+
export async function listFiles(dirPath, baseUrl) {
|
|
125
|
+
const base = requireBaseUrl(baseUrl);
|
|
98
126
|
const daemonPath = toDaemonPath(dirPath) || '.';
|
|
99
|
-
const nodes = await fetchDaemonJson(`/file?path=${encodeURIComponent(daemonPath)}`,
|
|
127
|
+
const nodes = await fetchDaemonJson(`/file?path=${encodeURIComponent(daemonPath)}`, base);
|
|
100
128
|
return nodes.map((node) => ({ ...node, path: node.absolute || `/workspace/${node.path}` }));
|
|
101
129
|
}
|
|
102
130
|
/** Read a file's content (text, or base64 for binaries). Daemon `GET /file/content`. */
|
|
103
|
-
export async function readFile(filePath, baseUrl
|
|
131
|
+
export async function readFile(filePath, baseUrl) {
|
|
132
|
+
const base = requireBaseUrl(baseUrl);
|
|
104
133
|
const daemonPath = toDaemonPath(filePath);
|
|
105
|
-
const response = await authenticatedFetch(`${
|
|
134
|
+
const response = await authenticatedFetch(`${base}/file/content?path=${encodeURIComponent(daemonPath)}`);
|
|
106
135
|
if (!response.ok) {
|
|
107
136
|
throw new ApiError(await errorMessage(response), { status: response.status, response });
|
|
108
137
|
}
|
|
109
138
|
return response.json();
|
|
110
139
|
}
|
|
111
140
|
/** Raw byte read. Daemon `GET /file/raw`. Throws (so callers can fall back). */
|
|
112
|
-
async function readFileRaw(filePath, fallbackMime, baseUrl
|
|
141
|
+
async function readFileRaw(filePath, fallbackMime, baseUrl) {
|
|
142
|
+
const base = requireBaseUrl(baseUrl);
|
|
113
143
|
const daemonPath = toDaemonPath(filePath);
|
|
114
|
-
const response = await authenticatedFetch(`${
|
|
144
|
+
const response = await authenticatedFetch(`${base}/file/raw?path=${encodeURIComponent(daemonPath)}`);
|
|
115
145
|
if (!response.ok) {
|
|
116
146
|
throw new ApiError(await errorMessage(response), { status: response.status, response });
|
|
117
147
|
}
|
|
@@ -130,12 +160,15 @@ async function readFileRaw(filePath, fallbackMime, baseUrl = getActiveOpenCodeUr
|
|
|
130
160
|
return blob;
|
|
131
161
|
}
|
|
132
162
|
/** Read a file as a Blob — prefers `/file/raw`, falls back to base64 `/file/content`. */
|
|
133
|
-
export async function readBlob(filePath, baseUrl
|
|
163
|
+
export async function readBlob(filePath, baseUrl) {
|
|
164
|
+
// Resolve BEFORE the try: an unresolved runtime must surface as
|
|
165
|
+
// `RuntimeNotReadyError`, not be swallowed into the base64 fallback path.
|
|
166
|
+
const base = requireBaseUrl(baseUrl);
|
|
134
167
|
try {
|
|
135
|
-
return await readFileRaw(filePath, undefined,
|
|
168
|
+
return await readFileRaw(filePath, undefined, base);
|
|
136
169
|
}
|
|
137
170
|
catch { /* fall back to JSON content endpoint */ }
|
|
138
|
-
const result = await readFile(filePath,
|
|
171
|
+
const result = await readFile(filePath, base);
|
|
139
172
|
if (result.encoding === 'base64' && result.content) {
|
|
140
173
|
const bytes = Uint8Array.from(atob(result.content), (c) => c.charCodeAt(0));
|
|
141
174
|
return new Blob([bytes], { type: result.mimeType || 'application/octet-stream' });
|
|
@@ -143,8 +176,8 @@ export async function readBlob(filePath, baseUrl = getActiveOpenCodeUrl()) {
|
|
|
143
176
|
return new Blob([result.content ?? ''], { type: result.mimeType || 'text/plain;charset=utf-8' });
|
|
144
177
|
}
|
|
145
178
|
/** Git file status — uncommitted changes. Daemon `GET /file/status`. */
|
|
146
|
-
export function getFileStatus(baseUrl
|
|
147
|
-
return fetchDaemonJson(`/file/status`, baseUrl);
|
|
179
|
+
export async function getFileStatus(baseUrl) {
|
|
180
|
+
return fetchDaemonJson(`/file/status`, requireBaseUrl(baseUrl));
|
|
148
181
|
}
|
|
149
182
|
/**
|
|
150
183
|
* Find files/directories by name (fuzzy). Daemon `GET /find/file`.
|
|
@@ -158,17 +191,19 @@ export function getFileStatus(baseUrl = getActiveOpenCodeUrl()) {
|
|
|
158
191
|
* non-breaking — verified by grepping every `findFiles(` call site in the
|
|
159
192
|
* monorepo before making this change.
|
|
160
193
|
*/
|
|
161
|
-
export async function findFiles(query, options, baseUrl
|
|
194
|
+
export async function findFiles(query, options, baseUrl) {
|
|
195
|
+
const base = requireBaseUrl(baseUrl);
|
|
162
196
|
const params = new URLSearchParams({ query });
|
|
163
197
|
if (options?.type)
|
|
164
198
|
params.set('type', options.type);
|
|
165
199
|
if (options?.limit)
|
|
166
200
|
params.set('limit', String(options.limit));
|
|
167
|
-
return fetchDaemonJson(`/find/file?${params.toString()}`,
|
|
201
|
+
return fetchDaemonJson(`/find/file?${params.toString()}`, base);
|
|
168
202
|
}
|
|
169
203
|
/** Ripgrep text search. Daemon `GET /find`. Tolerates flat + nested rg-JSON. */
|
|
170
|
-
export async function findText(pattern, baseUrl
|
|
171
|
-
const
|
|
204
|
+
export async function findText(pattern, baseUrl) {
|
|
205
|
+
const base = requireBaseUrl(baseUrl);
|
|
206
|
+
const raw = await fetchDaemonJson(`/find?pattern=${encodeURIComponent(pattern)}`, base);
|
|
172
207
|
return raw.map((item) => ({
|
|
173
208
|
path: typeof item.path === 'string' ? item.path : (item.path?.text ?? ''),
|
|
174
209
|
lines: typeof item.lines === 'string' ? item.lines : (item.lines?.text ?? ''),
|
|
@@ -200,7 +235,19 @@ function isUnretryableThrow(error) {
|
|
|
200
235
|
}
|
|
201
236
|
/** The floor for any upload — the platform-wide default request deadline. */
|
|
202
237
|
const UPLOAD_TIMEOUT_FLOOR_MS = 30_000;
|
|
203
|
-
/**
|
|
238
|
+
/**
|
|
239
|
+
* The ceiling. A stuck upload must not wedge a server-side handler forever.
|
|
240
|
+
*
|
|
241
|
+
* It is NOT the API proxy's budget, and must not be clamped down to it. The
|
|
242
|
+
* proxy's `PROXY_RETRY_BUDGET_MS` (50s, `apps/api/src/sandbox-proxy/`) starts
|
|
243
|
+
* only AFTER the request body is fully buffered
|
|
244
|
+
* (`preview.ts` does `await c.req.raw.clone().arrayBuffer()` before
|
|
245
|
+
* `proxyStartedAt`), so the client-visible duration is
|
|
246
|
+
* `body upload time + ≤50s upstream`, not 50s total. Clamping this ceiling to
|
|
247
|
+
* ~60s would abort every upload whose body alone takes longer than that on a
|
|
248
|
+
* slow uplink — the exact failure `uploadTimeoutMsForBytes` exists to prevent.
|
|
249
|
+
* At the assumed 256 KB/s floor this ceiling only binds above ~222 MB.
|
|
250
|
+
*/
|
|
204
251
|
const UPLOAD_TIMEOUT_CEILING_MS = 15 * 60_000;
|
|
205
252
|
/**
|
|
206
253
|
* Assumed floor throughput. Deliberately pessimistic: the deadline exists to
|
|
@@ -278,53 +325,213 @@ async function uploadWithRetry(buildForm, send) {
|
|
|
278
325
|
* module-global "active" sandbox; pass one explicitly to target a specific
|
|
279
326
|
* session's runtime.
|
|
280
327
|
*/
|
|
281
|
-
export function uploadFile(file, targetPath, filename, baseUrl
|
|
328
|
+
export async function uploadFile(file, targetPath, filename, baseUrl) {
|
|
329
|
+
const base = requireBaseUrl(baseUrl);
|
|
282
330
|
// The deadline follows the body. The platform-wide 30s is a hang detector
|
|
283
331
|
// for a JSON call; against a 30 MB attachment it is a throughput limit, and
|
|
284
332
|
// the attachment loses.
|
|
285
333
|
const timeoutMs = uploadTimeoutMsForBytes(file.size);
|
|
334
|
+
// The name the file must land under. `File.name` is the fallback for a host
|
|
335
|
+
// that already named its blob; a bare `Blob` has none, and then the daemon
|
|
336
|
+
// resolves the destination from the `path` field alone.
|
|
337
|
+
const name = filename || (file instanceof File ? file.name : '') || '';
|
|
286
338
|
return uploadWithRetry(() => {
|
|
287
339
|
const form = new FormData();
|
|
288
340
|
const rawPath = (targetPath ?? '').trim();
|
|
289
341
|
if (rawPath)
|
|
290
342
|
form.append('path', rawPath.startsWith('/') ? rawPath : `/${rawPath}`);
|
|
291
|
-
|
|
292
|
-
|
|
343
|
+
// The name travels as its OWN field, not only as the multipart part's
|
|
344
|
+
// `filename` parameter. Bun 1.3.14's multipart parser DROPS `filename`
|
|
345
|
+
// on a ZERO-LENGTH part, so a genuinely empty upload reached the daemon
|
|
346
|
+
// with `file.name === undefined` and landed as a file literally named
|
|
347
|
+
// "undefined". The SDK used to dodge that by writing a single space into
|
|
348
|
+
// every "new empty file" — which made every empty `.json` invalid and
|
|
349
|
+
// every new file 1 byte of 0x20. This field survives an empty body; the
|
|
350
|
+
// daemon reads it as the per-part fallback (`filenameHint` in
|
|
351
|
+
// `apps/kortix-sandbox-agent-server/src/routes/files.ts`).
|
|
352
|
+
if (name)
|
|
353
|
+
form.append('filename', name);
|
|
354
|
+
if (name)
|
|
355
|
+
form.append('file', file, name);
|
|
293
356
|
else
|
|
294
357
|
form.append('file', file);
|
|
295
358
|
return form;
|
|
296
|
-
}, (form) => authenticatedFetch(`${
|
|
359
|
+
}, (form) => authenticatedFetch(`${base}/file/upload`, { method: 'POST', body: form }, { timeoutMs }));
|
|
297
360
|
}
|
|
298
|
-
/**
|
|
299
|
-
|
|
361
|
+
/**
|
|
362
|
+
* Upload content to a specific path via the field-name-as-path convention.
|
|
363
|
+
*
|
|
364
|
+
* Goes through `authenticatedFetch` like every other write. It used to call a
|
|
365
|
+
* bare `fetch()` with a hand-rolled `Authorization` header, which silently
|
|
366
|
+
* skipped the size-scaled deadline, the 401 stale-token refresh-and-retry, the
|
|
367
|
+
* `X-Kortix-Client` header, and `platformConfig().fetch` — so every host that
|
|
368
|
+
* injects its own fetch (mobile, whitelabel) was bypassed on this one path.
|
|
369
|
+
*/
|
|
370
|
+
function uploadToPath(filePath, content, baseUrl) {
|
|
371
|
+
const base = requireBaseUrl(baseUrl);
|
|
372
|
+
const timeoutMs = uploadTimeoutMsForBytes(content.size);
|
|
300
373
|
return uploadWithRetry(() => {
|
|
301
374
|
const form = new FormData();
|
|
302
375
|
form.append(filePath, content, filePath.split('/').pop() || 'file');
|
|
303
376
|
return form;
|
|
304
|
-
},
|
|
305
|
-
const headers = {};
|
|
306
|
-
const token = await getAuthToken();
|
|
307
|
-
if (token)
|
|
308
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
309
|
-
return fetch(`${baseUrl}/file/upload`, { method: 'POST', body: form, headers });
|
|
310
|
-
});
|
|
377
|
+
}, (form) => authenticatedFetch(`${base}/file/upload`, { method: 'POST', body: form }, { timeoutMs }));
|
|
311
378
|
}
|
|
312
|
-
/**
|
|
313
|
-
|
|
379
|
+
/**
|
|
380
|
+
* Create an EMPTY file at a path — 0 bytes, not one space.
|
|
381
|
+
*
|
|
382
|
+
* Implemented on `writeFile`, and that is a ROLLOUT requirement, not a style
|
|
383
|
+
* choice. The `filename` form field `uploadFile` sends is read by the daemon,
|
|
384
|
+
* and the daemon is **baked into the sandbox image**
|
|
385
|
+
* (`/usr/local/bin/kortix-agent`, `apps/sandbox/Dockerfile`). `/v1/runtime-assets`
|
|
386
|
+
* reconciles only the CLI binary and the managed skills (`cli_sha256`,
|
|
387
|
+
* `managed_skills_hash`) — it does NOT ship the daemon. So this SDK reaches
|
|
388
|
+
* production with the web app immediately while every sandbox provisioned
|
|
389
|
+
* before the image rebuild keeps its OLD daemon for the life of the box.
|
|
390
|
+
*
|
|
391
|
+
* On an old daemon a genuinely 0-byte part loses its filename in Bun's
|
|
392
|
+
* multipart parser and a direct upload lands as a file literally named
|
|
393
|
+
* "undefined". `writeFile` renames the path the daemon REPORTED onto the
|
|
394
|
+
* requested path, so both fleets converge on the right answer:
|
|
395
|
+
*
|
|
396
|
+
* - new daemon → temp name lands → renamed to the target;
|
|
397
|
+
* - old daemon → "undefined" lands → renamed to the target.
|
|
398
|
+
*
|
|
399
|
+
* Concurrency holds on the old fleet too: two simultaneous creates both aim at
|
|
400
|
+
* "undefined", the daemon's `O_EXCL` + suffix retry hands the second one
|
|
401
|
+
* `undefined-<suffix>`, and each call renames only the path IT was told — so
|
|
402
|
+
* they cannot cross.
|
|
403
|
+
*
|
|
404
|
+
* Returns `UploadResult[]` — the published shape, unchanged.
|
|
405
|
+
*/
|
|
406
|
+
export async function createFile(filePath, baseUrl) {
|
|
407
|
+
const base = requireBaseUrl(baseUrl);
|
|
314
408
|
const rawPath = filePath.trim();
|
|
315
409
|
const absolutePath = rawPath.startsWith('/') ? rawPath : `/${rawPath}`;
|
|
316
410
|
const parts = absolutePath.split('/');
|
|
411
|
+
// Keep the historical fallbacks exactly: a trailing slash yields 'untitled',
|
|
412
|
+
// and a bare name anchors under /workspace.
|
|
317
413
|
const fileName = parts.pop() || 'untitled';
|
|
318
414
|
const dirPath = parts.join('/') || '/workspace';
|
|
319
|
-
|
|
415
|
+
const written = await writeFile(`${dirPath}/${fileName}`, new Blob([], { type: 'application/octet-stream' }), base);
|
|
416
|
+
return [{ path: written.path, size: written.bytes }];
|
|
320
417
|
}
|
|
321
418
|
/** Copy a file (read source bytes → upload to dest). */
|
|
322
|
-
export async function copyFile(sourcePath, destPath, baseUrl
|
|
323
|
-
|
|
419
|
+
export async function copyFile(sourcePath, destPath, baseUrl) {
|
|
420
|
+
const base = requireBaseUrl(baseUrl);
|
|
421
|
+
return uploadToPath(destPath, await readBlob(sourcePath, base), base);
|
|
422
|
+
}
|
|
423
|
+
// ── overwrite-in-place ───────────────────────────────────────────────────────
|
|
424
|
+
/** Parent directory of an absolute sandbox path ('/workspace/a/b.md' → '/workspace/a'). */
|
|
425
|
+
/**
|
|
426
|
+
* Strip trailing `/` without a regex.
|
|
427
|
+
*
|
|
428
|
+
* The obvious `replace(/\/+$/, '')` is POLYNOMIAL (CodeQL js/polynomial-redos):
|
|
429
|
+
* `\/+$` is unanchored, so on `"a" + "/".repeat(n) + "b"` the engine retries the
|
|
430
|
+
* whole run from every position — O(n²). `filePath` arrives from host UI input,
|
|
431
|
+
* so it is uncontrolled. An index walk is O(n) and needs no backtracking.
|
|
432
|
+
*
|
|
433
|
+
* `toSandboxAbsolutePath`'s `/^\/+/` is fine by contrast: anchored at the start,
|
|
434
|
+
* so it is only ever attempted at position 0.
|
|
435
|
+
*/
|
|
436
|
+
function stripTrailingSlashes(value) {
|
|
437
|
+
let end = value.length;
|
|
438
|
+
while (end > 0 && value.charCodeAt(end - 1) === 47 /* '/' */)
|
|
439
|
+
end--;
|
|
440
|
+
return value.slice(0, end);
|
|
441
|
+
}
|
|
442
|
+
function sandboxDirname(absPath) {
|
|
443
|
+
const index = absPath.lastIndexOf('/');
|
|
444
|
+
return index <= 0 ? '/' : absPath.slice(0, index);
|
|
445
|
+
}
|
|
446
|
+
/** Final segment of an absolute sandbox path ('/workspace/a/b.md' → 'b.md'). */
|
|
447
|
+
function sandboxBasename(absPath) {
|
|
448
|
+
return absPath.slice(absPath.lastIndexOf('/') + 1);
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Short high-entropy token for the temp + backup names below.
|
|
452
|
+
*
|
|
453
|
+
* `crypto.randomUUID` exists only in a secure context (https or localhost), so
|
|
454
|
+
* a self-hosted white-label served over plain http would throw — the same trap
|
|
455
|
+
* `platform/session-id.ts` documents. Guarded, never bare.
|
|
456
|
+
*/
|
|
457
|
+
function writeToken() {
|
|
458
|
+
const c = typeof crypto !== 'undefined' ? crypto : undefined;
|
|
459
|
+
if (c?.randomUUID)
|
|
460
|
+
return c.randomUUID();
|
|
461
|
+
if (c?.getRandomValues) {
|
|
462
|
+
const bytes = new Uint8Array(8);
|
|
463
|
+
c.getRandomValues(bytes);
|
|
464
|
+
return [...bytes].map((b) => b.toString(16).padStart(2, '0')).join('');
|
|
465
|
+
}
|
|
466
|
+
return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 10)}`;
|
|
467
|
+
}
|
|
468
|
+
/**
|
|
469
|
+
* Write `content` to the EXACT `filePath`, overwriting whatever is there.
|
|
470
|
+
*
|
|
471
|
+
* The daemon's upload endpoint never overwrites: it writes with `flag: 'wx'`
|
|
472
|
+
* (`O_CREAT | O_EXCL`) and, on `EEXIST`, retries under a suffixed name,
|
|
473
|
+
* returning the path the bytes actually landed at. So "save this edited file"
|
|
474
|
+
* used to write a DIFFERENT file (`notes-mdx8k2-3f9a1c04.md`) while the viewer
|
|
475
|
+
* re-read the original path and showed pre-edit bytes under a "File saved"
|
|
476
|
+
* toast — silent data loss.
|
|
477
|
+
*
|
|
478
|
+
* This is the missing primitive: upload to a temp name, then `POST /file/rename`
|
|
479
|
+
* over the target (`fs.rename` overwrites atomically). The existing file is
|
|
480
|
+
* moved aside first and restored if the swap fails, so a failed write can never
|
|
481
|
+
* destroy the original. Reported as `{ path, bytes }` for the path the bytes
|
|
482
|
+
* ended up at — which is always the path you asked for, or a throw.
|
|
483
|
+
*
|
|
484
|
+
* `apps/cli` (`writeSessionFile`) and `apps/mobile` each hand-rolled this; they
|
|
485
|
+
* are the reason it belongs here.
|
|
486
|
+
*/
|
|
487
|
+
export async function writeFile(filePath, content, baseUrl) {
|
|
488
|
+
const base = requireBaseUrl(baseUrl);
|
|
489
|
+
const absPath = toSandboxAbsolutePath(stripTrailingSlashes(filePath.trim()));
|
|
490
|
+
const name = sandboxBasename(absPath);
|
|
491
|
+
if (!name) {
|
|
492
|
+
throw new ApiError(`writeFile needs a file path, got "${filePath}"`, { code: 'INVALID_PATH' });
|
|
493
|
+
}
|
|
494
|
+
const parent = sandboxDirname(absPath);
|
|
495
|
+
// A missing parent is the common case for a brand-new file; an existing one
|
|
496
|
+
// makes this a no-op (mkdir is recursive + idempotent server-side).
|
|
497
|
+
await mkdir(parent, base).catch(() => undefined);
|
|
498
|
+
const token = writeToken();
|
|
499
|
+
const results = await uploadFile(content, parent, `.${name}.kortix-write-${token}`, base);
|
|
500
|
+
const uploaded = results[0]?.path;
|
|
501
|
+
if (!uploaded) {
|
|
502
|
+
throw new ApiError(`Upload returned no file for ${absPath}`, { code: 'UPLOAD_NO_RESULT' });
|
|
503
|
+
}
|
|
504
|
+
// The daemon's returned path is authoritative — it may have uniquified even
|
|
505
|
+
// the temp name (a concurrent writer), and renaming the name we ASKED for
|
|
506
|
+
// would then move the wrong file.
|
|
507
|
+
const actual = toSandboxAbsolutePath(uploaded);
|
|
508
|
+
const backupPath = `${absPath}.kortix-write-backup-${token}`;
|
|
509
|
+
let backedUp = false;
|
|
510
|
+
try {
|
|
511
|
+
await renameFile(absPath, backupPath, base);
|
|
512
|
+
backedUp = true;
|
|
513
|
+
}
|
|
514
|
+
catch {
|
|
515
|
+
// Nothing at the target yet — no backup needed, and no failure either.
|
|
516
|
+
}
|
|
517
|
+
try {
|
|
518
|
+
await renameFile(actual, absPath, base);
|
|
519
|
+
}
|
|
520
|
+
catch (error) {
|
|
521
|
+
// Put the original back exactly where it was, then drop the orphaned temp.
|
|
522
|
+
if (backedUp)
|
|
523
|
+
await renameFile(backupPath, absPath, base).catch(() => undefined);
|
|
524
|
+
await deleteFile(actual, base).catch(() => undefined);
|
|
525
|
+
throw error;
|
|
526
|
+
}
|
|
527
|
+
if (backedUp)
|
|
528
|
+
await deleteFile(backupPath, base).catch(() => undefined);
|
|
529
|
+
const written = results[0]?.size;
|
|
530
|
+
return { path: absPath, bytes: typeof written === 'number' ? written : content.size };
|
|
324
531
|
}
|
|
325
532
|
/** Delete a file/dir (recursive). Daemon `DELETE /file`. */
|
|
326
|
-
export async function deleteFile(filePath, baseUrl
|
|
327
|
-
const res = await authenticatedFetch(`${baseUrl}/file`, {
|
|
533
|
+
export async function deleteFile(filePath, baseUrl) {
|
|
534
|
+
const res = await authenticatedFetch(`${requireBaseUrl(baseUrl)}/file`, {
|
|
328
535
|
method: 'DELETE',
|
|
329
536
|
headers: { 'Content-Type': 'application/json' },
|
|
330
537
|
body: JSON.stringify({ path: filePath }),
|
|
@@ -335,8 +542,8 @@ export async function deleteFile(filePath, baseUrl = getActiveOpenCodeUrl()) {
|
|
|
335
542
|
return res.json();
|
|
336
543
|
}
|
|
337
544
|
/** Create a directory (recursive, idempotent). Daemon `POST /file/mkdir`. */
|
|
338
|
-
export async function mkdir(dirPath, baseUrl
|
|
339
|
-
const res = await authenticatedFetch(`${baseUrl}/file/mkdir`, {
|
|
545
|
+
export async function mkdir(dirPath, baseUrl) {
|
|
546
|
+
const res = await authenticatedFetch(`${requireBaseUrl(baseUrl)}/file/mkdir`, {
|
|
340
547
|
method: 'POST',
|
|
341
548
|
headers: { 'Content-Type': 'application/json' },
|
|
342
549
|
body: JSON.stringify({ path: dirPath }),
|
|
@@ -347,8 +554,8 @@ export async function mkdir(dirPath, baseUrl = getActiveOpenCodeUrl()) {
|
|
|
347
554
|
return res.json();
|
|
348
555
|
}
|
|
349
556
|
/** Rename/move a file or directory. Daemon `POST /file/rename`. */
|
|
350
|
-
export async function renameFile(from, to, baseUrl
|
|
351
|
-
const res = await authenticatedFetch(`${baseUrl}/file/rename`, {
|
|
557
|
+
export async function renameFile(from, to, baseUrl) {
|
|
558
|
+
const res = await authenticatedFetch(`${requireBaseUrl(baseUrl)}/file/rename`, {
|
|
352
559
|
method: 'POST',
|
|
353
560
|
headers: { 'Content-Type': 'application/json' },
|
|
354
561
|
body: JSON.stringify({ from, to }),
|
|
@@ -382,6 +589,8 @@ export const files = {
|
|
|
382
589
|
findFiles,
|
|
383
590
|
findText,
|
|
384
591
|
upload: uploadFile,
|
|
592
|
+
/** Overwrite-in-place. The daemon's upload NEVER overwrites — see `writeFile`. */
|
|
593
|
+
write: writeFile,
|
|
385
594
|
create: createFile,
|
|
386
595
|
copy: copyFile,
|
|
387
596
|
remove: deleteFile,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/files/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/files/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,4 +79,15 @@ export interface UploadResult {
|
|
|
79
79
|
path: string;
|
|
80
80
|
size: number;
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Result of an overwrite-in-place write (`writeFile`).
|
|
84
|
+
*
|
|
85
|
+
* `path` is always the path that was asked for — `writeFile` throws rather than
|
|
86
|
+
* report a different landing path, which is exactly what the raw upload
|
|
87
|
+
* endpoint does on a collision.
|
|
88
|
+
*/
|
|
89
|
+
export interface WriteFileResult {
|
|
90
|
+
path: string;
|
|
91
|
+
bytes: number;
|
|
92
|
+
}
|
|
82
93
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/files/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6CAA6C;AAC7C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;CAC1C;AAED,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/files/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,6CAA6C;AAC7C,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,gDAAgD;AAChD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;CAC1C;AAED,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,qCAAqC;AACrC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one abort classifier. Every producer of an "this turn was aborted"
|
|
3
|
+
* error in this codebase — the SDK's own optimistic patch, the real opencode
|
|
4
|
+
* wire error, and a plain `AbortController`/`fetch` abort — ends up here.
|
|
5
|
+
*
|
|
6
|
+
* Before this file, FOUR divergent detectors existed across `apps/web` and
|
|
7
|
+
* this package: an identity read, a prose sniff with its own pattern lists, a
|
|
8
|
+
* duck-typed name/message check, and a loose `/abort/i` regex. They agreed
|
|
9
|
+
* often enough to hide the disagreements — e.g. `/abort/i` matches "aborted"
|
|
10
|
+
* as a substring of a transport-failure message ("upstream unreachable …
|
|
11
|
+
* The operation was aborted"), mislabeling a real failure as a user-initiated
|
|
12
|
+
* stop. `isAbortError` is the single, documented replacement.
|
|
13
|
+
*
|
|
14
|
+
* Producers (studied, not guessed):
|
|
15
|
+
* - `SyntheticAbortError` — the client-synthesized marker patched onto a
|
|
16
|
+
* message when the user hits Stop, or when a runtime disposes mid-stream.
|
|
17
|
+
* `{ name: "AbortError", data: { message: string } }`. See
|
|
18
|
+
* `react/use-session-send.ts` (`applyOptimisticAbort`) and
|
|
19
|
+
* `react/use-opencode-events/use-event-stream-refs.ts`
|
|
20
|
+
* (`markSessionAbortedLocally`).
|
|
21
|
+
* - `MessageAbortedError` — the real opencode wire shape, one member of
|
|
22
|
+
* `AssistantMessage['error']` (`@opencode-ai/sdk` `types.gen.d.ts`).
|
|
23
|
+
* `{ name: "MessageAbortedError", data: { message: string } }`.
|
|
24
|
+
* - A `DOMException`/`Error`-shaped `AbortError` from a real
|
|
25
|
+
* `AbortController`/`fetch` abort. `.name === "AbortError"`.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Was this error an abort — a user-initiated stop, or a client-synthesized
|
|
29
|
+
* stand-in for one — as opposed to a genuine failure?
|
|
30
|
+
*
|
|
31
|
+
* Identity first: a `name` matching a known abort shape (`AbortError`,
|
|
32
|
+
* `MessageAbortedError`) is always an abort, regardless of message text.
|
|
33
|
+
* Falls back to sniffing the error's own nested text only when identity
|
|
34
|
+
* doesn't resolve it — a plain string (the last-resort case: a caller that
|
|
35
|
+
* only has a formatted display message, not the original structured error),
|
|
36
|
+
* or a structured error whose `name` doesn't match but whose message reads
|
|
37
|
+
* as an abort anyway.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isAbortError(error: unknown): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Every value a producer can stamp into `data.reason` on a
|
|
42
|
+
* `SyntheticAbortError` — the machine-readable WHY behind an abort, read by
|
|
43
|
+
* `abortErrorReason` below. Closed on purpose: a renderer branches on this
|
|
44
|
+
* value (`'user'` → show "Interrupted", anything else → show nothing), so a
|
|
45
|
+
* free-text reason would not fail loudly, it would just silently render
|
|
46
|
+
* wrong.
|
|
47
|
+
*/
|
|
48
|
+
export declare const ABORT_REASONS: readonly ["user", "runtime-disposed", "orphan-finalized", "wake"];
|
|
49
|
+
export type AbortReason = (typeof ABORT_REASONS)[number];
|
|
50
|
+
/**
|
|
51
|
+
* Members that NO code path writes today. Read this before reading a zero.
|
|
52
|
+
*
|
|
53
|
+
* `'orphan-finalized'` is reserved for the sandbox daemon's orphan-turn
|
|
54
|
+
* finalizer (`apps/kortix-sandbox-agent-server/src/main.ts`,
|
|
55
|
+
* `finalizeOrphanedTurn` / `abortOpencodeTurn`). That finalizer aborts through
|
|
56
|
+
* OpenCode's OWN `/session/{id}/abort` REST endpoint — a bare `POST` with no
|
|
57
|
+
* body — so the resulting `MessageAbortedError` is entirely opencode's wire
|
|
58
|
+
* shape. There is no hook to inject a client-chosen `data.reason` into it;
|
|
59
|
+
* doing so would mean forking opencode's abort response, which is worse than
|
|
60
|
+
* leaving it untagged. So a genuine wire abort (no synthetic patch involved)
|
|
61
|
+
* stays reason-less on purpose — see `abortErrorReason`'s doc comment.
|
|
62
|
+
*
|
|
63
|
+
* `'wake'` is reserved for a not-yet-built producer (a session woken from a
|
|
64
|
+
* park mid-turn) and is declared ahead of that work for the same reason
|
|
65
|
+
* `apps/api/src/projects/stop-reason.ts` pre-declares `idle_grace` /
|
|
66
|
+
* `boot_floor_expired`: a renderer branching on this union should see a
|
|
67
|
+
* closed set, not discover a new member via a runtime string it never typed.
|
|
68
|
+
*/
|
|
69
|
+
export declare const ABORT_REASONS_NOT_YET_EMITTED: readonly ["orphan-finalized", "wake"];
|
|
70
|
+
/**
|
|
71
|
+
* The machine-readable reason an abort happened, when the producer sent one
|
|
72
|
+
* (`data.reason`, e.g. `'runtime-disposed'`). Set by `applyOptimisticAbort`
|
|
73
|
+
* (`'user'`) and `markSessionAbortedLocally` (`'runtime-disposed'`). A real
|
|
74
|
+
* opencode wire `MessageAbortedError` — the daemon's own `/abort` call, see
|
|
75
|
+
* `ABORT_REASONS_NOT_YET_EMITTED` above — carries no `data.reason` and never
|
|
76
|
+
* will, so this returns `undefined` for it: that is a genuine, once-only
|
|
77
|
+
* cut turn, not a fabricated marker, and callers render it as "Interrupted"
|
|
78
|
+
* exactly like a `reason: 'user'` abort. Returns `undefined` when absent,
|
|
79
|
+
* never a guess.
|
|
80
|
+
*
|
|
81
|
+
* Validated against `ABORT_REASONS`, not merely typed as `string`: a
|
|
82
|
+
* renderer branches on this value (`'user'` → "Interrupted", anything else →
|
|
83
|
+
* nothing), so an unrecognized/typo'd string previously reached that branch
|
|
84
|
+
* unfiltered and silently suppressed the error UI. An unknown value now
|
|
85
|
+
* returns `undefined` — the same safe default as a reason-less real wire
|
|
86
|
+
* abort — instead of propagating an unvalidated string.
|
|
87
|
+
*/
|
|
88
|
+
export declare function abortErrorReason(error: unknown): AbortReason | undefined;
|
|
89
|
+
//# sourceMappingURL=abort-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abort-error.d.ts","sourceRoot":"","sources":["../../../src/core/http/abort-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAmEH;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAUpD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,mEAehB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,6BAA6B,uCAGC,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,CASxE"}
|