dsh-web-search-pro 0.2.1 → 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.
Files changed (264) hide show
  1. package/CHANGELOG.md +227 -0
  2. package/README.en.md +117 -0
  3. package/README.md +72 -578
  4. package/assets/skills/dsh-web-search-pro/SKILL.md +13 -12
  5. package/assets/skills/dsh-web-search-pro/references/config.md +36 -0
  6. package/assets/skills/dsh-web-search-pro/references/sources.md +13 -7
  7. package/assets/skills/dsh-web-search-pro/references/troubleshooting.md +3 -1
  8. package/catalog/sources.v1.json +16 -14
  9. package/lib/actions/approval.js +50 -1
  10. package/lib/actions/approval.js.map +1 -1
  11. package/lib/actions/config.js +274 -0
  12. package/lib/actions/config.js.map +1 -0
  13. package/lib/actions/errors.js +8 -1
  14. package/lib/actions/errors.js.map +1 -1
  15. package/lib/actions/format.js +10 -0
  16. package/lib/actions/format.js.map +1 -1
  17. package/lib/actions/index-view.js +2 -2
  18. package/lib/actions/index-view.js.map +1 -1
  19. package/lib/actions/read.js +7 -3
  20. package/lib/actions/read.js.map +1 -1
  21. package/lib/actions/registry.js +3 -1
  22. package/lib/actions/registry.js.map +1 -1
  23. package/lib/actions/run.js +2 -2
  24. package/lib/actions/run.js.map +1 -1
  25. package/lib/actions/schema.js +18 -0
  26. package/lib/actions/schema.js.map +1 -1
  27. package/lib/actions/search.js +7 -2
  28. package/lib/actions/search.js.map +1 -1
  29. package/lib/actions/sources.js +76 -18
  30. package/lib/actions/sources.js.map +1 -1
  31. package/lib/actions/types.js +19 -1
  32. package/lib/actions/types.js.map +1 -1
  33. package/lib/browser-access.js +25 -0
  34. package/lib/browser-access.js.map +1 -1
  35. package/lib/catalog/recommend.js +11 -3
  36. package/lib/catalog/recommend.js.map +1 -1
  37. package/lib/catalog/schema.js +3 -1
  38. package/lib/catalog/schema.js.map +1 -1
  39. package/lib/cli/builtin-specs.js +57 -22
  40. package/lib/cli/builtin-specs.js.map +1 -1
  41. package/lib/cli/chain.js +13 -12
  42. package/lib/cli/chain.js.map +1 -1
  43. package/lib/cli/chains-spec.js +31 -11
  44. package/lib/cli/chains-spec.js.map +1 -1
  45. package/lib/cli/engine.js +19 -3
  46. package/lib/cli/engine.js.map +1 -1
  47. package/lib/cli/opencli-sites.js +83 -0
  48. package/lib/cli/opencli-sites.js.map +1 -0
  49. package/lib/cli/opencli.js +65 -17
  50. package/lib/cli/opencli.js.map +1 -1
  51. package/lib/cli/probe.js +1 -1
  52. package/lib/cli/probe.js.map +1 -1
  53. package/lib/cli/runner.js +217 -27
  54. package/lib/cli/runner.js.map +1 -1
  55. package/lib/cli/spec.js +100 -20
  56. package/lib/cli/spec.js.map +1 -1
  57. package/lib/cli/time-text.js +79 -0
  58. package/lib/cli/time-text.js.map +1 -0
  59. package/lib/cli/trial.js +57 -0
  60. package/lib/cli/trial.js.map +1 -0
  61. package/lib/client/SettingsCard.js +14 -32
  62. package/lib/client/SettingsCard.js.map +1 -1
  63. package/lib/client/agent-mark.js +27 -0
  64. package/lib/client/agent-mark.js.map +1 -0
  65. package/lib/client/card-frame.js +118 -0
  66. package/lib/client/card-frame.js.map +1 -0
  67. package/lib/client/cli-form.js +257 -0
  68. package/lib/client/cli-form.js.map +1 -0
  69. package/lib/client/field-docs.js +130 -0
  70. package/lib/client/field-docs.js.map +1 -0
  71. package/lib/client/field-keys.js +81 -0
  72. package/lib/client/field-keys.js.map +1 -0
  73. package/lib/client/field-rows.js +71 -0
  74. package/lib/client/field-rows.js.map +1 -0
  75. package/lib/client/fill.js +3 -0
  76. package/lib/client/fill.js.map +1 -0
  77. package/lib/client/form-specs.js +13 -1
  78. package/lib/client/form-specs.js.map +1 -1
  79. package/lib/client/form.js +282 -24
  80. package/lib/client/form.js.map +1 -1
  81. package/lib/client/group-advanced.js +23 -0
  82. package/lib/client/group-advanced.js.map +1 -0
  83. package/lib/client/group-agent.js +28 -0
  84. package/lib/client/group-agent.js.map +1 -0
  85. package/lib/client/group-cli.js +136 -0
  86. package/lib/client/group-cli.js.map +1 -0
  87. package/lib/client/group-common.js +29 -0
  88. package/lib/client/group-common.js.map +1 -0
  89. package/lib/client/group-judge.js +67 -0
  90. package/lib/client/group-judge.js.map +1 -0
  91. package/lib/client/group-order.js +201 -0
  92. package/lib/client/group-order.js.map +1 -0
  93. package/lib/client/group-runtime.js +33 -0
  94. package/lib/client/group-runtime.js.map +1 -0
  95. package/lib/client/group-sources.js +83 -0
  96. package/lib/client/group-sources.js.map +1 -0
  97. package/lib/client/groups-basic.js +36 -0
  98. package/lib/client/groups-basic.js.map +1 -0
  99. package/lib/client/index.js.map +1 -1
  100. package/lib/client/json-list.js +50 -0
  101. package/lib/client/json-list.js.map +1 -0
  102. package/lib/client/locales.js +666 -219
  103. package/lib/client/locales.js.map +1 -1
  104. package/lib/client/order.js +192 -0
  105. package/lib/client/order.js.map +1 -0
  106. package/lib/client/overlay-ops.js +46 -0
  107. package/lib/client/overlay-ops.js.map +1 -0
  108. package/lib/client/sources-table.js +1 -0
  109. package/lib/client/sources-table.js.map +1 -1
  110. package/lib/client/styles.js +74 -47
  111. package/lib/client/styles.js.map +1 -1
  112. package/lib/client/text-view.js +98 -0
  113. package/lib/client/text-view.js.map +1 -0
  114. package/lib/client/ui-kit.js +120 -0
  115. package/lib/client/ui-kit.js.map +1 -0
  116. package/lib/client/validators.js +8 -1
  117. package/lib/client/validators.js.map +1 -1
  118. package/lib/client.js +7313 -1571
  119. package/lib/client.js.map +1 -1
  120. package/lib/config-fillers.js +53 -0
  121. package/lib/config-fillers.js.map +1 -0
  122. package/lib/config-groups.js +49 -0
  123. package/lib/config-groups.js.map +1 -0
  124. package/lib/config.js +84 -108
  125. package/lib/config.js.map +1 -1
  126. package/lib/default-chain.js +66 -0
  127. package/lib/default-chain.js.map +1 -0
  128. package/lib/deps.js +1 -1
  129. package/lib/deps.js.map +1 -1
  130. package/lib/engines.js +3 -3
  131. package/lib/engines.js.map +1 -1
  132. package/lib/fetch.js +23 -4
  133. package/lib/fetch.js.map +1 -1
  134. package/lib/fiber-config.js +5 -0
  135. package/lib/fiber-config.js.map +1 -0
  136. package/lib/index.js +36 -7
  137. package/lib/index.js.map +1 -1
  138. package/lib/overlay-types.js +88 -0
  139. package/lib/overlay-types.js.map +1 -0
  140. package/lib/overlay.js +683 -0
  141. package/lib/overlay.js.map +1 -0
  142. package/lib/pipeline/candidates.js +27 -1
  143. package/lib/pipeline/candidates.js.map +1 -1
  144. package/lib/pipeline/compile.js +63 -0
  145. package/lib/pipeline/compile.js.map +1 -1
  146. package/lib/pipeline/confidence.js +64 -0
  147. package/lib/pipeline/confidence.js.map +1 -0
  148. package/lib/pipeline/fusion.js +50 -3
  149. package/lib/pipeline/fusion.js.map +1 -1
  150. package/lib/pipeline/plan.js +2 -2
  151. package/lib/pipeline/plan.js.map +1 -1
  152. package/lib/pipeline/render.js +20 -2
  153. package/lib/pipeline/render.js.map +1 -1
  154. package/lib/pipeline/run.js +17 -5
  155. package/lib/pipeline/run.js.map +1 -1
  156. package/lib/pipeline/sources-spec.js +19 -3
  157. package/lib/pipeline/sources-spec.js.map +1 -1
  158. package/lib/providers/builtin.js +3 -0
  159. package/lib/providers/builtin.js.map +1 -1
  160. package/lib/providers/deepseek.js +348 -0
  161. package/lib/providers/deepseek.js.map +1 -0
  162. package/lib/providers/http.js.map +1 -1
  163. package/lib/providers/keyed-meta.js +7 -0
  164. package/lib/providers/keyed-meta.js.map +1 -1
  165. package/lib/providers/platforms.js +18 -17
  166. package/lib/providers/platforms.js.map +1 -1
  167. package/lib/providers/registry.js.map +1 -1
  168. package/lib/restart.js +47 -0
  169. package/lib/restart.js.map +1 -0
  170. package/lib/router.js +145 -26
  171. package/lib/router.js.map +1 -1
  172. package/lib/rpc-types.js +15 -0
  173. package/lib/rpc-types.js.map +1 -0
  174. package/lib/rpc.js +118 -0
  175. package/lib/rpc.js.map +1 -0
  176. package/lib/tools.js +10 -4
  177. package/lib/tools.js.map +1 -1
  178. package/lib/types/actions/approval.d.ts +11 -0
  179. package/lib/types/actions/config.d.ts +54 -0
  180. package/lib/types/actions/format.d.ts +9 -2
  181. package/lib/types/actions/run.d.ts +1 -0
  182. package/lib/types/actions/schema.d.ts +7 -1
  183. package/lib/types/actions/sources.d.ts +29 -3
  184. package/lib/types/actions/types.d.ts +28 -2
  185. package/lib/types/browser-access.d.ts +17 -0
  186. package/lib/types/catalog/recommend.d.ts +4 -0
  187. package/lib/types/catalog/schema.d.ts +2 -0
  188. package/lib/types/cli/builtin-specs.d.ts +11 -3
  189. package/lib/types/cli/chains-spec.d.ts +12 -3
  190. package/lib/types/cli/engine.d.ts +10 -3
  191. package/lib/types/cli/opencli-sites.d.ts +24 -0
  192. package/lib/types/cli/opencli.d.ts +42 -3
  193. package/lib/types/cli/runner.d.ts +47 -8
  194. package/lib/types/cli/spec.d.ts +101 -8
  195. package/lib/types/cli/time-text.d.ts +12 -0
  196. package/lib/types/cli/trial.d.ts +19 -0
  197. package/lib/types/client/SettingsCard.d.ts +17 -1
  198. package/lib/types/client/agent-mark.d.ts +22 -0
  199. package/lib/types/client/card-frame.d.ts +35 -0
  200. package/lib/types/client/cli-form.d.ts +97 -0
  201. package/lib/types/client/field-docs.d.ts +15 -0
  202. package/lib/types/client/field-keys.d.ts +41 -0
  203. package/lib/types/client/field-rows.d.ts +70 -0
  204. package/lib/types/client/fill.d.ts +2 -0
  205. package/lib/types/client/form-specs.d.ts +12 -3
  206. package/lib/types/client/form.d.ts +79 -1
  207. package/lib/types/client/group-advanced.d.ts +9 -0
  208. package/lib/types/client/group-agent.d.ts +20 -0
  209. package/lib/types/client/group-cli.d.ts +52 -0
  210. package/lib/types/client/group-common.d.ts +12 -0
  211. package/lib/types/client/group-judge.d.ts +17 -0
  212. package/lib/types/client/group-order.d.ts +26 -0
  213. package/lib/types/client/group-runtime.d.ts +15 -0
  214. package/lib/types/client/group-sources.d.ts +46 -0
  215. package/lib/types/client/groups-basic.d.ts +18 -0
  216. package/lib/types/client/index.d.ts +8 -0
  217. package/lib/types/client/json-list.d.ts +21 -0
  218. package/lib/types/client/locales.d.ts +1079 -200
  219. package/lib/types/client/order.d.ts +102 -0
  220. package/lib/types/client/overlay-ops.d.ts +37 -0
  221. package/lib/types/client/styles.d.ts +56 -41
  222. package/lib/types/client/text-view.d.ts +22 -0
  223. package/lib/types/client/ui-kit.d.ts +200 -0
  224. package/lib/types/config-fillers.d.ts +9 -0
  225. package/lib/types/config-groups.d.ts +23 -0
  226. package/lib/types/config.d.ts +263 -225
  227. package/lib/types/default-chain.d.ts +63 -0
  228. package/lib/types/engines.d.ts +29 -1
  229. package/lib/types/fetch.d.ts +12 -3
  230. package/lib/types/fiber-config.d.ts +18 -0
  231. package/lib/types/index.d.ts +164 -150
  232. package/lib/types/overlay-types.d.ts +98 -0
  233. package/lib/types/overlay.d.ts +141 -0
  234. package/lib/types/pipeline/candidates.d.ts +17 -0
  235. package/lib/types/pipeline/compile.d.ts +11 -0
  236. package/lib/types/pipeline/confidence.d.ts +35 -0
  237. package/lib/types/pipeline/fusion.d.ts +23 -1
  238. package/lib/types/pipeline/render.d.ts +16 -0
  239. package/lib/types/pipeline/run.d.ts +2 -1
  240. package/lib/types/pipeline/sources-spec.d.ts +5 -2
  241. package/lib/types/pipeline/types.d.ts +37 -0
  242. package/lib/types/providers/deepseek.d.ts +130 -0
  243. package/lib/types/providers/http.d.ts +2 -1
  244. package/lib/types/providers/keyed-meta.d.ts +5 -0
  245. package/lib/types/providers/registry.d.ts +7 -0
  246. package/lib/types/restart.d.ts +52 -0
  247. package/lib/types/router.d.ts +57 -10
  248. package/lib/types/rpc-types.d.ts +79 -0
  249. package/lib/types/rpc.d.ts +74 -0
  250. package/lib/types/tools.d.ts +6 -0
  251. package/lib/types/util.d.ts +10 -0
  252. package/lib/util.js +10 -1
  253. package/lib/util.js.map +1 -1
  254. package/package.json +53 -44
  255. package/scripts/check-client-bundle.mjs +1 -1
  256. package/scripts/check-docs-links.mjs +107 -0
  257. package/scripts/cli-login-check.mjs +214 -0
  258. package/LOGIN.md +0 -161
  259. package/lib/client/RubricEditor.js +0 -47
  260. package/lib/client/RubricEditor.js.map +0 -1
  261. package/lib/client/fields.js +0 -31
  262. package/lib/client/fields.js.map +0 -1
  263. package/lib/types/client/RubricEditor.d.ts +0 -6
  264. package/lib/types/client/fields.d.ts +0 -65
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsCard.js","sourceRoot":"","sources":["../../src/client/SettingsCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsCard.js","sourceRoot":"","sources":["../../src/client/SettingsCard.tsx"],"names":[],"mappings":";AAkBA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAsB,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAmB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAiB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAoB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAmB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAqB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAqB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAoB,CAAA;AAEzF,MAAM,UAAU,YAAY,CAAC,KAAwB;IACnD,yGAAyG;IACzG,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,4BAAG,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,GAAI,CAAA;IAClE,OAAO,MAAC,KAAK,IAAC,IAAI,EAAE,KAAK,aACvB,KAAC,UAAU,IAAC,IAAI,EAAE,KAAK,GAAI,EAC3B,KAAC,WAAW,IAAC,IAAI,EAAE,KAAK,GAAI,EAC5B,KAAC,UAAU,IAAC,IAAI,EAAE,KAAK,GAAI,EAC3B,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,GAAI,EAC7B,KAAC,QAAQ,IAAC,IAAI,EAAE,KAAK,GAAI,EACzB,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,GAAI,EAC7B,KAAC,UAAU,IAAC,IAAI,EAAE,KAAK,GAAI,EAC3B,KAAC,UAAU,IAAC,IAAI,EAAE,KAAK,GAAI,EAC3B,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,GAAI,EAC7B,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,GAAI,EAC7B,KAAC,YAAY,IAAC,IAAI,EAAE,KAAK,GAAI,EAC7B,KAAC,UAAU,IAAC,IAAI,EAAE,KAAK,GAAI,EAC3B,KAAC,aAAa,IAAC,IAAI,EAAE,KAAK,GAAI,EAC9B,KAAC,OAAO,IAAC,IAAI,EAAE,KAAK,GAAI,IAClB,CAAA;AACV,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { fill } from "./fill.js";
3
+ import { formatTime } from "./overlay-ops.js";
4
+ import { styles as css } from "./styles.js";
5
+ import { AgentTag } from "./ui-kit.js";
6
+ /** The overlay item of a key in the card's state, or undefined. */
7
+ export function useOverlayItem(card, key) {
8
+ return card.useWebSearchPro(snapshot => snapshot.server.overlay.view?.items.find(item => item.key === key));
9
+ }
10
+ /** One sentence for the tooltip: the value the agent set, the one in the configuration, the reason, who and when. */
11
+ export function agentTip(t, item) {
12
+ const who = item.actor === 'user' ? t('agentActorUser') : t('agentActorAgent');
13
+ return fill(t('agentTip'), { value: item.summary, baseline: item.baseline, reason: item.reason ?? t('agentNoReason'), at: item.at ? formatTime(item.at) : '', who });
14
+ }
15
+ /**
16
+ * `compact` shows the tag only (list rows have no room for buttons; the "Agent changes" group holds them); otherwise the tag is followed
17
+ * by "Adopt into configuration" and "Revoke".
18
+ */
19
+ export function AgentMark({ card, itemKey, compact }) {
20
+ const { t } = card;
21
+ const item = useOverlayItem(card, itemKey);
22
+ const busy = card.useWebSearchPro(snapshot => !snapshot.writable || snapshot.saving || snapshot.server.overlay.busy);
23
+ if (!item)
24
+ return null;
25
+ return _jsxs("span", { className: "wsp-agent", "data-wsp-agent": itemKey, children: [_jsx(AgentTag, { label: t('agentBadge'), tip: agentTip(t, item) }), compact ? null : _jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: css.link, disabled: busy, onClick: () => card.adoptOverlay(itemKey), "data-wsp-agent-adopt": itemKey, children: t('agentAdopt') }), _jsx("button", { type: "button", className: css.link, disabled: busy, onClick: () => card.revokeOverlay([itemKey]), "data-wsp-agent-revoke": itemKey, children: t('agentRevoke') })] })] });
26
+ }
27
+ //# sourceMappingURL=agent-mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-mark.js","sourceRoot":"","sources":["../../src/client/agent-mark.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAc,CAAA;AAEvC,mEAAmE;AACnE,MAAM,UAAU,cAAc,CAAC,IAAU,EAAE,GAAW;IACpD,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;AAC7G,CAAC;AAED,qHAAqH;AACrH,MAAM,UAAU,QAAQ,CAAC,CAAY,EAAE,IAAiB;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAA;IAC9E,OAAO,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;AACtK,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAsD;IACtG,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAA;IAClB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpH,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,OAAO,gBAAM,SAAS,EAAC,WAAW,oBAAiB,OAAO,aACxD,KAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAI,EAC3D,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,8BAChB,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,0BAAwB,OAAO,YAAG,CAAC,CAAC,YAAY,CAAC,GAAU,EAC/J,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,2BAAyB,OAAO,YAAG,CAAC,CAAC,aAAa,CAAC,GAAU,IACnK,IACE,CAAA;AACT,CAAC"}
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The frame around the groups: the status summary on top (with the warnings dialog) and the save bar at the bottom.
4
+ *
5
+ * The Host's `SettingsForm` offers one save button below the controls. This card needs the bar to stay in view while a long
6
+ * page scrolls, to say how many edits are waiting, and to offer "Discard", so the frame is built here; the behaviors a
7
+ * settings form has are kept: it says so when the settings are not served or read-only, and it drops the staged edits when
8
+ * the page is left.
9
+ * @module web-search-pro/client/card-frame
10
+ */
11
+ import { useEffect, useRef, useState } from 'react';
12
+ import { COMMON_SOURCE_IDS } from "../providers/keyed-meta.js";
13
+ import { effectiveChain } from "../default-chain.js";
14
+ import { fill, parseList } from "./field-rows.js";
15
+ import { labelKey, SOURCE_DEFS } from "./field-keys.js";
16
+ import { styles as css } from "./styles.js";
17
+ import { Badge, Btn, Dialog } from "./ui-kit.js";
18
+ /** Sources whose key is a credential the card can see (searxng and the like have none). */
19
+ const KEYED_DEFS = SOURCE_DEFS.filter(def => def.credential);
20
+ /** What the default chain rule reads from the staged settings: the list, the preferences, the ready common sources, the policy. */
21
+ export function chainInputOf(snapshot) {
22
+ const text = (field) => snapshot.fields[field]?.text ?? '';
23
+ const commonReady = SOURCE_DEFS.filter(def => def.common && def.credential && COMMON_SOURCE_IDS.includes(def.id) && snapshot.credentials[def.credential]?.configured).map(def => def.id);
24
+ return { engines: parseList(text('engines')), priority: parseList(text('sources.priority')), disabled: parseList(text('sources.disabled')), commonReady, anonymousOnly: text('evidence.sourcePolicy') === 'anonymous-only' };
25
+ }
26
+ /** The chain a plain search would try, from the staged settings; undefined when the draft leaves nothing to try. */
27
+ export function chainOf(snapshot) {
28
+ try {
29
+ return effectiveChain(chainInputOf(snapshot));
30
+ }
31
+ catch {
32
+ return undefined;
33
+ }
34
+ }
35
+ /**
36
+ * The chain a plain search tries once the agent's changes (engines, priority, disabled of the overlay) are on top of the staged settings,
37
+ * by the same rule; undefined while the agent changed none of the three, an empty list when it would leave nothing to try.
38
+ */
39
+ export function agentChainOf(snapshot) {
40
+ const items = snapshot.server.overlay.view?.items ?? [];
41
+ const listOf = (key) => { const value = items.find(item => item.key === key)?.value; return Array.isArray(value) ? value.filter((id) => typeof id === 'string') : undefined; };
42
+ const engines = listOf('engines');
43
+ const priority = listOf('sources.priority');
44
+ const disabled = listOf('sources.disabled');
45
+ if (!engines && !priority && !disabled)
46
+ return undefined;
47
+ const base = chainInputOf(snapshot);
48
+ try {
49
+ return effectiveChain({ ...base, engines: engines ?? base.engines, priority: priority ?? base.priority, disabled: disabled ?? base.disabled });
50
+ }
51
+ catch {
52
+ return [];
53
+ }
54
+ }
55
+ /** Everything the warnings badge counts: what the validation says about a field, and the rubric problems. */
56
+ export function warningsOf(snapshot, t) {
57
+ const out = [];
58
+ for (const [field, state] of Object.entries(snapshot.fields)) {
59
+ if (field.startsWith('evidence.rubrics.'))
60
+ continue;
61
+ const name = field.startsWith('keyedSources.') || field.startsWith('sources.budget.') ? field : t(labelKey(field));
62
+ if (state.message)
63
+ out.push(name + ': ' + state.message);
64
+ if (state.warning)
65
+ out.push(name + ': ' + state.warning);
66
+ }
67
+ for (const rubric of snapshot.rubrics)
68
+ for (const problem of rubric.problems)
69
+ out.push(rubric.id + ': ' + problem);
70
+ for (const entry of snapshot.server.status?.pendingRestart ?? [])
71
+ out.push(entry.field + ': ' + fill(t('pendingRestartLine'), { running: entry.running || t('pendingEmpty'), configured: entry.configured || t('pendingEmpty') }));
72
+ if (snapshot.unknownRubrics.length)
73
+ out.push(t('rubricUnknown') + ' ' + snapshot.unknownRubrics.join(', '));
74
+ return out;
75
+ }
76
+ const JUDGE_TONE = { off: 'neutral', shadow: 'info', control: 'warning', hybrid: 'warning' };
77
+ export function SummaryBar({ card }) {
78
+ const { t } = card;
79
+ const [open, setOpen] = useState(false);
80
+ const view = card.useWebSearchPro(snapshot => ({
81
+ chain: chainOf(snapshot)?.join(' › ') ?? '',
82
+ keyed: KEYED_DEFS.filter(def => snapshot.credentials[def.credential]?.configured).length,
83
+ common: SOURCE_DEFS.filter(def => def.common).map(def => ({ id: def.id, name: def.name, ready: !!snapshot.credentials[def.credential]?.configured })),
84
+ route: snapshot.fields.registerProvider.text === 'true', surface: snapshot.fields.toolSurface.text || 'indexed',
85
+ judge: snapshot.fields['evidence.judge.mode'].text || 'off',
86
+ pending: snapshot.server.status?.pendingRestart ?? [],
87
+ agent: snapshot.server.overlay.view?.items.length ?? 0,
88
+ warnings: warningsOf(snapshot, t),
89
+ }));
90
+ const chain = view.chain.split(' › ');
91
+ const shown = chain.length > 5 ? [...chain.slice(0, 5), '…'] : chain;
92
+ return _jsxs("div", { className: css.summaryBar, role: "group", "aria-label": t('summaryTitle'), "data-wsp-summary": true, children: [_jsx("strong", { children: t('summaryTitle') }), _jsxs(Badge, { tone: "neutral", children: [t('summaryChain'), " ", view.chain ? shown.join(' › ') : t('summaryChainEmpty')] }), _jsx(Badge, { tone: view.keyed ? 'success' : 'neutral', children: fill(t('summaryKeys'), { n: view.keyed, m: KEYED_DEFS.length }) }), view.common.map(source => _jsxs(Badge, { tone: source.ready ? 'success' : 'warning', children: [source.name, " \u00B7 ", t('commonBadge'), " \u00B7 ", source.ready ? t('summaryReady') : t('summaryNoKey')] }, source.id)), _jsx(Badge, { tone: view.route ? 'info' : 'neutral', children: view.route ? t('summaryRouteOn') : t('summaryRouteOff') }), _jsxs(Badge, { tone: JUDGE_TONE[view.judge] ?? 'neutral', children: [t('summaryJudge'), " ", view.judge] }), _jsxs(Badge, { tone: "neutral", children: [t('summarySurface'), " ", view.surface] }), view.agent ? _jsxs("button", { type: "button", className: css.link, onClick: () => { const node = document.querySelector('[data-wsp-group="agent"]'); if (node) {
93
+ node.open = true;
94
+ node.scrollIntoView?.({ block: 'start', behavior: 'smooth' });
95
+ } }, "data-wsp-agent-summary": view.agent, children: [_jsx(Badge, { tone: "warning", children: fill(t('summaryAgent'), { n: view.agent }) }), " \u00B7 ", t('summaryAgentOpen')] }) : null, view.pending.length ? _jsx("span", { "data-wsp-pending-restart": view.pending.map(entry => entry.field).join(','), title: view.pending.map(entry => entry.field + ': ' + fill(t('pendingRestartLine'), { running: entry.running || t('pendingEmpty'), configured: entry.configured || t('pendingEmpty') })).join('\n'), children: _jsxs(Badge, { tone: "warning", children: [fill(t('summaryPendingRestart'), { n: view.pending.length }), ": ", view.pending.map(entry => entry.field).join(', ')] }) }) : null, _jsxs("button", { type: "button", className: css.link, onClick: () => setOpen(true), "data-wsp-warnings-count": view.warnings.length, children: [view.warnings.length ? _jsx(Badge, { tone: "warning", children: fill(t('summaryWarnings'), { n: view.warnings.length }) }) : _jsx("span", { className: css.muted, children: t('summaryNoWarnings') }), " \u00B7 ", t('summaryDetails')] }), _jsx(Dialog, { open: open, title: t('warningsTitle'), closeLabel: t('close'), onClose: () => setOpen(false), footer: _jsx(Btn, { onClick: () => setOpen(false), primary: true, children: t('close') }), children: view.warnings.length === 0 ? _jsx("p", { className: css.rowHint, children: t('warningsNone') }) : _jsx("ul", { "data-wsp-warning-list": true, children: view.warnings.map((warning, index) => _jsx("li", { children: warning }, index)) }) })] });
96
+ }
97
+ export function SaveBar({ card }) {
98
+ const { t } = card;
99
+ const state = card.useWebSearchPro(snapshot => snapshot);
100
+ const count = state.changes;
101
+ const blocked = !state.dirty || state.invalid || state.saving || !state.writable;
102
+ // The bar floats at the bottom of the window only while there is something to act on (unsaved edits, a save running or failed).
103
+ // Otherwise it sits in the page flow after the last group, so it cannot cover a group heading the user is about to click.
104
+ const floating = state.dirty || state.saving || state.failed;
105
+ return _jsxs("div", { className: css.savebar, role: "region", "aria-label": t('save'), "data-wsp-savebar": true, "data-wsp-floating": floating ? '' : undefined, children: [_jsxs("div", { className: css.saveText, children: [_jsx("span", { "data-wsp-unsaved": count, children: state.invalid ? t('savebarInvalid') : count ? fill(t('savebarDirty'), { n: count }) : t('savebarClean') }), state.restartTouched.length ? _jsx("span", { className: "wsp-bad-soft", role: "note", "data-wsp-restart-note": state.restartTouched.join(','), children: fill(t('savebarRestart'), { fields: state.restartTouched.join(', ') }) }) : null, state.failed ? _jsx("span", { className: "wsp-bad", role: "status", children: t('saveFailed') }) : null] }), _jsxs("div", { className: css.actions, children: [_jsx(Btn, { onClick: card.discard, disabled: !state.dirty || state.saving, data: "discard", children: t('discardChanges') }), _jsx(Btn, { primary: true, onClick: card.save, disabled: blocked, data: "save", children: state.saving ? t('saving') : t('save') })] })] });
106
+ }
107
+ /** The page frame: nothing but a notice while the settings are not served; the staged edits are dropped when the page is left. */
108
+ export function Frame({ card, children }) {
109
+ const { t } = card;
110
+ const state = card.useWebSearchPro(snapshot => ({ available: snapshot.available, writable: snapshot.writable }));
111
+ const discard = useRef(card.discard);
112
+ discard.current = card.discard;
113
+ useEffect(() => () => { discard.current(); }, []);
114
+ if (!state.available)
115
+ return _jsx("p", { className: css.notice, role: "status", children: t('unavailable') });
116
+ return _jsxs("div", { className: css.root, "data-wsp-root": true, "data-web-search-pro-settings": true, children: [!state.writable ? _jsx("p", { className: css.notice, role: "status", children: t('readOnly') }) : null, children] });
117
+ }
118
+ //# sourceMappingURL=card-frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-frame.js","sourceRoot":"","sources":["../../src/client/card-frame.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,257 @@
1
+ /**
2
+ * The form side of the custom CLI editor: a `cliAdapters` entry (the JSON spec) as the fields of the edit dialog and back. Two
3
+ * views of one object: the form writes the keys it has controls for onto a copy of the spec and leaves every other key as it
4
+ * was (searches, read, env, login, errorCodes, a field mapping that is not a plain path), and the JSON box edits the whole spec.
5
+ * Validation is `validateCliAdapterSpec`, the function the server registers specs with; its messages are sorted to the field they
6
+ * are about. `allowedSubcommands` is derived from the command words of the argv templates, never typed.
7
+ * Pure: no Host, no DOM.
8
+ * @module web-search-pro/client/cli-form
9
+ */
10
+ import { commandWords, DEFAULT_CUSTOM_CONFIDENCE, OUTPUT_FORMATS, validateCliAdapterSpec, WHOLE_OUTPUT_DEFAULT_CHARS } from "../cli/spec.js";
11
+ const isRecord = (value) => value !== null && typeof value === 'object' && !Array.isArray(value);
12
+ const strings = (value) => (Array.isArray(value) ? value.filter((entry) => typeof entry === 'string') : []);
13
+ /** The result fields the form maps, in display order; each takes a dotted path into one item of the tool's output. */
14
+ export const FIELD_KEYS = ['url', 'title', 'snippet', 'publishedAt'];
15
+ /** How a plain text tool's lines become items (`whole` is a switch of its own). */
16
+ export const LINE_MODES = ['url-lines', 'tsv'];
17
+ /** The spec a new entry starts from: a JSON-printing tool mapped url / title / snippet. The form fills the command in. */
18
+ export function newSpec() {
19
+ return {
20
+ bins: [''], packageNote: '', platforms: [], engine: true,
21
+ probe: { versionArgs: ['--version'], helpArgs: ['--help'], mustContain: [] },
22
+ allowedSubcommands: [],
23
+ search: { argv: ['{query}'], output: { format: 'json', fields: { url: 'url', title: 'title', snippet: 'snippet' } } },
24
+ env: {}, needsLogin: false, timeoutMs: 15_000, maxOutputBytes: 1_048_576,
25
+ };
26
+ }
27
+ /** The example of the dialog: `echo`, whose whole output is the result (no field mapping), a way to see the pieces work without a real tool. */
28
+ export function echoSpec() {
29
+ return {
30
+ bins: ['echo'], packageNote: 'echo (part of the system)', platforms: [], engine: true, confidence: 0.5,
31
+ probe: { versionArgs: ['--version'], helpArgs: ['--help'], mustContain: [] },
32
+ allowedSubcommands: [],
33
+ search: { argv: ['{query}'], output: { format: 'text', lines: { mode: 'whole' } } },
34
+ env: {}, needsLogin: false, timeoutMs: 5_000, maxOutputBytes: 65_536,
35
+ };
36
+ }
37
+ const pathText = (value) => (typeof value === 'string' ? value : '');
38
+ /** The form fields of a spec (plain or not): everything the dialog shows, as text. */
39
+ export function specToForm(id, raw) {
40
+ const spec = isRecord(raw) ? raw : {};
41
+ const search = isRecord(spec.search) ? spec.search : {};
42
+ const output = isRecord(search.output) ? search.output : {};
43
+ const lines = isRecord(output.lines) ? output.lines : undefined;
44
+ const fields = isRecord(output.fields) ? output.fields : {};
45
+ const probe = isRecord(spec.probe) ? spec.probe : {};
46
+ const complex = FIELD_KEYS.filter(key => fields[key] !== undefined && typeof fields[key] !== 'string');
47
+ const numberText = (value) => (typeof value === 'number' || typeof value === 'string' ? String(value) : '');
48
+ return {
49
+ id,
50
+ bin: strings(spec.bins)[0] ?? '',
51
+ argv: strings(search.argv),
52
+ format: OUTPUT_FORMATS.includes(output.format) ? output.format : 'json',
53
+ whole: lines?.mode === 'whole',
54
+ wholeMax: lines?.mode === 'whole' && lines.maxChars !== undefined ? numberText(lines.maxChars) : '',
55
+ itemsPath: pathText(output.itemsPath),
56
+ linesMode: lines?.mode === 'tsv' ? 'tsv' : 'url-lines',
57
+ columns: lines?.mode === 'tsv' ? strings(lines.columns).join(', ') : '',
58
+ fields: Object.fromEntries(FIELD_KEYS.map(key => [key, pathText(fields[key])])),
59
+ complex,
60
+ timeoutMs: numberText(spec.timeoutMs),
61
+ maxOutputBytes: numberText(spec.maxOutputBytes),
62
+ engine: spec.engine === true,
63
+ platforms: strings(spec.platforms),
64
+ confidence: spec.confidence === undefined ? '' : numberText(spec.confidence),
65
+ packageNote: typeof spec.packageNote === 'string' ? spec.packageNote : '',
66
+ helpArgs: strings(probe.helpArgs).join(' '),
67
+ mustContain: strings(probe.mustContain),
68
+ };
69
+ }
70
+ /** A number typed in a box: the number when it is one, else the text itself, so the validation says what is wrong with it. */
71
+ const numberOrText = (text) => {
72
+ const trimmed = text.trim();
73
+ return trimmed !== '' && Number.isFinite(Number(trimmed)) ? Number(trimmed) : trimmed;
74
+ };
75
+ /** The command words the argv templates of a spec use, in order, without repeats: what `allowedSubcommands` must list. */
76
+ export function derivedSubcommands(spec) {
77
+ const argvs = [];
78
+ const probe = isRecord(spec.probe) ? spec.probe : {};
79
+ argvs.push(strings(probe.versionArgs), strings(probe.helpArgs));
80
+ const searchArgv = (value) => { if (isRecord(value))
81
+ argvs.push(strings(value.argv)); };
82
+ searchArgv(spec.search);
83
+ searchArgv(spec.read);
84
+ if (isRecord(spec.searches))
85
+ for (const entry of Object.values(spec.searches))
86
+ searchArgv(entry);
87
+ return [...new Set(argvs.flatMap(argv => commandWords(argv)))];
88
+ }
89
+ /**
90
+ * The spec the form describes, built on `base` (the entry as it was: every key the form has no control for is kept). Nothing is
91
+ * validated here; a value that is not what its box wants is written as typed so `validateCliAdapterSpec` names it.
92
+ */
93
+ export function formToSpec(form, base = {}) {
94
+ const spec = structuredClone(base);
95
+ delete spec.id;
96
+ const bins = strings(spec.bins);
97
+ spec.bins = [form.bin.trim(), ...bins.slice(1)];
98
+ spec.packageNote = form.packageNote.trim() || (form.bin.trim() ? form.bin.trim() + ' (installed by you)' : '');
99
+ spec.platforms = [...form.platforms];
100
+ if (form.engine)
101
+ spec.engine = true;
102
+ else
103
+ delete spec.engine;
104
+ if (form.confidence.trim() === '')
105
+ delete spec.confidence;
106
+ else
107
+ spec.confidence = numberOrText(form.confidence);
108
+ spec.needsLogin = typeof spec.needsLogin === 'boolean' ? spec.needsLogin : false;
109
+ if (!isRecord(spec.env))
110
+ spec.env = {};
111
+ if (form.timeoutMs.trim() === '')
112
+ delete spec.timeoutMs;
113
+ else
114
+ spec.timeoutMs = numberOrText(form.timeoutMs);
115
+ if (form.maxOutputBytes.trim() === '')
116
+ delete spec.maxOutputBytes;
117
+ else
118
+ spec.maxOutputBytes = numberOrText(form.maxOutputBytes);
119
+ const probe = isRecord(spec.probe) ? { ...spec.probe } : {};
120
+ probe.versionArgs = Array.isArray(probe.versionArgs) ? probe.versionArgs : ['--version'];
121
+ probe.helpArgs = form.helpArgs.trim() === '' ? ['--help'] : form.helpArgs.trim().split(/\s+/);
122
+ probe.mustContain = [...form.mustContain];
123
+ spec.probe = probe;
124
+ const search = isRecord(spec.search) ? { ...spec.search } : {};
125
+ search.argv = [...form.argv];
126
+ const previous = isRecord(search.output) ? search.output : {};
127
+ const output = { ...previous, format: form.format };
128
+ delete output.lines;
129
+ const fields = isRecord(previous.fields) ? { ...previous.fields } : {};
130
+ if (form.format === 'text') {
131
+ if (form.whole) {
132
+ output.lines = form.wholeMax.trim() === '' ? { mode: 'whole' } : { mode: 'whole', maxChars: numberOrText(form.wholeMax) };
133
+ }
134
+ else {
135
+ output.lines = form.linesMode === 'tsv' ? { mode: 'tsv', columns: form.columns.split(',').map(column => column.trim()).filter(Boolean) } : { mode: 'url-lines' };
136
+ }
137
+ }
138
+ // The result array path belongs to json / yaml only (ndjson has one item per line).
139
+ if (form.format === 'json' || form.format === 'yaml') {
140
+ if (form.itemsPath.trim() !== '')
141
+ output.itemsPath = form.itemsPath.trim();
142
+ else
143
+ delete output.itemsPath;
144
+ }
145
+ else
146
+ delete output.itemsPath;
147
+ if (form.format === 'text' && form.whole) {
148
+ // A whole-output result maps nothing: the field mapping goes away (the JSON view of an old mapping is not kept as dead weight).
149
+ delete output.fields;
150
+ }
151
+ else {
152
+ for (const key of FIELD_KEYS) {
153
+ if (form.complex.includes(key))
154
+ continue;
155
+ const text = form.fields[key].trim();
156
+ if (text === '')
157
+ delete fields[key];
158
+ else
159
+ fields[key] = text;
160
+ }
161
+ output.fields = fields;
162
+ }
163
+ search.output = output;
164
+ spec.search = search;
165
+ spec.allowedSubcommands = derivedSubcommands(spec);
166
+ return spec;
167
+ }
168
+ /** Sort the validator's messages (`cliAdapters.<id>.<path>: ...`) to the dialog field they are about. */
169
+ export function errorsByField(id, errors) {
170
+ const out = {};
171
+ const add = (field, message) => { (out[field] ??= []).push(message); };
172
+ const prefix = 'cliAdapters.' + id;
173
+ for (const error of errors) {
174
+ // `cliAdapters.<id>.search.argv: ...` -> `search.argv: ...`; `cliAdapters.<id>: needsLogin ...` -> `needsLogin ...`
175
+ const message = error.startsWith(prefix) ? error.slice(prefix.length).replace(/^[.:]\s*/, '') : error;
176
+ const rule = [
177
+ [/^id\b/, 'id'], [/^bins\b/, 'bin'], [/^packageNote\b/, 'packageNote'], [/^platforms\b/, 'platforms'], [/^engine\b/, 'engine'], [/^confidence\b/, 'confidence'],
178
+ [/^timeoutMs\b/, 'timeoutMs'], [/^maxOutputBytes\b/, 'maxOutputBytes'], [/^probe\b/, 'probe'],
179
+ [/^search\.argv\b/, 'argv'], [/^search\.output\.format\b/, 'format'], [/^search\.output\.itemsPath\b/, 'itemsPath'], [/^search\.output\.lines\b/, 'lines'],
180
+ [/^search\.output\.fields\.url\b/, 'url'], [/^search\.output\.fields\.title\b/, 'title'], [/^search\.output\.fields\.snippet\b/, 'snippet'], [/^search\.output\.fields\.publishedAt\b/, 'publishedAt'], [/^search\.output\.fields\b/, 'fields'],
181
+ ];
182
+ const hit = rule.find(([pattern]) => pattern.test(message));
183
+ add(hit ? hit[1] : 'general', message);
184
+ }
185
+ return out;
186
+ }
187
+ /** Build the spec of a form and validate it the way the server does; `taken` are the ids of the other entries (a new id may not repeat one). */
188
+ export function checkForm(form, base, taken = []) {
189
+ const spec = formToSpec(form, base);
190
+ return checkSpec(form.id, spec, taken);
191
+ }
192
+ /** Validate a spec (the JSON view): the server's function, plus the one rule only the editor has (an id is not used twice). */
193
+ export function checkSpec(id, spec, taken = []) {
194
+ const result = validateCliAdapterSpec({ ...spec, id }, 'user');
195
+ const errors = [...result.errors];
196
+ if (taken.includes(id))
197
+ errors.push('cliAdapters.' + id + '.id: "' + id + '" is already used by another entry');
198
+ return { spec, errors, byField: errorsByField(id, errors), ok: errors.length === 0 };
199
+ }
200
+ /** The confidence the entry has: its own, else the default. */
201
+ export const confidenceOfForm = (form) => {
202
+ const n = Number(form.confidence);
203
+ return form.confidence.trim() !== '' && Number.isFinite(n) ? n : DEFAULT_CUSTOM_CONFIDENCE;
204
+ };
205
+ export { WHOLE_OUTPUT_DEFAULT_CHARS };
206
+ // ── the JSON view ──────────────────────────────────────────────────────────
207
+ /** The JSON text of a spec as the dialog's raw box prints it. */
208
+ export const specText = (spec) => JSON.stringify(spec, null, 2);
209
+ /** The spec a raw JSON text holds, or the reason it is not one. */
210
+ export function parseSpecText(text) {
211
+ try {
212
+ const value = JSON.parse(text);
213
+ return isRecord(value) ? { spec: value } : { error: 'the spec must be a JSON object' };
214
+ }
215
+ catch (error) {
216
+ return { error: error instanceof Error ? error.message : String(error) };
217
+ }
218
+ }
219
+ // ── the entries inside the `cliAdapters` text ──────────────────────────────
220
+ /** The `cliAdapters` object of the staged text (empty text = no entries); undefined when it is not an object. */
221
+ export function adaptersOf(text) {
222
+ if (text.trim() === '')
223
+ return {};
224
+ try {
225
+ const value = JSON.parse(text);
226
+ return isRecord(value) ? value : undefined;
227
+ }
228
+ catch {
229
+ return undefined;
230
+ }
231
+ }
232
+ /**
233
+ * The `cliAdapters` text with entry `id` set to `spec` (a new key goes last), or removed when `spec` is undefined. The other
234
+ * entries are kept as they were. The object with no entries comes back as the empty text, which the form model stores as "not set".
235
+ * Undefined when the current text is not an object (the raw JSON box has to be fixed first).
236
+ */
237
+ export function withAdapter(text, id, spec) {
238
+ const all = adaptersOf(text);
239
+ if (!all)
240
+ return undefined;
241
+ const next = { ...all };
242
+ if (spec === undefined)
243
+ delete next[id];
244
+ else
245
+ next[id] = spec;
246
+ return Object.keys(next).length === 0 ? '' : JSON.stringify(next, null, 2);
247
+ }
248
+ /** A free id for a copy or a new entry: `base`, `base-2`, `base-3`, ... */
249
+ export function freeId(base, taken) {
250
+ const stem = base.toLowerCase().replace(/[^a-z0-9._-]+/g, '-').replace(/^[^a-z0-9]+|-+$/g, '').slice(0, 36) || 'mycli';
251
+ if (!taken.includes(stem))
252
+ return stem;
253
+ for (let n = 2;; n++)
254
+ if (!taken.includes(stem + '-' + n))
255
+ return stem + '-' + n;
256
+ }
257
+ //# sourceMappingURL=cli-form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-form.js","sourceRoot":"","sources":["../../src/client/cli-form.ts"],"names":[],"mappings":"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"}