@excitedjs/dreamux 0.13.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/CHANGELOG.json +41 -0
  2. package/CHANGELOG.md +16 -1
  3. package/README.md +7 -4
  4. package/dist/admin/methods.js +86 -61
  5. package/dist/admin/methods.js.map +1 -1
  6. package/dist/admin/socket.js +31 -0
  7. package/dist/admin/socket.js.map +1 -1
  8. package/dist/agent-runtime/builtin/claude-code/runtime.js +8 -3
  9. package/dist/agent-runtime/builtin/claude-code/runtime.js.map +1 -1
  10. package/dist/agent-runtime/builtin/claude-code/supervisor.js +5 -0
  11. package/dist/agent-runtime/builtin/claude-code/supervisor.js.map +1 -1
  12. package/dist/agent-runtime/builtin/codex/codex-home.js +2 -3
  13. package/dist/agent-runtime/builtin/codex/codex-home.js.map +1 -1
  14. package/dist/agent-runtime/builtin/codex/paths.js +16 -62
  15. package/dist/agent-runtime/builtin/codex/paths.js.map +1 -1
  16. package/dist/agent-runtime/builtin/codex/runtime-support.js +4 -3
  17. package/dist/agent-runtime/builtin/codex/runtime-support.js.map +1 -1
  18. package/dist/agent-runtime/builtin/codex/runtime.js +5 -6
  19. package/dist/agent-runtime/builtin/codex/runtime.js.map +1 -1
  20. package/dist/agent-runtime/builtin/codex/supervisor.js +11 -1
  21. package/dist/agent-runtime/builtin/codex/supervisor.js.map +1 -1
  22. package/dist/agent-runtime/completion-body.js +14 -9
  23. package/dist/agent-runtime/completion-body.js.map +1 -1
  24. package/dist/channel/feishu/bot.js +0 -18
  25. package/dist/channel/feishu/bot.js.map +1 -1
  26. package/dist/channel/feishu/feishu-message.js +9 -2
  27. package/dist/channel/feishu/feishu-message.js.map +1 -1
  28. package/dist/cli/doctor.js +23 -0
  29. package/dist/cli/doctor.js.map +1 -1
  30. package/dist/cli/dreamux.js +1 -1
  31. package/dist/cli/dreamux.js.map +1 -1
  32. package/dist/cli/server-ctl.js +2 -2
  33. package/dist/cli/server.js +9 -4
  34. package/dist/cli/server.js.map +1 -1
  35. package/dist/daemon/restart-intent.js +7 -2
  36. package/dist/daemon/restart-intent.js.map +1 -1
  37. package/dist/dispatcher-service/dispatcher/base-prompt.js +4 -4
  38. package/dist/dispatcher-service/dispatcher/base-prompt.js.map +1 -1
  39. package/dist/dispatcher-service/dispatcher/service.js +7 -10
  40. package/dist/dispatcher-service/dispatcher/service.js.map +1 -1
  41. package/dist/dispatcher-service/dispatcher-workspace.js +108 -0
  42. package/dist/dispatcher-service/dispatcher-workspace.js.map +1 -0
  43. package/dist/dispatcher-service/service.js +5 -12
  44. package/dist/dispatcher-service/service.js.map +1 -1
  45. package/dist/dispatcher-service/team/service.js +214 -65
  46. package/dist/dispatcher-service/team/service.js.map +1 -1
  47. package/dist/dispatcher-service/team/store.js +6 -0
  48. package/dist/dispatcher-service/team/store.js.map +1 -1
  49. package/dist/dispatcher-service/team/types.js.map +1 -1
  50. package/dist/dispatcher-service/teammate/identity-store.js +11 -77
  51. package/dist/dispatcher-service/teammate/identity-store.js.map +1 -1
  52. package/dist/dispatcher-service/teammate/name-allocator.js +86 -0
  53. package/dist/dispatcher-service/teammate/name-allocator.js.map +1 -0
  54. package/dist/dispatcher-service/teammate/runtime-state.js +26 -8
  55. package/dist/dispatcher-service/teammate/runtime-state.js.map +1 -1
  56. package/dist/dispatcher-service/teammate/service.js +365 -113
  57. package/dist/dispatcher-service/teammate/service.js.map +1 -1
  58. package/dist/dispatcher-service/teammate/session-ledger.js +306 -0
  59. package/dist/dispatcher-service/teammate/session-ledger.js.map +1 -0
  60. package/dist/dispatcher-service/teammate/types.js +14 -0
  61. package/dist/dispatcher-service/teammate/types.js.map +1 -1
  62. package/dist/dispatcher-service/teammate/worktree-manager.js +74 -4
  63. package/dist/dispatcher-service/teammate/worktree-manager.js.map +1 -1
  64. package/dist/dispatcher-service/teammate/worktree-paths.js +53 -0
  65. package/dist/dispatcher-service/teammate/worktree-paths.js.map +1 -0
  66. package/dist/mcp/team-mcp.js +86 -75
  67. package/dist/mcp/team-mcp.js.map +1 -1
  68. package/dist/mcp/teammate-mcp.js +32 -25
  69. package/dist/mcp/teammate-mcp.js.map +1 -1
  70. package/dist/onboard/run.js +3 -3
  71. package/dist/onboard/run.js.map +1 -1
  72. package/dist/onboard/uninstall.js +7 -1
  73. package/dist/onboard/uninstall.js.map +1 -1
  74. package/dist/platform/logs.js +32 -0
  75. package/dist/platform/logs.js.map +1 -0
  76. package/dist/platform/owner-only-dir.js +37 -0
  77. package/dist/platform/owner-only-dir.js.map +1 -0
  78. package/dist/platform/paths.js +130 -33
  79. package/dist/platform/paths.js.map +1 -1
  80. package/dist/platform/runtime-sockets.js +127 -0
  81. package/dist/platform/runtime-sockets.js.map +1 -0
  82. package/dist/server.js +47 -1
  83. package/dist/server.js.map +1 -1
  84. package/package.json +1 -1
  85. package/skills/dispatcher/SKILL.md +62 -38
  86. package/skills/dispatcher/references/dispatch-task.md +3 -3
  87. package/skills/dispatcher/references/inspect-and-resume.md +5 -3
  88. package/skills/dreamux-maintenance/SKILL.md +21 -0
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/dispatcher-service/dispatcher/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/dispatcher-service/dispatcher/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import { constants } from 'node:fs';
2
+ import { access, mkdir, stat } from 'node:fs/promises';
3
+ import { resolve } from 'node:path';
4
+ /**
5
+ * Dispatcher workspace cwd policy (issue #182 PR-4).
6
+ *
7
+ * Every configured dispatcher MUST declare an explicit `cwd`: there is no
8
+ * fallback to a Dreamux state directory (`~/.dreamux/state/<id>/cwd`). The
9
+ * workspace is the dispatcher agent's working directory AND the root under
10
+ * which Dreamux-managed TeamMate/Team worktrees live
11
+ * (`<workspace>/.workspace/worktree/...`), so it must be a real, operator-owned
12
+ * project directory — never inside Dreamux's own state tree.
13
+ *
14
+ * The policy is enforced loud at server startup and the dispatcher launch path,
15
+ * and diagnosed (non-throwing) by `dreamux doctor`.
16
+ */
17
+ /**
18
+ * The configured, absolute dispatcher workspace cwd, or `null` when the
19
+ * dispatcher declares no `cwd`. Pure: it resolves the configured value to an
20
+ * absolute path but touches no filesystem.
21
+ */
22
+ export function configuredDispatcherCwd(config, dispatcherId) {
23
+ const entry = config.dispatchers.find((dispatcher) => dispatcher.id === dispatcherId);
24
+ const cwd = entry?.cwd ?? null;
25
+ if (cwd === null || cwd.trim() === '')
26
+ return null;
27
+ return resolve(cwd);
28
+ }
29
+ /**
30
+ * Resolve and validate a dispatcher's workspace cwd, failing loud when the
31
+ * contract is broken (issue #182 PR-4):
32
+ *
33
+ * - no explicit `cwd` configured → throw (no state-dir fallback);
34
+ * - cwd configured but missing → created with `mkdir -p` semantics;
35
+ * - cwd not a directory, or not read/write/exec accessible → throw.
36
+ *
37
+ * Returns the absolute, validated workspace path. Idempotent: safe to call at
38
+ * startup pre-flight and again per dispatcher launch / teammate spawn.
39
+ */
40
+ export async function ensureDispatcherWorkspace(config, dispatcherId) {
41
+ const cwd = configuredDispatcherCwd(config, dispatcherId);
42
+ if (cwd === null) {
43
+ throw new Error(`dispatcher ${JSON.stringify(dispatcherId)} has no configured \`cwd\`; ` +
44
+ 'set an explicit workspace directory in ~/.dreamux/config.json — dreamux ' +
45
+ 'no longer falls back to a state directory (issue #182)');
46
+ }
47
+ try {
48
+ await mkdir(cwd, { recursive: true });
49
+ }
50
+ catch (err) {
51
+ throw new Error(`dispatcher ${JSON.stringify(dispatcherId)} workspace cwd could not be ` +
52
+ `created: ${cwd}: ${err instanceof Error ? err.message : String(err)}`);
53
+ }
54
+ let info;
55
+ try {
56
+ info = await stat(cwd);
57
+ }
58
+ catch (err) {
59
+ throw new Error(`dispatcher ${JSON.stringify(dispatcherId)} workspace cwd is not ` +
60
+ `accessible: ${cwd}: ${err instanceof Error ? err.message : String(err)}`);
61
+ }
62
+ if (!info.isDirectory()) {
63
+ throw new Error(`dispatcher ${JSON.stringify(dispatcherId)} workspace cwd is not a ` +
64
+ `directory: ${cwd}`);
65
+ }
66
+ try {
67
+ await access(cwd, constants.R_OK | constants.W_OK | constants.X_OK);
68
+ }
69
+ catch (err) {
70
+ throw new Error(`dispatcher ${JSON.stringify(dispatcherId)} workspace cwd is not ` +
71
+ `read/write accessible: ${cwd}: ${err instanceof Error ? err.message : String(err)}`);
72
+ }
73
+ return cwd;
74
+ }
75
+ /**
76
+ * Non-throwing variant for `dreamux doctor`: reports the cwd contract state
77
+ * without creating or mutating anything. A configured-but-missing directory is
78
+ * not an error — server startup creates it — but a missing/empty `cwd`, a
79
+ * non-directory, or an inaccessible directory is.
80
+ */
81
+ export async function diagnoseDispatcherWorkspace(config, dispatcherId) {
82
+ const cwd = configuredDispatcherCwd(config, dispatcherId);
83
+ if (cwd === null) {
84
+ return {
85
+ ok: false,
86
+ detail: 'no configured `cwd`; set an explicit workspace directory in config.json ' +
87
+ '(dreamux no longer falls back to a state directory)',
88
+ };
89
+ }
90
+ let info;
91
+ try {
92
+ info = await stat(cwd);
93
+ }
94
+ catch {
95
+ return { ok: true, detail: `${cwd} (missing; created at server startup)` };
96
+ }
97
+ if (!info.isDirectory()) {
98
+ return { ok: false, detail: `${cwd} exists but is not a directory` };
99
+ }
100
+ try {
101
+ await access(cwd, constants.R_OK | constants.W_OK | constants.X_OK);
102
+ }
103
+ catch {
104
+ return { ok: false, detail: `${cwd} is not read/write accessible` };
105
+ }
106
+ return { ok: true, detail: cwd };
107
+ }
108
+ //# sourceMappingURL=dispatcher-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatcher-workspace.js","sourceRoot":"","sources":["../../src/dispatcher-service/dispatcher-workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,MAAqB,EACrB,YAAoB;IAEpB,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;IACtF,MAAM,GAAG,GAAG,KAAK,EAAE,GAAG,IAAI,IAAI,CAAC;IAC/B,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAqB,EACrB,YAAoB;IAEpB,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,8BAA8B;YACtE,0EAA0E;YAC1E,wDAAwD,CAC3D,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,8BAA8B;YACtE,YAAY,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACzE,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,wBAAwB;YAChE,eAAe,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5E,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,0BAA0B;YAClE,cAAc,GAAG,EAAE,CACtB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,wBAAwB;YAChE,0BAA0B,GAAG,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CACvF,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAOD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAAqB,EACrB,YAAoB;IAEpB,MAAM,GAAG,GAAG,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1D,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,0EAA0E;gBAC1E,qDAAqD;SACxD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC;IACT,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,uCAAuC,EAAE,CAAC;IAC7E,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,gCAAgC,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAG,+BAA+B,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACnC,CAAC"}
@@ -61,7 +61,6 @@ export class DispatcherService {
61
61
  });
