dsh-agent-lines 0.3.3 → 0.3.5

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/CHANGELOG.en.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  English | [中文](CHANGELOG.md)
4
4
 
5
+ ## 0.3.5 (2026-11-05)
6
+
7
+ - Integrated P0/P1 bootstrap: line_create queues an onboarding message by default, adds bootstrapOnCreate, and line_status/line_list expose materialized / visibleInSidebar / bootstrapQueued.
8
+ - Kept the 0.3.4 docs and wording; README bootstrap notes were added manually on top of 0.3.4, not overwritten from the older local tree.
9
+ - No schema change; remains v6.
10
+
11
+ ## 0.3.4 (2026-11-05)
12
+
13
+ - Removed the conflicting suggestion that one-off subtasks should use subagent / Agent Teams.
14
+ - The plugin is positioned for long-running, multi-role teams that need durable messages; one-off subtasks are left to the user's DSH-native choice.
15
+ - Synced the npm package and Release artifact; no runtime behavior change; schema remains v6.
16
+
5
17
  ## 0.3.3 (2026-11-04)
6
18
 
7
19
  - Scenario-first landing page: hero, three cards, four-step real usage, first-use claim prompt, restart note.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  [English](CHANGELOG.en.md) | 中文
4
4
 
5
+ ## 0.3.5 (2026-11-05)
6
+
7
+ - 集成 P0/P1 bootstrap:line_create 默认排队 onboarding 消息,新增 bootstrapOnCreate,line_status/line_list 暴露 materialized / visibleInSidebar / bootstrapQueued。
8
+ - 保留 0.3.4 的文档与删句;README 以 0.3.4 为基础手工补 bootstrap 说明,没有用本地旧版覆盖。
9
+ - 无 schema 变化,仍为 v6。
10
+
11
+ ## 0.3.4 (2026-11-05)
12
+
13
+ - 删除与插件定位冲突的提示句:不再在 README / 落地页建议“临时子任务直接用 subagent / Agent Teams”。
14
+ - 明确插件用于长期、多角色、需要持久消息的团队;一次性临时子任务由用户按 DSH 原生能力自行选择。
15
+ - 同步 npm 包与 Release 制品;无运行时行为变化,schema 仍为 v6。
16
+
5
17
  ## 0.3.3 (2026-11-04)
6
18
 
7
19
  - 落地页改为场景化:hero、三张卡、一个真实用法四步、首次使用含 line_claim_manager、重启提示。
package/README.en.md CHANGED
@@ -22,7 +22,6 @@ Use it when:
22
22
  - Work must survive closing a window or restarting DSH: messages and context should still be there.
23
23
  - You want one lead agent to decompose work, create the team, track progress, collect results, and report back.
24
24
 
25
- If you only need temporary child tasks inside one session, use DSH subagents / Agent Teams; you do not need this plugin.
26
25
 
27
26
  ## Install
28
27
 
@@ -37,7 +36,7 @@ The script picks the DSH Web profile, installs the plugin, and verifies agent-li
37
36
 
38
37
  Offline or when npm is unavailable, use the local tarball:
39
38
 
40
- bash install.sh ./dsh-agent-lines-0.3.3.tgz
39
+ bash install.sh ./dsh-agent-lines-0.3.5.tgz
41
40
 
42
41
  After install and restart, it works without a config. When you want a fixed manager/worker setup, paste the "Manager config" block below into the file printed by the installer.
43
42
 
@@ -65,6 +64,12 @@ After install and restart, it works without a config. When you want a fixed mana
65
64
 
66
65
  Only `createFrom` may call `line_create`. Worker profiles should leave `allowCreate` false.
67
66
 
67
+ ### New line bootstrap
68
+
69
+ When the manager calls line_create, the plugin queues a no-work onboarding message by default so the blank Session gets its first message and appears in the sidebar; pass bootstrap: false to skip it.
70
+
71
+ line_status / line_list return materialized, visibleInSidebar, and bootstrapQueued; a new line may remain blank until its first message.
72
+
68
73
  ## Quick start
69
74
 
70
75
  1. Run the installer above.
