@wowyuarm/dsh-agent-team 0.1.7 → 0.1.8

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 (64) hide show
  1. package/package.json +1 -1
  2. package/packages/agent-team/core-skills/member-skill-manager/SKILL.md +2 -0
  3. package/packages/agent-team/lib/index.js +58 -0
  4. package/packages/agent-team/lib/ledger.js +135 -12
  5. package/packages/agent-team/lib/member-context.js +1 -1
  6. package/packages/agent-team/lib/progress-nudge.js +320 -0
  7. package/packages/agent-team/lib/typert.host.js +27 -26
  8. package/packages/agent-team/lib/typert.remote-client.d.ts.map +1 -1
  9. package/packages/agent-team/lib/typert.remote-client.js +26 -25
  10. package/packages/agent-team/lib/types/index.d.ts +8 -0
  11. package/packages/agent-team/lib/types/index.d.ts.map +1 -1
  12. package/packages/agent-team/lib/types/ledger.d.ts +27 -2
  13. package/packages/agent-team/lib/types/ledger.d.ts.map +1 -1
  14. package/packages/agent-team/lib/types/progress-nudge.d.ts +136 -0
  15. package/packages/agent-team/lib/types/progress-nudge.d.ts.map +1 -0
  16. package/packages/agent-team/lib/types/types/entities.d.ts +18 -0
  17. package/packages/agent-team/lib/types/types/entities.d.ts.map +1 -1
  18. package/packages/agent-team/lib/types/types/requests-results.d.ts +2 -0
  19. package/packages/agent-team/lib/types/types/requests-results.d.ts.map +1 -1
  20. package/packages/agent-team/preset/team-member/agent.cordis.yml +2 -2
  21. package/packages/client-agent-team/lib/client.js +406 -512
  22. package/packages/client-agent-team/lib/client.js.map +1 -1
  23. package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts.map +1 -1
  24. package/packages/client-agent-team/lib/types/client/TeamChannelPage.js +3 -7
  25. package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts +3 -1
  26. package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts.map +1 -1
  27. package/packages/client-agent-team/lib/types/client/TeamComposer.js +37 -27
  28. package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts +1 -1
  29. package/packages/client-agent-team/lib/types/client/TeamConversation.d.ts.map +1 -1
  30. package/packages/client-agent-team/lib/types/client/TeamConversation.js +2 -2
  31. package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.d.ts.map +1 -1
  32. package/packages/client-agent-team/lib/types/client/TeamMemberAvatar.js +3 -2
  33. package/packages/client-agent-team/lib/types/client/TeamMessage.js +5 -0
  34. package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts +2 -2
  35. package/packages/client-agent-team/lib/types/client/TeamPresenceDot.d.ts.map +1 -1
  36. package/packages/client-agent-team/lib/types/client/TeamPresenceDot.js +4 -6
  37. package/packages/client-agent-team/lib/types/client/TeamStateDot.d.ts +14 -0
  38. package/packages/client-agent-team/lib/types/client/TeamStateDot.d.ts.map +1 -0
  39. package/packages/client-agent-team/lib/types/client/TeamStateDot.js +15 -0
  40. package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts +1 -0
  41. package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts.map +1 -1
  42. package/packages/client-agent-team/lib/types/client/TeamThreadPage.js +41 -16
  43. package/packages/client-agent-team/lib/types/client/index.d.ts.map +1 -1
  44. package/packages/client-agent-team/lib/types/client/index.js +2 -67
  45. package/packages/client-agent-team/lib/types/client/locales.d.ts +0 -2
  46. package/packages/client-agent-team/lib/types/client/locales.d.ts.map +1 -1
  47. package/packages/client-agent-team/lib/types/client/locales.js +0 -2
  48. package/packages/client-agent-team/lib/types/client/sidebar-drag.d.ts +1 -2
  49. package/packages/client-agent-team/lib/types/client/sidebar-drag.d.ts.map +1 -1
  50. package/packages/client-agent-team/lib/types/client/slots.d.ts +3 -1
  51. package/packages/client-agent-team/lib/types/client/slots.d.ts.map +1 -1
  52. package/packages/client-agent-team/lib/types/client/task-refs.d.ts +7 -1
  53. package/packages/client-agent-team/lib/types/client/task-refs.d.ts.map +1 -1
  54. package/packages/client-agent-team/lib/types/client/task-refs.js +25 -3
  55. package/packages/client-agent-team/lib/types/client/team-formatters.d.ts +11 -10
  56. package/packages/client-agent-team/lib/types/client/team-formatters.d.ts.map +1 -1
  57. package/packages/client-agent-team/lib/types/client/team-formatters.js +14 -11
  58. package/packages/tool-agent-team/lib/index.js +9 -9
  59. package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts +0 -12
  60. package/packages/client-agent-team/lib/types/client/TeamMemberDock.d.ts.map +0 -1
  61. package/packages/client-agent-team/lib/types/client/TeamMemberDock.js +0 -13
  62. package/packages/client-agent-team/lib/types/client/member-session-input.d.ts +0 -20
  63. package/packages/client-agent-team/lib/types/client/member-session-input.d.ts.map +0 -1
  64. package/packages/client-agent-team/lib/types/client/member-session-input.js +0 -110
@@ -7,7 +7,7 @@ window.__ModuleLoader__.load({
7
7
  let react = require("react");
8
8
  let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
10
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js
10
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/core.js
11
11
  var _a$1;
12
12
  function $constructor(name, initializer, params) {
13
13
  function init(inst, def) {
@@ -66,7 +66,7 @@ window.__ModuleLoader__.load({
66
66
  return globalConfig;
67
67
  }
68
68
  //#endregion
69
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js
69
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/util.js
70
70
  function getEnumValues(entries) {
71
71
  const numericValues = Object.values(entries).filter((v) => typeof v === "number");
72
72
  return Object.entries(entries).filter(([k, _]) => numericValues.indexOf(+k) === -1).map(([_, v]) => v);
@@ -378,7 +378,7 @@ window.__ModuleLoader__.load({
378
378
  return { ...iss };
379
379
  }
380
380
  //#endregion
381
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.js
381
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/errors.js
382
382
  const initializer$1 = (inst, def) => {
383
383
  inst.name = "$ZodError";
384
384
  Object.defineProperty(inst, "_zod", {
@@ -438,7 +438,7 @@ window.__ModuleLoader__.load({
438
438
  return fieldErrors;
439
439
  }
440
440
  //#endregion
441
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.js
441
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/parse.js
442
442
  const _parse = (_Err) => (schema, value, _ctx, _params) => {
443
443
  const ctx = _ctx ? {
444
444
  ..._ctx,
@@ -552,7 +552,7 @@ window.__ModuleLoader__.load({
552
552
  return _safeParseAsync(_Err)(schema, value, _ctx);
553
553
  };
554
554
  //#endregion
555
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js
555
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/regexes.js
556
556
  /**
557
557
  * @deprecated CUID v1 is deprecated by its authors due to information leakage
558
558
  * (timestamps embedded in the id). Use {@link cuid2} instead.
@@ -617,7 +617,7 @@ window.__ModuleLoader__.load({
617
617
  const lowercase = /^[^A-Z]*$/;
618
618
  const uppercase = /^[^a-z]*$/;
619
619
  //#endregion
620
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.js
620
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/checks.js
621
621
  const $ZodCheck = /*@__PURE__*/ $constructor("$ZodCheck", (inst, def) => {
622
622
  var _a;
623
623
  inst._zod ?? (inst._zod = {});
@@ -975,7 +975,7 @@ window.__ModuleLoader__.load({
975
975
  };
976
976
  });
977
977
  //#endregion
978
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.js
978
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/doc.js
979
979
  var Doc = class {
980
980
  constructor(args = []) {
981
981
  this.content = [];
@@ -1006,14 +1006,14 @@ window.__ModuleLoader__.load({
1006
1006
  }
1007
1007
  };
1008
1008
  //#endregion
1009
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.js
1009
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/versions.js
1010
1010
  const version$1 = {
1011
1011
  major: 4,
1012
1012
  minor: 4,
1013
1013
  patch: 3
1014
1014
  };
1015
1015
  //#endregion
1016
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.js
1016
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/schemas.js
1017
1017
  const $ZodType = /*@__PURE__*/ $constructor("$ZodType", (inst, def) => {
1018
1018
  var _a;
1019
1019
  inst ?? (inst = {});
@@ -2150,7 +2150,7 @@ window.__ModuleLoader__.load({
2150
2150
  }
2151
2151
  }
2152
2152
  //#endregion
2153
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.js
2153
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/registries.js
2154
2154
  var _a;
2155
2155
  var $ZodRegistry = class {
2156
2156
  constructor() {
@@ -2197,7 +2197,7 @@ window.__ModuleLoader__.load({
2197
2197
  (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
2198
2198
  const globalRegistry = globalThis.__zod_globalRegistry;
2199
2199
  //#endregion
2200
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.js
2200
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/api.js
2201
2201
  // @__NO_SIDE_EFFECTS__
2202
2202
  function _string(Class, params) {
2203
2203
  return new Class({
@@ -2709,7 +2709,7 @@ window.__ModuleLoader__.load({
2709
2709
  return ch;
2710
2710
  }
2711
2711
  //#endregion
2712
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js
2712
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/to-json-schema.js
2713
2713
  function initializeContext(params) {
2714
2714
  let target = params?.target ?? "draft-2020-12";
2715
2715
  if (target === "draft-4") target = "draft-04";
@@ -3002,7 +3002,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
3002
3002
  return finalize(ctx, schema);
3003
3003
  };
3004
3004
  //#endregion
3005
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js
3005
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/core/json-schema-processors.js
3006
3006
  const formatMap = {
3007
3007
  guid: "uuid",
3008
3008
  url: "uri",
@@ -3234,7 +3234,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
3234
3234
  seen.ref = def.innerType;
3235
3235
  };
3236
3236
  //#endregion
3237
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js
3237
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/iso.js
3238
3238
  const ZodISODateTime = /*@__PURE__*/ $constructor("ZodISODateTime", (inst, def) => {
3239
3239
  $ZodISODateTime.init(inst, def);
3240
3240
  ZodStringFormat.init(inst, def);
@@ -3264,7 +3264,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
3264
3264
  return /* @__PURE__ */ _isoDuration(ZodISODuration, params);
3265
3265
  }
3266
3266
  //#endregion
3267
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.js
3267
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/errors.js
3268
3268
  const initializer = (inst, issues) => {
3269
3269
  $ZodError.init(inst, issues);
3270
3270
  inst.name = "ZodError";
@@ -3286,7 +3286,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
3286
3286
  };
3287
3287
  const ZodRealError = /*@__PURE__*/ $constructor("ZodError", initializer, { Parent: Error });
3288
3288
  //#endregion
3289
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.js
3289
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/parse.js
3290
3290
  const parse = /* @__PURE__ */ _parse(ZodRealError);
3291
3291
  const parseAsync = /* @__PURE__ */ _parseAsync(ZodRealError);
3292
3292
  const safeParse = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -3300,7 +3300,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
3300
3300
  const safeEncodeAsync = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
3301
3301
  const safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
3302
3302
  //#endregion
3303
- //#region ../../node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js
3303
+ //#region ../../../dsh-agent-team/node_modules/.pnpm/zod@4.4.3/node_modules/zod/v4/classic/schemas.js
3304
3304
  const _installedGroups = /* @__PURE__ */ new WeakMap();
3305
3305
  function _installLazyMethods(inst, group, methods) {
3306
3306
  const proto = Object.getPrototypeOf(inst);
@@ -5220,13 +5220,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5220
5220
  "taskRef": intersection(string(), unknown()).readonly().optional(),
5221
5221
  "limit": number().readonly().optional()
5222
5222
  });
5223
- const _wowyuarm_dsh_agent_team_agentTeam_threadObservations_result$schema = object({ "items": array(object({
5224
- "sequence": number().readonly(),
5225
- "threadRef": intersection(string(), unknown()).readonly(),
5226
- "taskRef": intersection(string(), unknown()).readonly().optional(),
5227
- "memberId": intersection(string(), unknown()).readonly(),
5228
- "action": union([literal("follow"), literal("unfollow")]).readonly()
5229
- })).readonly() });
5223
+ const _wowyuarm_dsh_agent_team_agentTeam_threadObservations_result$schema = object({
5224
+ "items": array(object({
5225
+ "sequence": number().readonly(),
5226
+ "threadRef": intersection(string(), unknown()).readonly(),
5227
+ "taskRef": intersection(string(), unknown()).readonly().optional(),
5228
+ "memberId": intersection(string(), unknown()).readonly(),
5229
+ "action": union([literal("follow"), literal("unfollow")]).readonly()
5230
+ })).readonly(),
5231
+ "followers": array(intersection(string(), unknown())).readonly()
5232
+ });
5230
5233
  const _wowyuarm_dsh_agent_team_agentTeam_updateChannel_parameter_0$schema = object({
5231
5234
  "requestId": intersection(string(), unknown()).readonly(),
5232
5235
  "workspaceId": intersection(string(), unknown()).readonly(),
@@ -5490,7 +5493,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5490
5493
  },
5491
5494
  sourceLocation: {
5492
5495
  "file": "packages/agent-team/src/index.ts",
5493
- "line": 438,
5496
+ "line": 475,
5494
5497
  "column": 9
5495
5498
  }
5496
5499
  },
@@ -5517,7 +5520,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5517
5520
  },
5518
5521
  sourceLocation: {
5519
5522
  "file": "packages/agent-team/src/index.ts",
5520
- "line": 428,
5523
+ "line": 465,
5521
5524
  "column": 9
5522
5525
  }
5523
5526
  },
@@ -5544,7 +5547,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5544
5547
  },
5545
5548
  sourceLocation: {
5546
5549
  "file": "packages/agent-team/src/index.ts",
5547
- "line": 701,
5550
+ "line": 745,
5548
5551
  "column": 9
5549
5552
  }
5550
5553
  },
@@ -5571,7 +5574,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5571
5574
  },
5572
5575
  sourceLocation: {
5573
5576
  "file": "packages/agent-team/src/index.ts",
5574
- "line": 823,
5577
+ "line": 867,
5575
5578
  "column": 9
5576
5579
  }
5577
5580
  },
@@ -5599,7 +5602,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5599
5602
  },
5600
5603
  sourceLocation: {
5601
5604
  "file": "packages/agent-team/src/index.ts",
5602
- "line": 360,
5605
+ "line": 397,
5603
5606
  "column": 9
5604
5607
  }
5605
5608
  },
@@ -5626,7 +5629,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5626
5629
  },
5627
5630
  sourceLocation: {
5628
5631
  "file": "packages/agent-team/src/index.ts",
5629
- "line": 713,
5632
+ "line": 757,
5630
5633
  "column": 9
5631
5634
  }
5632
5635
  },
@@ -5653,7 +5656,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5653
5656
  },
5654
5657
  sourceLocation: {
5655
5658
  "file": "packages/agent-team/src/index.ts",
5656
- "line": 531,
5659
+ "line": 568,
5657
5660
  "column": 9
5658
5661
  }
5659
5662
  },
@@ -5680,7 +5683,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5680
5683
  },
5681
5684
  sourceLocation: {
5682
5685
  "file": "packages/agent-team/src/index.ts",
5683
- "line": 401,
5686
+ "line": 438,
5684
5687
  "column": 9
5685
5688
  }
5686
5689
  },
@@ -5707,7 +5710,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5707
5710
  },
5708
5711
  sourceLocation: {
5709
5712
  "file": "packages/agent-team/src/index.ts",
5710
- "line": 809,
5713
+ "line": 853,
5711
5714
  "column": 9
5712
5715
  }
5713
5716
  },
@@ -5734,7 +5737,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5734
5737
  },
5735
5738
  sourceLocation: {
5736
5739
  "file": "packages/agent-team/src/index.ts",
5737
- "line": 832,
5740
+ "line": 876,
5738
5741
  "column": 3
5739
5742
  }
5740
5743
  },
@@ -5761,7 +5764,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5761
5764
  },
5762
5765
  sourceLocation: {
5763
5766
  "file": "packages/agent-team/src/index.ts",
5764
- "line": 733,
5767
+ "line": 777,
5765
5768
  "column": 9
5766
5769
  }
5767
5770
  },
@@ -5789,7 +5792,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5789
5792
  },
5790
5793
  sourceLocation: {
5791
5794
  "file": "packages/agent-team/src/index.ts",
5792
- "line": 351,
5795
+ "line": 388,
5793
5796
  "column": 3
5794
5797
  }
5795
5798
  },
@@ -5816,7 +5819,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5816
5819
  },
5817
5820
  sourceLocation: {
5818
5821
  "file": "packages/agent-team/src/index.ts",
5819
- "line": 723,
5822
+ "line": 767,
5820
5823
  "column": 9
5821
5824
  }
5822
5825
  },
@@ -5843,7 +5846,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5843
5846
  },
5844
5847
  sourceLocation: {
5845
5848
  "file": "packages/agent-team/src/index.ts",
5846
- "line": 796,
5849
+ "line": 840,
5847
5850
  "column": 9
5848
5851
  }
5849
5852
  },
@@ -5870,7 +5873,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5870
5873
  },
5871
5874
  sourceLocation: {
5872
5875
  "file": "packages/agent-team/src/index.ts",
5873
- "line": 839,
5876
+ "line": 883,
5874
5877
  "column": 9
5875
5878
  }
5876
5879
  },
@@ -5897,7 +5900,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5897
5900
  },
5898
5901
  sourceLocation: {
5899
5902
  "file": "packages/agent-team/src/index.ts",
5900
- "line": 492,
5903
+ "line": 529,
5901
5904
  "column": 9
5902
5905
  }
5903
5906
  },
@@ -5924,7 +5927,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5924
5927
  },
5925
5928
  sourceLocation: {
5926
5929
  "file": "packages/agent-team/src/index.ts",
5927
- "line": 744,
5930
+ "line": 788,
5928
5931
  "column": 9
5929
5932
  }
5930
5933
  },
@@ -5951,7 +5954,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5951
5954
  },
5952
5955
  sourceLocation: {
5953
5956
  "file": "packages/agent-team/src/index.ts",
5954
- "line": 817,
5957
+ "line": 861,
5955
5958
  "column": 9
5956
5959
  }
5957
5960
  },
@@ -5978,7 +5981,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5978
5981
  },
5979
5982
  sourceLocation: {
5980
5983
  "file": "packages/agent-team/src/index.ts",
5981
- "line": 338,
5984
+ "line": 375,
5982
5985
  "column": 3
5983
5986
  }
5984
5987
  },
@@ -6005,7 +6008,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6005
6008
  },
6006
6009
  sourceLocation: {
6007
6010
  "file": "packages/agent-team/src/index.ts",
6008
- "line": 753,
6011
+ "line": 797,
6009
6012
  "column": 9
6010
6013
  }
6011
6014
  },
@@ -6032,7 +6035,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6032
6035
  },
6033
6036
  sourceLocation: {
6034
6037
  "file": "packages/agent-team/src/index.ts",
6035
- "line": 855,
6038
+ "line": 899,
6036
6039
  "column": 3
6037
6040
  }
6038
6041
  },
@@ -6059,7 +6062,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6059
6062
  },
6060
6063
  sourceLocation: {
6061
6064
  "file": "packages/agent-team/src/index.ts",
6062
- "line": 848,
6065
+ "line": 892,
6063
6066
  "column": 3
6064
6067
  }
