strray-ai 1.15.16 → 1.15.18

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 (220) hide show
  1. package/.opencode/codex.codex +1 -1
  2. package/.opencode/enforcer-config.json +2 -2
  3. package/.opencode/package.json +1 -1
  4. package/.opencode/plugins/strray-codex-injection.js +3 -2
  5. package/.opencode/skills/hermes-agent/SKILL.md +154 -221
  6. package/.opencode/strray/codex.json +1 -1
  7. package/.opencode/strray/config.json +1 -1
  8. package/.opencode/strray/features.json +1 -1
  9. package/.opencode/strray/integrations.json +3 -3
  10. package/dist/agents/librarian-agents-updater.d.ts.map +1 -1
  11. package/dist/agents/librarian-agents-updater.js +4 -1
  12. package/dist/agents/librarian-agents-updater.js.map +1 -1
  13. package/dist/analytics/consent-manager.d.ts.map +1 -1
  14. package/dist/analytics/consent-manager.js +2 -1
  15. package/dist/analytics/consent-manager.js.map +1 -1
  16. package/dist/analytics/routing-refiner.js +1 -1
  17. package/dist/cli/server.js +9 -3
  18. package/dist/cli/server.js.map +1 -1
  19. package/dist/core/activity-logger.d.ts.map +1 -1
  20. package/dist/core/activity-logger.js +4 -3
  21. package/dist/core/activity-logger.js.map +1 -1
  22. package/dist/core/boot-orchestrator.d.ts.map +1 -1
  23. package/dist/core/boot-orchestrator.js +39 -23
  24. package/dist/core/boot-orchestrator.js.map +1 -1
  25. package/dist/core/codex-injector.d.ts.map +1 -1
  26. package/dist/core/codex-injector.js +16 -6
  27. package/dist/core/codex-injector.js.map +1 -1
  28. package/dist/core/config-loader.d.ts.map +1 -1
  29. package/dist/core/config-loader.js +2 -1
  30. package/dist/core/config-loader.js.map +1 -1
  31. package/dist/core/config-paths.d.ts +6 -1
  32. package/dist/core/config-paths.d.ts.map +1 -1
  33. package/dist/core/config-paths.js +8 -1
  34. package/dist/core/config-paths.js.map +1 -1
  35. package/dist/core/features-config.js +1 -1
  36. package/dist/core/framework-logger.js +3 -3
  37. package/dist/core/framework-logger.js.map +1 -1
  38. package/dist/core/strray-init.js +4 -1
  39. package/dist/core/strray-init.js.map +1 -1
  40. package/dist/delegation/analytics/learning-engine.d.ts.map +1 -1
  41. package/dist/delegation/analytics/learning-engine.js +2 -1
  42. package/dist/delegation/analytics/learning-engine.js.map +1 -1
  43. package/dist/delegation/analytics/routing-analytics.d.ts.map +1 -1
  44. package/dist/delegation/analytics/routing-analytics.js +2 -1
  45. package/dist/delegation/analytics/routing-analytics.js.map +1 -1
  46. package/dist/delegation/session-coordinator.js +2 -1
  47. package/dist/delegation/session-coordinator.js.map +1 -1
  48. package/dist/enforcement/enforcer-tools.d.ts.map +1 -1
  49. package/dist/enforcement/enforcer-tools.js +15 -8
  50. package/dist/enforcement/enforcer-tools.js.map +1 -1
  51. package/dist/hooks/validation-hooks.d.ts.map +1 -1
  52. package/dist/hooks/validation-hooks.js +11 -3
  53. package/dist/hooks/validation-hooks.js.map +1 -1
  54. package/dist/jobs/job-correlation-fix.d.ts.map +1 -1
  55. package/dist/jobs/job-correlation-fix.js +5 -3
  56. package/dist/jobs/job-correlation-fix.js.map +1 -1
  57. package/dist/jobs/job-correlation-manager.d.ts.map +1 -1
  58. package/dist/jobs/job-correlation-manager.js +5 -2
  59. package/dist/jobs/job-correlation-manager.js.map +1 -1
  60. package/dist/mcps/architect-tools.server.js +1 -1
  61. package/dist/mcps/auto-format.server.js +1 -1
  62. package/dist/mcps/boot-orchestrator.server.js +1 -1
  63. package/dist/mcps/config/server-config-registry.d.ts.map +1 -1
  64. package/dist/mcps/config/server-config-registry.js +6 -0
  65. package/dist/mcps/config/server-config-registry.js.map +1 -1
  66. package/dist/mcps/connection/connection-manager.d.ts.map +1 -1
  67. package/dist/mcps/connection/connection-manager.js +2 -1
  68. package/dist/mcps/connection/connection-manager.js.map +1 -1
  69. package/dist/mcps/connection/connection-pool.d.ts.map +1 -1
  70. package/dist/mcps/connection/connection-pool.js +3 -2
  71. package/dist/mcps/connection/connection-pool.js.map +1 -1
  72. package/dist/mcps/enforcer-tools.server.js +1 -1
  73. package/dist/mcps/estimation.server.js +1 -1
  74. package/dist/mcps/framework-compliance-audit.server.js +1 -1
  75. package/dist/mcps/framework-help.server.js +1 -1
  76. package/dist/mcps/knowledge-skills/api-design.server.js +2 -2
  77. package/dist/mcps/knowledge-skills/api-design.server.js.map +1 -1
  78. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +2 -2
  79. package/dist/mcps/knowledge-skills/architecture-patterns.server.js.map +1 -1
  80. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +1 -1
  81. package/dist/mcps/knowledge-skills/code-analyzer.server.js +2 -2
  82. package/dist/mcps/knowledge-skills/code-analyzer.server.js.map +1 -1
  83. package/dist/mcps/knowledge-skills/code-review.server.js +2 -2
  84. package/dist/mcps/knowledge-skills/code-review.server.js.map +1 -1
  85. package/dist/mcps/knowledge-skills/content-creator.server.js +1 -1
  86. package/dist/mcps/knowledge-skills/database-design.server.js +2 -2
  87. package/dist/mcps/knowledge-skills/database-design.server.js.map +1 -1
  88. package/dist/mcps/knowledge-skills/devops-deployment.server.js +2 -2
  89. package/dist/mcps/knowledge-skills/devops-deployment.server.js.map +1 -1
  90. package/dist/mcps/knowledge-skills/git-workflow.server.js +2 -2
  91. package/dist/mcps/knowledge-skills/git-workflow.server.js.map +1 -1
  92. package/dist/mcps/knowledge-skills/growth-strategist.server.js +1 -1
  93. package/dist/mcps/knowledge-skills/log-monitor.server.js +1 -1
  94. package/dist/mcps/knowledge-skills/mobile-development.server.js +2 -2
  95. package/dist/mcps/knowledge-skills/mobile-development.server.js.map +1 -1
  96. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +1 -1
  97. package/dist/mcps/knowledge-skills/performance-optimization.server.js +2 -2
  98. package/dist/mcps/knowledge-skills/performance-optimization.server.js.map +1 -1
  99. package/dist/mcps/knowledge-skills/project-analysis.server.js +1 -1
  100. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +2 -2
  101. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js.map +1 -1
  102. package/dist/mcps/knowledge-skills/security-audit.server.js +2 -2
  103. package/dist/mcps/knowledge-skills/security-audit.server.js.map +1 -1
  104. package/dist/mcps/knowledge-skills/seo-consultant.server.js +1 -1
  105. package/dist/mcps/knowledge-skills/session-management.server.js +1 -1
  106. package/dist/mcps/knowledge-skills/skill-invocation.server.js +2 -2
  107. package/dist/mcps/knowledge-skills/skill-invocation.server.js.map +1 -1
  108. package/dist/mcps/knowledge-skills/strategist.server.js +1 -1
  109. package/dist/mcps/knowledge-skills/tech-writer.server.js +3 -3
  110. package/dist/mcps/knowledge-skills/tech-writer.server.js.map +1 -1
  111. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +2 -2
  112. package/dist/mcps/knowledge-skills/testing-best-practices.server.js.map +1 -1
  113. package/dist/mcps/knowledge-skills/testing-strategy.server.js +2 -2
  114. package/dist/mcps/knowledge-skills/testing-strategy.server.js.map +1 -1
  115. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +1 -1
  116. package/dist/mcps/lint.server.js +1 -1
  117. package/dist/mcps/model-health-check.server.js +1 -1
  118. package/dist/mcps/performance-analysis.server.js +1 -1
  119. package/dist/mcps/processor-pipeline.server.js +1 -1
  120. package/dist/mcps/researcher.server.js +1 -1
  121. package/dist/mcps/security-scan.server.js +1 -1
  122. package/dist/mcps/state-manager.server.js +1 -1
  123. package/dist/monitoring/activity-log-writer.js +4 -4
  124. package/dist/monitoring/activity-log-writer.js.map +1 -1
  125. package/dist/monitoring/enterprise-monitoring-system.d.ts.map +1 -1
  126. package/dist/monitoring/enterprise-monitoring-system.js +7 -4
  127. package/dist/monitoring/enterprise-monitoring-system.js.map +1 -1
  128. package/dist/monitoring/metrics-endpoint.d.ts.map +1 -1
  129. package/dist/monitoring/metrics-endpoint.js +2 -1
  130. package/dist/monitoring/metrics-endpoint.js.map +1 -1
  131. package/dist/monitoring/test-auto-generation-monitor.d.ts.map +1 -1
  132. package/dist/monitoring/test-auto-generation-monitor.js +4 -1
  133. package/dist/monitoring/test-auto-generation-monitor.js.map +1 -1
  134. package/dist/orchestrator/intelligent-commit-batcher.d.ts.map +1 -1
  135. package/dist/orchestrator/intelligent-commit-batcher.js +3 -5
  136. package/dist/orchestrator/intelligent-commit-batcher.js.map +1 -1
  137. package/dist/orchestrator/self-direction-activation.d.ts.map +1 -1
  138. package/dist/orchestrator/self-direction-activation.js +20 -20
  139. package/dist/orchestrator/self-direction-activation.js.map +1 -1
  140. package/dist/orchestrator/universal-registry-bridge.js +1 -1
  141. package/dist/performance/advanced-regression-testing.d.ts.map +1 -1
  142. package/dist/performance/advanced-regression-testing.js +3 -2
  143. package/dist/performance/advanced-regression-testing.js.map +1 -1
  144. package/dist/performance/performance-budget-enforcer.d.ts.map +1 -1
  145. package/dist/performance/performance-budget-enforcer.js +18 -7
  146. package/dist/performance/performance-budget-enforcer.js.map +1 -1
  147. package/dist/performance/performance-ci-gates.d.ts.map +1 -1
  148. package/dist/performance/performance-ci-gates.js +4 -8
  149. package/dist/performance/performance-ci-gates.js.map +1 -1
  150. package/dist/performance/performance-monitoring-dashboard.js +4 -4
  151. package/dist/performance/performance-monitoring-dashboard.js.map +1 -1
  152. package/dist/performance/performance-regression-tester.d.ts.map +1 -1
  153. package/dist/performance/performance-regression-tester.js +6 -5
  154. package/dist/performance/performance-regression-tester.js.map +1 -1
  155. package/dist/performance/performance-system-orchestrator.js +2 -2
  156. package/dist/performance/performance-system-orchestrator.js.map +1 -1
  157. package/dist/plugin/strray-codex-injection.d.ts.map +1 -1
  158. package/dist/plugin/strray-codex-injection.js +3 -2
  159. package/dist/plugin/strray-codex-injection.js.map +1 -1
  160. package/dist/postprocessor/autofix/AutoFixEngine.js +1 -1
  161. package/dist/postprocessor/autofix/AutoFixEngine.js.map +1 -1
  162. package/dist/postprocessor/escalation/EscalationEngine.d.ts.map +1 -1
  163. package/dist/postprocessor/escalation/EscalationEngine.js +10 -9
  164. package/dist/postprocessor/escalation/EscalationEngine.js.map +1 -1
  165. package/dist/postprocessor/redeploy/RedeployCoordinator.js +2 -2
  166. package/dist/postprocessor/redeploy/RedeployCoordinator.js.map +1 -1
  167. package/dist/postprocessor/success/SuccessHandler.js +11 -11
  168. package/dist/postprocessor/success/SuccessHandler.js.map +1 -1
  169. package/dist/postprocessor/triggers/GitHookTrigger.d.ts.map +1 -1
  170. package/dist/postprocessor/triggers/GitHookTrigger.js +0 -6
  171. package/dist/postprocessor/triggers/GitHookTrigger.js.map +1 -1
  172. package/dist/processors/processor-manager.d.ts.map +1 -1
  173. package/dist/processors/processor-manager.js +18 -5
  174. package/dist/processors/processor-manager.js.map +1 -1
  175. package/dist/processors/test-auto-creation-processor.d.ts.map +1 -1
  176. package/dist/processors/test-auto-creation-processor.js +16 -1
  177. package/dist/processors/test-auto-creation-processor.js.map +1 -1
  178. package/dist/reporting/orchestration-flow-reporter.js +2 -2
  179. package/dist/reporting/orchestration-flow-reporter.js.map +1 -1
  180. package/dist/security/security-hardening-system.d.ts.map +1 -1
  181. package/dist/security/security-hardening-system.js +23 -5
  182. package/dist/security/security-hardening-system.js.map +1 -1
  183. package/dist/security/security-headers.d.ts.map +1 -1
  184. package/dist/security/security-headers.js +2 -1
  185. package/dist/security/security-headers.js.map +1 -1
  186. package/dist/security/security-middleware.d.ts +2 -0
  187. package/dist/security/security-middleware.d.ts.map +1 -1
  188. package/dist/security/security-middleware.js +29 -1
  189. package/dist/security/security-middleware.js.map +1 -1
  190. package/dist/security/security-scanner.js +13 -7
  191. package/dist/security/security-scanner.js.map +1 -1
  192. package/dist/services/inference-tuner.js +1 -1
  193. package/dist/services/inference-tuner.js.map +1 -1
  194. package/dist/session/session-cleanup-manager.d.ts.map +1 -1
  195. package/dist/session/session-cleanup-manager.js +11 -4
  196. package/dist/session/session-cleanup-manager.js.map +1 -1
  197. package/dist/session/session-monitor.js +8 -2
  198. package/dist/session/session-monitor.js.map +1 -1
  199. package/dist/session/session-state-manager.d.ts.map +1 -1
  200. package/dist/session/session-state-manager.js +19 -5
  201. package/dist/session/session-state-manager.js.map +1 -1
  202. package/dist/state/state-manager.d.ts.map +1 -1
  203. package/dist/state/state-manager.js +1 -1
  204. package/dist/state/state-manager.js.map +1 -1
  205. package/dist/utils/codex-parser.js +8 -4
  206. package/dist/utils/codex-parser.js.map +1 -1
  207. package/dist/utils/command-runner.d.ts +9 -0
  208. package/dist/utils/command-runner.d.ts.map +1 -1
  209. package/dist/utils/command-runner.js +54 -1
  210. package/dist/utils/command-runner.js.map +1 -1
  211. package/dist/utils/import-resolver.d.ts.map +1 -1
  212. package/dist/utils/import-resolver.js +2 -1
  213. package/dist/utils/import-resolver.js.map +1 -1
  214. package/dist/utils/shutdown-handler.js +4 -4
  215. package/dist/utils/shutdown-handler.js.map +1 -1
  216. package/dist/utils/test-template-generator.d.ts.map +1 -1
  217. package/dist/utils/test-template-generator.js +2 -1
  218. package/dist/utils/test-template-generator.js.map +1 -1
  219. package/package.json +1 -1
  220. package/scripts/node/universal-version-manager.js +1 -1
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.15.15",
2
+ "version": "1.15.18",
3
3
  "terms": [
4
4
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60
5
5
  ],
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "framework": "StringRay 1.0.0",
3
- "version": "1.15.16",
3
+ "version": "1.15.18",
4
4
  "description": "Codex-compliant framework configuration for Credible UI project",
