@lemoncat7/dsh-partner 1.4.1 → 1.5.0

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 (191) hide show
  1. package/README.md +39 -0
  2. package/docs/architecture.md +99 -0
  3. package/lib/agent-runtime.d.ts +31 -8
  4. package/lib/agent-runtime.d.ts.map +1 -1
  5. package/lib/agent-runtime.js +236 -52
  6. package/lib/agent-runtime.js.map +1 -1
  7. package/lib/api/features/workspace-api.d.ts +18 -0
  8. package/lib/api/features/workspace-api.d.ts.map +1 -0
  9. package/lib/api/features/workspace-api.js +188 -0
  10. package/lib/api/features/workspace-api.js.map +1 -0
  11. package/lib/api/http.d.ts +12 -0
  12. package/lib/api/http.d.ts.map +1 -0
  13. package/lib/api/http.js +53 -0
  14. package/lib/api/http.js.map +1 -0
  15. package/lib/api.d.ts +10 -0
  16. package/lib/api.d.ts.map +1 -1
  17. package/lib/api.js +48 -63
  18. package/lib/api.js.map +1 -1
  19. package/lib/autonomy.d.ts.map +1 -1
  20. package/lib/autonomy.js +2 -1
  21. package/lib/autonomy.js.map +1 -1
  22. package/lib/channels/manager.d.ts +4 -1
  23. package/lib/channels/manager.d.ts.map +1 -1
  24. package/lib/channels/manager.js +20 -3
  25. package/lib/channels/manager.js.map +1 -1
  26. package/lib/client-api.d.ts +157 -1
  27. package/lib/client-api.d.ts.map +1 -1
  28. package/lib/client-api.js.map +1 -1
  29. package/lib/client-controller.d.ts +15 -0
  30. package/lib/client-controller.d.ts.map +1 -0
  31. package/lib/client-controller.js +69 -0
  32. package/lib/client-controller.js.map +1 -0
  33. package/lib/client.d.ts.map +1 -1
  34. package/lib/client.js +2702 -885
  35. package/lib/client.js.map +4 -4
  36. package/lib/collaboration/composition.d.ts +27 -0
  37. package/lib/collaboration/composition.d.ts.map +1 -0
  38. package/lib/collaboration/composition.js +345 -0
  39. package/lib/collaboration/composition.js.map +1 -0
  40. package/lib/collaboration/domain.d.ts +38 -0
  41. package/lib/collaboration/domain.d.ts.map +1 -0
  42. package/lib/collaboration/domain.js +3 -0
  43. package/lib/collaboration/domain.js.map +1 -0
  44. package/lib/collaboration/retry-policy.d.ts +4 -0
  45. package/lib/collaboration/retry-policy.d.ts.map +1 -0
  46. package/lib/collaboration/retry-policy.js +18 -0
  47. package/lib/collaboration/retry-policy.js.map +1 -0
  48. package/lib/collaboration/service.d.ts +76 -0
  49. package/lib/collaboration/service.d.ts.map +1 -0
  50. package/lib/collaboration/service.js +370 -0
  51. package/lib/collaboration/service.js.map +1 -0
  52. package/lib/companions/service.d.ts +13 -0
  53. package/lib/companions/service.d.ts.map +1 -0
  54. package/lib/companions/service.js +51 -0
  55. package/lib/companions/service.js.map +1 -0
  56. package/lib/concern-domain.d.ts +8 -1
  57. package/lib/concern-domain.d.ts.map +1 -1
  58. package/lib/concern-domain.js +25 -1
  59. package/lib/concern-domain.js.map +1 -1
  60. package/lib/concern-store.d.ts.map +1 -1
  61. package/lib/concern-store.js +2 -1
  62. package/lib/concern-store.js.map +1 -1
  63. package/lib/concern-tool.d.ts +6 -0
  64. package/lib/concern-tool.d.ts.map +1 -1
  65. package/lib/concern-tool.js +35 -9
  66. package/lib/concern-tool.js.map +1 -1
  67. package/lib/core/collections.d.ts +2 -0
  68. package/lib/core/collections.d.ts.map +1 -0
  69. package/lib/core/collections.js +6 -0
  70. package/lib/core/collections.js.map +1 -0
  71. package/lib/core/semaphore.d.ts +10 -0
  72. package/lib/core/semaphore.d.ts.map +1 -0
  73. package/lib/core/semaphore.js +32 -0
  74. package/lib/core/semaphore.js.map +1 -0
  75. package/lib/core/validation.d.ts +7 -0
  76. package/lib/core/validation.d.ts.map +1 -0
  77. package/lib/core/validation.js +40 -0
  78. package/lib/core/validation.js.map +1 -0
  79. package/lib/domain.d.ts +28 -2
  80. package/lib/domain.d.ts.map +1 -1
  81. package/lib/domain.js +3 -3
  82. package/lib/domain.js.map +1 -1
  83. package/lib/execution/agent-support.d.ts +12 -0
  84. package/lib/execution/agent-support.d.ts.map +1 -0
  85. package/lib/execution/agent-support.js +48 -0
  86. package/lib/execution/agent-support.js.map +1 -0
  87. package/lib/execution/domain.d.ts +17 -0
  88. package/lib/execution/domain.d.ts.map +1 -0
  89. package/lib/execution/domain.js +2 -0
  90. package/lib/execution/domain.js.map +1 -0
  91. package/lib/execution/service.d.ts +52 -0
  92. package/lib/execution/service.d.ts.map +1 -0
  93. package/lib/execution/service.js +175 -0
  94. package/lib/execution/service.js.map +1 -0
  95. package/lib/heartbeat-command.d.ts +15 -0
  96. package/lib/heartbeat-command.d.ts.map +1 -0
  97. package/lib/heartbeat-command.js +211 -0
  98. package/lib/heartbeat-command.js.map +1 -0
  99. package/lib/index.d.ts.map +1 -1
  100. package/lib/index.js +42 -3
  101. package/lib/index.js.map +1 -1
  102. package/lib/memory-reflection.js +2 -2
  103. package/lib/memory-reflection.js.map +1 -1
  104. package/lib/scheduler/domain.d.ts +25 -0
  105. package/lib/scheduler/domain.d.ts.map +1 -0
  106. package/lib/scheduler/domain.js +2 -0
  107. package/lib/scheduler/domain.js.map +1 -0
  108. package/lib/scheduler/service.d.ts +26 -0
  109. package/lib/scheduler/service.d.ts.map +1 -0
  110. package/lib/scheduler/service.js +177 -0
  111. package/lib/scheduler/service.js.map +1 -0
  112. package/lib/skills/builtin.d.ts +7 -0
  113. package/lib/skills/builtin.d.ts.map +1 -0
  114. package/lib/skills/builtin.js +16 -0
  115. package/lib/skills/builtin.js.map +1 -0
  116. package/lib/skills/domain.d.ts +52 -0
  117. package/lib/skills/domain.d.ts.map +1 -0
  118. package/lib/skills/domain.js +2 -0
  119. package/lib/skills/domain.js.map +1 -0
  120. package/lib/skills/loader.d.ts +18 -0
  121. package/lib/skills/loader.d.ts.map +1 -0
  122. package/lib/skills/loader.js +134 -0
  123. package/lib/skills/loader.js.map +1 -0
  124. package/lib/skills/markets/adapters.d.ts +8 -0
  125. package/lib/skills/markets/adapters.d.ts.map +1 -0
  126. package/lib/skills/markets/adapters.js +72 -0
  127. package/lib/skills/markets/adapters.js.map +1 -0
  128. package/lib/skills/markets/builtin.d.ts +10 -0
  129. package/lib/skills/markets/builtin.d.ts.map +1 -0
  130. package/lib/skills/markets/builtin.js +19 -0
  131. package/lib/skills/markets/builtin.js.map +1 -0
  132. package/lib/skills/network.d.ts +14 -0
  133. package/lib/skills/network.d.ts.map +1 -0
  134. package/lib/skills/network.js +174 -0
  135. package/lib/skills/network.js.map +1 -0
  136. package/lib/skills/repository.d.ts +17 -0
  137. package/lib/skills/repository.d.ts.map +1 -0
  138. package/lib/skills/repository.js +76 -0
  139. package/lib/skills/repository.js.map +1 -0
  140. package/lib/skills/service.d.ts +48 -0
  141. package/lib/skills/service.d.ts.map +1 -0
  142. package/lib/skills/service.js +248 -0
  143. package/lib/skills/service.js.map +1 -0
  144. package/lib/skills/zip.d.ts +3 -0
  145. package/lib/skills/zip.d.ts.map +1 -0
  146. package/lib/skills/zip.js +59 -0
  147. package/lib/skills/zip.js.map +1 -0
  148. package/lib/store.d.ts.map +1 -1
  149. package/lib/store.js +69 -3
  150. package/lib/store.js.map +1 -1
  151. package/lib/tasks/domain.d.ts +39 -0
  152. package/lib/tasks/domain.d.ts.map +1 -0
  153. package/lib/tasks/domain.js +3 -0
  154. package/lib/tasks/domain.js.map +1 -0
  155. package/lib/tasks/result.d.ts +14 -0
  156. package/lib/tasks/result.d.ts.map +1 -0
  157. package/lib/tasks/result.js +109 -0
  158. package/lib/tasks/result.js.map +1 -0
  159. package/lib/tasks/service.d.ts +39 -0
  160. package/lib/tasks/service.d.ts.map +1 -0
  161. package/lib/tasks/service.js +334 -0
  162. package/lib/tasks/service.js.map +1 -0
  163. package/lib/ui/companion-access-panel.d.ts +4 -0
  164. package/lib/ui/companion-access-panel.d.ts.map +1 -0
  165. package/lib/ui/companion-access-panel.js +46 -0
  166. package/lib/ui/companion-access-panel.js.map +1 -0
  167. package/lib/ui/companion-create.d.ts +11 -0
  168. package/lib/ui/companion-create.d.ts.map +1 -0
  169. package/lib/ui/companion-create.js +30 -0
  170. package/lib/ui/companion-create.js.map +1 -0
  171. package/lib/ui/partner-components.d.ts +36 -0
  172. package/lib/ui/partner-components.d.ts.map +1 -0
  173. package/lib/ui/partner-components.js +32 -0
  174. package/lib/ui/partner-components.js.map +1 -0
  175. package/lib/ui/schedule-panel.d.ts +5 -0
  176. package/lib/ui/schedule-panel.d.ts.map +1 -0
  177. package/lib/ui/schedule-panel.js +86 -0
  178. package/lib/ui/schedule-panel.js.map +1 -0
  179. package/lib/ui/skills-panel.d.ts +5 -0
  180. package/lib/ui/skills-panel.d.ts.map +1 -0
  181. package/lib/ui/skills-panel.js +236 -0
  182. package/lib/ui/skills-panel.js.map +1 -0
  183. package/lib/ui/task-board-panel.d.ts +2 -0
  184. package/lib/ui/task-board-panel.d.ts.map +1 -0
  185. package/lib/ui/task-board-panel.js +231 -0
  186. package/lib/ui/task-board-panel.js.map +1 -0
  187. package/lib/ui/workspace-components.d.ts +40 -0
  188. package/lib/ui/workspace-components.d.ts.map +1 -0
  189. package/lib/ui/workspace-components.js +61 -0
  190. package/lib/ui/workspace-components.js.map +1 -0
  191. package/package.json +2 -1