6065
6068
  },
@@ -6086,7 +6089,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6086
6089
  },
6087
6090
  sourceLocation: {
6088
6091
  "file": "packages/agent-team/src/index.ts",
6089
- "line": 413,
6092
+ "line": 450,
6090
6093
  "column": 9
6091
6094
  }
6092
6095
  },
@@ -6113,7 +6116,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6113
6116
  },
6114
6117
  sourceLocation: {
6115
6118
  "file": "packages/agent-team/src/index.ts",
6116
- "line": 641,
6119
+ "line": 685,
6117
6120
  "column": 9
6118
6121
  }
6119
6122
  },
@@ -6140,7 +6143,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6140
6143
  },
6141
6144
  sourceLocation: {
6142
6145
  "file": "packages/agent-team/src/index.ts",
6143
- "line": 862,
6146
+ "line": 906,
6144
6147
  "column": 3
6145
6148
  }
6146
6149
  }
@@ -6512,22 +6515,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6512
6515
  }
6513
6516
  };
6514
6517
  //#endregion
6515
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/team.module.css.mjs
6516
- const css$8 = ".YvAbSa_footerStack{flex:none;width:100%;height:42px;margin:8px 0 0;display:flex}.YvAbSa_footerAction,.YvAbSa_settingsAction{box-sizing:border-box;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;width:calc(100% + 4px);height:42px;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}.YvAbSa_footerAction{margin:0 -2px}.YvAbSa_settingsAction{margin:4px -2px}.YvAbSa_footerAction:hover,.YvAbSa_footerAction:focus-visible,.YvAbSa_settingsAction:hover,.YvAbSa_settingsAction:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:none}.YvAbSa_footerAction.YvAbSa_rail,.YvAbSa_settingsAction.YvAbSa_rail{border-radius:50%;justify-content:center;width:36px;height:36px;padding:0}.YvAbSa_footerAction.YvAbSa_rail{margin:0}.YvAbSa_settingsAction.YvAbSa_rail{margin:8px 0 10px}.YvAbSa_railStack{align-items:center;width:36px;height:36px;margin:0}";
6517
- const tagId$8 = "@wowyuarm/dsh-agent-team/team.module.css";
6518
- if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
6518
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/team.module.css.mjs
6519
+ const css$9 = "._2DPuGW_footerStack{flex:none;width:100%;height:42px;margin:8px 0 0;display:flex}._2DPuGW_footerAction,._2DPuGW_settingsAction{box-sizing:border-box;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;width:calc(100% + 4px);height:42px;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}._2DPuGW_footerAction{margin:0 -2px}._2DPuGW_settingsAction{margin:4px -2px}._2DPuGW_footerAction:hover,._2DPuGW_footerAction:focus-visible,._2DPuGW_settingsAction:hover,._2DPuGW_settingsAction:focus-visible{background:var(--dsw-alias-interactive-bg-hover);outline:none}._2DPuGW_footerAction._2DPuGW_rail,._2DPuGW_settingsAction._2DPuGW_rail{border-radius:50%;justify-content:center;width:36px;height:36px;padding:0}._2DPuGW_footerAction._2DPuGW_rail{margin:0}._2DPuGW_settingsAction._2DPuGW_rail{margin:8px 0 10px}._2DPuGW_railStack{align-items:center;width:36px;height:36px;margin:0}";
6520
+ const tagId$9 = "@wowyuarm/dsh-agent-team/team.module.css";
6521
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$9) + "]") === null) {
6519
6522
  const tag = document.createElement("style");
6520
6523
  tag.dataset.plugin = "@wowyuarm/dsh-agent-team";
6521
- tag.dataset.pluginCss = tagId$8;
6522
- tag.textContent = css$8;
6524
+ tag.dataset.pluginCss = tagId$9;
6525
+ tag.textContent = css$9;
6523
6526
  document.head.appendChild(tag);
6524
6527
  }
6525
6528
  var team_module_css_default = {
6526
- "footerAction": "YvAbSa_footerAction",
6527
- "footerStack": "YvAbSa_footerStack",
6528
- "rail": "YvAbSa_rail",
6529
- "railStack": "YvAbSa_railStack",
6530
- "settingsAction": "YvAbSa_settingsAction"
6529
+ "footerAction": "_2DPuGW_footerAction",
6530
+ "footerStack": "_2DPuGW_footerStack",
6531
+ "rail": "_2DPuGW_rail",
6532
+ "railStack": "_2DPuGW_railStack",
6533
+ "settingsAction": "_2DPuGW_settingsAction"
6531
6534
  };
6532
6535
  //#endregion
6533
6536
  //#region src/client/TeamFooterAction.tsx
@@ -6562,8 +6565,43 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6562
6565
  }) });
6563
6566
  }
6564
6567
  //#endregion
6565
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/presence.module.css.mjs
6566
- const css$7 = ".-\\36 lQ-q_target{flex:0 0 14px;justify-content:center;align-items:center;display:inline-flex}.-\\36 lQ-q_unavailableDot{background:var(--dsw-alias-label-tertiary);border-radius:50%;width:7px;height:7px;display:inline-block}";
6568
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/state-dot.module.css.mjs
6569
+ const css$8 = "._0Md7GW_quiet{border-radius:50%;flex:none;display:inline-block;position:relative}._0Md7GW_quiet[data-variant=todo]{border:1px solid var(--dsw-alias-label-tertiary)}._0Md7GW_quiet[data-variant=quiet]{color:var(--dsw-alias-label-tertiary)}._0Md7GW_quiet[data-variant=quiet]:before{content:\"\";opacity:.1;background:currentColor;border-radius:50%;position:absolute;inset:0}._0Md7GW_quiet[data-variant=quiet]:after{content:\"\";background:currentColor;border-radius:50%;position:absolute;inset:20%}";
6570
+ const tagId$8 = "@wowyuarm/dsh-agent-team/state-dot.module.css";
6571
+ if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$8) + "]") === null) {
6572
+ const tag = document.createElement("style");
6573
+ tag.dataset.plugin = "@wowyuarm/dsh-agent-team";
6574
+ tag.dataset.pluginCss = tagId$8;
6575
+ tag.textContent = css$8;
6576
+ document.head.appendChild(tag);
6577
+ }
6578
+ var state_dot_module_css_default = { "quiet": "_0Md7GW_quiet" };
6579
+ //#endregion
6580
+ //#region src/client/TeamStateDot.tsx
6581
+ /**
6582
+ * Render the one shared Team status indicator. Native StateDot states pass
6583
+ * through; the quiet statuses mirror StateDot geometry locally so every
6584
+ * surface renders the same shape — todo a hollow ring (not started), quiet a
6585
+ * solid tertiary dot with the same 10% halo (closed, unavailable).
6586
+ */
6587
+ function TeamStateDot({ state, size = 10 }) {
6588
+ if (state === "todo" || state === "quiet") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6589
+ className: state_dot_module_css_default.quiet,
6590
+ "data-variant": state,
6591
+ style: {
6592
+ width: size,
6593
+ height: size
6594
+ },
6595
+ "aria-hidden": "true"
6596
+ });
6597
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
6598
+ state,
6599
+ size
6600
+ });
6601
+ }
6602
+ //#endregion
6603
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/presence.module.css.mjs
6604
+ const css$7 = "._3bLURW_target{flex:0 0 14px;justify-content:center;align-items:center;display:inline-flex}";
6567
6605
  const tagId$7 = "@wowyuarm/dsh-agent-team/presence.module.css";
6568
6606
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$7) + "]") === null) {
6569
6607
  const tag = document.createElement("style");
@@ -6572,10 +6610,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6572
6610
  tag.textContent = css$7;
6573
6611
  document.head.appendChild(tag);
6574
6612
  }
6575
- var presence_module_css_default = {
6576
- "target": "-6lQ-q_target",
6577
- "unavailableDot": "-6lQ-q_unavailableDot"
6578
- };
6613
+ var presence_module_css_default = { "target": "_3bLURW_target" };
6579
6614
  //#endregion
6580
6615
  //#region src/client/TeamPresenceDot.tsx
6581
6616
  function presenceLabel(status, t) {
@@ -6584,11 +6619,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6584
6619
  }
6585
6620
  /** Shared presence → indicator mapping for dots and avatar badges. */
6586
6621
  function presenceDotState(presence) {
6587
- return presence === "available" ? "done" : presence === "working" ? "ongoing" : presence === "error" ? "error" : "gray";
6622
+ return presence === "available" ? "done" : presence === "working" ? "ongoing" : presence === "error" ? "error" : "quiet";
6588
6623
  }
6589
6624
  function TeamPresenceDot({ status, t }) {
6590
6625
  const label = presenceLabel(status, t);
6591
- const state = presenceDotState(status.presence);
6592
6626
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
6593
6627
  label,
6594
6628
  delayMs: 300,
@@ -6596,16 +6630,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6596
6630
  className: presence_module_css_default.target,
6597
6631
  role: "img",
6598
6632
  "aria-label": label,
6599
- children: state === "gray" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
6600
- className: presence_module_css_default.unavailableDot,
6601
- "aria-hidden": "true"
6602
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, { state })
6633
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamStateDot, { state: presenceDotState(status.presence) })
6603
6634
  })
6604
6635
  });
6605
6636
  }
6606
6637
  //#endregion
6607
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/members.module.css.mjs
6608
- const css$6 = ".UkovOW_body{max-height:min(65vh,560px);overflow-y:auto}.UkovOW_content{outline:none;gap:12px;display:grid}.UkovOW_group{gap:3px;display:grid}.UkovOW_group+.UkovOW_group{border-top:1px solid var(--dsw-alias-border-l2);padding-top:10px}.UkovOW_group h3{color:var(--dsw-alias-label-secondary);margin:0 0 3px;font-size:12px;font-weight:600;line-height:18px}.UkovOW_member{border-radius:6px;grid-template-columns:14px minmax(0,1fr);align-items:center;gap:0 8px;min-height:36px;padding:4px 6px;display:grid}.UkovOW_member:hover{background:var(--dsw-alias-interactive-bg-hover)}.UkovOW_copy{min-width:0;display:grid}.UkovOW_copy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:18px;overflow:hidden}.UkovOW_copy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:14px;overflow:hidden}.UkovOW_state,.UkovOW_error{margin:0;padding:6px 0;font-size:12px;line-height:18px}.UkovOW_state{color:var(--dsw-alias-label-tertiary)}.UkovOW_error{color:var(--dsw-alias-state-error-primary)}@media (width<=600px){.UkovOW_body{max-height:calc(100vh - 160px)}}";
6638
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/members.module.css.mjs
6639
+ const css$6 = "._5nHZqG_body{max-height:min(65vh,560px);overflow-y:auto}._5nHZqG_content{outline:none;gap:12px;display:grid}._5nHZqG_group{gap:3px;display:grid}._5nHZqG_group+._5nHZqG_group{border-top:1px solid var(--dsw-alias-border-l2);padding-top:10px}._5nHZqG_group h3{color:var(--dsw-alias-label-secondary);margin:0 0 3px;font-size:12px;font-weight:600;line-height:18px}._5nHZqG_member{border-radius:6px;grid-template-columns:14px minmax(0,1fr);align-items:center;gap:0 8px;min-height:36px;padding:4px 6px;display:grid}._5nHZqG_member:hover{background:var(--dsw-alias-interactive-bg-hover)}._5nHZqG_copy{min-width:0;display:grid}._5nHZqG_copy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:18px;overflow:hidden}._5nHZqG_copy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:14px;overflow:hidden}._5nHZqG_state,._5nHZqG_error{margin:0;padding:6px 0;font-size:12px;line-height:18px}._5nHZqG_state{color:var(--dsw-alias-label-tertiary)}._5nHZqG_error{color:var(--dsw-alias-state-error-primary)}@media (width<=600px){._5nHZqG_body{max-height:calc(100vh - 160px)}}";
6609
6640
  const tagId$6 = "@wowyuarm/dsh-agent-team/members.module.css";
6610
6641
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$6) + "]") === null) {
6611
6642
  const tag = document.createElement("style");
@@ -6615,13 +6646,13 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6615
6646
  document.head.appendChild(tag);
6616
6647
  }
6617
6648
  var members_module_css_default = {
6618
- "body": "UkovOW_body",
6619
- "content": "UkovOW_content",
6620
- "copy": "UkovOW_copy",
6621
- "error": "UkovOW_error",
6622
- "group": "UkovOW_group",
6623
- "member": "UkovOW_member",
6624
- "state": "UkovOW_state"
6649
+ "body": "_5nHZqG_body",
6650
+ "content": "_5nHZqG_content",
6651
+ "copy": "_5nHZqG_copy",
6652
+ "error": "_5nHZqG_error",
6653
+ "group": "_5nHZqG_group",
6654
+ "member": "_5nHZqG_member",
6655
+ "state": "_5nHZqG_state"
6625
6656
  };
6626
6657
  //#endregion
6627
6658
  //#region src/client/TeamMembersAction.tsx
@@ -6759,8 +6790,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6759
6790
  /** Fresh idempotency identity for one Client-initiated durable request. */
6760
6791
  const mintRequestId = () => crypto.randomUUID();
6761
6792
  //#endregion
6762
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/composer.module.css.mjs
6763
- const css$5 = ".x9jGQq_root{padding:0 var(--dsh-composer-side-clearance,16px) 8px;flex-direction:column;align-items:center;display:flex}.x9jGQq_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width,780px);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));box-shadow:var(--dsw-shadow-lv2);border-radius:22px;flex-direction:column;gap:6px;padding:10px 0 0;display:flex;position:relative}.x9jGQq_inputArea{min-height:28px;position:relative}.x9jGQq_inputArea textarea{box-sizing:border-box;resize:none;width:100%;min-height:28px;max-height:336px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;outline:0;padding:4px 12px 0 16px;font-size:15px;line-height:24px;display:block;overflow-y:auto}.x9jGQq_inputArea textarea::placeholder{color:var(--dsw-alias-label-caption,var(--dsw-alias-label-tertiary))}.x9jGQq_memberSessionRoot{padding:0 var(--dsh-composer-side-clearance) 8px}.x9jGQq_memberSessionCard{font-family:var(--dsw-font-family);gap:6px;padding-top:10px;font-size:16px;line-height:24px}.x9jGQq_memberSessionInputArea textarea{min-height:28px;color:var(--dsw-alias-label-primary);caret-color:var(--dsw-alias-state-business-primary);font-family:var(--dsw-font-family);font-size:inherit;line-height:inherit;padding:4px 12px 0 16px}.x9jGQq_memberSessionStatus{width:100%;max-width:var(--dsh-composer-card-max-width);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-error-primary);border-radius:8px;margin:0 0 6px;padding:4px 8px;font-size:12px;line-height:18px}.x9jGQq_memberSessionToolbar{min-width:0;padding:2px 8px 6px}.x9jGQq_memberSessionPrimary{background:var(--dsw-alias-button-info-fill);border-radius:999px;place-items:center;display:grid;transform:translateY(-2px)}.x9jGQq_memberSessionPrimary:hover:not(:disabled){background:var(--dsw-alias-button-info-hover)}.x9jGQq_memberSessionPrimary:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.x9jGQq_memberSessionPrimary:disabled{cursor:default;opacity:.4}.x9jGQq_inputArea textarea:disabled{cursor:not-allowed;opacity:.55}.x9jGQq_mentionMenu{z-index:10;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);max-height:min(320px,40vh);box-shadow:var(--dsw-shadow-lv3);border-radius:12px;padding:4px;position:absolute;bottom:calc(100% + 12px);left:0;right:0;overflow-y:auto}.x9jGQq_mentionOption{width:100%;min-height:40px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:16px minmax(0,auto) minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:grid}.x9jGQq_mentionOption:hover,.x9jGQq_mentionOption[aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}.x9jGQq_mentionName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x9jGQq_mentionAllDot{background:var(--dsw-alias-label-primary);border-radius:50%;justify-self:center;width:8px;height:8px}.x9jGQq_mentionDescription{min-width:0;color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.x9jGQq_toolbar{justify-content:flex-end;align-items:center;gap:6px;min-height:34px;padding:2px 8px 6px;display:flex}.x9jGQq_asTaskOn[aria-pressed=true],.x9jGQq_asTaskOn[aria-pressed=true]:hover:not(:disabled){background:var(--dsw-alias-button-primary-fill);border-color:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.x9jGQq_attachButton{background:var(--dsw-specific-selector);color:var(--dsw-alias-label-primary);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;width:28px;height:28px;margin-right:auto;display:grid}.x9jGQq_attachButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.x9jGQq_attachButton:disabled{cursor:default;opacity:.5}.x9jGQq_attachButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,var(--dsw-specific-selector));outline-offset:1px}.x9jGQq_fileInput{display:none}.x9jGQq_fileChips{flex-wrap:wrap;gap:4px;margin:0;padding:4px 8px 0;list-style:none;display:flex}.x9jGQq_fileChip{background:var(--dsw-alias-interactive-bg-hover);border-radius:6px;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 8px;display:inline-flex}.x9jGQq_fileChipSize{color:var(--dsw-alias-label-tertiary);margin-left:6px}.x9jGQq_imageChip{align-items:center;display:flex}.x9jGQq_imageChipPreview{border:1px solid var(--dsw-alias-border-l2);object-fit:cover;border-radius:4px;width:56px;height:40px}.x9jGQq_fileChipName{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:11px;line-height:16px;overflow:hidden}.x9jGQq_fileChipRemove{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:12px;display:inline-flex}.x9jGQq_fileChipRemove:hover,.x9jGQq_fileChipRemove:focus-visible{color:var(--dsw-alias-label-primary);outline:none}.x9jGQq_sendButton{background:var(--dsw-alias-button-info-fill,var(--dsw-alias-button-primary-fill));color:#fff;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:background-color .1s,opacity .1s;display:inline-flex}.x9jGQq_sendButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover,var(--dsw-alias-button-primary-hover))}.x9jGQq_sendButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.x9jGQq_sendButton:disabled{cursor:not-allowed;opacity:.4}.x9jGQq_confirmation{color:var(--dsw-alias-label-tertiary);align-self:stretch;margin:0;padding:0 16px;font-size:12px;line-height:18px}.x9jGQq_notifyRow{color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));overflow-wrap:anywhere;margin:0;padding:0 16px;font-size:12px;line-height:18px}.x9jGQq_error{color:var(--dsw-alias-state-error-primary);align-self:stretch;margin:0;padding:0 4px 2px;font-size:12px;line-height:18px}@media (width<=600px){.x9jGQq_mentionOption{grid-template-columns:16px minmax(0,1fr);min-height:36px;padding-block:6px}.x9jGQq_mentionDescription{display:none}}@media (prefers-reduced-motion:reduce){.x9jGQq_sendButton{transition:none}}.x9jGQq_memberSessionDock{flex-direction:column;gap:4px;padding:4px 2px 0;display:flex}.x9jGQq_memberSessionHint{color:var(--dsw-alias-text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:1.4;overflow:hidden}";
6793
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/composer.module.css.mjs
6794
+ const css$5 = ".wh0I9G_root{padding:0 var(--dsh-composer-side-clearance,16px) 8px;flex-direction:column;align-items:center;display:flex}.wh0I9G_card{box-sizing:border-box;width:100%;max-width:var(--dsh-composer-card-max-width,780px);border:1px solid var(--dsw-alias-border-l2-darkmode-thin);background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));box-shadow:var(--dsw-shadow-lv2);border-radius:22px;flex-direction:column;gap:6px;padding:10px 0 0;display:flex;position:relative}.wh0I9G_inputArea{min-height:28px;position:relative}.wh0I9G_inputArea textarea{box-sizing:border-box;resize:none;width:100%;min-height:28px;max-height:336px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));font:inherit;white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border:0;outline:0;padding:4px 12px 0 16px;font-size:15px;line-height:24px;display:block;overflow-y:auto}.wh0I9G_inputArea textarea::placeholder{color:var(--dsw-alias-label-caption,var(--dsw-alias-label-tertiary))}.wh0I9G_inputArea textarea:disabled{cursor:not-allowed;opacity:.55}.wh0I9G_mentionMenu{z-index:10;border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-specific-menu);max-height:min(320px,40vh);box-shadow:var(--dsw-shadow-lv3);border-radius:12px;padding:4px;position:absolute;bottom:calc(100% + 12px);left:0;right:0;overflow-y:auto}.wh0I9G_mentionOption{width:100%;min-height:40px;color:var(--dsw-alias-label-primary,var(--dsw-alias-label-primary));cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:16px minmax(0,auto) minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:grid}.wh0I9G_mentionOption:hover,.wh0I9G_mentionOption[aria-selected=true]{background:var(--dsw-alias-interactive-bg-hover)}.wh0I9G_mentionName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wh0I9G_mentionAllDot{background:var(--dsw-alias-label-primary);border-radius:50%;justify-self:center;width:8px;height:8px}.wh0I9G_mentionDescription{min-width:0;color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wh0I9G_toolbar{justify-content:flex-end;align-items:center;gap:6px;min-height:34px;padding:2px 8px 6px;display:flex}.wh0I9G_asTaskOn[aria-pressed=true],.wh0I9G_asTaskOn[aria-pressed=true]:hover:not(:disabled){background:var(--dsw-alias-button-primary-fill);border-color:var(--dsw-alias-button-primary-fill);color:var(--dsw-alias-label-primary-foreground)}.wh0I9G_attachButton{background:var(--dsw-specific-selector);color:var(--dsw-alias-label-primary);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;width:28px;height:28px;margin-right:auto;display:grid}.wh0I9G_attachButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover-solid)}.wh0I9G_attachButton:disabled{cursor:default;opacity:.5}.wh0I9G_attachButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,var(--dsw-specific-selector));outline-offset:1px}.wh0I9G_fileInput{display:none}.wh0I9G_fileChips{flex-wrap:wrap;gap:4px;margin:0;padding:4px 8px 0;list-style:none;display:flex}.wh0I9G_fileChip{background:var(--dsw-alias-interactive-bg-hover);border-radius:6px;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 8px;display:inline-flex}.wh0I9G_fileChipSize{color:var(--dsw-alias-label-tertiary);margin-left:6px}.wh0I9G_imageChip{align-items:center;display:flex}.wh0I9G_imageChipPreview{border:1px solid var(--dsw-alias-border-l2);object-fit:cover;border-radius:4px;width:56px;height:40px}.wh0I9G_fileChipName{text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:11px;line-height:16px;overflow:hidden}.wh0I9G_fileChipRemove{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:12px;display:inline-flex}.wh0I9G_fileChipRemove:hover,.wh0I9G_fileChipRemove:focus-visible{color:var(--dsw-alias-label-primary);outline:none}.wh0I9G_sendButton{background:var(--dsw-alias-button-info-fill,var(--dsw-alias-button-primary-fill));color:#fff;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;padding:0;transition:background-color .1s,opacity .1s;display:inline-flex}.wh0I9G_sendButton:hover:not(:disabled){background:var(--dsw-alias-button-info-hover,var(--dsw-alias-button-primary-hover))}.wh0I9G_sendButton:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.wh0I9G_sendButton:disabled{cursor:not-allowed;opacity:.4}.wh0I9G_confirmation{color:var(--dsw-alias-label-tertiary);align-self:stretch;margin:0;padding:0 16px;font-size:12px;line-height:18px}.wh0I9G_notifyRow{color:var(--dsw-alias-label-tertiary,var(--dsw-alias-label-tertiary));overflow-wrap:anywhere;margin:0;padding:0 16px;font-size:12px;line-height:18px}.wh0I9G_error{color:var(--dsw-alias-state-error-primary);align-self:stretch;margin:0;padding:0 4px 2px;font-size:12px;line-height:18px}@media (width<=600px){.wh0I9G_mentionOption{grid-template-columns:16px minmax(0,1fr);min-height:36px;padding-block:6px}.wh0I9G_mentionDescription{display:none}}@media (prefers-reduced-motion:reduce){.wh0I9G_sendButton{transition:none}}";
6764
6795
  const tagId$5 = "@wowyuarm/dsh-agent-team/composer.module.css";
