oh-my-codex 0.7.0 → 0.7.2

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 (47) hide show
  1. package/dist/cli/__tests__/team.test.js +17 -0
  2. package/dist/cli/__tests__/team.test.js.map +1 -1
  3. package/dist/cli/team.d.ts.map +1 -1
  4. package/dist/cli/team.js +3 -2
  5. package/dist/cli/team.js.map +1 -1
  6. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +44 -0
  7. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  8. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.d.ts +2 -0
  9. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.d.ts.map +1 -0
  10. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +135 -0
  11. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -0
  12. package/dist/mcp/__tests__/state-server-schema.test.js +2 -1
  13. package/dist/mcp/__tests__/state-server-schema.test.js.map +1 -1
  14. package/dist/team/__tests__/mcp-comm.test.js +117 -7
  15. package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
  16. package/dist/team/__tests__/runtime.test.js +58 -1
  17. package/dist/team/__tests__/runtime.test.js.map +1 -1
  18. package/dist/team/__tests__/state.test.js +76 -1
  19. package/dist/team/__tests__/state.test.js.map +1 -1
  20. package/dist/team/contracts.d.ts +1 -1
  21. package/dist/team/contracts.d.ts.map +1 -1
  22. package/dist/team/contracts.js +2 -0
  23. package/dist/team/contracts.js.map +1 -1
  24. package/dist/team/mcp-comm.d.ts +28 -4
  25. package/dist/team/mcp-comm.d.ts.map +1 -1
  26. package/dist/team/mcp-comm.js +172 -6
  27. package/dist/team/mcp-comm.js.map +1 -1
  28. package/dist/team/runtime.d.ts.map +1 -1
  29. package/dist/team/runtime.js +374 -41
  30. package/dist/team/runtime.js.map +1 -1
  31. package/dist/team/scaling.d.ts.map +1 -1
  32. package/dist/team/scaling.js +90 -13
  33. package/dist/team/scaling.js.map +1 -1
  34. package/dist/team/state.d.ts +54 -1
  35. package/dist/team/state.d.ts.map +1 -1
  36. package/dist/team/state.js +300 -5
  37. package/dist/team/state.js.map +1 -1
  38. package/dist/team/team-ops.d.ts +8 -1
  39. package/dist/team/team-ops.d.ts.map +1 -1
  40. package/dist/team/team-ops.js +7 -0
  41. package/dist/team/team-ops.js.map +1 -1
  42. package/package.json +1 -1
  43. package/scripts/notify-fallback-watcher.js +4 -0
  44. package/scripts/notify-hook/team-dispatch.js +274 -0
  45. package/scripts/notify-hook.js +11 -0
  46. package/skills/team/SKILL.md +3 -2
  47. package/skills/worker/SKILL.md +4 -0
@@ -36,4 +36,21 @@ describe('parseTeamStartArgs', () => {
36
36
  assert.throws(() => parseTeamStartArgs([`${DEFAULT_MAX_WORKERS + 1}:executor`, 'ship', 'it']), new RegExp(`Expected 1-${DEFAULT_MAX_WORKERS}`));
37
37
  });
38
38
  });