package/README.md CHANGED
@@ -7,6 +7,7 @@
7
7
  ## 当前能力
8
8
 
9
9
  - 伙伴创建、编辑与删除
10
+ - 新伙伴只建立身份和本地会话;能力、长期记忆、每日回顾、心跳、渠道与伙伴间授权默认全部关闭
10
11
  - Agent scoped 身份提示,仅影响该伙伴创建的 Agent
11
12
  - 为伙伴选择 Agent Preset、提供方与模型
12
13
  - 微信 iLink Bot 扫码连接
@@ -32,6 +33,7 @@
32
33
  - 伙伴从记忆提炼或每日终审中自动新建关注后,会在当前伙伴会话中发出一次创建通知,并同步到对应的微信渠道,方便及时检查或移除
33
34
  - 心跳只查询到期挂念,使用独立内存推理作用域观察上次检查后的变化;无到期事项时不会调用模型
34
35
  - 心跳根据挂念选择当前可用的安全来源,并在来源内部逐层缩小范围:知识库按“找库→库内搜索→读取条目”,本地按“确定范围→定位文件/内容→读取证据”;发现阶段有独立软截止、单工具超时和整轮安全上限
36
+ - 知识文档明确指定本地核验命令时,心跳可使用作用域内临时注册的受控只读命令工具;它不经过 shell,只接受版本、npm 包版本和少量 Git 状态查询,禁止管道、重定向、脚本、任意程序与任意参数,并记录命令结果或拒绝原因
35
37
  - 挂念明确关联 `@文件` 时,伙伴可先读取再以最小修改持续维护该文件;写权限精确限定到已关联的现存文件,不能创建其他文件或触碰伙伴私有存储
