@anweat/dsh-browser 0.2.1 → 0.2.3

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.
Files changed (172) hide show
  1. package/CHANGELOG.md +103 -0
  2. package/README.en.md +153 -0
  3. package/README.md +99 -568
  4. package/assets/skills/dsh-browser/SKILL.md +13 -11
  5. package/assets/skills/dsh-browser/references/files.md +36 -0
  6. package/assets/skills/dsh-browser/references/observe.md +2 -2
  7. package/assets/skills/dsh-browser/references/policy.md +32 -0
  8. package/cordis.patch.yml +10 -3
  9. package/lib/actions/errors.js +7 -2
  10. package/lib/actions/errors.js.map +1 -1
  11. package/lib/actions/index-view.d.ts +4 -1
  12. package/lib/actions/index-view.js +16 -3
  13. package/lib/actions/index-view.js.map +1 -1
  14. package/lib/actions/inspect.js +15 -0
  15. package/lib/actions/inspect.js.map +1 -1
  16. package/lib/actions/observe.js +1 -1
  17. package/lib/actions/observe.js.map +1 -1
  18. package/lib/actions/opencli.d.ts +1 -1
  19. package/lib/actions/opencli.js +4 -4
  20. package/lib/actions/opencli.js.map +1 -1
  21. package/lib/actions/policy.d.ts +15 -0
  22. package/lib/actions/policy.js +131 -0
  23. package/lib/actions/policy.js.map +1 -0
  24. package/lib/actions/registry.js +6 -5
  25. package/lib/actions/registry.js.map +1 -1
  26. package/lib/actions/runtime.js +2 -2
  27. package/lib/actions/runtime.js.map +1 -1
  28. package/lib/actions/target.js +35 -3
  29. package/lib/actions/target.js.map +1 -1
  30. package/lib/actions/types.d.ts +1 -1
  31. package/lib/actions/types.js.map +1 -1
  32. package/lib/approval-policy.d.ts +10 -1
  33. package/lib/approval-policy.js +42 -1
  34. package/lib/approval-policy.js.map +1 -1
  35. package/lib/auth-profiles.d.ts +4 -1
  36. package/lib/auth-profiles.js +3 -0
  37. package/lib/auth-profiles.js.map +1 -1
  38. package/lib/automation-assets-rpc.js +60 -4
  39. package/lib/automation-assets-rpc.js.map +1 -1
  40. package/lib/browser-service.d.ts +165 -4
  41. package/lib/browser-service.js +505 -55
  42. package/lib/browser-service.js.map +1 -1
  43. package/lib/client/SettingsCard.d.ts +10 -8
  44. package/lib/client/SettingsCard.js +12 -137
  45. package/lib/client/SettingsCard.js.map +1 -1
  46. package/lib/client/auth-profiles-form.d.ts +23 -0
  47. package/lib/client/auth-profiles-form.js +64 -0
  48. package/lib/client/auth-profiles-form.js.map +1 -0
  49. package/lib/client/card-frame.d.ts +22 -0
  50. package/lib/client/card-frame.js +61 -0
  51. package/lib/client/card-frame.js.map +1 -0
  52. package/lib/client/field-rows.d.ts +59 -0
  53. package/lib/client/field-rows.js +63 -0
  54. package/lib/client/field-rows.js.map +1 -0
  55. package/lib/client/field-rules.d.ts +17 -0
  56. package/lib/client/field-rules.js +68 -0
  57. package/lib/client/field-rules.js.map +1 -0
  58. package/lib/client/form.d.ts +108 -7
  59. package/lib/client/form.js +255 -11
  60. package/lib/client/form.js.map +1 -1
  61. package/lib/client/group-access.d.ts +14 -0
  62. package/lib/client/group-access.js +97 -0
  63. package/lib/client/group-access.js.map +1 -0
  64. package/lib/client/group-advanced.d.ts +11 -0
  65. package/lib/client/group-advanced.js +32 -0
  66. package/lib/client/group-advanced.js.map +1 -0
  67. package/lib/client/group-assets.d.ts +13 -0
  68. package/lib/client/group-assets.js +50 -0
  69. package/lib/client/group-assets.js.map +1 -0
  70. package/lib/client/group-browser.d.ts +9 -0
  71. package/lib/client/group-browser.js +27 -0
  72. package/lib/client/group-browser.js.map +1 -0
  73. package/lib/client/group-common.d.ts +10 -0
  74. package/lib/client/group-common.js +21 -0
  75. package/lib/client/group-common.js.map +1 -0
  76. package/lib/client/group-context.d.ts +20 -0
  77. package/lib/client/group-context.js +76 -0
  78. package/lib/client/group-context.js.map +1 -0
  79. package/lib/client/group-downloads.d.ts +10 -0
  80. package/lib/client/group-downloads.js +33 -0
  81. package/lib/client/group-downloads.js.map +1 -0
  82. package/lib/client/group-limits.d.ts +9 -0
  83. package/lib/client/group-limits.js +57 -0
  84. package/lib/client/group-limits.js.map +1 -0
  85. package/lib/client/group-prompts.d.ts +13 -0
  86. package/lib/client/group-prompts.js +136 -0
  87. package/lib/client/group-prompts.js.map +1 -0
  88. package/lib/client/index.d.ts +21 -1
  89. package/lib/client/index.js +10 -4
  90. package/lib/client/index.js.map +1 -1
  91. package/lib/client/locales-policy.d.ts +83 -0
  92. package/lib/client/locales-policy.js +46 -0
  93. package/lib/client/locales-policy.js.map +1 -0
  94. package/lib/client/locales-prompts.d.ts +57 -0
  95. package/lib/client/locales-prompts.js +41 -0
  96. package/lib/client/locales-prompts.js.map +1 -0
  97. package/lib/client/locales-ui.d.ts +223 -0
  98. package/lib/client/locales-ui.js +157 -0
  99. package/lib/client/locales-ui.js.map +1 -0
  100. package/lib/client/locales.d.ts +359 -67
  101. package/lib/client/locales.js +68 -22
  102. package/lib/client/locales.js.map +1 -1
  103. package/lib/client/policy-fields.d.ts +31 -0
  104. package/lib/client/policy-fields.js +66 -0
  105. package/lib/client/policy-fields.js.map +1 -0
  106. package/lib/client/policy-status-client.d.ts +91 -0
  107. package/lib/client/policy-status-client.js +64 -0
  108. package/lib/client/policy-status-client.js.map +1 -0
  109. package/lib/client/prompts-form.d.ts +33 -0
  110. package/lib/client/prompts-form.js +87 -0
  111. package/lib/client/prompts-form.js.map +1 -1
  112. package/lib/client/prompts-status-client.d.ts +21 -1
  113. package/lib/client/prompts-status-client.js +36 -4
  114. package/lib/client/prompts-status-client.js.map +1 -1
  115. package/lib/client/properties-form.d.ts +90 -0
  116. package/lib/client/properties-form.js +187 -0
  117. package/lib/client/properties-form.js.map +1 -0
  118. package/lib/client/property-docs.d.ts +18 -0
  119. package/lib/client/property-docs.js +78 -0
  120. package/lib/client/property-docs.js.map +1 -0
  121. package/lib/client/size-units.d.ts +12 -0
  122. package/lib/client/size-units.js +29 -0
  123. package/lib/client/size-units.js.map +1 -0
  124. package/lib/client/styles.d.ts +47 -31
  125. package/lib/client/styles.js +59 -20
  126. package/lib/client/styles.js.map +1 -1
  127. package/lib/client/ui-kit.d.ts +173 -0
  128. package/lib/client/ui-kit.js +112 -0
  129. package/lib/client/ui-kit.js.map +1 -0
  130. package/lib/client.js +5291 -834
  131. package/lib/client.js.map +1 -1
  132. package/lib/config-rules.d.ts +40 -0
  133. package/lib/config-rules.js +103 -0
  134. package/lib/config-rules.js.map +1 -0
  135. package/lib/config.d.ts +64 -2
  136. package/lib/config.js +106 -0
  137. package/lib/config.js.map +1 -1
  138. package/lib/context-options.d.ts +85 -0
  139. package/lib/context-options.js +206 -0
  140. package/lib/context-options.js.map +1 -0
  141. package/lib/deps.d.ts +42 -5
  142. package/lib/deps.js +219 -9
  143. package/lib/deps.js.map +1 -1
  144. package/lib/downloads.d.ts +79 -0
  145. package/lib/downloads.js +189 -0
  146. package/lib/downloads.js.map +1 -0
  147. package/lib/index.d.ts +3 -2
  148. package/lib/index.js +7 -3
  149. package/lib/index.js.map +1 -1
  150. package/lib/policy-keys.d.ts +39 -0
  151. package/lib/policy-keys.js +21 -0
  152. package/lib/policy-keys.js.map +1 -1
  153. package/lib/policy-overlay.d.ts +189 -0
  154. package/lib/policy-overlay.js +649 -0
  155. package/lib/policy-overlay.js.map +1 -0
  156. package/lib/prompts-yaml.d.ts +11 -0
  157. package/lib/prompts-yaml.js +121 -0
  158. package/lib/prompts-yaml.js.map +1 -0
  159. package/lib/prompts.d.ts +2 -0
  160. package/lib/prompts.js +7 -3
  161. package/lib/prompts.js.map +1 -1
  162. package/lib/system-browser.d.ts +61 -0
  163. package/lib/system-browser.js +109 -0
  164. package/lib/system-browser.js.map +1 -0
  165. package/lib/tools.js +9 -1
  166. package/lib/tools.js.map +1 -1
  167. package/lib/usage-policy.d.ts +3 -1
  168. package/lib/usage-policy.js +2 -0
  169. package/lib/usage-policy.js.map +1 -1
  170. package/package.json +47 -40
  171. package/scripts/check-docs-links.mjs +115 -0
  172. package/scripts/dump-prompts.mjs +13 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downloads.js","sourceRoot":"","sources":["../src/downloads.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * dsh-browser — self-contained browser runtime plugin for DeepSeek Harness.