5
5
  "thresholds": {
6
6
  "bundleSize": {
@@ -220,7 +220,7 @@
220
220
  }
221
221
  },
222
222
  "codex": {
223
- "version": "1.15.16",
223
+ "version": "1.15.18",
224
224
  "terms": [
225
225
  1,
226
226
  2,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opencode/OpenCode",
3
- "version": "1.15.16",
3
+ "version": "1.15.18",
4
4
  "description": "OpenCode framework configuration",
5
5
  "main": "OpenCode.json",
6
6
  "scripts": {
@@ -11,6 +11,7 @@
11
11
  import * as fs from "fs";
12
12
  import * as path from "path";
13
13
  import { spawn } from "child_process";
14
+ import { frameworkLogger } from "../core/framework-logger.js";
14
15
  // Dynamic imports for config-paths (works from both dist/plugin/ and .opencode/plugins/)
15
16
  let _resolveCodexPath;
16
17
  let _resolveStateDir;
@@ -33,7 +34,7 @@ async function loadConfigPaths() {
33
34
  // try next candidate
34
35
  }
35
36
  }
36
- console.warn("⚠️ Failed to load config-paths module from any location");
37
+ frameworkLogger.log("strray-codex-plugin", "config-paths-load-failed", "warning", { warning: "Failed to load config-paths module from any location" });
37
38
  }
38
39
  /** Convenience wrapper — must be awaited before use */
39
40
  async function resolveCodexPath(...args) {
@@ -62,7 +63,7 @@ async function importSystemPromptGenerator() {
62
63
  // try next candidate
63
64
  }
64
65
  }
65
- console.warn("⚠️ Failed to load lean system prompt generator, using fallback");
66
+ frameworkLogger.log("strray-codex-plugin", "system-prompt-generator-load-failed", "warning", { warning: "Failed to load lean system prompt generator, using fallback" });
66
67
  }
