dsh-zotero 0.4.0 → 0.4.1

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.en.md CHANGED
@@ -65,6 +65,7 @@ The plugin provides a settings card under **Settings → Plugins** where you can
65
65
 
66
66
  - Zotero ≥ 7 with local API enabled: **Settings → Advanced → "Allow other applications on this computer to communicate with Zotero"**
67
67
  - Node.js ≥ 22.19 (or ≥ 24)
68
+ - dsh 0.1.0-rc.7 series host (all `@deepseek-ai/dsh-*` peer dependencies are `^0.1.0-rc.7`)
68
69
  - Local API at `http://127.0.0.1:23119/api`, unauthenticated, read-only
69
70
 
70
71
  ## Usage example
@@ -100,6 +101,14 @@ More examples in [Features](docs/features.md).
100
101
  - **Full-text evidence depends on Zotero's index**: unindexed PDFs yield no full-text passages
101
102
  - **Attachment depth depends on the harness**: `zotero_attachment` returns the file location; reading the PDF further needs a matching host capability
102
103
 
104
+ ## Permissions and external side effects
105
+
106
+ - **Network**: HTTP requests go only to `http://127.0.0.1:23119/api` (redirects are not followed); `resolveConfig` enforces a loopback address
107
+ - **Filesystem**: read-only — `zotero_attachment` verifies attachment paths with `existsSync`; no file writes
108
+ - **Persistence**: the only write comes from the settings card under Settings → Plugins, saved to the `zotero:` user layer of `$DSH_HOME/settings.yaml`
109
+ - **No shell / native / background tasks**: the plugin runs no shell commands, loads no native modules, and starts no daemon
110
+ - **Restart**: after installing or removing the plugin, restart dsh and start a new session; configuration changes hot-reload on save without a restart
111
+
103
112
  ## Documentation
104
113
 
105
114
  | Doc | Covers |
package/README.md CHANGED
@@ -65,6 +65,7 @@ dsh plugin --profile <name> add ./dsh-zotero-*.tgz
65
65
 
66
66
  - Zotero ≥ 7 桌面版,启用本地 API:**设置 → 高级 → "允许其他应用程序与 Zotero 通信"**
67
67
  - Node.js ≥ 22.19(或 ≥ 24)
68
+ - 宿主 dsh 0.1.0-rc.7 系列(`@deepseek-ai/dsh-*` peer 依赖均为 `^0.1.0-rc.7`)
68
69
  - 本地 API 地址 `http://127.0.0.1:23119/api`,无认证,只读
69
70
 
70
71
  ## 使用示例
@@ -100,6 +101,14 @@ Agent → zotero_export(refs: [1,2,3], format: "bibtex")
100
101
  - **全文证据依赖 Zotero 索引**:未索引的 PDF 无法提供全文段落
101
102
  - **附件深度取决于宿主**:`zotero_attachment` 返回文件位置,继续阅读 PDF 需要宿主具备对应能力
102
103
 
104
+ ## 权限与外部副作用
105
+
106
+ - **网络**:只向 `http://127.0.0.1:23119/api` 发起 HTTP 请求(不跟随重定向),`resolveConfig` 强制 loopback 地址
107
+ - **文件**:只读——`zotero_attachment` 用 `existsSync` 校验 Zotero 返回的附件路径,不写文件系统
108
+ - **持久化**:唯一写入来自 Settings → Plugins 中的配置卡片,保存到 `$DSH_HOME/settings.yaml` 的 `zotero:` 用户层
109
+ - **无 Shell / native / 后台任务**:插件不执行 shell 命令、不加载 native 模块、不启动常驻进程
110
+ - **重启**:安装或卸载插件后需要重启 dsh 并新建会话;配置修改保存即热更新,无需重启
111
+
103
112
  ## 文档
104
113
 
105
114
  | 文档 | 内容 |