6765
6796
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
6766
6797
  const tag = document.createElement("style");
@@ -6770,37 +6801,29 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6770
6801
  document.head.appendChild(tag);
6771
6802
  }
6772
6803
  var composer_module_css_default = {
6773
- "asTaskOn": "x9jGQq_asTaskOn",
6774
- "attachButton": "x9jGQq_attachButton",
6775
- "card": "x9jGQq_card",
6776
- "confirmation": "x9jGQq_confirmation",
6777
- "error": "x9jGQq_error",
6778
- "fileChip": "x9jGQq_fileChip",
6779
- "fileChipName": "x9jGQq_fileChipName",
6780
- "fileChipRemove": "x9jGQq_fileChipRemove",
6781
- "fileChipSize": "x9jGQq_fileChipSize",
6782
- "fileChips": "x9jGQq_fileChips",
6783
- "fileInput": "x9jGQq_fileInput",
6784
- "imageChip": "x9jGQq_imageChip",
6785
- "imageChipPreview": "x9jGQq_imageChipPreview",
6786
- "inputArea": "x9jGQq_inputArea",
6787
- "memberSessionCard": "x9jGQq_memberSessionCard",
6788
- "memberSessionDock": "x9jGQq_memberSessionDock",
6789
- "memberSessionHint": "x9jGQq_memberSessionHint",
6790
- "memberSessionInputArea": "x9jGQq_memberSessionInputArea",
6791
- "memberSessionPrimary": "x9jGQq_memberSessionPrimary",
6792
- "memberSessionRoot": "x9jGQq_memberSessionRoot",
6793
- "memberSessionStatus": "x9jGQq_memberSessionStatus",
6794
- "memberSessionToolbar": "x9jGQq_memberSessionToolbar",
6795
- "mentionAllDot": "x9jGQq_mentionAllDot",
6796
- "mentionDescription": "x9jGQq_mentionDescription",
6797
- "mentionMenu": "x9jGQq_mentionMenu",
6798
- "mentionName": "x9jGQq_mentionName",
6799
- "mentionOption": "x9jGQq_mentionOption",
6800
- "notifyRow": "x9jGQq_notifyRow",
6801
- "root": "x9jGQq_root",
6802
- "sendButton": "x9jGQq_sendButton",
6803
- "toolbar": "x9jGQq_toolbar"
6804
+ "asTaskOn": "wh0I9G_asTaskOn",
6805
+ "attachButton": "wh0I9G_attachButton",
6806
+ "card": "wh0I9G_card",
6807
+ "confirmation": "wh0I9G_confirmation",
6808
+ "error": "wh0I9G_error",
6809
+ "fileChip": "wh0I9G_fileChip",
6810
+ "fileChipName": "wh0I9G_fileChipName",
6811
+ "fileChipRemove": "wh0I9G_fileChipRemove",
6812
+ "fileChipSize": "wh0I9G_fileChipSize",
6813
+ "fileChips": "wh0I9G_fileChips",
6814
+ "fileInput": "wh0I9G_fileInput",
6815
+ "imageChip": "wh0I9G_imageChip",
6816
+ "imageChipPreview": "wh0I9G_imageChipPreview",
6817
+ "inputArea": "wh0I9G_inputArea",
6818
+ "mentionAllDot": "wh0I9G_mentionAllDot",
6819
+ "mentionDescription": "wh0I9G_mentionDescription",
6820
+ "mentionMenu": "wh0I9G_mentionMenu",
6821
+ "mentionName": "wh0I9G_mentionName",
6822
+ "mentionOption": "wh0I9G_mentionOption",
6823
+ "notifyRow": "wh0I9G_notifyRow",
6824
+ "root": "wh0I9G_root",
6825
+ "sendButton": "wh0I9G_sendButton",
6826
+ "toolbar": "wh0I9G_toolbar"
6804
6827
  };
6805
6828
  //#endregion
6806
6829
  //#region src/client/TeamComposer.tsx
@@ -6828,6 +6851,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6828
6851
  const normalized = query.toLocaleLowerCase();
6829
6852
  return members.filter((status) => status.presence !== "unavailable" && status.member.state !== "inactive" && status.member.state !== "archived" && status.member.handle.toLocaleLowerCase().startsWith(normalized));
6830
6853
  }
6854
+ /** Thread followers rank first: mentioning them delivers directly, while a non-follower enters the two-send invite flow. */
6855
+ function rankMentionCandidates(candidates, followers) {
6856
+ if (followers === void 0 || followers.size === 0) return candidates;
6857
+ return [...candidates].sort((left, right) => Number(followers.has(right.member.memberId)) - Number(followers.has(left.member.memberId)));
6858
+ }
6831
6859
  /** Every member a manual handle pick could reach: the @all expansion snapshot. */
6832
6860
  function allMentionMembers(members) {
6833
6861
  return members.filter((status) => status.presence !== "unavailable" && status.member.state !== "inactive" && status.member.state !== "archived");
@@ -6846,15 +6874,16 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6846
6874
  }
6847
6875
  return url;
6848
6876
  }
6849
- function TeamComposer({ members, recipients, draft, pending, confirmation, error, onDraftChange, onRecipientsChange, onSubmit, placeholder, pendingFiles, onFilesChange, asTask, onAsTaskChange, t }) {
6877
+ function TeamComposer({ members, followerMemberIds, recipients, draft, pending, confirmation, error, onDraftChange, onRecipientsChange, onSubmit, placeholder, pendingFiles, onFilesChange, asTask, onAsTaskChange, t }) {
6850
6878
  const inputRef = (0, react.useRef)(null);
6851
6879
  const fileInputRef = (0, react.useRef)(null);
6852
6880
  const rootRef = (0, react.useRef)(null);
6853
6881
  const menuRef = (0, react.useRef)(null);
6882
+ const activeOptionRef = (0, react.useRef)(null);
6854
6883
  const composingRef = (0, react.useRef)(false);
6855
6884
  const [mention, setMention] = (0, react.useState)();
6856
6885
  const [highlight, setHighlight] = (0, react.useState)(0);
6857
- const memberCandidates = mention === void 0 ? [] : mentionCandidates(members, mention.query);
6886
+ const memberCandidates = mention === void 0 ? [] : rankMentionCandidates(mentionCandidates(members, mention.query), followerMemberIds);
6858
6887
  const options = mention !== void 0 && "all".startsWith(mention.query.toLocaleLowerCase()) ? [{ kind: "all" }, ...memberCandidates.map((status) => ({
6859
6888
  kind: "member",
6860
6889
  status
@@ -6864,6 +6893,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6864
6893
  }));
6865
6894
  const menuOpen = mention !== void 0 && options.length > 0;
6866
6895
  const activeOption = options[highlight];
6896
+ const activeOptionKey = activeOption === void 0 ? void 0 : activeOption.kind === "all" ? "all" : activeOption.status.member.memberId;
6867
6897
  const allCount = allMentionMembers(members).length;
6868
6898
  const listId = "team-mention-suggestions";
6869
6899
  const menuMaxHeight = (0, _deepseek_ai_dsh_client_ui_primitives.useAnchoredMaxHeight)(menuRef, 320, menuOpen ? draft : null);
@@ -6883,6 +6913,14 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6883
6913
  }
6884
6914
  setHighlight((current) => Math.min(current, options.length - 1));
6885
6915
  }, [mention, options.length]);
6916
+ (0, react.useLayoutEffect)(() => {
6917
+ if (!menuOpen) return;
6918
+ activeOptionRef.current?.scrollIntoView?.({ block: "nearest" });
6919
+ }, [
6920
+ menuOpen,
6921
+ highlight,
6922
+ activeOptionKey
6923
+ ]);
6886
6924
  (0, react.useEffect)(() => {
6887
6925
  const active = document.activeElement;
6888
6926
  if (active !== document.body && active?.closest("[aria-current=\"page\"]") === null) return;
@@ -6920,6 +6958,18 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6920
6958
  pruneRecipients(nextDraft);
6921
6959
  updateMention(nextDraft, event.target.selectionStart ?? nextDraft.length);
6922
6960
  };
6961
+ const commitMention = (nextDraft, nextCaret, nextRecipients) => {
6962
+ onDraftChange(nextDraft);
6963
+ onRecipientsChange(nextRecipients);
6964
+ setMention(void 0);
6965
+ setHighlight(0);
6966
+ requestAnimationFrame(() => {
6967
+ const input = inputRef.current;
6968
+ if (input === null) return;
6969
+ input.focus({ preventScroll: true });
6970
+ input.setSelectionRange(nextCaret, nextCaret);
6971
+ });
6972
+ };
6923
6973
  const selectOption = (option) => {
6924
6974
  if (mention === void 0) return;
6925
6975
  if (option.kind === "all") {
@@ -6927,33 +6977,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
6927
6977
  const nextCaret = mention.start + 5;
6928
6978
  const nextRecipients = new Set(recipients);
6929
6979
  for (const status of allMentionMembers(members)) nextRecipients.add(status.member.memberId);
6930
- onDraftChange(nextDraft);
6931
- onRecipientsChange(nextRecipients);
6932
- setMention(void 0);
6933
- setHighlight(0);
6934
- requestAnimationFrame(() => {
6935
- const input = inputRef.current;
6936
- if (input === null) return;
6937
- input.focus({ preventScroll: true });
6938
- input.setSelectionRange(nextCaret, nextCaret);
6939
- });
6980
+ commitMention(nextDraft, nextCaret, nextRecipients);
6940
6981
  return;
6941
6982
  }
6942
6983
  const member = option.status;
6943
6984
  const inserted = `@${member.member.handle} `;
6944
- const nextDraft = `${draft.slice(0, mention.start)}${inserted}${draft.slice(mention.end)}`;
6945
- const nextCaret = mention.start + inserted.length;
6946
- const nextRecipients = new Set(recipients).add(member.member.memberId);
6947
- onDraftChange(nextDraft);
6948
- onRecipientsChange(nextRecipients);
6949
- setMention(void 0);
6950
- setHighlight(0);
6951
- requestAnimationFrame(() => {
6952
- const input = inputRef.current;
6953
- if (input === null) return;
6954
- input.focus({ preventScroll: true });
6955
- input.setSelectionRange(nextCaret, nextCaret);
6956
- });
6985
+ commitMention(`${draft.slice(0, mention.start)}${inserted}${draft.slice(mention.end)}`, mention.start + inserted.length, new Set(recipients).add(member.member.memberId));
6957
6986
  };
6958
6987
  const onPaste = (event) => {
6959
6988
  if (pending || onFilesChange === void 0 || pendingFiles === void 0) return;
@@ -7027,6 +7056,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7027
7056
  role: "option",
7028
7057
  "aria-selected": selected,
7029
7058
  className: composer_module_css_default.mentionOption,
7059
+ ref: selected ? activeOptionRef : void 0,
7030
7060
  onMouseDown: (event) => {
7031
7061
  event.preventDefault();
7032
7062
  },
@@ -7053,6 +7083,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7053
7083
  role: "option",
7054
7084
  "aria-selected": selected,
7055
7085
  className: composer_module_css_default.mentionOption,
7086
+ ref: selected ? activeOptionRef : void 0,
7056
7087
  onMouseDown: (event) => {
7057
7088
  event.preventDefault();
7058
7089
  },
@@ -7231,15 +7262,36 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7231
7262
  pending.delete(entry.taskRef);
7232
7263
  emit();
7233
7264
  };
7234
- /** Click-path Host lookup: remember every resolved entry and hand them back for immediate navigation. */
7265
+ /** Compare refs by branded prefix plus hyphen-stripped UUID, so abbreviated spellings line up with their full form. */
7266
+ function refKeyOf(ref) {
7267
+ return ref.toLowerCase().replaceAll("-", "");
7268
+ }
7269
+ /**
7270
+ * Click-path Host lookup: remember every resolved entry and hand them back
7271
+ * for immediate navigation. The Host keeps `resolved` in the same order as
7272
+ * the input `taskRefs` (one entry per resolvable input, unknowns omitted);
7273
+ * the pairing walk below relies on that contract, so it must be preserved
7274
+ * together with this implementation.
7275
+ */
7235
7276
  const hostTaskRefLookup = (resolveTaskRefs, workspaceId) => async (taskRefs) => {
7236
7277
  const result = await resolveTaskRefs({
7237
7278
  workspaceId,
7238
7279
  taskRefs
7239
7280
  });
7240
7281
  if (!result.ok) return [];
7241
- for (const entry of result.value.resolved) rememberResolvedTaskRef(entry);
7242
- return result.value.resolved;
7282
+ const entries = result.value.resolved;
7283
+ let entryIndex = 0;
7284
+ for (const requested of taskRefs) {
7285
+ const entry = entries[entryIndex];
7286
+ if (entry === void 0 || !refKeyOf(entry.taskRef).startsWith(refKeyOf(requested))) continue;
7287
+ if (entry.taskRef !== requested) rememberResolvedTaskRef({
7288
+ ...entry,
7289
+ taskRef: requested
7290
+ });
7291
+ rememberResolvedTaskRef(entry);
7292
+ entryIndex += 1;
7293
+ }
7294
+ return entries;
7243
7295
  };
7244
7296
  /** Resolve one Task ref through the Host and jump to its home Channel Thread. */
7245
7297
  const jumpToTaskThread = (resolveTaskRefs, workspaceId, taskRef, selectThread) => {
@@ -7292,10 +7344,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7292
7344
  }[state]);
7293
7345
  }
7294
7346
  /**
7295
- * Status indicator variant for a Task status. Active states map to StateDot
7296
- * variants; every status renders a dot so all Task chips share one shape
7297
- * language — todo is a hollow ring (not started), closed a quiet gray dot
7298
- * (archived).
7347
+ * Status indicator for a Task status, the dot every Task surface renders.
7348
+ * Active states map to StateDot variants; every status renders a dot so they
7349
+ * share one shape language — todo is a hollow ring (not started), closed a
7350
+ * quiet gray dot (archived).
7299
7351
  */
7300
7352
  function taskStatusDot(status) {
7301
7353
  return {
@@ -7303,7 +7355,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7303
7355
  in_progress: "ongoing",
7304
7356
  in_review: "warning",
7305
7357
  done: "done",
7306
- closed: "closed"
7358
+ closed: "quiet"
7307
7359
  }[status];
7308
7360
  }
7309
7361
  /** One-line title snippet derived from the Task's root Message body. */
@@ -7317,7 +7369,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7317
7369
  for (let index = 0; index < memberId.length; index += 1) hash = (hash * 31 + memberId.charCodeAt(index)) % 360;
7318
7370
  return hash;
7319
7371
  }