36
38
  - 发现结果先保存为 Observation,经过去重、相关性、新鲜度、可行动性和近期打扰历史的确定性评分,再决定静默记下、下次顺手一提、进入伙伴动态或主动通知
37
39
  - 心跳硬性排除伙伴记忆、挂念数据库、会话归档及其备份,不向无关主题扩散
@@ -40,6 +42,13 @@
40
42
  - 可配置静默时段、检查间隔、每日通知上限、失败退避和手动检查;失败后不会早于正常检查间隔重试
41
43
  - 修改伙伴身份或能力时清理该伙伴的渠道 Session,防止新旧人格串联
42
44
  - Windows、macOS、Linux 兼容的原子状态写入
45
+ - 兼容 `SKILL.md` 的伙伴 Skill:安装与伙伴启用关系分离,支持在管理台创建本地 Skill、`inline` / `fork` 上下文、`allowed-tools` 权限收缩、校验和审计
46
+ - 内置精选 Skill,以及与 nomifun 当前一致的 ClawHub、LoopHub、SkillHub 三个公开 Skill 榜单;支持统一 HTTP 代理、连接测试、受限 ZIP 安装与兼容 JSON 索引的团队源,非可信市场强制使用隔离临时会话
47
+ - 人与伙伴共享的任务看板:收集箱、待开始、进行中、待验收、受阻、已完成六个状态,带优先级、负责人、乐观并发 revision 与有界活动记录
48
+ - 有向伙伴授权和真实委派:在 A 的能力页勾选 B 后,A 才能查看 B 的公开能力并通过 `@B` 委派;用户本人可从全局看板直接指派任意伙伴,只共享任务信封、公开能力和结果摘要
49
+ - 伙伴会话内提供 `partner_skill`、`partner_task_board`、`partner_collaborate`、`partner_schedule`,以及按能力显式授权的 `partner_companions` 作用域工具,不污染普通 DSH 会话的工具表;“创建伙伴”工具只填写身份,新伙伴权限仍由用户在管理台单独授予
50
+ - 伙伴定时任务支持间隔与每日时间、跳过或排队重叠、手动执行和重启恢复;每次使用新临时会话,完成后默认销毁,也可选择保留以便审计
51
+ - Skill fork、伙伴委派和定时任务共用同一个有界临时执行器,统一处理模型/预设组合、并发上限、超时、工具权限、运行记录与会话回收
43
52
 