67
68
  }
68
69
  let ProcessorManager;
@@ -1,288 +1,221 @@
1
1
  ---
2
2
  name: hermes-agent
3
- description: Manage StringRay framework from Hermes Agent install, configure, health-check, report, and publish. Covers CLI commands and MCP server integration for Hermes.
4
- version: 1.0.0
3
+ description: Manage StringRay framework from Hermes Agent via the native strray-hermes plugin. Covers the 4 plugin tools (validate, codex_check, health, hooks), lifecycle hooks, slash commands, bridge architecture, and CLI fallback.
4
+ version: 2.1.0
5
5
  author: StringRay AI
6
- license: MIT
7
6
  metadata:
8
7
  hermes:
9
- tags: [StringRay, CLI, MCP, Framework, Orchestration]
8
+ tags: [StringRay, Plugin, Validation, Codex, GitHooks, Bridge]
10
9
  related_skills: []
11
- prerequisites:
12
- commands: [npx]
13
10
  ---
14
11
 
15
- # StringRay Agent for Hermes
12
+ # StringRay Hermes Plugin (strray-hermes)
16
13
 
17
- Manage the StringRay AI framework from within Hermes Agent. Covers CLI commands (install, health, report, skills) and MCP server integration.
14
+ Native Hermes plugin providing StringRay framework integration quality gates, codex enforcement, git hooks, and full pre/post processing pipeline. Runs via a Node.js bridge to compiled framework components.
18
15
 