7320
- const BRANDED_REF_PATTERN = /\b(task|channel|thread):{1,2}[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi;
7372
+ const BRANDED_REF_PATTERN = /\b(task|channel|thread):{1,2}[0-9a-f]{6,}(?:-[0-9a-f]{1,})*\b/gi;
7321
7373
  /**
7322
7374
  * Canonical form of one matched ref: models occasionally double the colon or
7323
7375
  * uppercase the UUID when citing a ref in prose, while Host lookups and
@@ -7328,11 +7380,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7328
7380
  }
7329
7381
  /**
7330
7382
  * Split a literal text run into plain and branded-ref segments. The pattern
7331
- * anchors on the fixed ref prefixes plus the UUID shape, so ordinary prose
7332
- * containing a colon never linkifies; a doubled colon from model output is
7333
- * tolerated. Segment refs are always canonical, so resolution and navigation
7334
- * work regardless of how the ref was spelled; text without any ref comes
7335
- * back as one untouched segment.
7383
+ * anchors on the fixed ref prefixes plus a UUID shape (full or abbreviated),
7384
+ * so ordinary prose containing a colon never linkifies; a doubled colon from
7385
+ * model output is tolerated. Segment refs are always canonical, so resolution
7386
+ * and navigation work regardless of how the ref was spelled; text without any
7387
+ * ref comes back as one untouched segment.
7336
7388
  */
7337
7389
  function splitBrandedRefs(text) {
7338
7390
  const segments = [];
@@ -7500,8 +7552,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7500
7552
  };
7501
7553
  }
7502
7554
  //#endregion
7503
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/conversation.module.css.mjs
7504
- const css$4 = ".omcBaG_surface{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.omcBaG_surfaceHeader{border-bottom:1px solid var(--dsw-alias-border-l2);min-width:0;padding:14px clamp(18px,3vw,36px) 12px}.omcBaG_headerRow{justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;max-width:880px;margin:0 auto;display:flex}.omcBaG_headerCopy{min-width:0}.omcBaG_headerCopy h1{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:600;line-height:28px}.omcBaG_headerCopy p{color:var(--dsw-alias-label-secondary);margin:3px 0 0;font-size:13px;line-height:20px}.omcBaG_headerActions{flex:none;align-items:center;gap:6px;display:flex}.omcBaG_backRow{max-width:880px;margin:0 auto 8px}.omcBaG_timeline{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:12px clamp(18px,3vw,36px) 24px;overflow:hidden auto}.omcBaG_timelineContent{flex-direction:column;min-width:0;max-width:880px;min-height:100%;margin:0 auto;display:flex}.omcBaG_emptySurface{margin:auto;padding:32px 0}.omcBaG_emptySurface .omcBaG_emptyState{text-align:center;justify-items:center}.omcBaG_timelineAction{justify-content:center;padding:2px 0 8px;display:flex}.omcBaG_messageRow{gap:10px;padding:10px 0;display:flex}.omcBaG_messageRow[data-grouped]{padding-top:2px}.omcBaG_messageRow[data-grouped] .omcBaG_messageBody>:first-child,.omcBaG_messageRow[data-grouped] .omcBaG_messageBody>:first-child>:first-child{margin-top:0}.omcBaG_messageIdentity{background:hsl(var(--team-avatar-hue,212) 42% 46%);color:#fff;border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;height:28px;font-size:12px;font-weight:600;display:flex}.omcBaG_messageRow[data-human] .omcBaG_messageIdentity{background:var(--dsw-alias-state-business-primary)}.omcBaG_messageRow[data-grouped] .omcBaG_messageIdentity{visibility:hidden}.omcBaG_messageBody{min-width:0}.omcBaG_nameRow{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.omcBaG_nameRow strong{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:600;line-height:20px}.omcBaG_messageTime{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:20px}.omcBaG_messageText{white-space:pre-wrap;word-break:break-word;margin:6px 0;font-size:14px;line-height:22px}.omcBaG_messageClamp{max-height:176px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 72%,#0000 100%);mask-image:linear-gradient(#000 72%,#0000 100%)}.omcBaG_messageExpand{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;width:fit-content;margin-top:4px;padding:0;font-size:12px;line-height:20px;display:block}.omcBaG_messageExpand:hover,.omcBaG_messageExpand:focus-visible{color:var(--dsw-alias-label-primary);text-underline-offset:2px;outline:none;text-decoration:underline}.omcBaG_messageBody .omcBaG_messageMarkdown{font-size:14px;line-height:22px}.omcBaG_messageBody .omcBaG_messageMarkdown>div:first-child{color:var(--dsw-alias-label-primary);font:inherit}.omcBaG_messageBody .omcBaG_messageMarkdown p{margin:6px 0}.omcBaG_messageBody .omcBaG_messageMarkdown :where(ul,ol){margin:6px 0;padding-left:22px}.omcBaG_messageBody .omcBaG_messageMarkdown li+li{margin-top:2px}.omcBaG_messageBody .omcBaG_messageMarkdown strong{font-weight:600}.omcBaG_messageBody .omcBaG_messageMarkdown :where(h1,h2,h3,h4,h5,h6){margin:12px 0 4px}.omcBaG_messageBody .omcBaG_messageMarkdown :where(h1){font-size:17px;line-height:26px}.omcBaG_messageBody .omcBaG_messageMarkdown :where(h2){font-size:16px;line-height:24px}.omcBaG_messageBody .omcBaG_messageMarkdown :where(h3,h4,h5,h6){font-size:15px;line-height:22px}.omcBaG_messageBody .omcBaG_messageMarkdown pre{margin:8px 0;padding:10px 12px;font-size:13px}.omcBaG_messageBody .omcBaG_messageMarkdown blockquote{margin:6px 0}.omcBaG_messageBody .omcBaG_messageMarkdown :where(th,td){padding-block:5px}.omcBaG_emptyState,.omcBaG_loadingState{color:var(--dsw-alias-label-tertiary);margin:0;padding:14px 0;font-size:13px;line-height:20px}.omcBaG_emptyState{gap:3px;display:grid}.omcBaG_emptyState strong{color:var(--dsw-alias-label-secondary);font-weight:500}.omcBaG_emptyState span{font-size:12px}.omcBaG_loadingState{align-items:center;gap:8px;display:flex}.omcBaG_loadingMark{background:var(--dsw-alias-bg-skeleton);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite omcBaG_pulse}.omcBaG_error,.omcBaG_errorState{color:var(--dsw-alias-state-error-primary);max-width:880px;margin:0 auto;padding-top:6px;font-size:12px;line-height:18px}.omcBaG_errorState{justify-content:space-between;align-items:center;gap:8px;display:flex}.omcBaG_welcomeSurface{justify-content:center;align-items:center;min-width:0;height:100%;padding:32px;display:flex}.omcBaG_welcome{text-align:center;max-width:420px}.omcBaG_welcomeEyebrow{color:var(--dsw-alias-label-tertiary);text-transform:uppercase;font-size:12px;line-height:18px}.omcBaG_welcome h1{color:var(--dsw-alias-label-primary);margin:8px 0;font-size:24px;font-weight:600;line-height:32px}.omcBaG_welcome p{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:20px}@keyframes omcBaG_pulse{0%,to{opacity:.35}50%{opacity:1}}@media (width<=600px){.omcBaG_surfaceHeader{padding:12px 12px 10px}.omcBaG_headerRow{flex-direction:column;align-items:stretch;gap:8px}.omcBaG_headerActions{flex-wrap:wrap}.omcBaG_backRow{margin-bottom:6px}.omcBaG_timeline{scrollbar-gutter:auto;padding:8px 12px 16px}.omcBaG_messageRow{padding:8px 0}}@media (prefers-reduced-motion:reduce){.omcBaG_loadingMark{animation:none}}.omcBaG_messageRun{margin:2px 0;padding:3px 0}.omcBaG_messageRow[data-grouped]:has(.omcBaG_messageBody>button:not([data-message-expand])){margin-top:3px;padding-top:7px;position:relative}.omcBaG_messageRow[data-grouped]:has(.omcBaG_messageBody>button:not([data-message-expand])):before{background:var(--dsw-alias-border-l2);content:\"\";height:1px;position:absolute;inset:0 0 auto 38px}.omcBaG_runDivider{border-top:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);margin:2px 0 0 38px;padding:5px 0 0;font-size:11px;line-height:16px}.omcBaG_runDivider+.omcBaG_messageRow[data-grouped]:has(.omcBaG_messageBody>button:not([data-message-expand])){margin-top:0}.omcBaG_runDivider+.omcBaG_messageRow[data-grouped]:has(.omcBaG_messageBody>button:not([data-message-expand])):before{content:none}.omcBaG_mention{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 12%, transparent);color:var(--dsw-alias-state-business-primary);border-radius:5px;padding:0 4px;font-weight:500;box-shadow:0 1px 2px #00000014}.omcBaG_mentionsRow{gap:4px;width:fit-content;margin-top:3px;font-size:.85em;display:flex}.omcBaG_attachmentStrip{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.omcBaG_attachmentThumb{cursor:zoom-in;border:0;border-radius:8px;padding:0}.omcBaG_attachmentThumb img{object-fit:cover;border-radius:8px;width:128px;height:96px;display:block}.omcBaG_attachmentThumb:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,currentColor);outline-offset:1px}.omcBaG_confirmBody{margin:0 0 8px}.omcBaG_confirmList{gap:6px;margin:0;padding-left:18px;display:grid}.omcBaG_refLink{color:var(--dsw-alias-state-business-primary);cursor:pointer;font:inherit;text-align:left;text-underline-offset:3px;background:0 0;border:none;border-radius:4px;padding:0;text-decoration:underline}.omcBaG_refLink:hover{text-decoration-thickness:2px}.omcBaG_refLink:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.omcBaG_attachmentModal{width:min(1100px,92vw)}.omcBaG_attachmentZoom{object-fit:contain;border-radius:12px;max-width:100%;max-height:78vh;margin:0 auto;display:block}.omcBaG_attachmentChip{background:var(--dsw-alias-interactive-bg-hover);border-radius:6px;align-items:baseline;gap:6px;max-width:100%;padding:3px 8px;display:inline-flex}.omcBaG_attachmentChipName{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:17px;overflow:hidden}.omcBaG_attachmentChipSize{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11px;line-height:17px}";
7555
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/conversation.module.css.mjs
7556
+ const css$4 = ".pVzKIW_surface{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.pVzKIW_surfaceHeader{border-bottom:1px solid var(--dsw-alias-border-l2);min-width:0;padding:14px clamp(18px,3vw,36px) 12px}.pVzKIW_headerRow{justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;max-width:880px;margin:0 auto;display:flex}.pVzKIW_headerCopy{min-width:0}.pVzKIW_headerCopy h1{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:600;line-height:28px}.pVzKIW_headerCopy p{color:var(--dsw-alias-label-secondary);margin:3px 0 0;font-size:13px;line-height:20px}.pVzKIW_headerActions{flex:none;align-items:center;gap:6px;display:flex}.pVzKIW_backRow{max-width:880px;margin:0 auto 8px}.pVzKIW_timeline{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:12px clamp(18px,3vw,36px) 24px;overflow:hidden auto}.pVzKIW_timelineContent{flex-direction:column;min-width:0;max-width:880px;min-height:100%;margin:0 auto;display:flex}.pVzKIW_emptySurface{margin:auto;padding:32px 0}.pVzKIW_emptySurface .pVzKIW_emptyState{text-align:center;justify-items:center}.pVzKIW_timelineAction{justify-content:center;padding:2px 0 8px;display:flex}.pVzKIW_messageRow{gap:10px;padding:10px 0;display:flex}.pVzKIW_messageRow[data-grouped]{padding-top:2px}.pVzKIW_messageRow[data-grouped] .pVzKIW_messageBody>:first-child,.pVzKIW_messageRow[data-grouped] .pVzKIW_messageBody>:first-child>:first-child{margin-top:0}.pVzKIW_messageIdentity{background:hsl(var(--team-avatar-hue,212) 42% 46%);color:#fff;border-radius:50%;flex:0 0 28px;justify-content:center;align-items:center;height:28px;font-size:12px;font-weight:600;display:flex}.pVzKIW_messageRow[data-human] .pVzKIW_messageIdentity{background:var(--dsw-alias-state-business-primary)}.pVzKIW_messageRow[data-grouped] .pVzKIW_messageIdentity{visibility:hidden}.pVzKIW_messageBody{min-width:0}.pVzKIW_nameRow{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.pVzKIW_nameRow strong{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:600;line-height:20px}.pVzKIW_messageTime{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:20px}.pVzKIW_messageText{white-space:pre-wrap;word-break:break-word;margin:6px 0;font-size:14px;line-height:22px}.pVzKIW_messageClamp{max-height:176px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 72%,#0000 100%);mask-image:linear-gradient(#000 72%,#0000 100%)}.pVzKIW_messageExpand{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;width:fit-content;margin-top:4px;padding:0;font-size:12px;line-height:20px;display:block}.pVzKIW_messageExpand:hover,.pVzKIW_messageExpand:focus-visible{color:var(--dsw-alias-label-primary);text-underline-offset:2px;outline:none;text-decoration:underline}.pVzKIW_messageBody .pVzKIW_messageMarkdown{font-size:14px;line-height:22px}.pVzKIW_messageBody .pVzKIW_messageMarkdown>div:first-child{color:var(--dsw-alias-label-primary);font:inherit}.pVzKIW_messageBody .pVzKIW_messageMarkdown p{margin:6px 0}.pVzKIW_messageBody .pVzKIW_messageMarkdown :where(ul,ol){margin:6px 0;padding-left:22px}.pVzKIW_messageBody .pVzKIW_messageMarkdown li+li{margin-top:2px}.pVzKIW_messageBody .pVzKIW_messageMarkdown strong{font-weight:600}.pVzKIW_messageBody .pVzKIW_messageMarkdown :where(h1,h2,h3,h4,h5,h6){margin:12px 0 4px}.pVzKIW_messageBody .pVzKIW_messageMarkdown :where(h1){font-size:17px;line-height:26px}.pVzKIW_messageBody .pVzKIW_messageMarkdown :where(h2){font-size:16px;line-height:24px}.pVzKIW_messageBody .pVzKIW_messageMarkdown :where(h3,h4,h5,h6){font-size:15px;line-height:22px}.pVzKIW_messageBody .pVzKIW_messageMarkdown pre{margin:8px 0;padding:10px 12px;font-size:13px}.pVzKIW_messageBody .pVzKIW_messageMarkdown blockquote{margin:6px 0}.pVzKIW_messageBody .pVzKIW_messageMarkdown :where(th,td){padding-block:5px}.pVzKIW_emptyState,.pVzKIW_loadingState{color:var(--dsw-alias-label-tertiary);margin:0;padding:14px 0;font-size:13px;line-height:20px}.pVzKIW_emptyState{gap:3px;display:grid}.pVzKIW_emptyState strong{color:var(--dsw-alias-label-secondary);font-weight:500}.pVzKIW_emptyState span{font-size:12px}.pVzKIW_loadingState{align-items:center;gap:8px;display:flex}.pVzKIW_loadingMark{background:var(--dsw-alias-bg-skeleton);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pVzKIW_pulse}.pVzKIW_error,.pVzKIW_errorState{color:var(--dsw-alias-state-error-primary);max-width:880px;margin:0 auto;padding-top:6px;font-size:12px;line-height:18px}.pVzKIW_errorState{justify-content:space-between;align-items:center;gap:8px;display:flex}.pVzKIW_welcomeSurface{justify-content:center;align-items:center;min-width:0;height:100%;padding:32px;display:flex}.pVzKIW_welcome{text-align:center;max-width:420px}.pVzKIW_welcomeEyebrow{color:var(--dsw-alias-label-tertiary);text-transform:uppercase;font-size:12px;line-height:18px}.pVzKIW_welcome h1{color:var(--dsw-alias-label-primary);margin:8px 0;font-size:24px;font-weight:600;line-height:32px}.pVzKIW_welcome p{color:var(--dsw-alias-label-secondary);margin:0;font-size:13px;line-height:20px}@keyframes pVzKIW_pulse{0%,to{opacity:.35}50%{opacity:1}}@media (width<=600px){.pVzKIW_surfaceHeader{padding:12px 12px 10px}.pVzKIW_headerRow{flex-direction:column;align-items:stretch;gap:8px}.pVzKIW_headerActions{flex-wrap:wrap}.pVzKIW_backRow{margin-bottom:6px}.pVzKIW_timeline{scrollbar-gutter:auto;padding:8px 12px 16px}.pVzKIW_messageRow{padding:8px 0}}@media (prefers-reduced-motion:reduce){.pVzKIW_loadingMark{animation:none}}.pVzKIW_messageRun{margin:2px 0;padding:3px 0}.pVzKIW_messageRow[data-grouped]:has(.pVzKIW_messageBody>button:not([data-message-expand])){margin-top:3px;padding-top:7px;position:relative}.pVzKIW_messageRow[data-grouped]:has(.pVzKIW_messageBody>button:not([data-message-expand])):before{background:var(--dsw-alias-border-l2);content:\"\";height:1px;position:absolute;inset:0 0 auto 38px}.pVzKIW_runDivider{border-top:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);margin:2px 0 0 38px;padding:5px 0 0;font-size:11px;line-height:16px}.pVzKIW_runDivider+.pVzKIW_messageRow[data-grouped]:has(.pVzKIW_messageBody>button:not([data-message-expand])){margin-top:0}.pVzKIW_runDivider+.pVzKIW_messageRow[data-grouped]:has(.pVzKIW_messageBody>button:not([data-message-expand])):before{content:none}.pVzKIW_mention{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 12%, transparent);color:var(--dsw-alias-state-business-primary);border-radius:5px;padding:0 4px;font-weight:500;box-shadow:0 1px 2px #00000014}.pVzKIW_mentionsRow{gap:4px;width:fit-content;margin-top:3px;font-size:.85em;display:flex}.pVzKIW_attachmentStrip{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.pVzKIW_attachmentThumb{cursor:zoom-in;border:0;border-radius:8px;padding:0}.pVzKIW_attachmentThumb img{object-fit:cover;border-radius:8px;width:128px;height:96px;display:block}.pVzKIW_attachmentThumb:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary,currentColor);outline-offset:1px}.pVzKIW_confirmBody{margin:0 0 8px}.pVzKIW_confirmList{gap:6px;margin:0;padding-left:18px;display:grid}.pVzKIW_refLink{color:var(--dsw-alias-state-business-primary);cursor:pointer;font:inherit;text-align:left;text-underline-offset:3px;background:0 0;border:none;border-radius:4px;padding:0;text-decoration:underline}.pVzKIW_refLink:hover{text-decoration-thickness:2px}.pVzKIW_refLink:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}.pVzKIW_attachmentModal{width:min(1100px,92vw)}.pVzKIW_attachmentZoom{object-fit:contain;border-radius:12px;max-width:100%;max-height:78vh;margin:0 auto;display:block}.pVzKIW_attachmentChip{background:var(--dsw-alias-interactive-bg-hover);border-radius:6px;align-items:baseline;gap:6px;max-width:100%;padding:3px 8px;display:inline-flex}.pVzKIW_attachmentChipName{text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:17px;overflow:hidden}.pVzKIW_attachmentChipSize{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11px;line-height:17px}";
7505
7557
  const tagId$4 = "@wowyuarm/dsh-agent-team/conversation.module.css";
