@assistant-ui/store 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +9 -10
  2. package/dist/AuiIf.d.ts +1 -1
  3. package/dist/AuiIf.d.ts.map +1 -1
  4. package/dist/AuiIf.js.map +1 -1
  5. package/dist/index.d.ts +3 -9
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +4 -10
  8. package/dist/index.js.map +1 -1
  9. package/dist/scope-registry-forward.d.ts +6 -0
  10. package/dist/scope-registry-forward.d.ts.map +1 -0
  11. package/dist/scope-registry-forward.js +2 -0
  12. package/dist/scope-registry-forward.js.map +1 -0
  13. package/dist/scope-registry.d.ts +17 -0
  14. package/dist/scope-registry.d.ts.map +1 -0
  15. package/dist/scope-registry.js +2 -0
  16. package/dist/scope-registry.js.map +1 -0
  17. package/dist/useAui.d.ts +3 -5
  18. package/dist/useAui.d.ts.map +1 -1
  19. package/dist/useAui.js +6 -11
  20. package/dist/useAui.js.map +1 -1
  21. package/dist/useAuiEvent.d.ts +1 -1
  22. package/dist/useAuiEvent.d.ts.map +1 -1
  23. package/dist/useAuiEvent.js +1 -1
  24. package/dist/useAuiEvent.js.map +1 -1
  25. package/dist/useAuiState.d.ts +1 -1
  26. package/dist/useAuiState.d.ts.map +1 -1
  27. package/dist/useAuiState.js +1 -1
  28. package/dist/useAuiState.js.map +1 -1
  29. package/dist/utils/react-assistant-context.d.ts +1 -1
  30. package/dist/utils/react-assistant-context.d.ts.map +1 -1
  31. package/dist/utils/react-assistant-context.js +1 -2
  32. package/dist/utils/react-assistant-context.js.map +1 -1
  33. package/package.json +10 -3
  34. package/src/{AuiIf.tsx → AuiIf.ts} +1 -1
  35. package/src/__tests__/hooks.test.tsx +126 -0
  36. package/src/index.ts +25 -32
  37. package/src/scope-registry-forward.ts +6 -0
  38. package/src/scope-registry.ts +15 -0
  39. package/src/{useAui.tsx → useAui.ts} +24 -27
  40. package/src/useAuiEvent.ts +2 -2
  41. package/src/{useAuiState.tsx → useAuiState.ts} +3 -3
  42. package/src/utils/react-assistant-context.tsx +7 -3
  43. package/dist/Derived.d.ts +0 -34
  44. package/dist/Derived.d.ts.map +0 -1
  45. package/dist/Derived.js +0 -24
  46. package/dist/Derived.js.map +0 -1
  47. package/dist/attachDefaultPeers.d.ts +0 -56
  48. package/dist/attachDefaultPeers.d.ts.map +0 -1
  49. package/dist/attachDefaultPeers.js +0 -51
  50. package/dist/attachDefaultPeers.js.map +0 -1
  51. package/dist/tapClientList.d.ts +0 -24
  52. package/dist/tapClientList.d.ts.map +0 -1
  53. package/dist/tapClientList.js +0 -68
  54. package/dist/tapClientList.js.map +0 -1
  55. package/dist/tapClientLookup.d.ts +0 -11
  56. package/dist/tapClientLookup.d.ts.map +0 -1
  57. package/dist/tapClientLookup.js +0 -42
  58. package/dist/tapClientLookup.js.map +0 -1
  59. package/dist/tapClientResource.d.ts +0 -28
  60. package/dist/tapClientResource.d.ts.map +0 -1
  61. package/dist/tapClientResource.js +0 -122
  62. package/dist/tapClientResource.js.map +0 -1
  63. package/dist/types/client.d.ts +0 -119
  64. package/dist/types/client.d.ts.map +0 -1
  65. package/dist/types/client.js +0 -2
  66. package/dist/types/client.js.map +0 -1
  67. package/dist/types/events.d.ts +0 -33
  68. package/dist/types/events.d.ts.map +0 -1
  69. package/dist/types/events.js +0 -8
  70. package/dist/types/events.js.map +0 -1
  71. package/dist/utils/BaseProxyHandler.d.ts +0 -23
  72. package/dist/utils/BaseProxyHandler.d.ts.map +0 -1
  73. package/dist/utils/BaseProxyHandler.js +0 -46
  74. package/dist/utils/BaseProxyHandler.js.map +0 -1
  75. package/dist/utils/NotificationManager.d.ts +0 -11
  76. package/dist/utils/NotificationManager.d.ts.map +0 -1
  77. package/dist/utils/NotificationManager.js +0 -84
  78. package/dist/utils/NotificationManager.js.map +0 -1
  79. package/dist/utils/proxied-assistant-state.d.ts +0 -8
  80. package/dist/utils/proxied-assistant-state.d.ts.map +0 -1
  81. package/dist/utils/proxied-assistant-state.js +0 -34
  82. package/dist/utils/proxied-assistant-state.js.map +0 -1
  83. package/dist/utils/splitClients.d.ts +0 -10
  84. package/dist/utils/splitClients.d.ts.map +0 -1
  85. package/dist/utils/splitClients.js +0 -83
  86. package/dist/utils/splitClients.js.map +0 -1
  87. package/dist/utils/tap-assistant-context.d.ts +0 -19
  88. package/dist/utils/tap-assistant-context.d.ts.map +0 -1
  89. package/dist/utils/tap-assistant-context.js +0 -23
  90. package/dist/utils/tap-assistant-context.js.map +0 -1
  91. package/dist/utils/tap-client-stack-context.d.ts +0 -23
  92. package/dist/utils/tap-client-stack-context.d.ts.map +0 -1
  93. package/dist/utils/tap-client-stack-context.js +0 -28
  94. package/dist/utils/tap-client-stack-context.js.map +0 -1
  95. package/dist/wrapperResource.d.ts +0 -3
  96. package/dist/wrapperResource.d.ts.map +0 -1
  97. package/dist/wrapperResource.js +0 -11
  98. package/dist/wrapperResource.js.map +0 -1
  99. package/src/Derived.ts +0 -46
  100. package/src/attachDefaultPeers.ts +0 -78
  101. package/src/tapClientList.ts +0 -118
  102. package/src/tapClientLookup.ts +0 -76
  103. package/src/tapClientResource.ts +0 -182
  104. package/src/types/client.ts +0 -186
  105. package/src/types/events.ts +0 -77
  106. package/src/utils/BaseProxyHandler.ts +0 -50
  107. package/src/utils/NotificationManager.ts +0 -114
  108. package/src/utils/proxied-assistant-state.tsx +0 -53
  109. package/src/utils/splitClients.ts +0 -130
  110. package/src/utils/tap-assistant-context.ts +0 -58
  111. package/src/utils/tap-client-stack-context.ts +0 -51
  112. package/src/wrapperResource.ts +0 -17
