@tidblink/server 0.0.0-stage → 0.3.0-rc.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.
Files changed (83) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +993 -2
  3. package/dist/audio.d.ts +63 -0
  4. package/dist/audio.d.ts.map +1 -0
  5. package/dist/audio.js +163 -0
  6. package/dist/audio.js.map +1 -0
  7. package/dist/client-tools.d.ts +46 -0
  8. package/dist/client-tools.d.ts.map +1 -0
  9. package/dist/client-tools.js +114 -0
  10. package/dist/client-tools.js.map +1 -0
  11. package/dist/control.d.ts +17 -0
  12. package/dist/control.d.ts.map +1 -0
  13. package/dist/control.js +52 -0
  14. package/dist/control.js.map +1 -0
  15. package/dist/errors.d.ts +80 -0
  16. package/dist/errors.d.ts.map +1 -0
  17. package/dist/errors.js +87 -0
  18. package/dist/errors.js.map +1 -0
  19. package/dist/files.d.ts +129 -0
  20. package/dist/files.d.ts.map +1 -0
  21. package/dist/files.js +388 -0
  22. package/dist/files.js.map +1 -0
  23. package/dist/history.d.ts +242 -0
  24. package/dist/history.d.ts.map +1 -0
  25. package/dist/history.js +91 -0
  26. package/dist/history.js.map +1 -0
  27. package/dist/http.d.ts +64 -0
  28. package/dist/http.d.ts.map +1 -0
  29. package/dist/http.js +282 -0
  30. package/dist/http.js.map +1 -0
  31. package/dist/index.d.ts +26 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +12 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/organization.d.ts +70 -0
  36. package/dist/organization.d.ts.map +1 -0
  37. package/dist/organization.js +118 -0
  38. package/dist/organization.js.map +1 -0
  39. package/dist/progress.d.ts +34 -0
  40. package/dist/progress.d.ts.map +1 -0
  41. package/dist/progress.js +154 -0
  42. package/dist/progress.js.map +1 -0
  43. package/dist/realtime.d.ts +91 -0
  44. package/dist/realtime.d.ts.map +1 -0
  45. package/dist/realtime.js +112 -0
  46. package/dist/realtime.js.map +1 -0
  47. package/dist/schedulers.d.ts +129 -0
  48. package/dist/schedulers.d.ts.map +1 -0
  49. package/dist/schedulers.js +91 -0
  50. package/dist/schedulers.js.map +1 -0
  51. package/dist/session.d.ts +136 -0
  52. package/dist/session.d.ts.map +1 -0
  53. package/dist/session.js +226 -0
  54. package/dist/session.js.map +1 -0
  55. package/dist/sse.d.ts +7 -0
  56. package/dist/sse.d.ts.map +1 -0
  57. package/dist/sse.js +45 -0
  58. package/dist/sse.js.map +1 -0
  59. package/dist/turn.d.ts +43 -0
  60. package/dist/turn.d.ts.map +1 -0
  61. package/dist/turn.js +206 -0
  62. package/dist/turn.js.map +1 -0
  63. package/dist/usage.d.ts +462 -0
  64. package/dist/usage.d.ts.map +1 -0
  65. package/dist/usage.js +20 -0
  66. package/dist/usage.js.map +1 -0
  67. package/dist/user.d.ts +96 -0
  68. package/dist/user.d.ts.map +1 -0
  69. package/dist/user.js +139 -0
  70. package/dist/user.js.map +1 -0
  71. package/examples/answer-client-tool.mjs +69 -0
  72. package/examples/control-turn.mjs +48 -0
  73. package/examples/create-session.mjs +69 -0
  74. package/examples/observe-message.mjs +44 -0
  75. package/examples/organization-session.mjs +66 -0
  76. package/examples/prepare-realtime-connection.mjs +61 -0
  77. package/examples/provision-user.mjs +83 -0
  78. package/examples/read-usage.mjs +62 -0
  79. package/examples/schedule-task.mjs +67 -0
  80. package/examples/send-message.mjs +43 -0
  81. package/examples/submit-audio.mjs +52 -0
  82. package/examples/upload-file.mjs +53 -0
  83. package/package.json +65 -4
