@assistant-ui/react 0.10.47 → 0.10.49

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 +1 @@
1
- {"version":3,"file":"ThreadListItemRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ThreadListItemRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,eAAe,CAAC;AAEtE,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,IAAI,mBAAmB,CAAC;IAEhC,UAAU,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC5E,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAE7C,WAAW,CACT,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,MAAM,IAAI,GACnB,WAAW,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;AAEF,qBAAa,yBAA0B,YAAW,qBAAqB;IAMnE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,kBAAkB;IAN5B,IAAW,IAAI,8BAEd;gBAGS,KAAK,EAAE,0BAA0B,EACjC,kBAAkB,EAAE,4BAA4B;IAG1D,SAAS,CAAC,sBAAsB;IAczB,QAAQ,IAAI,mBAAmB;IAI/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvB,UAAU,IAAI,OAAO,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,CAAC;IAKK,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,WAAW,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,IAAI;IAahE,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW;IAI5C,MAAM,IAAI,IAAI;CAKtB"}
1
+ {"version":3,"file":"ThreadListItemRuntime.d.ts","sourceRoot":"","sources":["../../src/api/ThreadListItemRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,eAAe,CAAC;AAEtE,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,CAAC;AAE1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,IAAI,mBAAmB,CAAC;IAEhC,UAAU,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IAC5E,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAExB;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAE7C,WAAW,CACT,KAAK,EAAE,uBAAuB,EAC9B,QAAQ,EAAE,MAAM,IAAI,GACnB,WAAW,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG,qBAAqB,CAC5D,mBAAmB,EACnB,yBAAyB,CAC1B,CAAC;AAEF,qBAAa,yBAA0B,YAAW,qBAAqB;IAMnE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,kBAAkB;IAN5B,IAAW,IAAI,8BAEd;gBAGS,KAAK,EAAE,0BAA0B,EACjC,kBAAkB,EAAE,4BAA4B;IAG1D,SAAS,CAAC,sBAAsB;IAczB,QAAQ,IAAI,mBAAmB;IAI/B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAKzB,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvB,UAAU,IAAI,OAAO,CAAC;QAC3B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,CAAC;IAKK,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,WAAW,CAAC,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,IAAI;IAoBhE,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW;IAI5C,MAAM,IAAI,IAAI;CAKtB"}
@@ -53,10 +53,14 @@ var ThreadListItemRuntimeImpl = class {
53
53
  }
54
54
  unstable_on(event, callback) {
55
55
  let prevIsMain = this._core.getState().isMain;
56
+ let prevThreadId = this._core.getState().id;
56
57
  return this.subscribe(() => {
57
- const newIsMain = this._core.getState().isMain;
58
- if (prevIsMain === newIsMain) return;
58
+ const currentState = this._core.getState();
59
+ const newIsMain = currentState.isMain;
60
+ const newThreadId = currentState.id;
61
+ if (prevIsMain === newIsMain && prevThreadId === newThreadId) return;
59
62
  prevIsMain = newIsMain;
63
+ prevThreadId = newThreadId;
60
64
  if (event === "switched-to" && !newIsMain) return;
61
65
  if (event === "switched-away" && newIsMain) return;
62
66
  callback();
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/api/ThreadListItemRuntime.ts"],"sourcesContent":["import { Unsubscribe } from \"../types\";\nimport { ThreadListItemRuntimePath } from \"./RuntimePathTypes\";\nimport { SubscribableWithState } from \"./subscribable/Subscribable\";\nimport { ThreadListRuntimeCoreBinding } from \"./ThreadListRuntime\";\n\nexport type ThreadListItemEventType = \"switched-to\" | \"switched-away\";\n\nimport type {\n ThreadListItemState,\n ThreadListItemStatus,\n} from \"./RuntimeBindings\";\n\nexport type { ThreadListItemState, ThreadListItemStatus };\n\nexport type ThreadListItemRuntime = {\n readonly path: ThreadListItemRuntimePath;\n getState(): ThreadListItemState;\n\n initialize(): Promise<{ remoteId: string; externalId: string | undefined }>;\n generateTitle(): Promise<void>;\n\n switchTo(): Promise<void>;\n rename(newTitle: string): Promise<void>;\n archive(): Promise<void>;\n unarchive(): Promise<void>;\n delete(): Promise<void>;\n\n /**\n * Detaches the ThreadListItem instance, unmounting the ThreadRuntime hook.\n */\n detach(): void;\n\n subscribe(callback: () => void): Unsubscribe;\n\n unstable_on(\n event: ThreadListItemEventType,\n callback: () => void,\n ): Unsubscribe;\n};\n\nexport type ThreadListItemStateBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: ThreadListItemStateBinding,\n private _threadListBinding: ThreadListRuntimeCoreBinding,\n ) {}\n\n protected __internal_bindMethods() {\n this.switchTo = this.switchTo.bind(this);\n this.rename = this.rename.bind(this);\n this.archive = this.archive.bind(this);\n this.unarchive = this.unarchive.bind(this);\n this.delete = this.delete.bind(this);\n this.initialize = this.initialize.bind(this);\n this.generateTitle = this.generateTitle.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.unstable_on = this.unstable_on.bind(this);\n this.getState = this.getState.bind(this);\n this.detach = this.detach.bind(this);\n }\n\n public getState(): ThreadListItemState {\n return this._core.getState();\n }\n\n public switchTo(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.switchToThread(state.id);\n }\n\n public rename(newTitle: string): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.rename(state.id, newTitle);\n }\n\n public archive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.archive(state.id);\n }\n\n public unarchive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.unarchive(state.id);\n }\n\n public delete(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.delete(state.id);\n }\n\n public initialize(): Promise<{\n remoteId: string;\n externalId: string | undefined;\n }> {\n const state = this._core.getState();\n return this._threadListBinding.initialize(state.id);\n }\n\n public generateTitle(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.generateTitle(state.id);\n }\n\n public unstable_on(event: ThreadListItemEventType, callback: () => void) {\n let prevIsMain = this._core.getState().isMain;\n return this.subscribe(() => {\n const newIsMain = this._core.getState().isMain;\n if (prevIsMain === newIsMain) return;\n prevIsMain = newIsMain;\n\n if (event === \"switched-to\" && !newIsMain) return;\n if (event === \"switched-away\" && newIsMain) return;\n callback();\n });\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n\n public detach(): void {\n const state = this._core.getState();\n\n this._threadListBinding.detach(state.id);\n }\n}\n"],"mappings":";AA6CO,IAAM,4BAAN,MAAiE;AAAA,EAKtE,YACU,OACA,oBACR;AAFQ;AACA;AAAA,EACP;AAAA,EAPH,IAAW,OAAO;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAOU,yBAAyB;AACjC,SAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,UAAU,KAAK,QAAQ,KAAK,IAAI;AACrC,SAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AACzC,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAC3C,SAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AACjD,SAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AACzC,SAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,SAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,EACrC;AAAA,EAEO,WAAgC;AACrC,WAAO,KAAK,MAAM,SAAS;AAAA,EAC7B;AAAA,EAEO,WAA0B;AAC/B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,eAAe,MAAM,EAAE;AAAA,EACxD;AAAA,EAEO,OAAO,UAAiC;AAC7C,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,IAAI,QAAQ;AAAA,EAC1D;AAAA,EAEO,UAAyB;AAC9B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,QAAQ,MAAM,EAAE;AAAA,EACjD;AAAA,EAEO,YAA2B;AAChC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,UAAU,MAAM,EAAE;AAAA,EACnD;AAAA,EAEO,SAAwB;AAC7B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,EAAE;AAAA,EAChD;AAAA,EAEO,aAGJ;AACD,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,WAAW,MAAM,EAAE;AAAA,EACpD;AAAA,EAEO,gBAA+B;AACpC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,cAAc,MAAM,EAAE;AAAA,EACvD;AAAA,EAEO,YAAY,OAAgC,UAAsB;AACvE,QAAI,aAAa,KAAK,MAAM,SAAS,EAAE;AACvC,WAAO,KAAK,UAAU,MAAM;AAC1B,YAAM,YAAY,KAAK,MAAM,SAAS,EAAE;AACxC,UAAI,eAAe,UAAW;AAC9B,mBAAa;AAEb,UAAI,UAAU,iBAAiB,CAAC,UAAW;AAC3C,UAAI,UAAU,mBAAmB,UAAW;AAC5C,eAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEO,UAAU,UAAmC;AAClD,WAAO,KAAK,MAAM,UAAU,QAAQ;AAAA,EACtC;AAAA,EAEO,SAAe;AACpB,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,SAAK,mBAAmB,OAAO,MAAM,EAAE;AAAA,EACzC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/api/ThreadListItemRuntime.ts"],"sourcesContent":["import { Unsubscribe } from \"../types\";\nimport { ThreadListItemRuntimePath } from \"./RuntimePathTypes\";\nimport { SubscribableWithState } from \"./subscribable/Subscribable\";\nimport { ThreadListRuntimeCoreBinding } from \"./ThreadListRuntime\";\n\nexport type ThreadListItemEventType = \"switched-to\" | \"switched-away\";\n\nimport type {\n ThreadListItemState,\n ThreadListItemStatus,\n} from \"./RuntimeBindings\";\n\nexport type { ThreadListItemState, ThreadListItemStatus };\n\nexport type ThreadListItemRuntime = {\n readonly path: ThreadListItemRuntimePath;\n getState(): ThreadListItemState;\n\n initialize(): Promise<{ remoteId: string; externalId: string | undefined }>;\n generateTitle(): Promise<void>;\n\n switchTo(): Promise<void>;\n rename(newTitle: string): Promise<void>;\n archive(): Promise<void>;\n unarchive(): Promise<void>;\n delete(): Promise<void>;\n\n /**\n * Detaches the ThreadListItem instance, unmounting the ThreadRuntime hook.\n */\n detach(): void;\n\n subscribe(callback: () => void): Unsubscribe;\n\n unstable_on(\n event: ThreadListItemEventType,\n callback: () => void,\n ): Unsubscribe;\n};\n\nexport type ThreadListItemStateBinding = SubscribableWithState<\n ThreadListItemState,\n ThreadListItemRuntimePath\n>;\n\nexport class ThreadListItemRuntimeImpl implements ThreadListItemRuntime {\n public get path() {\n return this._core.path;\n }\n\n constructor(\n private _core: ThreadListItemStateBinding,\n private _threadListBinding: ThreadListRuntimeCoreBinding,\n ) {}\n\n protected __internal_bindMethods() {\n this.switchTo = this.switchTo.bind(this);\n this.rename = this.rename.bind(this);\n this.archive = this.archive.bind(this);\n this.unarchive = this.unarchive.bind(this);\n this.delete = this.delete.bind(this);\n this.initialize = this.initialize.bind(this);\n this.generateTitle = this.generateTitle.bind(this);\n this.subscribe = this.subscribe.bind(this);\n this.unstable_on = this.unstable_on.bind(this);\n this.getState = this.getState.bind(this);\n this.detach = this.detach.bind(this);\n }\n\n public getState(): ThreadListItemState {\n return this._core.getState();\n }\n\n public switchTo(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.switchToThread(state.id);\n }\n\n public rename(newTitle: string): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.rename(state.id, newTitle);\n }\n\n public archive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.archive(state.id);\n }\n\n public unarchive(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.unarchive(state.id);\n }\n\n public delete(): Promise<void> {\n const state = this._core.getState();\n\n return this._threadListBinding.delete(state.id);\n }\n\n public initialize(): Promise<{\n remoteId: string;\n externalId: string | undefined;\n }> {\n const state = this._core.getState();\n return this._threadListBinding.initialize(state.id);\n }\n\n public generateTitle(): Promise<void> {\n const state = this._core.getState();\n return this._threadListBinding.generateTitle(state.id);\n }\n\n public unstable_on(event: ThreadListItemEventType, callback: () => void) {\n // if the runtime is bound to a specific thread, trigger if isMain is toggled\n // if the runtime is bound to the main thread, trigger switched-to if threadId changes\n\n let prevIsMain = this._core.getState().isMain;\n let prevThreadId = this._core.getState().id;\n return this.subscribe(() => {\n const currentState = this._core.getState();\n const newIsMain = currentState.isMain;\n const newThreadId = currentState.id;\n if (prevIsMain === newIsMain && prevThreadId === newThreadId) return;\n prevIsMain = newIsMain;\n prevThreadId = newThreadId;\n\n if (event === \"switched-to\" && !newIsMain) return;\n if (event === \"switched-away\" && newIsMain) return;\n callback();\n });\n }\n\n public subscribe(callback: () => void): Unsubscribe {\n return this._core.subscribe(callback);\n }\n\n public detach(): void {\n const state = this._core.getState();\n\n this._threadListBinding.detach(state.id);\n }\n}\n"],"mappings":";AA6CO,IAAM,4BAAN,MAAiE;AAAA,EAKtE,YACU,OACA,oBACR;AAFQ;AACA;AAAA,EACP;AAAA,EAPH,IAAW,OAAO;AAChB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAOU,yBAAyB;AACjC,SAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,UAAU,KAAK,QAAQ,KAAK,IAAI;AACrC,SAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AACzC,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AACnC,SAAK,aAAa,KAAK,WAAW,KAAK,IAAI;AAC3C,SAAK,gBAAgB,KAAK,cAAc,KAAK,IAAI;AACjD,SAAK,YAAY,KAAK,UAAU,KAAK,IAAI;AACzC,SAAK,cAAc,KAAK,YAAY,KAAK,IAAI;AAC7C,SAAK,WAAW,KAAK,SAAS,KAAK,IAAI;AACvC,SAAK,SAAS,KAAK,OAAO,KAAK,IAAI;AAAA,EACrC;AAAA,EAEO,WAAgC;AACrC,WAAO,KAAK,MAAM,SAAS;AAAA,EAC7B;AAAA,EAEO,WAA0B;AAC/B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,eAAe,MAAM,EAAE;AAAA,EACxD;AAAA,EAEO,OAAO,UAAiC;AAC7C,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,IAAI,QAAQ;AAAA,EAC1D;AAAA,EAEO,UAAyB;AAC9B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,QAAQ,MAAM,EAAE;AAAA,EACjD;AAAA,EAEO,YAA2B;AAChC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,UAAU,MAAM,EAAE;AAAA,EACnD;AAAA,EAEO,SAAwB;AAC7B,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,WAAO,KAAK,mBAAmB,OAAO,MAAM,EAAE;AAAA,EAChD;AAAA,EAEO,aAGJ;AACD,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,WAAW,MAAM,EAAE;AAAA,EACpD;AAAA,EAEO,gBAA+B;AACpC,UAAM,QAAQ,KAAK,MAAM,SAAS;AAClC,WAAO,KAAK,mBAAmB,cAAc,MAAM,EAAE;AAAA,EACvD;AAAA,EAEO,YAAY,OAAgC,UAAsB;AAIvE,QAAI,aAAa,KAAK,MAAM,SAAS,EAAE;AACvC,QAAI,eAAe,KAAK,MAAM,SAAS,EAAE;AACzC,WAAO,KAAK,UAAU,MAAM;AAC1B,YAAM,eAAe,KAAK,MAAM,SAAS;AACzC,YAAM,YAAY,aAAa;AAC/B,YAAM,cAAc,aAAa;AACjC,UAAI,eAAe,aAAa,iBAAiB,YAAa;AAC9D,mBAAa;AACb,qBAAe;AAEf,UAAI,UAAU,iBAAiB,CAAC,UAAW;AAC3C,UAAI,UAAU,mBAAmB,UAAW;AAC5C,eAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEO,UAAU,UAAmC;AAClD,WAAO,KAAK,MAAM,UAAU,QAAQ;AAAA,EACtC;AAAA,EAEO,SAAe;AACpB,UAAM,QAAQ,KAAK,MAAM,SAAS;AAElC,SAAK,mBAAmB,OAAO,MAAM,EAAE;AAAA,EACzC;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantCloudThreadHistoryAdapter.d.ts","sourceRoot":"","sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA6JjD,eAAO,MAAM,qCAAqC,GAChD,UAAU,SAAS,CAAC,cAAc,CAAC,KAClC,oBAQF,CAAC"}
1
+ {"version":3,"file":"AssistantCloudThreadHistoryAdapter.d.ts","sourceRoot":"","sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0DAA0D,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAwKjD,eAAO,MAAM,qCAAqC,GAChD,UAAU,SAAS,CAAC,cAAc,CAAC,KAClC,oBAQF,CAAC"}
@@ -2,6 +2,7 @@
2
2
  import { useState } from "react";
3
3
  import { useThreadListItemRuntime } from "../context/index.js";
4
4
  import { auiV0Decode, auiV0Encode } from "./auiV0.js";
5
+ var globalMessageIdMapping = /* @__PURE__ */ new WeakMap();
5
6
  var FormattedThreadHistoryAdapter = class {
6
7
  constructor(parent, formatAdapter) {
7
8
  this.parent = parent;
@@ -29,7 +30,12 @@ var AssistantCloudThreadHistoryAdapter = class {
29
30
  this.cloudRef = cloudRef;
30
31
  this.threadListItemRuntime = threadListItemRuntime;
31
32
  }
32
- _getIdForLocalId = {};
33
+ get _getIdForLocalId() {
34
+ if (!globalMessageIdMapping.has(this.threadListItemRuntime)) {
35
+ globalMessageIdMapping.set(this.threadListItemRuntime, {});
36
+ }
37
+ return globalMessageIdMapping.get(this.threadListItemRuntime);
38
+ }
33
39
  withFormat(formatAdapter) {
34
40
  return new FormattedThreadHistoryAdapter(this, formatAdapter);
35
41
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"sourcesContent":["import { RefObject, useState } from \"react\";\nimport { useThreadListItemRuntime } from \"../context\";\nimport { ThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ExportedMessageRepositoryItem } from \"../runtimes/utils/MessageRepository\";\nimport { AssistantCloud } from \"assistant-cloud\";\nimport { auiV0Decode, auiV0Encode } from \"./auiV0\";\nimport { ThreadListItemRuntime } from \"../api\";\nimport {\n MessageFormatAdapter,\n MessageFormatItem,\n MessageFormatRepository,\n MessageStorageEntry,\n} from \"../runtimes/adapters/thread-history/MessageFormatAdapter\";\nimport { GenericThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ReadonlyJSONObject } from \"assistant-stream/utils\";\n\nclass FormattedThreadHistoryAdapter<TMessage, TStorageFormat>\n implements GenericThreadHistoryAdapter<TMessage>\n{\n constructor(\n private parent: AssistantCloudThreadHistoryAdapter,\n private formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ) {}\n\n async append(item: MessageFormatItem<TMessage>) {\n // Encode the message using the format adapter\n const encoded = this.formatAdapter.encode(item);\n const messageId = this.formatAdapter.getId(item.message);\n\n // Delegate to parent's internal append method with the encoded format\n return this.parent._appendWithFormat(\n item.parentId,\n messageId,\n this.formatAdapter.format,\n encoded,\n );\n }\n\n async load(): Promise<MessageFormatRepository<TMessage>> {\n // Delegate to parent's internal load method with format filter\n return this.parent._loadWithFormat(\n this.formatAdapter.format,\n (message: MessageStorageEntry<TStorageFormat>) =>\n this.formatAdapter.decode(message),\n );\n }\n}\n\nclass AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {\n constructor(\n private cloudRef: RefObject<AssistantCloud>,\n private threadListItemRuntime: ThreadListItemRuntime,\n ) {}\n\n private _getIdForLocalId: Record<string, string | Promise<string>> = {};\n\n withFormat<TMessage, TStorageFormat>(\n formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ): GenericThreadHistoryAdapter<TMessage> {\n return new FormattedThreadHistoryAdapter(this, formatAdapter);\n }\n\n async append({ parentId, message }: ExportedMessageRepositoryItem) {\n const { remoteId } = await this.threadListItemRuntime.initialize();\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format: \"aui/v0\",\n content: auiV0Encode(message),\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[message.id] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[message.id] = task;\n\n return task.then(() => {});\n }\n\n async load() {\n const remoteId = this.threadListItemRuntime.getState().remoteId;\n if (!remoteId) return { messages: [] };\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format: \"aui/v0\",\n },\n );\n const payload = {\n messages: messages\n .filter(\n (m): m is typeof m & { format: \"aui/v0\" } => m.format === \"aui/v0\",\n )\n .map(auiV0Decode)\n .reverse(),\n };\n return payload;\n }\n\n // Internal methods for FormattedThreadHistoryAdapter\n async _appendWithFormat<T>(\n parentId: string | null,\n messageId: string,\n format: string,\n content: T,\n ) {\n const { remoteId } = await this.threadListItemRuntime.initialize();\n\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format,\n content: content as ReadonlyJSONObject,\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[messageId] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[messageId] = task;\n\n return task.then(() => {});\n }\n\n async _loadWithFormat<TMessage, TStorageFormat>(\n format: string,\n decoder: (\n message: MessageStorageEntry<TStorageFormat>,\n ) => MessageFormatItem<TMessage>,\n ): Promise<MessageFormatRepository<TMessage>> {\n const remoteId = this.threadListItemRuntime.getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format,\n },\n );\n\n return {\n messages: messages\n .filter((m) => m.format === format)\n .map((m) =>\n decoder({\n id: m.id,\n parent_id: m.parent_id,\n format: m.format,\n content: m.content as TStorageFormat,\n }),\n )\n .reverse(),\n };\n }\n}\n\nexport const useAssistantCloudThreadHistoryAdapter = (\n cloudRef: RefObject<AssistantCloud>,\n): ThreadHistoryAdapter => {\n const threadListItemRuntime = useThreadListItemRuntime();\n const [adapter] = useState(\n () =>\n new AssistantCloudThreadHistoryAdapter(cloudRef, threadListItemRuntime),\n );\n\n return adapter;\n};\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/cloud/AssistantCloudThreadHistoryAdapter.tsx"],"sourcesContent":["import { RefObject, useState } from \"react\";\nimport { useThreadListItemRuntime } from \"../context\";\nimport { ThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ExportedMessageRepositoryItem } from \"../runtimes/utils/MessageRepository\";\nimport { AssistantCloud } from \"assistant-cloud\";\nimport { auiV0Decode, auiV0Encode } from \"./auiV0\";\nimport { ThreadListItemRuntime } from \"../api\";\nimport {\n MessageFormatAdapter,\n MessageFormatItem,\n MessageFormatRepository,\n MessageStorageEntry,\n} from \"../runtimes/adapters/thread-history/MessageFormatAdapter\";\nimport { GenericThreadHistoryAdapter } from \"../runtimes/adapters/thread-history/ThreadHistoryAdapter\";\nimport { ReadonlyJSONObject } from \"assistant-stream/utils\";\n\n// Global WeakMap to store message ID mappings across adapter instances\nconst globalMessageIdMapping = new WeakMap<\n ThreadListItemRuntime,\n Record<string, string | Promise<string>>\n>();\n\nclass FormattedThreadHistoryAdapter<TMessage, TStorageFormat>\n implements GenericThreadHistoryAdapter<TMessage>\n{\n constructor(\n private parent: AssistantCloudThreadHistoryAdapter,\n private formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ) {}\n\n async append(item: MessageFormatItem<TMessage>) {\n // Encode the message using the format adapter\n const encoded = this.formatAdapter.encode(item);\n const messageId = this.formatAdapter.getId(item.message);\n\n // Delegate to parent's internal append method with the encoded format\n return this.parent._appendWithFormat(\n item.parentId,\n messageId,\n this.formatAdapter.format,\n encoded,\n );\n }\n\n async load(): Promise<MessageFormatRepository<TMessage>> {\n // Delegate to parent's internal load method with format filter\n return this.parent._loadWithFormat(\n this.formatAdapter.format,\n (message: MessageStorageEntry<TStorageFormat>) =>\n this.formatAdapter.decode(message),\n );\n }\n}\n\nclass AssistantCloudThreadHistoryAdapter implements ThreadHistoryAdapter {\n constructor(\n private cloudRef: RefObject<AssistantCloud>,\n private threadListItemRuntime: ThreadListItemRuntime,\n ) {}\n\n private get _getIdForLocalId(): Record<string, string | Promise<string>> {\n if (!globalMessageIdMapping.has(this.threadListItemRuntime)) {\n globalMessageIdMapping.set(this.threadListItemRuntime, {});\n }\n return globalMessageIdMapping.get(this.threadListItemRuntime)!;\n }\n\n withFormat<TMessage, TStorageFormat>(\n formatAdapter: MessageFormatAdapter<TMessage, TStorageFormat>,\n ): GenericThreadHistoryAdapter<TMessage> {\n return new FormattedThreadHistoryAdapter(this, formatAdapter);\n }\n\n async append({ parentId, message }: ExportedMessageRepositoryItem) {\n const { remoteId } = await this.threadListItemRuntime.initialize();\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format: \"aui/v0\",\n content: auiV0Encode(message),\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[message.id] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[message.id] = task;\n\n return task.then(() => {});\n }\n\n async load() {\n const remoteId = this.threadListItemRuntime.getState().remoteId;\n if (!remoteId) return { messages: [] };\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format: \"aui/v0\",\n },\n );\n const payload = {\n messages: messages\n .filter(\n (m): m is typeof m & { format: \"aui/v0\" } => m.format === \"aui/v0\",\n )\n .map(auiV0Decode)\n .reverse(),\n };\n return payload;\n }\n\n // Internal methods for FormattedThreadHistoryAdapter\n async _appendWithFormat<T>(\n parentId: string | null,\n messageId: string,\n format: string,\n content: T,\n ) {\n const { remoteId } = await this.threadListItemRuntime.initialize();\n\n const task = this.cloudRef.current.threads.messages\n .create(remoteId, {\n parent_id: parentId\n ? ((await this._getIdForLocalId[parentId]) ?? parentId)\n : null,\n format,\n content: content as ReadonlyJSONObject,\n })\n .then(({ message_id }) => {\n this._getIdForLocalId[messageId] = message_id;\n return message_id;\n });\n\n this._getIdForLocalId[messageId] = task;\n\n return task.then(() => {});\n }\n\n async _loadWithFormat<TMessage, TStorageFormat>(\n format: string,\n decoder: (\n message: MessageStorageEntry<TStorageFormat>,\n ) => MessageFormatItem<TMessage>,\n ): Promise<MessageFormatRepository<TMessage>> {\n const remoteId = this.threadListItemRuntime.getState().remoteId;\n if (!remoteId) return { messages: [] };\n\n const { messages } = await this.cloudRef.current.threads.messages.list(\n remoteId,\n {\n format,\n },\n );\n\n return {\n messages: messages\n .filter((m) => m.format === format)\n .map((m) =>\n decoder({\n id: m.id,\n parent_id: m.parent_id,\n format: m.format,\n content: m.content as TStorageFormat,\n }),\n )\n .reverse(),\n };\n }\n}\n\nexport const useAssistantCloudThreadHistoryAdapter = (\n cloudRef: RefObject<AssistantCloud>,\n): ThreadHistoryAdapter => {\n const threadListItemRuntime = useThreadListItemRuntime();\n const [adapter] = useState(\n () =>\n new AssistantCloudThreadHistoryAdapter(cloudRef, threadListItemRuntime),\n );\n\n return adapter;\n};\n"],"mappings":"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","names":[]}
@@ -1,10 +1,10 @@
1
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
1
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
2
2
  import { equals, iterableEquality, subsetEquality, JestExtend, JestChaiExpect, JestAsymmetricMatchers, GLOBAL_EXPECT, ASYMMETRIC_MATCHERS_OBJECT, getState, setState, addCustomEqualityTesters, customMatchers } from "@vitest/expect.js";
3
3
  import { getCurrentTest } from "@vitest/runner.js";
4
4
  import { getNames, getTestName } from "@vitest/runner/utils.js";
5
5
  import * as chai$1 from "chai.js";
6
6
 
7
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js
7
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/chunks/utils.XdZDrNZV.js
8
8
  import { getSafeTimers } from "@vitest/utils.js";
9
9
  var NAME_WORKER_STATE = "__vitest_worker__";
10
10
  function getWorkerState() {
@@ -53,22 +53,22 @@ async function waitForImportsToResolve() {
53
53
  await waitForImportsToResolve();
54
54
  }
55
55
 
56
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
56
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
57
57
  import { getSafeTimers as getSafeTimers2, assertTypes, createSimpleStackTrace } from "@vitest/utils.js";
58
58
 
59
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js
59
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/chunks/_commonjsHelpers.BFTU3MAI.js
60
60
  var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
61
61
  function getDefaultExportFromCjs(x) {
62
62
  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
63
63
  }
64
64
 
65
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
65
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
66
66
  import { stripSnapshotIndentation, addSerializer, SnapshotClient } from "@vitest/snapshot.js";
67
67
  import "@vitest/utils/error.js";
68
68
  import { fn, spyOn, mocks, isMockFunction } from "@vitest/spy.js";
69
69
  import { parseSingleStack } from "@vitest/utils/source-map.js";
70
70
 
71
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js
71
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/chunks/date.Bq6ZW5rf.js
72
72
  var RealDate = Date;
73
73
  var now = null;
74
74
  var MockDate = class _MockDate extends RealDate {
@@ -116,7 +116,7 @@ function resetDate() {
116
116
  globalThis.Date = RealDate;
117
117
  }
118
118
 
119
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
119
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/chunks/vi.bdSIJ99Y.js
120
120
  var unsupported = [
121
121
  "matchSnapshot",
122
122
  "toMatchSnapshot",
@@ -2800,7 +2800,7 @@ function getImporter(name) {
2800
2800
  return stack?.file || "";
2801
2801
  }
2802
2802
 
2803
- // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.0_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.4/node_modules/vitest/dist/index.js
2803
+ // ../../node_modules/.pnpm/vitest@3.2.4_@types+debug@4.1.12_@types+node@24.3.1_jiti@2.5.1_jsdom@26.1.0_lightningcss@1.30.1_tsx@4.20.5/node_modules/vitest/dist/index.js
2804
2804
  import { expectTypeOf } from "expect-type.js";
2805
2805
  import { afterAll, afterEach, beforeAll, beforeEach, describe, it, onTestFailed, onTestFinished, suite, test } from "@vitest/runner.js";
2806
2806
  import * as chai2 from "chai.js";