strray-ai 1.22.21 → 1.22.22

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 (32) hide show
  1. package/.strray/state/state.json +1 -0
  2. package/dist/CHANGELOG.md +8 -0
  3. package/dist/index.d.ts +2 -0
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/integrations/openclaw/api-server.d.ts +86 -0
  8. package/dist/integrations/openclaw/api-server.d.ts.map +1 -0
  9. package/dist/integrations/openclaw/api-server.js +339 -0
  10. package/dist/integrations/openclaw/api-server.js.map +1 -0
  11. package/dist/integrations/openclaw/client.d.ts +120 -0
  12. package/dist/integrations/openclaw/client.d.ts.map +1 -0
  13. package/dist/integrations/openclaw/client.js +447 -0
  14. package/dist/integrations/openclaw/client.js.map +1 -0
  15. package/dist/integrations/openclaw/config.d.ts +97 -0
  16. package/dist/integrations/openclaw/config.d.ts.map +1 -0
  17. package/dist/integrations/openclaw/config.js +375 -0
  18. package/dist/integrations/openclaw/config.js.map +1 -0
  19. package/dist/integrations/openclaw/hooks/strray-hooks.d.ts +125 -0
  20. package/dist/integrations/openclaw/hooks/strray-hooks.d.ts.map +1 -0
  21. package/dist/integrations/openclaw/hooks/strray-hooks.js +281 -0
  22. package/dist/integrations/openclaw/hooks/strray-hooks.js.map +1 -0
  23. package/dist/integrations/openclaw/index.d.ts +102 -0
  24. package/dist/integrations/openclaw/index.d.ts.map +1 -0
  25. package/dist/integrations/openclaw/index.js +340 -0
  26. package/dist/integrations/openclaw/index.js.map +1 -0
  27. package/dist/integrations/openclaw/types.d.ts +427 -0
  28. package/dist/integrations/openclaw/types.d.ts.map +1 -0
  29. package/dist/integrations/openclaw/types.js +154 -0
  30. package/dist/integrations/openclaw/types.js.map +1 -0
  31. package/package.json +1 -1
  32. package/scripts/node/universal-version-manager.js +3 -3
