@kanadego/dsh-heartbeat 1.9.0 → 1.9.2

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.
Files changed (59) hide show
  1. package/README.md +58 -71
  2. package/assets/frontwin.ps1 +1 -0
  3. package/assets/idle.ps1 +1 -0
  4. package/assets/screenpulse.ps1 +4 -2
  5. package/config/profile-schema.json +306 -306
  6. package/cordis.patch.yml +18 -39
  7. package/dist/{bindings-XPPSKILN.js → bindings-225SI7KC.js} +3 -2
  8. package/dist/{chunk-63FUJLIF.js → chunk-3MDBU6WY.js} +17 -2
  9. package/dist/chunk-3MDBU6WY.js.map +1 -0
  10. package/dist/chunk-AJ5HLAL7.js +2477 -0
  11. package/dist/chunk-AJ5HLAL7.js.map +1 -0
  12. package/dist/{chunk-VIZNIQLK.js → chunk-CUOSICYJ.js} +82 -74
  13. package/dist/chunk-CUOSICYJ.js.map +1 -0
  14. package/dist/chunk-IG6YMUHW.js +569 -0
  15. package/dist/chunk-IG6YMUHW.js.map +1 -0
  16. package/dist/chunk-IV2ZWQA3.js +56 -0
  17. package/dist/chunk-IV2ZWQA3.js.map +1 -0
  18. package/dist/{chunk-PQTSXW4F.js → chunk-JDH2LDFS.js} +97 -71
  19. package/dist/chunk-JDH2LDFS.js.map +1 -0
  20. package/dist/chunk-K5Y6JP2B.js +399 -0
  21. package/dist/chunk-K5Y6JP2B.js.map +1 -0
  22. package/dist/{chunk-RB3NLLGF.js → chunk-KB5SMG3F.js} +3 -3
  23. package/dist/{chunk-J6ZTRFFW.js → chunk-TY6UP74X.js} +6 -2
  24. package/dist/chunk-TY6UP74X.js.map +1 -0
  25. package/dist/chunk-WRUTATW4.js +47 -0
  26. package/dist/chunk-WRUTATW4.js.map +1 -0
  27. package/dist/{chunk-IPOZFZPY.js → chunk-XFNCTOW7.js} +48 -10
  28. package/dist/chunk-XFNCTOW7.js.map +1 -0
  29. package/dist/chunk-ZLV4NMFX.js +333 -0
  30. package/dist/chunk-ZLV4NMFX.js.map +1 -0
  31. package/dist/cli/index.d.ts +3 -0
  32. package/dist/cli/index.js +565 -497
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/{inbox-57NHQHY3.js → inbox-P26DDMWC.js} +5 -3
  35. package/dist/index.d.ts +550 -0
  36. package/dist/index.js +665 -2730
  37. package/dist/index.js.map +1 -1
  38. package/dist/{migrate-N6NXMZ3G.js → migrate-D4VKAKYT.js} +4 -3
  39. package/dist/orchestrator-EUTZ3KG6.js +62 -0
  40. package/dist/{pool-7I4VACG2.js → pool-UTXQJJ5C.js} +5 -3
  41. package/dist/{snapshot-ZBCSX67Y.js → snapshot-K5VHETTK.js} +5 -4
  42. package/dist/snapshot-K5VHETTK.js.map +1 -0
  43. package/package.json +83 -76
  44. package/config/watchlist.json +0 -9
  45. package/dist/chunk-2SYXKKZF.js +0 -837
  46. package/dist/chunk-2SYXKKZF.js.map +0 -1
  47. package/dist/chunk-63FUJLIF.js.map +0 -1
  48. package/dist/chunk-IFTFDHZX.js +0 -203
  49. package/dist/chunk-IFTFDHZX.js.map +0 -1
  50. package/dist/chunk-IPOZFZPY.js.map +0 -1
  51. package/dist/chunk-J6ZTRFFW.js.map +0 -1
  52. package/dist/chunk-PQTSXW4F.js.map +0 -1
  53. package/dist/chunk-VIZNIQLK.js.map +0 -1
  54. /package/dist/{bindings-XPPSKILN.js.map → bindings-225SI7KC.js.map} +0 -0
  55. /package/dist/{chunk-RB3NLLGF.js.map → chunk-KB5SMG3F.js.map} +0 -0
  56. /package/dist/{inbox-57NHQHY3.js.map → inbox-P26DDMWC.js.map} +0 -0
  57. /package/dist/{migrate-N6NXMZ3G.js.map → migrate-D4VKAKYT.js.map} +0 -0
  58. /package/dist/{pool-7I4VACG2.js.map → orchestrator-EUTZ3KG6.js.map} +0 -0
  59. /package/dist/{snapshot-ZBCSX67Y.js.map → pool-UTXQJJ5C.js.map} +0 -0
