@wowyuarm/dsh-agent-team 0.1.11 → 0.1.12

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 (83) hide show
  1. package/README.md +4 -4
  2. package/README.zh.md +4 -4
  3. package/package.json +3 -2
  4. package/packages/agent-team/README.md +2 -2
  5. package/packages/agent-team/README.zh.md +2 -2
  6. package/packages/agent-team/lib/context-projection.js +5 -1
  7. package/packages/agent-team/lib/index.js +11 -44
  8. package/packages/agent-team/lib/ledger.js +251 -142
  9. package/packages/agent-team/lib/member-runtime.js +47 -9
  10. package/packages/agent-team/lib/mentions.js +56 -0
  11. package/packages/agent-team/lib/spec.js +1 -0
  12. package/packages/agent-team/lib/typert.host.js +80 -31
  13. package/packages/agent-team/lib/typert.remote-client.d.ts.map +1 -1
  14. package/packages/agent-team/lib/typert.remote-client.js +71 -26
  15. package/packages/agent-team/lib/types/context-projection.d.ts.map +1 -1
  16. package/packages/agent-team/lib/types/index.d.ts +1 -7
  17. package/packages/agent-team/lib/types/index.d.ts.map +1 -1
  18. package/packages/agent-team/lib/types/ledger.d.ts +75 -17
  19. package/packages/agent-team/lib/types/ledger.d.ts.map +1 -1
  20. package/packages/agent-team/lib/types/member-runtime.d.ts +2 -1
  21. package/packages/agent-team/lib/types/member-runtime.d.ts.map +1 -1
  22. package/packages/agent-team/lib/types/mentions.d.ts +34 -0
  23. package/packages/agent-team/lib/types/mentions.d.ts.map +1 -0
  24. package/packages/agent-team/lib/types/spec.d.ts.map +1 -1
  25. package/packages/agent-team/lib/types/types/entities.d.ts +0 -18
  26. package/packages/agent-team/lib/types/types/entities.d.ts.map +1 -1
  27. package/packages/agent-team/lib/types/types/requests-results.d.ts +57 -15
  28. package/packages/agent-team/lib/types/types/requests-results.d.ts.map +1 -1
  29. package/packages/agent-team/preset/team-member/agent.cordis.yml +48 -8
  30. package/packages/client-agent-team/lib/client.js +1366 -909
  31. package/packages/client-agent-team/lib/client.js.map +1 -1
  32. package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.d.ts.map +1 -1
  33. package/packages/client-agent-team/lib/types/client/TeamAgentsPanel.js +3 -3
  34. package/packages/client-agent-team/lib/types/client/TeamAvatarStack.d.ts +18 -0
  35. package/packages/client-agent-team/lib/types/client/TeamAvatarStack.d.ts.map +1 -0
  36. package/packages/client-agent-team/lib/types/client/TeamAvatarStack.js +22 -0
  37. package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts +3 -1
  38. package/packages/client-agent-team/lib/types/client/TeamChannelPage.d.ts.map +1 -1
  39. package/packages/client-agent-team/lib/types/client/TeamChannelPage.js +125 -13
  40. package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.d.ts.map +1 -1
  41. package/packages/client-agent-team/lib/types/client/TeamChannelsPanel.js +10 -3
  42. package/packages/client-agent-team/lib/types/client/TeamComposer.d.ts.map +1 -1
  43. package/packages/client-agent-team/lib/types/client/TeamComposer.js +11 -17
  44. package/packages/client-agent-team/lib/types/client/TeamConversation.js +1 -1
  45. package/packages/client-agent-team/lib/types/client/TeamCountBadge.d.ts +20 -0
  46. package/packages/client-agent-team/lib/types/client/TeamCountBadge.d.ts.map +1 -0
  47. package/packages/client-agent-team/lib/types/client/TeamCountBadge.js +25 -0
  48. package/packages/client-agent-team/lib/types/client/TeamInboxPage.d.ts +9 -5
  49. package/packages/client-agent-team/lib/types/client/TeamInboxPage.d.ts.map +1 -1
  50. package/packages/client-agent-team/lib/types/client/TeamInboxPage.js +82 -14
  51. package/packages/client-agent-team/lib/types/client/TeamMemberRow.d.ts +43 -0
  52. package/packages/client-agent-team/lib/types/client/TeamMemberRow.d.ts.map +1 -0
  53. package/packages/client-agent-team/lib/types/client/TeamMemberRow.js +27 -0
  54. package/packages/client-agent-team/lib/types/client/TeamMembersAction.d.ts +2 -2
  55. package/packages/client-agent-team/lib/types/client/TeamMembersAction.d.ts.map +1 -1
  56. package/packages/client-agent-team/lib/types/client/TeamMembersAction.js +2 -2
  57. package/packages/client-agent-team/lib/types/client/TeamThreadPage.d.ts.map +1 -1
  58. package/packages/client-agent-team/lib/types/client/TeamThreadPage.js +6 -2
  59. package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.d.ts.map +1 -1
  60. package/packages/client-agent-team/lib/types/client/TeamWorkspaceBrowser.js +28 -10
  61. package/packages/client-agent-team/lib/types/client/index.d.ts.map +1 -1
  62. package/packages/client-agent-team/lib/types/client/index.js +3 -4
  63. package/packages/client-agent-team/lib/types/client/locales.d.ts +36 -16
  64. package/packages/client-agent-team/lib/types/client/locales.d.ts.map +1 -1
  65. package/packages/client-agent-team/lib/types/client/locales.js +36 -16
  66. package/packages/client-agent-team/lib/types/client/slots.d.ts +0 -1
  67. package/packages/client-agent-team/lib/types/client/slots.d.ts.map +1 -1
  68. package/packages/client-agent-team/lib/types/client/team-changes.d.ts +7 -1
  69. package/packages/client-agent-team/lib/types/client/team-changes.d.ts.map +1 -1
  70. package/packages/client-agent-team/lib/types/client/team-changes.js +62 -31
  71. package/packages/client-agent-team/lib/types/client/team-formatters.d.ts +38 -5
  72. package/packages/client-agent-team/lib/types/client/team-formatters.d.ts.map +1 -1
  73. package/packages/client-agent-team/lib/types/client/team-formatters.js +54 -7
  74. package/packages/tool-agent-team/README.md +2 -2
  75. package/packages/tool-agent-team/README.zh.md +2 -2
  76. package/packages/tool-agent-team/lib/index.js +29 -16
  77. package/packages/tool-agent-team/lib/types/index.d.ts.map +1 -1
  78. package/packages/agent-team/lib/progress-nudge.js +0 -328
  79. package/packages/agent-team/lib/types/progress-nudge.d.ts +0 -136
  80. package/packages/agent-team/lib/types/progress-nudge.d.ts.map +0 -1
  81. package/packages/client-agent-team/lib/types/client/TeamSettings.d.ts +0 -3
  82. package/packages/client-agent-team/lib/types/client/TeamSettings.d.ts.map +0 -1
  83. package/packages/client-agent-team/lib/types/client/TeamSettings.js +0 -5
