@zokizuan/satori-cli 0.3.0 → 0.3.2

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 CHANGED
@@ -1,54 +1,49 @@
1
1
  # @zokizuan/satori-cli
2
2
 
3
- Shell CLI for Satori installation, skill packaging, and direct tool invocation without a resident MCP client.
3
+ Shell CLI for installing Satori MCP config, copying first-party skills, checking setup, and calling Satori tools without a resident MCP client.
4
4
 
5
- ## What It Does
6
-
7
- - installs and removes Satori MCP client config for supported clients
8
- - copies packaged first-party skills:
9
- - `satori-search`
10
- - `satori-navigation`
11
- - `satori-indexing`
12
- - starts a local stdio session against `@zokizuan/satori-mcp` for direct shell workflows
13
-
14
- ## Install / Uninstall
5
+ ## Install Satori for a Client
15
6
 
16
7
  ```bash
17
- npx -y @zokizuan/satori-cli@0.3.0 install --client codex
18
- npx -y @zokizuan/satori-cli@0.3.0 install --client claude
19
- npx -y @zokizuan/satori-cli@0.3.0 install --client all --dry-run
20
- npx -y @zokizuan/satori-cli@0.3.0 uninstall --client codex
21
- npx -y @zokizuan/satori-cli@0.3.0 doctor
8
+ npx -y @zokizuan/satori-cli@0.3.2 install --client codex
9
+ npx -y @zokizuan/satori-cli@0.3.2 install --client claude
10
+ npx -y @zokizuan/satori-cli@0.3.2 install --client all --dry-run
11
+ npx -y @zokizuan/satori-cli@0.3.2 uninstall --client codex
12
+ npx -y @zokizuan/satori-cli@0.3.2 doctor
22
13
  ```
23
14
 
24
- Managed install writes MCP config that launches:
15
+ Managed installs write config that launches:
25
16
 
26
17
  ```toml
27
18
  [mcp_servers.satori]
28
19
  command = "npx"
29
- args = ["-y", "@zokizuan/satori-mcp@4.9.0"]
20
+ args = ["-y", "@zokizuan/satori-mcp@4.10.1"]
30
21
  startup_timeout_ms = 180000
31
22
  ```
32
23
 
33
- ## Commands
24
+ The installer only manages Satori-owned config and skills:
25
+
26
+ - `satori-search`
27
+ - `satori-navigation`
28
+ - `satori-indexing`
29
+
30
+ ## Direct Tool Calls
34
31
 
35
32
  ```bash
36
- satori-cli doctor
37
33
  satori-cli tools list
38
- satori-cli tool call <toolName> --args-json '{"path":"/abs/repo","query":"auth"}'
39
- satori-cli tool call <toolName> --args-file ./args.json
40
- satori-cli tool call <toolName> --args-json @-
41
- satori-cli <toolName> [schema-subset flags]
34
+ satori-cli tool call search_codebase --args-json '{"path":"/abs/repo","query":"auth flow"}'
35
+ satori-cli tool call search_codebase --args-file ./args.json
36
+ satori-cli tool call search_codebase --args-json @-
37
+ satori-cli search_codebase --path /abs/repo --query "auth flow"
42
38
  ```
43
39
 
44
- Global flags (`--startup-timeout-ms`, `--call-timeout-ms`, `--format`, `--debug`) must appear before the command token.
40
+ Global flags such as `--startup-timeout-ms`, `--call-timeout-ms`, `--format`, and `--debug` must appear before the command token.
45
41
 
46
- `doctor` checks local setup without starting an MCP client: Node version, npm package visibility, provider env, and Milvus env.
42
+ `doctor` checks Node, package visibility, provider env, and Milvus env without starting an MCP client.
47
43
 
48
44
  ## Development
49
45
 
50
46
  ```bash
51
47
  pnpm --filter @zokizuan/satori-cli build
52
48
  pnpm --filter @zokizuan/satori-cli test
53
- pnpm --filter @zokizuan/satori-cli release:smoke
54
49
  ```
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: satori-indexing
3
- description: Index lifecycle and remediation for Satori. Use when codebases are not indexed, stale, blocked, or need freshness recovery.
3
+ description: Use when Satori codebases are not indexed, stale, blocked, still indexing, or need lifecycle recovery.
4
4
  ---
5
5
 
6
6
  # Satori Indexing
@@ -27,10 +27,12 @@ Use only:
27
27
  - Never call `manage_index(action="clear")` unless the user explicitly requests destructive reset.
28
28
  - Treat ignore-only churn as a `sync` problem first.
29
29
  - Respect blocked and indexing states instead of forcing retries blindly.
30
+ - Use `status` and `list_codebases` freely; provider credentials are only needed for provider-backed lifecycle actions.
30
31
 
31
32
  ## Status Handling
32
33
 
33
34
  - `requires_reindex`: run `manage_index(action="reindex")`.
34
35
  - `not_ready` with indexing reason: check status and wait for terminal completion.
35
36
  - `not_indexed`: create the index.
37
+ - `MISSING_PROVIDER_CONFIG`: run `satori-cli doctor` when available, then set missing provider or Milvus env before retrying create/reindex/sync/search.
36
38
  - Ignore-rule noise mitigation: update `.satoriignore`, wait debounce, and run `sync` for immediate convergence.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: satori-navigation
