@allternit/ix 0.1.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 (170) hide show
  1. package/README.md +320 -0
  2. package/dist/adapters/json-render.d.ts +211 -0
  3. package/dist/adapters/json-render.d.ts.bak +211 -0
  4. package/dist/adapters/json-render.d.ts.map +1 -0
  5. package/dist/adapters/json-render.js +576 -0
  6. package/dist/adapters/json-render.js.bak +576 -0
  7. package/dist/adapters/json-render.js.map +1 -0
  8. package/dist/catalog/registry.d.ts +65 -0
  9. package/dist/catalog/registry.d.ts.bak +65 -0
  10. package/dist/catalog/registry.d.ts.map +1 -0
  11. package/dist/catalog/registry.js +388 -0
  12. package/dist/catalog/registry.js.bak +388 -0
  13. package/dist/catalog/registry.js.map +1 -0
  14. package/dist/collab/capsule-registry.d.ts +114 -0
  15. package/dist/collab/capsule-registry.d.ts.bak +114 -0
  16. package/dist/collab/capsule-registry.d.ts.map +1 -0
  17. package/dist/collab/capsule-registry.js +271 -0
  18. package/dist/collab/capsule-registry.js.bak +271 -0
  19. package/dist/collab/capsule-registry.js.map +1 -0
  20. package/dist/collab/index.d.ts +21 -0
  21. package/dist/collab/index.d.ts.bak +21 -0
  22. package/dist/collab/index.d.ts.map +1 -0
  23. package/dist/collab/index.js +32 -0
  24. package/dist/collab/index.js.bak +32 -0
  25. package/dist/collab/index.js.map +1 -0
  26. package/dist/collab/visual-editor.d.ts +199 -0
  27. package/dist/collab/visual-editor.d.ts.bak +199 -0
  28. package/dist/collab/visual-editor.d.ts.map +1 -0
  29. package/dist/collab/visual-editor.js +259 -0
  30. package/dist/collab/visual-editor.js.bak +259 -0
  31. package/dist/collab/visual-editor.js.map +1 -0
  32. package/dist/collab/yjs-adapter.d.ts +95 -0
  33. package/dist/collab/yjs-adapter.d.ts.bak +95 -0
  34. package/dist/collab/yjs-adapter.d.ts.map +1 -0
  35. package/dist/collab/yjs-adapter.js +282 -0
  36. package/dist/collab/yjs-adapter.js.bak +282 -0
  37. package/dist/collab/yjs-adapter.js.map +1 -0
  38. package/dist/collab/yjs-client.d.ts +101 -0
  39. package/dist/collab/yjs-client.d.ts.bak +101 -0
  40. package/dist/collab/yjs-client.d.ts.map +1 -0
  41. package/dist/collab/yjs-client.js +193 -0
  42. package/dist/collab/yjs-client.js.bak +193 -0
  43. package/dist/collab/yjs-client.js.map +1 -0
  44. package/dist/collab/yjs-protocols.d.ts +128 -0
  45. package/dist/collab/yjs-protocols.d.ts.bak +128 -0
  46. package/dist/collab/yjs-protocols.d.ts.map +1 -0
  47. package/dist/collab/yjs-protocols.js +245 -0
  48. package/dist/collab/yjs-protocols.js.bak +245 -0
  49. package/dist/collab/yjs-protocols.js.map +1 -0
  50. package/dist/collab/yjs-types.d.ts +201 -0
  51. package/dist/collab/yjs-types.d.ts.bak +201 -0
  52. package/dist/collab/yjs-types.d.ts.map +1 -0
  53. package/dist/collab/yjs-types.js +45 -0
  54. package/dist/collab/yjs-types.js.bak +45 -0
  55. package/dist/collab/yjs-types.js.map +1 -0
  56. package/dist/index.d.ts +38 -0
  57. package/dist/index.d.ts.bak +38 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +48 -0
  60. package/dist/index.js.bak +48 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/pipeline/llm-to-ix.d.ts +249 -0
  63. package/dist/pipeline/llm-to-ix.d.ts.bak +249 -0
  64. package/dist/pipeline/llm-to-ix.d.ts.map +1 -0
  65. package/dist/pipeline/llm-to-ix.js +992 -0
  66. package/dist/pipeline/llm-to-ix.js.bak +992 -0
  67. package/dist/pipeline/llm-to-ix.js.map +1 -0
  68. package/dist/react/index.d.ts +18 -0
  69. package/dist/react/index.d.ts.bak +18 -0
  70. package/dist/react/index.d.ts.map +1 -0
  71. package/dist/react/index.js +18 -0
  72. package/dist/react/index.js.bak +18 -0
  73. package/dist/react/index.js.map +1 -0
  74. package/dist/react/renderer.d.ts +47 -0
  75. package/dist/react/renderer.d.ts.bak +47 -0
  76. package/dist/react/renderer.d.ts.map +1 -0
  77. package/dist/react/renderer.js +420 -0
  78. package/dist/react/renderer.js.bak +420 -0
  79. package/dist/react/renderer.js.map +1 -0
  80. package/dist/renderer/renderer.d.ts +55 -0
  81. package/dist/renderer/renderer.d.ts.bak +55 -0
  82. package/dist/renderer/renderer.d.ts.map +1 -0
  83. package/dist/renderer/renderer.js +232 -0
  84. package/dist/renderer/renderer.js.bak +232 -0
  85. package/dist/renderer/renderer.js.map +1 -0
  86. package/dist/runtime/capsule-runtime.d.ts +227 -0
  87. package/dist/runtime/capsule-runtime.d.ts.bak +227 -0
  88. package/dist/runtime/capsule-runtime.d.ts.map +1 -0
  89. package/dist/runtime/capsule-runtime.js +563 -0
  90. package/dist/runtime/capsule-runtime.js.bak +563 -0
  91. package/dist/runtime/capsule-runtime.js.map +1 -0
  92. package/dist/runtime/policy-gates.d.ts +116 -0
  93. package/dist/runtime/policy-gates.d.ts.bak +116 -0
  94. package/dist/runtime/policy-gates.d.ts.map +1 -0
  95. package/dist/runtime/policy-gates.js +317 -0
  96. package/dist/runtime/policy-gates.js.bak +317 -0
  97. package/dist/runtime/policy-gates.js.map +1 -0
  98. package/dist/schema/ui-ir.d.ts +26 -0
  99. package/dist/schema/ui-ir.d.ts.bak +26 -0
  100. package/dist/schema/ui-ir.d.ts.map +1 -0
  101. package/dist/schema/ui-ir.js +51 -0
  102. package/dist/schema/ui-ir.js.bak +51 -0
  103. package/dist/schema/ui-ir.js.map +1 -0
  104. package/dist/sdk/api.d.ts +101 -0
  105. package/dist/sdk/api.d.ts.bak +101 -0
  106. package/dist/sdk/api.d.ts.map +1 -0
  107. package/dist/sdk/api.js +177 -0
  108. package/dist/sdk/api.js.bak +177 -0
  109. package/dist/sdk/api.js.map +1 -0
  110. package/dist/sdk/index.d.ts +9 -0
  111. package/dist/sdk/index.d.ts.bak +9 -0
  112. package/dist/sdk/index.d.ts.map +1 -0
  113. package/dist/sdk/index.js +10 -0
  114. package/dist/sdk/index.js.bak +10 -0
  115. package/dist/sdk/index.js.map +1 -0
  116. package/dist/sdk/react.d.ts +63 -0
  117. package/dist/sdk/react.d.ts.bak +63 -0
  118. package/dist/sdk/react.d.ts.map +1 -0
  119. package/dist/sdk/react.js +161 -0
  120. package/dist/sdk/react.js.bak +161 -0
  121. package/dist/sdk/react.js.map +1 -0
  122. package/dist/state/index.d.ts +8 -0
  123. package/dist/state/index.d.ts.bak +8 -0
  124. package/dist/state/index.d.ts.map +1 -0
  125. package/dist/state/index.js +8 -0
  126. package/dist/state/index.js.bak +8 -0
  127. package/dist/state/index.js.map +1 -0
  128. package/dist/state/patch.d.ts +73 -0
  129. package/dist/state/patch.d.ts.bak +73 -0
  130. package/dist/state/patch.d.ts.map +1 -0
  131. package/dist/state/patch.js +437 -0
  132. package/dist/state/patch.js.bak +437 -0
  133. package/dist/state/patch.js.map +1 -0
  134. package/dist/state/store.d.ts +50 -0
  135. package/dist/state/store.d.ts.bak +50 -0
  136. package/dist/state/store.d.ts.map +1 -0
  137. package/dist/state/store.js +246 -0
  138. package/dist/state/store.js.bak +246 -0
  139. package/dist/state/store.js.map +1 -0
  140. package/dist/svelte/index.d.ts +15 -0
  141. package/dist/svelte/index.d.ts.bak +15 -0
  142. package/dist/svelte/index.d.ts.map +1 -0
  143. package/dist/svelte/index.js +15 -0
  144. package/dist/svelte/index.js.bak +15 -0
  145. package/dist/svelte/index.js.map +1 -0
  146. package/dist/svelte/renderer.d.ts +35 -0
  147. package/dist/svelte/renderer.d.ts.bak +35 -0
  148. package/dist/svelte/renderer.d.ts.map +1 -0
  149. package/dist/svelte/renderer.js +317 -0
  150. package/dist/svelte/renderer.js.bak +317 -0
  151. package/dist/svelte/renderer.js.map +1 -0
  152. package/dist/types/index.d.ts +349 -0
  153. package/dist/types/index.d.ts.bak +349 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/dist/types/index.js +152 -0
  156. package/dist/types/index.js.bak +152 -0
  157. package/dist/types/index.js.map +1 -0
  158. package/dist/vue/index.d.ts +18 -0
  159. package/dist/vue/index.d.ts.bak +18 -0
  160. package/dist/vue/index.d.ts.map +1 -0
  161. package/dist/vue/index.js +18 -0
  162. package/dist/vue/index.js.bak +18 -0
  163. package/dist/vue/index.js.map +1 -0
  164. package/dist/vue/renderer.d.ts +46 -0
  165. package/dist/vue/renderer.d.ts.bak +46 -0
  166. package/dist/vue/renderer.d.ts.map +1 -0
  167. package/dist/vue/renderer.js +302 -0
  168. package/dist/vue/renderer.js.bak +302 -0
  169. package/dist/vue/renderer.js.map +1 -0
  170. package/package.json +72 -0