3
3
  *
4
- * Bundles Playwright (chromium) + OpenCLI as plugin-local npm dependencies and
5
- * provides a `browser` service for other plugins (web-search-pro injects it),
4
+ * Ships Playwright and Patchright as plugin-local npm dependencies (the browser itself is a system Chrome / Edge, or
5
+ * Playwright Chromium downloaded on demand); OpenCLI is optional and installed separately. Provides
6
+ * a `browser` service for other plugins (web-search-pro injects it),
6
7
  * plus model-facing interactive browser tools.
7
8
  * @module dsh-browser
8
9
  */
package/lib/index.js CHANGED
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * dsh-browser — self-contained browser runtime plugin for DeepSeek Harness.
3
3
  *
4
- * Bundles Playwright (chromium) + OpenCLI as plugin-local npm dependencies and
5
- * provides a `browser` service for other plugins (web-search-pro injects it),
4
+ * Ships Playwright and Patchright as plugin-local npm dependencies (the browser itself is a system Chrome / Edge, or
5
+ * Playwright Chromium downloaded on demand); OpenCLI is optional and installed separately. Provides
6
+ * a `browser` service for other plugins (web-search-pro injects it),
6
7
  * plus model-facing interactive browser tools.
7
8
  * @module dsh-browser
8
9
  */
