0xray 4.0.10 → 4.0.11

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.
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "0xray",
3
+ "version": "4.0.11",
4
+ "description": "0xRay suit for Grok, Hermes, OpenClaw, OpenCode: mill+inspect, Codex, 7 MCP servers. Costume 45/42 is opt-in foundry, not the default wear.",
5
+ "author": {
6
+ "name": "0xRay AI",
7
+ "url": "https://0xray.ai"
8
+ },
9
+ "homepage": "https://github.com/0xRayAI/xray",
10
+ "repository": "https://github.com/0xRayAI/xray",
11
+ "keywords": [
12
+ "0xray",
13
+ "mill",
14
+ "inspect",
15
+ "codex",
16
+ "mcp",
17
+ "suit"
18
+ ],
19
+ "mcpServers": ".mcp.json"
20
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./features.schema.json",
3
- "version": "4.0.10",
3
+ "version": "4.0.11",
4
4
  "description": "0xRay Framework - Unified Feature Configuration",
5
5
  "suit_temperament": {
6
6
  "profile": "auto",
package/dist/CHANGELOG.md CHANGED
@@ -12,6 +12,8 @@ The format is based on [Conventional Commits](https://www.conventionalcommits.or
12
12
  - Pack → tmp suit proof: `npm run pack:tmp-proof` (and consumer smoke) installs the packed tgz, runs `foundry mint --skip-live`, plants factory hangar shops, and inspects without costume dump. Playwright n/a (mill CLI).
13
13
 
14
14
  ### 🐛 Bug Fixes
15
+ - **Grok marketplace pack** — `package.json` `files` includes `.grok-plugin/` so `npm pack` ships the mill-default Grok manifest (`package/.grok-plugin/plugin.json`). Consumers no longer receive only stale `.plugin/plugin.json`.
16
+ - **Grok marketplace manifest** — `.grok-plugin/plugin.json` matches `4.0.10`: `author` is an object, `mcpServers` is a flat path (not `components.mcpServers`), description is mill+inspect default wear (not a 45 knowledge-skills claim). Fixes `grok plugin validate`.
15
17
  - **Consumer install of packed `0xray`** — stop shipping `@0xray/repertoire` as `file:./vendor/@0xray/repertoire`. npm `--install-links`, pnpm, and yarn resolve that path from the **consumer** root (`ENOENT .../vendor/@0xray/repertoire/package.json`), not from `node_modules/0xray`. The organ stays in the tarball at `vendor/@0xray/repertoire/`; postinstall wears it into `node_modules/@0xray/repertoire`. Fresh `npm install 0xray` / `npm install 0xray-*.tgz` no longer needs a consumer-root `vendor/` tree. Mill plant (`mill`+`inspect`) unchanged.
16
18
 
17
19
  ### 🔧 Maintenance
@@ -42,6 +44,14 @@ The format is based on [Conventional Commits](https://www.conventionalcommits.or
42
44
 
43
45
  ---
44
46
 
47
+ ## [4.0.11] - 2026-09-12
48
+
49
+ npm pack now includes `.grok-plugin/` so the mill-default Grok marketplace manifest ships in the tarball (`package/.grok-plugin/plugin.json`). Published `0xray@4.0.10` omitted it — the `files` whitelist landed in #27 after that PUT. Not 5.0.0. This PR does not publish.
50
+
51
+ - fix(pack): ship .grok-plugin in npm files whitelist (5a65851cb)
52
+
53
+ ---
54
+
45
55
  ## [4.0.10] - 2026-09-12
46
56
 
47
57
  ### 🔄 Changes
@@ -3,6 +3,7 @@ import { frameworkLogger } from "../core/framework-logger.js";
3
3
  const DEFAULT_HERMES_PROVIDER = "xai-oauth";
4
4
  const DEFAULT_HERMES_MODEL = "grok-4.3";
5
5
  const DEFAULT_HERMES_TIMEOUT_MS = 120_000;
6
+ const UNIT_TEST_HERMES_TIMEOUT_MS = 2_000;
6
7
  const ROLE_PROMPTS = {
7
8
  "code-review": `You are a senior code reviewer on a governance committee for a software project. Analyze the following proposal from a code quality, maintainability, readability, and engineering best practices perspective.
8
9
 
@@ -47,12 +48,25 @@ function resolveHermesProvider() {
47
48
  function resolveHermesModel() {
48
49
  return process.env.HERMES_MODEL?.trim() || DEFAULT_HERMES_MODEL;
49
50
  }
51
+ function inUnitTestContext() {
52
+ return process.env.NODE_ENV === "test" || Boolean(process.env.VITEST);
53
+ }
54
+ /** Dead xai-oauth (invalid_grant) hangs hermes -z until DEFAULT_HERMES_TIMEOUT_MS. Unit/Vitest must not wait. */
55
+ function unitTestBlocksLiveHermes() {
56
+ if (process.env.XRAY_GOVERNANCE_ALLOW_HERMES === "true")
57
+ return false;
58
+ return inUnitTestContext();
59
+ }
50
60
  function resolveHermesTimeoutMs() {
51
61
  const raw = process.env.HERMES_TIMEOUT_MS?.trim();
52
- if (!raw)
53
- return DEFAULT_HERMES_TIMEOUT_MS;
54
- const parsed = Number(raw);
55
- return Number.isFinite(parsed) && parsed > 0 ? parsed : DEFAULT_HERMES_TIMEOUT_MS;
62
+ if (raw) {
63
+ const parsed = Number(raw);
64
+ if (Number.isFinite(parsed) && parsed > 0)
65
+ return parsed;
66
+ }
67
+ if (inUnitTestContext())
68
+ return UNIT_TEST_HERMES_TIMEOUT_MS;
69
+ return DEFAULT_HERMES_TIMEOUT_MS;
56
70
  }
57
71
  export function resolveHermesBin() {
58
72
  const explicit = process.env.HERMES_BIN?.trim();
@@ -84,6 +98,8 @@ function getConfig() {
84
98
  const direct = getDirectLlmConfig();
85
99
  if (direct)
86
100
  return direct;
101
+ if (unitTestBlocksLiveHermes())
102
+ return null;
87
103
  if (hermesCliAvailable()) {
88
104
  return {
89
105
  mode: "hermes",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xray-pre-tool",
3
- "version": "4.0.10",
3
+ "version": "4.0.11",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "0xRay constitution + temperament PreToolUse for OpenClaw",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "0xray",
3
- "version": "4.0.10",
3
+ "version": "4.0.11",
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",
@@ -79,7 +79,7 @@
79
79
  "test:processors": "npm test -- src/__tests__/unit/processor-activation.test.ts src/__tests__/unit/typescript-compilation-processor.test.ts",
80
80
  "test:miscellaneous": "npm test -- src/__tests__/unit/blocked-test.test.ts",
81
81
  "test:quick": "npm test -- src/__tests__/integration/boot-orchestrator.integration.test.ts src/__tests__/unit/config-loader.test.ts src/__tests__/unit/state-manager.test.ts",
82
- "test:comprehensive": "npm run typecheck && npm run test:unit && npm run test:core-framework && npm run test:security && npm run test:performance && npm run test:session-management && npm run test:code-analysis && npm run test:processors && npm run test:miscellaneous",
82
+ "test:comprehensive": "npm run typecheck && npm run test:unit && npm run test:core-framework && npm run test:security && npm run test:performance && npm run test:session-management && npm run test:code-analysis && npm run test:processors && npm run test:miscellaneous && npm test -- src/__tests__/unit/llm-governance-provider.test.ts src/__tests__/unit/mcp-server-smoke.test.ts",
83
83
  "test:integration-all": "npm test -- src/__tests__/integration/",
84
84
  "test:performance-all": "npm test -- src/__tests__/performance/ src/__tests__/unit/performance-system.test.ts src/__tests__/unit/benchmark.test.ts src/__tests__/unit/analytics.test.ts",
85
85
  "test:agents-all": "echo 'Legacy agents test entry retired'",
@@ -180,6 +180,7 @@
180
180
  "src/skills/",
181
181
  "src/mcps/",
182
182
  ".plugin/",
183
+ ".grok-plugin/",
183
184
  ".opencode/agents/",
184
185
  ".opencode/commands/",
185
186
  ".opencode/hooks/",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "xray-pre-tool",
3
- "version": "4.0.10",
3
+ "version": "4.0.11",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "0xRay constitution + temperament PreToolUse for OpenClaw",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./features.schema.json",
3
- "version": "4.0.10",
3
+ "version": "4.0.11",
4
4
  "description": "0xRay Framework - Unified Feature Configuration",
5
5
  "suit_temperament": {
6
6
  "profile": "auto",