@turingfocus/chat-runtime 0.7.0 → 0.8.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.
@@ -1,5 +1,6 @@
1
- import { type AnswerInteractionInput, type AnswerInteractionSuccess, type ChatGateway, type ChatSnapshot, type Conversation, type ConversationPage, type CreateConversationInput, type DeleteConversationInput, type DeleteConversationSuccess, type GatewayRequestOptions, type GatewayResult, type InterruptRunInput, type InterruptRunSuccess, type ListConversationsInput, type LoadConversationInput, type RenameConversationInput, type SendTextInput, type SendTextSuccess } from "@turingfocus/chat-protocol";
1
+ import { type AnswerInteractionInput, type AnswerInteractionSuccess, type ChatGateway, type ChatSnapshot, type Conversation, type ConversationPage, type CreateConversationInput, type DeleteConversationInput, type DeleteConversationSuccess, type GatewayRequestOptions, type GatewayResult, type InterruptRunInput, type InterruptRunSuccess, type ListConversationsInput, type LoadConversationInput, type RenameConversationInput, type SendTextInput, type SendTextSuccess, type SendMessageInput, type SendMessageSuccess } from "@turingfocus/chat-protocol";
2
2
  import { type SnapshotListener, type SnapshotStateListener, type SnapshotSubscription } from "./snapshot-store.js";