44
53
  心跳默认关闭,升级后不会突然主动发送消息。群聊策略和多渠道适配尚未开放。
45
54
 
@@ -90,6 +99,8 @@ dsh plugin --profile web add ./lemoncat7-dsh-partner-<version>.tgz
90
99
  - 普通状态:`statePath` 指向的 JSON 文件。
91
100
  - 伙伴记忆:`<defaultCwd>/partners/<伙伴 ID>/memory/`,按联系人隔离保存每日完整对话归档、人物画像、每日回顾、结构化长期记忆和有证据的记忆关系;画像按版本进入联系人会话,其他记忆按当前话题与一跳强关系召回,默认永久保留。
92
101
  - 伙伴挂念:`<defaultCwd>/partners/<伙伴 ID>/concerns/concerns.sqlite`,保存挂念生命周期、变化观察、去重指纹、候选审计和打扰决策;候选审计保留 90 天,SQLite 使用 WAL、索引和串行事务写入。
102
+ - Skill 内容:`<defaultCwd>/partner-system/skills/<Skill ID>/SKILL.md`;普通状态文件只保存来源、版本、路径、校验和及伙伴启用关系,不复制 Skill 正文。
103
+ - 看板、调度、委派和临时运行索引:保存在 `statePath` 的原子状态文件中,并对任务数、活动历史、计划数和运行记录设置硬上限,防止长期使用后无限膨胀。
93
104
  - 敏感凭据:DSH Credential Store,scope 为 `dsh-partner-weixin`。
