xtrm-tools 0.7.4 → 0.7.9
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/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.combined.log +7 -0
- package/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stderr.log +0 -0
- package/.xtrm/config/pi/extensions/custom-footer/.pi/structured-returns/83051fe4-97da-4e2c-bdaa-343b32f4e714.stdout.log +7 -0
- package/.xtrm/registry.json +537 -565
- package/.xtrm/skills/default/gitnexus-cli/SKILL.md +82 -0
- package/.xtrm/skills/default/gitnexus-exploring/SKILL.md +78 -0
- package/.xtrm/skills/default/gitnexus-guide/SKILL.md +64 -0
- package/.xtrm/skills/default/init-session/SKILL.md +3 -0
- package/.xtrm/skills/default/last30days/SKILL.md +1 -1
- package/.xtrm/skills/default/last30days/scripts/lib/youtube_yt.py +59 -40
- package/.xtrm/skills/default/sync-docs/references/doc-structure.md +1 -1
- package/.xtrm/skills/default/sync-docs/references/schema.md +1 -1
- package/.xtrm/skills/default/sync-docs/scripts/doc_structure_analyzer.py +2 -2
- package/.xtrm/skills/default/using-specialists/SKILL.md +346 -138
- package/.xtrm/skills/default/using-specialists/SKILL.safe.md +1082 -0
- package/.xtrm/skills/default/using-specialists/SKILL.ultra.md +1082 -0
- package/.xtrm/skills/default/vaultctl/SKILL.md +150 -0
- package/CHANGELOG.md +4 -4
- package/cli/dist/index.cjs +392 -194
- package/cli/dist/index.cjs.map +1 -1
- package/cli/package.json +1 -1
- package/package.json +8 -7
- package/packages/pi-extensions/MIGRATION_NOTES.md +39 -0
- package/packages/pi-extensions/README.md +43 -0
- package/packages/pi-extensions/extensions/README.md +5 -0
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/beads/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/beads/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/custom-footer/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/custom-footer/package.json +1 -4
- package/packages/pi-extensions/extensions/custom-provider-qwen-cli/package.json +16 -0
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/pi-serena-compact/package.json +9 -2
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/quality-gates/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/quality-gates/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/service-skills/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/service-skills/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/session-flow/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/session-flow/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-loader/index.ts +1 -1
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-loader/package.json +1 -4
- package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-ui/index.ts +1 -1
- package/packages/pi-extensions/package.json +46 -0
- package/packages/pi-extensions/src/core/README.md +9 -0
- package/packages/pi-extensions/src/core/index.ts +5 -0
- package/packages/pi-extensions/src/extensions/auto-session-name.ts +3 -0
- package/packages/pi-extensions/src/extensions/auto-update.ts +3 -0
- package/packages/pi-extensions/src/extensions/beads.ts +3 -0
- package/packages/pi-extensions/src/extensions/compact-header.ts +3 -0
- package/packages/pi-extensions/src/extensions/custom-footer.ts +3 -0
- package/packages/pi-extensions/src/extensions/custom-provider-qwen-cli.ts +3 -0
- package/packages/pi-extensions/src/extensions/git-checkpoint.ts +3 -0
- package/packages/pi-extensions/src/extensions/lsp-bootstrap.ts +3 -0
- package/packages/pi-extensions/src/extensions/pi-serena-compact.ts +3 -0
- package/packages/pi-extensions/src/extensions/quality-gates.ts +3 -0
- package/packages/pi-extensions/src/extensions/service-skills.ts +3 -0
- package/packages/pi-extensions/src/extensions/session-flow.ts +3 -0
- package/packages/pi-extensions/src/extensions/xtrm-loader.ts +3 -0
- package/packages/pi-extensions/src/extensions/xtrm-ui.ts +3 -0
- package/packages/pi-extensions/src/index.ts +9 -0
- package/packages/pi-extensions/src/registry.ts +52 -0
- package/packages/pi-extensions/src/shared/index.ts +1 -0
- package/packages/pi-extensions/src/shared/legacy-path-map.ts +23 -0
- package/{.xtrm/config/pi/extensions/xtrm-ui/themes → packages/pi-extensions/themes/xtrm-ui}/pidex-dark.json +3 -7
- package/{.xtrm/config/pi/extensions/xtrm-ui/themes → packages/pi-extensions/themes/xtrm-ui}/pidex-light.json +0 -4
- package/.xtrm/config/pi/extensions/core/package.json +0 -18
- package/.xtrm/config/pi/extensions/custom-provider-qwen-cli/package.json +0 -1
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-session-name/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-session-name/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-update/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/auto-update/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/compact-header/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/compact-header/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/custom-provider-qwen-cli/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/git-checkpoint/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/git-checkpoint/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/lsp-bootstrap/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/lsp-bootstrap/package.json +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/pi-serena-compact/index.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-ui/format.ts +0 -0
- /package/{.xtrm/config/pi → packages/pi-extensions}/extensions/xtrm-ui/package.json +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/adapter.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/guard-rules.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/lib.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/logger.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/runner.ts +0 -0
- /package/{.xtrm/config/pi/extensions → packages/pi-extensions/src}/core/session-state.ts +0 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vaultctl
|
|
3
|
+
description: >
|
|
4
|
+
Use this skill whenever you need to search, read, write, or manage notes in an Obsidian vault
|
|
5
|
+
using the vaultctl CLI. Trigger whenever the user asks to find a note, search the vault, create
|
|
6
|
+
or update a note, check vault stats, navigate the vault structure, or audit note health.
|
|
7
|
+
Also trigger when the user asks "how do I use vaultctl" or wants to understand vault CLI usage.
|
|
8
|
+
If you're about to run any vault operation and aren't sure of the right command or flags,
|
|
9
|
+
consult this skill first.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# vaultctl — Vault CLI for Agents
|
|
13
|
+
|
|
14
|
+
`vaultctl` is a zero-dependency CLI for searching and managing an Obsidian vault using SQLite FTS5.
|
|
15
|
+
No server, no embeddings, no container — fast local BM25 search with full CRUD.
|
|
16
|
+
|
|
17
|
+
## Config
|
|
18
|
+
|
|
19
|
+
`~/.config/vaultctl/config.toml` — check this if unsure which sources are active:
|
|
20
|
+
|
|
21
|
+
```toml
|
|
22
|
+
[[sources]]
|
|
23
|
+
id = "vault"
|
|
24
|
+
root = "/home/dawid/second-mind"
|
|
25
|
+
include_glob = "**/*.md"
|
|
26
|
+
exclude_glob = ".worktrees/**"
|
|
27
|
+
|
|
28
|
+
[[sources]]
|
|
29
|
+
id = "transcripts"
|
|
30
|
+
root = "/home/dawid/dev/transcriptoz/transcripts"
|
|
31
|
+
include_glob = "**/*.analysis.md"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Database: `~/.local/share/vaultctl/index.db`
|
|
35
|
+
|
|
36
|
+
## Core Commands
|
|
37
|
+
|
|
38
|
+
Always use `--json` when consuming output programmatically.
|
|
39
|
+
|
|
40
|
+
### Search
|
|
41
|
+
```bash
|
|
42
|
+
vaultctl "query terms" --json # search all sources
|
|
43
|
+
vaultctl "query" --folder concetti-schemi --json # scope to subfolder
|
|
44
|
+
vaultctl "query" --tag mechanics --json # filter by frontmatter tag
|
|
45
|
+
vaultctl "query" --status permanent --json # filter by status field
|
|
46
|
+
vaultctl "query" --source transcripts --json # specific source only
|
|
47
|
+
vaultctl "query" -n 10 --json # more results (default: 5)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Result shape:**
|
|
51
|
+
```json
|
|
52
|
+
[
|
|
53
|
+
{
|
|
54
|
+
"score": -4.84,
|
|
55
|
+
"source_id": "vault",
|
|
56
|
+
"rel_path": "concetti-schemi/repo-market.md",
|
|
57
|
+
"title": "repo-market",
|
|
58
|
+
"snippet": "...matched text with context...",
|
|
59
|
+
"tags": ["mechanics", "repo"],
|
|
60
|
+
"status": "permanent"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Score is negative BM25 — less negative = more relevant. Top result is index 0.
|
|
66
|
+
|
|
67
|
+
### Index
|
|
68
|
+
```bash
|
|
69
|
+
vaultctl index --json # incremental (skips unchanged files by mtime)
|
|
70
|
+
vaultctl index --full --json # full rebuild
|
|
71
|
+
vaultctl index --source vault --json # single source only
|
|
72
|
+
vaultctl status --json # check index health before querying
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Run `vaultctl index` if search returns stale or missing results. Index auto-bootstraps on first use.
|
|
76
|
+
|
|
77
|
+
### Note Operations
|
|
78
|
+
```bash
|
|
79
|
+
vaultctl note read "path/to/note.md" --json
|
|
80
|
+
vaultctl note write "path/to/note.md" --text "# Title\ncontent" --json
|
|
81
|
+
vaultctl note append "path/to/note.md" --text "\n## New section\n..." --json
|
|
82
|
+
vaultctl note delete "path/to/note.md" --yes --json
|
|
83
|
+
vaultctl note index "path/to/note.md" --json # re-index after external edit
|
|
84
|
+
vaultctl note links "path/to/note.md" --json # suggested wikilinks
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Paths are relative to the source root. Write/append/delete auto-reindex after the operation.
|
|
88
|
+
|
|
89
|
+
**Read result shape:**
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"success": true,
|
|
93
|
+
"source": "vault",
|
|
94
|
+
"file_path": "concetti-schemi/repo-market.md",
|
|
95
|
+
"content": "...",
|
|
96
|
+
"metadata": {
|
|
97
|
+
"note_title": "repo-market",
|
|
98
|
+
"folder": "concetti-schemi",
|
|
99
|
+
"tags": ["mechanics", "repo"],
|
|
100
|
+
"status": "permanent",
|
|
101
|
+
"wikilinks": ["[[primary-dealer]]"]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Navigation
|
|
107
|
+
```bash
|
|
108
|
+
vaultctl find "pattern" --source vault --json # glob file search
|
|
109
|
+
vaultctl tree concetti-schemi --depth 2 --json # directory tree
|
|
110
|
+
vaultctl context vault:path/to/note.md --json # note + backlinks context
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
`context` TARGET format: `source_id:relative/path.md`
|
|
114
|
+
|
|
115
|
+
### Vault Analytics
|
|
116
|
+
```bash
|
|
117
|
+
vaultctl stats --json # document/section counts per source
|
|
118
|
+
vaultctl status --json # db path, doc count, last indexed
|
|
119
|
+
vaultctl audit orphans --json # notes with no incoming wikilinks
|
|
120
|
+
vaultctl audit linked -n 20 --json # most-linked notes
|
|
121
|
+
vaultctl audit duplicates --json # near-duplicate content candidates
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### MCP Bridge
|
|
125
|
+
```bash
|
|
126
|
+
vaultctl mcp serve --transport stdio
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Exposes vault operations as MCP tools over stdio for MCP client compatibility.
|
|
130
|
+
|
|
131
|
+
## Common Agent Patterns
|
|
132
|
+
|
|
133
|
+
**Search then read:**
|
|
134
|
+
```bash
|
|
135
|
+
vaultctl "repo market mechanics" --folder concetti-schemi --json
|
|
136
|
+
# use rel_path from result[0]:
|
|
137
|
+
vaultctl note read "1-projects/trading/concetti-schemi/repo-market.md" --json
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Write a note and confirm it's searchable:**
|
|
141
|
+
```bash
|
|
142
|
+
vaultctl note write "1-projects/research/new-topic.md" --text "# New Topic\n..." --json
|
|
143
|
+
vaultctl "new topic" --json # verify indexed
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Stale index guard:**
|
|
147
|
+
```bash
|
|
148
|
+
vaultctl status --json # check stale_documents count
|
|
149
|
+
vaultctl index --json # run if stale_documents > 0
|
|
150
|
+
```
|
package/CHANGELOG.md
CHANGED
|
@@ -14,12 +14,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
14
14
|
## [0.7.3] - 2026-04-04
|
|
15
15
|
|
|
16
16
|
### Changed
|
|
17
|
-
- **Pi extensions architecture**: Refactored from project-level copies to global symlink model. Extensions now live in
|
|
18
|
-
- **Directory rename**: `.xtrm/extensions/` renamed to
|
|
19
|
-
- **Legacy path removal**: `.pi/node_modules/@xtrm/pi-core` deprecated; `@xtrm/pi-core` now lives in
|
|
17
|
+
- **Pi extensions architecture**: Refactored from project-level copies to global symlink model. Extensions now live in `packages/pi-extensions/extensions/` (source of truth) and are symlinked to `~/.pi/agent/extensions/`. This eliminates project-level conflicts and worktrees no longer need extension bootstrap.
|
|
18
|
+
- **Directory rename**: `.xtrm/extensions/` renamed to `packages/pi-extensions/extensions/` to prevent Pi auto-discovery of project-level extensions (which would duplicate global symlinks).
|
|
19
|
+
- **Legacy path removal**: `.pi/node_modules/@xtrm/pi-core` deprecated; `@xtrm/pi-core` now lives in `packages/pi-extensions/src/core/`.
|
|
20
20
|
- **`docs/pi-extensions.md`**: Comprehensive rewrite documenting global symlink model, sync behavior, worktree compatibility, and active extensions (v2.0.0).
|
|
21
21
|
- **`docs/xtrm-directory.md`**: Updated directory layout to reflect `ext-src/` and global symlink architecture (v1.1.0).
|
|
22
|
-
- **`docs/xtrm-ui.md`**: Updated source paths from `
|
|
22
|
+
- **`docs/xtrm-ui.md`**: Updated source paths from `packages/pi-extensions/extensions/` to `packages/pi-extensions/extensions/` (v1.2.0).
|
|
23
23
|
|
|
24
24
|
### Fixed
|
|
25
25
|
- **Worktree extension sync**: Extensions are now global symlinks — worktrees automatically share extensions with main repo without bootstrap or drift issues.
|