7506
7558
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$4) + "]") === null) {
7507
7559
  const tag = document.createElement("style");
@@ -7511,48 +7563,48 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7511
7563
  document.head.appendChild(tag);
7512
7564
  }
7513
7565
  var conversation_module_css_default = {
7514
- "attachmentChip": "omcBaG_attachmentChip",
7515
- "attachmentChipName": "omcBaG_attachmentChipName",
7516
- "attachmentChipSize": "omcBaG_attachmentChipSize",
7517
- "attachmentModal": "omcBaG_attachmentModal",
7518
- "attachmentStrip": "omcBaG_attachmentStrip",
7519
- "attachmentThumb": "omcBaG_attachmentThumb",
7520
- "attachmentZoom": "omcBaG_attachmentZoom",
7521
- "backRow": "omcBaG_backRow",
7522
- "confirmBody": "omcBaG_confirmBody",
7523
- "confirmList": "omcBaG_confirmList",
7524
- "emptyState": "omcBaG_emptyState",
7525
- "emptySurface": "omcBaG_emptySurface",
7526
- "error": "omcBaG_error",
7527
- "errorState": "omcBaG_errorState",
7528
- "headerActions": "omcBaG_headerActions",
7529
- "headerCopy": "omcBaG_headerCopy",
7530
- "headerRow": "omcBaG_headerRow",
7531
- "loadingMark": "omcBaG_loadingMark",
7532
- "loadingState": "omcBaG_loadingState",
7533
- "mention": "omcBaG_mention",
7534
- "mentionsRow": "omcBaG_mentionsRow",
7535
- "messageBody": "omcBaG_messageBody",
7536
- "messageClamp": "omcBaG_messageClamp",
7537
- "messageExpand": "omcBaG_messageExpand",
7538
- "messageIdentity": "omcBaG_messageIdentity",
7539
- "messageMarkdown": "omcBaG_messageMarkdown",
7540
- "messageRow": "omcBaG_messageRow",
7541
- "messageRun": "omcBaG_messageRun",
7542
- "messageText": "omcBaG_messageText",
7543
- "messageTime": "omcBaG_messageTime",
7544
- "nameRow": "omcBaG_nameRow",
7545
- "pulse": "omcBaG_pulse",
7546
- "refLink": "omcBaG_refLink",
7547
- "runDivider": "omcBaG_runDivider",
7548
- "surface": "omcBaG_surface",
7549
- "surfaceHeader": "omcBaG_surfaceHeader",
7550
- "timeline": "omcBaG_timeline",
7551
- "timelineAction": "omcBaG_timelineAction",
7552
- "timelineContent": "omcBaG_timelineContent",
7553
- "welcome": "omcBaG_welcome",
7554
- "welcomeEyebrow": "omcBaG_welcomeEyebrow",
7555
- "welcomeSurface": "omcBaG_welcomeSurface"
7566
+ "attachmentChip": "pVzKIW_attachmentChip",
7567
+ "attachmentChipName": "pVzKIW_attachmentChipName",
7568
+ "attachmentChipSize": "pVzKIW_attachmentChipSize",
7569
+ "attachmentModal": "pVzKIW_attachmentModal",
7570
+ "attachmentStrip": "pVzKIW_attachmentStrip",
7571
+ "attachmentThumb": "pVzKIW_attachmentThumb",
7572
+ "attachmentZoom": "pVzKIW_attachmentZoom",
7573
+ "backRow": "pVzKIW_backRow",
7574
+ "confirmBody": "pVzKIW_confirmBody",
7575
+ "confirmList": "pVzKIW_confirmList",
7576
+ "emptyState": "pVzKIW_emptyState",
7577
+ "emptySurface": "pVzKIW_emptySurface",
7578
+ "error": "pVzKIW_error",
7579
+ "errorState": "pVzKIW_errorState",
7580
+ "headerActions": "pVzKIW_headerActions",
7581
+ "headerCopy": "pVzKIW_headerCopy",
7582
+ "headerRow": "pVzKIW_headerRow",
7583
+ "loadingMark": "pVzKIW_loadingMark",
7584
+ "loadingState": "pVzKIW_loadingState",
7585
+ "mention": "pVzKIW_mention",
7586
+ "mentionsRow": "pVzKIW_mentionsRow",
7587
+ "messageBody": "pVzKIW_messageBody",
7588
+ "messageClamp": "pVzKIW_messageClamp",
7589
+ "messageExpand": "pVzKIW_messageExpand",
7590
+ "messageIdentity": "pVzKIW_messageIdentity",
7591
+ "messageMarkdown": "pVzKIW_messageMarkdown",
7592
+ "messageRow": "pVzKIW_messageRow",
7593
+ "messageRun": "pVzKIW_messageRun",
7594
+ "messageText": "pVzKIW_messageText",
7595
+ "messageTime": "pVzKIW_messageTime",
7596
+ "nameRow": "pVzKIW_nameRow",
7597
+ "pulse": "pVzKIW_pulse",
7598
+ "refLink": "pVzKIW_refLink",
7599
+ "runDivider": "pVzKIW_runDivider",
7600
+ "surface": "pVzKIW_surface",
7601
+ "surfaceHeader": "pVzKIW_surfaceHeader",
7602
+ "timeline": "pVzKIW_timeline",
7603
+ "timelineAction": "pVzKIW_timelineAction",
7604
+ "timelineContent": "pVzKIW_timelineContent",
7605
+ "welcome": "pVzKIW_welcome",
7606
+ "welcomeEyebrow": "pVzKIW_welcomeEyebrow",
7607
+ "welcomeSurface": "pVzKIW_welcomeSurface"
7556
7608
  };
7557
7609
  //#endregion
7558
7610
  //#region src/client/TeamMessage.tsx
@@ -7809,6 +7861,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7809
7861
  return splitBrandedRefs(text).map((segment, index) => {
7810
7862
  if (segment.ref === void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: segment.text }, index);
7811
7863
  const resolved = cachedResolvedTaskRef(segment.ref);
7864
+ if (segment.ref.startsWith("task:") && resolved === void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react.Fragment, { children: segment.text }, index);
7812
7865
  const label = resolved !== void 0 && segment.ref.startsWith("task:") ? taskLabel(resolved.taskNumber) : refLabel(segment.ref);
7813
7866
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
7814
7867
  type: "button",
@@ -8070,8 +8123,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8070
8123
  return blocks;
8071
8124
  }
8072
8125
  //#endregion
8073
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/channel.module.css.mjs
8074
- const css$3 = ".MYaRJa_headerMeta{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px;font-size:12px;line-height:18px;display:flex}.MYaRJa_headerMeta span+span:before{content:\"·\";margin-right:6px}.MYaRJa_taskFooter{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:999px;align-items:center;gap:6px;max-width:100%;margin:6px 0 0;padding:2px 10px;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.MYaRJa_taskFooter:hover,.MYaRJa_taskFooter:focus-visible{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l3);color:var(--dsw-alias-label-primary)}.MYaRJa_taskFooter:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.MYaRJa_taskNumber{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:600;line-height:18px}.MYaRJa_taskStatus,.MYaRJa_taskCount{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:18px}.MYaRJa_taskDot{flex:none;align-items:center;width:8px;display:inline-flex}.MYaRJa_taskDotQuiet{border-radius:50%;flex:none;width:8px;height:8px;position:relative}.MYaRJa_taskDotQuiet[data-variant=todo]{border:1px solid var(--dsw-alias-label-tertiary)}.MYaRJa_taskDotQuiet[data-variant=closed]{color:var(--dsw-alias-label-tertiary)}.MYaRJa_taskDotQuiet[data-variant=closed]:before{content:\"\";opacity:.1;background:currentColor;border-radius:50%;position:absolute;inset:0}.MYaRJa_taskDotQuiet[data-variant=closed]:after{content:\"\";background:currentColor;border-radius:50%;position:absolute;inset:20%}.MYaRJa_taskArrow{color:var(--dsw-alias-label-tertiary);align-items:center;transition:transform .12s;display:inline-flex}.MYaRJa_taskFooter:hover .MYaRJa_taskArrow,.MYaRJa_taskFooter:focus-visible .MYaRJa_taskArrow{transform:translate(2px)}.MYaRJa_memberList{gap:3px;display:grid}.MYaRJa_memberRow{border-radius:6px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:0 8px;min-height:40px;padding:4px 6px;display:grid}.MYaRJa_memberRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.MYaRJa_memberCopy{min-width:0;display:grid}.MYaRJa_memberCopy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:18px;overflow:hidden}.MYaRJa_memberCopy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:14px;overflow:hidden}.MYaRJa_memberAction{min-width:60px}.MYaRJa_memberError{color:var(--dsw-alias-state-error-primary);grid-column:2/-1;margin:2px 0;font-size:11px;line-height:16px}.MYaRJa_modalBody{max-height:min(65vh,520px);overflow-y:auto}@media (width<=600px){.MYaRJa_memberRow{grid-template-columns:14px minmax(0,1fr)}.MYaRJa_memberAction{grid-column:2;justify-self:start;margin-top:3px}}@media (prefers-reduced-motion:reduce){.MYaRJa_taskFooter,.MYaRJa_taskArrow{transition:none}.MYaRJa_taskFooter:hover .MYaRJa_taskArrow,.MYaRJa_taskFooter:focus-visible .MYaRJa_taskArrow{transform:none}}";
8126
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/channel.module.css.mjs
8127
+ const css$3 = ".rVidsG_headerMeta{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;gap:6px;margin-top:7px;font-size:12px;line-height:18px;display:flex}.rVidsG_headerMeta span+span:before{content:\"·\";margin-right:6px}.rVidsG_taskFooter{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:999px;align-items:center;gap:6px;max-width:100%;margin:6px 0 0;padding:2px 10px;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.rVidsG_taskFooter:hover,.rVidsG_taskFooter:focus-visible{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l3);color:var(--dsw-alias-label-primary)}.rVidsG_taskFooter:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.rVidsG_taskNumber{color:var(--dsw-alias-label-primary);font-size:12px;font-weight:600;line-height:18px}.rVidsG_taskStatus,.rVidsG_taskCount{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:18px}.rVidsG_taskDot{flex:none;align-items:center;width:8px;display:inline-flex}.rVidsG_taskArrow{color:var(--dsw-alias-label-tertiary);align-items:center;transition:transform .12s;display:inline-flex}.rVidsG_taskFooter:hover .rVidsG_taskArrow,.rVidsG_taskFooter:focus-visible .rVidsG_taskArrow{transform:translate(2px)}.rVidsG_memberList{gap:3px;display:grid}.rVidsG_memberRow{border-radius:6px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:0 8px;min-height:40px;padding:4px 6px;display:grid}.rVidsG_memberRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.rVidsG_memberCopy{min-width:0;display:grid}.rVidsG_memberCopy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:18px;overflow:hidden}.rVidsG_memberCopy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:14px;overflow:hidden}.rVidsG_memberAction{min-width:60px}.rVidsG_memberError{color:var(--dsw-alias-state-error-primary);grid-column:2/-1;margin:2px 0;font-size:11px;line-height:16px}.rVidsG_modalBody{max-height:min(65vh,520px);overflow-y:auto}@media (width<=600px){.rVidsG_memberRow{grid-template-columns:14px minmax(0,1fr)}.rVidsG_memberAction{grid-column:2;justify-self:start;margin-top:3px}}@media (prefers-reduced-motion:reduce){.rVidsG_taskFooter,.rVidsG_taskArrow{transition:none}.rVidsG_taskFooter:hover .rVidsG_taskArrow,.rVidsG_taskFooter:focus-visible .rVidsG_taskArrow{transform:none}}";
8075
8128
  const tagId$3 = "@wowyuarm/dsh-agent-team/channel.module.css";
8076
8129
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]") === null) {
8077
8130
  const tag = document.createElement("style");
@@ -8081,24 +8134,23 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8081
8134
  document.head.appendChild(tag);
8082
8135
  }
8083
8136
  var channel_module_css_default = {
8084
- "headerMeta": "MYaRJa_headerMeta",
8085
- "memberAction": "MYaRJa_memberAction",
8086
- "memberCopy": "MYaRJa_memberCopy",
8087
- "memberError": "MYaRJa_memberError",
8088
- "memberList": "MYaRJa_memberList",
8089
- "memberRow": "MYaRJa_memberRow",
8090
- "modalBody": "MYaRJa_modalBody",
8091
- "taskArrow": "MYaRJa_taskArrow",
8092
- "taskCount": "MYaRJa_taskCount",
8093
- "taskDot": "MYaRJa_taskDot",
8094
- "taskDotQuiet": "MYaRJa_taskDotQuiet",
8095
- "taskFooter": "MYaRJa_taskFooter",
8096
- "taskNumber": "MYaRJa_taskNumber",
8097
- "taskStatus": "MYaRJa_taskStatus"
8137
+ "headerMeta": "rVidsG_headerMeta",
8138
+ "memberAction": "rVidsG_memberAction",
8139
+ "memberCopy": "rVidsG_memberCopy",
8140
+ "memberError": "rVidsG_memberError",
8141
+ "memberList": "rVidsG_memberList",
8142
+ "memberRow": "rVidsG_memberRow",
8143
+ "modalBody": "rVidsG_modalBody",
8144
+ "taskArrow": "rVidsG_taskArrow",
8145
+ "taskCount": "rVidsG_taskCount",
8146
+ "taskDot": "rVidsG_taskDot",
8147
+ "taskFooter": "rVidsG_taskFooter",
8148
+ "taskNumber": "rVidsG_taskNumber",
8149
+ "taskStatus": "rVidsG_taskStatus"
8098
8150
  };
8099
8151
  //#endregion
8100
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/thread.module.css.mjs
8101
- const css$2 = ".-Qiwua_titleLine{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.-Qiwua_titleLine h1{margin:0}.-Qiwua_workSection{border-top:1px solid var(--dsw-alias-border-l2);max-width:880px;margin:12px auto 0;padding-top:8px}.-Qiwua_riskSection{border-top:1px solid var(--dsw-alias-border-l2);max-width:880px;margin:12px auto 0;padding-top:10px}.-Qiwua_riskSection h2{color:var(--dsw-alias-state-error-primary);margin:0 0 5px;font-size:12px;font-weight:600;line-height:18px}.-Qiwua_riskRow{color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;margin:3px 0;font-size:12px;line-height:18px;display:flex}.-Qiwua_claimList{gap:4px;padding:4px 0 2px 22px;display:grid}.-Qiwua_claimRow{border-radius:6px;grid-template-columns:14px minmax(96px,auto) minmax(0,1fr) auto auto;align-items:center;gap:4px 8px;min-height:36px;padding:4px 6px;display:grid}.-Qiwua_claimRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.-Qiwua_claimOwner{color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;line-height:18px;overflow:hidden}.-Qiwua_claimDirection{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;min-width:0;font-size:12px;line-height:18px}.-Qiwua_claimState{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11px;line-height:18px}.-Qiwua_emptyClaims{color:var(--dsw-alias-label-tertiary);margin:0;padding:5px 6px;font-size:11px;line-height:18px}.-Qiwua_activityRow{color:var(--dsw-alias-label-tertiary);text-align:center;justify-content:center;align-items:center;gap:8px;max-width:100%;margin:4px auto;padding:5px 12px;font-size:11px;line-height:18px;display:flex}.-Qiwua_activityText{overflow-wrap:anywhere;min-width:0}.-Qiwua_activityMark{background:var(--dsw-alias-border-l3);border-radius:50%;flex:0 0 5px;width:5px;height:5px}.-Qiwua_activityRow:has(+.-Qiwua_activityRow),.-Qiwua_activityRow+.-Qiwua_activityRow{text-align:left;justify-content:flex-start;padding-left:38px}.-Qiwua_historySection{border-bottom:1px solid var(--dsw-alias-border-l2);max-width:100%;margin:0 auto 12px;padding-bottom:10px}.-Qiwua_historySection h2{color:var(--dsw-alias-label-tertiary);letter-spacing:.02em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:600;line-height:16px}.-Qiwua_publicSection{min-width:0}.-Qiwua_unreadBoundary{color:var(--dsw-alias-label-tertiary);align-items:center;gap:10px;margin:10px 0 6px;font-size:11px;line-height:16px;display:flex}.-Qiwua_unreadBoundary:before,.-Qiwua_unreadBoundary:after{background:var(--dsw-alias-border-l3);content:\"\";flex:1;height:1px}.-Qiwua_unreadBoundary span{flex:none}.-Qiwua_daySeparator{color:var(--dsw-alias-label-tertiary);letter-spacing:.02em;align-items:center;gap:10px;margin:12px 0 4px;font-size:11px;line-height:16px;display:flex}.-Qiwua_daySeparator:before,.-Qiwua_daySeparator:after{background:var(--dsw-alias-border-l2);content:\"\";flex:1;height:1px}.-Qiwua_daySeparator span{flex:none}.-Qiwua_newUpdates{background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));border:1px solid var(--dsw-alias-border-l2-darkmode-thin);box-shadow:var(--dsw-shadow-lv2);z-index:2;border-radius:999px;justify-content:center;align-items:center;width:fit-content;margin:8px auto;padding:4px 12px;font-size:12px;line-height:18px;display:flex;position:sticky;bottom:8px}.-Qiwua_newUpdatesJump{color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;line-height:inherit;background:0 0;border:0;padding:0}.-Qiwua_newUpdatesJump:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px;border-radius:6px}.-Qiwua_taskTitle{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:2px 0 0;font-size:13px;line-height:20px;display:-webkit-box;overflow:hidden}.-Qiwua_closedBar{flex-direction:column;align-items:center;display:flex}.-Qiwua_closedNotice{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 16px 14px;font-size:13px;line-height:20px;display:flex}@media (width<=600px){.-Qiwua_claimRow{grid-template-columns:14px minmax(0,1fr) auto;align-items:start}.-Qiwua_claimState{grid-area:1/3;justify-self:end}.-Qiwua_claimDirection{grid-column:2/-1}.-Qiwua_activityRow{padding-inline:0}.-Qiwua_newUpdates{max-width:calc(100% - 16px)}}";
8152
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/thread.module.css.mjs
8153
+ const css$2 = ".QyE3bW_titleLine{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.QyE3bW_titleLine h1{margin:0}.QyE3bW_workSection{border-top:1px solid var(--dsw-alias-border-l2);max-width:880px;margin:12px auto 0;padding-top:8px}.QyE3bW_riskSection{border-top:1px solid var(--dsw-alias-border-l2);max-width:880px;margin:12px auto 0;padding-top:10px}.QyE3bW_riskSection h2{color:var(--dsw-alias-state-error-primary);margin:0 0 5px;font-size:12px;font-weight:600;line-height:18px}.QyE3bW_riskRow{color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;margin:3px 0;font-size:12px;line-height:18px;display:flex}.QyE3bW_claimList{gap:4px;padding:4px 0 2px 22px;display:grid}.QyE3bW_claimRow{border-radius:6px;grid-template-columns:14px minmax(96px,auto) minmax(0,1fr) auto auto;align-items:center;gap:4px 8px;min-height:36px;padding:4px 6px;display:grid}.QyE3bW_claimRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.QyE3bW_claimOwner{color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:500;line-height:18px;overflow:hidden}.QyE3bW_claimDirection{color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;min-width:0;font-size:12px;line-height:18px}.QyE3bW_claimState{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:11px;line-height:18px}.QyE3bW_emptyClaims{color:var(--dsw-alias-label-tertiary);margin:0;padding:5px 6px;font-size:11px;line-height:18px}.QyE3bW_activityRow{color:var(--dsw-alias-label-tertiary);text-align:center;justify-content:center;align-items:center;gap:8px;max-width:100%;margin:4px auto;padding:5px 12px;font-size:11px;line-height:18px;display:flex}.QyE3bW_activityText{overflow-wrap:anywhere;min-width:0}.QyE3bW_activityMark{background:var(--dsw-alias-border-l3);border-radius:50%;flex:0 0 5px;width:5px;height:5px}.QyE3bW_activityRow:has(+.QyE3bW_activityRow),.QyE3bW_activityRow+.QyE3bW_activityRow{text-align:left;justify-content:flex-start;padding-left:38px}.QyE3bW_historySection{border-bottom:1px solid var(--dsw-alias-border-l2);max-width:100%;margin:0 auto 12px;padding-bottom:10px}.QyE3bW_historySection h2{color:var(--dsw-alias-label-tertiary);letter-spacing:.02em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:600;line-height:16px}.QyE3bW_publicSection{min-width:0}.QyE3bW_unreadBoundary{color:var(--dsw-alias-label-tertiary);align-items:center;gap:10px;margin:10px 0 6px;font-size:11px;line-height:16px;display:flex}.QyE3bW_unreadBoundary:before,.QyE3bW_unreadBoundary:after{background:var(--dsw-alias-border-l3);content:\"\";flex:1;height:1px}.QyE3bW_unreadBoundary span{flex:none}.QyE3bW_daySeparator{color:var(--dsw-alias-label-tertiary);letter-spacing:.02em;align-items:center;gap:10px;margin:12px 0 4px;font-size:11px;line-height:16px;display:flex}.QyE3bW_daySeparator:before,.QyE3bW_daySeparator:after{background:var(--dsw-alias-border-l2);content:\"\";flex:1;height:1px}.QyE3bW_daySeparator span{flex:none}.QyE3bW_newUpdates{background:var(--dsw-specific-input-major,var(--dsw-alias-bg-layer-1));border:1px solid var(--dsw-alias-border-l2-darkmode-thin);box-shadow:var(--dsw-shadow-lv2);z-index:2;border-radius:999px;justify-content:center;align-items:center;width:fit-content;margin:8px auto;padding:4px 12px;font-size:12px;line-height:18px;display:flex;position:sticky;bottom:8px}.QyE3bW_newUpdatesJump{color:var(--dsw-alias-label-secondary);cursor:pointer;font:inherit;line-height:inherit;background:0 0;border:0;padding:0}.QyE3bW_newUpdatesJump:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px;border-radius:6px}.QyE3bW_taskTitle{color:var(--dsw-alias-label-secondary);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:2px 0 0;font-size:13px;line-height:20px;display:-webkit-box;overflow:hidden}.QyE3bW_closedBar{flex-direction:column;align-items:center;display:flex}.QyE3bW_closedNotice{color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:10px 16px 14px;font-size:13px;line-height:20px;display:flex}@media (width<=600px){.QyE3bW_claimRow{grid-template-columns:14px minmax(0,1fr) auto;align-items:start}.QyE3bW_claimState{grid-area:1/3;justify-self:end}.QyE3bW_claimDirection{grid-column:2/-1}.QyE3bW_activityRow{padding-inline:0}.QyE3bW_newUpdates{max-width:calc(100% - 16px)}}";
8102
8154
  const tagId$2 = "@wowyuarm/dsh-agent-team/thread.module.css";
