aweshare 0.4.8 → 0.5.0
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.ai.md +346 -0
- package/README.md +21 -9
- package/apps/agent/dist/cli.js +20 -5
- package/apps/agent/dist/cli.js.map +1 -1
- package/apps/agent/dist/config.d.ts +2 -0
- package/apps/agent/dist/config.js +9 -4
- package/apps/agent/dist/config.js.map +1 -1
- package/apps/agent/dist/connection.js +12 -2
- package/apps/agent/dist/connection.js.map +1 -1
- package/apps/agent/dist/daemon.d.ts +4 -1
- package/apps/agent/dist/daemon.js +5 -2
- package/apps/agent/dist/daemon.js.map +1 -1
- package/apps/agent/dist/doctor.js +14 -2
- package/apps/agent/dist/doctor.js.map +1 -1
- package/apps/agent/dist/hub.d.ts +4 -2
- package/apps/agent/dist/hub.js +5 -3
- package/apps/agent/dist/hub.js.map +1 -1
- package/apps/agent/dist/table.d.ts +6 -1
- package/apps/agent/dist/table.js +3 -1
- package/apps/agent/dist/table.js.map +1 -1
- package/apps/consumer/dist/cli.js +15 -6
- package/apps/consumer/dist/cli.js.map +1 -1
- package/apps/consumer/dist/table.d.ts +4 -0
- package/apps/consumer/dist/table.js +6 -0
- package/apps/consumer/dist/table.js.map +1 -1
- package/apps/hub/dist/admin.js +28 -14
- package/apps/hub/dist/admin.js.map +1 -1
- package/apps/hub/dist/cli.js +35 -15
- package/apps/hub/dist/cli.js.map +1 -1
- package/apps/hub/dist/config.d.ts +6 -4
- package/apps/hub/dist/config.js +24 -23
- package/apps/hub/dist/config.js.map +1 -1
- package/apps/hub/dist/db.js +15 -7
- package/apps/hub/dist/db.js.map +1 -1
- package/apps/hub/dist/local.d.ts +3 -3
- package/apps/hub/dist/local.js +7 -7
- package/apps/hub/dist/local.js.map +1 -1
- package/apps/hub/dist/server.d.ts +3 -0
- package/apps/hub/dist/server.js +18 -4
- package/apps/hub/dist/server.js.map +1 -1
- package/apps/hub/dist/table.d.ts +2 -0
- package/apps/hub/dist/table.js +2 -1
- package/apps/hub/dist/table.js.map +1 -1
- package/bin/self-update.mjs +3 -1
- package/package.json +1 -1
- package/packages/producer-core/dist/catalog.js +15 -2
- package/packages/producer-core/dist/catalog.js.map +1 -1
- package/packages/producer-core/dist/job.d.ts +4 -0
- package/packages/producer-core/dist/job.js +10 -3
- package/packages/producer-core/dist/job.js.map +1 -1
- package/packages/protocol/dist/frames.js +6 -0
- package/packages/protocol/dist/frames.js.map +1 -1
package/README.ai.md
ADDED
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
# aweshare Bootstrap Protocol
|
|
2
|
+
|
|
3
|
+
This document is for AI coding agents. Help the user install and configure `aweshare`, a local-first AI capability relay: producers share local Ollama/vLLM or authorized OpenAI/Anthropic backends through a self-hosted hub; consumers point standard OpenAI/Anthropic SDKs at the hub and call models by `namespace/alias`.
|
|
4
|
+
|
|
5
|
+
## Long-Running Services and Secrets
|
|
6
|
+
|
|
7
|
+
Unlike ordinary CLIs, aweshare's two core processes are **long-running services**:
|
|
8
|
+
|
|
9
|
+
- Never launch them from this agent — not `aweshare hub serve`, not `aweshare producer start` (foreground blocks the session; even `--background` starts a shared service, which is the user's call). The same applies to deploying the hub as a container (`docker run` / `docker compose up` of `ghcr.io/wehuman01/aweshare`). Give the user the commands and let them run them in their own terminal.
|
|
10
|
+
- Upstream API keys live only in `~/.aweshare/secrets.json` (0600) on the producer's machine. Never print them, never echo them into logs or chat. `aweshare producer config show` redacts them.
|
|
11
|
+
- Some tokens are printed exactly once (the hub admin token from `hub init`, an `asc_` consumer token from `consumer join`, invite codes from `hub invite`). Prefer having the user run those commands so the secret lands in their terminal; if you must run one, tell the user to save the value immediately.
|
|
12
|
+
- Before helping share an OpenAI/Anthropic backend, state the compliance boundary: relaying a personal-subscription key (coding plans included) to third parties likely violates the upstream's terms; self-hosted open models have no such issue. When in doubt, don't share.
|
|
13
|
+
|
|
14
|
+
## Language Behavior
|
|
15
|
+
|
|
16
|
+
- Reply in the user's language when possible.
|
|
17
|
+
- If the user asks in Chinese, continue in Chinese.
|
|
18
|
+
- If the user asks in English, continue in English.
|
|
19
|
+
|
|
20
|
+
## Step 0: Identify the user's role
|
|
21
|
+
|
|
22
|
+
aweshare has three roles with different setups. Ask which one applies (more than one is possible):
|
|
23
|
+
|
|
24
|
+
- **Hub operator** — runs the public hub on an always-on server; mints invite codes.
|
|
25
|
+
- **Producer** — shares models from their own machine through a hub.
|
|
26
|
+
- **Consumer** — calls shared models with a standard SDK from any machine.
|
|
27
|
+
|
|
28
|
+
Then follow Steps 1–2 (identical for everyone) and the matching path in Step 4.
|
|
29
|
+
|
|
30
|
+
## Step 1: Install aweshare CLI
|
|
31
|
+
|
|
32
|
+
### Prerequisites
|
|
33
|
+
|
|
34
|
+
- Node >= 22 (`node --version`)
|
|
35
|
+
|
|
36
|
+
If Node.js is missing, tell the user to install it from https://nodejs.org/.
|
|
37
|
+
|
|
38
|
+
### Steps
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm install -g aweshare
|
|
42
|
+
aweshare -v
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Expected output: a version number (e.g. `0.4.8`).
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Step 2: Install the aweshare skill
|
|
50
|
+
|
|
51
|
+
Install the skill so the agent can operate aweshare in this and future sessions. Choose one of the following options.
|
|
52
|
+
|
|
53
|
+
### Option A: Via aweskill (recommended if aweskill is available)
|
|
54
|
+
|
|
55
|
+
Use this option if the user already has aweskill installed, or is willing to install it. This gives full skill management — install, update, projection, backup.
|
|
56
|
+
|
|
57
|
+
#### Prerequisites
|
|
58
|
+
|
|
59
|
+
- Node.js >= 20 (`node --version`) — required by aweskill
|
|
60
|
+
- npm available (`npm --version`)
|
|
61
|
+
|
|
62
|
+
#### Steps
|
|
63
|
+
|
|
64
|
+
##### A1. Install aweskill (if not already installed)
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npm install -g aweskill
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
##### A2. Initialize the aweskill central store (if not already done)
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
aweskill store init
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
##### A3. Install the aweshare skill from GitHub
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
aweskill install wehuman01/aweshare
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
##### A4. Identify the current agent
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
aweskill agent supported
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Look for lines marked with `✓`. Common agent ids: `claude-code`, `cursor`, `codex`, `gemini-cli`, `windsurf`, `opencode`, `qwen-code`.
|
|
89
|
+
|
|
90
|
+
If you cannot determine the agent id, ask the user.
|
|
91
|
+
|
|
92
|
+
##### A5. Project the aweshare skill to this agent
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
aweskill agent add skill aweshare --global --agent <agent-id>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
##### A6. Verify
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
aweskill agent list --global --agent <agent-id>
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Expected: `aweshare` shows as `linked`.
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### Option B: Direct copy (no aweskill needed)
|
|
109
|
+
|
|
110
|
+
Use this option if the user does not have aweskill. This copies the SKILL.md file directly into the agent's skill directory.
|
|
111
|
+
|
|
112
|
+
#### Prerequisites
|
|
113
|
+
|
|
114
|
+
- `curl` or `wget` available
|
|
115
|
+
|
|
116
|
+
#### Steps
|
|
117
|
+
|
|
118
|
+
##### B1. Identify the current agent's skill directory
|
|
119
|
+
|
|
120
|
+
Determine which agent is running and its global skill directory:
|
|
121
|
+
|
|
122
|
+
| Agent | Skill directory |
|
|
123
|
+
|---|---|
|
|
124
|
+
| Claude Code | `~/.claude/skills/aweshare/` |
|
|
125
|
+
| Codex | `~/.codex/skills/aweshare/` |
|
|
126
|
+
| Cursor | `.cursor/skills/aweshare/` (project-level) |
|
|
127
|
+
| Gemini CLI | `~/.gemini/skills/aweshare/` |
|
|
128
|
+
| Windsurf | `~/.windsurf/skills/aweshare/` |
|
|
129
|
+
| OpenCode | `~/.opencode/skills/aweshare/` |
|
|
130
|
+
| Qwen Code | `~/.qwen/skills/aweshare/` |
|
|
131
|
+
|
|
132
|
+
If the agent is not in this list, ask the user where to place the skill file.
|
|
133
|
+
|
|
134
|
+
##### B2. Download and place SKILL.md
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
mkdir -p <skill-directory>
|
|
138
|
+
curl -fsSL https://raw.githubusercontent.com/wehuman01/aweshare/main/resources/skills/aweshare/SKILL.md -o <skill-directory>/SKILL.md
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Replace `<skill-directory>` with the path from step B1.
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Step 3: Detect the current setup (read-only, safe to run)
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
aweshare producer config path # where config.toml / secrets.json live
|
|
149
|
+
aweshare producer config show # config with token + secrets redacted
|
|
150
|
+
aweshare producer doctor --status # background producer state + recent log, instant, no network
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Report the findings to the user:
|
|
154
|
+
|
|
155
|
+
- No config at `~/.aweshare/config.toml` — fresh machine, continue with Step 4.
|
|
156
|
+
- Config present — a producer is (or was) set up here; `doctor --status` tells whether a background instance is running.
|
|
157
|
+
- Full `aweshare producer doctor` (without `--status`) adds network probes of the configured backends and the hub plus the recent log. Diagnostic traffic only — run it freely after setup, fix the first FAIL, re-run until green.
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Step 4: Role-specific setup
|
|
162
|
+
|
|
163
|
+
Interactive or service-starting commands stay in the user's terminal. Everything else you can do.
|
|
164
|
+
|
|
165
|
+
### Producer — shares models from this machine
|
|
166
|
+
|
|
167
|
+
1. Join the hub (either works):
|
|
168
|
+
- The user redeems their invite code — you may run it, it is non-interactive and writes `~/.aweshare/config.toml` + empty `secrets.json`:
|
|
169
|
+
```bash
|
|
170
|
+
aweshare producer join --hub https://hub.example.com --code asi_...
|
|
171
|
+
```
|
|
172
|
+
- Or the operator handed over a token directly:
|
|
173
|
+
```bash
|
|
174
|
+
aweshare producer init --hub https://hub.example.com --token asp_...
|
|
175
|
+
```
|
|
176
|
+
2. Edit `config.toml` yourself: set `hubUrl`/`token`, define `[[backends]]` (protocol + baseUrl convention: `openai` baseUrl includes `/v1`; `anthropic` excludes `/v1`; `responses` includes the version path) and `[[offerings]]` (alias namespace = producer name, one upstream model each).
|
|
177
|
+
3. Upstream keys go into `secrets.json` under the backend's `keyRef` name. **Do not ask the user to paste keys into chat** — ask them to edit `secrets.json` themselves, then continue.
|
|
178
|
+
4. Verify:
|
|
179
|
+
```bash
|
|
180
|
+
aweshare producer doctor # instance, config, backend probes, hub — fix the first FAIL
|
|
181
|
+
```
|
|
182
|
+
5. Tell the user (do not run):
|
|
183
|
+
> Run `aweshare producer start` in your terminal — or `aweshare producer start --background` to detach it (logs to `~/.aweshare/producer.log`). Stopping later: `aweshare producer stop`.
|
|
184
|
+
|
|
185
|
+
After config edits on a running producer, `aweshare producer reload` applies the new catalog without a restart (both processes also stat-poll their config every 2s and hot-apply valid edits; `hubUrl`/`token` still need a restart).
|
|
186
|
+
|
|
187
|
+
### Consumer — calls shared models
|
|
188
|
+
|
|
189
|
+
1. Have the user redeem their invite in their own terminal — it prints the `asc_` token exactly once:
|
|
190
|
+
```bash
|
|
191
|
+
aweshare consumer join --hub https://hub.example.com --code asi_...
|
|
192
|
+
```
|
|
193
|
+
(No aweshare installed? One curl works: `POST https://hub.example.com/invites/v1/redeem` with `{"code":"asi_..."}`.)
|
|
194
|
+
2. Configure the tool with the printed env vars:
|
|
195
|
+
```bash
|
|
196
|
+
# Claude Code / Anthropic SDK — the key is the asc_ consumer key, NOT any upstream x-api-key
|
|
197
|
+
export ANTHROPIC_BASE_URL=https://hub.example.com
|
|
198
|
+
export ANTHROPIC_AUTH_TOKEN=asc_...
|
|
199
|
+
claude --model peng/sonnet
|
|
200
|
+
|
|
201
|
+
# OpenAI SDK / Codex
|
|
202
|
+
export OPENAI_BASE_URL=https://hub.example.com/v1
|
|
203
|
+
export OPENAI_API_KEY=asc_...
|
|
204
|
+
```
|
|
205
|
+
3. Discovery (read-only, safe to run once you have the token):
|
|
206
|
+
```bash
|
|
207
|
+
aweshare consumer list --hub https://hub.example.com --token asc_...
|
|
208
|
+
```
|
|
209
|
+
Every producer, alias, protocol, status, caps, live occupancy and remaining daily tokens.
|
|
210
|
+
4. A first smoke-test request (`curl ... /v1/chat/completions` with `"ping"`) is a real model call — only run it when the user asks.
|
|
211
|
+
|
|
212
|
+
Remind the consumer: prompts and responses transit the hub in plaintext — only use a hub they trust. If Claude Code ignores env config, a stale OAuth login is overriding it — switch with `/login`.
|
|
213
|
+
|
|
214
|
+
### Hub operator — runs the hub on a server
|
|
215
|
+
|
|
216
|
+
1. Choose npm or Docker (Docker is the better default on a VPS). Both `hub serve` and container deployment run in the **user's** terminal:
|
|
217
|
+
```bash
|
|
218
|
+
# npm
|
|
219
|
+
npm install -g aweshare
|
|
220
|
+
aweshare hub init # data in ~/.aweshare-hub; prints the admin token ONCE — save it
|
|
221
|
+
aweshare hub serve # listens on :8787; put Caddy/nginx TLS in front
|
|
222
|
+
|
|
223
|
+
# docker
|
|
224
|
+
docker run -d --name aweshare-hub --restart unless-stopped \
|
|
225
|
+
-p 127.0.0.1:8787:8787 -v "$PWD/data:/data" ghcr.io/wehuman01/aweshare:latest
|
|
226
|
+
docker exec aweshare-hub aweshare hub init
|
|
227
|
+
```
|
|
228
|
+
2. After `hub init` (wherever it ran), mint invites — you may run these:
|
|
229
|
+
```bash
|
|
230
|
+
aweshare hub invite --name peng # bound producer code → asi_...
|
|
231
|
+
aweshare hub invite --count 10 # unbound batch, name+email at redeem
|
|
232
|
+
aweshare hub invite --role consumer --name alice # bound consumer code → asi_...
|
|
233
|
+
```
|
|
234
|
+
Consumers redeem codes themselves (`aweshare consumer join`); producers via `aweshare producer join`.
|
|
235
|
+
3. Administering a remote hub: run admin commands on the server (`ssh` + CLI, or `docker exec aweshare-hub aweshare hub ...`), or locally with `AWESHARE_HUB_URL=https://<hub-host>` plus the admin-token file in a local data dir — otherwise they fail with "no admin token" / connection refused.
|
|
236
|
+
4. Guardrails you can tune on request: per-consumer `aweshare hub limits NAME [--rps N] [--tpm N] [--max-total-tokens N] ...`, suspension `aweshare hub revoke --id N` / `restore --id N` (reversible, invite-keyed).
|
|
237
|
+
5. Security notes for the operator: keep :8787 off the public internet behind TLS; a redeemed consumer key can call **every** offering on the hub; tokens/codes stored plaintext-recoverable (`hub list --reveal` / `--token`) means a data-dir leak exposes identities — guard it.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Step 5: Verify and tune (safe to run)
|
|
242
|
+
|
|
243
|
+
After setup:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
aweshare producer doctor # full diagnosis, ordered to find the first failing link
|
|
247
|
+
aweshare producer list # registered offerings, live status, caps, occupancy, config drift
|
|
248
|
+
aweshare hub list producers # roster + last seen (admin context only)
|
|
249
|
+
aweshare hub usage # who used how much, aggregated per consumer × model
|
|
250
|
+
aweshare self-update --check # installed vs npm latest
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
On the user's request you may also:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
aweshare hub limits alice --tpm 60000 --max-total-tokens 5000000 # cap a consumer
|
|
257
|
+
aweshare hub usage --details --since 24h # per-request log
|
|
258
|
+
aweshare producer reload # apply config edits without restart
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## Useful commands
|
|
262
|
+
|
|
263
|
+
Read-only commands (safe to run in agent):
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
aweshare -v # installed version
|
|
267
|
+
aweshare producer config path # config/secrets locations
|
|
268
|
+
aweshare producer config show # config, secrets redacted
|
|
269
|
+
aweshare producer doctor [--status] # diagnosis (with --status: instant, no network)
|
|
270
|
+
aweshare producer list [--json] # this producer's offerings + drift
|
|
271
|
+
aweshare producer usage [...] # who used this producer's models
|
|
272
|
+
aweshare consumer list --hub URL --token asc_... # hub catalog view
|
|
273
|
+
aweshare hub list [invites|producers|consumers] [--json] # rosters / invite lifecycle
|
|
274
|
+
aweshare hub limits NAME # bare call views current overrides
|
|
275
|
+
aweshare hub usage [--details] [--group-by consumer|alias] [--since 7d]
|
|
276
|
+
aweshare self-update --check # versions only
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
Local changes (run on user request):
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
aweshare producer init [--hub URL] [--token asp_...] # write templates; no-op if they exist
|
|
283
|
+
aweshare producer join --hub URL --code asi_... # redeem a producer invite into the config
|
|
284
|
+
aweshare producer config edit # open config.toml in $EDITOR
|
|
285
|
+
aweshare producer reload # re-read config + re-register offerings
|
|
286
|
+
aweshare hub init # create data dir + admin token (printed once!)
|
|
287
|
+
aweshare hub invite [--role producer|consumer] ... # mint one-time codes (printed once)
|
|
288
|
+
aweshare hub limits NAME [--rps N] [--burst N] [--max-concurrent N] [--tpm N] [--max-total-tokens N] [--clear]
|
|
289
|
+
aweshare hub revoke --id N / restore --id N # reversible suspension, by invite handle
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
User-only commands (long-running, TTY-confirming, or one-time-secret-printing):
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
aweshare producer start [--background] / stop # the relay service
|
|
296
|
+
aweshare hub serve # the hub
|
|
297
|
+
aweshare consumer join --hub URL --code asi_... # prints the asc_ token once
|
|
298
|
+
aweshare self-update # y/n confirm; non-interactive: npm install -g aweshare
|
|
299
|
+
docker run / docker compose up # hub deployment
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
## Safety Rules
|
|
303
|
+
|
|
304
|
+
- Never start or stop the long-running services (`hub serve`, `producer start`/`stop`, hub containers) inside the agent — deployment is the user's call. Inspect a detached producer with `producer doctor --status`.
|
|
305
|
+
- Never read or print `secrets.json` values; use `producer config show` (redacted) when showing config. Never ask the user to paste an upstream API key into chat — point them at the file instead.
|
|
306
|
+
- Commands that print a secret exactly once (`hub init`, `consumer join`, `hub invite`) are best run by the user; if you run one, flag the value as save-now.
|
|
307
|
+
- State the trust boundary before anyone joins a hub: consumer traffic transits the hub in plaintext; a redeemed consumer key can call every offering. State the compliance boundary before anyone shares a key: personal-subscription keys forwarded to third parties likely violate upstream terms — the producer bears the consequences.
|
|
308
|
+
- Read state through the CLI (`config show`, `list`, `doctor`); do not hand-edit SQLite or pidfiles. Config TOML edits are fine — they hot-reload.
|
|
309
|
+
- Offering aliases must be `namespace/name`, lowercase, namespace matching the producer token's name. One offering = one upstream model; the old `maxConcurrency` key fails validation with a rename hint (use `maxConcurrencyPerUser`).
|
|
310
|
+
- If any command fails, report the exact command and error message (codes like `403 HUB_FULL`, `409 INVITE_ROLE_MISMATCH`, `401 TOKEN_REVOKED` carry meaning — pass them through). Do not silently retry.
|
|
311
|
+
|
|
312
|
+
## Final Step
|
|
313
|
+
|
|
314
|
+
After setup, tell the user to invoke skills (`/` in Claude Code, `$` in Codex, or the equivalent in other agents) and check if `aweshare` appears in the list. If it does, the skill is ready to use immediately. If not, the user should restart the agent.
|
|
315
|
+
|
|
316
|
+
> aweshare is installed and configured. Invoke skills (type `/` or `$` depending on your agent) and look for `aweshare` — if it appears, you're good to go. If not, restart the agent. Then you can ask me things like:
|
|
317
|
+
>
|
|
318
|
+
> - "Share my local Ollama qwen2.5:7b as peng/qwen2.5.7b."
|
|
319
|
+
> - "Why is my producer offline?" (I'll run `producer doctor` and fix the first FAIL.)
|
|
320
|
+
> - "Cap alice at 60k tokens per minute."
|
|
321
|
+
> - "Who used my models this week?"
|
|
322
|
+
|
|
323
|
+
If the user is speaking Chinese, use this version instead:
|
|
324
|
+
|
|
325
|
+
> aweshare 已安装并配置完成。请调用 skills(输入 `/` 或 `$`,取决于你的 agent),看看列表中是否出现了 `aweshare`。如果出现了,说明已就绪可以直接使用。如果没有,请重启 agent 后再试。然后你可以继续问我,例如:
|
|
326
|
+
>
|
|
327
|
+
> - “把我本地的 Ollama qwen2.5:7b 以 peng/qwen2.5.7b 共享出去。”
|
|
328
|
+
> - “我的 producer 为什么掉线了?”(我会跑 `producer doctor` 并修复第一个 FAIL。)
|
|
329
|
+
> - “给 alice 限流到每分钟 6 万 token。”
|
|
330
|
+
> - “这周谁用了我的模型?”
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Next Steps
|
|
335
|
+
|
|
336
|
+
### Community hub — no server of your own
|
|
337
|
+
|
|
338
|
+
The project's developer runs an invite-based community hub at https://aweshare.wehuman.top. If the user wants to share or consume without operating a hub, guide them through the tutorial: https://github.com/wehuman01/aweshare/blob/main/docs/community-hub/README.md — requesting an invite at peng@wehuman.top, joining as producer or consumer, and the first connection. State the trust rule before they join: their traffic transits that hub in plaintext.
|
|
339
|
+
|
|
340
|
+
### awewarm — keep shared subscription windows warm
|
|
341
|
+
|
|
342
|
+
If the user shares a coding-plan-backed endpoint through aweshare, pair it with [awewarm](https://github.com/wehuman01/awewarm): it schedules one minimal request per window so the underlying subscription quota never cools down mid-day. Its agent doc lives at https://github.com/wehuman01/awewarm/blob/main/README.ai.md.
|
|
343
|
+
|
|
344
|
+
### aweswitch — agent profile switching
|
|
345
|
+
|
|
346
|
+
Consumers who juggle several providers can use [aweswitch](https://github.com/Webioinfo01/aweswitch) to switch Claude Code / Codex / OpenCode profiles; pointing one of those profiles at an aweshare hub is just another provider entry.
|
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<a href="https://ko-fi.com/mugpeng"><img src="https://img.shields.io/badge/Ko--fi-Buy%20me%20a%20coffee-FF5E5B?style=flat-square&logo=ko-fi&logoColor=white" alt="Ko-fi"></a>
|
|
15
15
|
</p>
|
|
16
16
|
<p>
|
|
17
|
-
<a href="https://github.com/wehuman01/aweshare-source/releases"><img src="https://img.shields.io/badge/version-0.
|
|
17
|
+
<a href="https://github.com/wehuman01/aweshare-source/releases"><img src="https://img.shields.io/badge/version-0.5.0-7C3AED?style=flat-square" alt="Version"></a>
|
|
18
18
|
<a href="https://github.com/wehuman01/aweshare"><img src="https://img.shields.io/badge/node-%E2%89%A522-0EA5E9?style=flat-square" alt="Node"></a>
|
|
19
19
|
<a href="https://github.com/wehuman01/aweshare/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-proprietary-E34F26?style=flat-square" alt="License"></a>
|
|
20
20
|
<a href="https://www.npmjs.com/package/aweshare"><img src="https://img.shields.io/badge/npm-aweshare-7C3AED?style=flat-square" alt="npm package"></a>
|
|
@@ -69,7 +69,19 @@ Consumer (standard SDK, zero changes) Producer side
|
|
|
69
69
|
|
|
70
70
|
Published as [`aweshare`](https://www.npmjs.com/package/aweshare) on npm (requires Node ≥ 22) and as a Docker image (`ghcr.io/wehuman01/aweshare`). No clone needed.
|
|
71
71
|
|
|
72
|
-
###
|
|
72
|
+
### Let an AI agent set it up
|
|
73
|
+
|
|
74
|
+
Working in Claude Code, Codex, or another coding agent? Tell it:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
Read https://github.com/wehuman01/aweshare/blob/main/README.ai.md and follow it to install and configure aweshare.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The agent installs the CLI and the skill, asks whether you are a hub operator, producer, or consumer, and does everything that is safe to automate — editing configs, minting invites, running `producer doctor`. Steps that print one-time tokens (`hub init`, `consumer join`) or start long-running services (`hub serve`, `producer start`) stay in your terminal. After setup you can ask things like "share my local Ollama model as peng/qwen2.5.7b", "why is my producer offline?", or "who used my models this week?".
|
|
81
|
+
|
|
82
|
+
### Manual setup
|
|
83
|
+
|
|
84
|
+
#### 1. Start the hub (operator, one VPS)
|
|
73
85
|
|
|
74
86
|
**npm** (simplest):
|
|
75
87
|
|
|
@@ -79,7 +91,7 @@ aweshare hub init # data in ~/.aweshare-hub; prints the admin token — s
|
|
|
79
91
|
aweshare hub serve # listens on :8787 (put Caddy/nginx TLS in front)
|
|
80
92
|
```
|
|
81
93
|
|
|
82
|
-
The hub can also host models itself — no producer machine needed. Add `[[backends]]`/`[[offerings]]` sections to `~/.aweshare-hub/config.toml` (same format as a producer's config, alias namespace `hub/…`), put the upstream keys in `~/.aweshare-hub/secrets.json`, and run:
|
|
94
|
+
The hub can also host models itself — no producer machine needed. Add `[[backends]]`/`[[offerings]]` sections to `~/.aweshare-hub/config.produce.toml` (same format as a producer's config, alias namespace `hub/…`), put the upstream keys in `~/.aweshare-hub/secrets.json`, and run:
|
|
83
95
|
|
|
84
96
|
```bash
|
|
85
97
|
aweshare hub produce # serve + the hub's own models; consumers dial hub/<name> like any offering
|
|
@@ -132,7 +144,7 @@ The producer's `name` becomes their alias namespace (the `peng/` in `peng/gpt-4o
|
|
|
132
144
|
|
|
133
145
|
The operator owns admission: one-time invite codes for both roles, the only admission path (every identity carries its invite handle for its whole lifecycle). A redeemed consumer key may call **every** offering on the hub — if you let someone in, they can use what is shared. Guardrails: per-consumer `hub limits` (rate, concurrency, token budgets), per-offering caps (`maxConcurrentUsers`, `dailyTokens`) and `hub revoke` suspension, all enforced by the hub.
|
|
134
146
|
|
|
135
|
-
|
|
147
|
+
#### 2. Producer first run (in this order)
|
|
136
148
|
|
|
137
149
|
```bash
|
|
138
150
|
npm install -g aweshare # ⓪ once, on the producer machine (Node ≥ 22)
|
|
@@ -153,7 +165,7 @@ aweshare producer start # foreground; add --background to detach it
|
|
|
153
165
|
# and stopped with 'aweshare producer stop'
|
|
154
166
|
```
|
|
155
167
|
|
|
156
|
-
|
|
168
|
+
#### 3. Consumer first run (in this order)
|
|
157
169
|
|
|
158
170
|
```bash
|
|
159
171
|
# ⓪ redeem your invite code (skip if the operator handed you an asc_ key directly)
|
|
@@ -294,9 +306,9 @@ Both sides at a glance — details in the sections above.
|
|
|
294
306
|
|---|---|
|
|
295
307
|
| `aweshare hub init` | create data dir + admin token (printed once) |
|
|
296
308
|
| `aweshare hub serve [--host H] [--port N]` | run the hub |
|
|
297
|
-
| `aweshare hub produce [--host H] [--port N]` | run the hub with its own models attached — same as `serve`; the `[[backends]]`/`[[offerings]]` sections of
|
|
309
|
+
| `aweshare hub produce [--host H] [--port N]` | run the hub with its own models attached — same as `serve`; the `[[backends]]`/`[[offerings]]` sections of `config.produce.toml` become `hub/…` offerings served in-process (keys in the data dir's secrets.json; edits hot-reload) |
|
|
298
310
|
| `aweshare hub invite [--role producer\|consumer] [--name NAME] [--count N] [--expires-in D]` | mint one-time invite codes (`asi_…`, printed once, expire after 7 d by default; re-view with `list --reveal`); producer codes: bound (`--name`) or unbound (name + email at redeem, `--count` batches); consumer codes: always bound to one name |
|
|
299
|
-
| `aweshare hub list [invites\|producers\|consumers] [--reveal] [--token] [--json]` | read hub state: invite lifecycle (ROLE + who redeemed, `--reveal` codes, `--token` the minted tokens), or the
|
|
311
|
+
| `aweshare hub list [invites\|producers\|consumers] [--reveal] [--token] [--json]` | read hub state: invite lifecycle (ROLE + who redeemed, `--reveal` codes, `--token` the minted tokens), or the rosters — producers with status, ONLINE (live tunnel session) and last seen; consumers with status and last seen |
|
|
300
312
|
| `aweshare hub limits NAME [--rps N] [--burst N] [--max-concurrent N] [--tpm N] [--max-total-tokens N] [--clear] [--json]` | show, merge or clear one consumer's limit overrides (unset keys keep the hub-wide defaults) |
|
|
301
313
|
| `aweshare hub usage [--details] [--consumer NAME] [--producer NAME] [--alias ns/model] [--group-by consumer-alias\|consumer\|alias] [--since 7d\|all] [--limit N] [--json]` | who used how much (default): aggregate per consumer × model, a person's rows together, busiest first — requests, errors, rate, best-effort token totals, unknown-token count, mean duration; window defaults to 7d and is printed with the table · `--details`: per-request log, newest first, zero content stored, each row naming its consumer |
|
|
302
314
|
| `aweshare hub revoke --id N` · `aweshare hub restore --id N` | kill an invite / undo — a redeemed code suspends the producer it minted, restore revives both |
|
|
@@ -324,7 +336,7 @@ Token issuance runs through invites (both roles). `limits` and `usage` are thin
|
|
|
324
336
|
| Command | Purpose |
|
|
325
337
|
|---|---|
|
|
326
338
|
| `aweshare consumer join --hub URL --code asi_… [--allow-http]` | redeem a consumer invite into an `asc_` token — printed once with ready-to-paste SDK env vars (save it; the operator can re-view it with `hub list --token`) |
|
|
327
|
-
| `aweshare consumer list --hub URL --token asc_… [--json]` | discovery view of the hub: every producer, alias, protocol, status, the per-offering caps, live occupancy (`IN USE n/max` — distinct consumers with a request in flight right now; an alias at `max/max` admits no new consumer until one settles) and remaining daily tokens |
|
|
339
|
+
| `aweshare consumer list --hub URL --token asc_… [--all] [--json]` | discovery view of the hub: online offerings by default (degraded stay listed; `--all` includes offline) — every producer, alias, protocol, status, the per-offering caps, live occupancy (`IN USE n/max` — distinct consumers with a request in flight right now; an alias at `max/max` admits no new consumer until one settles) and remaining daily tokens |
|
|
328
340
|
|
|
329
341
|
CLI maintenance: `aweshare self-update [--check]` updates the npm-installed CLI (`--check` only compares versions).
|
|
330
342
|
|
|
@@ -336,7 +348,7 @@ The hub reads `config.toml` from its data dir (`~/.aweshare-hub/config.toml`; Do
|
|
|
336
348
|
|
|
337
349
|
**Hot reload:** every tunable in the table except host/port applies live on `SIGHUP` (`kill -HUP <pid>`; Docker: `docker kill -s HUP aweshare-hub`) — the new file is validated first, and a broken edit is logged while the previous values keep serving. Env vars are fixed at process start, so keys pinned by `AWESHARE_*` ignore the reloaded file (same precedence as startup); host/port need a restart. Producer-side offerings and caps reload via `aweshare producer reload`.
|
|
338
350
|
|
|
339
|
-
**Hub-hosted models (`hub produce`):**
|
|
351
|
+
**Hub-hosted models (`hub produce`):** `config.produce.toml` carries `[[backends]]` and `[[offerings]]` sections (producer format; alias namespace `hub/…` — bare names are auto-prefixed) with upstream keys in `secrets.json` next to it (chmod 600). `config.toml` remains exclusively for Hub runtime settings. Those offerings appear in the catalog under producer `hub` and are served by the hub process directly — no tunnel, and they never count against `AWESHARE_MAX_PRODUCERS`. Caps (`maxConcurrencyPerUser`, `maxConcurrentUsers`, `dailyTokens`), usage metering and consumer limits apply exactly as for remote producers. The built-in `hub` producer is not an identity (no token, no invite, cannot be revoked); it appears in `hub list producers` — status `built-in` — only while it carries offerings. Catalog and key edits hot-reload like the tunables; a broken catalog keeps the previous one and is logged.
|
|
340
352
|
|
|
341
353
|
| Env var | Default | Purpose |
|
|
342
354
|
|---|---|---|
|
package/apps/agent/dist/cli.js
CHANGED
|
@@ -8,7 +8,7 @@ import { existsSync, readFileSync, statSync, watchFile } from 'node:fs';
|
|
|
8
8
|
import { join } from 'node:path';
|
|
9
9
|
import { INVITE_PATTERN } from '../../../packages/protocol/dist/index.js';
|
|
10
10
|
import pino from 'pino';
|
|
11
|
-
import { agentDir, applyJoinToConfig, CONFIG_TEMPLATE, loadAgentConfig, redactConfig, SECRETS_TEMPLATE, writeFileAtomic, } from './config.js';
|
|
11
|
+
import { agentDir, applyJoinToConfig, CONFIG_TEMPLATE, escapeTomlString, loadAgentConfig, redactConfig, SECRETS_TEMPLATE, writeFileAtomic, } from './config.js';
|
|
12
12
|
import { AgentConnection } from './connection.js';
|
|
13
13
|
import { clearPidIfMine, formatLogLine, isProducerAlive, logFileOf, readPid, reloadBackground, spawnBackground, stopBackground, tailLog, uptimeOf, } from './daemon.js';
|
|
14
14
|
import { runDoctor } from './doctor.js';
|
|
@@ -85,6 +85,10 @@ Options:
|
|
|
85
85
|
|
|
86
86
|
Options:
|
|
87
87
|
--json Print the raw API response instead of a table.
|
|
88
|
+
--all Show every producer's registrations on the hub (the discovery view
|
|
89
|
+
consumers get from the catalog), not just this producer's. Skips
|
|
90
|
+
the local instance line and drift check. Older hubs ignore the
|
|
91
|
+
flag and answer with your slice only.
|
|
88
92
|
-h, --help Show this message and exit.`,
|
|
89
93
|
status: `Usage: aweshare producer status
|
|
90
94
|
|
|
@@ -151,11 +155,12 @@ const COMMAND_FLAGS = {
|
|
|
151
155
|
init: ['hub', 'token'],
|
|
152
156
|
join: ['hub', 'code', 'name', 'email', 'allow-http'],
|
|
153
157
|
doctor: ['status'],
|
|
154
|
-
list: ['json'],
|
|
158
|
+
list: ['json', 'all'],
|
|
155
159
|
status: [],
|
|
156
160
|
usage: ['consumer', 'alias', 'limit', 'group-by', 'since', 'details', 'json'],
|
|
157
161
|
start: ['background'],
|
|
158
162
|
reload: [],
|
|
163
|
+
stop: [],
|
|
159
164
|
};
|
|
160
165
|
function checkFlags(cmd, flags) {
|
|
161
166
|
const allowed = COMMAND_FLAGS[cmd];
|
|
@@ -206,10 +211,10 @@ async function runInit(flags, dir) {
|
|
|
206
211
|
if (!existsSync(configPath)) {
|
|
207
212
|
let template = CONFIG_TEMPLATE;
|
|
208
213
|
if (flags.get('hub')) {
|
|
209
|
-
template = template.replace('hubUrl = "http://127.0.0.1:8787"', `hubUrl = "${flags.get('hub')}"`);
|
|
214
|
+
template = template.replace('hubUrl = "http://127.0.0.1:8787"', `hubUrl = "${escapeTomlString(flags.get('hub'))}"`);
|
|
210
215
|
}
|
|
211
216
|
if (flags.get('token')) {
|
|
212
|
-
template = template.replace('token = "asp_PASTE_PRODUCER_TOKEN"', `token = "${flags.get('token')}"`);
|
|
217
|
+
template = template.replace('token = "asp_PASTE_PRODUCER_TOKEN"', `token = "${escapeTomlString(flags.get('token'))}"`);
|
|
213
218
|
}
|
|
214
219
|
writeFileAtomic(configPath, template, 0o600);
|
|
215
220
|
console.log(`wrote ${configPath}`);
|
|
@@ -308,6 +313,9 @@ async function runConfig(dir, positional) {
|
|
|
308
313
|
}
|
|
309
314
|
const editor = process.env.VISUAL ?? process.env.EDITOR ?? 'vi';
|
|
310
315
|
const child = spawn(editor, [configPath], { stdio: 'inherit' });
|
|
316
|
+
// without this a bad $EDITOR (missing binary, args in the value) dies as
|
|
317
|
+
// an unhandled 'error' event with a stack trace instead of a clean message
|
|
318
|
+
child.on('error', (err) => fail(`cannot launch editor '${editor}': ${err.message} (check $VISUAL/$EDITOR)`));
|
|
311
319
|
child.on('exit', (code) => process.exit(code ?? 1));
|
|
312
320
|
return await new Promise(() => { });
|
|
313
321
|
}
|
|
@@ -341,11 +349,18 @@ function instanceLine(dir) {
|
|
|
341
349
|
}
|
|
342
350
|
async function runList(dir, flags) {
|
|
343
351
|
const { config } = loadAgentConfig(dir);
|
|
344
|
-
const
|
|
352
|
+
const all = flags.get('all') === 'true';
|
|
353
|
+
const offerings = await fetchOfferings(config.hubUrl, config.token, all);
|
|
345
354
|
if (flags.get('json') === 'true') {
|
|
346
355
|
console.log(JSON.stringify(offerings, null, 2));
|
|
347
356
|
return;
|
|
348
357
|
}
|
|
358
|
+
if (all) {
|
|
359
|
+
console.log(`hub-wide — every producer's registration on ${config.hubUrl}`);
|
|
360
|
+
console.log();
|
|
361
|
+
console.log(renderOfferings(offerings, { producer: true }));
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
349
364
|
console.log(`instance: ${instanceLine(dir)}`);
|
|
350
365
|
console.log();
|
|
351
366
|
console.log(renderOfferings(offerings));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,8 @@ export declare function loadAgentConfig(dir: string): {
|
|
|
19
19
|
};
|
|
20
20
|
/** Redact secret values so config can be printed safely. */
|
|
21
21
|
export declare function redactConfig(configToml: string, secretsJson: string | undefined): string;
|
|
22
|
+
/** Escape a value for a double-quoted TOML string. */
|
|
23
|
+
export declare function escapeTomlString(s: string): string;
|
|
22
24
|
/**
|
|
23
25
|
* Patch the hubUrl/token lines of an existing config body ('agent join').
|
|
24
26
|
* Returns null when either line is missing — a config without them is not a
|