@allansantos-dev/smart-tool 0.9.10 → 0.9.11
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/CHANGELOG.md +9 -0
- package/README.md +44 -1
- package/package.json +1 -1
- package/version.py +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.9.11 - beta
|
|
4
|
+
|
|
5
|
+
- Documentation only, no change to the program. The README opens with "How it works": what each tool does behind the
|
|
6
|
+
scenes, in plain words, for someone who has never used it (the index and the hybrid search, the web search sources,
|
|
7
|
+
how `web_fetch` reads a page, the hook, what stays on the machine). Its status line said 0.9.0; a test now fails
|
|
8
|
+
when the README status or the top of this changelog differs from `version.py`, as one already did for the product
|
|
9
|
+
page. The product page credits Moli as the page renderer (Crawl4AI is its fallback), lists Moli among the browsers
|
|
10
|
+
the installer downloads, links to "How it works" and has a favicon.
|
|
11
|
+
|
|
3
12
|
## 0.9.10 - beta
|
|
4
13
|
|
|
5
14
|
- Browser control for agents, on by default: registering smart-tool in Claude Code or Codex (and every update, for
|
package/README.md
CHANGED
|
@@ -15,7 +15,50 @@ registered as the `playwright` server where this machine lets a browser be drive
|
|
|
15
15
|
An optional hook routes the agent's native Grep/Glob/Read/Bash/WebSearch/WebFetch calls to these tools when they
|
|
16
16
|
are cheaper, or just tells the agent what Smart Tool would do.
|
|
17
17
|
|
|
18
|
-
**Status:** 0.9.
|
|
18
|
+
**Status:** 0.9.11 beta. Windows only. What changed in each version: [CHANGELOG.md](CHANGELOG.md).
|
|
19
|
+
|
|
20
|
+
## How it works
|
|
21
|
+
|
|
22
|
+
A coding agent normally finds code by running `grep` over the whole project and reads the web by downloading whole
|
|
23
|
+
pages. Both fill its context with text it does not need, and every token of it is paid for. Smart Tool is a small
|
|
24
|
+
program that runs on your machine and offers the agent better tools for the same jobs, through
|
|
25
|
+
[MCP](https://modelcontextprotocol.io), the standard way agents call outside tools.
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
Claude Code / Codex ──MCP──▶ Smart Tool daemon (127.0.0.1, one per machine)
|
|
29
|
+
├─ smart_search ──▶ local index of your project (SQLite)
|
|
30
|
+
├─ web_search ───▶ several search engines at once, shared cache
|
|
31
|
+
├─ web_fetch ────▶ the page, read by a small model
|
|
32
|
+
└─ project_manage
|
|
33
|
+
your model gateway (OpenAI, OpenRouter, Ollama...) ◀── embeddings and small chat calls
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Searching code.** When a project is registered, a small model looks at its folder structure once and decides what
|
|
37
|
+
is worth indexing (source, tests, docs; not build output or dependencies). Each file is cut into chunks of up to 200
|
|
38
|
+
lines, and each chunk gets an embedding, a list of numbers that captures its meaning. A search runs two ways at
|
|
39
|
+
once, by meaning (embeddings) and by exact words (SQLite full-text search), merges the two lists and, if you set a
|
|
40
|
+
rerank model, reorders the best candidates. The agent gets back a few chunks split into code, tests and docs, with
|
|
41
|
+
the functions most likely to matter, instead of every line that contains a word. The index follows the project:
|
|
42
|
+
only files whose content changed are processed again, and each Git branch keeps its own view.
|
|
43
|
+
|
|
44
|
+
**Searching the web.** `web_search` asks several free search sources in parallel (DuckDuckGo, Wikipedia, Yahoo,
|
|
45
|
+
Exa, Google and others), in the language of the question and in English, and merges what comes back. Search APIs with a
|
|
46
|
+
free quota (Tavily, Firecrawl) and a real browser are tried only when those results are not enough. Answers are cached and shared by every agent
|
|
47
|
+
session on the machine, so the same question asked twice costs nothing the second time.
|
|
48
|
+
|
|
49
|
+
**Reading a page.** `web_fetch` takes a URL and a question. It downloads the page over plain HTTP; when the page only
|
|
50
|
+
shows its content with JavaScript, it opens it in a headless browser ([Moli](https://github.com/lexmount/moli)
|
|
51
|
+
first, Chromium as the fallback). A small model then reads the page and returns only the answer, with the source.
|
|
52
|
+
The agent receives a paragraph instead of the whole page.
|
|
53
|
+
|
|
54
|
+
**Steering the agent (optional hook).** Agents keep reaching for their built-in tools out of habit. The hook sees
|
|
55
|
+
each call before it runs: a content search over a project folder is stopped and the agent is told the exact Smart
|
|
56
|
+
Tool call to make instead; reading a known file, or anything else, runs as usual. The same hook can remind the agent
|
|
57
|
+
to document functions it edits and warn when it writes a function that already exists in the project.
|
|
58
|
+
|
|
59
|
+
**What stays local.** The daemon, the indexes, the caches and the logs live on your machine. Text leaves it only to
|
|
60
|
+
reach the model gateway you chose (for embeddings and the small model calls) and the web search sources. With a local
|
|
61
|
+
gateway such as Ollama, nothing about your code leaves the machine.
|
|
19
62
|
|
|
20
63
|
## Requirements
|
|
21
64
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allansantos-dev/smart-tool",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.11",
|
|
4
4
|
"description": "Local MCP server that gives coding agents (Claude Code, Codex) cheaper, sharper tools than their built-in search. Windows.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Allan Santos",
|
package/version.py
CHANGED