94
105
  - 管理 API:默认 `/partner-local/v1`,仅接受同源请求;写操作还要求 `X-DSH-Partner-Request: 1`。
95
106
  - 微信机器人只能绑定一个伙伴;联系人上下文不会跨机器人、伙伴或其他联系人共享。
@@ -105,3 +116,31 @@ npm pack --dry-run
105
116
  ```
106
117
 
107
118
  要求 Node.js `^22.19.0 || >=24.0.0`,与当前 DSH 运行时一致。
119
+
120
+ 新模块的依赖方向、隐私边界和持久化约束见 [`docs/architecture.md`](docs/architecture.md)。
121
+
122
+ ## Skill 市场索引
123
+
124
+ ClawHub、LoopHub、SkillHub 是内置公共来源,默认启用且不能删除。公共压缩包只会在内存中读取最浅层的 `SKILL.md`,不会把归档路径直接解压到磁盘;安装后按非可信 Skill 在隔离临时会话中运行。
125
+
126
+ 自定义市场源返回 JSON 数组,或返回带 `skills` 数组的对象:
127
+
128
+ ```json
129
+ {
130
+ "skills": [
131
+ {
132
+ "id": "team-release-audit",
133
+ "name": "团队发布审计",
134
+ "description": "执行团队约定的发布前检查。",
135
+ "version": "1.0.0",
136
+ "tags": ["release", "audit"],
137
+ "skillUrl": "./team-release-audit/SKILL.md",
138
+ "checksum": "sha256:可选的64位十六进制摘要"
139
+ }
140
+ ]
141
+ }
142
+ ```
143
+
144
+ `skillUrl` 可相对索引 URL。市场索引上限 1 MiB、单个 `SKILL.md` 上限 512 KiB;未标记为可信的市场即使声明 `context: inline`,安装后也会强制改为 `fork`。
145
+
146
+ 市场页面的“代理设置”接受不含账号、密码和路径的 `http://host:port`。配置仅保存在当前客户端的伙伴状态中,同时作用于市场索引、Markdown Skill 和 ZIP 安装包下载;测试连接不会先写入配置。需要鉴权的代理应在本地网关侧处理,不要把凭据写进代理 URL。
@@ -0,0 +1,99 @@
1
+ # Partner architecture
2
+
3
+ The partner plugin is split by domain rather than by screen. Dependencies point
4
+ in one direction:
5
+
6
+ ```text
7
+ client -> HTTP feature routers -> application services -> repositories/store
8
+ |
9
+ v
10
+ ephemeral execution -> DSH agent/tool APIs
11
+ ```
12
+
13
+ ## Module boundaries
14
+
15
+ - `core/`: shared validation, identifiers and bounded collections. It contains
16
+ no partner feature policy.
17
+ - `execution/`: the only owner of short-lived DSH agent sessions. Skill forks,
18
+ delegations and schedules use this service instead of recreating agent setup.
19
+ - `companions/`: the only owner of companion identity creation and its initial
20
+ local-session transaction. API and model tools share this boundary; failed
21
+ session provisioning rolls the new identity back.
22
+ - `skills/`: Skill metadata, filesystem loader, atomic installer, market cache,
23
+ bounded proxy-aware network transport, companion bindings and model-facing
24
+ tools. Skill bodies stay on disk; the JSON state only stores indexes,
25
+ checksums and non-secret local network preferences.
26
+ - `tasks/`: task-board state, optimistic revisions, activities and model-facing
27
+ tools. UI drag-and-drop is never the only way to move a task.
28
+ - `collaboration/`: directed companion grants, the public capability directory
29
+ and delegation envelopes. It never exposes another companion's private
30
+ transcript, credentials or memory store.
31
+ - `scheduler/`: schedule calculation, overlap policy, restart recovery and run
32
+ history. It does not implement agent execution.
33
+ - `api/features/`: thin HTTP adapters. Parsing and response mapping live here;
34
+ business policy stays in services.
35
+ - `client-controller.tsx`: owns opening/closing the plugin workspace and
36
+ preparing, renewing and switching DSH sessions. It has no page markup.
37
+ - `client.tsx`: the composition root for sidebar registration and companion
38
+ detail routing. It does not own reusable controls or session orchestration.
39
+ - `ui/workspace-components.tsx`: the shared workspace template contract. Page
40
+ heroes, content sections, focus-managed create/configure drawers, notices,
41
+ empty states and loading skeletons are defined once here.
42
+ - `ui/partner-components.tsx`: small companion-specific presentation
43
+ primitives such as identity marks, channel status, form fields and section
44
+ headings. These components do not fetch data.
45
+ - `ui/*-panel.tsx`: one feature per module. Skill installation, the shared
46
+ board and schedules are top-level destinations; each panel owns only its
47
+ resource state and business actions and composes the shared templates.
48
+ - `ui/workspace-ui.css`: interaction and material rules for the shared
49
+ templates. Feature-specific layout may remain in `client.css`, but new
50
+ cross-feature UI contracts belong in this module.
51
+
52
+ ## Persistence rules
53
+
54
+ - `partner-state.json` remains the atomic metadata store.
55
+ - Skill contents live below `<defaultCwd>/partner-system/skills`.
56
+ - Task activity, delegation and execution histories are bounded before commit.
57
+ - Every state mutation is serialized by `PartnerStore`; task edits additionally
58
+ use a revision to reject stale concurrent updates.
59
+ - Market downloads are bounded, checksum-verified when supplied, written into a
60
+ temporary directory and atomically renamed.
61
+ - Market discovery and package installation share one bounded transport. The
62
+ optional local HTTP proxy applies to both paths and rejects embedded proxy
63
+ credentials.
64
+ - Public ZIP packages are parsed in memory and archive paths are never
65
+ extracted to disk. A case-insensitive `SKILL.md` is preferred; a package
66
+ with exactly one Markdown document may use that document, while ambiguous
67
+ multi-Markdown packages are rejected.
68
+
69
+ ## Client interaction rules
70
+
71
+ - Creation and configuration flows use the shared focus-managed drawer. They
72
+ restore focus on close, trap keyboard focus while open, close on Escape and
73
+ never rely on browser-native dialogs.
74
+ - Lists expose loading, empty, error, disabled and retry states without moving
75
+ errors to an unrelated page footer.
76
+ - Visual feedback uses opacity and transforms. Static overview cards do not
77
+ create pointer tracking, SVG displacement filters or per-card resize
78
+ observers.
79
+ - Form controls and buttons are fully styled by the plugin; browser and theme
80
+ defaults are not part of the component contract.
81
+
82
+ ## Capability and privacy rules
83
+
84
+ - A Skill may only narrow inherited tool access. It never grants a tool that the
85
+ companion did not already have.
86
+ - New companions start with no declared capabilities, memory, daily review,
87
+ heartbeat, channels or collaboration grants. The `partner_companions` tool is
88
+ only composed for a companion explicitly granted the `companions` capability,
89
+ and it may create identity fields only; later permissions remain a user action.
90
+ - Market Skills execute in a forked temporary session by default.
91
+ - Companion collaboration exposes identity, declared capabilities, enabled
92
+ Skill names, availability and the assigned task envelope only.
93
+ - Cross-companion directory access, assignment and `@companion` delegation use
94
+ explicit directed grants (`A -> B`). A grant is not reciprocal. The model
95
+ receives only A's granted directory and the service checks the same edge
96
+ again at execution time. User-initiated board delegation is a separate actor
97
+ and may target any created companion without impersonating another partner.
98
+ - Delegation depth is bounded and self-delegation is rejected.
99
+ - Scheduled jobs default to non-overlapping execution and a disposable session.
@@ -12,8 +12,10 @@ import type { MemoryContextConnection } from './memory-domain.js';
12
12
  import type { MemoryReflectionService } from './memory-reflection.js';