62
62
  this.teams = new TeamService({
63
63
  teammates: this.teammates,
64
- createFeishuGroup: (input) => this.dispatchers.createFeishuGroup(input),
65
64
  });
66
65
  }
67
66
  setRestartIntent(consumer) {
@@ -150,14 +149,8 @@ export class DispatcherService {
150
149
  getTeamMateHistory(input) {
151
150
  return this.teammates.history(input);
152
151
  }
153
- getTeamMateHistoryEvents(dispatcherId, name) {
154
- return this.teammates.historyEvents(dispatcherId, name);
155
- }
156
- getTeamMateLast(dispatcherId, name) {
157
- return this.teammates.last(dispatcherId, name);
158
- }
159
- getTeamMateContext(dispatcherId, name) {
160
- return this.teammates.context(dispatcherId, name);
152
+ getTeamMateLast(dispatcherId, name, turns) {
153
+ return this.teammates.last(dispatcherId, name, turns);
161
154
  }
162
155
  getTeamMateCapabilities() {
163
156
  return this.teammates.getCapabilities();
@@ -165,15 +158,15 @@ export class DispatcherService {
165
158
  createTeam(input) {
166
159
  return this.teams.create(input);
167
160
  }
168
- createTeamGroup(input) {
169
- return this.teams.createGroup(input);
170
- }
171
161
  listTeams(dispatcherId) {
172
162
  return this.teams.list(dispatcherId);
173
163
  }
174
164
  getTeamStatus(dispatcherId, teamId) {
175
165
  return this.teams.status(dispatcherId, teamId);
176
166
  }
167
+ getTeamHistory(input) {
168
+ return this.teams.history(input);
169
+ }
177
170
  getTeamLedger(dispatcherId, teamId) {
178
171
  return this.teams.ledger(dispatcherId, teamId);
179
172
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dispatcher-service/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/dispatcher-service/service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
+ import { Buffer } from 'node:buffer';
1
2
  import { WorktreeManager } from '../teammate/worktree-manager.js';
2
- import { dispatcherPrincipal, teamLeaderPrincipal } from '../teammate/types.js';
3
+ import { dispatcherPrincipal, requireLifecycleText, teamLeaderPrincipal, } from '../teammate/types.js';
3
4
  import { ChannelBindingStore } from '../channel-binding/store.js';
4
5
  import { TeamStore } from './store.js';
5
6
  import { validateTeamId } from './types.js';
@@ -12,6 +13,9 @@ export class TeamService {
12
13
  this.opts = opts;
13
14
  }
14
15
  async create(input) {
16
+ // Required recovery subject — enforced for in-process callers too
17
+ // (issue #182 PR-3).
18
+ requireLifecycleText(input.intent, 'Team create intent');
15
19
  const teamId = validateTeamId(input.name);
16
20
  const existing = await this.store.get(input.dispatcherId, teamId);
17
21
  if (existing !== null && existing.status !== 'closed') {
@@ -21,13 +25,23 @@ export class TeamService {
21
25
  dispatcherId: input.dispatcherId,
22
26
  teammateName: `team-${teamId}`,
23
27
  cwd: input.repoCwd,
28
+ dispatcherWorkspace: await this.opts.teammates.dispatcherWorkspace(input.dispatcherId),
24
29
  request: input.worktree ?? {
25
30
  mode: 'managed',
26
31
  slug: `team-${teamId}`,
27
32
  cleanup: 'keep',
28
33
  },
29
34
  });
30
- const leaderName = `${teamId}-leader`;
35
+ // The TeamLeader address is a concrete, never-reused name (issue #188), not
36
+ // a reconstructed `${teamId}-leader`. ALWAYS allocate a fresh one — including
37
+ // when recreating a closed Team: `createTeamLeader` mints a new session and
38
+ // clears the checkpoint (it does not truly resume the old leader), so reusing
39
+ // the old closed `tl-` name would map one concrete name to multiple sessions
40
+ // and break the name↔session invariant. The old closed leader identity stays
41
+ // untouched. Routing/status/dissolve read the stored leader_name, never
42
+ // recompute it. `${teamId}-leader` survives only as the display label.
43
+ const leaderName = await this.opts.teammates.allocateLeaderName(input.dispatcherId, teamId);
44
+ const leaderDisplayName = `${teamId}-leader`;
31
45
  let team = existing ??
32
46
  (await this.store.create({
33
47
  dispatcher_id: input.dispatcherId,
@@ -40,7 +54,7 @@ export class TeamService {
40
54
  runtime_cwd: workspace.runtimeCwd,
41
55
  worktree: workspace.worktree,
42
56
  status: 'starting',
43
- intent: input.intent ?? null,
57
+ intent: input.intent,
44
58
  closed_at: null,
45
59
  close_note: null,
46
60
  }));
@@ -49,29 +63,64 @@ export class TeamService {
49
63
  closedAt: null,
50
64
  closeNote: null,
51
65
  worktree: workspace.worktree,
66
+ // Always write the required intent, so a reused closed Team record adopts
67
+ // the new create.intent instead of keeping its old value (issue #182 PR-3).
68
+ intent: input.intent,
69
+ // Adopt the freshly allocated concrete leader name (#188) so a recreated
70
+ // closed Team routes/statuses/dissolves on the new leader, not the old one.
71
+ leaderName,
52
72
  });
53
73
  const prompt = input.prompt ?? teamLeaderPrompt(team);
54
74
  const leader = await this.opts.teammates.createTeamLeader({
55
75
  dispatcherId: input.dispatcherId,
56
76
  teamId,
57
77
  name: leaderName,
78
+ displayName: leaderDisplayName,
58
79
  prompt,
59
80
  agentRuntime: input.leaderAgentRuntime,
60
81
  sourceCwd: workspace.sourceCwd,
61
82
  sourceRepo: workspace.sourceRepo,
62
83
  runtimeCwd: workspace.runtimeCwd,
63
84
  worktree: workspace.worktree,
64
- intent: input.intent ?? null,
85
+ intent: input.intent,
65
86
  });
66
87
  team = await this.store.update(team, { status: 'running' });
67
88
  await this.store.appendLedger(team, {
68
89
  type: 'create',
69
90
  summary: `created team ${teamId} with leader ${leaderName}`,
70
91
  });
92
+ // Optionally bind an existing Feishu group at create time (issue #182 PR-8,
93
+ // the settled replacement for the retired create_group flow). Bind is the
94
+ // last step; if it fails the Team is already persisted, so roll back by
95
+ // dissolving the just-created Team rather than leaving a half-created one a
96
+ // retry would then collide with as "already exists" (mirrors the rollback
97
+ // the old create_group flow did on Feishu setup failure).
98
+ let binding = null;
99
+ if (input.bindGroup !== undefined) {
100
+ try {
101
+ const bound = await this.bindChannel({
102
+ dispatcherId: input.dispatcherId,
103
+ teamId,
104
+ provider: 'builtin:feishu',
105
+ chatId: input.bindGroup.chatId,
106
+ chatType: 'group',
107
+ });
108
+ binding = { provider: bound.provider, chat_id: bound.chat_id };
109
+ }
110
+ catch (err) {
111
+ await this.dissolve({
112
+ dispatcherId: input.dispatcherId,
113
+ teamId,
114
+ note: 'Team group binding failed at create time',
115
+ });
116
+ throw err;
117
+ }
118
+ }
71
119
  return {
72
120
  team,
73
121
  leader: leader.teammate,
74
122
  member_count: await this.memberCount(team),
123
+ binding,
75
124
  turn: leader.turn,
76
125
  };
77
126
  }
@@ -79,13 +128,39 @@ export class TeamService {
79
128
  const teams = await this.store.list(dispatcherId);
80
129
  const out = [];
81
130
  for (const team of teams)
82
- out.push(await this.summary(team));
131
+ out.push(await this.listRow(team));
83
132
  return out;
84
133
  }
85
134
  async status(dispatcherId, teamId) {
86
135
  const team = await this.mustTeam(dispatcherId, teamId);
87
136
  return this.summary(team);
88
137
  }
138
+ /**
139
+ * Filterable Team recovery search (issue #182 PR-7) — the Team-side mirror of
140
+ * the TeamMate `history` surface. Finds Teams (closed included) by
141
+ * name/status/repo/intent/time, sorted most-recent first, with a cursor. The
142
+ * raw per-team lifecycle event timeline stays internal (`ledger`), not here.
143
+ */
144
+ async history(input) {
145
+ const teams = await this.store.list(input.dispatcherId);
146
+ const rows = [];
147
+ for (const team of teams) {
148
+ const row = await this.historyRow(team);
149
+ if (matchesTeamHistoryQuery(row, input))
150
+ rows.push(row);
151
+ }
152
+ rows.sort((a, b) => b.updated_at - a.updated_at ||
153
+ b.created_at - a.created_at ||
154
+ a.name.localeCompare(b.name));
155
+ const start = input.cursor !== undefined ? decodeTeamCursor(input.cursor) : 0;
156
+ const limit = clampTeamHistoryLimit(input.limit);
157
+ const items = rows.slice(start, start + limit);
158
+ const next = start + items.length;
159
+ return {
160
+ items,
161
+ next_cursor: next < rows.length ? encodeTeamCursor(next) : null,
162
+ };
163
+ }
89
164
  async ledger(dispatcherId, teamId) {
90
165
  const team = await this.store.get(dispatcherId, validateTeamId(teamId));
91
166
  return {
@@ -94,6 +169,9 @@ export class TeamService {
94
169
  };
95
170
  }
96
171
  async dissolve(input) {
172
+ // Required dissolve reason — enforced for in-process callers too (issue
173
+ // #182 PR-3); it also feeds the member/leader closes and the ledger.
174
+ requireLifecycleText(input.note, 'Team dissolve note');
97
175
  const team = await this.mustTeam(input.dispatcherId, input.teamId);
98
176
  for (const binding of await this.bindings.list(input.dispatcherId)) {
99
177
  if (binding.active && binding.team_id === team.team_id) {
@@ -110,6 +188,10 @@ export class TeamService {
110
188
  teamId: team.team_id,
111
189
  leaderName: team.leader_name,
112
190
  }));
191
+ // dissolve note is required (issue #182 PR-3), so the member/leader close
192
+ // calls and the ledger carry the operator's real reason — no synthetic
193
+ // 'team dissolved' fallback. Internal/system dissolves pass an explicit
194
+ // system-authored note instead.
113
195
  for (const member of members) {
114
196
  await this.opts.teammates.closeScoped({
115
197
  principal: teamLeaderPrincipal({
@@ -118,18 +200,18 @@ export class TeamService {
118
200
  leaderName: team.leader_name,
119
201
  }),
120
202
  name: member.name,
121
- note: input.note ?? 'team dissolved',
203
+ note: input.note,
122
204
  });
123
205
  }
124
206
  await this.opts.teammates.close({
125
207
  dispatcherId: input.dispatcherId,
126
208
  name: team.leader_name,
127
- note: input.note ?? 'team dissolved',
209
+ note: input.note,
128
210
  });
129
211
  const closed = await this.store.update(team, {
130
212
  status: 'closed',
131
213
  closedAt: Date.now(),
132
- closeNote: input.note ?? null,
214
+ closeNote: input.note,
133
215
  worktree: await this.worktrees.cleanup({
134
216
  source_cwd: team.repo_cwd,
135
217
  source_repo: team.source_repo,
@@ -138,7 +220,7 @@ export class TeamService {
138
220
  });
139
221
  await this.store.appendLedger(closed, {
140
222
  type: 'dissolve',
141
- summary: input.note ?? 'team dissolved',
223
+ summary: input.note,
142
224
  });
143
225
  return this.summary(closed);
144
226
  }
@@ -174,60 +256,6 @@ export class TeamService {
174
256
  }
175
257
  return binding;
176
258
  }
177
- async createGroup(input) {
178
- if (input.sourceChatType !== 'p2p') {
179
- throw new Error('create_team_group must be requested from a P2P control channel');
180
- }
181
- if (this.opts.createFeishuGroup === undefined) {
182
- throw new Error('Feishu group creation is not available for this dispatcher');
183
- }
184
- const created = await this.create(input);
185
- let group;
186
- let binding = null;
187
- try {
188
- group = await this.opts.createFeishuGroup({
189
- dispatcherId: input.dispatcherId,
190
- name: input.groupName ?? input.name,
191
- userOpenIds: uniqueOpenIds([
192
- input.requesterOpenId,
193
- ...(input.inviteOpenIds ?? []),
194
- ]),
195
- });
196
- binding = await this.bindChannel({
197
- dispatcherId: input.dispatcherId,
198
- teamId: created.team.team_id,
199
- provider: 'builtin:feishu',
200
- chatId: group.chatId,
201
- chatType: 'group',
202
- });
203
- await this.store.appendLedger(created.team, {
204
- type: 'create_group',
205
- summary: `created Feishu group ${group.chatId} for team ${created.team.team_id}`,
206
- });
207
- }
208
- catch (err) {
209
- await this.dissolve({
210
- dispatcherId: input.dispatcherId,
211
- teamId: created.team.team_id,
212
- note: 'Feishu group setup failed',
213
- });
214
- throw err;
215
- }
216
- return {
217
- ...created,
218
- binding: {
219
- provider: binding.provider,
220
- chat_id: binding.chat_id,
221
- chat_type: binding.chat_type,
222
- team_id: binding.team_id,
223
- leader_name: binding.leader_name,
224
- },
225
- invited_open_ids: uniqueOpenIds([
226
- input.requesterOpenId,
227
- ...(input.inviteOpenIds ?? []),
228
- ]),
229
- };
230
- }
231
259
  async resolveChannel(input) {
232
260
  const binding = await this.bindings.resolve(input);
233
261
  if (binding === null)
@@ -285,8 +313,68 @@ export class TeamService {
285
313
  team,
286
314
  leader,
287
315
  member_count: await this.memberCount(team),
316
+ binding: await this.activeGroupBinding(team),
288
317
  };
289
318
  }
319
+ async listRow(team) {
320
+ return {
321
+ name: team.team_id,
322
+ team_id: team.team_id,
323
+ status: team.status,
324
+ intent: team.intent,
325
+ source_repo: team.source_repo,
326
+ repo_cwd: team.repo_cwd,
327
+ worktree_mode: team.worktree.mode,
328
+ leader_name: team.leader_name,
329
+ leader_state: await this.leaderState(team),
330
+ member_count: await this.memberCount(team),
331
+ bound_group: await this.activeGroupBinding(team),
332
+ created_at: team.created_at,
333
+ updated_at: team.updated_at,
334
+ closed_at: team.closed_at,
335
+ };
336
+ }
337
+ async historyRow(team) {
338
+ return {
339
+ name: team.team_id,
340
+ team_id: team.team_id,
341
+ status: team.status,
342
+ close_status: team.closed_at === null ? 'open' : 'closed',
343
+ intent: team.intent,
344
+ source_repo: team.source_repo,
345
+ repo_cwd: team.repo_cwd,
346
+ runtime_cwd: team.runtime_cwd,
347
+ worktree: team.worktree,
348
+ leader_name: team.leader_name,
349
+ leader_agent_runtime: team.leader_agent_runtime,
350
+ leader_state: await this.leaderState(team),
351
+ member_count: await this.memberCount(team),
352
+ bound_group: await this.activeGroupBinding(team),
353
+ created_at: team.created_at,
354
+ updated_at: team.updated_at,
355
+ closed_at: team.closed_at,
356
+ close_note: team.close_note,
357
+ close_note_preview: team.close_note !== null ? previewTeamText(team.close_note) : null,
358
+ };
359
+ }
360
+ /** The leader's current identity state (cheap read), or null if unreadable. */
361
+ async leaderState(team) {
362
+ try {
363
+ return (await this.opts.teammates.status(team.dispatcher_id, team.leader_name))
364
+ .status;
365
+ }
366
+ catch {
367
+ return null;
368
+ }
369
+ }
370
+ /** The active bound Feishu group for a Team, or null when none is bound. */
371
+ async activeGroupBinding(team) {
372
+ const bindings = await this.bindings.list(team.dispatcher_id);
373
+ const active = bindings.find((binding) => binding.active && binding.team_id === team.team_id);
374
+ return active === undefined
375
+ ? null
376
+ : { provider: active.provider, chat_id: active.chat_id };
377
+ }
290
378
  async memberCount(team) {
291
379
  return (await this.opts.teammates.listScoped(teamLeaderPrincipal({
292
380
  dispatcherId: team.dispatcher_id,
@@ -309,7 +397,68 @@ function teamLeaderPrompt(team) {
309
397
  team.intent !== null ? `Intent: ${team.intent}` : '',
310
398
  ].filter((line) => line !== '').join('\n');
311
399
  }
312
- function uniqueOpenIds(ids) {
313
- return [...new Set(ids.filter((id) => id !== ''))];
400
+ function matchesTeamHistoryQuery(row, input) {
401
+ if (input.name !== undefined && row.name !== validateTeamId(input.name)) {
402
+ return false;
403
+ }
404
+ if (input.status !== undefined && row.status !== input.status)
405
+ return false;
406
+ if (input.closeStatus !== undefined && row.close_status !== input.closeStatus) {
407
+ return false;
408
+ }
409
+ if (input.repo !== undefined) {
410
+ const needle = input.repo.toLowerCase();
411
+ const hit = [row.source_repo, row.repo_cwd].some((value) => value !== null && value.toLowerCase().includes(needle));
412
+ if (!hit)
413
+ return false;
414
+ }
415
+ if (input.grep !== undefined && !teamRowMatchesText(row, input.grep)) {
416
+ return false;
417
+ }
418
+ if (input.since !== undefined && row.updated_at < input.since)
419
+ return false;
420
+ if (input.until !== undefined && row.updated_at > input.until)
421
+ return false;
422
+ return true;
423
+ }
424
+ function teamRowMatchesText(row, grep) {
425
+ const needle = grep.toLowerCase();
426
+ if (needle === '')
427
+ return true;
428
+ return [
429
+ row.name,
430
+ row.intent,
431
+ row.source_repo,
432
+ row.repo_cwd,
433
+ row.leader_name,
434
+ row.close_note,
435
+ ].some((value) => value !== null && value.toLowerCase().includes(needle));
436
+ }
437
+ function clampTeamHistoryLimit(input) {
438
+ if (input === undefined)
439
+ return 20;
440
+ if (!Number.isInteger(input) || input < 1) {
441
+ throw new Error('history limit must be a positive integer');
442
+ }
443
+ return Math.min(input, 100);
444
+ }
445
+ function encodeTeamCursor(offset) {
446
+ return Buffer.from(JSON.stringify({ offset }), 'utf8').toString('base64url');
447
+ }
448
+ function decodeTeamCursor(cursor) {
449
+ try {
450
+ const parsed = JSON.parse(Buffer.from(cursor, 'base64url').toString('utf8'));
451
+ if (typeof parsed.offset === 'number' && Number.isInteger(parsed.offset) && parsed.offset >= 0) {
452
+ return parsed.offset;
453
+ }
454
+ }
455
+ catch {
456
+ // fall through to the loud error below
457
+ }
458
+ throw new Error('invalid history cursor');
459
+ }
460
+ function previewTeamText(text) {
461
+ const collapsed = text.replace(/\s+/g, ' ').trim();
462
+ return collapsed.length <= 500 ? collapsed : `${collapsed.slice(0, 497)}...`;
314
463
  }
315
464
  //# sourceMappingURL=service.js.map