0xray 3.4.3 → 3.4.4

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/.xray/config.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "$schema": "./config.schema.json",
3
+ "version": "3.1.0",
3
4
  "description": "0xRay Framework - Token Management & Performance Configuration",
4
5
  "token_management": {
5
6
  "maxPromptTokens": 20000,
@@ -2,7 +2,7 @@
2
2
 
3
3
  Quick reference for the 0xRay AI orchestration framework (shipped to your project on `npm install 0xray`).
4
4
 
5
- **v3.4.2** — 7 MCP servers · 45 skills · 68 codex terms · 4 platform bridges
5
+ **v3.4.4** — 7 MCP servers · 45 skills · 68 codex terms · 4 platform bridges
6
6
 
7
7
  ## Postinstall (automatic)
8
8
 
package/AGENTS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # xray Agents
2
2
 
3
- Quick reference for the xray AI orchestration framework (**v3.4.2**).
3
+ Quick reference for the xray AI orchestration framework (**v3.4.4**).
4
4
 
5
5
  **42 agents** · **45 skills** · **7 consumer MCP servers** · **68 codex terms** · **3,226 tests**
6
6
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # xray — MCP-Centric AI Governance OS
2
2
 
3
- **v3.4.2** — 42 agents · 45 skills · 7 MCP servers · 68 codex terms · 3,226 tests
3
+ **v3.4.4** — 42 agents · 45 skills · 7 MCP servers · 68 codex terms · 3,226 tests
4
4
 
5
5
  xray is the pure v2 three-subsystem AI orchestration framework — **MCP-centric**, governed by Dynamo, and autonomous via thinDispatch. Consumer `npm install 0xray` auto-wires all four platform bridges and seven MCP servers with zero manual config.
6
6
 
package/SKILLS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 0xray Skills
2
2
 
3
- **v3.4.2** — **45 skills** · invoked via `xray-skills` MCP · synced on postinstall
3
+ **v3.4.4** — **45 skills** · invoked via `xray-skills` MCP · synced on postinstall
4
4
 
5
5
  xray ships 45 knowledge skills (`src/skills/<name>/SKILL.md`) across the full software lifecycle. Lead-dev operating model lives in **`orchestrator`** skill + `multi_agent_orchestration.lead_dev_mode` in features.json. Skills load on demand via the **xray-skills** MCP server (`npx -y 0xray mcp skills`), agent `@mentions`, or platform skill directories after postinstall.
6
6
 
package/dist/AGENTS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # xray Agents
2
2
 
3
- Quick reference for the xray AI orchestration framework (**v3.4.2**).
3
+ Quick reference for the xray AI orchestration framework (**v3.4.3**).
4
4
 
5
5
  **42 agents** · **45 skills** · **7 consumer MCP servers** · **68 codex terms** · **3,226 tests**
6
6
 
package/dist/CHANGELOG.md CHANGED
@@ -4,6 +4,13 @@ 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.4.4] - 2026-06-18
8
+
9
+ ### 🐛 Bug Fixes
10
+ - **Researcher MCP trap routing** — `analyze_proposal` awaits `getMemoryRoutingProvider()` so MEMORY_ROUTING is not silently omitted when the MCP subprocess starts (P0.5 e2e)
11
+
12
+ ---
13
+
7
14
  ## [3.4.3] - 2026-06-18
8
15
 
9
16
  ### ✨ Features
package/dist/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # xray — MCP-Centric AI Governance OS
2
2
 
3
- **v3.4.2** — 42 agents · 45 skills · 7 MCP servers · 68 codex terms · 3,226 tests
3
+ **v3.4.3** — 42 agents · 45 skills · 7 MCP servers · 68 codex terms · 3,226 tests
4
4
 
5
5
  xray is the pure v2 three-subsystem AI orchestration framework — **MCP-centric**, governed by Dynamo, and autonomous via thinDispatch. Consumer `npm install 0xray` auto-wires all four platform bridges and seven MCP servers with zero manual config.
6
6
 
package/dist/SKILLS.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 0xray Skills
2
2
 
3
- **v3.4.2** — **45 skills** · invoked via `xray-skills` MCP · synced on postinstall
3
+ **v3.4.3** — **45 skills** · invoked via `xray-skills` MCP · synced on postinstall
4
4
 
5
5
  xray ships 45 knowledge skills (`src/skills/<name>/SKILL.md`) across the full software lifecycle. Lead-dev operating model lives in **`orchestrator`** skill + `multi_agent_orchestration.lead_dev_mode` in features.json. Skills load on demand via the **xray-skills** MCP server (`npx -y 0xray mcp skills`), agent `@mentions`, or platform skill directories after postinstall.
6
6
 
@@ -16,6 +16,6 @@ export declare function resolveResearcherMemoryContext(input: {
16
16
  proposalTitle?: string;
17
17
  proposalDescription?: string;
18
18
  proposalType?: string;
19
- }): ResearcherMemoryContext | null;
19
+ }): Promise<ResearcherMemoryContext | null>;
20
20
  export declare function buildMemoryRoutingEvidence(context: ResearcherMemoryContext): string[];
21
21
  export declare function formatMemoryRoutingBlock(context: ResearcherMemoryContext): string;
@@ -1,5 +1,5 @@
1
1
  import { frameworkLogger } from '../core/framework-logger.js';