13
13
  import { type ConcernObservation, type ConcernObservationCandidate, type PartnerConcern } from './concern-domain.js';
14
14
  import type { PartnerConcernStore } from './concern-store.js';
15
+ import type { BoardTask } from './tasks/domain.js';
15
16
  import type { PartnerInboundMessage, PartnerOutboundAttachment, PartnerReply } from './channel-message.js';
16
17
  import { type ConcernSource } from './concern-sources.js';
18
+ export { renderToolProtocol, resolvePartnerAgentOptions as resolveAgentOptions } from './execution/agent-support.js';
17
19
  type RuntimeContext = Context & {
18
20
  agents: Context['agents'];
19
21
  agentDefaultModel: AgentDefaultModelConfig;
@@ -21,6 +23,11 @@ type RuntimeContext = Context & {
21
23
  workspaceRegistry: WorkspaceRegistry;
22
24
  tools: ToolRuntime;
23
25
  };
26
+ export interface PartnerAgentComposer {
27
+ compose(ctx: Context & {
28
+ tools: ToolRuntime;
29
+ }, companion: Companion): (() => void) | Promise<() => void>;
30
+ }
24
31
  export interface HeartbeatToolTrace {
25
32
  name: string;
26
33
  input: string;
@@ -47,17 +54,36 @@ export declare class PartnerAgentRuntime {
47
54
  private readonly memory?;
48
55
  private readonly reflection?;
49
56
  private readonly concerns?;
57
+ private readonly composer?;
50
58
  private readonly handles;
51
59
  private readonly queues;
52
60
  private readonly heartbeatQueues;
61
+ private readonly taskQueues;
53
62
  private readonly steeringQueues;
54
63
  private readonly workspaces;
55
64
  private readonly profileVersions;
56
- constructor(ctx: RuntimeContext, store: PartnerStore, defaultCwd: string, memory?: PartnerMemoryStore | undefined, reflection?: MemoryReflectionService | undefined, concerns?: PartnerConcernStore | undefined);
65
+ private readonly restoredCompositions;
66
+ private readonly restoredCompositionJobs;
67
+ private readonly disposeAgentListener;
68
+ constructor(ctx: RuntimeContext, store: PartnerStore, defaultCwd: string, memory?: PartnerMemoryStore | undefined, reflection?: MemoryReflectionService | undefined, concerns?: PartnerConcernStore | undefined, composer?: PartnerAgentComposer | undefined);
57
69
  reply(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<PartnerReply>;
58
70
  steer(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<boolean>;
59
71
  private deliverSteering;
60
72
  prepareSession(routeId: string): Promise<ChannelSession>;
73
+ ensureLocalSessionRecord(companionId: string): Promise<ChannelSession>;
74
+ createLocalSession(companionId: string): Promise<ChannelSession>;
75
+ notifyTaskProgress(task: BoardTask, previousStatus: BoardTask['status']): Promise<void>;
76
+ executeTask(input: {
77
+ sourceId: string;
78
+ companion: Companion;
79
+ prompt: string;
80
+ parentSessionId?: string;
81
+ }): Promise<{
82
+ run: {
83
+ id: string;
84
+ };
85
+ output: string;
86
+ }>;
61
87
  isArchived(route: ChannelSession): boolean;
62
88
  renewSession(routeId: string): Promise<ChannelSession>;
63
89
  heartbeat(companion: Companion, route: ChannelSession, concerns: PartnerConcern[]): Promise<HeartbeatExecution>;
@@ -74,24 +100,23 @@ export declare class PartnerAgentRuntime {
74
100
  private releaseCompanion;
75
101
  resetChannel(channelId: string): Promise<void>;
76
102
  close(): Promise<void>;
103
+ private releaseRestoredComposition;
77
104
  private drive;
78
105
  private persistInbound;
79
106
  private ensureSession;
80
107
  private ensureAgent;
108
+ private ensureRestoredComposition;
109
+ private composeRestoredAgent;
81
110
  private injectProfileUpdate;
82
111
  private attachSession;
83
112
  }
113
+ export declare function selectTaskNotificationRoute(routes: readonly ChannelSession[], creatorSessionId: string | undefined, archived: (route: ChannelSession) => boolean): ChannelSession | undefined;
84
114
  export declare function extractOutboundAttachments(text: string, cwd: string): Promise<PartnerOutboundAttachment[]>;
85
115
  export declare function completedTurnEvents(events: readonly SessionEvent[], end: Extract<SessionEvent, {
86
116
  type: 'turn/end';
87
117
  }>): readonly SessionEvent[];
88
118
  export declare function memoryScope(channelId: string, userId: string): string;
89
119
  export declare function renderMemory(entries: NonNullable<Awaited<ReturnType<PartnerMemoryStore['recall']>>>, connections?: MemoryContextConnection[]): string;
90
- export declare function resolveAgentOptions(defaultModel: AgentDefaultModelConfig, companion: Companion): {
91
- model: string;
92
- provider: string;
93
- reasoningEffort?: import("@deepseek-ai/dsh-llm").ReasoningEffortId;
94
- };
95
120
  export declare function canReuseSession(route: ChannelSession, companionId: string, archivedSessionIds: readonly SessionId[]): boolean;
96
121
  export declare function renewedSession(previous: ChannelSession, now?: number): ChannelSession;
97
122
  export declare function partnerCwd(root: string, companionId: string): string;
@@ -106,6 +131,4 @@ interface HeartbeatFileAccess {
106
131
  }
107
132
  export declare function heartbeatToolDenial(name: string, argumentsValue: unknown, access?: HeartbeatFileAccess): string | undefined;
108
133
  export declare function renderHeartbeatActivity(execution: HeartbeatExecution, outcome: HeartbeatOutcome, deliveryError?: string): string;
109
- export declare function renderToolProtocol(): string;
110
- export {};
111
134
  //# sourceMappingURL=agent-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}