3
- description: Deterministic symbol navigation with Satori. Use after search results are found to lock exact spans and inspect call relationships.
3
+ description: Use when search has returned candidate code and exact spans, symbol reads, or call relationships are needed.
4
4
  ---
5
5
 
6
6
  # Satori Navigation
@@ -14,12 +14,14 @@ Use only:
14
14
  2. `call_graph`
15
15
  3. `read_file`
16
16
 
17
+ For lifecycle remediation (`requires_reindex`, `not_indexed`, indexing waits), switch to `satori-indexing`.
18
+
17
19
  ## Workflow
18
20
 
19
21
  1. Use grouped `search_codebase` results as the starting point.
20
- 2. If `callGraphHint.supported=true`, call `call_graph(path=..., symbolRef=..., direction="both", depth=1)`.
21
- 3. If `callGraphHint.supported=false`, execute `navigationFallback.readSpan.args` exactly.
22
- 4. Use `file_outline(resolveMode="exact", symbolIdExact|symbolLabelExact)` to lock the symbol span.
22
+ 2. Use `file_outline(resolveMode="exact", symbolIdExact|symbolLabelExact)` to lock the symbol span when exact identity is available.
23
+ 3. If `callGraphHint.supported=true`, call `call_graph(path=..., symbolRef=..., direction="both", depth=1)`.
24
+ 4. If `callGraphHint.supported=false`, execute `navigationFallback.readSpan.args` exactly.
23
25
  5. Use `read_file(path=..., open_symbol=...)` or deterministic line spans for the final read.
24
26
 
25
27
  ## Rules
@@ -28,9 +30,10 @@ Use only:
28
30
  - `open_symbol` must resolve deterministically. Do not guess on ambiguity.
29
31
  - `read_file(mode="annotated")` is preferred when outline metadata is useful.
30
32
  - Follow continuation hints when plain reads are truncated.
33
+ - Other tools do not run search freshness; remediate stale index state before trusting navigation.
31
34
 
32
35
  ## Remediation
33
36
 
34
- - `requires_reindex`: reindex before retrying navigation.
35
- - `not_ready`: wait for indexing to finish.
37
+ - `requires_reindex`: switch to `satori-indexing` and reindex before retrying navigation.
38
+ - `not_ready` or `not_indexed`: switch to `satori-indexing`; wait or create before retrying navigation.
36
39
  - `unsupported`: fall back to deterministic `read_file` spans when supplied by `navigationFallback`.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: satori-search
3
- description: Semantic-first code search with Satori. Use for intent-based code discovery before file reads or grep.
3
+ description: Use when finding code by behavior, concept, or symbol before opening files or falling back to grep.
4
4
  ---
5
5
 
6
6
  # Satori Search
@@ -16,16 +16,17 @@ Use only:
16
16
 
17
17
  ## Workflow
18
18
 
19
- 1. Check readiness with `manage_index(action="status", path=...)`.
19
+ 1. Check readiness with `manage_index(action="status", path=...)` when index state is unknown.
20
20
  2. If not indexed, use `manage_index(action="create", path=...)`.
21
21
  3. If `requires_reindex` appears, stop and use `manage_index(action="reindex", path=...)`, then retry.
22
- 4. Search with `search_codebase(path=..., query=..., scope="runtime", resultMode="grouped", groupBy="symbol", rankingMode="auto_changed_first")`.
22
+ 4. Search the user-requested path with `search_codebase(path=..., query=..., scope="runtime", resultMode="grouped", groupBy="symbol", rankingMode="auto_changed_first")`.
23
23
 
24
24
  ## Search Rules
25
25
 
26
26
  - Start with natural-language intent, not filenames.
27
27
  - Default to `scope="runtime"`.
28
28
  - Use operators only when needed: `lang:`, `path:`, `-path:`, `must:`, `exclude:`.
29
+ - Pass the user's requested path; if Satori resolves an indexed parent, follow returned `navigationFallback` exactly.
29
30
  - Treat warnings as usable-but-degraded results, not fatal errors.
30
31
  - Use `debug=true` only when ranking or filter explanations are required.
31
32
 
@@ -33,4 +34,6 @@ Use only:
33
34
 
34
35
  - `requires_reindex`: run `manage_index(action="reindex")`, not `sync`.
35
36
  - `not_ready` with indexing reason: wait or check `manage_index(action="status")`.
37
+ - `not_indexed`: run `manage_index(action="create")` on the repository root or requested indexed root.
38
+ - `MISSING_PROVIDER_CONFIG` is active only when it appears as the tool response `code` or `reason`. If it appears inside `search_codebase` results, it may just be matched code content.
36
39
  - Noise mitigation hint: update `.satoriignore`, wait debounce, rerun search, and use `manage_index(action="sync")` only for immediate convergence.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zokizuan/satori-cli",
3
- "version": "0.3.0",
3
+ "version": "0.3.2",
4
4
  "description": "Shell CLI for Satori MCP installation and skill-based workflows",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@modelcontextprotocol/sdk": "^1.12.1",
13
- "@zokizuan/satori-mcp": "4.9.0"
13
+ "@zokizuan/satori-mcp": "4.10.1"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@types/node": "^20.0.0",