8103
8155
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$2) + "]") === null) {
8104
8156
  const tag = document.createElement("style");
@@ -8108,28 +8160,28 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8108
8160
  document.head.appendChild(tag);
8109
8161
  }
8110
8162
  var thread_module_css_default = {
8111
- "activityMark": "-Qiwua_activityMark",
8112
- "activityRow": "-Qiwua_activityRow",
8113
- "activityText": "-Qiwua_activityText",
8114
- "claimDirection": "-Qiwua_claimDirection",
8115
- "claimList": "-Qiwua_claimList",
8116
- "claimOwner": "-Qiwua_claimOwner",
8117
- "claimRow": "-Qiwua_claimRow",
8118
- "claimState": "-Qiwua_claimState",
8119
- "closedBar": "-Qiwua_closedBar",
8120
- "closedNotice": "-Qiwua_closedNotice",
8121
- "daySeparator": "-Qiwua_daySeparator",
8122
- "emptyClaims": "-Qiwua_emptyClaims",
8123
- "historySection": "-Qiwua_historySection",
8124
- "newUpdates": "-Qiwua_newUpdates",
8125
- "newUpdatesJump": "-Qiwua_newUpdatesJump",
8126
- "publicSection": "-Qiwua_publicSection",
8127
- "riskRow": "-Qiwua_riskRow",
8128
- "riskSection": "-Qiwua_riskSection",
8129
- "taskTitle": "-Qiwua_taskTitle",
8130
- "titleLine": "-Qiwua_titleLine",
8131
- "unreadBoundary": "-Qiwua_unreadBoundary",
8132
- "workSection": "-Qiwua_workSection"
8163
+ "activityMark": "QyE3bW_activityMark",
8164
+ "activityRow": "QyE3bW_activityRow",
8165
+ "activityText": "QyE3bW_activityText",
8166
+ "claimDirection": "QyE3bW_claimDirection",
8167
+ "claimList": "QyE3bW_claimList",
8168
+ "claimOwner": "QyE3bW_claimOwner",
8169
+ "claimRow": "QyE3bW_claimRow",
8170
+ "claimState": "QyE3bW_claimState",
8171
+ "closedBar": "QyE3bW_closedBar",
8172
+ "closedNotice": "QyE3bW_closedNotice",
8173
+ "daySeparator": "QyE3bW_daySeparator",
8174
+ "emptyClaims": "QyE3bW_emptyClaims",
8175
+ "historySection": "QyE3bW_historySection",
8176
+ "newUpdates": "QyE3bW_newUpdates",
8177
+ "newUpdatesJump": "QyE3bW_newUpdatesJump",
8178
+ "publicSection": "QyE3bW_publicSection",
8179
+ "riskRow": "QyE3bW_riskRow",
8180
+ "riskSection": "QyE3bW_riskSection",
8181
+ "taskTitle": "QyE3bW_taskTitle",
8182
+ "titleLine": "QyE3bW_titleLine",
8183
+ "unreadBoundary": "QyE3bW_unreadBoundary",
8184
+ "workSection": "QyE3bW_workSection"
8133
8185
  };
8134
8186
  //#endregion
8135
8187
  //#region src/client/TeamChannelPage.tsx
@@ -8563,16 +8615,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8563
8615
  children: [
8564
8616
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8565
8617
  className: channel_module_css_default.taskDot,
8566
- children: (() => {
8567
- const dot = taskStatusDot(item.task.status);
8568
- return dot === "ongoing" || dot === "warning" || dot === "done" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
8569
- size: 8,
8570
- state: dot
8571
- }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8572
- className: channel_module_css_default.taskDotQuiet,
8573
- "data-variant": dot
8574
- });
8575
- })()
8618
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamStateDot, {
8619
+ size: 8,
8620
+ state: taskStatusDot(item.task.status)
8621
+ })
8576
8622
  }),
8577
8623
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
8578
8624
  className: channel_module_css_default.taskNumber,
@@ -8673,7 +8719,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8673
8719
  return new Map(facts.map((fact) => [factKey(fact.fact), fact]));
8674
8720
  }
8675
8721
  function TeamThreadPage(props) {
8676
- const { workspaceId, channelRef, taskRef, threadRef, taskNumber, backToWorkspace, selectChannel, selectThread, resolveTaskRefs, putAttachment, loadChannels, readThread, loadThreadHistory, subscribeChanges, loadMembers, drafts, getAttachment, reply, changeTask, promoteThread, t } = props;
8722
+ const { workspaceId, channelRef, taskRef, threadRef, taskNumber, backToWorkspace, selectChannel, selectThread, resolveTaskRefs, putAttachment, loadChannels, readThread, loadThreadHistory, threadObservations, subscribeChanges, loadMembers, drafts, getAttachment, reply, changeTask, promoteThread, t } = props;
8677
8723
  const threadRequest = {
8678
8724
  threadRef,
8679
8725
  ...taskRef === void 0 ? {} : { taskRef }
@@ -8681,6 +8727,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8681
8727
  const [projection, setProjection] = (0, react.useState)();
8682
8728
  const [channelView, setChannelView] = (0, react.useState)();
8683
8729
  const [members, setMembers] = (0, react.useState)([]);
8730
+ const [followerIds, setFollowerIds] = (0, react.useState)(() => /* @__PURE__ */ new Set());
8684
8731
  const [currentFacts, setCurrentFacts] = (0, react.useState)([]);
8685
8732
  const [olderFacts, setOlderFacts] = (0, react.useState)([]);
8686
8733
  const [readFacts, setReadFacts] = (0, react.useState)([]);
@@ -8809,10 +8856,17 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8809
8856
  });
8810
8857
  if (additions.length === 0) return;
8811
8858
  if (!timeline.isPinned()) setNewFactsCount((current) => current + additions.length);
8812
- const priorSequence = sequenceRef.current;
8813
- if (await readCurrent(true)) return;
8814
- if (!mountedRef.current || sequenceRef.current !== priorSequence + 1) return;
8815
- setNewFactsCount((current) => current + additions.length);
8859
+ await readCurrent(true);
8860
+ } catch {}
8861
+ };
8862
+ const refreshFollowers = async () => {
8863
+ try {
8864
+ const result = await threadObservations({
8865
+ workspaceId,
8866
+ ...threadRequest
8867
+ });
8868
+ if (!mountedRef.current || !result.ok) return;
8869
+ setFollowerIds(new Set(result.value.followers));
8816
8870
  } catch {}
8817
8871
  };
8818
8872
  (0, react.useEffect)(() => {
@@ -8821,6 +8875,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8821
8875
  setProjection(void 0);
8822
8876
  setChannelView(void 0);
8823
8877
  setMembers([]);
8878
+ setFollowerIds(/* @__PURE__ */ new Set());
8824
8879
  setCurrentFacts([]);
8825
8880
  currentFactsRef.current = [];
8826
8881
  setOlderFacts([]);
@@ -8835,15 +8890,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8835
8890
  sequenceRef.current = sequence;
8836
8891
  setLoading(true);
8837
8892
  (async () => {
8838
- const [read, history] = await Promise.all([readThread({
8839
- requestId: readRequestIdRef.current,
8840
- workspaceId,
8841
- ...threadRequest
8842
- }), loadThreadHistory({
8843
- workspaceId,
8844
- ...threadRequest,
8845
- limit: 20
8846
- }).catch(() => void 0)]);
8893
+ const [read, history, observations] = await Promise.all([
8894
+ readThread({
8895
+ requestId: readRequestIdRef.current,
8896
+ workspaceId,
8897
+ ...threadRequest
8898
+ }),
8899
+ loadThreadHistory({
8900
+ workspaceId,
8901
+ ...threadRequest,
8902
+ limit: 20
8903
+ }).catch(() => void 0),
8904
+ threadObservations({
8905
+ workspaceId,
8906
+ ...threadRequest
8907
+ }).catch(() => void 0)
8908
+ ]);
8847
8909
  if (!mountedRef.current || sequence !== sequenceRef.current) return;
8848
8910
  if (!read.ok) {
8849
8911
  setError(read.error.message);
@@ -8861,6 +8923,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8861
8923
  setHistoryCursor(history.value.cursor);
8862
8924
  setHistoryHasMore(history.value.hasMore);
8863
8925
  }
8926
+ if (observations !== void 0 && observations.ok) setFollowerIds(new Set(observations.value.followers));
8864
8927
  setError(void 0);
8865
8928
  setLoading(false);
8866
8929
  await drainUnread();
@@ -8876,6 +8939,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8876
8939
  return;
8877
8940
  }
8878
8941
  refreshPassiveFacts();
8942
+ refreshFollowers();
8879
8943
  }), subscribeChanges({
8880
8944
  kind: "workspace",
8881
8945
  workspaceId
@@ -8905,6 +8969,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8905
8969
  olderFacts,
8906
8970
  timeline
8907
8971
  ]);
8972
+ const handleTimelineScroll = () => {
8973
+ timeline.onScroll();
8974
+ if (timeline.isPinned()) setNewFactsCount(0);
8975
+ };
8908
8976
  const loadOlder = async () => {
8909
8977
  if (historyHasMore === false && historyCursor === void 0) return;
8910
8978
  const beforeSequence = historyCursor ?? minSequence(currentFactsRef.current);
@@ -9297,7 +9365,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9297
9365
  className: conversation_module_css_default.headerCopy,
9298
9366
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
9299
9367
  className: thread_module_css_default.titleLine,
9300
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", { children: task === void 0 ? t("threadLabel") : t("taskLabel", { number: resolvedTaskNumber ?? "…" }) }), task !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Pill, { children: formatTaskStatus(task.status, t) })]
9368
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h1", { children: task === void 0 ? t("threadLabel") : t("taskLabel", { number: resolvedTaskNumber ?? "…" }) }), task !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_deepseek_ai_dsh_client_ui_primitives.Pill, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamStateDot, {
9369
+ size: 8,
9370
+ state: taskStatusDot(task.status)
9371
+ }), formatTaskStatus(task.status, t)] })]
9301
9372
  }), taskTitle !== void 0 && taskTitle !== "" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
9302
9373
  className: thread_module_css_default.taskTitle,
9303
9374
  title: taskTitle,
@@ -9455,7 +9526,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9455
9526
  }),
9456
9527
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("section", {
9457
9528
  ref: timeline.ref,
9458
- onScroll: timeline.onScroll,
9529
+ onScroll: handleTimelineScroll,
9459
9530
  className: conversation_module_css_default.timeline,
9460
9531
  "aria-label": t("timelineLabel"),
9461
9532
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
@@ -9521,7 +9592,10 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9521
9592
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
9522
9593
  type: "button",
9523
9594
  className: thread_module_css_default.newUpdatesJump,
9524
- onClick: timeline.scrollToBottom,
9595
+ onClick: () => {
9596
+ setNewFactsCount(0);
9597
+ timeline.scrollToBottom();
9598
+ },
9525
9599
  children: t("newUpdatesJump", { count: newFactsCount })
9526
9600
  })
9527
9601
  })
@@ -9549,6 +9623,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9549
9623
  })]
9550
9624
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamComposer, {
9551
9625
  members: channelMembers,
9626
+ followerMemberIds: followerIds,
9552
9627
  recipients,
9553
9628
  draft,
9554
9629
  pending,
@@ -9579,7 +9654,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9579
9654
  }
9580
9655
  //#endregion
9581
9656
  //#region src/client/TeamConversation.tsx