@@ -77,14 +82,15 @@ Only `createFrom` may call `line_create`. Worker profiles should leave `allowCre
77
82
 
78
83
  Copy this into a new root Session. The prompt starts with binding, then creates one team. Replace the task later; do not let the manager execute the work.
79
84
 
80
- > Use dsh-agent-lines. If this Session is not yet bound, call line_claim_manager with confirm "bind-manager". You are the development team lead: own task decomposition, assignment, communication, progress tracking, result collection, summary, and reporting. You only manage and coordinate; do not execute specific development tasks.
85
+ > Use dsh-agent-lines. Make this Session the development team lead; bind it first if needed.
86
+ >
87
+ > You own task decomposition, assignment, coordination, progress tracking, result collection, and reporting. You manage and coordinate only; do not execute development tasks.
81
88
  >
82
- > Create these member lines with line_create. Use ASCII labels and Chinese roles:
83
- > research (调研), architecture (架构), uiux (UIUX), dev (开发), test (测试), acceptance (验收), release (发布), ops (运维).
89
+ > Form the team. Use short English names and Chinese roles: research (调研), architecture (架构), uiux (UIUX), dev (开发), test (测试), acceptance (验收), release (发布), ops (运维).
84
90
  >
85
- > After creation, call line_list to confirm, then wait for my first task. Do not start work by yourself.
91
+ > After the team is ready, wait for my first task. Do not start by yourself.
86
92
 
87
- Why ASCII labels: line labels are identifiers such as <code>research</code>; Chinese is the <code>role</code> text, not the label. This prompt creates one team. Version 0.3 does not support multiple simultaneous teams in one plugin instance.
93
+ Member names are short English names; Chinese is the role. This prompt creates one team. Version 0.3 does not support multiple simultaneous teams in one plugin instance.
88
94
 
89
95
  Copyable calls (the manager Session runs these):
90
96
 
package/README.md CHANGED
@@ -22,7 +22,6 @@ DSH 的 super agent 平替插件。
22
22
  - 任务做到一半关掉窗口、重启 DSH,消息和上下文还要在;
23
23
  - 你希望一个负责人 agent 自己拆任务、建团队、追进度、收结果,最后向你汇报。
24
24
 
25
- 如果只是同一次会话里的临时子任务,直接用 DSH 内置的 subagent / Agent Teams,不需要这个插件。
26
25
 
27
26
  ## 安装
28
27
 
@@ -37,7 +36,7 @@ DSH 的 super agent 平替插件。
37
36
 
38
37
  离线或 npm 不可用时,用本地 tarball:
39
38
 
40
- bash install.sh ./dsh-agent-lines-0.3.3.tgz
39
+ bash install.sh ./dsh-agent-lines-0.3.5.tgz
41
40
 
42
41
  安装并重启后,不写配置也可以直接使用;需要固定管理线/worker 时,再把下面“管理线配置”粘贴到脚本打印的配置文件。
43
42
 
@@ -65,6 +64,12 @@ DSH 的 super agent 平替插件。
65
64
 
66
65
  只有 `createFrom` 指定的线能调用 `line_create`。worker profile 不要开 `allowCreate`。
67
66
 
67
+ ### 新线 bootstrap
68
+
69
+ 管理线调用 line_create 创建新线时,插件默认排队一条不要求执行任务的 onboarding 消息,让空白 Session 产生第一条消息并出现在侧栏;传 bootstrap: false 可关闭。
70
+
71
+ line_status / line_list 会返回 materialized、visibleInSidebar、bootstrapQueued;新线在首条消息前可能仍是 blank。
72
+
68
73
  ## 快速开始
69
74
 
70
75
  1. 运行上面的安装脚本。
@@ -77,15 +82,15 @@ DSH 的 super agent 平替插件。
77
82
 
78
83
  在新根会话里直接复制下面这段。它会先绑定管理线,再创建一支团队;后续任务再单独发,不要让它自己开工。
79
84
 
80
- > 使用 dsh-agent-lines。如果当前会话尚未绑定,先调用 line_claim_manager,confirm 用 "bind-manager"。
85
+ > 使用 dsh-agent-lines。先把这个会话设为开发团队的管理线;如果还没绑定,就先完成绑定。
81
86
  >
82
- > 你是开发团队负责人:负责任务拆解与分配、协调团队沟通、跟踪成员工作状态与进度、汇总工作结果、总结并汇报。你只做管理和协调,不执行具体开发任务。
87
+ > 你是开发团队负责人:负责任务拆解与分配、协调沟通、跟踪进度、汇总结果、总结汇报。你只做管理和协调,不执行具体开发任务。
83
88
  >
84
- > 请用 line_create 创建成员线,label 用英文,role 用中文:research(调研)、architecture(架构)、uiux(UIUX)、dev(开发)、test(测试)、acceptance(验收)、release(发布)、ops(运维)。
89
+ > 请组建开发团队。成员名字用简短英文,岗位用中文:research(调研)、architecture(架构)、uiux(UIUX)、dev(开发)、test(测试)、acceptance(验收)、release(发布)、ops(运维)。
85
90
  >
86
- > 创建后用 line_list 确认,然后待命,等我发第一个任务;不要自行开始具体工作。
91
+ > 团队建好后先待命,不要自动开工,等我发第一个任务。
87
92
 
88
- label 必须是 ASCII 标识符;中文放在 role 里,不要用中文 label。这个提示词只创建一个团队;0.3 不支持同一插件实例同时多个团队。
93
+ 成员名字用英文短名,中文放在岗位上。这个提示词只创建一个团队;0.3 不支持同一插件实例同时多个团队。
89
94
 
90
95
  可直接复制的调用(由管理线 Session 执行):
91
96
 
@@ -43,7 +43,7 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
43
43
  <div class="wrap">
44
44
  <header>
45
45
  <a class="brand" href="../"><span class="mark"></span>dsh-agent-lines</a>
46
- <nav><a href="../">中文</a><a href="https://github.com/Lencen/dsh-agent-lines">GitHub</a><a href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.3">Release</a></nav>
46
+ <nav><a href="../">中文</a><a href="https://github.com/Lencen/dsh-agent-lines">GitHub</a><a href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.5">Release</a></nav>
47
47
  </header>
48
48
  <main>
49
49
  <section class="hero" style="border:0;padding-bottom:22px">
@@ -54,7 +54,7 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
54
54
  <div class="install">curl -fsSL https://raw.githubusercontent.com/Lencen/dsh-agent-lines/main/install.sh -o install.sh &amp;&amp; bash install.sh</div>
55
55
  <div class="actions">
56
56
  <a class="btn primary" href="https://github.com/Lencen/dsh-agent-lines">GitHub repository</a>
57
- <a class="btn" href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.3">Download 0.3.3</a>
57
+ <a class="btn" href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.5">Download 0.3.5</a>
58
58
  </div>
59
59
  </div>
60
60
  <div class="shot">
@@ -69,7 +69,7 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
69
69
  <div class="card"><b>No manual dispatch</b><p>The lead decomposes work, assigns it, coordinates, resolves disagreements, and collects results. You read the summary.</p></div>
70
70
  <div class="card"><b>No lost work</b><p>Tasks and messages are stored locally. Restart DSH and continue; member state and unread messages are still there.</p></div>
71
71
  </div>
72
- <p style="color:var(--muted);font-size:14px;margin-top:14px">Built for long-running projects and multi-role work. For a one-off subtask, DSH's built-in subagent / Agent Teams is simpler.</p>
72
+ <p style="color:var(--muted);font-size:14px;margin-top:14px">Built for long-running projects and multi-role work.</p>
73
73
  </section>
74
74
  <section>
75
75
  <h2>A real usage pattern</h2>
@@ -82,13 +82,17 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
82
82
  </section>
83
83
  <section>
84
84
  <h2>First use: let the lead form the team</h2>
85
- <pre>You are the development team lead: own decomposition, assignment, coordination, tracking, and summary.
86
- First bind this Session with line_claim_manager, then use line_create for:
87
- research / architecture / uiux / dev / test / acceptance / release / ops
88
- After creation, confirm with line_list, then wait for my first task.</pre>
85
+ <pre>Use dsh-agent-lines. Make this Session the development team lead; bind it first if needed.
86
+
87
+ You own task decomposition, assignment, coordination, progress tracking, result collection, and reporting. You manage and coordinate only; do not execute development tasks.
88
+
89
+ Form the team. Use short English names and Chinese roles:
90
+ research (调研), architecture (架构), uiux (UIUX), dev (开发), test (测试), acceptance (验收), release (发布), ops (运维).
91
+
92
+ After the team is ready, wait for my first task. Do not start by yourself.</pre>
89
93
  <p style="color:var(--muted);font-size:14px">Restart DSH Web after install or update. Technical details, protocol, and limits: <a href="https://github.com/Lencen/dsh-agent-lines">README / architecture</a>. Community plugin, not an official DeepSeek product.</p>
90
94
  </section>
91
- <footer>dsh-agent-lines 0.3.3 · Apache-2.0 · Community plugin for DeepSeek Harness. Not an official DeepSeek product.</footer>
95
+ <footer>dsh-agent-lines 0.3.5 · Apache-2.0 · Community plugin for DeepSeek Harness. Not an official DeepSeek product.</footer>
92
96
  </main>
93
97
  </div>
94
98
  </body>
package/docs/index.html CHANGED
@@ -43,7 +43,7 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
43
43
  <div class="wrap">
44
44
  <header>
45
45
  <a class="brand" href="./"><span class="mark"></span>dsh-agent-lines</a>
46
- <nav><a href="en/index.html">English</a><a href="https://github.com/Lencen/dsh-agent-lines">GitHub</a><a href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.3">Release</a></nav>
46
+ <nav><a href="en/index.html">English</a><a href="https://github.com/Lencen/dsh-agent-lines">GitHub</a><a href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.5">Release</a></nav>
47
47
  </header>
48
48
  <main>
49
49
  <section class="hero" style="border:0;padding-bottom:22px">
@@ -54,7 +54,7 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
54
54
  <div class="install">curl -fsSL https://raw.githubusercontent.com/Lencen/dsh-agent-lines/main/install.sh -o install.sh &amp;&amp; bash install.sh</div>
55
55
  <div class="actions">
56
56
  <a class="btn primary" href="https://github.com/Lencen/dsh-agent-lines">GitHub 仓库</a>
57
- <a class="btn" href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.3">下载 0.3.3</a>
57
+ <a class="btn" href="https://github.com/Lencen/dsh-agent-lines/releases/tag/v0.3.5">下载 0.3.5</a>
58
58
  </div>
59
59
  </div>
60
60
  <div class="shot">
@@ -69,7 +69,7 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
69
69
  <div class="card"><b>不用自己当调度</b><p>负责人拆任务、分配、协调、处理分歧、收结果;你只需要看最后的汇总。</p></div>
70
70
  <div class="card"><b>不用怕关窗口</b><p>任务和消息保存在本地;重启 DSH 后还能接着做,成员状态和未处理消息都在。</p></div>
71
71
  </div>
72
- <p style="color:var(--muted);font-size:14px;margin-top:14px">适合长期项目、多角色协作;一次性的临时子任务,直接用 DSH 内置 subagent / Agent Teams 更简单。</p>
72
+ <p style="color:var(--muted);font-size:14px;margin-top:14px">适合长期项目、多角色协作。</p>
73
73
  </section>
74
74
  <section>
75
75
  <h2>一个真实用法</h2>
@@ -82,13 +82,17 @@ footer{padding:34px 0 48px;color:var(--muted);font-size:12px}
82
82
  </section>
83
83
  <section>
84
84
  <h2>首次使用:让负责人自己组队</h2>
85
- <pre>你是开发团队负责人:负责任务拆解、分配、协调、跟踪、汇总。
86
- 先用 line_claim_manager 把当前会话绑定为管理线,再用 line_create 创建:
87
- research / architecture / uiux / dev / test / acceptance / release / ops
88
- 创建后用 line_list 确认,然后待命,等我发第一个任务。</pre>
85
+ <pre>使用 dsh-agent-lines。先把这个会话设为开发团队的管理线;如果还没绑定,就先完成绑定。
86
+
87
+ 你是开发团队负责人:负责任务拆解与分配、协调沟通、跟踪进度、汇总结果、总结汇报。你只做管理和协调,不执行具体开发任务。
88
+
89
+ 请组建开发团队。成员名字用简短英文,岗位用中文:
90
+ research(调研)、architecture(架构)、uiux(UIUX)、dev(开发)、test(测试)、acceptance(验收)、release(发布)、ops(运维)。
91
+
92
+ 团队建好后先待命,不要自动开工,等我发第一个任务。</pre>
89
93
  <p style="color:var(--muted);font-size:14px">安装或更新后需要重启 DSH Web。技术细节、协议和限制见 <a href="https://github.com/Lencen/dsh-agent-lines">README / 架构文档</a>。社区插件,不是 DeepSeek 官方产品。</p>
90
94
  </section>
91
- <footer>dsh-agent-lines 0.3.3 · Apache-2.0 · Community plugin for DeepSeek Harness. Not an official DeepSeek product.</footer>
95
+ <footer>dsh-agent-lines 0.3.5 · Apache-2.0 · Community plugin for DeepSeek Harness. Not an official DeepSeek product.</footer>
92
96
  </main>
93
97
  </div>
94
98
  </body>
@@ -50,11 +50,11 @@
50
50
  ]
51
51
  },
52
52
  "dist-tags": {
53
- "latest": "0.3.3"
53
+ "latest": "0.3.5"
54
54
  },
55
55
  "versions": [
56
56
  {
57
- "version": "0.3.3",
57
+ "version": "0.3.5",
58
58
  "publishTimestamp": 1793771000,
59
59
  "source": {
60
60
  "type": "npm"
@@ -50,11 +50,11 @@
50
50
  ]
51
51
  },
52
52
  "dist-tags": {
53
- "latest": "0.3.3"
53
+ "latest": "0.3.5"
54
54
  },
55
55
  "versions": [
56
56
  {
57
- "version": "0.3.3",
57
+ "version": "0.3.5",
58
58
  "publishTimestamp": 1793771000,
59
59
  "source": {
60
60
  "type": "npm"
package/lib/index.js CHANGED
@@ -74,6 +74,7 @@ export function normalizeConfig(raw = {}) {
74
74
  maxLines: integer(raw.maxLines, 16, { min: Math.max(1, lines.length), max: 256 }),
75
75
  allowCreate: raw.allowCreate === undefined ? zeroConfig : raw.allowCreate === true,
76
76
  allowClaim: raw.allowClaim === undefined ? zeroConfig : raw.allowClaim === true,
77
+ bootstrapOnCreate: raw.bootstrapOnCreate === undefined ? true : raw.bootstrapOnCreate === true,
77
78
  allowSelfSend: raw.allowSelfSend === true,
78
79
  dedupeWindowMs: integer(raw.dedupeWindowMs, 5_000, { min: 0, max: 3_600_000 }),
79
80
  maxReplyDepth: integer(raw.maxReplyDepth, 8, { min: 1, max: 100 }),
@@ -334,8 +335,38 @@ export async function apply(ctx, rawConfig) {
334
335
  if (agent !== undefined) bindAgent(agent)
335
336
  try {
336
337
  await ctx.sessionController.rename({ sessionId: actualSessionId, title: `line: ${label}` })
337
- } catch { /* a blank session may not materialize on rename; first delivery will */ }
338
- return { line: label, sessionId: actualSessionId, role, cwd: targetWorkspace?.path ?? cwd, workspaceId: targetWorkspace?.id ?? null, created: true }
338
+ } catch { /* a blank session may not materialize on rename; bootstrap/first delivery will */ }
339
+ let bootstrapQueued = false
340
+ if (args.bootstrap !== false && config.bootstrapOnCreate !== false && creator !== undefined) {
341
+ try {
342
+ store.send({
343
+ agentId: config.agentId,
344
+ fromLine: creator.label,
345
+ to: label,
346
+ text: `[Agent Line] ${label} onboarding. You are ${role ?? label}. This is an identity message: do not start work and do not modify files. Acknowledge briefly if needed, then wait for the manager's first task.`,
347
+ noReply: true,
348
+ maxReplyDepth: config.maxReplyDepth,
349
+ maxMessageBytes: config.maxMessageBytes,
350
+ })
351
+ bootstrapQueued = true
352
+ } catch (error) {
353
+ ctx.logger?.warn?.('agent-lines: line %s created but onboarding bootstrap failed: %s', label, String(error))
354
+ }
355
+ }
356
+ return {
357
+ line: label,
358
+ sessionId: actualSessionId,
359
+ role,
360
+ cwd: targetWorkspace?.path ?? cwd,
361
+ workspaceId: targetWorkspace?.id ?? null,
362
+ created: true,
363
+ materialized: false,
364
+ visibleInSidebar: false,
365
+ bootstrapQueued,
366
+ hint: bootstrapQueued
367
+ ? 'Onboarding message queued; the Session becomes visible after its first turn.'
368
+ : 'No bootstrap queued; send a standby message or refresh after the first delivery.',
369
+ }
339
370
  }
