dsh-trellis 0.1.6 → 0.1.7
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 +22 -8
- package/lib/client.js +32 -12
- package/lib/client.js.map +1 -1
- package/lib/index.js +15 -6
- package/lib/wait-tool.js +25 -11
- package/package.json +43 -35
package/README.md
CHANGED
|
@@ -6,7 +6,7 @@ DeepSeek Harness (dsh) host 插件:把 [Trellis](https://github.com/mindfold-a
|
|
|
6
6
|
2. **隔离的原生会话上下文身份** — 从当前 agent 的 DSH 原生 session header 生成受管的 `DSH_TRELLIS_CONTEXT_ID`,让 `task.py start/create/current` 解析到会话级 active-task 指针,并在子代理身份不同于 shell 自身 session 时优先使用被转发的身份;插件命令启动的子进程也显式使用同一个 DSH 身份。
|
|
7
7
|
3. **原生子代理同步** — 安装插件后,Trellis 角色可用 DSH continuable 后台子代理;主会话先继续独立工作,耗尽后可调用事件驱动的 `trellis_wait`。它监听 DSH 的 `subagent/end`,利用 lifecycle 自带的 run/provider/output-block 元数据返回 `completed / failed / aborted / unknown` 的 fail-closed 结论。`error`、`max-tokens`、`refusal` 和未来未知失败原因都不会被误报成通过。rc.8 在父会话 idle 时也会用原生 settlement notice 唤醒,因此已经结束当前轮时无需额外调用 wait。
|
|
8
8
|
4. **`/trellis` 命令** — `/trellis-status`(活跃任务 + git 状态)、`/trellis-finish`(只读检查 + 安全收尾清单,不提前清 active-task 指针)。命令输出不进模型历史;真正的会话收尾走技能面 `/trellis-finish-work`,由技能先归档再写 journal。rc.8 下两条零输入命令使用 `recordInput: false`,并显式拒绝参数和图片附件,避免静默忽略输入。
|
|
9
|
-
5. **Web 配置菜单** — DSH
|
|
9
|
+
5. **Web 配置菜单** — DSH `0.1.6-alpha.2` 的“插件 → trellis”详情页直接显示全部六个配置项;旧版 RC 继续使用“设置 → 插件 → 插件配置”卡片。支持分阶段编辑、恢复 profile 配置层和保存后读回确认。配置里的 `enabled=false` 会停用工作流功能但保留表单;插件管理器的整包或组件开关则会连同表单一起卸载。
|
|
10
10
|
|
|
11
11
|
非 Trellis 项目不注入面包屑;命令只有被用户显式调用时才会检查并返回“未初始化 Trellis”。
|
|
12
12
|
|
|
@@ -30,7 +30,9 @@ dsh plugin --profile web update dsh-trellis
|
|
|
30
30
|
dsh plugin --profile headless update dsh-trellis
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
对 `tui` profile 使用同样的 update
|
|
33
|
+
对 `tui` profile 使用同样的 update。替换已加载的包版本后,需重启对应 DSH 进程;不要把新版插件管理器的实时开关误当作代码版本热更新。
|
|
34
|
+
|
|
35
|
+
DSH `0.1.6-alpha.2` 也可从 Web 侧栏“插件 → 添加插件”安装包。Web 安装后需要手动启用;CLI `add` 默认启用。安装命令仍是 `dsh plugin --profile <name> add <package>`,无需增加额外安装脚本。
|
|
34
36
|
|
|
35
37
|
如果要从源码开发或验证尚未发布的版本,可以改用本地 `file:` 安装:
|
|
36
38
|
|
|
@@ -44,11 +46,19 @@ dsh plugin --profile headless add file:C:/path/to/dsh-trellis
|
|
|
44
46
|
|
|
45
47
|
`file:` 插件会作为 profile 内的 pnpm 快照安装;拉取源码更新后,尤其是版本新增文件时,需要先 remove 再 add 刷新该 profile。
|
|
46
48
|
|
|
47
|
-
配套要求:项目的 Trellis 平台需包含 dsh(`trellis init --dsh`,见 Trellis-DeepSeekHarness 适配分支),且 `.trellis/scripts` 需包含读取原生 `DSH_SESSION_ID` 的适配(已含在同一分支)。Host peer 范围显式覆盖 DSH `0.1.0-rc.6+`、`0.1.1-rc.1+`、`0.1.2-alpha.1+`、`0.1.3-alpha.1+` 与 `0.1.
|
|
49
|
+
配套要求:项目的 Trellis 平台需包含 dsh(`trellis init --dsh`,见 Trellis-DeepSeekHarness 适配分支),且 `.trellis/scripts` 需包含读取原生 `DSH_SESSION_ID` 的适配(已含在同一分支)。Host peer 范围显式覆盖 DSH `0.1.0-rc.6+`、`0.1.1-rc.1+`、`0.1.2-alpha.1+`、`0.1.3-alpha.1+`、`0.1.5-alpha.1+` 与 `0.1.6-alpha.2+` 六条已知预发布线,避免 npm 的 prerelease 语义把新版 Host 误判为不兼容。本仓开发基线固定为 `0.1.6-alpha.2`,另用隔离依赖回归 `0.1.5-rc.2`;这不代表逐个重新验证了所有历史版本。Host 侧 Settings 桥同时兼容旧版包级 helper 与当前 provider 方法,Web 配置界面只在具备 settings/client surface 的 profile 中加载。
|
|
48
50
|
|
|
49
51
|
运行时需要 profile 提供 `sessionProjections` 服务;该依赖由插件的 `inject` 声明。自定义或精简 profile 若未组装此服务,需先加载 `@deepseek-ai/dsh-session-projection`,否则插件会等待依赖,不会退回直接扫描历史。
|
|
50
52
|
|
|
51
|
-
### DSH 0.1.
|
|
53
|
+
### 0.1.7:DSH 0.1.6-alpha.2 适配
|
|
54
|
+
|
|
55
|
+
- 跟随[官方插件页 slot 契约](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.6-alpha.2/packages/client/ui-plugin-manager/README.md),第三方包配置注册到 `plugins.bundle.config`,以 `dsh-trellis` 包名为 key;详情页直接渲染表单,不重复包装标题和折叠卡片。保留旧 `settings.plugin.item` keyed/list 两种形态,按实际存在的 slot 延迟注册并随 owner 卸载。
|
|
56
|
+
- 依照[官方插件管理器规范](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.6-alpha.2/packages/boot/plugin-manager/README.md),保留 `dsh.bundle.patch` 安装入口,增加 `dsh.manifestVersion: 1` 与 `engines.dsh` 兼容性声明。`engines.dsh` 在该宿主版本中是声明信息,不是运行时兼容性检查器。
|
|
57
|
+
- 升级开发依赖和锁文件;测试依赖使用新名 `dsh-ptc-runtime`,RC 回归隔离副本继续使用 `dsh-code-runtime`。`dsh.client.inject` 保留旧宿主需要的依赖信息;新宿主实际运行时模块请求仍由编译产物决定,不额外安装一份 Web 壳。
|
|
58
|
+
- 加固实时卸载:取消所有正在等待的 `trellis_wait`、注销结算监听器、拒绝旧工具引用继续执行;清除尚未消费的 Trellis 面包屑,但保留用户输入。异步 pre-step continuation 在卸载后不再注入。Settings 保存遇到断连或拒绝时显示失败、保留草稿并允许重试。
|
|
59
|
+
- 本轮不改变 Trellis 的任务绑定、Python 脚本或生成模板;继续保留 0.1.6 的精确会话指针和 `task_error` 行为。
|
|
60
|
+
|
|
61
|
+
### 既有 DSH 0.1.5-rc.2 对齐
|
|
52
62
|
|
|
53
63
|
- 已迁移:面包屑使用 `sessionProjections` 的纯 fold,在恢复或分叉时重建状态、按已提交事件增量更新,不再调用 Session 的 `eventAt()` / `snapshotEvents()` / `ownEvents()` 或访问旧事件集合。当前 DSH 注册 Host-only projection;旧版 registry 通过 projection snapshot 兼容,仅包含序号和 payload 哈希,不传输工作流正文。
|
|
54
64
|
- 已修复:恢复会话、插件或 Settings 重载后的首轮也会去重;以最后一条仍可见的面包屑判断,避免 A → B → A 状态切换被旧记录误抑制。压缩移除后会重新注入,字节预算变化导致的正文变化也会重新注入。
|
|
@@ -62,7 +72,7 @@ dsh plugin --profile headless add file:C:/path/to/dsh-trellis
|
|
|
62
72
|
|
|
63
73
|
## 配置
|
|
64
74
|
|
|
65
|
-
支持 Settings provider 的 DSH Web profile
|
|
75
|
+
支持 Settings provider 的 DSH Web profile,在 `0.1.6-alpha.2` 打开“插件 → trellis”,旧版 RC 打开“设置 → 插件 → 插件配置 → Trellis 工作流”。保存内容进入该 DSH_HOME 的 `settings.yaml`,优先级高于 profile 组合层并立即生效。
|
|
66
76
|
|
|
67
77
|
Headless、rc.6 或需要声明部署默认值时,仍可在 profile 的 `cordis.patch.yml` 里覆盖(整行替换);Web 卡片的“恢复配置文件值”会清除用户层字段并重新继承这里的值:
|
|
68
78
|
|
|
@@ -87,8 +97,8 @@ Headless、rc.6 或需要声明部署默认值时,仍可在 profile 的 `cordi
|
|
|
87
97
|
- **状态解析**(`lib/workflow.js`):向上找项目根 → 读 `.trellis/workflow.md` 解析状态块 → 只读当前会话指针 `.trellis/.runtime/sessions/dsh_<id>.json`,不枚举其他会话。指针缺失时返回 `no_task`;指向的任务记录不可读时返回 `task_error` 并保留路径。修复记录或重新绑定任务后会在下一轮重新解析。
|
|
88
98
|
- **注入去重**(`lib/breadcrumb-projection.js`):投影仅保存面包屑的事件序号和 source/content 指纹,与 DSH 已维护的 `session.surface.nodes` 一起确定最后可见面包屑。恢复、分叉和重载均从 projection 重建;不缓存“本进程最后注入”的临时判断,也不扫描完整事件历史。
|
|
89
99
|
- **会话身份**:DSH 原生提供 `DSH_SESSION_ID = agent.session.header.id`,并先丢弃环境中已有的 `DSH_*` 再重建受管命名空间。Trellis beta 因此会在同时看到 `DSH_SHELL=1` 与 `DSH_SESSION_ID` 时优先解析当前 DSH 身份,即使没有插件也不会被外层 host 继承的 `TRELLIS_CONTEXT_ID` 串任务。插件通过 `shellEnv` 为每次执行额外生成 `DSH_TRELLIS_CONTEXT_ID = dsh_<session-id>`,用于转发可能不同于 shell 自身 session 的子代理身份;主会话与子代理仍各自保留 DSH 身份,子代理通过派发 prompt 首行的 `Active task:` 和角色 prelude 取得父任务上下文。
|
|
90
|
-
- **Headless
|
|
91
|
-
- **取消与生命周期**:命令和 `trellis_wait` 都继承 DSH invocation 的 `AbortSignal`;取消后命令不会继续尝试另一个 Python 启动器,等待工具也会立即注销临时事件监听器。`trellis_wait` 只在收到配对的结算事件时声明 `settlementNoticeQueued=true`;仅从 catalog 看到 inactive 时保持 `unknown
|
|
100
|
+
- **Headless 会话**:默认每次 `dsh --profile headless` 调用都会创建新 DSH session。需要跨轮保留 active-task 指针时,应保持同一会话,或在支持的宿主上用 `--session-id` 明确继续已有会话;不能把多个未指定身份的独立调用当成同一 session。
|
|
101
|
+
- **取消与生命周期**:命令和 `trellis_wait` 都继承 DSH invocation 的 `AbortSignal`;取消后命令不会继续尝试另一个 Python 启动器,等待工具也会立即注销临时事件监听器。`trellis_wait` 只在收到配对的结算事件时声明 `settlementNoticeQueued=true`;仅从 catalog 看到 inactive 时保持 `unknown`,不猜任务通过。插件卸载或 Settings 重挂时,还会取消自己的活跃等待和待消费面包屑,不删除用户消息或任务记录。
|
|
92
102
|
- **子代理并发**:workflow 只有在发现 `trellis_wait` 时才使用 DSH 原生 continuable 后台 `subagent`。主会话并行做独立工作;需要汇合时调用一次 `trellis_wait <subagent_id>` 等待原生结算事件。没有该工具时,首次派发直接设置 `run_in_background: false`,绝不留下无法事件汇合的后台子代理。
|
|
93
103
|
|
|
94
104
|
## 开发
|
|
@@ -97,9 +107,13 @@ Headless、rc.6 或需要声明部署默认值时,仍可在 profile 的 `cordi
|
|
|
97
107
|
pnpm install
|
|
98
108
|
pnpm run build:client
|
|
99
109
|
pnpm test # node --test test/*.test.js
|
|
110
|
+
pnpm run test:compat 0.1.5-rc.2 # 临时副本中安装旧宿主并运行同一套测试
|
|
111
|
+
# 不传版本参数时,隔离回归 RC.2 和 alpha.2 两个宿主
|
|
100
112
|
```
|
|
101
113
|
|
|
102
|
-
GitHub Actions
|
|
114
|
+
GitHub Actions 配置在 Windows / Linux 的 Node 24 环境执行锁定的 alpha.2 安装、客户端构建、测试、隔离 RC.2 回归和打包检查;其中包含真实 Session/projection 服务的增量驱动、恢复、分叉、压缩和 checkpoint 回归,以及真实临时项目中的精确身份绑定、跨会话隔离、任务记录损坏/修复、解绑与 Settings 重载回归。另有编译客户端的 React 渲染、slot owner 迟到/重载和资源清理测试。
|
|
115
|
+
|
|
116
|
+
`test:compat` 不改当前 checkout 的依赖,临时副本保留在系统临时目录并打印路径供检查。发布前还应使用隔离 `DSH_HOME` 启动真实 Web profile,验证配置保存/读回、整包及组件开关、重新挂载和卸载;不复用个人凭据或会话。0.1.7 的 Windows 本地验收已覆盖这些浏览器路径。
|
|
103
117
|
|
|
104
118
|
Host half 是直接由 `main` 加载的 ESM JavaScript;Web half 通过 tsdown 生成 DSH lazy-CJS factory 到 `lib/client.js`。`pnpm pack` 会在 prepack 阶段自动重建客户端 bundle。
|
|
105
119
|
|
package/lib/client.js
CHANGED
|
@@ -195,7 +195,13 @@ window.__ModuleLoader__.load({
|
|
|
195
195
|
})
|
|
196
196
|
});
|
|
197
197
|
}
|
|
198
|
-
function
|
|
198
|
+
function TrellisSettingsPage({ view, ...props }) {
|
|
199
|
+
return view === "summary" ? props.t("description") : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TrellisSettingsCard, {
|
|
200
|
+
...props,
|
|
201
|
+
presentation: "page"
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
function TrellisSettingsCard({ scope, t, presentation = "card" }) {
|
|
199
205
|
const subscribe = (0, react.useCallback)((listener) => scope.subscribe(listener), [scope]);
|
|
200
206
|
const getSnapshot = (0, react.useCallback)(() => scope.getSnapshot(), [scope]);
|
|
201
207
|
const snapshot = (0, react.useSyncExternalStore)(subscribe, getSnapshot, getSnapshot);
|
|
@@ -203,6 +209,8 @@ window.__ModuleLoader__.load({
|
|
|
203
209
|
const [draft, setDraft] = (0, react.useState)(() => makeDraft(snapshot));
|
|
204
210
|
const [saving, setSaving] = (0, react.useState)(false);
|
|
205
211
|
const [failed, setFailed] = (0, react.useState)(false);
|
|
212
|
+
const page = presentation === "page";
|
|
213
|
+
const Container = page ? "section" : "li";
|
|
206
214
|
const plan = (0, react.useMemo)(() => planDraft(snapshot, draft), [snapshot, draft]);
|
|
207
215
|
const dirty = plan.writes.length > 0;
|
|
208
216
|
(0, react.useEffect)(() => {
|
|
@@ -230,17 +238,22 @@ window.__ModuleLoader__.load({
|
|
|
230
238
|
if (saving || plan.invalid || plan.writes.length === 0) return;
|
|
231
239
|
setSaving(true);
|
|
232
240
|
setFailed(false);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
241
|
+
try {
|
|
242
|
+
for (const write of plan.writes) if (write.kind === "unset") await scope.unset(write.field);
|
|
243
|
+
else await scope.set(write.field, write.value);
|
|
244
|
+
const landed = planLanded(scope.getSnapshot(), plan.writes);
|
|
245
|
+
if (landed) setDraft(makeDraft(scope.getSnapshot()));
|
|
246
|
+
setFailed(!landed);
|
|
247
|
+
} catch {
|
|
248
|
+
setFailed(true);
|
|
249
|
+
} finally {
|
|
250
|
+
setSaving(false);
|
|
251
|
+
}
|
|
239
252
|
};
|
|
240
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
241
|
-
className: "dsh-trellis-card",
|
|
242
|
-
"data-open": open,
|
|
243
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
253
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Container, {
|
|
254
|
+
className: page ? "dsh-trellis-page" : "dsh-trellis-card",
|
|
255
|
+
"data-open": page || open,
|
|
256
|
+
children: [!page ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
244
257
|
type: "button",
|
|
245
258
|
className: "dsh-trellis-header",
|
|
246
259
|
"aria-expanded": open,
|
|
@@ -267,7 +280,7 @@ window.__ModuleLoader__.load({
|
|
|
267
280
|
children: "⌄"
|
|
268
281
|
})
|
|
269
282
|
]
|
|
270
|
-
}), open ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
283
|
+
}) : null, page || open ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
271
284
|
className: "dsh-trellis-body",
|
|
272
285
|
children: [
|
|
273
286
|
!snapshot.writable ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
@@ -430,6 +443,7 @@ window.__ModuleLoader__.load({
|
|
|
430
443
|
//#endregion
|
|
431
444
|
//#region src/client/styles.js
|
|
432
445
|
const styles = String.raw`
|
|
446
|
+
.dsh-trellis-page{min-width:0}.dsh-trellis-page .dsh-trellis-body{border-top:0;margin:0}.dsh-trellis-page .dsh-trellis-field:first-child{padding-top:0}
|
|
433
447
|
.dsh-trellis-card{list-style:none;border:1px solid var(--dsw-alias-border-l2);border-radius:12px;background:var(--dsw-alias-bg-layer-3);transition:border-color .16s,background .16s}.dsh-trellis-card:hover{border-color:var(--dsw-alias-label-dimmed)}.dsh-trellis-card[data-open=true]{background:var(--dsw-alias-bg-layer-2);border-color:var(--dsw-alias-label-dimmed)}.dsh-trellis-header{width:100%;appearance:none;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px}.dsh-trellis-header:focus-visible,.dsh-trellis-button:focus-visible,.dsh-trellis-reset:focus-visible{outline:2px solid var(--dsw-alias-brand-primary);outline-offset:1px}.dsh-trellis-head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.dsh-trellis-name{font-size:15px;font-weight:600;line-height:1.4;color:var(--dsw-alias-label-primary)}.dsh-trellis-description{font-size:13px;line-height:1.5;color:var(--dsw-alias-label-tertiary)}.dsh-trellis-chevron{flex:none;color:var(--dsw-alias-label-tertiary);font-size:14px;transition:transform .16s}.dsh-trellis-card[data-open=true] .dsh-trellis-chevron{transform:rotate(180deg)}.dsh-trellis-badge{flex:none;border-radius:999px;padding:1px 8px;font-size:11px;line-height:17px;font-weight:500;white-space:nowrap;background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-secondary)}.dsh-trellis-body{border-top:1px solid var(--dsw-alias-border-l2);margin:0 16px;padding-bottom:8px}.dsh-trellis-readonly,.dsh-trellis-error{margin:12px 0 0;font-size:12px;line-height:1.5}.dsh-trellis-readonly{color:var(--dsw-alias-label-tertiary)}.dsh-trellis-error{color:var(--dsw-alias-label-error)}.dsh-trellis-field{display:flex;flex-direction:column;gap:6px;padding:12px 0}.dsh-trellis-field+.dsh-trellis-field{border-top:1px solid var(--dsw-alias-border-l2)}.dsh-trellis-field-head{display:flex;align-items:center;gap:8px}.dsh-trellis-label{flex:1;min-width:0;font-size:13px;font-weight:500;line-height:1.5;color:var(--dsw-alias-label-primary)}.dsh-trellis-reset{border:0;background:none;padding:0;font:inherit;font-size:12px;line-height:1.5;color:var(--dsw-alias-label-secondary);cursor:pointer}.dsh-trellis-input,.dsh-trellis-textarea{width:100%;box-sizing:border-box;padding:0 12px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-3);font:inherit;font-size:13px;line-height:1.5;color:var(--dsw-alias-label-primary)}.dsh-trellis-input{height:34px}.dsh-trellis-textarea{min-height:68px;padding-top:8px;padding-bottom:8px;resize:vertical}.dsh-trellis-input:focus-visible,.dsh-trellis-textarea:focus-visible{outline:none;border-color:var(--dsw-alias-brand-primary)}.dsh-trellis-input[aria-invalid=true]{border-color:var(--dsw-alias-label-error)}.dsh-trellis-hint{margin:0;font-size:12px;line-height:1.5;color:var(--dsw-alias-label-tertiary)}.dsh-trellis-hint[data-invalid=true]{color:var(--dsw-alias-label-error)}.dsh-trellis-switch-row{display:flex;flex:1;align-items:flex-start;gap:10px}.dsh-trellis-switch-row input{margin-top:3px;accent-color:var(--dsw-alias-brand-primary)}.dsh-trellis-switch-copy{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}.dsh-trellis-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 0 4px;border-top:1px solid var(--dsw-alias-border-l2)}.dsh-trellis-footer .dsh-trellis-error{flex:1;margin:0}.dsh-trellis-button{appearance:none;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;padding:5px 14px;font:inherit;font-size:13px;line-height:1.5;cursor:pointer;background:none;color:var(--dsw-alias-label-secondary)}.dsh-trellis-button[data-primary=true]{border-color:transparent;background:var(--dsw-alias-label-primary);color:var(--dsw-alias-bg-layer-3)}.dsh-trellis-button:disabled,.dsh-trellis-reset:disabled,.dsh-trellis-input:disabled,.dsh-trellis-textarea:disabled{opacity:.45;cursor:default}
|
|
434
448
|
`;
|
|
435
449
|
//#endregion
|
|
@@ -462,6 +476,12 @@ window.__ModuleLoader__.load({
|
|
|
462
476
|
locale: LOCALE_NAMESPACE,
|
|
463
477
|
inject: () => ({ scope })
|
|
464
478
|
}, TrellisSettingsCard));
|
|
479
|
+
ctx.slots.inject("plugins.bundle.config", () => ctx.slots.register({
|
|
480
|
+
name: "plugins.bundle.config",
|
|
481
|
+
key: SETTINGS_NAMESPACE,
|
|
482
|
+
locale: LOCALE_NAMESPACE,
|
|
483
|
+
inject: () => ({ scope })
|
|
484
|
+
}, TrellisSettingsPage));
|
|
465
485
|
}
|
|
466
486
|
//#endregion
|
|
467
487
|
exports.LOCALE_NAMESPACE = LOCALE_NAMESPACE;
|
package/lib/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["useCallback","useSyncExternalStore","useState","useMemo"],"sources":["../src/client/form.js","../src/client/TrellisSettingsCard.jsx","../src/client/compat.js","../src/client/locales.js","../src/client/styles.js","../src/client/index.jsx"],"mappings":";;;;;;;;;EAAA,MAAa,WAAW,OAAO,OAAO;GACpC,SAAS;GACT,UAAU;GACV,oBAAoB,OAAO,OAAO,CAAC,MAAM,CAAC;GAC1C,aAAa;GACb,WAAW;GACX,iBAAiB;EACnB,CAAC;EAED,MAAa,cAAc,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC;EAE9D,SAAS,OAAO,OAAO;GACrB,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,IACtE,QACA,CAAC;EACP;EAEA,SAAgB,UAAU,MAAM,OAAO;GACrC,OAAO,KAAK,UAAU,IAAI,MAAM,KAAK,UAAU,KAAK;EACtD;EAEA,SAAgB,cAAc,UAAU,OAAO;GAC7C,MAAM,OAAO,OAAO,SAAS,IAAI;GACjC,OAAO,OAAO,OAAO,MAAM,KAAK,IAAI,KAAK,SAAS,SAAS;EAC7D;EAEA,SAAgB,UAAU,UAAU;GAClC,MAAM,QAAQ,OAAO,SAAS,KAAK;GACnC,OAAO,OAAO,YACZ,YAAY,KAAK,UAAU,CACzB,OACA;IAAE,MAAM;IAAS,OAAO,MAAM,UAAU,SAAS;GAAO,CAC1D,CAAC,CACH;EACF;EAEA,SAAgB,UAAU,OAAO,OAAO,OAAO;GAC7C,OAAO;IAAE,GAAG;KAAQ,QAAQ;KAAE,MAAM;KAAO;IAAM;GAAE;EACrD;EAEA,SAAgB,WAAW,UAAU,OAAO,OAAO;GACjD,OAAO;IACL,GAAG;KACF,QAAQ;KAAE,MAAM;KAAS,OAAO,cAAc,UAAU,KAAK;IAAE;GAClE;EACF;EAEA,SAAgB,aAAa,MAAM;GACjC,OAAO,CAAC,GAAG,IAAI,IAAI,KAAK,MAAM,OAAO,CAAC,CAAC,KAAK,UAAU,MAAM,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC;EACtF;EAEA,SAAgB,WAAW,OAAO;GAChC,MAAM,WAAW,OAAO,OAAO,MAAM,SAAS,KAAK,CAAC,CAAC,KAAK,CAAC;GAC3D,OAAO;IACL,SACE,CAAC,OAAO,UAAU,QAAQ,KAC1B,WAAW,KACX,OAAO,MAAM,QAAQ,UAAU,aAC/B,OAAO,MAAM,gBAAgB,UAAU;IACzC,OAAO;KACL,SAAS,MAAM,QAAQ;KACvB;KACA,oBAAoB,aAAa,OAAO,MAAM,mBAAmB,KAAK,CAAC;KACvE,aAAa,OAAO,MAAM,YAAY,KAAK;KAC3C,WAAW,OAAO,MAAM,UAAU,KAAK;KACvC,iBAAiB,MAAM,gBAAgB;IACzC;GACF;EACF;EAEA,SAAgB,UAAU,UAAU,OAAO;GACzC,MAAM,OAAO,OAAO,SAAS,IAAI;GACjC,MAAM,UAAU,OAAO,SAAS,KAAK;GACrC,MAAM,SAAS,WAAW,KAAK;GAC/B,MAAM,SAAS,CAAC;GAChB,KAAK,MAAM,SAAS,aAAa;IAC/B,MAAM,SAAS,MAAM;IACrB,IAAI,OAAO,SAAS,SAAS;IAC7B,IAAI,OAAO,SAAS,SAAS;KAC3B,IAAI,OAAO,OAAO,MAAM,KAAK,GAAG,OAAO,KAAK;MAAE;MAAO,MAAM;KAAQ,CAAC;KACpE;IACF;IACA,MAAM,QAAQ,OAAO,MAAM;IAC3B,IAAI,CAAC,UAAU,QAAQ,QAAQ,KAAK,GAClC,OAAO,KAAK;KAAE;KAAO,MAAM;KAAO;IAAM,CAAC;GAE7C;GACA,OAAO;IAAE,SAAS,OAAO;IAAS;GAAO;EAC3C;EAEA,SAAgB,aAAa,UAAU,OAAO,OAAO;GACnD,IAAI,MAAM,MAAM,CAAC,SAAS,OAAO,OAAO;GACxC,IAAI,MAAM,MAAM,CAAC,SAAS,SAAS,OAAO;GAC1C,OAAO,OAAO,OAAO,OAAO,SAAS,IAAI,GAAG,KAAK;EACnD;EAEA,SAAgB,WAAW,UAAU,QAAQ;GAC3C,MAAM,OAAO,OAAO,SAAS,IAAI;GACjC,OAAO,OAAO,OAAO,UACnB,MAAM,SAAS,UACX,CAAC,OAAO,OAAO,MAAM,MAAM,KAAK,IAChC,OAAO,OAAO,MAAM,MAAM,KAAK,KAAK,UAAU,KAAK,MAAM,QAAQ,MAAM,KAAK,CAClF;EACF;;;ECtFA,SAAS,MAAM,EAAE,SAAS,UAAU,OAAO,WAAW;GACpD,OAAO,UACL,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;IAAM,WAAU;IAAhB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;KAAM,WAAU;KAAqB,UAAA,MAAM;IAAiB,CAAA,GAC5D,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;KAAQ,WAAU;KAAoB,MAAK;KAAmB;KAAmB;KAC9E,UAAA,MAAM;IACD,CAAA,CACJ;GACJ,CAAA,IAAA;EACN;EAEA,SAAS,UAAU,EAAE,IAAI,OAAO,MAAM,OAAO,UAAU,YAAY,OAAO,UAAU,OAAO,UAAU,SAAS,YAAY,KAAK;GAC7H,MAAM,UAAU,YAAY,aAAa;GACzC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;OAAO,WAAU;OAAoB,SAAS;OAAK,UAAA;MAAa,CAAA,GAChE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;OAAO,SAAS;OAAsB;OAAU,OAAO;QAAE,YAAY,EAAE,YAAY;QAAG,OAAO,EAAE,OAAO;OAAE;OAAG,SAAS;MAAU,CAAA,CAC3H;;KACL,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;MACM;MACJ,WAAW,YAAY,yBAAyB;MAChD,GAAI,YAAY,CAAC,IAAI,EAAE,MAAM,OAAO;MAC7B;MACG;MACV,gBAAc,WAAW,KAAA;MACzB,WAAW,UAAU,SAAS,MAAM,OAAO,KAAK;KACjD,CAAA;KACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;MAAG,WAAU;MAAmB,gBAAc;MAAU,UAAA,UAAU,EAAE,iBAAiB,IAAI;KAAQ,CAAA;IAC9F;;EAET;EAEA,SAAS,aAAa,EAAE,IAAI,OAAO,MAAM,OAAO,UAAU,UAAU,SAAS,YAAY,KAAK;GAC5F,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACb,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,SAAD;MAAO,WAAU;MAAyB,SAAS;MAAnD,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD;OAAW;OAAI,MAAK;OAAW,SAAS;OAAiB;OAAU,WAAW,UAAU,SAAS,MAAM,OAAO,OAAO;MAAI,CAAA,GACzH,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;OAAM,WAAU;OAAhB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;QAAM,WAAU;QAAqB,UAAA;OAAY,CAAA,GACjD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;QAAM,WAAU;QAAoB,UAAA;OAAW,CAAA,CAC3C;MACD,CAAA,CAAA;KACP,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;MAAO,SAAS;MAAsB;MAAU,OAAO;OAAE,YAAY,EAAE,YAAY;OAAG,OAAO,EAAE,OAAO;MAAE;MAAG,SAAS;KAAU,CAAA,CAC3H;;GACF,CAAA;EAET;EAEA,SAAgB,oBAAoB,EAAE,OAAO,KAAK;GAChD,MAAM,aAAA,GAAYA,MAAAA,YAAAA,EAAa,aAAa,MAAM,UAAU,QAAQ,GAAG,CAAC,KAAK,CAAC;GAC9E,MAAM,eAAA,GAAcA,MAAAA,YAAAA,OAAkB,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC;GAClE,MAAM,YAAA,GAAWC,MAAAA,qBAAAA,CAAqB,WAAW,aAAa,WAAW;GACzE,MAAM,CAAC,MAAM,YAAA,GAAWC,MAAAA,SAAAA,CAAS,KAAK;GACtC,MAAM,CAAC,OAAO,aAAA,GAAYA,MAAAA,SAAAA,OAAe,UAAU,QAAQ,CAAC;GAC5D,MAAM,CAAC,QAAQ,cAAA,GAAaA,MAAAA,SAAAA,CAAS,KAAK;GAC1C,MAAM,CAAC,QAAQ,cAAA,GAAaA,MAAAA,SAAAA,CAAS,KAAK;GAE1C,MAAM,QAAA,GAAOC,MAAAA,QAAAA,OAAc,UAAU,UAAU,KAAK,GAAG,CAAC,UAAU,KAAK,CAAC;GACxE,MAAM,QAAQ,KAAK,OAAO,SAAS;GACnC,CAAA,GAAA,MAAA,UAAA,OAAgB;IACd,IAAI,CAAC,SAAS,SAAS,WAAW,SAAS,SAAS,UAAU,QAAQ,CAAC;GACzE,GAAG,CAAC,OAAO,QAAQ,CAAC;GAEpB,IAAI,SAAS,WAAW,SAAS,OAAO;GACxC,MAAM,WAAW,CAAC,SAAS,YAAY;GACvC,MAAM,SAAS,WAAW,KAAK;GAC/B,MAAM,SAAS,UAAU;IACvB,YAAY,aAAa,UAAU,OAAO,IAAI;IAC9C,eAAe;KACb,UAAU,YAAY,WAAW,UAAU,SAAS,IAAI,CAAC;KACzD,UAAU,KAAK;IACjB;GACF;GACA,MAAM,QAAQ,MAAM,UAAU;IAC5B,UAAU,YAAY,UAAU,SAAS,MAAM,KAAK,CAAC;IACrD,UAAU,KAAK;GACjB;GACA,MAAM,gBAAgB;IACpB,SAAS,UAAU,QAAQ,CAAC;IAC5B,UAAU,KAAK;GACjB;GACA,MAAM,OAAO,YAAY;IACvB,IAAI,UAAU,KAAK,WAAW,KAAK,OAAO,WAAW,GAAG;IACxD,UAAU,IAAI;IACd,UAAU,KAAK;IACf,KAAK,MAAM,SAAS,KAAK,QACvB,IAAI,MAAM,SAAS,SAAS,MAAM,MAAM,MAAM,MAAM,KAAK;SACpD,MAAM,MAAM,IAAI,MAAM,OAAO,MAAM,KAAK;IAE/C,MAAM,SAAS,WAAW,MAAM,YAAY,GAAG,KAAK,MAAM;IAC1D,IAAI,QAAQ,SAAS,UAAU,MAAM,YAAY,CAAC,CAAC;IACnD,UAAU,CAAC,MAAM;IACjB,UAAU,KAAK;GACjB;GAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,MAAD;IAAI,WAAU;IAAmB,aAAW;IAA5C,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD;KACE,MAAK;KACL,WAAU;KACV,iBAAe;KACf,cAAY,GAAG,EAAE,OAAO,aAAa,QAAQ,EAAE,IAAI,EAAE,OAAO;KAC5D,eAAe,SAAS,UAAU,CAAC,KAAK;KAL1C,UAAA;MAOE,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;OAAM,WAAU;OAAhB,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;QAAM,WAAU;QAAoB,UAAA,EAAE,OAAO;OAAQ,CAAA,GACrD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;QAAM,WAAU;QAA2B,UAAA,EAAE,aAAa;OAAQ,CAAA,CAC9D;;MACL,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;OAAM,WAAU;OAAqB,UAAA,EAAE,SAAS;MAAQ,CAAA,IAAI;MACrE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;OAAM,WAAU;OAAsB,eAAY;OAAO,UAAA;MAAO,CAAA;KAC1D;IACP,CAAA,GAAA,OACC,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;KAAK,WAAU;KAAf,UAAA;MACG,CAAC,SAAS,WAAW,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;OAAG,WAAU;OAAuB,MAAK;OAAU,UAAA,EAAE,UAAU;MAAK,CAAA,IAAI;MAC9F,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAD;OAAc,IAAG;OAAsB,OAAO,EAAE,SAAS;OAAG,MAAM,EAAE,aAAa;OAAG,OAAO,QAAQ,MAAM,QAAQ,KAAK;OAAa;OAAU,WAAW,UAAU,KAAK,WAAW,KAAK;OAAM;OAAG,GAAI,MAAM,SAAS;MAAI,CAAA;MACvN,iBAAA,GAAA,kBAAA,IAAA,CAAC,cAAD;OAAc,IAAG;OAAuB,OAAO,EAAE,iBAAiB;OAAG,MAAM,EAAE,qBAAqB;OAAG,OAAO,QAAQ,MAAM,gBAAgB,KAAK;OAAa;OAAU,WAAW,UAAU,KAAK,mBAAmB,KAAK;OAAM;OAAG,GAAI,MAAM,iBAAiB;MAAI,CAAA;MAChQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;OAAW,IAAG;OAAwB,OAAO,EAAE,UAAU;OAAG,MAAM,EAAE,cAAc;OAAG,OAAO,OAAO,MAAM,SAAS,KAAK;OAAa;OAAU,SAAS,OAAO,YAAY,CAAC,OAAO,UAAU,OAAO,MAAM,QAAQ,KAAK,OAAO,MAAM,WAAW;OAAI,WAAW,UAAU,KAAK,YAAY,KAAK;OAAM;OAAG,GAAI,MAAM,UAAU;MAAI,CAAA;MAC9T,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;OAAW,IAAG;OAAsB,OAAO,EAAE,oBAAoB;OAAG,MAAM,EAAE,wBAAwB;OAAG,OAAO,MAAM,QAAQ,MAAM,mBAAmB,KAAK,IAAI,MAAM,mBAAmB,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,mBAAmB,KAAK;OAAa;OAAU,WAAA;OAAU,WAAW,UAAU,KAAK,sBAAsB,KAAK;OAAM;OAAG,GAAI,MAAM,oBAAoB;MAAI,CAAA;MAChX,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;OAAW,IAAG;OAA2B,OAAO,EAAE,aAAa;OAAG,MAAM,EAAE,iBAAiB;OAAG,OAAO,OAAO,MAAM,YAAY,KAAK;OAAa;OAAU,WAAW,UAAU,KAAK,eAAe,KAAK;OAAM;OAAG,GAAI,MAAM,aAAa;MAAI,CAAA;MAC5O,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;OAAW,IAAG;OAAqB,OAAO,EAAE,WAAW;OAAG,MAAM,EAAE,eAAe;OAAG,OAAO,OAAO,MAAM,UAAU,KAAK;OAAa;OAAU,WAAW,UAAU,KAAK,aAAa,KAAK;OAAM;OAAG,GAAI,MAAM,WAAW;MAAI,CAAA;MAC5N,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;OAAK,WAAU;OAAf,UAAA;QACG,SAAS,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;SAAG,WAAU;SAAoB,MAAK;SAAU,UAAA,EAAE,YAAY;QAAK,CAAA,IAAI;QACjF,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;SAAQ,WAAU;SAAqB,MAAK;SAAS,UAAU,CAAC,SAAS;SAAQ,SAAS;SAAU,UAAA,EAAE,SAAS;QAAU,CAAA;QACzH,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;SAAQ,WAAU;SAAqB,gBAAa;SAAO,MAAK;SAAS,UAAU,CAAC,SAAS,YAAY,KAAK,WAAW,KAAK,OAAO,WAAW,KAAK;SAAQ,eAAe,KAAK,KAAK;SAAI,UAAA,EAAE,SAAS,WAAW,MAAM;QAAU,CAAA;OAC7N;;KACF;IACH,CAAA,IAAA,IACF;;EAER;;;ECpJA,SAAgB,qBAAqB,UAAU,WAAW;GACxD,OAAO,UAAU,SAAS,UACtB,EAAE,KAAK,UAAU,IACjB,EAAE,IAAI,UAAU;EACtB;;;ECJA,MAAa,KAAK;GAChB,OAAO;GACP,aAAa;GACb,QAAQ;GACR,UAAU;GACV,SAAS;GACT,UAAU;GACV,YAAY;GACZ,SAAS;GACT,MAAM;GACN,QAAQ;GACR,YAAY;GACZ,OAAO;GACP,SAAS;GACT,aAAa;GACb,iBAAiB;GACjB,qBAAqB;GACrB,UAAU;GACV,cAAc;GACd,iBAAiB;GACjB,oBAAoB;GACpB,wBAAwB;GACxB,aAAa;GACb,iBAAiB;GACjB,WAAW;GACX,eAAe;EACjB;EAEA,MAAa,KAAK;GAChB,OAAO;GACP,aAAa;GACb,QAAQ;GACR,UAAU;GACV,SAAS;GACT,UAAU;GACV,YAAY;GACZ,SAAS;GACT,MAAM;GACN,QAAQ;GACR,YAAY;GACZ,OAAO;GACP,SAAS;GACT,aAAa;GACb,iBAAiB;GACjB,qBAAqB;GACrB,UAAU;GACV,cAAc;GACd,iBAAiB;GACjB,oBAAoB;GACpB,wBAAwB;GACxB,aAAa;GACb,iBAAiB;GACjB,WAAW;GACX,eAAe;EACjB;;;ECtDA,MAAa,SAAS,OAAO,GAAG;;;;;ECKhC,MAAa,qBAAqB;EAClC,MAAa,mBAAmB;EAChC,MAAa,SAAS;GAAC;GAAS;GAAU;EAAe;EAEzD,SAAgB,MAAM,KAAK;GACzB,MAAM,QAAQ,IAAI,cAAc,KAAK,EAAE,WAAW,mBAAmB,CAAC;GACtE,IAAI,aACI,IAAI,OAAO,SAAS,kBAAkB;IAAE;IAAI;GAAG,CAAC,GACtD,2BACF;GACA,IAAI,aAAa;IAEf,IAAI,SAAS,cAAc,+CAAQ,MAAM,MAAM,aAAa,CAAC;IAC7D,MAAM,MAAM,SAAS,cAAc,OAAO;IAC1C,IAAI,QAAQ,SAAS;IACrB,IAAI,QAAQ,YAAY;IACxB,IAAI,cAAc;IAClB,SAAS,KAAK,YAAY,GAAG;IAC7B,aAAa,IAAI,OAAO;GAC1B,GAAG,2BAA2B;GAE9B,IAAI,MAAM,OAAO,8BACf,IAAI,MAAM,SACR;IACE,MAAM;IACN,GAAG,qBACD,IAAI,MAAM,KAAK,sBAAsB,GACrC,kBACF;IACA,QAAQ;IACR,eAAe,EAAE,MAAM;GACzB,GACA,mBACF,CACF;EACF"}
|
|
1
|
+
{"version":3,"file":"client.js","names":["useCallback","useSyncExternalStore","useState","useMemo"],"sources":["../src/client/form.js","../src/client/TrellisSettingsCard.jsx","../src/client/compat.js","../src/client/locales.js","../src/client/styles.js","../src/client/index.jsx"],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -134,8 +134,15 @@ export function insertBreadcrumbDecision(decision, claimedMessages, desired) {
|
|
|
134
134
|
function registerBreadcrumb(ctx, resolved) {
|
|
135
135
|
const { compose } = createBreadcrumbComposer(resolved, ctx);
|
|
136
136
|
const projection = registerBreadcrumbProjection(ctx);
|
|
137
|
-
|
|
138
|
-
const
|
|
137
|
+
let disposed = false;
|
|
138
|
+
const pendingInboxes = new Set();
|
|
139
|
+
const clearInbox = (inbox) => {
|
|
140
|
+
for (const message of inbox.nextStep.filter(isBreadcrumbMessage)) inbox.remove(message.id);
|
|
141
|
+
pendingInboxes.delete(inbox);
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
const syncInbox = (agent, desired) => {
|
|
145
|
+
pendingInboxes.add(agent.inbox);
|
|
139
146
|
const pending = agent.inbox.nextStep.filter(isBreadcrumbMessage);
|
|
140
147
|
const reusable = pending.find((message) =>
|
|
141
148
|
sameBreadcrumbPayload(message, desired),
|
|
@@ -155,9 +162,11 @@ function registerBreadcrumb(ctx, resolved) {
|
|
|
155
162
|
try {
|
|
156
163
|
disposeStep = ctx.on("agent/pre-step", async ({ agent, messages, step, signal }, next) => {
|
|
157
164
|
const decision = await next();
|
|
165
|
+
if (disposed) return decision;
|
|
158
166
|
let desired;
|
|
159
167
|
try {
|
|
160
168
|
desired = await compose(agent, messages, signal);
|
|
169
|
+
if (disposed) return decision;
|
|
161
170
|
if (desired !== undefined && projection.isVisible(agent.session, desired)) {
|
|
162
171
|
desired = undefined;
|
|
163
172
|
}
|
|
@@ -171,8 +180,7 @@ function registerBreadcrumb(ctx, resolved) {
|
|
|
171
180
|
}
|
|
172
181
|
signal?.throwIfAborted();
|
|
173
182
|
if (desired === undefined) {
|
|
174
|
-
|
|
175
|
-
for (const message of pending) agent.inbox.remove(message.id);
|
|
183
|
+
clearInbox(agent.inbox);
|
|
176
184
|
return decision;
|
|
177
185
|
}
|
|
178
186
|
if (
|
|
@@ -182,8 +190,7 @@ function registerBreadcrumb(ctx, resolved) {
|
|
|
182
190
|
syncInbox(agent, desired);
|
|
183
191
|
return decision;
|
|
184
192
|
}
|
|
185
|
-
|
|
186
|
-
for (const message of pending) agent.inbox.remove(message.id);
|
|
193
|
+
clearInbox(agent.inbox);
|
|
187
194
|
if (
|
|
188
195
|
decision.messages.some((message) =>
|
|
189
196
|
sameBreadcrumbPayload(message, desired),
|
|
@@ -198,7 +205,9 @@ function registerBreadcrumb(ctx, resolved) {
|
|
|
198
205
|
throw error;
|
|
199
206
|
}
|
|
200
207
|
return () => {
|
|
208
|
+
disposed = true;
|
|
201
209
|
disposeStep();
|
|
210
|
+
for (const inbox of pendingInboxes) clearInbox(inbox);
|
|
202
211
|
projection.dispose();
|
|
203
212
|
};
|
|
204
213
|
}
|
package/lib/wait-tool.js
CHANGED
|
@@ -27,10 +27,13 @@ function createSettlementWaiter(parentCtx, subagentId, signal) {
|
|
|
27
27
|
cleanup();
|
|
28
28
|
rejectPromise(signal.reason ?? new Error("Trellis subagent wait cancelled."));
|
|
29
29
|
};
|
|
30
|
-
const promise = new Promise((resolve, reject) => {
|
|
30
|
+
const promise = new Promise((resolve, reject) => {
|
|
31
31
|
resolvePromise = resolve;
|
|
32
32
|
rejectPromise = reject;
|
|
33
|
-
});
|
|
33
|
+
});
|
|
34
|
+
// Cancellation can precede completion of the catalog lookup below. Observe
|
|
35
|
+
// the rejection immediately; the execute path still awaits the original.
|
|
36
|
+
void promise.catch(() => {});
|
|
34
37
|
|
|
35
38
|
disposeListener =
|
|
36
39
|
parentCtx.on("subagent/end", (info) => {
|
|
@@ -91,8 +94,9 @@ function inactiveResult(subagentId) {
|
|
|
91
94
|
}
|
|
92
95
|
|
|
93
96
|
/** Register the Trellis-only, event-driven subagent wait tool. */
|
|
94
|
-
export function registerWaitTool(ctx) {
|
|
95
|
-
|
|
97
|
+
export function registerWaitTool(ctx) {
|
|
98
|
+
const lifetime = new AbortController();
|
|
99
|
+
const unregister = ctx.tools.register(
|
|
96
100
|
defineTool({
|
|
97
101
|
name: "trellis_wait",
|
|
98
102
|
description:
|
|
@@ -145,8 +149,12 @@ export function registerWaitTool(ctx) {
|
|
|
145
149
|
];
|
|
146
150
|
},
|
|
147
151
|
},
|
|
148
|
-
async execute(args, exec) {
|
|
149
|
-
const
|
|
152
|
+
async execute(args, exec) {
|
|
153
|
+
const signal = exec.signal
|
|
154
|
+
? AbortSignal.any([exec.signal, lifetime.signal])
|
|
155
|
+
: lifetime.signal;
|
|
156
|
+
signal.throwIfAborted();
|
|
157
|
+
const parent = exec.agent;
|
|
150
158
|
if (!parent)
|
|
151
159
|
throw new Error(
|
|
152
160
|
"trellis_wait requires a calling agent (exec.agent was undefined)",
|
|
@@ -157,13 +165,14 @@ export function registerWaitTool(ctx) {
|
|
|
157
165
|
const waiter = createSettlementWaiter(
|
|
158
166
|
parent.ctx,
|
|
159
167
|
args.subagent_id,
|
|
160
|
-
|
|
168
|
+
signal,
|
|
161
169
|
);
|
|
162
170
|
try {
|
|
163
171
|
const entries = await ctx.subagents.listChildren(
|
|
164
172
|
parent.id,
|
|
165
|
-
|
|
166
|
-
);
|
|
173
|
+
signal,
|
|
174
|
+
);
|
|
175
|
+
signal.throwIfAborted();
|
|
167
176
|
const child = entries.find(
|
|
168
177
|
(entry) =>
|
|
169
178
|
entry.kind === "child" &&
|
|
@@ -188,5 +197,10 @@ export function registerWaitTool(ctx) {
|
|
|
188
197
|
}
|
|
189
198
|
},
|
|
190
199
|
}),
|
|
191
|
-
);
|
|
192
|
-
|
|
200
|
+
);
|
|
201
|
+
return () => {
|
|
202
|
+
if (lifetime.signal.aborted) return;
|
|
203
|
+
lifetime.abort(new Error("Trellis wait tool was unloaded; no child completion was proven."));
|
|
204
|
+
unregister();
|
|
205
|
+
};
|
|
206
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-trellis",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Trellis workflow integration for DeepSeek Harness: per-turn workflow-state breadcrumbs, utility commands, and native session identity.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -45,22 +45,24 @@
|
|
|
45
45
|
"@deepseek-ai/dsh-client-ui-settings-plugins"
|
|
46
46
|
],
|
|
47
47
|
"platform": "web"
|
|
48
|
-
}
|
|
48
|
+
},
|
|
49
|
+
"manifestVersion": 1
|
|
49
50
|
},
|
|
50
51
|
"scripts": {
|
|
51
52
|
"build:client": "tsdown",
|
|
52
53
|
"test": "node --test \"test/*.test.js\"",
|
|
53
|
-
"prepack": "pnpm run build:client"
|
|
54
|
+
"prepack": "pnpm run build:client",
|
|
55
|
+
"test:compat": "node scripts/test-compat.mjs"
|
|
54
56
|
},
|
|
55
57
|
"peerDependencies": {
|
|
56
58
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
57
|
-
"@deepseek-ai/dsh-commands": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1",
|
|
58
|
-
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1",
|
|
59
|
-
"@deepseek-ai/dsh-session-projection": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1",
|
|
60
|
-
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1",
|
|
61
|
-
"@deepseek-ai/dsh-shell-env": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1",
|
|
62
|
-
"@deepseek-ai/dsh-subagent": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1",
|
|
63
|
-
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1",
|
|
59
|
+
"@deepseek-ai/dsh-commands": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2",
|
|
60
|
+
"@deepseek-ai/dsh-llm": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2",
|
|
61
|
+
"@deepseek-ai/dsh-session-projection": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2",
|
|
62
|
+
"@deepseek-ai/dsh-settings": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2",
|
|
63
|
+
"@deepseek-ai/dsh-shell-env": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2",
|
|
64
|
+
"@deepseek-ai/dsh-subagent": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2",
|
|
65
|
+
"@deepseek-ai/dsh-tools": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2",
|
|
64
66
|
"@deepseek-ai/schemastery": "^3.18.2"
|
|
65
67
|
},
|
|
66
68
|
"peerDependenciesMeta": {
|
|
@@ -97,32 +99,38 @@
|
|
|
97
99
|
},
|
|
98
100
|
"devDependencies": {
|
|
99
101
|
"@deepseek-ai/cordis": "^4.0.2",
|
|
100
|
-
"@deepseek-ai/dsh-agent": "0.1.
|
|
101
|
-
"@deepseek-ai/dsh-attachment": "0.1.
|
|
102
|
-
"@deepseek-ai/dsh-client-locale": "0.1.
|
|
103
|
-
"@deepseek-ai/dsh-client-ui-settings": "0.1.
|
|
104
|
-
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.
|
|
105
|
-
"@deepseek-ai/dsh-
|
|
106
|
-
"@deepseek-ai/dsh-
|
|
107
|
-
"@deepseek-ai/dsh-
|
|
108
|
-
"@deepseek-ai/dsh-invariants": "0.1.
|
|
109
|
-
"@deepseek-ai/dsh-llm": "0.1.
|
|
110
|
-
"@deepseek-ai/dsh-sandbox": "0.1.
|
|
111
|
-
"@deepseek-ai/dsh-scope": "0.1.
|
|
112
|
-
"@deepseek-ai/dsh-session": "0.1.
|
|
113
|
-
"@deepseek-ai/dsh-session-persistence": "0.1.
|
|
114
|
-
"@deepseek-ai/dsh-session-projection": "0.1.
|
|
115
|
-
"@deepseek-ai/dsh-settings": "0.1.
|
|
116
|
-
"@deepseek-ai/dsh-shell": "0.1.
|
|
117
|
-
"@deepseek-ai/dsh-shell-env": "0.1.
|
|
118
|
-
"@deepseek-ai/dsh-subagent": "0.1.
|
|
119
|
-
"@deepseek-ai/dsh-subprocess": "0.1.
|
|
120
|
-
"@deepseek-ai/dsh-system-prompt": "0.1.
|
|
121
|
-
"@deepseek-ai/dsh-tools": "0.1.
|
|
122
|
-
"@deepseek-ai/dsh-user-approval": "0.1.
|
|
123
|
-
"@deepseek-ai/dsh-util-time": "0.1.
|
|
102
|
+
"@deepseek-ai/dsh-agent": "0.1.6-alpha.2",
|
|
103
|
+
"@deepseek-ai/dsh-attachment": "0.1.6-alpha.2",
|
|
104
|
+
"@deepseek-ai/dsh-client-locale": "0.1.6-alpha.2",
|
|
105
|
+
"@deepseek-ai/dsh-client-ui-settings": "0.1.6-alpha.2",
|
|
106
|
+
"@deepseek-ai/dsh-client-ui-settings-plugins": "0.1.6-alpha.2",
|
|
107
|
+
"@deepseek-ai/dsh-commands": "0.1.6-alpha.2",
|
|
108
|
+
"@deepseek-ai/dsh-home-paths": "0.1.6-alpha.2",
|
|
109
|
+
"@deepseek-ai/dsh-http-proxy": "0.1.6-alpha.2",
|
|
110
|
+
"@deepseek-ai/dsh-invariants": "0.1.6-alpha.2",
|
|
111
|
+
"@deepseek-ai/dsh-llm": "0.1.6-alpha.2",
|
|
112
|
+
"@deepseek-ai/dsh-sandbox": "0.1.6-alpha.2",
|
|
113
|
+
"@deepseek-ai/dsh-scope": "0.1.6-alpha.2",
|
|
114
|
+
"@deepseek-ai/dsh-session": "0.1.6-alpha.2",
|
|
115
|
+
"@deepseek-ai/dsh-session-persistence": "0.1.6-alpha.2",
|
|
116
|
+
"@deepseek-ai/dsh-session-projection": "0.1.6-alpha.2",
|
|
117
|
+
"@deepseek-ai/dsh-settings": "0.1.6-alpha.2",
|
|
118
|
+
"@deepseek-ai/dsh-shell": "0.1.6-alpha.2",
|
|
119
|
+
"@deepseek-ai/dsh-shell-env": "0.1.6-alpha.2",
|
|
120
|
+
"@deepseek-ai/dsh-subagent": "0.1.6-alpha.2",
|
|
121
|
+
"@deepseek-ai/dsh-subprocess": "0.1.6-alpha.2",
|
|
122
|
+
"@deepseek-ai/dsh-system-prompt": "0.1.6-alpha.2",
|
|
123
|
+
"@deepseek-ai/dsh-tools": "0.1.6-alpha.2",
|
|
124
|
+
"@deepseek-ai/dsh-user-approval": "0.1.6-alpha.2",
|
|
125
|
+
"@deepseek-ai/dsh-util-time": "0.1.6-alpha.2",
|
|
124
126
|
"@deepseek-ai/schemastery": "^3.18.2",
|
|
125
127
|
"react": "19.2.8",
|
|
126
|
-
"
|
|
128
|
+
"react-dom": "19.2.8",
|
|
129
|
+
"tsdown": "^0.22.2",
|
|
130
|
+
"@deepseek-ai/dsh-ptc-runtime": "0.1.6-alpha.2"
|
|
131
|
+
},
|
|
132
|
+
"engines": {
|
|
133
|
+
"node": ">=24",
|
|
134
|
+
"dsh": "^0.1.0-rc.6 || ^0.1.1-rc.1 || ^0.1.2-alpha.1 || ^0.1.3-alpha.1 || ^0.1.5-alpha.1 || ^0.1.6-alpha.2"
|
|
127
135
|
}
|
|
128
136
|
}
|