@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.
- package/README.md +320 -0
- package/dist/adapters/json-render.d.ts +211 -0
- package/dist/adapters/json-render.d.ts.bak +211 -0
- package/dist/adapters/json-render.d.ts.map +1 -0
- package/dist/adapters/json-render.js +576 -0
- package/dist/adapters/json-render.js.bak +576 -0
- package/dist/adapters/json-render.js.map +1 -0
- package/dist/catalog/registry.d.ts +65 -0
- package/dist/catalog/registry.d.ts.bak +65 -0
- package/dist/catalog/registry.d.ts.map +1 -0
- package/dist/catalog/registry.js +388 -0
- package/dist/catalog/registry.js.bak +388 -0
- package/dist/catalog/registry.js.map +1 -0
- package/dist/collab/capsule-registry.d.ts +114 -0
- package/dist/collab/capsule-registry.d.ts.bak +114 -0
- package/dist/collab/capsule-registry.d.ts.map +1 -0
- package/dist/collab/capsule-registry.js +271 -0
- package/dist/collab/capsule-registry.js.bak +271 -0
- package/dist/collab/capsule-registry.js.map +1 -0
- package/dist/collab/index.d.ts +21 -0
- package/dist/collab/index.d.ts.bak +21 -0
- package/dist/collab/index.d.ts.map +1 -0
- package/dist/collab/index.js +32 -0
- package/dist/collab/index.js.bak +32 -0
- package/dist/collab/index.js.map +1 -0
- package/dist/collab/visual-editor.d.ts +199 -0
- package/dist/collab/visual-editor.d.ts.bak +199 -0
- package/dist/collab/visual-editor.d.ts.map +1 -0
- package/dist/collab/visual-editor.js +259 -0
- package/dist/collab/visual-editor.js.bak +259 -0
- package/dist/collab/visual-editor.js.map +1 -0
- package/dist/collab/yjs-adapter.d.ts +95 -0
- package/dist/collab/yjs-adapter.d.ts.bak +95 -0
- package/dist/collab/yjs-adapter.d.ts.map +1 -0
- package/dist/collab/yjs-adapter.js +282 -0
- package/dist/collab/yjs-adapter.js.bak +282 -0
- package/dist/collab/yjs-adapter.js.map +1 -0
- package/dist/collab/yjs-client.d.ts +101 -0
- package/dist/collab/yjs-client.d.ts.bak +101 -0
- package/dist/collab/yjs-client.d.ts.map +1 -0
- package/dist/collab/yjs-client.js +193 -0
- package/dist/collab/yjs-client.js.bak +193 -0
- package/dist/collab/yjs-client.js.map +1 -0
- package/dist/collab/yjs-protocols.d.ts +128 -0
- package/dist/collab/yjs-protocols.d.ts.bak +128 -0
- package/dist/collab/yjs-protocols.d.ts.map +1 -0
- package/dist/collab/yjs-protocols.js +245 -0
- package/dist/collab/yjs-protocols.js.bak +245 -0
- package/dist/collab/yjs-protocols.js.map +1 -0
- package/dist/collab/yjs-types.d.ts +201 -0
- package/dist/collab/yjs-types.d.ts.bak +201 -0
- package/dist/collab/yjs-types.d.ts.map +1 -0
- package/dist/collab/yjs-types.js +45 -0
- package/dist/collab/yjs-types.js.bak +45 -0
- package/dist/collab/yjs-types.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.bak +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +48 -0
- package/dist/index.js.bak +48 -0
- package/dist/index.js.map +1 -0
- package/dist/pipeline/llm-to-ix.d.ts +249 -0
- package/dist/pipeline/llm-to-ix.d.ts.bak +249 -0
- package/dist/pipeline/llm-to-ix.d.ts.map +1 -0
- package/dist/pipeline/llm-to-ix.js +992 -0
- package/dist/pipeline/llm-to-ix.js.bak +992 -0
- package/dist/pipeline/llm-to-ix.js.map +1 -0
- package/dist/react/index.d.ts +18 -0
- package/dist/react/index.d.ts.bak +18 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +18 -0
- package/dist/react/index.js.bak +18 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/renderer.d.ts +47 -0
- package/dist/react/renderer.d.ts.bak +47 -0
- package/dist/react/renderer.d.ts.map +1 -0
- package/dist/react/renderer.js +420 -0
- package/dist/react/renderer.js.bak +420 -0
- package/dist/react/renderer.js.map +1 -0
- package/dist/renderer/renderer.d.ts +55 -0
- package/dist/renderer/renderer.d.ts.bak +55 -0
- package/dist/renderer/renderer.d.ts.map +1 -0
- package/dist/renderer/renderer.js +232 -0
- package/dist/renderer/renderer.js.bak +232 -0
- package/dist/renderer/renderer.js.map +1 -0
- package/dist/runtime/capsule-runtime.d.ts +227 -0
- package/dist/runtime/capsule-runtime.d.ts.bak +227 -0
- package/dist/runtime/capsule-runtime.d.ts.map +1 -0
- package/dist/runtime/capsule-runtime.js +563 -0
- package/dist/runtime/capsule-runtime.js.bak +563 -0
- package/dist/runtime/capsule-runtime.js.map +1 -0
- package/dist/runtime/policy-gates.d.ts +116 -0
- package/dist/runtime/policy-gates.d.ts.bak +116 -0
- package/dist/runtime/policy-gates.d.ts.map +1 -0
- package/dist/runtime/policy-gates.js +317 -0
- package/dist/runtime/policy-gates.js.bak +317 -0
- package/dist/runtime/policy-gates.js.map +1 -0
- package/dist/schema/ui-ir.d.ts +26 -0
- package/dist/schema/ui-ir.d.ts.bak +26 -0
- package/dist/schema/ui-ir.d.ts.map +1 -0
- package/dist/schema/ui-ir.js +51 -0
- package/dist/schema/ui-ir.js.bak +51 -0
- package/dist/schema/ui-ir.js.map +1 -0
- package/dist/sdk/api.d.ts +101 -0
- package/dist/sdk/api.d.ts.bak +101 -0
- package/dist/sdk/api.d.ts.map +1 -0
- package/dist/sdk/api.js +177 -0
- package/dist/sdk/api.js.bak +177 -0
- package/dist/sdk/api.js.map +1 -0
- package/dist/sdk/index.d.ts +9 -0
- package/dist/sdk/index.d.ts.bak +9 -0
- package/dist/sdk/index.d.ts.map +1 -0
- package/dist/sdk/index.js +10 -0
- package/dist/sdk/index.js.bak +10 -0
- package/dist/sdk/index.js.map +1 -0
- package/dist/sdk/react.d.ts +63 -0
- package/dist/sdk/react.d.ts.bak +63 -0
- package/dist/sdk/react.d.ts.map +1 -0
- package/dist/sdk/react.js +161 -0
- package/dist/sdk/react.js.bak +161 -0
- package/dist/sdk/react.js.map +1 -0
- package/dist/state/index.d.ts +8 -0
- package/dist/state/index.d.ts.bak +8 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +8 -0
- package/dist/state/index.js.bak +8 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/patch.d.ts +73 -0
- package/dist/state/patch.d.ts.bak +73 -0
- package/dist/state/patch.d.ts.map +1 -0
- package/dist/state/patch.js +437 -0
- package/dist/state/patch.js.bak +437 -0
- package/dist/state/patch.js.map +1 -0
- package/dist/state/store.d.ts +50 -0
- package/dist/state/store.d.ts.bak +50 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +246 -0
- package/dist/state/store.js.bak +246 -0
- package/dist/state/store.js.map +1 -0
- package/dist/svelte/index.d.ts +15 -0
- package/dist/svelte/index.d.ts.bak +15 -0
- package/dist/svelte/index.d.ts.map +1 -0
- package/dist/svelte/index.js +15 -0
- package/dist/svelte/index.js.bak +15 -0
- package/dist/svelte/index.js.map +1 -0
- package/dist/svelte/renderer.d.ts +35 -0
- package/dist/svelte/renderer.d.ts.bak +35 -0
- package/dist/svelte/renderer.d.ts.map +1 -0
- package/dist/svelte/renderer.js +317 -0
- package/dist/svelte/renderer.js.bak +317 -0
- package/dist/svelte/renderer.js.map +1 -0
- package/dist/types/index.d.ts +349 -0
- package/dist/types/index.d.ts.bak +349 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +152 -0
- package/dist/types/index.js.bak +152 -0
- package/dist/types/index.js.map +1 -0
- package/dist/vue/index.d.ts +18 -0
- package/dist/vue/index.d.ts.bak +18 -0
- package/dist/vue/index.d.ts.map +1 -0
- package/dist/vue/index.js +18 -0
- package/dist/vue/index.js.bak +18 -0
- package/dist/vue/index.js.map +1 -0
- package/dist/vue/renderer.d.ts +46 -0
- package/dist/vue/renderer.d.ts.bak +46 -0
- package/dist/vue/renderer.d.ts.map +1 -0
- package/dist/vue/renderer.js +302 -0
- package/dist/vue/renderer.js.bak +302 -0
- package/dist/vue/renderer.js.map +1 -0
- 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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"}
|
package/dist/sdk/api.js
ADDED
|
@@ -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":"AAAA;;;;GAIG;AAwDH;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAwB;IAC9B,WAAW,GAAuB,IAAI,CAAC;IACvC,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,OAA6B;QAC/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,cAAc,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7E;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3C,qBAAqB;QACrB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CAAC,OAA0B;QACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,0BAA0B,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7E;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3C,qBAAqB;QACrB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,gBAAgB,SAAS,EAAE,EAAE;YAC9E,OAAO,EAAE;gBACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7E;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,SAAiB,EAAE,KAAgB;QAClD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,gBAAgB,SAAS,QAAQ,EAAE;YACpF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7E;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,SAAiB,EAAE,MAAqB;QAC3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,gBAAgB,SAAS,SAAS,EAAE;YACrF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7E;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;SAC7B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,gBAAgB,SAAS,EAAE,EAAE;YAC9E,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE;gBACP,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;aAC7E;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6BAA6B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,SAAiB;QAC1C,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;YACvC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,gBAAgB,SAAS,SAAS,CAAC,CAAC;QAC9E,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAEtB,EAAE,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAmB,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;gBAE5B,2BAA2B;gBAC3B,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;oBACpE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBACtC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,KAAc,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC;QAEF,EAAE,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,qBAAqB,CAAC,SAAiB;QAC7C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACjC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAA6B;IAC1D,OAAO,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -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"}
|