@@ -13,6 +14,7 @@ import { BrowserService } from "./browser-service.js";
13
14
  import { registerTools } from "./tools.js";
14
15
  import { browserCallDecision, browserPolicyDecision } from "./approval-policy.js";
15
16
  import { resolveBrowserCall } from "./actions/surface.js";
17
+ import { policyChangeFor } from "./actions/policy.js";
16
18
  import { registerSkillWhenAvailable } from "./skill.js";
17
19
  import { installErrorHints } from "./actions/errors.js";
18
20
  import { describePrompts } from "./prompts.js";
@@ -77,7 +79,9 @@ export function apply(ctx, config) {
77
79
  const callArgs = (call.args ?? {});
78
80
  const replaysAsset = call.action === 'automation.run' || (call.action === 'automation.develop' && callArgs.action === 'test');
79
81
  const target = replaysAsset && typeof callArgs.id === 'string' ? assets.get(callArgs.id) : undefined;
80
- return browserCallDecision(call.action, call.args, resolved.automationMode, target?.kind, call.action === 'automation.develop' ? target?.recipe : undefined, target ? { id: target.id, name: target.name, revision: target.revision } : undefined);
82
+ const policyChange = policyChangeFor(call.action, call.args);
83
+ const preview = policyChange ? service.previewPolicyChange(policyChange) : undefined;
84
+ return browserCallDecision(call.action, call.args, resolved.automationMode, target?.kind, call.action === 'automation.develop' ? target?.recipe : undefined, target ? { id: target.id, name: target.name, revision: target.revision } : undefined, preview);
81
85
  }
