@assistant-ui/core 0.1.8 → 0.1.9

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 (53) hide show
  1. package/dist/adapters/attachment.d.ts +4 -0
  2. package/dist/adapters/attachment.d.ts.map +1 -1
  3. package/dist/adapters/attachment.js +1 -1
  4. package/dist/adapters/attachment.js.map +1 -1
  5. package/dist/react/client/Interactables.d.ts +3 -0
  6. package/dist/react/client/Interactables.d.ts.map +1 -0
  7. package/dist/react/client/Interactables.js +173 -0
  8. package/dist/react/client/Interactables.js.map +1 -0
  9. package/dist/react/index.d.ts +4 -0
  10. package/dist/react/index.d.ts.map +1 -1
  11. package/dist/react/index.js +3 -0
  12. package/dist/react/index.js.map +1 -1
  13. package/dist/react/model-context/makeInteractable.d.ts +10 -0
  14. package/dist/react/model-context/makeInteractable.d.ts.map +1 -0
  15. package/dist/react/model-context/makeInteractable.js +10 -0
  16. package/dist/react/model-context/makeInteractable.js.map +1 -0
  17. package/dist/react/model-context/useInteractable.d.ts +16 -0
  18. package/dist/react/model-context/useInteractable.d.ts.map +1 -0
  19. package/dist/react/model-context/useInteractable.js +36 -0
  20. package/dist/react/model-context/useInteractable.js.map +1 -0
  21. package/dist/react/primitives/message/MessageParts.d.ts.map +1 -1
  22. package/dist/react/primitives/message/MessageParts.js +2 -0
  23. package/dist/react/primitives/message/MessageParts.js.map +1 -1
  24. package/dist/react/types/scopes/interactables.d.ts +39 -0
  25. package/dist/react/types/scopes/interactables.d.ts.map +1 -0
  26. package/dist/react/types/scopes/interactables.js +2 -0
  27. package/dist/react/types/scopes/interactables.js.map +1 -0
  28. package/dist/react/types/store-augmentation.d.ts +2 -0
  29. package/dist/react/types/store-augmentation.d.ts.map +1 -1
  30. package/dist/runtime/base/base-composer-runtime-core.d.ts +1 -1
  31. package/dist/runtime/base/base-composer-runtime-core.d.ts.map +1 -1
  32. package/dist/runtime/base/base-composer-runtime-core.js +33 -8
  33. package/dist/runtime/base/base-composer-runtime-core.js.map +1 -1
  34. package/dist/runtime/interfaces/composer-runtime-core.d.ts +1 -1
  35. package/dist/runtime/interfaces/composer-runtime-core.d.ts.map +1 -1
  36. package/dist/store/runtime-clients/composer-runtime-client.d.ts.map +1 -1
  37. package/dist/store/runtime-clients/composer-runtime-client.js +12 -5
  38. package/dist/store/runtime-clients/composer-runtime-client.js.map +1 -1
  39. package/dist/store/scopes/composer.d.ts +5 -0
  40. package/dist/store/scopes/composer.d.ts.map +1 -1
  41. package/package.json +9 -9
  42. package/src/adapters/attachment.ts +1 -1
  43. package/src/react/client/Interactables.ts +233 -0
  44. package/src/react/index.ts +19 -0
  45. package/src/react/model-context/makeInteractable.ts +21 -0
  46. package/src/react/model-context/useInteractable.ts +73 -0
  47. package/src/react/primitives/message/MessageParts.tsx +2 -0
  48. package/src/react/types/scopes/interactables.ts +44 -0
  49. package/src/react/types/store-augmentation.ts +2 -0
  50. package/src/runtime/base/base-composer-runtime-core.ts +45 -9
  51. package/src/runtime/interfaces/composer-runtime-core.ts +4 -1
  52. package/src/store/runtime-clients/composer-runtime-client.ts +18 -7
  53. package/src/store/scopes/composer.ts +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"base-composer-runtime-core.d.ts","sourceRoot":"","sources":["../../../src/runtime/base/base-composer-runtime-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAEjB,kCAA+B;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA4B;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,6BAA0B;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA4B;AACrD,OAAO,EAAE,gBAAgB,EAAE,2CAAwC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,qCAAkC;AACnE,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACf,+CAA4C;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,iCAA8B;AAM9D,8BAAsB,uBACpB,SAAQ,gBACR,YAAW,mBAAmB;IAE9B,SAAgB,SAAS,QAAQ;IAEjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IACxE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAEtE,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,OAAO,CAAC,YAAY,CAA6B;IACjD,IAAW,WAAW,0BAErB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE;IAKrD,aAAoB,SAAS,IAAI,OAAO,CAAC;IAEzC,IAAW,OAAO,YAEjB;IAED,OAAO,CAAC,KAAK,CAAM;IAEnB,IAAI,IAAI,WAEP;IAED,OAAO,CAAC,KAAK,CAAuB;IAEpC,IAAI,IAAI,oCAEP;IAED,OAAO,CAAC,UAAU,CAAiB;IAEnC,IAAI,SAAS,cAEZ;IAED,OAAO,CAAC,MAAM,CAAoC;IAElD,IAAI,KAAK,0BAER;IAEM,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAOrC,OAAO,CAAC,KAAK,EAAE,MAAM;IAarB,OAAO,CAAC,IAAI,EAAE,WAAW;IAOzB,YAAY,CAAC,SAAS,EAAE,SAAS;IAOxC,OAAO,CAAC,wBAAwB;YAMlB,mBAAmB;IAQpB,KAAK;IAoBL,gBAAgB;IAOhB,IAAI;IAuCV,MAAM;IAIb,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC,GACpD,IAAI;IACP,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;IAEjC,aAAa,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB;IAiDvD,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAe3C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,sBAAsB,CAAqB;IACnD,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,yBAAyB,CAAqB;IACtD,OAAO,CAAC,oBAAoB,CAAS;IAErC,IAAW,SAAS,IAAI,cAAc,GAAG,SAAS,CAEjD;IAED,OAAO,CAAC,gBAAgB;IAUjB,cAAc,IAAI,IAAI;IA6FtB,aAAa,IAAI,IAAI;IAU5B,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,iBAAiB,CAGrB;IAEJ,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,wBAAwB;IAO1D,WAAW,CAAC,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,IAAI;CAczE"}
