dsh-tacit 0.2.0 → 0.2.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.md CHANGED
@@ -6,14 +6,14 @@ A plugin for <a href="https://www.npmjs.com/package/@deepseek-ai/dsh">DeepSeek H
6
6
  <p align="center">
7
7
  <a href="https://www.npmjs.com/package/dsh-tacit"><img alt="npm" src="https://img.shields.io/npm/v/dsh-tacit"></a>
8
8
  <a href="https://github.com/hackernotfound/dsh-tacit/actions/workflows/test.yml"><img alt="test" src="https://github.com/hackernotfound/dsh-tacit/actions/workflows/test.yml/badge.svg"></a>
9
- <a href="LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
10
- <a href="README.zh.md">中文</a>
9
+ <a href="https://github.com/hackernotfound/dsh-tacit/blob/main/LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
10
+ <a href="https://github.com/hackernotfound/dsh-tacit/blob/main/docs/README.zh.md">中文</a>
11
11
  </p>
12
12
 
13
13
  You keep writing prompts the way you already do. Tacit watches how each turn
14
14
  *actually* went — retries, tool errors, and above all the message you send
15
15
  when the agent got it wrong — and turns your habits into a few directives the
16
- agent follows in every new session. No clicks, about $0.001 per lesson.
16
+ agent follows in every new conversation. No clicks, $0.001–0.003 per lesson.
17
17
 
18
18
  ```
19
19
  you: "make the login page better"
@@ -21,7 +21,7 @@ agent: …stumbles…
21
21
  you: "no, I meant the Next.js app under apps/web"
22
22
 
23
23
  Tacit: learns → "The user often omits which app they mean — check apps/web first."
24
- injects it into every later session's system prompt.
24
+ injects it into every later conversation's system prompt.
25
25
  You never have to say it again.
26
26
  ```
27
27
 
