@kortix/sdk 0.10.16 → 0.11.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 +17 -2
- package/dist/browser/session-sync/session-sync-registry.d.ts +3 -0
- package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
- package/dist/browser/session-sync/session-sync-registry.js +31 -2
- package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
- package/dist/core/acp/client.d.ts +45 -0
- package/dist/core/acp/client.d.ts.map +1 -0
- package/dist/core/acp/client.js +277 -0
- package/dist/core/acp/client.js.map +1 -0
- package/dist/core/acp/index.d.ts +5 -0
- package/dist/core/acp/index.d.ts.map +1 -0
- package/dist/core/acp/index.js +5 -0
- package/dist/core/acp/index.js.map +1 -0
- package/dist/core/acp/projection.d.ts +23 -0
- package/dist/core/acp/projection.d.ts.map +1 -0
- package/dist/core/acp/projection.js +603 -0
- package/dist/core/acp/projection.js.map +1 -0
- package/dist/core/acp/session-controller.d.ts +90 -0
- package/dist/core/acp/session-controller.d.ts.map +1 -0
- package/dist/core/acp/session-controller.js +530 -0
- package/dist/core/acp/session-controller.js.map +1 -0
- package/dist/core/acp/types.d.ts +66 -0
- package/dist/core/acp/types.d.ts.map +1 -0
- package/dist/core/acp/types.js +21 -0
- package/dist/core/acp/types.js.map +1 -0
- package/dist/core/client/kortix.d.ts +141 -14
- package/dist/core/client/kortix.d.ts.map +1 -1
- package/dist/core/client/kortix.js +40 -7
- package/dist/core/client/kortix.js.map +1 -1
- package/dist/core/http/api-client.d.ts.map +1 -1
- package/dist/core/http/api-client.js +48 -68
- package/dist/core/http/api-client.js.map +1 -1
- package/dist/core/rest/platform-client/host-boundary.d.ts +114 -0
- package/dist/core/rest/platform-client/host-boundary.d.ts.map +1 -0
- package/dist/core/rest/platform-client/host-boundary.js +229 -0
- package/dist/core/rest/platform-client/host-boundary.js.map +1 -0
- package/dist/core/rest/platform-client/index.d.ts +1 -0
- package/dist/core/rest/platform-client/index.d.ts.map +1 -1
- package/dist/core/rest/platform-client/index.js +1 -0
- package/dist/core/rest/platform-client/index.js.map +1 -1
- package/dist/core/rest/projects-client/account-lifecycle.d.ts +22 -0
- package/dist/core/rest/projects-client/account-lifecycle.d.ts.map +1 -0
- package/dist/core/rest/projects-client/account-lifecycle.js +26 -0
- package/dist/core/rest/projects-client/account-lifecycle.js.map +1 -0
- package/dist/core/rest/projects-client/admin-providers.d.ts +10 -0
- package/dist/core/rest/projects-client/admin-providers.d.ts.map +1 -0
- package/dist/core/rest/projects-client/admin-providers.js +34 -0
- package/dist/core/rest/projects-client/admin-providers.js.map +1 -0
- package/dist/core/rest/projects-client/agent-config.d.ts +7 -0
- package/dist/core/rest/projects-client/agent-config.d.ts.map +1 -1
- package/dist/core/rest/projects-client/agent-config.js.map +1 -1
- package/dist/core/rest/projects-client/billing.d.ts +89 -0
- package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
- package/dist/core/rest/projects-client/billing.js +43 -0
- package/dist/core/rest/projects-client/billing.js.map +1 -1
- package/dist/core/rest/projects-client/channels.d.ts +8 -27
- package/dist/core/rest/projects-client/channels.d.ts.map +1 -1
- package/dist/core/rest/projects-client/channels.js +12 -23
- package/dist/core/rest/projects-client/channels.js.map +1 -1
- package/dist/core/rest/projects-client/connectors.d.ts +162 -13
- package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
- package/dist/core/rest/projects-client/connectors.js +64 -2
- package/dist/core/rest/projects-client/connectors.js.map +1 -1
- package/dist/core/rest/projects-client/gateway.d.ts +1 -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 +492 -0
- package/dist/core/rest/projects-client/iam.d.ts.map +1 -0
- package/dist/core/rest/projects-client/iam.js +287 -0
- package/dist/core/rest/projects-client/iam.js.map +1 -0
- package/dist/core/rest/projects-client/index.d.ts +6 -0
- package/dist/core/rest/projects-client/index.d.ts.map +1 -1
- package/dist/core/rest/projects-client/index.js +6 -0
- package/dist/core/rest/projects-client/index.js.map +1 -1
- package/dist/core/rest/projects-client/marketplace-catalog.d.ts +9 -2
- package/dist/core/rest/projects-client/marketplace-catalog.d.ts.map +1 -1
- package/dist/core/rest/projects-client/marketplace-catalog.js +7 -0
- package/dist/core/rest/projects-client/marketplace-catalog.js.map +1 -1
- package/dist/core/rest/projects-client/presentations.d.ts +12 -0
- package/dist/core/rest/projects-client/presentations.d.ts.map +1 -0
- package/dist/core/rest/projects-client/presentations.js +9 -0
- package/dist/core/rest/projects-client/presentations.js.map +1 -0
- package/dist/core/rest/projects-client/projects.d.ts +55 -10
- package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
- package/dist/core/rest/projects-client/projects.js +14 -7
- package/dist/core/rest/projects-client/projects.js.map +1 -1
- package/dist/core/rest/projects-client/public-voice-join.d.ts +59 -0
- package/dist/core/rest/projects-client/public-voice-join.d.ts.map +1 -0
- package/dist/core/rest/projects-client/public-voice-join.js +64 -0
- package/dist/core/rest/projects-client/public-voice-join.js.map +1 -0
- package/dist/core/rest/projects-client/referrals.d.ts +53 -0
- package/dist/core/rest/projects-client/referrals.d.ts.map +1 -0
- package/dist/core/rest/projects-client/referrals.js +27 -0
- package/dist/core/rest/projects-client/referrals.js.map +1 -0
- package/dist/core/rest/projects-client/session-sandbox.d.ts +2 -0
- package/dist/core/rest/projects-client/session-sandbox.d.ts.map +1 -1
- package/dist/core/rest/projects-client/session-sandbox.js +10 -0
- package/dist/core/rest/projects-client/session-sandbox.js.map +1 -1
- package/dist/core/rest/projects-client/sessions.d.ts +89 -0
- package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
- package/dist/core/rest/projects-client/sessions.js +49 -1
- package/dist/core/rest/projects-client/sessions.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/presentation.d.ts +12 -0
- package/dist/core/session/presentation.d.ts.map +1 -0
- package/dist/core/session/presentation.js +70 -0
- package/dist/core/session/presentation.js.map +1 -0
- package/dist/core/session/rewind.d.ts +18 -0
- package/dist/core/session/rewind.d.ts.map +1 -0
- package/dist/core/session/rewind.js +17 -0
- package/dist/core/session/rewind.js.map +1 -0
- package/dist/core/session/runtime-transport.d.ts +16 -0
- package/dist/core/session/runtime-transport.d.ts.map +1 -0
- package/dist/core/session/runtime-transport.js +30 -0
- package/dist/core/session/runtime-transport.js.map +1 -0
- package/dist/core/session/url.d.ts +43 -0
- package/dist/core/session/url.d.ts.map +1 -1
- package/dist/core/session/url.js +81 -0
- package/dist/core/session/url.js.map +1 -1
- package/dist/core/session-sync/session-sync-controller.d.ts +28 -0
- package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
- package/dist/core/session-sync/session-sync-controller.js +127 -4
- package/dist/core/session-sync/session-sync-controller.js.map +1 -1
- package/dist/core/stream/fetch-sse.d.ts +23 -0
- package/dist/core/stream/fetch-sse.d.ts.map +1 -0
- package/dist/core/stream/fetch-sse.js +119 -0
- package/dist/core/stream/fetch-sse.js.map +1 -0
- package/dist/core/turns/state.d.ts.map +1 -1
- package/dist/core/turns/state.js +11 -4
- package/dist/core/turns/state.js.map +1 -1
- package/dist/core/turns/types.d.ts +6 -0
- package/dist/core/turns/types.d.ts.map +1 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/kortix.esm.min.js +24 -16
- package/dist/kortix.global.js +24 -16
- package/dist/node/server.d.ts +14 -0
- package/dist/node/server.d.ts.map +1 -1
- package/dist/node/server.js +42 -0
- package/dist/node/server.js.map +1 -1
- package/dist/platform/auth-core.d.ts +3 -5
- package/dist/platform/auth-core.d.ts.map +1 -1
- package/dist/platform/auth-core.js +4 -6
- package/dist/platform/auth-core.js.map +1 -1
- package/dist/react/agent-selection-scope.d.ts +8 -0
- package/dist/react/agent-selection-scope.d.ts.map +1 -0
- package/dist/react/agent-selection-scope.js +4 -0
- package/dist/react/agent-selection-scope.js.map +1 -0
- package/dist/react/index.d.ts +13 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +13 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/initial-session-pin.d.ts +8 -0
- package/dist/react/initial-session-pin.d.ts.map +1 -0
- package/dist/react/initial-session-pin.js +4 -0
- package/dist/react/initial-session-pin.js.map +1 -0
- package/dist/react/opencode.d.ts +25 -2
- package/dist/react/opencode.d.ts.map +1 -1
- package/dist/react/opencode.js +24 -1
- package/dist/react/opencode.js.map +1 -1
- package/dist/react/provider-selection.d.ts +1 -0
- package/dist/react/provider-selection.d.ts.map +1 -1
- package/dist/react/provider-selection.js +22 -0
- package/dist/react/provider-selection.js.map +1 -1
- package/dist/react/run-pty-command.d.ts +5 -0
- package/dist/react/run-pty-command.d.ts.map +1 -0
- package/dist/react/run-pty-command.js +42 -0
- package/dist/react/run-pty-command.js.map +1 -0
- package/dist/react/runtime-actions.d.ts +51 -0
- package/dist/react/runtime-actions.d.ts.map +1 -0
- package/dist/react/runtime-actions.js +105 -0
- package/dist/react/runtime-actions.js.map +1 -0
- package/dist/react/session-agent-name-guard.d.ts +16 -0
- package/dist/react/session-agent-name-guard.d.ts.map +1 -0
- package/dist/react/session-agent-name-guard.js +22 -0
- package/dist/react/session-agent-name-guard.js.map +1 -0
- package/dist/react/session-busy.d.ts +8 -0
- package/dist/react/session-busy.d.ts.map +1 -0
- package/dist/react/session-busy.js +4 -0
- package/dist/react/session-busy.js.map +1 -0
- package/dist/react/session-title-sync.d.ts +19 -0
- package/dist/react/session-title-sync.d.ts.map +1 -0
- package/dist/react/session-title-sync.js +81 -0
- package/dist/react/session-title-sync.js.map +1 -0
- package/dist/react/use-acp-session-runtime.d.ts +34 -0
- package/dist/react/use-acp-session-runtime.d.ts.map +1 -0
- package/dist/react/use-acp-session-runtime.js +84 -0
- package/dist/react/use-acp-session-runtime.js.map +1 -0
- package/dist/react/use-admin-accounts.d.ts +122 -0
- package/dist/react/use-admin-accounts.d.ts.map +1 -0
- package/dist/react/use-admin-accounts.js +146 -0
- package/dist/react/use-admin-accounts.js.map +1 -0
- package/dist/react/use-admin-analytics.d.ts +332 -0
- package/dist/react/use-admin-analytics.d.ts.map +1 -0
- package/dist/react/use-admin-analytics.js +518 -0
- package/dist/react/use-admin-analytics.js.map +1 -0
- package/dist/react/use-admin-billing.d.ts +27 -0
- package/dist/react/use-admin-billing.d.ts.map +1 -0
- package/dist/react/use-admin-billing.js +61 -0
- package/dist/react/use-admin-billing.js.map +1 -0
- package/dist/react/use-admin-feedback.d.ts +119 -0
- package/dist/react/use-admin-feedback.d.ts.map +1 -0
- package/dist/react/use-admin-feedback.js +148 -0
- package/dist/react/use-admin-feedback.js.map +1 -0
- package/dist/react/use-admin-sandboxes.d.ts +157 -0
- package/dist/react/use-admin-sandboxes.d.ts.map +1 -0
- package/dist/react/use-admin-sandboxes.js +145 -0
- package/dist/react/use-admin-sandboxes.js.map +1 -0
- package/dist/react/use-admin-users.d.ts +98 -0
- package/dist/react/use-admin-users.d.ts.map +1 -0
- package/dist/react/use-admin-users.js +121 -0
- package/dist/react/use-admin-users.js.map +1 -0
- package/dist/react/use-authenticated-preview-url.d.ts +24 -0
- package/dist/react/use-authenticated-preview-url.d.ts.map +1 -0
- package/dist/react/use-authenticated-preview-url.js +137 -0
- package/dist/react/use-authenticated-preview-url.js.map +1 -0
- package/dist/react/use-canonical-opencode-session.d.ts +4 -0
- package/dist/react/use-canonical-opencode-session.d.ts.map +1 -1
- package/dist/react/use-canonical-opencode-session.js +9 -4
- package/dist/react/use-canonical-opencode-session.js.map +1 -1
- package/dist/react/use-model-defaults.d.ts +22 -0
- package/dist/react/use-model-defaults.d.ts.map +1 -0
- package/dist/react/use-model-defaults.js +104 -0
- package/dist/react/use-model-defaults.js.map +1 -0
- package/dist/react/use-model-store.d.ts.map +1 -1
- package/dist/react/use-model-store.js +11 -0
- package/dist/react/use-model-store.js.map +1 -1
- package/dist/react/use-opencode-events/index.d.ts +3 -1
- package/dist/react/use-opencode-events/index.d.ts.map +1 -1
- package/dist/react/use-opencode-events/index.js +6 -2
- package/dist/react/use-opencode-events/index.js.map +1 -1
- package/dist/react/use-opencode-local.d.ts.map +1 -1
- package/dist/react/use-opencode-local.js +10 -1
- package/dist/react/use-opencode-local.js.map +1 -1
- package/dist/react/use-opencode-sessions/agents.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/agents.js +5 -3
- package/dist/react/use-opencode-sessions/agents.js.map +1 -1
- package/dist/react/use-opencode-sessions/commands.d.ts +7 -2
- package/dist/react/use-opencode-sessions/commands.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/commands.js +13 -9
- package/dist/react/use-opencode-sessions/commands.js.map +1 -1
- package/dist/react/use-opencode-sessions/provider-load-plan.d.ts +6 -0
- package/dist/react/use-opencode-sessions/provider-load-plan.d.ts.map +1 -0
- package/dist/react/use-opencode-sessions/provider-load-plan.js +4 -0
- package/dist/react/use-opencode-sessions/provider-load-plan.js.map +1 -0
- package/dist/react/use-opencode-sessions/providers.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/providers.js +39 -27
- package/dist/react/use-opencode-sessions/providers.js.map +1 -1
- package/dist/react/use-opencode-sessions/sessions.d.ts +1 -1
- package/dist/react/use-opencode-sessions/sessions.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/sessions.js +2 -2
- package/dist/react/use-opencode-sessions/sessions.js.map +1 -1
- package/dist/react/use-ops-overview.d.ts +64 -0
- package/dist/react/use-ops-overview.d.ts.map +1 -0
- package/dist/react/use-ops-overview.js +16 -0
- package/dist/react/use-ops-overview.js.map +1 -0
- package/dist/react/use-session-model-selection.d.ts +15 -0
- package/dist/react/use-session-model-selection.d.ts.map +1 -0
- package/dist/react/use-session-model-selection.js +27 -0
- package/dist/react/use-session-model-selection.js.map +1 -0
- package/dist/react/use-session-sync.d.ts.map +1 -1
- package/dist/react/use-session-sync.js +3 -1
- package/dist/react/use-session-sync.js.map +1 -1
- package/dist/react/use-session.d.ts +78 -4
- package/dist/react/use-session.d.ts.map +1 -1
- package/dist/react/use-session.js +329 -34
- package/dist/react/use-session.js.map +1 -1
- package/dist/react/use-system-status.d.ts +39 -0
- package/dist/react/use-system-status.d.ts.map +1 -0
- package/dist/react/use-system-status.js +68 -0
- package/dist/react/use-system-status.js.map +1 -0
- package/dist/react/use-teams-installations.d.ts +36 -0
- package/dist/react/use-teams-installations.d.ts.map +1 -0
- package/dist/react/use-teams-installations.js +94 -0
- package/dist/react/use-teams-installations.js.map +1 -0
- package/dist/react/use-tunnel.d.ts +120 -0
- package/dist/react/use-tunnel.d.ts.map +1 -0
- package/dist/react/use-tunnel.js +268 -0
- package/dist/react/use-tunnel.js.map +1 -0
- package/package.json +2 -2
|
@@ -47,10 +47,17 @@ export function isManagedGithubProject(project) {
|
|
|
47
47
|
return git?.provider === 'github' && git?.managed === true;
|
|
48
48
|
}
|
|
49
49
|
export async function getProjectDetail(projectId, options) {
|
|
50
|
-
|
|
50
|
+
const detail = unwrap(await backendApi.get(`/projects/${projectId}/detail`, {
|
|
51
51
|
showErrors: false,
|
|
52
52
|
...options,
|
|
53
53
|
}));
|
|
54
|
+
return {
|
|
55
|
+
...detail,
|
|
56
|
+
config: {
|
|
57
|
+
...detail.config,
|
|
58
|
+
default_agent: detail.config.default_agent ?? detail.config.open_code_default_agent ?? null,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
54
61
|
}
|
|
55
62
|
export async function getProjectLlmCatalog(projectId, options) {
|
|
56
63
|
return unwrap(await backendApi.get(`/projects/${projectId}/llm-catalog`, {
|
|
@@ -90,10 +97,13 @@ export async function createProjectRepo(input) {
|
|
|
90
97
|
* default. No GitHub account or repo-name uniqueness needed; the starter is
|
|
91
98
|
* seeded server-side so the project boots immediately.
|
|
92
99
|
*/
|
|
93
|
-
export async function provisionProject(input) {
|
|
100
|
+
export async function provisionProject(input, options = {}) {
|
|
94
101
|
return unwrap(await backendApi.post('/projects/provision', {
|
|
95
|
-
|
|
102
|
+
seed_starter: true,
|
|
96
103
|
...input,
|
|
104
|
+
}, {
|
|
105
|
+
timeout: 120_000,
|
|
106
|
+
...options,
|
|
97
107
|
}));
|
|
98
108
|
}
|
|
99
109
|
/**
|
|
@@ -187,10 +197,7 @@ export async function provisionProjectWithToken(opts, input) {
|
|
|
187
197
|
Authorization: `Bearer ${opts.accessToken}`,
|
|
188
198
|
'Content-Type': 'application/json',
|
|
189
199
|
},
|
|
190
|
-
body: JSON.stringify({
|
|
191
|
-
...(input.repository_source_project_id ? {} : { seed_starter: true }),
|
|
192
|
-
...input,
|
|
193
|
-
}),
|
|
200
|
+
body: JSON.stringify({ seed_starter: true, ...input }),
|
|
194
201
|
signal: AbortSignal.timeout(opts.timeoutMs ?? 90_000),
|
|
195
202
|
});
|
|
196
203
|
if (res.ok) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/projects.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,OAAO,EAAyB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE1E,OAAO,EAKL,0BAA0B,EAC1B,cAAc,EACd,MAAM,GACP,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare class PublicVoiceJoinError extends Error {
|
|
2
|
+
readonly status: number;
|
|
3
|
+
constructor(message: string, status: number);
|
|
4
|
+
}
|
|
5
|
+
export interface PublicVoiceJoinInfo {
|
|
6
|
+
call_id: string;
|
|
7
|
+
/** The LiveKit server's `ws(s)://` URL — never assume it shares an origin
|
|
8
|
+
* with either the API or the frontend that served this page. */
|
|
9
|
+
url: string;
|
|
10
|
+
/** A freshly-minted, room-scoped LiveKit access token — not the join
|
|
11
|
+
* link's own token. */
|
|
12
|
+
token: string;
|
|
13
|
+
}
|
|
14
|
+
/** Resolves a short `voice_spawn` join-link token into a live LiveKit
|
|
15
|
+
* session's server URL + a fresh access token. Throws `PublicVoiceJoinError`
|
|
16
|
+
* (404 unknown, 410 expired/revoked) on anything but 200. */
|
|
17
|
+
export declare function getPublicVoiceJoin(token: string): Promise<PublicVoiceJoinInfo>;
|
|
18
|
+
/**
|
|
19
|
+
* One line of a call's durable record (`kortix.voice_call_turns`).
|
|
20
|
+
*
|
|
21
|
+
* `role` + `speaker` together say who — and they must be read together,
|
|
22
|
+
* because `agent` covers two different things:
|
|
23
|
+
* - `user` — a human in the room. `speaker` is a display name if one is known.
|
|
24
|
+
* - `agent` + `speaker === 'kortix'` — what the KORTIX agent put into the
|
|
25
|
+
* call (`send_prompt`, a finished turn's result, an error).
|
|
26
|
+
* - `agent` + anything else — what the voice itself actually said, labelled
|
|
27
|
+
* with the bot's display name.
|
|
28
|
+
* - `tool` — an MCP call the voice made; `speaker` is the tool name
|
|
29
|
+
* (`ask_kortix`, `run_command`) and `text` is the call and its outcome.
|
|
30
|
+
* Nobody spoke this line.
|
|
31
|
+
*/
|
|
32
|
+
export interface PublicVoiceTranscriptTurn {
|
|
33
|
+
/** Monotonic per-call sequence number — pass the page's last one back as `cursor`. */
|
|
34
|
+
cursor: number;
|
|
35
|
+
role: 'user' | 'agent' | 'tool' | (string & {});
|
|
36
|
+
speaker: string | null;
|
|
37
|
+
text: string;
|
|
38
|
+
/** ISO-8601. */
|
|
39
|
+
at: string;
|
|
40
|
+
}
|
|
41
|
+
export interface PublicVoiceTranscriptPage {
|
|
42
|
+
call_id: string;
|
|
43
|
+
/** The cursor to poll with next — unchanged when nothing new arrived. */
|
|
44
|
+
cursor: number;
|
|
45
|
+
turns: PublicVoiceTranscriptTurn[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Reads the durable transcript of the ONE call a join-link token was minted
|
|
49
|
+
* for — every spoken turn on both sides, everything the Kortix agent said into
|
|
50
|
+
* the call, and every tool call the voice made.
|
|
51
|
+
*
|
|
52
|
+
* This is not the same stream as LiveKit's client-side transcription, which
|
|
53
|
+
* only ever carries the two voices. Authorized by the join link alone (same
|
|
54
|
+
* capability, same revocation as `getPublicVoiceJoin`), so it works on the
|
|
55
|
+
* logged-out `/voice/[token]` page. Throws `PublicVoiceJoinError` (404
|
|
56
|
+
* unknown, 410 expired or the call ended).
|
|
57
|
+
*/
|
|
58
|
+
export declare function getPublicVoiceTranscript(token: string, cursor?: number): Promise<PublicVoiceTranscriptPage>;
|
|
59
|
+
//# sourceMappingURL=public-voice-join.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-voice-join.d.ts","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/public-voice-join.ts"],"names":[],"mappings":"AAeA,qBAAa,oBAAqB,SAAQ,KAAK;aAG3B,MAAM,EAAE,MAAM;gBAD9B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM;CAKjC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB;qEACiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ;4BACwB;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAyBD;;8DAE8D;AAC9D,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAEpF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,yBAAyB;IACxC,sFAAsF;IACtF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAChD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,yBAAyB,EAAE,CAAC;CACpC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,MAAM,EACb,MAAM,SAAI,GACT,OAAO,CAAC,yBAAyB,CAAC,CAGpC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Anonymous resolve step for a `voice_spawn` join link — `/v1/public/voice-join/:token`
|
|
2
|
+
// (apps/api/src/channels/voice/public-join-routes.ts). Backs the logged-out
|
|
3
|
+
// `(public)/voice/[token]` page: the URL now carries a short, ungessable id
|
|
4
|
+
// rather than the raw LiveKit access token, so the page exchanges it here for
|
|
5
|
+
// a freshly-minted token + the LiveKit server URL.
|
|
6
|
+
//
|
|
7
|
+
// Deliberately NOT built on `backendApi` (platform/api-client.ts) for the same
|
|
8
|
+
// reason `public-session-shares.ts` isn't: that client's authenticated fetch
|
|
9
|
+
// path synthesizes a failure for a visitor with no token WITHOUT ever making
|
|
10
|
+
// the network call. This route is genuinely public — no Authorization header,
|
|
11
|
+
// no `configureKortix()` call required — mirroring `getPublicShareUrlForToken`'s
|
|
12
|
+
// and `getPublicSessionShare`'s stance.
|
|
13
|
+
import { getBackendUrl } from '../../session/server-store/url-helpers.js';
|
|
14
|
+
export class PublicVoiceJoinError extends Error {
|
|
15
|
+
status;
|
|
16
|
+
constructor(message, status) {
|
|
17
|
+
super(message);
|
|
18
|
+
this.status = status;
|
|
19
|
+
this.name = 'PublicVoiceJoinError';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function publicVoiceJoinUrl(token) {
|
|
23
|
+
return `${getBackendUrl()}/public/voice-join/${encodeURIComponent(token)}`;
|
|
24
|
+
}
|
|
25
|
+
async function getPublicVoiceJson(url) {
|
|
26
|
+
const res = await fetch(url, { method: 'GET', headers: { Accept: 'application/json' } });
|
|
27
|
+
const text = await res.text().catch(() => '');
|
|
28
|
+
let body = null;
|
|
29
|
+
try {
|
|
30
|
+
body = text ? JSON.parse(text) : null;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// Non-JSON body — fall through to the generic error message below.
|
|
34
|
+
}
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
const message = (body && typeof body === 'object' && 'error' in body && typeof body.error === 'string'
|
|
37
|
+
? body.error
|
|
38
|
+
: null) || res.statusText || `HTTP ${res.status}`;
|
|
39
|
+
throw new PublicVoiceJoinError(message, res.status);
|
|
40
|
+
}
|
|
41
|
+
return body;
|
|
42
|
+
}
|
|
43
|
+
/** Resolves a short `voice_spawn` join-link token into a live LiveKit
|
|
44
|
+
* session's server URL + a fresh access token. Throws `PublicVoiceJoinError`
|
|
45
|
+
* (404 unknown, 410 expired/revoked) on anything but 200. */
|
|
46
|
+
export async function getPublicVoiceJoin(token) {
|
|
47
|
+
return getPublicVoiceJson(publicVoiceJoinUrl(token));
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Reads the durable transcript of the ONE call a join-link token was minted
|
|
51
|
+
* for — every spoken turn on both sides, everything the Kortix agent said into
|
|
52
|
+
* the call, and every tool call the voice made.
|
|
53
|
+
*
|
|
54
|
+
* This is not the same stream as LiveKit's client-side transcription, which
|
|
55
|
+
* only ever carries the two voices. Authorized by the join link alone (same
|
|
56
|
+
* capability, same revocation as `getPublicVoiceJoin`), so it works on the
|
|
57
|
+
* logged-out `/voice/[token]` page. Throws `PublicVoiceJoinError` (404
|
|
58
|
+
* unknown, 410 expired or the call ended).
|
|
59
|
+
*/
|
|
60
|
+
export async function getPublicVoiceTranscript(token, cursor = 0) {
|
|
61
|
+
const url = `${publicVoiceJoinUrl(token)}/transcript?cursor=${encodeURIComponent(String(cursor))}`;
|
|
62
|
+
return getPublicVoiceJson(url);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=public-voice-join.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-voice-join.js","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/public-voice-join.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,mDAAmD;AACnD,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,8EAA8E;AAC9E,iFAAiF;AACjF,wCAAwC;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAEvE,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IAG3B;IAFlB,YACE,OAAe,EACC,MAAc;QAE9B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,WAAM,GAAN,MAAM,CAAQ;QAG9B,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAYD,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,GAAG,aAAa,EAAE,sBAAsB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAI,GAAW;IAC9C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACzF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC9C,IAAI,IAAI,GAAY,IAAI,CAAC;IACzB,IAAI,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,OAAO,GACX,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,IAAI,IAAI,OAAQ,IAA4B,CAAC,KAAK,KAAK,QAAQ;YAC7G,CAAC,CAAE,IAA0B,CAAC,KAAK;YACnC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACtD,MAAM,IAAI,oBAAoB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,IAAS,CAAC;AACnB,CAAC;AAED;;8DAE8D;AAC9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAa;IACpD,OAAO,kBAAkB,CAAsB,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAiCD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAa,EACb,MAAM,GAAG,CAAC;IAEV,MAAM,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;IACnG,OAAO,kBAAkB,CAA4B,GAAG,CAAC,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface ReferralCodeResponse {
|
|
2
|
+
referral_code: string;
|
|
3
|
+
referral_url: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ReferralStats {
|
|
6
|
+
referral_code: string;
|
|
7
|
+
total_referrals: number;
|
|
8
|
+
successful_referrals: number;
|
|
9
|
+
total_credits_earned: number;
|
|
10
|
+
last_referral_at: string | null;
|
|
11
|
+
remaining_earnable_credits: number;
|
|
12
|
+
max_earnable_credits: number;
|
|
13
|
+
has_reached_limit: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface Referral {
|
|
16
|
+
id: string;
|
|
17
|
+
referred_account_id: string;
|
|
18
|
+
credits_awarded: number;
|
|
19
|
+
status: string;
|
|
20
|
+
created_at: string;
|
|
21
|
+
completed_at: string | null;
|
|
22
|
+
}
|
|
23
|
+
export interface ReferralListResponse {
|
|
24
|
+
referrals: Referral[];
|
|
25
|
+
total_count: number;
|
|
26
|
+
}
|
|
27
|
+
export interface ValidateReferralCodeResponse {
|
|
28
|
+
valid: boolean;
|
|
29
|
+
referrer_id?: string;
|
|
30
|
+
message?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface ReferralEmailResult {
|
|
33
|
+
email: string;
|
|
34
|
+
success: boolean;
|
|
35
|
+
message?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface ReferralEmailResponse {
|
|
38
|
+
success: boolean;
|
|
39
|
+
message?: string;
|
|
40
|
+
results?: ReferralEmailResult[];
|
|
41
|
+
success_count?: number;
|
|
42
|
+
total_count?: number;
|
|
43
|
+
}
|
|
44
|
+
export declare function getReferralCode(): Promise<ReferralCodeResponse>;
|
|
45
|
+
export declare function refreshReferralCode(): Promise<ReferralCodeResponse>;
|
|
46
|
+
export declare function validateReferralCode(code: string): Promise<ValidateReferralCodeResponse>;
|
|
47
|
+
export declare function getReferralStats(): Promise<ReferralStats>;
|
|
48
|
+
export declare function listReferrals(options?: {
|
|
49
|
+
limit?: number;
|
|
50
|
+
offset?: number;
|
|
51
|
+
}): Promise<ReferralListResponse>;
|
|
52
|
+
export declare function sendReferralEmails(emails: string[]): Promise<ReferralEmailResponse>;
|
|
53
|
+
//# sourceMappingURL=referrals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referrals.d.ts","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/referrals.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAErE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAKzE;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAO9F;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC,CAE/D;AAED,wBAAsB,aAAa,CAAC,OAAO,GAAE;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACZ,GAAG,OAAO,CAAC,oBAAoB,CAAC,CASrC;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAKzF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { backendApi } from '../../http/api-client.js';
|
|
2
|
+
import { unwrap } from './shared.js';
|
|
3
|
+
export async function getReferralCode() {
|
|
4
|
+
return unwrap(await backendApi.get('/referrals/code'), 'GET_CODE_FAILED');
|
|
5
|
+
}
|
|
6
|
+
export async function refreshReferralCode() {
|
|
7
|
+
return unwrap(await backendApi.post('/referrals/code/refresh', {}), 'REFRESH_CODE_FAILED');
|
|
8
|
+
}
|
|
9
|
+
export async function validateReferralCode(code) {
|
|
10
|
+
return unwrap(await backendApi.post('/referrals/validate', {
|
|
11
|
+
referral_code: code,
|
|
12
|
+
}), 'VALIDATE_CODE_FAILED');
|
|
13
|
+
}
|
|
14
|
+
export async function getReferralStats() {
|
|
15
|
+
return unwrap(await backendApi.get('/referrals/stats'), 'GET_STATS_FAILED');
|
|
16
|
+
}
|
|
17
|
+
export async function listReferrals(options = {}) {
|
|
18
|
+
const search = new URLSearchParams({
|
|
19
|
+
limit: String(options.limit ?? 50),
|
|
20
|
+
offset: String(options.offset ?? 0),
|
|
21
|
+
});
|
|
22
|
+
return unwrap(await backendApi.get(`/referrals/list?${search}`), 'GET_REFERRALS_FAILED');
|
|
23
|
+
}
|
|
24
|
+
export async function sendReferralEmails(emails) {
|
|
25
|
+
return unwrap(await backendApi.post('/referrals/email', { emails }), 'SEND_EMAILS_FAILED');
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=referrals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"referrals.js","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/referrals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAoDlC,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,OAAO,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAuB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,OAAO,MAAM,CACX,MAAM,UAAU,CAAC,IAAI,CAAuB,yBAAyB,EAAE,EAAE,CAAC,EAC1E,qBAAqB,CACtB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,OAAO,MAAM,CACX,MAAM,UAAU,CAAC,IAAI,CAA+B,qBAAqB,EAAE;QACzE,aAAa,EAAE,IAAI;KACpB,CAAC,EACF,sBAAsB,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,MAAM,CAAC,MAAM,UAAU,CAAC,GAAG,CAAgB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAGhC,EAAE;IACJ,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC;KACpC,CAAC,CAAC;IACH,OAAO,MAAM,CACX,MAAM,UAAU,CAAC,GAAG,CAAuB,mBAAmB,MAAM,EAAE,CAAC,EACvE,sBAAsB,CACvB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAgB;IACvD,OAAO,MAAM,CACX,MAAM,UAAU,CAAC,IAAI,CAAwB,kBAAkB,EAAE,EAAE,MAAM,EAAE,CAAC,EAC5E,oBAAoB,CACrB,CAAC;AACJ,CAAC"}
|
|
@@ -25,6 +25,8 @@ export interface SessionStartResult {
|
|
|
25
25
|
retriable: boolean;
|
|
26
26
|
sandbox: ProjectSessionSandbox | null;
|
|
27
27
|
opencode_session_id: string | null;
|
|
28
|
+
/** Server-selected session client transport. Missing means legacy REST. */
|
|
29
|
+
runtime_transport?: 'acp' | 'rest';
|
|
28
30
|
/**
|
|
29
31
|
* Relative proxy path for this session's OpenCode runtime (port 8000), composed
|
|
30
32
|
* against the configured backendUrl. The server owns the proxy scheme; the SDK
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sandbox.d.ts","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/session-sandbox.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,MAAM,MAAM,2BAA2B,GACrC,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;IACzC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,2BAA2B,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAC3B,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,KAAK,EAAE,iBAAiB,CAAC;IACzB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,GACtB,kBAAkB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"session-sandbox.d.ts","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/session-sandbox.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAQjD,MAAM,MAAM,2BAA2B,GACrC,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;IACzC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,2BAA2B,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAC3B,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/D,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,KAAK,EAAE,iBAAiB,CAAC;IACzB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACtC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACnC;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,cAAc,GACtB,kBAAkB,GAAG,IAAI,CA0C3B;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;gBAEN,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE;CAQ5F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAC/C,KAAK,IAAI,iBAAiB,CAE5B;AAkBD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EAIjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAkCpC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,8CAEnE"}
|
|
@@ -18,6 +18,16 @@ export function projectSessionStartSeed(session) {
|
|
|
18
18
|
const externalId = session.sandbox_url.match(/\/p\/([^/]+)\//)?.[1];
|
|
19
19
|
if (!externalId)
|
|
20
20
|
return null;
|
|
21
|
+
// The `project_sessions.sandbox_id` column is nullable (a legacy Suna-migration
|
|
22
|
+
// session is minted with it null and provisioning only writes `sandbox_url`,
|
|
23
|
+
// never back-filling `sandbox_id`). Without this guard the seeded
|
|
24
|
+
// `ProjectSessionSandbox` carries a `null` `sandbox_id`, which the session
|
|
25
|
+
// page then derefs as `sandbox.sandbox_id.slice(0, 8)` and crashes the render
|
|
26
|
+
// (Better Stack pattern e6d0e044). Drop the seed entirely when the id is
|
|
27
|
+
// missing — `useSession`'s `/start` poll then resolves readiness from server
|
|
28
|
+
// truth (which always carries the non-null `session_sandboxes.sandbox_id`).
|
|
29
|
+
if (!session.sandbox_id)
|
|
30
|
+
return null;
|
|
21
31
|
return {
|
|
22
32
|
stage: "ready",
|
|
23
33
|
agent_name: session.agent_name ?? "default",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-sandbox.js","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/session-sandbox.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"session-sandbox.js","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/session-sandbox.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,wCAAwC,CAAC;AAqDpF;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAuB;IAEvB,IACE,OAAO,CAAC,MAAM,KAAK,SAAS;QAC5B,CAAC,OAAO,CAAC,gBAAgB;QACzB,CAAC,OAAO,CAAC,WAAW;QACpB,CAAC,OAAO,CAAC,mBAAmB,EAC5B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,gFAAgF;IAChF,6EAA6E;IAC7E,kEAAkE;IAClE,2EAA2E;IAC3E,8EAA8E;IAC9E,yEAAyE;IACzE,6EAA6E;IAC7E,4EAA4E;IAC5E,IAAI,CAAC,OAAO,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO;QACL,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,SAAS,EAAE,IAAI;QACf,OAAO,EAAE;YACP,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,QAAQ,EAAE,OAAO,CAAC,gBAAgB;YAClC,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,OAAO,CAAC,WAAW;YAC7B,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,YAAY,EAAE,OAAO,CAAC,UAAU;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B;QACD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,MAAM,CAAU;IAChB,IAAI,CAAU;IACd,QAAQ,CAAU;IAElB,YAAY,OAAe,EAAE,OAA8D;QAEzF,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAEhD,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC;AACtE,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAa;IAChD,MAAM,QAAQ,GAAG,KAGJ,CAAC;IACd,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,CAAC;IAChC,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC;IACnF,MAAM,OAAO,GAAG,QAAQ,EAAE,OAAO,IAAI,8BAA8B,CAAC;IAEpE,IAAI,MAAM,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QAChF,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,SAAiB,EACjB,SAAiB;AACjB,2EAA2E;AAC3E,2EAA2E;AAC3E,uEAAuE;AACvE,MAAe;IAEf,MAAM,EAAE,GAAG,MAAM,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,CACpC,aAAa,SAAS,aAAa,SAAS,SAAS,EAAE,EAAE,EACzD,EAAE;IACF,2EAA2E;IAC3E,+EAA+E;IAC/E,EAAE,UAAU,EAAE,KAAK,EAAE,CACtB,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,2BAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7D,2EAA2E;QAC3E,uEAAuE;QACvE,0EAA0E;QAC1E,gEAAgE;QAChE,IAAI,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;YAAE,MAAM,QAAQ,CAAC;QACxF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,oEAAoE;IACpE,sEAAsE;IACtE,kEAAkE;IAClE,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/C,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,IAAI,UAAU,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACzE,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE;YACtC,iBAAiB,EAAE,MAAM,CAAC,mBAAmB;YAC7C,UAAU,EAAE,0BAA0B,CAAC,UAAU,CAAC;YAClD,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB,EAAE,SAAiB;IAClE,OAAO,CAAC,eAAe,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAC1D,CAAC"}
|
|
@@ -36,6 +36,8 @@ export interface ProjectSession {
|
|
|
36
36
|
* 'backend'; a human web session is 'user'. See Kortix-as-a-Backend. */
|
|
37
37
|
origin?: 'user' | 'trigger' | 'schedule' | 'backend' | 'system';
|
|
38
38
|
/** The wrapper's end-user this session acts for (backend origin only). */
|
|
39
|
+
end_user_ref?: string | null;
|
|
40
|
+
/** @deprecated Renamed to `end_user_ref`. Echoed with the same value. */
|
|
39
41
|
origin_ref?: string | null;
|
|
40
42
|
/** The per-session secrets allowlist that was applied (identifiers); null = none. */
|
|
41
43
|
secrets_allowlist?: string[] | null;
|
|
@@ -86,6 +88,15 @@ export interface CreateProjectSessionInput {
|
|
|
86
88
|
* inherits the project default — never another owner's profile.
|
|
87
89
|
*/
|
|
88
90
|
inherit_unbound?: boolean;
|
|
91
|
+
/**
|
|
92
|
+
* Interactive-only: connectors the acting user must have connected themselves
|
|
93
|
+
* for this session (by alias, e.g. `['gmail']`). The server resolves each to
|
|
94
|
+
* the caller's OWN member profile; if one isn't connected, create fails with a
|
|
95
|
+
* structured `CONNECTOR_CONNECTION_REQUIRED` naming the connector so a UI can
|
|
96
|
+
* prompt a connect. Implies `inherit_unbound`. Rejected for backend / service-
|
|
97
|
+
* account tokens (they have no single "current user" — use `connector_bindings`).
|
|
98
|
+
*/
|
|
99
|
+
require_connectors?: string[];
|
|
89
100
|
/**
|
|
90
101
|
* Kortix-as-a-Backend (backend-origin callers only — a PAT / service-account
|
|
91
102
|
* bearer). The wrapper's opaque end-user this session acts for; recorded on the
|
|
@@ -93,6 +104,12 @@ export interface CreateProjectSessionInput {
|
|
|
93
104
|
* caller supplying it is rejected 403. Attribution only — pass the user's
|
|
94
105
|
* connectors via connector_bindings.
|
|
95
106
|
*/
|
|
107
|
+
/** Your opaque handle for the END-USER this session acts for. Backend origin only. */
|
|
108
|
+
end_user_ref?: string;
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated Renamed to `end_user_ref`. Still accepted; sending both is fine
|
|
111
|
+
* only if they agree (disagreeing values are rejected 400).
|
|
112
|
+
*/
|
|
96
113
|
origin_ref?: string;
|
|
97
114
|
/**
|
|
98
115
|
* Kortix-as-a-Backend (backend-origin callers only). Narrow which project
|
|
@@ -102,6 +119,22 @@ export interface CreateProjectSessionInput {
|
|
|
102
119
|
*/
|
|
103
120
|
secrets?: string[];
|
|
104
121
|
}
|
|
122
|
+
export interface WarmProjectSessionWorkspaceRefresh {
|
|
123
|
+
status: 'skipped' | 'unchanged' | 'updated' | 'failed';
|
|
124
|
+
before_sha?: string | null;
|
|
125
|
+
after_sha?: string | null;
|
|
126
|
+
error?: string;
|
|
127
|
+
}
|
|
128
|
+
export interface WarmProjectSessionResult {
|
|
129
|
+
session: ProjectSession;
|
|
130
|
+
reused: boolean;
|
|
131
|
+
workspace_refresh: WarmProjectSessionWorkspaceRefresh;
|
|
132
|
+
}
|
|
133
|
+
export interface ClaimWarmProjectSessionInput {
|
|
134
|
+
session_id: string;
|
|
135
|
+
agent_name?: string;
|
|
136
|
+
sandbox_slug?: string;
|
|
137
|
+
}
|
|
105
138
|
export interface ProjectOpenCodeSession {
|
|
106
139
|
id: string;
|
|
107
140
|
title: string | null;
|
|
@@ -111,8 +144,16 @@ export interface ProjectOpenCodeSession {
|
|
|
111
144
|
updated_at: number | null;
|
|
112
145
|
archived_at: number | null;
|
|
113
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* @param options.scope - `project` asks for the manager-only full inventory.
|
|
149
|
+
* @param options.end_user_ref - Kortix-as-a-Backend: return only the sessions
|
|
150
|
+
* this wrapper created for ONE of its end-users. Filtered server-side, so a
|
|
151
|
+
* wrapper never has to fetch the whole project to answer "show me this
|
|
152
|
+
* customer's sessions".
|
|
153
|
+
*/
|
|
114
154
|
export declare function listProjectSessions(projectId: string, options?: {
|
|
115
155
|
scope?: 'visible' | 'project';
|
|
156
|
+
end_user_ref?: string;
|
|
116
157
|
}): Promise<ProjectSession[]>;
|
|
117
158
|
/**
|
|
118
159
|
* Set who can see/open a session (private | project | members). Owner or
|
|
@@ -175,6 +216,8 @@ export declare function revokeSessionPublicShare(projectId: string, sessionId: s
|
|
|
175
216
|
share: SessionPublicShare;
|
|
176
217
|
}>;
|
|
177
218
|
export declare function createProjectSession(projectId: string, input?: CreateProjectSessionInput): Promise<ProjectSession>;
|
|
219
|
+
export declare function ensureWarmProjectSession(projectId: string): Promise<WarmProjectSessionResult>;
|
|
220
|
+
export declare function claimWarmProjectSession(projectId: string, input: ClaimWarmProjectSessionInput): Promise<ProjectSession>;
|
|
178
221
|
export declare function getProjectSession(projectId: string, sessionId: string, options?: {
|
|
179
222
|
showErrors?: boolean;
|
|
180
223
|
}): Promise<ProjectSession>;
|
|
@@ -251,6 +294,39 @@ export declare function getSessionTranscript(projectId: string, sessionId: strin
|
|
|
251
294
|
limit?: number;
|
|
252
295
|
chars?: number;
|
|
253
296
|
}): Promise<SessionTranscript>;
|
|
297
|
+
/** One line of a session's voice-call transcript (`kortix.voice_call_turns`).
|
|
298
|
+
* 'user'/'agent' are either side of the spoken conversation; 'tool' is a
|
|
299
|
+
* record of an `ask_kortix`/`run_command` call the voice-agent worker made
|
|
300
|
+
* through the voice MCP (see apps/api/src/channels/voice/mcp.ts) — not
|
|
301
|
+
* spoken, but part of "what did the voice agent DO" during the call. */
|
|
302
|
+
export interface VoiceTranscriptTurn {
|
|
303
|
+
cursor: number;
|
|
304
|
+
role: 'user' | 'agent' | 'tool' | (string & {});
|
|
305
|
+
speaker: string | null;
|
|
306
|
+
text: string;
|
|
307
|
+
at: string;
|
|
308
|
+
}
|
|
309
|
+
export interface VoiceTranscript {
|
|
310
|
+
session_id: string;
|
|
311
|
+
call_id: string;
|
|
312
|
+
/** Whether a voice-agent worker is in the call's LiveKit room right now. */
|
|
313
|
+
live: boolean;
|
|
314
|
+
/** Highest `cursor` returned — pass back as `cursor` to page for only what's new. */
|
|
315
|
+
cursor: number;
|
|
316
|
+
count: number;
|
|
317
|
+
turns: VoiceTranscriptTurn[];
|
|
318
|
+
}
|
|
319
|
+
/** A session's live voice-call transcript — every spoken turn plus every
|
|
320
|
+
* ask_kortix/run_command the worker issued, in one monotonic feed (a call's
|
|
321
|
+
* `callId` IS its `sessionId`, so there is nothing else to key this by).
|
|
322
|
+
* Visible to anyone who can see the session (same gate as `/audit`,
|
|
323
|
+
* `/transcript`). Returns `{ turns: [] }` for a session that never made a
|
|
324
|
+
* voice call — not a 404, since "no call yet" is the common case. */
|
|
325
|
+
export declare function getVoiceTranscript(projectId: string, sessionId: string, options?: {
|
|
326
|
+
cursor?: number;
|
|
327
|
+
limit?: number;
|
|
328
|
+
showErrors?: boolean;
|
|
329
|
+
}): Promise<VoiceTranscript>;
|
|
254
330
|
export declare function updateProjectSession(projectId: string, sessionId: string, input: {
|
|
255
331
|
name?: string;
|
|
256
332
|
metadata?: Record<string, unknown>;
|
|
@@ -269,4 +345,17 @@ export declare function stopProjectSession(projectId: string, sessionId: string)
|
|
|
269
345
|
session_id: string;
|
|
270
346
|
status: string;
|
|
271
347
|
}>;
|
|
348
|
+
/**
|
|
349
|
+
* Change the model a session uses, mid-flight.
|
|
350
|
+
*
|
|
351
|
+
* `opencode_model` is set at create; this re-points an existing session. When
|
|
352
|
+
* the sandbox is live the change takes effect immediately (opencode restarts to
|
|
353
|
+
* rebuild its config), which ends any in-flight turn. `applied_live: false`
|
|
354
|
+
* means it was stored and will apply when the sandbox next starts.
|
|
355
|
+
*/
|
|
356
|
+
export declare function setProjectSessionModel(projectId: string, sessionId: string, opencodeModel: string): Promise<{
|
|
357
|
+
opencode_model: string;
|
|
358
|
+
applied_live: boolean;
|
|
359
|
+
detail?: string;
|
|
360
|
+
}>;
|
|
272
361
|
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/sessions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../../src/core/rest/projects-client/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,20 @@
|
|
|
2
2
|
import { backendApi } from '../../http/api-client.js';
|
|
3
3
|
import { markSessionFresh } from '../../http/fresh-sessions.js';
|
|
4
4
|
import { unwrap } from './shared.js';
|
|
5
|
+
/**
|
|
6
|
+
* @param options.scope - `project` asks for the manager-only full inventory.
|
|
7
|
+
* @param options.end_user_ref - Kortix-as-a-Backend: return only the sessions
|
|
8
|
+
* this wrapper created for ONE of its end-users. Filtered server-side, so a
|
|
9
|
+
* wrapper never has to fetch the whole project to answer "show me this
|
|
10
|
+
* customer's sessions".
|
|
11
|
+
*/
|
|
5
12
|
export async function listProjectSessions(projectId, options) {
|
|
6
|
-
const
|
|
13
|
+
const params = new URLSearchParams();
|
|
14
|
+
if (options?.scope && options.scope !== 'visible')
|
|
15
|
+
params.set('scope', options.scope);
|
|
16
|
+
if (options?.end_user_ref)
|
|
17
|
+
params.set('end_user_ref', options.end_user_ref);
|
|
18
|
+
const query = params.size > 0 ? `?${params}` : '';
|
|
7
19
|
return unwrap(await backendApi.get(`/projects/${projectId}/sessions${query}`));
|
|
8
20
|
}
|
|
9
21
|
/**
|
|
@@ -38,6 +50,16 @@ export async function createProjectSession(projectId, input) {
|
|
|
38
50
|
}
|
|
39
51
|
return session;
|
|
40
52
|
}
|
|
53
|
+
export async function ensureWarmProjectSession(projectId) {
|
|
54
|
+
const result = unwrap(await backendApi.post(`/projects/${projectId}/sessions/warm`, {}));
|
|
55
|
+
markSessionFresh(result.session.session_id);
|
|
56
|
+
return result;
|
|
57
|
+
}
|
|
58
|
+
export async function claimWarmProjectSession(projectId, input) {
|
|
59
|
+
const session = unwrap(await backendApi.post(`/projects/${projectId}/sessions/warm/claim`, input, { showErrors: false }));
|
|
60
|
+
markSessionFresh(session.session_id);
|
|
61
|
+
return session;
|
|
62
|
+
}
|
|
41
63
|
export async function getProjectSession(projectId, sessionId, options) {
|
|
42
64
|
return unwrap(await backendApi.get(`/projects/${projectId}/sessions/${sessionId}`, {
|
|
43
65
|
showErrors: options?.showErrors,
|
|
@@ -61,6 +83,21 @@ export async function getSessionTranscript(projectId, sessionId, options) {
|
|
|
61
83
|
const qs = search.toString();
|
|
62
84
|
return unwrap(await backendApi.get(`/projects/${projectId}/sessions/${sessionId}/transcript${qs ? `?${qs}` : ''}`));
|
|
63
85
|
}
|
|
86
|
+
/** A session's live voice-call transcript — every spoken turn plus every
|
|
87
|
+
* ask_kortix/run_command the worker issued, in one monotonic feed (a call's
|
|
88
|
+
* `callId` IS its `sessionId`, so there is nothing else to key this by).
|
|
89
|
+
* Visible to anyone who can see the session (same gate as `/audit`,
|
|
90
|
+
* `/transcript`). Returns `{ turns: [] }` for a session that never made a
|
|
91
|
+
* voice call — not a 404, since "no call yet" is the common case. */
|
|
92
|
+
export async function getVoiceTranscript(projectId, sessionId, options) {
|
|
93
|
+
const search = new URLSearchParams();
|
|
94
|
+
if (options?.cursor != null)
|
|
95
|
+
search.set('cursor', String(options.cursor));
|
|
96
|
+
if (options?.limit != null)
|
|
97
|
+
search.set('limit', String(options.limit));
|
|
98
|
+
const qs = search.toString();
|
|
99
|
+
return unwrap(await backendApi.get(`/projects/${projectId}/sessions/${sessionId}/voice-transcript${qs ? `?${qs}` : ''}`, { showErrors: options?.showErrors }));
|
|
100
|
+
}
|
|
64
101
|
export async function updateProjectSession(projectId, sessionId, input) {
|
|
65
102
|
return unwrap(await backendApi.patch(`/projects/${projectId}/sessions/${sessionId}`, input));
|
|
66
103
|
}
|
|
@@ -74,4 +111,15 @@ export async function restartProjectSession(projectId, sessionId) {
|
|
|
74
111
|
export async function stopProjectSession(projectId, sessionId) {
|
|
75
112
|
return unwrap(await backendApi.post(`/projects/${projectId}/sessions/${sessionId}/stop`, {}));
|
|
76
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Change the model a session uses, mid-flight.
|
|
116
|
+
*
|
|
117
|
+
* `opencode_model` is set at create; this re-points an existing session. When
|
|
118
|
+
* the sandbox is live the change takes effect immediately (opencode restarts to
|
|
119
|
+
* rebuild its config), which ends any in-flight turn. `applied_live: false`
|
|
120
|
+
* means it was stored and will apply when the sandbox next starts.
|
|
121
|
+
*/
|
|
122
|
+
export async function setProjectSessionModel(projectId, sessionId, opencodeModel) {
|
|
123
|
+
return unwrap(await backendApi.put(`/projects/${projectId}/sessions/${encodeURIComponent(sessionId)}/model`, { opencode_model: opencodeModel }));
|
|
124
|
+
}
|
|
77
125
|
//# sourceMappingURL=sessions.js.map
|