🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@hklmtt/falinks

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hklmtt/falinks - npm Package Compare versions

Comparing version
0.13.2
to
0.13.3
+4
-0
CHANGELOG.md
# Changelog
## 0.13.3
- **修复:todo 模式(无人值守)禁止向 boss 提问**:todolist 运行中,AI 调 `ask(to="boss")` 会进 pending 等人回答 → 无人值守的长任务被卡住。现 running 时硬拦截 ask→boss,返回提示让 lead/员工自行按最优推荐方案继续、把假设与取舍写进结果或项目状态档。问同事/lead 的 ask(协作、不等人)照常;启动前「建单 → ask boss 同意 → todostart」的审批 ask(状态 idle)不受影响。todo 下发模板同步加一句【无人值守】提醒,让 lead 遇决策点自行拍板。
## 0.13.2

@@ -4,0 +8,0 @@

@@ -73,2 +73,7 @@ import http from 'node:http';

if (to === 'boss' || to === '老板') {
// todo 模式无人值守:running 时禁止向 boss 提问(没人即时回答会卡死长任务),让 agent 自行按最优方案推进。
// 启动前的审批 ask(状态 idle)不受影响;问同事/lead 的 ask(下面分支)照常。
const todoState = deps.todo?.state();
if (todoState?.state === 'running')
return ok({ ok: false, error: t().askBlockedInTodo });
const id = questions.add({ from: agentName, question, options });

@@ -75,0 +80,0 @@ return ok({ ok: true, id, pending: true });

+2
-1

@@ -212,2 +212,3 @@ /** 英文词典:typeof zh 钉死 key 与签名——漏译/签名不符直接编译失败。 */

toolDescAsk: 'Pose a multiple-choice question. Send to the boss (to="boss") and the boss sees clickable options and picks one; send to a coworker and they receive a message with numbered options and reply via sendmsg with their pick.',
askBlockedInTodo: '[todolist running · unattended] Asking the boss is disabled — nobody is watching to answer, and a question would stall the long-running task. Proceed with your best recommended option based on available info, and record your assumptions and trade-offs in the task result / project state doc.',
toolDescWho: 'View the online roster',

@@ -242,3 +243,3 @@ toolDescTaskdone: '[todolist only · lead only] report the current task finished: taskdone(seq, status:"done"|"failed", result). The system records it and dispatches the next task; report failures too — the list never stops.',

(isResend ? '' : '⚠ This round all workers are brand-new sessions with no memory — when dispatching, fully brief them on background, goals, and acceptance criteria. ') +
`Done means: only after every worker you dispatched has finished and reported back do you call taskdone(seq:${seq}, status:"done"|"failed", result:"…"); the next task is dispatched only after that — reporting early would cut off their in-progress work. If waiting on a long script/external process, call taskwait(seq:${seq}, minutes:est, reason:"…"). Do not reply to this via sendmsg; normal team/boss communication is fine meanwhile.`,
`Done means: only after every worker you dispatched has finished and reported back do you call taskdone(seq:${seq}, status:"done"|"failed", result:"…"); the next task is dispatched only after that — reporting early would cut off their in-progress work. If waiting on a long script/external process, call taskwait(seq:${seq}, minutes:est, reason:"…"). Do not reply to this via sendmsg. [Unattended] At any decision point, proceed with your best recommended option and record assumptions/trade-offs in the result or project state doc — do NOT ask the boss (ask→boss is rejected while running); normal sendmsg communication with the team is fine meanwhile.`,
todoNudgeMsg: (seq, pos, total, body, nextMinutes, escalated) => `[Task #${seq} (${pos}/${total}) progress check] Everyone has been idle for a while with no report. Task: ${body}\n` +

@@ -245,0 +246,0 @@ (escalated

@@ -220,2 +220,3 @@ /** 中文基准词典:全部用户可见/注入员工的文案都从这里出。纯文本=字符串,带变量=箭头函数。 */

toolDescAsk: '出选择题。发给老板(to="boss")老板会看到可点选项并回选;发给同事则对方收到带编号选项的消息,用 sendmsg 回选哪个。',
askBlockedInTodo: '【todo 模式运行中·无人值守】禁止向 boss 提问——没人会即时回答,提问会卡死长任务。请基于现有信息按你的最优推荐方案继续推进,并在任务结果/项目状态档里写明你的假设与取舍。',
toolDescWho: '查看在线花名册',

@@ -250,3 +251,3 @@ toolDescTaskdone: '【todolist 专用·仅组长】上报当前任务完结:taskdone(seq, status:"done"|"failed", result)。系统记录后才会下发下一条;失败也要报,不会中断清单。',

(isResend ? '' : '⚠ 本轮员工均为全新会话、无任何历史记忆,分派时务必把背景、目标、验收标准一次交代清楚。') +
`完成判定:只有当你分派出去的所有员工都已完成并向你回报后,才调 taskdone(seq:${seq}, status:"done"|"failed", result:"…")上报,系统才会下发下一条——否则会中断他们正在进行的工作。如需等待长脚本/外部过程,调 taskwait(seq:${seq}, minutes:预计分钟, reason:"…")声明等待。勿用 sendmsg 回复本条,过程中可照常与团队/boss 沟通。`,
`完成判定:只有当你分派出去的所有员工都已完成并向你回报后,才调 taskdone(seq:${seq}, status:"done"|"failed", result:"…")上报,系统才会下发下一条——否则会中断他们正在进行的工作。如需等待长脚本/外部过程,调 taskwait(seq:${seq}, minutes:预计分钟, reason:"…")声明等待。勿用 sendmsg 回复本条。【无人值守】遇到决策点请自行采用最优推荐方案推进、把假设与取舍写进结果或项目状态档,切勿向 boss 提问(运行中 ask boss 会被拒);过程中可照常用 sendmsg 与团队沟通。`,
todoNudgeMsg: (seq, pos, total, body, nextMinutes, escalated) => `【任务 #${seq}(第 ${pos}/${total} 条)进度巡查】全员空闲已久仍未收到上报。任务内容:${body}\n` +

@@ -253,0 +254,0 @@ (escalated

{
"name": "@hklmtt/falinks",
"version": "0.13.2",
"version": "0.13.3",
"description": "把多个终端 AI CLI(Claude Code、Codex…)编排成一间办公室:分屏真实窗口里的员工,通过 MCP 总线互相对话协作,外加一个控制台。",

@@ -5,0 +5,0 @@ "keywords": [