340
371
 
341
372
  try {
package/lib/tools.js CHANGED
@@ -37,6 +37,17 @@ function limitValue(value, fallback, max) {
37
37
  return number
38
38
  }
39
39
 
40
+ function materializationOf(ctx, sessionId) {
41
+ const live = ctx.agents.get(sessionId)
42
+ if (live === undefined) return null
43
+ const projections = ctx.get?.('sessionProjections')
44
+ if (projections?.snapshot === undefined) return null
45
+ try {
46
+ const meta = projections.snapshot(live.session, ['sessionListMetadata'])?.values?.sessionListMetadata
47
+ return meta === undefined ? null : meta.blank === false
48
+ } catch { return null }
49
+ }
50
+
40
51
  function currentView(def) {
41
52
  return def === undefined ? null : {
42
53
  agentId: def.agentId, line: def.label, sessionId: def.sessionId, lineId: def.lineId, role: def.role,
@@ -87,6 +98,7 @@ export function registerStatusTool(ctx, { config, store, lineDefs }) {
87
98
  createdBy: line.created_by,
88
99
  lease: line.lease,
89
100
  live: ctx.agents.get(line.session_id) !== undefined,
101
+ materialized: materializationOf(ctx, line.session_id),
90
102
  }))
91
103
  const current = currentId === undefined
92
104
  ? null
@@ -103,7 +115,7 @@ export function registerStatusTool(ctx, { config, store, lineDefs }) {
103
115
  : config.allowClaim
104
116
  ? `Current Session is not bound. Call line_claim_manager({ confirm: "bind-manager" }) to bind this root Session.`
105
117
  : `Current Session is not bound. Run: dsh-agent-lines claim --agent ${config.agentId} --line ${config.createFrom} --session ${currentId} (set allowClaim: true first)`
106
- return { current, manager, lines, allowClaim: config.allowClaim, repair }
118
+ return { current, manager, lines, allowClaim: config.allowClaim, bootstrapOnCreate: config.bootstrapOnCreate, repair }
107
119
  },
108
120
  })
