hubify 0.1.2 → 0.3.2
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/README.md +121 -43
- package/dist/chunk-FW7BS3MW.js +40 -0
- package/dist/convex-MXZDQPMB.js +10 -0
- package/dist/index.js +20532 -0
- package/package.json +59 -34
- package/.npmignore +0 -3
- package/LICENSE +0 -7
- package/lib/commands.js +0 -280
- package/lib/hubify.js +0 -63
package/README.md
CHANGED
|
@@ -1,73 +1,151 @@
|
|
|
1
|
-
#
|
|
1
|
+
# hubify
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The living intelligence layer for AI Agent Skills.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/hubify)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
## What is Hubify?
|
|
9
|
+
|
|
10
|
+
Hubify is the universal registry for AI agent skills. Skills are verified, evolving, and collective - every execution makes the whole network smarter.
|
|
11
|
+
|
|
12
|
+
- **Search** 40,000+ verified skills
|
|
13
|
+
- **Install** skills locally for your agents
|
|
14
|
+
- **Execute** and track results
|
|
15
|
+
- **Generate** new skills with AI
|
|
16
|
+
- **Report** execution outcomes to improve the collective
|
|
7
17
|
|
|
8
18
|
## Installation
|
|
9
19
|
|
|
10
|
-
|
|
20
|
+
```bash
|
|
21
|
+
npm install -g hubify
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Or use directly with npx:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
npx hubify search react
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Quick Start
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# Search for skills
|
|
34
|
+
hubify search "deploy kubernetes"
|
|
35
|
+
|
|
36
|
+
# Install a skill
|
|
37
|
+
hubify install kubernetes-deploy
|
|
38
|
+
|
|
39
|
+
# Execute a skill (outputs instructions for your agent)
|
|
40
|
+
hubify execute kubernetes-deploy
|
|
41
|
+
|
|
42
|
+
# Report execution results
|
|
43
|
+
hubify report kubernetes-deploy --success
|
|
44
|
+
|
|
45
|
+
# Generate a new skill with AI
|
|
46
|
+
hubify generate "a skill for optimizing PostgreSQL queries"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Commands
|
|
50
|
+
|
|
51
|
+
### Discovery
|
|
52
|
+
|
|
53
|
+
| Command | Description |
|
|
54
|
+
|---------|-------------|
|
|
55
|
+
| `hubify search <query>` | Search skills by name, description, or tags |
|
|
56
|
+
| `hubify info <skill>` | View detailed skill information and trust metrics |
|
|
57
|
+
| `hubify stats` | View registry-wide statistics |
|
|
58
|
+
|
|
59
|
+
### Installation & Execution
|
|
60
|
+
|
|
61
|
+
| Command | Description |
|
|
62
|
+
|---------|-------------|
|
|
63
|
+
| `hubify install <skill>` | Install skill(s) locally |
|
|
64
|
+
| `hubify execute <skill>` | Execute a skill and output instructions |
|
|
65
|
+
| `hubify list` | List installed skills |
|
|
66
|
+
| `hubify update [skill]` | Update installed skills |
|
|
67
|
+
|
|
68
|
+
### Publishing & Generation
|
|
11
69
|
|
|
12
|
-
|
|
70
|
+
| Command | Description |
|
|
71
|
+
|---------|-------------|
|
|
72
|
+
| `hubify init` | Initialize Hubify in your project |
|
|
73
|
+
| `hubify publish <path>` | Publish a skill to the registry |
|
|
74
|
+
| `hubify generate <prompt>` | Generate a new skill with AI |
|
|
75
|
+
| `hubify import <url>` | Import skills from GitHub |
|
|
13
76
|
|
|
14
|
-
###
|
|
77
|
+
### Analytics
|
|
15
78
|
|
|
16
|
-
|
|
79
|
+
| Command | Description |
|
|
80
|
+
|---------|-------------|
|
|
81
|
+
| `hubify report <skill>` | Report execution results |
|
|
82
|
+
| `hubify report stats` | View execution statistics |
|
|
83
|
+
| `hubify report leaderboard` | Top skills by executions |
|
|
17
84
|
|
|
18
|
-
##
|
|
85
|
+
## Trust Metrics
|
|
19
86
|
|
|
20
|
-
|
|
87
|
+
Every skill has trust metrics based on real executions:
|
|
21
88
|
|
|
22
|
-
|
|
89
|
+
- **Confidence Score** (0-100%) - Based on success rate across all executions
|
|
90
|
+
- **Verification Level** (L0-L3) - From untested to battle-tested
|
|
91
|
+
- **Execution Count** - Total times the skill has been run
|
|
92
|
+
- **Success Rate** - Percentage of successful executions
|
|
23
93
|
|
|
24
|
-
|
|
94
|
+
```bash
|
|
95
|
+
hubify info react-best-practices
|
|
25
96
|
|
|
26
|
-
|
|
97
|
+
# Trust Metrics
|
|
98
|
+
# Confidence: ████████████████░░░░ 82%
|
|
99
|
+
# Level: L2 Verified
|
|
100
|
+
# Success Rate: ████████████████████ 94%
|
|
101
|
+
# Executions: 12,847
|
|
102
|
+
```
|
|
27
103
|
|
|
28
|
-
|
|
29
|
-
key. Your API key can be found on the edit profile page once
|
|
30
|
-
logged in over at [hubify.com](hubify.com).
|
|
104
|
+
## AI Skill Generation
|
|
31
105
|
|
|
32
|
-
|
|
33
|
-
for your script once deployed.
|
|
106
|
+
Generate new skills from natural language:
|
|
34
107
|
|
|
35
|
-
|
|
108
|
+
```bash
|
|
109
|
+
# Uses Claude API (requires ANTHROPIC_API_KEY)
|
|
110
|
+
hubify generate "automate Docker container deployments with health checks"
|
|
36
111
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
new hubs must also be done from the hubify website.
|
|
112
|
+
# Or use template-based generation (no API needed)
|
|
113
|
+
hubify generate "lint TypeScript code" --template
|
|
114
|
+
```
|
|
41
115
|
|
|
42
|
-
|
|
43
|
-
is the slugified version of your hub's name. For example if your
|
|
44
|
-
hub's name is My 1st Hub then your script name should be
|
|
45
|
-
`my-1st-hub.js`. This generally means replacing spaces and
|
|
46
|
-
special charachters with dashes. If you're unsure of what your
|
|
47
|
-
hub's slug name is you should take a look at your hub's endpoint.
|
|
48
|
-
The slug will be the portion after the last "/" and before the format
|
|
49
|
-
".json" (e.g. http://hubify.com/username/hub/_my-1st-hub_.json)
|
|
116
|
+
## Environment Variables
|
|
50
117
|
|
|
51
|
-
|
|
52
|
-
|
|
118
|
+
| Variable | Description |
|
|
119
|
+
|----------|-------------|
|
|
120
|
+
| `ANTHROPIC_API_KEY` | Required for AI skill generation |
|
|
121
|
+
| `GITHUB_TOKEN` | Optional, for higher GitHub API rate limits |
|
|
53
122
|
|
|
54
|
-
|
|
123
|
+
## Configuration
|
|
55
124
|
|
|
56
|
-
|
|
57
|
-
> case you need to rollback, a backup of the previous script is
|
|
58
|
-
> created with the .bak extension in your working directory. This
|
|
59
|
-
> can be deployed using the `-f` switch to specify an alternate
|
|
60
|
-
> file to use instead of the default. For example:
|
|
61
|
-
> `$ hubify deploy -f my-1st-hub.js.bak my-1st-hub`
|
|
125
|
+
Initialize project or global config:
|
|
62
126
|
|
|
127
|
+
```bash
|
|
128
|
+
# Project config (.hubify/config.yaml)
|
|
129
|
+
hubify init
|
|
63
130
|
|
|
131
|
+
# Global config (~/.hubify/config.yaml)
|
|
132
|
+
hubify init --global
|
|
133
|
+
```
|
|
64
134
|
|
|
135
|
+
## How It Works
|
|
65
136
|
|
|
66
|
-
|
|
137
|
+
1. **Agent executes a skill** → Instructions guide the agent
|
|
138
|
+
2. **Results reported back** → Success/failure tracked
|
|
139
|
+
3. **Collective improves** → Trust scores update, everyone benefits
|
|
67
140
|
|
|
68
|
-
|
|
69
|
-
plans to add CoffeeScript and Python in the near future.
|
|
141
|
+
Skills aren't static - they're living entities that improve from collective feedback.
|
|
70
142
|
|
|
143
|
+
## Links
|
|
71
144
|
|
|
145
|
+
- **Website**: [hubify.com](https://hubify.com)
|
|
146
|
+
- **Registry**: [hubify.com/skills](https://hubify.com/skills)
|
|
147
|
+
- **GitHub**: [github.com/houstongolden/hubify](https://github.com/houstongolden/hubify)
|
|
72
148
|
|
|
149
|
+
## License
|
|
73
150
|
|
|
151
|
+
MIT © [Houston Golden](https://github.com/houstongolden)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
// src/lib/convex.ts
|
|
8
|
+
import { ConvexHttpClient } from "convex/browser";
|
|
9
|
+
var CONVEX_URL = process.env.CONVEX_URL || "https://dapper-mockingbird-619.convex.cloud";
|
|
10
|
+
var client = null;
|
|
11
|
+
function getClient() {
|
|
12
|
+
if (!client) {
|
|
13
|
+
client = new ConvexHttpClient(CONVEX_URL);
|
|
14
|
+
}
|
|
15
|
+
return client;
|
|
16
|
+
}
|
|
17
|
+
function createApiProxy(path = []) {
|
|
18
|
+
return new Proxy(() => {
|
|
19
|
+
}, {
|
|
20
|
+
get(_target, prop) {
|
|
21
|
+
return createApiProxy([...path, prop]);
|
|
22
|
+
},
|
|
23
|
+
apply() {
|
|
24
|
+
return path.join(":");
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function toFunctionName(ref) {
|
|
29
|
+
if (typeof ref === "string") return ref;
|
|
30
|
+
if (typeof ref === "function") return ref();
|
|
31
|
+
return String(ref);
|
|
32
|
+
}
|
|
33
|
+
var api = createApiProxy();
|
|
34
|
+
|
|
35
|
+
export {
|
|
36
|
+
__export,
|
|
37
|
+
getClient,
|
|
38
|
+
toFunctionName,
|
|
39
|
+
api
|
|
40
|
+
};
|