82
86
  return browserPolicyDecision(exec.name, exec.arguments, resolved.automationMode);
83
87
  });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,MAAM,EAAE,aAAa,EAAuB,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AAEvE,MAAM,CAAC,MAAM,IAAI,GAAG,aAAa,CAAA;AACjC,qHAAqH;AACrH,4GAA4G;AAC5G,iHAAiH;AACjH,oHAAoH;AACpH,kHAAkH;AAClH,uDAAuD;AACvD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;AAE/B;;;;;;;;;;GAUG;AACH,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC7D,eAAe,MAAM,CAAA;AAErB,OAAO,EAAE,MAAM,EAAE,CAAA;AAOjB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAElE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAEjK,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAE5I,MAAM,UAAU,KAAK,CAAC,GAAY,EAAE,MAAc;IAChD,yGAAyG;IACzG,wGAAwG;IACxG,qGAAqG;IACrG,yGAAyG;IACzG,wGAAwG;IACxG,yFAAyF;IACzF,MAAM,QAAQ,GAAmB,aAAa,CAAC,MAAM,CAAC,CAAA;IACtD,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvD,MAAM,OAAO,GAAG,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAA;IAC5C,MAAM,MAAM,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAElE,yEAAyE;IACzE,uEAAuE;IACvE,yEAAyE;IACzE,0EAA0E;IAC1E,4EAA4E;IAC5E,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,GAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,EAAE,CAAA;QAC/B,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,UAAU,CAAA;QAClD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC1D,oEAAoE;QACpE,+EAA+E;QAC/E,IAAI,IAAI,EAAE,IAAI,KAAK,OAAO,IAAI,IAAI,EAAE,IAAI,KAAK,YAAY;YAAE,OAAO,UAAU,CAAA;QAC5E,IAAI,IAAI,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,8GAA8G;YAC9G,sDAAsD;YACtD,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAuC,CAAA;YACxE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,KAAK,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,oBAAoB,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;YAC7H,MAAM,MAAM,GAAG,YAAY,IAAI,OAAO,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YACpG,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,oBAAoB,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QACpP,CAAC;QACD,OAAO,qBAAqB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAA;IAClF,CAAC,CAAC,CAAA;IAEF,6EAA6E;IAC7E,4EAA4E;IAC5E,2CAA2C;IAC3C,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC/B,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;IAE5C,2EAA2E;IAC3E,yEAAyE;IACzE,yEAAyE;IACzE,mGAAmG;IACnG,MAAM,KAAK,GAAG,0BAA0B,CAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE1E,4FAA4F;IAC5F,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhF,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,WAAW,EAAE,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;IACjH,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;IAEpM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;YAC/D,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC3C,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC5B,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;aAClC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;QACpB,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,8BAA8B,GAAG,QAAQ,CAAC,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC,cAAc,GAAG,cAAc,GAAG,QAAQ,CAAC,cAAc,GAAG,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAA;AACvO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -28,3 +28,42 @@ export declare const USAGE_POLICY_BOUNDS: {
28
28
  readonly cooldownMs: readonly [100, 300000];
29
29
  };
