indexkit 0.6.3__tar.gz → 0.6.4__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.
- {indexkit-0.6.3 → indexkit-0.6.4}/.claude-plugin/plugin.json +2 -3
- {indexkit-0.6.3 → indexkit-0.6.4}/CHANGELOG.md +20 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/PKG-INFO +3 -3
- {indexkit-0.6.3 → indexkit-0.6.4}/README.md +2 -2
- {indexkit-0.6.3 → indexkit-0.6.4}/apm.yml +3 -3
- {indexkit-0.6.3 → indexkit-0.6.4}/pyproject.toml +1 -1
- {indexkit-0.6.3/bin → indexkit-0.6.4/scripts}/indexkit +2 -2
- {indexkit-0.6.3 → indexkit-0.6.4}/skills/indexkit/SKILL.md +31 -9
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/__init__.py +1 -1
- {indexkit-0.6.3 → indexkit-0.6.4}/uv.lock +1 -1
- {indexkit-0.6.3 → indexkit-0.6.4}/.gitignore +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/LICENSE +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/hooks/hooks.json +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/scripts/bootstrap.sh +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/__main__.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/cli.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/embed.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/engine.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/index.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/loaders/__init__.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/loaders/markdown.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/storage.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/src/indexkit/store.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/__init__.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/test_cli.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/test_embed.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/test_engine.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/test_index.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/test_markdown.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/test_storage.py +0 -0
- {indexkit-0.6.3 → indexkit-0.6.4}/tests/test_store.py +0 -0
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
3
2
|
"name": "indexkit",
|
|
4
3
|
"displayName": "Local RAG",
|
|
5
|
-
"version": "0.6.
|
|
6
|
-
"description": "Local-first semantic and opt-in hybrid search: a
|
|
4
|
+
"version": "0.6.4",
|
|
5
|
+
"description": "Local-first semantic and opt-in hybrid search: a scripts/indexkit CLI that embeds through a configurable Ollama endpoint (default localhost), indexes with turbovec, and can fuse FTS5/BM25 candidates. Notes-first, corpus-agnostic via pluggable loaders.",
|
|
7
6
|
"author": {
|
|
8
7
|
"name": "Mark Beacom"
|
|
9
8
|
},
|
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.6.4 — 2026-10-25
|
|
4
|
+
|
|
5
|
+
- **Move the launcher from `bin/indexkit` to `scripts/indexkit`.** The
|
|
6
|
+
claude.ai-hosted plugin sync (Claude Desktop) skips any plugin that ships a
|
|
7
|
+
top-level `bin/`, so indexkit was not syncing there at all. The plugin no
|
|
8
|
+
longer puts anything on `PATH`: the skill calls the launcher by path
|
|
9
|
+
(`"${CONTEXT_KIT_INDEXKIT_ROOT:-$CLAUDE_PLUGIN_ROOT}/scripts/indexkit"`) or uses
|
|
10
|
+
an `indexkit` already installed with `pip`. Manual setups that added
|
|
11
|
+
`plugins/indexkit/bin` to `PATH` should add `plugins/indexkit/scripts` instead.
|
|
12
|
+
- The skill documents one resolution order for the CLI (`PATH`, then
|
|
13
|
+
`CONTEXT_KIT_INDEXKIT_ROOT`, then the plugin root, then the host's installed
|
|
14
|
+
plugin directory) that the obsidian bridge and adr-bridge reuse. The bootstrap
|
|
15
|
+
hook deliberately does not add `scripts/` to `PATH`: that would hide an
|
|
16
|
+
executable behind a hook the approval surface shows only as a bootstrap.
|
|
17
|
+
- `allowed-tools` still pre-approves `Bash(indexkit:*)` only, so a by-path
|
|
18
|
+
launcher call asks for permission once instead of running pre-approved.
|
|
19
|
+
- Drop the `$schema` key from `plugin.json`. The claude.ai-hosted plugin sync
|
|
20
|
+
(Claude Desktop) does not recognize it and stripped it with a warning on
|
|
21
|
+
every sync. No change to the plugin's behavior.
|
|
22
|
+
|
|
3
23
|
## 0.6.3 — 2026-09-24
|
|
4
24
|
|
|
5
25
|
- Refresh the locked `anyio` (an indirect dependency via `httpx`) from 4.13.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: indexkit
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.4
|
|
4
4
|
Summary: Offline hybrid retrieval: build a local semantic + BM25 index over your files and query it. Local RAG with ollama, turbovec, and SQLite FTS5.
|
|
5
5
|
Project-URL: Homepage, https://github.com/mbeacom/context-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/mbeacom/context-kit
|
|
@@ -86,7 +86,7 @@ pip install ./plugins/indexkit # or: uv tool install ./plugins/indexkit
|
|
|
86
86
|
|
|
87
87
|
### As a context-kit plugin
|
|
88
88
|
|
|
89
|
-
Claude Code and GitHub Copilot CLI auto-bootstrap the bundled `
|
|
89
|
+
Claude Code and GitHub Copilot CLI auto-bootstrap the bundled `scripts/indexkit`
|
|
90
90
|
launcher from the plugin's `SessionStart` hook, into `${CLAUDE_PLUGIN_DATA}/venv`
|
|
91
91
|
— for Copilot, `~/.copilot/plugin-data/<marketplace>/indexkit/venv`. In that
|
|
92
92
|
mode the host controls where indexes live.
|
|
@@ -112,7 +112,7 @@ stale — bootstrap it yourself into a neutral data location:
|
|
|
112
112
|
```bash
|
|
113
113
|
export CONTEXT_KIT_DATA="$HOME/.local/share/context-kit"
|
|
114
114
|
bash scripts/bootstrap.sh
|
|
115
|
-
export PATH="$PWD/
|
|
115
|
+
export PATH="$PWD/scripts:$PATH"
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
To check readiness without installing anything:
|
|
@@ -41,7 +41,7 @@ pip install ./plugins/indexkit # or: uv tool install ./plugins/indexkit
|
|
|
41
41
|
|
|
42
42
|
### As a context-kit plugin
|
|
43
43
|
|
|
44
|
-
Claude Code and GitHub Copilot CLI auto-bootstrap the bundled `
|
|
44
|
+
Claude Code and GitHub Copilot CLI auto-bootstrap the bundled `scripts/indexkit`
|
|
45
45
|
launcher from the plugin's `SessionStart` hook, into `${CLAUDE_PLUGIN_DATA}/venv`
|
|
46
46
|
— for Copilot, `~/.copilot/plugin-data/<marketplace>/indexkit/venv`. In that
|
|
47
47
|
mode the host controls where indexes live.
|
|
@@ -67,7 +67,7 @@ stale — bootstrap it yourself into a neutral data location:
|
|
|
67
67
|
```bash
|
|
68
68
|
export CONTEXT_KIT_DATA="$HOME/.local/share/context-kit"
|
|
69
69
|
bash scripts/bootstrap.sh
|
|
70
|
-
export PATH="$PWD/
|
|
70
|
+
export PATH="$PWD/scripts:$PATH"
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
To check readiness without installing anything:
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
# Lets APM users install this plugin alongside the Claude Code / GitHub Copilot
|
|
3
3
|
# flows: `apm install indexkit@context-kit`. There is no `.apm/`
|
|
4
4
|
# directory, so the plugin-native layout (.claude-plugin/plugin.json + skills/ +
|
|
5
|
-
#
|
|
5
|
+
# scripts/) stays authoritative; APM consumes it as a plugin collection.
|
|
6
6
|
# Keep name/version/description in sync with .claude-plugin/plugin.json.
|
|
7
7
|
#
|
|
8
|
-
# APM does not run the Claude SessionStart bootstrap hook, so the
|
|
8
|
+
# APM does not run the Claude SessionStart bootstrap hook, so the scripts/indexkit venv
|
|
9
9
|
# must be bootstrapped manually (same as GitHub Copilot). Config uses the
|
|
10
10
|
# CONTEXT_KIT_* env vars, not Claude userConfig. See docs/APM.md.
|
|
11
11
|
name: indexkit
|
|
12
|
-
version: 0.6.
|
|
12
|
+
version: 0.6.4
|
|
13
13
|
description: Local-first semantic/hybrid RAG with a configurable Ollama endpoint, turbovec, SQLite FTS5/BM25, and deterministic rank fusion.
|
|
14
14
|
author: Mark Beacom
|
|
15
15
|
license: MIT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "indexkit"
|
|
3
|
-
version = "0.6.
|
|
3
|
+
version = "0.6.4"
|
|
4
4
|
description = "Offline hybrid retrieval: build a local semantic + BM25 index over your files and query it. Local RAG with ollama, turbovec, and SQLite FTS5."
|
|
5
5
|
requires-python = ">=3.10"
|
|
6
6
|
keywords = [
|
|
@@ -32,7 +32,7 @@ if [[ -z "$HOME_DIR" && -x "$HOME/.claude/plugins/data/indexkit/venv/bin/python"
|
|
|
32
32
|
exec "$HOME/.claude/plugins/data/indexkit/venv/bin/python" -m indexkit "$@"
|
|
33
33
|
fi
|
|
34
34
|
|
|
35
|
-
# `command -v` would also match this shim if
|
|
35
|
+
# `command -v` would also match this shim if its directory is on PATH, which
|
|
36
36
|
# would re-exec us forever. Resolve the candidate and skip our own path.
|
|
37
37
|
SELF="$(cd "$(dirname "$0")" && pwd)/$(basename "$0")"
|
|
38
38
|
if ON_PATH="$(command -v indexkit 2>/dev/null)" \
|
|
@@ -48,7 +48,7 @@ done
|
|
|
48
48
|
|
|
49
49
|
echo "indexkit is not runnable: no bootstrapped venv, and no installed indexkit." >&2
|
|
50
50
|
echo "Bootstrap the plugin runtime:" >&2
|
|
51
|
-
echo " bash \"$(dirname "$0")
|
|
51
|
+
echo " bash \"$(dirname "$0")/bootstrap.sh\"" >&2
|
|
52
52
|
echo "or install the package directly:" >&2
|
|
53
53
|
echo " pip install indexkit" >&2
|
|
54
54
|
exit 1
|
|
@@ -5,7 +5,7 @@ license: MIT
|
|
|
5
5
|
compatibility: "Requires the indexkit CLI (pip install indexkit, or auto-bootstrapped via uv in a plugin host) plus a running ollama with an embedding model pulled (default nomic-embed-text)."
|
|
6
6
|
metadata:
|
|
7
7
|
author: Mark Beacom
|
|
8
|
-
version: "0.3.
|
|
8
|
+
version: "0.3.2"
|
|
9
9
|
allowed-tools: Bash(indexkit:*) Bash(ollama:*) Bash(rg:*) Bash(rtk rg:*) Read Glob Grep
|
|
10
10
|
---
|
|
11
11
|
|
|
@@ -19,19 +19,41 @@ fuses that with SQLite FTS5/BM25 for opt-in lexical search. A remote
|
|
|
19
19
|
## Prerequisites
|
|
20
20
|
|
|
21
21
|
- `ollama serve` running and the model pulled: `ollama pull nomic-embed-text`.
|
|
22
|
-
- Claude Code and GitHub Copilot CLI: the
|
|
23
|
-
|
|
24
|
-
`bash "${CLAUDE_PLUGIN_ROOT}/scripts/bootstrap.sh"`.
|
|
25
|
-
- APM/manual: `pip install indexkit` is enough
|
|
26
|
-
`
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
- Claude Code and GitHub Copilot CLI: the runtime is bootstrapped automatically
|
|
23
|
+
on session start (uv venv). If it is missing or stale, run
|
|
24
|
+
`bash "${CONTEXT_KIT_INDEXKIT_ROOT:-$CLAUDE_PLUGIN_ROOT}/scripts/bootstrap.sh"`.
|
|
25
|
+
- APM/manual: `pip install indexkit` is enough. To work from a clone instead,
|
|
26
|
+
set `CONTEXT_KIT_DATA` and run `plugins/indexkit/scripts/bootstrap.sh`.
|
|
27
|
+
|
|
28
|
+
## Resolve the CLI
|
|
29
|
+
|
|
30
|
+
The commands below are written as `indexkit`. The plugin does not put anything
|
|
31
|
+
on `PATH`, so resolve the CLI once, in this order, and use the first that exists:
|
|
32
|
+
|
|
33
|
+
1. `indexkit` itself, when `command -v indexkit` finds one (a `pip install`, or
|
|
34
|
+
a manual `PATH` entry).
|
|
35
|
+
2. `"$CONTEXT_KIT_INDEXKIT_ROOT/scripts/indexkit"`, when that variable names the
|
|
36
|
+
installed plugin directory.
|
|
37
|
+
3. `"${CLAUDE_PLUGIN_ROOT}/scripts/indexkit"` from inside this plugin on Claude
|
|
38
|
+
Code.
|
|
39
|
+
4. The installed plugin's launcher, from any other plugin or host:
|
|
40
|
+
`~/.claude/plugins/cache/*/indexkit/*/scripts/indexkit` (Claude Code; pick the
|
|
41
|
+
highest version) or `~/.copilot/installed-plugins/*/indexkit/scripts/indexkit`
|
|
42
|
+
(GitHub Copilot CLI).
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
"${CONTEXT_KIT_INDEXKIT_ROOT:-$CLAUDE_PLUGIN_ROOT}/scripts/indexkit" status --name notes
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
The launcher prefers the bootstrapped venv, then an `indexkit` on `PATH`, then
|
|
49
|
+
an importable module. Other skills that pipe into `indexkit` (the obsidian
|
|
50
|
+
bridge, adr-bridge, retrieval-strategy) use this same resolution.
|
|
29
51
|
|
|
30
52
|
Check readiness without installing anything — useful on APM, which does not
|
|
31
53
|
deploy hooks, and after an upgrade leaves a stale venv:
|
|
32
54
|
|
|
33
55
|
```bash
|
|
34
|
-
bash scripts/bootstrap.sh --check # exit 0 ready, 3 needs bootstrap
|
|
56
|
+
bash "${CONTEXT_KIT_INDEXKIT_ROOT:-$CLAUDE_PLUGIN_ROOT}/scripts/bootstrap.sh" --check # exit 0 ready, 3 needs bootstrap
|
|
35
57
|
```
|
|
36
58
|
|
|
37
59
|
It prints `status=ready|missing|stale|uv-missing` plus the venv path and the
|
|
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
|