dsh-reference-anything 0.4.1 โ†’ 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -75,6 +75,8 @@ Type `@`, search across enabled sources, and insert the selected reference into
75
75
 
76
76
  ## ๐Ÿ“ฐ News
77
77
 
78
+ - **2026-09-28 ยท v0.4.2 โ€” Important update** โ€” Fixed a fatal plugin compatibility error with the current DSH interface. During plugin loading, DSH now requires every strict `agentSearch` registration codec to provide a `create()` validator factory; v0.4.1 supplied only validation rules, so DSH rejected the plugin before search could run. This release adds the required factory and fixes command icon sizing plus bilingual command labels in the native picker.
79
+
78
80
  - **2026-09-25 ยท v0.4.1** โ€” We're back!!๐ŸŽ‰๐ŸŽ‰ Improved local-agent session titles by reading Codex's own `session_index.jsonl` and added Pi/Codex title support. Restored the native DSH handling for `@` menu group headings to avoid translucent overlap and unnecessary custom blur rendering; bounded index reads to 16 MiB for predictable resource use.
79
81
 
80
82
  - **2026-09-03 ยท v0.4.0** โ€” **Compatibility: DSH `>=0.1.2-rc.1`.** Migrated Skills discovery to the DSH RC1 Skills Remote, restored historical reference grants through the RC1 Session snapshot API, and verified the plugin against DSH `0.1.2-rc.1`.
@@ -108,7 +110,7 @@ Install the stable `0.3.x` line for the current stable DSH SDK:
108
110
  dsh plugin --profile web add dsh-reference-anything@latest
109
111
  ```
110
112
 
111
- Install `v0.4.1` on DSH `>=0.1.2-rc.1`:
113
+ Install `v0.4.2` on DSH `>=0.1.2-rc.1`:
112
114
 
113
115
  ```powershell
114
116
  dsh plugin --profile web add dsh-reference-anything@alpha