9582
- function TeamConversation({ t, useWorkspaces, navigation, drafts, putAttachment, getAttachment, loadChannels, readThread, loadThreadHistory, subscribeChanges, loadMembers, sendMessage, joinChannel, removeChannelMember, reply, changeTask, promoteThread, selectThread, selectChannel, backToWorkspace, backToChannels, resolveTaskRefs }) {
9657
+ function TeamConversation({ t, useWorkspaces, navigation, drafts, putAttachment, getAttachment, loadChannels, readThread, loadThreadHistory, threadObservations, subscribeChanges, loadMembers, sendMessage, joinChannel, removeChannelMember, reply, changeTask, promoteThread, selectThread, selectChannel, backToWorkspace, backToChannels, resolveTaskRefs }) {
9583
9658
  const navigationState = (0, react.useSyncExternalStore)(navigation.subscribe, navigation.getSnapshot, navigation.getSnapshot);
9584
9659
  const current = useWorkspaces((state) => state.items).find((workspace) => workspace.workspaceId === navigationState.workspaceId);
9585
9660
  if (current !== void 0 && navigationState.threadRef !== void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamThreadPage, {
@@ -9598,6 +9673,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9598
9673
  readThread,
9599
9674
  loadChannels,
9600
9675
  loadThreadHistory,
9676
+ threadObservations,
9601
9677
  subscribeChanges,
9602
9678
  loadMembers,
9603
9679
  reply,
@@ -9649,8 +9725,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9649
9725
  });
9650
9726
  }
9651
9727
  //#endregion
9652
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/sidebar.module.css.mjs
9653
- const css$1 = "html[data-agent-team-mode=team] button[class*=newSession]{display:none}.d0xfxa_workspaceBrowser{flex-direction:column;height:100%;min-height:0;padding:0 8px 8px;display:flex}.d0xfxa_railButton{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.d0xfxa_railButton:hover,.d0xfxa_railButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);outline:none}.d0xfxa_workspaceList{flex-direction:column;gap:2px;padding-bottom:2px;display:flex}.d0xfxa_workspaceRow{color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;width:100%;height:34px;padding:0 8px;display:flex}.d0xfxa_workspaceRow:hover,.d0xfxa_workspaceRow:focus-visible,.d0xfxa_workspaceRow[aria-current=page]{background:var(--dsw-alias-interactive-bg-hover);outline:none}.d0xfxa_workspaceRow:focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-border-l3)}.d0xfxa_workspaceIcon{color:var(--dsw-alias-label-tertiary);flex:0 0 16px;justify-content:center;align-items:center;height:20px;display:inline-flex}.d0xfxa_workspaceRow[data-selected] .d0xfxa_workspaceIcon{color:var(--dsw-alias-state-business-primary)}.d0xfxa_workspaceCopy{min-width:0;display:flex}.d0xfxa_workspaceCopy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:400;line-height:20px;overflow:hidden}.d0xfxa_emptyState{color:var(--dsw-alias-label-tertiary);margin:8px;font-size:12px;line-height:18px}.d0xfxa_railWorkspace{flex-direction:column;align-items:center;gap:8px;padding-top:8px;display:flex}.d0xfxa_railButton{border-radius:50%;width:36px;height:36px}.d0xfxa_railButton[data-active]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.d0xfxa_workspaceSection{flex-direction:column;flex:1;gap:4px;min-height:0;margin-top:2px;display:flex;overflow-y:auto}.d0xfxa_section{flex-direction:column;display:flex}.d0xfxa_sectionHeader{align-items:center;min-height:26px;padding-right:2px;display:flex}.d0xfxa_sectionToggle{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;min-width:0;min-height:24px;padding:0 6px;font-size:12px;line-height:18px;display:inline-flex}.d0xfxa_sectionToggle:focus-visible{outline:none}.d0xfxa_sectionToggle:hover .d0xfxa_sectionChevron,.d0xfxa_sectionToggle:focus-visible .d0xfxa_sectionChevron{color:var(--dsw-alias-label-primary)}.d0xfxa_sectionChevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .12s,color .12s}.d0xfxa_sectionToggle[aria-expanded=false] .d0xfxa_sectionChevron{transform:rotate(-90deg)}.d0xfxa_sectionTitle{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.d0xfxa_sectionActions{align-items:center;margin-left:auto;display:inline-flex}.d0xfxa_panel{flex-direction:column;display:flex}.d0xfxa_iconButton{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex}.d0xfxa_iconButton:hover,.d0xfxa_iconButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);outline:none}.d0xfxa_textButton{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:2px 5px;font-size:11px;line-height:18px}.d0xfxa_textButton:hover,.d0xfxa_textButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);outline:none}.d0xfxa_textButton:disabled{cursor:not-allowed;opacity:.4}.d0xfxa_channelList,.d0xfxa_agentList{flex-direction:column;gap:1px;padding:0 4px 4px;display:flex}.d0xfxa_sidebarRowDragging{opacity:.5}.d0xfxa_sidebarRowDropBefore,.d0xfxa_sidebarRowDropAfter{position:relative}.d0xfxa_sidebarRowDropBefore:before,.d0xfxa_sidebarRowDropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:4px}.d0xfxa_sidebarRowDropBefore:before{top:-7px}.d0xfxa_sidebarRowDropAfter:after{bottom:-7px}.d0xfxa_channelRow{color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;min-height:30px;display:flex;position:relative}.d0xfxa_channelSelect{box-sizing:border-box;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;min-width:0;min-height:30px;padding:3px 4px 3px 8px;display:flex}.d0xfxa_channelSelect:focus-visible{outline:none}.d0xfxa_channelName{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;line-height:18px;overflow:hidden}.d0xfxa_agentRow{color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;min-height:38px;display:flex;position:relative}.d0xfxa_agentSelect{box-sizing:border-box;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex:1;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:0 8px;min-width:0;min-height:38px;padding:3px 4px 3px 8px;display:grid}.d0xfxa_agentSelect:focus-visible{outline:none}.d0xfxa_agentSelect[aria-current=page]{background:var(--dsw-alias-interactive-bg-hover);border-radius:8px}.d0xfxa_agentRow:hover .d0xfxa_agentSelect[aria-current=page],.d0xfxa_agentRow:focus-within .d0xfxa_agentSelect[aria-current=page],.d0xfxa_agentRow[data-menu-open] .d0xfxa_agentSelect[aria-current=page]{background:0 0}.d0xfxa_agentAvatar{background:hsl(var(--team-avatar-hue,212) 42% 46%);color:#fff;cursor:default;border-radius:50%;flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:inline-flex;position:relative}.d0xfxa_agentAvatarBadge{background:var(--dsw-specific-sidebar-fill);box-shadow:0 0 0 1px var(--dsw-specific-sidebar-fill);border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;padding:1px;line-height:0;display:inline-flex;position:absolute;bottom:-3px;right:-3px}.d0xfxa_agentCopy{flex-direction:column;min-width:0;display:flex}.d0xfxa_agentCopy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;line-height:17px;overflow:hidden}.d0xfxa_agentCopy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:13px;overflow:hidden}.d0xfxa_unavailableDot{background:var(--dsw-alias-label-tertiary);border-radius:50%;width:7px;height:7px;display:inline-block}.d0xfxa_rowMenu{flex:none;align-items:center;padding-right:4px;display:none}.d0xfxa_channelRow:hover .d0xfxa_rowMenu,.d0xfxa_channelRow:focus-within .d0xfxa_rowMenu,.d0xfxa_channelRow[data-menu-open] .d0xfxa_rowMenu,.d0xfxa_agentRow:hover .d0xfxa_rowMenu,.d0xfxa_agentRow:focus-within .d0xfxa_rowMenu,.d0xfxa_agentRow[data-menu-open] .d0xfxa_rowMenu{display:inline-flex}.d0xfxa_channelRow[data-menu-open],.d0xfxa_agentRow[data-menu-open],.d0xfxa_channelRow:hover,.d0xfxa_agentRow:hover,.d0xfxa_channelRow:focus-within,.d0xfxa_agentRow:focus-within,.d0xfxa_channelRow[aria-current=page]{background:var(--dsw-alias-interactive-bg-hover)}.d0xfxa_rowMenuButton{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:inline-flex}.d0xfxa_rowMenuButton:hover,.d0xfxa_rowMenuButton:focus-visible{color:var(--dsw-alias-label-primary);outline:none}.d0xfxa_retryError{color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px;font-size:11px;display:flex}.d0xfxa_rowAlert{color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;padding:2px 8px 6px;font-size:11px}.d0xfxa_editDescription{color:var(--dsw-alias-label-secondary);margin:0 0 10px;font-size:12px;line-height:18px}.d0xfxa_editMemberList{gap:3px;display:grid}.d0xfxa_editMemberRow{border-radius:6px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:0 8px;min-height:40px;padding:3px 6px;display:grid}.d0xfxa_editMemberRowChannels{grid-template-columns:minmax(0,1fr) auto}.d0xfxa_editMemberRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.d0xfxa_editMemberCopy{min-width:0;display:grid}.d0xfxa_editMemberCopy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:18px;overflow:hidden}.d0xfxa_editMemberCopy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:14px;overflow:hidden}.d0xfxa_editChannelName{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;line-height:18px;overflow:hidden}.d0xfxa_editMemberRow button{min-width:60px}.d0xfxa_editHint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:16px}.d0xfxa_menuHint{color:var(--dsw-alias-label-tertiary);margin-left:4px;font-size:10px;line-height:14px}.d0xfxa_rowError{color:var(--dsw-alias-state-error-primary);grid-column:1/-1;margin:2px 0;font-size:11px;line-height:16px}";
9728
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/sidebar.module.css.mjs
9729
+ const css$1 = "html[data-agent-team-mode=team] button[class*=newSession]{display:none}.Xvc-qG_workspaceBrowser{flex-direction:column;height:100%;min-height:0;padding:0 8px 8px;display:flex}.Xvc-qG_railButton{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.Xvc-qG_railButton:hover,.Xvc-qG_railButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);outline:none}.Xvc-qG_workspaceList{flex-direction:column;gap:2px;padding-bottom:2px;display:flex}.Xvc-qG_workspaceRow{color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;width:100%;height:34px;padding:0 8px;display:flex}.Xvc-qG_workspaceRow:hover,.Xvc-qG_workspaceRow:focus-visible,.Xvc-qG_workspaceRow[aria-current=page]{background:var(--dsw-alias-interactive-bg-hover);outline:none}.Xvc-qG_workspaceRow:focus-visible{box-shadow:inset 0 0 0 1px var(--dsw-alias-border-l3)}.Xvc-qG_workspaceIcon{color:var(--dsw-alias-label-tertiary);flex:0 0 16px;justify-content:center;align-items:center;height:20px;display:inline-flex}.Xvc-qG_workspaceRow[data-selected] .Xvc-qG_workspaceIcon{color:var(--dsw-alias-state-business-primary)}.Xvc-qG_workspaceCopy{min-width:0;display:flex}.Xvc-qG_workspaceCopy strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:400;line-height:20px;overflow:hidden}.Xvc-qG_emptyState{color:var(--dsw-alias-label-tertiary);margin:8px;font-size:12px;line-height:18px}.Xvc-qG_railWorkspace{flex-direction:column;align-items:center;gap:8px;padding-top:8px;display:flex}.Xvc-qG_railButton{border-radius:50%;width:36px;height:36px}.Xvc-qG_railButton[data-active]{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.Xvc-qG_workspaceSection{flex-direction:column;flex:1;gap:4px;min-height:0;margin-top:2px;display:flex;overflow-y:auto}.Xvc-qG_section{flex-direction:column;display:flex}.Xvc-qG_sectionHeader{align-items:center;min-height:26px;padding-right:2px;display:flex}.Xvc-qG_sectionToggle{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;min-width:0;min-height:24px;padding:0 6px;font-size:12px;line-height:18px;display:inline-flex}.Xvc-qG_sectionToggle:focus-visible{outline:none}.Xvc-qG_sectionToggle:hover .Xvc-qG_sectionChevron,.Xvc-qG_sectionToggle:focus-visible .Xvc-qG_sectionChevron{color:var(--dsw-alias-label-primary)}.Xvc-qG_sectionChevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .12s,color .12s}.Xvc-qG_sectionToggle[aria-expanded=false] .Xvc-qG_sectionChevron{transform:rotate(-90deg)}.Xvc-qG_sectionTitle{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.Xvc-qG_sectionActions{align-items:center;margin-left:auto;display:inline-flex}.Xvc-qG_panel{flex-direction:column;display:flex}.Xvc-qG_iconButton{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;display:inline-flex}.Xvc-qG_iconButton:hover,.Xvc-qG_iconButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);outline:none}.Xvc-qG_textButton{color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;border-radius:5px;padding:2px 5px;font-size:11px;line-height:18px}.Xvc-qG_textButton:hover,.Xvc-qG_textButton:focus-visible{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);outline:none}.Xvc-qG_textButton:disabled{cursor:not-allowed;opacity:.4}.Xvc-qG_channelList,.Xvc-qG_agentList{flex-direction:column;gap:1px;padding:0 4px 4px;display:flex}.Xvc-qG_sidebarRowDragging{opacity:.5}.Xvc-qG_sidebarRowDropBefore,.Xvc-qG_sidebarRowDropAfter{position:relative}.Xvc-qG_sidebarRowDropBefore:before,.Xvc-qG_sidebarRowDropAfter:after{content:\"\";z-index:1;background:linear-gradient(55deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 0 / 5px 7px no-repeat, linear-gradient(125deg, transparent calc(50% - 1px), var(--dsw-alias-state-business-primary) calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) 0 5px / 5px 7px no-repeat, linear-gradient(var(--dsw-alias-state-business-primary) 0 0) 4px 5px / calc(100% - 4px) 2px no-repeat;pointer-events:none;height:12px;position:absolute;left:0;right:4px}.Xvc-qG_sidebarRowDropBefore:before{top:-7px}.Xvc-qG_sidebarRowDropAfter:after{bottom:-7px}.Xvc-qG_channelRow{color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;min-height:30px;display:flex;position:relative}.Xvc-qG_channelSelect{box-sizing:border-box;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex:1;align-items:center;min-width:0;min-height:30px;padding:3px 4px 3px 8px;display:flex}.Xvc-qG_channelSelect:focus-visible{outline:none}.Xvc-qG_channelName{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;line-height:18px;overflow:hidden}.Xvc-qG_agentRow{color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;min-height:38px;display:flex;position:relative}.Xvc-qG_agentSelect{box-sizing:border-box;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;flex:1;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:0 8px;min-width:0;min-height:38px;padding:3px 4px 3px 8px;display:grid}.Xvc-qG_agentSelect:focus-visible{outline:none}.Xvc-qG_agentSelect[aria-current=page]{background:var(--dsw-alias-interactive-bg-hover);border-radius:8px}.Xvc-qG_agentRow:hover .Xvc-qG_agentSelect[aria-current=page],.Xvc-qG_agentRow:focus-within .Xvc-qG_agentSelect[aria-current=page],.Xvc-qG_agentRow[data-menu-open] .Xvc-qG_agentSelect[aria-current=page]{background:0 0}.Xvc-qG_agentAvatar{background:hsl(var(--team-avatar-hue,212) 42% 46%);color:#fff;cursor:default;border-radius:50%;flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:inline-flex;position:relative}.Xvc-qG_agentAvatarBadge{background:var(--dsw-specific-sidebar-fill);box-shadow:0 0 0 1px var(--dsw-specific-sidebar-fill);border-radius:50%;justify-content:center;align-items:center;width:12px;height:12px;padding:1px;line-height:0;display:inline-flex;position:absolute;bottom:-3px;right:-3px}.Xvc-qG_agentCopy{flex-direction:column;min-width:0;display:flex}.Xvc-qG_agentCopy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;line-height:17px;overflow:hidden}.Xvc-qG_agentCopy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:13px;overflow:hidden}.Xvc-qG_unavailableDot{background:var(--dsw-alias-label-tertiary);border-radius:50%;width:7px;height:7px;display:inline-block}.Xvc-qG_rowMenu{flex:none;align-items:center;padding-right:4px;display:none}.Xvc-qG_channelRow:hover .Xvc-qG_rowMenu,.Xvc-qG_channelRow:focus-within .Xvc-qG_rowMenu,.Xvc-qG_channelRow[data-menu-open] .Xvc-qG_rowMenu,.Xvc-qG_agentRow:hover .Xvc-qG_rowMenu,.Xvc-qG_agentRow:focus-within .Xvc-qG_rowMenu,.Xvc-qG_agentRow[data-menu-open] .Xvc-qG_rowMenu{display:inline-flex}.Xvc-qG_channelRow[data-menu-open],.Xvc-qG_agentRow[data-menu-open],.Xvc-qG_channelRow:hover,.Xvc-qG_agentRow:hover,.Xvc-qG_channelRow:focus-within,.Xvc-qG_agentRow:focus-within,.Xvc-qG_channelRow[aria-current=page]{background:var(--dsw-alias-interactive-bg-hover)}.Xvc-qG_rowMenuButton{color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:inline-flex}.Xvc-qG_rowMenuButton:hover,.Xvc-qG_rowMenuButton:focus-visible{color:var(--dsw-alias-label-primary);outline:none}.Xvc-qG_retryError{color:var(--dsw-alias-state-error-primary);justify-content:space-between;align-items:center;gap:8px;padding:8px;font-size:11px;display:flex}.Xvc-qG_rowAlert{color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;padding:2px 8px 6px;font-size:11px}.Xvc-qG_editDescription{color:var(--dsw-alias-label-secondary);margin:0 0 10px;font-size:12px;line-height:18px}.Xvc-qG_editMemberList{gap:3px;display:grid}.Xvc-qG_editMemberRow{border-radius:6px;grid-template-columns:14px minmax(0,1fr) auto;align-items:center;gap:0 8px;min-height:40px;padding:3px 6px;display:grid}.Xvc-qG_editMemberRowChannels{grid-template-columns:minmax(0,1fr) auto}.Xvc-qG_editMemberRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.Xvc-qG_editMemberCopy{min-width:0;display:grid}.Xvc-qG_editMemberCopy strong{color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500;line-height:18px;overflow:hidden}.Xvc-qG_editMemberCopy small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:14px;overflow:hidden}.Xvc-qG_editChannelName{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:400;line-height:18px;overflow:hidden}.Xvc-qG_editMemberRow button{min-width:60px}.Xvc-qG_editHint{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px;line-height:16px}.Xvc-qG_menuHint{color:var(--dsw-alias-label-tertiary);margin-left:4px;font-size:10px;line-height:14px}.Xvc-qG_rowError{color:var(--dsw-alias-state-error-primary);grid-column:1/-1;margin:2px 0;font-size:11px;line-height:16px}";
9654
9730
  const tagId$1 = "@wowyuarm/dsh-agent-team/sidebar.module.css";
9655
9731
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
9656
9732
  const tag = document.createElement("style");
@@ -9660,51 +9736,51 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9660
9736
  document.head.appendChild(tag);
9661
9737
  }
9662
9738
  var sidebar_module_css_default = {
9663
- "agentAvatar": "d0xfxa_agentAvatar",
9664
- "agentAvatarBadge": "d0xfxa_agentAvatarBadge",
9665
- "agentCopy": "d0xfxa_agentCopy",
9666
- "agentList": "d0xfxa_agentList",
9667
- "agentRow": "d0xfxa_agentRow",
9668
- "agentSelect": "d0xfxa_agentSelect",
9669
- "channelList": "d0xfxa_channelList",
9670
- "channelName": "d0xfxa_channelName",
9671
- "channelRow": "d0xfxa_channelRow",
9672
- "channelSelect": "d0xfxa_channelSelect",
9673
- "editChannelName": "d0xfxa_editChannelName",
9674
- "editDescription": "d0xfxa_editDescription",
9675
- "editHint": "d0xfxa_editHint",
9676
- "editMemberCopy": "d0xfxa_editMemberCopy",
9677
- "editMemberList": "d0xfxa_editMemberList",
9678
- "editMemberRow": "d0xfxa_editMemberRow",
9679
- "editMemberRowChannels": "d0xfxa_editMemberRowChannels",
9680
- "emptyState": "d0xfxa_emptyState",
9681
- "iconButton": "d0xfxa_iconButton",
9682
- "menuHint": "d0xfxa_menuHint",
9683
- "panel": "d0xfxa_panel",
9684
- "railButton": "d0xfxa_railButton",
9685
- "railWorkspace": "d0xfxa_railWorkspace",
9686
- "retryError": "d0xfxa_retryError",
9687
- "rowAlert": "d0xfxa_rowAlert",
9688
- "rowError": "d0xfxa_rowError",
9689
- "rowMenu": "d0xfxa_rowMenu",
9690
- "rowMenuButton": "d0xfxa_rowMenuButton",
9691
- "section": "d0xfxa_section",
9692
- "sectionActions": "d0xfxa_sectionActions",
9693
- "sectionChevron": "d0xfxa_sectionChevron",
9694
- "sectionHeader": "d0xfxa_sectionHeader",
9695
- "sectionTitle": "d0xfxa_sectionTitle",
9696
- "sectionToggle": "d0xfxa_sectionToggle",
9697
- "sidebarRowDragging": "d0xfxa_sidebarRowDragging",
9698
- "sidebarRowDropAfter": "d0xfxa_sidebarRowDropAfter",
9699
- "sidebarRowDropBefore": "d0xfxa_sidebarRowDropBefore",
9700
- "textButton": "d0xfxa_textButton",
9701
- "unavailableDot": "d0xfxa_unavailableDot",
9702
- "workspaceBrowser": "d0xfxa_workspaceBrowser",
9703
- "workspaceCopy": "d0xfxa_workspaceCopy",
9704
- "workspaceIcon": "d0xfxa_workspaceIcon",
9705
- "workspaceList": "d0xfxa_workspaceList",
9706
- "workspaceRow": "d0xfxa_workspaceRow",
9707
- "workspaceSection": "d0xfxa_workspaceSection"
9739
+ "agentAvatar": "Xvc-qG_agentAvatar",
9740
+ "agentAvatarBadge": "Xvc-qG_agentAvatarBadge",
9741
+ "agentCopy": "Xvc-qG_agentCopy",
9742
+ "agentList": "Xvc-qG_agentList",
9743
+ "agentRow": "Xvc-qG_agentRow",
9744
+ "agentSelect": "Xvc-qG_agentSelect",
9745
+ "channelList": "Xvc-qG_channelList",
9746
+ "channelName": "Xvc-qG_channelName",
9747
+ "channelRow": "Xvc-qG_channelRow",
9748
+ "channelSelect": "Xvc-qG_channelSelect",
9749
+ "editChannelName": "Xvc-qG_editChannelName",
9750
+ "editDescription": "Xvc-qG_editDescription",
9751
+ "editHint": "Xvc-qG_editHint",
9752
+ "editMemberCopy": "Xvc-qG_editMemberCopy",
9753
+ "editMemberList": "Xvc-qG_editMemberList",
9754
+ "editMemberRow": "Xvc-qG_editMemberRow",
9755
+ "editMemberRowChannels": "Xvc-qG_editMemberRowChannels",
9756
+ "emptyState": "Xvc-qG_emptyState",
9757
+ "iconButton": "Xvc-qG_iconButton",
9758
+ "menuHint": "Xvc-qG_menuHint",
9759
+ "panel": "Xvc-qG_panel",
9760
+ "railButton": "Xvc-qG_railButton",
9761
+ "railWorkspace": "Xvc-qG_railWorkspace",
9762
+ "retryError": "Xvc-qG_retryError",
9763
+ "rowAlert": "Xvc-qG_rowAlert",
9764
+ "rowError": "Xvc-qG_rowError",
9765
+ "rowMenu": "Xvc-qG_rowMenu",
9766
+ "rowMenuButton": "Xvc-qG_rowMenuButton",
9767
+ "section": "Xvc-qG_section",
9768
+ "sectionActions": "Xvc-qG_sectionActions",
9769
+ "sectionChevron": "Xvc-qG_sectionChevron",
9770
+ "sectionHeader": "Xvc-qG_sectionHeader",
9771
+ "sectionTitle": "Xvc-qG_sectionTitle",
9772
+ "sectionToggle": "Xvc-qG_sectionToggle",
9773
+ "sidebarRowDragging": "Xvc-qG_sidebarRowDragging",
9774
+ "sidebarRowDropAfter": "Xvc-qG_sidebarRowDropAfter",
9775
+ "sidebarRowDropBefore": "Xvc-qG_sidebarRowDropBefore",
9776
+ "textButton": "Xvc-qG_textButton",
9777
+ "unavailableDot": "Xvc-qG_unavailableDot",
9778
+ "workspaceBrowser": "Xvc-qG_workspaceBrowser",
9779
+ "workspaceCopy": "Xvc-qG_workspaceCopy",
9780
+ "workspaceIcon": "Xvc-qG_workspaceIcon",
9781
+ "workspaceList": "Xvc-qG_workspaceList",
9782
+ "workspaceRow": "Xvc-qG_workspaceRow",
9783
+ "workspaceSection": "Xvc-qG_workspaceSection"
9708
9784
  };