109
121
  }
@@ -155,7 +167,11 @@ export function registerToolsForAgent(agent, def, { config, store, lineDefs, cre
155
167
  output: OUTPUT,
156
168
  execute: async (_args, exec) => {
157
169
  const current = lineDefs.get(exec?.agent?.session?.id)
158
- return { current: currentView(current), lines: store.listLines() }
170
+ return {
171
+ current: currentView(current),
172
+ lines: store.listLines().map(line => ({ ...line, live: agent.ctx.agents.get(line.session_id) !== undefined, materialized: materializationOf(agent.ctx, line.session_id) })),
173
+ bootstrapOnCreate: config.bootstrapOnCreate,
174
+ }
159
175
  },
160
176
  }))
161
177
 
@@ -268,7 +284,7 @@ export function registerToolsForAgent(agent, def, { config, store, lineDefs, cre
268
284
  if (config.allowCreate === true && def.label === config.createFrom) {
269
285
  disposers.push(agent.ctx.tools.register({
270
286
  name: 'line_create',
271
- description: 'Create a new independent DSH Session in this process and register it as an agent line, so it can be addressed with line_send. Only the configured manager line (createFrom) may call this. Reusing an existing label returns created:false without creating a Session. This does not create a separate OS process or transfer an existing Session.',
287
+ description: 'Create a new independent DSH Session in this process and register it as an agent line, so it can be addressed with line_send. Only the configured manager line (createFrom) may call this. Reusing an existing label returns created:false without creating a Session. By default the plugin queues a no-work onboarding message so the Session becomes non-blank and appears in the sidebar; pass bootstrap:false to skip it.',
272
288
  parameters: {
273
289
  type: 'object',
274
290
  additionalProperties: false,
@@ -278,6 +294,7 @@ export function registerToolsForAgent(agent, def, { config, store, lineDefs, cre
278
294
  agentPreset: { type: 'string', description: 'DSH agent preset; defaults to the plugin childPreset' },
279
295
  workspace: { type: 'string', description: 'Target workspace path or id; defaults to the manager workspace. Existing workspace only.' },
280
296
  cwd: { type: 'string', description: 'Working directory when no workspace is named; defaults to the manager Session cwd' },
297
+ bootstrap: { type: 'boolean', description: 'Queue a no-work onboarding message so the new Session appears in the sidebar; defaults to config.bootstrapOnCreate' },
281
298
  },
282
299
  required: ['label'],
283
300
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-agent-lines",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "description": "DSH Agent 的持久、可寻址消息线(社区插件)。",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",