0xray 4.0.11 → 4.0.12
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/.grok-plugin/plugin.json +1 -1
- package/.xray/features.json +1 -1
- package/AGENTS-consumer.md +1 -1
- package/AGENTS.md +1 -1
- package/README.md +2 -2
- package/SKILLS.md +1 -1
- package/dist/AGENTS.md +1 -1
- package/dist/CHANGELOG.md +9 -0
- package/dist/README.md +2 -2
- package/dist/SKILLS.md +1 -1
- package/dist/integrations/grok/grok-cli.d.ts +3 -0
- package/dist/integrations/grok/grok-cli.js +79 -73
- package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/llms.txt +1 -1
- package/package.json +1 -1
- package/scripts/foundry/CHANGELOG.md +1 -1
- package/scripts/foundry/README.md +2 -2
- package/scripts/foundry/inspect.mjs +22 -6
- package/scripts/foundry/mint-suit.cjs +24 -0
- package/scripts/foundry/plant/skills/inspect/SKILL.md +1 -1
- package/scripts/node/install-bridges.cjs +39 -24
- package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
- package/xray/features.json +1 -1
- package/.opencode/agents/api-design.yml +0 -31
- package/.opencode/agents/architect.yml +0 -15
- package/.opencode/agents/architecture-patterns.yml +0 -14
- package/.opencode/agents/auto-format.yml +0 -14
- package/.opencode/agents/backend-engineer.yml +0 -12
- package/.opencode/agents/boot-orchestrator.yml +0 -14
- package/.opencode/agents/bug-triage-specialist.yml +0 -15
- package/.opencode/agents/code-analyzer.yml +0 -12
- package/.opencode/agents/code-reviewer.yml +0 -14
- package/.opencode/agents/content-creator.yml +0 -12
- package/.opencode/agents/database-engineer.yml +0 -12
- package/.opencode/agents/devops-engineer.yml +0 -12
- package/.opencode/agents/framework-compliance-audit.yml +0 -14
- package/.opencode/agents/frontend-engineer.yml +0 -12
- package/.opencode/agents/frontend-ui-ux-engineer.yml +0 -12
- package/.opencode/agents/git-workflow.yml +0 -15
- package/.opencode/agents/growth-strategist.yml +0 -12
- package/.opencode/agents/hermes-agent.yml +0 -12
- package/.opencode/agents/inference-improve.yml +0 -12
- package/.opencode/agents/lint.yml +0 -14
- package/.opencode/agents/log-monitor.yml +0 -12
- package/.opencode/agents/mobile-developer.yml +0 -12
- package/.opencode/agents/model-health-check.yml +0 -12
- package/.opencode/agents/multimodal-looker.yml +0 -12
- package/.opencode/agents/performance-analysis.yml +0 -12
- package/.opencode/agents/performance-engineer.yml +0 -12
- package/.opencode/agents/performance-optimization.yml +0 -12
- package/.opencode/agents/processor-pipeline.yml +0 -14
- package/.opencode/agents/project-analysis.yml +0 -12
- package/.opencode/agents/refactorer.yml +0 -12
- package/.opencode/agents/researcher.yml +0 -12
- package/.opencode/agents/security-auditor.yml +0 -12
- package/.opencode/agents/security-scan.yml +0 -12
- package/.opencode/agents/seo-consultant.yml +0 -12
- package/.opencode/agents/session-management.yml +0 -12
- package/.opencode/agents/state-manager.yml +0 -12
- package/.opencode/agents/storyteller.yml +0 -12
- package/.opencode/agents/strategist.yml +0 -12
- package/.opencode/agents/tech-writer.yml +0 -12
- package/.opencode/agents/testing-best-practices.yml +0 -12
- package/.opencode/agents/testing-lead.yml +0 -12
- package/.opencode/agents/ui-ux-design.yml +0 -12
- package/.opencode/codex.codex +0 -8
- package/.opencode/commands/auto-format.md +0 -99
- package/.opencode/commands/auto-summary-capture.md +0 -90
- package/.opencode/commands/dependency-audit.md +0 -184
- package/.opencode/commands/enforcer-daily-scan.md +0 -137
- package/.opencode/commands/framework-compliance-audit.md +0 -205
- package/.opencode/commands/interactive-validator.md +0 -75
- package/.opencode/commands/job-summary-logger.md +0 -68
- package/.opencode/commands/lint.md +0 -11
- package/.opencode/commands/mode-switch.md +0 -95
- package/.opencode/commands/model-health-check.md +0 -186
- package/.opencode/commands/performance-analysis.md +0 -144
- package/.opencode/commands/pre-commit-introspection.md +0 -185
- package/.opencode/commands/pre-commit-introspection.sh +0 -133
- package/.opencode/commands/security-scan.md +0 -157
- package/.opencode/commands/sisyphus-validation.md +0 -128
- package/.opencode/commands/summary-logger.md +0 -83
- package/.opencode/enforcer-config.json +0 -282
- package/.opencode/workflows/post-deployment-audit.yml +0 -123
|
@@ -6,9 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
const fs = require("fs");
|
|
8
8
|
const path = require("path");
|
|
9
|
-
const os = require("os");
|
|
10
9
|
const { execSync } = require("child_process");
|
|
11
|
-
const {
|
|
10
|
+
const {
|
|
11
|
+
wantsCostume,
|
|
12
|
+
isIsolatedHome,
|
|
13
|
+
machineHome,
|
|
14
|
+
processHome,
|
|
15
|
+
resolveGrokPluginDests,
|
|
16
|
+
wouldClobberMachineGrok,
|
|
17
|
+
} = require("../foundry/mint-suit.cjs");
|
|
12
18
|
const { wearVendoredRepertoire } = require("./wear-vendored-repertoire.cjs");
|
|
13
19
|
const {
|
|
14
20
|
wireHermesBridge,
|
|
@@ -351,7 +357,7 @@ function findGrokPluginSource(packageRoot) {
|
|
|
351
357
|
return candidates.find((p) => fs.existsSync(p));
|
|
352
358
|
}
|
|
353
359
|
|
|
354
|
-
function registerGrokMcpServers(targetDir, log) {
|
|
360
|
+
function registerGrokMcpServers(targetDir, log, pluginDirs) {
|
|
355
361
|
try {
|
|
356
362
|
execSync("which grok", { stdio: "ignore" });
|
|
357
363
|
} catch {
|
|
@@ -375,10 +381,11 @@ function registerGrokMcpServers(targetDir, log) {
|
|
|
375
381
|
}
|
|
376
382
|
}
|
|
377
383
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
384
|
+
const dirs =
|
|
385
|
+
Array.isArray(pluginDirs) && pluginDirs.length > 0
|
|
386
|
+
? pluginDirs
|
|
387
|
+
: [path.join(targetDir, ".grok", "plugins", "0xray")];
|
|
388
|
+
for (const pluginDir of dirs) {
|
|
382
389
|
if (!fs.existsSync(pluginDir)) continue;
|
|
383
390
|
try {
|
|
384
391
|
execSync(`grok plugins trust "${pluginDir}"`, { stdio: "ignore" });
|
|
@@ -390,30 +397,35 @@ function registerGrokMcpServers(targetDir, log) {
|
|
|
390
397
|
}
|
|
391
398
|
}
|
|
392
399
|
|
|
393
|
-
function installGrokBridge(targetDir, packageRoot, log) {
|
|
400
|
+
function installGrokBridge(targetDir, packageRoot, log, opts) {
|
|
394
401
|
const sourceDir = findGrokPluginSource(packageRoot);
|
|
395
402
|
if (!sourceDir) {
|
|
396
403
|
log("grok-bridge", "skipped", "warn", { reason: "grok plugin source missing" });
|
|
397
404
|
return;
|
|
398
405
|
}
|
|
399
406
|
|
|
400
|
-
const
|
|
407
|
+
const env = (opts && opts.env) || process.env;
|
|
408
|
+
const machine = (opts && opts.machineHome) || machineHome();
|
|
401
409
|
const ephemeral = isEphemeralInstallRoot(targetDir);
|
|
402
|
-
const isolated = isIsolatedHome();
|
|
403
|
-
const targets =
|
|
404
|
-
|
|
405
|
-
|
|
410
|
+
const isolated = isIsolatedHome(env, machine);
|
|
411
|
+
const targets = resolveGrokPluginDests(targetDir, env, machine);
|
|
412
|
+
|
|
413
|
+
if (ephemeral) {
|
|
414
|
+
log("grok-bridge", "skip machine ~/.grok plugin — ephemeral consumer", "info");
|
|
415
|
+
} else if (isolated) {
|
|
416
|
+
log("grok-bridge", "skip machine ~/.grok plugin — isolated HOME", "info");
|
|
406
417
|
} else {
|
|
407
|
-
log(
|
|
408
|
-
"grok-bridge",
|
|
409
|
-
isolated
|
|
410
|
-
? "skip machine ~/.grok plugin — isolated HOME"
|
|
411
|
-
: "skip machine ~/.grok plugin — ephemeral consumer",
|
|
412
|
-
"info",
|
|
413
|
-
);
|
|
418
|
+
log("grok-bridge", "skip machine ~/.grok plugin — project-scoped wear", "info");
|
|
414
419
|
}
|
|
415
420
|
|
|
416
421
|
for (const dest of targets) {
|
|
422
|
+
if (wouldClobberMachineGrok(dest, env, machine)) {
|
|
423
|
+
log("grok-bridge", "refuse-machine-grok-clobber", "error", {
|
|
424
|
+
dest,
|
|
425
|
+
machinePlugin: path.join(machine, ".grok", "plugins", "0xray"),
|
|
426
|
+
});
|
|
427
|
+
continue;
|
|
428
|
+
}
|
|
417
429
|
if (copyPluginDir(sourceDir, dest)) {
|
|
418
430
|
const rel = dest.startsWith(machine) ? dest.replace(machine, "~") : path.relative(targetDir, dest);
|
|
419
431
|
log("grok-bridge", "plugin copied", "info", { path: rel || dest });
|
|
@@ -424,13 +436,14 @@ function installGrokBridge(targetDir, packageRoot, log) {
|
|
|
424
436
|
}
|
|
425
437
|
}
|
|
426
438
|
|
|
427
|
-
if (
|
|
428
|
-
const
|
|
439
|
+
if (isolated && !ephemeral) {
|
|
440
|
+
const home = processHome(env);
|
|
441
|
+
const grokGlobalSkills = path.join(home, ".grok", "skills");
|
|
429
442
|
const globalCopied = syncCostumeSkills(grokGlobalSkills, packageRoot, targetDir);
|
|
430
443
|
if (globalCopied > 0) {
|
|
431
|
-
log("grok-bridge", `global skills synced (${globalCopied})`, "info", { path:
|
|
444
|
+
log("grok-bridge", `global skills synced (${globalCopied})`, "info", { path: grokGlobalSkills });
|
|
432
445
|
}
|
|
433
|
-
registerGrokMcpServers(targetDir, log);
|
|
446
|
+
registerGrokMcpServers(targetDir, log, targets);
|
|
434
447
|
}
|
|
435
448
|
}
|
|
436
449
|
|
|
@@ -767,6 +780,8 @@ function installAllBridges(opts) {
|
|
|
767
780
|
|
|
768
781
|
module.exports = {
|
|
769
782
|
installAllBridges,
|
|
783
|
+
installGrokBridge,
|
|
784
|
+
resolveGrokPluginDests,
|
|
770
785
|
resolveConsumerTargetDir,
|
|
771
786
|
isInstallPrefixTarget,
|
|
772
787
|
syncBuiltinSkills,
|
package/xray/features.json
CHANGED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
name: api-design
|
|
2
|
-
skill: api-design
|
|
3
|
-
description: "RESTful API design and validation specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
# CODEX COMPLIANCE
|
|
8
|
-
# - Term 12: No Code Without Tests - all API endpoints require test coverage
|
|
9
|
-
# - Term 17: Type Safety Required - use TypeScript interfaces for all data contracts
|
|
10
|
-
|
|
11
|
-
# Core Capabilities
|
|
12
|
-
capabilities:
|
|
13
|
-
- rest_api_design
|
|
14
|
-
- graphql_api_design
|
|
15
|
-
- api_validation
|
|
16
|
-
- openapi_spec_generation
|
|
17
|
-
- api_documentation
|
|
18
|
-
|
|
19
|
-
# State Management
|
|
20
|
-
state_management:
|
|
21
|
-
enabled: true
|
|
22
|
-
namespaces:
|
|
23
|
-
- api_specs
|
|
24
|
-
- endpoint_contracts
|
|
25
|
-
- validation_rules
|
|
26
|
-
|
|
27
|
-
# Quality Requirements
|
|
28
|
-
quality:
|
|
29
|
-
test_coverage: required
|
|
30
|
-
type_safety: strict
|
|
31
|
-
documentation: required
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
name: architect
|
|
2
|
-
skill: architect-tools
|
|
3
|
-
description: "System design and technical architecture tools specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- system_design
|
|
9
|
-
- architecture_analysis
|
|
10
|
-
- technical_documentation
|
|
11
|
-
- pattern_selection
|
|
12
|
-
|
|
13
|
-
quality:
|
|
14
|
-
test_coverage: recommended
|
|
15
|
-
type_safety: strict
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: architecture-patterns
|
|
2
|
-
skill: architecture-patterns
|
|
3
|
-
description: "Software architecture patterns and best practices specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- pattern_analysis
|
|
9
|
-
- architecture_review
|
|
10
|
-
- design_evaluation
|
|
11
|
-
|
|
12
|
-
quality:
|
|
13
|
-
test_coverage: recommended
|
|
14
|
-
type_safety: strict
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: auto-format
|
|
2
|
-
skill: auto-format
|
|
3
|
-
description: "Automated code formatting and style consistency specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- code_formatting
|
|
9
|
-
- style_enforcement
|
|
10
|
-
- lint_integration
|
|
11
|
-
|
|
12
|
-
quality:
|
|
13
|
-
test_coverage: recommended
|
|
14
|
-
type_safety: strict
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: boot-orchestrator
|
|
2
|
-
skill: boot-orchestrator
|
|
3
|
-
description: "Framework initialization and boot orchestration specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- framework_boot
|
|
9
|
-
- processor_initialization
|
|
10
|
-
- system_startup
|
|
11
|
-
|
|
12
|
-
quality:
|
|
13
|
-
test_coverage: required
|
|
14
|
-
type_safety: strict
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
name: bug-triage-specialist
|
|
2
|
-
skill: bug-triage
|
|
3
|
-
description: "Bug triage, debugging analysis, and issue prioritization specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- bug_analysis
|
|
9
|
-
- debugging
|
|
10
|
-
- issue_prioritization
|
|
11
|
-
- root_cause_analysis
|
|
12
|
-
|
|
13
|
-
quality:
|
|
14
|
-
test_coverage: required
|
|
15
|
-
type_safety: strict
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: code-reviewer
|
|
2
|
-
skill: code-review
|
|
3
|
-
description: "Comprehensive code quality assessment and improvement suggestions specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- code_review
|
|
9
|
-
- quality_assessment
|
|
10
|
-
- improvement_suggestions
|
|
11
|
-
|
|
12
|
-
quality:
|
|
13
|
-
test_coverage: required
|
|
14
|
-
type_safety: strict
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: framework-compliance-audit
|
|
2
|
-
skill: framework-compliance-audit
|
|
3
|
-
description: "Framework compliance auditing and validation specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- compliance_audit
|
|
9
|
-
- validation
|
|
10
|
-
- standards_enforcement
|
|
11
|
-
|
|
12
|
-
quality:
|
|
13
|
-
test_coverage: required
|
|
14
|
-
type_safety: strict
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
name: frontend-ui-ux-engineer
|
|
2
|
-
skill: frontend-ui-ux-engineer
|
|
3
|
-
description: "frontend ui ux engineer specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- domain_specialization
|
|
9
|
-
|
|
10
|
-
quality:
|
|
11
|
-
test_coverage: recommended
|
|
12
|
-
type_safety: strict
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
name: git-workflow
|
|
2
|
-
skill: git-workflow
|
|
3
|
-
description: "Git workflow management and collaboration specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- git_operations
|
|
9
|
-
- branch_management
|
|
10
|
-
- merge_conflicts
|
|
11
|
-
- workflow_automation
|
|
12
|
-
|
|
13
|
-
quality:
|
|
14
|
-
test_coverage: recommended
|
|
15
|
-
type_safety: strict
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: lint
|
|
2
|
-
skill: lint
|
|
3
|
-
description: "Code linting and static analysis specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- linting
|
|
9
|
-
- static_analysis
|
|
10
|
-
- code_quality
|
|
11
|
-
|
|
12
|
-
quality:
|
|
13
|
-
test_coverage: recommended
|
|
14
|
-
type_safety: strict
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
name: performance-optimization
|
|
2
|
-
skill: performance-optimization
|
|
3
|
-
description: "performance optimization specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- domain_specialization
|
|
9
|
-
|
|
10
|
-
quality:
|
|
11
|
-
test_coverage: recommended
|
|
12
|
-
type_safety: strict
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
name: processor-pipeline
|
|
2
|
-
skill: processor-pipeline
|
|
3
|
-
description: "Data processing pipeline management specialist"
|
|
4
|
-
version: "1.0.0"
|
|
5
|
-
mode: subagent
|
|
6
|
-
|
|
7
|
-
capabilities:
|
|
8
|
-
- pipeline_management
|
|
9
|
-
- data_processing
|
|
10
|
-
- workflow_orchestration
|
|
11
|
-
|
|
12
|
-
quality:
|
|
13
|
-
test_coverage: required
|
|
14
|
-
type_safety: strict
|