package/lib/client.js CHANGED
@@ -1510,10 +1510,10 @@ var import_dsh_client_ui_primitives3 = require("@deepseek-ai/dsh-client-ui-primi
1510
1510
 
1511
1511
  // src/client/build-info.ts
1512
1512
  function buildVersion() {
1513
- return true ? "0.4.0" : "unknown";
1513
+ return true ? "0.4.1" : "unknown";
1514
1514
  }
1515
1515
  function buildCommit() {
1516
- return true ? "7740200" : "unknown";
1516
+ return true ? "a0f5e3f" : "unknown";
1517
1517
  }
1518
1518
  function buildInfoOf() {
1519
1519
  return `${buildVersion()} \xB7 ${buildCommit()}`;
@@ -1537,7 +1537,7 @@ if (typeof document !== "undefined" && !document.querySelector('style[data-plugi
1537
1537
  tag.textContent = style;
1538
1538
  document.head.appendChild(tag);
1539
1539
  }
1540
- var workspace_default = { "detailToggle": "Tz8rAq_detailToggle", "filterArrowRight": "Tz8rAq_filterArrowRight", "passageHead": "Tz8rAq_passageHead", "evidenceEntry": "Tz8rAq_evidenceEntry", "inspector": "Tz8rAq_inspector", "action": "Tz8rAq_action", "badge": "Tz8rAq_badge", "inspectorTabs": "Tz8rAq_inspectorTabs", "cardStack": "Tz8rAq_cardStack", "exportStack": "Tz8rAq_exportStack", "filterBar": "Tz8rAq_filterBar", "filterArrowLeft": "Tz8rAq_filterArrowLeft", "listbox": "Tz8rAq_listbox", "empty": "Tz8rAq_empty", "spacer": "Tz8rAq_spacer", "lensTab": "Tz8rAq_lensTab", "detailTabCount": "Tz8rAq_detailTabCount", "emptyIcon": "Tz8rAq_emptyIcon", "actionRow": "Tz8rAq_actionRow", "emptyWrap": "Tz8rAq_emptyWrap", "emptyText": "Tz8rAq_emptyText", "statusText": "Tz8rAq_statusText", "sectionLabel": "Tz8rAq_sectionLabel", "diagnosis": "Tz8rAq_diagnosis", "detailTabActive": "Tz8rAq_detailTabActive", "listItemSelected": "Tz8rAq_listItemSelected", "inspectorTitle": "Tz8rAq_inspectorTitle", "inspectorBody": "Tz8rAq_inspectorBody", "refresh": "Tz8rAq_refresh", "panel": "Tz8rAq_panel", "menuButton": "Tz8rAq_menuButton", "listItem": "Tz8rAq_listItem", "listItemTitle": "Tz8rAq_listItemTitle", "workspace": "Tz8rAq_workspace", "sidebar": "Tz8rAq_sidebar", "badges": "Tz8rAq_badges", "backAction": "Tz8rAq_backAction", "note": "Tz8rAq_note", "section": "Tz8rAq_section", "view": "Tz8rAq_view", "sourceTag": "Tz8rAq_sourceTag", "lensTabCount": "Tz8rAq_lensTabCount", "inspectorTitleWrap": "Tz8rAq_inspectorTitleWrap", "inspectorMeta": "Tz8rAq_inspectorMeta", "availability": "Tz8rAq_availability", "listItemMeta": "Tz8rAq_listItemMeta", "passage": "Tz8rAq_passage", "starterRow": "Tz8rAq_starterRow", "lensTabActive": "Tz8rAq_lensTabActive", "filterArrow": "Tz8rAq_filterArrow", "summaryLine": "Tz8rAq_summaryLine", "filterClear": "Tz8rAq_filterClear", "toolbar": "Tz8rAq_toolbar", "evidencePage": "Tz8rAq_evidencePage", "inspectorHead": "Tz8rAq_inspectorHead", "passages": "Tz8rAq_passages", "exportsPage": "Tz8rAq_exportsPage", "emptyNote": "Tz8rAq_emptyNote", "detailTab": "Tz8rAq_detailTab", "warning": "Tz8rAq_warning", "line": "Tz8rAq_line", "lensBar": "Tz8rAq_lensBar" };
1540
+ var workspace_default = { "emptyIcon": "Tz8rAq_emptyIcon", "emptyText": "Tz8rAq_emptyText", "inspector": "Tz8rAq_inspector", "filterArrowLeft": "Tz8rAq_filterArrowLeft", "panel": "Tz8rAq_panel", "section": "Tz8rAq_section", "diagnosis": "Tz8rAq_diagnosis", "refresh": "Tz8rAq_refresh", "starterRow": "Tz8rAq_starterRow", "filterBar": "Tz8rAq_filterBar", "listItemTitle": "Tz8rAq_listItemTitle", "sectionLabel": "Tz8rAq_sectionLabel", "passage": "Tz8rAq_passage", "detailTabActive": "Tz8rAq_detailTabActive", "lensTabActive": "Tz8rAq_lensTabActive", "filterClear": "Tz8rAq_filterClear", "emptyNote": "Tz8rAq_emptyNote", "lensBar": "Tz8rAq_lensBar", "actionRow": "Tz8rAq_actionRow", "inspectorTitle": "Tz8rAq_inspectorTitle", "empty": "Tz8rAq_empty", "detailTab": "Tz8rAq_detailTab", "exportsPage": "Tz8rAq_exportsPage", "action": "Tz8rAq_action", "inspectorHead": "Tz8rAq_inspectorHead", "summaryLine": "Tz8rAq_summaryLine", "menuButton": "Tz8rAq_menuButton", "passageHead": "Tz8rAq_passageHead", "detailToggle": "Tz8rAq_detailToggle", "toolbar": "Tz8rAq_toolbar", "backAction": "Tz8rAq_backAction", "note": "Tz8rAq_note", "warning": "Tz8rAq_warning", "detailTabCount": "Tz8rAq_detailTabCount", "sidebar": "Tz8rAq_sidebar", "cardStack": "Tz8rAq_cardStack", "inspectorMeta": "Tz8rAq_inspectorMeta", "sourceTag": "Tz8rAq_sourceTag", "inspectorTabs": "Tz8rAq_inspectorTabs", "badge": "Tz8rAq_badge", "inspectorBody": "Tz8rAq_inspectorBody", "listbox": "Tz8rAq_listbox", "evidencePage": "Tz8rAq_evidencePage", "exportStack": "Tz8rAq_exportStack", "lensTabCount": "Tz8rAq_lensTabCount", "passages": "Tz8rAq_passages", "emptyWrap": "Tz8rAq_emptyWrap", "workspace": "Tz8rAq_workspace", "spacer": "Tz8rAq_spacer", "listItem": "Tz8rAq_listItem", "listItemSelected": "Tz8rAq_listItemSelected", "filterArrowRight": "Tz8rAq_filterArrowRight", "line": "Tz8rAq_line", "evidenceEntry": "Tz8rAq_evidenceEntry", "lensTab": "Tz8rAq_lensTab", "listItemMeta": "Tz8rAq_listItemMeta", "inspectorTitleWrap": "Tz8rAq_inspectorTitleWrap", "view": "Tz8rAq_view", "filterArrow": "Tz8rAq_filterArrow", "badges": "Tz8rAq_badges", "statusText": "Tz8rAq_statusText", "availability": "Tz8rAq_availability" };
1541
1541
 
1542
1542
  // src/client/components/workspace/WorkspaceToolbar.tsx
1543
1543
  var import_jsx_runtime4 = require("react/jsx-runtime");
@@ -1869,7 +1869,7 @@ if (typeof document !== "undefined" && !document.querySelector('style[data-plugi
1869
1869
  tag.textContent = style2;
1870
1870
  document.head.appendChild(tag);
1871
1871
  }
1872
- var open_default = { "note": "jGTtSG_note", "srOnly": "jGTtSG_srOnly", "link": "jGTtSG_link", "blocked": "jGTtSG_blocked", "linkWrap": "jGTtSG_linkWrap", "button": "jGTtSG_button" };
1872
+ var open_default = { "note": "jGTtSG_note", "button": "jGTtSG_button", "blocked": "jGTtSG_blocked", "link": "jGTtSG_link", "linkWrap": "jGTtSG_linkWrap", "srOnly": "jGTtSG_srOnly" };
1873
1873
 
1874
1874
  // src/client/components/open/BlockedOpenAction.tsx
1875
1875
  var import_jsx_runtime7 = require("react/jsx-runtime");
@@ -2038,7 +2038,7 @@ if (typeof document !== "undefined" && !document.querySelector('style[data-plugi
2038
2038
  tag.textContent = style3;
2039
2039
  document.head.appendChild(tag);
2040
2040
  }
2041
- var SourcesList_default = { "exportSection": "-IqP-a_exportSection", "cardTitle": "-IqP-a_cardTitle", "exportCode": "-IqP-a_exportCode", "link": "-IqP-a_link", "chevron": "-IqP-a_chevron", "card": "-IqP-a_card", "passages": "-IqP-a_passages", "exportSectionActions": "-IqP-a_exportSectionActions", "exportKeys": "-IqP-a_exportKeys", "passageHead": "-IqP-a_passageHead", "note": "-IqP-a_note", "lineAction": "-IqP-a_lineAction", "documentTitle": "-IqP-a_documentTitle", "passage": "-IqP-a_passage", "exportPre": "-IqP-a_exportPre", "unresolvedItems": "-IqP-a_unresolvedItems", "unresolvedItemsText": "-IqP-a_unresolvedItemsText", "lineActions": "-IqP-a_lineActions", "exportSectionTitle": "-IqP-a_exportSectionTitle", "exportSectionCount": "-IqP-a_exportSectionCount", "exportKeysText": "-IqP-a_exportKeysText", "availability": "-IqP-a_availability", "exportCodeHead": "-IqP-a_exportCodeHead", "exportRow": "-IqP-a_exportRow", "exportSectionHead": "-IqP-a_exportSectionHead", "exportTitle": "-IqP-a_exportTitle", "chevronOpen": "-IqP-a_chevronOpen", "documentKey": "-IqP-a_documentKey", "exportFacts": "-IqP-a_exportFacts", "exportToggle": "-IqP-a_exportToggle", "cardHead": "-IqP-a_cardHead", "exportHead": "-IqP-a_exportHead", "line": "-IqP-a_line", "sourceTag": "-IqP-a_sourceTag", "exportBody": "-IqP-a_exportBody", "exportCodeLabel": "-IqP-a_exportCodeLabel" };
2041
+ var SourcesList_default = { "link": "-IqP-a_link", "exportSectionActions": "-IqP-a_exportSectionActions", "lineAction": "-IqP-a_lineAction", "exportRow": "-IqP-a_exportRow", "exportSectionHead": "-IqP-a_exportSectionHead", "exportTitle": "-IqP-a_exportTitle", "chevronOpen": "-IqP-a_chevronOpen", "line": "-IqP-a_line", "card": "-IqP-a_card", "exportKeys": "-IqP-a_exportKeys", "unresolvedItems": "-IqP-a_unresolvedItems", "cardTitle": "-IqP-a_cardTitle", "note": "-IqP-a_note", "passage": "-IqP-a_passage", "exportCode": "-IqP-a_exportCode", "chevron": "-IqP-a_chevron", "sourceTag": "-IqP-a_sourceTag", "unresolvedItemsText": "-IqP-a_unresolvedItemsText", "cardHead": "-IqP-a_cardHead", "exportToggle": "-IqP-a_exportToggle", "exportSection": "-IqP-a_exportSection", "exportSectionCount": "-IqP-a_exportSectionCount", "lineActions": "-IqP-a_lineActions", "exportCodeHead": "-IqP-a_exportCodeHead", "exportSectionTitle": "-IqP-a_exportSectionTitle", "documentTitle": "-IqP-a_documentTitle", "availability": "-IqP-a_availability", "exportHead": "-IqP-a_exportHead", "exportFacts": "-IqP-a_exportFacts", "exportPre": "-IqP-a_exportPre", "passages": "-IqP-a_passages", "exportCodeLabel": "-IqP-a_exportCodeLabel", "exportBody": "-IqP-a_exportBody", "passageHead": "-IqP-a_passageHead", "documentKey": "-IqP-a_documentKey", "exportKeysText": "-IqP-a_exportKeysText" };
2042
2042
 
2043
2043
  // src/client/components/CopyButton.tsx
2044
2044
  var import_jsx_runtime10 = require("react/jsx-runtime");