【免费下载链接】dsh-ads把 DSH 变成 2005 年门户网站Parody ads, fake games, and popups for the DSH Web UI项目地址https://gitcode.com/gh_mirrors/ds/dsh-ads点击查看免费下载dsh-ads是把 DSHDeepSeek Harness变成 2005 年门户网站的 DSH 广告插件。它的架构精髓在于Node 端与浏览器端彻底分离一半跑在宿主服务器进程里、只负责发现与缓存另一半跑在浏览器里、只负责渲染广告两者之间只用两根 HTTP 路由传数据。看懂这套双入口 cordis 补丁的设计你就能明白一个 DSH 插件是如何被完整装进一个 profile 的。先看懂整体一个插件两个半身dsh-ads不是一坨代码而是两个能独立加载的入口各自只干自己擅长的事Node 端服务器半身运行在 DSH 的 Web 宿主进程里。它不画任何像素只向宿主的 HTTP 服务器注册两条路由并在后台搜索 GitHub 的dsh-plugintopic、做缓存与降级。浏览器端浏览器半身运行在用户的页面里。它注册三个 UI 插槽把浮动广告、推理中途门、对话内广告挂进会话并按语言热切换整套素材。两半之间的线只有一根——src/protocol.ts 里定义的两条路由和它们的数据结构。Node 端只干两件事注册两条路由 Node 端的入口是 src/index.ts构建产物是 lib/index.js。它对宿主只声明了一个能力注入export const inject [webServer]然后在apply()里通过ctx.webServer.register(...)把两条精确路由挂到宿主 Web 服务器上路由路径提供什么赞助清单/dsh-ads/registry.json带dsh-plugintopic 的社区插件列表已过滤、已截断星检测/dsh-ads/star-check.json宿主自己那个 GitHub 账号有没有 star 本插件它的几个设计点很值得学动态层才有 Node 端存在的意义。内置横幅是烤进浏览器包的根本不需要宿主只有给真实社区插件打广告这一层才需要宿主去搜 GitHub。多级降级链。清单发现走loadRegistry()先用认证过的ghCLI再用环境变量 token再退回 GitHub 匿名公共 API最后落到一份内置快照——保证离线、被限流、没凭据都不断广告。缓存 并发合并。清单默认缓存 30 分钟cacheMinutes同时用inflight把并发请求合并避免多个会话同时打开时各自 shell out 一次gh星检测则一旦看到 star 就进程内记住没看到不记方便先 star 再点重新检测。浏览器端三个插槽把广告挂进会话 浏览器端入口是 src/client/index.tsx产物 lib/client.js。它注入[slots, locale]在apply()里注册三种性质完全不同的挂载点插槽作用对应组件conversation.input.dock挂载浮动广告层 推理中途门零行内占位全部走 PortalAdDockEntrysettings.section设置面板里多一页广告非官方开关AdsSectionEntryconversation.chat.turnTail把广告插进对话正文而非浮在上面InlineAdEntry推理中途门流式回答时假装暂停 inference的彩蛋就挂在 dock 上广告开关则单独成页而不是藏在会消失的海报里一个关键细节这三个入口都从ctx.locale这个observable读语言所以切换 DSH「设置 → 语言」时当前页面立即换掉整套素材、文案和交互不用刷新。两者之间只走一根线protocol 路由与数据流 两半不共享任何运行内存唯一的契约是 src/protocol.tsREGISTRY_ROUTE /dsh-ads/registry.json、STAR_ROUTE /dsh-ads/star-check.jsonRegistryPayloadsource标记来自gh-cli / github-token / github-public / snapshot、StarCheckPayloadstarred / absent / unavailable浏览器端在 src/client/registry.ts 里每次页面加载只 fetch 一次模块级共享 Promise拿到清单后一份清单、两处投放侧栏 gutter 取轮播子集中文 8 个 / 英文 3 个对话内 feed 拿完整列表做公平轮转见 src/client/feed.ts最少被看到的先上。星检测同理浏览器先问 Node 路由unavailable就退回匿名翻页 stargazerssrc/client/star-check.ts。数据谁产生谁消费走哪条路由社区插件清单Node 端catalog.ts浏览器端registry.ts/dsh-ads/registry.json星状态Node 端star-host.ts浏览器端star-check.ts回退/dsh-ads/star-check.json降级是优雅且正确的浏览器端拿不到路由比如 TUI、ACP、headless 这种没有 Web 宿主的场景fetchPlugins()直接吞掉错误返回空列表——内置横幅照常只是少了动态那一层。cordis 补丁与双入口注入插件如何被装进 DSH 这部分是插件怎么被加载的关键答案在 package.json 与 cordis.patch.yml。1cordis 补丁bundle 级注入cordis.patch.yml 只有一小段作用是把本插件插入某个 profile 的layer 栈- insert: - id: dsh-ads name: nagi-ovo/dsh-ads它由package.json的dsh.bundle.patch指向。这就是cordis 补丁——在打包/装配阶段声明把dsh-ads这一层加进去。2双入口exports 级注入package.json的exports同时暴露了两个入口分别给两种运行环境入口指向跑在哪apply签名.lib/index.jsNode 宿主apply(ctx: HostContext, config?)./clientlib/client.js浏览器apply(ctx: ClientContext)3客户端额外注入dsh.clientdsh.client.platform: web标记这是 Web 客户端插件dsh.client.inject: [deepseek-ai/dsh-client-locale]再把语言包一起注入进浏览器端——这正是上面locale 热切换能用的前提。4构建怎么产出这两个入口tsdown.config.ts 定义了两个构建任务Node 半src/index.ts→lib/index.jsESM、platform: node、带.d.ts框架包cordis、schemastery保持neverBundle外部。浏览器半src/client/index.tsx→lib/client.jsCJS、platform: browser把平台模块表保持外部、其余含 base64 内联的素材全部打进单文件并用window.__ModuleLoader__.load({ id, factory })包一层供 DSH Web 壳的模块加载器在/plugins/id/client.js处执行。小结一张表看懂双半身 补丁 双入口维度Node 端浏览器端入口文件src/index.ts → lib/index.jssrc/client/index.tsx → lib/client.js导出格式ESMCJS__ModuleLoader__包装注入能力webServerslots、locale核心职责注册两条路由、发现与缓存三个插槽渲染广告、拉取路由缺失时降级无动态层内置广告照常无广告层TUI/ACP/headless 正确降级装配方式dsh.bundle.patch exports.dsh.client.* exports./client一句话记忆Node 端管从哪来发现 缓存浏览器端管长什么样渲染 热切换protocol.ts是它们之间唯一的线cordis.patch.yml负责把插件插进 profileexports的两个入口则分别交给服务器和浏览器去加载。想动手看代码建议从 src/protocol.ts 这条线入手再分头读两半的apply()最后对照 tsdown.config.ts 理解产物是怎么被分别生成的。赞分享【免费下载链接】dsh-ads把 DSH 变成 2005 年门户网站Parody ads, fake games, and popups for the DSH Web UI项目地址https://gitcode.com/gh_mirrors/ds/dsh-ads点击查看免费下载相关推荐深入解析 Firefox Send 前端应用层 app/双端入口、choo 路由与浏览器端加密架构深入解析 Firefox Send 前端应用层 app/双端入口、choo 路由与浏览器端加密架构 导读 本文以仓库 app/readme.md https:后端前端协程与Flow在MVVMLin中的应用响应式编程最佳实践协程与Flow在MVVMLin中的应用响应式编程最佳实践 MVVMLin是一个基于MVVM架构用KotlinRetrofit协程ViewbindingOCLP-Mod 补丁机制全解析OpenCore 设置、注入 Kext 与磁盘补丁的完整实现指南OCLP Mod 补丁机制全解析OpenCore 设置、注入 Kext 与磁盘补丁的完整实现指南 导读 本文以 OCLP Mod 仓库的官方补丁说明文档 d操作系统驱动开发固件上一篇awesome-macOS300 款 macOS 工具合集指南下一篇Fort Firewall 防火墙配置教程5分钟配出第一条拦截规则附排错清单创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
OpenCode 本地模型 4 步跑通:Ollama 接入离线 AI 编码 OpenCode 本地模型 4 步跑通:Ollama 接入离线 AI 编码 【免费下载链接】termai A powerful AI coding agent. Built for the terminal. 项目地址: https://gitcode.com/gh_mirrors/te/termai
上周在高铁上,我想顺手把手头一个 Go 项目里的 bug 改… · 2026/11/5 20:57:12
电工证蔡甸能复审吧?证书过期了不知道怎么复审延期?多久拿证全搞懂 电工证蔡甸能复审吧?证书过期了不知道怎么复审延期?多久拿证全搞懂 证书过期了不知道怎么复审延期?这几乎是每个电工从业者都可能遇到的难题。特别是像蔡甸地区的电工,很多人在忙于日常作业时,常常忽略了证书的复审时间,等真正需要使用证书时才发现已经… · 2026/11/7 16:39:55
电工证复审有补贴么?外省电工证转过来怎么办理电子证书 电工证复审有补贴么?外省电工证转过来怎么办理电子证书 之前考的证在外省能不能转过来?这个问题困扰了不少在济源从事市政公用工程的电工。特别是现在,很多地方都在推进 电子证书… · 2026/11/7 16:39:55
电工证不能报电表?2026河南最新政策下怎么考才能上岗? 电工证不能报电表?2026河南最新政策下怎么考才能上岗? 你是不是正愁找不到工作,又听说 急需特种作业证才能上岗找工作 ?偏偏现在手里 电工证不能报电表 ,还听说 2026河南最新政策… · 2026/11/7 16:39:55
电工证上盖章要多久?上岗必备流程全解析 电工证上盖章要多久?上岗必备流程全解析 怕考不过白交培训费?很多在鹤壁的中小施工企业负责人,都曾因不了解电工证上盖章要多久而焦虑。特别是电工证作为上岗必备的资质证书,不仅关系到能否顺利上岗,还直接影响到职业发展和岗位晋升。今天就来聊聊电工证… · 2026/11/7 16:39:55
市桥考电工证通过率揭秘:别让培训费打水漂 市桥考电工证通过率揭秘:别让培训费打水漂 怕考不过白交培训费?这事儿真不是危言耸听,市桥考电工证每年都有不少考生因为准备不到位、信息不对称而栽了跟头。尤其是刚入行的新人,动辄几千块的培训费,要是没通过考试,损失可不是一笔小数目。不过好消息是… · 2026/11/7 16:39:55
低压电工证理论答题卡怎么考?学历不高也能报!官方报名入口在这里 低压电工证理论答题卡怎么考?学历不高也能报!官方报名入口在这里 你是不是也担心自己学历不高,报不了低压电工证?别急,今天就给你说清楚低压电工证理论答题卡怎么考,还有 官方报名入口 在哪,不怕你没文化,只怕你不行动。… · 2026/11/7 16:38:55
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41
电工作业提示版通过率揭秘:怎么考才能一次过? 电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41
电工证年审报名千万别踩坑 外省证转过来要搞清这几点 电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23