@@ -1,122 +0,0 @@
1
- import { tapEffect, tapMemo, tapRef, tapResource, tapInlineResource, } from "@assistant-ui/tap";
2
- import { tapClientStack, tapWithClientStack, SYMBOL_CLIENT_INDEX, } from "./utils/tap-client-stack-context.js";
3
- import { BaseProxyHandler, handleIntrospectionProp, } from "./utils/BaseProxyHandler.js";
4
- import { wrapperResource } from "./wrapperResource.js";
5
- /**
6
- * Symbol used internally to get state from ClientProxy.
7
- * This allows getState() to be optional in the user-facing client.
8
- */
9
- const SYMBOL_GET_OUTPUT = Symbol("assistant-ui.store.getValue");
10
- export const getClientState = (client) => {
11
- const output = client[SYMBOL_GET_OUTPUT];
12
- if (!output) {
13
- throw new Error("Client scope contains a non-client resource. " +
14
- "Ensure your Derived get() returns a client created with tapClientResource(), not a plain resource.");
15
- }
16
- return output.state;
17
- };
18
- // Global cache for function templates by field name
19
- const fieldAccessFns = new Map();
20
- function getOrCreateProxyFn(prop) {
21
- let template = fieldAccessFns.get(prop);
22
- if (!template) {
23
- template = function (...args) {
24
- if (!this || typeof this !== "object") {
25
- throw new Error(`Method "${String(prop)}" called without proper context. ` +
26
- `This may indicate the function was called incorrectly.`);
27
- }
28
- const output = this[SYMBOL_GET_OUTPUT];
29
- if (!output) {
30
- throw new Error(`Method "${String(prop)}" called on invalid client proxy. ` +
31
- `Ensure you are calling this method on a valid client instance.`);
32
- }
33
- const method = output.methods[prop];
34
- if (!method)
35
- throw new Error(`Method "${String(prop)}" is not implemented.`);
36
- if (typeof method !== "function")
37
- throw new Error(`"${String(prop)}" is not a function.`);
38
- return method(...args);
39
- };
40
- fieldAccessFns.set(prop, template);
41
- }
42
- return template;
43
- }
44
- class ClientProxyHandler extends BaseProxyHandler {
45
- outputRef;
46
- index;
47
- boundFns;
48
- cachedReceiver;
49
- constructor(outputRef, index) {
50
- super();
51
- this.outputRef = outputRef;
52
- this.index = index;
53
- }
54
- get(_, prop, receiver) {
55
- if (prop === SYMBOL_GET_OUTPUT)
56
- return this.outputRef.current;
57
- if (prop === SYMBOL_CLIENT_INDEX)
58
- return this.index;
59
- const introspection = handleIntrospectionProp(prop, "ClientProxy");
60
- if (introspection !== false)
61
- return introspection;
62
- const value = this.outputRef.current.methods[prop];
63
- if (typeof value === "function") {
64
- if (this.cachedReceiver !== receiver) {
65
- this.boundFns = new Map();
66
- this.cachedReceiver = receiver;
67
- }
68
- let bound = this.boundFns.get(prop);
69
- if (!bound) {
70
- bound = getOrCreateProxyFn(prop).bind(receiver);
71
- this.boundFns.set(prop, bound);
72
- }
73
- return bound;
74
- }
75
- return value;
76
- }
77
- ownKeys() {
78
- return Object.keys(this.outputRef.current.methods);
79
- }
80
- has(_, prop) {
81
- if (prop === SYMBOL_GET_OUTPUT)
82
- return true;
83
- if (prop === SYMBOL_CLIENT_INDEX)
84
- return true;
85
- return prop in this.outputRef.current.methods;
86
- }
87
- }
88
- /**
89
- * Resource that wraps a plain resource element to create a stable client proxy.
90
- *
91
- * Takes a ResourceElement that returns { state, methods } and
92
- * wraps it to produce a stable client proxy. This adds the client to the
93
- * client stack, enabling event scoping.
94
- *
95
- * Use this for 1:1 client mappings where you want event scoping to work correctly.
96
- *
97
- * @example
98
- * ```typescript
99
- * const MessageResource = resource(({ messageId }: { messageId: string }) => {
100
- * return tapInlineResource(
101
- * tapClientResource(InnerMessageResource({ messageId }))
102
- * );
103
- * });
104
- * ```
105
- */
106
- export const ClientResource = wrapperResource((element) => {
107
- const valueRef = tapRef(null);
108
- const index = tapClientStack().length;
109
- const methods = tapMemo(() => new Proxy({}, new ClientProxyHandler(valueRef, index)), [index]);
110
- const value = tapWithClientStack(methods, () => tapResource(element));
111
- if (!valueRef.current) {
112
- valueRef.current = value;
113
- }
114
- tapEffect(() => {
115
- valueRef.current = value;
116
- });
117
- return { methods, state: value.state, key: element.key };
118
- });
119
- export const tapClientResource = (element) => {
120
- return tapInlineResource(ClientResource(element));
121
- };
122
- //# sourceMappingURL=tapClientResource.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tapClientResource.js","sourceRoot":"","sources":["../src/tapClientResource.ts"],"names":[],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import type { ResourceElement } from "@assistant-ui/tap";
2
- import type { AssistantEventName, AssistantEventCallback, AssistantEventSelector } from "./events.js";
3
- /**
4
- * Base type for methods that can be called on a client.
5
- */
6
- export interface ClientMethods {
7
- [key: string | symbol]: ((...args: any[]) => any) | ClientMethods;
8
- }
9
- type ClientMetaType = {
10
- source: ClientNames;
11
- query: Record<string, unknown>;
12
- };
13
- /**
14
- * Module augmentation interface for assistant-ui store type extensions.
15
- *
16
- * @example
17
- * ```typescript
18
- * declare module "@assistant-ui/store" {
19
- * interface ClientRegistry {
20
- * // Simple client (meta and events are optional)
21
- * foo: {
22
- * state: { bar: string };
23
- * methods: { updateBar: (bar: string) => void };
24
- * };
25
- * // Full client with meta and events
26
- * bar: {
27
- * state: { id: string };
28
- * methods: { update: () => void };
29
- * meta: { source: "fooList"; query: { index: number } };
30
- * events: {
31
- * "bar.updated": { id: string };
32
- * };
33
- * };
34
- * }
35
- * }
36
- * ```
37
- */
38
- export interface ClientRegistry {
39
- }
40
- type ClientEventsType<K extends ClientNames> = Record<`${K}.${string}`, unknown>;
41
- type ClientError<E extends string> = {
42
- state: E;
43
- methods: Record<E, () => E>;
44
- meta: {
45
- source: ClientNames;
46
- query: Record<E, E>;
47
- };
48
- events: Record<`${E}.`, E>;
49
- };
50
- type ValidateClient<K extends keyof ClientRegistry> = ClientRegistry[K] extends {
51
- methods: ClientMethods;
52
- } ? "meta" extends keyof ClientRegistry[K] ? ClientRegistry[K]["meta"] extends ClientMetaType ? "events" extends keyof ClientRegistry[K] ? ClientRegistry[K]["events"] extends ClientEventsType<K> ? ClientRegistry[K] : ClientError<`ERROR: ${K & string} has invalid events type`> : ClientRegistry[K] : ClientError<`ERROR: ${K & string} has invalid meta type`> : "events" extends keyof ClientRegistry[K] ? ClientRegistry[K]["events"] extends ClientEventsType<K> ? ClientRegistry[K] : ClientError<`ERROR: ${K & string} has invalid events type`> : ClientRegistry[K] : ClientError<`ERROR: ${K & string} has invalid methods type`>;
53
- type ClientSchemas = keyof ClientRegistry extends never ? {
54
- "ERROR: No clients were defined": ClientError<"ERROR: No clients were defined">;
55
- } : {
56
- [K in keyof ClientRegistry]: ValidateClient<K>;
57
- };
58
- /**
59
- * Output type that client resources return with state and methods.
60
- *
61
- * @example
62
- * ```typescript
63
- * const FooResource = resource((): ClientResourceOutput<"foo"> => {
64
- * const [state, setState] = tapState({ bar: "hello" });
65
- * return {
66
- * state,
67
- * methods: {
68
- * updateBar: (b) => setState({ bar: b })
69
- * }
70
- * };
71
- * });
72
- * ```
73
- */
74
- export type ClientOutput<K extends ClientNames> = ClientOutputOf<ClientSchemas[K]["state"], ClientSchemas[K]["methods"] & ClientMethods>;
75
- /**
76
- * Generic version of ClientResourceOutput for library code.
77
- */
78
- export type ClientOutputOf<TState, TMethods extends ClientMethods> = {
79
- state: TState;
80
- methods: TMethods;
81
- };
82
- export type ClientNames = keyof ClientSchemas extends infer U ? U : never;
83
- export type ClientEvents<K extends ClientNames> = "events" extends keyof ClientSchemas[K] ? ClientSchemas[K]["events"] extends ClientEventsType<K> ? ClientSchemas[K]["events"] : never : never;
84
- export type ClientMeta<K extends ClientNames> = "meta" extends keyof ClientSchemas[K] ? Pick<ClientSchemas[K]["meta"] extends ClientMetaType ? ClientSchemas[K]["meta"] : never, "source" | "query"> : never;
85
- export type ClientElement<K extends ClientNames> = ResourceElement<ClientOutput<K>>;
86
- /**
87
- * Unsubscribe function type.
88
- */
89
- export type Unsubscribe = () => void;
90
- /**
91
- * State type extracted from all clients.
92
- */
93
- export type AssistantState = {
94
- [K in ClientNames]: ClientSchemas[K]["state"];
95
- };
96
- /**
97
- * Type for a client accessor - a function that returns the methods,
98
- * with source/query metadata attached (derived from meta).
99
- */
100
- export type AssistantClientAccessor<K extends ClientNames> = (() => ClientSchemas[K]["methods"]) & (ClientMeta<K> | {
101
- source: "root";
102
- query: Record<string, never>;
103
- } | {
104
- source: null;
105
- query: null;
106
- }) & {
107
- name: K;
108
- };
109
- /**
110
- * The assistant client type with all registered clients.
111
- */
112
- export type AssistantClient = {
113
- [K in ClientNames]: AssistantClientAccessor<K>;
114
- } & {
115
- subscribe(listener: () => void): Unsubscribe;
116
- on<TEvent extends AssistantEventName>(selector: AssistantEventSelector<TEvent>, callback: AssistantEventCallback<TEvent>): Unsubscribe;
117
- };
118
- export {};
119
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":""}
@@ -1,33 +0,0 @@
1
- import type { AssistantClientAccessor, ClientEvents, ClientNames } from "./client.js";
2
- type UnionToIntersection<U> = (U extends unknown ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
3
- type ClientEventMap = UnionToIntersection<{
4
- [K in ClientNames]: ClientEvents<K>;
5
- }[ClientNames]>;
6
- type WildcardPayload = {
7
- [K in keyof ClientEventMap]: {
8
- event: K;
9
- payload: ClientEventMap[K];
10
- };
11
- }[keyof ClientEventMap];
12
- export type AssistantEventPayload = ClientEventMap & {
13
- "*": WildcardPayload;
14
- };
15
- export type AssistantEventName = keyof AssistantEventPayload;
16
- type EventSource<T extends AssistantEventName> = T extends `${infer Source}.${string}` ? Source : never;
17
- type ParentOf<K extends ClientNames> = AssistantClientAccessor<K> extends {
18
- source: infer S;
19
- } ? S extends ClientNames ? S : never : never;
20
- type AncestorsOf<K extends ClientNames, Seen extends ClientNames = never> = K extends Seen ? never : ParentOf<K> extends never ? never : ParentOf<K> | AncestorsOf<ParentOf<K>, Seen | K>;
21
- /** Valid scopes: `"*"` | event source | ancestors of event source */
22
- export type AssistantEventScope<TEvent extends AssistantEventName> = "*" | EventSource<TEvent> | (EventSource<TEvent> extends ClientNames ? AncestorsOf<EventSource<TEvent>> : never);
23
- export type AssistantEventSelector<TEvent extends AssistantEventName> = TEvent | {
24
- scope: AssistantEventScope<TEvent>;
25
- event: TEvent;
26
- };
27
- export declare const normalizeEventSelector: <TEvent extends AssistantEventName>(selector: AssistantEventSelector<TEvent>) => {
28
- scope: AssistantEventScope<TEvent>;
29
- event: TEvent;
30
- };
31
- export type AssistantEventCallback<TEvent extends AssistantEventName> = (payload: AssistantEventPayload[TEvent]) => void;
32
- export {};
33
- //# sourceMappingURL=events.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,YAAY,EACZ,WAAW,EACZ,oBAAiB;AAGlB,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAC5B,CAAC,SAAS,OAAO,GACb,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GACd,KAAK,CACV,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,IAAI,GAC1B,CAAC,GACD,KAAK,CAAC;AAEV,KAAK,cAAc,GAAG,mBAAmB,CACvC;KAAG,CAAC,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC;CAAE,CAAC,WAAW,CAAC,CACrD,CAAC;AAIF,KAAK,eAAe,GAAG;KACpB,CAAC,IAAI,MAAM,cAAc,GAAG;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;KAAE;CACtE,CAAC,MAAM,cAAc,CAAC,CAAC;AAExB,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG;IAAE,GAAG,EAAE,eAAe,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC;AAE7D,KAAK,WAAW,CAAC,CAAC,SAAS,kBAAkB,IAC3C,CAAC,SAAS,GAAG,MAAM,MAAM,IAAI,MAAM,EAAE,GAAG,MAAM,GAAG,KAAK,CAAC;AAIzD,KAAK,QAAQ,CAAC,CAAC,SAAS,WAAW,IACjC,uBAAuB,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClD,CAAC,SAAS,WAAW,GACnB,CAAC,GACD,KAAK,GACP,KAAK,CAAC;AAEZ,KAAK,WAAW,CACd,CAAC,SAAS,WAAW,EACrB,IAAI,SAAS,WAAW,GAAG,KAAK,IAC9B,CAAC,SAAS,IAAI,GACd,KAAK,GACL,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,GACvB,KAAK,GACL,QAAQ,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;AAEvD,qEAAqE;AACrE,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,kBAAkB,IAC7D,GAAG,GACH,WAAW,CAAC,MAAM,CAAC,GACnB,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,WAAW,GACpC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAChC,KAAK,CAAC,CAAC;AAIf,MAAM,MAAM,sBAAsB,CAAC,MAAM,SAAS,kBAAkB,IAChE,MAAM,GACN;IAAE,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,eAAO,MAAM,sBAAsB,GAAI,MAAM,SAAS,kBAAkB,EACtE,UAAU,sBAAsB,CAAC,MAAM,CAAC;;;CAOzC,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,MAAM,SAAS,kBAAkB,IAAI,CACtE,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,KACnC,IAAI,CAAC"}
@@ -1,8 +0,0 @@
1
- export const normalizeEventSelector = (selector) => {
2
- if (typeof selector === "string") {
3
- const source = selector.split(".")[0];
4
- return { scope: source, event: selector };
5
- }
6
- return { scope: selector.scope, event: selector.event };
7
- };
8
- //# sourceMappingURL=events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAgEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,QAAwC,EACxC,EAAE;IACF,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAgC,CAAC;QACrE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC1D,CAAC,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Handles common proxy introspection properties.
3
- * Returns the appropriate value for toStringTag, toJSON, and props that should return undefined.
4
- * Returns `false` if the prop should be handled by the subclass.
5
- */
6
- export declare const handleIntrospectionProp: (prop: string | symbol, name: string) => unknown | false;
7
- export declare abstract class BaseProxyHandler implements ProxyHandler<object> {
8
- abstract get(_: unknown, prop: string | symbol, receiver?: unknown): unknown;
9
- abstract ownKeys(): ArrayLike<string | symbol>;
10
- abstract has(_: unknown, prop: string | symbol): boolean;
11
- getOwnPropertyDescriptor(_: unknown, prop: string | symbol): {
12
- value: {} | null;
13
- writable: boolean;
14
- enumerable: boolean;
15
- configurable: boolean;
16
- } | undefined;
17
- set(): boolean;
18
- setPrototypeOf(): boolean;
19
- defineProperty(): boolean;
20
- deleteProperty(): boolean;
21
- preventExtensions(): boolean;
22
- }
23
- //# sourceMappingURL=BaseProxyHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseProxyHandler.d.ts","sourceRoot":"","sources":["../../src/utils/BaseProxyHandler.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,MAAM,GAAG,MAAM,EACrB,MAAM,MAAM,KACX,OAAO,GAAG,KAMZ,CAAC;AAEF,8BAAsB,gBAAiB,YAAW,YAAY,CAAC,MAAM,CAAC;IACpE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO;IAC5E,QAAQ,CAAC,OAAO,IAAI,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9C,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAExD,wBAAwB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;;;;;;IAW1D,GAAG;IAGH,cAAc;IAGd,cAAc;IAGd,cAAc;IAGd,iBAAiB,IAAI,OAAO;CAG7B"}
@@ -1,46 +0,0 @@
1
- const INTROSPECTION_PROPS = new Set(["$$typeof", "nodeType", "then"]);
2
- /**
3
- * Handles common proxy introspection properties.
4
- * Returns the appropriate value for toStringTag, toJSON, and props that should return undefined.
5
- * Returns `false` if the prop should be handled by the subclass.
6
- */
7
- export const handleIntrospectionProp = (prop, name) => {
8
- if (prop === Symbol.toStringTag)
9
- return name;
10
- if (typeof prop === "symbol")
11
- return undefined;
12
- if (prop === "toJSON")
13
- return () => name;
14
- if (INTROSPECTION_PROPS.has(prop))
15
- return undefined;
16
- return false;
17
- };
18
- export class BaseProxyHandler {
19
- getOwnPropertyDescriptor(_, prop) {
20
- const value = this.get(_, prop);
21
- if (value === undefined)
22
- return undefined;
23
- return {
24
- value,
25
- writable: false,
26
- enumerable: true,
27
- configurable: false,
28
- };
29
- }
30
- set() {
31
- return false;
32
- }
33
- setPrototypeOf() {
34
- return false;
35
- }
36
- defineProperty() {
37
- return false;
38
- }
39
- deleteProperty() {
40
- return false;
41
- }
42
- preventExtensions() {
43
- return false;
44
- }
45
- }
46
- //# sourceMappingURL=BaseProxyHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseProxyHandler.js","sourceRoot":"","sources":["../../src/utils/BaseProxyHandler.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,IAAqB,EACrB,IAAY,EACK,EAAE;IACnB,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC7C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACzC,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF,MAAM,OAAgB,gBAAgB;IAKpC,wBAAwB,CAAC,CAAU,EAAE,IAAqB;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1C,OAAO;YACL,KAAK;YACL,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,KAAK;SACpB,CAAC;IACJ,CAAC;IAED,GAAG;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,iBAAiB;QACf,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -1,11 +0,0 @@
1
- import type { ClientStack } from "./tap-client-stack-context.js";
2
- import type { AssistantEventName, AssistantEventPayload } from "../types/events.js";
3
- import { Unsubscribe } from "../types/client.js";
4
- export type NotificationManager = {
5
- on<TEvent extends AssistantEventName>(event: TEvent, callback: (payload: AssistantEventPayload[TEvent], clientStack: ClientStack) => void): Unsubscribe;
6
- emit<TEvent extends Exclude<AssistantEventName, "*">>(event: TEvent, payload: AssistantEventPayload[TEvent], clientStack: ClientStack): void;
7
- subscribe(callback: () => void): Unsubscribe;
8
- notifySubscribers(): void;
9
- };
10
- export declare const NotificationManager: () => import("@assistant-ui/tap").ResourceElement<NotificationManager, undefined>;
11
- //# sourceMappingURL=NotificationManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationManager.d.ts","sourceRoot":"","sources":["../../src/utils/NotificationManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,sCAAmC;AAC9D,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACtB,2BAAwB;AACzB,OAAO,EAAE,WAAW,EAAE,2BAAwB;AAK9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,CAAC,MAAM,SAAS,kBAAkB,EAClC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CACR,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,WAAW,KACrB,IAAI,GACR,WAAW,CAAC;IACf,IAAI,CAAC,MAAM,SAAS,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAClD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACtC,WAAW,EAAE,WAAW,GACvB,IAAI,CAAC;IACR,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAC;IAC7C,iBAAiB,IAAI,IAAI,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,mFAqF9B,CAAC"}
@@ -1,84 +0,0 @@
1
- import { resource } from "@assistant-ui/tap";
2
- import { tapConst } from "@assistant-ui/tap";
3
- export const NotificationManager = resource(() => {
4
- return tapConst(() => {
5
- const listeners = new Map();
6
- const wildcardListeners = new Set();
7
- const subscribers = new Set();
8
- return {
9
- on(event, callback) {
10
- const cb = callback;
11
- if (event === "*") {
12
- wildcardListeners.add(cb);
13
- return () => wildcardListeners.delete(cb);
14
- }
15
- let set = listeners.get(event);
16
- if (!set) {
17
- set = new Set();
18
- listeners.set(event, set);
19
- }
20
- set.add(cb);
21
- return () => {
22
- set.delete(cb);
23
- if (set.size === 0)
24
- listeners.delete(event);
25
- };
26
- },
27
- emit(event, payload, clientStack) {
28
- const eventListeners = listeners.get(event);
29
- if (!eventListeners && wildcardListeners.size === 0)
30
- return;
31
- queueMicrotask(() => {
32
- const errors = [];
33
- if (eventListeners) {
34
- for (const cb of eventListeners) {
35
- try {
36
- cb(payload, clientStack);
37
- }
38
- catch (e) {
39
- errors.push(e);
40
- }
41
- }
42
- }
43
- if (wildcardListeners.size > 0) {
44
- const wrapped = { event, payload };
45
- for (const cb of wildcardListeners) {
46
- try {
47
- cb(wrapped, clientStack);
48
- }
49
- catch (e) {
50
- errors.push(e);
51
- }
52
- }
53
- }
54
- if (errors.length > 0) {
55
- if (errors.length === 1) {
56
- throw errors[0];
57
- }
58
- else {
59
- for (const error of errors) {
60
- console.error(error);
61
- }
62
- throw new AggregateError(errors, "Errors occurred during event emission");
63
- }
64
- }
65
- });
66
- },
67
- subscribe(callback) {
68
- subscribers.add(callback);
69
- return () => subscribers.delete(callback);
70
- },
71
- notifySubscribers() {
72
- for (const cb of subscribers) {
73
- try {
74
- cb();
75
- }
76
- catch (e) {
77
- console.error("NotificationManager: subscriber callback error", e);
78
- }
79
- }
80
- },
81
- };
82
- }, []);
83
- });
84
- //# sourceMappingURL=NotificationManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationManager.js","sourceRoot":"","sources":["../../src/utils/NotificationManager.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { AssistantClient, AssistantState } from "../types/client.js";
2
- export declare const PROXIED_ASSISTANT_STATE_SYMBOL: unique symbol;
3
- /**
4
- * Proxied state that lazily accesses scope states
5
- */
6
- export declare const createProxiedAssistantState: (client: AssistantClient) => AssistantState;
7
- export declare const getProxiedAssistantState: (client: AssistantClient) => AssistantState;
8
- //# sourceMappingURL=proxied-assistant-state.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxied-assistant-state.d.ts","sourceRoot":"","sources":["../../src/utils/proxied-assistant-state.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,2BAAwB;AAGvE,eAAO,MAAM,8BAA8B,eAE1C,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACtC,QAAQ,eAAe,KACtB,cA0BF,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,QAAQ,eAAe,KACtB,cAIF,CAAC"}
@@ -1,34 +0,0 @@
1
- "use client";
2
- import { getClientState } from "../tapClientResource.js";
3
- import { BaseProxyHandler, handleIntrospectionProp } from "./BaseProxyHandler.js";
4
- export const PROXIED_ASSISTANT_STATE_SYMBOL = Symbol("assistant-ui.store.proxiedAssistantState");
5
- const isIgnoredKey = (key) => {
6
- return key === "on" || key === "subscribe" || typeof key === "symbol";
7
- };
8
- /**
9
- * Proxied state that lazily accesses scope states
10
- */
11
- export const createProxiedAssistantState = (client) => {
12
- class ProxiedAssistantStateProxyHandler extends BaseProxyHandler {
13
- get(_, prop) {
14
- const introspection = handleIntrospectionProp(prop, "AssistantState");
15
- if (introspection !== false)
16
- return introspection;
17
- const scope = prop;
18
- if (isIgnoredKey(scope))
19
- return undefined;
20
- return getClientState(client[scope]());
21
- }
22
- ownKeys() {
23
- return Object.keys(client).filter((key) => !isIgnoredKey(key));
24
- }
25
- has(_, prop) {
26
- return !isIgnoredKey(prop) && prop in client;
27
- }
28
- }
29
- return new Proxy({}, new ProxiedAssistantStateProxyHandler());
30
- };
31
- export const getProxiedAssistantState = (client) => {
32
- return client[PROXIED_ASSISTANT_STATE_SYMBOL];
33
- };
34
- //# sourceMappingURL=proxied-assistant-state.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxied-assistant-state.js","sourceRoot":"","sources":["../../src/utils/proxied-assistant-state.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,EAAE,cAAc,EAAE,gCAA6B;AAEtD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,8BAA2B;AAE/E,MAAM,CAAC,MAAM,8BAA8B,GAAG,MAAM,CAClD,0CAA0C,CAC3C,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,GAAoB,EAA6B,EAAE;IACvE,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,WAAW,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AACxE,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACzC,MAAuB,EACP,EAAE;IAClB,MAAM,iCACJ,SAAQ,gBAAgB;QAGxB,GAAG,CAAC,CAAU,EAAE,IAAqB;YACnC,MAAM,aAAa,GAAG,uBAAuB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YACtE,IAAI,aAAa,KAAK,KAAK;gBAAE,OAAO,aAAa,CAAC;YAClD,MAAM,KAAK,GAAG,IAA6B,CAAC;YAC5C,IAAI,YAAY,CAAC,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAC;YAC1C,OAAO,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QAED,OAAO;YACL,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;QAED,GAAG,CAAC,CAAU,EAAE,IAAqB;YACnC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,MAAM,CAAC;QAC/C,CAAC;KACF;IAED,OAAO,IAAI,KAAK,CACd,EAAoB,EACpB,IAAI,iCAAiC,EAAE,CACxC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,MAAuB,EACP,EAAE;IAClB,OACE,MACD,CAAC,8BAA8B,CAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { DerivedElement } from "../Derived.js";
2
- import type { AssistantClient, ClientElement, ClientNames } from "../types/client.js";
3
- import type { useAui } from "../useAui.js";
4
- export type RootClients = Partial<Record<ClientNames, ClientElement<ClientNames>>>;
5
- export type DerivedClients = Partial<Record<ClientNames, DerivedElement<ClientNames>>>;
6
- export declare const tapSplitClients: (clients: useAui.Props, baseClient: AssistantClient) => {
7
- rootClients: Partial<Record<"ERROR: No clients were defined", ClientElement<"ERROR: No clients were defined">>>;
8
- derivedClients: Partial<Record<"ERROR: No clients were defined", DerivedElement<"ERROR: No clients were defined">>>;
9
- };
10
- //# sourceMappingURL=splitClients.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"splitClients.d.ts","sourceRoot":"","sources":["../../src/utils/splitClients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,cAAc,EAAE,sBAAmB;AACrD,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACZ,2BAAwB;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,qBAAkB;AAGxC,MAAM,MAAM,WAAW,GAAG,OAAO,CAC/B,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAChD,CAAC;AACF,MAAM,MAAM,cAAc,GAAG,OAAO,CAClC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CACjD,CAAC;AAwGF,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,CAAC,KAAK,EACrB,YAAY,eAAe;;;CAQ5B,CAAC"}