@@ -0,0 +1,101 @@
1
+ /**
2
+ * A2R-IX API SDK
3
+ *
4
+ * Client for interacting with the A2R-IX API.
5
+ */
6
+ import type { UIRoot } from '../types';
7
+ import type { JSONPatch } from '../state/patch';
8
+ export interface IXCapsuleClientConfig {
9
+ /** API base URL */
10
+ baseUrl: string;
11
+ /** Optional auth token */
12
+ token?: string;
13
+ /** Event callbacks */
14
+ onEvent?: (event: IXCapsuleEvent) => void;
15
+ /** Error handler */
16
+ onError?: (error: Error) => void;
17
+ }
18
+ export interface IXCapsuleEvent {
19
+ event_type: 'lifecycle' | 'action' | 'state-change' | 'error';
20
+ capsule_id: string;
21
+ lifecycle?: 'mount' | 'unmount' | 'update';
22
+ action?: string;
23
+ action_params?: Record<string, unknown>;
24
+ state_update?: Record<string, unknown>;
25
+ error?: string;
26
+ }
27
+ export interface CreateCapsuleRequest {
28
+ ui: UIRoot;
29
+ initial_state?: Record<string, unknown>;
30
+ ttl_seconds?: number;
31
+ }
32
+ export interface CreateCapsuleResponse {
33
+ capsule_id: string;
34
+ status: string;
35
+ }
36
+ export interface CapsuleState {
37
+ capsule_id: string;
38
+ ui: UIRoot;
39
+ state: Record<string, unknown>;
40
+ created_at: string;
41
+ updated_at: string;
42
+ }
43
+ export interface JsonRenderRequest {
44
+ schema: Record<string, unknown>;
45
+ initial_state?: Record<string, unknown>;
46
+ ttl_seconds?: number;
47
+ }
48
+ export interface ActionRequest {
49
+ action_id: string;
50
+ params?: Record<string, unknown>;
51
+ }
52
+ /**
53
+ * A2R-IX Capsule Client
54
+ */
55
+ export declare class IXCapsuleClient {
56
+ private config;
57
+ private eventSource;
58
+ private activeCapsules;
59
+ constructor(config: IXCapsuleClientConfig);
60
+ /**
61
+ * Create a new IX capsule
62
+ */
63
+ createCapsule(request: CreateCapsuleRequest): Promise<CreateCapsuleResponse>;
64
+ /**
65
+ * Create capsule from json-render format
66
+ */
67
+ createFromJsonRender(request: JsonRenderRequest): Promise<CreateCapsuleResponse>;
68
+ /**
69
+ * Get capsule state
70
+ */
71
+ getCapsule(capsuleId: string): Promise<CapsuleState>;
72
+ /**
73
+ * Apply JSON Patch to capsule state
74
+ */
75
+ applyPatch(capsuleId: string, patch: JSONPatch): Promise<void>;
76
+ /**
77
+ * Dispatch action to capsule
78
+ */
79
+ dispatchAction(capsuleId: string, action: ActionRequest): Promise<void>;
80
+ /**
81
+ * Delete capsule
82
+ */
83
+ deleteCapsule(capsuleId: string): Promise<void>;
84
+ /**
85
+ * Connect to event stream
86
+ */
87
+ private connectEventStream;
88
+ /**
89
+ * Disconnect event stream
90
+ */
91
+ private disconnectEventStream;
92
+ /**
93
+ * Cleanup all connections
94
+ */
95
+ dispose(): void;
96
+ }
97
+ /**
98
+ * Create IX capsule client
99
+ */
100
+ export declare function createIXClient(config: IXCapsuleClientConfig): IXCapsuleClient;
101
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/sdk/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * A2R-IX API SDK
3
+ *
4
+ * Client for interacting with the A2R-IX API.
5
+ */
6
+ /**
7
+ * A2R-IX Capsule Client
8
+ */
9
+ export class IXCapsuleClient {
10
+ config;
11
+ eventSource = null;
12
+ activeCapsules = new Set();
13
+ constructor(config) {
14
+ this.config = config;
15
+ }
16
+ /**
17
+ * Create a new IX capsule
18
+ */
19
+ async createCapsule(request) {
20
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules`, {
21
+ method: 'POST',
22
+ headers: {
23
+ 'Content-Type': 'application/json',
24
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
25
+ },
26
+ body: JSON.stringify(request),
27
+ });
28
+ if (!response.ok) {
29
+ throw new Error(`Failed to create capsule: ${response.statusText}`);
30
+ }
31
+ const result = await response.json();
32
+ this.activeCapsules.add(result.capsule_id);
33
+ // Start event stream
34
+ this.connectEventStream(result.capsule_id);
35
+ return result;
36
+ }
37
+ /**
38
+ * Create capsule from json-render format
39
+ */
40
+ async createFromJsonRender(request) {
41
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/json-render`, {
42
+ method: 'POST',
43
+ headers: {
44
+ 'Content-Type': 'application/json',
45
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
46
+ },
47
+ body: JSON.stringify(request),
48
+ });
49
+ if (!response.ok) {
50
+ throw new Error(`Failed to create capsule: ${response.statusText}`);
51
+ }
52
+ const result = await response.json();
53
+ this.activeCapsules.add(result.capsule_id);
54
+ // Start event stream
55
+ this.connectEventStream(result.capsule_id);
56
+ return result;
57
+ }
58
+ /**
59
+ * Get capsule state
60
+ */
61
+ async getCapsule(capsuleId) {
62
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}`, {
63
+ headers: {
64
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
65
+ },
66
+ });
67
+ if (!response.ok) {
68
+ throw new Error(`Failed to get capsule: ${response.statusText}`);
69
+ }
70
+ return response.json();
71
+ }
72
+ /**
73
+ * Apply JSON Patch to capsule state
74
+ */
75
+ async applyPatch(capsuleId, patch) {
76
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}/patch`, {
77
+ method: 'POST',
78
+ headers: {
79
+ 'Content-Type': 'application/json',
80
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
81
+ },
82
+ body: JSON.stringify({ operations: patch }),
83
+ });
84
+ if (!response.ok) {
85
+ throw new Error(`Failed to apply patch: ${response.statusText}`);
86
+ }
87
+ }
88
+ /**
89
+ * Dispatch action to capsule
90
+ */
91
+ async dispatchAction(capsuleId, action) {
92
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}/action`, {
93
+ method: 'POST',
94
+ headers: {
95
+ 'Content-Type': 'application/json',
96
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
97
+ },
98
+ body: JSON.stringify(action),
99
+ });
100
+ if (!response.ok) {
101
+ throw new Error(`Failed to dispatch action: ${response.statusText}`);
102
+ }
103
+ }
104
+ /**
105
+ * Delete capsule
106
+ */
107
+ async deleteCapsule(capsuleId) {
108
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}`, {
109
+ method: 'DELETE',
110
+ headers: {
111
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
112
+ },
113
+ });
114
+ if (!response.ok) {
115
+ throw new Error(`Failed to delete capsule: ${response.statusText}`);
116
+ }
117
+ this.activeCapsules.delete(capsuleId);
118
+ this.disconnectEventStream(capsuleId);
119
+ }
120
+ /**
121
+ * Connect to event stream
122
+ */
123
+ connectEventStream(capsuleId) {
124
+ if (typeof EventSource === 'undefined') {
125
+ console.warn('EventSource not available');
126
+ return;
127
+ }
128
+ const url = new URL(`${this.config.baseUrl}/ix/capsules/${capsuleId}/stream`);
129
+ if (this.config.token) {
130
+ url.searchParams.set('token', this.config.token);
131
+ }
132
+ const es = new EventSource(url.toString());
133
+ this.eventSource = es;
134
+ es.onmessage = (event) => {
135
+ try {
136
+ const data = JSON.parse(event.data);
137
+ this.config.onEvent?.(data);
138
+ // Handle unmount - cleanup
139
+ if (data.event_type === 'lifecycle' && data.lifecycle === 'unmount') {
140
+ this.activeCapsules.delete(capsuleId);
141
+ this.disconnectEventStream(capsuleId);
142
+ }
143
+ }
144
+ catch (error) {
145
+ this.config.onError?.(error);
146
+ }
147
+ };
148
+ es.onerror = (error) => {
149
+ this.config.onError?.(new Error('EventSource error'));
150
+ };
151
+ }
152
+ /**
153
+ * Disconnect event stream
154
+ */
155
+ disconnectEventStream(capsuleId) {
156
+ if (this.eventSource) {
157
+ this.eventSource.close();
158
+ this.eventSource = null;
159
+ }
160
+ }
161
+ /**
162
+ * Cleanup all connections
163
+ */
164
+ dispose() {
165
+ this.activeCapsules.forEach((id) => {
166
+ this.disconnectEventStream(id);
167
+ });
168
+ this.activeCapsules.clear();
169
+ }
170
+ }
171
+ /**
172
+ * Create IX capsule client
173
+ */
174
+ export function createIXClient(config) {
175
+ return new IXCapsuleClient(config);
176
+ }
177
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1,177 @@
1
+ /**
2
+ * A2R-IX API SDK
3
+ *
4
+ * Client for interacting with the A2R-IX API.
5
+ */
6
+ /**
7
+ * A2R-IX Capsule Client
8
+ */
9
+ export class IXCapsuleClient {
10
+ config;
11
+ eventSource = null;
12
+ activeCapsules = new Set();
13
+ constructor(config) {
14
+ this.config = config;
15
+ }
16
+ /**
17
+ * Create a new IX capsule
18
+ */
19
+ async createCapsule(request) {
20
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules`, {
21
+ method: 'POST',
22
+ headers: {
23
+ 'Content-Type': 'application/json',
24
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
25
+ },
26
+ body: JSON.stringify(request),
27
+ });
28
+ if (!response.ok) {
29
+ throw new Error(`Failed to create capsule: ${response.statusText}`);
30
+ }
31
+ const result = await response.json();
32
+ this.activeCapsules.add(result.capsule_id);
33
+ // Start event stream
34
+ this.connectEventStream(result.capsule_id);
35
+ return result;
36
+ }
37
+ /**
38
+ * Create capsule from json-render format
39
+ */
40
+ async createFromJsonRender(request) {
41
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/json-render`, {
42
+ method: 'POST',
43
+ headers: {
44
+ 'Content-Type': 'application/json',
45
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
46
+ },
47
+ body: JSON.stringify(request),
48
+ });
49
+ if (!response.ok) {
50
+ throw new Error(`Failed to create capsule: ${response.statusText}`);
51
+ }
52
+ const result = await response.json();
53
+ this.activeCapsules.add(result.capsule_id);
54
+ // Start event stream
55
+ this.connectEventStream(result.capsule_id);
56
+ return result;
57
+ }
58
+ /**
59
+ * Get capsule state
60
+ */
61
+ async getCapsule(capsuleId) {
62
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}`, {
63
+ headers: {
64
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
65
+ },
66
+ });
67
+ if (!response.ok) {
68
+ throw new Error(`Failed to get capsule: ${response.statusText}`);
69
+ }
70
+ return response.json();
71
+ }
72
+ /**
73
+ * Apply JSON Patch to capsule state
74
+ */
75
+ async applyPatch(capsuleId, patch) {
76
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}/patch`, {
77
+ method: 'POST',
78
+ headers: {
79
+ 'Content-Type': 'application/json',
80
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
81
+ },
82
+ body: JSON.stringify({ operations: patch }),
83
+ });
84
+ if (!response.ok) {
85
+ throw new Error(`Failed to apply patch: ${response.statusText}`);
86
+ }
87
+ }
88
+ /**
89
+ * Dispatch action to capsule
90
+ */
91
+ async dispatchAction(capsuleId, action) {
92
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}/action`, {
93
+ method: 'POST',
94
+ headers: {
95
+ 'Content-Type': 'application/json',
96
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
97
+ },
98
+ body: JSON.stringify(action),
99
+ });
100
+ if (!response.ok) {
101
+ throw new Error(`Failed to dispatch action: ${response.statusText}`);
102
+ }
103
+ }
104
+ /**
105
+ * Delete capsule
106
+ */
107
+ async deleteCapsule(capsuleId) {
108
+ const response = await fetch(`${this.config.baseUrl}/ix/capsules/${capsuleId}`, {
109
+ method: 'DELETE',
110
+ headers: {
111
+ ...(this.config.token && { 'Authorization': `Bearer ${this.config.token}` }),
112
+ },
113
+ });
114
+ if (!response.ok) {
115
+ throw new Error(`Failed to delete capsule: ${response.statusText}`);
116
+ }
117
+ this.activeCapsules.delete(capsuleId);
118
+ this.disconnectEventStream(capsuleId);
119
+ }
120
+ /**
121
+ * Connect to event stream
122
+ */
123
+ connectEventStream(capsuleId) {
124
+ if (typeof EventSource === 'undefined') {
125
+ console.warn('EventSource not available');
126
+ return;
127
+ }
128
+ const url = new URL(`${this.config.baseUrl}/ix/capsules/${capsuleId}/stream`);
129
+ if (this.config.token) {
130
+ url.searchParams.set('token', this.config.token);
131
+ }
132
+ const es = new EventSource(url.toString());
133
+ this.eventSource = es;
134
+ es.onmessage = (event) => {
135
+ try {
136
+ const data = JSON.parse(event.data);
137
+ this.config.onEvent?.(data);
138
+ // Handle unmount - cleanup
139
+ if (data.event_type === 'lifecycle' && data.lifecycle === 'unmount') {
140
+ this.activeCapsules.delete(capsuleId);
141
+ this.disconnectEventStream(capsuleId);
142
+ }
143
+ }
144
+ catch (error) {
145
+ this.config.onError?.(error);
146
+ }
147
+ };
148
+ es.onerror = (error) => {
149
+ this.config.onError?.(new Error('EventSource error'));
150
+ };
151
+ }
152
+ /**
153
+ * Disconnect event stream
154
+ */
155
+ disconnectEventStream(capsuleId) {
156
+ if (this.eventSource) {
157
+ this.eventSource.close();
158
+ this.eventSource = null;
159
+ }
160
+ }
161
+ /**
162
+ * Cleanup all connections
163
+ */
164
+ dispose() {
165
+ this.activeCapsules.forEach((id) => {
166
+ this.disconnectEventStream(id);
167
+ });
168
+ this.activeCapsules.clear();
169
+ }
170
+ }
171
+ /**
172
+ * Create IX capsule client
173
+ */
174
+ export function createIXClient(config) {
175
+ return new IXCapsuleClient(config);
176
+ }
177
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/sdk/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A2R-IX SDK
3
+ *
4
+ * Client SDK for A2R-IX integration.
5
+ */
6
+ export { IXCapsuleClient, createIXClient, type IXCapsuleClientConfig, type IXCapsuleEvent, type CreateCapsuleRequest, type CreateCapsuleResponse, type CapsuleState, type JsonRenderRequest, type ActionRequest, } from './api';
7
+ export { IXProvider, IXRenderer, useIX, useIXState, useIXAction, } from './react';
8
+ export type { UIRoot, JSONPatch } from '../types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,9 @@
1
+ /**
2
+ * A2R-IX SDK
3
+ *
4
+ * Client SDK for A2R-IX integration.
5
+ */
6
+ export { IXCapsuleClient, createIXClient, type IXCapsuleClientConfig, type IXCapsuleEvent, type CreateCapsuleRequest, type CreateCapsuleResponse, type CapsuleState, type JsonRenderRequest, type ActionRequest, } from './api';
7
+ export { IXProvider, IXRenderer, useIX, useIXState, useIXAction, } from './react';
8
+ export type { UIRoot, JSONPatch } from '../types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,eAAe,EACf,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A2R-IX SDK
3
+ *
4
+ * Client SDK for A2R-IX integration.
5
+ */
6
+ // API Client
7
+ export { IXCapsuleClient, createIXClient, } from './api';
8
+ // React Integration
9
+ export { IXProvider, IXRenderer, useIX, useIXState, useIXAction, } from './react';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,10 @@
1
+ /**
2
+ * A2R-IX SDK
3
+ *
4
+ * Client SDK for A2R-IX integration.
5
+ */
6
+ // API Client
7
+ export { IXCapsuleClient, createIXClient, } from './api';
8
+ // React Integration
9
+ export { IXProvider, IXRenderer, useIX, useIXState, useIXAction, } from './react';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sdk/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,aAAa;AACb,OAAO,EACL,eAAe,EACf,cAAc,GAQf,MAAM,OAAO,CAAC;AAEf,oBAAoB;AACpB,OAAO,EACL,UAAU,EACV,UAAU,EACV,KAAK,EACL,UAAU,EACV,WAAW,GACZ,MAAM,SAAS,CAAC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * A2R-IX React SDK
3
+ *
4
+ * React hooks and components for A2R-IX integration.
5
+ */
6
+ import React from 'react';
7
+ import type { UIRoot } from '../types';
8
+ import type { JSONPatch } from '../state/patch';
9
+ import { IXCapsuleClient, type IXCapsuleClientConfig, type IXCapsuleEvent } from './api';
10
+ interface IXContextValue {
11
+ client: IXCapsuleClient | null;
12
+ capsuleId: string | null;
13
+ state: Record<string, unknown>;
14
+ dispatch: (actionId: string, params?: Record<string, unknown>) => void;
15
+ applyPatch: (patch: JSONPatch) => void;
16
+ }
17
+ /**
18
+ * Hook to use IX context
19
+ */
20
+ export declare function useIX(): IXContextValue;
21
+ /**
22
+ * Props for IXProvider
23
+ */
24
+ interface IXProviderProps {
25
+ /** API configuration */
26
+ config: IXCapsuleClientConfig;
27
+ /** Capsule ID (if already created) */
28
+ capsuleId?: string;
29
+ /** UI definition (for creating new capsule) */
30
+ ui?: UIRoot;
31
+ /** Children */
32
+ children: React.ReactNode;
33
+ }
34
+ /**
35
+ * IX Provider component
36
+ */
37
+ export declare function IXProvider({ config, capsuleId: initialCapsuleId, ui, children }: IXProviderProps): React.ReactElement;
38
+ /**
39
+ * Props for IXRenderer
40
+ */
41
+ interface IXRendererProps {
42
+ /** Capsule ID (uses context if not provided) */
43
+ capsuleId?: string;
44
+ /** Custom component mapping */
45
+ components?: Record<string, React.ComponentType<unknown>>;
46
+ }
47
+ /**
48
+ * IX Renderer component
49
+ *
50
+ * Renders an IX capsule UI using the React renderer.
51
+ */
52
+ export declare function IXRenderer({ capsuleId: propCapsuleId, components }: IXRendererProps): React.ReactElement | null;
53
+ /**
54
+ * Hook to use IX capsule state
55
+ */
56
+ export declare function useIXState<T>(path: string): [T | undefined, (value: T) => void];
57
+ /**
58
+ * Hook to dispatch IX actions
59
+ */
60
+ export declare function useIXAction(actionId: string): (params?: Record<string, unknown>) => void;
61
+ export type { IXCapsuleClientConfig, IXCapsuleEvent, UIRoot, JSONPatch };
62
+ export { IXCapsuleClient };
63
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1,63 @@
1
+ /**
2
+ * A2R-IX React SDK
3
+ *
4
+ * React hooks and components for A2R-IX integration.
5
+ */
6
+ import React from 'react';
7
+ import type { UIRoot } from '../types';
8
+ import type { JSONPatch } from '../state/patch';
9
+ import { IXCapsuleClient, type IXCapsuleClientConfig, type IXCapsuleEvent } from './api';
10
+ interface IXContextValue {
11
+ client: IXCapsuleClient | null;
12
+ capsuleId: string | null;
13
+ state: Record<string, unknown>;
14
+ dispatch: (actionId: string, params?: Record<string, unknown>) => void;
15
+ applyPatch: (patch: JSONPatch) => void;
16
+ }
17
+ /**
18
+ * Hook to use IX context
19
+ */
20
+ export declare function useIX(): IXContextValue;
21
+ /**
22
+ * Props for IXProvider
23
+ */
24
+ interface IXProviderProps {
25
+ /** API configuration */
26
+ config: IXCapsuleClientConfig;
27
+ /** Capsule ID (if already created) */
28
+ capsuleId?: string;
29
+ /** UI definition (for creating new capsule) */
30
+ ui?: UIRoot;
31
+ /** Children */
32
+ children: React.ReactNode;
33
+ }
34
+ /**
35
+ * IX Provider component
36
+ */
37
+ export declare function IXProvider({ config, capsuleId: initialCapsuleId, ui, children }: IXProviderProps): React.ReactElement;
38
+ /**
39
+ * Props for IXRenderer
40
+ */
41
+ interface IXRendererProps {
42
+ /** Capsule ID (uses context if not provided) */
43
+ capsuleId?: string;
44
+ /** Custom component mapping */
45
+ components?: Record<string, React.ComponentType<unknown>>;
46
+ }
47
+ /**
48
+ * IX Renderer component
49
+ *
50
+ * Renders an IX capsule UI using the React renderer.
51
+ */
52
+ export declare function IXRenderer({ capsuleId: propCapsuleId, components }: IXRendererProps): React.ReactElement | null;
53
+ /**
54
+ * Hook to use IX capsule state
55
+ */
56
+ export declare function useIXState<T>(path: string): [T | undefined, (value: T) => void];
57
+ /**
58
+ * Hook to dispatch IX actions
59
+ */
60
+ export declare function useIXAction(actionId: string): (params?: Record<string, unknown>) => void;
61
+ export type { IXCapsuleClientConfig, IXCapsuleEvent, UIRoot, JSONPatch };
62
+ export { IXCapsuleClient };
63
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/sdk/react.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAGzF,UAAU,cAAc;IACtB,MAAM,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvE,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;CACxC;AAID;;GAEG;AACH,wBAAgB,KAAK,IAAI,cAAc,CAMtC;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,wBAAwB;IACxB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,eAAe;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CA0ErH;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAiD/G;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC,CAS/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAMxF;AAQD,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,CAAC"}