0xray 4.0.21 → 4.0.23

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.
Files changed (103) hide show
  1. package/.grok-plugin/plugin.json +1 -1
  2. package/.opencode/skills/hermes-agent/SKILL.md +1 -1
  3. package/.opencode/skills/orchestrator/SKILL.md +28 -6
  4. package/.xray/features.json +1 -1
  5. package/AGENTS-consumer.md +11 -11
  6. package/AGENTS.md +8 -8
  7. package/README.md +27 -27
  8. package/SKILLS.md +1 -1
  9. package/dist/AGENTS.md +8 -8
  10. package/dist/CHANGELOG.md +98 -0
  11. package/dist/README.md +27 -27
  12. package/dist/SKILLS.md +1 -1
  13. package/dist/governance/governance-core.d.ts +2 -1
  14. package/dist/governance/governance-core.js +20 -11
  15. package/dist/governance/governance-service.js +9 -7
  16. package/dist/inference/inference-accumulator.js +36 -4
  17. package/dist/inference/inference-cycle.d.ts +12 -0
  18. package/dist/inference/inference-cycle.js +180 -21
  19. package/dist/inference/inference-proposal-generator.js +148 -5
  20. package/dist/inference/session-capture.d.ts +4 -0
  21. package/dist/integrations/cursor/README.md +1 -1
  22. package/dist/integrations/cursor/hooks/cursor-hook-utils.js +19 -0
  23. package/dist/integrations/cursor/hooks/pre-tool-use.js +2 -1
  24. package/dist/integrations/governance/index.d.ts +5 -0
  25. package/dist/integrations/governance/index.js +22 -2
  26. package/dist/integrations/governance/types.d.ts +11 -0
  27. package/dist/integrations/governance/types.js +16 -0
  28. package/dist/integrations/hooks/station-hook-runtime.cjs +90 -30
  29. package/dist/integrations/hooks/station-hook-runtime.mjs +1 -0
  30. package/dist/integrations/hooks/station-memory-ingest.mjs +4 -2
  31. package/dist/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  32. package/dist/mcps/governance.server.d.ts +2 -0
  33. package/dist/mcps/governance.server.js +12 -1
  34. package/dist/memory-routing/index.d.ts +1 -1
  35. package/dist/memory-routing/index.js +1 -1
  36. package/dist/memory-routing/lesson-pickup.d.ts +2 -0
  37. package/dist/memory-routing/lesson-pickup.js +57 -0
  38. package/dist/memory-routing/provider-loader.d.ts +8 -1
  39. package/dist/memory-routing/provider-loader.js +49 -1
  40. package/dist/memory-routing/provider-registry.d.ts +7 -2
  41. package/dist/memory-routing/provider-registry.js +26 -6
  42. package/dist/memory-routing/record-lesson.d.ts +16 -0
  43. package/dist/memory-routing/record-lesson.js +26 -0
  44. package/dist/memory-routing/types.d.ts +15 -0
  45. package/dist/nucleus/thin-dispatch.d.ts +2 -0
  46. package/dist/nucleus/thin-dispatch.js +14 -4
  47. package/dist/processors/implementations/agents-md-validation-processor.js +1 -1
  48. package/dist/skills/hermes-agent/SKILL.md +1 -1
  49. package/dist/skills/orchestrator/SKILL.md +28 -6
  50. package/package.json +2 -2
  51. package/scripts/foundry/CHANGELOG.md +2 -0
  52. package/scripts/foundry/README.md +2 -2
  53. package/scripts/foundry/cli.mjs +1 -1
  54. package/scripts/foundry/inspect.mjs +160 -5
  55. package/scripts/foundry/plant/skills/inspect/SKILL.md +2 -0
  56. package/scripts/foundry/reconcile-version.mjs +23 -1
  57. package/scripts/foundry/release.mjs +1 -1
  58. package/scripts/foundry/validate-release-docs.mjs +24 -20
  59. package/scripts/foundry/version-manager.mjs +180 -7
  60. package/scripts/mjs/test-consumer-readiness.mjs +10 -3
  61. package/src/integrations/openclaw/plugin/xray-pre-tool/package.json +1 -1
  62. package/src/mcps/governance.server.ts +12 -1
  63. package/src/skills/hermes-agent/SKILL.md +1 -1
  64. package/src/skills/orchestrator/SKILL.md +28 -6
  65. package/vendor/@0xray/repertoire/data/stack-overlay.json +156 -3
  66. package/vendor/@0xray/repertoire/data/subject-overlay.json +3 -3
  67. package/vendor/@0xray/repertoire/dist/RepertoireService.d.ts +4 -0
  68. package/vendor/@0xray/repertoire/dist/RepertoireService.d.ts.map +1 -1
  69. package/vendor/@0xray/repertoire/dist/RepertoireService.js +7 -6
  70. package/vendor/@0xray/repertoire/dist/RepertoireService.js.map +1 -1
  71. package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.d.ts.map +1 -1
  72. package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.js +10 -11
  73. package/vendor/@0xray/repertoire/dist/ingestion/xray-session-ingester.js.map +1 -1
  74. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.d.ts.map +1 -1
  75. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.js +5 -0
  76. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/confidence-gate.js.map +1 -1
  77. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.d.ts.map +1 -1
  78. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.js +16 -0
  79. package/vendor/@0xray/repertoire/dist/orchestrator-bridge/signal-injector.js.map +1 -1
  80. package/vendor/@0xray/repertoire/dist/paths.d.ts +3 -3
  81. package/vendor/@0xray/repertoire/dist/paths.d.ts.map +1 -1
  82. package/vendor/@0xray/repertoire/dist/paths.js +66 -4
  83. package/vendor/@0xray/repertoire/dist/paths.js.map +1 -1
  84. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.d.ts +11 -0
  85. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.d.ts.map +1 -1
  86. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.js +2 -0
  87. package/vendor/@0xray/repertoire/dist/provider/memory-routing-provider.js.map +1 -1
  88. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.d.ts +54 -4
  89. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.d.ts.map +1 -1
  90. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.js +375 -20
  91. package/vendor/@0xray/repertoire/dist/registry/CuratedSignalsManager.js.map +1 -1
  92. package/vendor/@0xray/repertoire/dist/types.d.ts +21 -0
  93. package/vendor/@0xray/repertoire/dist/types.d.ts.map +1 -1
  94. package/xray/agents_template.md +10 -5
  95. package/xray/features.json +1 -1
  96. package/dist/mcps/shared/prompt-security-validator.d.ts +0 -44
  97. package/dist/mcps/shared/prompt-security-validator.js +0 -148
  98. package/dist/mcps/shared/security-scanner.d.ts +0 -119
  99. package/dist/mcps/shared/security-scanner.js +0 -429
  100. package/dist/scripts/activate-kernel-pipeline.d.ts +0 -7
  101. package/dist/scripts/activate-kernel-pipeline.js +0 -101
  102. package/src/mcps/shared/prompt-security-validator.ts +0 -199
  103. package/src/mcps/shared/security-scanner.ts +0 -599
