@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,161 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * A2R-IX React SDK
4
+ *
5
+ * React hooks and components for A2R-IX integration.
6
+ */
7
+ import { useState, useEffect, useCallback, useRef, createContext, useContext } from 'react';
8
+ import { createReactRenderer } from '../react/renderer';
9
+ import { IXCapsuleClient } from './api';
10
+ const IXContext = createContext(null);
11
+ /**
12
+ * Hook to use IX context
13
+ */
14
+ export function useIX() {
15
+ const context = useContext(IXContext);
16
+ if (!context) {
17
+ throw new Error('useIX must be used within IXProvider');
18
+ }
19
+ return context;
20
+ }
21
+ /**
22
+ * IX Provider component
23
+ */
24
+ export function IXProvider({ config, capsuleId: initialCapsuleId, ui, children }) {
25
+ const [client] = useState(() => createIXClient(config));
26
+ const [capsuleId, setCapsuleId] = useState(initialCapsuleId || null);
27
+ const [state, setState] = useState({});
28
+ const eventHandlerRef = useRef();
29
+ // Create capsule if UI provided and no capsuleId
30
+ useEffect(() => {
31
+ if (!capsuleId && ui) {
32
+ client.createCapsule({ ui }).then((response) => {
33
+ setCapsuleId(response.capsule_id);
34
+ });
35
+ }
36
+ }, [client, capsuleId, ui]);
37
+ // Set up event handler
38
+ useEffect(() => {
39
+ eventHandlerRef.current = (event) => {
40
+ if (event.event_type === 'state-change' && event.state_update) {
41
+ setState((prev) => ({ ...prev, ...event.state_update }));
42
+ }
43
+ };
44
+ }, []);
45
+ // Update config onEvent handler
46
+ useEffect(() => {
47
+ const originalOnEvent = config.onEvent;
48
+ config.onEvent = (event) => {
49
+ eventHandlerRef.current?.(event);
50
+ originalOnEvent?.(event);
51
+ };
52
+ }, [config]);
53
+ // Fetch initial state
54
+ useEffect(() => {
55
+ if (capsuleId) {
56
+ client.getCapsule(capsuleId).then((capsule) => {
57
+ setState(capsule.state);
58
+ });
59
+ }
60
+ }, [client, capsuleId]);
61
+ // Cleanup on unmount
62
+ useEffect(() => {
63
+ return () => {
64
+ client.dispose();
65
+ };
66
+ }, [client]);
67
+ const dispatch = useCallback((actionId, params) => {
68
+ if (capsuleId) {
69
+ client.dispatchAction(capsuleId, { action_id: actionId, params });
70
+ }
71
+ }, [client, capsuleId]);
72
+ const applyPatch = useCallback((patch) => {
73
+ if (capsuleId) {
74
+ client.applyPatch(capsuleId, patch);
75
+ }
76
+ }, [client, capsuleId]);
77
+ const value = {
78
+ client,
79
+ capsuleId,
80
+ state,
81
+ dispatch,
82
+ applyPatch,
83
+ };
84
+ return (_jsx(IXContext.Provider, { value: value, children: children }));
85
+ }
86
+ /**
87
+ * IX Renderer component
88
+ *
89
+ * Renders an IX capsule UI using the React renderer.
90
+ */
91
+ export function IXRenderer({ capsuleId: propCapsuleId, components }) {
92
+ const ix = useIX();
93
+ const capsuleId = propCapsuleId || ix.capsuleId;
94
+ const [ui, setUi] = useState(null);
95
+ const rendererRef = useRef(null);
96
+ // Create renderer
97
+ useEffect(() => {
98
+ rendererRef.current = createReactRenderer({
99
+ components,
100
+ stateStore: {
101
+ get: (path) => (path ? ix.state[path] : ix.state),
102
+ set: (path, value) => {
103
+ ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value }]);
104
+ },
105
+ subscribe: () => () => { },
106
+ batch: () => { },
107
+ snapshot: () => ix.state,
108
+ restore: () => { },
109
+ reset: () => { },
110
+ compute: () => { },
111
+ bind: () => { },
112
+ getBindings: () => [],
113
+ },
114
+ onEvent: (name, payload) => {
115
+ ix.dispatch(name, payload);
116
+ },
117
+ });
118
+ return () => {
119
+ rendererRef.current = null;
120
+ };
121
+ }, [ix, components]);
122
+ // Fetch UI when capsuleId changes
123
+ useEffect(() => {
124
+ if (capsuleId && ix.client) {
125
+ ix.client.getCapsule(capsuleId).then((capsule) => {
126
+ setUi(capsule.ui);
127
+ });
128
+ }
129
+ }, [capsuleId, ix.client]);
130
+ if (!ui || !rendererRef.current) {
131
+ return null;
132
+ }
133
+ const { UIRoot: UIRootComponent } = rendererRef.current;
134
+ return _jsx(UIRootComponent, { root: ui });
135
+ }
136
+ /**
137
+ * Hook to use IX capsule state
138
+ */
139
+ export function useIXState(path) {
140
+ const ix = useIX();
141
+ const value = ix.state[path];
142
+ const setValue = useCallback((newValue) => {
143
+ ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value: newValue }]);
144
+ }, [ix, path]);
145
+ return [value, setValue];
146
+ }
147
+ /**
148
+ * Hook to dispatch IX actions
149
+ */
150
+ export function useIXAction(actionId) {
151
+ const ix = useIX();
152
+ return useCallback((params) => {
153
+ ix.dispatch(actionId, params);
154
+ }, [ix, actionId]);
155
+ }
156
+ // Helper function
157
+ function createIXClient(config) {
158
+ return new IXCapsuleClient(config);
159
+ }
160
+ export { IXCapsuleClient };
161
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1,161 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * A2R-IX React SDK
4
+ *
5
+ * React hooks and components for A2R-IX integration.
6
+ */
7
+ import { useState, useEffect, useCallback, useRef, createContext, useContext } from 'react';
8
+ import { createReactRenderer } from '../react/renderer';
9
+ import { IXCapsuleClient } from './api';
10
+ const IXContext = createContext(null);
11
+ /**
12
+ * Hook to use IX context
13
+ */
14
+ export function useIX() {
15
+ const context = useContext(IXContext);
16
+ if (!context) {
17
+ throw new Error('useIX must be used within IXProvider');
18
+ }
19
+ return context;
20
+ }
21
+ /**
22
+ * IX Provider component
23
+ */
24
+ export function IXProvider({ config, capsuleId: initialCapsuleId, ui, children }) {
25
+ const [client] = useState(() => createIXClient(config));
26
+ const [capsuleId, setCapsuleId] = useState(initialCapsuleId || null);
27
+ const [state, setState] = useState({});
28
+ const eventHandlerRef = useRef();
29
+ // Create capsule if UI provided and no capsuleId
30
+ useEffect(() => {
31
+ if (!capsuleId && ui) {
32
+ client.createCapsule({ ui }).then((response) => {
33
+ setCapsuleId(response.capsule_id);
34
+ });
35
+ }
36
+ }, [client, capsuleId, ui]);
37
+ // Set up event handler
38
+ useEffect(() => {
39
+ eventHandlerRef.current = (event) => {
40
+ if (event.event_type === 'state-change' && event.state_update) {
41
+ setState((prev) => ({ ...prev, ...event.state_update }));
42
+ }
43
+ };
44
+ }, []);
45
+ // Update config onEvent handler
46
+ useEffect(() => {
47
+ const originalOnEvent = config.onEvent;
48
+ config.onEvent = (event) => {
49
+ eventHandlerRef.current?.(event);
50
+ originalOnEvent?.(event);
51
+ };
52
+ }, [config]);
53
+ // Fetch initial state
54
+ useEffect(() => {
55
+ if (capsuleId) {
56
+ client.getCapsule(capsuleId).then((capsule) => {
57
+ setState(capsule.state);
58
+ });
59
+ }
60
+ }, [client, capsuleId]);
61
+ // Cleanup on unmount
62
+ useEffect(() => {
63
+ return () => {
64
+ client.dispose();
65
+ };
66
+ }, [client]);
67
+ const dispatch = useCallback((actionId, params) => {
68
+ if (capsuleId) {
69
+ client.dispatchAction(capsuleId, { action_id: actionId, params });
70
+ }
71
+ }, [client, capsuleId]);
72
+ const applyPatch = useCallback((patch) => {
73
+ if (capsuleId) {
74
+ client.applyPatch(capsuleId, patch);
75
+ }
76
+ }, [client, capsuleId]);
77
+ const value = {
78
+ client,
79
+ capsuleId,
80
+ state,
81
+ dispatch,
82
+ applyPatch,
83
+ };
84
+ return (_jsx(IXContext.Provider, { value: value, children: children }));
85
+ }
86
+ /**
87
+ * IX Renderer component
88
+ *
89
+ * Renders an IX capsule UI using the React renderer.
90
+ */
91
+ export function IXRenderer({ capsuleId: propCapsuleId, components }) {
92
+ const ix = useIX();
93
+ const capsuleId = propCapsuleId || ix.capsuleId;
94
+ const [ui, setUi] = useState(null);
95
+ const rendererRef = useRef(null);
96
+ // Create renderer
97
+ useEffect(() => {
98
+ rendererRef.current = createReactRenderer({
99
+ components,
100
+ stateStore: {
101
+ get: (path) => (path ? ix.state[path] : ix.state),
102
+ set: (path, value) => {
103
+ ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value }]);
104
+ },
105
+ subscribe: () => () => { },
106
+ batch: () => { },
107
+ snapshot: () => ix.state,
108
+ restore: () => { },
109
+ reset: () => { },
110
+ compute: () => { },
111
+ bind: () => { },
112
+ getBindings: () => [],
113
+ },
114
+ onEvent: (name, payload) => {
115
+ ix.dispatch(name, payload);
116
+ },
117
+ });
118
+ return () => {
119
+ rendererRef.current = null;
120
+ };
121
+ }, [ix, components]);
122
+ // Fetch UI when capsuleId changes
123
+ useEffect(() => {
124
+ if (capsuleId && ix.client) {
125
+ ix.client.getCapsule(capsuleId).then((capsule) => {
126
+ setUi(capsule.ui);
127
+ });
128
+ }
129
+ }, [capsuleId, ix.client]);
130
+ if (!ui || !rendererRef.current) {
131
+ return null;
132
+ }
133
+ const { UIRoot: UIRootComponent } = rendererRef.current;
134
+ return _jsx(UIRootComponent, { root: ui });
135
+ }
136
+ /**
137
+ * Hook to use IX capsule state
138
+ */
139
+ export function useIXState(path) {
140
+ const ix = useIX();
141
+ const value = ix.state[path];
142
+ const setValue = useCallback((newValue) => {
143
+ ix.applyPatch([{ op: 'replace', path: `/${path.replace(/\./g, '/')}`, value: newValue }]);
144
+ }, [ix, path]);
145
+ return [value, setValue];
146
+ }
147
+ /**
148
+ * Hook to dispatch IX actions
149
+ */
150
+ export function useIXAction(actionId) {
151
+ const ix = useIX();
152
+ return useCallback((params) => {
153
+ ix.dispatch(actionId, params);
154
+ }, [ix, actionId]);
155
+ }
156
+ // Helper function
157
+ function createIXClient(config) {
158
+ return new IXCapsuleClient(config);
159
+ }
160
+ export { IXCapsuleClient };
161
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/sdk/react.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * State Module
3
+ *
4
+ * JSON Patch engine (RFC 6902) and state store for A2R-IX.
5
+ */
6
+ export { createStateStore, getStateStore, clearStateStore, type StateStore, type StateStoreConfig, } from './store';
7
+ export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, type JSONPatch, type JSONPatchOperation, type PatchResult, } from './patch';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * State Module
3
+ *
4
+ * JSON Patch engine (RFC 6902) and state store for A2R-IX.
5
+ */
6
+ export { createStateStore, getStateStore, clearStateStore, type StateStore, type StateStoreConfig, } from './store';
7
+ export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, type JSONPatch, type JSONPatchOperation, type PatchResult, } from './patch';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,WAAW,GACjB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * State Module
3
+ *
4
+ * JSON Patch engine (RFC 6902) and state store for A2R-IX.
5
+ */
6
+ export { createStateStore, getStateStore, clearStateStore, } from './store';
7
+ export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, } from './patch';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,8 @@
1
+ /**
2
+ * State Module
3
+ *
4
+ * JSON Patch engine (RFC 6902) and state store for A2R-IX.
5
+ */
6
+ export { createStateStore, getStateStore, clearStateStore, } from './store';
7
+ export { applyPatch, applyPatchToStore, applyOperation, generatePatch, invertPatch, validatePatch, validateOperation, getValueAtPath, setValueAtPath, decodeJsonPointer, encodeJsonPointer, } from './patch';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,GAGhB,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,iBAAiB,GAIlB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * JSON Patch Engine (RFC 6902)
3
+ *
4
+ * Implements JSON Patch operations for state synchronization.
5
+ */
6
+ import type { StateStore } from './store';
7
+ export interface JSONPatchOperation {
8
+ op: 'add' | 'remove' | 'replace' | 'move' | 'copy' | 'test';
9
+ path: string;
10
+ value?: unknown;
11
+ from?: string;
12
+ }
13
+ export type JSONPatch = JSONPatchOperation[];
14
+ export interface PatchResult {
15
+ success: boolean;
16
+ operations: JSONPatchOperation[];
17
+ failedAt?: number;
18
+ error?: string;
19
+ newState?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * JSON Pointer helpers
23
+ */
24
+ export declare function decodeJsonPointer(pointer: string): string[];
25
+ export declare function encodeJsonPointer(segments: string[]): string;
26
+ /**
27
+ * Get value at JSON Pointer path
28
+ */
29
+ export declare function getValueAtPath(obj: unknown, pointer: string): unknown;
30
+ /**
31
+ * Set value at JSON Pointer path
32
+ */
33
+ export declare function setValueAtPath(obj: unknown, pointer: string, value: unknown, operation: 'add' | 'replace' | 'remove'): unknown;
34
+ /**
35
+ * Apply single patch operation
36
+ */
37
+ export declare function applyOperation(state: Record<string, unknown>, operation: JSONPatchOperation): {
38
+ success: boolean;
39
+ newState: Record<string, unknown>;
40
+ error?: string;
41
+ };
42
+ /**
43
+ * Apply JSON Patch to state
44
+ */
45
+ export declare function applyPatch(state: Record<string, unknown>, patch: JSONPatch): PatchResult;
46
+ /**
47
+ * Apply patch to state store
48
+ */
49
+ export declare function applyPatchToStore(store: StateStore, patch: JSONPatch): PatchResult;
50
+ /**
51
+ * Generate JSON Patch from two objects (diff)
52
+ */
53
+ export declare function generatePatch(from: unknown, to: unknown, path?: string): JSONPatch;
54
+ /**
55
+ * Invert a patch for undo functionality
56
+ */
57
+ export declare function invertPatch(patch: JSONPatch, state: Record<string, unknown>): JSONPatch;
58
+ /**
59
+ * Validate patch operation
60
+ */
61
+ export declare function validateOperation(op: JSONPatchOperation): {
62
+ valid: boolean;
63
+ error?: string;
64
+ };
65
+ /**
66
+ * Validate entire patch
67
+ */
68
+ export declare function validatePatch(patch: JSONPatch): {
69
+ valid: boolean;
70
+ error?: string;
71
+ index?: number;
72
+ };
73
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1,73 @@
1
+ /**
2
+ * JSON Patch Engine (RFC 6902)
3
+ *
4
+ * Implements JSON Patch operations for state synchronization.
5
+ */
6
+ import type { StateStore } from './store';
7
+ export interface JSONPatchOperation {
8
+ op: 'add' | 'remove' | 'replace' | 'move' | 'copy' | 'test';
9
+ path: string;
10
+ value?: unknown;
11
+ from?: string;
12
+ }
13
+ export type JSONPatch = JSONPatchOperation[];
14
+ export interface PatchResult {
15
+ success: boolean;
16
+ operations: JSONPatchOperation[];
17
+ failedAt?: number;
18
+ error?: string;
19
+ newState?: Record<string, unknown>;
20
+ }
21
+ /**
22
+ * JSON Pointer helpers
23
+ */
24
+ export declare function decodeJsonPointer(pointer: string): string[];
25
+ export declare function encodeJsonPointer(segments: string[]): string;
26
+ /**
27
+ * Get value at JSON Pointer path
28
+ */
29
+ export declare function getValueAtPath(obj: unknown, pointer: string): unknown;
30
+ /**
31
+ * Set value at JSON Pointer path
32
+ */
33
+ export declare function setValueAtPath(obj: unknown, pointer: string, value: unknown, operation: 'add' | 'replace' | 'remove'): unknown;
34
+ /**
35
+ * Apply single patch operation
36
+ */
37
+ export declare function applyOperation(state: Record<string, unknown>, operation: JSONPatchOperation): {
38
+ success: boolean;
39
+ newState: Record<string, unknown>;
40
+ error?: string;
41
+ };
42
+ /**
43
+ * Apply JSON Patch to state
44
+ */
45
+ export declare function applyPatch(state: Record<string, unknown>, patch: JSONPatch): PatchResult;
46
+ /**
47
+ * Apply patch to state store
48
+ */
49
+ export declare function applyPatchToStore(store: StateStore, patch: JSONPatch): PatchResult;
50
+ /**
51
+ * Generate JSON Patch from two objects (diff)
52
+ */
53
+ export declare function generatePatch(from: unknown, to: unknown, path?: string): JSONPatch;
54
+ /**
55
+ * Invert a patch for undo functionality
56
+ */
57
+ export declare function invertPatch(patch: JSONPatch, state: Record<string, unknown>): JSONPatch;
58
+ /**
59
+ * Validate patch operation
60
+ */
61
+ export declare function validateOperation(op: JSONPatchOperation): {
62
+ valid: boolean;
63
+ error?: string;
64
+ };
65
+ /**
66
+ * Validate entire patch
67
+ */
68
+ export declare function validatePatch(patch: JSONPatch): {
69
+ valid: boolean;
70
+ error?: string;
71
+ index?: number;
72
+ };
73
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../src/state/patch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAU3D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAM5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAqBrE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,GACtC,OAAO,CAkET;AA2DD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,SAAS,EAAE,kBAAkB,GAC5B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAgFzE;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,SAAS,GACf,WAAW,CAwBb;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,WAAW,CAelF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,SAAK,GAAG,SAAS,CAoE9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAmDvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,kBAAkB,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAsB5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAQlG"}