package/lib/client.js CHANGED
@@ -14989,7 +14989,7 @@ var agentLookup = {
14989
14989
  wire: "agentId",
14990
14990
  source: "lookup",
14991
14991
  lookup: "agent",
14992
- codec: { mode: "strict", typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", schema: external_exports.string().min(1) }
14992
+ codec: { mode: "strict", typeSymbol: "@deepseek-ai/dsh-session/types#SessionId", schema: external_exports.string().min(1), create: () => external_exports.string().min(1) }
14993
14993
  };
14994
14994
  var searchInputSchema = external_exports.object({
14995
14995
  query: external_exports.string(),
@@ -15198,7 +15198,7 @@ var REFERENCE_ANYTHING_INVOCATIONS = [
15198
15198
  descriptor("openListReindex", [{ name: "input", wire: "input", source: "json", codec: strict("OpenListMountInput", openListMountInputSchema) }], strict("OpenListReindex", external_exports.object({ supported: external_exports.boolean(), reason: external_exports.string().optional() }).readonly()), true)
15199
15199
  ];
15200
15200
  function strict(type, schema) {
15201
- return { mode: "strict", typeSymbol: `dsh-reference-anything#${type}`, schema };
15201
+ return { mode: "strict", typeSymbol: `dsh-reference-anything#${type}`, schema, create: () => schema };
15202
15202
  }
15203
15203
  function descriptor(method, parameters, result, cancelled = false) {
15204
15204
  return {
@@ -16883,7 +16883,13 @@ var PICKER_ICON_MARKER = {
16883
16883
  font: "\uE114",
16884
16884
  refresh: "\uE115",
16885
16885
  agent: "\uE116",
16886
- drive: "\uE117"
16886
+ drive: "\uE117",
16887
+ goal: "\uE125",
16888
+ plan: "\uE126",
16889
+ feedback: "\uE127",
16890
+ compact: "\uE128",
16891
+ permission: "\uE129",
16892
+ export: "\uE12A"
16887
16893
  };
16888
16894
  var SESSION_ICON_MARKER = PICKER_ICON_MARKER.session;
16889
16895
  var SKILL_ICON_MARKER = PICKER_ICON_MARKER.skill;
@@ -16937,6 +16943,25 @@ var PICKER_ICON_NODES = {
16937
16943
  { tag: "path", attrs: { d: "M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16" } },
16938
16944
  { tag: "path", attrs: { d: "M16 16h5v5" } }
16939
16945
  ],
16946
+ goal: [
16947
+ { tag: "path", attrs: { d: "M14.5001 8C14.5 9.28552 14.1188 10.5422 13.4045 11.611C12.6903 12.6799 11.6752 13.5129 10.4875 14.0049C9.29982 14.4968 7.99295 14.6255 6.73212 14.3747C5.4713 14.124 4.31314 13.505 3.4041 12.596C2.49514 11.687 1.87614 10.5288 1.62537 9.26798C1.37459 8.00716 1.50331 6.70028 1.99525 5.51261C2.48719 4.32494 3.32025 3.30981 4.3891 2.59557C5.45795 1.88134 6.71458 1.50008 8.0001 1.5" } },
16948
+ { tag: "path", attrs: { d: "M11.5 8C11.5001 8.69227 11.2948 9.36901 10.9102 9.94463C10.5257 10.5202 9.97901 10.9689 9.33944 11.2338C8.69986 11.4987 7.99609 11.5681 7.31712 11.433C6.63816 11.2979 6.01449 10.9645 5.52501 10.475C5.03548 9.98552 4.70209 9.36185 4.56702 8.68289C4.43195 8.00392 4.50127 7.30015 4.76619 6.66057C5.03112 6.021 5.47976 5.47436 6.05538 5.08978C6.631 4.70519 7.30774 4.49995 8.00001 4.5" } },
16949
+ { tag: "path", attrs: { d: "M8.00024 7.99976L11.2 4.80005" } }
16950
+ ],
16951
+ feedback: [{ tag: "path", attrs: { d: "M4.74024 9.11029L1.82882 7.79865L12.9665 2.60943L12.3914 13.1388L6.12677 9.83657M8.44336 11.0825L6.2832 13.2843V9.86772L12.972 2.78748" } }],
16952
+ plan: [
16953
+ { tag: "path", attrs: { d: "M4.9375 5.90295H11.0625" } },
16954
+ { tag: "path", attrs: { d: "M4.9375 9.02991H8.27841" } },
16955
+ { tag: "path", attrs: { d: "M12.5 1.32617C13.3039 1.32617 14 1.95171 14 2.77637V7.61328L13 8.68164V2.77637C13 2.55186 12.8007 2.32617 12.5 2.32617H3.5C3.1993 2.32617 3 2.55186 3 2.77637V13.2246C3.00044 13.4489 3.19963 13.6738 3.5 13.6738H8.32812L7.39258 14.6738H3.5C2.69637 14.6738 2.00042 14.0489 2 13.2246V2.77637C2 1.95171 2.69613 1.32617 3.5 1.32617H12.5Z" } },
16956
+ { tag: "path", attrs: { d: "M8.97212 14.3693C9.17511 14.5723 9.37811 14.7753 9.5811 14.9783C9.67012 14.8953 9.75914 14.8123 9.84815 14.7293C11.4505 13.2352 13.0528 11.7411 14.6551 10.247C14.7441 10.164 14.8331 10.081 14.9221 9.99803C14.5989 9.6748 14.2756 9.35157 13.9524 9.02834C13.8694 9.11736 13.7864 9.20637 13.7034 9.29539C12.2093 10.8977 10.7152 12.5 9.22113 14.1023C9.13813 14.1913 9.05513 14.2803 8.97212 14.3693Z" } }
16957
+ ],
16958
+ permission: [
16959
+ { tag: "path", attrs: { d: "M6.59624 2.14853C7.50155 1.80917 8.49914 1.80919 9.40444 2.14859L13.9245 3.84317V7.11961C13.9245 11.6089 10.5565 13.5975 8.00035 14.5779C5.44423 13.5975 2.07544 11.6089 2.07544 7.11961V3.84317L6.59624 2.14853Z" } },
16960
+ { tag: "path", attrs: { d: "M8 4.39209V9.89209" } },
16961
+ { tag: "path", attrs: { d: "M8 10.8081V11.8081" } }
16962
+ ],
16963
+ compact: [{ tag: "circle", attrs: { cx: "8", cy: "8", r: "6.5" } }, { tag: "path", attrs: { d: "M8 1.5A6.5 6.5 0 0 1 14.5 8" } }],
16964
+ export: [{ tag: "path", attrs: { d: "M8 1.95317V10.0469M4.25 6.29688L8 10.0469L11.75 6.29688M1.5 10.0469V13.158C1.5 13.3937 1.60536 13.6198 1.79289 13.7865C1.98043 13.9532 2.23478 14.0469 2.5 14.0469H13.5C13.7652 14.0469 14.0198 13.9532 14.2071 13.7865C14.3946 13.6198 14.5 13.3937 14.5 13.158V10.0469" } }],
16940
16965
  // FolderClosed
16941
16966
  folder: [
16942
16967
  { tag: "path", attrs: { d: "M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" } },
@@ -17667,6 +17692,48 @@ function decodeDriveReference(value) {
17667
17692
  function formatDriveMention(reference) {
17668
17693
  return `@[${escapeLabel(reference.label)}](${driveReferenceUri(reference.id)})`;
17669
17694
  }
17695
+ var COMMAND_ICON_KIND = {
17696
+ goal: "goal",
17697
+ plan: "plan",
17698
+ feedback: "feedback",
17699
+ compact: "compact",
17700
+ permission: "permission",
17701
+ export: "export"
17702
+ };
17703
+ var COMMAND_DESCRIPTION_EN = {
17704
+ goal: "Set or view the goal for a long-running task",
17705
+ plan: "Enter or leave plan mode",
17706
+ feedback: "Record feedback about this session",
17707
+ compact: "Compact older conversation history",
17708
+ permission: "Switch the permission preset (sandbox mode + approval policy)",
17709
+ export: "Download this Session log as a ZIP archive"
17710
+ };
17711
+ var COMMAND_DESCRIPTION_ZH = {
17712
+ goal: "\u8BBE\u7F6E\u6216\u67E5\u770B\u957F\u671F\u4EFB\u52A1\u76EE\u6807",
17713
+ plan: "\u8FDB\u5165\u6216\u9000\u51FA\u8BA1\u5212\u6A21\u5F0F",
17714
+ feedback: "\u53D1\u9001\u5173\u4E8E\u5F53\u524D\u4F1A\u8BDD\u7684\u53CD\u9988",
17715
+ compact: "\u538B\u7F29\u4EE5\u4E0A\u5BF9\u8BDD\u5185\u5BB9",
17716
+ permission: "\u5207\u6362\u6743\u9650\u9884\u8BBE\uFF08\u6C99\u7BB1\u6A21\u5F0F\u4E0E\u5BA1\u6279\u7B56\u7565\uFF09",
17717
+ export: "\u5C06\u5F53\u524D\u4F1A\u8BDD\u5185\u5BB9\u5BFC\u51FA\u4E3A ZIP"
17718
+ };
17719
+ var COMMAND_LABEL_EN = {
17720
+ goal: "Goal",
17721
+ plan: "Plan",
17722
+ feedback: "Feedback",
17723
+ compact: "Compact",
17724
+ permission: "Permission",
17725
+ export: "Export",
17726
+ model: "Model"
17727
+ };
17728
+ var COMMAND_LABEL_ZH = {
17729
+ goal: "\u76EE\u6807",
17730
+ plan: "\u8BA1\u5212",
17731
+ feedback: "\u53CD\u9988",
17732
+ compact: "\u538B\u7F29",
17733
+ permission: "\u6743\u9650",
17734
+ export: "\u4E0B\u8F7D\u65E5\u5FD7",
17735
+ model: "\u6A21\u578B"
17736
+ };
17670
17737
  function createCommandSource(load, t = fallback, options = { ...DEFAULT_SOURCE_OPTIONS, order: 0 }) {
17671
17738
  const source = {
17672
17739
  trigger: "@",
@@ -17676,13 +17743,19 @@ function createCommandSource(load, t = fallback, options = { ...DEFAULT_SOURCE_O
17676
17743
  const scoped = scopedQuery(query, "commands");
17677
17744
  if (scoped === void 0) return [];
17678
17745
  const needle = scoped.toLocaleLowerCase();
17679
- return (await load(session.sessionId, signal)).filter((row) => row.name.toLocaleLowerCase().includes(needle)).map((row) => ({
17680
- name: row.name,
17681
- description: row.description,
17682
- hint: row.input?.hint,
17683
- icon: COMMAND_ICON_MARKER,
17684
- value: encodeCandidate({ kind: "command", name: row.name })
17685
- }));
17746
+ return (await load(session.sessionId, signal)).filter((row) => row.name.toLocaleLowerCase().includes(needle)).map((row) => {
17747
+ return {
17748
+ name: (() => {
17749
+ const key = row.name.toLocaleLowerCase();
17750
+ const zh2 = navigator.language.toLowerCase().startsWith("zh");
17751
+ return zh2 ? `${COMMAND_LABEL_ZH[key] ?? row.name} ${row.name}` : COMMAND_LABEL_EN[key] ?? row.name;
17752
+ })(),
17753
+ description: (navigator.language.toLowerCase().startsWith("zh") ? COMMAND_DESCRIPTION_ZH[row.name.toLocaleLowerCase()] : COMMAND_DESCRIPTION_EN[row.name.toLocaleLowerCase()]) ?? row.description,
17754
+ hint: row.input?.hint,
17755
+ icon: PICKER_ICON_MARKER[COMMAND_ICON_KIND[row.name.toLocaleLowerCase()] ?? "command"],
17756
+ value: encodeCandidate({ kind: "command", name: row.name })
17757
+ };
17758
+ });
17686
17759
  },
17687
17760
  onPick({ candidate }) {
17688
17761
  const value = decodeCandidate(candidate.value);
@@ -29623,8 +29696,11 @@ var css = `
29623
29696
  [data-composer-card] [role="listbox"] [role="option"][data-dsh-ref-menu-action]{color:var(--dsw-alias-label-tertiary,#737780)!important}
29624
29697
  [data-composer-card] [role="listbox"] [role="option"][data-dsh-ref-menu-action]>span:last-child:not(:first-child){display:none!important}
29625
29698
  [data-composer-card] [role="listbox"] .dsh_ref_projected_icon,[data-composer-card] [role="listbox"] .dsh_ref_picker_icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;flex:none;width:16px!important;height:16px!important;line-height:1!important;color:var(--dsw-alias-label-secondary,#5f636b)}
29699
+ [data-composer-card] [role="listbox"] .dsh_ref_command_icon{width:18px!important;height:18px!important}
29700
+ [data-composer-card] [role="listbox"] .dsh_ref_command_icon>svg{width:18px!important;height:18px!important}
29626
29701
  [data-composer-card] [role="listbox"] .dsh_ref_dual_icon{width:36px!important;gap:4px}
29627
29702
  [data-composer-card] [role="listbox"] :is(.dsh_ref_projected_icon,.dsh_ref_picker_icon)>svg{display:block;width:16px;height:16px;overflow:visible}
29703
+ [data-composer-card] [role="listbox"] .dsh_ref_command_icon,[data-composer-card] [role="listbox"] .dsh_ref_command_icon>svg{width:18px!important;height:18px!important}
29628
29704
  [data-composer-card] [data-decoration="chip"][data-dsh-ref-chip-icon]>:first-child>svg{visibility:hidden!important}
29629
29705
  [data-composer-card] [data-decoration="chip"][data-dsh-ref-chip-icon]>:first-child:after{content:"";position:absolute;top:50%;left:50%;display:block;width:16px;height:16px;transform:translate(-50%,-50%);background:currentColor;-webkit-mask:var(--dsh-ref-chip-icon-mask) center/contain no-repeat;mask:var(--dsh-ref-chip-icon-mask) center/contain no-repeat;pointer-events:none}
29630
29706
  [data-composer-card] [data-composer-chip][data-dsh-ref-chip-icon]>:first-child>svg{background:currentColor;-webkit-mask:var(--dsh-ref-chip-icon-mask) center/contain no-repeat;mask:var(--dsh-ref-chip-icon-mask) center/contain no-repeat}
@@ -29969,6 +30045,7 @@ function adoptReferenceIconProjection() {
29969
30045
  node2.replaceChildren(createPickerIcon(kind), ...secondary === void 0 ? [] : [createPickerIcon(secondary)]);
29970
30046
  node2.classList.remove("dsh_ref_projected_icon");
29971
30047
  node2.classList.add("dsh_ref_picker_icon");
30048
+ node2.classList.toggle("dsh_ref_command_icon", ["goal", "plan", "feedback", "compact", "permission", "export"].includes(kind));
29972
30049
  node2.classList.toggle("dsh_ref_dual_icon", secondary !== void 0);
29973
30050
  node2.dataset.dshRefMenuIcon = kind;
29974
30051
  };
@@ -29994,7 +30071,10 @@ function adoptReferenceIconProjection() {
29994
30071
  const source = heading2?.getAttribute("data-source");
29995
30072
  const name2 = option.children.item(1)?.textContent?.trim() ?? "";
29996
30073
  const description = option.children.item(2)?.textContent?.trim() ?? "";
29997
- if (source === "Commands") return paintPicker(icon, "command");
30074
+ if (source === "Commands") {
30075
+ const commandIcons = { goal: "goal", plan: "plan", feedback: "feedback", compact: "compact", permission: "permission", export: "export" };
30076
+ return paintPicker(icon, commandIcons[name2.toLocaleLowerCase()] ?? "command");
30077
+ }
29998
30078
  if (source === "Skills") return paintPicker(icon, "skill");
29999
30079
  if (source === "Files and folders") return paintPicker(icon, workspacePathIconKind(name2, name2.endsWith("/") ? "directory" : "file"));
30000
30080
  if (source === "DSH sessions") return paintPicker(icon, "session");
package/lib/contract.js CHANGED
@@ -25,7 +25,7 @@ export const driveCandidateSchema = z.object({
25
25
  * lookup back to DSH's native Remotes and removed its last other caller.
26
26
  */
27
27
  const agentLookup = { name: 'agent', wire: 'agentId', source: 'lookup', lookup: 'agent',
28
- codec: { mode: 'strict', typeSymbol: '@deepseek-ai/dsh-session/types#SessionId', schema: z.string().min(1) } };
28
+ codec: { mode: 'strict', typeSymbol: '@deepseek-ai/dsh-session/types#SessionId', schema: z.string().min(1), create: () => z.string().min(1) } };
29
29
  export const searchInputSchema = z.object({
30
30
  query: z.string(), provider: providerSchema.optional(), limit: z.number().int().min(1).max(100),
31
31
  }).readonly();
@@ -159,7 +159,7 @@ export const REFERENCE_ANYTHING_INVOCATIONS = [
159
159
  descriptor('openListReindex', [{ name: 'input', wire: 'input', source: 'json', codec: strict('OpenListMountInput', openListMountInputSchema) }], strict('OpenListReindex', z.object({ supported: z.boolean(), reason: z.string().optional() }).readonly()), true),
160
160
  ];
161
161
  function strict(type, schema) {
162
- return { mode: 'strict', typeSymbol: `dsh-reference-anything#${type}`, schema };
162
+ return { mode: 'strict', typeSymbol: `dsh-reference-anything#${type}`, schema, create: () => schema };
163
163
  }
164
164
  function descriptor(method, parameters, result, cancelled = false) {
165
165
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-reference-anything",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "Reference commands, skills, workspace files, DSH sessions, local agent transcripts, cloud-drive files, and mirrored web-chat conversations from one DeepSeek Harness @ menu",
5
5
  "license": "MIT",
6
6
  "publishConfig": {