0xray 3.0.1 → 3.0.2

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.0.1",
3
3
  "terms": [
4
4
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68
5
5
  ],
@@ -69,7 +69,7 @@ Comprehensive dependency analysis and security audit for all project dependencie
69
69
  "vulnerabilities": [
70
70
  {
71
71
  "package": "lodash",
72
- "version": "3.0.0",
72
+ "version": "3.0.1",
73
73
  "severity": "high",
74
74
  "cve": "CVE-2021-23337",
75
75
  "description": "Command injection vulnerability"
@@ -85,14 +85,14 @@ Security-focused format for CI/CD integration:
85
85
 
86
86
  ```json
87
87
  {
88
- "version": "3.0.0",
88
+ "version": "3.0.1",
89
89
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
90
90
  "runs": [
91
91
  {
92
92
  "tool": {
93
93
  "driver": {
94
94
  "name": "Dependency Audit",
95
- "version": "3.0.0"
95
+ "version": "3.0.1"
96
96
  }
97
97
  },
98
98
  "results": [...]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "framework": "xray 2.0",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "Codex-compliant framework configuration for Credible UI project",
5
5
  "thresholds": {
6
6
  "bundleSize": {
@@ -220,7 +220,7 @@
220
220
  }
221
221
  },
222
222
  "codex": {
223
- "version": "3.0.0",
223
+ "version": "3.0.1",
224
224
  "terms": [
225
225
  1,
226
226
  2,
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 0xRay — Self-Healing AI Governance OS
2
2
 
3
- **v3.0.1** — 41 agents · 44 skills · 15 MCPs servers · 20 codex terms · 160 test files
3
+ **v3.0.2** — 41 agents · 44 skills · 15 MCPs servers · 20 codex terms · 160 test files
4
4
 
5
5
  [![Docs](https://img.shields.io/badge/docs-0xRayAI.github.io/xray-10b981?style=flat-square)](https://0xrayai.github.io/xray/)
6
6
 
@@ -181,7 +181,7 @@ Every subsystem is configurable via `features.json` (located at `xray/features.j
181
181
 
182
182
  ```json
183
183
  {
184
- "version": "3.0.0",
184
+ "version": "3.0.1",
185
185
  "token_optimization": {
186
186
  "enabled": true,
187
187
  "max_context_tokens": 20000,
package/dist/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Conventional Commits](https://www.conventionalcommits.org/).
6
6
 
7
+ ## [3.0.2] - 2026-06-12
8
+
9
+ ### 🔄 Changes
10
+
11
+ - Version bump
12
+
13
+ ---
14
+
7
15
  ## [3.0.1] - 2026-06-12
8
16
 
9
17
  ### 🔄 Changes
package/dist/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 0xRay — Self-Healing AI Governance OS
2
2
 
3
- **v3.0.1** — 41 agents · 44 skills · 15 MCPs servers · 20 codex terms · 160 test files
3
+ **v3.0.2** — 41 agents · 44 skills · 15 MCPs servers · 20 codex terms · 160 test files
4
4
 
5
5
  [![Docs](https://img.shields.io/badge/docs-0xRayAI.github.io/xray-10b981?style=flat-square)](https://0xrayai.github.io/xray/)
6
6
 
@@ -181,7 +181,7 @@ Every subsystem is configurable via `features.json` (located at `xray/features.j
181
181
 
182
182
  ```json
183
183
  {
184
- "version": "3.0.0",
184
+ "version": "3.0.1",
185
185
  "token_optimization": {
186
186
  "enabled": true,
187
187
  "max_context_tokens": 20000,
@@ -36,7 +36,7 @@ class RoutingRefiner {
36
36
  const optimizations = this.suggestMappingOptimizations(promptAnalysis, performanceReport);
37
37
  const warnings = this.generateWarnings(newMappings, optimizations);
38
38
  return {
39
- version: "3.0.0",
39
+ version: "3.0.1",
40
40
  generatedAt: new Date(),
41
41
  summary: {
42
42
  newMappings: newMappings.length,
@@ -717,9 +717,9 @@ export class BootOrchestrator {
717
717
  try {
718
718
  // Consumer runtime compat (XRAY_ env + .xray fallbacks)
719
719
  const xrayConfig = {
720
- version: "3.0.0",
720
+ version: "3.0.1",
721
721
  codex_enabled: true,
722
- codex_version: "v3.4.0",
722
+ codex_version: "v3.0.0",
723
723
  codex_terms: [
724
724
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
725
725
  21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
@@ -286,7 +286,7 @@ export class FeaturesConfigLoader {
286
286
  */
287
287
  getDefaultConfig() {
288
288
  return {
289
- version: "3.0.0",
289
+ version: "3.0.1",
290
290
  description: "0xRay Framework - Unified Feature Configuration",
291
291
  token_optimization: {
292
292
  enabled: true,
@@ -19,14 +19,16 @@ export interface ConfigLoadResult {
19
19
  * Loads MCP server configurations from files
20
20
  */
21
21
  export declare class ConfigLoader {
22
- private configPaths;
22
+ private defaultPaths;
23
+ private customPaths;
24
+ private get configPaths();
23
25
  /**
24
26
  * Load configurations from available config files
25
27
  * Returns empty array if no config file exists (this is valid)
26
28
  */
27
29
  load(): Promise<ConfigLoadResult>;
28
30
  /**
29
- * Add a custom config path to search
31
+ * Add a custom config path to search before defaults
30
32
  */
31
33
  addConfigPath(configPath: string): void;
32
34
  /**
@@ -34,9 +36,13 @@ export declare class ConfigLoader {
34
36
  */
35
37
  getConfigPaths(): string[];
36
38
  /**
37
- * Reset config paths to defaults
39
+ * Reset config paths to defaults, clearing custom paths
38
40
  */
39
41
  resetConfigPaths(): void;
42
+ /**
43
+ * Clear all config paths (both default and custom)
44
+ */
45
+ clearConfigPaths(): void;
40
46
  /**
41
47
  * Load configuration from a specific file path
42
48
  */
@@ -11,11 +11,15 @@ import * as fs from 'fs';
11
11
  * Loads MCP server configurations from files
12
12
  */
13
13
  export class ConfigLoader {
14
- configPaths = [
14
+ defaultPaths = [
15
15
  '.mcp.json',
16
16
  '.opencode/mcp.json',
17
17
  'mcp.config.json',
18
18
  ];
19
+ customPaths = [];
20
+ get configPaths() {
21
+ return [...this.customPaths, ...this.defaultPaths];
22
+ }
19
23
  /**
20
24
  * Load configurations from available config files
21
25
  * Returns empty array if no config file exists (this is valid)
@@ -44,10 +48,10 @@ export class ConfigLoader {
44
48
  return { success: true, configs: [] };
45
49
  }
46
50
  /**
47
- * Add a custom config path to search
51
+ * Add a custom config path to search before defaults
48
52
  */
49
53
  addConfigPath(configPath) {
50
- this.configPaths.push(configPath);
54
+ this.customPaths.push(configPath);
51
55
  }
52
56
  /**
53
57
  * Get all configured config paths
@@ -56,14 +60,17 @@ export class ConfigLoader {
56
60
  return [...this.configPaths];
57
61
  }
58
62
  /**
59
- * Reset config paths to defaults
63
+ * Reset config paths to defaults, clearing custom paths
60
64
  */
61
65
  resetConfigPaths() {
62
- this.configPaths = [
63
- '.mcp.json',
64
- '.opencode/mcp.json',
65
- 'mcp.config.json',
66
- ];
66
+ this.customPaths = [];
67
+ }
68
+ /**
69
+ * Clear all config paths (both default and custom)
70
+ */
71
+ clearConfigPaths() {
72
+ this.customPaths = [];
73
+ this.defaultPaths = [];
67
74
  }
68
75
  /**
69
76
  * Load configuration from a specific file path
@@ -1 +1 @@
1
- {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/mcps/config/config-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-loader.js","sourceRoot":"","sources":["../../../src/mcps/config/config-loader.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,7 @@ class GovernanceServer {
32
32
  }
33
33
  createServer() {
34
34
  const server = new Server({
35
- name: "governance", version: "3.0.0",
35
+ name: "governance", version: "3.0.1",
36
36
  }, {
37
37
  capabilities: {
38
38
  tools: {},
@@ -595,7 +595,7 @@ class XrayDocumentationGenerationServer extends XrayKnowledgeSkillBase {
595
595
  openapi: "3.0.0",
596
596
  info: {
597
597
  title: "API Documentation",
598
- version: "3.0.0",
598
+ version: "3.0.1",
599
599
  description: "Generated API documentation",
600
600
  },
601
601
  servers: [
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.0.1",
3
3
  "description": "0xRay Community MCPs Registry - curated API-focused MCP servers",
4
4
  "sources": [
5
5
  {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.0.1",
3
3
  "description": "0xRay Skills Registry - recommended skill sources for consumers",
4
4
  "sources": [
5
5
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0xray",
3
- "version": "3.0.1",
3
+ "version": "3.0.2",
4
4
  "description": "Multi-agent orchestration and Codex governance for OpenCode, Hermes, Grok Build, and OpenClaw",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -147,7 +147,7 @@ function detectCodexInfo() {
147
147
  return { version: cver.startsWith("v") ? cver : `v${cver}`, termsCount: termCount, lastUpdated: new Date().toISOString().split("T")[0] };
148
148
  } catch {}
149
149
  }
150
- return { version: "v3.4.0", termsCount: 68, lastUpdated: new Date().toISOString().split("T")[0] };
150
+ return { version: "v3.0.0", termsCount: 68, lastUpdated: new Date().toISOString().split("T")[0] };
151
151
  }
152
152
 
153
153
  const detectedCodex = detectCodexInfo();
@@ -155,7 +155,7 @@ const detectedCodex = detectCodexInfo();
155
155
  const OFFICIAL_VERSIONS = {
156
156
  // Framework version
157
157
  framework: {
158
- version: "3.0.1",
158
+ version: "3.0.2",
159
159
  displayName: "xray: Self-Healing AI Governance OS",
160
160
  lastUpdated: "2026-06-12",
161
161
  // Counts (auto-calculated, but can be overridden)
@@ -403,7 +403,7 @@ const UPDATE_PATTERNS = [
403
403
  pattern: /xray AI v[0-9]+\.[0-9]+\.[0-9]+/g,
404
404
  replacement: `xray AI v${OFFICIAL_VERSIONS.framework.version}`,
405
405
  },
406
- // Footer bare version (e.g., "**Version**: 3.0.0")
406
+ // Footer bare version (e.g., "**Version**: 3.0.1")
407
407
  {
408
408
  pattern: /\*\*Version\*\*:\s*[0-9]+\.[0-9]+\.[0-9]+/g,
409
409
  replacement: `**Version**: ${OFFICIAL_VERSIONS.framework.version}`,
@@ -59,7 +59,6 @@ describe('ConfigLoader', () => {
59
59
  },
60
60
  ];
61
61
  fs.writeFileSync(testConfigPath, JSON.stringify(testConfigs));
62
- loader.resetConfigPaths();
63
62
  loader.addConfigPath(testConfigPath);
64
63
 
65
64
  const result = await loader.load();
@@ -80,7 +79,6 @@ describe('ConfigLoader', () => {
80
79
  ],
81
80
  };
82
81
  fs.writeFileSync(testConfigPath, JSON.stringify(testConfig));
83
- loader.resetConfigPaths();
84
82
  loader.addConfigPath(testConfigPath);
85
83
 
86
84
  const result = await loader.load();
@@ -91,7 +89,6 @@ describe('ConfigLoader', () => {
91
89
 
92
90
  it('should return error for invalid JSON', async () => {
93
91
  fs.writeFileSync(testConfigPath, 'invalid json{');
94
- loader.resetConfigPaths();
95
92
  loader.addConfigPath(testConfigPath);
96
93
 
97
94
  const result = await loader.load();
@@ -121,7 +118,6 @@ describe('ConfigLoader', () => {
121
118
  fs.mkdirSync(testDir, { recursive: true });
122
119
  fs.writeFileSync(testConfigPath2, JSON.stringify(testConfigs2));
123
120
 
124
- loader.resetConfigPaths();
125
121
  loader.addConfigPath(testConfigPath);
126
122
  loader.addConfigPath(testConfigPath2);
127
123
 
@@ -158,7 +154,6 @@ describe('ConfigLoader', () => {
158
154
  },
159
155
  ];
160
156
  fs.writeFileSync(testConfigPath, JSON.stringify(testConfigs));
161
- loader.resetConfigPaths();
162
157
  loader.addConfigPath(testConfigPath);
163
158
 
164
159
  const result = await loader.load();
@@ -211,7 +206,7 @@ describe('ConfigLoader', () => {
211
206
  fs.writeFileSync(testConfigPath, JSON.stringify(testConfigs));
212
207
  loader.addConfigPath(testConfigPath);
213
208
 
214
- loader.resetConfigPaths();
209
+ loader.clearConfigPaths();
215
210
 
216
211
  const result = await loader.load();
217
212
  expect(result.success).toBe(true);
@@ -272,7 +267,7 @@ describe('ConfigLoader', () => {
272
267
  describe('hasConfigFile', () => {
273
268
  it('should return false when no config file exists', () => {
274
269
  const emptyLoader = new ConfigLoader();
275
- emptyLoader.resetConfigPaths();
270
+ emptyLoader.clearConfigPaths();
276
271
  expect(emptyLoader.hasConfigFile()).toBe(false);
277
272
  });
278
273
 
@@ -24,11 +24,16 @@ export interface ConfigLoadResult {
24
24
  * Loads MCP server configurations from files
25
25
  */
26
26
  export class ConfigLoader {
27
- private configPaths: string[] = [
27
+ private defaultPaths: string[] = [
28
28
  '.mcp.json',
29
29
  '.opencode/mcp.json',
30
30
  'mcp.config.json',
31
31
  ];
32
+ private customPaths: string[] = [];
33
+
34
+ private get configPaths(): string[] {
35
+ return [...this.customPaths, ...this.defaultPaths];
36
+ }
32
37
 
33
38
  /**
34
39
  * Load configurations from available config files
@@ -61,10 +66,10 @@ export class ConfigLoader {
61
66
  }
62
67
 
63
68
  /**
64
- * Add a custom config path to search
69
+ * Add a custom config path to search before defaults
65
70
  */
66
71
  addConfigPath(configPath: string): void {
67
- this.configPaths.push(configPath);
72
+ this.customPaths.push(configPath);
68
73
  }
69
74
 
70
75
  /**
@@ -75,14 +80,18 @@ export class ConfigLoader {
75
80
  }
76
81
 
77
82
  /**
78
- * Reset config paths to defaults
83
+ * Reset config paths to defaults, clearing custom paths
79
84
  */
80
85
  resetConfigPaths(): void {
81
- this.configPaths = [
82
- '.mcp.json',
83
- '.opencode/mcp.json',
84
- 'mcp.config.json',
85
- ];
86
+ this.customPaths = [];
87
+ }
88
+
89
+ /**
90
+ * Clear all config paths (both default and custom)
91
+ */
92
+ clearConfigPaths(): void {
93
+ this.customPaths = [];
94
+ this.defaultPaths = [];
86
95
  }
87
96
 
88
97
  /**
@@ -72,7 +72,7 @@ class GovernanceServer {
72
72
  private createServer(): Server {
73
73
  const server = new Server(
74
74
  {
75
- name: "governance", version: "3.0.0",
75
+ name: "governance", version: "3.0.1",
76
76
  },
77
77
  {
78
78
  capabilities: {
@@ -888,7 +888,7 @@ class XrayDocumentationGenerationServer extends XrayKnowledgeSkillBase {
888
888
  openapi: "3.0.0",
889
889
  info: {
890
890
  title: "API Documentation",
891
- version: "3.0.0",
891
+ version: "3.0.1",
892
892
  description: "Generated API documentation",
893
893
  },
894
894
  servers: [
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.0.1",
3
3
  "description": "0xRay Community MCPs Registry - curated API-focused MCP servers",
4
4
  "sources": [
5
5
  {
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.0.1",
3
3
  "terms": [
4
4
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68
5
5
  ],
@@ -69,7 +69,7 @@ Comprehensive dependency analysis and security audit for all project dependencie
69
69
  "vulnerabilities": [
70
70
  {
71
71
  "package": "lodash",
72
- "version": "3.0.0",
72
+ "version": "3.0.1",
73
73
  "severity": "high",
74
74
  "cve": "CVE-2021-23337",
75
75
  "description": "Command injection vulnerability"
@@ -85,14 +85,14 @@ Security-focused format for CI/CD integration:
85
85
 
86
86
  ```json
87
87
  {
88
- "version": "3.0.0",
88
+ "version": "3.0.1",
89
89
  "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
90
90
  "runs": [
91
91
  {
92
92
  "tool": {
93
93
  "driver": {
94
94
  "name": "Dependency Audit",
95
- "version": "3.0.0"
95
+ "version": "3.0.1"
96
96
  }
97
97
  },
98
98
  "results": [...]
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "framework": "xray 2.0",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "Codex-compliant framework configuration for Credible UI project",
5
5
  "thresholds": {
6
6
  "bundleSize": {
@@ -220,7 +220,7 @@
220
220
  }
221
221
  },
222
222
  "codex": {
223
- "version": "3.0.0",
223
+ "version": "3.0.1",
224
224
  "terms": [
225
225
  1,
226
226
  2,
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.0.1",
3
3
  "description": "0xRay Skills Registry - recommended skill sources for consumers",
4
4
  "sources": [
5
5
  {
package/xray/codex.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.0.0",
2
+ "version": "3.0.1",
3
3
  "lastUpdated": "2026-06-05",
4
4
  "errorPreventionTarget": 0.998,
5
5
  "terms": {
package/xray/config.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./config.schema.json",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "0xRay Framework - Token Management & Performance Configuration",
5
5
  "token_management": {
6
6
  "maxPromptTokens": 20000,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./features.schema.json",
3
- "version": "3.0.0",
3
+ "version": "3.0.1",
4
4
  "description": "0xRay Framework - Unified Feature Configuration",
5
5
  "token_optimization": {
6
6
  "enabled": true,
@@ -4,19 +4,19 @@
4
4
  "openclaw": {
5
5
  "enabled": false,
6
6
  "type": "external-service",
7
- "version": "3.0.0",
7
+ "version": "3.0.1",
8
8
  "config": {}
9
9
  },
10
10
  "python-bridge": {
11
11
  "enabled": false,
12
12
  "type": "protocol-bridge",
13
- "version": "3.0.0",
13
+ "version": "3.0.1",
14
14
  "config": {}
15
15
  },
16
16
  "react": {
17
17
  "enabled": false,
18
18
  "type": "framework-adapter",
19
- "version": "3.0.0",
19
+ "version": "3.0.1",
20
20
  "config": {}
21
21
  }
22
22
  }