@@ -0,0 +1,427 @@
1
+ /**
2
+ * OpenClaw Integration Types
3
+ *
4
+ * TypeScript interfaces for OpenClaw Gateway Protocol v3
5
+ * and 0xRay integration components.
6
+ *
7
+ * @version 1.0.0
8
+ * @since 2026-03-14
9
+ */
10
+ /**
11
+ * OpenClaw WebSocket connection handshake parameters
12
+ */
13
+ export interface OpenClawConnectParams {
14
+ minProtocol: number;
15
+ maxProtocol: number;
16
+ client: {
17
+ id: string;
18
+ version: string;
19
+ platform: string;
20
+ mode: 'operator' | 'node';
21
+ };
22
+ role: 'operator' | 'node';
23
+ scopes: string[];
24
+ caps: string[];
25
+ commands: string[];
26
+ permissions?: Record<string, boolean>;
27
+ auth?: {
28
+ token?: string;
29
+ };
30
+ device?: {
31
+ id: string;
32
+ publicKey: string;
33
+ signature: string;
34
+ signedAt: number;
35
+ nonce: string;
36
+ };
37
+ locale?: string;
38
+ userAgent: string;
39
+ }
40
+ /**
41
+ * OpenClaw WebSocket frame - Request (client → server)
42
+ */
43
+ export interface OpenClawFrameRequest {
44
+ type: 'req';
45
+ id: string;
46
+ method: string;
47
+ params: Record<string, unknown>;
48
+ }
49
+ /**
50
+ * OpenClaw WebSocket frame - Response (server → client)
51
+ */
52
+ export interface OpenClawFrameResponse {
53
+ type: 'res';
54
+ id: string;
55
+ ok: boolean;
56
+ result?: unknown;
57
+ error?: {
58
+ code: string;
59
+ message: string;
60
+ };
61
+ }
62
+ /**
63
+ * OpenClaw WebSocket frame - Event (server → client)
64
+ */
65
+ export interface OpenClawFrameEvent {
66
+ type: 'event';
67
+ event: string;
68
+ data?: Record<string, unknown>;
69
+ seq?: number;
70
+ stateVersion?: string;
71
+ }
72
+ /**
73
+ * Union type for all OpenClaw frame types
74
+ */
75
+ export type OpenClawFrame = OpenClawFrameRequest | OpenClawFrameResponse | OpenClawFrameEvent;
76
+ /**
77
+ * OpenClaw client connection states
78
+ */
79
+ export type OpenClawClientState = 'disconnected' | 'connecting' | 'connected' | 'authenticating' | 'authorized' | 'reconnecting' | 'error';
80
+ /**
81
+ * Pending request for request/response handling
82
+ */
83
+ export interface PendingRequest {
84
+ resolve: (value: unknown) => void;
85
+ reject: (reason: Error) => void;
86
+ timeout: NodeJS.Timeout;
87
+ timestamp: number;
88
+ }
89
+ /**
90
+ * Client configuration options
91
+ */
92
+ export interface OpenClawClientConfig {
93
+ gatewayUrl: string;
94
+ authToken?: string | undefined;
95
+ deviceId?: string | undefined;
96
+ deviceKeyPair?: {
97
+ publicKey: string;
98
+ privateKey: string;
99
+ } | undefined;
100
+ reconnect?: boolean;
101
+ reconnectAttempts?: number;
102
+ reconnectDelay?: number;
103
+ pingInterval?: number;
104
+ requestTimeout?: number;
105
+ }
106
+ /**
107
+ * 0xRay API server configuration
108
+ */
109
+ export interface StringRayAPIServerConfig {
110
+ port: number;
111
+ host?: string;
112
+ apiKey?: string;
113
+ cors?: boolean;
114
+ rateLimit?: {
115
+ windowMs: number;
116
+ maxRequests: number;
117
+ };
118
+ }
119
+ /**
120
+ * Agent invocation request from OpenClaw skill
121
+ */
122
+ export interface AgentInvokeRequest {
123
+ command: string;
124
+ args?: Record<string, unknown>;
125
+ sessionId?: string;
126
+ agent?: string;
127
+ timeout?: number;
128
+ }
129
+ /**
130
+ * Agent invocation response
131
+ */
132
+ export interface AgentInvokeResponse {
133
+ success: boolean;
134
+ result?: unknown;
135
+ error?: string;
136
+ sessionId?: string;
137
+ executionTime?: number;
138
+ }
139
+ /**
140
+ * Health check response
141
+ */
142
+ export interface HealthCheckResponse {
143
+ status: 'healthy' | 'degraded' | 'unhealthy';
144
+ version: string;
145
+ uptime: number;
146
+ openclaw?: {
147
+ connected: boolean;
148
+ state: OpenClawClientState;
149
+ };
150
+ }
151
+ /**
152
+ * API route definitions
153
+ */
154
+ export interface APIRoute {
155
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE';
156
+ path: string;
157
+ handler: (req: Request, res: Response) => Promise<void>;
158
+ requiresAuth?: boolean;
159
+ }
160
+ /**
161
+ * OpenClaw Skill metadata (SKILL.md frontmatter)
162
+ */
163
+ export interface OpenClawSkillMetadata {
164
+ name: string;
165
+ description: string;
166
+ version?: string;
167
+ metadata?: {
168
+ openclaw?: {
169
+ requires?: {
170
+ bins?: string[];
171
+ env?: string[];
172
+ config?: string[];
173
+ };
174
+ primaryEnv?: string;
175
+ emoji?: string;
176
+ };
177
+ author?: string;
178
+ tags?: string[];
179
+ };
180
+ userInvocable?: boolean;
181
+ commands?: SkillCommand[];
182
+ }
183
+ /**
184
+ * Skill command definition
185
+ */
186
+ export interface SkillCommand {
187
+ name: string;
188
+ description: string;
189
+ usage?: string;
190
+ examples?: string[];
191
+ requiresAuth?: boolean;
192
+ }
193
+ /**
194
+ * Skill command execution request
195
+ */
196
+ export interface SkillExecutionRequest {
197
+ command: string;
198
+ args: Record<string, unknown>;
199
+ userId?: string;
200
+ sessionId?: string;
201
+ channel?: string;
202
+ }
203
+ /**
204
+ * Skill command execution response
205
+ */
206
+ export interface SkillExecutionResponse {
207
+ success: boolean;
208
+ output?: string;
209
+ error?: string;
210
+ metadata?: Record<string, unknown>;
211
+ }
212
+ /**
213
+ * Tool execution event from 0xRay
214
+ */
215
+ export interface ToolExecutionEvent {
216
+ toolName: string;
217
+ toolId: string;
218
+ args: Record<string, unknown>;
219
+ result?: unknown;
220
+ error?: string;
221
+ duration: number;
222
+ timestamp: number;
223
+ sessionId?: string;
224
+ agent?: string;
225
+ }
226
+ /**
227
+ * Tool before execution event
228
+ */
229
+ export interface ToolBeforeEvent extends ToolExecutionEvent {
230
+ eventType: 'tool.before';
231
+ }
232
+ /**
233
+ * Tool after execution event
234
+ */
235
+ export interface ToolAfterEvent extends ToolExecutionEvent {
236
+ eventType: 'tool.after';
237
+ success: boolean;
238
+ }
239
+ /**
240
+ * Tool event subscription options
241
+ */
242
+ export interface ToolEventSubscription {
243
+ toolNames?: string[];
244
+ includeArgs?: boolean;
245
+ includeResult?: boolean;
246
+ includeMetadata?: boolean;
247
+ }
248
+ /**
249
+ * Complete OpenClaw integration configuration
250
+ */
251
+ export interface OpenClawIntegrationConfig {
252
+ gatewayUrl: string;
253
+ authToken?: string;
254
+ deviceId?: string;
255
+ deviceKeyPair?: {
256
+ publicKey: string;
257
+ privateKey: string;
258
+ };
259
+ autoReconnect: boolean;
260
+ maxReconnectAttempts: number;
261
+ reconnectDelay: number;
262
+ apiServer: {
263
+ enabled: boolean;
264
+ port: number;
265
+ host?: string;
266
+ apiKey?: string;
267
+ };
268
+ hooks: {
269
+ enabled: boolean;
270
+ toolBefore: boolean;
271
+ toolAfter: boolean;
272
+ includeArgs: boolean;
273
+ includeResult: boolean;
274
+ toolFilter?: string[];
275
+ };
276
+ enabled: boolean;
277
+ debug: boolean;
278
+ logLevel?: 'error' | 'warn' | 'info' | 'debug';
279
+ }
280
+ /**
281
+ * Configuration validation result
282
+ */
283
+ export interface ConfigValidationResult {
284
+ valid: boolean;
285
+ errors: ConfigValidationError[];
286
+ warnings: ConfigValidationWarning[];
287
+ }
288
+ export interface ConfigValidationError {
289
+ field: string;
290
+ message: string;
291
+ code: string;
292
+ }
293
+ export interface ConfigValidationWarning {
294
+ field: string;
295
+ message: string;
296
+ }
297
+ /**
298
+ * OpenClaw integration error codes
299
+ */
300
+ export declare enum OpenClawErrorCode {
301
+ CONNECTION_FAILED = "CONNECTION_FAILED",
302
+ CONNECTION_TIMEOUT = "CONNECTION_TIMEOUT",
303
+ AUTH_FAILED = "AUTH_FAILED",
304
+ TOKEN_MISMATCH = "TOKEN_MISMATCH",
305
+ DEVICE_NOT_PAIRED = "DEVICE_NOT_PAIRED",
306
+ INVALID_FRAME = "INVALID_FRAME",
307
+ UNSUPPORTED_METHOD = "UNSUPPORTED_METHOD",
308
+ OUT_OF_SCOPE = "OUT_OF_SCOPE",
309
+ PROTOCOL_VERSION_MISMATCH = "PROTOCOL_VERSION_MISMATCH",
310
+ REQUEST_TIMEOUT = "REQUEST_TIMEOUT",
311
+ REQUEST_CANCELLED = "REQUEST_CANCELLED",
312
+ SERVER_ERROR = "SERVER_ERROR",
313
+ SERVER_UNAVAILABLE = "SERVER_UNAVAILABLE",
314
+ SKILL_NOT_FOUND = "SKILL_NOT_FOUND",
315
+ SKILL_LOAD_FAILED = "SKILL_LOAD_FAILED",
316
+ SKILL_EXECUTION_FAILED = "SKILL_EXECUTION_FAILED",
317
+ STRINGRAY_UNAVAILABLE = "STRINGRAY_UNAVAILABLE",
318
+ STRINGRAY_TIMEOUT = "STRINGRAY_TIMEOUT",
319
+ STRINGRAY_ERROR = "STRINGRAY_ERROR",
320
+ CONFIG_INVALID = "CONFIG_INVALID",
321
+ CONFIG_MISSING = "CONFIG_MISSING",
322
+ UNKNOWN_ERROR = "UNKNOWN_ERROR"
323
+ }
324
+ /**
325
+ * Base error class for OpenClaw integration
326
+ */
327
+ export declare class OpenClawError extends Error {
328
+ code: OpenClawErrorCode;
329
+ recoverable: boolean;
330
+ context?: Record<string, unknown> | undefined;
331
+ constructor(message: string, code: OpenClawErrorCode, recoverable: boolean, context?: Record<string, unknown> | undefined);
332
+ }
333
+ /**
334
+ * Connection error
335
+ */
336
+ export declare class OpenClawConnectionError extends OpenClawError {
337
+ originalError?: Error | undefined;
338
+ constructor(message: string, originalError?: Error | undefined);
339
+ }
340
+ /**
341
+ * Authentication error
342
+ */
343
+ export declare class OpenClawAuthError extends OpenClawError {
344
+ authType?: "token" | "device" | undefined;
345
+ constructor(message: string, authType?: "token" | "device" | undefined);
346
+ }
347
+ /**
348
+ * Request timeout error
349
+ */
350
+ export declare class OpenClawTimeoutError extends OpenClawError {
351
+ method: string;
352
+ timeout: number;
353
+ constructor(method: string, timeout: number);
354
+ }
355
+ /**
356
+ * Configuration error
357
+ */
358
+ export declare class OpenClawConfigError extends OpenClawError {
359
+ field?: string | undefined;
360
+ constructor(message: string, field?: string | undefined);
361
+ }
362
+ /**
363
+ * Check if frame is a request frame
364
+ */
365
+ export declare function isOpenClawRequest(frame: unknown): frame is OpenClawFrameRequest;
366
+ /**
367
+ * Check if frame is a response frame
368
+ */
369
+ export declare function isOpenClawResponse(frame: unknown): frame is OpenClawFrameResponse;
370
+ /**
371
+ * Check if frame is an event frame
372
+ */
373
+ export declare function isOpenClawEvent(frame: unknown): frame is OpenClawFrameEvent;
374
+ /**
375
+ * Check if error is recoverable
376
+ */
377
+ export declare function isRecoverableError(error: OpenClawError): boolean;
378
+ /**
379
+ * Client statistics
380
+ */
381
+ export interface ClientStatistics {
382
+ connectedAt?: number;
383
+ lastMessageAt?: number;
384
+ messagesSent: number;
385
+ messagesReceived: number;
386
+ requestsSent: number;
387
+ requestsSucceeded: number;
388
+ requestsFailed: number;
389
+ reconnects: number;
390
+ errors: number;
391
+ }
392
+ /**
393
+ * API server statistics
394
+ */
395
+ export interface APIServerStatistics {
396
+ startedAt: number;
397
+ requestsTotal: number;
398
+ requestsByEndpoint: Record<string, number>;
399
+ requestsByStatus: Record<number, number>;
400
+ averageResponseTime: number;
401
+ errors: number;
402
+ }
403
+ /**
404
+ * Integration statistics
405
+ */
406
+ export interface IntegrationStatistics {
407
+ client: ClientStatistics;
408
+ apiServer: APIServerStatistics;
409
+ uptime: number;
410
+ }
411
+ /**
412
+ * OpenClaw client events
413
+ */
414
+ export type OpenClawClientEvent = 'connecting' | 'connected' | 'disconnected' | 'authorized' | 'reconnecting' | 'error' | 'frame' | 'event';
415
+ /**
416
+ * Client event listener type
417
+ */
418
+ export type OpenClawEventListener = (data?: unknown) => void | Promise<void>;
419
+ /**
420
+ * State change event
421
+ */
422
+ export interface StateChangeEvent {
423
+ previousState: OpenClawClientState;
424
+ newState: OpenClawClientState;
425
+ timestamp: number;
426
+ }
427
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/integrations/openclaw/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * OpenClaw Integration Types
3
+ *
4
+ * TypeScript interfaces for OpenClaw Gateway Protocol v3
5
+ * and 0xRay integration components.
6
+ *
7
+ * @version 1.0.0
8
+ * @since 2026-03-14
9
+ */
10
+ // ============================================================================
11
+ // Error Types
12
+ // ============================================================================
13
+ /**
14
+ * OpenClaw integration error codes
15
+ */
16
+ export var OpenClawErrorCode;
17
+ (function (OpenClawErrorCode) {
18
+ // Connection errors
19
+ OpenClawErrorCode["CONNECTION_FAILED"] = "CONNECTION_FAILED";
20
+ OpenClawErrorCode["CONNECTION_TIMEOUT"] = "CONNECTION_TIMEOUT";
21
+ OpenClawErrorCode["AUTH_FAILED"] = "AUTH_FAILED";
22
+ OpenClawErrorCode["TOKEN_MISMATCH"] = "TOKEN_MISMATCH";
23
+ OpenClawErrorCode["DEVICE_NOT_PAIRED"] = "DEVICE_NOT_PAIRED";
24
+ // Protocol errors
25
+ OpenClawErrorCode["INVALID_FRAME"] = "INVALID_FRAME";
26
+ OpenClawErrorCode["UNSUPPORTED_METHOD"] = "UNSUPPORTED_METHOD";
27
+ OpenClawErrorCode["OUT_OF_SCOPE"] = "OUT_OF_SCOPE";
28
+ OpenClawErrorCode["PROTOCOL_VERSION_MISMATCH"] = "PROTOCOL_VERSION_MISMATCH";
29
+ // Request errors
30
+ OpenClawErrorCode["REQUEST_TIMEOUT"] = "REQUEST_TIMEOUT";
31
+ OpenClawErrorCode["REQUEST_CANCELLED"] = "REQUEST_CANCELLED";
32
+ // Server errors
33
+ OpenClawErrorCode["SERVER_ERROR"] = "SERVER_ERROR";
34
+ OpenClawErrorCode["SERVER_UNAVAILABLE"] = "SERVER_UNAVAILABLE";
35
+ // Skill errors
36
+ OpenClawErrorCode["SKILL_NOT_FOUND"] = "SKILL_NOT_FOUND";
37
+ OpenClawErrorCode["SKILL_LOAD_FAILED"] = "SKILL_LOAD_FAILED";
38
+ OpenClawErrorCode["SKILL_EXECUTION_FAILED"] = "SKILL_EXECUTION_FAILED";
39
+ // 0xRay errors
40
+ OpenClawErrorCode["STRINGRAY_UNAVAILABLE"] = "STRINGRAY_UNAVAILABLE";
41
+ OpenClawErrorCode["STRINGRAY_TIMEOUT"] = "STRINGRAY_TIMEOUT";
42
+ OpenClawErrorCode["STRINGRAY_ERROR"] = "STRINGRAY_ERROR";
43
+ // Configuration errors
44
+ OpenClawErrorCode["CONFIG_INVALID"] = "CONFIG_INVALID";
45
+ OpenClawErrorCode["CONFIG_MISSING"] = "CONFIG_MISSING";
46
+ // Unknown
47
+ OpenClawErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
48
+ })(OpenClawErrorCode || (OpenClawErrorCode = {}));
49
+ /**
50
+ * Base error class for OpenClaw integration
51
+ */
52
+ export class OpenClawError extends Error {
53
+ code;
54
+ recoverable;
55
+ context;
56
+ constructor(message, code, recoverable, context) {
57
+ super(message);
58
+ this.code = code;
59
+ this.recoverable = recoverable;
60
+ this.context = context;
61
+ this.name = 'OpenClawError';
62
+ Error.captureStackTrace(this, this.constructor);
63
+ }
64
+ }
65
+ /**
66
+ * Connection error
67
+ */
68
+ export class OpenClawConnectionError extends OpenClawError {
69
+ originalError;
70
+ constructor(message, originalError) {
71
+ super(message, OpenClawErrorCode.CONNECTION_FAILED, true, {
72
+ originalError: originalError?.message,
73
+ });
74
+ this.originalError = originalError;
75
+ this.name = 'OpenClawConnectionError';
76
+ }
77
+ }
78
+ /**
79
+ * Authentication error
80
+ */
81
+ export class OpenClawAuthError extends OpenClawError {
82
+ authType;
83
+ constructor(message, authType) {
84
+ super(message, OpenClawErrorCode.AUTH_FAILED, false, { authType });
85
+ this.authType = authType;
86
+ this.name = 'OpenClawAuthError';
87
+ }
88
+ }
89
+ /**
90
+ * Request timeout error
91
+ */
92
+ export class OpenClawTimeoutError extends OpenClawError {
93
+ method;
94
+ timeout;
95
+ constructor(method, timeout) {
96
+ super(`Request to ${method} timed out after ${timeout}ms`, OpenClawErrorCode.REQUEST_TIMEOUT, true, {
97
+ method,
98
+ timeout,
99
+ });
100
+ this.method = method;
101
+ this.timeout = timeout;
102
+ this.name = 'OpenClawTimeoutError';
103
+ }
104
+ }
105
+ /**
106
+ * Configuration error
107
+ */
108
+ export class OpenClawConfigError extends OpenClawError {
109
+ field;
110
+ constructor(message, field) {
111
+ super(message, OpenClawErrorCode.CONFIG_INVALID, false, { field });
112
+ this.field = field;
113
+ this.name = 'OpenClawConfigError';
114
+ }
115
+ }
116
+ // ============================================================================
117
+ // Type Guards
118
+ // ============================================================================
119
+ /**
120
+ * Check if frame is a request frame
121
+ */
122
+ export function isOpenClawRequest(frame) {
123
+ return (typeof frame === 'object' &&
124
+ frame !== null &&
125
+ frame.type === 'req' &&
126
+ typeof frame.id === 'string' &&
127
+ typeof frame.method === 'string');
128
+ }
129
+ /**
130
+ * Check if frame is a response frame
131
+ */
132
+ export function isOpenClawResponse(frame) {
133
+ return (typeof frame === 'object' &&
134
+ frame !== null &&
135
+ frame.type === 'res' &&
136
+ typeof frame.id === 'string' &&
137
+ typeof frame.ok === 'boolean');
138
+ }
139
+ /**
140
+ * Check if frame is an event frame
141
+ */
142
+ export function isOpenClawEvent(frame) {
143
+ return (typeof frame === 'object' &&
144
+ frame !== null &&
145
+ frame.type === 'event' &&
146
+ typeof frame.event === 'string');
147
+ }
148
+ /**
149
+ * Check if error is recoverable
150
+ */
151
+ export function isRecoverableError(error) {
152
+ return error.recoverable;
153
+ }
154
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/integrations/openclaw/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqWH,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAN,IAAY,iBAsCX;AAtCD,WAAY,iBAAiB;IAC3B,oBAAoB;IACpB,4DAAuC,CAAA;IACvC,8DAAyC,CAAA;IACzC,gDAA2B,CAAA;IAC3B,sDAAiC,CAAA;IACjC,4DAAuC,CAAA;IAEvC,kBAAkB;IAClB,oDAA+B,CAAA;IAC/B,8DAAyC,CAAA;IACzC,kDAA6B,CAAA;IAC7B,4EAAuD,CAAA;IAEvD,iBAAiB;IACjB,wDAAmC,CAAA;IACnC,4DAAuC,CAAA;IAEvC,gBAAgB;IAChB,kDAA6B,CAAA;IAC7B,8DAAyC,CAAA;IAEzC,eAAe;IACf,wDAAmC,CAAA;IACnC,4DAAuC,CAAA;IACvC,sEAAiD,CAAA;IAEjD,eAAe;IACf,oEAA+C,CAAA;IAC/C,4DAAuC,CAAA;IACvC,wDAAmC,CAAA;IAEnC,uBAAuB;IACvB,sDAAiC,CAAA;IACjC,sDAAiC,CAAA;IAEjC,UAAU;IACV,oDAA+B,CAAA;AACjC,CAAC,EAtCW,iBAAiB,KAAjB,iBAAiB,QAsC5B;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAG7B;IACA;IACA;IAJT,YACE,OAAe,EACR,IAAuB,EACvB,WAAoB,EACpB,OAAiC;QAExC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJR,SAAI,GAAJ,IAAI,CAAmB;QACvB,gBAAW,GAAX,WAAW,CAAS;QACpB,YAAO,GAAP,OAAO,CAA0B;QAGxC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,aAAa;IAG/C;IAFT,YACE,OAAe,EACR,aAAqB;QAE5B,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,EAAE;YACxD,aAAa,EAAE,aAAa,EAAE,OAAO;SACtC,CAAC,CAAC;QAJI,kBAAa,GAAb,aAAa,CAAQ;QAK5B,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAGzC;IAFT,YACE,OAAe,EACR,QAA6B;QAEpC,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAF5D,aAAQ,GAAR,QAAQ,CAAqB;QAGpC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IAE5C;IACA;IAFT,YACS,MAAc,EACd,OAAe;QAEtB,KAAK,CAAC,cAAc,MAAM,oBAAoB,OAAO,IAAI,EAAE,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE;YAClG,MAAM;YACN,OAAO;SACR,CAAC,CAAC;QANI,WAAM,GAAN,MAAM,CAAQ;QACd,YAAO,GAAP,OAAO,CAAQ;QAMtB,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IAG3C;IAFT,YACE,OAAe,EACR,KAAc;QAErB,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAF5D,UAAK,GAAL,KAAK,CAAS;QAGrB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAa,CAAC,IAAI,KAAK,KAAK;QAC7B,OAAQ,KAAa,CAAC,EAAE,KAAK,QAAQ;QACrC,OAAQ,KAAa,CAAC,MAAM,KAAK,QAAQ,CAC1C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAa,CAAC,IAAI,KAAK,KAAK;QAC7B,OAAQ,KAAa,CAAC,EAAE,KAAK,QAAQ;QACrC,OAAQ,KAAa,CAAC,EAAE,KAAK,SAAS,CACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAa,CAAC,IAAI,KAAK,OAAO;QAC/B,OAAQ,KAAa,CAAC,KAAK,KAAK,QAAQ,CACzC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "strray-ai",
3
- "version": "1.22.21",
3
+ "version": "1.22.22",
4
4
  "description": "⚡ 0xRay: Self-Healing AI Governance OS - Enterprise AI orchestration for OpenCode and Hermes",
5
5
  "readme": "README.md",
6
6
  "license": "MIT",
@@ -95,9 +95,9 @@ const CALCULATED_COUNTS = calculateCounts();
95
95
  const OFFICIAL_VERSIONS = {
96
96
  // Framework version
97
97
  framework: {
98
- version: "1.22.13",
99
- displayName: "0xRay: Self-Healing AI Governance OS",
100
- lastUpdated: "2026-04-15",
98
+ version: "1.22.22",
99
+ displayName: "0xRay: Self-Healing AI Governance OS",
100
+ lastUpdated: "2026-04-27",
101
101
  // Counts (auto-calculated, but can be overridden)
102
102
  ...CALCULATED_COUNTS,
103
103
  },