@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,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IX Capsule Runtime
|
|
3
|
+
*
|
|
4
|
+
* Integration with P3.9 MCP Apps capsule infrastructure for sandboxed
|
|
5
|
+
* execution of A2R-IX UI capsules.
|
|
6
|
+
*/
|
|
7
|
+
import type { UIRoot } from '../types';
|
|
8
|
+
import type { StateStore } from '../state/store';
|
|
9
|
+
import type { JSONPatch } from '../state/patch';
|
|
10
|
+
import type { PolicyGate } from './policy-gates';
|
|
11
|
+
export interface IXCapsuleConfig {
|
|
12
|
+
/** Capsule ID */
|
|
13
|
+
id: string;
|
|
14
|
+
/** UI definition */
|
|
15
|
+
ui: UIRoot;
|
|
16
|
+
/** Policy gates for security */
|
|
17
|
+
policyGates?: PolicyGate[];
|
|
18
|
+
/** State store (isolated per capsule) */
|
|
19
|
+
stateStore: StateStore;
|
|
20
|
+
/** Event handler for capsule events */
|
|
21
|
+
onEvent?: (event: IXCapsuleEvent) => void;
|
|
22
|
+
/** State change handler */
|
|
23
|
+
onStateChange?: (path: string, value: unknown) => void;
|
|
24
|
+
/** Destroy handler */
|
|
25
|
+
onDestroy?: () => void;
|
|
26
|
+
}
|
|
27
|
+
export interface IXCapsuleEvent {
|
|
28
|
+
type: 'action' | 'state-change' | 'error' | 'lifecycle';
|
|
29
|
+
capsuleId: string;
|
|
30
|
+
action?: string;
|
|
31
|
+
params?: Record<string, unknown>;
|
|
32
|
+
path?: string;
|
|
33
|
+
value?: unknown;
|
|
34
|
+
error?: Error;
|
|
35
|
+
lifecycle?: 'mount' | 'unmount' | 'update';
|
|
36
|
+
}
|
|
37
|
+
export interface IXCapsule {
|
|
38
|
+
/** Capsule ID */
|
|
39
|
+
id: string;
|
|
40
|
+
/** Get current UI definition */
|
|
41
|
+
getUI: () => UIRoot;
|
|
42
|
+
/** Update UI with new definition */
|
|
43
|
+
updateUI: (ui: UIRoot) => void;
|
|
44
|
+
/** Apply state patch */
|
|
45
|
+
applyPatch: (patch: JSONPatch) => void;
|
|
46
|
+
/** Get state value */
|
|
47
|
+
getState: (path: string) => unknown;
|
|
48
|
+
/** Set state value */
|
|
49
|
+
setState: (path: string, value: unknown) => void;
|
|
50
|
+
/** Dispatch action */
|
|
51
|
+
dispatch: (actionId: string, params?: Record<string, unknown>) => Promise<boolean>;
|
|
52
|
+
/** Subscribe to capsule events */
|
|
53
|
+
subscribe: (callback: (event: IXCapsuleEvent) => void) => () => void;
|
|
54
|
+
/** Destroy capsule */
|
|
55
|
+
destroy: () => void;
|
|
56
|
+
/** Check if capsule is active */
|
|
57
|
+
isActive: () => boolean;
|
|
58
|
+
/** GAP-62: Get capsule metrics */
|
|
59
|
+
getMetrics: () => IXCapsuleMetrics;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* GAP-62: Extended capsule metrics
|
|
63
|
+
*/
|
|
64
|
+
export interface IXCapsuleMetrics {
|
|
65
|
+
/** Number of renders */
|
|
66
|
+
renderCount: number;
|
|
67
|
+
/** Number of actions dispatched */
|
|
68
|
+
actionCount: number;
|
|
69
|
+
/** Number of state updates */
|
|
70
|
+
stateUpdateCount: number;
|
|
71
|
+
/** Number of errors */
|
|
72
|
+
errorCount: number;
|
|
73
|
+
/** Capsule start time (ms timestamp) */
|
|
74
|
+
startTime: number;
|
|
75
|
+
/** Last activity time (ms timestamp) */
|
|
76
|
+
lastActivity: number;
|
|
77
|
+
/** GAP-63: CPU usage metrics */
|
|
78
|
+
cpu?: {
|
|
79
|
+
/** User CPU time used (milliseconds) */
|
|
80
|
+
userTime: number;
|
|
81
|
+
/** System CPU time used (milliseconds) */
|
|
82
|
+
systemTime: number;
|
|
83
|
+
/** Total CPU time (user + system) */
|
|
84
|
+
totalTime: number;
|
|
85
|
+
/** CPU usage percentage (approximate) */
|
|
86
|
+
usagePercent: number;
|
|
87
|
+
};
|
|
88
|
+
/** GAP-63: Memory usage metrics */
|
|
89
|
+
memory?: {
|
|
90
|
+
/** Heap used in bytes */
|
|
91
|
+
heapUsed: number;
|
|
92
|
+
/** Heap total in bytes */
|
|
93
|
+
heapTotal: number;
|
|
94
|
+
/** External memory in bytes */
|
|
95
|
+
external: number;
|
|
96
|
+
/** RSS (Resident Set Size) in bytes */
|
|
97
|
+
rss: number;
|
|
98
|
+
/** Array buffer memory in bytes */
|
|
99
|
+
arrayBuffers: number;
|
|
100
|
+
};
|
|
101
|
+
/** GAP-63: Network metrics (for capsules making network requests) */
|
|
102
|
+
network?: {
|
|
103
|
+
/** Number of requests made */
|
|
104
|
+
requestCount: number;
|
|
105
|
+
/** Number of successful responses */
|
|
106
|
+
successCount: number;
|
|
107
|
+
/** Number of failed requests */
|
|
108
|
+
errorCount: number;
|
|
109
|
+
/** Total bytes sent */
|
|
110
|
+
bytesSent: number;
|
|
111
|
+
/** Total bytes received */
|
|
112
|
+
bytesReceived: number;
|
|
113
|
+
/** Average response time (ms) */
|
|
114
|
+
avgResponseTime: number;
|
|
115
|
+
};
|
|
116
|
+
/** Uptime in milliseconds */
|
|
117
|
+
uptime: number;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Create IX Capsule
|
|
121
|
+
*/
|
|
122
|
+
export declare function createIXCapsule(config: IXCapsuleConfig): IXCapsule;
|
|
123
|
+
/**
|
|
124
|
+
* IX Capsule Registry
|
|
125
|
+
*/
|
|
126
|
+
export declare class IXCapsuleRegistry {
|
|
127
|
+
private capsules;
|
|
128
|
+
private defaultPolicyGates;
|
|
129
|
+
/**
|
|
130
|
+
* Set default policy gates for all capsules
|
|
131
|
+
*/
|
|
132
|
+
setDefaultPolicyGates(gates: PolicyGate[]): void;
|
|
133
|
+
/**
|
|
134
|
+
* Create and register capsule
|
|
135
|
+
*/
|
|
136
|
+
create(config: Omit<IXCapsuleConfig, 'policyGates'> & {
|
|
137
|
+
policyGates?: PolicyGate[];
|
|
138
|
+
}): IXCapsule;
|
|
139
|
+
/**
|
|
140
|
+
* Get capsule by ID
|
|
141
|
+
*/
|
|
142
|
+
get(id: string): IXCapsule | undefined;
|
|
143
|
+
/**
|
|
144
|
+
* Check if capsule exists
|
|
145
|
+
*/
|
|
146
|
+
has(id: string): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Remove capsule
|
|
149
|
+
*/
|
|
150
|
+
remove(id: string): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* List all capsules
|
|
153
|
+
*/
|
|
154
|
+
list(): IXCapsule[];
|
|
155
|
+
/**
|
|
156
|
+
* Get active capsules
|
|
157
|
+
*/
|
|
158
|
+
getActive(): IXCapsule[];
|
|
159
|
+
/**
|
|
160
|
+
* Broadcast patch to all capsules
|
|
161
|
+
*/
|
|
162
|
+
broadcastPatch(patch: JSONPatch): void;
|
|
163
|
+
/**
|
|
164
|
+
* Destroy all capsules
|
|
165
|
+
*/
|
|
166
|
+
clear(): void;
|
|
167
|
+
/**
|
|
168
|
+
* GAP-62/64: Get metrics for all capsules
|
|
169
|
+
* Returns aggregated metrics for all registered capsules
|
|
170
|
+
*/
|
|
171
|
+
getMetrics(): Record<string, IXCapsuleMetrics>;
|
|
172
|
+
/**
|
|
173
|
+
* GAP-64: Get aggregated metrics across all capsules
|
|
174
|
+
* Returns summary statistics for the entire registry
|
|
175
|
+
*/
|
|
176
|
+
getAggregatedMetrics(): IXAggregatedMetrics;
|
|
177
|
+
/**
|
|
178
|
+
* GAP-64: Export metrics for external monitoring systems
|
|
179
|
+
* Returns metrics in a format suitable for Prometheus, DataDog, etc.
|
|
180
|
+
*/
|
|
181
|
+
exportMetrics(): IXMetricsExport;
|
|
182
|
+
/**
|
|
183
|
+
* Convert metrics to Prometheus format
|
|
184
|
+
*/
|
|
185
|
+
private toPrometheusFormat;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* GAP-64: Aggregated metrics interface
|
|
189
|
+
*/
|
|
190
|
+
export interface IXAggregatedMetrics {
|
|
191
|
+
/** Total number of capsules in registry */
|
|
192
|
+
totalCapsules: number;
|
|
193
|
+
/** Number of currently active capsules */
|
|
194
|
+
activeCapsules: number;
|
|
195
|
+
/** Total renders across all capsules */
|
|
196
|
+
totalRenders: number;
|
|
197
|
+
/** Total actions across all capsules */
|
|
198
|
+
totalActions: number;
|
|
199
|
+
/** Total state updates across all capsules */
|
|
200
|
+
totalStateUpdates: number;
|
|
201
|
+
/** Total errors across all capsules */
|
|
202
|
+
totalErrors: number;
|
|
203
|
+
/** Average uptime in milliseconds */
|
|
204
|
+
avgUptime: number;
|
|
205
|
+
/** Total memory used in bytes */
|
|
206
|
+
totalMemoryUsed: number;
|
|
207
|
+
/** Average CPU usage percentage */
|
|
208
|
+
avgCpuUsage: number;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* GAP-64: Metrics export format
|
|
212
|
+
*/
|
|
213
|
+
export interface IXMetricsExport {
|
|
214
|
+
/** Export timestamp */
|
|
215
|
+
timestamp: number;
|
|
216
|
+
/** Summary statistics */
|
|
217
|
+
summary: IXAggregatedMetrics;
|
|
218
|
+
/** Individual capsule metrics */
|
|
219
|
+
capsules: Record<string, IXCapsuleMetrics>;
|
|
220
|
+
/** Prometheus-formatted metrics */
|
|
221
|
+
prometheus: string;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Global capsule registry
|
|
225
|
+
*/
|
|
226
|
+
export declare const globalCapsuleRegistry: IXCapsuleRegistry;
|
|
227
|
+
//# sourceMappingURL=capsule-runtime.d.ts.map
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* IX Capsule Runtime
|
|
3
|
+
*
|
|
4
|
+
* Integration with P3.9 MCP Apps capsule infrastructure for sandboxed
|
|
5
|
+
* execution of A2R-IX UI capsules.
|
|
6
|
+
*/
|
|
7
|
+
import type { UIRoot } from '../types';
|
|
8
|
+
import type { StateStore } from '../state/store';
|
|
9
|
+
import type { JSONPatch } from '../state/patch';
|
|
10
|
+
import type { PolicyGate } from './policy-gates';
|
|
11
|
+
export interface IXCapsuleConfig {
|
|
12
|
+
/** Capsule ID */
|
|
13
|
+
id: string;
|
|
14
|
+
/** UI definition */
|
|
15
|
+
ui: UIRoot;
|
|
16
|
+
/** Policy gates for security */
|
|
17
|
+
policyGates?: PolicyGate[];
|
|
18
|
+
/** State store (isolated per capsule) */
|
|
19
|
+
stateStore: StateStore;
|
|
20
|
+
/** Event handler for capsule events */
|
|
21
|
+
onEvent?: (event: IXCapsuleEvent) => void;
|
|
22
|
+
/** State change handler */
|
|
23
|
+
onStateChange?: (path: string, value: unknown) => void;
|
|
24
|
+
/** Destroy handler */
|
|
25
|
+
onDestroy?: () => void;
|
|
26
|
+
}
|
|
27
|
+
export interface IXCapsuleEvent {
|
|
28
|
+
type: 'action' | 'state-change' | 'error' | 'lifecycle';
|
|
29
|
+
capsuleId: string;
|
|
30
|
+
action?: string;
|
|
31
|
+
params?: Record<string, unknown>;
|
|
32
|
+
path?: string;
|
|
33
|
+
value?: unknown;
|
|
34
|
+
error?: Error;
|
|
35
|
+
lifecycle?: 'mount' | 'unmount' | 'update';
|
|
36
|
+
}
|
|
37
|
+
export interface IXCapsule {
|
|
38
|
+
/** Capsule ID */
|
|
39
|
+
id: string;
|
|
40
|
+
/** Get current UI definition */
|
|
41
|
+
getUI: () => UIRoot;
|
|
42
|
+
/** Update UI with new definition */
|
|
43
|
+
updateUI: (ui: UIRoot) => void;
|
|
44
|
+
/** Apply state patch */
|
|
45
|
+
applyPatch: (patch: JSONPatch) => void;
|
|
46
|
+
/** Get state value */
|
|
47
|
+
getState: (path: string) => unknown;
|
|
48
|
+
/** Set state value */
|
|
49
|
+
setState: (path: string, value: unknown) => void;
|
|
50
|
+
/** Dispatch action */
|
|
51
|
+
dispatch: (actionId: string, params?: Record<string, unknown>) => Promise<boolean>;
|
|
52
|
+
/** Subscribe to capsule events */
|
|
53
|
+
subscribe: (callback: (event: IXCapsuleEvent) => void) => () => void;
|
|
54
|
+
/** Destroy capsule */
|
|
55
|
+
destroy: () => void;
|
|
56
|
+
/** Check if capsule is active */
|
|
57
|
+
isActive: () => boolean;
|
|
58
|
+
/** GAP-62: Get capsule metrics */
|
|
59
|
+
getMetrics: () => IXCapsuleMetrics;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* GAP-62: Extended capsule metrics
|
|
63
|
+
*/
|
|
64
|
+
export interface IXCapsuleMetrics {
|
|
65
|
+
/** Number of renders */
|
|
66
|
+
renderCount: number;
|
|
67
|
+
/** Number of actions dispatched */
|
|
68
|
+
actionCount: number;
|
|
69
|
+
/** Number of state updates */
|
|
70
|
+
stateUpdateCount: number;
|
|
71
|
+
/** Number of errors */
|
|
72
|
+
errorCount: number;
|
|
73
|
+
/** Capsule start time (ms timestamp) */
|
|
74
|
+
startTime: number;
|
|
75
|
+
/** Last activity time (ms timestamp) */
|
|
76
|
+
lastActivity: number;
|
|
77
|
+
/** GAP-63: CPU usage metrics */
|
|
78
|
+
cpu?: {
|
|
79
|
+
/** User CPU time used (milliseconds) */
|
|
80
|
+
userTime: number;
|
|
81
|
+
/** System CPU time used (milliseconds) */
|
|
82
|
+
systemTime: number;
|
|
83
|
+
/** Total CPU time (user + system) */
|
|
84
|
+
totalTime: number;
|
|
85
|
+
/** CPU usage percentage (approximate) */
|
|
86
|
+
usagePercent: number;
|
|
87
|
+
};
|
|
88
|
+
/** GAP-63: Memory usage metrics */
|
|
89
|
+
memory?: {
|
|
90
|
+
/** Heap used in bytes */
|
|
91
|
+
heapUsed: number;
|
|
92
|
+
/** Heap total in bytes */
|
|
93
|
+
heapTotal: number;
|
|
94
|
+
/** External memory in bytes */
|
|
95
|
+
external: number;
|
|
96
|
+
/** RSS (Resident Set Size) in bytes */
|
|
97
|
+
rss: number;
|
|
98
|
+
/** Array buffer memory in bytes */
|
|
99
|
+
arrayBuffers: number;
|
|
100
|
+
};
|
|
101
|
+
/** GAP-63: Network metrics (for capsules making network requests) */
|
|
102
|
+
network?: {
|
|
103
|
+
/** Number of requests made */
|
|
104
|
+
requestCount: number;
|
|
105
|
+
/** Number of successful responses */
|
|
106
|
+
successCount: number;
|
|
107
|
+
/** Number of failed requests */
|
|
108
|
+
errorCount: number;
|
|
109
|
+
/** Total bytes sent */
|
|
110
|
+
bytesSent: number;
|
|
111
|
+
/** Total bytes received */
|
|
112
|
+
bytesReceived: number;
|
|
113
|
+
/** Average response time (ms) */
|
|
114
|
+
avgResponseTime: number;
|
|
115
|
+
};
|
|
116
|
+
/** Uptime in milliseconds */
|
|
117
|
+
uptime: number;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Create IX Capsule
|
|
121
|
+
*/
|
|
122
|
+
export declare function createIXCapsule(config: IXCapsuleConfig): IXCapsule;
|
|
123
|
+
/**
|
|
124
|
+
* IX Capsule Registry
|
|
125
|
+
*/
|
|
126
|
+
export declare class IXCapsuleRegistry {
|
|
127
|
+
private capsules;
|
|
128
|
+
private defaultPolicyGates;
|
|
129
|
+
/**
|
|
130
|
+
* Set default policy gates for all capsules
|
|
131
|
+
*/
|
|
132
|
+
setDefaultPolicyGates(gates: PolicyGate[]): void;
|
|
133
|
+
/**
|
|
134
|
+
* Create and register capsule
|
|
135
|
+
*/
|
|
136
|
+
create(config: Omit<IXCapsuleConfig, 'policyGates'> & {
|
|
137
|
+
policyGates?: PolicyGate[];
|
|
138
|
+
}): IXCapsule;
|
|
139
|
+
/**
|
|
140
|
+
* Get capsule by ID
|
|
141
|
+
*/
|
|
142
|
+
get(id: string): IXCapsule | undefined;
|
|
143
|
+
/**
|
|
144
|
+
* Check if capsule exists
|
|
145
|
+
*/
|
|
146
|
+
has(id: string): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Remove capsule
|
|
149
|
+
*/
|
|
150
|
+
remove(id: string): boolean;
|
|
151
|
+
/**
|
|
152
|
+
* List all capsules
|
|
153
|
+
*/
|
|
154
|
+
list(): IXCapsule[];
|
|
155
|
+
/**
|
|
156
|
+
* Get active capsules
|
|
157
|
+
*/
|
|
158
|
+
getActive(): IXCapsule[];
|
|
159
|
+
/**
|
|
160
|
+
* Broadcast patch to all capsules
|
|
161
|
+
*/
|
|
162
|
+
broadcastPatch(patch: JSONPatch): void;
|
|
163
|
+
/**
|
|
164
|
+
* Destroy all capsules
|
|
165
|
+
*/
|
|
166
|
+
clear(): void;
|
|
167
|
+
/**
|
|
168
|
+
* GAP-62/64: Get metrics for all capsules
|
|
169
|
+
* Returns aggregated metrics for all registered capsules
|
|
170
|
+
*/
|
|
171
|
+
getMetrics(): Record<string, IXCapsuleMetrics>;
|
|
172
|
+
/**
|
|
173
|
+
* GAP-64: Get aggregated metrics across all capsules
|
|
174
|
+
* Returns summary statistics for the entire registry
|
|
175
|
+
*/
|
|
176
|
+
getAggregatedMetrics(): IXAggregatedMetrics;
|
|
177
|
+
/**
|
|
178
|
+
* GAP-64: Export metrics for external monitoring systems
|
|
179
|
+
* Returns metrics in a format suitable for Prometheus, DataDog, etc.
|
|
180
|
+
*/
|
|
181
|
+
exportMetrics(): IXMetricsExport;
|
|
182
|
+
/**
|
|
183
|
+
* Convert metrics to Prometheus format
|
|
184
|
+
*/
|
|
185
|
+
private toPrometheusFormat;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* GAP-64: Aggregated metrics interface
|
|
189
|
+
*/
|
|
190
|
+
export interface IXAggregatedMetrics {
|
|
191
|
+
/** Total number of capsules in registry */
|
|
192
|
+
totalCapsules: number;
|
|
193
|
+
/** Number of currently active capsules */
|
|
194
|
+
activeCapsules: number;
|
|
195
|
+
/** Total renders across all capsules */
|
|
196
|
+
totalRenders: number;
|
|
197
|
+
/** Total actions across all capsules */
|
|
198
|
+
totalActions: number;
|
|
199
|
+
/** Total state updates across all capsules */
|
|
200
|
+
totalStateUpdates: number;
|
|
201
|
+
/** Total errors across all capsules */
|
|
202
|
+
totalErrors: number;
|
|
203
|
+
/** Average uptime in milliseconds */
|
|
204
|
+
avgUptime: number;
|
|
205
|
+
/** Total memory used in bytes */
|
|
206
|
+
totalMemoryUsed: number;
|
|
207
|
+
/** Average CPU usage percentage */
|
|
208
|
+
avgCpuUsage: number;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* GAP-64: Metrics export format
|
|
212
|
+
*/
|
|
213
|
+
export interface IXMetricsExport {
|
|
214
|
+
/** Export timestamp */
|
|
215
|
+
timestamp: number;
|
|
216
|
+
/** Summary statistics */
|
|
217
|
+
summary: IXAggregatedMetrics;
|
|
218
|
+
/** Individual capsule metrics */
|
|
219
|
+
capsules: Record<string, IXCapsuleMetrics>;
|
|
220
|
+
/** Prometheus-formatted metrics */
|
|
221
|
+
prometheus: string;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Global capsule registry
|
|
225
|
+
*/
|
|
226
|
+
export declare const globalCapsuleRegistry: IXCapsuleRegistry;
|
|
227
|
+
//# sourceMappingURL=capsule-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capsule-runtime.d.ts","sourceRoot":"","sources":["../../src/runtime/capsule-runtime.ts"],"names":[],"mappings":"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"}
|