@@ -0,0 +1,136 @@
1
+ import { type AudioTurnInput, type AudioTurnEvent, type AudioTurnResult } from "./audio.js";
2
+ import { type PendingClientToolCall, type ClientToolOutputInput, type ClientToolDeclaration, type ClientToolSet, type ReplaceClientToolsOptions } from "./client-tools.js";
3
+ import { type TurnCommandInput, type RetryReceipt } from "./control.js";
4
+ import { type SessionEvent, type SessionEventsOptions, type ObserveTurnOptions, type TurnObservation } from "./progress.js";
5
+ import type { RequestOptions } from "./organization.js";
6
+ import { HttpClient } from "./http.js";
7
+ import { type OpenRealtimeConnectionInput, type OpenRealtimeConnectionResult, type RealtimeConnectGrant, type RealtimeConnection, type RealtimeModelSelection } from "./realtime.js";
8
+ import { type CreateTurnInput, type TurnResult, type WaitForResultOptions } from "./turn.js";
9
+ import { type SessionInteraction, type SessionInteractionPage, type TurnRecord, type TurnPage, type SessionTimelinePage } from "./history.js";
10
+ import type { ListOptions } from "./http.js";
11
+ /** Model IDs come from the deployment catalog, including newly published models. */
12
+ export type SelectableSessionModel = string;
13
+ export type SessionModel = string;
14
+ export interface CreateSessionOptions extends RequestOptions {
15
+ idempotencyKey: string;
16
+ model?: string;
17
+ realtimeModel?: string;
18
+ billingTag?: BillingTag | null;
19
+ tools?: ClientToolDeclaration[];
20
+ }
21
+ export interface SuggestSessionNameInput {
22
+ userText: string;
23
+ assistantText?: string;
24
+ }
25
+ export interface BillingTag {
26
+ key: string;
27
+ value: string;
28
+ }
29
+ export interface SessionRecord {
30
+ organizationId: string;
31
+ sessionId: string;
32
+ name: string | null;
33
+ autoTitle: string | null;
34
+ ownerUserId: string;
35
+ startedByUserId: string;
36
+ createdByType: "user" | "scheduler" | "template_preview";
37
+ readOnly: boolean;
38
+ sourceSchedulerId: string | null;
39
+ sourceSchedulerFireId: string | null;
40
+ billingTag: BillingTag | null;
41
+ model: SessionModel;
42
+ modelRevision: number;
43
+ realtimeModel: string | null;
44
+ realtimeModelRevision: number;
45
+ realtimeModelEtag: string;
46
+ realtimeVoice: import("./realtime.js").RealtimeVoiceSetting | null;
47
+ template?: {
48
+ templateId: string;
49
+ contentDigest: string;
50
+ } | null;
51
+ realtime: {
52
+ id: string;
53
+ status: "connecting" | "active" | "paused";
54
+ audio: import("./realtime.js").RealtimeAudioFormats;
55
+ startedAt: string;
56
+ } | null;
57
+ createdWithAgentId: string;
58
+ modelPolicyStatus: "allowed" | "organization_disallowed";
59
+ status: "active" | "deleted";
60
+ activeTurnId: string | null;
61
+ createdAt: string;
62
+ updatedAt: string;
63
+ deletedAt: string | null;
64
+ }
65
+ export type ClarificationItem = {
66
+ prompt: string;
67
+ selectionMode: "single";
68
+ answerChoices: [string, string, string?];
69
+ response?: {
70
+ answers: [string];
71
+ responseTurnId: string;
72
+ };
73
+ } | {
74
+ prompt: string;
75
+ selectionMode: "multiple";
76
+ answerChoices: [string, string, ...string[]];
77
+ response?: {
78
+ answers: [string, ...string[]];
79
+ responseTurnId: string;
80
+ };
81
+ };
82
+ export declare class Session {
83
+ #private;
84
+ readonly id: string;
85
+ constructor(http: HttpClient, id: string, record?: SessionRecord, etag?: string);
86
+ get data(): Readonly<SessionRecord> | undefined;
87
+ get model(): SessionModel | undefined;
88
+ refresh(options?: RequestOptions): Promise<this>;
89
+ setModel(model: SelectableSessionModel, options?: RequestOptions): Promise<this>;
90
+ rename(name: string, options?: RequestOptions): Promise<this>;
91
+ suggestName(input: SuggestSessionNameInput, options?: RequestOptions): Promise<this>;
92
+ setBillingTag(billingTag: BillingTag | null, options?: RequestOptions): Promise<this>;
93
+ delete(options?: RequestOptions): Promise<this>;
94
+ openRealtimeConnection(input?: OpenRealtimeConnectionInput, options?: {
95
+ signal?: AbortSignal;
96
+ }): Promise<OpenRealtimeConnectionResult>;
97
+ getRealtimeConnection(options?: {
98
+ signal?: AbortSignal;
99
+ }): Promise<RealtimeConnection>;
100
+ createRealtimeConnectToken(options?: {
101
+ signal?: AbortSignal;
102
+ }): Promise<RealtimeConnectGrant>;
103
+ endRealtimeConnection(options?: {
104
+ signal?: AbortSignal;
105
+ }): Promise<RealtimeConnection>;
106
+ getRealtimeModelSelection(options?: {
107
+ signal?: AbortSignal;
108
+ }): Promise<RealtimeModelSelection>;
109
+ setRealtimeModel(model: string, options: {
110
+ ifMatch: string;
111
+ signal?: AbortSignal;
112
+ }): Promise<RealtimeModelSelection>;
113
+ events(options?: SessionEventsOptions): AsyncGenerator<SessionEvent>;
114
+ observe(inputId: string, options?: ObserveTurnOptions): AsyncGenerator<TurnObservation>;
115
+ streamAudio(input: AudioTurnInput): AsyncGenerator<AudioTurnEvent>;
116
+ audio(input: AudioTurnInput): Promise<AudioTurnResult>;
117
+ getClientTools(options?: RequestOptions): Promise<ClientToolSet>;
118
+ replaceClientTools(tools: readonly ClientToolDeclaration[], options: ReplaceClientToolsOptions): Promise<ClientToolSet>;
119
+ listPendingClientToolCalls(options?: RequestOptions): Promise<PendingClientToolCall[]>;
120
+ submitClientToolOutput(input: ClientToolOutputInput): Promise<SessionInteraction>;
121
+ history(options?: ListOptions): Promise<TurnPage>;
122
+ getTurn(turnId: string, options?: RequestOptions): Promise<TurnRecord>;
123
+ timeline(options?: ListOptions): Promise<SessionTimelinePage>;
124
+ listInteractions(options?: ListOptions): Promise<SessionInteractionPage>;
125
+ getInteraction(inputId: string, options?: RequestOptions): Promise<SessionInteraction>;
126
+ reconcileInteraction(clientEventId: string, options?: RequestOptions): Promise<SessionInteraction | null>;
127
+ /** Acceptance requests cancellation; read the receipt for the eventual outcome. */
128
+ cancel(input: TurnCommandInput): Promise<SessionInteraction>;
129
+ /** Explicit checkpoint retry has its own identity and original execution result. */
130
+ retry(input: TurnCommandInput): Promise<RetryReceipt>;
131
+ submitMessage(input: CreateTurnInput): Promise<SessionInteraction>;
132
+ waitForResult(inputId: string, options?: WaitForResultOptions): Promise<TurnResult>;
133
+ turn(input: CreateTurnInput, options?: WaitForResultOptions): Promise<TurnResult>;
134
+ }
135
+ export declare const createSessionForAgent: (http: HttpClient, agentId: string, options: CreateSessionOptions) => Promise<Session>;
136
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ import { audioTurn, streamAudio, } from "./audio.js";
2
+ import { getClientTools, replaceClientTools, validateClientTools, listPendingClientToolCalls, submitClientToolOutput, } from "./client-tools.js";
3
+ import { submitTurnCommand, } from "./control.js";
4
+ import { sessionEvents, observeTurn, } from "./progress.js";
5
+ import { OutcomeUnknownError } from "./errors.js";
6
+ import { requestOptions, HttpClient, requireEtag, requireKnownKeys, requireCreationKey, } from "./http.js";
7
+ import { realtimeModelSelectionFrom, requireOpenRealtimeConnectionReceipt, requireRealtimeConnectGrantReceipt, requireRealtimeConnectionReceipt, requireRealtimeModelSelectionReceipt, } from "./realtime.js";
8
+ import { submitMessage, waitForResult, validateWaitOptions, } from "./turn.js";
9
+ import { getInteraction, reconcileInteraction, listInteractions, history, getTurn, timeline, } from "./history.js";
10
+ export class Session {
11
+ #http;
12
+ id;
13
+ #etag;
14
+ #record;
15
+ constructor(http, id, record, etag) {
16
+ if (!id)
17
+ throw new TypeError("Session id is required");
18
+ this.#http = http;
19
+ this.id = id;
20
+ this.#record = record;
21
+ this.#etag = etag;
22
+ }
23
+ get data() {
24
+ return this.#record;
25
+ }
26
+ get model() {
27
+ return this.#record?.model;
28
+ }
29
+ async refresh(options) {
30
+ options = requestOptions(options);
31
+ const result = await this.#http.getResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}`, options);
32
+ const etag = requireEtag(result);
33
+ this.#record = result.data.session;
34
+ this.#etag = etag;
35
+ return this;
36
+ }
37
+ async setModel(model, options) {
38
+ options = requestOptions(options);
39
+ if (!this.#etag)
40
+ await this.refresh(options);
41
+ const result = await this.#http.patchResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/model`, { model }, {
42
+ ifMatch: this.#etag,
43
+ outcomeUnknown: true,
44
+ ...options,
45
+ });
46
+ if (!result.etag)
47
+ throw new OutcomeUnknownError("Session model update returned no model ETag; read the Session before changing it again", { requestId: result.requestId });
48
+ this.#record = sessionReceipt(result.data, result.requestId);
49
+ const etag = result.etag;
50
+ this.#etag = etag;
51
+ return this;
52
+ }
53
+ async rename(name, options) {
54
+ options = requestOptions(options);
55
+ const result = await this.#http.postResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/name`, { name }, { ...options, outcomeUnknown: true });
56
+ this.#record = sessionReceipt(result.data, result.requestId);
57
+ return this;
58
+ }
59
+ async suggestName(input, options) {
60
+ options = requestOptions(options);
61
+ requireKnownKeys(input, ["userText", "assistantText"], "Session naming input");
62
+ const result = await this.#http.postResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/name/suggest`, input, { ...options, outcomeUnknown: true });
63
+ this.#record = sessionReceipt(result.data, result.requestId);
64
+ return this;
65
+ }
66
+ async setBillingTag(billingTag, options) {
67
+ options = requestOptions(options);
68
+ const result = await this.#http.patchResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/billing-tag`, { billingTag }, { ...options, outcomeUnknown: true });
69
+ this.#record = sessionReceipt(result.data, result.requestId);
70
+ return this;
71
+ }
72
+ async delete(options) {
73
+ options = requestOptions(options);
74
+ const result = await this.#http.deleteResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}`, { ...options, outcomeUnknown: true });
75
+ this.#record = sessionReceipt(result.data, result.requestId);
76
+ return this;
77
+ }
78
+ async openRealtimeConnection(input = {}, options) {
79
+ options = requestOptions(options);
80
+ requireKnownKeys(input, ["audio", "metadata"], "Realtime Connection input");
81
+ const result = await this.#http.postResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/realtime`, input, {
82
+ outcomeUnknown: true,
83
+ ...(options?.signal ? { signal: options.signal } : {}),
84
+ });
85
+ return requireOpenRealtimeConnectionReceipt(result.data, result.requestId);
86
+ }
87
+ async getRealtimeConnection(options) {
88
+ options = requestOptions(options);
89
+ const response = await this.#http.get(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/realtime`, options);
90
+ return response.realtimeConnection;
91
+ }
92
+ async createRealtimeConnectToken(options) {
93
+ options = requestOptions(options);
94
+ const result = await this.#http.postResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/realtime/connect-tokens`, undefined, {
95
+ outcomeUnknown: true,
96
+ ...(options?.signal ? { signal: options.signal } : {}),
97
+ });
98
+ return requireRealtimeConnectGrantReceipt(result.data, result.requestId);
99
+ }
100
+ async endRealtimeConnection(options) {
101
+ options = requestOptions(options);
102
+ const result = await this.#http.deleteResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/realtime`, {
103
+ outcomeUnknown: true,
104
+ ...(options?.signal ? { signal: options.signal } : {}),
105
+ });
106
+ return requireRealtimeConnectionReceipt(result.data, result.requestId);
107
+ }
108
+ async getRealtimeModelSelection(options) {
109
+ options = requestOptions(options);
110
+ const response = await this.#http.get(`/api/v1/user/sessions/${encodeURIComponent(this.id)}`, options);
111
+ return realtimeModelSelectionFrom(response.session);
112
+ }
113
+ async setRealtimeModel(model, options) {
114
+ requireKnownKeys(options, ["ifMatch", "signal"], "Realtime Model selection options");
115
+ if (!model || model.length > 128)
116
+ throw new TypeError("Realtime Model ID must contain 1-128 characters");
117
+ if (!options.ifMatch)
118
+ throw new TypeError("Realtime Model selection requires ifMatch");
119
+ const result = await this.#http.patchResponse(`/api/v1/user/sessions/${encodeURIComponent(this.id)}/realtime-model`, { realtimeModel: model }, {
120
+ ifMatch: options.ifMatch,
121
+ outcomeUnknown: true,
122
+ ...(options.signal ? { signal: options.signal } : {}),
123
+ });
124
+ const receipt = result.data;
125
+ return requireRealtimeModelSelectionReceipt(receipt?.session, result.requestId);
126
+ }
127
+ events(options) {
128
+ return sessionEvents(this.#http, this.id, options);
129
+ }
130
+ observe(inputId, options) {
131
+ return observeTurn(this.#http, this.id, inputId, options);
132
+ }
133
+ streamAudio(input) {
134
+ return streamAudio(this.#http, this.id, input);
135
+ }
136
+ audio(input) {
137
+ return audioTurn(this.#http, this.id, input);
138
+ }
139
+ getClientTools(options) {
140
+ return getClientTools(this.#http, this.id, options);
141
+ }
142
+ replaceClientTools(tools, options) {
143
+ return replaceClientTools(this.#http, this.id, tools, options);
144
+ }
145
+ listPendingClientToolCalls(options) {
146
+ return listPendingClientToolCalls(this.#http, this.id, options);
147
+ }
148
+ submitClientToolOutput(input) {
149
+ return submitClientToolOutput(this.#http, this.id, input);
150
+ }
151
+ history(options) {
152
+ return history(this.#http, this.id, options);
153
+ }
154
+ getTurn(turnId, options) {
155
+ return getTurn(this.#http, this.id, turnId, options);
156
+ }
157
+ timeline(options) {
158
+ return timeline(this.#http, this.id, options);
159
+ }
160
+ listInteractions(options) {
161
+ return listInteractions(this.#http, this.id, options);
162
+ }
163
+ getInteraction(inputId, options) {
164
+ return getInteraction(this.#http, this.id, inputId, options);
165
+ }
166
+ reconcileInteraction(clientEventId, options) {
167
+ return reconcileInteraction(this.#http, this.id, clientEventId, options);
168
+ }
169
+ /** Acceptance requests cancellation; read the receipt for the eventual outcome. */
170
+ cancel(input) {
171
+ return submitTurnCommand(this.#http, this.id, "cancel", input);
172
+ }
173
+ /** Explicit checkpoint retry has its own identity and original execution result. */
174
+ retry(input) {
175
+ return submitTurnCommand(this.#http, this.id, "retry", input);
176
+ }
177
+ submitMessage(input) {
178
+ return submitMessage(this.#http, this.id, input);
179
+ }
180
+ waitForResult(inputId, options) {
181
+ return waitForResult(this.#http, this.id, inputId, options);
182
+ }
183
+ async turn(input, options) {
184
+ validateWaitOptions(options);
185
+ const waitOptions = {
186
+ ...(input.signal ? { signal: input.signal } : {}),
187
+ ...options,
188
+ };
189
+ const accepted = await this.submitMessage(input);
190
+ return this.waitForResult(accepted.inputId, waitOptions);
191
+ }
192
+ }
193
+ const sessionReceipt = (value, requestId) => {
194
+ if (typeof value?.session?.sessionId !== "string" ||
195
+ !value.session.sessionId) {
196
+ throw new OutcomeUnknownError("Session mutation returned no usable Session; reconcile before retrying", { requestId });
197
+ }
198
+ return value.session;
199
+ };
200
+ export const createSessionForAgent = async (http, agentId, options) => {
201
+ requireKnownKeys(options, [
202
+ "idempotencyKey",
203
+ "model",
204
+ "realtimeModel",
205
+ "billingTag",
206
+ "tools",
207
+ "signal",
208
+ "requestId",
209
+ ], "Session options");
210
+ requireCreationKey(options.idempotencyKey);
211
+ if (options.tools !== undefined)
212
+ validateClientTools(options.tools);
213
+ const { idempotencyKey, signal, requestId, ...body } = options;
214
+ const result = await http.postResponse("/api/v1/user/sessions", { agentId, ...body }, {
215
+ idempotencyKey,
216
+ idempotent: true,
217
+ outcomeUnknown: true,
218
+ ...(signal ? { signal } : {}),
219
+ ...(requestId ? { requestId } : {}),
220
+ });
221
+ const record = sessionReceipt(result.data, result.requestId);
222
+ if (!result.etag)
223
+ throw new OutcomeUnknownError("Session creation returned no model ETag; recover with the same creation key", { requestId: result.requestId });
224
+ return new Session(http, record.sessionId, record, result.etag);
225
+ };
226
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/sse.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /** Decode data frames only. A frame is complete only at its blank line. */
2
+ export declare function decodeSse(body: ReadableStream<Uint8Array>): AsyncGenerator<{
3
+ id: string;
4
+ event: string;
5
+ data: string;
6
+ }>;
7
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,wBAAuB,SAAS,CAC9B,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,GAC/B,cAAc,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAuCD"}
package/dist/sse.js ADDED
@@ -0,0 +1,45 @@
1
+ /** Decode data frames only. A frame is complete only at its blank line. */
2
+ export async function* decodeSse(body) {
3
+ const reader = body.getReader();
4
+ const decoder = new TextDecoder("utf-8", { fatal: true });
5
+ let buffer = "";
6
+ let id = "";
7
+ let event = "";
8
+ let data = [];
9
+ try {
10
+ while (true) {
11
+ const chunk = await reader.read();
12
+ buffer += decoder.decode(chunk.value, { stream: !chunk.done });
13
+ let end;
14
+ while ((end = buffer.search(/[\r\n]/)) !== -1) {
15
+ if (buffer[end] === "\r" && end === buffer.length - 1 && !chunk.done)
16
+ break;
17
+ const line = buffer.slice(0, end);
18
+ buffer = buffer.slice(end + (buffer.slice(end, end + 2) === "\r\n" ? 2 : 1));
19
+ if (line === "") {
20
+ if (data.length)
21
+ yield { id, event, data: data.join("\n") };
22
+ event = "";
23
+ data = [];
24
+ continue;
25
+ }
26
+ const separator = line.indexOf(":");
27
+ const field = separator === -1 ? line : line.slice(0, separator);
28
+ const value = separator === -1 ? "" : line.slice(separator + 1).replace(/^ /, "");
29
+ if (field === "data")
30
+ data.push(value);
31
+ else if (field === "event")
32
+ event = value;
33
+ else if (field === "id" && !value.includes("\0"))
34
+ id = value;
35
+ }
36
+ if (chunk.done)
37
+ return;
38
+ }
39
+ }
40
+ finally {
41
+ await reader.cancel().catch(() => undefined);
42
+ reader.releaseLock();
43
+ }
44
+ }
45
+ //# sourceMappingURL=sse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,SAAS,CAC9B,IAAgC;IAMhC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,IAAI,GAAa,EAAE,CAAC;IACxB,IAAI,CAAC;QACH,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/D,IAAI,GAAW,CAAC;YAChB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC9C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,GAAG,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAClE,MAAM;gBACR,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAClC,MAAM,GAAG,MAAM,CAAC,KAAK,CACnB,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACtD,CAAC;gBACF,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;oBAChB,IAAI,IAAI,CAAC,MAAM;wBAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5D,KAAK,GAAG,EAAE,CAAC;oBACX,IAAI,GAAG,EAAE,CAAC;oBACV,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACjE,MAAM,KAAK,GACT,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtE,IAAI,KAAK,KAAK,MAAM;oBAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAClC,IAAI,KAAK,KAAK,OAAO;oBAAE,KAAK,GAAG,KAAK,CAAC;qBACrC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;oBAAE,EAAE,GAAG,KAAK,CAAC;YAC/D,CAAC;YACD,IAAI,KAAK,CAAC,IAAI;gBAAE,OAAO;QACzB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,CAAC,WAAW,EAAE,CAAC;IACvB,CAAC;AACH,CAAC"}
package/dist/turn.d.ts ADDED
@@ -0,0 +1,43 @@
1
+ import { HttpClient } from "./http.js";
2
+ import { type SessionInteraction } from "./history.js";
3
+ import type { BillingTag, ClarificationItem } from "./session.js";
4
+ export interface CreateTurnInput {
5
+ /** Persist this Session-local command identity before dispatch. */
6
+ clientEventId: string;
7
+ text: string | [string, ...string[]];
8
+ userFileIds?: string[];
9
+ clarificationSourceTurnId?: string;
10
+ billingTag?: BillingTag | null;
11
+ requestId?: string;
12
+ signal?: AbortSignal;
13
+ }
14
+ export interface WaitForResultOptions {
15
+ /** Local deadline only; default 60 seconds. Never cancels execution. */
16
+ timeoutMs?: number;
17
+ pollIntervalMs?: number;
18
+ requestId?: string;
19
+ signal?: AbortSignal;
20
+ }
21
+ type ResultIdentity = {
22
+ sessionId: string;
23
+ inputId: string;
24
+ turnId: string;
25
+ messageId: string;
26
+ text: string;
27
+ interaction: SessionInteraction;
28
+ };
29
+ export type TurnResult = ResultIdentity & ({
30
+ type: "answer";
31
+ } | {
32
+ type: "clarification";
33
+ clarification: ClarificationItem;
34
+ });
35
+ export declare const validClarification: (value: unknown) => value is ClarificationItem;
36
+ export declare const submitMessage: (http: HttpClient, sessionId: string, input: CreateTurnInput) => Promise<SessionInteraction>;
37
+ export declare const validateWaitOptions: (options?: WaitForResultOptions) => {
38
+ timeoutMs: number;
39
+ pollIntervalMs: number;
40
+ };
41
+ export declare const waitForResult: (http: HttpClient, sessionId: string, inputId: string, options?: WaitForResultOptions) => Promise<TurnResult>;
42
+ export {};
43
+ //# sourceMappingURL=turn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../src/turn.ts"],"names":[],"mappings":"AASA,OAAO,EACL,UAAU,EAIX,MAAM,WAAW,CAAC;AACnB,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAElE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,cAAc,GACrC,CACI;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,aAAa,EAAE,iBAAiB,CAAA;CAAE,CAC9D,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,iBAkC5D,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,UAAU,EAChB,WAAW,MAAM,EACjB,OAAO,eAAe,KACrB,OAAO,CAAC,kBAAkB,CAmF5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAS,oBAAyB,KACjC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAyB7C,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,MAAM,UAAU,EAChB,WAAW,MAAM,EACjB,SAAS,MAAM,EACf,UAAS,oBAAyB,KACjC,OAAO,CAAC,UAAU,CAwHpB,CAAC"}