@anionex/dsh-vision-toolkit 0.1.6 → 0.1.8

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 (41) hide show
  1. package/README.i18n.yaml +2 -2
  2. package/README.md +23 -11
  3. package/README.zh.md +23 -11
  4. package/lib/client.js +391 -32
  5. package/lib/client.js.map +1 -1
  6. package/lib/config.js +14 -0
  7. package/lib/config.js.map +1 -1
  8. package/lib/image-input-variants.js +615 -0
  9. package/lib/image-input-variants.js.map +1 -0
  10. package/lib/index.js +8 -1
  11. package/lib/index.js.map +1 -1
  12. package/lib/paste-images.js +6 -0
  13. package/lib/paste-images.js.map +1 -1
  14. package/lib/types/client/index.d.ts +13 -5
  15. package/lib/types/client/index.d.ts.map +1 -1
  16. package/lib/types/client/paste-images.d.ts +69 -0
  17. package/lib/types/client/paste-images.d.ts.map +1 -1
  18. package/lib/types/config.d.ts +26 -0
  19. package/lib/types/config.d.ts.map +1 -1
  20. package/lib/types/image-input-variants.d.ts +153 -0
  21. package/lib/types/image-input-variants.d.ts.map +1 -0
  22. package/lib/types/index.d.ts.map +1 -1
  23. package/lib/types/paste-images.d.ts +35 -0
  24. package/lib/types/paste-images.d.ts.map +1 -1
  25. package/lib/types/web-request.d.ts +7 -0
  26. package/lib/types/web-request.d.ts.map +1 -1
  27. package/lib/types/web.d.ts +18 -2
  28. package/lib/types/web.d.ts.map +1 -1
  29. package/lib/web-request.js +11 -2
  30. package/lib/web-request.js.map +1 -1
  31. package/lib/web.js +142 -11
  32. package/lib/web.js.map +1 -1
  33. package/package.json +2 -1
  34. package/src/client/index.tsx +95 -20
  35. package/src/client/paste-images.tsx +331 -15
  36. package/src/config.ts +40 -0
  37. package/src/image-input-variants.ts +688 -0
  38. package/src/index.ts +18 -1
  39. package/src/paste-images.ts +39 -0
  40. package/src/web-request.ts +12 -2
  41. package/src/web.ts +158 -11
package/lib/index.js CHANGED
@@ -11,6 +11,7 @@
11
11
  import { ArtifactAccessController, prepareArtifactAccessKey } from "./artifact-access.js";
12
12
  import { Config, VISION_TOOLKIT_SETTINGS_NAMESPACE, resolveConfig, } from "./config.js";
13
13
  import { VisionToolExposure } from "./exposure.js";
14
+ import { createPasteTakeoverResolver, installImageInputVariants } from "./image-input-variants.js";
14
15
  import { VisionToolkitRuntimeManager } from "./runtime-manager.js";
15
16
  import { VISION_TOOLS_SKILL } from "./skill.js";
16
17
  import { createVisionTools } from "./tools.js";
