@auggieteo/dsh-synthetic-web-search 0.2.2 → 0.2.4

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/README.md CHANGED
@@ -22,7 +22,7 @@ dsh plugin --profile web add @auggieteo/dsh-synthetic-web-search
22
22
 
23
23
  ### Public Git URL
24
24
 
25
- After the public repository exists, install directly from Git:
25
+ Install directly from the public Git repository:
26
26
 
27
27
  ```bash
28
28
  dsh plugin --profile web add git+https://github.com/auggie246/dsh-synthetic-web-search.git
@@ -42,13 +42,19 @@ Then rerun the same `dsh plugin --profile web add git+https://…` command. Do n
42
42
 
43
43
  ### Activate the provider
44
44
 
45
- The install command adds this package to `dsh.profile.bundles`. Its bundled `cordis.patch.yml` inserts the `synthetic-web-search` row — the same id the manual rows above use.
45
+ The install command adds this package to `dsh.profile.bundles`. Its bundled `cordis.patch.yml` inserts the `synthetic-web-search` row **and selects `synthetic` as the `web` search provider**, replacing DSH's shipped `deepseek-official` selection. No `DSH_WEB_SEARCH_PROVIDER` environment variable is needed.
46
46
 
47
- The row belongs in the **web host profile**, not an agent preset: `ctx.web` is process-wide and each provider must register once. [`examples/synthetic.cordis.yml`](examples/synthetic.cordis.yml) shows the equivalent manual row.
47
+ The row belongs in the **web host profile**, not an agent preset: `ctx.web` is process-wide and each provider must register once. [`examples/synthetic.cordis.yml`](examples/synthetic.cordis.yml) shows the provider row; add the following selection override when mounting it manually:
48
+
49
+ ```yaml
50
+ - id: web
51
+ config:
52
+ searchProvider: synthetic
53
+ ```
48
54
 
49
55
  Restart the DSH web profile after installation. Do not start a separate Vite server; it does not update an existing DSH GUI.
50
56
 
51
- ## Configure credentials and provider selection
57
+ ## Configure credentials
52
58
 
53
59
  Open **Settings → Plugins → Plugin configuration → Synthetic web search**, enter the API key, and select **Save**. DSH stores it in its credentials domain and does not return it to the browser after saving.
54
60
 
@@ -58,14 +64,7 @@ For headless use, the plugin also reads the launch environment reference (by def
58
64
  export SYNTHETIC_API_KEY='…'
59
65
  ```
60
66
 
61
- When another usable search provider is installed, explicitly select Synthetic before launching DSH:
62
-
63
- ```bash
64
- export DSH_WEB_SEARCH_PROVIDER=synthetic
65
- dsh web
66
- ```
67
-
68
- Provider selection is intentionally unambiguous. The existing `@deepseek-ai/dsh-tool-web` agent-preset row exposes `web_search` to the model.
67
+ Provider selection is intentionally unambiguous: installation pins `web.config.searchProvider` to `synthetic`. To use another provider later, apply a higher-precedence profile or `--patch` override with that provider's id. The existing `@deepseek-ai/dsh-tool-web` agent-preset row exposes `web_search` to the model.
69
68
 
70
69
  ### Configuration
71
70
 
@@ -101,6 +100,8 @@ npm run verify
101
100
 
102
101
  `npm run verify` cleans generated output, type-checks, runs mocked provider tests, builds `lib/` from source (including the browser client bundle), and checks the npm package contents with `npm pack --dry-run`.
103
102
 
103
+ Releases are automated. Publish a GitHub release tagged `v<version>`, where `<version>` matches `package.json`. The publish workflow installs with `npm ci`, checks the tag, tests, builds, and publishes to npm. A prerelease publishes under the npm dist-tag `next`. A stable release publishes under `latest`.
104
+
104
105
  To test a local checkout without touching another profile, point a throwaway profile at its absolute path:
105
106
 
106
107
  ```bash
@@ -114,7 +115,9 @@ The provider sends the documented request:
114
115
  ```http
115
116
  POST https://api.synthetic.new/v2/search
116
117
  Authorization: Bearer $SYNTHETIC_API_KEY
118
+ Accept: application/json
117
119
  Content-Type: application/json
120
+ User-Agent: deepseek-harness-synthetic/0.1.0
118
121
 
119
122
  { "query": "…" }
120
123
  ```
@@ -128,6 +131,6 @@ It maps valid results into the Harness source vocabulary:
128
131
  | `text` | `snippet` |
129
132
  | `published` | `publishedAt` |
130
133
 
131
- Malformed or non-URL entries are ignored. The provider does not create a generated answer (`content`) and returns `truncated: false`; the `ctx.web` seam applies the caller's `maxResults` cap. Network, redirect, HTTP, and response-shape failures surface as `WEB_PROVIDER_ERROR`; aborted requests surface as `WEB_ABORTED`.
134
+ Malformed or non-URL entries are ignored. The provider does not create a generated answer (`content`) and returns `truncated: false`; the `ctx.web` seam applies the caller's `maxResults` cap. Network, redirect, HTTP, and response-shape failures surface as `WEB_PROVIDER_ERROR`; a missing API key surfaces as `WEB_PROVIDER_CREDENTIAL_MISSING`; aborted requests surface as `WEB_ABORTED`.
132
135
 
133
136
  Synthetic's documented API currently exposes only `query`, so `maxResults` is intentionally not sent upstream.
package/cordis.patch.yml CHANGED
@@ -1,8 +1,13 @@
1
- # Bundle patch for @auggieteo/dsh-synthetic-web-search: inserts its host row into the profile tree.
2
- # `dsh plugin --profile web add <this package>` appends this bundle to
3
- # dsh.profile.bundles automatically. Client roster entries come from the
1
+ # Bundle patch for @auggieteo/dsh-synthetic-web-search: inserts its host row and
2
+ # selects Synthetic for web search. `dsh plugin --profile web add <this package>`
3
+ # appends this bundle after DSH's base bundle, so this later row override replaces
4
+ # the shipped `deepseek-official` selection. Client roster entries come from the
4
5
  # dsh.client block in package.json — no row needed here.
5
6
 
6
7
  - insert:
7
8
  - id: synthetic-web-search
8
9
  name: "@auggieteo/dsh-synthetic-web-search"
10
+
11
+ - id: web
12
+ config:
13
+ searchProvider: synthetic
@@ -1,10 +1,15 @@
1
1
  # Host-plane row: it registers a provider into the process-wide `web` service.
2
2
  # Install the package into the target profile before adding this row.
3
3
  # `dsh plugin --profile web add @auggieteo/dsh-synthetic-web-search` mounts
4
- # this row through the shipped bundle; this file is the manual equivalent.
4
+ # these rows through the shipped bundle; this file is the manual equivalent.
5
5
  - id: synthetic-web-search
6
6
  name: '@auggieteo/dsh-synthetic-web-search'
7
7
  config:
8
8
  # The Settings card stores its key under this DSH credential reference.
9
9
  # apiKeyEnv: SYNTHETIC_API_KEY
10
10
  # baseURL: https://api.synthetic.new
11
+
12
+ +# Overrides DSH's shipped deepseek-official selection.
13
+ - id: web
14
+ config:
15
+ searchProvider: synthetic
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auggieteo/dsh-synthetic-web-search",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Synthetic-backed search provider and Settings card for the DeepSeek Harness web capability seam (ctx.web)",
5
5
  "license": "MIT",
6
6
  "publishConfig": {