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.
- package/.opencode/codex.codex +1 -1
- package/.opencode/enforcer-config.json +2 -2
- package/.opencode/package.json +1 -1
- package/.opencode/plugins/strray-codex-injection.js +3 -2
- package/.opencode/skills/hermes-agent/SKILL.md +154 -221
- package/.opencode/strray/codex.json +1 -1
- package/.opencode/strray/config.json +1 -1
- package/.opencode/strray/features.json +1 -1
- package/.opencode/strray/integrations.json +3 -3
- package/dist/agents/librarian-agents-updater.d.ts.map +1 -1
- package/dist/agents/librarian-agents-updater.js +4 -1
- package/dist/agents/librarian-agents-updater.js.map +1 -1
- package/dist/analytics/consent-manager.d.ts.map +1 -1
- package/dist/analytics/consent-manager.js +2 -1
- package/dist/analytics/consent-manager.js.map +1 -1
- package/dist/analytics/routing-refiner.js +1 -1
- package/dist/cli/server.js +9 -3
- package/dist/cli/server.js.map +1 -1
- package/dist/core/activity-logger.d.ts.map +1 -1
- package/dist/core/activity-logger.js +4 -3
- package/dist/core/activity-logger.js.map +1 -1
- package/dist/core/boot-orchestrator.d.ts.map +1 -1
- package/dist/core/boot-orchestrator.js +39 -23
- package/dist/core/boot-orchestrator.js.map +1 -1
- package/dist/core/codex-injector.d.ts.map +1 -1
- package/dist/core/codex-injector.js +16 -6
- package/dist/core/codex-injector.js.map +1 -1
- package/dist/core/config-loader.d.ts.map +1 -1
- package/dist/core/config-loader.js +2 -1
- package/dist/core/config-loader.js.map +1 -1
- package/dist/core/config-paths.d.ts +6 -1
- package/dist/core/config-paths.d.ts.map +1 -1
- package/dist/core/config-paths.js +8 -1
- package/dist/core/config-paths.js.map +1 -1
- package/dist/core/features-config.js +1 -1
- package/dist/core/framework-logger.js +3 -3
- package/dist/core/framework-logger.js.map +1 -1
- package/dist/core/strray-init.js +4 -1
- package/dist/core/strray-init.js.map +1 -1
- package/dist/delegation/analytics/learning-engine.d.ts.map +1 -1
- package/dist/delegation/analytics/learning-engine.js +2 -1
- package/dist/delegation/analytics/learning-engine.js.map +1 -1
- package/dist/delegation/analytics/routing-analytics.d.ts.map +1 -1
- package/dist/delegation/analytics/routing-analytics.js +2 -1
- package/dist/delegation/analytics/routing-analytics.js.map +1 -1
- package/dist/delegation/session-coordinator.js +2 -1
- package/dist/delegation/session-coordinator.js.map +1 -1
- package/dist/enforcement/enforcer-tools.d.ts.map +1 -1
- package/dist/enforcement/enforcer-tools.js +15 -8
- package/dist/enforcement/enforcer-tools.js.map +1 -1
- package/dist/hooks/validation-hooks.d.ts.map +1 -1
- package/dist/hooks/validation-hooks.js +11 -3
- package/dist/hooks/validation-hooks.js.map +1 -1
- package/dist/jobs/job-correlation-fix.d.ts.map +1 -1
- package/dist/jobs/job-correlation-fix.js +5 -3
- package/dist/jobs/job-correlation-fix.js.map +1 -1
- package/dist/jobs/job-correlation-manager.d.ts.map +1 -1
- package/dist/jobs/job-correlation-manager.js +5 -2
- package/dist/jobs/job-correlation-manager.js.map +1 -1
- package/dist/mcps/architect-tools.server.js +1 -1
- package/dist/mcps/auto-format.server.js +1 -1
- package/dist/mcps/boot-orchestrator.server.js +1 -1
- package/dist/mcps/config/server-config-registry.d.ts.map +1 -1
- package/dist/mcps/config/server-config-registry.js +6 -0
- package/dist/mcps/config/server-config-registry.js.map +1 -1
- package/dist/mcps/connection/connection-manager.d.ts.map +1 -1
- package/dist/mcps/connection/connection-manager.js +2 -1
- package/dist/mcps/connection/connection-manager.js.map +1 -1
- package/dist/mcps/connection/connection-pool.d.ts.map +1 -1
- package/dist/mcps/connection/connection-pool.js +3 -2
- package/dist/mcps/connection/connection-pool.js.map +1 -1
- package/dist/mcps/enforcer-tools.server.js +1 -1
- package/dist/mcps/estimation.server.js +1 -1
- package/dist/mcps/framework-compliance-audit.server.js +1 -1
- package/dist/mcps/framework-help.server.js +1 -1
- package/dist/mcps/knowledge-skills/api-design.server.js +2 -2
- package/dist/mcps/knowledge-skills/api-design.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +2 -2
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +1 -1
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +2 -2
- package/dist/mcps/knowledge-skills/code-analyzer.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/code-review.server.js +2 -2
- package/dist/mcps/knowledge-skills/code-review.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/content-creator.server.js +1 -1
- package/dist/mcps/knowledge-skills/database-design.server.js +2 -2
- package/dist/mcps/knowledge-skills/database-design.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +2 -2
- package/dist/mcps/knowledge-skills/devops-deployment.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/git-workflow.server.js +2 -2
- package/dist/mcps/knowledge-skills/git-workflow.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +1 -1
- package/dist/mcps/knowledge-skills/log-monitor.server.js +1 -1
- package/dist/mcps/knowledge-skills/mobile-development.server.js +2 -2
- package/dist/mcps/knowledge-skills/mobile-development.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +1 -1
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +2 -2
- package/dist/mcps/knowledge-skills/performance-optimization.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/project-analysis.server.js +1 -1
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +2 -2
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/security-audit.server.js +2 -2
- package/dist/mcps/knowledge-skills/security-audit.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +1 -1
- package/dist/mcps/knowledge-skills/session-management.server.js +1 -1
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +2 -2
- package/dist/mcps/knowledge-skills/skill-invocation.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/strategist.server.js +1 -1
- package/dist/mcps/knowledge-skills/tech-writer.server.js +3 -3
- package/dist/mcps/knowledge-skills/tech-writer.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +2 -2
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +2 -2
- package/dist/mcps/knowledge-skills/testing-strategy.server.js.map +1 -1
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +1 -1
- package/dist/mcps/lint.server.js +1 -1
- package/dist/mcps/model-health-check.server.js +1 -1
- package/dist/mcps/performance-analysis.server.js +1 -1
- package/dist/mcps/processor-pipeline.server.js +1 -1
- package/dist/mcps/researcher.server.js +1 -1
- package/dist/mcps/security-scan.server.js +1 -1
- package/dist/mcps/state-manager.server.js +1 -1
- package/dist/monitoring/activity-log-writer.js +4 -4
- package/dist/monitoring/activity-log-writer.js.map +1 -1
- package/dist/monitoring/enterprise-monitoring-system.d.ts.map +1 -1
- package/dist/monitoring/enterprise-monitoring-system.js +7 -4
- package/dist/monitoring/enterprise-monitoring-system.js.map +1 -1
- package/dist/monitoring/metrics-endpoint.d.ts.map +1 -1
- package/dist/monitoring/metrics-endpoint.js +2 -1
- package/dist/monitoring/metrics-endpoint.js.map +1 -1
- package/dist/monitoring/test-auto-generation-monitor.d.ts.map +1 -1
- package/dist/monitoring/test-auto-generation-monitor.js +4 -1
- package/dist/monitoring/test-auto-generation-monitor.js.map +1 -1
- package/dist/orchestrator/intelligent-commit-batcher.d.ts.map +1 -1
- package/dist/orchestrator/intelligent-commit-batcher.js +3 -5
- package/dist/orchestrator/intelligent-commit-batcher.js.map +1 -1
- package/dist/orchestrator/self-direction-activation.d.ts.map +1 -1
- package/dist/orchestrator/self-direction-activation.js +20 -20
- package/dist/orchestrator/self-direction-activation.js.map +1 -1
- package/dist/orchestrator/universal-registry-bridge.js +1 -1
- package/dist/performance/advanced-regression-testing.d.ts.map +1 -1
- package/dist/performance/advanced-regression-testing.js +3 -2
- package/dist/performance/advanced-regression-testing.js.map +1 -1
- package/dist/performance/performance-budget-enforcer.d.ts.map +1 -1
- package/dist/performance/performance-budget-enforcer.js +18 -7
- package/dist/performance/performance-budget-enforcer.js.map +1 -1
- package/dist/performance/performance-ci-gates.d.ts.map +1 -1
- package/dist/performance/performance-ci-gates.js +4 -8
- package/dist/performance/performance-ci-gates.js.map +1 -1
- package/dist/performance/performance-monitoring-dashboard.js +4 -4
- package/dist/performance/performance-monitoring-dashboard.js.map +1 -1
- package/dist/performance/performance-regression-tester.d.ts.map +1 -1
- package/dist/performance/performance-regression-tester.js +6 -5
- package/dist/performance/performance-regression-tester.js.map +1 -1
- package/dist/performance/performance-system-orchestrator.js +2 -2
- package/dist/performance/performance-system-orchestrator.js.map +1 -1
- package/dist/plugin/strray-codex-injection.d.ts.map +1 -1
- package/dist/plugin/strray-codex-injection.js +3 -2
- package/dist/plugin/strray-codex-injection.js.map +1 -1
- package/dist/postprocessor/autofix/AutoFixEngine.js +1 -1
- package/dist/postprocessor/autofix/AutoFixEngine.js.map +1 -1
- package/dist/postprocessor/escalation/EscalationEngine.d.ts.map +1 -1
- package/dist/postprocessor/escalation/EscalationEngine.js +10 -9
- package/dist/postprocessor/escalation/EscalationEngine.js.map +1 -1
- package/dist/postprocessor/redeploy/RedeployCoordinator.js +2 -2
- package/dist/postprocessor/redeploy/RedeployCoordinator.js.map +1 -1
- package/dist/postprocessor/success/SuccessHandler.js +11 -11
- package/dist/postprocessor/success/SuccessHandler.js.map +1 -1
- package/dist/postprocessor/triggers/GitHookTrigger.d.ts.map +1 -1
- package/dist/postprocessor/triggers/GitHookTrigger.js +0 -6
- package/dist/postprocessor/triggers/GitHookTrigger.js.map +1 -1
- package/dist/processors/processor-manager.d.ts.map +1 -1
- package/dist/processors/processor-manager.js +18 -5
- package/dist/processors/processor-manager.js.map +1 -1
- package/dist/processors/test-auto-creation-processor.d.ts.map +1 -1
- package/dist/processors/test-auto-creation-processor.js +16 -1
- package/dist/processors/test-auto-creation-processor.js.map +1 -1
- package/dist/reporting/orchestration-flow-reporter.js +2 -2
- package/dist/reporting/orchestration-flow-reporter.js.map +1 -1
- package/dist/security/security-hardening-system.d.ts.map +1 -1
- package/dist/security/security-hardening-system.js +23 -5
- package/dist/security/security-hardening-system.js.map +1 -1
- package/dist/security/security-headers.d.ts.map +1 -1
- package/dist/security/security-headers.js +2 -1
- package/dist/security/security-headers.js.map +1 -1
- package/dist/security/security-middleware.d.ts +2 -0
- package/dist/security/security-middleware.d.ts.map +1 -1
- package/dist/security/security-middleware.js +29 -1
- package/dist/security/security-middleware.js.map +1 -1
- package/dist/security/security-scanner.js +13 -7
- package/dist/security/security-scanner.js.map +1 -1
- package/dist/services/inference-tuner.js +1 -1
- package/dist/services/inference-tuner.js.map +1 -1
- package/dist/session/session-cleanup-manager.d.ts.map +1 -1
- package/dist/session/session-cleanup-manager.js +11 -4
- package/dist/session/session-cleanup-manager.js.map +1 -1
- package/dist/session/session-monitor.js +8 -2
- package/dist/session/session-monitor.js.map +1 -1
- package/dist/session/session-state-manager.d.ts.map +1 -1
- package/dist/session/session-state-manager.js +19 -5
- package/dist/session/session-state-manager.js.map +1 -1
- package/dist/state/state-manager.d.ts.map +1 -1
- package/dist/state/state-manager.js +1 -1
- package/dist/state/state-manager.js.map +1 -1
- package/dist/utils/codex-parser.js +8 -4
- package/dist/utils/codex-parser.js.map +1 -1
- package/dist/utils/command-runner.d.ts +9 -0
- package/dist/utils/command-runner.d.ts.map +1 -1
- package/dist/utils/command-runner.js +54 -1
- package/dist/utils/command-runner.js.map +1 -1
- package/dist/utils/import-resolver.d.ts.map +1 -1
- package/dist/utils/import-resolver.js +2 -1
- package/dist/utils/import-resolver.js.map +1 -1
- package/dist/utils/shutdown-handler.js +4 -4
- package/dist/utils/shutdown-handler.js.map +1 -1
- package/dist/utils/test-template-generator.d.ts.map +1 -1
- package/dist/utils/test-template-generator.js +2 -1
- package/dist/utils/test-template-generator.js.map +1 -1
- package/package.json +1 -1
- package/scripts/node/universal-version-manager.js +1 -1
package/.opencode/codex.codex
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "1.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.
|
|
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.
|
|
223
|
+
"version": "1.15.18",
|
|
224
224
|
"terms": [
|
|
225
225
|
1,
|
|
226
226
|
2,
|
package/.opencode/package.json
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
|
4
|
-
version: 1.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,
|
|
8
|
+
tags: [StringRay, Plugin, Validation, Codex, GitHooks, Bridge]
|
|
10
9
|
related_skills: []
|
|
11
|
-
prerequisites:
|
|
12
|
-
commands: [npx]
|
|
13
10
|
---
|
|
14
11
|
|
|
15
|
-
# StringRay
|
|
12
|
+
# StringRay Hermes Plugin (strray-hermes)
|
|
16
13
|
|
|
17
|
-
|
|
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
|
-
|
|
22
|
-
- User
|
|
23
|
-
- User
|
|
24
|
-
- User asks
|
|
25
|
-
- User wants to
|
|
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
|
-
##
|
|
24
|
+
## Plugin Architecture
|
|
31
25
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
#
|
|
36
|
-
|
|
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
|
-
|
|
39
|
-
|
|
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
|
-
|
|
42
|
-
npx strray-ai status
|
|
44
|
+
**Fallback:** When bridge is unavailable, tools fall back to `npx strray-ai` CLI commands.
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
npx strray-ai validate
|
|
46
|
+
**Config path resolution:** `STRRAY_CONFIG_DIR/` > `.strray/` > `.opencode/strray/` > built-in defaults.
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
npx strray-ai health
|
|
48
|
+
## 4 Tools
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
npx strray-ai doctor
|
|
50
|
+
### strray_validate
|
|
52
51
|
|
|
53
|
-
|
|
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
|
-
|
|
57
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
-
|
|
70
|
-
npx strray-ai report --type agent-usage
|
|
63
|
+
Returns: pass/fail with per-file results and violations.
|
|
71
64
|
|
|
72
|
-
|
|
73
|
-
npx strray-ai report -o report.json
|
|
65
|
+
### strray_codex_check
|
|
74
66
|
|
|
75
|
-
|
|
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
|
-
|
|
79
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
81
|
+
### strray_health
|
|
90
82
|
|
|
91
|
-
|
|
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
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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
|
-
|
|
103
|
-
npx strray-ai skill:install <github-url>
|
|
89
|
+
Returns: framework status, version, component availability, node version.
|
|
104
90
|
|
|
105
|
-
|
|
106
|
-
npx strray-ai skill:install <github-url> --path skills/typescript
|
|
91
|
+
### strray_hooks
|
|
107
92
|
|
|
108
|
-
|
|
109
|
-
npx strray-ai skill:registry list
|
|
93
|
+
Manage StringRay git hooks (install, uninstall, list, status).
|
|
110
94
|
|
|
111
|
-
|
|
112
|
-
|
|
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
|
-
|
|
102
|
+
Parameters:
|
|
103
|
+
- `action` (required, string) — install, uninstall, list, status
|
|
104
|
+
- `hooks` (array) — which hooks to manage (default: all four)
|
|
116
105
|
|
|
117
|
-
|
|
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
|
-
|
|
122
|
-
|
|
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
|
-
|
|
125
|
-
npx strray-ai publish-agent --agent <name> --version 2.0.0
|
|
126
|
-
```
|
|
115
|
+
## 5 Lifecycle Hooks
|
|
127
116
|
|
|
128
|
-
|
|
117
|
+
These fire automatically — no action needed from the user or agent.
|
|
129
118
|
|
|
130
|
-
|
|
131
|
-
# Run autonomous inference improvement cycle
|
|
132
|
-
npx strray-ai inference:improve
|
|
119
|
+
### pre_tool_call
|
|
133
120
|
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
136
|
+
Fires when a code-producing tool writes a file. Validates and logs the event.
|
|
213
137
|
|
|
214
|
-
###
|
|
138
|
+
### on_validation_result
|
|
215
139
|
|
|
216
|
-
|
|
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
|
-
|
|
231
|
-
CLI commands = framework management (install, configure, report, publish)
|
|
142
|
+
### on_error
|
|
232
143
|
|
|
233
|
-
|
|
144
|
+
Fires when a tool call fails. Logs the error and tracks it.
|
|
145
|
+
|
|
146
|
+
## Slash Command
|
|
234
147
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
##
|
|
155
|
+
## Session Stats (tracked automatically)
|
|
247
156
|
|
|
248
|
-
|
|
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
|
-
|
|
251
|
-
|
|
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
|
-
|
|
258
|
-
| Hook | Purpose |
|
|
167
|
+
| File | Content |
|
|
259
168
|
|------|---------|
|
|
260
|
-
| `
|
|
261
|
-
| `
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
271
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
280
|
-
- `
|
|
281
|
-
- `
|
|
282
|
-
-
|
|
283
|
-
-
|
|
284
|
-
-
|
|
285
|
-
-
|
|
286
|
-
-
|
|
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.
|
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
"openclaw": {
|
|
5
5
|
"enabled": false,
|
|
6
6
|
"type": "external-service",
|
|
7
|
-
"version": "1.15.
|
|
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.
|
|
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.
|
|
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;
|
|
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
|
-
|
|
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
|