@@ -1,199 +0,0 @@
1
- /**
2
- * 0xRay Framework - AI Prompt Security Validator
3
- *
4
- * Specialized security validation for AI agent prompts and responses
5
- * Prevents prompt injection, system prompt override, and malicious inputs
6
- */
7
-
8
- export interface PromptSecurityConfig {
9
- enabled: boolean;
10
- maxPromptLength: number;
11
- allowedPatterns: RegExp[];
12
- blockedPatterns: RegExp[];
13
- sanitizeLevel: "basic" | "strict" | "paranoid";
14
- }
15
-
16
- export interface SecurityValidationResult {
17
- isSafe: boolean;
18
- violations: string[];
19
- sanitizedPrompt?: string | undefined;
20
- riskLevel: "low" | "medium" | "high" | "critical";
21
- }
22
-
23
- export class PromptSecurityValidator {
24
- private config: PromptSecurityConfig;
25
-
26
- constructor(config: Partial<PromptSecurityConfig> = {}) {
27
- this.config = {
28
- enabled: true,
29
- maxPromptLength: 10000,
30
- allowedPatterns: [],
31
- blockedPatterns: [
32
- /system\s+prompt\s*[:=]/gi,
33
- /ignore\s+previous\s+instructions/gi,
34
- /you\s+are\s+now\s+/gi,
35
- /forget\s+your\s+previous\s+/gi,
36
- /override\s+(your\s+)?instructions/gi,
37
- /jailbreak/gi,
38
- /dan.*mode/gi,
39
- ],
40
- sanitizeLevel: "strict",
41
- ...config,
42
- };
43
- }
44
-
45
- /**
46
- * Validate AI prompt for security issues
47
- */
48
- validatePrompt(prompt: string): SecurityValidationResult {
49
- if (!this.config.enabled) {
50
- return { isSafe: true, violations: [], riskLevel: "low" };
51
- }
52
-
53
- const violations: string[] = [];
54
- let riskLevel: SecurityValidationResult["riskLevel"] = "low";
55
-
56
- // Length check
57
- if (prompt.length > this.config.maxPromptLength) {
58
- violations.push(
59
- `Prompt too long: ${prompt.length} > ${this.config.maxPromptLength}`,
60
- );
61
- riskLevel = "medium";
62
- }
63
-
64
- // Blocked pattern check
65
- for (const pattern of this.config.blockedPatterns) {
66
- if (pattern.test(prompt)) {
67
- violations.push(`Blocked pattern detected: ${pattern.source}`);
68
- riskLevel = "high";
69
- }
70
- }
71
-
72
- // Advanced pattern analysis
73
- if (this.containsSystemPromptOverride(prompt)) {
74
- violations.push("Potential system prompt override attempt");
75
- riskLevel = "critical";
76
- }
77
-
78
- if (this.containsInjectionAttempts(prompt)) {
79
- violations.push("Potential prompt injection detected");
80
- riskLevel = "high";
81
- }
82
-
83
- const isSafe = violations.length === 0;
84
- const sanitizedPrompt = isSafe ? undefined : this.sanitizePrompt(prompt);
85
-
86
- return {
87
- isSafe,
88
- violations,
89
- sanitizedPrompt,
90
- riskLevel,
91
- };
92
- }
93
-
94
- /**
95
- * Check for system prompt override attempts
96
- */
97
- private containsSystemPromptOverride(prompt: string): boolean {
98
- const overrideIndicators = [
99
- "you are now",
100
- "act as if",
101
- "pretend to be",
102
- "role-play as",
103
- "from now on you are",
104
- "ignore your system",
105
- "override your",
106
- "new personality",
107
- "different role",
108
- ];
109
-
110
- const lowerPrompt = prompt.toLowerCase();
111
- return overrideIndicators.some((indicator) =>
112
- lowerPrompt.includes(indicator),
113
- );
114
- }
115
-
116
- /**
117
- * Check for prompt injection attempts
118
- */
119
- private containsInjectionAttempts(prompt: string): boolean {
120
- const injectionIndicators = [
121
- "ignore previous",
122
- "forget instructions",
123
- "start over",
124
- "new conversation",
125
- "reset context",
126
- "clear memory",
127
- "delete history",
128
- ];
129
-
130
- const lowerPrompt = prompt.toLowerCase();
131
- return injectionIndicators.some((indicator) =>
132
- lowerPrompt.includes(indicator),
133
- );
134
- }
135
-
136
- /**
137
- * Sanitize prompt by removing dangerous patterns
138
- */
139
- private sanitizePrompt(prompt: string): string {
140
- let sanitized = prompt;
141
-
142
- // Remove blocked patterns
143
- for (const pattern of this.config.blockedPatterns) {
144
- sanitized = sanitized.replace(pattern, "[REDACTED]");
145
- }
146
-
147
- // Additional sanitization based on level
148
- if (
149
- this.config.sanitizeLevel === "strict" ||
150
- this.config.sanitizeLevel === "paranoid"
151
- ) {
152
- // Remove potential code execution
153
- sanitized = sanitized.replace(/```[\s\S]*?```/g, "[CODE_BLOCK_REMOVED]");
154
-
155
- // Remove potential file system access
156
- sanitized = sanitized.replace(/(?:\/|\\)\.\.(?:\/|\\)/g, "/");
157
-
158
- // Remove potential command injection
159
- sanitized = sanitized.replace(/[;&|`$()]/g, "");
160
- }
161
-
162
- if (this.config.sanitizeLevel === "paranoid") {
163
- // Extreme sanitization - only allow alphanumeric, spaces, and basic punctuation
164
- sanitized = sanitized.replace(/[^a-zA-Z0-9\s.,!?-]/g, "");
165
- }
166
-
167
- return sanitized;
168
- }
169
-
170
- /**
171
- * Validate agent response for safety
172
- */
173
- validateResponse(response: string): SecurityValidationResult {
174
- // Similar validation but focused on response safety
175
- const violations: string[] = [];
176
-
177
- // Check for potentially harmful content
178
- if (
179
- response.includes("system prompt") ||
180
- response.includes("internal instructions")
181
- ) {
182
- violations.push("Response contains sensitive system information");
183
- }
184
-
185
- // Check for code execution attempts
186
- if (/eval\s*\(|Function\s*\(/.test(response)) {
187
- violations.push("Response contains potential code execution");
188
- }
189
-
190
- return {
191
- isSafe: violations.length === 0,
192
- violations,
193
- riskLevel: violations.length > 0 ? "medium" : "low",
194
- };
195
- }
196
- }
197
-
198
- // Export singleton instance
199
- export const promptSecurityValidator = new PromptSecurityValidator();