@@ -1,306 +1,306 @@
1
- {
2
- "version": 1,
3
- "_comment": "profile-schema.json is the machine-executable collection boundary (privacy charter). Partitions/topics/subtopics NOT listed here are rejected by code, no matter what the consolidation LLM proposes. Each sub_topic declares its ALLOWED temporal tiers and the DEFAULT tier; the LLM nominates within the allowed set only. Unlisted defaults to 'stable'. psy is additionally gated by policy.profile.psyEnabled. Edit the copy in data/settings/ - this factory file is read-only. NOTE (2026-09-20): partitions are hardcoded to interest/projects/comm/psy in code (Partition type + PARTITIONS const); DO NOT add new top-level partitions here. Expansion happens at topic/subTopic level only.",
4
- "partitions": {
5
- "interest": {
6
- "topics": {
7
- "games": {
8
- "subtopics": {
9
- "current": {
10
- "allowed": [
11
- "volatile"
12
- ],
13
- "default": "volatile"
14
- },
15
- "preference": {
16
- "allowed": [
17
- "stable"
18
- ],
19
- "default": "stable"
20
- }
21
- }
22
- },
23
- "anime_manga": {
24
- "subtopics": {
25
- "current": {
26
- "allowed": [
27
- "volatile"
28
- ],
29
- "default": "volatile"
30
- },
31
- "preference": {
32
- "allowed": [
33
- "stable"
34
- ],
35
- "default": "stable"
36
- }
37
- }
38
- },
39
- "tech": {
40
- "subtopics": {
41
- "current": {
42
- "allowed": [
43
- "volatile"
44
- ],
45
- "default": "volatile"
46
- },
47
- "preference": {
48
- "allowed": [
49
- "stable"
50
- ],
51
- "default": "stable"
52
- }
53
- }
54
- },
55
- "creator_content": {
56
- "subtopics": {
57
- "current": {
58
- "allowed": [
59
- "volatile"
60
- ],
61
- "default": "volatile"
62
- },
63
- "preference": {
64
- "allowed": [
65
- "stable"
66
- ],
67
- "default": "stable"
68
- }
69
- }
70
- },
71
- "acg": {
72
- "subtopics": {
73
- "current": {
74
- "allowed": [
75
- "volatile"
76
- ],
77
- "default": "volatile"
78
- },
79
- "preference": {
80
- "allowed": [
81
- "stable"
82
- ],
83
- "default": "stable"
84
- }
85
- }
86
- },
87
- "hardware": {
88
- "subtopics": {
89
- "current": {
90
- "allowed": [
91
- "volatile"
92
- ],
93
- "default": "volatile"
94
- },
95
- "preference": {
96
- "allowed": [
97
- "stable"
98
- ],
99
- "default": "stable"
100
- }
101
- }
102
- },
103
- "audio": {
104
- "subtopics": {
105
- "current": {
106
- "allowed": [
107
- "volatile"
108
- ],
109
- "default": "volatile"
110
- },
111
- "preference": {
112
- "allowed": [
113
- "stable"
114
- ],
115
- "default": "stable"
116
- }
117
- }
118
- },
119
- "writing": {
120
- "subtopics": {
121
- "preference": {
122
- "allowed": [
123
- "stable"
124
- ],
125
- "default": "stable"
126
- }
127
- }
128
- },
129
- "life": {
130
- "subtopics": {
131
- "preference": {
132
- "allowed": [
133
- "stable"
134
- ],
135
- "default": "stable"
136
- }
137
- }
138
- }
139
- }
140
- },
141
- "projects": {
142
- "topics": {
143
- "active_work": {
144
- "subtopics": {
145
- "ongoing": {
146
- "allowed": [
147
- "volatile"
148
- ],
149
- "default": "volatile"
150
- }
151
- }
152
- },
153
- "delegated": {
154
- "subtopics": {
155
- "promise": {
156
- "allowed": [
157
- "stable",
158
- "volatile"
159
- ],
160
- "default": "stable"
161
- }
162
- }
163
- },
164
- "heartbeat": {
165
- "subtopics": {
166
- "ongoing": {
167
- "allowed": [
168
- "volatile"
169
- ],
170
- "default": "volatile"
171
- },
172
- "decided": {
173
- "allowed": [
174
- "stable"
175
- ],
176
- "default": "stable"
177
- }
178
- }
179
- },
180
- "dsh": {
181
- "subtopics": {
182
- "ongoing": {
183
- "allowed": [
184
- "volatile"
185
- ],
186
- "default": "volatile"
187
- },
188
- "decided": {
189
- "allowed": [
190
- "stable"
191
- ],
192
- "default": "stable"
193
- }
194
- }
195
- },
196
- "zcode": {
197
- "subtopics": {
198
- "ongoing": {
199
- "allowed": [
200
- "volatile"
201
- ],
202
- "default": "volatile"
203
- },
204
- "decided": {
205
- "allowed": [
206
- "stable"
207
- ],
208
- "default": "stable"
209
- }
210
- }
211
- }
212
- }
213
- },
214
- "comm": {
215
- "topics": {
216
- "expression": {
217
- "subtopics": {
218
- "style": {
219
- "allowed": [
220
- "stable"
221
- ],
222
- "default": "stable"
223
- },
224
- "boundaries": {
225
- "allowed": [
226
- "stable"
227
- ],
228
- "default": "stable"
229
- }
230
- }
231
- },
232
- "interaction": {
233
- "subtopics": {
234
- "style": {
235
- "allowed": [
236
- "stable"
237
- ],
238
- "default": "stable"
239
- }
240
- }
241
- },
242
- "boundary": {
243
- "subtopics": {
244
- "rules": {
245
- "allowed": [
246
- "stable"
247
- ],
248
- "default": "stable"
249
- }
250
- }
251
- },
252
- "preference": {
253
- "subtopics": {
254
- "style": {
255
- "allowed": [
256
- "stable"
257
- ],
258
- "default": "stable"
259
- }
260
- }
261
- }
262
- }
263
- },
264
- "psy": {
265
- "topics": {
266
- "baseline": {
267
- "subtopics": {
268
- "rhythm": {
269
- "allowed": [
270
- "stable",
271
- "volatile"
272
- ],
273
- "default": "stable"
274
- },
275
- "stress": {
276
- "allowed": [
277
- "volatile"
278
- ],
279
- "default": "volatile"
280
- }
281
- }
282
- },
283
- "background": {
284
- "subtopics": {
285
- "traits": {
286
- "allowed": [
287
- "stable"
288
- ],
289
- "default": "stable"
290
- }
291
- }
292
- },
293
- "social": {
294
- "subtopics": {
295
- "habits": {
296
- "allowed": [
297
- "stable"
298
- ],
299
- "default": "stable"
300
- }
301
- }
302
- }
303
- }
304
- }
305
- }
306
- }
1
+ {
2
+ "version": 1,
3
+ "_comment": "profile-schema.json is the machine-executable collection boundary (privacy charter). Partitions/topics/subtopics NOT listed here are rejected by code, no matter what the consolidation LLM proposes. Each sub_topic declares its ALLOWED temporal tiers and the DEFAULT tier; the LLM nominates within the allowed set only. Unlisted defaults to 'stable'. psy is additionally gated by policy.profile.psyEnabled. Edit the copy in data/settings/ - this factory file is read-only. NOTE (2026-09-20): partitions are hardcoded to interest/projects/comm/psy in code (Partition type + PARTITIONS const); DO NOT add new top-level partitions here. Expansion happens at topic/subTopic level only.",
4
+ "partitions": {
5
+ "interest": {
6
+ "topics": {
7
+ "games": {
8
+ "subtopics": {
9
+ "current": {
10
+ "allowed": [
11
+ "volatile"
12
+ ],
13
+ "default": "volatile"
14
+ },
15
+ "preference": {
16
+ "allowed": [
17
+ "stable"
18
+ ],
19
+ "default": "stable"
20
+ }
21
+ }
22
+ },
23
+ "anime_manga": {
24
+ "subtopics": {
25
+ "current": {
26
+ "allowed": [
27
+ "volatile"
28
+ ],
29
+ "default": "volatile"
30
+ },
31
+ "preference": {
32
+ "allowed": [
33
+ "stable"
34
+ ],
35
+ "default": "stable"
36
+ }
37
+ }
38
+ },
39
+ "tech": {
40
+ "subtopics": {
41
+ "current": {
42
+ "allowed": [
43
+ "volatile"
44
+ ],
45
+ "default": "volatile"
46
+ },
47
+ "preference": {
48
+ "allowed": [
49
+ "stable"
50
+ ],
51
+ "default": "stable"
52
+ }
53
+ }
54
+ },
55
+ "creator_content": {
56
+ "subtopics": {
57
+ "current": {
58
+ "allowed": [
59
+ "volatile"
60
+ ],
61
+ "default": "volatile"
62
+ },
63
+ "preference": {
64
+ "allowed": [
65
+ "stable"
66
+ ],
67
+ "default": "stable"
68
+ }
69
+ }
70
+ },
71
+ "acg": {
72
+ "subtopics": {
73
+ "current": {
74
+ "allowed": [
75
+ "volatile"
76
+ ],
77
+ "default": "volatile"
78
+ },
79
+ "preference": {
80
+ "allowed": [
81
+ "stable"
82
+ ],
83
+ "default": "stable"
84
+ }
85
+ }
86
+ },
87
+ "hardware": {
88
+ "subtopics": {
89
+ "current": {
90
+ "allowed": [
91
+ "volatile"
92
+ ],
93
+ "default": "volatile"
94
+ },
95
+ "preference": {
96
+ "allowed": [
97
+ "stable"
98
+ ],
99
+ "default": "stable"
100
+ }
101
+ }
102
+ },
103
+ "audio": {
104
+ "subtopics": {
105
+ "current": {
106
+ "allowed": [
107
+ "volatile"
108
+ ],
109
+ "default": "volatile"
110
+ },
111
+ "preference": {
112
+ "allowed": [
113
+ "stable"
114
+ ],
115
+ "default": "stable"
116
+ }
117
+ }
118
+ },
119
+ "writing": {
120
+ "subtopics": {
121
+ "preference": {
122
+ "allowed": [
123
+ "stable"
124
+ ],
125
+ "default": "stable"
126
+ }
127
+ }
128
+ },
129
+ "life": {
130
+ "subtopics": {
131
+ "preference": {
132
+ "allowed": [
133
+ "stable"
134
+ ],
135
+ "default": "stable"
136
+ }
137
+ }
138
+ }
139
+ }
140
+ },
141
+ "projects": {
142
+ "topics": {
143
+ "active_work": {
144
+ "subtopics": {
145
+ "ongoing": {
146
+ "allowed": [
147
+ "volatile"
148
+ ],
149
+ "default": "volatile"
150
+ }
151
+ }
152
+ },
153
+ "delegated": {
154
+ "subtopics": {
155
+ "promise": {
156
+ "allowed": [
157
+ "stable",
158
+ "volatile"
159
+ ],
160
+ "default": "stable"
161
+ }
162
+ }
163
+ },
164
+ "heartbeat": {
165
+ "subtopics": {
166
+ "ongoing": {
167
+ "allowed": [
168
+ "volatile"
169
+ ],
170
+ "default": "volatile"
171
+ },
172
+ "decided": {
173
+ "allowed": [
174
+ "stable"
175
+ ],
176
+ "default": "stable"
177
+ }
178
+ }
179
+ },
180
+ "dsh": {
181
+ "subtopics": {
182
+ "ongoing": {
183
+ "allowed": [
184
+ "volatile"
185
+ ],
186
+ "default": "volatile"
187
+ },
188
+ "decided": {
189
+ "allowed": [
190
+ "stable"
191
+ ],
192
+ "default": "stable"
193
+ }
194
+ }
195
+ },
196
+ "zcode": {
197
+ "subtopics": {
198
+ "ongoing": {
199
+ "allowed": [
200
+ "volatile"
201
+ ],
202
+ "default": "volatile"
203
+ },
204
+ "decided": {
205
+ "allowed": [
206
+ "stable"
207
+ ],
208
+ "default": "stable"
209
+ }
210
+ }
211
+ }
212
+ }
213
+ },
214
+ "comm": {
215
+ "topics": {
216
+ "expression": {
217
+ "subtopics": {
218
+ "style": {
219
+ "allowed": [
220
+ "stable"
221
+ ],
222
+ "default": "stable"
223
+ },
224
+ "boundaries": {
225
+ "allowed": [
226
+ "stable"
227
+ ],
228
+ "default": "stable"
229
+ }
230
+ }
231
+ },
232
+ "interaction": {
233
+ "subtopics": {
234
+ "style": {
235
+ "allowed": [
236
+ "stable"
237
+ ],
238
+ "default": "stable"
239
+ }
240
+ }
241
+ },
242
+ "boundary": {
243
+ "subtopics": {
244
+ "rules": {
245
+ "allowed": [
246
+ "stable"
247
+ ],
248
+ "default": "stable"
249
+ }
250
+ }
251
+ },
252
+ "preference": {
253
+ "subtopics": {
254
+ "style": {
255
+ "allowed": [
256
+ "stable"
257
+ ],
258
+ "default": "stable"
259
+ }
260
+ }
261
+ }
262
+ }
263
+ },
264
+ "psy": {
265
+ "topics": {
266
+ "baseline": {
267
+ "subtopics": {
268
+ "rhythm": {
269
+ "allowed": [
270
+ "stable",
271
+ "volatile"
272
+ ],
273
+ "default": "stable"
274
+ },
275
+ "stress": {
276
+ "allowed": [
277
+ "volatile"
278
+ ],
279
+ "default": "volatile"
280
+ }
281
+ }
282
+ },
283
+ "background": {
284
+ "subtopics": {
285
+ "traits": {
286
+ "allowed": [
287
+ "stable"
288
+ ],
289
+ "default": "stable"
290
+ }
291
+ }
292
+ },
293
+ "social": {
294
+ "subtopics": {
295
+ "habits": {
296
+ "allowed": [
297
+ "stable"
298
+ ],
299
+ "default": "stable"
300
+ }
301
+ }
302
+ }
303
+ }
304
+ }
305
+ }
306
+ }
package/cordis.patch.yml CHANGED
@@ -8,46 +8,25 @@
8
8
  # - id: heartbeat