30
30
  export declare const USAGE_POLICY_KEYS: (keyof typeof USAGE_POLICY_BOUNDS)[];
31
+ /** The name of a login profile: starts with a letter or digit, then letters, digits, `_` and `-`, at most 40 characters. The policy overlay and the settings card use this one rule. */
32
+ export declare const AUTH_PROFILE_ID: RegExp;
33
+ /** `usagePolicy` defaults (what a missing key means). test/policy-keys.test.ts holds them equal to the resolver's. */
34
+ export declare const USAGE_POLICY_DEFAULTS: {
35
+ readonly minDelayMs: 750;
36
+ readonly maxConcurrency: 2;
37
+ readonly burst: 3;
38
+ readonly maxPagesPerRun: 20;
39
+ readonly maxDepth: 2;
40
+ readonly retryLimit: 2;
41
+ readonly backoffBaseMs: 1000;
42
+ readonly cooldownMs: 30000;
43
+ };
44
+ /**
45
+ * `automationAssets` defaults and the inclusive range of each number. The resolver CLAMPS a value outside its range
46
+ * without a word; the card shows the range and refuses such a value instead. `directory` has no default (the plugin
47
+ * picks one under $DSH_HOME).
48
+ */
49
+ export declare const ASSET_POLICY_DEFAULTS: {
50
+ readonly enabled: true;
51
+ readonly persistenceMode: "suggest";
52
+ readonly activationMode: "manual";
53
+ readonly minSuccessfulRuns: 3;
54
+ readonly minDistinctSessions: 2;
55
+ readonly successWindowDays: 14;
56
+ readonly minSuccessRate: 0.8;
57
+ readonly maxCandidates: 20;
58
+ readonly candidateTtlDays: 14;
59
+ readonly maxSuggestionsPerDay: 2;
60
+ readonly maxDrafts: 10;
61
+ readonly maxActiveAssets: 50;
62
+ readonly retrievalTopK: 5;
63
+ readonly catalogTokenBudget: 800;
64
+ readonly modelDevelopmentEnabled: true;
65
+ readonly maxModelDraftWritesPerSession: 3;
66
+ readonly maxTestCredentials: 5;
67
+ readonly minInputSetsForActivation: 2;
68
+ };
69
+ export declare const ASSET_POLICY_BOUNDS: Partial<Record<AssetPolicyKey, readonly [number, number]>>;
@@ -31,4 +31,25 @@ export const USAGE_POLICY_BOUNDS = {
31
31
  maxDepth: [0, 5], retryLimit: [0, 5], backoffBaseMs: [1, 60_000], cooldownMs: [100, 300_000],
32
32
  };
33
33
  export const USAGE_POLICY_KEYS = Object.keys(USAGE_POLICY_BOUNDS);
