strray-ai 1.14.2 → 1.14.4
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/plugins/strray-codex-injection.js +6 -0
- package/AGENTS-consumer.md +19 -23
- package/AGENTS.md +19 -23
- package/README.md +77 -86
- package/dist/agents/index.d.ts +1 -14
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +1 -27
- package/dist/agents/index.js.map +1 -1
- package/dist/cli/commands/antigravity-status.d.ts.map +1 -1
- package/dist/cli/commands/antigravity-status.js +40 -36
- package/dist/cli/commands/antigravity-status.js.map +1 -1
- package/dist/cli/commands/skill-install.d.ts.map +1 -1
- package/dist/cli/commands/skill-install.js +65 -36
- package/dist/cli/commands/skill-install.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +0 -1
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/config/default-agents.d.ts.map +1 -1
- package/dist/config/default-agents.js +0 -169
- package/dist/config/default-agents.js.map +1 -1
- package/dist/delegation/agent-delegator.d.ts.map +1 -1
- package/dist/delegation/agent-delegator.js +0 -13
- package/dist/delegation/agent-delegator.js.map +1 -1
- package/dist/mcps/agent-resolver.d.ts.map +1 -1
- package/dist/mcps/agent-resolver.js +0 -5
- package/dist/mcps/agent-resolver.js.map +1 -1
- package/dist/mcps/config/server-config-registry.d.ts.map +1 -1
- package/dist/mcps/config/server-config-registry.js +1 -100
- package/dist/mcps/config/server-config-registry.js.map +1 -1
- package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts.map +1 -1
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +3 -15
- package/dist/mcps/knowledge-skills/skill-invocation.server.js.map +1 -1
- package/dist/mcps/mcp-client.d.ts.map +1 -1
- package/dist/mcps/mcp-client.js +0 -15
- package/dist/mcps/mcp-client.js.map +1 -1
- package/dist/mcps/orchestrator/config/agent-capabilities.d.ts.map +1 -1
- package/dist/mcps/orchestrator/config/agent-capabilities.js +0 -5
- package/dist/mcps/orchestrator/config/agent-capabilities.js.map +1 -1
- package/dist/mcps/simulation/index.d.ts +1 -1
- package/dist/mcps/simulation/index.d.ts.map +1 -1
- package/dist/mcps/simulation/index.js +1 -1
- package/dist/mcps/simulation/index.js.map +1 -1
- package/dist/mcps/simulation/server-simulations.d.ts +0 -7
- package/dist/mcps/simulation/server-simulations.d.ts.map +1 -1
- package/dist/mcps/simulation/server-simulations.js +0 -59
- package/dist/mcps/simulation/server-simulations.js.map +1 -1
- package/dist/orchestrator/agent-spawn-governor.d.ts.map +1 -1
- package/dist/orchestrator/agent-spawn-governor.js +1 -5
- package/dist/orchestrator/agent-spawn-governor.js.map +1 -1
- package/dist/orchestrator/multi-agent-orchestration-coordinator.d.ts.map +1 -1
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +2 -21
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js.map +1 -1
- package/dist/plugin/strray-codex-injection.d.ts.map +1 -1
- package/dist/plugin/strray-codex-injection.js +6 -0
- package/dist/plugin/strray-codex-injection.js.map +1 -1
- package/dist/processors/agents-md-validation-processor.d.ts.map +1 -1
- package/dist/processors/agents-md-validation-processor.js +7 -22
- package/dist/processors/agents-md-validation-processor.js.map +1 -1
- package/licenses/skills/LICENSE.agency-agents +23 -0
- package/licenses/skills/LICENSE.ai-web3-security +34 -0
- package/licenses/skills/LICENSE.anthropic-skills +38 -0
- package/licenses/skills/LICENSE.antigravity +42 -0
- package/licenses/skills/LICENSE.gemini-skills +118 -0
- package/licenses/skills/LICENSE.impeccable +75 -0
- package/licenses/skills/LICENSE.minimax +23 -0
- package/licenses/skills/LICENSE.openviking +74 -0
- package/licenses/skills/LICENSE.superpowers +23 -0
- package/licenses/skills/LICENSE.ui-ux-pro-max +23 -0
- package/licenses/skills/LICENSE.vuejs-nuxt +23 -0
- package/opencode.json +0 -70
- package/package.json +2 -3
- package/scripts/node/README.md +1 -1
- package/scripts/node/postinstall.cjs +16 -6
- package/scripts/node/universal-version-manager.js +3 -3
- package/scripts/node/version-manager.mjs +3 -2
- package/src/skills/api-design/SKILL.md +1 -0
- package/src/skills/architect-tools/SKILL.md +1 -0
- package/src/skills/architecture-patterns/SKILL.md +1 -0
- package/src/skills/auto-format/SKILL.md +1 -0
- package/src/skills/backend-engineer/SKILL.md +49 -0
- package/src/skills/boot-orchestrator/SKILL.md +1 -0
- package/src/skills/bug-triage/SKILL.md +1 -0
- package/src/skills/code-analyzer/SKILL.md +1 -0
- package/src/skills/code-review/SKILL.md +1 -0
- package/src/skills/content-creator/SKILL.md +38 -0
- package/src/skills/database-engineer/SKILL.md +46 -0
- package/src/skills/devops-engineer/SKILL.md +49 -0
- package/src/skills/enforcer/SKILL.md +1 -0
- package/src/skills/framework-compliance-audit/SKILL.md +1 -0
- package/src/skills/frontend-engineer/SKILL.md +49 -0
- package/src/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
- package/src/skills/git-workflow/SKILL.md +1 -0
- package/src/skills/growth-strategist/SKILL.md +48 -0
- package/src/skills/inference-improve/SKILL.md +1 -0
- package/src/skills/lint/SKILL.md +1 -0
- package/src/skills/log-monitor/SKILL.md +1 -0
- package/src/skills/mobile-developer/SKILL.md +42 -0
- package/src/skills/model-health-check/SKILL.md +1 -0
- package/src/skills/multimodal-looker/SKILL.md +1 -0
- package/src/skills/orchestrator/SKILL.md +1 -0
- package/src/skills/performance-analysis/SKILL.md +1 -0
- package/src/skills/performance-engineer/SKILL.md +41 -0
- package/src/skills/performance-optimization/SKILL.md +1 -0
- package/src/skills/processor-pipeline/SKILL.md +1 -0
- package/src/skills/project-analysis/SKILL.md +1 -0
- package/src/skills/refactoring-strategies/SKILL.md +1 -0
- package/src/skills/researcher/SKILL.md +1 -0
- package/src/skills/security-audit/SKILL.md +1 -0
- package/src/skills/security-scan/SKILL.md +1 -0
- package/src/skills/seo-consultant/SKILL.md +43 -0
- package/src/skills/session-management/SKILL.md +1 -0
- package/src/skills/state-manager/SKILL.md +1 -0
- package/src/skills/storyteller/SKILL.md +130 -0
- package/src/skills/strategist/SKILL.md +32 -0
- package/src/skills/tech-writer/SKILL.md +37 -0
- package/src/skills/testing-best-practices/SKILL.md +1 -0
- package/src/skills/testing-strategy/SKILL.md +1 -0
- package/src/skills/ui-ux-design/SKILL.md +1 -0
- package/.opencode/agents/backend-engineer.yml +0 -88
- package/.opencode/agents/content-creator.yml +0 -46
- package/.opencode/agents/database-engineer.yml +0 -47
- package/.opencode/agents/devops-engineer.yml +0 -57
- package/.opencode/agents/frontend-engineer.yml +0 -89
- package/.opencode/agents/growth-strategist.yml +0 -46
- package/.opencode/agents/mobile-developer.yml +0 -47
- package/.opencode/agents/multimodal-looker.yml +0 -103
- package/.opencode/agents/performance-engineer.yml +0 -56
- package/.opencode/agents/seo-consultant.yml +0 -46
- package/.opencode/agents/storyteller.yml +0 -1140
- package/.opencode/agents/strategist.yml +0 -103
- package/.opencode/agents/tech-writer.yml +0 -84
|
@@ -602,6 +602,12 @@ export default async function strrayCodexPlugin(input) {
|
|
|
602
602
|
priority: 20,
|
|
603
603
|
enabled: true,
|
|
604
604
|
});
|
|
605
|
+
processorManager.registerProcessor({
|
|
606
|
+
name: "agentsMdValidation",
|
|
607
|
+
type: "post",
|
|
608
|
+
priority: 30,
|
|
609
|
+
enabled: true,
|
|
610
|
+
});
|
|
605
611
|
// Store for future use
|
|
606
612
|
stateManager.set("processor:manager", processorManager);
|
|
607
613
|
logger.log("✅ Processors registered successfully");
|
package/AGENTS-consumer.md
CHANGED
|
@@ -104,22 +104,19 @@ StringRay uses **two reflection folders** for different purposes:
|
|
|
104
104
|
| Quick learning/insight | `docs/reflections/` |
|
|
105
105
|
| Deep investigation with many discoveries | `docs/reflections/deep/` |
|
|
106
106
|
|
|
107
|
-
### Storyteller
|
|
107
|
+
### Storyteller Skill (formerly @storyteller agent)
|
|
108
108
|
|
|
109
|
-
The
|
|
109
|
+
The storyteller is now a **skill** (not an agent) so it runs with full session context. Invoke it by asking for a reflection/narrative in your current session:
|
|
110
110
|
|
|
111
|
-
| Type | Description | Template Path | Invoke |
|
|
112
|
-
|
|
113
|
-
| `reflection` | Technical deep reflections on development process | `docs/reflections/TEMPLATE.md` |
|
|
114
|
-
| `saga` | Long-form technical saga spanning multiple sessions | `docs/reflections/deep/SAGA_TEMPLATE.md` |
|
|
115
|
-
| `journey` | Investigation/learning journey | `docs/reflections/JOURNEY_TEMPLATE.md` |
|
|
116
|
-
| `narrative` | Technical narrative - telling the story of code | `docs/reflections/NARRATIVE_TEMPLATE.md` |
|
|
117
|
-
| `deep reflection` | Extended narrative with emotional journey | `docs/reflections/deep/TEMPLATE.md` |
|
|
111
|
+
| Type | Description | Template Path | How to Invoke |
|
|
112
|
+
|------|-------------|---------------|---------------|
|
|
113
|
+
| `reflection` | Technical deep reflections on development process | `docs/reflections/TEMPLATE.md` | "write a reflection about X" |
|
|
114
|
+
| `saga` | Long-form technical saga spanning multiple sessions | `docs/reflections/deep/SAGA_TEMPLATE.md` | "write a saga about X" |
|
|
115
|
+
| `journey` | Investigation/learning journey | `docs/reflections/JOURNEY_TEMPLATE.md` | "write a journey about X" |
|
|
116
|
+
| `narrative` | Technical narrative - telling the story of code | `docs/reflections/NARRATIVE_TEMPLATE.md` | "write a narrative about X" |
|
|
117
|
+
| `deep reflection` | Extended narrative with emotional journey | `docs/reflections/deep/TEMPLATE.md` | "write a deep reflection about X" |
|
|
118
118
|
|
|
119
|
-
**
|
|
120
|
-
```
|
|
121
|
-
@storyteller write a reflection about fixing the memory leak
|
|
122
|
-
```
|
|
119
|
+
**Why a skill?** As an agent, @storyteller spawned fresh with zero context and wasted tokens reconstructing what just happened. As a skill, it uses the conversation you are already in -- the LLM knows exactly what occurred.
|
|
123
120
|
|
|
124
121
|
## Available Agents
|
|
125
122
|
|
|
@@ -133,24 +130,23 @@ The `@storyteller` agent supports multiple story types:
|
|
|
133
130
|
| `@refactorer` | Technical debt elimination | `@refactorer optimize code` |
|
|
134
131
|
| `@testing-lead` | Testing strategy | `@testing-lead plan tests` |
|
|
135
132
|
| `@bug-triage-specialist` | Error investigation | `@bug-triage-specialist debug error` |
|
|
136
|
-
| `@storyteller` | Narrative deep reflections | `@storyteller write a journey` |
|
|
137
133
|
| `@researcher` | Codebase exploration | `@researcher find implementation` |
|
|
138
134
|
|
|
139
135
|
|
|
140
136
|
## Available Skills
|
|
141
137
|
|
|
142
|
-
StringRay
|
|
143
|
-
|
|
144
|
-
| Skill | License | Purpose | Location |
|
|
145
|
-
|-------|---------|---------|----------|
|
|
146
|
-
| **Impeccable** | Apache 2.0 | AI frontend design + UI/UX generation | `.opencode/integrations/impeccable/SKILL.md` |
|
|
147
|
-
| **OpenViking** | Apache 2.0 | Context database + RAG integration | `.opencode/integrations/openviking/SKILL.md` |
|
|
148
|
-
| **Antigravity** | Custom | Multi-skill bridge (Impeccable, OpenViking, Claude/SEO) | `.opencode/integrations/antigravity-bridge/SKILL.md` |
|
|
138
|
+
StringRay ships with 30 framework skills and provides a registry of 10 curated community sources.
|
|
149
139
|
|
|
150
|
-
**
|
|
140
|
+
**Manage skills:**
|
|
151
141
|
```bash
|
|
152
|
-
npx strray-ai
|
|
142
|
+
npx strray-ai skill:install # Show starter packs + available sources
|
|
143
|
+
npx strray-ai skill:install <name> # Install from registry
|
|
144
|
+
npx strray-ai skill:registry list # Show all registry sources
|
|
145
|
+
npx strray-ai antigravity status # Show installed skills
|
|
153
146
|
```
|
|
147
|
+
|
|
148
|
+
**License files:** `licenses/skills/LICENSE.<source-name>`
|
|
149
|
+
|
|
154
150
|
## Complexity Routing
|
|
155
151
|
|
|
156
152
|
StringRay automatically routes tasks based on complexity:
|
package/AGENTS.md
CHANGED
|
@@ -104,22 +104,19 @@ StringRay uses **two reflection folders** for different purposes:
|
|
|
104
104
|
| Quick learning/insight | `docs/reflections/` |
|
|
105
105
|
| Deep investigation with many discoveries | `docs/reflections/deep/` |
|
|
106
106
|
|
|
107
|
-
### Storyteller
|
|
107
|
+
### Storyteller Skill (formerly @storyteller agent)
|
|
108
108
|
|
|
109
|
-
The
|
|
109
|
+
The storyteller is now a **skill** (not an agent) so it runs with full session context. Invoke it by asking for a reflection/narrative in your current session:
|
|
110
110
|
|
|
111
|
-
| Type | Description | Template Path | Invoke |
|
|
112
|
-
|
|
113
|
-
| `reflection` | Technical deep reflections on development process | `docs/reflections/TEMPLATE.md` |
|
|
114
|
-
| `saga` | Long-form technical saga spanning multiple sessions | `docs/reflections/deep/SAGA_TEMPLATE.md` |
|
|
115
|
-
| `journey` | Investigation/learning journey | `docs/reflections/JOURNEY_TEMPLATE.md` |
|
|
116
|
-
| `narrative` | Technical narrative - telling the story of code | `docs/reflections/NARRATIVE_TEMPLATE.md` |
|
|
117
|
-
| `deep reflection` | Extended narrative with emotional journey | `docs/reflections/deep/TEMPLATE.md` |
|
|
111
|
+
| Type | Description | Template Path | How to Invoke |
|
|
112
|
+
|------|-------------|---------------|---------------|
|
|
113
|
+
| `reflection` | Technical deep reflections on development process | `docs/reflections/TEMPLATE.md` | "write a reflection about X" |
|
|
114
|
+
| `saga` | Long-form technical saga spanning multiple sessions | `docs/reflections/deep/SAGA_TEMPLATE.md` | "write a saga about X" |
|
|
115
|
+
| `journey` | Investigation/learning journey | `docs/reflections/JOURNEY_TEMPLATE.md` | "write a journey about X" |
|
|
116
|
+
| `narrative` | Technical narrative - telling the story of code | `docs/reflections/NARRATIVE_TEMPLATE.md` | "write a narrative about X" |
|
|
117
|
+
| `deep reflection` | Extended narrative with emotional journey | `docs/reflections/deep/TEMPLATE.md` | "write a deep reflection about X" |
|
|
118
118
|
|
|
119
|
-
**
|
|
120
|
-
```
|
|
121
|
-
@storyteller write a reflection about fixing the memory leak
|
|
122
|
-
```
|
|
119
|
+
**Why a skill?** As an agent, @storyteller spawned fresh with zero context and wasted tokens reconstructing what just happened. As a skill, it uses the conversation you are already in -- the LLM knows exactly what occurred.
|
|
123
120
|
|
|
124
121
|
## Available Agents
|
|
125
122
|
|
|
@@ -133,24 +130,23 @@ The `@storyteller` agent supports multiple story types:
|
|
|
133
130
|
| `@refactorer` | Technical debt elimination | `@refactorer optimize code` |
|
|
134
131
|
| `@testing-lead` | Testing strategy | `@testing-lead plan tests` |
|
|
135
132
|
| `@bug-triage-specialist` | Error investigation | `@bug-triage-specialist debug error` |
|
|
136
|
-
| `@storyteller` | Narrative deep reflections | `@storyteller write a journey` |
|
|
137
133
|
| `@researcher` | Codebase exploration | `@researcher find implementation` |
|
|
138
134
|
|
|
139
135
|
|
|
140
136
|
## Available Skills
|
|
141
137
|
|
|
142
|
-
StringRay
|
|
143
|
-
|
|
144
|
-
| Skill | License | Purpose | Location |
|
|
145
|
-
|-------|---------|---------|----------|
|
|
146
|
-
| **Impeccable** | Apache 2.0 | AI frontend design + UI/UX generation | `.opencode/integrations/impeccable/SKILL.md` |
|
|
147
|
-
| **OpenViking** | Apache 2.0 | Context database + RAG integration | `.opencode/integrations/openviking/SKILL.md` |
|
|
148
|
-
| **Antigravity** | Custom | Multi-skill bridge (Impeccable, OpenViking, Claude/SEO) | `.opencode/integrations/antigravity-bridge/SKILL.md` |
|
|
138
|
+
StringRay ships with 30 framework skills and provides a registry of 10 curated community sources.
|
|
149
139
|
|
|
150
|
-
**
|
|
140
|
+
**Manage skills:**
|
|
151
141
|
```bash
|
|
152
|
-
npx strray-ai
|
|
142
|
+
npx strray-ai skill:install # Show starter packs + available sources
|
|
143
|
+
npx strray-ai skill:install <name> # Install from registry
|
|
144
|
+
npx strray-ai skill:registry list # Show all registry sources
|
|
145
|
+
npx strray-ai antigravity status # Show installed skills
|
|
153
146
|
```
|
|
147
|
+
|
|
148
|
+
**License files:** `licenses/skills/LICENSE.<source-name>`
|
|
149
|
+
|
|
154
150
|
## Complexity Routing
|
|
155
151
|
|
|
156
152
|
StringRay automatically routes tasks based on complexity:
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**Enterprise AI Orchestration Framework for OpenCode/Claude Code**
|
|
4
4
|
|
|
5
|
-
[](https://npmjs.com/package/strray-ai)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](src/__tests__)
|
|
8
8
|
[](https://github.com/htafolla/stringray)
|
|
@@ -23,8 +23,9 @@ This single command:
|
|
|
23
23
|
1. Detects if OpenCode is installed
|
|
24
24
|
2. Auto-installs OpenCode if missing
|
|
25
25
|
3. Layers on the full StringRay kernel (Codex, orchestrator, enforcer, processors, MCP, reflections)
|
|
26
|
-
4. Installs
|
|
27
|
-
5.
|
|
26
|
+
4. Installs 30 framework skills
|
|
27
|
+
5. Sets up the skills registry with 10 curated community sources
|
|
28
|
+
6. Adds CLI commands for agent publishing, skills management, and status
|
|
28
29
|
|
|
29
30
|
**Goal:** Any developer can run one command and instantly get a production-grade, governed agent runtime.
|
|
30
31
|
|
|
@@ -46,18 +47,18 @@ npm install strray-ai
|
|
|
46
47
|
|
|
47
48
|
**What happens during install?**
|
|
48
49
|
- Copies OpenCode configuration files to your project
|
|
49
|
-
- Configures
|
|
50
|
+
- Configures 13 agents with proper capabilities
|
|
50
51
|
- Sets up Codex enforcement rules
|
|
51
52
|
- Enables webhook triggers for CI/CD integration
|
|
52
53
|
- Ready to use with Claude Code immediately
|
|
53
54
|
|
|
54
55
|
## ✨ Features
|
|
55
56
|
|
|
56
|
-
- **🤖
|
|
57
|
+
- **🤖 13 Specialized Agents** - Autonomous agents that read/write code, run commands, and enforce compliance
|
|
57
58
|
- **📏 99.6% Error Prevention** - Universal Development Codex (60 terms)
|
|
58
|
-
- **⚡
|
|
59
|
+
- **⚡ 43 Framework Skills** + 10 curated community sources (170+ additional skills available)
|
|
59
60
|
- **🛡️ Enterprise Security** - Comprehensive validation and scanning
|
|
60
|
-
-
|
|
61
|
+
- **📦 Skills Registry** - Browse and install community skills from GitHub repos
|
|
61
62
|
- **🔄 Complexity-Based Routing** - Intelligent task delegation
|
|
62
63
|
- **🔌 Webhook Integration** - GitHub, GitLab, Bitbucket, Stripe
|
|
63
64
|
- **✅ 2368 Tests** - Production-ready with comprehensive test coverage
|
|
@@ -74,13 +75,11 @@ npm install strray-ai
|
|
|
74
75
|
| `@refactorer` | Technical debt elimination |
|
|
75
76
|
| `@testing-lead` | Testing strategy & coverage |
|
|
76
77
|
| `@bug-triage-specialist` | Error investigation |
|
|
77
|
-
| `@storyteller` | Narrative deep reflections |
|
|
78
78
|
| `@researcher` | Codebase exploration |
|
|
79
|
-
| `@mobile-developer` | iOS/Android/React Native/Flutter |
|
|
80
79
|
|
|
81
80
|
> **Note:** StringRay auto-configures all agents during installation. To customize agent settings, see the [Agent Configuration Guide](https://github.com/htafolla/stringray/blob/main/docs/AGENT_CONFIG.md).
|
|
82
81
|
|
|
83
|
-
[View all
|
|
82
|
+
[View all 13 agents →](https://github.com/htafolla/stringray/blob/main/AGENTS.md)
|
|
84
83
|
|
|
85
84
|
## 📦 OpenClaw Integration
|
|
86
85
|
|
|
@@ -138,7 +137,11 @@ npx strray-ai report # Generate usage and performance reports
|
|
|
138
137
|
npx strray-ai publish-agent --agent orchestrator # Package agent for AgentStore
|
|
139
138
|
|
|
140
139
|
# Skills management
|
|
141
|
-
npx strray-ai
|
|
140
|
+
npx strray-ai skill:install # Show starter packs + available sources
|
|
141
|
+
npx strray-ai skill:install agency-agents # Install from registry (auto-detects format)
|
|
142
|
+
npx strray-ai skill:install <github-url> # Install from any repo
|
|
143
|
+
npx strray-ai skill:registry list # Show all registry sources
|
|
144
|
+
npx strray-ai antigravity status # Show installed skills with licenses
|
|
142
145
|
```
|
|
143
146
|
|
|
144
147
|
**Note:** Installation is automatic via `npm install strray-ai`. The postinstall hook configures everything automatically.
|
|
@@ -251,7 +254,7 @@ stringray/
|
|
|
251
254
|
│ ├── validation/ # Agent config & estimation validators
|
|
252
255
|
│ └── jobs/ # Background job management
|
|
253
256
|
├── .opencode/ # OpenCode configuration
|
|
254
|
-
│ ├── agents/ # Agent configs (
|
|
257
|
+
│ ├── agents/ # Agent configs (13 agents)
|
|
255
258
|
│ ├── strray/ # StringRay config
|
|
256
259
|
│ │ ├── codex.json # 60-term development codex
|
|
257
260
|
│ │ ├── features.json # Feature flags
|
|
@@ -311,100 +314,88 @@ fastify.register(integration.getAPIRouter(), { prefix: '/api/post-process' });
|
|
|
311
314
|
- Bitbucket (push, pull requests)
|
|
312
315
|
- Stripe (subscriptions, payments)
|
|
313
316
|
|
|
314
|
-
## 🎯 Skills
|
|
317
|
+
## 🎯 Skills
|
|
315
318
|
|
|
316
|
-
StringRay
|
|
319
|
+
StringRay ships with **30 framework skills** and provides a registry of **10 curated community sources** with 170+ additional skills.
|
|
317
320
|
|
|
318
|
-
|
|
319
|
-
|------------|-------|---------|-------------|
|
|
320
|
-
| Antigravity | 17 | MIT | Language experts, DevOps, Security, Business |
|
|
321
|
-
| Claude SEO | 12 | MIT | SEO optimization and analysis |
|
|
322
|
-
| Impeccable | 1 | Apache 2.0 | AI frontend design language |
|
|
323
|
-
| OpenViking | 1 | Apache 2.0 | Context database for agents |
|
|
321
|
+
### Skills Registry
|
|
324
322
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
[Impeccable](https://github.com/pbakaus/impeccable) is a design language skill that teaches AI coding assistants professional frontend design:
|
|
323
|
+
Browse and install skills from verified GitHub repositories:
|
|
328
324
|
|
|
329
325
|
```bash
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
/polish # Pre-ship refinement
|
|
333
|
-
/typeset # Fix typography
|
|
334
|
-
/arrange # Fix layout & spacing
|
|
335
|
-
```
|
|
336
|
-
|
|
337
|
-
**Anti-patterns it teaches AI to avoid:**
|
|
338
|
-
- Overused fonts (Inter, Arial)
|
|
339
|
-
- Purple gradients
|
|
340
|
-
- Cards on colored backgrounds
|
|
341
|
-
- Gray text on colored backgrounds
|
|
326
|
+
# Show starter packs and available sources
|
|
327
|
+
npx strray-ai skill:install
|
|
342
328
|
|
|
343
|
-
|
|
329
|
+
# Install a specific source
|
|
330
|
+
npx strray-ai skill:install agency-agents
|
|
331
|
+
npx strray-ai skill:install superpowers
|
|
332
|
+
npx strray-ai skill:install anthropic-skills
|
|
344
333
|
|
|
345
|
-
|
|
334
|
+
# Install from any GitHub repo (auto-detects format)
|
|
335
|
+
npx strray-ai skill:install https://github.com/user/skills-repo
|
|
346
336
|
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
/seo geo <url> # AI search optimization
|
|
352
|
-
/seo schema <url> # Schema markup
|
|
353
|
-
/seo sitemap <url> # Sitemap analysis
|
|
354
|
-
/seo programmatic <url> # Programmatic SEO
|
|
355
|
-
/seo competitor-pages # Comparison pages
|
|
356
|
-
/seo hreflang <url> # Multi-language SEO
|
|
337
|
+
# Manage the registry
|
|
338
|
+
npx strray-ai skill:registry list # Show all sources
|
|
339
|
+
npx strray-ai skill:registry add --name X --url Y --desc "..." --license MIT
|
|
340
|
+
npx strray-ai skill:registry remove --name X
|
|
357
341
|
```
|
|
358
342
|
|
|
359
|
-
|
|
343
|
+
#### Starter Packs
|
|
344
|
+
|
|
345
|
+
| Pack | Sources | Skills | Best For |
|
|
346
|
+
|------|---------|--------|----------|
|
|
347
|
+
| **Minimal Viable Power** | superpowers, anthropic-skills | 20+ | Solo devs, quick setup |
|
|
348
|
+
| **Full Pro Setup** | + agency-agents, impeccable, minimax | 200+ | Professional development |
|
|
349
|
+
| **Agency/Team Mode** | + gemini-skills, ai-web3-security | 220+ | Teams, security audits |
|
|
350
|
+
| **Specialized** | + vuejs-nuxt, ui-ux-pro-max | 230+ | Nuxt/Vue, UI/UX work |
|
|
351
|
+
|
|
352
|
+
#### Registry Sources
|
|
353
|
+
|
|
354
|
+
| Source | Skills | License | Description |
|
|
355
|
+
|--------|--------|---------|-------------|
|
|
356
|
+
| [agency-agents](https://github.com/msitarzewski/agency-agents) | 170+ | MIT | AI agency agent definitions |
|
|
357
|
+
| [superpowers](https://github.com/obra/superpowers) | 14 | MIT | TDD, debugging, code review workflows |
|
|
358
|
+
| [anthropic-skills](https://github.com/anthropics/skills) | 10+ | MIT | Official Anthropic Claude Code skills |
|
|
359
|
+
| [antigravity](https://github.com/sickn33/antigravity-awesome-skills) | 1300+ | MIT | Curated community skills |
|
|
360
|
+
| [impeccable](https://github.com/pbakaus/impeccable) | 1 | Apache 2.0 | AI frontend design language |
|
|
361
|
+
| [minimax](https://github.com/MiniMax-AI/skills) | 20+ | MIT | Frontend, mobile, shader skills |
|
|
362
|
+
| [gemini-skills](https://github.com/google-gemini/gemini-skills) | 10+ | Apache 2.0 | Official Google Gemini skills |
|
|
363
|
+
| [ai-web3-security](https://github.com/pashov/ai-web3-security) | 10+ | MIT | Web3 security auditing |
|
|
364
|
+
| [vuejs-nuxt](https://github.com/robert-zaremba/ai-agent-skills) | 5+ | MIT | Vue.js 3, Nuxt 4+ skills |
|
|
365
|
+
| [ui-ux-pro-max](https://github.com/nextlevelbuilder/ui-ux-pro-max-skill) | 1 | MIT | Professional UI/UX design |
|
|
360
366
|
|
|
361
|
-
|
|
367
|
+
### Impeccable - AI Frontend Design
|
|
362
368
|
|
|
363
|
-
|
|
364
|
-
|----------|--------|
|
|
365
|
-
| Languages | typescript-expert, python-patterns, react-patterns, go-patterns, rust-patterns |
|
|
366
|
-
| DevOps | docker-expert, aws-serverless, vercel-deployment |
|
|
367
|
-
| Security | vulnerability-scanner, api-security-best-practices |
|
|
368
|
-
| Business | copywriting, pricing-strategy, seo-fundamentals |
|
|
369
|
-
| AI/Data | rag-engineer, prompt-engineering |
|
|
370
|
-
| General | brainstorming, planning |
|
|
369
|
+
[Impeccable](https://github.com/pbakaus/impeccable) is a design language skill that teaches AI coding assistants professional frontend design:
|
|
371
370
|
|
|
372
371
|
```bash
|
|
373
|
-
#
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
#
|
|
377
|
-
|
|
372
|
+
/audit # Find issues
|
|
373
|
+
/critique # UX design review
|
|
374
|
+
/polish # Pre-ship refinement
|
|
375
|
+
/typeset # Fix typography
|
|
376
|
+
/arrange # Fix layout & spacing
|
|
378
377
|
```
|
|
379
378
|
|
|
380
|
-
###
|
|
379
|
+
### Framework Skills (30 Built-in)
|
|
381
380
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
```bash
|
|
385
|
-
ov init # Initialize workspace
|
|
386
|
-
ov status # Check status
|
|
387
|
-
ov add-memory # Add new memory
|
|
388
|
-
ov ls viking:// # List all context
|
|
389
|
-
```
|
|
390
|
-
|
|
391
|
-
**Key features:**
|
|
392
|
-
- Filesystem paradigm for memory organization
|
|
393
|
-
- Tiered context loading (L0/L1/L2) to save tokens
|
|
394
|
-
- Directory-aware search and retrieval
|
|
395
|
-
- Session memory persistence
|
|
381
|
+
StringRay includes 30 core skills for orchestration, compliance, architecture, and more — installed to `.opencode/skills/` automatically.
|
|
396
382
|
|
|
397
383
|
## License Information
|
|
398
384
|
|
|
399
|
-
All
|
|
400
|
-
|
|
401
|
-
|
|
|
402
|
-
|
|
403
|
-
|
|
|
404
|
-
|
|
|
405
|
-
|
|
|
406
|
-
|
|
|
407
|
-
|
|
385
|
+
All community skill sources are properly licensed. License files are in `licenses/skills/`:
|
|
386
|
+
|
|
387
|
+
| Source | License | File |
|
|
388
|
+
|--------|---------|------|
|
|
389
|
+
| agency-agents | MIT | `licenses/skills/LICENSE.agency-agents` |
|
|
390
|
+
| superpowers | MIT | `licenses/skills/LICENSE.superpowers` |
|
|
391
|
+
| anthropic-skills | MIT | `licenses/skills/LICENSE.anthropic-skills` |
|
|
392
|
+
| antigravity | MIT | `licenses/skills/LICENSE.antigravity` |
|
|
393
|
+
| impeccable | Apache 2.0 | `licenses/skills/LICENSE.impeccable` |
|
|
394
|
+
| minimax | MIT | `licenses/skills/LICENSE.minimax` |
|
|
395
|
+
| gemini-skills | Apache 2.0 | `licenses/skills/LICENSE.gemini-skills` |
|
|
396
|
+
| ai-web3-security | MIT | `licenses/skills/LICENSE.ai-web3-security` |
|
|
397
|
+
| vuejs-nuxt | MIT | `licenses/skills/LICENSE.vuejs-nuxt` |
|
|
398
|
+
| ui-ux-pro-max | MIT | `licenses/skills/LICENSE.ui-ux-pro-max` |
|
|
408
399
|
|
|
409
400
|
## 🙏 Support & Star
|
|
410
401
|
|
package/dist/agents/index.d.ts
CHANGED
|
@@ -9,20 +9,7 @@ import { refactorer } from "./refactorer.js";
|
|
|
9
9
|
import { testingLead } from "./testing-lead.js";
|
|
10
10
|
import { logMonitorAgent } from "./log-monitor.js";
|
|
11
11
|
import { researcher } from "./researcher.js";
|
|
12
|
-
import { multimodalLooker } from "./multimodal-looker.js";
|
|
13
12
|
import { analyzer } from "./analyzer.js";
|
|
14
|
-
import { seoSpecialist } from "./seo-consultant.js";
|
|
15
|
-
import { seoCopywriter } from "./content-creator.js";
|
|
16
|
-
import { marketingExpert } from "./growth-strategist.js";
|
|
17
|
-
import { databaseEngineer } from "./database-engineer.js";
|
|
18
|
-
import { devopsEngineer } from "./devops-engineer.js";
|
|
19
|
-
import { backendEngineer } from "./backend-engineer.js";
|
|
20
|
-
import { frontendEngineer } from "./frontend-engineer.js";
|
|
21
|
-
import { frontendUiUxEngineer } from "./frontend-ui-ux-engineer.js";
|
|
22
|
-
import { documentationWriter } from "./tech-writer.js";
|
|
23
|
-
import { performanceEngineer } from "./performance-engineer.js";
|
|
24
|
-
import { mobileDeveloper } from "./mobile-developer.js";
|
|
25
|
-
import { strategist } from "./strategist.js";
|
|
26
13
|
export declare const builtinAgents: Record<string, AgentConfig>;
|
|
27
|
-
export { enforcer, architect, orchestrator, bugTriageSpecialist, codeReviewer, securityAuditor, refactorer, testingLead, logMonitorAgent, researcher,
|
|
14
|
+
export { enforcer, architect, orchestrator, bugTriageSpecialist, codeReviewer, securityAuditor, refactorer, testingLead, logMonitorAgent, researcher, analyzer, };
|
|
28
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAYrD,CAAC;AAEF,OAAO,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,QAAQ,GACT,CAAC"}
|
package/dist/agents/index.js
CHANGED
|
@@ -8,20 +8,7 @@ import { refactorer } from "./refactorer.js";
|
|
|
8
8
|
import { testingLead } from "./testing-lead.js";
|
|
9
9
|
import { logMonitorAgent } from "./log-monitor.js";
|
|
10
10
|
import { researcher } from "./researcher.js";
|
|
11
|
-
import { multimodalLooker } from "./multimodal-looker.js";
|
|
12
11
|
import { analyzer } from "./analyzer.js";
|
|
13
|
-
import { seoSpecialist } from "./seo-consultant.js";
|
|
14
|
-
import { seoCopywriter } from "./content-creator.js";
|
|
15
|
-
import { marketingExpert } from "./growth-strategist.js";
|
|
16
|
-
import { databaseEngineer } from "./database-engineer.js";
|
|
17
|
-
import { devopsEngineer } from "./devops-engineer.js";
|
|
18
|
-
import { backendEngineer } from "./backend-engineer.js";
|
|
19
|
-
import { frontendEngineer } from "./frontend-engineer.js";
|
|
20
|
-
import { frontendUiUxEngineer } from "./frontend-ui-ux-engineer.js";
|
|
21
|
-
import { documentationWriter } from "./tech-writer.js";
|
|
22
|
-
import { performanceEngineer } from "./performance-engineer.js";
|
|
23
|
-
import { mobileDeveloper } from "./mobile-developer.js";
|
|
24
|
-
import { strategist } from "./strategist.js";
|
|
25
12
|
export const builtinAgents = {
|
|
26
13
|
enforcer,
|
|
27
14
|
architect,
|
|
@@ -33,20 +20,7 @@ export const builtinAgents = {
|
|
|
33
20
|
"testing-lead": testingLead,
|
|
34
21
|
"log-monitor": logMonitorAgent,
|
|
35
22
|
researcher,
|
|
36
|
-
"multimodal-looker": multimodalLooker,
|
|
37
23
|
"code-analyzer": analyzer,
|
|
38
|
-
"seo-consultant": seoSpecialist,
|
|
39
|
-
"content-creator": seoCopywriter,
|
|
40
|
-
"growth-strategist": marketingExpert,
|
|
41
|
-
"database-engineer": databaseEngineer,
|
|
42
|
-
"devops-engineer": devopsEngineer,
|
|
43
|
-
"backend-engineer": backendEngineer,
|
|
44
|
-
"frontend-engineer": frontendEngineer,
|
|
45
|
-
"frontend-ui-ux-engineer": frontendUiUxEngineer,
|
|
46
|
-
"tech-writer": documentationWriter,
|
|
47
|
-
"performance-engineer": performanceEngineer,
|
|
48
|
-
"mobile-developer": mobileDeveloper,
|
|
49
|
-
strategist,
|
|
50
24
|
};
|
|
51
|
-
export { enforcer, architect, orchestrator, bugTriageSpecialist, codeReviewer, securityAuditor, refactorer, testingLead, logMonitorAgent, researcher,
|
|
25
|
+
export { enforcer, architect, orchestrator, bugTriageSpecialist, codeReviewer, securityAuditor, refactorer, testingLead, logMonitorAgent, researcher, analyzer, };
|
|
52
26
|
//# sourceMappingURL=index.js.map
|
package/dist/agents/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,CAAC,MAAM,aAAa,GAAgC;IACxD,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,uBAAuB,EAAE,mBAAmB;IAC5C,eAAe,EAAE,YAAY;IAC7B,kBAAkB,EAAE,eAAe;IACnC,UAAU;IACV,cAAc,EAAE,WAAW;IAC3B,aAAa,EAAE,eAAe;IAC9B,UAAU;IACV,eAAe,EAAE,QAAQ;CAC1B,CAAC;AAEF,OAAO,EACL,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,eAAe,EACf,UAAU,EACV,WAAW,EACX,eAAe,EACf,UAAU,EACV,QAAQ,GACT,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity-status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/antigravity-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"antigravity-status.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/antigravity-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyEH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoD9D;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -20,12 +20,16 @@ function getSkillsFromSkills(cwd) {
|
|
|
20
20
|
for (const dir of dirs) {
|
|
21
21
|
const skillPath = join(skillsPath, dir, "SKILL.md");
|
|
22
22
|
const content = readFileSync(skillPath, "utf-8");
|
|
23
|
-
const sourceMatch = content.match(
|
|
24
|
-
const
|
|
23
|
+
const sourceMatch = content.match(/^source:\s*(.+)/m);
|
|
24
|
+
const sourceNameMatch = content.match(/^source_name:\s*(.+)/m);
|
|
25
|
+
const licenseMatch = content.match(/License:\s*(.+)/m);
|
|
26
|
+
const rawName = dir.includes("--") ? dir.split("--").slice(1).join("--") : dir;
|
|
27
|
+
const communitySource = sourceNameMatch ? sourceNameMatch[1].trim() : null;
|
|
25
28
|
skills.push({
|
|
26
|
-
name:
|
|
29
|
+
name: rawName,
|
|
27
30
|
source: sourceMatch && sourceMatch[1] ? sourceMatch[1].trim() : "custom",
|
|
28
|
-
|
|
31
|
+
communitySource,
|
|
32
|
+
license: licenseMatch ? licenseMatch[1].trim() : "unknown",
|
|
29
33
|
category: extractCategory(content),
|
|
30
34
|
path: skillPath,
|
|
31
35
|
});
|
|
@@ -54,48 +58,48 @@ function extractCategory(content) {
|
|
|
54
58
|
export async function antigravityStatusCommand() {
|
|
55
59
|
const cwd = process.cwd();
|
|
56
60
|
const skills = getSkillsFromSkills(cwd);
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
acc[
|
|
61
|
+
const frameworkSkills = skills.filter((s) => s.source === "framework");
|
|
62
|
+
const communitySkills = skills.filter((s) => s.source === "community");
|
|
63
|
+
const communityBySource = communitySkills.reduce((acc, skill) => {
|
|
64
|
+
const key = skill.communitySource || "unknown";
|
|
65
|
+
if (!acc[key])
|
|
66
|
+
acc[key] = [];
|
|
67
|
+
acc[key].push(skill);
|
|
62
68
|
return acc;
|
|
63
69
|
}, {});
|
|
64
|
-
const licenseCounts = {};
|
|
65
|
-
skills.forEach((skill) => {
|
|
66
|
-
const license = skill.license.toUpperCase();
|
|
67
|
-
licenseCounts[license] = (licenseCounts[license] || 0) + 1;
|
|
68
|
-
});
|
|
69
70
|
console.log("");
|
|
70
71
|
console.log("╔══════════════════════════════════════════════════╗");
|
|
71
72
|
console.log("║ Installed Skills Status ║");
|
|
72
73
|
console.log("╚══════════════════════════════════════════════════╝");
|
|
73
74
|
console.log("");
|
|
74
|
-
console.log(`
|
|
75
|
-
console.log(`
|
|
75
|
+
console.log(`Framework Skills: ${frameworkSkills.length}`);
|
|
76
|
+
console.log(`Community Skills: ${communitySkills.length} (from ${Object.keys(communityBySource).length} sources)`);
|
|
77
|
+
console.log(`Total: ${skills.length}`);
|
|
76
78
|
console.log("");
|
|
77
|
-
|
|
78
|
-
console.log("Licenses:");
|
|
79
|
-
Object.entries(licenseCounts).forEach(([license, count]) => {
|
|
80
|
-
console.log(` - ${license}: ${count} skill${count > 1 ? "s" : ""}`);
|
|
81
|
-
});
|
|
82
|
-
console.log("");
|
|
83
|
-
}
|
|
84
|
-
console.log("Skills by Category:");
|
|
79
|
+
console.log("── Framework Skills ──");
|
|
85
80
|
console.log("");
|
|
86
|
-
|
|
87
|
-
.sort((
|
|
88
|
-
.forEach((
|
|
89
|
-
console.log(` ${
|
|
90
|
-
categorySkills
|
|
91
|
-
.sort((a, b) => a.name.localeCompare(b.name))
|
|
92
|
-
.forEach((skill) => {
|
|
93
|
-
const licenseBadge = skill.license.toUpperCase().substring(0, 3);
|
|
94
|
-
const source = skill.source !== "unknown" ? skill.source : "custom";
|
|
95
|
-
console.log(` - ${skill.name} [${licenseBadge}] (${source})`);
|
|
96
|
-
});
|
|
97
|
-
console.log("");
|
|
81
|
+
frameworkSkills
|
|
82
|
+
.sort((a, b) => a.name.localeCompare(b.name))
|
|
83
|
+
.forEach((skill) => {
|
|
84
|
+
console.log(` ${skill.name}`);
|
|
98
85
|
});
|
|
86
|
+
console.log("");
|
|
87
|
+
if (Object.keys(communityBySource).length > 0) {
|
|
88
|
+
console.log("── Community Skills (by source) ──");
|
|
89
|
+
console.log("");
|
|
90
|
+
Object.entries(communityBySource)
|
|
91
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
92
|
+
.forEach(([source, sourceSkills]) => {
|
|
93
|
+
console.log(` ${source} (${sourceSkills.length})`);
|
|
94
|
+
sourceSkills
|
|
95
|
+
.sort((a, b) => a.name.localeCompare(b.name))
|
|
96
|
+
.forEach((skill) => {
|
|
97
|
+
const licenseBadge = skill.license.toUpperCase().substring(0, 3);
|
|
98
|
+
console.log(` - ${skill.name} [${licenseBadge}]`);
|
|
99
|
+
});
|
|
100
|
+
console.log("");
|
|
101
|
+
});
|
|
102
|
+
}
|
|
99
103
|
console.log("-".repeat(50));
|
|
100
104
|
}
|
|
101
105
|
export default antigravityStatusCommand;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"antigravity-status.js","sourceRoot":"","sources":["../../../src/cli/commands/antigravity-status.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"antigravity-status.js","sourceRoot":"","sources":["../../../src/cli/commands/antigravity-status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skill-install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skill-install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/skill-install.ts"],"names":[],"mappings":"AAsMA,wBAAsB,mBAAmB,CACvC,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,OAAO,CAAC,IAAI,CAAC,CA+Ff;AAED,wBAAsB,oBAAoB,CACxC,MAAM,CAAC,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CA4Ff"}
|