@lazyingart/agintiflow 0.20.46 → 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/housekeeping.md +39 -0
- package/docs/skillmesh.md +115 -0
- package/package.json +4 -2
- package/references/skill-mesh-sharing-design.md +1122 -0
- package/scripts/smoke-inbox.js +27 -0
- package/scripts/smoke-skillmesh.js +117 -0
- package/src/agent-runner.js +8 -0
- package/src/cli.js +49 -2
- package/src/housekeeping.js +337 -0
- package/src/i18n.js +1 -0
- package/src/interactive-cli.js +41 -0
- package/src/project.js +5 -0
- package/src/session-store.js +11 -2
- package/src/skill-library.js +66 -3
- package/src/skillmesh.js +1058 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# AgInTiFlow Housekeeping
|
|
2
|
+
|
|
3
|
+
AgInTiFlow keeps full private session history in `~/.agintiflow/sessions/<session-id>/`.
|
|
4
|
+
That history can include user prompts, model text, tool arguments, file diffs, and artifacts, so it is local-only and should not be committed.
|
|
5
|
+
|
|
6
|
+
Housekeeping is a lighter background layer for reusable learning:
|
|
7
|
+
|
|
8
|
+
- It listens to session events without blocking the main agent loop.
|
|
9
|
+
- It writes sanitized cross-session records to `~/.agintiflow/housekeeping/events.jsonl`.
|
|
10
|
+
- It maintains aggregate model, tool, and skill usage in `~/.agintiflow/housekeeping/capabilities.json`.
|
|
11
|
+
- It redacts common token/key/password patterns and replaces local project/home paths with placeholders.
|
|
12
|
+
- It stores previews, hashes, counts, model/tool names, selected skill ids, and touched skill files rather than a full second transcript.
|
|
13
|
+
|
|
14
|
+
Use:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
aginti housekeeping
|
|
18
|
+
aginti housekeeping --json
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Disable local housekeeping for a run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
AGINTIFLOW_HOUSEKEEPING=0 aginti
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Project session pointers live in `.aginti-sessions/`, and old `.sessions/` folders may still exist after migration.
|
|
28
|
+
AgInTiFlow adds both to `.gitignore` during `aginti init` and when session storage is prepared, because these folders can contain private local metadata.
|
|
29
|
+
|
|
30
|
+
## Sharing Without A Center Server
|
|
31
|
+
|
|
32
|
+
Without a central server, the safe sharing path is:
|
|
33
|
+
|
|
34
|
+
1. Keep raw sessions and artifacts local.
|
|
35
|
+
2. Aggregate local learning into sanitized housekeeping capability data.
|
|
36
|
+
3. Promote reviewed reusable knowledge into Markdown skills, task profiles, command policy, or docs.
|
|
37
|
+
4. Ship those reviewed files through the npm package.
|
|
38
|
+
|
|
39
|
+
This avoids uploading private transcripts while still letting users receive better skills and tools when they upgrade `@lazyingart/agintiflow`.
|
|
@@ -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
|
},
|