9
9
  # config:
10
10
  # dataDir: D:/your/workspace/data
11
- # Default: <packageRoot>/data.
11
+ # Default: <DSH_HOME>/heartbeat-data (i.e. ~/.dsh/heartbeat-data), outside the
12
+ # package. Data written by v1.9.1 and earlier sits at <packageRoot>/data and is
13
+ # migrated out automatically on first start (backup, verify, then delete).
12
14
  - insert:
13
15
  - id: heartbeat
14
16
  name: '@kanadego/dsh-heartbeat'
15
17
 
16
- # ── Agent preset heartbeat(0.1.7 声明式预设,v1.7.1)─────────────────
17
- # 0.1.7 起 agentPresets 名册不再挂载文件系统用户根(~/.dsh/.agent-presets),
18
- # 预设改为组合里的 @deepseek-ai/dsh-agent-preset 声明行(与官方 preset-standard
19
- # 同款机制)。内容 = assets/presets/heartbeat/agent.cordis.yml 的移植:
20
- # compaction 组 + 唯一模型工具 tool-web(fetch:false)。
21
- # 刻意没有 persona 行:部署人格(soul card)+ 心跳提示词已够,绝不能让
22
- # "You are a coding agent" 盖掉人格。≤0.1.5 宿主继续走文件系统预设自装。
23
- - insert:
24
- - id: preset-heartbeat
25
- name: '@deepseek-ai/dsh-agent-preset'
26
- config:
27
- id: heartbeat
28
- name: 心跳模式
29
- description: 心跳 agent 专用:仅 web_search + 上下文折叠;无 shell、无文件、无子代理。
30
- order: 20
31
- plugins:
32
- - id: compaction
33
- name: cordis:group
34
- group: true
35
- isolate:
36
- compaction: true
37
- toolResultPruner: true
38
- config:
39
- - id: compaction-basic
40
- name: '@deepseek-ai/dsh-compaction-basic'
41
- - id: command-compact
42
- name: '@deepseek-ai/dsh-command-compact'
43
- - id: tool-result-pruner
44
- name: '@deepseek-ai/dsh-compaction-tool-result-pruner'
45
- config:
46
- thresholdChars: 8192
47
- headChars: 4096
48
- tailChars: 1024
49
- - id: tool-web
50
- name: '@deepseek-ai/dsh-tool-web'
51
- config:
52
- fetch: false
53
- searchTimeoutMs: 60000
18
+ # ── Agent preset heartbeat(改为插件运行时注册,v1.9.2 / issue #2)────────
19
+ # 这里**故意不再**声明 `@deepseek-ai/dsh-agent-preset` 行。那行会让 profile
20
+ # 必须自己能解析该包,而它的 peer 闭包里含着 cordis 自己的装载机制
21
+ # (cordis-plugin-loader / -include / -group):
22
+ # · profile 解析不到 → 整个插件树加载失败(0.1.5-rc.2 实测);
23
+ # · 手工补进 peer 闭包 → 装载机制双实例,之后**任何会话 resume 全部失败**
24
+ # (`prompt section "deployment:persona-prefix" is already registered`,
25
+ # 0.2.0-rc.2 实测)。
26
+ # 两种都在 2026-10-10 被复现(见 issue #2)。现在预设定义活在插件里
27
+ # (src/core/preset-definition.ts),加载时经 `agentPresets.register()` 运行时
28
+ # 注册——declaring plugin 自己提供 definition 正是该 API 的用途;宿主没有这个
29
+ # API 时只记一条审计,绝不让宿主挂掉。老宿主(仍扫名册文件系统用户根)继续由
30
+ # preset-install 自装维持。内容与 assets/presets/heartbeat/agent.cordis.yml 一致:
31
+ # compaction 组 + 唯一模型工具 tool-web(fetch:false);刻意没有 persona 行——
32
+ # 部署人格(soul card)+ 心跳提示词已够,绝不能让 "You are a coding agent" 盖掉人格。