2
- import { getMemoryRoutingProviderSync } from '../memory-routing/index.js';
2
+ import { getMemoryRoutingProvider } from '../memory-routing/index.js';
3
3
  const TRAP_LANGUAGE = /TYPE:\s*ontological-trap|ontological[- ]trap/i;
4
4
  const DEFAULT_MIN_CONFIDENCE_GATE = 0.55;
5
5
  export function shouldQueryRepertoireConfidence(description, proposalType = '') {
@@ -17,12 +17,12 @@ function buildTaskText(proposalTitle, proposalDescription, proposalType) {
17
17
  * Resolve Repertoire task confidence for researcher proposal analysis.
18
18
  * Triggered by ontological-trap language or high-confidence primitive matches.
19
19
  */
20
- export function resolveResearcherMemoryContext(input) {
20
+ export async function resolveResearcherMemoryContext(input) {
21
21
  const proposalTitle = input.proposalTitle ?? '';
22
22
  const proposalDescription = input.proposalDescription ?? '';
23
23
  const proposalType = input.proposalType ?? '';
24
24
  const taskText = buildTaskText(proposalTitle, proposalDescription, proposalType);
25
- const provider = getMemoryRoutingProviderSync();
25
+ const provider = await getMemoryRoutingProvider();
26
26
  if (provider.id === 'null' || !provider.getTaskConfidence) {
27
27
  return null;
28
28
  }
@@ -381,7 +381,7 @@ class XrayLibrarianServer extends XrayKnowledgeSkillBase {
381
381
  */
382
382
  async analyzeProposal(args) {
383
383
  const { proposalTitle = "", proposalDescription = "", evidence = [], proposalType = "" } = args || {};
384
- const memoryContext = resolveResearcherMemoryContext({
384
+ const memoryContext = await resolveResearcherMemoryContext({
385
385
  proposalTitle,
386
386
  proposalDescription,
387
387
  proposalType,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0xray",
3
- "version": "3.4.3",
3
+ "version": "3.4.4",
4
4
  "description": "Multi-agent orchestration and Codex governance for OpenCode, Hermes, Grok Build, and OpenClaw",
5
5
  "readme": "README.md",
6
6
  "license": "MIT",
@@ -289,12 +289,6 @@ function updateReadme(counts, newVersion) {
289
289
  `[View all ${counts.agents} agents →](AGENTS.md)`
290
290
  );
291
291
 
292
- // Update MCP count: "15 MCP servers" or similar patterns
293
- readme = readme.replace(
294
- /(\d+)\s+MCPs?/g,
295
- (match, num) => `${counts.mcps} MCPs`
296
- );
297
-
298
292
  // Update skills count
299
293
  readme = readme.replace(
300
294
  /(\d+)\s+Skills?/g,
@@ -383,7 +377,7 @@ function applyAgentCountUpdates(content, counts) {
383
377
  `xray v2 - ${counts.agents} Agents`
384
378
  );
385
379
 
386
- agentsMd = agentsMd.replace(/\d+\s+MCPs?/g, `${counts.mcps} MCPs`);
380
+ agentsMd = agentsMd.replace(/\d+\s+MCP servers/g, `${counts.mcps} MCP servers`);
387
381
  agentsMd = agentsMd.replace(/\d+\s+Skills?/g, `${counts.skills} Skills`);
388
382
 
389
383
  return agentsMd;
@@ -1,5 +1,5 @@
1
1
  import { frameworkLogger } from '../core/framework-logger.js';
2
- import { getMemoryRoutingProviderSync } from '../memory-routing/index.js';
2
+ import { getMemoryRoutingProvider } from '../memory-routing/index.js';
3
3
  import type {
4
4
  MemoryRoutingContext,
5
5
  MemoryTaskConfidence,
@@ -44,17 +44,17 @@ function buildTaskText(
44
44
  * Resolve Repertoire task confidence for researcher proposal analysis.
45
45
  * Triggered by ontological-trap language or high-confidence primitive matches.
46
46
  */
47
- export function resolveResearcherMemoryContext(input: {
47
+ export async function resolveResearcherMemoryContext(input: {
48
48
  proposalTitle?: string;
49
49
  proposalDescription?: string;
50
50
  proposalType?: string;
51
- }): ResearcherMemoryContext | null {
51
+ }): Promise<ResearcherMemoryContext | null> {
52
52
  const proposalTitle = input.proposalTitle ?? '';
53
53
  const proposalDescription = input.proposalDescription ?? '';
54
54
  const proposalType = input.proposalType ?? '';
55
55
  const taskText = buildTaskText(proposalTitle, proposalDescription, proposalType);
56
56
 
57
- const provider = getMemoryRoutingProviderSync();
57
+ const provider = await getMemoryRoutingProvider();
58
58
  if (provider.id === 'null' || !provider.getTaskConfidence) {
59
59
  return null;
60
60
  }
@@ -461,7 +461,7 @@ class XrayLibrarianServer extends XrayKnowledgeSkillBase {
461
461
  async analyzeProposal(args: AnalyzeProposalArgs): Promise<CallToolResult> {
462
462
  const { proposalTitle = "", proposalDescription = "", evidence = [], proposalType = "" } = args || {};
463
463
 
464
- const memoryContext = resolveResearcherMemoryContext({
464
+ const memoryContext = await resolveResearcherMemoryContext({
465
465
  proposalTitle,
466
466
  proposalDescription,
467
467
  proposalType,