@anionex/dsh-vision-toolkit 0.1.7 → 0.1.9

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 (51) hide show
  1. package/README.i18n.yaml +2 -2
  2. package/README.md +34 -17
  3. package/README.zh.md +32 -7
  4. package/assets/community-group-qr.png +0 -0
  5. package/assets/vision-model-test.png +0 -0
  6. package/docs/requirements-traceability/README.i18n.yaml +2 -2
  7. package/docs/requirements-traceability/README.md +2 -2
  8. package/docs/requirements-traceability/README.zh.md +2 -2
  9. package/lib/client.js +361 -28
  10. package/lib/client.js.map +1 -1
  11. package/lib/config.js +14 -0
  12. package/lib/config.js.map +1 -1
  13. package/lib/image-input-variants.js +615 -0
  14. package/lib/image-input-variants.js.map +1 -0
  15. package/lib/index.js +8 -1
  16. package/lib/index.js.map +1 -1
  17. package/lib/paste-images.js +6 -0
  18. package/lib/paste-images.js.map +1 -1
  19. package/lib/runtime.js +37 -3
  20. package/lib/runtime.js.map +1 -1
  21. package/lib/types/client/index.d.ts +16 -5
  22. package/lib/types/client/index.d.ts.map +1 -1
  23. package/lib/types/client/paste-images.d.ts +69 -0
  24. package/lib/types/client/paste-images.d.ts.map +1 -1
  25. package/lib/types/config.d.ts +26 -0
  26. package/lib/types/config.d.ts.map +1 -1
  27. package/lib/types/image-input-variants.d.ts +153 -0
  28. package/lib/types/image-input-variants.d.ts.map +1 -0
  29. package/lib/types/index.d.ts.map +1 -1
  30. package/lib/types/paste-images.d.ts +35 -0
  31. package/lib/types/paste-images.d.ts.map +1 -1
  32. package/lib/types/runtime.d.ts +5 -2
  33. package/lib/types/runtime.d.ts.map +1 -1
  34. package/lib/types/web-request.d.ts +7 -0
  35. package/lib/types/web-request.d.ts.map +1 -1
  36. package/lib/types/web.d.ts +17 -2
  37. package/lib/types/web.d.ts.map +1 -1
  38. package/lib/web-request.js +11 -2
  39. package/lib/web-request.js.map +1 -1
  40. package/lib/web.js +88 -5
  41. package/lib/web.js.map +1 -1
  42. package/package.json +2 -1
  43. package/src/client/index.tsx +53 -14
  44. package/src/client/paste-images.tsx +331 -15
  45. package/src/config.ts +40 -0
  46. package/src/image-input-variants.ts +688 -0
  47. package/src/index.ts +18 -1
  48. package/src/paste-images.ts +39 -0
  49. package/src/runtime.ts +42 -3
  50. package/src/web-request.ts +12 -2
  51. package/src/web.ts +90 -4
@@ -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":"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;IACtB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE;QACnB,mEAAmE;QACnE,OAAO,CAAC,EAAE,OAAO,CAAA;QACjB,yFAAyF;QACzF,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;QACpB;;;;;;WAMG;QACH,UAAU,CAAC,EAAE,OAAO,CAAA;KACrB,CAAA;CACF;AAED,4DAA4D;AAC5D,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,mBAAmB,CAyB7C,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;IACrB,kBAAkB,EAAE;QAClB,OAAO,EAAE,OAAO,CAAA;QAChB,SAAS,EAAE,MAAM,EAAE,CAAA;QACnB,UAAU,EAAE,OAAO,CAAA;KACpB,CAAA;CACF;AAOD;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,GAAE,mBAAwB,GAAG,2BAA2B,CA+F3F"}
@@ -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"}
@@ -312,9 +312,11 @@ export interface VisionToolkitHealthResult {
312
312
  artifactDirectory: HealthCheck;
313
313
  tempDirectory: HealthCheck;
314
314
  service: HealthCheck;
315
+ model: HealthCheck;
315
316
  };
316
317
  healthy: boolean;
317
318
  connectionTested: boolean;