1
+ {"version":3,"file":"base-composer-runtime-core.d.ts","sourceRoot":"","sources":["../../../src/runtime/base/base-composer-runtime-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,gBAAgB,EAEjB,kCAA+B;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA4B;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,6BAA0B;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA4B;AACrD,OAAO,EAAE,gBAAgB,EAAE,2CAAwC;AACnE,OAAO,EACL,KAAK,iBAAiB,EAEvB,qCAAkC;AACnC,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACf,+CAA4C;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,iCAA8B;AAM9D,8BAAsB,uBACpB,SAAQ,gBACR,YAAW,mBAAmB;IAE9B,SAAgB,SAAS,QAAQ;IAEjC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IACxE,SAAS,CAAC,QAAQ,CAAC,mBAAmB,IAAI,gBAAgB,GAAG,SAAS;IAEtE,IAAW,gBAAgB,IAAI,MAAM,CAEpC;IAED,OAAO,CAAC,YAAY,CAA6B;IACjD,IAAW,WAAW,0BAErB;IAED,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE;IAKrD,aAAoB,SAAS,IAAI,OAAO,CAAC;IAEzC,IAAW,OAAO,YAEjB;IAED,OAAO,CAAC,KAAK,CAAM;IAEnB,IAAI,IAAI,WAEP;IAED,OAAO,CAAC,KAAK,CAAuB;IAEpC,IAAI,IAAI,oCAEP;IAED,OAAO,CAAC,UAAU,CAAiB;IAEnC,IAAI,SAAS,cAEZ;IAED,OAAO,CAAC,MAAM,CAAoC;IAElD,IAAI,KAAK,0BAER;IAEM,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAOrC,OAAO,CAAC,KAAK,EAAE,MAAM;IAarB,OAAO,CAAC,IAAI,EAAE,WAAW;IAOzB,YAAY,CAAC,SAAS,EAAE,SAAS;IAOxC,OAAO,CAAC,wBAAwB;YAMlB,mBAAmB;IAQpB,KAAK;IAoBL,gBAAgB;IAOhB,IAAI;IAuCV,MAAM;IAIb,SAAS,CAAC,QAAQ,CAAC,UAAU,CAC3B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,UAAU,CAAC,GACpD,IAAI;IACP,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,IAAI;IAEjC,aAAa,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB;IAkFvD,gBAAgB,CAAC,YAAY,EAAE,MAAM;IAe3C,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,iBAAiB,CAAuC;IAChE,OAAO,CAAC,sBAAsB,CAAqB;IACnD,OAAO,CAAC,kBAAkB,CAAM;IAChC,OAAO,CAAC,mBAAmB,CAAM;IACjC,OAAO,CAAC,0BAA0B,CAAK;IACvC,OAAO,CAAC,yBAAyB,CAAqB;IACtD,OAAO,CAAC,oBAAoB,CAAS;IAErC,IAAW,SAAS,IAAI,cAAc,GAAG,SAAS,CAEjD;IAED,OAAO,CAAC,gBAAgB;IAUjB,cAAc,IAAI,IAAI;IA6FtB,aAAa,IAAI,IAAI;IAU5B,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,iBAAiB,CAGrB;IAEJ,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,wBAAwB;IAO1D,WAAW,CAAC,KAAK,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,IAAI;CAczE"}
@@ -1,4 +1,5 @@
1
1
  import { BaseSubscribable } from "../../subscribable/subscribable.js";
2
+ import { fileMatchesAccept, } from "../../adapters/attachment.js";
2
3
  import { generateId } from "../../utils/id.js";
3
4
  const isAttachmentComplete = (a) => a.status.type === "complete";
4
5
  export class BaseComposerRuntimeCore extends BaseSubscribable {
@@ -149,6 +150,9 @@ export class BaseComposerRuntimeCore extends BaseSubscribable {
149
150
  const adapter = this.getAttachmentAdapter();
150
151
  if (!adapter)
151
152
  throw new Error("Attachments are not supported");
153
+ if (!fileMatchesAccept({ name: fileOrAttachment.name, type: fileOrAttachment.type }, adapter.accept)) {
154
+ throw new Error(`File type ${fileOrAttachment.type || "unknown"} is not accepted. Accepted types: ${adapter.accept}`);
155
+ }
152
156
  const upsertAttachment = (a) => {
153
157
  const idx = this._attachments.findIndex((attachment) => attachment.id === a.id);
154
158
  if (idx !== -1)
@@ -162,17 +166,38 @@ export class BaseComposerRuntimeCore extends BaseSubscribable {
162
166
  }
163
167
  this._notifySubscribers();
164
168
  };
165
- const promiseOrGenerator = adapter.add({ file: fileOrAttachment });
166
- if (Symbol.asyncIterator in promiseOrGenerator) {
167
- for await (const r of promiseOrGenerator) {
168
- upsertAttachment(r);
169
+ let lastAttachment;
170
+ try {
171
+ const promiseOrGenerator = adapter.add({ file: fileOrAttachment });
172
+ if (Symbol.asyncIterator in promiseOrGenerator) {
173
+ for await (const r of promiseOrGenerator) {
174
+ lastAttachment = r;
175
+ upsertAttachment(r);
176
+ }
177
+ }
178
+ else {
179
+ lastAttachment = await promiseOrGenerator;
180
+ upsertAttachment(lastAttachment);
169
181
  }
170
182
  }
171
- else {
172
- upsertAttachment(await promiseOrGenerator);
183
+ catch (e) {
184
+ if (lastAttachment) {
185
+ upsertAttachment({
186
+ ...lastAttachment,
187
+ status: { type: "incomplete", reason: "error" },
188
+ });
189
+ }
190
+ try {
191
+ this._notifyEventSubscribers("attachmentAddError");
192
+ }
193
+ catch {
194
+ // prevent subscriber errors from masking the adapter error
195
+ }
196
+ throw e;
173
197
  }
174
- this._notifyEventSubscribers("attachmentAdd");
175
- this._notifySubscribers();
198
+ const hasError = lastAttachment?.status.type === "incomplete" &&
199
+ lastAttachment.status.reason === "error";
200
+ this._notifyEventSubscribers(hasError ? "attachmentAddError" : "attachmentAdd");
176
201
  }
177
202
  async removeAttachment(attachmentId) {
178
203
  const index = this._attachments.findIndex((a) => a.id === attachmentId);
@@ -1 +1 @@
1
- {"version":3,"file":"base-composer-runtime-core.js","sourceRoot":"","sources":["../../../src/runtime/base/base-composer-runtime-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-composer-runtime-core.js","sourceRoot":"","sources":["../../../src/runtime/base/base-composer-runtime-core.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { Attachment, CreateAttachment } from "../../types/attachment.js";
4
4
  import type { Unsubscribe } from "../../types/unsubscribe.js";
5
5
  import type { RunConfig } from "../../types/message.js";
6
6
  import type { DictationAdapter } from "../../adapters/speech.js";
7
- export type ComposerRuntimeEventType = "send" | "attachmentAdd";
7
+ export type ComposerRuntimeEventType = "send" | "attachmentAdd" | "attachmentAddError";
8
8
  export type DictationState = {
9
9
  readonly status: DictationAdapter.Status;
10
10
  readonly transcript?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"composer-runtime-core.d.ts","sourceRoot":"","sources":["../../../src/runtime/interfaces/composer-runtime-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,+BAA4B;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,6BAA0B;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,kCAA+B;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mCAAgC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA4B;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iCAA8B;AAE9D,MAAM,MAAM,wBAAwB,GAAG,MAAM,GAAG,eAAe,CAAC;AAEhE,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IAEnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IAEjB,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,aAAa,EAAE,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAErC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IAEjD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;IAEjD,WAAW,EAAE,CACX,KAAK,EAAE,wBAAwB,EAC/B,QAAQ,EAAE,MAAM,IAAI,KACjB,WAAW,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"composer-runtime-core.d.ts","sourceRoot":"","sources":["../../../src/runtime/interfaces/composer-runtime-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,+BAA4B;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,6BAA0B;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,kCAA+B;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,mCAAgC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,+BAA4B;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iCAA8B;AAE9D,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,eAAe,GACf,oBAAoB,CAAC;AAEzB,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,QAAQ,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IAEnB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IAEjB,WAAW,EAAE,SAAS,UAAU,EAAE,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IAEzB,aAAa,EAAE,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,gBAAgB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAErC,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,KAAK,IAAI,CAAC;IAEjD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IAEnB,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,WAAW,CAAC;IAEjD,WAAW,EAAE,CACX,KAAK,EAAE,wBAAwB,EAC/B,QAAQ,EAAE,MAAM,IAAI,KACjB,WAAW,CAAC;CAClB,CAAC,CAAC;AAEH,MAAM,MAAM,yBAAyB,GAAG,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"composer-runtime-client.d.ts","sourceRoot":"","sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,MAAM,EAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EAEhB,8CAA2C;AAqB5C,eAAO,MAAM,cAAc;iBAMV,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;mBACtB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;aAC9B,eAAe;;iBAFX,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;mBACtB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;aAC9B,eAAe;EA4F3B,CAAC"}
1
+ {"version":3,"file":"composer-runtime-client.d.ts","sourceRoot":"","sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,MAAM,EAEZ,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,YAAY,EAGlB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EAEhB,8CAA2C;AAoB5C,eAAO,MAAM,cAAc;iBAMV,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;mBACtB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;aAC9B,eAAe;;iBAFX,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;mBACtB,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;aAC9B,eAAe;EAwG3B,CAAC"}
@@ -15,11 +15,7 @@ export const ComposerClient = resource(({ threadIdRef, messageIdRef, runtime, })
15
15
  tapEffect(() => {
16
16
  const unsubscribers = [];
17
17
  // Subscribe to composer events
18
- const composerEvents = [
19
- "send",
20
- "attachmentAdd",
21
- ];
22
- for (const event of composerEvents) {
18
+ for (const event of ["send", "attachmentAdd"]) {
23
19
  const unsubscribe = runtime.unstable_on(event, () => {
24
20
  emit(`composer.${event}`, {
25
21
  threadId: threadIdRef.current,
@@ -28,6 +24,17 @@ export const ComposerClient = resource(({ threadIdRef, messageIdRef, runtime, })
28
24
  });
29
25
  unsubscribers.push(unsubscribe);
30
26
  }
27
+ // attachmentAddError carries the failed attachment ID
28
+ unsubscribers.push(runtime.unstable_on("attachmentAddError", () => {
29
+ const errorAttachment = runtime
30
+ .getState()
31
+ .attachments.findLast((a) => a.status.type === "incomplete" && a.status.reason === "error");
32
+ emit("composer.attachmentAddError", {
33
+ threadId: threadIdRef.current,
34
+ ...(messageIdRef && { messageId: messageIdRef.current }),
35
+ ...(errorAttachment && { attachmentId: errorAttachment.id }),
36
+ });
37
+ }));
31
38
  return () => {
32
39
  for (const unsub of unsubscribers)
33
40
  unsub();
@@ -1 +1 @@
1
- {"version":3,"file":"composer-runtime-client.js","sourceRoot":"","sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer-runtime-client.js","sourceRoot":"","sources":["../../../src/store/runtime-clients/composer-runtime-client.ts"],"names":[],"mappings":"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"}
@@ -89,6 +89,11 @@ export type ComposerEvents = {
89
89
  threadId: string;
90
90
  messageId?: string;
91
91
  };
92
+ "composer.attachmentAddError": {
93
+ threadId: string;
94
+ messageId?: string;
95
+ attachmentId?: string;
96
+ };
92
97
  };
93
98
  export type ComposerClientSchema = {
94
99
  methods: ComposerMethods;
@@ -1 +1 @@
1
- {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../../src/store/scopes/composer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composer.d.ts","sourceRoot":"","sources":["../../../src/store/scopes/composer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assistant-ui/core",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Framework-agnostic core runtime for assistant-ui",
5
5
  "keywords": [
6
6
  "assistant",
@@ -53,15 +53,15 @@
53
53
  ],
54
54
  "sideEffects": false,
55
55
  "dependencies": {
56
- "assistant-stream": "^0.3.7",
56
+ "assistant-stream": "^0.3.8",
57
57
  "nanoid": "^5.1.7"
58
58
  },
59
59
  "peerDependencies": {
60
- "@assistant-ui/store": "^0.2.4",
61
- "@assistant-ui/tap": "^0.5.4",
60
+ "@assistant-ui/store": "^0.2.5",
61
+ "@assistant-ui/tap": "^0.5.5",
62
62
  "@types/react": "*",
63
63
  "react": "^18 || ^19",
64
- "assistant-cloud": "^0.1.22",
64
+ "assistant-cloud": "^0.1.23",
65
65
  "zustand": "^5.0.11"
66
66
  },
67
67
  "peerDependenciesMeta": {
@@ -81,12 +81,12 @@
81
81
  "devDependencies": {
82
82
  "@types/react": "^19.2.14",
83
83
  "react": "^19.2.4",
84
- "vitest": "^4.1.0",
84
+ "vitest": "^4.1.1",
85
85
  "zustand": "^5.0.12",
86
- "@assistant-ui/store": "0.2.4",
87
- "@assistant-ui/tap": "0.5.4",
86
+ "@assistant-ui/store": "0.2.5",
87
+ "@assistant-ui/tap": "0.5.5",
88
88
  "@assistant-ui/x-buildutils": "0.0.3",
89
- "assistant-cloud": "0.1.22"
89
+ "assistant-cloud": "0.1.23"
90
90
  },
91
91
  "publishConfig": {
92
92
  "access": "public",
@@ -114,7 +114,7 @@ const getFileText = (file: File) =>
114
114
  // Composite Attachment Adapter
115
115
  // =============================================================================
116
116
 
117
- function fileMatchesAccept(
117
+ export function fileMatchesAccept(
118
118
  file: { name: string; type: string },
119
119
  acceptString: string,
120
120
  ) {
@@ -0,0 +1,233 @@
1
+ import {
2
+ resource,
3
+ tapState,
4
+ tapEffect,
5
+ tapCallback,
6
+ tapRef,
7
+ tapMemo,
8
+ } from "@assistant-ui/tap";
9
+ import {
10
+ tapAssistantClientRef,
11
+ type ClientOutput,
12
+ attachTransformScopes,
13
+ } from "@assistant-ui/store";
14
+ import type {
15
+ InteractablesState,
16
+ InteractableDefinition,
17
+ InteractableRegistration,
18
+ InteractableStateSchema,
19
+ } from "../types/scopes/interactables";
20
+ import { toJSONSchema, toPartialJSONSchema } from "assistant-stream";
21
+ import type { Tool } from "assistant-stream";
22
+ import { ModelContext } from "../../store";
23
+
24
+ function shallowMerge(prev: unknown, partial: unknown): unknown {
25
+ if (
26
+ typeof prev !== "object" ||
27
+ prev === null ||
28
+ typeof partial !== "object" ||
29
+ partial === null ||
30
+ Array.isArray(prev) ||
31
+ Array.isArray(partial)
32
+ ) {
33
+ return partial;
34
+ }
35
+ return {
36
+ ...(prev as Record<string, unknown>),
37
+ ...(partial as Record<string, unknown>),
38
+ };
39
+ }
40
+
41
+ export const Interactables = resource((): ClientOutput<"interactables"> => {
42
+ const [state, setState] = tapState<InteractablesState>(() => ({
43
+ definitions: {},
44
+ }));
45
+
46
+ const clientRef = tapAssistantClientRef();
47
+
48
+ const stateRef = tapRef(state);
49
+ tapEffect(() => {
50
+ stateRef.current = state;
51
+ }, [state]);
52
+
53
+ const subscribersRef = tapRef(new Set<() => void>());
54
+
55
+ const partialSchemaCacheRef = tapRef(
56
+ new Map<string, InteractableStateSchema>(),
57
+ );
58
+ const detachedStateRef = tapRef(new Map<string, unknown>());
59
+
60
+ const setDefState = tapCallback(
61
+ (id: string, updater: (prev: unknown) => unknown) => {
62
+ setState((prev) => {
63
+ const existing = prev.definitions[id];
64
+ if (!existing) return prev;
65
+ return {
66
+ ...prev,
67
+ definitions: {
68
+ ...prev.definitions,
69
+ [id]: { ...existing, state: updater(existing.state) },
70
+ },
71
+ };
72
+ });
73
+ },
74
+ [],
75
+ );
76
+
77
+ const setDefSelected = tapCallback((id: string, selected: boolean) => {
78
+ setState((prev) => {
79
+ const existing = prev.definitions[id];
80
+ if (!existing) return prev;
81
+ return {
82
+ ...prev,
83
+ definitions: {
84
+ ...prev.definitions,
85
+ [id]: { ...existing, selected },
86
+ },
87
+ };
88
+ });
89
+ }, []);
90
+
91
+ const provider = tapMemo(
92
+ () => ({
93
+ getModelContext: () => {
94
+ const defs = stateRef.current.definitions;
95
+ const entries = Object.values(defs);
96
+ if (entries.length === 0) return {};
97
+
98
+ const byName = new Map<string, InteractableDefinition[]>();
99
+ for (const def of entries) {
100
+ const list = byName.get(def.name) ?? [];
101
+ list.push(def);
102
+ byName.set(def.name, list);
103
+ }
104
+
105
+ const systemParts: string[] = [];
106
+ const tools: Record<string, Tool<any, any>> = {};
107
+
108
+ for (const [name, instances] of byName) {
109
+ const isMulti = instances.length > 1;
110
+
111
+ for (const def of instances) {
112
+ const selectedTag = def.selected ? " (SELECTED)" : "";
113
+ const idTag = isMulti ? ` [id="${def.id}"]` : "";
114
+
115
+ systemParts.push(
116
+ `Interactable component "${name}"${idTag}${selectedTag} (${def.description}). Current state: ${JSON.stringify(def.state)}`,
117
+ );
118
+
119
+ const safeName = name.replace(/[^a-zA-Z0-9_-]/g, "_");
120
+ const safeId = def.id.replace(/[^a-zA-Z0-9_-]/g, "_");
121
+ const toolName = isMulti
122
+ ? `update_${safeName}_${safeId}`
123
+ : `update_${safeName}`;
124
+
125
+ const partialSchema =
126
+ partialSchemaCacheRef.current.get(def.id) ?? def.stateSchema;
127
+
128
+ tools[toolName] = {
129
+ type: "frontend" as const,
130
+ description: `Update the state of interactable component "${name}"${isMulti ? ` (id: ${def.id})` : ""}. Only include the fields you want to change; omitted fields keep their current values. ${def.description}`,
131
+ parameters: partialSchema,
132
+ streamCall: async (reader) => {
133
+ try {
134
+ for await (const partialArgs of reader.args.streamValues()) {
135
+ setDefState(def.id, (prev) =>
136
+ shallowMerge(prev, partialArgs),
137
+ );
138
+ }
139
+ } catch {
140
+ // Non-fatal: execute handles the final state
141
+ }
142
+ },
143
+ execute: async (partialState: unknown) => {
144
+ setDefState(def.id, (prev) => shallowMerge(prev, partialState));
145
+ return { success: true };
146
+ },
147
+ };
148
+ }
149
+ }
150
+
151
+ return { system: systemParts.join("\n"), tools };
152
+ },
153
+ subscribe: (callback: () => void) => {
154
+ subscribersRef.current.add(callback);
155
+ return () => {
156
+ subscribersRef.current.delete(callback);
157
+ };
158
+ },
159
+ }),
160
+ [setDefState],
161
+ );
162
+
163
+ // biome-ignore lint/correctness/useExhaustiveDependencies: state dep triggers notification
164
+ tapEffect(() => {
165
+ for (const cb of subscribersRef.current) {
166
+ cb();
167
+ }
168
+ }, [state]);
169
+
170
+ tapEffect(() => {
171
+ return clientRef.current!.modelContext().register(provider);
172
+ }, [clientRef, provider]);
173
+
174
+ const register = tapCallback((def: InteractableRegistration) => {
175
+ try {
176
+ const jsonSchema = toJSONSchema(def.stateSchema);
177
+ partialSchemaCacheRef.current.set(
178
+ def.id,
179
+ toPartialJSONSchema(jsonSchema),
180
+ );
181
+ } catch (e) {
182
+ // Fall back to the raw schema; partial updates may not work correctly
183
+ console.warn(
184
+ `[Interactables] Failed to create partial schema for "${def.name}". The update tool will require all fields.`,
185
+ e,
186
+ );
187
+ }
188
+
189
+ const detached = detachedStateRef.current.get(def.id);
190
+ detachedStateRef.current.delete(def.id);
191
+
192
+ setState((prev) => ({
193
+ ...prev,
194
+ definitions: {
195
+ ...prev.definitions,
196
+ [def.id]: {
197
+ id: def.id,
198
+ name: def.name,
199
+ description: def.description,
200
+ stateSchema: def.stateSchema,
201
+ state:
202
+ prev.definitions[def.id]?.state ?? detached ?? def.initialState,
203
+ selected: def.selected,
204
+ },
205
+ },
206
+ }));
207
+
208
+ return () => {
209
+ setState((prev) => {
210
+ const existing = prev.definitions[def.id];
211
+ if (existing) {
212
+ detachedStateRef.current.set(def.id, existing.state);
213
+ }
214
+ partialSchemaCacheRef.current.delete(def.id);
215
+ const { [def.id]: _, ...rest } = prev.definitions;
216
+ return { ...prev, definitions: rest };
217
+ });
218
+ };
219
+ }, []);
220
+
221
+ return {
222
+ getState: () => state,
223
+ register,
224
+ setState: setDefState,
225
+ setSelected: setDefSelected,
226
+ };
227
+ });
228
+
229
+ attachTransformScopes(Interactables, (scopes, parent) => {
230
+ if (!scopes.modelContext && parent.modelContext.source === null) {
231
+ scopes.modelContext = ModelContext();
232
+ }
233
+ });
@@ -28,10 +28,21 @@ export {
28
28
  } from "./model-context/useAssistantDataUI";
29
29
  export { useInlineRender } from "./model-context/useInlineRender";
30
30
  export type { Toolkit, ToolDefinition } from "./model-context/toolbox";
31
+ export {
32
+ useInteractable,
33
+ type UseInteractableConfig,
34
+ type UseInteractableMetadata,
35
+ } from "./model-context/useInteractable";
36
+ export {
37
+ makeInteractable,
38
+ type InteractableConfig,
39
+ type AssistantInteractable,
40
+ } from "./model-context/makeInteractable";
31
41
 
32
42
  // client
33
43
  export { Tools } from "./client/Tools";
34
44
  export { DataRenderers } from "./client/DataRenderers";
45
+ export { Interactables } from "./client/Interactables";
35
46
 
36
47
  // types
37
48
  export type {
@@ -68,6 +79,14 @@ export type {
68
79
  DataRenderersMethods,
69
80
  DataRenderersClientSchema,
70
81
  } from "./types/scopes/dataRenderers";
82
+ export type {
83
+ InteractableStateSchema,
84
+ InteractablesState,
85
+ InteractableDefinition,
86
+ InteractableRegistration,
87
+ InteractablesMethods,
88
+ InteractablesClientSchema,
89
+ } from "./types/scopes/interactables";
71
90
 
72
91
  // providers
73
92
  export {
@@ -0,0 +1,21 @@
1
+ import { FC } from "react";
2
+ import { useInteractable, type UseInteractableConfig } from "./useInteractable";
3
+
4
+ export type InteractableConfig<TState> = UseInteractableConfig<TState> & {
5
+ name: string;
6
+ };
7
+
8
+ export type AssistantInteractable = FC & {
9
+ unstable_interactable: InteractableConfig<any>;
10
+ };
11
+
12
+ export const makeInteractable = <TState>(
13
+ config: InteractableConfig<TState>,
14
+ ) => {
15
+ const Interactable: AssistantInteractable = () => {
16
+ useInteractable(config.name, config);
17
+ return null;
18
+ };
19
+ Interactable.unstable_interactable = config;
20
+ return Interactable;
21
+ };
@@ -0,0 +1,73 @@
1
+ import { useEffect, useCallback, useId, useRef } from "react";
2
+ import { useAui, useAuiState } from "@assistant-ui/store";
3
+ import type { InteractableStateSchema } from "../types/scopes/interactables";
4
+
5
+ export type UseInteractableConfig<TState> = {
6
+ description: string;
7
+ stateSchema: InteractableStateSchema;
8
+ initialState: TState;
9
+ id?: string;
10
+ selected?: boolean;
11
+ };
12
+
13
+ type StateUpdater<TState> = TState | ((prev: TState) => TState);
14
+
15
+ export type UseInteractableMetadata = {
16
+ id: string;
17
+ setSelected: (selected: boolean) => void;
18
+ };
19
+
20
+ export const useInteractable = <TState>(
21
+ name: string,
22
+ config: UseInteractableConfig<TState>,
23
+ ): [
24
+ TState,
25
+ (updater: StateUpdater<TState>) => void,
26
+ UseInteractableMetadata,
27
+ ] => {
28
+ const aui = useAui();
29
+
30
+ const autoId = useId().replace(/[^a-zA-Z0-9]/g, "");
31
+ const id = config.id ?? autoId;
32
+
33
+ const stateSchemaRef = useRef(config.stateSchema);
34
+ stateSchemaRef.current = config.stateSchema;
35
+ const initialStateRef = useRef(config.initialState);
36
+ initialStateRef.current = config.initialState;
37
+
38
+ useEffect(() => {
39
+ return aui.interactables().register({
40
+ id,
41
+ name,
42
+ description: config.description,
43
+ stateSchema: stateSchemaRef.current,
44
+ initialState: initialStateRef.current,
45
+ selected: config.selected,
46
+ });
47
+ }, [aui, id, name, config.description, config.selected]);
48
+
49
+ const state =
50
+ (useAuiState((s) => s.interactables.definitions[id]?.state) as TState) ??
51
+ config.initialState;
52
+
53
+ const setState = useCallback(
54
+ (updater: StateUpdater<TState>) => {
55
+ aui.interactables().setState(id, (prev) => {
56
+ if (typeof updater === "function") {
57
+ return (updater as (prev: TState) => TState)(prev as TState);
58
+ }
59
+ return updater;
60
+ });
61
+ },
62
+ [aui, id],
63
+ );
64
+
65
+ const setSelected = useCallback(
66
+ (selected: boolean) => {
67
+ aui.interactables().setSelected(id, selected);
68
+ },
69
+ [aui, id],
70
+ );
71
+
72
+ return [state, setState, { id, setSelected }];
73
+ };