3
+ import { type ComposerDraft, type ComposerDraftListener, type SetComposerDraftInput } from "./composer-draft.js";
3
4
  export interface ChatClientOptions {
4
5
  /** The instance-owned transport port. ChatClient disposes it on shutdown. */
5
6
  readonly gateway: ChatGateway;
@@ -27,6 +28,13 @@ export declare class ChatClient {
27
28
  subscribe(listener: ChatSnapshotListener): ChatClientSubscription;
28
29
  /** Subscribes to active snapshot state, including `null` after deletion. */
29
30
  subscribeState(listener: ChatSnapshotStateListener): ChatClientSubscription;
31
+ getComposerDraft(conversationId: string): ComposerDraft;
32
+ setComposerDraft(input: SetComposerDraftInput): ComposerDraft;
33
+ subscribeComposerDraft(listener: ComposerDraftListener): ChatClientSubscription;
34
+ sendComposerDraft(input: GatewayRequestOptions & {
35
+ readonly conversationId: string;
36
+ readonly clientMessageId?: string | undefined;
37
+ }): Promise<GatewayResult<SendMessageSuccess>>;
30
38
  /**
31
39
  * Retires the current top-level conversation load without changing an
32
40
  * already committed snapshot. Once a snapshot commits, this is a no-op and
@@ -39,6 +47,7 @@ export declare class ChatClient {
39
47
  deleteConversation(input: DeleteConversationInput): Promise<GatewayResult<DeleteConversationSuccess>>;
40
48
  loadConversation(input: LoadConversationInput): Promise<GatewayResult<ChatSnapshot>>;
41
49
  sendText(input: SendTextInput): Promise<GatewayResult<SendTextSuccess>>;
50
+ sendMessage(input: SendMessageInput): Promise<GatewayResult<SendMessageSuccess>>;
42
51
  answerInteraction(input: AnswerInteractionInput): Promise<GatewayResult<AnswerInteractionSuccess>>;
43
52
  interrupt(input: InterruptRunInput): Promise<GatewayResult<InterruptRunSuccess>>;
44
53
  dispose(options: GatewayRequestOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-client.d.ts","sourceRoot":"","sources":["../src/chat-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAG7B,KAAK,WAAW,EAChB,KAAK,YAAY,EAEjB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,iBAAiB;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EACxB,CAAC,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAC7D;AAED,MAAM,MAAM,8BAA8B,GACxC,UAAU,GAAG,sBAAsB,CAAC;AAEtC,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7C,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;CACjD;AAED,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACpD,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AA4E1D;;;GAGG;AACH,qBAAa,UAAU;;gBAsBT,OAAO,EAAE,iBAAiB;IAUtC,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,WAAW,IAAI,YAAY,GAAG,IAAI;IAIlC,SAAS,CAAC,QAAQ,EAAE,oBAAoB,GAAG,sBAAsB;IAIjE,4EAA4E;IAC5E,cAAc,CAAC,QAAQ,EAAE,yBAAyB,GAAG,sBAAsB;IAI3E;;;;OAIG;IACH,6BAA6B,IAAI,IAAI;IAS/B,iBAAiB,CACrB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAkBrC,kBAAkB,CACtB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IA2BjC,kBAAkB,CACtB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAuDjC,kBAAkB,CACtB,KAAK,EAAE,uBAAuB,GAC7B,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAiF9C,gBAAgB,CACpB,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IA6JjC,QAAQ,CACZ,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IAiBpC,iBAAiB,CACrB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;IAkI7C,SAAS,CACb,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;IAwC9C,OAAO,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2avD;AAED,eAAO,MAAM,gBAAgB,GAAI,SAAS,iBAAiB,KAAG,UACrC,CAAC"}
1
+ {"version":3,"file":"chat-client.d.ts","sourceRoot":"","sources":["../src/chat-client.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
- import { answerInteractionInputSchema, createConversationInputSchema, createGatewayDeadlineExceededError, deleteConversationInputSchema, getAskUserInteractionAnswerValidationError, isGatewayDeadlineExceeded, isChatLifecycleOperable, isGatewayOperationSupported, listConversationsInputSchema, renameConversationInputSchema, } from "@turingfocus/chat-protocol";
1
+ import { answerInteractionInputSchema, createConversationInputSchema, createGatewayDeadlineExceededError, deleteConversationInputSchema, getAskUserInteractionAnswerValidationError, isGatewayDeadlineExceeded, isChatLifecycleOperable, isGatewayOperationSupported, listConversationsInputSchema, renameConversationInputSchema, sendMessageInputSchema, } from "@turingfocus/chat-protocol";
2
2
  import { createGatewayNotificationQueue, } from "./gateway-notification-queue.js";
3
3
  import { cloneImmutable, deepEqual } from "./immutable.js";
4
4
  import { applySnapshotUpdate, applyRuntimeSnapshotError, createSnapshotState, rebaseSnapshotState, updateConversationId, updateSnapshotState, } from "./snapshot-state.js";
5
5
  import { SnapshotStore, } from "./snapshot-store.js";
6
6
  import { mergeHistoryTimeline } from "./timeline.js";
7
+ import { areComposerLongTextsValid, emptyComposerDraft, rebaseComposerLongTexts, resolveComposerDraftText, } from "./composer-draft.js";
7
8
  const runtimeFailure = (code, message, conversationId) => ({
8
9
  ok: false,
9
10
  error: cloneImmutable({
@@ -50,6 +51,10 @@ export class ChatClient {
50
51
  #generation = 0;
51
52
  #gatewaySubscription;
52
53
  #interactionAnswersInFlight = new Set();
54
+ #composerDrafts = new Map();
55
+ #composerListeners = new Set();
56
+ #composerSendsInFlight = new Map();
57
+ #messageSendsInFlight = new Map();
53
58
  #retiredInteractionIdentities = new Set();
54
59
  #supersededInteractionAnswers = new Set();
55
60
  #historyRequestId = 0;
@@ -81,6 +86,101 @@ export class ChatClient {
81
86
  subscribeState(listener) {
82
87
  return this.#snapshotStore.subscribeState(listener);
83
88
  }
89
+ getComposerDraft(conversationId) {
90
+ const existing = this.#composerDrafts.get(conversationId);
91
+ if (existing !== undefined)
92
+ return existing;
93
+ const empty = emptyComposerDraft(conversationId);
94
+ if (!this.#disposed)
95
+ this.#composerDrafts.set(conversationId, empty);
96
+ return empty;
97
+ }
98
+ setComposerDraft(input) {
99
+ if (this.#disposed)
100
+ return this.getComposerDraft(input.conversationId);
101
+ const current = this.getComposerDraft(input.conversationId);
102
+ const nextText = input.text ?? current.text;
103
+ const nextLongTexts = input.longTexts ??
104
+ rebaseComposerLongTexts(current.text, nextText, current.longTexts);
105
+ if (!areComposerLongTextsValid(nextText, nextLongTexts)) {
106
+ throw new TypeError("Composer long-text anchors are invalid");
107
+ }
108
+ const next = cloneImmutable({
109
+ conversationId: input.conversationId,
110
+ text: nextText,
111
+ attachments: input.attachments ?? current.attachments,
112
+ longTexts: nextLongTexts,
113
+ revision: current.revision + 1,
114
+ });
115
+ this.#composerDrafts.set(input.conversationId, next);
116
+ for (const listener of this.#composerListeners) {
117
+ try {
118
+ listener(next);
119
+ }
120
+ catch (cause) {
121
+ this.#reportUnhandledError({ cause, source: "listener" });
122
+ }
123
+ }
124
+ return next;
125
+ }
126
+ subscribeComposerDraft(listener) {
127
+ if (this.#disposed)
128
+ return { closed: true, dispose: () => undefined };
129
+ this.#composerListeners.add(listener);
130
+ let active = true;
131
+ return {
132
+ get closed() {
133
+ return !active;
134
+ },
135
+ dispose: () => {
136
+ if (!active)
137
+ return;
138
+ active = false;
139
+ this.#composerListeners.delete(listener);
140
+ },
141
+ };
142
+ }
143
+ async sendComposerDraft(input) {
144
+ const inFlightKey = input.clientMessageId === undefined
145
+ ? undefined
146
+ : `${input.conversationId.length}:${input.conversationId}:${input.clientMessageId}`;
147
+ if (inFlightKey !== undefined) {
148
+ const existing = this.#composerSendsInFlight.get(inFlightKey);
149
+ if (existing !== undefined)
150
+ return existing;
151
+ }
152
+ const draft = this.getComposerDraft(input.conversationId);
153
+ const operation = (async () => {
154
+ const result = await this.sendMessage({
155
+ conversationId: input.conversationId,
156
+ deadlineAt: input.deadlineAt,
157
+ text: resolveComposerDraftText(draft),
158
+ attachments: draft.attachments,
159
+ ...(input.clientMessageId === undefined
160
+ ? {}
161
+ : { clientMessageId: input.clientMessageId }),
162
+ });
163
+ if (result.ok && this.getComposerDraft(input.conversationId) === draft) {
164
+ this.setComposerDraft({
165
+ conversationId: input.conversationId,
166
+ text: "",
167
+ attachments: [],
168
+ longTexts: [],
169
+ });
170
+ }
171
+ return result;
172
+ })();
173
+ if (inFlightKey !== undefined) {
174
+ this.#composerSendsInFlight.set(inFlightKey, operation);
175
+ const clearInFlight = () => {
176
+ if (this.#composerSendsInFlight.get(inFlightKey) === operation) {
177
+ this.#composerSendsInFlight.delete(inFlightKey);
178
+ }
179
+ };
180
+ void operation.then(clearInFlight, clearInFlight);
181
+ }
182
+ return operation;
183
+ }
84
184
  /**
85
185
  * Retires the current top-level conversation load without changing an
86
186
  * already committed snapshot. Once a snapshot commits, this is a no-op and
@@ -192,6 +292,18 @@ export class ChatClient {
192
292
  result.value.deletedConversationId !== parsed.data.conversationId) {
193
293
  return runtimeFailure("validation", "Gateway deleted a different conversation", parsed.data.conversationId);
194
294
  }
295
+ if (result.ok) {
296
+ this.#composerDrafts.delete(parsed.data.conversationId);
297
+ const sendKeyPrefix = `${parsed.data.conversationId.length}:${parsed.data.conversationId}:`;
298
+ for (const key of this.#composerSendsInFlight.keys()) {
299
+ if (key.startsWith(sendKeyPrefix))
300
+ this.#composerSendsInFlight.delete(key);
301
+ }
302
+ for (const key of this.#messageSendsInFlight.keys()) {
303
+ if (key.startsWith(sendKeyPrefix))
304
+ this.#messageSendsInFlight.delete(key);
305
+ }
306
+ }
195
307
  if (result.ok &&
196
308
  this.#pendingLoadConversationId === parsed.data.conversationId) {
197
309
  this.#loadRequestId += 1;
@@ -347,6 +459,58 @@ export class ChatClient {
347
459
  this.#reportError(result.error, generation, "command");
348
460
  return result;
349
461
  }
462
+ async sendMessage(input) {
463
+ const parsed = sendMessageInputSchema.safeParse(input);
464
+ if (!parsed.success) {
465
+ return runtimeFailure("validation", "Message input is invalid", typeof input.conversationId === "string"
466
+ ? input.conversationId
467
+ : undefined);
468
+ }
469
+ const command = parsed.data;
470
+ const attachments = command.attachments ?? [];
471
+ if (attachments.length === 0) {
472
+ return this.sendText({
473
+ conversationId: command.conversationId,
474
+ deadlineAt: command.deadlineAt,
475
+ text: command.text ?? "",
476
+ ...(command.clientMessageId === undefined
477
+ ? {}
478
+ : { clientMessageId: command.clientMessageId }),
479
+ });
480
+ }
481
+ const state = this.#activeState(command.conversationId);
482
+ if (!state.ok)
483
+ return state;
484
+ if (!isGatewayOperationSupported(state.value.capabilities, "sendAttachments") ||
485
+ this.#gateway.sendMessage === undefined) {
486
+ return runtimeFailure("unsupported", "Attachment sending is unavailable", command.conversationId);
487
+ }
488
+ const inFlightKey = command.clientMessageId === undefined
489
+ ? undefined
490
+ : `${command.conversationId.length}:${command.conversationId}:${command.clientMessageId}`;
491
+ if (inFlightKey !== undefined) {
492
+ const existing = this.#messageSendsInFlight.get(inFlightKey);
493
+ if (existing !== undefined)
494
+ return existing;
495
+ }
496
+ const generation = this.#generation;
497
+ const operation = (async () => {
498
+ const result = await this.#gateway.sendMessage(command);
499
+ if (!result.ok && !this.#disposed)
500
+ this.#reportError(result.error, generation, "command");
501
+ return result;
502
+ })();
503
+ if (inFlightKey !== undefined) {
504
+ this.#messageSendsInFlight.set(inFlightKey, operation);
505
+ const clearInFlight = () => {
506
+ if (this.#messageSendsInFlight.get(inFlightKey) === operation) {
507
+ this.#messageSendsInFlight.delete(inFlightKey);
508
+ }
509
+ };
510
+ void operation.then(clearInFlight, clearInFlight);
511
+ }
512
+ return operation;
513
+ }
350
514
  async answerInteraction(input) {
351
515
  const parsed = answerInteractionInputSchema.safeParse(input);
352
516
  if (!parsed.success) {
@@ -452,6 +616,10 @@ export class ChatClient {
452
616
  this.#interactionAnswersInFlight.clear();
453
617
  this.#retiredInteractionIdentities.clear();
454
618
  this.#supersededInteractionAnswers.clear();
619
+ this.#composerSendsInFlight.clear();
620
+ this.#messageSendsInFlight.clear();
621
+ this.#composerDrafts.clear();
622
+ this.#composerListeners.clear();
455
623
  this.#loadRequestId += 1;
456
624
  this.#pendingLoadConversationId = undefined;
457
625
  this.#pendingLoadConversationOverride = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"chat-client.js","sourceRoot":"","sources":["../src/chat-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-client.js","sourceRoot":"","sources":["../src/chat-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import type { UploadedAttachment } from "@turingfocus/chat-protocol";
2
+ export interface ComposerLongText {
3
+ readonly content: string;
4
+ /** Exclusive end offset of the visible placeholder in ComposerDraft.text. */
5
+ readonly end: number;
6
+ readonly id: string;
7
+ /** Visible placeholder text. It is never used as a replacement key. */
8
+ readonly label: string;
9
+ /** Inclusive start offset of the visible placeholder. */
10
+ readonly start: number;
11
+ }
12
+ export interface ComposerDraft {
13
+ readonly attachments: readonly UploadedAttachment[];
14
+ readonly conversationId: string;
15
+ readonly longTexts: readonly ComposerLongText[];
16
+ readonly revision: number;
17
+ readonly text: string;
18
+ }
19
+ export interface SetComposerDraftInput {
20
+ readonly attachments?: readonly UploadedAttachment[] | undefined;
21
+ readonly conversationId: string;
22
+ readonly longTexts?: readonly ComposerLongText[] | undefined;
23
+ readonly text?: string | undefined;
24
+ }
25
+ export interface ComposerTextEdit {
26
+ /** End offset in the new text after the inserted replacement. */
27
+ readonly nextEnd: number;
28
+ /** Replaced range end in the previous text. */
29
+ readonly previousEnd: number;
30
+ /** Replaced range start in the previous text. */
31
+ readonly previousStart: number;
32
+ }
33
+ export type ComposerDraftListener = (draft: ComposerDraft) => void;
34
+ export declare const areComposerLongTextsValid: (text: string, longTexts: readonly ComposerLongText[]) => boolean;
35
+ export declare const emptyComposerDraft: (conversationId: string) => ComposerDraft;
36
+ export declare const resolveComposerDraftText: (draft: ComposerDraft) => string;
37
+ /** Reanchors long-text nodes after one textarea edit. Edited nodes are removed. */
38
+ export declare const rebaseComposerLongTexts: (previousText: string, nextText: string, longTexts: readonly ComposerLongText[], edit?: ComposerTextEdit) => readonly ComposerLongText[];
39
+ //# sourceMappingURL=composer-draft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer-draft.d.ts","sourceRoot":"","sources":["../src/composer-draft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACjE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,iDAAiD;IACjD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAEnE,eAAO,MAAM,yBAAyB,GACpC,MAAM,MAAM,EACZ,WAAW,SAAS,gBAAgB,EAAE,KACrC,OAsBF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,gBAAgB,MAAM,KAAG,aAOxD,CAAC;AAEL,eAAO,MAAM,wBAAwB,GAAI,OAAO,aAAa,KAAG,MAmB/D,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,GAClC,cAAc,MAAM,EACpB,UAAU,MAAM,EAChB,WAAW,SAAS,gBAAgB,EAAE,EACtC,OAAO,gBAAgB,KACtB,SAAS,gBAAgB,EA2D3B,CAAC"}
@@ -0,0 +1,96 @@
1
+ export const areComposerLongTextsValid = (text, longTexts) => {
2
+ const ids = new Set();
3
+ let previousEnd = 0;
4
+ for (const item of [...longTexts].sort((left, right) => left.start - right.start)) {
5
+ if (item.id.length === 0 ||
6
+ ids.has(item.id) ||
7
+ item.label.length === 0 ||
8
+ !Number.isSafeInteger(item.start) ||
9
+ !Number.isSafeInteger(item.end) ||
10
+ item.start < previousEnd ||
11
+ item.end <= item.start ||
12
+ text.slice(item.start, item.end) !== item.label) {
13
+ return false;
14
+ }
15
+ ids.add(item.id);
16
+ previousEnd = item.end;
17
+ }
18
+ return true;
19
+ };
20
+ export const emptyComposerDraft = (conversationId) => Object.freeze({
21
+ attachments: Object.freeze([]),
22
+ conversationId,
23
+ longTexts: Object.freeze([]),
24
+ revision: 0,
25
+ text: "",
26
+ });
27
+ export const resolveComposerDraftText = (draft) => {
28
+ const ordered = [...draft.longTexts].sort((left, right) => left.start - right.start);
29
+ let cursor = 0;
30
+ let resolved = "";
31
+ for (const item of ordered) {
32
+ if (item.start < cursor ||
33
+ item.end < item.start ||
34
+ draft.text.slice(item.start, item.end) !== item.label) {
35
+ continue;
36
+ }
37
+ resolved += draft.text.slice(cursor, item.start);
38
+ resolved += item.content;
39
+ cursor = item.end;
40
+ }
41
+ return resolved + draft.text.slice(cursor);
42
+ };
43
+ /** Reanchors long-text nodes after one textarea edit. Edited nodes are removed. */
44
+ export const rebaseComposerLongTexts = (previousText, nextText, longTexts, edit) => {
45
+ if (previousText === nextText)
46
+ return longTexts;
47
+ if (edit !== undefined &&
48
+ Number.isSafeInteger(edit.previousStart) &&
49
+ Number.isSafeInteger(edit.previousEnd) &&
50
+ Number.isSafeInteger(edit.nextEnd) &&
51
+ edit.previousStart >= 0 &&
52
+ edit.previousEnd >= edit.previousStart &&
53
+ edit.previousEnd <= previousText.length &&
54
+ edit.nextEnd >= edit.previousStart &&
55
+ edit.nextEnd <= nextText.length &&
56
+ previousText.slice(0, edit.previousStart) ===
57
+ nextText.slice(0, edit.previousStart) &&
58
+ previousText.slice(edit.previousEnd) === nextText.slice(edit.nextEnd)) {
59
+ const offset = edit.nextEnd - edit.previousEnd;
60
+ return longTexts.flatMap((item) => {
61
+ if (item.end <= edit.previousStart)
62
+ return [item];
63
+ if (item.start >= edit.previousEnd) {
64
+ return [
65
+ { ...item, start: item.start + offset, end: item.end + offset },
66
+ ];
67
+ }
68
+ return [];
69
+ });
70
+ }
71
+ let prefix = 0;
72
+ const prefixLimit = Math.min(previousText.length, nextText.length);
73
+ while (prefix < prefixLimit &&
74
+ previousText.charCodeAt(prefix) === nextText.charCodeAt(prefix)) {
75
+ prefix += 1;
76
+ }
77
+ let suffix = 0;
78
+ const suffixLimit = Math.min(previousText.length - prefix, nextText.length - prefix);
79
+ while (suffix < suffixLimit &&
80
+ previousText.charCodeAt(previousText.length - 1 - suffix) ===
81
+ nextText.charCodeAt(nextText.length - 1 - suffix)) {
82
+ suffix += 1;
83
+ }
84
+ const previousEditEnd = previousText.length - suffix;
85
+ const nextEditEnd = nextText.length - suffix;
86
+ const offset = nextEditEnd - previousEditEnd;
87
+ return longTexts.flatMap((item) => {
88
+ if (item.end <= prefix)
89
+ return [item];
90
+ if (item.start >= previousEditEnd) {
91
+ return [{ ...item, start: item.start + offset, end: item.end + offset }];
92
+ }
93
+ return [];
94
+ });
95
+ };
96
+ //# sourceMappingURL=composer-draft.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composer-draft.js","sourceRoot":"","sources":["../src/composer-draft.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,7 @@
1
1
  export { ChatClient, createChatClient, type ChatClientOptions, type ChatClientSubscription, type ChatSnapshotListener, type ChatSnapshotStateListener, type ChatClientUnhandledError, type ChatClientUnhandledErrorSource, } from "./chat-client.js";
2
2
  export { ConversationWorkspaceController, createConversationWorkspaceController, orderConversationsByUpdatedAt, type ConversationWorkspaceControllerOptions, type ConversationWorkspaceListStatus, type ConversationWorkspaceSelectionStatus, type ConversationWorkspaceSnapshot, type ConversationWorkspaceSubscription, type CreateWorkspaceConversationInput, type RenameWorkspaceConversationInput, } from "./conversation-workspace.js";
3
+ export { emptyComposerDraft, rebaseComposerLongTexts, resolveComposerDraftText, type ComposerDraft, type ComposerDraftListener, type ComposerLongText, type ComposerTextEdit, type SetComposerDraftInput, } from "./composer-draft.js";
4
+ export type { GatewayRequestOptions, GatewayResult, UploadCancellationSignal, UploadedAttachment, } from "@turingfocus/chat-protocol";
5
+ export type { ChatResourcePort, ChatResourceRequest, ChatResourcePurpose, ChatResolvedResource, MessageResource, } from "@turingfocus/chat-protocol";
6
+ export { appendComposerReference, type ChatDocumentReference, type ChatDocumentSource, } from "./references.js";
3
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,EACrC,6BAA6B,EAC7B,KAAK,sCAAsC,EAC3C,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,GACtC,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,8BAA8B,GACpC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,EACrC,6BAA6B,EAC7B,KAAK,sCAAsC,EAC3C,KAAK,+BAA+B,EACpC,KAAK,oCAAoC,EACzC,KAAK,6BAA6B,EAClC,KAAK,iCAAiC,EACtC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,GACtC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,qBAAqB,EACrB,aAAa,EACb,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,5 @@
1
1
  export { ChatClient, createChatClient, } from "./chat-client.js";
2
2
  export { ConversationWorkspaceController, createConversationWorkspaceController, orderConversationsByUpdatedAt, } from "./conversation-workspace.js";
3
+ export { emptyComposerDraft, rebaseComposerLongTexts, resolveComposerDraftText, } from "./composer-draft.js";
4
+ export { appendComposerReference, } from "./references.js";
3
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,GAOjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,EACrC,6BAA6B,GAQ9B,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,gBAAgB,GAOjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,+BAA+B,EAC/B,qCAAqC,EACrC,6BAA6B,GAQ9B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,GAMzB,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,EACL,uBAAuB,GAGxB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { MaybePromise, UploadCancellationSignal } from "@turingfocus/chat-protocol";
2
+ import { type ComposerDraft } from "./composer-draft.js";
3
+ /** Content already authorized by the integrating application, expanded as plain text on send. */
4
+ export interface ChatDocumentReference {
5
+ readonly id: string;
6
+ readonly title: string;
7
+ readonly content: string;
8
+ }
9
+ export interface ChatDocumentSource {
10
+ list(request: {
11
+ readonly query: string;
12
+ readonly conversationId: string;
13
+ readonly signal: UploadCancellationSignal;
14
+ }): MaybePromise<readonly ChatDocumentReference[]>;
15
+ }
16
+ export declare function appendComposerReference(draft: ComposerDraft, reference: ChatDocumentReference, anchorId: string): Pick<ComposerDraft, "text" | "longTexts" | "attachments">;
17
+ //# sourceMappingURL=references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,iGAAiG;AACjG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,OAAO,EAAE;QACZ,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;KAC3C,GAAG,YAAY,CAAC,SAAS,qBAAqB,EAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,qBAAqB,EAChC,QAAQ,EAAE,MAAM,GACf,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,CAAC,CA4B3D"}
@@ -0,0 +1,29 @@
1
+ import { rebaseComposerLongTexts, } from "./composer-draft.js";
2
+ export function appendComposerReference(draft, reference, anchorId) {
3
+ if (reference.id.length === 0 ||
4
+ reference.title.length === 0 ||
5
+ anchorId.length === 0 ||
6
+ draft.longTexts.some((item) => item.id === anchorId))
7
+ throw new TypeError("Invalid or duplicate reference identity");
8
+ const prefix = draft.text.endsWith("/")
9
+ ? draft.text.slice(0, -1)
10
+ : draft.text;
11
+ const separator = prefix.length === 0 || /\s$/.test(prefix) ? "" : " ";
12
+ const label = `[Reference: ${reference.title}]`;
13
+ const start = prefix.length + separator.length;
14
+ return {
15
+ attachments: draft.attachments,
16
+ text: `${prefix}${separator}${label}`,
17
+ longTexts: [
18
+ ...rebaseComposerLongTexts(draft.text, prefix, draft.longTexts),
19
+ {
20
+ id: anchorId,
21
+ label,
22
+ start,
23
+ end: start + label.length,
24
+ content: `${reference.title}\n${reference.content}`,
25
+ },
26
+ ],
27
+ };
28
+ }
29
+ //# sourceMappingURL=references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../src/references.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAgB7B,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,SAAgC,EAChC,QAAgB;IAEhB,IACE,SAAS,CAAC,EAAE,CAAC,MAAM,KAAK,CAAC;QACzB,SAAS,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAC5B,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC;QAEpD,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QACrC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACf,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACvE,MAAM,KAAK,GAAG,eAAe,SAAS,CAAC,KAAK,GAAG,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAC/C,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,EAAE;QACrC,SAAS,EAAE;YACT,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;YAC/D;gBACE,EAAE,EAAE,QAAQ;gBACZ,KAAK;gBACL,KAAK;gBACL,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM;gBACzB,OAAO,EAAE,GAAG,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,OAAO,EAAE;aACpD;SACF;KACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@turingfocus/chat-runtime",
3
- "version": "0.7.0",
3
+ "version": "0.8.0",
4
4
  "description": "Headless, instance-scoped chat runtime",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,7 +28,7 @@
28
28
  }
29
29
  },
30
30
  "dependencies": {
31
- "@turingfocus/chat-protocol": "^0.7.0"
31
+ "@turingfocus/chat-protocol": "^0.8.0"
32
32
  },
33
33
  "publishConfig": {
34
34
  "access": "public",