19
16
  ## When to Use
20
17
 
21
- Use this skill when:
22
- - User asks about StringRay status, health, or configuration
23
- - User wants to install, validate, or fix StringRay
24
- - User asks for reports, analytics, or capability info
25
- - User wants to manage skills (install, list, status)
26
- - User wants to publish agents to AgentStore
27
- - User asks how to connect StringRay MCP servers to Hermes
28
- - User asks about StringRay capabilities or available agents
18
+ - User asks about StringRay health, validation, or codex checks
19
+ - User wants to install/manage git hooks for automated enforcement
20
+ - User asks about the plugin's tools, hooks, or slash commands
21
+ - User asks about bridge errors or framework not loading
22
+ - User wants to validate files before committing or pushing
29
23
 
30
- ## CLI Commands
24
+ ## Plugin Architecture
31
25
 
32
- ### Setup and Diagnostics
33
-
34
- ```bash
35
- # Install StringRay in current project (detects/installs OpenCode, configures agents, sets up Codex)
36
- npx strray-ai install
26
+ ```
27
+ ~/.hermes/plugins/strray-hermes/
28
+ ├── __init__.py # Plugin registration, hooks, slash commands
29
+ ├── tools.py # 4 tool handlers (validate, codex_check, health, hooks)
30
+ ├── schemas.py # JSON schemas the LLM sees
31
+ ├── bridge.mjs # Node.js bridge to compiled StringRay framework
32
+ ├── plugin.yaml # Plugin metadata (name, version, tools, hooks)
33
+ ├── types.py # TypeScript-equivalent type definitions
34
+ ├── after-install.md # Post-install instructions
35
+ └── test_plugin.py # Tests
36
+ ```
37
37
 
38
- # Initialize StringRay configuration only (lighter than install)
39
- npx strray-ai init
38
+ **Bridge protocol:** JSON over stdin/stdout to `bridge.mjs` (Node.js). The bridge lazy-loads compiled framework modules from `dist/`:
39
+ - `dist/plugin/quality-gate.js` — codex violation detection
40
+ - `dist/processors/processor-manager.js` — pre/post processor pipeline
41
+ - `dist/state/state-manager.js` — persistent state
42
+ - `dist/core/features-config.js` — feature flags
40
43
 
41
- # Check framework configuration and plugin status
42
- npx strray-ai status
44
+ **Fallback:** When bridge is unavailable, tools fall back to `npx strray-ai` CLI commands.
43
45
 
44
- # Validate installation and dependencies
45
- npx strray-ai validate
46
+ **Config path resolution:** `STRRAY_CONFIG_DIR/` > `.strray/` > `.opencode/strray/` > built-in defaults.
46
47
 
47
- # Full health check on framework components
48
- npx strray-ai health
48
+ ## 4 Tools
49
49
 
50
- # Diagnose issues without fixing them
51
- npx strray-ai doctor
50
+ ### strray_validate
52
51
 
53
- # Auto-fix common framework issues (restores missing config files)
54
- npx strray-ai fix
52
+ Run pre-commit validation on files. Uses bridge quality gate + processor pipeline, falls back to CLI.
55
53
 
56
- # Debug command for troubleshooting
57
- npx strray-ai debug
54
+ ```
55
+ strray_validate(files=["src/my-module.ts"], operation="commit")
56
+ strray_validate(files=["src/auth.ts", "src/auth.test.ts"], operation="modify")
58
57
  ```
59
58
 
60
- ### Reporting and Analytics
61
-
62
- ```bash
63
- # Generate full analysis report
64
- npx strray-ai report
65
-
66
- # Performance-focused report
67
- npx strray-ai report --type performance
59
+ Parameters:
60
+ - `files` (required, array of strings) — file paths to validate
61
+ - `operation` (string) — commit, create, modify, refactor (default: commit)
68
62
 
