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

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
@@ -12,7 +12,7 @@ This is a **host-plane** plugin: it registers the `synthetic` provider into the
12
12
 
13
13
  ## Install
14
14
 
15
- Install the package as a dependency of the profile that hosts `web` (normally `web`). Choose one route.
15
+ Install the package as a profile layer in the profile that hosts `web` (normally `web`). The layer activates the provider row automatically. Choose one route.
16
16
 
17
17
  ### npm registry
18
18
 
@@ -42,22 +42,11 @@ Then rerun the same `dsh plugin --profile web add git+https://…` command. Do n
42
42
 
43
43
  ### Activate the provider
44
44
 
45
- Add this top-level `insert` block to `$DSH_HOME/profiles/web/cordis.patch.yml` (create the file with this YAML array if it does not exist):
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.
46
46
 
47
- ```yaml
48
- - insert:
49
- - id: web-search-synthetic
50
- name: '@auggieteo/dsh-synthetic-web-search'
51
- config:
52
- # Settings stores the key using this DSH credential reference.
53
- apiKeyEnv: SYNTHETIC_API_KEY
54
- # Optional; defaults to https://api.synthetic.new.
55
- # baseURL: https://api.synthetic.new
56
- ```
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.
57
48
 
58
- The row belongs in the **web host profile**, not an agent preset: `ctx.web` is process-wide and each provider must register once. The same example is in [`examples/synthetic.cordis.yml`](examples/synthetic.cordis.yml).
59
-
60
- Restart the DSH web profile after changing its composition. Do not start a separate Vite server; it does not update an existing DSH GUI.
49
+ Restart the DSH web profile after installation. Do not start a separate Vite server; it does not update an existing DSH GUI.
61
50
 
62
51
  ## Configure credentials and provider selection
63
52
 
@@ -88,19 +77,20 @@ Provider selection is intentionally unambiguous. The existing `@deepseek-ai/dsh-
88
77
 
89
78
  ## Uninstall
90
79
 
91
- 1. Remove the `web-search-synthetic` row from `$DSH_HOME/profiles/web/cordis.patch.yml`.
92
- 2. Remove the dependency:
80
+ 1. Remove the profile layer:
93
81
 
94
82
  ```bash
95
83
  dsh plugin --profile web remove @auggieteo/dsh-synthetic-web-search