319
+ modelTested: boolean;
318
320
  }
319
321
  /** Shared per-call execution options. */
320
322
  export interface ToolCallOptions {
@@ -349,6 +351,7 @@ export declare class VisionToolkitRuntime {
349
351
  private runOperation;
350
352
  /** Resolve the configured credential at the remote-operation boundary. */
351
353
  resolveVisionEnv(): Promise<UpstreamEnvironment>;
354
+ private visionEnv;
352
355
  private pathPolicy;
353
356
  private validateImage;
354
357
  private accountImage;
@@ -379,8 +382,8 @@ export declare class VisionToolkitRuntime {
379
382
  /** html_screenshot: render only a path-fenced local HTML file in the pinned Chrome adapter. */
380
383
  htmlScreenshot(request: HtmlScreenshotRequest, options: ToolCallOptions): Promise<HtmlScreenshotResult>;
381
384
  private writableDirectoryCheck;
382
- /** health: inspect local readiness and optionally probe the configured `/models` endpoint. */
383
- health(testConnection: boolean, options: ToolCallOptions): Promise<VisionToolkitHealthResult>;
385
+ /** Health: inspect local readiness, optionally probe `/models`, and explicitly test one real multimodal request. */
386
+ health(testConnection: boolean, options: ToolCallOptions, testModel?: boolean): Promise<VisionToolkitHealthResult>;
384
387
  /** Report the packaged upstream snapshot version. */
385
388
  checkoutVersion(): Promise<string>;
386
389
  /** Prepared Python command. */
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -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. */
@@ -65,11 +65,26 @@ export declare class VisionToolkitWebBackend {
65
65
  /** Handle the exact Settings route. */
66
66
  handle(req: IncomingMessage, res: ServerResponse): Promise<void>;
67
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;
68
81
  /**
69
82
  * Attach optional Web routes whenever a webServer service is present.
70
83
  * @param ctx - plugin context owning route effects.
71
84
  * @param backend - Settings handler.
72
85
  * @param artifacts - signed Artifact handler.
86
+ * @param pastedImages - pasted-image workspace handler.
87
+ * @param pastePolicy - paste-policy verdict resolver (sessionId, selection, modelLabel).
73
88
  */
74
- 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;
75
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;AAkCD,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;AA0FzC,+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,cAAc;YAoBd,MAAM;IAkBpB,uCAAuC;IACjC,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAuDvE;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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"}
@@ -1,5 +1,10 @@
1
- /** Accept state-changing requests only from the DSH Web application's origin. */
2
- export function sameOriginPost(req) {
1
+ /**
2
+ * Accept a request only from the DSH Web application's origin. Method-agnostic:
3
+ * the same fence guards state-changing POSTs and policy GETs.
4
+ * @param req - the incoming request whose headers carry the origin evidence.
5
+ * @returns whether the request may be answered.
6
+ */
7
+ export function sameOriginRequest(req) {
3
8
  const fetchSite = req.headers['sec-fetch-site'];
4
9
  if (fetchSite === 'cross-site')
5
10
  return false;
@@ -17,4 +22,8 @@ export function sameOriginPost(req) {
17
22
  return false;
18
23
  }
19
24
  }
25
+ /** Accept state-changing requests only from the DSH Web application's origin. */
26
+ export function sameOriginPost(req) {
27
+ return sameOriginRequest(req);
28
+ }
20
29
  //# sourceMappingURL=web-request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-request.js","sourceRoot":"","sources":["../src/web-request.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC/C,IAAI,SAAS,KAAK,YAAY;QAAE,OAAO,KAAK,CAAA;IAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,MAAM,CAAA;IACjH,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAA;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"web-request.js","sourceRoot":"","sources":["../src/web-request.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAoB;IACpD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC/C,IAAI,SAAS,KAAK,YAAY;QAAE,OAAO,KAAK,CAAA;IAC5C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAA;IACjC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,KAAK,aAAa,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,MAAM,CAAA;IACjH,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAA;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACpC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAA;QAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,CAAA;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,GAAoB;IACjD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC"}