69
- # Agent invocation report
70
- npx strray-ai report --type agent-usage
63
+ Returns: pass/fail with per-file results and violations.
71
64
 
72
- # Save report to file
73
- npx strray-ai report -o report.json
65
+ ### strray_codex_check
74
66
 
75
- # Pattern analysis and insights
76
- npx strray-ai analytics
67
+ Validate code against the 60-term Universal Development Codex. Checks error-handling, type-safety, performance, security, architecture.
77
68
 
78
- # Analyze last N task completions
79
- npx strray-ai analytics --limit 50
69
+ ```
70
+ strray_codex_check(code="const x: any = foo()", operation="create")
71
+ strray_codex_check(code=snippet, operation="modify", focus_areas=["security", "error-handling"])
80
72
  ```
81
73
 
82
- ### Capabilities
74
+ Parameters:
75
+ - `code` (string) — code snippet to check. If omitted, returns framework health instead.
76
+ - `operation` (required, string) — create, modify, refactor
77
+ - `focus_areas` (array) — error-handling, type-safety, performance, security, architecture
83
78
 
84
- ```bash
85
- # Show all available StringRay capabilities, agents, and features
86
- npx strray-ai capabilities
87
- ```
79
+ Returns: violations list with actionable remediation.
88
80
 
89
- ### Skills Management
81
+ ### strray_health
90
82
 
91
- ```bash
92
- # Show starter packs and available registry sources
93
- npx strray-ai skill:install
83
+ Framework health check. Returns version, loaded components, project root.
94
84
 
95
- # Install from registry
96
- npx strray-ai skill:install agency-agents # 170+ agency agent definitions
97
- npx strray-ai skill:install superpowers # 14 agentic workflow skills (TDD, debugging, etc.)
98
- npx strray-ai skill:install minimax # Frontend, fullstack, Android, iOS skills
99
- npx strray-ai skill:install gemini-skills # Official Google Gemini skills
100
- npx strray-ai skill:install anthropic-skills # Official Anthropic/Claude skills
85
+ ```
86
+ strray_health()
87
+ ```
101
88
 
102
- # Install from any git repo
103
- npx strray-ai skill:install <github-url>
89
+ Returns: framework status, version, component availability, node version.
104
90
 
105
- # Install from specific subdirectory in a repo
106
- npx strray-ai skill:install <github-url> --path skills/typescript
91
+ ### strray_hooks
107
92
 
108
- # List all 10 bundled registry sources
109
- npx strray-ai skill:registry list
93
+ Manage StringRay git hooks (install, uninstall, list, status).
110
94
 
111
- # Show all installed skills with license info
112
- npx strray-ai antigravity status
95
+ ```
96
+ strray_hooks(action="install")
97
+ strray_hooks(action="status")
98
+ strray_hooks(action="list")
99
+ strray_hooks(action="uninstall", hooks=["pre-commit"])
113
100
  ```
114
101
 
115
- ### Agent Publishing
102
+ Parameters:
103
+ - `action` (required, string) — install, uninstall, list, status
104
+ - `hooks` (array) — which hooks to manage (default: all four)
116
105
 
117
- ```bash
118
- # Package agent for AgentStore
119
- npx strray-ai publish-agent --agent <name>
106
+ Hooks available: pre-commit, post-commit, pre-push, post-push.
120
107
 
121
- # Preview without publishing
122
- npx strray-ai publish-agent --agent <name> --dry-run
108
+ | Hook | Type | What it does |
109
+ |------|------|-------------|
110
+ | `pre-commit` | Blocking | TypeScript check + Codex validation before commit |
111
+ | `post-commit` | Non-blocking | Log archival + cleanup after commit |
112
+ | `pre-push` | Blocking | Full validation suite before push |
113
+ | `post-push` | Non-blocking | Comprehensive monitoring after push |
123
114
 
124
- # Publish specific version
125
- npx strray-ai publish-agent --agent <name> --version 2.0.0
126
- ```
115
+ ## 5 Lifecycle Hooks
127
116
 
128
- ### Inference
117
+ These fire automatically — no action needed from the user or agent.
129
118
 
130
- ```bash
131
- # Run autonomous inference improvement cycle
132
- npx strray-ai inference:improve
119
+ ### pre_tool_call
133
120
 
