diff --git a/.changeset/th-crawl-map-scrape-flags.md b/.changeset/th-crawl-map-scrape-flags.md deleted file mode 100644 index 9e1db0e46..000000000 --- a/.changeset/th-crawl-map-scrape-flags.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@smooai/smooth": minor ---- - -Extend the `th` agentic-tooling commands against the api-prime crawl/search/knowledge routes: - -- **`th crawl crawl `** — new authed whole-site crawl. Supports `--limit`, `--max-depth` (sent as `maxDiscoveryDepth`), `--extract` (JSON spec verbatim or wrapped as `{"prompt": …}`), `--json`, and `--org`. Default output is a compact `completed/total` summary plus one crawled URL per line. -- **`th crawl map `** — new authed URL-discovery command. Supports `--search`, `--limit`, `--include-subdomains`, `--json`, and `--org`; prints one discovered link per line by default. -- **`th crawl scrape`** — new `--extract ` (JSON verbatim or `{"prompt": …}`), `--screenshot` (appends `screenshot` to the formats), and `--render ` flags. `--extract`/`--render` are authed-only; the free tier surfaces the backend's rejection. -- **`th search --scrape`** — forces `searchDepth: "advanced"` so each result is crawl-enriched with full page content (authed tier; clamped on the free tier). -- **`th api knowledge add-url `** — new authed command that kicks off a crawl→ingest job into the org's knowledge base via `POST /organizations/{org}/knowledge/websites` (`--name` defaults to the URL). diff --git a/.changeset/th-knowledge-search.md b/.changeset/th-knowledge-search.md deleted file mode 100644 index 10142f6a6..000000000 --- a/.changeset/th-knowledge-search.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@smooai/smooth": minor ---- - -`th knowledge` — promote knowledge to a top-level command with semantic search. - -`th knowledge search ""` runs the SAME retrieval an agent does over the org's OWN knowledge base (embed → dense+sparse hybrid → RRF), returning the most relevant passages. Scope to a single document with `--doc `, cap with `--max`, or get raw JSON with `--json`. It rounds out the agentic-coding trio alongside `th search` (the web) and `th crawl` (a page). - -The full knowledge surface (`list` / `show` / `content` / `upload` / `website` / `process` / `update` / `delete`) is now available top-level as `th knowledge` (alias `kb`), same as `th api knowledge`. Backed by the new authed `POST /organizations/:org_id/knowledge/search` endpoint (SMOODEV-2610). diff --git a/CHANGELOG.md b/CHANGELOG.md index 295bfa329..5e04a6693 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,23 @@ # @smooai/smooth +## 0.20.0 + +### Minor Changes + +- 9fbab21: Extend the `th` agentic-tooling commands against the api-prime crawl/search/knowledge routes: + + - **`th crawl crawl `** — new authed whole-site crawl. Supports `--limit`, `--max-depth` (sent as `maxDiscoveryDepth`), `--extract` (JSON spec verbatim or wrapped as `{"prompt": …}`), `--json`, and `--org`. Default output is a compact `completed/total` summary plus one crawled URL per line. + - **`th crawl map `** — new authed URL-discovery command. Supports `--search`, `--limit`, `--include-subdomains`, `--json`, and `--org`; prints one discovered link per line by default. + - **`th crawl scrape`** — new `--extract ` (JSON verbatim or `{"prompt": …}`), `--screenshot` (appends `screenshot` to the formats), and `--render ` flags. `--extract`/`--render` are authed-only; the free tier surfaces the backend's rejection. + - **`th search --scrape`** — forces `searchDepth: "advanced"` so each result is crawl-enriched with full page content (authed tier; clamped on the free tier). + - **`th api knowledge add-url `** — new authed command that kicks off a crawl→ingest job into the org's knowledge base via `POST /organizations/{org}/knowledge/websites` (`--name` defaults to the URL). + +- 59d926b: `th knowledge` — promote knowledge to a top-level command with semantic search. + + `th knowledge search ""` runs the SAME retrieval an agent does over the org's OWN knowledge base (embed → dense+sparse hybrid → RRF), returning the most relevant passages. Scope to a single document with `--doc `, cap with `--max`, or get raw JSON with `--json`. It rounds out the agentic-coding trio alongside `th search` (the web) and `th crawl` (a page). + + The full knowledge surface (`list` / `show` / `content` / `upload` / `website` / `process` / `update` / `delete`) is now available top-level as `th knowledge` (alias `kb`), same as `th api knowledge`. Backed by the new authed `POST /organizations/:org_id/knowledge/search` endpoint (SMOODEV-2610). + ## 0.19.1 ### Patch Changes diff --git a/Cargo.lock b/Cargo.lock index 51d67af3e..ff3d83075 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3661,7 +3661,7 @@ dependencies = [ [[package]] name = "smooai-smooth-api-client" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -3689,7 +3689,7 @@ dependencies = [ [[package]] name = "smooai-smooth-archivist" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "axum 0.8.8", @@ -3709,7 +3709,7 @@ dependencies = [ [[package]] name = "smooai-smooth-bench" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -3733,7 +3733,7 @@ dependencies = [ [[package]] name = "smooai-smooth-bigsmooth" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -3784,7 +3784,7 @@ dependencies = [ [[package]] name = "smooai-smooth-cast" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "dirs-next", @@ -3800,7 +3800,7 @@ dependencies = [ [[package]] name = "smooai-smooth-cli" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "atty", @@ -3849,7 +3849,7 @@ dependencies = [ [[package]] name = "smooai-smooth-code" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -3883,7 +3883,7 @@ dependencies = [ [[package]] name = "smooai-smooth-diver" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "axum 0.8.8", @@ -3903,7 +3903,7 @@ dependencies = [ [[package]] name = "smooai-smooth-narc" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -3928,7 +3928,7 @@ dependencies = [ [[package]] name = "smooai-smooth-operative" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -3986,7 +3986,7 @@ dependencies = [ [[package]] name = "smooai-smooth-pearls" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -4005,7 +4005,7 @@ dependencies = [ [[package]] name = "smooai-smooth-policy" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "chrono", @@ -4020,7 +4020,7 @@ dependencies = [ [[package]] name = "smooai-smooth-scribe" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "async-trait", @@ -4049,7 +4049,7 @@ dependencies = [ [[package]] name = "smooai-smooth-tmux" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "tempfile", @@ -4058,7 +4058,7 @@ dependencies = [ [[package]] name = "smooai-smooth-tunnel" -version = "0.19.1" +version = "0.20.0" dependencies = [ "anyhow", "futures-util", @@ -4075,7 +4075,7 @@ dependencies = [ [[package]] name = "smooai-smooth-web" -version = "0.19.1" +version = "0.20.0" dependencies = [ "axum 0.8.8", "axum-extra", diff --git a/Cargo.toml b/Cargo.toml index 554b96d1a..29fe65894 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["crates/*"] exclude = ["crates/smooth-bigsmooth/tests/fixtures"] [workspace.package] -version = "0.19.1" +version = "0.20.0" edition = "2021" license = "MIT" repository = "https://github.com/SmooAI/smooth" @@ -204,20 +204,20 @@ prost-types = "0.13" smooth-operator = { git = "https://github.com/SmooAI/smooth-operator-core.git", rev = "b43c04fe", package = "smooai-smooth-operator-core" } # smooth-owned coding-harness extensions to the generic engine (re-homed from # the engine when it went generic at 0.14.0). See crates/smooth-cast. -smooth-cast = { version = "0.19.1", path = "crates/smooth-cast", package = "smooai-smooth-cast" } -smooth-bigsmooth = { version = "0.19.1", path = "crates/smooth-bigsmooth", package = "smooai-smooth-bigsmooth" } -smooth-policy = { path = "crates/smooth-policy", version = "0.19.1", package = "smooai-smooth-policy" } -smooth-web = { version = "0.19.1", path = "crates/smooth-web", package = "smooai-smooth-web" } -smooth-scribe = { version = "0.19.1", path = "crates/smooth-scribe", package = "smooai-smooth-scribe" } -smooth-narc = { version = "0.19.1", path = "crates/smooth-narc", package = "smooai-smooth-narc" } -smooth-archivist = { version = "0.19.1", path = "crates/smooth-archivist", package = "smooai-smooth-archivist" } -smooth-code = { version = "0.19.1", path = "crates/smooth-code", package = "smooai-smooth-code" } -smooth-pearls = { path = "crates/smooth-pearls", version = "0.19.1", package = "smooai-smooth-pearls" } -smooth-diver = { version = "0.19.1", path = "crates/smooth-diver", package = "smooai-smooth-diver" } -smooth-tunnel = { version = "0.19.1", path = "crates/smooth-tunnel", package = "smooai-smooth-tunnel" } -smooth-bench = { version = "0.19.1", path = "crates/smooth-bench", package = "smooai-smooth-bench" } -smooth-tmux = { version = "0.19.1", path = "crates/smooth-tmux", package = "smooai-smooth-tmux" } -smooth-api-client = { version = "0.19.1", path = "crates/smooth-api-client", package = "smooai-smooth-api-client" } +smooth-cast = { version = "0.20.0", path = "crates/smooth-cast", package = "smooai-smooth-cast" } +smooth-bigsmooth = { version = "0.20.0", path = "crates/smooth-bigsmooth", package = "smooai-smooth-bigsmooth" } +smooth-policy = { path = "crates/smooth-policy", version = "0.20.0", package = "smooai-smooth-policy" } +smooth-web = { version = "0.20.0", path = "crates/smooth-web", package = "smooai-smooth-web" } +smooth-scribe = { version = "0.20.0", path = "crates/smooth-scribe", package = "smooai-smooth-scribe" } +smooth-narc = { version = "0.20.0", path = "crates/smooth-narc", package = "smooai-smooth-narc" } +smooth-archivist = { version = "0.20.0", path = "crates/smooth-archivist", package = "smooai-smooth-archivist" } +smooth-code = { version = "0.20.0", path = "crates/smooth-code", package = "smooai-smooth-code" } +smooth-pearls = { path = "crates/smooth-pearls", version = "0.20.0", package = "smooai-smooth-pearls" } +smooth-diver = { version = "0.20.0", path = "crates/smooth-diver", package = "smooai-smooth-diver" } +smooth-tunnel = { version = "0.20.0", path = "crates/smooth-tunnel", package = "smooai-smooth-tunnel" } +smooth-bench = { version = "0.20.0", path = "crates/smooth-bench", package = "smooai-smooth-bench" } +smooth-tmux = { version = "0.20.0", path = "crates/smooth-tmux", package = "smooai-smooth-tmux" } +smooth-api-client = { version = "0.20.0", path = "crates/smooth-api-client", package = "smooai-smooth-api-client" } # Cross-runtime client shared library (github.com/SmooAI/client-shared). # SMOODEV-1464: switched from a local `path = "../client-shared/rust"` dep to # a rev-pinned git dep. The path form only resolved on a dev laptop, so every diff --git a/package.json b/package.json index 2cd3dd81b..64212b5a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@smooai/smooth", - "version": "0.19.1", + "version": "0.20.0", "description": "Security-first AI agent orchestration platform", "homepage": "https://github.com/SmooAI/smooth#readme", "bugs": {