@anweat/dsh-browser 0.1.14-alpha.2 → 0.1.15-alpha.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/lib/index.js CHANGED
@@ -39,7 +39,10 @@ export function apply(ctx, config) {
39
39
  const downstream = await next();
40
40
  if (downstream.kind !== 'allow')
41
41
  return downstream;
42
- return browserPolicyDecision(exec.name, exec.arguments, resolved.automationMode);
42
+ const assetId = exec.arguments?.id;
43
+ const assetKind = exec.name === 'browser_automation_run' && typeof assetId === 'string'
44
+ ? assets.get(assetId)?.kind : undefined;
45
+ return browserPolicyDecision(exec.name, exec.arguments, resolved.automationMode, assetKind);
43
46
  });
44
47
  // Provide the `browser` service so consumers (web-search-pro) can inject it.
45
48
  // ctx.provide is scoped to this plugin's fiber; the browser instance itself
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anweat/dsh-browser",
3
- "version": "0.1.14-alpha.2",
3
+ "version": "0.1.15-alpha.2",
4
4
  "description": "Self-contained browser runtime plugin for DeepSeek Harness (scoped @anweat) — bundles Playwright (chromium) and OpenCLI as plugin-local dependencies (with global-reuse fallback), exposes a `browser` service and interactive browser tools.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,6 +22,7 @@
22
22
  "lib",
23
23
  "cordis.patch.yml",
24
24
  "README.md",
25
+ "AUDIT.md",
25
26
  "scripts",
26
27
  "LICENSE"
27
28
  ],
@@ -77,7 +78,7 @@
77
78
  }
78
79
  },
79
80
  "dependencies": {
80
- "@jackwener/opencli": "^1.8.6",
81
+ "@jackwener/opencli": "^1.8.7",
81
82
  "patchright": "^1.62.1",
82
83
  "playwright": "^1.60.0"
83
84
  },
@@ -0,0 +1,46 @@
1
+ /** Exercise compiled asset routes on an exact installed DSH host's real auth/HTTP stack. */
2
+ import assert from 'node:assert/strict'
3
+ import { createRequire } from 'node:module'
4
+ import { resolve } from 'node:path'
5
+ import { pathToFileURL } from 'node:url'
6
+ import { registerAutomationAssetRpc } from '../lib/automation-assets-rpc.js'
7
+
8
+ const require = createRequire(resolve(process.argv[2], 'package.json'))
9
+ const load = name => import(pathToFileURL(require.resolve(name)).href)
10
+ const { Context } = await load('@deepseek-ai/cordis')
11
+ const connection = await load('@deepseek-ai/dsh-client-connection')
12
+ const { default: WebServer } = await load('@deepseek-ai/dsh-host-webserver')
13
+ const root = new Context()
14
+ let credentialRecord
15
+ try {
16
+ root.provide('credentials', {
17
+ readRecord: async () => credentialRecord,
18
+ modifyRecord: async (_key, fn) => (credentialRecord = await fn(credentialRecord)),
19
+ deleteRecord: async () => { credentialRecord = undefined },
20
+ })
21
+ await root.plugin(connection, { trustedHosts: [] })
22
+ const fiber = await root.plugin({
23
+ name: 'asset-rpc-probe',
24
+ apply(ctx) { registerAutomationAssetRpc(ctx, { snapshot: () => ({ assets: [] }) }, {}) },
25
+ })
26
+ await root.plugin(WebServer, { host: '127.0.0.1', port: 0 })
27
+ const transport = root.get('connection'), port = root.get('webServer').port
28
+ const base = `http://127.0.0.1:${port}`
29
+ const headers = { 'content-type': 'application/json', connection: 'close' }
30
+ transport.authorizeIndex({ method: 'GET', url: transport.authenticatedUrl(base + '/'), headers: { host: `127.0.0.1:${port}` } }, {
31
+ writeHead(_status, values) { if (values['set-cookie']) headers.cookie = values['set-cookie'].split(';')[0] }, end() {},
32
+ })
33
+ assert.ok(headers.cookie)
34
+ const request = (signed, method = 'dsh-browser-assets/snapshot') => fetch(base + '/api/' + method, {
35
+ method: 'POST', headers: signed ? headers : { 'content-type': 'application/json', connection: 'close' },
36
+ body: JSON.stringify({ type: 'client-request', rpcId: 'probe', method, payload: {} }),
37
+ })
38
+ assert.equal((await request(false)).status, 401)
39
+ const response = await request(true)
40
+ assert.equal(response.status, 200)
41
+ assert.deepEqual((await response.json()).result, { ok: true, value: { assets: [] } })
42
+ assert.equal((await request(true, 'dsh-browser-assets/unknown')).status, 404)
43
+ await fiber.dispose()
44
+ assert.equal((await request(true)).status, 404)
45
+ console.log('PASS: compiled asset routes; Connection before WebServer; authenticated access, unsigned rejection, exact routing, disposal')
46
+ } finally { await root.fiber.dispose() }