134
- # Start/stop autonomous inference tuner service
135
- npx strray-ai inference:tuner
136
- ```
121
+ Fires before ANY tool executes:
122
+ 1. Tracks session stats
123
+ 2. Logs tool-start event to `logs/framework/plugin-tool-events.log`
124
+ 3. For code-producing tools (write_file, patch, execute_code, write, edit): runs quality gate + pre-processors via bridge
125
+ 4. For other tools: nudges when a StringRay MCP alternative exists (e.g., grep → search_codebase, eslint → strray_lint)
137
126
 
138
- ## MCP Server Integration with Hermes
139
-
140
- StringRay ships 15 MCP servers that Hermes can connect to. Each exposes tools Hermes calls directly — no prompts, no proxies.
141
-
142
- ### Server Overview
143
-
144
- | MCP Server | Key Tools | Purpose |
145
- |-----------|----------|---------|
146
- | `strray-architect-tools` | codebase_structure, dependency_analysis, context_analysis, architecture_assessment | Project analysis and architectural health |
147
- | `strray-auto-format` | auto_format, format_check | Prettier + ESLint + TypeScript formatting |
148
- | `strray-enforcer` | rule_validation, codex_enforcement, quality_gate_check, run_pre_commit_validation | Codex compliance and quality gates |
149
- | `strray-estimation` | validate_estimate, start_tracking, complete_tracking, get_accuracy_report | Task estimation and time tracking |
150
- | `strray-framework-help` | strray_get_capabilities, strray_get_commands, strray_explain_capability | Framework reference and docs |
151
- | `strray-lint` | lint, lint_check | ESLint validation with auto-fix |
152
- | `strray-orchestrator` | orchestrate_task, analyze_complexity, get_orchestration_status, optimize_orchestration | Multi-agent task planning |
153
- | `strray-researcher` | search_codebase, find_implementation, get_documentation | Codebase search and pattern finding |
154
- | `strray-security-scan` | security_scan, dependency_audit | Vulnerability scanning |
155
- | `strray-state-manager` | get_state, set_state, delete_state, list_state, backup_state, restore_state | Persistent key-value state |
156
-
157
- ### Setup
158
-
159
- Add to `~/.hermes/config.yaml`:
160
-
161
- ```yaml
162
- mcp_servers:
163
- strray-architect-tools:
164
- command: node
165
- args: ["./node_modules/strray-ai/dist/mcps/architect-tools.server.js"]
166
- timeout: 30
167
- strray-auto-format:
168
- command: node
169
- args: ["./node_modules/strray-ai/dist/mcps/auto-format.server.js"]
170
- timeout: 30
171
- strray-enforcer:
172
- command: node
173
- args: ["./node_modules/strray-ai/dist/mcps/enforcer-tools.server.js"]
174
- timeout: 30
175
- strray-estimation:
176
- command: node
177
- args: ["./node_modules/strray-ai/dist/mcps/estimation.server.js"]
178
- timeout: 30
179
- strray-framework-help:
180
- command: node
181
- args: ["./node_modules/strray-ai/dist/mcps/framework-help.server.js"]
182
- timeout: 30
183
- strray-lint:
184
- command: node
185
- args: ["./node_modules/strray-ai/dist/mcps/lint.server.js"]
186
- timeout: 30
187
- strray-orchestrator:
188
- command: node
189
- args: ["./node_modules/strray-ai/dist/mcps/orchestrator/server.js"]
190
- timeout: 60
191
- strray-researcher:
192
- command: node
193
- args: ["./node_modules/strray-ai/dist/mcps/researcher.server.js"]
194
- timeout: 60
195
- strray-security-scan:
196
- command: node
197
- args: ["./node_modules/strray-ai/dist/mcps/security-scan.server.js"]
198
- timeout: 30
199
- strray-state-manager:
200
- command: node
201
- args: ["./node_modules/strray-ai/dist/mcps/state-manager.server.js"]
202
- timeout: 30
203
- ```
127
+ ### post_tool_call
204
128
 
205
- ### Tool Naming Convention
129
+ Fires after ANY tool returns:
130
+ 1. Logs tool-complete event
131
+ 2. For code-producing tools: runs post-processors via bridge
132
+ 3. Tracks file modifications for session context
206
133
 
207
- Hermes prefixes MCP tools as `mcp_strray_<server>_<tool>`. For example:
208
- - `mcp_strray_architect_tools_codebase_structure`
209
- - `mcp_strray_enforcer_rule_validation`
210
- - `mcp_strray_lint_lint`
134
+ ### on_file_write
211
135
 
212
- This is automatic and not configurable.
136
+ Fires when a code-producing tool writes a file. Validates and logs the event.
213
137
 
214
- ### How MCP and CLI Complement Each Other
138
+ ### on_validation_result
215
139
 
216
- | Capability | MCP Server | CLI Command |
217
- |-----------|-----------|-------------|
218
- | Analyze code | architect-tools | — |
219
- | Lint/format | lint, auto-format | — |
220
- | Security scan | security-scan | — |
221
- | Orchestrate tasks | orchestrator | — |
222
- | Manage state | state-manager | — |
223
- | **Install framework** | — | `install`, `init` |
224
- | **Health check** | — | `health`, `validate`, `doctor` |
225
- | **Generate reports** | — | `report`, `analytics` |
226
- | **Install skills** | — | `skill:install` |
227
- | **Publish agents** | — | `publish-agent` |
228
- | **View capabilities** | framework-help | `capabilities` |
140
+ Fires when a validation/check completes. Tracks outcomes for session context.
229
141
 
230
- MCP servers = runtime tools (analyze, lint, scan, orchestrate while coding)
231
- CLI commands = framework management (install, configure, report, publish)
142
+ ### on_error
232
143
 
233
- ## Quick Decision Guide
144
+ Fires when a tool call fails. Logs the error and tracks it.
145
+
146
+ ## Slash Command
234
147
 
235
- | User Says | Run |
236
- |----------|-----|
237
- | "Is StringRay set up?" | `npx strray-ai health` |
238
- | "Fix StringRay" | `npx strray-ai fix` |
239
- | "What can StringRay do?" | `npx strray-ai capabilities` |
240
- | "How are agents performing?" | `npx strray-ai report --type agent-usage` |
241
- | "Install the X skill pack" | `npx strray-ai skill:install <name>` |
242
- | "What skills are installed?" | `npx strray-ai antigravity status` |
243
- | "Publish agent X" | `npx strray-ai publish-agent --agent X` |
244
- | "Set up MCP in Hermes" | Add config to `~/.hermes/config.yaml` (see above) |
148
+ ```
149
+ /strray status — Plugin and framework health (calls bridge)
150
+ /strray stats — Session pipeline statistics
151
+ /strray help — Show available commands
152
+ /sr status — Alias
153
+ ```
245
154
 
246
- ## Native Hermes Plugin
155
+ ## Session Stats (tracked automatically)
247
156
 
248
- StringRay ships a native Hermes Agent plugin (`src/integrations/hermes-agent/`) that provides:
157
+ The plugin tracks per-session counters visible via `/strray stats`:
158
+ - total_tool_calls, code_operations, strray_mcp_calls, native_tool_calls
159
+ - quality_gate_runs, quality_gate_blocks
160
+ - pre_processor_runs, post_processor_runs
161
+ - bridge_calls, bridge_errors
249
162
 
250
- **3 Tools:**
251
- | Tool | Purpose |
252
- |------|---------|
253
- | `strray_validate` | Pre-commit validation on files — codex, rules, quality gates |
254
- | `strray_codex_check` | Validate code against the 60-term Universal Development Codex |
255
- | `strray_health` | Framework health check — version, agents, MCP status |
163
+ ## Logging
164
+
165
+ All logs go to `logs/framework/` in the project root:
256
166
 
257
- **2 Hooks:**
258
- | Hook | Purpose |
167
+ | File | Content |
259
168
  |------|---------|
260
- | `pre_tool_call` | Tracks stats, nudges when native tools used instead of StringRay MCP equivalents |
261
- | `post_tool_call` | Logs tool usage, tracks file operations for enforcement context |
169
+ | `activity.log` | All pipeline events (quality gates, processors, nudges, errors) |
170
+ | `plugin-tool-events.log` | Tool start/complete events with durations |
262
171
 
263
- **Slash Command:**
264
- - `/strray status` — Plugin and MCP health
265
- - `/strray stats` — Session tool usage statistics
266
- - `/strray help` — Show available commands
172
+ ## Quick Decision Guide
267
173
 
268
- **Install:**
174
+ | User Says | Tool / Command |
175
+ |----------|---------------|
176
+ | "Is StringRay working?" | `strray_health()` or `/strray status` |
177
+ | "Check these files before I commit" | `strray_validate(files=[...], operation="commit")` |
178
+ | "Is this code codex compliant?" | `strray_codex_check(code=..., operation="create")` |
179
+ | "Set up git hooks" | `strray_hooks(action="install")` |
180
+ | "What hooks are installed?" | `strray_hooks(action="status")` |
181
+ | "Show session stats" | `/strray stats` |
182
+ | "Why is the bridge failing?" | Check `strray_health()` → if `framework: "not_loaded"`, verify `dist/` symlink |
183
+
184
+ ## Bridge Commands (internal)
185
+
186
+ These are called by the Python tools via `bridge.mjs`, not directly by the LLM:
187
+
188
+ | Command | What it does |
189
+ |---------|-------------|
190
+ | `health` | Framework health check |
191
+ | `validate` | Run quality gate on files |
192
+ | `codex-check` | Check code against codex rules |
193
+ | `pre-process` | Quality gate + pre-processors before tool |
194
+ | `post-process` | Post-processors after tool |
195
+ | `hooks` | Git hook management |
196
+ | `stats` | Bridge/framework statistics |
197
+
198
+ Bridge can be invoked directly for debugging:
269
199
  ```bash
