diff --git a/.release-please-manifest.json b/.release-please-manifest.json index cce9d1c..c523ce1 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.7.0" + ".": "1.8.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 9673209..4aa99bd 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 41 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-b0c72d2fe5911c9ce155275b954198bf2152e915a7e5b9f719aad50e222b9ef8.yml -openapi_spec_hash: 5cf943ea5718059b7975417b012cee28 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-bf7ffa610bd4a02ea5bcb157521d17a041a48f78d87bf8fe8d812d3cbb87b489.yml +openapi_spec_hash: 90142d96969dea44c46a01abb683c426 config_hash: 0fb0ceca5946298c416cec0cca5260c7 diff --git a/CHANGELOG.md b/CHANGELOG.md index e2324d5..ef12553 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 1.8.0 (2026-08-21) + +Full Changelog: [v1.7.0...v1.8.0](https://github.com/context-dot-dev/context-dev-cli/compare/v1.7.0...v1.8.0) + +### Features + +* **api:** api update ([3583e1a](https://github.com/context-dot-dev/context-dev-cli/commit/3583e1aff934cfb1ce1bad257ffbfa262b3a8733)) +* **api:** api update ([7b5b53f](https://github.com/context-dot-dev/context-dev-cli/commit/7b5b53f167b6bf29d2c4de02f348edc2122d5e80)) +* **api:** api update ([af18337](https://github.com/context-dot-dev/context-dev-cli/commit/af1833778a6a1620a5e3f0008b7f67cd5dae53c0)) + ## 1.7.0 (2026-08-18) Full Changelog: [v1.6.0...v1.7.0](https://github.com/context-dot-dev/context-dev-cli/compare/v1.6.0...v1.7.0) diff --git a/go.mod b/go.mod index af46123..e834f3d 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/charmbracelet/bubbletea v1.3.6 github.com/charmbracelet/lipgloss v1.1.0 github.com/charmbracelet/x/term v0.2.1 - github.com/context-dot-dev/context-go-sdk/v2 v2.10.0 + github.com/context-dot-dev/context-go-sdk/v2 v2.11.0 github.com/goccy/go-yaml v1.18.0 github.com/itchyny/json2yaml v0.1.4 github.com/muesli/reflow v0.3.0 diff --git a/go.sum b/go.sum index cc4035d..68d8032 100644 --- a/go.sum +++ b/go.sum @@ -18,8 +18,8 @@ github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91 h1:payR github.com/charmbracelet/x/exp/golden v0.0.0-20241011142426-46044092ad91/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U= github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= -github.com/context-dot-dev/context-go-sdk/v2 v2.10.0 h1:gw/QnKENZ8seyEPI9t9f7MjbtQGK392WFalNUKS3Xs4= -github.com/context-dot-dev/context-go-sdk/v2 v2.10.0/go.mod h1:CvRANWLP0FHj5XyUwzEVX79ujdwr/2Jy375UVzKNQm8= +github.com/context-dot-dev/context-go-sdk/v2 v2.11.0 h1:SsEX/lciOcEwANUhkEs6iJoEtSD2oZmnmslHtlio/Cc= +github.com/context-dot-dev/context-go-sdk/v2 v2.11.0/go.mod h1:CvRANWLP0FHj5XyUwzEVX79ujdwr/2Jy375UVzKNQm8= github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= diff --git a/pkg/cmd/version.go b/pkg/cmd/version.go index 560ca21..237efb5 100644 --- a/pkg/cmd/version.go +++ b/pkg/cmd/version.go @@ -2,4 +2,4 @@ package cmd -const Version = "1.7.0" // x-release-please-version +const Version = "1.8.0" // x-release-please-version diff --git a/pkg/cmd/web.go b/pkg/cmd/web.go index 37230d3..6273254 100644 --- a/pkg/cmd/web.go +++ b/pkg/cmd/web.go @@ -21,7 +21,7 @@ var webExtract = requestflag.WithInnerFlags(cli.Command{ Flags: []cli.Flag{ &requestflag.Flag[map[string]any]{ Name: "schema", - Usage: "JSON Schema for the returned data object. TypeScript Zod users can pass a JSON Schema generated from a Zod object; Python users can pass the equivalent JSON Schema object.", + Usage: "JSON Schema for the returned data object. Image fields such as `image_urls` or `product_photos` automatically make page image references available to extraction, so product data and photos can be returned in one call. TypeScript Zod users can pass a JSON Schema generated from a Zod object; Python users can pass the equivalent JSON Schema object.", Required: true, BodyPath: "schema", }, @@ -31,6 +31,11 @@ var webExtract = requestflag.WithInnerFlags(cli.Command{ Required: true, BodyPath: "url", }, + &requestflag.Flag[[]map[string]any]{ + Name: "action", + Usage: "Optional browser actions executed in order on the requested page after it loads and before extraction. Requires a paid plan. When actions are provided and stopAfterMs is omitted, the crawl budget defaults to 110000 ms.", + BodyPath: "actions", + }, &requestflag.Flag[bool]{ Name: "fact-check", Usage: "When true, every returned value must be grounded in facts stated on the page; fields that cannot be supported by the page are returned as null/empty. When false (default), the model may make reasonable inferences and derivations from the page content (e.g. ideal customer, competitor analysis, recommendations) while keeping verifiable specifics (names, quotes, URLs, dates, metrics) faithful to the source.", @@ -84,7 +89,7 @@ var webExtract = requestflag.WithInnerFlags(cli.Command{ }, &requestflag.Flag[int64]{ Name: "stop-after-ms", - Usage: "Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000 (110s). Default: 80000 (80s).", + Usage: "Soft time budget for the crawl in milliseconds. Min: 10000 (10s). Max: 110000 (110s). Defaults to 80000 (80s), or 110000 (110s) when browser actions are provided.", Default: 80000, BodyPath: "stopAfterMs", }, @@ -557,7 +562,7 @@ var webWebCrawlMd = requestflag.WithInnerFlags(cli.Command{ }, &requestflag.Flag[string]{ Name: "url-regex", - Usage: "Regex pattern. Only URLs matching this pattern will be followed and scraped.", + Usage: "Regex pattern. Only URLs matching this pattern will be followed and scraped. An automatic prefix scope in the form ^ follows a redirect of the starting page.", BodyPath: "urlRegex", }, &requestflag.Flag[bool]{ @@ -568,7 +573,8 @@ var webWebCrawlMd = requestflag.WithInnerFlags(cli.Command{ }, &requestflag.Flag[int64]{ Name: "wait-for-ms", - Usage: "Optional browser wait time in milliseconds after initial page load for each crawled page. Min: 0. Max: 30000 (30 seconds). ", + Usage: "Browser wait time in milliseconds after initial page load for each crawled page. Defaults to 3500 (3.5 seconds). Min: 0. Max: 30000 (30 seconds).", + Default: 3500, BodyPath: "waitForMs", }, &requestflag.Flag[string]{ diff --git a/pkg/cmd/web_test.go b/pkg/cmd/web_test.go index d8202fb..acbcf47 100644 --- a/pkg/cmd/web_test.go +++ b/pkg/cmd/web_test.go @@ -18,6 +18,7 @@ func TestWebExtract(t *testing.T) { "web", "extract", "--schema", "{type: bar, properties: bar, required: bar, additionalProperties: bar}", "--url", "https://example.com", + "--action", "{do: wait, timeMs: 0}", "--fact-check=true", "--follow-subdomains=true", "--include-frames=true", @@ -46,6 +47,7 @@ func TestWebExtract(t *testing.T) { "web", "extract", "--schema", "{type: bar, properties: bar, required: bar, additionalProperties: bar}", "--url", "https://example.com", + "--action", "{do: wait, timeMs: 0}", "--fact-check=true", "--follow-subdomains=true", "--include-frames=true", @@ -74,6 +76,9 @@ func TestWebExtract(t *testing.T) { " required: bar\n" + " additionalProperties: bar\n" + "url: https://example.com\n" + + "actions:\n" + + " - do: wait\n" + + " timeMs: 0\n" + "factCheck: true\n" + "followSubdomains: true\n" + "includeFrames: true\n" +