34
+ /** The name of a login profile: starts with a letter or digit, then letters, digits, `_` and `-`, at most 40 characters. The policy overlay and the settings card use this one rule. */
35
+ export const AUTH_PROFILE_ID = /^[A-Za-z0-9][A-Za-z0-9_-]{0,39}$/;
36
+ /** `usagePolicy` defaults (what a missing key means). test/policy-keys.test.ts holds them equal to the resolver's. */
37
+ export const USAGE_POLICY_DEFAULTS = {
38
+ minDelayMs: 750, maxConcurrency: 2, burst: 3, maxPagesPerRun: 20, maxDepth: 2, retryLimit: 2, backoffBaseMs: 1_000, cooldownMs: 30_000,
39
+ };
40
+ /**
41
+ * `automationAssets` defaults and the inclusive range of each number. The resolver CLAMPS a value outside its range
42
+ * without a word; the card shows the range and refuses such a value instead. `directory` has no default (the plugin
43
+ * picks one under $DSH_HOME).
44
+ */
45
+ export const ASSET_POLICY_DEFAULTS = {
46
+ enabled: true, persistenceMode: 'suggest', activationMode: 'manual', minSuccessfulRuns: 3, minDistinctSessions: 2, successWindowDays: 14,
47
+ minSuccessRate: 0.8, maxCandidates: 20, candidateTtlDays: 14, maxSuggestionsPerDay: 2, maxDrafts: 10, maxActiveAssets: 50, retrievalTopK: 5,
48
+ catalogTokenBudget: 800, modelDevelopmentEnabled: true, maxModelDraftWritesPerSession: 3, maxTestCredentials: 5, minInputSetsForActivation: 2,
49
+ };
50
+ export const ASSET_POLICY_BOUNDS = {
51
+ minSuccessfulRuns: [2, 20], minDistinctSessions: [1, 10], successWindowDays: [1, 90], minSuccessRate: [0.5, 1], maxCandidates: [1, 100],
52
+ candidateTtlDays: [1, 90], maxSuggestionsPerDay: [0, 20], maxDrafts: [1, 100], maxActiveAssets: [1, 200], retrievalTopK: [1, 20],
53
+ catalogTokenBudget: [100, 4_000], maxModelDraftWritesPerSession: [1, 20], maxTestCredentials: [1, 20], minInputSetsForActivation: [1, 5],
54
+ };
34
55
  //# sourceMappingURL=policy-keys.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy-keys.js","sourceRoot":"","sources":["../src/policy-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,qBAAqB;IACvG,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EAAE,sBAAsB;IAClG,WAAW,EAAE,iBAAiB,EAAE,eAAe,EAAE,oBAAoB;IACrE,yBAAyB,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,2BAA2B;CACrG,CAAA;AAIV,8EAA8E;AAC9E,MAAM,CAAC,MAAM,yBAAyB,GAA8B,CAAC,SAAS,EAAE,yBAAyB,CAAC,CAAA;AAC1G,MAAM,CAAC,MAAM,wBAAwB,GAA8B,CAAC,WAAW,CAAC,CAAA;AAChF,MAAM,CAAC,MAAM,kBAAkB,GAAuD;IACpF,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC;IAC3D,cAAc,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;CAC1C,CAAA;AACD,uGAAuG;AACvG,MAAM,CAAC,MAAM,2BAA2B,GAA+D;IACrG,yBAAyB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;CAClC,CAAA;AAED,uFAAuF;AACvF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;IACzF,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC;CAChC,CAAA;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAyC,CAAA"}
