@lazyingart/agintiflow 0.20.47 → 0.20.48
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/docs/skillmesh.md +115 -0
- package/package.json +4 -2
- package/references/skill-mesh-sharing-design.md +1122 -0
- package/scripts/smoke-skillmesh.js +117 -0
- package/src/cli.js +14 -2
- package/src/i18n.js +1 -0
- package/src/interactive-cli.js +40 -0
- package/src/skill-library.js +66 -3
- package/src/skillmesh.js +1058 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Skill Mesh
|
|
2
|
+
|
|
3
|
+
Skill Mesh lets AgInTiFlow exchange reusable skills without sharing raw sessions, project code, `.env` files, browser state, artifacts, or provider keys.
|
|
4
|
+
|
|
5
|
+
The first implementation is intentionally conservative:
|
|
6
|
+
|
|
7
|
+
- Skills are shared as signed JSON skill packs.
|
|
8
|
+
- Each pack is validated for required `SKILL.md` frontmatter, safe paths, size limits, secret-like text, and privacy metadata.
|
|
9
|
+
- Shared packs cannot override built-in skills.
|
|
10
|
+
- Community skills are installed disabled by default.
|
|
11
|
+
- Sync is explicit and metadata-first; there is no realtime polling loop.
|
|
12
|
+
- Relay nodes run without model/API keys.
|
|
13
|
+
|
|
14
|
+
## Modes
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
aginti skillmesh status
|
|
18
|
+
aginti skillmesh share
|
|
19
|
+
aginti skillmesh record
|
|
20
|
+
aginti skillmesh off
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Interactive CLI:
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
/skillmesh
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
The selector has three modes:
|
|
30
|
+
|
|
31
|
+
- `share`: record locally and allow reviewed skill-pack sharing.
|
|
32
|
+
- `record`: record local sanitized learning metadata only.
|
|
33
|
+
- `off`: disable Skill Mesh loading and sync.
|
|
34
|
+
|
|
35
|
+
## Pack Commands
|
|
36
|
+
|
|
37
|
+
Export a reviewed local skill:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
aginti skillmesh export <skill-id>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Import a reviewed pack:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
aginti skillmesh import ./example.skillpack.json
|
|
47
|
+
aginti skillmesh enable <skill-id>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Submit a reviewed pack to a relay:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
aginti skillmesh submit ./example.skillpack.json --node https://skills.flow.lazying.art
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Sync metadata and optionally download packs:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
aginti skillmesh sync
|
|
60
|
+
aginti skillmesh sync --node http://127.0.0.1:7377 --install
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Downloaded community packs are still disabled until explicitly enabled.
|
|
64
|
+
|
|
65
|
+
## Relay Node
|
|
66
|
+
|
|
67
|
+
Run a Skill Mesh relay:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
aginti skillmesh serve \
|
|
71
|
+
--role major \
|
|
72
|
+
--host 127.0.0.1 \
|
|
73
|
+
--port 7377 \
|
|
74
|
+
--data ~/.aginti-skill-relay \
|
|
75
|
+
--public-url https://skills.flow.lazying.art
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Endpoints:
|
|
79
|
+
|
|
80
|
+
- `GET /health`
|
|
81
|
+
- `GET /feed.json`
|
|
82
|
+
- `POST /sync/metadata`
|
|
83
|
+
- `POST /submit`
|
|
84
|
+
- `GET /packs/<hash>.json`
|
|
85
|
+
- `GET /packs/<hash>/metadata.json`
|
|
86
|
+
|
|
87
|
+
The relay stores only validated skill packs and metadata in its data directory. It rejects raw sessions, unsafe paths, secret-like text, unsupported schemas, overlarge packs, unsigned packs, and packs that do not declare the strict privacy contract.
|
|
88
|
+
|
|
89
|
+
## Storage
|
|
90
|
+
|
|
91
|
+
Local client storage:
|
|
92
|
+
|
|
93
|
+
```text
|
|
94
|
+
~/.agintiflow/skillmesh/
|
|
95
|
+
config.json
|
|
96
|
+
identity.json
|
|
97
|
+
index.sqlite
|
|
98
|
+
skills/
|
|
99
|
+
packs/
|
|
100
|
+
inbox/
|
|
101
|
+
outbox/
|
|
102
|
+
reviewed/
|
|
103
|
+
feeds/
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Relay storage:
|
|
107
|
+
|
|
108
|
+
```text
|
|
109
|
+
~/.aginti-skill-relay/
|
|
110
|
+
index.sqlite
|
|
111
|
+
packs/
|
|
112
|
+
logs/
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
`identity.json` contains the local Ed25519 signing key and should remain private.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lazyingart/agintiflow",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.48",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AgInTiFlow is a web-first coding agent and CLI with DeepSeek routing, sandboxed tools, model providers, canvas artifacts, and optional wrappers.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
"scripts/smoke-model-roles.js",
|
|
59
59
|
"scripts/smoke-platform.js",
|
|
60
60
|
"scripts/smoke-skills.js",
|
|
61
|
+
"scripts/smoke-skillmesh.js",
|
|
61
62
|
"scripts/smoke-tmux-tools.js",
|
|
62
63
|
"scripts/smoke-toolchain-docker.js",
|
|
63
64
|
"scripts/smoke-web-api.js",
|
|
@@ -81,6 +82,7 @@
|
|
|
81
82
|
"smoke:canvas-artifacts": "node scripts/smoke-canvas-artifacts.js",
|
|
82
83
|
"smoke:cli-chat": "node scripts/smoke-cli-chat.js",
|
|
83
84
|
"smoke:skills": "node scripts/smoke-skills.js",
|
|
85
|
+
"smoke:skillmesh": "node scripts/smoke-skillmesh.js",
|
|
84
86
|
"smoke:toolchain-docker": "node scripts/smoke-toolchain-docker.js",
|
|
85
87
|
"smoke:inbox": "node scripts/smoke-inbox.js",
|
|
86
88
|
"smoke:model-roles": "node scripts/smoke-model-roles.js",
|
|
@@ -91,7 +93,7 @@
|
|
|
91
93
|
"real:deepseek": "node scripts/real-deepseek-capabilities.js",
|
|
92
94
|
"supervision:seed": "node scripts/seed-supervised-homework.js",
|
|
93
95
|
"storage:migrate": "node bin/aginti-cli.js storage migrate",
|
|
94
|
-
"test": "npm run check && npm run smoke:autoupdate && npm run smoke:web-api && npm run smoke:coding-tools && npm run smoke:auxiliary-tools && npm run smoke:auth && npm run smoke:canvas-artifacts && npm run smoke:capabilities && npm run smoke:model-roles && npm run smoke:platform && npm run smoke:skills && npm run smoke:tmux-tools && npm run smoke:cli-chat && npm run smoke:inbox",
|
|
96
|
+
"test": "npm run check && npm run smoke:autoupdate && npm run smoke:web-api && npm run smoke:coding-tools && npm run smoke:auxiliary-tools && npm run smoke:auth && npm run smoke:canvas-artifacts && npm run smoke:capabilities && npm run smoke:model-roles && npm run smoke:platform && npm run smoke:skills && npm run smoke:skillmesh && npm run smoke:tmux-tools && npm run smoke:cli-chat && npm run smoke:inbox",
|
|
95
97
|
"pack:dry-run": "npm pack --dry-run",
|
|
96
98
|
"smoke:capabilities": "node scripts/smoke-capabilities.js"
|
|
97
99
|
},
|