@@ -71,11 +72,17 @@ export async function apply(ctx, config = {}) {
71
72
  const pastedImages = new PastedImageBackend(ctx, {
72
73
  maxImageBytes: () => manager.status().activeConfig?.maxImageBytes ?? resolveConfig(settings.get()).maxImageBytes,
73
74
  });
74
- installVisionToolkitWeb(ctx, backend, artifacts, pastedImages);
75
+ // Image-input variants register asynchronously once eligible routes exist;
76
+ // the runtime getter stays lazy so variants appear even when the runtime
77
+ // becomes ready after the first sweep.
78
+ const variants = installImageInputVariants(ctx, () => resolveConfig(settings.get()), () => manager.ready ? manager.current() : undefined);
79
+ installVisionToolkitWeb(ctx, backend, artifacts, pastedImages, createPasteTakeoverResolver(ctx, () => resolveConfig(settings.get())));
80
+ disposers.push(variants.dispose);
75
81
  disposers.push(settings.watch(async (next) => {
76
82
  try {
77
83
  await manager.reconfigure(next);
78
84
  ensureOperational();
85
+ variants.reconcile();
79
86
  }
80
87
  catch (error) {
81
88
  const message = error instanceof Error ? error.message : String(error);
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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"}
@@ -5,6 +5,12 @@ import { basename, extname, isAbsolute, join, relative, resolve, sep } from 'nod
5
5
  import { sameOriginPost } from "./web-request.js";
6
6
  /** Exact route used by the browser paste integration. */
7
7
  export const PASTE_IMAGES_ROUTE = '/_dsh/vision-toolkit/paste-images';
8
+ /**
9
+ * Exact route the browser paste integration asks before taking a paste over:
10
+ * `GET ?sessionId=&model=&provider=&modelId=` answers the verdict from the
11
+ * live Session's model route.
12
+ */
13
+ export const PASTE_POLICY_ROUTE = '/_dsh/vision-toolkit/paste-policy';
8
14
  const MAX_NAME_BYTES = 180;
9
15
  function responseJson(res, status, body) {
10
16
  const bytes = Buffer.from(JSON.stringify(body));
@@ -1 +1 @@
1
- {"version":3,"file":"paste-images.js","sourceRoot":"","sources":["../src/paste-images.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAE3E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAG,mCAAmC,CAAA;AAErE,MAAM,cAAc,GAAG,GAAG,CAAA;AAc1B,SAAS,YAAY,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAsB;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/C,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;IAChE,GAAG,CAAC,SAAS,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACrD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAC1C,GAAG,CAAC,SAAS,CAAC,wBAAwB,EAAE,SAAS,CAAC,CAAA;IAClD,GAAG,CAAC,SAAS,CAAC,yBAAyB,EAAE,4CAA4C,CAAC,CAAA;IACtF,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IACrB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAY,EAAE,OAAe;IACtF,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;AACpE,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,SAAS,WAAW,CAAC,GAAQ,EAAE,GAAW;IACxC,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACvE,MAAM,IAAI,SAAS,CAAC,GAAG,GAAG,2BAA2B,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,GAAQ;IAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;IAC9C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAA;IAC1G,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAC,GAAoB;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IACjF,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAA;IAC3G,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACrC,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,YAAY,CAAC,CAAC,OAAO,MAAM,CAAA;QAChC,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAA;QAC/B,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAA;QAC/B,KAAK,YAAY,CAAC,CAAC,OAAO,OAAO,CAAA;QACjC,KAAK,WAAW,CAAC,CAAC,OAAO,MAAM,CAAA;QAC/B,KAAK,YAAY,CAAC,CAAC,OAAO,OAAO,CAAA;QACjC,KAAK,YAAY,CAAC,CAAC,OAAO,OAAO,CAAA;QACjC,KAAK,YAAY,CAAC,CAAC,OAAO,OAAO,CAAA;QACjC,KAAK,YAAY,CAAC,CAAC,OAAO,OAAO,CAAA;QACjC,KAAK,eAAe,CAAC,CAAC,OAAO,MAAM,CAAA;QACnC,OAAO,CAAC,CAAC,OAAO,MAAM,CAAA;IACxB,CAAC;AACH,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,GAAW,EAAE,SAAiB;IAChE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACjE,IAAI,OAAO,GAAG,IAAI;SACf,OAAO,CAAC,6BAA6B,EAAE,GAAG,CAAC;SAC3C,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;SACrB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,IAAI,EAAE;SACN,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IACzB,IAAI,kDAAkD,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAC7F,MAAM,QAAQ,GAAG,kBAAkB,YAAY,CAAC,SAAS,CAAC,EAAE,CAAA;IAC5D,MAAM,SAAS,GAAG,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;IAC5F,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,cAAc;QAAE,OAAO,SAAS,CAAA;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IACzE,IAAI,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IAC/E,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IACjE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,CAAA;AAC9B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAc;IAC3D,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAClC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAClF,MAAM,IAAI,KAAK,CAAC,0DAA0D,MAAM,EAAE,CAAC,CAAA;IACrF,CAAC;AACH,CAAC;AAOD,KAAK,UAAU,sBAAsB,CAAC,SAAiB,EAAE,IAAY;IACnE,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAA;IAC1F,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAA;IAC/B,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,wEAAwE,IAAI,EAAE,CAAC,CAAA;IACjG,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,EAAE,CAAC,CAAA;IAC1F,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAA;IACtC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACtC,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,GAAY,EAAE,SAAiB;IAC7D,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAkB,CAAC,CAAA;IACpD,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAA;IAClF,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAA;IAC9B,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,EAAE,CAAC,CAAA;IAE7G,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IACrC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAA;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,qBAAqB,CAAC,CAAA;IAChE,MAAM,sBAAsB,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACnD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;IAC7C,MAAM,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;IAEnE,MAAM,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IACpF,MAAM,oBAAoB,GAAG,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;IAC5D,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;IAC5E,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;IACnC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AACtE,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,GAAoB,EACpB,SAAiB,EACjB,QAAgB,EAChB,aAAqB,EACrB,QAAgB;IAEhB,IAAI,aAAa,GAAG,QAAQ;QAAE,MAAM,IAAI,UAAU,CAAC,qBAAqB,QAAQ,mBAAmB,CAAC,CAAA;IACpG,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;IACvB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAA;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IACrD,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;IACtC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IAExC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;IACnD,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjE,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAA;YACxB,IAAI,QAAQ,GAAG,aAAa,IAAI,QAAQ,GAAG,QAAQ;gBAAE,MAAM,IAAI,UAAU,CAAC,6CAA6C,CAAC,CAAA;YACxH,MAAM,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QACD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,6CAA6C,aAAa,cAAc,QAAQ,EAAE,CAAC,CAAA;QACrG,CAAC;QACD,MAAM,MAAM,CAAC,IAAI,EAAE,CAAA;QACnB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAA;QACpB,MAAM,MAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACpC,OAAO,SAAS,CAAA;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACpC,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QACtD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC;AAOD,6DAA6D;AAC7D,MAAM,OAAO,kBAAkB;IAEV;IACA;IAFnB,YACmB,GAAY,EACZ,OAA0B;QAD1B,QAAG,GAAH,GAAG,CAAS;QACZ,YAAO,GAAP,OAAO,CAAmB;IAC1C,CAAC;IAEJ,KAAK,CAAC,MAAM,CAAC,GAAoB,EAAE,GAAmB;QACpD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1B,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;YAC9B,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAA;YACxD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,EAAE,0DAA0D,CAAC,CAAA;YACrG,OAAM;QACR,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,kBAAkB,EAAE,qBAAqB,CAAC,CAAA;YACzE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;YAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;YAC9B,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAA;YACrC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,CAAA;YACzE,MAAM,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;YACnD,IAAI,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;gBAClE,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAA;YACxE,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;YAC7D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;YAC5G,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;YACvE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAA;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;YACtD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,8CAA8C,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;YACpF,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,sBAAsB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"paste-images.js","sourceRoot":"","sources":["../src/paste-images.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,17 @@ declare const en: {
9
9
  readonly settingsIntro: "Configure the pinned visual engineering runtime, its external vision endpoint, and local safety limits.";
10
10
  readonly externalNotice: "Remote tools send the selected image bytes to the configured external vision API. Local crop, trace, pixel diff, palette, foreground extraction, and HTML rendering do not upload images.";
11
11
  readonly provider: "Vision service";
12
- readonly providerHint: "Choose the API protocol, then provide the service address, model, and credential used by online vision features.";
12
+ readonly providerHint: "Choose the API protocol, then provide the service address, model, and API key used by online vision features.";
13
13
  readonly baseUrl: "Base URL";
14
- readonly credential: "Credential reference";
14
+ readonly apiKey: "API key";
15
+ readonly apiKeyPlaceholderMissing: "Paste the API key";
16
+ readonly apiKeyPlaceholderConfigured: "Saved; leave blank to keep it";
17
+ readonly apiKeyHint: "The key is stored in DSH Credentials and is never shown again after saving.";
18
+ readonly apiKeyLocked: "The current key comes from a read-only source and cannot be replaced here.";
19
+ readonly apiKeyBlank: "The API key cannot contain only spaces.";
20
+ readonly apiKeyInvalid: "Paste only the key, without a variable name, quotes, spaces, or line breaks.";
21
+ readonly credential: "Credential name";
22
+ readonly credentialHint: "Advanced: the API key is stored under this name. Keep VISION_API_KEY unless another plugin configuration requires a different reference.";
15
23
  readonly model: "Model";
16
24
  readonly protocol: "API protocol";
17
25
  readonly anthropicThinking: "Anthropic thinking";
@@ -33,7 +41,7 @@ declare const en: {
33
41
  readonly saving: "Validating runtime…";
34
42
  readonly reload: "Reload";
35
43
  readonly saved: "Settings validated and applied.";
36
- readonly readOnly: "The active Settings provider is read-only.";
44
+ readonly readOnly: "Service settings are read-only. A writable API key can still be saved.";
37
45
  readonly configured: "Configured";
38
46
  readonly missing: "Missing";
39
47
  readonly source: "Source";
@@ -47,7 +55,7 @@ declare const en: {
47
55
  readonly connectionHint: "Connection testing explicitly sends the configured credential to GET /models. It uploads no image and creates no completion.";
48
56
  readonly saveBeforeTesting: "Save service changes before testing the connection.";
49
57
  readonly advanced: "Advanced settings";
50
- readonly advancedHint: "Provider compatibility, output language, resource limits, runtime source, Python, and additional readable directories.";
58
+ readonly advancedHint: "Credential name, provider compatibility, output language, resource limits, runtime source, Python, and additional readable directories.";
51
59
  readonly pluginVersion: "Plugin";
52
60
  readonly upstreamVersion: "Upstream";
53
61
  readonly activeGeneration: "Runtime generation";
@@ -241,7 +249,7 @@ export declare class VisionSettingsController {
241
249
  private set;
242
250
  load(): Promise<void>;
243
251
  refreshIfLoaded(): void;
244
- save(value: SettingsValue, expectedRevision: number): Promise<void>;
252
+ save(value: SettingsValue, expectedRevision: number, credentialValue: string | undefined, writeSettings: boolean): Promise<boolean>;
245
253
  runHealth(testConnection: boolean): Promise<void>;
246
254
  }
247
255
  /** Required client services. The pasted-image codec attaches to either trigger-service generation after load. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/index.tsx"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client';
4
4
  import type { InputTriggerSource } from '@deepseek-ai/dsh-client-ui-input-trigger/client';
5
5
  import type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
6
6
  export declare const PASTE_IMAGES_ROUTE = "/_dsh/vision-toolkit/paste-images";
7
+ export declare const PASTE_POLICY_ROUTE = "/_dsh/vision-toolkit/paste-policy";
7
8
  interface PasteRecord {
8
9
  ref: string;
9
10
  file: File;
@@ -35,6 +36,9 @@ export declare class PasteImageController {
35
36
  private readonly records;
36
37
  private readonly listeners;
37
38
  private revision;
39
+ private readonly verdicts;
40
+ /** Guards the synthetic replay paste from re-entering capture interception. */
41
+ private replaying;
38
42
  constructor(ctx: ClientContext);
39
43
  subscribe: (listener: () => void) => (() => void);
40
44
  snapshot: () => number;
@@ -44,6 +48,71 @@ export declare class PasteImageController {
44
48
  private inputFor;
45
49
  private insertText;
46
50
  private insertRecords;
51
+ /**
52
+ * The host's verdict for one Session and selector label, when fresh. The
53
+ * last CONFIRMED answer is authoritative while a background refresh is in
54
+ * flight (the paste acts on what the host last said; the refresh only
55
+ * covers the next paste). A label that changed since the confirmation
56
+ * answers undefined, so the native attachment flow stays the default.
57
+ * @param sessionId - the live Session the paste belongs to.
58
+ * @param modelLabel - the model-selector label currently shown.
59
+ * @returns the fresh confirmed verdict, or undefined when unconfirmed.
60
+ */
61
+ private verdictFor;
62
+ /**
63
+ * The exact model route the live model catalog reports for one Session.
64
+ * Unreadable routes answer undefined, so the verdict falls back to the
65
+ * selector label alone.
66
+ * @param sessionId - the live Session id.
67
+ * @returns the current provider/model selection, when readable.
68
+ */
69
+ private readSelection;
70
+ /**
71
+ * Ask the host what to do with a paste for the current model, and cache the
72
+ * answer per Session and selector label. A model switch changes the label,
73
+ * which changes the cache key, so a stale verdict never outlives the model
74
+ * it described. The exact selection rides along when the live model catalog
75
+ * is readable, so the host can answer with an auto-switch route; a 404
76
+ * simply leaves the verdict unconfirmed; the next focus or paste retries.
77
+ * @param sessionId - the live Session to ask about.
78
+ * @param modelLabel - the model-selector label currently shown.
79
+ */
80
+ refreshVerdict(sessionId: string, modelLabel: string): void;
81
+ /**
82
+ * Switch one Session to the route the host validated, through the same
83
+ * model-directory seat the selector uses when present (so the shared UI
84
+ * state moves with the session), falling back to the raw RPC.
85
+ * @param sessionId - the live Session id.
86
+ * @param route - the validated variant route.
87
+ */
88
+ private switchModel;
89
+ /**
90
+ * Replay a swallowed paste as a synthetic clipboard event so the composer's
91
+ * own intake (limits, thumbnails, keyboard) runs with the captured files.
92
+ * @returns false when the environment cannot construct a clipboard payload.
93
+ */
94
+ private replayPaste;
95
+ /**
96
+ * Auto-switch flow: switch the Session to the image-input variant, announce
97
+ * it, then replay the paste into the composer's native intake. A failed
98
+ * switch, or an environment that cannot replay clipboard bytes, degrades to
99
+ * the path takeover with the same files.
100
+ * @param sessionId - the live Session id.
101
+ * @param target - the composer textarea the paste landed on.
102
+ * @param files - the captured image files.
103
+ * @param text - same-paste text, replayed alongside the files.
104
+ * @param route - the validated variant route to switch to.
105
+ */
106
+ private autoSwitchPaste;
107
+ /**
108
+ * Path-takeover flow: insert the same-paste text and every image as a text
109
+ * reference that serializes to the image's workspace path on send.
110
+ * @param sessionId - the live Session id.
111
+ * @param target - the composer textarea the paste landed on.
112
+ * @param files - the captured image files.
113
+ * @param text - same-paste text.
114
+ */
115
+ private takeoverPaste;
47
116
  handlePaste(event: ClipboardEvent): boolean;
48
117
  remove(sessionId: string, occurrence: PasteOccurrence): void;
49
118
  private upload;
@@ -1 +1 @@
1
- {"version":3,"file":"paste-images.d.ts","sourceRoot":"","sources":["../../../src/client/paste-images.tsx"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAE3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAA;AACzF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAGpE,eAAO,MAAM,kBAAkB,sCAAsC,CAAA;AAKrE,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,UAAU,CAAA;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;IAChD,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAClC;AAED,UAAU,UAAU;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;IACpC,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAA;CACvC;AAQD,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd;AAED,KAAK,cAAc,GAAG,YAAY,CAAC,yBAAyB,CAAC,GAAG;IAC9D,UAAU,EAAE,oBAAoB,CAAA;IAChC,MAAM,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,IAAI,CAAA;CAC9C,CAAA;AAkFD,wFAAwF;AACxF,qBAAa,oBAAoB;IAKnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAI;gBAES,GAAG,EAAE,aAAa;IAE/C,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAG/C;IAED,QAAQ,QAAO,MAAM,CAAiB;IAEtC,OAAO,CAAC,OAAO;IAKf,MAAM,IAAI,kBAAkB;IAc5B,UAAU,CAAC,WAAW,EAAE,SAAS,eAAe,EAAE,GAAG,WAAW,EAAE;IAOlE,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,aAAa;IAqDrB,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAiC3C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,GAAG,IAAI;YAuB9C,MAAM;YAsDN,SAAS;CAOxB;AAED,oFAAoF;AACpF,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAyB/D;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAyC3D"}
1
+ {"version":3,"file":"paste-images.d.ts","sourceRoot":"","sources":["../../../src/client/paste-images.tsx"],"names":[],"mappings":"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"}
@@ -47,6 +47,27 @@ export interface VisionToolkitConfig {
47
47
  };
48
48
  /** Extra directories (besides the workspace) inputs may come from. */
49
49
  allowedDirs?: string[];
50
+ /**
51
+ * Image-input variants: sibling model-selector entries for every model the
52
+ * host positively declares text-only. A variant declares image input, so
53
+ * pasted images keep the native attachment flow (composer thumbnail and
54
+ * durable session image), and the plugin rewrites image blocks into Vision
55
+ * Toolkit descriptions only on the wire to the model.
56
+ */
57
+ imageInputVariants?: {
58
+ /** Whether variant routes are registered at all (default true). */
59
+ enabled?: boolean;
60
+ /** Restrict wrapped upstream routes by provider id; empty wraps every eligible route. */
61
+ providers?: string[];
62
+ /**
63
+ * Whether the browser paste integration automatically switches the Session
64
+ * to the image-input variant of a text-only model before the paste, so
65
+ * pasted images keep the native attachment flow with no manual model
66
+ * change. Off means a text-only model keeps the path takeover (default
67
+ * true).
68
+ */
69
+ autoSwitch?: boolean;
70
+ };
50
71
  }
51
72
  /** Configuration schema with the documented P0 defaults. */
52
73
  export declare const Config: Schema<VisionToolkitConfig>;
@@ -71,6 +92,11 @@ export interface ResolvedVisionToolkitConfig {
71
92
  python?: string;
72
93
  };
73
94
  allowedDirs: string[];
95
+ imageInputVariants: {
96
+ enabled: boolean;
97
+ providers: string[];
98
+ autoSwitch: boolean;
99
+ };
74
100
  }
75
101
  /**
76
102
  * Validate and normalize a config object (partial inputs receive the same
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAIhF,wDAAwD;AACxD,eAAO,MAAM,iCAAiC,uDAAsC,CAAA;AAEpF,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,oHAAoH,CAAA;AAE1J,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE;QACT,6BAA6B;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,gFAAgF;QAChF,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,6BAA6B;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,8EAA8E;QAC9E,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,CAAA;QACjC,iFAAiF;QACjF,iBAAiB,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;QACpD,sEAAsE;QACtE,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE;QACR,uGAAuG;QACvG,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,CAAA;QAC7B,4EAA4E;QAC5E,sBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,4DAA4D;QAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,4DAA4D;AAC5D,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAoB7C,CAAA;AAEF,8EAA8E;AAC9E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,EAAE,aAAa,CAAA;QACzB,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,QAAQ,GAAG,WAAW,CAAA;QAChC,iBAAiB,EAAE,MAAM,GAAG,UAAU,GAAG,UAAU,CAAA;QACnD,SAAS,EAAE,MAAM,CAAA;KAClB,CAAA;IACD,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE;QACP,IAAI,EAAE,SAAS,GAAG,UAAU,CAAA;QAC5B,sBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB;AAOD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,mBAAwB,GAAG,2BAA2B,CAsF3F"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Image-input variants: sibling model-selector entries for every model the
3
+ * host positively declares text-only. A variant declares image input, so
4
+ * pasted images keep the native attachment flow — composer thumbnail and the
5
+ * durable session image — while the variant's stream rewrites every image
6
+ * block into a Vision Toolkit description before delegating to the original
7
+ * route. The durable log is untouched; only the wire carries text.
8
+ * @module dsh-vision-toolkit/image-input-variants
9
+ */
10
+ import type { Context } from '@deepseek-ai/cordis';
11
+ import LlmService, { LlmAdapter } from '@deepseek-ai/dsh-llm';
12
+ import type { ContentBlock, GenerateOptions, LlmModelInfo, LlmProviderInfo, LlmResolvedModelInfo, Message, StreamChunk } from '@deepseek-ai/dsh-llm';
13
+ import type { ResolvedVisionToolkitConfig } from './config.ts';
14
+ import type { PasteSelectionQuery, PasteVerdict } from './paste-images.ts';
15
+ import type { VisionToolkitRuntime } from './runtime.ts';
16
+ /** Provider-id prefix for the variant routes this plugin registers. */
17
+ export declare const VARIANT_PROVIDER_PREFIX = "vision-toolkit-";
18
+ /** Display suffix shared by variant provider names and variant model names. */
19
+ export declare const VARIANT_SUFFIX = " (Vision Toolkit)";
20
+ /** The variant provider route minted for one upstream route. */
21
+ export declare function variantProviderId(upstream: string): string;
22
+ /**
23
+ * Whether one model earns an image-input variant: the host must positively
24
+ * declare it text-only. A model with unknown modalities is left alone — its
25
+ * native channel is the safe default, and the variant would degrade it.
26
+ * @param info - model metadata from the host catalog.
27
+ * @returns true when the model is confirmed text-only.
28
+ */
29
+ export declare function shouldWrapModel(info: Pick<LlmModelInfo, 'inputModalities'>): boolean;
30
+ /** Whether a content block list carries an image at any depth (tool-result nesting included). */
31
+ export { contentHasImage } from '@deepseek-ai/dsh-llm';
32
+ /** Bounded promise cache for one attachment's description; failed reads are not retained. */
33
+ export declare class EvidenceCache {
34
+ private readonly limit;
35
+ private readonly entries;
36
+ constructor(limit: number);
37
+ /**
38
+ * Read one key's entry or compute it. Concurrent readers join the in-flight
39
+ * computation; a settled failure is evicted so a fixed configuration gets a
40
+ * fresh chance.
41
+ * @param key - the attachment identity (content-addressed).
42
+ * @param load - computes the description; must resolve `{ ok, block }` and never reject.
43
+ * @returns the cached or computed block.
44
+ */
45
+ read(key: string, load: () => Promise<{
46
+ ok: boolean;
47
+ block: ContentBlock;
48
+ }>): Promise<ContentBlock>;
49
+ /** Drop every cached description (runtime reconfiguration invalidates provider-specific reads). */
50
+ clear(): void;
51
+ }
52
+ /**
53
+ * Wait on a shared promise without inheriting its lifetime: the caller's
54
+ * abort rejects this wait immediately, while the underlying read keeps
55
+ * running and lands in the cache for the retry.
56
+ * @param promise - the shared computation.
57
+ * @param signal - the caller's cancellation, or undefined to wait unconditionally.
58
+ * @returns the computed value, unless the caller aborted first.
59
+ */
60
+ export declare function abortableWait<T>(promise: Promise<T>, signal: AbortSignal | undefined): Promise<T>;
61
+ /**
62
+ * Rewrite image blocks in one message list into description text blocks.
63
+ * The original messages are returned untouched when nothing carries an image;
64
+ * converted messages are new objects, so the durable request stays immutable.
65
+ * @param ctx - plugin context for the attachments service.
66
+ * @param runtime - the currently serving runtime (lazily read per conversion).
67
+ * @param cache - shared per-adapter description cache.
68
+ * @param messages - the assembled request messages.
69
+ * @param signal - the caller's cancellation for this conversion pass.
70
+ * @returns the rewritten message list.
71
+ */
72
+ export declare function convertImagesToEvidence(ctx: Context, runtime: () => VisionToolkitRuntime | undefined, cache: EvidenceCache, messages: readonly Message[], signal?: AbortSignal): Promise<Message[]>;
73
+ /**
74
+ * The adapter behind one variant route: model metadata declares image input,
75
+ * and every stream rewrites image blocks before delegating to the upstream
76
+ * route through the host service (so the upstream route's own middleware,
77
+ * retry policy, and replay handling still apply).
78
+ */
79
+ export declare class ImageInputVariantAdapter extends LlmAdapter {
80
+ private readonly ctx;
81
+ private readonly llm;
82
+ private readonly upstream;
83
+ private readonly upstreamName;
84
+ private readonly runtime;
85
+ private readonly cache;
86
+ private lastRuntime;
87
+ constructor(ctx: Context, llm: LlmService, upstream: string, upstreamName: string, runtime: () => VisionToolkitRuntime | undefined, cache: EvidenceCache);
88
+ providerInfo(provider: string): LlmProviderInfo;
89
+ listModels(provider: string): Promise<readonly LlmModelInfo[]>;
90
+ resolveModel(provider: string, model: string, signal?: AbortSignal): Promise<LlmResolvedModelInfo>;
91
+ stream(options: GenerateOptions): AsyncGenerator<StreamChunk>;
92
+ }
93
+ /**
94
+ * Whether the plugin should take a paste over for one live Session: true only
95
+ * when the current model is positively declared text-only. The model-selector
96
+ * label is the authoritative source when supplied — the Session's persisted
97
+ * route header only updates on a request, so a model switch would otherwise be
98
+ * invisible until the next turn — with a fallback to that header. Unknown
99
+ * routes answer false: the native attachment flow is the safe default, and a
100
+ * text-only model merely keeps its ordinary image-admission error.
101
+ * @param ctx - plugin context with `sessions` and `llm`.
102
+ * @param sessionId - the live Session id the paste belongs to.
103
+ * @param modelLabel - the model-selector label the client currently shows, if any.
104
+ * @returns true when pastes should become workspace paths instead of attachments.
105
+ */
106
+ export declare function sessionPasteTakeover(ctx: Context, sessionId: string, modelLabel?: string): Promise<boolean>;
107
+ /**
108
+ * Resolve the takeover verdict from the Session's last requested route header.
109
+ * @param ctx - plugin context with `sessions` and `llm`.
110
+ * @param sessionId - the live Session id.
111
+ * @returns true when the persisted route is positively text-only.
112
+ */
113
+ export declare function sessionHeaderTakeover(ctx: Context, sessionId: string): Promise<boolean>;
114
+ /**
115
+ * Resolve the takeover verdict from a model-selector label alone. Every model
116
+ * whose name or id appears in the label votes: any image-capable (or unknown-
117
+ * capability) match vetoes the takeover, and at least one positively text-only
118
+ * match confirms it. A route whose catalog cannot be read also vetoes — the
119
+ * unreadable route is exactly where an image-capable twin could hide, so a
120
+ * label match on a half-read catalog must not confirm a takeover. The label
121
+ * carries no provider id, so no picking is attempted: the answer is decisive
122
+ * only when the whole catalog was walkable and every match agrees.
123
+ * @param ctx - plugin context with the `llm` service.
124
+ * @param label - the selector label the browser shows.
125
+ * @returns true (take over), false (native), or undefined when nothing matched.
126
+ */
127
+ export declare function labelTakeoverVerdict(ctx: Context, label: string): Promise<boolean | undefined>;
128
+ /**
129
+ * Paste-policy resolver with a short cache. The exact route is the live fact
130
+ * (the browser re-reads it per paste), and the host catalog only changes on
131
+ * topology events, so a brief cache is safe; every `llm/adapters-updated`
132
+ * notification empties it — including the sweep that registers a variant
133
+ * after the first sweep, so a stale "no variant" verdict cannot outlive the
134
+ * route it described.
135
+ * @param ctx - plugin context with the `llm` service.
136
+ * @param getConfig - resolves the current plugin configuration per verdict.
137
+ * @returns the cached verdict resolver for the Web paste-policy route.
138
+ */
139
+ export declare function createPasteTakeoverResolver(ctx: Context, getConfig: () => ResolvedVisionToolkitConfig): (sessionId: string, selection?: PasteSelectionQuery, modelLabel?: string) => Promise<PasteVerdict>;
140
+ /**
141
+ * Register and maintain one variant route per eligible upstream route. Routes
142
+ * that later vanish are released; routes that gain eligible models later are
143
+ * picked up by the next sweep (host topology notifications included).
144
+ * @param ctx - plugin context with the `llm` service.
145
+ * @param getConfig - resolves the current plugin configuration per sweep.
146
+ * @param getRuntime - the currently serving Vision Toolkit runtime, if ready.
147
+ * @returns the disposer and a manual re-sweep trigger (settings changes).
148
+ */
149
+ export declare function installImageInputVariants(ctx: Context, getConfig: () => ResolvedVisionToolkitConfig, getRuntime: () => VisionToolkitRuntime | undefined): {
150
+ dispose: () => void;
151
+ reconcile: () => void;
152
+ };
153
+ //# sourceMappingURL=image-input-variants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-input-variants.d.ts","sourceRoot":"","sources":["../../src/image-input-variants.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,EACL,MAAM,EAGN,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAA;AASpB,eAAO,MAAM,IAAI,gCAAgC,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,eAAO,MAAM,MAAM,UAAqF,CAAA;AAExG,qFAAqF;AACrF,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAoF/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAKlD,OAAO,EACL,MAAM,EAGN,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAA;AAUpB,eAAO,MAAM,IAAI,gCAAgC,CAAA;AAEjD,OAAO,EAAE,MAAM,EAAE,CAAA;AAEjB,eAAO,MAAM,MAAM,UAAqF,CAAA;AAExG,qFAAqF;AACrF,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAoG/F"}
@@ -3,6 +3,41 @@ import type { IncomingMessage, ServerResponse } from 'node:http';
3
3
  import type { Context } from '@deepseek-ai/cordis';
4
4
  /** Exact route used by the browser paste integration. */
5
5
  export declare const PASTE_IMAGES_ROUTE = "/_dsh/vision-toolkit/paste-images";
6
+ /**
7
+ * Exact route the browser paste integration asks before taking a paste over:
8
+ * `GET ?sessionId=&model=&provider=&modelId=` answers the verdict from the
9
+ * live Session's model route.
10
+ */
11
+ export declare const PASTE_POLICY_ROUTE = "/_dsh/vision-toolkit/paste-policy";
12
+ /**
13
+ * One exact model route the browser should switch the Session to before the
14
+ * native attachment flow: the image-input variant of the current text-only
15
+ * model. The variant declares image input, so the paste keeps the composer
16
+ * thumbnail and the durable session image.
17
+ */
18
+ export interface PasteSwitchRoute {
19
+ /** The variant provider route (`vision-toolkit-` + upstream provider id). */
20
+ provider: string;
21
+ /** The model id, identical to the upstream text-only model's id. */
22
+ model: string;
23
+ /** The variant's selector display name (upstream name + variant suffix). */
24
+ label: string;
25
+ /** The upstream reasoning effort, when the selection carries one. */
26
+ reasoningEffort?: string;
27
+ }
28
+ /** The exact model route the browser read from the live model catalog. */
29
+ export interface PasteSelectionQuery {
30
+ provider: string;
31
+ model: string;
32
+ reasoningEffort?: string;
33
+ }
34
+ /** The paste-policy answer for one Session and model route. */
35
+ export interface PasteVerdict {
36
+ /** Whether the browser should turn the paste into workspace paths instead of attachments. */
37
+ takeOver: boolean;
38
+ /** When present, the browser switches to this route first, then lets the paste flow natively. */
39
+ autoSwitch?: PasteSwitchRoute;
40
+ }
6
41
  /** Convert an untrusted browser label into one portable leaf filename. */
7
42
  export declare function safePastedImageName(raw: string, mediaType: string): string;
8
43
  /** Reject a resolved path that is not rooted below the expected directory. */
@@ -1 +1 @@
1
- {"version":3,"file":"paste-images.d.ts","sourceRoot":"","sources":["../../src/paste-images.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAI3E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,sCAAsC,CAAA;AAuErE,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB1E;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKnE;AAkFD,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,aAAa,IAAI,MAAM,CAAA;CACxB;AAED,6DAA6D;AAC7D,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,iBAAiB;IAGvC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BvE"}
1
+ {"version":3,"file":"paste-images.d.ts","sourceRoot":"","sources":["../../src/paste-images.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAI3E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAIlD,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,sCAAsC,CAAA;AAErE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,sCAAsC,CAAA;AAErE;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,CAAA;IAChB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,qEAAqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,6FAA6F;IAC7F,QAAQ,EAAE,OAAO,CAAA;IACjB,iGAAiG;IACjG,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAC9B;AAuED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAiB1E;AAED,8EAA8E;AAC9E,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKnE;AAkFD,kEAAkE;AAClE,MAAM,WAAW,iBAAiB;IAChC,aAAa,IAAI,MAAM,CAAA;CACxB;AAED,6DAA6D;AAC7D,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,iBAAiB;IAGvC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CA+BvE"}
@@ -1,4 +1,11 @@
1
1
  import type { IncomingMessage } from 'node:http';
2
+ /**
3
+ * Accept a request only from the DSH Web application's origin. Method-agnostic:
4
+ * the same fence guards state-changing POSTs and policy GETs.
5
+ * @param req - the incoming request whose headers carry the origin evidence.
6
+ * @returns whether the request may be answered.
7
+ */
8
+ export declare function sameOriginRequest(req: IncomingMessage): boolean;
2
9
  /** Accept state-changing requests only from the DSH Web application's origin. */
3
10
  export declare function sameOriginPost(req: IncomingMessage): boolean;
4
11
  //# sourceMappingURL=web-request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-request.d.ts","sourceRoot":"","sources":["../../src/web-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAa5D"}
1
+ {"version":3,"file":"web-request.d.ts","sourceRoot":"","sources":["../../src/web-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAEhD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAa/D;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAE5D"}
@@ -7,7 +7,7 @@
7
7
  import type { IncomingMessage, ServerResponse } from 'node:http';
8
8
  import type { Context } from '@deepseek-ai/cordis';
9
9
  import { ArtifactAccessController } from './artifact-access.ts';
10
- import { PastedImageBackend } from './paste-images.ts';
10
+ import { PastedImageBackend, type PasteSelectionQuery, type PasteVerdict } from './paste-images.ts';
11
11
  import { type VisionToolkitConfig } from './config.ts';
12
12
  import { VisionToolkitRuntimeManager, type PreparedRuntimeGeneration, type RuntimeManagerStatus } from './runtime-manager.ts';
13
13
  /** Exact route used by the browser Settings page. */
@@ -60,15 +60,31 @@ export declare class VisionToolkitWebBackend {
60
60
  /** Build the current settings/runtime/credential snapshot without secrets. */
61
61
  snapshot(): Promise<VisionToolkitSettingsSnapshot>;
62
62
  private save;
63
+ private saveCredential;
63
64
  private health;
64
65
  /** Handle the exact Settings route. */
65
66
  handle(req: IncomingMessage, res: ServerResponse): Promise<void>;
66
67
  }
68
+ /**
69
+ * Same-origin policy handler for the paste route: whether the browser should
70
+ * take a paste over into workspace paths, or let it flow natively after an
71
+ * optional automatic switch to the image-input variant. The optional `model`
72
+ * query carries the model-selector label the client currently shows; the
73
+ * optional `provider`/`modelId`/`reasoningEffort` queries carry the exact
74
+ * route the client read from the live model catalog, which the resolver
75
+ * prefers (a label alone cannot pick a provider). Unresolvable routes answer
76
+ * native — the safe default.
77
+ * @param resolve - resolves one live Session's paste verdict.
78
+ * @returns the HTTP handler.
79
+ */
80
+ export declare function createPastePolicyHandler(resolve: (sessionId: string, selection?: PasteSelectionQuery, modelLabel?: string) => Promise<PasteVerdict>): (req: IncomingMessage, res: ServerResponse) => void;
67
81
  /**
68
82
  * Attach optional Web routes whenever a webServer service is present.
69
83
  * @param ctx - plugin context owning route effects.
70
84
  * @param backend - Settings handler.
71
85
  * @param artifacts - signed Artifact handler.
86
+ * @param pastedImages - pasted-image workspace handler.
87
+ * @param pastePolicy - paste-policy verdict resolver (sessionId, selection, modelLabel).
72
88
  */
73
- export declare function installVisionToolkitWeb(ctx: Context, backend: VisionToolkitWebBackend, artifacts: ArtifactAccessController, pastedImages: PastedImageBackend): void;
89
+ export declare function installVisionToolkitWeb(ctx: Context, backend: VisionToolkitWebBackend, artifacts: ArtifactAccessController, pastedImages: PastedImageBackend, pastePolicy: (sessionId: string, selection?: PasteSelectionQuery, modelLabel?: string) => Promise<PasteVerdict>): void;
74
90
  //# sourceMappingURL=web.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAMlD,OAAO,EAAE,wBAAwB,EAAyB,MAAM,sBAAsB,CAAA;AACtF,OAAO,EAAE,kBAAkB,EAAsB,MAAM,mBAAmB,CAAA;AAC1E,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAA;AAEpB,OAAO,EACL,2BAA2B,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAI7B,qDAAqD;AACrD,eAAO,MAAM,cAAc,kCAAkC,CAAA;AAE7D,oFAAoF;AACpF,MAAM,WAAW,6BAA6B;IAC5C,aAAa,EAAE,CAAC,CAAA;IAChB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE;QACR,KAAK,EAAE,mBAAmB,CAAA;QAC1B,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAA;QACX,UAAU,EAAE,OAAO,CAAA;QACnB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,OAAO,EAAE,oBAAoB,CAAA;IAC7B,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAA;QACrB,kBAAkB,EAAE,MAAM,CAAA;QAC1B,eAAe,EAAE,MAAM,CAAA;QACvB,cAAc,EAAE,MAAM,CAAA;KACvB,CAAA;IACD,sBAAsB,EAAE,OAAO,CAAA;CAChC;AA2BD,wEAAwE;AACxE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,OAAO,IAAI,UAAU,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7D,gBAAgB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;IAC9E,iBAAiB,CAAC,SAAS,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC7D,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAA;IACnC,MAAM,IAAI,oBAAoB,CAAA;CAC/B;AAED,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAA;AAmEzC,+CAA+C;AAC/C,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;gBAHlB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,wBAAwB,EACnC,kBAAkB,EAAE,gBAAgB;YAGzC,UAAU;IAIxB,8EAA8E;IACxE,QAAQ,IAAI,OAAO,CAAC,6BAA6B,CAAC;YAgC1C,IAAI;YAmBJ,MAAM;IAkBpB,uCAAuC;IACjC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAwCvE;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,uBAAuB,EAChC,SAAS,EAAE,wBAAwB,EACnC,YAAY,EAAE,kBAAkB,GAC/B,IAAI,CA2BN"}
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}