@@ -32,52 +32,55 @@ dsh plugin --profile web add dsh-tacit
32
32
  ```
33
33
 
34
34
  Restart `dsh web`, refresh the page. Optional kick-start: **Settings → Tacit →
35
- *Learn from my last 20 turns*** (≈ $0.02, once).
35
+ *Learn from my last 20 turns*** (≈ $0.02–0.05, once).
36
36
 
37
37
  Requires DeepSeek Harness `>= 0.1.1-rc.1`, Node `>= 22`, and a DeepSeek API key
38
38
  already configured in the harness (Tacit never reads it).
39
39
 
40
40
  ## What you get
41
41
 
42
- - **Zero-click learning** messy turns and your own corrections are analyzed
43
- in the background, with the previous turn as context. Capped per day
44
- (30 by default). *≈ $0.001 per analysis.*
45
- - **Directives that earn their place** learned directives are injected as a
46
- small system-prompt section you can read, edit, toggle or delete. A new one
47
- starts as a *candidate* and is retired automatically if your messy-turn
48
- rate gets worse. *free*
49
- - **✨ Improve** — a composer button that rewrites your current draft using
50
- what Tacit has learned, with a before/after preview and 👍/👎. *≈ $0.001 per click*
51
- - **Measured, not guessed** — Settings shows your real trend: messy-turn rate
52
- and tokens per turn, first 20 turns vs. latest 20. *free*
42
+ | | What | Cost |
43
+ | --- | --- | --- |
44
+ | **Zero-click learning** | messy turns and your own corrections are analyzed in the background, with the previous turn as context; automatic analyses are capped per day (30 by default) | $0.001–0.003 each |
45
+ | **Directives that earn their place** | learned directives are injected as a short system-prompt section you can read, edit, toggle or delete; a new one starts as a *candidate* and is retired if your messy-turn rate gets worse | free |
46
+ | **✨ Improve** | a composer button that rewrites your current draft using what Tacit has learned, with a before/after preview and 👍/👎 | $0.001–0.002 per click |
47
+ | **Measured, not guessed** | Settings shows your real trend messy-turn rate and tokens per turn, first 20 turns vs. latest 20 | free |
53
48
 
54
49
  ## How it works
55
50
 
56
- 1. A pure fold over the session's events produces a bounded digest per turn.
57
- 2. When a turn ends messy, or your next message reads as a correction, one
58
- small `deepseek-v4-flash` call (low reasoning effort, structured output)
59
- analyzes the prompt.
60
- 3. Every few analyses, one more call distills the findings into 2–4 directives.
61
- 4. The directives are rendered as a ≤300-token section of the system prompt —
62
- the exact text is visible in Settings, and nothing else about your prompts
63
- leaves the machine.
51
+ 1. Tacit keeps a small, bounded digest of every turn: the prompt, what tools ran,
52
+ what went wrong, how it ended.
53
+ 2. When a turn ends messy, or your next message reads as a correction, one small
54
+ `deepseek-v4-flash` call analyzes that prompt and records what was missing.
55
+ 3. Every few analyses, one more call distills the findings into 1–4 one-sentence
56
+ directives for the agent. Each new directive is on trial for 10 turns.
57
+ 4. The directives become a ~300-token section of the system prompt in every new
58
+ conversation. The exact text is visible in Settings; only clipped digests of
59
+ your turns ever leave the machine.
60
+
61
+ The full walkthrough with every number and a diagram:
62
+ [How it works](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/how-it-works.md).
64
63
 
65
64
  ## Privacy & cost, in one paragraph
66
65
 
67
66
  Tacit never sees your API key (every call goes through the harness's own model
68
- service), only calls the allowlisted official model, keeps reports and
69
- directives in `~/.dsh/storages/tacit/`, refuses cross-site requests to its own
70
- routes, and never deletes anything but its own reports. The dollar figures are
71
- estimates at list price; a cost plugin such as `dsh-cost-meter` shows the real
72
- number. Full details, including the honest list of limitations:
73
- [docs/privacy-and-cost.md](docs/privacy-and-cost.md).
74
-
75
- ## More
76
-
77
- [Configuration](docs/configuration.md) ·
78
- [Privacy, cost & limitations](docs/privacy-and-cost.md) ·
79
- [Architecture](docs/architecture.md) ·
80
- [Contributing](CONTRIBUTING.md) ·
81
- [Changelog](CHANGELOG.md)
67
+ service), only calls the allowlisted official models over your session's own
68
+ provider route, keeps reports and directives in `~/.dsh/storages/tacit/`, refuses
69
+ cross-site requests to its own routes, and never deletes anything but its own
70
+ reports. Dollar figures are estimates at list price; a cost plugin such as
71
+ `dsh-cost-meter` shows the real number. The full data-flow and cost tables, and
72
+ the honest list of limitations:
73
+ [Privacy, cost & limitations](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/privacy-and-cost.md).
74
+
75
+ ## Documentation
76
+
77
+ | | |
78
+ | --- | --- |
79
+ | [Getting started](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/getting-started.md) | install, check it's on, bootstrap, where things are in the UI, troubleshooting |
80
+ | [How it works](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/how-it-works.md) | the pipeline step by step, with a diagram and a glossary |
81
+ | [Privacy, cost & limitations](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/privacy-and-cost.md) | what stays local, what is sent, what each call costs, what it can't do yet |
82
+ | [Configuration](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/configuration.md) | every setting, defaults and ranges |
83
+ | [Architecture](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/architecture.md) | for contributors: modules, hooks, routes, storage |
84
+ | [Contributing](https://github.com/hackernotfound/dsh-tacit/blob/main/CONTRIBUTING.md) · [Changelog](https://github.com/hackernotfound/dsh-tacit/blob/main/CHANGELOG.md) | |
82
85
 
83
86
  MIT © hackernotfound
package/docs/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # Tacit documentation
2
+
3
+ Tacit is a plugin for [DeepSeek Harness](https://www.npmjs.com/package/@deepseek-ai/dsh)
4
+ (`dsh`). It watches how your conversations with the agent *actually* go, learns what
5
+ you habitually leave unsaid, and tells the agent for you — through a short, editable
6
+ section of the system prompt.
7
+
8
+ Pick the question you have:
9
+
10
+ | I want to… | Read |
11
+ | --- | --- |
12
+ | Install it and see it working in five minutes | [Getting started](getting-started.md) |
13
+ | Understand what it does, step by step, and what the words mean | [How it works](how-it-works.md) |
14
+ | Know what leaves my machine, what it costs, and what it can't do yet | [Privacy, cost & limitations](privacy-and-cost.md) |
15
+ | Change a setting | [Configuration](configuration.md) |
16
+ | Read or change the code | [Architecture](architecture.md) · [Contributing](../CONTRIBUTING.md) |
17
+ | See what changed between versions | [Changelog](../CHANGELOG.md) |
18
+
19
+ Reading order for a newcomer: Getting started → How it works → Privacy & cost.
20
+
21
+ 中文:[README.zh.md](README.zh.md)(仅 README 有中文版)。
@@ -0,0 +1,82 @@
1
+ <h1 align="center">Tacit</h1>
2
+
3
+ <p align="center"><b>学习你在提示词里没说出口的东西——并替你告诉智能体。</b><br>
4
+ 一个 <a href="https://www.npmjs.com/package/@deepseek-ai/dsh">DeepSeek Harness</a> 插件。</p>
5
+
6
+ <p align="center">
7
+ <a href="https://www.npmjs.com/package/dsh-tacit"><img alt="npm" src="https://img.shields.io/npm/v/dsh-tacit"></a>
8
+ <a href="https://github.com/hackernotfound/dsh-tacit/actions/workflows/test.yml"><img alt="test" src="https://github.com/hackernotfound/dsh-tacit/actions/workflows/test.yml/badge.svg"></a>
9
+ <a href="https://github.com/hackernotfound/dsh-tacit/blob/main/LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
10
+ <a href="https://github.com/hackernotfound/dsh-tacit/blob/main/README.md">English</a>
11
+ </p>
12
+
13
+ > 本文由英文版翻译而来,尚未经过母语者校对;以 [README.md](https://github.com/hackernotfound/dsh-tacit/blob/main/README.md) 为准,欢迎提交修正。
14
+
15
+ 你照常写提示词。Tacit 在后台观察每一轮*实际*的走向——重试、工具报错,尤其是
16
+ 智能体做错之后你发的那条消息——把你的习惯变成几条指令,让智能体在每个新对话里
17
+ 自动遵守。无需点击,每次学习 $0.001–0.003。
18
+
19
+ ```
20
+ 你: "把登录页做好一点"
21
+ 智能体: …走偏…
22
+ 你: "不对,我是说 apps/web 下的 Next.js 应用"
23
+
24
+ Tacit: 学到 → "用户常常不说明是哪个应用——先查 apps/web。"
25
+ 注入之后每个对话的系统提示。
26
+ 你再也不用重复说了。
27
+ ```
28
+
29
+ ## 安装——30 秒
30
+
31
+ ```bash
32
+ dsh plugin --profile web add dsh-tacit
33
+ ```
34
+
35
+ 重启 `dsh web`,刷新页面。可选的快速起步:**设置 → Tacit → *从我最近 20 轮中学习***
36
+ (约 $0.02–0.05,一次性)。
37
+
38
+ 需要 DeepSeek Harness `>= 0.1.1-rc.1`、Node `>= 22`,以及已在 harness 里配置好的
39
+ DeepSeek API Key(Tacit 从不读取它)。
40
+
41
+ ## 你会得到什么
42
+
43
+ | | 是什么 | 费用 |
44
+ | --- | --- | --- |
45
+ | **零点击学习** | 不顺的轮次和你自己的纠正会在后台被分析,并带上上一轮作为上下文;自动分析每天有上限(默认 30 次) | 每次 $0.001–0.003 |
46
+ | **指令要靠表现留下** | 学到的指令作为一小段系统提示注入,你可以查看、编辑、开关或删除;新指令先是*候选*,如果你的不顺轮次比例变差就会退役 | 免费 |
47
+ | **✨ 改进** | 输入框里的按钮,用 Tacit 学到的东西重写当前草稿,带前后对比预览和 👍/👎 | 每次点击 $0.001–0.002 |
48
+ | **测量而非猜测** | 设置页显示你的真实趋势:不顺轮次比例和每轮 token 数,最早 20 轮 vs 最近 20 轮 | 免费 |
49
+
50
+ ## 它是怎么工作的
51
+
52
+ 1. Tacit 为每一轮保留一份很小的有界摘要:提示词、跑了哪些工具、哪里出错、怎么结束。
53
+ 2. 当一轮结束得不顺、或你的下一条消息像是纠正,就用一次很小的 `deepseek-v4-flash`
54
+ 调用分析那条提示词,记下缺了什么。
55
+ 3. 每隔几次分析,再用一次调用把发现蒸馏成 1–4 条一句话的指令。每条新指令试用 10 轮。
56
+ 4. 指令成为每个新对话系统提示里约 300 token 的一段——原文在设置里可见;离开本机的
57
+ 只有你各轮的裁剪摘要。
58
+
59
+ 完整流程(含每个数字和一张图,英文):
60
+ [How it works](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/how-it-works.md)。
61
+
62
+ ## 隐私与成本,一段话
63
+
64
+ Tacit 从不接触你的 API Key(所有调用都经过 harness 自己的模型服务),只通过你会话
65
+ 自己的 provider 路由调用白名单里的官方模型,报告和指令都存放在
66
+ `~/.dsh/storages/tacit/`,拒绝对自身路由的跨站请求,除了自己的报告之外从不删除任何
67
+ 东西。美元数字是按公开价格的估算;`dsh-cost-meter` 这样的成本插件会显示真实花费。
68
+ 完整的数据流与成本表、以及坦白的限制清单(英文):
69
+ [Privacy, cost & limitations](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/privacy-and-cost.md)。
70
+
71
+ ## 文档(均为英文)
72
+
73
+ | | |
74
+ | --- | --- |
75
+ | [Getting started](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/getting-started.md) | 安装、确认已启用、快速起步、界面各处在哪、排障 |
76
+ | [How it works](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/how-it-works.md) | 逐步流程,带图和术语表 |
77
+ | [Privacy, cost & limitations](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/privacy-and-cost.md) | 什么留在本地、什么会发出去、每次调用的花费、目前做不到的事 |
78
+ | [Configuration](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/configuration.md) | 所有设置项、默认值和取值范围 |
79
+ | [Architecture](https://github.com/hackernotfound/dsh-tacit/blob/main/docs/architecture.md) | 面向贡献者:模块、钩子、路由、存储 |
80
+ | [Contributing](https://github.com/hackernotfound/dsh-tacit/blob/main/CONTRIBUTING.md) · [Changelog](https://github.com/hackernotfound/dsh-tacit/blob/main/CHANGELOG.md) | |
81
+
82
+ MIT © hackernotfound
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "dsh-tacit",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Tacit learns what you leave unsaid in your prompts — from messy turns and your own corrections, with zero clicks — and tells the agent how to compensate, on every turn, via a system-prompt section you can read and edit.",
5
5
  "author": "hackernotfound",
6
6
  "license": "MIT",
7
7
  "type": "module",
8
+ "packageManager": "pnpm@11.23.0",
8
9
  "repository": {
9
10
  "type": "git",
10
11
  "url": "git+https://github.com/hackernotfound/dsh-tacit.git"
@@ -31,11 +32,14 @@
31
32
  "client",
32
33
  "cordis.patch.yml",
33
34
  "README.md",
34
- "README.zh.md",
35
- "LICENSE"
35
+ "LICENSE",
36
+ "docs/README.zh.md"
36
37
  ],
37
38
  "scripts": {
38
39
  "test": "node --test",
40
+ "check": "pnpm test && pnpm check:docs && pnpm check:package",
41
+ "check:docs": "node scripts/check-doc-links.mjs",
42
+ "check:package": "node scripts/check-package.mjs",
39
43
  "smoke": "node scripts/smoke.mjs"
40
44
  },
41
45
  "publishConfig": {
package/README.zh.md DELETED
@@ -1,77 +0,0 @@
1
- <h1 align="center">Tacit</h1>
2
-
3
- <p align="center"><b>学习你在提示词里没说出口的东西——并替你告诉智能体。</b><br>
4
- 一个 <a href="https://www.npmjs.com/package/@deepseek-ai/dsh">DeepSeek Harness</a> 插件。</p>
5
-
6
- <p align="center">
7
- <a href="https://www.npmjs.com/package/dsh-tacit"><img alt="npm" src="https://img.shields.io/npm/v/dsh-tacit"></a>
8
- <a href="https://github.com/hackernotfound/dsh-tacit/actions/workflows/test.yml"><img alt="test" src="https://github.com/hackernotfound/dsh-tacit/actions/workflows/test.yml/badge.svg"></a>
9
- <a href="LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
10
- <a href="README.md">English</a>
11
- </p>
12
-
13
- > 本文由英文版翻译而来,尚未经过母语者校对;以 [README.md](README.md) 为准,欢迎提交修正。
14
-
15
- 你照常写提示词。Tacit 在后台观察每一轮*实际*的走向——重试、工具报错,尤其是
16
- 智能体做错之后你发的那条消息——把你的习惯变成几条指令,让智能体在每个新会话里
17
- 自动遵守。无需点击,每次学习约 $0.001。
18
-
19
- ```
20
- 你: "把登录页做好一点"
21
- 智能体: …走偏…
22
- 你: "不对,我是说 apps/web 下的 Next.js 应用"
23
-
24
- Tacit: 学到 → "用户常常不说明是哪个应用——先查 apps/web。"
25
- 注入之后每个会话的系统提示。
26
- 你再也不用重复说了。
27
- ```
28
-
29
- ## 安装——30 秒
30
-
31
- ```bash
32
- dsh plugin --profile web add dsh-tacit
33
- ```
34
-
35
- 重启 `dsh web`,刷新页面。可选的快速起步:**设置 → Tacit → *从我最近 20 轮中学习***
36
- (约 $0.02,一次性)。
37
-
38
- 需要 DeepSeek Harness `>= 0.1.1-rc.1`、Node `>= 22`,以及已在 harness 里配置好的
39
- DeepSeek API Key(Tacit 从不读取它)。
40
-
41
- ## 你会得到什么
42
-
43
- - **零点击学习**——不顺的轮次和你自己的纠正会在后台被分析,并带上上一轮作为上下文。
44
- 每天有上限(默认 30 次)。*每次分析约 $0.001*
45
- - **指令要靠表现留下**——学到的指令作为一小段系统提示注入,你可以查看、编辑、开关或
46
- 删除。新指令先是*候选*,如果你的不顺轮次比例变差就会自动退役。*免费*
47
- - **✨ 改进**——输入框里的按钮,用 Tacit 学到的东西重写当前草稿,带前后对比预览和
48
- 👍/👎。*每次点击约 $0.001*
49
- - **测量而非猜测**——设置页显示你的真实趋势:不顺轮次比例和每轮 token 数,最早 20 轮
50
- vs 最近 20 轮。*免费*
51
-
52
- ## 它是怎么工作的
53
-
54
- 1. 对会话事件做纯折叠,得到每一轮的有界摘要。
55
- 2. 当一轮结束得不顺、或你的下一条消息像是纠正,就用一次很小的 `deepseek-v4-flash`
56
- 调用(低推理强度,结构化输出)分析那条提示词。
57
- 3. 每隔几次分析,再用一次调用把发现蒸馏成 2–4 条指令。
58
- 4. 指令被渲染成系统提示里 ≤300 token 的一段——原文在设置里可见,除此之外你的提示词
59
- 不会离开本机。
60
-
61
- ## 隐私与成本,一段话
62
-
63
- Tacit 从不接触你的 API Key(所有调用都经过 harness 自己的模型服务),只调用白名单里的
64
- 官方模型,报告和指令都存放在 `~/.dsh/storages/tacit/`,拒绝对自身路由的跨站请求,
65
- 除了自己的报告之外从不删除任何东西。美元数字是按公开价格的估算;`dsh-cost-meter`
66
- 这样的成本插件会显示真实花费。完整细节(包括坦白的限制清单,英文):
67
- [docs/privacy-and-cost.md](docs/privacy-and-cost.md)。
68
-
69
- ## 更多
70
-
71
- [配置](docs/configuration.md) ·
72
- [隐私、成本与限制](docs/privacy-and-cost.md) ·
73
- [架构](docs/architecture.md) ·
74
- [参与贡献](CONTRIBUTING.md) ·
75
- [更新日志](CHANGELOG.md)(均为英文)
76
-
77
- MIT © hackernotfound