0xray 3.1.0 → 3.1.1
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/.gitignore.default +59 -0
- package/.mcp.json +35 -0
- package/.opencode/codex.codex +1 -1
- package/.opencode/commands/dependency-audit.md +3 -3
- package/.opencode/commands/summary-logger.md +4 -4
- package/.opencode/enforcer-config.json +2 -2
- package/.opencode/hooks/post-commit +1 -1
- package/.opencode/init.sh +6 -0
- package/.plugin/plugin.json +11 -0
- package/AGENTS-consumer.md +46 -0
- package/AGENTS.md +8 -8
- package/LICENSE +1 -1
- package/README.md +8 -8
- package/SKILLS.md +140 -0
- package/dist/.gitignore.default +59 -0
- package/dist/AGENTS.md +8 -8
- package/dist/CHANGELOG.md +25 -0
- package/dist/LICENSE +1 -1
- package/dist/README.md +8 -8
- package/dist/SKILLS.md +140 -0
- package/dist/agents/index.js +3 -1
- package/dist/agents/registry.js +13 -0
- package/dist/analytics/routing-refiner.js +1 -1
- package/dist/architect/architectural-integrity.js +3 -3
- package/dist/benchmark/performance-benchmark.js +1 -2
- package/dist/cli/commands/antigravity-status.js +23 -23
- package/dist/cli/commands/credible-init.js +1 -1
- package/dist/cli/commands/hermes-install.js +8 -0
- package/dist/cli/commands/mcp-install.js +1 -1
- package/dist/cli/commands/openclaw-install.js +9 -0
- package/dist/cli/commands/opencode-install.js +22 -0
- package/dist/cli/commands/skill-install.js +39 -2
- package/dist/cli/commands/status.js +5 -0
- package/dist/cli/commands/storyteller.js +1 -1
- package/dist/cli/index.js +12 -6
- package/dist/core/activity-logger.js +4 -4
- package/dist/core/agent-spawn-gate.js +1 -1
- package/dist/core/boot-orchestrator.js +12 -13
- package/dist/core/bridge.mjs +4 -4
- package/dist/core/codex-formatter.js +1 -2
- package/dist/core/codex-injector.js +3 -3
- package/dist/core/config-loader.js +1 -2
- package/dist/core/config-paths.js +30 -23
- package/dist/core/context-loader.js +0 -3
- package/dist/core/features-config.js +1 -1
- package/dist/core/index.js +2 -2
- package/dist/core/logging-config.js +7 -7
- package/dist/core/orchestrator.js +1 -1
- package/dist/core/xray-activation.js +3 -4
- package/dist/delegation/agent-delegator.js +2 -2
- package/dist/enforcement/enforcer-tools.js +2 -2
- package/dist/enforcement/loaders/codex-loader.js +2 -2
- package/dist/execution/opencode-cli-invoker.js +1 -1
- package/dist/governance/governance-service.js +1 -1
- package/dist/governance/llm-governance-provider.js +14 -1
- package/dist/index.js +3 -5
- package/dist/inference/inference-cycle.js +11 -11
- package/dist/integrations/base/README.md +1 -1
- package/dist/integrations/enforcement-gate.js +2 -2
- package/dist/integrations/governance/index.js +1 -1
- package/dist/integrations/grok/grok-cli.js +20 -6
- package/dist/integrations/grok/hooks/pre-tool-use.js +3 -3
- package/dist/integrations/grok/plugin/0xray/.mcp.json +16 -4
- package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
- package/dist/integrations/hermes-agent/__init__.py +25 -14
- package/dist/integrations/hermes-agent/bridge.mjs +39 -4
- package/dist/integrations/hermes-agent/schemas.py +49 -0
- package/dist/integrations/hermes-agent/test_plugin.py +7 -7
- package/dist/integrations/hermes-agent/tools.py +107 -3
- package/dist/integrations/openclaw/README.md +6 -6
- package/dist/integrations/openclaw/config.js +1 -1
- package/dist/integrations/openclaw/index.js +2 -2
- package/dist/integrations/openclaw/types.js +3 -3
- package/dist/integrations/plugins/plugin-integration.js +1 -1
- package/dist/integrations/plugins/plugin-registry.js +1 -1
- package/dist/mcps/architect-tools.server.js +3 -2
- package/dist/mcps/auto-format.server.js +2 -2
- package/dist/mcps/boot-orchestrator.server.js +2 -2
- package/dist/mcps/config/config-loader.js +40 -9
- package/dist/mcps/enforcer-tools.server.js +2 -2
- package/dist/mcps/estimation.server.js +3 -2
- package/dist/mcps/framework-compliance-audit.server.js +2 -2
- package/dist/mcps/framework-help.server.js +3 -2
- package/dist/mcps/governance.server.js +8 -4
- package/dist/mcps/knowledge-skills/api-design.server.js +3 -2
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +3 -2
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +3 -3
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +2 -2
- package/dist/mcps/knowledge-skills/code-review.server.js +2 -2
- package/dist/mcps/knowledge-skills/content-creator.server.js +3 -3
- package/dist/mcps/knowledge-skills/database-design.server.js +2 -2
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +3 -2
- package/dist/mcps/knowledge-skills/git-workflow.server.js +3 -2
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +3 -3
- package/dist/mcps/knowledge-skills/log-monitor.server.js +3 -3
- package/dist/mcps/knowledge-skills/mobile-development.server.js +3 -3
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +3 -3
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +2 -2
- package/dist/mcps/knowledge-skills/project-analysis.server.js +2 -2
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +3 -2
- package/dist/mcps/knowledge-skills/security-audit.server.js +2 -2
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +3 -2
- package/dist/mcps/knowledge-skills/session-management.server.js +3 -2
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +105 -3
- package/dist/mcps/knowledge-skills/strategist.server.js +3 -3
- package/dist/mcps/knowledge-skills/tech-writer.server.js +3 -3
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +3 -2
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +2 -2
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +3 -2
- package/dist/mcps/lint.server.js +2 -2
- package/dist/mcps/model-health-check.server.js +3 -2
- package/dist/mcps/orchestrator/server.js +2 -1
- package/dist/mcps/orchestrator.server.js +2 -1
- package/dist/mcps/performance-analysis.server.js +2 -2
- package/dist/mcps/processor-pipeline.server.js +3 -2
- package/dist/mcps/registry.json +1 -1
- package/dist/mcps/researcher.server.js +2 -2
- package/dist/mcps/security-scan.server.js +2 -2
- package/dist/mcps/state-manager.server.js +5 -5
- package/dist/metrics/agent-metrics.js +1 -1
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +2 -2
- package/dist/orchestrator/intelligent-commit-batcher.js +0 -1
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +1 -1
- package/dist/orchestrator/orchestrator.js +1 -2
- package/dist/orchestrator/universal-registry-bridge.js +1 -1
- package/dist/postprocessor/PostProcessor.js +5 -5
- package/dist/postprocessor/services/RegressionAnalysisService.js +2 -2
- package/dist/postprocessor/triggers/GitHookTrigger.js +4 -4
- package/dist/processors/implementations/inference-improvement-processor.js +0 -1
- package/dist/processors/implementations/publish-preflight-processor.js +0 -1
- package/dist/processors/implementations/session-summary-processor.js +2 -2
- package/dist/processors/implementations/storytelling-trigger-processor.js +0 -1
- package/dist/public/about.html +6 -6
- package/dist/public/enterprise.html +1 -1
- package/dist/public/features.html +2 -2
- package/dist/public/index.html +4 -4
- package/dist/reporting/report-formatter.js +1 -1
- package/dist/scripts/activate-kernel-pipeline.js +2 -2
- package/dist/scripts/pre-command +1 -1
- package/dist/services/inference-tuner.js +1 -1
- package/dist/skills/api-design/SKILL.md +1 -1
- package/dist/skills/architect-tools/SKILL.md +1 -1
- package/dist/skills/architecture-patterns/SKILL.md +1 -1
- package/dist/skills/auto-format/SKILL.md +1 -1
- package/dist/skills/boot-orchestrator/SKILL.md +1 -1
- package/dist/skills/bug-triage/SKILL.md +1 -1
- package/dist/skills/code-analyzer/SKILL.md +1 -1
- package/dist/skills/code-review/SKILL.md +1 -1
- package/dist/skills/enforcer/SKILL.md +1 -1
- package/dist/skills/framework-compliance-audit/SKILL.md +1 -1
- package/dist/skills/git-workflow/SKILL.md +1 -1
- package/dist/skills/hermes-agent/SKILL.md +2 -2
- package/dist/skills/inference-improve/SKILL.md +1 -1
- package/dist/skills/lint/SKILL.md +1 -1
- package/dist/skills/log-monitor/SKILL.md +1 -1
- package/dist/skills/model-health-check/SKILL.md +1 -1
- package/dist/skills/multimodal-looker/SKILL.md +1 -1
- package/dist/skills/orchestrator/SKILL.md +1 -1
- package/dist/skills/performance-analysis/SKILL.md +1 -1
- package/dist/skills/performance-optimization/SKILL.md +1 -1
- package/dist/skills/processor-pipeline/SKILL.md +1 -1
- package/dist/skills/project-analysis/SKILL.md +1 -1
- package/dist/skills/refactoring-strategies/SKILL.md +1 -1
- package/dist/skills/registry.json +1 -1
- package/dist/skills/researcher/SKILL.md +1 -1
- package/dist/skills/security-audit/SKILL.md +1 -1
- package/dist/skills/security-scan/SKILL.md +1 -1
- package/dist/skills/session-management/SKILL.md +1 -1
- package/dist/skills/state-manager/SKILL.md +1 -1
- package/dist/skills/storyteller/SKILL.md +1 -1
- package/dist/skills/testing-best-practices/SKILL.md +1 -1
- package/dist/skills/testing-strategy/SKILL.md +1 -1
- package/dist/skills/ui-ux-design/SKILL.md +1 -1
- package/dist/state/index.js +0 -1
- package/dist/state/state-manager.js +1 -2
- package/dist/utils/import-resolver.js +1 -1
- package/dist/utils/path-resolver.js +2 -2
- package/package.json +10 -3
- package/scripts/hooks/pre-command +1 -1
- package/scripts/hooks/run-hook.js +2 -2
- package/scripts/node/auto-reflection-generator.mjs +30 -36
- package/scripts/node/govern-reflection.mjs +1 -1
- package/scripts/node/postinstall.cjs +37 -2
- package/scripts/node/setup-xai-oauth.mjs +244 -0
- package/scripts/node/universal-version-manager.js +8 -8
- package/scripts/node/version-manager.mjs +1 -1
- package/src/integrations/grok/plugin/0xray/.mcp.json +16 -4
- package/src/integrations/grok/plugin/0xray/hooks/hooks.json +2 -2
- package/src/mcps/architect-tools.server.ts +2 -2
- package/src/mcps/auto-format.server.ts +2 -2
- package/src/mcps/boot-orchestrator.server.ts +2 -2
- package/src/mcps/config/__tests__/config-loader.test.ts +29 -33
- package/src/mcps/config/config-loader.ts +50 -11
- package/src/mcps/enforcer-tools.server.ts +2 -2
- package/src/mcps/estimation.server.ts +3 -2
- package/src/mcps/framework-compliance-audit.server.ts +2 -2
- package/src/mcps/framework-help.server.ts +3 -2
- package/src/mcps/governance.server.ts +8 -3
- package/src/mcps/knowledge-skills/api-design.server.ts +3 -2
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +2 -2
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +2 -2
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +2 -2
- package/src/mcps/knowledge-skills/code-review.server.ts +2 -2
- package/src/mcps/knowledge-skills/content-creator.server.ts +3 -3
- package/src/mcps/knowledge-skills/database-design.server.ts +2 -2
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +3 -2
- package/src/mcps/knowledge-skills/git-workflow.server.ts +3 -2
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +3 -3
- package/src/mcps/knowledge-skills/log-monitor.server.ts +3 -3
- package/src/mcps/knowledge-skills/mobile-development.server.ts +3 -3
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +3 -3
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +2 -2
- package/src/mcps/knowledge-skills/project-analysis.server.ts +2 -2
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +3 -2
- package/src/mcps/knowledge-skills/security-audit.server.ts +2 -2
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +3 -2
- package/src/mcps/knowledge-skills/session-management.server.ts +3 -2
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +113 -3
- package/src/mcps/knowledge-skills/strategist.server.ts +3 -3
- package/src/mcps/knowledge-skills/tech-writer.server.ts +3 -3
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +3 -2
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +2 -2
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +3 -2
- package/src/mcps/lint.server.ts +2 -2
- package/src/mcps/model-health-check.server.ts +2 -2
- package/src/mcps/orchestrator/server.ts +2 -1
- package/src/mcps/orchestrator.server.ts +2 -1
- package/src/mcps/performance-analysis.server.ts +2 -2
- package/src/mcps/processor-pipeline.server.ts +3 -2
- package/src/mcps/registry.json +1 -1
- package/src/mcps/researcher.server.ts +2 -2
- package/src/mcps/security-scan.server.ts +2 -2
- package/src/mcps/state-manager.server.ts +5 -5
- package/src/opencode/codex.codex +1 -1
- package/src/opencode/commands/dependency-audit.md +3 -3
- package/src/opencode/commands/summary-logger.md +4 -4
- package/src/opencode/enforcer-config.json +2 -2
- package/src/skills/api-design/SKILL.md +1 -1
- package/src/skills/architect-tools/SKILL.md +1 -1
- package/src/skills/architecture-patterns/SKILL.md +1 -1
- package/src/skills/auto-format/SKILL.md +1 -1
- package/src/skills/boot-orchestrator/SKILL.md +1 -1
- package/src/skills/bug-triage/SKILL.md +1 -1
- package/src/skills/code-analyzer/SKILL.md +1 -1
- package/src/skills/code-review/SKILL.md +1 -1
- package/src/skills/enforcer/SKILL.md +1 -1
- package/src/skills/framework-compliance-audit/SKILL.md +1 -1
- package/src/skills/git-workflow/SKILL.md +1 -1
- package/src/skills/hermes-agent/SKILL.md +2 -2
- package/src/skills/inference-improve/SKILL.md +1 -1
- package/src/skills/lint/SKILL.md +1 -1
- package/src/skills/log-monitor/SKILL.md +1 -1
- package/src/skills/model-health-check/SKILL.md +1 -1
- package/src/skills/multimodal-looker/SKILL.md +1 -1
- package/src/skills/orchestrator/SKILL.md +1 -1
- package/src/skills/performance-analysis/SKILL.md +1 -1
- package/src/skills/performance-optimization/SKILL.md +1 -1
- package/src/skills/processor-pipeline/SKILL.md +1 -1
- package/src/skills/project-analysis/SKILL.md +1 -1
- package/src/skills/refactoring-strategies/SKILL.md +1 -1
- package/src/skills/registry.json +1 -1
- package/src/skills/researcher/SKILL.md +1 -1
- package/src/skills/security-audit/SKILL.md +1 -1
- package/src/skills/security-scan/SKILL.md +1 -1
- package/src/skills/session-management/SKILL.md +1 -1
- package/src/skills/state-manager/SKILL.md +1 -1
- package/src/skills/storyteller/SKILL.md +1 -1
- package/src/skills/testing-best-practices/SKILL.md +1 -1
- package/src/skills/testing-strategy/SKILL.md +1 -1
- package/src/skills/ui-ux-design/SKILL.md +1 -1
- package/xray/agents_template.md +46 -0
- package/xray/codex.json +598 -0
- package/dist/plugin/xray-codex-injection.js +0 -857
- /package/dist/integrations/openclaw/hooks/{strray-hooks.js → xray-hooks.js} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
source: framework
|
|
3
3
|
name: multimodal-looker
|
|
4
4
|
description: Visual content analysis for diagrams, screenshots, and UI mockups
|
|
5
|
-
author:
|
|
5
|
+
author: Xray Framework
|
|
6
6
|
version: 1.0.0
|
|
7
7
|
schema_version: "1.0"
|
|
8
8
|
tags: [visual, diagrams, screenshots, accessibility, ui-analysis]
|
|
@@ -96,7 +96,7 @@ codex_terms: [5, 7, 32] # Related Codex term numbers
|
|
|
96
96
|
```markdown
|
|
97
97
|
## What Next?
|
|
98
98
|
|
|
99
|
-
- Related Codex terms: [codex.json](
|
|
99
|
+
- Related Codex terms: [codex.json](../../../../.xray/codex.json)
|
|
100
100
|
- Next story to write: [suggestion]
|
|
101
101
|
```
|
|
102
102
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
source: framework
|
|
3
3
|
name: ui-ux-design
|
|
4
4
|
description: User interface and user experience design with mobile-first approach, cognitive simplicity, and accessibility-first principles
|
|
5
|
-
author:
|
|
5
|
+
author: Xray Framework
|
|
6
6
|
version: 2.1.0
|
|
7
7
|
schema_version: "1.0"
|
|
8
8
|
tags: [design, ui, ux, accessibility, mobile-first, visual-hierarchy, wcag, contrast, color-theory, dont-make-me-think]
|
package/dist/state/index.js
CHANGED
|
@@ -204,5 +204,4 @@ export class XrayStateManager {
|
|
|
204
204
|
return conflict.value2; // Prefer the second value as newer
|
|
205
205
|
}
|
|
206
206
|
}
|
|
207
|
-
// Export alias for scripts expecting
|
|
208
|
-
export { XrayStateManager as StringRayStateManager };
|
|
207
|
+
// Export alias for scripts expecting XrayStateManager
|
|
@@ -77,7 +77,7 @@ export class ImportResolver {
|
|
|
77
77
|
detectInstalled() {
|
|
78
78
|
return (this.currentDir.includes("/node_modules/") ||
|
|
79
79
|
this.currentDir.includes("\\node_modules\\") ||
|
|
80
|
-
(this.currentDir.includes("
|
|
80
|
+
(this.currentDir.includes("xray") &&
|
|
81
81
|
!this.currentDir.includes(this.projectRoot)));
|
|
82
82
|
}
|
|
83
83
|
detectTesting() {
|
|
@@ -52,7 +52,7 @@ export class PathResolver {
|
|
|
52
52
|
detectBuilt() {
|
|
53
53
|
return (this.currentDir.includes("/dist/") ||
|
|
54
54
|
this.currentDir.includes("\\dist\\") ||
|
|
55
|
-
(this.currentDir.includes("
|
|
55
|
+
(this.currentDir.includes("xray") && !this.detectDevelopment()));
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
58
|
* Detect if we're running in installed package environment
|
|
@@ -60,7 +60,7 @@ export class PathResolver {
|
|
|
60
60
|
detectInstalled() {
|
|
61
61
|
return (this.currentDir.includes("/node_modules/") ||
|
|
62
62
|
this.currentDir.includes("\\node_modules\\") ||
|
|
63
|
-
(this.currentDir.includes("
|
|
63
|
+
(this.currentDir.includes("xray") && this.detectBuilt()));
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Resolve agent import path for current environment
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "0xray",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.1",
|
|
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",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"version:bump": "node scripts/node/version-manager.mjs",
|
|
61
61
|
"version": "node scripts/node/version-manager.mjs",
|
|
62
62
|
"prebuild": "rm -rf dist tsconfig.tsbuildinfo tsconfig.*.tsbuildinfo",
|
|
63
|
-
"build": "tsc && mkdir -p dist/public dist/scripts && cp -r public/* dist/public/ && cp scripts/hooks/pre-command dist/scripts/ && cp scripts/hooks/pre-command.mjs dist/scripts/ && cp README.md AGENTS.md CHANGELOG.md LICENSE dist/ && find src -name '*.mjs' ! -path '*/__tests__/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done && for dir in skills integrations mcps; do find src/$dir -type f ! -name '*.ts' ! -path '*/.pytest_cache/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done; done && mkdir -p dist/plugin && (find dist/plugin -name '*codex-injection*.js' -exec cp {} dist/plugin/xray-codex-injection.js \\; 2>/dev/null || true) && cp -r src/opencode/ .opencode/ &&
|
|
63
|
+
"build": "tsc && mkdir -p dist/public dist/scripts && cp -r public/* dist/public/ && cp scripts/hooks/pre-command dist/scripts/ && cp scripts/hooks/pre-command.mjs dist/scripts/ && cp README.md AGENTS.md SKILLS.md CHANGELOG.md LICENSE .gitignore.default dist/ && find src -name '*.mjs' ! -path '*/__tests__/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done && for dir in skills integrations mcps; do find src/$dir -type f ! -name '*.ts' ! -path '*/.pytest_cache/*' | while read f; do tgt=\"dist/${f#src/}\"; mkdir -p \"$(dirname $tgt)\"; cp \"$f\" \"$tgt\"; done; done && mkdir -p dist/plugin && (find dist/plugin -name '*codex-injection*.js' -exec cp {} dist/plugin/xray-codex-injection.js \\; 2>/dev/null || true) && cp -r src/opencode/ .opencode/ && mkdir -p .xray && cp xray/codex.json .xray/codex.json 2>/dev/null || true",
|
|
64
64
|
"build:all": "npm run build",
|
|
65
65
|
"ci-install": "npm ci",
|
|
66
66
|
"clean": "rm -rf dist tsconfig.tsbuildinfo tsconfig.*.tsbuildinfo",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"test:e2e": "node scripts/node/validate-mcp-connectivity.js && node scripts/node/validate-external-processes.js",
|
|
97
97
|
"validate": "echo \"[xray] Use 'npm test' or 'npm run test:comprehensive'.\"",
|
|
98
98
|
"validate:quick": "npm run validate",
|
|
99
|
-
"debug:inference:force": "
|
|
99
|
+
"debug:inference:force": "XRAY_FORCE_MCP_GOVERNANCE=true XRAY_DEV_PATH=dist node dist/cli/index.js inference:run --force",
|
|
100
100
|
"validate:full": "npm run validate",
|
|
101
101
|
"test:unified": "node scripts/test/test-unified-framework.mjs",
|
|
102
102
|
"test:consumer": "node scripts/test/test-consumer-readiness.cjs",
|
|
@@ -138,6 +138,7 @@
|
|
|
138
138
|
"src/integrations/grok/plugin/0xray/",
|
|
139
139
|
"src/skills/",
|
|
140
140
|
"src/mcps/",
|
|
141
|
+
".plugin/",
|
|
141
142
|
".opencode/agents/",
|
|
142
143
|
".opencode/commands/",
|
|
143
144
|
".opencode/hooks/",
|
|
@@ -148,7 +149,13 @@
|
|
|
148
149
|
".opencode/enforcer-config.json",
|
|
149
150
|
"opencode.json",
|
|
150
151
|
"README.md",
|
|
152
|
+
".mcp.json",
|
|
151
153
|
"AGENTS.md",
|
|
154
|
+
"AGENTS-consumer.md",
|
|
155
|
+
"SKILLS.md",
|
|
156
|
+
"xray/agents_template.md",
|
|
157
|
+
"xray/codex.json",
|
|
158
|
+
".gitignore.default",
|
|
152
159
|
"LICENSE"
|
|
153
160
|
],
|
|
154
161
|
"dependencies": {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* 0xRay Git Hook Runner
|
|
5
5
|
*
|
|
6
6
|
* Called by git hooks (pre-commit, post-commit, pre-push, post-push)
|
|
7
7
|
* to perform validation, logging, and monitoring.
|
|
@@ -565,6 +565,6 @@ handler()
|
|
|
565
565
|
})
|
|
566
566
|
.catch((err) => {
|
|
567
567
|
logError(`Hook crashed: ${err.message}`);
|
|
568
|
-
console.error(`
|
|
568
|
+
console.error(`0xRay hook error: ${err.message}`);
|
|
569
569
|
process.exit(1);
|
|
570
570
|
});
|
|
@@ -107,47 +107,41 @@ function getChangedFiles(count = 20) {
|
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
function loadConfig() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
mode: "minimal",
|
|
128
|
-
triggers: {
|
|
129
|
-
commit_threshold: {
|
|
130
|
-
enabled: triggers.commit_count?.enabled ?? true,
|
|
131
|
-
threshold: triggers.commit_count?.threshold ?? 10,
|
|
132
|
-
},
|
|
133
|
-
time_threshold: {
|
|
134
|
-
enabled: true,
|
|
135
|
-
days: 7,
|
|
136
|
-
},
|
|
110
|
+
const configPath = join(process.cwd(), ".xray", "features.json");
|
|
111
|
+
|
|
112
|
+
if (existsSync(configPath)) {
|
|
113
|
+
try {
|
|
114
|
+
const content = readFileSync(configPath, "utf-8");
|
|
115
|
+
const parsed = JSON.parse(content);
|
|
116
|
+
if (parsed.auto_reflection) {
|
|
117
|
+
return parsed.auto_reflection;
|
|
118
|
+
}
|
|
119
|
+
if (parsed.storytelling?.reflection_triggers) {
|
|
120
|
+
const triggers = parsed.storytelling.reflection_triggers;
|
|
121
|
+
return {
|
|
122
|
+
mode: "minimal",
|
|
123
|
+
triggers: {
|
|
124
|
+
commit_threshold: {
|
|
125
|
+
enabled: triggers.commit_count?.enabled ?? true,
|
|
126
|
+
threshold: triggers.commit_count?.threshold ?? 10,
|
|
137
127
|
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
off: { commit_threshold: 999, days_threshold: 365 },
|
|
128
|
+
time_threshold: {
|
|
129
|
+
enabled: true,
|
|
130
|
+
days: 7,
|
|
142
131
|
},
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
132
|
+
},
|
|
133
|
+
thresholds: {
|
|
134
|
+
full: { commit_threshold: 10, days_threshold: 5 },
|
|
135
|
+
minimal: { commit_threshold: 25, days_threshold: 14 },
|
|
136
|
+
off: { commit_threshold: 999, days_threshold: 365 },
|
|
137
|
+
},
|
|
138
|
+
};
|
|
147
139
|
}
|
|
140
|
+
} catch {
|
|
141
|
+
// ignore
|
|
148
142
|
}
|
|
149
143
|
}
|
|
150
|
-
|
|
144
|
+
|
|
151
145
|
// Default config
|
|
152
146
|
return {
|
|
153
147
|
mode: "minimal",
|
|
@@ -147,7 +147,7 @@ async function main() {
|
|
|
147
147
|
console.log(` Duration: ${(result.duration / 1000).toFixed(1)}s`);
|
|
148
148
|
console.log("═══════════════════════════════════════\n");
|
|
149
149
|
|
|
150
|
-
// v2 path under logs/ (fwLogger discipline) + .
|
|
150
|
+
// v2 path under logs/ (fwLogger discipline) + .xray/
|
|
151
151
|
const outputPath = path.join(process.cwd(), "logs", "framework", "governance-result.json");
|
|
152
152
|
fs.mkdirSync(path.dirname(outputPath), { recursive: true });
|
|
153
153
|
fs.writeFileSync(outputPath, JSON.stringify(result, null, 2));
|
|
@@ -34,6 +34,41 @@ if (fs.existsSync(agentsConsumer) && resolvedPackage !== resolvedTarget) {
|
|
|
34
34
|
fs.copyFileSync(agentsConsumer, agentsDest);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
// Copy .gitignore.default → .gitignore (never overwrite existing)
|
|
38
|
+
const gitignoreSource = path.join(packageRoot, ".gitignore.default");
|
|
39
|
+
const gitignoreDest = path.join(targetDir, ".gitignore");
|
|
40
|
+
if (!fs.existsSync(gitignoreDest) && resolvedPackage !== resolvedTarget) {
|
|
41
|
+
fs.copyFileSync(gitignoreSource, gitignoreDest);
|
|
42
|
+
structuredLog('postinstall', 'Created .gitignore from template', 'info');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Sync core skills from dist/ → .opencode/skills/
|
|
46
|
+
const skillsSource = path.join(packageRoot, 'dist', 'skills');
|
|
47
|
+
const skillsDest = path.join(targetDir, '.opencode', 'skills');
|
|
48
|
+
if (fs.existsSync(skillsSource) && resolvedPackage !== resolvedTarget) {
|
|
49
|
+
try {
|
|
50
|
+
if (!fs.existsSync(skillsDest)) fs.mkdirSync(skillsDest, { recursive: true });
|
|
51
|
+
const skillDirs = fs.readdirSync(skillsSource, { withFileTypes: true });
|
|
52
|
+
let copied = 0, skipped = 0;
|
|
53
|
+
for (const entry of skillDirs) {
|
|
54
|
+
if (!entry.isDirectory()) continue;
|
|
55
|
+
const skillMd = path.join(skillsSource, entry.name, 'SKILL.md');
|
|
56
|
+
if (!fs.existsSync(skillMd)) continue;
|
|
57
|
+
const destMd = path.join(skillsDest, entry.name, 'SKILL.md');
|
|
58
|
+
const destDir = path.dirname(destMd);
|
|
59
|
+
if (!fs.existsSync(destDir)) fs.mkdirSync(destDir, { recursive: true });
|
|
60
|
+
if (fs.existsSync(destMd)) {
|
|
61
|
+
if (fs.statSync(skillMd).mtime <= fs.statSync(destMd).mtime) continue;
|
|
62
|
+
}
|
|
63
|
+
fs.copyFileSync(skillMd, destMd);
|
|
64
|
+
copied++;
|
|
65
|
+
}
|
|
66
|
+
if (copied > 0) structuredLog('postinstall', `Skills: ${copied} installed to .opencode/skills/`, 'info');
|
|
67
|
+
} catch (e) {
|
|
68
|
+
structuredLog('postinstall', `Skills sync skipped: ${e.message}`, 'warn');
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
37
72
|
// Register MCP servers with Grok CLI (if available) using absolute paths to installed dist
|
|
38
73
|
// Full v2 surface: governance + skills + orchestrator + enforcer (additive, preserves prior behavior)
|
|
39
74
|
if (resolvedPackage !== resolvedTarget) {
|
|
@@ -41,12 +76,12 @@ if (resolvedPackage !== resolvedTarget) {
|
|
|
41
76
|
execSync('which grok', { stdio: 'ignore' });
|
|
42
77
|
const govServer = path.join(packageRoot, 'dist/mcps/governance.server.js');
|
|
43
78
|
const skillsServer = path.join(packageRoot, 'dist/mcps/knowledge-skills/skill-invocation.server.js');
|
|
44
|
-
const orchServer = path.join(packageRoot, 'dist/mcps/orchestrator
|
|
79
|
+
const orchServer = path.join(packageRoot, 'dist/mcps/orchestrator.server.js');
|
|
45
80
|
const enforcerServer = path.join(packageRoot, 'dist/mcps/enforcer-tools.server.js');
|
|
46
81
|
const xrayRoot = targetDir;
|
|
47
82
|
|
|
48
83
|
execSync(
|
|
49
|
-
`grok mcp add xray-governance --command node --args "${govServer}" --env "
|
|
84
|
+
`grok mcp add xray-governance --command node --args "${govServer}" --env "XRAY_FORCE_MCP_GOVERNANCE=true" --env "XRAY_ROOT=${xrayRoot}"`,
|
|
50
85
|
{ stdio: 'pipe' }
|
|
51
86
|
);
|
|
52
87
|
structuredLog('postinstall', 'Registered xray-governance with Grok CLI', 'info');
|