@@ -14,9 +14,10 @@
14
14
  * @module @wowyuarm/dsh-agent-team/member-runtime
15
15
  */
16
16
  import { mkdir, readdir, rename, rm, stat, writeFile } from 'node:fs/promises';
17
- import { dirname, join, resolve } from 'node:path';
17
+ import { dirname, isAbsolute, join, relative, resolve } from 'node:path';
18
18
  import { fileURLToPath } from 'node:url';
19
19
  import { scopeOf } from '@deepseek-ai/dsh-scope';
20
+ import { dshHomePath } from '@deepseek-ai/dsh-home-paths';
20
21
  import * as memberSkills from "./member-skills.js";
21
22
  /**
22
23
  * Read-only core skills shipped beside the preset (the meta skill first:
@@ -218,7 +219,8 @@ export class MemberRuntime {
218
219
  * `privateMemoryPath` is a durable Member fact the renewal path cannot
219
220
  * rewrite: when the legacy directory exists it is renamed onto the sanitized
220
221
  * path once (same-parent rename, atomic), so existing private memory
221
- * survives instead of being silently orphaned.
222
+ * survives instead of being silently orphaned. A recorded path that names a
223
+ * different DSH home is never acted on — see `migrateLegacyMemoryDirectory`.
222
224
  *
223
225
  * A colon-form twin directory is also merged when it exists: a Member may
224
226
  * have written files under the ledger identity spelling (the branded
@@ -231,8 +233,14 @@ export class MemberRuntime {
231
233
  * and twin-only notes/skills are moved in without overwriting.
232
234
  */
