Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ dist
out
.DS_Store
.eslintcache
.codegraph/
*.log*

# Local documents and config
Expand Down
12 changes: 12 additions & 0 deletions docs/provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,18 @@ https://example.com/provider/manifest.json
file:///absolute/path/to/provider/manifest.json
```

远程 Provider 只接受 HTTPS 地址;本地 `file://` 仅用于开发和离线安装。安装后应用会记录 bundle 入口文件的 SHA-256 摘要,启动时如果入口文件被改动会拒绝执行。

自定义 Provider 是本地可执行 JS,默认不执行。确认来源可信后,需要在启动应用前设置:

```bash
SIGHTFLOW_ALLOW_CUSTOM_PROVIDER_CODE=1
```

内置 Doubao Provider 不需要这个开关。

启用后的自定义 Provider 会运行在独立的 Electron utility process 中,并设置单次运行超时。这个隔离能避免 Provider 代码直接进入主进程,但它不是完整 OS 级沙箱;不要安装不可信来源的 Provider。

注意这里填写的是 `manifest.json` 地址,不是 bundle 文件地址。应用会根据 manifest 中的 `entry` 下载或读取实际入口文件。

## Doubao Provider 示例
Expand Down
1 change: 1 addition & 0 deletions electron.vite.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ export default defineConfig({
rollupOptions: {
input: {
index: resolve(__dirname, 'src/main/index.ts'),
'provider-worker': resolve(__dirname, 'src/main/provider-worker.ts'),
'test-cli': resolve(__dirname, 'scripts/test-cli.ts')
}
}
Expand Down
4 changes: 3 additions & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ import eslintPluginReactHooks from 'eslint-plugin-react-hooks'
import eslintPluginReactRefresh from 'eslint-plugin-react-refresh'

export default defineConfig(
{ ignores: ['**/node_modules', '**/dist', '**/out'] },
{
ignores: ['**/node_modules', '**/dist', '**/out', 'resources/providers/**/*.js', 'scripts/*.js']
},
tseslint.configs.recommended,
eslintPluginReact.configs.flat.recommended,
eslintPluginReact.configs.flat['jsx-runtime'],
Expand Down
Loading