@lazyingart/agintiflow 0.20.47 → 0.20.49

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.
@@ -0,0 +1,158 @@
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
+ ## Service Mode
90
+
91
+ A relay started in `tmux` or a normal shell will stop after reboot. For a node that should keep listening after reboot, install it as a service.
92
+
93
+ System service, recommended for public relay nodes:
94
+
95
+ ```bash
96
+ aginti skillmesh service install \
97
+ --host 0.0.0.0 \
98
+ --port 7377 \
99
+ --data ~/.aginti-skill-relay \
100
+ --public-url http://YOUR_PUBLIC_HOST:7377
101
+ ```
102
+
103
+ This uses `sudo -n` to create and enable `/etc/systemd/system/aginti-skill-relay.service`, so it requires sudo permission. It runs the relay as the current user and restarts on failure and after reboot.
104
+
105
+ User service, useful when sudo is not available:
106
+
107
+ ```bash
108
+ aginti skillmesh service install --user --linger \
109
+ --host 0.0.0.0 \
110
+ --port 7377 \
111
+ --data ~/.aginti-skill-relay \
112
+ --public-url http://YOUR_PUBLIC_HOST:7377
113
+ ```
114
+
115
+ A user service can run without sudo, but boot persistence requires lingering:
116
+
117
+ ```bash
118
+ sudo loginctl enable-linger $(whoami)
119
+ ```
120
+
121
+ Service commands:
122
+
123
+ ```bash
124
+ aginti skillmesh service status
125
+ aginti skillmesh service restart
126
+ aginti skillmesh service stop
127
+ aginti skillmesh service uninstall
128
+ ```
129
+
130
+ Use `--user` with those commands for the user-service scope.
131
+
132
+ ## Storage
133
+
134
+ Local client storage:
135
+
136
+ ```text
137
+ ~/.agintiflow/skillmesh/
138
+ config.json
139
+ identity.json
140
+ index.sqlite
141
+ skills/
142
+ packs/
143
+ inbox/
144
+ outbox/
145
+ reviewed/
146
+ feeds/
147
+ ```
148
+
149
+ Relay storage:
150
+
151
+ ```text
152
+ ~/.aginti-skill-relay/
153
+ index.sqlite
154
+ packs/
155
+ logs/
156
+ ```
157
+
158
+ `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.47",
3
+ "version": "0.20.49",
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
  },