9709
9785
  //#endregion
9710
9786
  //#region src/client/TeamWorkspaceRow.tsx
@@ -9861,10 +9937,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9861
9937
  children: [status.member.handle.replace("@", "").slice(0, 1).toUpperCase(), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
9862
9938
  className: sidebar_module_css_default.agentAvatarBadge,
9863
9939
  "aria-hidden": "true",
9864
- children: state === "gray" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { className: sidebar_module_css_default.unavailableDot }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
9865
- state,
9866
- size: 8
9867
- })
9940
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TeamStateDot, { state })
9868
9941
  })]
9869
9942
  })
9870
9943
  });
@@ -10144,8 +10217,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10144
10217
  });
10145
10218
  }
10146
10219
  //#endregion
10147
- //#region \0dsh-css:/home/yu/projects/dsh-agent-team/packages/client-agent-team/src/client/create.module.css.mjs
10148
- const css = "._1henIG_form{gap:16px;display:grid}._1henIG_field{color:var(--dsw-alias-label-secondary);gap:6px;font-size:12px;line-height:18px;display:grid}._1henIG_input{box-sizing:border-box;width:100%}._1henIG_menuCap{max-height:min(320px,56vh)}._1henIG_selectTrigger{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-sizing:border-box;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:4px 10px;font-size:14px;line-height:22px;display:flex}._1henIG_selectTrigger:disabled{cursor:default;opacity:.6}._1henIG_selectTrigger:focus-visible{border-color:var(--dsw-alias-brand-primary);outline:none}._1henIG_selectValue{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._1henIG_chevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .12s;display:inline-flex}._1henIG_chevronOpen{transform:rotate(180deg)}._1henIG_memberPicker{border:0;gap:4px;max-height:220px;margin:0;padding:0;display:grid;overflow-y:auto}._1henIG_memberPicker legend{color:var(--dsw-alias-label-secondary);padding:0 0 6px;font-size:12px;line-height:18px}._1henIG_memberOption{color:var(--dsw-alias-label-primary);border-radius:6px;grid-template-columns:auto 14px minmax(0,1fr);align-items:center;gap:0 7px;min-height:32px;padding:3px 6px;display:grid}._1henIG_memberOption:hover{background:var(--dsw-alias-interactive-bg-hover)}._1henIG_memberOption input{margin:0}._1henIG_memberOption small{color:var(--dsw-alias-label-tertiary);grid-column:3;font-size:10px;line-height:14px}._1henIG_unavailableDot{background:var(--dsw-alias-label-tertiary);border-radius:50%;justify-self:center;width:7px;height:7px;display:inline-block}._1henIG_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}._1henIG_dialogContent{max-height:min(70vh,560px);overflow-y:auto}@media (width<=600px){._1henIG_dialogContent{max-height:calc(100vh - 180px)}._1henIG_memberPicker{max-height:180px}}";
10220
+ //#region \0dsh-css:/home/yu/projects/release-018/packages/client-agent-team/src/client/create.module.css.mjs
10221
+ const css = ".vkPzUW_form{gap:16px;display:grid}.vkPzUW_field{color:var(--dsw-alias-label-secondary);gap:6px;font-size:12px;line-height:18px;display:grid}.vkPzUW_input{box-sizing:border-box;width:100%}.vkPzUW_menuCap{max-height:min(320px,56vh)}.vkPzUW_selectTrigger{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-sizing:border-box;color:var(--dsw-alias-label-primary);cursor:pointer;text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:4px 10px;font-size:14px;line-height:22px;display:flex}.vkPzUW_selectTrigger:disabled{cursor:default;opacity:.6}.vkPzUW_selectTrigger:focus-visible{border-color:var(--dsw-alias-brand-primary);outline:none}.vkPzUW_selectValue{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vkPzUW_chevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .12s;display:inline-flex}.vkPzUW_chevronOpen{transform:rotate(180deg)}.vkPzUW_memberPicker{border:0;gap:4px;max-height:220px;margin:0;padding:0;display:grid;overflow-y:auto}.vkPzUW_memberPicker legend{color:var(--dsw-alias-label-secondary);padding:0 0 6px;font-size:12px;line-height:18px}.vkPzUW_memberOption{color:var(--dsw-alias-label-primary);border-radius:6px;grid-template-columns:auto 14px minmax(0,1fr);align-items:center;gap:0 7px;min-height:32px;padding:3px 6px;display:grid}.vkPzUW_memberOption:hover{background:var(--dsw-alias-interactive-bg-hover)}.vkPzUW_memberOption input{margin:0}.vkPzUW_memberOption small{color:var(--dsw-alias-label-tertiary);grid-column:3;font-size:10px;line-height:14px}.vkPzUW_unavailableDot{background:var(--dsw-alias-label-tertiary);border-radius:50%;justify-self:center;width:7px;height:7px;display:inline-block}.vkPzUW_error{color:var(--dsw-alias-state-error-primary);margin:0;font-size:12px;line-height:18px}.vkPzUW_dialogContent{max-height:min(70vh,560px);overflow-y:auto}@media (width<=600px){.vkPzUW_dialogContent{max-height:calc(100vh - 180px)}.vkPzUW_memberPicker{max-height:180px}}";
10149
10222
  const tagId = "@wowyuarm/dsh-agent-team/create.module.css";
10150
10223
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
10151
10224
  const tag = document.createElement("style");
@@ -10155,19 +10228,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10155
10228
  document.head.appendChild(tag);
10156
10229
  }
10157
10230
  var create_module_css_default = {
10158
- "chevron": "_1henIG_chevron",
10159
- "chevronOpen": "_1henIG_chevronOpen",
10160
- "dialogContent": "_1henIG_dialogContent",
10161
- "error": "_1henIG_error",
10162
- "field": "_1henIG_field",
10163
- "form": "_1henIG_form",
10164
- "input": "_1henIG_input",
10165
- "memberOption": "_1henIG_memberOption",
10166
- "memberPicker": "_1henIG_memberPicker",
10167
- "menuCap": "_1henIG_menuCap",
10168
- "selectTrigger": "_1henIG_selectTrigger",
10169
- "selectValue": "_1henIG_selectValue",
10170
- "unavailableDot": "_1henIG_unavailableDot"
10231
+ "chevron": "vkPzUW_chevron",
10232
+ "chevronOpen": "vkPzUW_chevronOpen",
10233
+ "dialogContent": "vkPzUW_dialogContent",
10234
+ "error": "vkPzUW_error",
10235
+ "field": "vkPzUW_field",
10236
+ "form": "vkPzUW_form",
10237
+ "input": "vkPzUW_input",
10238
+ "memberOption": "vkPzUW_memberOption",
10239
+ "memberPicker": "vkPzUW_memberPicker",
10240
+ "menuCap": "vkPzUW_menuCap",
10241
+ "selectTrigger": "vkPzUW_selectTrigger",
10242
+ "selectValue": "vkPzUW_selectValue",
10243
+ "unavailableDot": "vkPzUW_unavailableDot"
10171
10244
  };
10172
10245
  //#endregion
10173
10246
  //#region src/client/TeamMemberEditor.tsx
@@ -11627,124 +11700,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11627
11700
  });
11628
11701
  }
11629
11702
  //#endregion
11630
- //#region src/client/TeamMemberDock.tsx
11631
- /**
11632
- * Team-owned strip above the shipped composer while a Member Session is
11633
- * embedded. The shipped InputBar keeps the whole input surface (draft,
11634
- * trigger menus, submit); this dock only carries what the shipped bar cannot
11635
- * know — the Member-Session vocabulary hint and the Member turn's prompt
11636
- * error, read through the standard useSession hook.
11637
- */
11638
- function TeamMemberDock({ t, useSession }) {
11639
- const promptError = useSession((state) => state.promptError ?? null);
11640
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
11641
- className: composer_module_css_default.memberSessionDock,
11642
- "data-team-member-dock": "true",
11643
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
11644
- className: composer_module_css_default.memberSessionHint,
11645
- children: t("memberSessionHint")
11646
- }), promptError !== null && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
11647
- className: composer_module_css_default.memberSessionStatus,
11648
- role: "alert",
11649
- children: promptError.error.message
11650
- })]
11651
- });
11652
- }
11653
- //#endregion
11654
- //#region src/client/member-session-input.ts
11655
- const TEAM_COMMAND_SOURCE = "agent-team-command";
11656
- const TEAM_MEMBER_SOURCE = "agent-team-member";
11657
- /** Preserve the public Session command admission contract, not handler outcome. */
11658
- async function admitTeamCompact(session) {
11659
- const result = await session.command("/compact");
11660
- if (!result.ok) throw new Error(`session.command failed: ${result.error.message}`);
11661
- return result.value.matched ? { kind: "success" } : {
11662
- kind: "error",
11663
- text: "unknown command: /compact"
11664
- };
11665
- }
11666
- /**
11667
- * The two Team-only sources live in the shared public registry, but their
11668
- * candidate plane is inert for every ordinary Session. The member source owns
11669
- * its stable ref→label cache so serialization never falls back to guessing a
11670
- * handle from plain text.
11671
- */
11672
- function createTeamMemberSessionSources(options) {
11673
- const labels = /* @__PURE__ */ new Map();
11674
- return [{
11675
- trigger: "/",
11676
- name: TEAM_COMMAND_SOURCE,
11677
- showGroupTitle: false,
11678
- async candidates(session, { query }) {
11679
- if (!options.isEmbeddedMemberSession(session.sessionId) || !"compact".startsWith(query.toLocaleLowerCase())) return [];
11680
- return [{
11681
- name: "/compact",
11682
- description: "压缩当前 Session 上下文",
11683
- value: "compact"
11684
- }];
11685
- },
11686
- onPick({ candidate, session }) {
11687
- if (candidate.value !== "compact" || !options.isEmbeddedMemberSession(session.sessionId)) return void 0;
11688
- return { claim: {
11689
- token: "/compact",
11690
- submit: async () => options.executeCompact(session.sessionId)
11691
- } };
11692
- },
11693
- async matchEnter(session, line) {
11694
- if (!options.isEmbeddedMemberSession(session.sessionId)) return void 0;
11695
- if (line.trim() !== "/compact") return void 0;
11696
- return { claim: {
11697
- token: "/compact",
11698
- submit: async () => options.executeCompact(session.sessionId)
11699
- } };
11700
- }
11701
- }, {
11702
- trigger: "@",
11703
- name: TEAM_MEMBER_SOURCE,
11704
- showGroupTitle: false,
11705
- async candidates(session, { query, signal }) {
11706
- if (!options.isEmbeddedMemberSession(session.sessionId)) return [];
11707
- const normalized = query.toLocaleLowerCase();
11708
- const members = await options.members();
11709
- if (signal.aborted) return [];
11710
- return members.filter((status) => status.member.sessionId !== session.sessionId && status.member.state !== "inactive" && status.member.state !== "archived").filter((status) => status.member.handle.toLocaleLowerCase().startsWith(normalized)).map((status) => {
11711
- labels.set(status.member.memberId, `@${status.member.handle}`);
11712
- return {
11713
- name: `@${status.member.handle}`,
11714
- description: "引用成员 · 不会通知",
11715
- value: String(status.member.memberId)
11716
- };
11717
- });
11718
- },
11719
- onPick({ candidate, session }) {
11720
- if (!options.isEmbeddedMemberSession(session.sessionId) || candidate.value === void 0) return void 0;
11721
- const ref = candidate.value;
11722
- const label = labels.get(ref);
11723
- if (label === void 0) return void 0;
11724
- return { insert: {
11725
- source: TEAM_MEMBER_SOURCE,
11726
- label: label.slice(1),
11727
- ref,
11728
- clipboardText: label
11729
- } };
11730
- },
11731
- codec: {
11732
- clipboardText: (ref) => labels.get(ref) ?? `@${String(ref)}`,
11733
- serialize: async (ref) => {
11734
- const stable = String(ref);
11735
- const label = labels.get(ref) ?? "";
11736
- return `<team-member ref="${escapeAttribute(stable)}">${escapeText(label)}</team-member>`;
11737
- }
11738
- }
11739
- }];
11740
- }
11741
- function escapeText(value) {
11742
- return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
11743
- }
11744
- function escapeAttribute(value) {
11745
- return escapeText(value).replaceAll("\"", "&quot;").replaceAll("'", "&#39;");
11746
- }
11747
- //#endregion
11748
11703
  //#region src/client/locales.ts
11749
11704
  const zh = {
11750
11705
  team: "团队",
@@ -11760,7 +11715,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11760
11715
  addAgent: "添加 Agent",
11761
11716
  cancel: "取消",
11762
11717
  close: "关闭",
11763
- memberSessionHint: "成员会话:/compact 压缩上下文 · @成员 引用;普通消息直接发给该成员。",
11764
11718
  copyCode: "复制",
11765
11719
  copiedCode: "已复制",
11766
11720
  markdownFootnotes: "脚注",
@@ -11916,7 +11870,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11916
11870
  addAgent: "Add Agent",
11917
11871
  cancel: "Cancel",
11918
11872
  close: "Close",
11919
- memberSessionHint: "Member session: /compact compresses context · @member inserts a reference; plain messages go straight to the member.",
11920
11873
  copyCode: "Copy",
11921
11874
  copiedCode: "Copied",
11922
11875
  markdownFootnotes: "Footnotes",
@@ -12069,8 +12022,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12069
12022
  "remote.session",
12070
12023
  "sessions",
12071
12024
  "connection",
12072
- "conversation",
12073
- "inputTriggers"
12025
+ "conversation"
12074
12026
  ];
12075
12027
  function registerModeShadow(ctx, navigation, changes, drafts, name, component, extraInject) {
12076
12028
  const openMemberSessionImpl = (sessionId) => {
@@ -12114,6 +12066,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12114
12066
  ...name === "conversation" ? {
12115
12067
  readThread: (request) => ctx.remote.agentTeam.readThread(request),
12116
12068
  loadThreadHistory: (request) => ctx.remote.agentTeam.threadHistory(request),
12069
+ threadObservations: (request) => ctx.remote.agentTeam.threadObservations(request),
12117
12070
  sendMessage: (request) => ctx.remote.agentTeam.sendMessage(request),
12118
12071
  putAttachment: (request) => ctx.remote.agentTeam.putAttachment(request),
12119
12072
  getAttachment: (request) => ctx.remote.agentTeam.getAttachment(request),
@@ -12142,37 +12095,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12142
12095
  };
12143
12096
  });
12144
12097
  }
12145
- function registerMemberSessionDock(ctx, navigation) {
12146
- ctx.slots.inject("conversation.input.dock", () => {
12147
- let dispose;
12148
- let registeredSessionId;
12149
- const reconcile = () => {
12150
- const memberSessionId = navigation.getSnapshot().memberSessionId;
12151
- const active = navigation.getSnapshot().mode === "team" && memberSessionId !== void 0;
12152
- if (dispose !== void 0 && (!active || registeredSessionId !== memberSessionId)) {
12153
- dispose();
12154
- dispose = void 0;
12155
- registeredSessionId = void 0;
12156
- }
12157
- if (active && dispose === void 0) {
12158
- registeredSessionId = memberSessionId;
12159
- const sessions = ctx.sessions;
12160
- dispose = ctx.slots.register({
12161
- name: "conversation.input.dock",
12162
- id: "agent-team-member",
12163
- locale: NS,
12164
- select: () => sessions.list.getSnapshot().current === memberSessionId ? {} : null
12165
- }, TeamMemberDock);
12166
- }
12167
- };
12168
- const offNavigation = navigation.subscribe(reconcile);
12169
- reconcile();
12170
- return () => {
12171
- offNavigation();
12172
- dispose?.();
12173
- };
12174
- });
12175
- }
12176
12098
  function applyUi(ctx) {
12177
12099
  ctx.effect(() => ctx.locale.register(NS, {
12178
12100
  zh,
@@ -12189,33 +12111,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12189
12111
  disposeDrafts();
12190
12112
  }, "agent-team: navigation service");
12191
12113
  const changes = new TeamChangeStream((request, signal) => ctx.remote.agentTeam.changes(request, signal));
12192
- const triggerSources = createTeamMemberSessionSources({
12193
- isEmbeddedMemberSession: (sessionId) => {
12194
- const snapshot = navigation.getSnapshot();
12195
- return snapshot.mode === "team" && snapshot.memberSessionId === sessionId && snapshot.workspaceId !== void 0;
12196
- },
12197
- members: async () => {
12198
- const workspaceId = navigation.getSnapshot().workspaceId;
12199
- if (workspaceId === void 0) return [];
12200
- const result = await ctx.remote.agentTeam.members({ workspaceId });
12201
- return result.ok ? result.value : [];
12202
- },
12203
- executeCompact: async (sessionId) => {
12204
- const actx = ctx.sessions.scope(sessionId);
12205
- const session = actx === void 0 ? void 0 : ctx.sessions.sessionOf(actx);
12206
- return session === void 0 ? {
12207
- kind: "error",
12208
- text: "current Member Session is unavailable"
12209
- } : admitTeamCompact(session);
12210
- }
12211
- });
12212
- const inputTriggers = ctx.get("inputTriggers");
12213
- ctx.effect(() => {
12214
- const disposers = triggerSources.map((source) => inputTriggers.registerSource(source));
12215
- return () => {
12216
- for (const dispose of disposers) dispose();
12217
- };
12218
- }, "agent-team: Member session trigger sources");
12219
12114
  const loadMemberGroups = async () => {
12220
12115
  const workspaces = ctx.workspaces.list.getSnapshot().items;
12221
12116
  return (await Promise.all(workspaces.map(async (workspace) => {
@@ -12253,7 +12148,6 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
12253
12148
  }, TeamFooterAction));
12254
12149
  registerModeShadow(ctx, navigation, changes, drafts, "sidebar.workspaces", TeamWorkspaceBrowser);
12255
12150
  registerModeShadow(ctx, navigation, changes, drafts, "conversation", TeamConversation);
12256
- registerMemberSessionDock(ctx, navigation);
12257
12151
  registerModeShadow(ctx, navigation, changes, drafts, "sidebar.settings", TeamSettings, () => ({ loadMemberGroups }));
12258
12152
  }
12259
12153
  async function apply(ctx) {