deepvista-cli 0.3.0__tar.gz → 0.4.0__tar.gz
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.
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/.github/workflows/ci.yml +26 -0
- deepvista_cli-0.4.0/.release-please-manifest.json +3 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/CHANGELOG.md +8 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/PKG-INFO +39 -1
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/README.md +38 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/auth.py +33 -0
- deepvista_cli-0.4.0/install.ps1 +401 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/.claude-plugin/plugin.json +1 -1
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/pyproject.toml +1 -1
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/uv.lock +1 -1
- deepvista_cli-0.3.0/.release-please-manifest.json +0 -3
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/.claude-plugin/marketplace.json +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/.github/workflows/publish.yml +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/.github/workflows/release-please.yml +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/.gitignore +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/.pre-commit-config.yaml +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/CLAUDE.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/CONTRIBUTING.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/LICENSE +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/agent_catalog.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/auth/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/auth/callback_server.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/auth/login.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/auth/tokens.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/client/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/client/http.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/client/origin.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/agents.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/card.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/chat.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/config.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/lint.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/memory.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/notes.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/schedule.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/session.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/skill.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/upgrade.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/commands/vistabase.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/config.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/main.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/output/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/output/formatter.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/resources/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/resources/workflow_host_runtime.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/session_note.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/skill_catalog.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/tui/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/tui/app.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/workflow_doc.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/docs/assets/deepvista-banner.png +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/install.sh +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/README.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/README.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/agents/.gitignore +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/commands/deepvista.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/commands/refresh-skills.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/hooks/hooks.json +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-session-end.sh +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-session-start.sh +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-session-turn.sh +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-skill-url.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-sync.sh +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/skills/.gitignore +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/skills/install-deepvista-cli/SKILL.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/release-please-config.json +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/scripts/check_plugin_version.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/SKILL.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/chat.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/lint.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/memory.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/notes.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/openclaw.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/session.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/shared.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-analyze-notes.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-create-from-note.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-import-files.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-research-to-skill.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/vistabase-card.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/vistabase.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/dv-workflow/SKILL.md +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/tests/__init__.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/tests/test_agent_id_tagging.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/tests/test_session_note_format.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/tests/test_skill_catalog.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/tests/test_skill_commands.py +0 -0
- {deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/uninstall.sh +0 -0
|
@@ -47,3 +47,29 @@ jobs:
|
|
|
47
47
|
env:
|
|
48
48
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
49
49
|
run: gh skill publish --dry-run
|
|
50
|
+
|
|
51
|
+
windows-smoke:
|
|
52
|
+
runs-on: windows-latest
|
|
53
|
+
steps:
|
|
54
|
+
- uses: actions/checkout@v4
|
|
55
|
+
|
|
56
|
+
- name: Parse install.ps1 (syntax check)
|
|
57
|
+
shell: pwsh
|
|
58
|
+
run: |
|
|
59
|
+
$errors = $null
|
|
60
|
+
[System.Management.Automation.Language.Parser]::ParseFile("$PWD/install.ps1", [ref]$null, [ref]$errors) | Out-Null
|
|
61
|
+
if ($errors.Count -gt 0) {
|
|
62
|
+
$errors | ForEach-Object { Write-Error $_.Message }
|
|
63
|
+
exit 1
|
|
64
|
+
}
|
|
65
|
+
Write-Host "install.ps1 parses cleanly"
|
|
66
|
+
|
|
67
|
+
- uses: astral-sh/setup-uv@v6
|
|
68
|
+
with:
|
|
69
|
+
enable-cache: true
|
|
70
|
+
|
|
71
|
+
- name: Install deepvista CLI from checkout
|
|
72
|
+
run: uv tool install ".[ui]"
|
|
73
|
+
|
|
74
|
+
- name: Smoke test - deepvista --help
|
|
75
|
+
run: deepvista --help
|
|
@@ -37,6 +37,14 @@ users what's new between the version they have installed and the latest release.
|
|
|
37
37
|
adopts a pre-existing server-side row instead of failing when the local
|
|
38
38
|
file is missing.
|
|
39
39
|
|
|
40
|
+
## [0.4.0](https://github.com/DeepVista-AI/deepvista-cli/compare/v0.3.0...v0.4.0) (2026-06-03)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
### Features
|
|
44
|
+
|
|
45
|
+
* **DV-941:** add windows install script and trampoline troubleshooting docs ([#156](https://github.com/DeepVista-AI/deepvista-cli/issues/156)) ([eed7335](https://github.com/DeepVista-AI/deepvista-cli/commit/eed7335ffdc1dfcfd84523ed0e77be066b7fe9c3))
|
|
46
|
+
* **DV-942:** print next-step hints after auth login ([#157](https://github.com/DeepVista-AI/deepvista-cli/issues/157)) ([0fca6c9](https://github.com/DeepVista-AI/deepvista-cli/commit/0fca6c9309623ee690c2c9e16870d528b558fd80))
|
|
47
|
+
|
|
40
48
|
## [0.3.0](https://github.com/DeepVista-AI/deepvista-cli/compare/v0.2.0...v0.3.0) (2026-05-31)
|
|
41
49
|
|
|
42
50
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: deepvista-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: CLI for DeepVista — chat, notes, skills, and memory from your terminal.
|
|
5
5
|
Project-URL: Homepage, https://deepvista.ai
|
|
6
6
|
Project-URL: Repository, https://github.com/DeepVista-AI/deepvista-cli
|
|
@@ -164,14 +164,52 @@ then `deepvista auth login`).
|
|
|
164
164
|
|
|
165
165
|
### For non-Claude-Code agents (Cursor, OpenCode, OpenClaw, …)
|
|
166
166
|
|
|
167
|
+
**macOS / Linux (bash):**
|
|
168
|
+
|
|
167
169
|
```bash
|
|
168
170
|
curl -sSL https://raw.githubusercontent.com/DeepVista-AI/deepvista-cli/main/install.sh | bash
|
|
169
171
|
```
|
|
170
172
|
|
|
173
|
+
**Windows (PowerShell):**
|
|
174
|
+
|
|
175
|
+
```powershell
|
|
176
|
+
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/DeepVista-AI/deepvista-cli/main/install.ps1 | iex"
|
|
177
|
+
```
|
|
178
|
+
|
|
171
179
|
The script auto-detects your package manager (`uv`, `pipx`, or `pip`) and copies the consolidated `deepvista` skill into your agent's skill directory (Cursor, OpenCode, OpenClaw, and Claude Code as a fallback). If you upgraded from an earlier release, it also sweeps out the 12 legacy `deepvista-*` skills so you don't end up with both.
|
|
172
180
|
|
|
173
181
|
Prefer GitHub's CLI? `gh skill install DeepVista-AI/deepvista-cli` works too (GitHub CLI ≥ 2.90, preview).
|
|
174
182
|
|
|
183
|
+
#### Windows troubleshooting: `uv trampoline failed to canonicalize script path`
|
|
184
|
+
|
|
185
|
+
On Windows, running `deepvista` may fail with:
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
error: uv trampoline failed to canonicalize script path
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
This is a [known uv-on-Windows issue](https://github.com/astral-sh/uv/issues): the launcher (trampoline) that `uv tool install` creates can fail to resolve its own path. It is aggravated by working directories that contain **spaces** (e.g. `C:\Users\you\Claude Folder`) or are inside **OneDrive**-synced folders.
|
|
192
|
+
|
|
193
|
+
Fixes, in order of preference:
|
|
194
|
+
|
|
195
|
+
1. **Update uv and reinstall the launcher:**
|
|
196
|
+
|
|
197
|
+
```powershell
|
|
198
|
+
uv self update
|
|
199
|
+
uv tool install --reinstall "deepvista-cli[ui]"
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
2. **Run via `uv tool run` as a fallback** (bypasses the broken trampoline entirely):
|
|
203
|
+
|
|
204
|
+
```powershell
|
|
205
|
+
uv tool run deepvista auth login
|
|
206
|
+
uv tool run deepvista notes +quick "My first note"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
3. **Avoid spaces / OneDrive in your working directory.** Run from a path without spaces, e.g. `C:\dev`, rather than `C:\Users\you\Claude Folder`.
|
|
210
|
+
|
|
211
|
+
The `install.ps1` script performs this check automatically: after installing it runs `deepvista --version`, and if it hits the trampoline error it falls back to `uv tool run deepvista` and prints the guidance above. It also adds `%USERPROFILE%\.local\bin` (uv's tool bin directory) to your user PATH if it isn't already there — restart your shell afterward so new terminals pick it up.
|
|
212
|
+
|
|
175
213
|
### Get Started
|
|
176
214
|
|
|
177
215
|
Open your agent and paste:
|
|
@@ -135,14 +135,52 @@ then `deepvista auth login`).
|
|
|
135
135
|
|
|
136
136
|
### For non-Claude-Code agents (Cursor, OpenCode, OpenClaw, …)
|
|
137
137
|
|
|
138
|
+
**macOS / Linux (bash):**
|
|
139
|
+
|
|
138
140
|
```bash
|
|
139
141
|
curl -sSL https://raw.githubusercontent.com/DeepVista-AI/deepvista-cli/main/install.sh | bash
|
|
140
142
|
```
|
|
141
143
|
|
|
144
|
+
**Windows (PowerShell):**
|
|
145
|
+
|
|
146
|
+
```powershell
|
|
147
|
+
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/DeepVista-AI/deepvista-cli/main/install.ps1 | iex"
|
|
148
|
+
```
|
|
149
|
+
|
|
142
150
|
The script auto-detects your package manager (`uv`, `pipx`, or `pip`) and copies the consolidated `deepvista` skill into your agent's skill directory (Cursor, OpenCode, OpenClaw, and Claude Code as a fallback). If you upgraded from an earlier release, it also sweeps out the 12 legacy `deepvista-*` skills so you don't end up with both.
|
|
143
151
|
|
|
144
152
|
Prefer GitHub's CLI? `gh skill install DeepVista-AI/deepvista-cli` works too (GitHub CLI ≥ 2.90, preview).
|
|
145
153
|
|
|
154
|
+
#### Windows troubleshooting: `uv trampoline failed to canonicalize script path`
|
|
155
|
+
|
|
156
|
+
On Windows, running `deepvista` may fail with:
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
error: uv trampoline failed to canonicalize script path
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
This is a [known uv-on-Windows issue](https://github.com/astral-sh/uv/issues): the launcher (trampoline) that `uv tool install` creates can fail to resolve its own path. It is aggravated by working directories that contain **spaces** (e.g. `C:\Users\you\Claude Folder`) or are inside **OneDrive**-synced folders.
|
|
163
|
+
|
|
164
|
+
Fixes, in order of preference:
|
|
165
|
+
|
|
166
|
+
1. **Update uv and reinstall the launcher:**
|
|
167
|
+
|
|
168
|
+
```powershell
|
|
169
|
+
uv self update
|
|
170
|
+
uv tool install --reinstall "deepvista-cli[ui]"
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
2. **Run via `uv tool run` as a fallback** (bypasses the broken trampoline entirely):
|
|
174
|
+
|
|
175
|
+
```powershell
|
|
176
|
+
uv tool run deepvista auth login
|
|
177
|
+
uv tool run deepvista notes +quick "My first note"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
3. **Avoid spaces / OneDrive in your working directory.** Run from a path without spaces, e.g. `C:\dev`, rather than `C:\Users\you\Claude Folder`.
|
|
181
|
+
|
|
182
|
+
The `install.ps1` script performs this check automatically: after installing it runs `deepvista --version`, and if it hits the trampoline error it falls back to `uv tool run deepvista` and prints the guidance above. It also adds `%USERPROFILE%\.local\bin` (uv's tool bin directory) to your user PATH if it isn't already there — restart your shell afterward so new terminals pick it up.
|
|
183
|
+
|
|
146
184
|
### Get Started
|
|
147
185
|
|
|
148
186
|
Open your agent and paste:
|
|
@@ -14,6 +14,7 @@ from deepvista_cli.auth.tokens import (
|
|
|
14
14
|
remove_account,
|
|
15
15
|
switch_active_account,
|
|
16
16
|
)
|
|
17
|
+
from deepvista_cli.client.origin import detect_agent_tool
|
|
17
18
|
from deepvista_cli.config import credentials_path
|
|
18
19
|
from deepvista_cli.output.formatter import format_output, output_error
|
|
19
20
|
|
|
@@ -23,6 +24,37 @@ def auth_group() -> None:
|
|
|
23
24
|
"""Authenticate with DeepVista."""
|
|
24
25
|
|
|
25
26
|
|
|
27
|
+
def _print_next_steps() -> None:
|
|
28
|
+
"""Print actionable next-step options after a successful login (DV-942).
|
|
29
|
+
|
|
30
|
+
Written to stderr so the JSON result on stdout stays machine-parseable.
|
|
31
|
+
Suggestions adapt to whoever is driving the CLI (agent vs. terminal).
|
|
32
|
+
"""
|
|
33
|
+
tool, _version = detect_agent_tool()
|
|
34
|
+
if tool == "claude-code":
|
|
35
|
+
steps = [
|
|
36
|
+
"/refresh-skills — sync the DeepVista skill catalog",
|
|
37
|
+
'say "Help me get started with DeepVista."',
|
|
38
|
+
'deepvista notes +quick "<fact>" — capture your first note',
|
|
39
|
+
]
|
|
40
|
+
elif tool == "deepvista-cli": # direct terminal usage
|
|
41
|
+
steps = [
|
|
42
|
+
'deepvista notes +quick "My first note" — capture a note',
|
|
43
|
+
"deepvista skill list — browse your workflow skills",
|
|
44
|
+
"deepvista ui — launch the terminal UI",
|
|
45
|
+
"deepvista chat — talk to your DeepVista agent",
|
|
46
|
+
]
|
|
47
|
+
else: # some other AI agent is driving us
|
|
48
|
+
steps = [
|
|
49
|
+
'deepvista notes +quick "<fact>" — capture a note for the user',
|
|
50
|
+
"deepvista skill list — discover available workflow skills",
|
|
51
|
+
'deepvista vistabase +search "<topic>" — recall the user\'s stored context',
|
|
52
|
+
]
|
|
53
|
+
click.echo("\n What's next? Pick one:", err=True)
|
|
54
|
+
for step in steps:
|
|
55
|
+
click.echo(f" - {step}", err=True)
|
|
56
|
+
|
|
57
|
+
|
|
26
58
|
@auth_group.command("login")
|
|
27
59
|
@click.option("--code", default=None, help="One-time auth code from the browser.")
|
|
28
60
|
@click.option("--dry-run", is_flag=True, default=False, help="Preview what would happen without making any changes.")
|
|
@@ -64,6 +96,7 @@ def auth_login(ctx: click.Context, code: str | None, dry_run: bool) -> None:
|
|
|
64
96
|
}
|
|
65
97
|
format_output(result, ctx.obj.output_format)
|
|
66
98
|
click.echo(f" Logged in as {tokens.email or tokens.user_id}", err=True)
|
|
99
|
+
_print_next_steps()
|
|
67
100
|
|
|
68
101
|
|
|
69
102
|
@auth_group.command("status")
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
#Requires -Version 5.1
|
|
2
|
+
<#
|
|
3
|
+
.SYNOPSIS
|
|
4
|
+
Installs the DeepVista CLI and agent skills on Windows.
|
|
5
|
+
|
|
6
|
+
.DESCRIPTION
|
|
7
|
+
PowerShell port of install.sh. Works in Windows PowerShell 5.1 and
|
|
8
|
+
PowerShell 7+ (pwsh). Mirrors the bash installer:
|
|
9
|
+
1. Ensure uv is installed (irm https://astral.sh/uv/install.ps1 | iex)
|
|
10
|
+
2. Install or upgrade the deepvista CLI
|
|
11
|
+
3. Deploy the consolidated `deepvista` skill to agent skill directories
|
|
12
|
+
4. Inject skill interpretation rules into agent config files
|
|
13
|
+
5. Register the skill-trigger hook in Claude Code settings.json
|
|
14
|
+
6. Verify the binary runs (with uv-trampoline troubleshooting)
|
|
15
|
+
7. Check / perform authentication
|
|
16
|
+
8. Print next-steps guidance
|
|
17
|
+
|
|
18
|
+
.NOTES
|
|
19
|
+
Run with:
|
|
20
|
+
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/DeepVista-AI/deepvista-cli/main/install.ps1 | iex"
|
|
21
|
+
#>
|
|
22
|
+
|
|
23
|
+
Set-StrictMode -Version Latest
|
|
24
|
+
$ErrorActionPreference = 'Stop'
|
|
25
|
+
|
|
26
|
+
$REPO = 'DeepVista-AI/deepvista-cli'
|
|
27
|
+
$SKILL = 'deepvista'
|
|
28
|
+
|
|
29
|
+
function Write-Step { param([string]$Message) Write-Host "==> $Message" }
|
|
30
|
+
function Write-Sub { param([string]$Message) Write-Host " $Message" }
|
|
31
|
+
function Write-Warn { param([string]$Message) Write-Host " WARNING: $Message" -ForegroundColor Yellow }
|
|
32
|
+
|
|
33
|
+
function Test-Command {
|
|
34
|
+
param([string]$Name)
|
|
35
|
+
return [bool](Get-Command $Name -ErrorAction SilentlyContinue)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
# uv installs the tool launchers (shims) into %USERPROFILE%\.local\bin on Windows.
|
|
39
|
+
$UvBinDir = Join-Path $env:USERPROFILE '.local\bin'
|
|
40
|
+
|
|
41
|
+
function Add-UvBinToPath {
|
|
42
|
+
# Ensure the uv tool bin dir is on PATH for this session and persisted for the user.
|
|
43
|
+
if (Test-Path $UvBinDir) {
|
|
44
|
+
if (($env:PATH -split ';') -notcontains $UvBinDir) {
|
|
45
|
+
$env:PATH = "$UvBinDir;$env:PATH"
|
|
46
|
+
}
|
|
47
|
+
$userPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
|
|
48
|
+
$userEntries = @()
|
|
49
|
+
if ($userPath) { $userEntries = $userPath -split ';' }
|
|
50
|
+
if ($userEntries -notcontains $UvBinDir) {
|
|
51
|
+
$newUserPath = if ($userPath) { "$userPath;$UvBinDir" } else { $UvBinDir }
|
|
52
|
+
[Environment]::SetEnvironmentVariable('PATH', $newUserPath, 'User')
|
|
53
|
+
Write-Sub "Added $UvBinDir to your user PATH (restart your shell for new terminals to pick it up)."
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
# ---------------------------------------------------------------------------
|
|
59
|
+
# 1. Ensure uv
|
|
60
|
+
# ---------------------------------------------------------------------------
|
|
61
|
+
Write-Step 'Installing deepvista CLI...'
|
|
62
|
+
|
|
63
|
+
if (-not (Test-Command 'uv')) {
|
|
64
|
+
Write-Sub 'uv not found - installing uv...'
|
|
65
|
+
try {
|
|
66
|
+
Invoke-RestMethod 'https://astral.sh/uv/install.ps1' | Invoke-Expression
|
|
67
|
+
} catch {
|
|
68
|
+
Write-Error "Failed to install uv: $($_.Exception.Message)"
|
|
69
|
+
exit 1
|
|
70
|
+
}
|
|
71
|
+
# The uv installer puts uv in %USERPROFILE%\.local\bin; surface it now.
|
|
72
|
+
if (($env:PATH -split ';') -notcontains $UvBinDir) {
|
|
73
|
+
$env:PATH = "$UvBinDir;$env:PATH"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
# ---------------------------------------------------------------------------
|
|
78
|
+
# 2. Install or upgrade the CLI
|
|
79
|
+
# ---------------------------------------------------------------------------
|
|
80
|
+
if (Test-Command 'deepvista') {
|
|
81
|
+
Write-Sub 'deepvista already installed - running upgrade...'
|
|
82
|
+
deepvista upgrade
|
|
83
|
+
} else {
|
|
84
|
+
if (Test-Command 'uv') {
|
|
85
|
+
uv tool install "deepvista-cli[ui]"
|
|
86
|
+
} elseif (Test-Command 'pipx') {
|
|
87
|
+
pipx install "deepvista-cli[ui]"
|
|
88
|
+
} elseif (Test-Command 'pip3') {
|
|
89
|
+
pip3 install --user "deepvista-cli[ui]"
|
|
90
|
+
} elseif (Test-Command 'pip') {
|
|
91
|
+
pip install --user "deepvista-cli[ui]"
|
|
92
|
+
} else {
|
|
93
|
+
Write-Error 'No Python package manager found (pip, pipx, or uv required)'
|
|
94
|
+
exit 1
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
# Make sure the freshly-installed launcher is reachable.
|
|
99
|
+
Add-UvBinToPath
|
|
100
|
+
|
|
101
|
+
# ---------------------------------------------------------------------------
|
|
102
|
+
# 3. Install DeepVista skills
|
|
103
|
+
# ---------------------------------------------------------------------------
|
|
104
|
+
Write-Step 'Installing DeepVista skills...'
|
|
105
|
+
|
|
106
|
+
# Detect which agent skill directories to install into.
|
|
107
|
+
$SkillDirs = New-Object System.Collections.Generic.List[string]
|
|
108
|
+
$home_ = $env:USERPROFILE
|
|
109
|
+
if (Test-Path (Join-Path $home_ '.claude')) { $SkillDirs.Add((Join-Path $home_ '.claude\skills')) }
|
|
110
|
+
if (Test-Path (Join-Path $home_ '.agents')) { $SkillDirs.Add((Join-Path $home_ '.agents\skills')) }
|
|
111
|
+
if (Test-Path (Join-Path $home_ '.cursor')) { $SkillDirs.Add((Join-Path $home_ '.cursor\skills')) }
|
|
112
|
+
if (Test-Path (Join-Path $home_ '.opencode')) { $SkillDirs.Add((Join-Path $home_ '.opencode\skills')) }
|
|
113
|
+
# OpenClaw: skills live in the workspace directory.
|
|
114
|
+
if (Test-Path (Join-Path $home_ '.openclaw\workspace')) { $SkillDirs.Add((Join-Path $home_ '.openclaw\workspace\skills')) }
|
|
115
|
+
|
|
116
|
+
# Default to Claude if no agent directory found.
|
|
117
|
+
if ($SkillDirs.Count -eq 0) {
|
|
118
|
+
$SkillDirs.Add((Join-Path $home_ '.claude\skills'))
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (-not (Test-Command 'git')) {
|
|
122
|
+
Write-Error 'git required to install DeepVista skills'
|
|
123
|
+
exit 1
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
$Tmp = Join-Path ([System.IO.Path]::GetTempPath()) ("deepvista-" + [System.Guid]::NewGuid().ToString('N'))
|
|
127
|
+
New-Item -ItemType Directory -Path $Tmp -Force | Out-Null
|
|
128
|
+
try {
|
|
129
|
+
$RepoDir = Join-Path $Tmp 'repo'
|
|
130
|
+
git clone --depth 1 --quiet "https://github.com/$REPO.git" $RepoDir
|
|
131
|
+
$Src = Join-Path $RepoDir 'skills'
|
|
132
|
+
|
|
133
|
+
foreach ($dir in $SkillDirs) {
|
|
134
|
+
New-Item -ItemType Directory -Path $dir -Force | Out-Null
|
|
135
|
+
$dest = Join-Path $dir $SKILL
|
|
136
|
+
if (Test-Path $dest) { Remove-Item -Recurse -Force $dest }
|
|
137
|
+
Copy-Item -Recurse -Force (Join-Path $Src $SKILL) $dest
|
|
138
|
+
Write-Sub "Skill installed to $dest"
|
|
139
|
+
}
|
|
140
|
+
} finally {
|
|
141
|
+
if (Test-Path $Tmp) { Remove-Item -Recurse -Force $Tmp -ErrorAction SilentlyContinue }
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
$OpenClawWorkspace = Join-Path $home_ '.openclaw\workspace'
|
|
145
|
+
|
|
146
|
+
# ---------------------------------------------------------------------------
|
|
147
|
+
# 4. Inject skill interpretation rules
|
|
148
|
+
# ---------------------------------------------------------------------------
|
|
149
|
+
$SkillRulesBlock = @'
|
|
150
|
+
|
|
151
|
+
<!-- deepvista-skill-rules -->
|
|
152
|
+
## Skill Interpretation Rules
|
|
153
|
+
|
|
154
|
+
When you load or invoke any skill, check its frontmatter for two fields: `type` and `execution`.
|
|
155
|
+
|
|
156
|
+
### Handling `type`
|
|
157
|
+
|
|
158
|
+
**`type: persona`**
|
|
159
|
+
Do not invoke this as a command. Load it as background context that shapes how you
|
|
160
|
+
behave for the rest of the session. Apply its tone, expertise, and decision patterns silently.
|
|
161
|
+
|
|
162
|
+
**`type: tool`**
|
|
163
|
+
Treat this as a discrete capability. Invoke it when the task calls for it and return
|
|
164
|
+
its result. No special handling needed.
|
|
165
|
+
|
|
166
|
+
**`type: workflow`**
|
|
167
|
+
Treat this as a self-contained sequence of steps. Work through them in order. Do not
|
|
168
|
+
mix steps from other skills into this sequence unless explicitly instructed.
|
|
169
|
+
|
|
170
|
+
### Handling `execution`
|
|
171
|
+
|
|
172
|
+
**`execution: stateless`**
|
|
173
|
+
Run freely. Retry on failure. No confirmation needed.
|
|
174
|
+
|
|
175
|
+
**`execution: stateful`**
|
|
176
|
+
Before executing, stop and do two things:
|
|
177
|
+
1. If the skill or its underlying command supports `--dry-run`, run that first and show the output.
|
|
178
|
+
2. Summarize what you are about to do and what will change, then ask for confirmation before proceeding.
|
|
179
|
+
|
|
180
|
+
Never skip this checkpoint for stateful skills, even if the task seems straightforward.
|
|
181
|
+
|
|
182
|
+
### Fallback rules
|
|
183
|
+
- If `type` is missing, use the information in the skill to guess its type.
|
|
184
|
+
- If `execution` is missing, treat as `stateful` and apply the checkpoint.
|
|
185
|
+
- If a workflow is stateful, treat all its steps as stateful unless they declare otherwise.
|
|
186
|
+
<!-- /deepvista-skill-rules -->
|
|
187
|
+
'@
|
|
188
|
+
|
|
189
|
+
function Install-SkillRules {
|
|
190
|
+
param([string]$ConfigFile)
|
|
191
|
+
$parent = Split-Path -Parent $ConfigFile
|
|
192
|
+
if ($parent -and -not (Test-Path $parent)) {
|
|
193
|
+
New-Item -ItemType Directory -Path $parent -Force | Out-Null
|
|
194
|
+
}
|
|
195
|
+
# Idempotent: skip if already installed.
|
|
196
|
+
if ((Test-Path $ConfigFile) -and (Select-String -Path $ConfigFile -Pattern 'deepvista-skill-rules' -Quiet)) {
|
|
197
|
+
return
|
|
198
|
+
}
|
|
199
|
+
Add-Content -Path $ConfigFile -Value $SkillRulesBlock
|
|
200
|
+
Write-Sub "Skill interpretation rules injected in $ConfigFile"
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
Write-Step 'Injecting skill interpretation rules...'
|
|
204
|
+
|
|
205
|
+
if (Test-Path (Join-Path $home_ '.claude')) { Install-SkillRules (Join-Path $home_ '.claude\CLAUDE.md') }
|
|
206
|
+
if (Test-Path (Join-Path $home_ '.cursor')) { Install-SkillRules (Join-Path $home_ '.cursor\rules') }
|
|
207
|
+
if (Test-Path (Join-Path $home_ '.opencode')) { Install-SkillRules (Join-Path $home_ '.opencode\AGENTS.md') }
|
|
208
|
+
if (Test-Path $OpenClawWorkspace) { Install-SkillRules (Join-Path $OpenClawWorkspace 'AGENTS.md') }
|
|
209
|
+
|
|
210
|
+
# ---------------------------------------------------------------------------
|
|
211
|
+
# 5. Register the skill-trigger hook in Claude Code settings.json
|
|
212
|
+
# ---------------------------------------------------------------------------
|
|
213
|
+
Write-Step 'Installing DeepVista skill-trigger hook...'
|
|
214
|
+
|
|
215
|
+
# Same shell command as the bash installer. The hook body is a bash snippet
|
|
216
|
+
# executed by Claude Code's hook runner; it is stored verbatim as a string.
|
|
217
|
+
$TriggerCmd = @'
|
|
218
|
+
prompt=$(jq -r '.prompt // ""'); if echo "$prompt" | grep -qiE '\b(workflow|skill)'; then echo '{"hookSpecificOutput":{"hookEventName":"UserPromptSubmit","additionalContext":"IMPORTANT: The user mentioned workflow or skills. You MUST call the Skill tool with skill=\"deepvista\" before doing anything else. Do not search files, browse the web, or use any other tool first."}}'; fi # deepvista-skill-trigger
|
|
219
|
+
'@.Trim()
|
|
220
|
+
|
|
221
|
+
function Install-SkillTriggerHook {
|
|
222
|
+
param([string]$SettingsFile)
|
|
223
|
+
|
|
224
|
+
$parent = Split-Path -Parent $SettingsFile
|
|
225
|
+
if ($parent -and -not (Test-Path $parent)) {
|
|
226
|
+
New-Item -ItemType Directory -Path $parent -Force | Out-Null
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
if (-not (Test-Path $SettingsFile)) {
|
|
230
|
+
Set-Content -Path $SettingsFile -Value '{}'
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
# Idempotent: skip if already installed.
|
|
234
|
+
if (Select-String -Path $SettingsFile -Pattern 'deepvista-skill-trigger' -Quiet) {
|
|
235
|
+
Write-Sub "Skill-trigger hook already registered in $SettingsFile"
|
|
236
|
+
return
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
$raw = Get-Content -Raw -Path $SettingsFile
|
|
240
|
+
if ([string]::IsNullOrWhiteSpace($raw)) { $raw = '{}' }
|
|
241
|
+
try {
|
|
242
|
+
$cfg = $raw | ConvertFrom-Json
|
|
243
|
+
} catch {
|
|
244
|
+
$cfg = [pscustomobject]@{}
|
|
245
|
+
}
|
|
246
|
+
if ($null -eq $cfg) { $cfg = [pscustomobject]@{} }
|
|
247
|
+
|
|
248
|
+
# Ensure cfg.hooks exists.
|
|
249
|
+
if (-not ($cfg.PSObject.Properties.Name -contains 'hooks') -or $null -eq $cfg.hooks) {
|
|
250
|
+
$cfg | Add-Member -NotePropertyName 'hooks' -NotePropertyValue ([pscustomobject]@{}) -Force
|
|
251
|
+
}
|
|
252
|
+
$hooks = $cfg.hooks
|
|
253
|
+
|
|
254
|
+
# Ensure hooks.UserPromptSubmit exists as an array.
|
|
255
|
+
if (-not ($hooks.PSObject.Properties.Name -contains 'UserPromptSubmit') -or $null -eq $hooks.UserPromptSubmit) {
|
|
256
|
+
$hooks | Add-Member -NotePropertyName 'UserPromptSubmit' -NotePropertyValue @() -Force
|
|
257
|
+
}
|
|
258
|
+
$uspList = @($hooks.UserPromptSubmit)
|
|
259
|
+
|
|
260
|
+
# Bail if already present (defensive; the Select-String check above usually catches it).
|
|
261
|
+
foreach ($entry in $uspList) {
|
|
262
|
+
if ($entry.PSObject.Properties.Name -contains 'hooks') {
|
|
263
|
+
foreach ($h in @($entry.hooks)) {
|
|
264
|
+
if ($h.PSObject.Properties.Name -contains 'command' -and "$($h.command)".Contains('deepvista-skill-trigger')) {
|
|
265
|
+
Write-Sub "Skill-trigger hook already registered in $SettingsFile"
|
|
266
|
+
return
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
$newEntry = [pscustomobject]@{
|
|
273
|
+
matcher = ''
|
|
274
|
+
hooks = @(
|
|
275
|
+
[pscustomobject]@{
|
|
276
|
+
type = 'command'
|
|
277
|
+
command = $TriggerCmd
|
|
278
|
+
}
|
|
279
|
+
)
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
$hooks.UserPromptSubmit = @($uspList + $newEntry)
|
|
283
|
+
|
|
284
|
+
$cfg | ConvertTo-Json -Depth 20 | Set-Content -Path $SettingsFile -Encoding UTF8
|
|
285
|
+
Write-Sub "Skill-trigger hook registered in $SettingsFile"
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
Install-SkillTriggerHook (Join-Path $home_ '.claude\settings.json')
|
|
289
|
+
Write-Sub 'Skill-trigger hook active - deepvista skill will be suggested when you mention workflow or skills'
|
|
290
|
+
|
|
291
|
+
# ---------------------------------------------------------------------------
|
|
292
|
+
# 6. Verify the binary actually runs (uv trampoline check)
|
|
293
|
+
# ---------------------------------------------------------------------------
|
|
294
|
+
Write-Step 'Verifying deepvista runs...'
|
|
295
|
+
|
|
296
|
+
# How to invoke deepvista for the auth step below. Defaults to the direct
|
|
297
|
+
# launcher; falls back to `uv tool run` if the trampoline is broken.
|
|
298
|
+
$DeepvistaRunner = @('deepvista')
|
|
299
|
+
|
|
300
|
+
function Invoke-DeepvistaVersion {
|
|
301
|
+
# Returns a hashtable: @{ Ok = $bool; Output = $string }
|
|
302
|
+
param([string[]]$Prefix)
|
|
303
|
+
$out = ''
|
|
304
|
+
$ok = $false
|
|
305
|
+
try {
|
|
306
|
+
$exe = $Prefix[0]
|
|
307
|
+
$argList = @()
|
|
308
|
+
if ($Prefix.Count -gt 1) { $argList += $Prefix[1..($Prefix.Count - 1)] }
|
|
309
|
+
$argList += '--version'
|
|
310
|
+
$out = & $exe @argList 2>&1 | Out-String
|
|
311
|
+
$ok = ($LASTEXITCODE -eq 0)
|
|
312
|
+
} catch {
|
|
313
|
+
$out = $_.Exception.Message
|
|
314
|
+
$ok = $false
|
|
315
|
+
}
|
|
316
|
+
return @{ Ok = $ok; Output = $out }
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
$verify = Invoke-DeepvistaVersion -Prefix @('deepvista')
|
|
320
|
+
if ($verify.Ok) {
|
|
321
|
+
Write-Sub ("deepvista OK: " + ($verify.Output.Trim()))
|
|
322
|
+
} else {
|
|
323
|
+
$isTrampoline = $verify.Output -match 'trampoline failed to canonicalize'
|
|
324
|
+
if ($isTrampoline) {
|
|
325
|
+
Write-Warn 'Hit the known uv trampoline bug: "uv trampoline failed to canonicalize script path".'
|
|
326
|
+
} else {
|
|
327
|
+
Write-Warn ('deepvista --version did not run cleanly: ' + ($verify.Output.Trim()))
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
# Fall back to `uv tool run deepvista`.
|
|
331
|
+
$fallback = Invoke-DeepvistaVersion -Prefix @('uv', 'tool', 'run', 'deepvista')
|
|
332
|
+
if ($fallback.Ok) {
|
|
333
|
+
Write-Sub ('Fallback works: uv tool run deepvista -> ' + ($fallback.Output.Trim()))
|
|
334
|
+
$DeepvistaRunner = @('uv', 'tool', 'run', 'deepvista')
|
|
335
|
+
Write-Host ''
|
|
336
|
+
Write-Sub 'The `deepvista` launcher is broken but `uv tool run deepvista` works. To fix the launcher:'
|
|
337
|
+
Write-Sub ' uv self update'
|
|
338
|
+
Write-Sub ' uv tool install --reinstall "deepvista-cli[ui]"'
|
|
339
|
+
Write-Sub 'Until then, prefix commands with `uv tool run`, e.g. `uv tool run deepvista auth login`.'
|
|
340
|
+
Write-Sub 'Tip: paths with spaces or OneDrive-synced folders aggravate this bug - run from a path without spaces.'
|
|
341
|
+
Write-Host ''
|
|
342
|
+
} else {
|
|
343
|
+
Write-Warn 'Could not run deepvista via the launcher or `uv tool run`.'
|
|
344
|
+
Write-Sub 'Try the following, then re-run this installer:'
|
|
345
|
+
Write-Sub ' uv self update'
|
|
346
|
+
Write-Sub ' uv tool install --reinstall "deepvista-cli[ui]"'
|
|
347
|
+
Write-Sub 'Or invoke it directly with: uv tool run deepvista <args>'
|
|
348
|
+
Write-Sub 'Tip: avoid working directories with spaces or OneDrive sync, which trigger the uv trampoline bug.'
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
# ---------------------------------------------------------------------------
|
|
353
|
+
# 7. Authentication
|
|
354
|
+
# ---------------------------------------------------------------------------
|
|
355
|
+
Write-Step 'Checking DeepVista authentication...'
|
|
356
|
+
|
|
357
|
+
function Invoke-Deepvista {
|
|
358
|
+
param([string[]]$Arguments)
|
|
359
|
+
$exe = $DeepvistaRunner[0]
|
|
360
|
+
$prefixArgs = @()
|
|
361
|
+
if ($DeepvistaRunner.Count -gt 1) { $prefixArgs = $DeepvistaRunner[1..($DeepvistaRunner.Count - 1)] }
|
|
362
|
+
& $exe @($prefixArgs + $Arguments)
|
|
363
|
+
return $LASTEXITCODE
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
$authStatus = 1
|
|
367
|
+
try {
|
|
368
|
+
$statusPrefixArgs = @()
|
|
369
|
+
if ($DeepvistaRunner.Count -gt 1) { $statusPrefixArgs = $DeepvistaRunner[1..($DeepvistaRunner.Count - 1)] }
|
|
370
|
+
$null = (& $DeepvistaRunner[0] @($statusPrefixArgs + @('auth', 'status')) 2>&1)
|
|
371
|
+
$authStatus = $LASTEXITCODE
|
|
372
|
+
} catch {
|
|
373
|
+
$authStatus = 1
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
if ($authStatus -eq 0) {
|
|
377
|
+
Write-Sub 'Already authenticated.'
|
|
378
|
+
} else {
|
|
379
|
+
Write-Sub 'Not authenticated - launching login...'
|
|
380
|
+
Invoke-Deepvista -Arguments @('auth', 'login') | Out-Null
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
# ---------------------------------------------------------------------------
|
|
384
|
+
# 8. Next steps
|
|
385
|
+
# ---------------------------------------------------------------------------
|
|
386
|
+
Write-Host ''
|
|
387
|
+
Write-Step 'DeepVista Claude Code plugin'
|
|
388
|
+
Write-Host ''
|
|
389
|
+
Write-Host ' Inside Claude Code, run:'
|
|
390
|
+
Write-Host ''
|
|
391
|
+
Write-Host ' /plugin marketplace add DeepVista-AI/deepvista-cli'
|
|
392
|
+
Write-Host ' /plugin install deepvista@deepvista-ai'
|
|
393
|
+
Write-Host ''
|
|
394
|
+
Write-Host ' Using a different AI agent? Paste this prompt:'
|
|
395
|
+
Write-Host ''
|
|
396
|
+
Write-Host ' Help me install the deepvista plugin for Claude Code: https://github.com/DeepVista-AI/deepvista-cli#as-a-claude-code-plugin'
|
|
397
|
+
Write-Host ''
|
|
398
|
+
Write-Host 'DeepVista is ready. Open your AI agent and say:'
|
|
399
|
+
Write-Host ''
|
|
400
|
+
Write-Host ' Help me get started with DeepVista.'
|
|
401
|
+
Write-Host ''
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "deepvista",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Remote-managed skill catalog from DeepVista. Auto-syncs thin stubs into the plugin's skills dir on SessionStart; full bodies are lazy-loaded at invocation time.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "DeepVista AI",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/deepvista_cli/resources/workflow_host_runtime.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-session-end.sh
RENAMED
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-session-start.sh
RENAMED
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-session-turn.sh
RENAMED
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/plugins/claude-code/scripts/deepvista-skill-url.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-analyze-notes.md
RENAMED
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-create-from-note.md
RENAMED
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-import-files.md
RENAMED
|
File without changes
|
{deepvista_cli-0.3.0 → deepvista_cli-0.4.0}/skills/deepvista/reference/skill-research-to-skill.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|