233
235
  async initializePrivateMemory(path, legacyPath) {
234
- if (legacyPath !== undefined && legacyPath !== path)
235
- await migrateLegacyMemoryDirectory(legacyPath, path);
236
+ if (legacyPath !== undefined && legacyPath !== path) {
237
+ const migration = await migrateLegacyMemoryDirectory(legacyPath, path);
238
+ // A refusal means the record names a directory in ANOTHER DSH home: this
239
+ // process provisions the Member fresh here instead of taking that
240
+ // directory out of its own home.
241
+ if (migration === 'refused-foreign-home')
242
+ this.deps.ctx.logger.warn(`agent-team: refused to migrate the recorded Member private memory '${legacyPath}' into '${path}': they are not in the same directory, so the recorded directory names a different DSH home and is left untouched`);
243
+ }
236
244
  const twinPath = twinMemoryDirectoryPath(path);
237
245
  if (twinPath !== undefined)
238
246
  await mergeTwinMemoryDirectory(twinPath, path);
@@ -250,12 +258,20 @@ export class MemberRuntime {
250
258
  async cleanupRemovedMember(member) {
251
259
  // The ledger path may still name the legacy colon directory (never
252
260
  // activated after the fix): remove both spellings; rm is force-tolerant
253
- // of the one that does not exist.
261
+ // of the one that does not exist. Every target must sit inside THIS
262
+ // process's members root: the recorded path is a durable absolute fact,
263
+ // and a process resolving another DSH home (an isolated test home, a
264
+ // second instance) would otherwise delete the directory that fact names —
265
+ // the real Member's private memory.
254
266
  const sanitized = memberMemoryDirectoryPath(member);
267
+ const targets = sanitized === member.privateMemoryPath ? [sanitized] : [sanitized, member.privateMemoryPath];
268
+ const owned = targets.filter(target => isInsideMembersRoot(target));
269
+ const refused = targets.filter(target => !isInsideMembersRoot(target));
270
+ if (refused.length > 0)
271
+ this.deps.ctx.logger.warn(`agent-team: refused to delete recorded Member private memory outside this DSH home: ${refused.map(target => `'${target}'`).join(', ')}`);
255
272
  const results = await Promise.allSettled([
256
273
  this.deps.ctx.workspaceRegistry.archiveSession(member.sessionId),
257
- rm(sanitized, { recursive: true, force: true }),
258
- ...(sanitized === member.privateMemoryPath ? [] : [rm(member.privateMemoryPath, { recursive: true, force: true })]),
274
+ ...owned.map(target => rm(target, { recursive: true, force: true })),
259
275
  ]);
260
276
  const failures = results.flatMap(result => result.status === 'rejected' ? [result.reason] : []);
261
277
  if (failures.length > 0)
@@ -288,6 +304,14 @@ export class MemberRuntime {
288
304
  * directory onto its sanitized path. A sanitized target that already exists
289
305
  * wins (idempotent across restarts and partially migrated installs); a legacy
290
306
  * source that never existed is simply the fresh-install case.
307
+ *
308
+ * The rename is confined to one parent directory, which is what the migration
309
+ * has always meant: the recorded path is a durable absolute fact, so a process
310
+ * resolving a different DSH home (an isolated test home, a second instance, a
311
+ * moved home) holds a sanitized target in ITS tree while the record still names
312
+ * the real one. Renaming across trees would take a Member's whole private
313
+ * memory out of its home — silently, since only the next session notices an
314
+ * empty index. Such a source is left exactly where it is.
291
315
  */
292
316
  async function migrateLegacyMemoryDirectory(legacyPath, path) {
293
317
  let legacy;
@@ -296,20 +320,34 @@ async function migrateLegacyMemoryDirectory(legacyPath, path) {
296
320
  }
297
321
  catch (error) {
298
322
  if (error.code === 'ENOENT')
299
- return;
323
+ return 'absent';
300
324
  throw error;
301
325
  }
302
326
  if (!legacy.isDirectory())
303
327
  throw new Error(`legacy Member memory path '${legacyPath}' exists but is not a directory`);
328
+ if (dirname(legacyPath) !== dirname(path))
329
+ return 'refused-foreign-home';
304
330
  try {
305
331
  await stat(path);
306
- return; // Sanitized directory already present: migration already done or a new install.
332
+ return 'target-present'; // Sanitized directory already present: migration already done or a new install.
307
333
  }
308
334
  catch (error) {
309
335
  if (error.code !== 'ENOENT')
310
336
  throw error;
311
337
  }
312
338
  await rename(legacyPath, path);
339
+ return 'migrated';
340
+ }
341
+ /**
342
+ * Whether one absolute path names a Member directory inside THIS process's
343
+ * members root. Only such a path is this process's to delete: a recorded path
344
+ * may name the same Member in another DSH home, where the removal happening
345
+ * here has no authority.
346
+ */
347
+ function isInsideMembersRoot(candidate) {
348
+ const fromRoot = relative(dshHomePath('agent-team', 'members'), resolve(candidate));
349
+ // '' is the members root itself and '..' escapes it: only a real descendant is authorized.
350
+ return fromRoot.length > 0 && !fromRoot.startsWith('..') && !isAbsolute(fromRoot);
313
351
  }
314
352
  /** The colon-form twin path of one sanitized Member memory directory, when the segment form admits one. */
315
353
  function twinMemoryDirectoryPath(sanitizedPath) {
@@ -0,0 +1,56 @@
1
+ function escapeRegExp(value) {
2
+ return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
3
+ }
4
+ /**
5
+ * Character ranges the scanner must not read as mentions: fenced code blocks
6
+ * and inline code spans. Authors quote handles there to talk *about* a name
7
+ * rather than call it, and resolving those would notify the wrong Member.
8
+ * The alternation tries the fenced form first so a block is never mistaken for
9
+ * a run of inline spans.
10
+ */
11
+ function codeRanges(body) {
12
+ const ranges = [];
13
+ for (const match of body.matchAll(/```[\s\S]*?```|`[^`\n]*`/g)) {
14
+ const start = match.index ?? 0;
15
+ ranges.push([start, start + match[0].length]);
16
+ }
17
+ return ranges;
18
+ }
19
+ const ALL_MARKER = /(?<![\p{L}\p{N}_@])@all(?=$|[^\p{L}\p{N}_])/iu;
20
+ /**
21
+ * Resolve the `@Handle` mentions authored in one Message body. Matching is
22
+ * deliberately the same shape the Client renders with — case-insensitive, on
23
+ * Unicode word boundaries, longest handle first — so a name that renders as a
24
+ * chip is the same name that delivers a notification.
25
+ *
26
+ * Callers pass the candidates reachable in the Message's Channel, so a name
27
+ * that resolves here is already an addressable target; handles the Channel
28
+ * cannot reach simply stay prose. Writing `@` is required: bare handles are
29
+ * ordinary words, and treating them as mentions would notify on every
30
+ * incidental name-drop.
31
+ *
32
+ * `sender` is excluded because a Message never mentions its own author, which
33
+ * also keeps the result usable as a recipient set without further filtering.
34
+ */
35
+ export function resolveBodyMentions(body, candidates, sender) {
36
+ const usable = candidates.filter(candidate => candidate.memberId !== sender && candidate.handle.trim() !== '');
37
+ const excluded = codeRanges(body);
38
+ const inCode = (index) => excluded.some(([start, end]) => index >= start && index < end);
39
+ const allMarker = ALL_MARKER.exec(body);
40
+ const all = allMarker !== null && !inCode(allMarker.index);
41
+ if (usable.length === 0)
42
+ return { memberIds: Object.freeze([]), all };
43
+ // Longest first so `@Reeves` never resolves as `@Reeve` plus a stray letter.
44
+ const ordered = [...usable].sort((left, right) => right.handle.length - left.handle.length);
45
+ const pattern = new RegExp(`(?<![\\p{L}\\p{N}_@])@(?:${ordered.map(candidate => escapeRegExp(candidate.handle)).join('|')})(?=$|[^\\p{L}\\p{N}_])`, 'giu');
46
+ const matched = new Set();
47
+ for (const match of body.matchAll(pattern)) {
48
+ if (inCode(match.index ?? 0))
49
+ continue;
50
+ const written = match[0].slice(1).toLowerCase();
51
+ const hit = ordered.find(candidate => candidate.handle.toLowerCase() === written);
52
+ if (hit !== undefined)
53
+ matched.add(hit.memberId);
54
+ }
55
+ return { memberIds: Object.freeze(usable.filter(candidate => matched.has(candidate.memberId)).map(candidate => candidate.memberId)), all };
56
+ }
@@ -254,6 +254,7 @@ const threadReadSnapshotDataSchema = z.object({
254
254
  facts: z.array(readFactSchema),
255
255
  readThroughSequence: z.number().int().nonnegative(),
256
256
  remainingUnreadCount: z.number().int().nonnegative(),
257
+ earlierFactCount: z.number().int().nonnegative().optional(),
257
258
  attention: attentionSchema.optional(),
258
259
  inbox: inboxDeltaSchema,
259
260
  }).strict().transform(omitUndefined);
@@ -352,7 +352,6 @@ const _wowyuarm_dsh_agent_team_agentTeam_getAttachment_result$schema = z.object(
352
352
  const _wowyuarm_dsh_agent_team_agentTeam_inbox_parameter_0$schema = z.object({
353
353
  'workspaceId': z.intersection(z.string(), z.unknown()).readonly(),
354
354
  'limit': z.number().readonly().optional(),
355
- 'directOnly': z.boolean().readonly().optional(),
356
355
  })
357
356
  const _wowyuarm_dsh_agent_team_agentTeam_inbox_result$schema = z.object({
358
357
  'items': z.array(z.object({
@@ -376,6 +375,50 @@ const _wowyuarm_dsh_agent_team_agentTeam_inbox_result$schema = z.object({
376
375
  'previewText': z.string().readonly().optional(),
377
376
  'newestSequence': z.number().readonly(),
378
377
  'newestOccurredAt': z.string().readonly(),
378
+ 'newestActor': z.object({
379
+ 'memberId': z.intersection(z.string(), z.unknown()).readonly(),
380
+ 'name': z.string().readonly(),
381
+ }).readonly(),
382
+ 'claimOwners': z.array(z.object({
383
+ 'memberId': z.intersection(z.string(), z.unknown()).readonly(),
384
+ 'name': z.string().readonly(),
385
+ })).readonly(),
386
+ 'attention': z.object({
387
+ 'memberId': z.intersection(z.string(), z.unknown()).readonly(),
388
+ 'threadRef': z.intersection(z.string(), z.unknown()).readonly(),
389
+ 'startSequence': z.number().readonly(),
390
+ 'readThroughSequence': z.number().readonly(),
391
+ }).readonly().optional(),
392
+ })).readonly(),
393
+ 'recent': z.array(z.object({
394
+ 'channelRef': z.intersection(z.string(), z.unknown()).readonly(),
395
+ 'channelName': z.string().readonly().optional(),
396
+ 'task': z.object({
397
+ 'taskRef': z.intersection(z.string(), z.unknown()).readonly(),
398
+ 'channelRef': z.intersection(z.string(), z.unknown()).readonly(),
399
+ 'threadRef': z.intersection(z.string(), z.unknown()).readonly(),
400
+ 'status': z.union([z.literal("done"), z.literal("todo"), z.literal("in_progress"), z.literal("in_review"), z.literal("closed")]).readonly(),
401
+ 'resolution': z.union([z.literal("closed"), z.literal("open"), z.literal("accepted")]).readonly(),
402
+ }).readonly().optional(),
403
+ 'taskNumber': z.number().readonly().optional(),
404
+ 'thread': z.object({
405
+ 'threadRef': z.intersection(z.string(), z.unknown()).readonly(),
406
+ 'taskRef': z.intersection(z.string(), z.unknown()).readonly().optional(),
407
+ 'revision': z.number().readonly(),
408
+ }).readonly(),
409
+ 'unreadCount': z.number().readonly(),
410
+ 'directCount': z.number().readonly(),
411
+ 'previewText': z.string().readonly().optional(),
412
+ 'newestSequence': z.number().readonly(),
413
+ 'newestOccurredAt': z.string().readonly(),
414
+ 'newestActor': z.object({
415
+ 'memberId': z.intersection(z.string(), z.unknown()).readonly(),
416
+ 'name': z.string().readonly(),
417
+ }).readonly(),
418
+ 'claimOwners': z.array(z.object({
419
+ 'memberId': z.intersection(z.string(), z.unknown()).readonly(),
420
+ 'name': z.string().readonly(),
421
+ })).readonly(),
379
422
  'attention': z.object({
380
423
  'memberId': z.intersection(z.string(), z.unknown()).readonly(),
381
424
  'threadRef': z.intersection(z.string(), z.unknown()).readonly(),
@@ -622,6 +665,7 @@ const _wowyuarm_dsh_agent_team_agentTeam_readThread_result$schema = z.object({
622
665
  })).readonly(),
623
666
  'readThroughSequence': z.number().readonly(),
624
667
  'remainingUnreadCount': z.number().readonly(),
668
+ 'earlierFactCount': z.number().readonly().optional(),
625
669
  'attention': z.object({
626
670
  'memberId': z.intersection(z.string(), z.unknown()).readonly(),
627
671
  'threadRef': z.intersection(z.string(), z.unknown()).readonly(),
@@ -811,6 +855,7 @@ const _wowyuarm_dsh_agent_team_agentTeam_reply_result$schema = z.union([z.object
811
855
  'messageRef': z.intersection(z.string(), z.unknown()).readonly(),
812
856
  'sequence': z.number().readonly(),
813
857
  })).readonly(),
858
+ 'undeliveredMentions': z.array(z.intersection(z.string(), z.unknown())).readonly().optional(),
814
859
  })])
815
860
  const _wowyuarm_dsh_agent_team_agentTeam_resolveTaskRefs_parameter_0$schema = z.object({
816
861
  'workspaceId': z.intersection(z.string(), z.unknown()).readonly(),
@@ -1257,7 +1302,7 @@ export const TYPERT = {
1257
1302
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamMemberResult',
1258
1303
  schema: _wowyuarm_dsh_agent_team_agentTeam_addMember_result$schema,
1259
1304
  },
1260
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":718,"column":9},
1305
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":699,"column":9},
1261
1306
  },
1262
1307
  {
1263
1308
  id: '@wowyuarm/dsh-agent-team#agentTeam/archiveChannel',
@@ -1282,7 +1327,7 @@ export const TYPERT = {
1282
1327
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamArchiveChannelResult',
1283
1328
  schema: _wowyuarm_dsh_agent_team_agentTeam_archiveChannel_result$schema,
1284
1329
  },
1285
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":708,"column":9},
1330
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":689,"column":9},
1286
1331
  },
1287
1332
  {
1288
1333
  id: '@wowyuarm/dsh-agent-team#agentTeam/archiveMember',
@@ -1307,7 +1352,7 @@ export const TYPERT = {
1307
1352
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamArchiveMemberResult',
1308
1353
  schema: _wowyuarm_dsh_agent_team_agentTeam_archiveMember_result$schema,
1309
1354
  },
1310
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1105,"column":9},
1355
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1080,"column":9},
1311
1356
  },
1312
1357
  {
1313
1358
  id: '@wowyuarm/dsh-agent-team#agentTeam/changeAttention',
@@ -1332,7 +1377,7 @@ export const TYPERT = {
1332
1377
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamThreadAttentionResult',
1333
1378
  schema: _wowyuarm_dsh_agent_team_agentTeam_changeAttention_result$schema,
1334
1379
  },
1335
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1227,"column":9},
1380
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1202,"column":9},
1336
1381
  },
1337
1382
  {
1338
1383
  id: '@wowyuarm/dsh-agent-team#agentTeam/changes',
@@ -1358,7 +1403,7 @@ export const TYPERT = {
1358
1403
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamChangesResult',
1359
1404
  schema: _wowyuarm_dsh_agent_team_agentTeam_changes_result$schema,
1360
1405
  },
1361
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":639,"column":9},
1406
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":620,"column":9},
1362
1407
  },
1363
1408
  {
1364
1409
  id: '@wowyuarm/dsh-agent-team#agentTeam/changeTask',
@@ -1383,7 +1428,7 @@ export const TYPERT = {
1383
1428
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamTaskResult',
1384
1429
  schema: _wowyuarm_dsh_agent_team_agentTeam_changeTask_result$schema,
1385
1430
  },
1386
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1117,"column":9},
1431
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1092,"column":9},
1387
1432
  },
1388
1433
  {
1389
1434
  id: '@wowyuarm/dsh-agent-team#agentTeam/clearMemberContext',
@@ -1408,7 +1453,7 @@ export const TYPERT = {
1408
1453
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamClearMemberContextResult',
1409
1454
  schema: _wowyuarm_dsh_agent_team_agentTeam_clearMemberContext_result$schema,
1410
1455
  },
1411
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":833,"column":9},
1456
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":814,"column":9},
1412
1457
  },
1413
1458
  {
1414
1459
  id: '@wowyuarm/dsh-agent-team#agentTeam/createChannel',
@@ -1433,7 +1478,7 @@ export const TYPERT = {
1433
1478
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamCreateChannelResult',
1434
1479
  schema: _wowyuarm_dsh_agent_team_agentTeam_createChannel_result$schema,
1435
1480
  },
1436
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":681,"column":9},
1481
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":662,"column":9},
1437
1482
  },
1438
1483
  {
1439
1484
  id: '@wowyuarm/dsh-agent-team#agentTeam/getAttachment',
@@ -1458,7 +1503,7 @@ export const TYPERT = {
1458
1503
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamGetAttachmentResult',
1459
1504
  schema: _wowyuarm_dsh_agent_team_agentTeam_getAttachment_result$schema,
1460
1505
  },
1461
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1213,"column":9},
1506
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1188,"column":9},
1462
1507
  },
1463
1508
  {
1464
1509
  id: '@wowyuarm/dsh-agent-team#agentTeam/inbox',
@@ -1483,7 +1528,7 @@ export const TYPERT = {
1483
1528
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamInbox',
1484
1529
  schema: _wowyuarm_dsh_agent_team_agentTeam_inbox_result$schema,
1485
1530
  },
1486
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1236,"column":3},
1531
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1211,"column":3},
1487
1532
  },
1488
1533
  {
1489
1534
  id: '@wowyuarm/dsh-agent-team#agentTeam/joinChannel',
@@ -1508,7 +1553,7 @@ export const TYPERT = {
1508
1553
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamJoinChannelResult',
1509
1554
  schema: _wowyuarm_dsh_agent_team_agentTeam_joinChannel_result$schema,
1510
1555
  },
1511
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1137,"column":9},
1556
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1112,"column":9},
1512
1557
  },
1513
1558
  {
1514
1559
  id: '@wowyuarm/dsh-agent-team#agentTeam/members',
@@ -1534,7 +1579,7 @@ export const TYPERT = {
1534
1579
  typeSymbol: '@wowyuarm/dsh-agent-team#agentTeam/members:result',
1535
1580
  schema: _wowyuarm_dsh_agent_team_agentTeam_members_result$schema,
1536
1581
  },
1537
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":630,"column":3},
1582
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":611,"column":3},
1538
1583
  },
1539
1584
  {
1540
1585
  id: '@wowyuarm/dsh-agent-team#agentTeam/promoteThread',
@@ -1559,7 +1604,7 @@ export const TYPERT = {
1559
1604
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamPromoteThreadResult',
1560
1605
  schema: _wowyuarm_dsh_agent_team_agentTeam_promoteThread_result$schema,
1561
1606
  },
1562
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1127,"column":9},
1607
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1102,"column":9},
1563
1608
  },
1564
1609
  {
1565
1610
  id: '@wowyuarm/dsh-agent-team#agentTeam/putAttachment',
@@ -1584,7 +1629,7 @@ export const TYPERT = {
1584
1629
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamPutAttachmentResult',
1585
1630
  schema: _wowyuarm_dsh_agent_team_agentTeam_putAttachment_result$schema,
1586
1631
  },
1587
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1200,"column":9},
1632
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1175,"column":9},
1588
1633
  },
1589
1634
  {
1590
1635
  id: '@wowyuarm/dsh-agent-team#agentTeam/readThread',
@@ -1609,7 +1654,7 @@ export const TYPERT = {
1609
1654
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamThreadReadResult',
1610
1655
  schema: _wowyuarm_dsh_agent_team_agentTeam_readThread_result$schema,
1611
1656
  },
1612
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1243,"column":9},
1657
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1218,"column":9},
1613
1658
  },
1614
1659
  {
1615
1660
  id: '@wowyuarm/dsh-agent-team#agentTeam/recoverMember',
@@ -1634,7 +1679,7 @@ export const TYPERT = {
1634
1679
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamRecoverMemberResult',
1635
1680
  schema: _wowyuarm_dsh_agent_team_agentTeam_recoverMember_result$schema,
1636
1681
  },
1637
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":778,"column":9},
1682
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":759,"column":9},
1638
1683
  },
1639
1684
  {
1640
1685
  id: '@wowyuarm/dsh-agent-team#agentTeam/removeChannelMember',
@@ -1659,7 +1704,7 @@ export const TYPERT = {
1659
1704
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamRemoveChannelMemberResult',
1660
1705
  schema: _wowyuarm_dsh_agent_team_agentTeam_removeChannelMember_result$schema,
1661
1706
  },
1662
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1148,"column":9},
1707
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1123,"column":9},
1663
1708
  },
1664
1709
  {
1665
1710
  id: '@wowyuarm/dsh-agent-team#agentTeam/reply',
@@ -1684,7 +1729,7 @@ export const TYPERT = {
1684
1729
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamReplyResult',
1685
1730
  schema: _wowyuarm_dsh_agent_team_agentTeam_reply_result$schema,
1686
1731
  },
1687
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1221,"column":9},
1732
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1196,"column":9},
1688
1733
  },
1689
1734
  {
1690
1735
  id: '@wowyuarm/dsh-agent-team#agentTeam/resolveTaskRefs',
@@ -1709,7 +1754,7 @@ export const TYPERT = {
1709
1754
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamResolveTaskRefsResult',
1710
1755
  schema: _wowyuarm_dsh_agent_team_agentTeam_resolveTaskRefs_result$schema,
1711
1756
  },
1712
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":617,"column":3},
1757
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":598,"column":3},
1713
1758
  },
1714
1759
  {
1715
1760
  id: '@wowyuarm/dsh-agent-team#agentTeam/sendMessage',
@@ -1734,7 +1779,7 @@ export const TYPERT = {
1734
1779
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamSendMessageResult',
1735
1780
  schema: _wowyuarm_dsh_agent_team_agentTeam_sendMessage_result$schema,
1736
1781
  },
1737
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1157,"column":9},
1782
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1132,"column":9},
1738
1783
  },
1739
1784
  {
1740
1785
  id: '@wowyuarm/dsh-agent-team#agentTeam/threadHistory',
@@ -1759,7 +1804,7 @@ export const TYPERT = {
1759
1804
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamThreadHistory',
1760
1805
  schema: _wowyuarm_dsh_agent_team_agentTeam_threadHistory_result$schema,
1761
1806
  },
1762
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1261,"column":3},
1807
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1236,"column":3},
1763
1808
  },
1764
1809
  {
1765
1810
  id: '@wowyuarm/dsh-agent-team#agentTeam/threadObservations',
@@ -1784,7 +1829,7 @@ export const TYPERT = {
1784
1829
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamThreadObservations',
1785
1830
  schema: _wowyuarm_dsh_agent_team_agentTeam_threadObservations_result$schema,
1786
1831
  },
1787
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1254,"column":3},
1832
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1229,"column":3},
1788
1833
  },
1789
1834
  {
1790
1835
  id: '@wowyuarm/dsh-agent-team#agentTeam/updateChannel',
@@ -1809,7 +1854,7 @@ export const TYPERT = {
1809
1854
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamUpdateChannelResult',
1810
1855
  schema: _wowyuarm_dsh_agent_team_agentTeam_updateChannel_result$schema,
1811
1856
  },
1812
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":693,"column":9},
1857
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":674,"column":9},
1813
1858
  },
1814
1859
  {
1815
1860
  id: '@wowyuarm/dsh-agent-team#agentTeam/updateMember',
@@ -1834,7 +1879,7 @@ export const TYPERT = {
1834
1879
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamMemberResult',
1835
1880
  schema: _wowyuarm_dsh_agent_team_agentTeam_updateMember_result$schema,
1836
1881
  },
1837
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1045,"column":9},
1882
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1020,"column":9},
1838
1883
  },
1839
1884
  {
1840
1885
  id: '@wowyuarm/dsh-agent-team#agentTeam/view',
@@ -1859,7 +1904,7 @@ export const TYPERT = {
1859
1904
  typeSymbol: '@wowyuarm/dsh-agent-team/types#AgentTeamView',
1860
1905
  schema: _wowyuarm_dsh_agent_team_agentTeam_view_result$schema,
1861
1906
  },
1862
- sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1268,"column":3},
1907
+ sourceLocation: {"file":"packages/agent-team/src/index.ts","line":1243,"column":3},
1863
1908
  },
1864
1909
  ],
1865
1910
  model: {
@@ -2392,15 +2437,19 @@ export const TYPERT = {
2392
2437
  },
2393
2438
  {
2394
2439
  "name": "AgentTeamInbox",
2395
- "declaration": "export interface AgentTeamInbox {\n readonly items: readonly AgentTeamInboxItem[];\n readonly totalUnreadCount: number;\n readonly totalDirectCount: number;\n}"
2440
+ "declaration": "export interface AgentTeamInbox {\n readonly items: readonly AgentTeamInboxItem[];\n readonly recent: readonly AgentTeamInboxItem[];\n readonly totalUnreadCount: number;\n readonly totalDirectCount: number;\n}"
2441
+ },
2442
+ {
2443
+ "name": "AgentTeamInboxActor",
2444
+ "declaration": "export interface AgentTeamInboxActor {\n readonly memberId: AgentTeamMemberId;\n readonly name: string;\n}"
2396
2445
  },
2397
2446
  {
2398
2447
  "name": "AgentTeamInboxItem",
2399
- "declaration": "export interface AgentTeamInboxItem {\n readonly channelRef: AgentTeamChannelRef;\n readonly channelName?: string;\n readonly task?: AgentTeamTask;\n readonly taskNumber?: number;\n readonly thread: AgentTeamThread;\n readonly unreadCount: number;\n readonly directCount: number;\n readonly previewText?: string;\n readonly newestSequence: number;\n readonly newestOccurredAt: string;\n readonly attention?: AgentTeamThreadAttention;\n}"
2448
+ "declaration": "export interface AgentTeamInboxItem {\n readonly channelRef: AgentTeamChannelRef;\n readonly channelName?: string;\n readonly task?: AgentTeamTask;\n readonly taskNumber?: number;\n readonly thread: AgentTeamThread;\n readonly unreadCount: number;\n readonly directCount: number;\n readonly previewText?: string;\n readonly newestSequence: number;\n readonly newestOccurredAt: string;\n readonly newestActor: AgentTeamInboxActor;\n readonly claimOwners: readonly AgentTeamInboxActor[];\n readonly attention?: AgentTeamThreadAttention;\n}"
2400
2449
  },
2401
2450
  {
2402
2451
  "name": "AgentTeamInboxRequest",
2403
- "declaration": "export interface AgentTeamInboxRequest {\n readonly workspaceId: WorkspaceId;\n readonly limit?: number;\n readonly directOnly?: boolean;\n}"
2452
+ "declaration": "export interface AgentTeamInboxRequest {\n readonly workspaceId: WorkspaceId;\n readonly limit?: number;\n}"
2404
2453
  },
2405
2454
  {
2406
2455
  "name": "AgentTeamJoinChannelRequest",
@@ -2516,7 +2565,7 @@ export const TYPERT = {
2516
2565
  },
2517
2566
  {
2518
2567
  "name": "AgentTeamReplyCommittedResult",
2519
- "declaration": "export interface AgentTeamReplyCommittedResult {\n readonly kind: 'committed';\n readonly receipt: AgentTeamOperationReceipt;\n readonly message: AgentTeamMessage;\n readonly task?: AgentTeamTask;\n readonly thread: AgentTeamThread;\n readonly attention: readonly AgentTeamThreadAttention[];\n readonly directMarkers: readonly AgentTeamDirectMarker[];\n}"
2568
+ "declaration": "export interface AgentTeamReplyCommittedResult {\n readonly kind: 'committed';\n readonly receipt: AgentTeamOperationReceipt;\n readonly message: AgentTeamMessage;\n readonly task?: AgentTeamTask;\n readonly thread: AgentTeamThread;\n readonly attention: readonly AgentTeamThreadAttention[];\n readonly directMarkers: readonly AgentTeamDirectMarker[];\n readonly undeliveredMentions?: readonly AgentTeamMemberId[];\n}"
2520
2569
  },
2521
2570
  {
2522
2571
  "name": "AgentTeamReplyRequest",
@@ -2652,7 +2701,7 @@ export const TYPERT = {
2652
2701
  },
2653
2702
  {
2654
2703
  "name": "AgentTeamThreadReadResult",
2655
- "declaration": "export interface AgentTeamThreadReadResult {\n readonly receipt?: AgentTeamOperationReceipt;\n readonly task?: AgentTeamTask;\n readonly thread: AgentTeamThread;\n readonly claims: readonly AgentTeamClaim[];\n readonly anchor: AgentTeamMessage;\n readonly anchorMentions: readonly AgentTeamMemberId[];\n readonly facts: readonly AgentTeamThreadReadFact[];\n readonly readThroughSequence: number;\n readonly remainingUnreadCount: number;\n readonly attention?: AgentTeamThreadAttention;\n readonly consumedDirectMarkers: readonly AgentTeamDirectMarker[];\n readonly contextAdvice?: AgentTeamContextAdvice;\n}"
2704
+ "declaration": "export interface AgentTeamThreadReadResult {\n readonly receipt?: AgentTeamOperationReceipt;\n readonly task?: AgentTeamTask;\n readonly thread: AgentTeamThread;\n readonly claims: readonly AgentTeamClaim[];\n readonly anchor: AgentTeamMessage;\n readonly anchorMentions: readonly AgentTeamMemberId[];\n readonly facts: readonly AgentTeamThreadReadFact[];\n readonly readThroughSequence: number;\n readonly remainingUnreadCount: number;\n readonly earlierFactCount?: number;\n readonly attention?: AgentTeamThreadAttention;\n readonly consumedDirectMarkers: readonly AgentTeamDirectMarker[];\n readonly contextAdvice?: AgentTeamContextAdvice;\n}"
2656
2705
  },
2657
2706
  {
2658
2707
  "name": "AgentTeamThreadRef",
@@ -1 +1 @@
1
- {"version":3,"file":"typert.remote-client.d.ts","names":["addMember","archiveChannel","archiveMember","changeAttention","changes","changeTask","clearMemberContext","createChannel","getAttachment","inbox","joinChannel","members","promoteThread","putAttachment","readThread","recoverMember","removeChannelMember","reply","resolveTaskRefs","sendMessage","threadHistory","threadObservations","updateChannel","updateMember","view"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;IA6sBQA,S;IAVAC,c;IA6YAC,a;IA0HAC,e;IA5kBAC,O;IA8dAC,U;IA5RAC,kB;IAxJAC,a;IAohBAC,a;IAuBNC,K;IAnGMC,W;IA3fNC,O;IAifMC,a;IAyEAC,a;IA2CAC,U;IAjdAC,a;IAkXAC,mB;IAyEAC,K;IA5lBNC,e;IA4hBMC,W;IAwGNC,a;IAPAC,kB;IAjjBMC,a;IAgWAC,Y;IA+NNC,I;;;IAtiBMxB,qB;IAVAC,0B;IA6YAC,yB;IA0HAC,2B;IA5kBAC,mB;IA8dAC,sB;IA5RAC,8B;IAxJAC,yB;IAohBAC,yB;IAuBNC,iB;IAnGMC,uB;IA3fNC,mB;IAifMC,yB;IAyEAC,yB;IA2CAC,sB;IAjdAC,yB;IAkXAC,+B;IAyEAC,iB;IA5lBNC,2B;IA4hBMC,uB;IAwGNC,yB;IAPAC,8B;IAjjBMC,yB;IAgWAC,wB;IA+NNC,gB","ignoreList":[]}
1
+ {"version":3,"file":"typert.remote-client.d.ts","names":["addMember","archiveChannel","archiveMember","changeAttention","changes","changeTask","clearMemberContext","createChannel","getAttachment","inbox","joinChannel","members","promoteThread","putAttachment","readThread","recoverMember","removeChannelMember","reply","resolveTaskRefs","sendMessage","threadHistory","threadObservations","updateChannel","updateMember","view"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;IA0rBQA,S;IAVAC,c;IAuYAC,a;IA0HAC,e;IAtkBAC,O;IAwdAC,U;IAtRAC,kB;IAxJAC,a;IA8gBAC,a;IAuBNC,K;IAnGMC,W;IArfNC,O;IA2eMC,a;IAyEAC,a;IA2CAC,U;IA3cAC,a;IA4WAC,mB;IAyEAC,K;IAtlBNC,e;IAshBMC,W;IAwGNC,a;IAPAC,kB;IA3iBMC,a;IA0VAC,Y;IA+NNC,I;;;IAhiBMxB,qB;IAVAC,0B;IAuYAC,yB;IA0HAC,2B;IAtkBAC,mB;IAwdAC,sB;IAtRAC,8B;IAxJAC,yB;IA8gBAC,yB;IAuBNC,iB;IAnGMC,uB;IArfNC,mB;IA2eMC,yB;IAyEAC,yB;IA2CAC,sB;IA3cAC,yB;IA4WAC,+B;IAyEAC,iB;IAtlBNC,2B;IAshBMC,uB;IAwGNC,yB;IAPAC,8B;IA3iBMC,yB;IA0VAC,wB;IA+NNC,gB","ignoreList":[]}