96
84
  ```
97
85
 
98
- 3. Restart the DSH web profile.
99
- 4. If no other configuration uses it, remove `SYNTHETIC_API_KEY` from the process environment and remove the stored credential through your normal DSH credentials management.
86
+ 2. Restart the DSH web profile.
87
+ 3. If no other configuration uses it, remove `SYNTHETIC_API_KEY` from the process environment and remove the stored credential through your normal DSH credentials management.
100
88
 
101
89
  ## Compatibility
102
90
 
103
- The public package name is `@auggieteo/dsh-synthetic-web-search`, replacing the former local `@deepseek-ai/dsh-web-search-synthetic` reference. Only the package reference changes. The Cordis row id (`web-search-synthetic`), Settings namespace (`web-search-synthetic`), and default credential reference (`SYNTHETIC_API_KEY`) remain unchanged, so existing persisted plugin settings and credentials continue to apply after the row is updated.
91
+ The public package name is `@auggieteo/dsh-synthetic-web-search`, replacing the former local `@deepseek-ai/dsh-web-search-synthetic` reference. The browser client registers both package ids, so legacy profile rows continue to load during migration. The bundle row id (`synthetic-web-search`) matches the id existing manual profile rows already use, so the plugin mounts once. The Settings namespace (`web-search-synthetic`) and default credential reference (`SYNTHETIC_API_KEY`) remain unchanged, so existing persisted plugin settings and credentials continue to apply after the row is updated.
92
+
93
+ 0.2.1 shipped a bundle row with id `web-search-synthetic`. If you installed 0.2.1 as a bundle and kept a manual `- insert:` block, the plugin mounted twice. Upgrade to 0.2.2 or newer, which aligns the bundle row id with the manual row id, then keep only one mount.
104
94
 
105
95
  ## Development and verification
106
96
 
@@ -0,0 +1,8 @@
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
4
+ # dsh.client block in package.json — no row needed here.
5
+
6
+ - insert:
7
+ - id: synthetic-web-search
8
+ name: "@auggieteo/dsh-synthetic-web-search"
@@ -1,6 +1,8 @@
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
- - id: web-search-synthetic
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.
5
+ - id: synthetic-web-search
4
6
  name: '@auggieteo/dsh-synthetic-web-search'
5
7
  config:
6
8
  # The Settings card stores its key under this DSH credential reference.
package/lib/client.js CHANGED
@@ -1,6 +1,16 @@
1
- window.__ModuleLoader__.load({
2
- id: '@auggieteo/dsh-synthetic-web-search',
3
- factory: (require) => {
1
+ const CLIENT_PACKAGE_IDS = [
2
+ '@auggieteo/dsh-synthetic-web-search',
3
+ '@deepseek-ai/dsh-web-search-synthetic',
4
+ ]
5
+
6
+ for (const id of CLIENT_PACKAGE_IDS) {
7
+ window.__ModuleLoader__.load({
8
+ id,
9
+ factory: createClientPlugin,
10
+ })
11
+ }
12
+
13
+ function createClientPlugin(require) {
4
14
  const module = { exports: {} }
5
15
  const exports = module.exports
6
16
  const React = require('react')
@@ -155,5 +165,4 @@ window.__ModuleLoader__.load({
155
165
  exports.inject = inject
156
166
  exports.apply = apply
157
167
  return module.exports
158
- },
159
- })
168
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auggieteo/dsh-synthetic-web-search",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
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": {
@@ -36,6 +36,9 @@
36
36
  "./package.json": "./package.json"
37
37
  },
38
38
  "dsh": {
39
+ "bundle": {
40
+ "patch": "./cordis.patch.yml"
41
+ },
39
42
  "client": {
40
43
  "platform": "web",
41
44
  "inject": [
@@ -47,6 +50,7 @@
47
50
  },
48
51
  "files": [
49
52
  "lib",
53
+ "cordis.patch.yml",
50
54
  "examples",
51
55
  "README.md",
52
56
  "LICENSE"
@@ -60,16 +64,14 @@
60
64
  "prepack": "npm run build",
61
65
  "verify": "npm run clean && npm run check && npm test && npm run build && npm pack --dry-run"
62
66
  },
63
- "dependencies": {
64
- "@deepseek-ai/schemastery": "^3.18.1"
65
- },
66
67
  "peerDependencies": {
67
68
  "@deepseek-ai/cordis": "^4.0.1",
68
69
  "@deepseek-ai/dsh-credentials": "^0.1.1-rc.2",
69
70
  "@deepseek-ai/dsh-invariants": "^0.1.1-rc.2",
70
71
  "@deepseek-ai/dsh-launch-environment": "^0.1.1-rc.2",
71
72
  "@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
72
- "@deepseek-ai/dsh-web": "^0.1.1-rc.2"
73
+ "@deepseek-ai/dsh-web": "^0.1.1-rc.2",
74
+ "@deepseek-ai/schemastery": "^3.18.1"
73
75
  },
74
76
  "devDependencies": {
75
77
  "@deepseek-ai/cordis": "^4.0.1",
@@ -78,7 +80,9 @@
78
80
  "@deepseek-ai/dsh-launch-environment": "^0.1.1-rc.2",
79
81
  "@deepseek-ai/dsh-settings": "^0.1.1-rc.2",
80
82
  "@deepseek-ai/dsh-web": "^0.1.1-rc.2",
83
+ "@deepseek-ai/schemastery": "^3.18.1",
81
84
  "@types/node": "^22.0.0",
85
+ "js-yaml": "^4.1.0",
82
86
  "tsx": "^4.19.0",
83
87
  "typescript": "^5.7.0"
84
88
  }