@bodhi-ventures/aiocs 0.4.0 → 0.5.1
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 +61 -61
- package/dist/{chunk-TSNV6PND.js → chunk-TSTOA3Q6.js} +2 -2
- package/dist/cli.js +2 -2
- package/dist/mcp-server.js +1 -1
- package/docs/codex-integration.md +22 -22
- package/docs/json-contract.md +1 -1
- package/package.json +2 -2
- package/skills/aiocs/SKILL.md +20 -20
- package/skills/aiocs-curation/SKILL.md +13 -13
package/README.md
CHANGED
|
@@ -30,15 +30,15 @@ For testing or local overrides, set:
|
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
32
|
npm install -g @bodhi-ventures/aiocs
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
aiocs --version
|
|
34
|
+
aiocs --help
|
|
35
35
|
command -v aiocs-mcp
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
Zero-install fallback:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npx -y -p @bodhi-ventures/aiocs
|
|
41
|
+
npx -y -p @bodhi-ventures/aiocs aiocs --version
|
|
42
42
|
npx -y -p @bodhi-ventures/aiocs aiocs-mcp
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -54,12 +54,12 @@ pnpm dev:mcp
|
|
|
54
54
|
For AI agents, prefer the root-level `--json` flag for one-shot commands:
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
57
|
+
aiocs --json version
|
|
58
|
+
aiocs --json doctor
|
|
59
|
+
aiocs --json init --no-fetch
|
|
60
|
+
aiocs --json source list
|
|
61
|
+
aiocs --json search "maker flow" --source hyperliquid
|
|
62
|
+
aiocs --json show 42
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
`--json` emits exactly one JSON document to stdout with this envelope:
|
|
@@ -127,21 +127,21 @@ The open-source repo bundles both web and git sources in `sources/`:
|
|
|
127
127
|
|
|
128
128
|
Additional machine-local source specs belong in `~/.aiocs/sources`.
|
|
129
129
|
|
|
130
|
-
`
|
|
130
|
+
`aiocs init` bootstraps both managed locations, so source behavior is the same regardless of
|
|
131
131
|
whether a spec lives in the repo or in `~/.aiocs/sources`.
|
|
132
132
|
|
|
133
133
|
Bootstrap managed sources in one command:
|
|
134
134
|
|
|
135
135
|
```bash
|
|
136
|
-
|
|
137
|
-
|
|
136
|
+
aiocs init --no-fetch
|
|
137
|
+
aiocs --json init --no-fetch
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
Validate the machine before bootstrapping:
|
|
141
141
|
|
|
142
142
|
```bash
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
aiocs doctor
|
|
144
|
+
aiocs --json doctor
|
|
145
145
|
```
|
|
146
146
|
|
|
147
147
|
## Workflow
|
|
@@ -151,54 +151,54 @@ Register a source:
|
|
|
151
151
|
```bash
|
|
152
152
|
mkdir -p ~/.aiocs/sources
|
|
153
153
|
cp /path/to/source.yaml ~/.aiocs/sources/my-source.yaml
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
aiocs source upsert ~/.aiocs/sources/my-source.yaml
|
|
155
|
+
aiocs source upsert /path/to/source.yaml
|
|
156
|
+
aiocs source list
|
|
157
157
|
```
|
|
158
158
|
|
|
159
159
|
Fetch and snapshot docs:
|
|
160
160
|
|
|
161
161
|
```bash
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
162
|
+
aiocs refresh due hyperliquid
|
|
163
|
+
aiocs snapshot list hyperliquid
|
|
164
|
+
aiocs refresh due
|
|
165
165
|
```
|
|
166
166
|
|
|
167
167
|
Force fetch remains available for explicit maintenance:
|
|
168
168
|
|
|
169
169
|
```bash
|
|
170
|
-
|
|
171
|
-
|
|
170
|
+
aiocs fetch hyperliquid
|
|
171
|
+
aiocs fetch all
|
|
172
172
|
```
|
|
173
173
|
|
|
174
174
|
Link docs to a local project:
|
|
175
175
|
|
|
176
176
|
```bash
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
aiocs project link /absolute/path/to/project hyperliquid lighter
|
|
178
|
+
aiocs project unlink /absolute/path/to/project lighter
|
|
179
179
|
```
|
|
180
180
|
|
|
181
181
|
Search and inspect results:
|
|
182
182
|
|
|
183
183
|
```bash
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
184
|
+
aiocs search "maker flow" --source hyperliquid
|
|
185
|
+
aiocs search "WebSocketTransport" --source nktkas-hyperliquid --path "src/**" --language typescript
|
|
186
|
+
aiocs search "maker flow" --source hyperliquid --mode lexical
|
|
187
|
+
aiocs search "maker flow" --source hyperliquid --mode hybrid
|
|
188
|
+
aiocs search "maker flow" --source hyperliquid --mode semantic
|
|
189
|
+
aiocs search "maker flow" --all
|
|
190
|
+
aiocs search "maker flow" --source hyperliquid --limit 5 --offset 0
|
|
191
|
+
aiocs show 42
|
|
192
|
+
aiocs canary hyperliquid
|
|
193
|
+
aiocs diff hyperliquid
|
|
194
|
+
aiocs embeddings status
|
|
195
|
+
aiocs embeddings backfill all
|
|
196
|
+
aiocs embeddings run
|
|
197
|
+
aiocs backup export /absolute/path/to/backup
|
|
198
|
+
aiocs verify coverage hyperliquid /absolute/path/to/reference.md
|
|
199
199
|
```
|
|
200
200
|
|
|
201
|
-
When `
|
|
201
|
+
When `aiocs search` runs inside a linked project, it automatically scopes to that project's linked sources unless `--source` or `--all` is provided.
|
|
202
202
|
|
|
203
203
|
For agents, the intended decision order is:
|
|
204
204
|
|
|
@@ -319,22 +319,22 @@ All one-shot commands support `--json`:
|
|
|
319
319
|
Representative examples:
|
|
320
320
|
|
|
321
321
|
```bash
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
322
|
+
aiocs --json doctor
|
|
323
|
+
aiocs --json init --no-fetch
|
|
324
|
+
aiocs --json source list
|
|
325
|
+
aiocs --json source upsert sources/hyperliquid.yaml
|
|
326
|
+
aiocs --json refresh due hyperliquid
|
|
327
|
+
aiocs --json canary hyperliquid
|
|
328
|
+
aiocs --json refresh due
|
|
329
|
+
aiocs --json diff hyperliquid
|
|
330
|
+
aiocs --json embeddings status
|
|
331
|
+
aiocs --json embeddings backfill all
|
|
332
|
+
aiocs --json embeddings clear hyperliquid
|
|
333
|
+
aiocs --json embeddings run
|
|
334
|
+
aiocs --json project link /absolute/path/to/project hyperliquid lighter
|
|
335
|
+
aiocs --json snapshot list hyperliquid
|
|
336
|
+
aiocs --json backup export /absolute/path/to/backup
|
|
337
|
+
aiocs --json verify coverage hyperliquid /absolute/path/to/reference.md
|
|
338
338
|
```
|
|
339
339
|
|
|
340
340
|
For multi-result commands like `fetch`, `refresh due`, and `search`, `data` contains structured collections rather than line-by-line output:
|
|
@@ -361,7 +361,7 @@ For multi-result commands like `fetch`, `refresh due`, and `search`, `data` cont
|
|
|
361
361
|
`aiocs` ships a first-class long-running refresh process:
|
|
362
362
|
|
|
363
363
|
```bash
|
|
364
|
-
|
|
364
|
+
aiocs daemon
|
|
365
365
|
```
|
|
366
366
|
|
|
367
367
|
The daemon bootstraps source specs from the configured directories, refreshes due sources, sleeps for the configured interval, and repeats.
|
|
@@ -371,7 +371,7 @@ Configured source spec directories are treated as the daemon’s source of truth
|
|
|
371
371
|
- if a managed source spec is removed from disk, the source is removed from the catalog on the next bootstrap
|
|
372
372
|
- if `AIOCS_SOURCE_SPEC_DIRS` is explicitly set but resolves to missing or empty directories, the daemon fails fast instead of silently idling
|
|
373
373
|
- due canaries run independently from full fetch schedules so drift is caught earlier than the next full snapshot refresh
|
|
374
|
-
- daemon heartbeat state is persisted in the local catalog and surfaced through `
|
|
374
|
+
- daemon heartbeat state is persisted in the local catalog and surfaced through `aiocs doctor`
|
|
375
375
|
- queued embedding jobs are processed in the same daemon cycle after fetches complete
|
|
376
376
|
|
|
377
377
|
Environment variables:
|
|
@@ -389,10 +389,10 @@ For local agents, the daemon keeps the shared catalog under `~/.aiocs` warm whil
|
|
|
389
389
|
|
|
390
390
|
### Daemon JSON mode
|
|
391
391
|
|
|
392
|
-
`
|
|
392
|
+
`aiocs daemon --json` is intentionally different from one-shot commands. Because it is long-running, it emits one JSON event per line:
|
|
393
393
|
|
|
394
394
|
```bash
|
|
395
|
-
|
|
395
|
+
aiocs --json daemon
|
|
396
396
|
```
|
|
397
397
|
|
|
398
398
|
Example event stream:
|
|
@@ -488,7 +488,7 @@ docker compose up --build -d
|
|
|
488
488
|
|
|
489
489
|
The compose file:
|
|
490
490
|
|
|
491
|
-
- runs `
|
|
491
|
+
- runs `aiocs daemon` as the container entrypoint
|
|
492
492
|
- bind-mounts `${HOME}/.aiocs` into `/root/.aiocs` so the container shares the same local catalog defaults as the host CLI
|
|
493
493
|
- bind-mounts `./sources` into `/app/sources` so source spec edits are picked up without rebuilding
|
|
494
494
|
- runs a dedicated `aiocs-qdrant` container for vector search
|
|
@@ -3987,7 +3987,7 @@ async function startDaemon(input) {
|
|
|
3987
3987
|
// package.json
|
|
3988
3988
|
var package_default = {
|
|
3989
3989
|
name: "@bodhi-ventures/aiocs",
|
|
3990
|
-
version: "0.
|
|
3990
|
+
version: "0.5.1",
|
|
3991
3991
|
license: "MIT",
|
|
3992
3992
|
type: "module",
|
|
3993
3993
|
description: "Local-only documentation store, fetcher, and search CLI for AI agents.",
|
|
@@ -4020,7 +4020,7 @@ var package_default = {
|
|
|
4020
4020
|
"skills"
|
|
4021
4021
|
],
|
|
4022
4022
|
bin: {
|
|
4023
|
-
|
|
4023
|
+
aiocs: "./dist/cli.js",
|
|
4024
4024
|
"aiocs-mcp": "./dist/mcp-server.js"
|
|
4025
4025
|
},
|
|
4026
4026
|
engines: {
|
package/dist/cli.js
CHANGED
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
unlinkProjectSources,
|
|
32
32
|
upsertSourceFromSpecFile,
|
|
33
33
|
verifyCoverage
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-TSTOA3Q6.js";
|
|
35
35
|
|
|
36
36
|
// src/cli.ts
|
|
37
37
|
import { Command, CommanderError as CommanderError2 } from "commander";
|
|
@@ -245,7 +245,7 @@ function createDaemonLogger(json) {
|
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
247
|
var program = new Command();
|
|
248
|
-
program.name("
|
|
248
|
+
program.name("aiocs").description("Local-only documentation fetch and search CLI for AI agents.").option("-V, --version", "emit the current aiocs version").option("--json", "emit machine-readable JSON output").showHelpAfterError();
|
|
249
249
|
program.configureOutput({
|
|
250
250
|
writeOut(output) {
|
|
251
251
|
if (!argvWantsJson(process.argv)) {
|
package/dist/mcp-server.js
CHANGED
|
@@ -8,22 +8,22 @@ Install the CLI and MCP binary globally:
|
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
10
|
npm install -g @bodhi-ventures/aiocs
|
|
11
|
-
|
|
11
|
+
aiocs --version
|
|
12
12
|
command -v aiocs-mcp
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
If global install is unavailable, use `npx` only as a fallback:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
npx -y -p @bodhi-ventures/aiocs
|
|
18
|
+
npx -y -p @bodhi-ventures/aiocs aiocs --version
|
|
19
19
|
npx -y -p @bodhi-ventures/aiocs aiocs-mcp
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
The `aiocs-mcp` process is an MCP stdio server, so running it directly will wait for MCP clients instead of printing interactive help. The useful validation commands are:
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
aiocs --json doctor
|
|
26
|
+
aiocs --json init --no-fetch
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Register `aiocs-mcp` as a global Codex MCP server so the main agent can use it directly without shell fallback:
|
|
@@ -37,7 +37,7 @@ command = "aiocs-mcp"
|
|
|
37
37
|
|
|
38
38
|
1. Prefer `aiocs` before live browsing when the requested docs may already exist locally.
|
|
39
39
|
2. Prefer MCP through `aiocs-mcp` when Codex can use it.
|
|
40
|
-
3. Fall back to `
|
|
40
|
+
3. Fall back to `aiocs --json ...` only when MCP is unavailable.
|
|
41
41
|
4. Check `source_list` before assuming a source is missing or stale.
|
|
42
42
|
5. Default to `search mode=auto`.
|
|
43
43
|
6. Use `mode=lexical` for exact identifiers, endpoint names, headings, and error strings.
|
|
@@ -65,7 +65,7 @@ Once those symlinks exist, Codex can load `aiocs` for normal local-doc lookup an
|
|
|
65
65
|
## Subagent options
|
|
66
66
|
|
|
67
67
|
The repo ships a ready-to-copy specialist definition at
|
|
68
|
-
[`agents/aiocs-
|
|
68
|
+
[`agents/aiocs-specialist.toml`](../agents/aiocs-specialist.toml).
|
|
69
69
|
|
|
70
70
|
It points at the globally installed `aiocs-mcp` binary so Codex uses the published package by default.
|
|
71
71
|
|
|
@@ -74,7 +74,7 @@ To expose that agent to Codex:
|
|
|
74
74
|
```bash
|
|
75
75
|
AIOCS_REPO=/absolute/path/to/your/aiocs/checkout
|
|
76
76
|
mkdir -p ~/.codex/agents
|
|
77
|
-
ln -sfn "$AIOCS_REPO/agents/aiocs-
|
|
77
|
+
ln -sfn "$AIOCS_REPO/agents/aiocs-specialist.toml" ~/.codex/agents/aiocs-specialist.toml
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## Suggested Codex flows
|
|
@@ -82,17 +82,17 @@ ln -sfn "$AIOCS_REPO/agents/aiocs-docs-specialist.toml" ~/.codex/agents/aiocs-do
|
|
|
82
82
|
Health and bootstrap:
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
aiocs --json doctor
|
|
86
|
+
aiocs --json init --no-fetch
|
|
87
87
|
```
|
|
88
88
|
|
|
89
|
-
Local
|
|
89
|
+
Local aiocs lookup:
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
aiocs --json source list
|
|
93
|
+
aiocs --json search "maker flow" --source hyperliquid --mode auto
|
|
94
|
+
aiocs --json search "WebSocketTransport" --source nktkas-hyperliquid --path "src/**" --language typescript --mode lexical
|
|
95
|
+
aiocs --json show 42
|
|
96
96
|
```
|
|
97
97
|
|
|
98
98
|
Missing or stale sources:
|
|
@@ -101,24 +101,24 @@ Missing or stale sources:
|
|
|
101
101
|
# user-managed source specs live here
|
|
102
102
|
~/.aiocs/sources
|
|
103
103
|
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
aiocs --json source upsert ~/.aiocs/sources/my-source.yaml
|
|
105
|
+
aiocs --json refresh due my-source
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
Drift, change, and completeness:
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
aiocs --json canary hyperliquid
|
|
112
|
+
aiocs --json diff hyperliquid
|
|
113
|
+
aiocs --json verify coverage hyperliquid /absolute/path/to/reference.md
|
|
114
114
|
```
|
|
115
115
|
|
|
116
116
|
Catalog maintenance:
|
|
117
117
|
|
|
118
118
|
```bash
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
119
|
+
aiocs --json refresh due hyperliquid
|
|
120
|
+
aiocs --json embeddings status
|
|
121
|
+
aiocs --json backup export /absolute/path/to/backup
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
## MCP-first guidance
|
package/docs/json-contract.md
CHANGED
|
@@ -470,7 +470,7 @@ Summary status values:
|
|
|
470
470
|
|
|
471
471
|
## Daemon event stream
|
|
472
472
|
|
|
473
|
-
`
|
|
473
|
+
`aiocs daemon --json` is intentionally different because the process is long-running. It emits newline-delimited JSON events to stdout rather than a single envelope.
|
|
474
474
|
|
|
475
475
|
Current event types:
|
|
476
476
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bodhi-ventures/aiocs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Local-only documentation store, fetcher, and search CLI for AI agents.",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"skills"
|
|
34
34
|
],
|
|
35
35
|
"bin": {
|
|
36
|
-
"
|
|
36
|
+
"aiocs": "./dist/cli.js",
|
|
37
37
|
"aiocs-mcp": "./dist/mcp-server.js"
|
|
38
38
|
},
|
|
39
39
|
"engines": {
|
package/skills/aiocs/SKILL.md
CHANGED
|
@@ -33,7 +33,7 @@ Use this skill when you need authoritative local documentation lookup through th
|
|
|
33
33
|
1. Prefer `aiocs-mcp` when an MCP client can use it directly.
|
|
34
34
|
2. Otherwise use the CLI with the root `--json` flag.
|
|
35
35
|
3. Avoid parsing human-formatted CLI output unless there is no alternative.
|
|
36
|
-
4. Assume `
|
|
36
|
+
4. Assume `aiocs` and `aiocs-mcp` come from the globally installed `@bodhi-ventures/aiocs` package unless the user explicitly asks for a checkout-local development build.
|
|
37
37
|
5. Use `npx -y -p @bodhi-ventures/aiocs ...` only as a fallback when the global install is unavailable.
|
|
38
38
|
|
|
39
39
|
## Search defaults for agents
|
|
@@ -50,13 +50,13 @@ Use this skill when you need authoritative local documentation lookup through th
|
|
|
50
50
|
Validate the local runtime:
|
|
51
51
|
|
|
52
52
|
```bash
|
|
53
|
-
|
|
53
|
+
aiocs --json doctor
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
Bootstrap managed sources from the repo bundle and `~/.aiocs/sources`:
|
|
57
57
|
|
|
58
58
|
```bash
|
|
59
|
-
|
|
59
|
+
aiocs --json init --no-fetch
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
## Core commands
|
|
@@ -64,51 +64,51 @@ docs --json init --no-fetch
|
|
|
64
64
|
Search the shared catalog:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
aiocs --json search "maker flow" --source hyperliquid
|
|
68
|
+
aiocs --json search "maker flow" --all
|
|
69
|
+
aiocs --json search "maker flow" --source hyperliquid --limit 5 --offset 0
|
|
70
|
+
aiocs --json search "maker flow" --source hyperliquid --mode hybrid
|
|
71
|
+
aiocs --json search "WebSocketTransport" --source nktkas-hyperliquid --path "src/**" --language typescript --mode lexical
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
Inspect a specific chunk:
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
|
-
|
|
77
|
+
aiocs --json show 42
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
Inspect source availability and health:
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
aiocs --json source list
|
|
84
|
+
aiocs --json canary hyperliquid
|
|
85
|
+
aiocs --json embeddings status
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
Inspect what changed between snapshots:
|
|
89
89
|
|
|
90
90
|
```bash
|
|
91
|
-
|
|
91
|
+
aiocs --json diff hyperliquid
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
Back up or restore the shared catalog:
|
|
95
95
|
|
|
96
96
|
```bash
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
aiocs --json backup export /absolute/path/to/backup
|
|
98
|
+
aiocs --json backup import /absolute/path/to/backup --replace-existing
|
|
99
99
|
```
|
|
100
100
|
|
|
101
101
|
Verify fetched coverage against reference markdown:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
|
|
104
|
+
aiocs --json verify coverage hyperliquid /absolute/path/to/reference.md
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
Scope docs to a project path:
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
aiocs --json project link /absolute/path/to/project hyperliquid lighter
|
|
111
|
+
aiocs --json project unlink /absolute/path/to/project lighter
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
## MCP tools
|
|
@@ -150,8 +150,8 @@ Mutation-capable MCP tools such as `source_upsert`, `refresh_due`, and `fetch` b
|
|
|
150
150
|
|
|
151
151
|
- The catalog is local-only and shared across projects on the same machine.
|
|
152
152
|
- Default state root: `~/.aiocs/data`, `~/.aiocs/config`, and `~/.aiocs/sources`.
|
|
153
|
-
- Use `
|
|
154
|
-
- `
|
|
153
|
+
- Use `aiocs daemon` or the Docker daemon service when the catalog should stay fresh automatically.
|
|
154
|
+
- `aiocs search --mode auto` is the right default for agents; it uses hybrid retrieval only when embeddings are current and healthy for the requested scope.
|
|
155
155
|
- The Docker Compose stack includes a dedicated `aiocs-qdrant` container and expects Ollama to be reachable separately.
|
|
156
156
|
- Canaries are the first place to look when a docs site changed and fetches started degrading.
|
|
157
157
|
- Newly added or changed sources become due immediately, so `refresh due <source-id>` is the safe first refresh path after upsert.
|
|
@@ -9,7 +9,7 @@ Use this skill when you need to add, refresh, repair, or otherwise mutate `aiocs
|
|
|
9
9
|
|
|
10
10
|
## When to use it
|
|
11
11
|
|
|
12
|
-
- The requested
|
|
12
|
+
- The requested source is missing from the local `aiocs` catalog and is worth curating for reuse.
|
|
13
13
|
- An existing source is stale and should be refreshed instead of bypassed.
|
|
14
14
|
- A source spec needs to be created, updated, or upserted under `~/.aiocs/sources`.
|
|
15
15
|
- A reusable external git repository should be added as a `kind: git` source under `~/.aiocs/sources`.
|
|
@@ -30,7 +30,7 @@ Use this skill when you need to add, refresh, repair, or otherwise mutate `aiocs
|
|
|
30
30
|
|
|
31
31
|
1. Prefer `aiocs-mcp` when an MCP client can use it directly.
|
|
32
32
|
2. Otherwise use the CLI with the root `--json` flag.
|
|
33
|
-
3. Assume `
|
|
33
|
+
3. Assume `aiocs` and `aiocs-mcp` come from the globally installed `@bodhi-ventures/aiocs` package unless the user explicitly asks for a checkout-local development build.
|
|
34
34
|
4. Use `npx -y -p @bodhi-ventures/aiocs ...` only as a fallback when the global install is unavailable.
|
|
35
35
|
|
|
36
36
|
## User-managed sources
|
|
@@ -48,33 +48,33 @@ Create or update source specs there instead of editing the bundled repo sources.
|
|
|
48
48
|
Validate the machine before curation:
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
aiocs --json doctor
|
|
52
|
+
aiocs --json source list
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
Add or update a machine-local source:
|
|
56
56
|
|
|
57
57
|
```bash
|
|
58
58
|
mkdir -p ~/.aiocs/sources
|
|
59
|
-
|
|
59
|
+
aiocs --json source upsert ~/.aiocs/sources/my-source.yaml
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
Refresh only what is needed:
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
aiocs --json refresh due my-source
|
|
66
|
+
aiocs --json refresh due hyperliquid
|
|
67
|
+
aiocs --json refresh due nktkas-hyperliquid
|
|
68
|
+
aiocs --json fetch my-source
|
|
69
|
+
aiocs --json canary my-source
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
Heavy maintenance remains explicit:
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
aiocs --json fetch all
|
|
76
|
+
aiocs --json embeddings backfill all
|
|
77
|
+
aiocs --json embeddings run
|
|
78
78
|
```
|
|
79
79
|
|
|
80
80
|
## MCP tools
|