1
+ {"version":3,"file":"policy-keys.js","sourceRoot":"","sources":["../src/policy-keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * The policy overlay: restriction-type settings that an agent may edit, without hand-editing the config.
3
+ *
4
+ * Only two kinds of field can be overlaid: `authProfiles` (allowed domains, persistState, storageStatePath, and
5
+ * creating or removing a profile) and the `usagePolicy` throttle values. The panel's configuration stays the
6
+ * baseline; the overlay is a small managed file next to the plugin's other data (`$DSH_HOME/data/browser/`) that is
7
+ * merged on top of it, with a revision for optimistic locking and a bounded audit trail.
8
+ *
9
+ * Everything an agent may put in the overlay is validated here, strictly, by the same functions that re-validate the
10
+ * file when it is loaded: a file that does not parse, fails its checksum or holds a value the validators refuse is
11
+ * ignored as a whole (the baseline applies) and reported, never half-applied.
12
+ * @module dsh-browser/policy-overlay
13
+ */
14
+ import type { AuthProfileConfig } from './auth-profiles.ts';
15
+ import type { UsagePolicy } from './usage-policy.ts';
16
+ export declare const MAX_DOMAINS_PER_PROFILE = 50;
17
+ export declare const MAX_PROFILES = 30;
18
+ export declare const MAX_AUDIT_ENTRIES = 50;
19
+ /** Whether a (non-wildcard) name is a TLD or a registry/platform suffix, which can never be a login scope. */
20
+ export declare function isPublicSuffix(name: string): boolean;
21
+ export interface DomainEnv {
22
+ allowPrivateHosts: boolean;
23
+ }
24
+ /**
25
+ * Normalize one allowed-domain entry to its stored form (lower-case punycode, `*.` kept) or throw
26
+ * {@link ActionArgError} saying exactly why it is refused.
27
+ */
28
+ export declare function normalizeAllowedDomain(raw: unknown, env: DomainEnv): string;
29
+ /** The name an entry matches (`*.a.com` and `a.com` scope the same hosts, see hostAllowed). */
30
+ export declare function domainBase(entry: string): string;
31
+ export declare function normalizeAllowedDomains(raw: unknown, env: DomainEnv): string[];
32
+ export declare function checkProfileId(id: unknown): string;
33
+ export declare function checkReason(reason: unknown): string;
34
+ export interface PathEnv {
35
+ /** The only directory an agent-set storageStatePath may live in. */
36
+ authDir: string;
37
+ /** Directories no auth file may be inside of. */
38
+ forbidden: readonly string[];
39
+ /** Set when the auth directory overlaps one of {@link forbidden}: every agent-set path is refused. */
40
+ authDirProblem?: string;
41
+ }
42
+ /** The absolute path of an agent-set auth state file, or an {@link ActionArgError} saying why not. */
43
+ export declare function checkStorageStatePath(raw: unknown, env: PathEnv, takenByOthers?: readonly string[]): string;
44
+ /** Whether the auth directory overlaps the directories that hold downloads or screenshots (then no agent path is trusted). */
45
+ export declare function authDirConflict(authDir: string, forbidden: readonly string[]): string | undefined;
46
+ export declare function checkUsagePatch(raw: unknown): Partial<UsagePolicy>;
47
+ /** What an overlay entry may hold for a profile: only the fields that differ from the baseline (all of them for a new profile). */
48
+ export interface OverlayProfile {
49
+ allowedDomains?: string[];
50
+ persistState?: boolean;
51
+ storageStatePath?: string;
52
+ }
53
+ export type Direction = 'tighten' | 'loosen' | 'none';
54
+ export interface AuditEntry {
55
+ revision: number;
56
+ at: string;
57
+ /** `agent` (an action), `panel` (the settings card's clear button). */
58
+ source: 'agent' | 'panel';
59
+ /** The session that asked, for an agent change. */
60
+ session?: string;
61
+ action: string;
62
+ reason: string;
63
+ direction: Direction;
64
+ /** One line per change. */
65
+ changes: string[];
66
+ }
67
+ export interface PolicyOverlay {
68
+ version: 1;
69
+ revision: number;
70
+ updatedAt: string;
71
+ /** `null` removes a baseline profile. */
72
+ authProfiles: Record<string, OverlayProfile | null>;
73
+ usagePolicy: Partial<UsagePolicy>;
74
+ audit: AuditEntry[];
75
+ }
76
+ export interface EffectivePolicy {
77
+ authProfiles: Record<string, AuthProfileConfig>;
78
+ usagePolicy: UsagePolicy;
79
+ }
80
+ export interface Baseline {
81
+ authProfiles: Record<string, AuthProfileConfig>;
82
+ usagePolicy: UsagePolicy;
83
+ }
84
+ export declare function emptyOverlay(): PolicyOverlay;
85
+ /** The baseline with the overlay merged on top. Never mutates its inputs. */
86
+ export declare function mergeOverlay(baseline: Baseline, overlay: PolicyOverlay): EffectivePolicy;
87
+ export interface ProfileDiff {
88
+ id: string;
89
+ change: 'added' | 'removed' | 'changed';
90
+ domainsAdded: string[];
91
+ domainsRemoved: string[];
92
+ persistState?: {
93
+ before: boolean;
94
+ after: boolean;
95
+ };
96
+ storageStatePath?: {
97
+ before: string;
98
+ after: string;
99
+ };
100
+ }
101
+ export interface PolicyDiff {
102
+ profiles: ProfileDiff[];
103
+ usage: {
104
+ key: string;
105
+ before: number;
106
+ after: number;
107
+ direction: Direction;
108
+ }[];
109
+ direction: Direction;
110
+ /** One human-readable line per change. */
111
+ lines: string[];
112
+ }
113
+ export declare function diffPolicy(before: EffectivePolicy, after: EffectivePolicy): PolicyDiff;
114
+ export interface PolicyStoreOptions {
115
+ /** `$DSH_HOME/data/browser/policy-overlay.json`. */
116
+ file: string;
117
+ authDir: string;
118
+ snapshotDir: string;
119
+ downloadDir: string;
120
+ allowPrivateHosts: boolean;
121
+ baseline: Baseline;
122
+ }
123
+ export type PolicyChange = {
124
+ kind: 'setAuthProfile';
125
+ id: string;
126
+ allowedDomains?: unknown;
127
+ persistState?: unknown;
128
+ storageStatePath?: unknown;
129
+ } | {
130
+ kind: 'removeAuthProfile';
131
+ id: string;
132
+ } | {
133
+ kind: 'setUsagePolicy';
134
+ values: unknown;
135
+ } | {
136
+ kind: 'reset';
137
+ scope: 'all' | 'usagePolicy' | 'authProfile';
138
+ id?: string;
139
+ };
140
+ export interface ChangeMeta {
141
+ source: 'agent' | 'panel';
142
+ session?: string;
143
+ reason: string;
144
+ action: string;
145
+ /** When given, the change only applies if the overlay is still at this revision. */
146
+ expectedRevision?: number;
147
+ }
148
+ export interface PlannedChange {
149
+ before: EffectivePolicy;
150
+ after: EffectivePolicy;
151
+ overlay: PolicyOverlay;
152
+ diff: PolicyDiff;
153
+ }
154
+ export interface AppliedChange extends PlannedChange {
155
+ revision: number;
156
+ audit: AuditEntry;
157
+ }
158
+ export declare class PolicyConflictError extends Error {
159
+ constructor(message: string);
160
+ }
161
+ export declare function checksumOf(overlay: PolicyOverlay): string;
162
+ export declare class PolicyOverlayStore {
163
+ private readonly options;
164
+ private overlay;
165
+ private signature;
166
+ private problem;
167
+ private readonly pathEnv;
168
+ constructor(options: PolicyStoreOptions);
169
+ get file(): string;
170
+ get authDir(): string;
171
+ get allowPrivateHosts(): boolean;
172
+ get baseline(): Baseline;
173
+ /** Why the overlay file was ignored, if it was. */
174
+ get warning(): string | undefined;
175
+ current(): PolicyOverlay;
176
+ effective(): EffectivePolicy;
177
+ private stat;
178
+ /** Re-read the file when it changed on disk. Returns whether the effective policy may have changed. */
179
+ refresh(): boolean;
180
+ private reload;
181
+ /** Strict parse: unknown keys, wrong types, a failed checksum or any value the validators refuse reject the whole file. */
182
+ private parse;
183
+ /** Compute a change without writing anything. Throws {@link ActionArgError} for an invalid change. */
184
+ plan(change: PolicyChange): PlannedChange;
185
+ /** Plan and write a change: re-reads the file first, checks the revision, writes atomically (0600) and appends the audit entry. */
186
+ apply(change: PolicyChange, meta: ChangeMeta): AppliedChange;
187
+ /** Move an unreadable file aside (kept for inspection) so a fresh overlay can start. */
188
+ private quarantine;
189
+ }