270
- # Copy plugin to Hermes plugins directory
271
- cp -r src/integrations/hermes-agent ~/.hermes/plugins/strray-hermes/
272
- # Restart Hermes — plugin auto-loads
200
+ echo '{"command":"health"}' | node ~/.hermes/plugins/strray-hermes/bridge.mjs
201
+ node ~/.hermes/plugins/strray-hermes/bridge.mjs health --cwd /path/to/project
273
202
  ```
274
203
 
275
- The plugin works alongside the MCP servers. The MCP servers provide deep analysis tools (linting, security scanning, architecture assessment, orchestration), while the native plugin provides quick CLI-based health/validate/codex tools and enforcement hooks.
204
+ ## Relationship to MCP Servers
205
+
206
+ The plugin and MCP servers are complementary:
207
+ - **Plugin tools** = offline-first, always available, lightweight (validate, codex check, health, hooks)
208
+ - **MCP servers** = deeper analysis requiring running Node.js (lint, security scan, architecture assessment, orchestration, codebase search)
209
+
210
+ The plugin's pre_tool_call hook nudges when an MCP alternative exists (e.g., "use mcp_strray_lint_lint instead of raw eslint"). This is advisory, not blocking.
276
211
 
277
212
  ## Pitfalls
278
213
 
279
- - `install` is heavyweight detects and may install OpenCode. Use `init` for config-only.
280
- - `report` goes to stdout. Use `-o <file>` to save to disk.
281
- - `skill:install` with a GitHub URL clones the repo. Requires network.
282
- - Some commands look for `.opencode/` in CWD. Run from project root.
283
- - `publish-agent` requires AgentStore auth. Fails silently without it.
284
- - Orchestrator MCP server path is nested: `dist/mcps/orchestrator/server.js` (not `orchestrator.server.js`).
285
- - Use absolute paths in MCP args if Hermes CWD differs from project root.
286
- - Increase timeout to 60s for orchestrator and researcher they do heavier analysis.
287
- - Plugin hooks use `logger.info` for nudges — these show as `[strray] Tip: ...` in Hermes logs.
288
- - `strray_codex_check` with `code` parameter does lightweight local check. For full validation, use MCP server `mcp_strray_enforcer_codex_enforcement`.
214
+ - Plugin requires restart after install/edit: Hermes loads plugins once at session start.
215
+ - Bridge needs `dist/` symlink: The bridge loads compiled `.js` from `dist/` `node_modules/strray-ai/dist/`. If the symlink breaks, bridge returns `framework: "not_loaded"`.
216
+ - `strray_codex_check` without `code` param returns health, not a codex check. Pass `code` for actual validation.
217
+ - CLI fallback requires `npx strray-ai` in PATH. If bridge fails and CLI isn't available, tools return errors.
218
+ - Quality gate blocks are logged but NOT enforced (advisory). The tool returns violations; the agent decides what to do.
219
+ - Git hooks use symlinks from `.git/hooks/` `hooks/`. If the `hooks/` directory doesn't exist in the project, `strray_hooks(action="install")` skips those hooks.
220
+ - Project root detection walks up from CWD looking for `node_modules/strray-ai`, `.opencode/strray/features.json`, or `package.json`. Override with `STRRAY_PROJECT_ROOT` env var.
221
+ - `logs/framework/` is created automatically. Never breaks the agent if permissions fail.
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.15.16",
2
+ "version": "1.15.18",
3
3
  "lastUpdated": "2026-03-09",
4
4
  "errorPreventionTarget": 0.996,
5
5
  "terms": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./config.schema.json",
3
- "version": "1.15.16",
3
+ "version": "1.15.18",
4
4
  "description": "StringRay Framework - Token Management & Performance Configuration",
5
5
 
6
6
  "token_management": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "$schema": "./features.schema.json",
3
- "version": "1.15.16",
3
+ "version": "1.15.18",
4
4
  "description": "StringRay Framework - Unified Feature Configuration",
5
5
  "token_optimization": {
6
6
  "enabled": true,
@@ -4,19 +4,19 @@
4
4
  "openclaw": {
5
5
  "enabled": false,
6
6
  "type": "external-service",
7
- "version": "1.15.16",
7
+ "version": "1.15.18",
8
8
  "config": {}
9
9
  },
10
10
  "python-bridge": {
11
11
  "enabled": false,
12
12
  "type": "protocol-bridge",
13
- "version": "1.15.16",
13
+ "version": "1.15.18",
14
14
  "config": {}
15
15
  },
16
16
  "react": {
17
17
  "enabled": false,
18
18
  "type": "framework-adapter",
19
- "version": "1.15.16",
19
+ "version": "1.15.18",
20
20
  "config": {}
21
21
  }
22
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"librarian-agents-updater.d.ts","sourceRoot":"","sources":["../../src/agents/librarian-agents-updater.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,qBAAa,sBAAsB;IACjC;;;OAGG;IACG,cAAc,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBxE;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiEpC;;;OAGG;IACH,OAAO,CAAC,aAAa;YA4BP,cAAc;IAsD5B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,UAAU;IAiDlB,OAAO,CAAC,gBAAgB;IAkExB,OAAO,CAAC,gBAAgB;CAgFzB;AAGD,eAAO,MAAM,uBAAuB,wBAA+B,CAAC"}
1
+ {"version":3,"file":"librarian-agents-updater.d.ts","sourceRoot":"","sources":["../../src/agents/librarian-agents-updater.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,qBAAa,sBAAsB;IACjC;;;OAGG;IACG,cAAc,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBxE;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiEpC;;;OAGG;IACH,OAAO,CAAC,aAAa;YA4BP,cAAc;IAsD5B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,UAAU;IAiDlB,OAAO,CAAC,gBAAgB;IAkExB,OAAO,CAAC,gBAAgB;CAgFzB;AAGD,eAAO,MAAM,uBAAuB,wBAA+B,CAAC"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import * as fs from "fs";
8
8
  import * as path from "path";
9
+ import { frameworkLogger } from "../core/framework-logger.js";
9
10
  export class LibrarianAgentsUpdater {
10
11
  /**
11
12
  * Main entry point to update AGENTS.md based on project analysis
@@ -23,7 +24,9 @@ export class LibrarianAgentsUpdater {
23
24
  const mergedContent = this.mergeAgentsMd(agentsPath, autoContent);
24
25
  // Write to file
25
26
  fs.writeFileSync(agentsPath, mergedContent, "utf-8");
26
- console.log(`[Librarian] Updated AGENTS.md at ${agentsPath}`);
27
+ frameworkLogger.log("librarian-agents-updater", "agents-md-updated", "info", {
28
+ message: `Updated AGENTS.md at ${agentsPath}`,
29
+ });
27
30
  }
28
31
  /**
29
32
  * Generate only the auto-generated sections with markers