39
+ describe('teamCommand shutdown --force parsing', () => {
40
+ it('parses --force flag from shutdown args', () => {
41
+ const teamArgs = ['shutdown', 'my-team', '--force'];
42
+ const force = teamArgs.includes('--force');
43
+ assert.equal(force, true);
44
+ });
45
+ it('does not set force when --force is absent', () => {
46
+ const teamArgs = ['shutdown', 'my-team'];
47
+ const force = teamArgs.includes('--force');
48
+ assert.equal(force, false);
49
+ });
50
+ it('parses --force regardless of position after subcommand', () => {
51
+ const teamArgs = ['shutdown', '--force', 'my-team'];
52
+ const force = teamArgs.includes('--force');
53
+ assert.equal(force, true);
54
+ });
55
+ });
39
56
  //# sourceMappingURL=team.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"team.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/team.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"team.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/team.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/cli/team.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE3E,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAID,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;CAC5B;AA2CD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAMtE;AAqDD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgF7F"}
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/cli/team.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE3E,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAID,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,CAAC;IACvB,YAAY,EAAE,YAAY,CAAC;CAC5B;AA2CD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAMtE;AAqDD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF7F"}
package/dist/cli/team.js CHANGED
@@ -136,8 +136,9 @@ export async function teamCommand(args, options = {}) {
136
136
  if (subcommand === 'shutdown') {
137
137
  const name = teamArgs[1];
138
138
  if (!name)
139
- throw new Error('Usage: omx team shutdown <team-name>');
140
- await shutdownTeam(name, cwd, { force: false });
139
+ throw new Error('Usage: omx team shutdown <team-name> [--force]');
140
+ const force = teamArgs.includes('--force');
141
+ await shutdownTeam(name, cwd, { force });
141
142
  await updateModeState('team', {
142
143
  active: false,
143
144
  current_phase: 'cancelled',
@@ -1 +1 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/cli/team.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/cli/team.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { tmpdir } from 'node:os';
5
5
  import { join } from 'node:path';
6
6
  import { spawn, spawnSync } from 'node:child_process';
7
7
  import { randomUUID } from 'node:crypto';
8
+ import { initTeamState, enqueueDispatchRequest, readDispatchRequest } from '../../team/state.js';
8
9
  async function appendLine(path, line) {
9
10
  const prev = await readFile(path, 'utf-8');
10
11
  const content = prev + `${JSON.stringify(line)}\n`;
@@ -138,5 +139,48 @@ describe('notify-fallback watcher', () => {
138
139
  await rm(rolloutPath, { force: true });
139
140
  }
140
141
  });
142
+ it('runs bounded non-turn team dispatch drain tick in leader context', async () => {
143
+ const wd = await mkdtemp(join(tmpdir(), 'omx-fallback-dispatch-'));
144
+ try {
145
+ await initTeamState('dispatch-team', 'task', 'executor', 1, wd);
146
+ const queued = await enqueueDispatchRequest('dispatch-team', {
147
+ kind: 'inbox',
148
+ to_worker: 'worker-1',
149
+ worker_index: 1,
150
+ trigger_message: 'dispatch ping',
151
+ }, wd);
152
+ const watcherScript = new URL('../../../scripts/notify-fallback-watcher.js', import.meta.url).pathname;
153
+ const notifyHook = new URL('../../../scripts/notify-hook.js', import.meta.url).pathname;
154
+ const result = spawnSync(process.execPath, [watcherScript, '--once', '--cwd', wd, '--notify-script', notifyHook, '--poll-ms', '50', '--dispatch-max-per-tick', '1'], { encoding: 'utf-8' });
155
+ assert.equal(result.status, 0, result.stderr || result.stdout);
156
+ const request = await readDispatchRequest('dispatch-team', queued.request.request_id, wd);
157
+ assert.ok(request);
158
+ assert.notEqual(request?.status, 'pending');
159
+ }
160
+ finally {
161
+ await rm(wd, { recursive: true, force: true });
162
+ }
163
+ });
164
+ it('skips dispatch drain in worker context (leader-only guard)', async () => {
165
+ const wd = await mkdtemp(join(tmpdir(), 'omx-fallback-dispatch-worker-'));
166
+ try {
167
+ await initTeamState('dispatch-team', 'task', 'executor', 1, wd);
168
+ const queued = await enqueueDispatchRequest('dispatch-team', {
169
+ kind: 'inbox',
170
+ to_worker: 'worker-1',
171
+ worker_index: 1,
172
+ trigger_message: 'dispatch ping',
173
+ }, wd);
174
+ const watcherScript = new URL('../../../scripts/notify-fallback-watcher.js', import.meta.url).pathname;
175
+ const notifyHook = new URL('../../../scripts/notify-hook.js', import.meta.url).pathname;
176
+ const result = spawnSync(process.execPath, [watcherScript, '--once', '--cwd', wd, '--notify-script', notifyHook, '--poll-ms', '50', '--dispatch-max-per-tick', '1'], { encoding: 'utf-8', env: { ...process.env, OMX_TEAM_WORKER: 'dispatch-team/worker-1' } });
177
+ assert.equal(result.status, 0, result.stderr || result.stdout);
178
+ const request = await readDispatchRequest('dispatch-team', queued.request.request_id, wd);
179
+ assert.equal(request?.status, 'pending');
180
+ }
181
+ finally {
182
+ await rm(wd, { recursive: true, force: true });
183
+ }
184
+ });
141
185
  });
142
186
  //# sourceMappingURL=notify-fallback-watcher.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notify-fallback-watcher.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/notify-fallback-watcher.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify-fallback-watcher.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/notify-fallback-watcher.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=notify-hook-team-dispatch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-hook-team-dispatch.test.d.ts","sourceRoot":"","sources":["../../../src/hooks/__tests__/notify-hook-team-dispatch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,135 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { mkdtemp, rm } from 'node:fs/promises';
4
+ import { tmpdir } from 'node:os';
5
+ import { join } from 'node:path';
6
+ import { initTeamState, enqueueDispatchRequest, readDispatchRequest, listMailboxMessages, sendDirectMessage, } from '../../team/state.js';
7
+ import { pathToFileURL } from 'node:url';
8
+ describe('notify-hook team dispatch consumer', () => {
9
+ it('marks pending request as notified and preserves mailbox notified_at semantics', async () => {
10
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-hook-team-dispatch-'));
11
+ try {
12
+ await initTeamState('alpha', 'task', 'executor', 1, cwd);
13
+ const msg = await sendDirectMessage('alpha', 'worker-1', 'worker-1', 'hello', cwd);
14
+ const queued = await enqueueDispatchRequest('alpha', {
15
+ kind: 'mailbox',
16
+ to_worker: 'worker-1',
17
+ worker_index: 1,
18
+ message_id: msg.message_id,
19
+ trigger_message: 'check mailbox',
20
+ }, cwd);
21
+ const modulePath = new URL('../../../scripts/notify-hook/team-dispatch.js', import.meta.url).pathname;
22
+ const mod = await import(pathToFileURL(modulePath).href);
23
+ const result = await mod.drainPendingTeamDispatch({
24
+ cwd,
25
+ maxPerTick: 5,
26
+ injector: async () => ({ ok: true, reason: 'injected_for_test' }),
27
+ });
28
+ assert.equal(result.processed, 1);
29
+ const request = await readDispatchRequest('alpha', queued.request.request_id, cwd);
30
+ assert.equal(request?.status, 'notified');
31
+ const mailbox = await listMailboxMessages('alpha', 'worker-1', cwd);
32
+ assert.ok(mailbox[0]?.notified_at);
33
+ }
34
+ finally {
35
+ await rm(cwd, { recursive: true, force: true });
36
+ }
37
+ });
38
+ it('uses explicit stateDir when marking mailbox notified_at', async () => {
39
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-hook-team-dispatch-'));
40
+ const stateDir = join(cwd, 'custom-state-root');
41
+ const previousStateRoot = process.env.OMX_TEAM_STATE_ROOT;
42
+ try {
43
+ process.env.OMX_TEAM_STATE_ROOT = './custom-state-root';
44
+ await initTeamState('alpha', 'task', 'executor', 1, cwd);
45
+ const msg = await sendDirectMessage('alpha', 'worker-1', 'worker-1', 'hello', cwd);
46
+ const queued = await enqueueDispatchRequest('alpha', {
47
+ kind: 'mailbox',
48
+ to_worker: 'worker-1',
49
+ worker_index: 1,
50
+ message_id: msg.message_id,
51
+ trigger_message: 'check mailbox',
52
+ }, cwd);
53
+ const modulePath = new URL('../../../scripts/notify-hook/team-dispatch.js', import.meta.url).pathname;
54
+ const mod = await import(pathToFileURL(modulePath).href);
55
+ const result = await mod.drainPendingTeamDispatch({
56
+ cwd,
57
+ stateDir,
58
+ maxPerTick: 5,
59
+ injector: async () => ({ ok: true, reason: 'injected_for_test' }),
60
+ });
61
+ assert.equal(result.processed, 1);
62
+ const request = await readDispatchRequest('alpha', queued.request.request_id, cwd);
63
+ assert.equal(request?.status, 'notified');
64
+ const mailbox = await listMailboxMessages('alpha', 'worker-1', cwd);
65
+ assert.ok(mailbox[0]?.notified_at);
66
+ }
67
+ finally {
68
+ if (typeof previousStateRoot === 'string')
69
+ process.env.OMX_TEAM_STATE_ROOT = previousStateRoot;
70
+ else
71
+ delete process.env.OMX_TEAM_STATE_ROOT;
72
+ await rm(cwd, { recursive: true, force: true });
73
+ }
74
+ });
75
+ it('is idempotent across repeated ticks (no duplicate processing)', async () => {
76
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-hook-team-dispatch-'));
77
+ try {
78
+ await initTeamState('alpha', 'task', 'executor', 1, cwd);
79
+ const queued = await enqueueDispatchRequest('alpha', {
80
+ kind: 'inbox',
81
+ to_worker: 'worker-1',
82
+ worker_index: 1,
83
+ trigger_message: 'ping',
84
+ }, cwd);
85
+ const modulePath = new URL('../../../scripts/notify-hook/team-dispatch.js', import.meta.url).pathname;
86
+ const mod = await import(pathToFileURL(modulePath).href);
87
+ await mod.drainPendingTeamDispatch({
88
+ cwd,
89
+ maxPerTick: 5,
90
+ injector: async () => ({ ok: true, reason: 'injected_for_test' }),
91
+ });
92
+ const second = await mod.drainPendingTeamDispatch({
93
+ cwd,
94
+ maxPerTick: 5,
95
+ injector: async () => ({ ok: true, reason: 'injected_for_test' }),
96
+ });
97
+ assert.equal(second.processed, 0);
98
+ const request = await readDispatchRequest('alpha', queued.request.request_id, cwd);
99
+ assert.equal(request?.status, 'notified');
100
+ }
101
+ finally {
102
+ await rm(cwd, { recursive: true, force: true });
103
+ }
104
+ });
105
+ it('skips non-hook transport preferences in hook consumer', async () => {
106
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-hook-team-dispatch-'));
107
+ try {
108
+ await initTeamState('alpha', 'task', 'executor', 1, cwd);
109
+ const queued = await enqueueDispatchRequest('alpha', {
110
+ kind: 'inbox',
111
+ to_worker: 'worker-1',
112
+ worker_index: 1,
113
+ trigger_message: 'ping',
114
+ transport_preference: 'transport_direct',
115
+ fallback_allowed: false,
116
+ }, cwd);
117
+ const modulePath = new URL('../../../scripts/notify-hook/team-dispatch.js', import.meta.url).pathname;
118
+ const mod = await import(pathToFileURL(modulePath).href);
119
+ const result = await mod.drainPendingTeamDispatch({
120
+ cwd,
121
+ maxPerTick: 5,
122
+ injector: async () => ({ ok: true, reason: 'injected_for_test' }),
123
+ });
124
+ assert.equal(result.processed, 0);
125
+ assert.equal(result.failed, 0);
126
+ assert.ok(result.skipped >= 1);
127
+ const request = await readDispatchRequest('alpha', queued.request.request_id, cwd);
128
+ assert.equal(request?.status, 'pending');
129
+ }
130
+ finally {
131
+ await rm(cwd, { recursive: true, force: true });
132
+ }
133
+ });
134
+ });
135
+ //# sourceMappingURL=notify-hook-team-dispatch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify-hook-team-dispatch.test.js","sourceRoot":"","sources":["../../../src/hooks/__tests__/notify-hook-team-dispatch.test.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ const ALL_EVENT_TYPES = [
10
10
  'worker_stopped',
11
11
  'message_received',
12
12
  'shutdown_ack',
13
+ 'shutdown_gate',
13
14
  'approval_decision',
14
15
  'team_leader_nudge',
15
16
  ];
@@ -19,7 +20,7 @@ describe('team_append_event schema validation', () => {
19
20
  const enumRefMatch = src.match(/name:\s*'team_append_event'[\s\S]*?enum:\s*\[\.\.\.TEAM_EVENT_TYPES\]/);
20
21
  assert.ok(enumRefMatch, 'Expected team_append_event schema to reference TEAM_EVENT_TYPES');
21
22
  const enumValues = [...TEAM_EVENT_TYPES];
22
- assert.equal(enumValues.length, 8, `Expected 8 enum values, got ${enumValues.length}: ${enumValues.join(', ')}`);
23
+ assert.equal(enumValues.length, 9, `Expected 9 enum values, got ${enumValues.length}: ${enumValues.join(', ')}`);
23
24
  for (const eventType of ALL_EVENT_TYPES) {
24
25
  assert.ok(enumValues.includes(eventType), `Expected enum to include '${eventType}', got: ${enumValues.join(', ')}`);
25
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"state-server-schema.test.js","sourceRoot":"","sources":["../../../src/mcp/__tests__/state-server-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,eAAe,GAAG;IACtB,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,mBAAmB;IACnB,mBAAmB;CACX,CAAC;AAEX,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,CAAC;QAEnF,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACxG,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,iEAAiE,CAAC,CAAC;QAE3F,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAEzC,MAAM,CAAC,KAAK,CACV,UAAU,CAAC,MAAM,EACjB,CAAC,EACD,+BAA+B,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,MAAM,CAAC,EAAE,CACP,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC9B,6BAA6B,SAAS,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"state-server-schema.test.js","sourceRoot":"","sources":["../../../src/mcp/__tests__/state-server-schema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,eAAe,GAAG;IACtB,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,mBAAmB;CACX,CAAC;AAEX,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,2FAA2F,EAAE,KAAK,IAAI,EAAE;QACzG,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,CAAC,EAAE,MAAM,CAAC,CAAC;QAEnF,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACxG,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,iEAAiE,CAAC,CAAC;QAE3F,MAAM,UAAU,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAEzC,MAAM,CAAC,KAAK,CACV,UAAU,CAAC,MAAM,EACjB,CAAC,EACD,+BAA+B,UAAU,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;YACxC,MAAM,CAAC,EAAE,CACP,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC9B,6BAA6B,SAAS,WAAW,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -3,7 +3,7 @@ import assert from 'node:assert/strict';
3
3
  import { mkdtemp, rm, readFile } from 'fs/promises';
4
4
  import { join } from 'path';
5
5
  import { tmpdir } from 'os';
6
- import { initTeamState, listMailboxMessages, } from '../state.js';
6
+ import { initTeamState, listMailboxMessages, listDispatchRequests, readDispatchRequest, } from '../state.js';
7
7
  import { queueInboxInstruction, queueDirectMailboxMessage, queueBroadcastMailboxMessage, } from '../mcp-comm.js';
8
8
  describe('mcp-comm', () => {
9
9
  it('queueInboxInstruction writes inbox before notifying', async () => {
@@ -11,7 +11,7 @@ describe('mcp-comm', () => {
11
11
  try {
12
12
  await initTeamState('alpha', 't', 'executor', 1, cwd);
13
13
  const events = [];
14
- const ok = await queueInboxInstruction({
14
+ const outcome = await queueInboxInstruction({
15
15
  teamName: 'alpha',
16
16
  workerName: 'worker-1',
17
17
  workerIndex: 1,
@@ -23,10 +23,12 @@ describe('mcp-comm', () => {
23
23
  const inboxPath = join(cwd, '.omx', 'state', 'team', 'alpha', 'workers', 'worker-1', 'inbox.md');
24
24
  const content = await readFile(inboxPath, 'utf-8');
25
25
  assert.match(content, /# hi/);
26
- return true;
26
+ return { ok: true, transport: 'tmux_send_keys', reason: 'sent' };
27
27
  },
28
28
  });
29
- assert.equal(ok, true);
29
+ assert.equal(outcome.ok, true);
30
+ assert.equal(outcome.transport, 'tmux_send_keys');
31
+ assert.ok(outcome.request_id);
30
32
  assert.deepEqual(events, ['notify']);
31
33
  }
32
34
  finally {
@@ -37,7 +39,7 @@ describe('mcp-comm', () => {
37
39
  const cwd = await mkdtemp(join(tmpdir(), 'omx-mcp-comm-'));
38
40
  try {
39
41
  await initTeamState('alpha', 't', 'executor', 2, cwd);
40
- await queueDirectMailboxMessage({
42
+ const outcome = await queueDirectMailboxMessage({
41
43
  teamName: 'alpha',
42
44
  fromWorker: 'worker-1',
43
45
  toWorker: 'worker-2',
@@ -45,12 +47,18 @@ describe('mcp-comm', () => {
45
47
  body: 'hello',
46
48
  triggerMessage: 'check mailbox',
47
49
  cwd,
48
- notify: async () => true,
50
+ notify: async () => ({ ok: true, transport: 'tmux_send_keys', reason: 'sent' }),
49
51
  });
52
+ assert.equal(outcome.ok, true);
53
+ assert.ok(outcome.request_id);
54
+ assert.ok(outcome.message_id);
50
55
  const mailbox = await listMailboxMessages('alpha', 'worker-2', cwd);
51
56
  assert.equal(mailbox.length, 1);
52
57
  assert.equal(mailbox[0]?.body, 'hello');
53
58
  assert.ok(mailbox[0]?.notified_at);
59
+ const requests = await listDispatchRequests('alpha', cwd, { kind: 'mailbox' });
60
+ assert.equal(requests.length, 1);
61
+ assert.equal(requests[0]?.message_id, mailbox[0]?.message_id);
54
62
  }
55
63
  finally {
56
64
  await rm(cwd, { recursive: true, force: true });
@@ -75,7 +83,7 @@ describe('mcp-comm', () => {
75
83
  triggerFor: (workerName) => `check mailbox ${workerName}`,
76
84
  notify: async (target) => {
77
85
  notified.push(target.workerName);
78
- return true;
86
+ return { ok: true, transport: 'tmux_send_keys', reason: 'sent' };
79
87
  },
80
88
  });
81
89
  const m1 = await listMailboxMessages('alpha', 'worker-1', cwd);
@@ -89,5 +97,107 @@ describe('mcp-comm', () => {
89
97
  await rm(cwd, { recursive: true, force: true });
90
98
  }
91
99
  });
100
+ it('prevents duplicate pending mailbox dispatch requests for same message id', async () => {
101
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-mcp-comm-'));
102
+ try {
103
+ await initTeamState('alpha', 't', 'executor', 2, cwd);
104
+ const first = await queueDirectMailboxMessage({
105
+ teamName: 'alpha',
106
+ fromWorker: 'worker-1',
107
+ toWorker: 'worker-2',
108
+ toWorkerIndex: 2,
109
+ body: 'hello',
110
+ triggerMessage: 'check mailbox',
111
+ cwd,
112
+ notify: async () => ({ ok: false, transport: 'hook', reason: 'queued_pending' }),
113
+ });
114
+ assert.equal(first.ok, false);
115
+ assert.ok(first.message_id);
116
+ const requests = await listDispatchRequests('alpha', cwd, { kind: 'mailbox' });
117
+ assert.equal(requests.length, 1);
118
+ const second = await queueDirectMailboxMessage({
119
+ teamName: 'alpha',
120
+ fromWorker: 'worker-1',
121
+ toWorker: 'worker-2',
122
+ toWorkerIndex: 2,
123
+ body: 'hello-2',
124
+ triggerMessage: 'check mailbox',
125
+ cwd,
126
+ notify: async () => ({ ok: false, transport: 'hook', reason: 'queued_pending' }),
127
+ });
128
+ assert.equal(second.ok, false);
129
+ const allRequests = await listDispatchRequests('alpha', cwd, { kind: 'mailbox' });
130
+ // second message has distinct message_id -> second request exists
131
+ assert.equal(allRequests.length, 2);
132
+ }
133
+ finally {
134
+ await rm(cwd, { recursive: true, force: true });
135
+ }
136
+ });
137
+ it('marks direct dispatch request failed when notify transport fails (prevents poisoned pending)', async () => {
138
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-mcp-comm-'));
139
+ try {
140
+ await initTeamState('alpha', 't', 'executor', 1, cwd);
141
+ const first = await queueInboxInstruction({
142
+ teamName: 'alpha',
143
+ workerName: 'worker-1',
144
+ workerIndex: 1,
145
+ inbox: '# hi',
146
+ triggerMessage: 'trigger',
147
+ cwd,
148
+ transportPreference: 'transport_direct',
149
+ fallbackAllowed: false,
150
+ notify: async () => ({ ok: false, transport: 'tmux_send_keys', reason: 'tmux_unavailable' }),
151
+ });
152
+ assert.equal(first.ok, false);
153
+ assert.ok(first.request_id);
154
+ const firstReq = await readDispatchRequest('alpha', first.request_id, cwd);
155
+ assert.equal(firstReq?.status, 'failed');
156
+ assert.equal(firstReq?.last_reason, 'tmux_unavailable');
157
+ const second = await queueInboxInstruction({
158
+ teamName: 'alpha',
159
+ workerName: 'worker-1',
160
+ workerIndex: 1,
161
+ inbox: '# hi again',
162
+ triggerMessage: 'trigger',
163
+ cwd,
164
+ transportPreference: 'transport_direct',
165
+ fallbackAllowed: false,
166
+ notify: async () => ({ ok: false, transport: 'tmux_send_keys', reason: 'tmux_unavailable' }),
167
+ });
168
+ assert.ok(second.request_id);
169
+ assert.notEqual(second.request_id, first.request_id);
170
+ }
171
+ finally {
172
+ await rm(cwd, { recursive: true, force: true });
173
+ }
174
+ });
175
+ it('marks prompt dispatch request failed when notify throws (prevents poisoned pending)', async () => {
176
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-mcp-comm-'));
177
+ try {
178
+ await initTeamState('alpha', 't', 'executor', 2, cwd);
179
+ const outcome = await queueDirectMailboxMessage({
180
+ teamName: 'alpha',
181
+ fromWorker: 'worker-1',
182
+ toWorker: 'worker-2',
183
+ toWorkerIndex: 2,
184
+ body: 'hello',
185
+ triggerMessage: 'check mailbox',
186
+ cwd,
187
+ transportPreference: 'prompt_stdin',
188
+ fallbackAllowed: false,
189
+ notify: async () => { throw new Error('stdin closed'); },
190
+ });
191
+ assert.equal(outcome.ok, false);
192
+ assert.match(outcome.reason, /^notify_exception:/);
193
+ assert.ok(outcome.request_id);
194
+ const request = await readDispatchRequest('alpha', outcome.request_id, cwd);
195
+ assert.equal(request?.status, 'failed');
196
+ assert.match(request?.last_reason ?? '', /^notify_exception:/);
197
+ }
198
+ finally {
199
+ await rm(cwd, { recursive: true, force: true });
200
+ }
201
+ });
92
202
  });
93
203
  //# sourceMappingURL=mcp-comm.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-comm.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/mcp-comm.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-comm.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/mcp-comm.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAC5B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAExB,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC;gBAC1C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,MAAM;gBACb,cAAc,EAAE,SAAS;gBACzB,GAAG;gBACH,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACtB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;oBACjG,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBACnD,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC9B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnE,CAAC;aACF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAClD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAEtD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC;gBAC9C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,OAAO;gBACb,cAAc,EAAE,eAAe;gBAC/B,GAAG;gBACH,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;aAChF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/B,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC9B,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE9B,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YACpE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChE,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAEtD,wFAAwF;YACxF,oDAAoD;YACpD,MAAM,QAAQ,GAAa,EAAE,CAAC;YAC9B,MAAM,4BAA4B,CAAC;gBACjC,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE;oBACV,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE;oBAC1C,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,EAAE;iBAC3C;gBACD,IAAI,EAAE,gBAAgB;gBACtB,GAAG;gBACH,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,iBAAiB,UAAU,EAAE;gBACzD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;oBACvB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;oBACjC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;gBACnE,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC/D,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC/D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC3B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;YAC9B,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,MAAM,yBAAyB,CAAC;gBAC5C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,OAAO;gBACb,cAAc,EAAE,eAAe;gBAC/B,GAAG;gBACH,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;aACjF,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAEjC,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC;gBAC7C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,SAAS;gBACf,cAAc,EAAE,eAAe;gBAC/B,GAAG;gBACH,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;aACjF,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC/B,MAAM,WAAW,GAAG,MAAM,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAClF,kEAAkE;YAClE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8FAA8F,EAAE,KAAK,IAAI,EAAE;QAC5G,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC;gBACxC,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,MAAM;gBACb,cAAc,EAAE,SAAS;gBACzB,GAAG;gBACH,mBAAmB,EAAE,kBAAkB;gBACvC,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;aAC7F,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC9B,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,UAAW,EAAE,GAAG,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAExD,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;gBACzC,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,WAAW,EAAE,CAAC;gBACd,KAAK,EAAE,YAAY;gBACnB,cAAc,EAAE,SAAS;gBACzB,GAAG;gBACH,mBAAmB,EAAE,kBAAkB;gBACvC,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;aAC7F,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC7B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACnG,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YAEtD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC;gBAC9C,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,UAAU;gBACtB,QAAQ,EAAE,UAAU;gBACpB,aAAa,EAAE,CAAC;gBAChB,IAAI,EAAE,OAAO;gBACb,cAAc,EAAE,eAAe;gBAC/B,GAAG;gBACH,mBAAmB,EAAE,cAAc;gBACnC,eAAe,EAAE,KAAK;gBACtB,MAAM,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;aACzD,CAAC,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;YACnD,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE9B,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAW,EAAE,GAAG,CAAC,CAAC;YAC7E,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACjE,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}