New:Socket for Asana Is Now Available.Learn more
Get Started

dsh-decision-split

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dsh-decision-split - npm Package Compare versions

Comparing version
0.1.7
to
0.1.8
+45
-3
lib/client.js

@@ -109,2 +109,39 @@ window.__ModuleLoader__.load({

function hasTable(text) {
var lines = text.split("\n");
for (var i = 0; i < lines.length - 1; i++) {
if (/^\s*\|[^\n]+\|\s*$/.test(lines[i]) && /^\s*\|?[\s:\-|]+\|?\s*$/.test(lines[i + 1]) && lines[i + 1].indexOf("-") !== -1) return true;
}
return false;
}
function headingCount(text) {
var m = text.match(/^#{1,6}\s+\S/gm);
return m === null ? 0 : m.length;
}
function isPlanLike(text) {
if (typeof text !== "string") return false;
text = text.replace(/\r\n?/g, "\n");
if (hasTable(text)) return true;
return text.length >= 800 && headingCount(text) >= 2;
}
function tocOf(text) {
text = text.replace(/\r\n?/g, "\n");
var lines = text.split("\n");
var toc = [];
for (var i = 0; i < lines.length; i++) {
var m = lines[i].match(/^(#{1,6})\s+(.*)$/);
if (m && m[2].trim() !== "") toc.push(m[2].trim());
}
return toc;
}
function tocMarkdown(text) {
var toc = tocOf(text);
if (toc.length === 0) return "";
return toc.map(function (t) { return "- " + t; }).join("\n");
}
function escapeHtml(s) {

@@ -230,3 +267,8 @@ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");

var setDraft = st[1];
if (summary === null) return null;
var isFallback = false;
if (summary === null) {
if (!isPlanLike(text)) return null;
summary = tocMarkdown(text);
isFallback = true;
}

@@ -249,7 +291,7 @@ function send() {

React.createElement("div", { className: "ddec-card-head" },
React.createElement("span", { className: "ddec-card-title" }, "决策摘要"),
React.createElement("span", { className: "ddec-card-title" }, isFallback ? "决策分屏" : "决策摘要"),
React.createElement("button", { type: "button", className: "ddec-btn ddec-btn-ghost", onClick: openSide }, "侧栏查看全文")
),
summary === ""
? React.createElement("div", { className: "ddec-md ddec-summary ddec-empty-text" }, "(该段暂未填写具体决策点)")
? React.createElement("div", { className: "ddec-md ddec-summary ddec-empty-text" }, isFallback ? "(完整方案见侧栏:点右上角「侧栏查看全文」)" : "(该段暂未填写具体决策点)")
: React.createElement("div", { className: "ddec-md ddec-summary", dangerouslySetInnerHTML: { __html: renderMarkdown(summary) } }),

@@ -256,0 +298,0 @@ React.createElement("textarea", {

@@ -1,1 +0,9 @@

export function apply() {}
export const inject = ["systemPrompt"];
export function apply(ctx) {
ctx.systemPrompt.section({
name: "dsh-decision-split:decision-format",
order: 190,
text: '当你的回复包含需要用户拍板的决策点,或给出多个方案让用户选择时,请在回复末尾追加一个「## 决策摘要」段,用「**决策 N:**」逐条列出需要用户决定的点(N 从 1 开始)。界面会自动据此弹出决策卡片,用户可在卡片里直接输入决策并回传给你。仅在确实需要用户决策时才添加。',
});
}
+1
-1
{
"name": "dsh-decision-split",
"version": "0.1.7",
"version": "0.1.8",
"description": "决策分屏:agent 输出含「决策摘要」段的方案时,主窗口显示摘要与决策编辑框,右侧详情栏独立展示完整 markdown,决策一键发回 agent。",

@@ -5,0 +5,0 @@ "type": "module",

@@ -37,13 +37,13 @@ # dsh-decision-split

## 使用约定
## 使用方式
在对话开始时给 agent 一条指令(或写进你的 agent 预设),让它输出方案时固定带决策段:
装上即用,无需额外配置:
> 输出方案时,如果包含需要我决策的事项或多种方案对比(如 A/B/C 选一),请在方案最后用 `## 决策摘要` 段列出所有需要我拍板的决策点,每个决策点用 `**决策 N:**` 开头。
- **自动触发(host 注入提示词)**:插件会在系统提示中告知 agent——当回复包含需要你拍板的决策点、或给出多个方案让你选择时,自动在回复末尾追加 `## 决策摘要` 段。agent 据此按需输出决策段,决策卡随之出现。
- **长方案兜底(客户端自动识别)**:即使 agent 没写决策标题,只要回复含 markdown 表格、或较长且含多个标题(≥800 字且 ≥2 个标题),决策分屏卡片也会自动出现——摘要区显示方案目录、右侧栏展示全文。
- **标题触发**:回复中出现以下任一标题(任意层级 `#`–`######`、忽略大小写、允许结尾冒号)即触发:
插件识别的标记标题(任意标题层级 `#`–`######`、忽略大小写、允许结尾冒号):
`决策摘要` · `决策要点` · `待决策清单` · `决策清单` · `决策事项` · `方案对比` · `方案选择` · `需要决策` · `待决策` · `待确认` · `待拍板` · `请你决定` · `请拍板` · `决策项` · `决策点` · `Decision Summary` · `Decision Points` · `Decision Required` · `Decision Needed` · `Please Decide` · `Please Choose` · `Need Your Decision` · `Options` · `Choices`
> 只要方案中出现以上任一标题(如 `## 方案对比` 或 `## 待确认`),决策卡就会自动出现——即使 agent 没写 `决策摘要` 段。
> 也可在对话里给 agent 补一句「输出方案时若需我拍板,请在最后用 `## 决策摘要` 段列出决策点」——手动约定与自动注入效果相同,属可选的加强。

@@ -50,0 +50,0 @@ ## License