@proletariat/cli 0.3.102 → 0.3.104

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 (94) hide show
  1. package/dist/commands/project/configure.d.ts +13 -0
  2. package/dist/commands/project/configure.js +149 -0
  3. package/dist/commands/project/configure.js.map +1 -0
  4. package/dist/commands/session/attach.d.ts +6 -1
  5. package/dist/commands/session/attach.js +82 -28
  6. package/dist/commands/session/attach.js.map +1 -1
  7. package/dist/commands/session/report.d.ts +5 -0
  8. package/dist/commands/session/report.js +53 -0
  9. package/dist/commands/session/report.js.map +1 -1
  10. package/dist/commands/ticket/delete.js +15 -7
  11. package/dist/commands/ticket/delete.js.map +1 -1
  12. package/dist/commands/ticket/move.js +21 -10
  13. package/dist/commands/ticket/move.js.map +1 -1
  14. package/dist/commands/ticket/update.js +18 -9
  15. package/dist/commands/ticket/update.js.map +1 -1
  16. package/dist/commands/update.js +12 -6
  17. package/dist/commands/update.js.map +1 -1
  18. package/dist/commands/work/ship.js +39 -57
  19. package/dist/commands/work/ship.js.map +1 -1
  20. package/dist/commands/work/start.js +62 -77
  21. package/dist/commands/work/start.js.map +1 -1
  22. package/dist/lib/events/events.d.ts +2 -0
  23. package/dist/lib/execution/devcontainer.d.ts +1 -0
  24. package/dist/lib/execution/devcontainer.js +1 -0
  25. package/dist/lib/execution/devcontainer.js.map +1 -1
  26. package/dist/lib/execution/runners/docker-management.d.ts +22 -3
  27. package/dist/lib/execution/runners/docker-management.js +102 -14
  28. package/dist/lib/execution/runners/docker-management.js.map +1 -1
  29. package/dist/lib/execution/runners/prompt-builder.d.ts +12 -0
  30. package/dist/lib/execution/runners/prompt-builder.js +44 -0
  31. package/dist/lib/execution/runners/prompt-builder.js.map +1 -1
  32. package/dist/lib/orchestrate/actions.js +68 -1
  33. package/dist/lib/orchestrate/actions.js.map +1 -1
  34. package/dist/lib/orchestrate/engine.d.ts +19 -39
  35. package/dist/lib/orchestrate/engine.js +51 -215
  36. package/dist/lib/orchestrate/engine.js.map +1 -1
  37. package/dist/lib/orchestrate/poller.d.ts +4 -1
  38. package/dist/lib/orchestrate/poller.js +63 -13
  39. package/dist/lib/orchestrate/poller.js.map +1 -1
  40. package/dist/lib/orchestrate/presets.js +18 -3
  41. package/dist/lib/orchestrate/presets.js.map +1 -1
  42. package/dist/lib/orchestrate/simple-poller.js +33 -11
  43. package/dist/lib/orchestrate/simple-poller.js.map +1 -1
  44. package/dist/lib/orchestrate/types.d.ts +5 -13
  45. package/dist/lib/orchestrate/types.js +4 -2
  46. package/dist/lib/orchestrate/types.js.map +1 -1
  47. package/dist/lib/pmo/base-command.js +12 -2
  48. package/dist/lib/pmo/base-command.js.map +1 -1
  49. package/dist/lib/pmo/templates-builtin.d.ts +2 -0
  50. package/dist/lib/pmo/templates-builtin.js +13 -0
  51. package/dist/lib/pmo/templates-builtin.js.map +1 -1
  52. package/dist/lib/pr/index.d.ts +9 -0
  53. package/dist/lib/pr/index.js +22 -0
  54. package/dist/lib/pr/index.js.map +1 -1
  55. package/dist/lib/providers/linear-provider.d.ts +11 -12
  56. package/dist/lib/providers/linear-provider.js +150 -177
  57. package/dist/lib/providers/linear-provider.js.map +1 -1
  58. package/dist/lib/providers/resolver.d.ts +5 -5
  59. package/dist/lib/providers/resolver.js +25 -31
  60. package/dist/lib/providers/resolver.js.map +1 -1
  61. package/dist/lib/sync/engine.js +15 -6
  62. package/dist/lib/sync/engine.js.map +1 -1
  63. package/dist/lib/sync/reconciler.d.ts +11 -2
  64. package/dist/lib/sync/reconciler.js +30 -12
  65. package/dist/lib/sync/reconciler.js.map +1 -1
  66. package/dist/lib/update-check.d.ts +24 -0
  67. package/dist/lib/update-check.js +85 -0
  68. package/dist/lib/update-check.js.map +1 -1
  69. package/dist/lib/update-prompt.js +10 -5
  70. package/dist/lib/update-prompt.js.map +1 -1
  71. package/dist/lib/work-lifecycle/hooks/executor.js +2 -0
  72. package/dist/lib/work-lifecycle/hooks/executor.js.map +1 -1
  73. package/dist/lib/work-lifecycle/hooks/index.d.ts +5 -3
  74. package/dist/lib/work-lifecycle/hooks/index.js +3 -2
  75. package/dist/lib/work-lifecycle/hooks/index.js.map +1 -1
  76. package/dist/lib/work-lifecycle/hooks/manager.d.ts +93 -8
  77. package/dist/lib/work-lifecycle/hooks/manager.js +248 -20
  78. package/dist/lib/work-lifecycle/hooks/manager.js.map +1 -1
  79. package/dist/lib/work-lifecycle/hooks/storage.d.ts +1 -0
  80. package/dist/lib/work-lifecycle/hooks/storage.js +28 -6
  81. package/dist/lib/work-lifecycle/hooks/storage.js.map +1 -1
  82. package/dist/lib/work-lifecycle/hooks/types.d.ts +38 -1
  83. package/dist/lib/work-lifecycle/hooks/types.js +4 -0
  84. package/dist/lib/work-lifecycle/hooks/types.js.map +1 -1
  85. package/dist/lib/work-lifecycle/index.d.ts +2 -1
  86. package/dist/lib/work-lifecycle/index.js +1 -1
  87. package/dist/lib/work-lifecycle/index.js.map +1 -1
  88. package/dist/lib/work-lifecycle/settings.d.ts +42 -0
  89. package/dist/lib/work-lifecycle/settings.js +65 -0
  90. package/dist/lib/work-lifecycle/settings.js.map +1 -1
  91. package/dist/lib/work-lifecycle/transition.js +45 -31
  92. package/dist/lib/work-lifecycle/transition.js.map +1 -1
  93. package/oclif.manifest.json +818 -754
  94. package/package.json +1 -1
@@ -1,263 +1,99 @@
1
1
  /**
2
2
  * Orchestrate Engine
3
3
  *
4
- * The core daemon loop that:
5
- * 1. Loads hook configuration from DB (synced from YAML/presets/CLI)
6
- * 2. Subscribes to EventBus events
7
- * 3. Executes matching hooks with mode-aware behavior
8
- * 4. Optionally polls external sources for events
4
+ * Thin orchestration layer that configures a HookManager with mode-aware
5
+ * execution, built-in action handlers, and confirmation routing.
9
6
  *
10
- * The engine extends the existing HookManager with mode support
11
- * and built-in action execution.
7
+ * The engine itself handles:
8
+ * - Configuring HookManager with the correct callbacks and action handlers
9
+ * - Exposing the OrchestrateActionResult API expected by callers
10
+ * - Start/stop lifecycle management
11
+ *
12
+ * All hook matching, mode checking, and execution is delegated to HookManager.
12
13
  */
13
- import { execSync } from 'node:child_process';
14
- import { getEventBus } from '../events/event-bus.js';
15
- import { WorkHookStorage } from '../work-lifecycle/hooks/storage.js';
16
- import { executeBuiltinAction, ACTION_HANDLERS } from './actions.js';
14
+ import { HookManager } from '../work-lifecycle/hooks/manager.js';
15
+ import { ACTION_HANDLERS } from './actions.js';
17
16
  export class OrchestrateEngine {
18
- db;
19
- hookStorage;
20
- unsubscribers = [];
21
- log;
22
- onConfirm;
23
- onNotify;
17
+ manager;
24
18
  running = false;
25
- pendingConfirmations = [];
26
19
  constructor(options) {
27
- this.db = options.db;
28
- this.hookStorage = new WorkHookStorage(options.db);
29
- this.log = options.log ?? (() => { });
30
- this.onConfirm = options.onConfirm;
31
- this.onNotify = options.onNotify;
20
+ // Map OrchestrateActionResult-based onNotify to HookExecutionResult-based onNotify
21
+ const onNotify = options.onNotify
22
+ ? (hookName, event, action, result) => {
23
+ options.onNotify(hookName, event, action, toActionResult(result));
24
+ }
25
+ : undefined;
26
+ this.manager = new HookManager({
27
+ db: options.db,
28
+ log: options.log,
29
+ onConfirm: options.onConfirm,
30
+ onNotify,
31
+ actionHandlers: ACTION_HANDLERS,
32
+ });
32
33
  }
33
34
  /**
34
- * Start the orchestrate engine — subscribe to all orchestrate events.
35
+ * Start the orchestrate engine — delegates to HookManager.
35
36
  */
36
37
  start() {
37
38
  if (this.running)
38
39
  return;
39
40
  this.running = true;
40
- const bus = getEventBus();
41
- // Subscribe to standard RuntimeEventMap events
42
- const standardEvents = [
43
- 'work:started',
44
- 'work:status_changed',
45
- 'work:pr_created',
46
- 'work:pr_merged',
47
- 'work:pr_closed',
48
- 'work:completed',
49
- 'agent:spawned',
50
- 'agent:stopped',
51
- ];
52
- for (const eventName of standardEvents) {
53
- this.unsubscribers.push(bus.on(eventName, (payload) => {
54
- void this.handleEvent(eventName, payload);
55
- }));
56
- }
57
- this.log('[orchestrate] Engine started, listening for events');
41
+ this.manager.start();
42
+ // Log is internal to the manager, but we can't access it here easily.
43
+ // The manager's log callback will handle logging.
58
44
  }
59
45
  /**
60
46
  * Stop the engine and clean up subscriptions.
61
47
  */
62
48
  stop() {
63
49
  this.running = false;
64
- for (const unsub of this.unsubscribers) {
65
- unsub();
66
- }
67
- this.unsubscribers = [];
68
- this.pendingConfirmations = [];
69
- this.log('[orchestrate] Engine stopped');
50
+ this.manager.stop();
70
51
  }
71
52
  /**
72
53
  * Fire an event manually (used by `prlt hook fire`).
73
54
  * This is the entry point for external event sources (GitHub Actions, polling, etc.).
74
55
  */
75
56
  async fireEvent(event, ctx) {
76
- return this.handleEvent(event, ctx);
57
+ const results = await this.manager.fireEvent(event, ctx);
58
+ return results.map(toActionResult);
77
59
  }
78
60
  /**
79
61
  * Get pending confirmations for hooks in confirm mode.
80
62
  */
81
63
  getPendingConfirmations() {
82
- return [...this.pendingConfirmations];
64
+ return this.manager.getPendingConfirmations();
83
65
  }
84
66
  /**
85
67
  * Approve a pending confirmation and execute it.
86
68
  */
87
69
  async approveConfirmation(index) {
88
- if (index < 0 || index >= this.pendingConfirmations.length)
89
- return null;
90
- const pending = this.pendingConfirmations.splice(index, 1)[0];
91
- const result = executeBuiltinAction(pending.action, pending.ctx, pending.config);
92
- this.log(`[orchestrate] Approved: ${pending.hookName} → ${pending.action} (${result.success ? 'success' : 'failed'})`);
93
- return result;
70
+ const result = await this.manager.approveConfirmation(index);
71
+ return result ? toActionResult(result) : null;
94
72
  }
95
73
  /**
96
74
  * Deny a pending confirmation.
97
75
  */
98
76
  denyConfirmation(index) {
99
- if (index < 0 || index >= this.pendingConfirmations.length)
100
- return false;
101
- const pending = this.pendingConfirmations.splice(index, 1)[0];
102
- this.log(`[orchestrate] Denied: ${pending.hookName} → ${pending.action}`);
103
- return true;
104
- }
105
- // ===========================================================================
106
- // Private
107
- // ===========================================================================
108
- /**
109
- * Handle an event by finding and executing matching hooks.
110
- */
111
- async handleEvent(eventName, eventData) {
112
- const results = [];
113
- try {
114
- // Query hooks matching this event, ordered by priority
115
- const hooks = this.getHooksForEvent(eventName);
116
- if (hooks.length === 0)
117
- return results;
118
- // Build event context from the payload
119
- const ctx = this.buildContext(eventName, eventData);
120
- for (const hook of hooks) {
121
- const mode = (hook.mode || 'auto');
122
- const config = hook.config ? JSON.parse(hook.config) : undefined;
123
- // Determine action — either a built-in action name or the raw action_value
124
- const actionName = this.resolveActionName(hook);
125
- if (mode === 'off') {
126
- results.push({ action: actionName, success: true, durationMs: 0, skipped: true });
127
- continue;
128
- }
129
- if (mode === 'confirm') {
130
- // Queue for confirmation
131
- if (this.onConfirm) {
132
- const approved = await this.onConfirm(hook.name, eventName, actionName);
133
- if (!approved) {
134
- this.log(`[orchestrate] Skipped (not confirmed): ${hook.name} → ${actionName}`);
135
- results.push({ action: actionName, success: true, durationMs: 0, skipped: true });
136
- continue;
137
- }
138
- }
139
- else {
140
- // No confirm handler — queue for later approval
141
- this.pendingConfirmations.push({
142
- hookName: hook.name,
143
- event: eventName,
144
- action: actionName,
145
- ctx,
146
- config,
147
- });
148
- this.log(`[orchestrate] Queued for confirmation: ${hook.name} → ${actionName}`);
149
- results.push({ action: actionName, success: true, durationMs: 0, awaitingConfirmation: true });
150
- continue;
151
- }
152
- }
153
- // Execute the action
154
- const result = this.executeAction(actionName, ctx, config);
155
- results.push(result);
156
- this.log(`[orchestrate] ${hook.name} → ${actionName}: ${result.success ? 'success' : `failed: ${result.error}`} (${result.durationMs}ms)`);
157
- // For notify mode, also fire the notification callback
158
- if (mode === 'notify' && this.onNotify) {
159
- this.onNotify(hook.name, eventName, actionName, result);
160
- }
161
- }
162
- }
163
- catch (err) {
164
- this.log(`[orchestrate] Error handling event ${eventName}: ${err instanceof Error ? err.message : String(err)}`);
165
- }
166
- return results;
167
- }
168
- /**
169
- * Get hooks for a given event from the database, ordered by priority.
170
- */
171
- getHooksForEvent(eventName) {
172
- try {
173
- return this.db.prepare(`
174
- SELECT id, name, event, action_type, action_value, enabled, description, mode, priority, config
175
- FROM pmo_work_hooks
176
- WHERE event = ? AND enabled = 1
177
- ORDER BY priority ASC, created_at ASC
178
- `).all(eventName);
179
- }
180
- catch {
181
- // Fallback without mode/priority columns (pre-migration)
182
- try {
183
- const basic = this.db.prepare(`
184
- SELECT id, name, event, action_type, action_value, enabled, description
185
- FROM pmo_work_hooks
186
- WHERE event = ? AND enabled = 1
187
- ORDER BY created_at ASC
188
- `).all(eventName);
189
- return basic;
190
- }
191
- catch {
192
- return [];
193
- }
194
- }
195
- }
196
- /**
197
- * Build an OrchestrateEventContext from raw event data.
198
- */
199
- buildContext(eventName, data) {
200
- return {
201
- event: eventName,
202
- ticket: (data.ticketId ?? data.workItemId ?? data.ticket),
203
- pr: (data.prNumber ?? data.pr),
204
- branch: data.branch,
205
- agent: (data.agentName ?? data.agent ?? data.sessionId),
206
- container: data.containerId,
207
- executionId: data.executionId,
208
- prUrl: data.prUrl,
209
- projectId: data.projectId,
210
- ...data,
211
- };
212
- }
213
- /**
214
- * Resolve the action name from a hook row.
215
- * Built-in actions are referenced by name; shell hooks use the raw command.
216
- */
217
- resolveActionName(hook) {
218
- // If the action_value starts with "prlt hook fire", extract the --action value
219
- const actionMatch = hook.action_value.match(/--action\s+(\S+)/);
220
- if (actionMatch)
221
- return actionMatch[1];
222
- // If it's a known built-in action name directly
223
- if (ACTION_HANDLERS[hook.action_value])
224
- return hook.action_value;
225
- // Otherwise it's a raw shell command — use the action_value as-is
226
- return hook.action_value;
227
- }
228
- /**
229
- * Execute an action — either built-in or shell fallback.
230
- */
231
- executeAction(actionName, ctx, config) {
232
- // Try built-in action first
233
- if (ACTION_HANDLERS[actionName]) {
234
- return executeBuiltinAction(actionName, ctx, config);
235
- }
236
- // Fallback to shell execution
237
- const start = Date.now();
238
- try {
239
- const env = {
240
- ...process.env,
241
- PRLT_HOOK_EVENT: ctx.event,
242
- PRLT_HOOK_TICKET: ctx.ticket ?? '',
243
- PRLT_HOOK_PR: ctx.pr ? String(ctx.pr) : '',
244
- PRLT_HOOK_BRANCH: ctx.branch ?? '',
245
- PRLT_HOOK_AGENT: ctx.agent ?? '',
246
- };
247
- execSync(actionName, { env, timeout: 30_000, stdio: 'pipe' });
248
- return { action: actionName, success: true, durationMs: Date.now() - start };
249
- }
250
- catch (err) {
251
- return {
252
- action: actionName,
253
- success: false,
254
- error: err instanceof Error ? err.message : String(err),
255
- durationMs: Date.now() - start,
256
- };
257
- }
77
+ return this.manager.denyConfirmation(index);
258
78
  }
259
79
  }
260
80
  // =============================================================================
81
+ // Result Mapping
82
+ // =============================================================================
83
+ /**
84
+ * Convert a HookExecutionResult to an OrchestrateActionResult.
85
+ */
86
+ function toActionResult(result) {
87
+ return {
88
+ action: result.action,
89
+ success: result.success,
90
+ error: result.error,
91
+ durationMs: result.durationMs,
92
+ skipped: result.skipped,
93
+ awaitingConfirmation: result.awaitingConfirmation,
94
+ };
95
+ }
96
+ // =============================================================================
261
97
  // Singleton
262
98
  // =============================================================================
263
99
  let _engine;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/engine.ts"],"names":[],"mappings":"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"}
@@ -38,8 +38,11 @@ export declare class OrchestratePoller {
38
38
  */
39
39
  poll(): Promise<void>;
40
40
  /**
41
- * Check for tickets in "Ready" (todo) status with no active agent.
41
+ * Check for tickets in the configured "ready" status with no active agent.
42
42
  * Fires on_ticket_ready for each.
43
+ *
44
+ * Uses the configured ready/planned column name from pmo_settings.
45
+ * Falls back to category-based matching if no config is available.
43
46
  */
44
47
  private pollReadyTickets;
45
48
  /**
@@ -11,9 +11,10 @@
11
11
  */
12
12
  import { execSync } from 'node:child_process';
13
13
  import * as path from 'node:path';
14
- import { isGHInstalled, isGHAuthenticated, listOpenPRs, getPRChecks, getPRByNumber } from '../pr/index.js';
14
+ import { isGHInstalled, isGHAuthenticated, listOpenPRs, getPRChecks, getPRByNumber, getPRReviewDecision } from '../pr/index.js';
15
15
  import { runSyncCycle } from '../sync/engine.js';
16
16
  import { SQLiteStorage } from '../pmo/storage-sqlite.js';
17
+ import { getWorkflowConfig } from '../work-lifecycle/settings.js';
17
18
  // =============================================================================
18
19
  // Poller
19
20
  // =============================================================================
@@ -50,22 +51,46 @@ export class OrchestratePoller {
50
51
  // Ticket Polling
51
52
  // ===========================================================================
52
53
  /**
53
- * Check for tickets in "Ready" (todo) status with no active agent.
54
+ * Check for tickets in the configured "ready" status with no active agent.
54
55
  * Fires on_ticket_ready for each.
56
+ *
57
+ * Uses the configured ready/planned column name from pmo_settings.
58
+ * Falls back to category-based matching if no config is available.
55
59
  */
56
60
  async pollReadyTickets() {
57
61
  try {
58
- const readyTickets = this.db.prepare(`
59
- SELECT t.id, t.title
60
- FROM pmo_tickets t
61
- JOIN pmo_workflow_statuses ws ON t.status_id = ws.id
62
- WHERE ws.category = 'todo'
63
- AND t.assignee IS NULL
64
- AND t.id NOT IN (
65
- SELECT ticket_id FROM agent_work WHERE status IN ('starting', 'running')
66
- )
67
- LIMIT 10
68
- `).all();
62
+ // Resolve configured ready status name
63
+ let readyStatusName = null;
64
+ try {
65
+ const config = getWorkflowConfig(this.db);
66
+ readyStatusName = config.planned;
67
+ }
68
+ catch {
69
+ // pmo_settings may not exist yet
70
+ }
71
+ const readyTickets = readyStatusName
72
+ ? this.db.prepare(`
73
+ SELECT t.id, t.title
74
+ FROM pmo_tickets t
75
+ JOIN pmo_workflow_statuses ws ON t.status_id = ws.id
76
+ WHERE LOWER(ws.name) = LOWER(?)
77
+ AND t.assignee IS NULL
78
+ AND t.id NOT IN (
79
+ SELECT ticket_id FROM agent_work WHERE status IN ('starting', 'running')
80
+ )
81
+ LIMIT 10
82
+ `).all(readyStatusName)
83
+ : this.db.prepare(`
84
+ SELECT t.id, t.title
85
+ FROM pmo_tickets t
86
+ JOIN pmo_workflow_statuses ws ON t.status_id = ws.id
87
+ WHERE ws.category = 'unstarted'
88
+ AND t.assignee IS NULL
89
+ AND t.id NOT IN (
90
+ SELECT ticket_id FROM agent_work WHERE status IN ('starting', 'running')
91
+ )
92
+ LIMIT 10
93
+ `).all();
69
94
  for (const ticket of readyTickets) {
70
95
  if (this.firedReadyTickets.has(ticket.id))
71
96
  continue;
@@ -215,6 +240,30 @@ export class OrchestratePoller {
215
240
  });
216
241
  }
217
242
  }
243
+ // --- Review Decision ---
244
+ const reviewDecision = getPRReviewDecision(pr.number, this.cwd);
245
+ if (tracked && reviewDecision && reviewDecision !== tracked.lastReviewDecision) {
246
+ if (reviewDecision === 'APPROVED') {
247
+ this.log(`[poll] Review approved: PR #${pr.number}`);
248
+ await this.engine.fireEvent('on_review_approved', {
249
+ event: 'on_review_approved',
250
+ pr: pr.number,
251
+ branch: pr.headBranch,
252
+ ticket: ticketId,
253
+ prUrl: pr.url,
254
+ });
255
+ }
256
+ else if (reviewDecision === 'CHANGES_REQUESTED') {
257
+ this.log(`[poll] Changes requested: PR #${pr.number}`);
258
+ await this.engine.fireEvent('on_changes_requested', {
259
+ event: 'on_changes_requested',
260
+ pr: pr.number,
261
+ branch: pr.headBranch,
262
+ ticket: ticketId,
263
+ prUrl: pr.url,
264
+ });
265
+ }
266
+ }
218
267
  // --- Merge Conflicts ---
219
268
  let mergeable = 'UNKNOWN';
220
269
  try {
@@ -261,6 +310,7 @@ export class OrchestratePoller {
261
310
  number: pr.number,
262
311
  lastCIState: ciState,
263
312
  lastMergeable: mergeable,
313
+ lastReviewDecision: reviewDecision,
264
314
  });
265
315
  }
266
316
  // Detect merged/closed PRs (were tracked but no longer open)
@@ -1 +1 @@
1
- {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/poller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAqBxD,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,EAAE,CAAmB;IACrB,GAAG,CAAuB;IAC1B,GAAG,CAAS;IAEpB,mDAAmD;IAC3C,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAA;IAEjD,mEAAmE;IAC3D,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;IAE7C,uFAAuF;IAC/E,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAA;IAErD,0CAA0C;IAClC,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE3C,WAAW,GAAmB,IAAI,CAAA;IAE1C,YAAY,OAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC/B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC1B,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAA;IACtC,CAAC;IAED,8EAA8E;IAC9E,iBAAiB;IACjB,8EAA8E;IAE9E;;;OAGG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;OAUpC,CAAC,CAAC,GAAG,EAA0C,CAAA;YAEhD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAAE,SAAQ;gBACnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAErC,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;gBACtD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE;oBAC7C,KAAK,EAAE,iBAAiB;oBACxB,MAAM,EAAE,MAAM,CAAC,EAAE;iBAClB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,0BAA0B;IAC1B,8EAA8E;IAE9E;;;OAGG;IACK,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;OAK9B,CAAC,CAAC,GAAG,EAQJ,CAAA;YAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACpD,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,MAAM,CAAA;gBAE1D,IAAI,SAAS,KAAK,YAAY;oBAAE,SAAQ;gBACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;gBAEhD,2DAA2D;gBAC3D,IAAI,CAAC,SAAS;oBAAE,SAAQ;gBAExB,MAAM,GAAG,GAAG;oBACV,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,KAAK,CAAC,SAAS;oBACvB,KAAK,EAAE,KAAK,CAAC,UAAU;oBACvB,SAAS,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;oBAC1C,WAAW,EAAE,KAAK,CAAC,EAAE;iBACtB,CAAA;gBAED,IAAI,YAAY,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC;oBACnF,IAAI,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;oBACvE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;gBAClF,CAAC;qBAAM,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;oBACxC,IAAI,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;oBAC5E,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAA;gBAC5F,CAAC;qBAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;oBACvE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;gBAClF,CAAC;YACH,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;SAQlC,CAAC,CAAC,GAAG,EAA+F,CAAA;gBAErG,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBACpD,IAAI,SAAS,KAAK,MAAM;wBAAE,SAAQ;oBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;oBAE1C,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC,GAAG,CAAC,0CAA0C,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;wBACtE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE;4BAC3C,KAAK,EAAE,eAAe;4BACtB,MAAM,EAAE,KAAK,CAAC,SAAS;4BACvB,KAAK,EAAE,KAAK,CAAC,UAAU;4BACvB,SAAS,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;4BAC1C,WAAW,EAAE,KAAK,CAAC,EAAE;yBACtB,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,oBAAoB;IACpB,8EAA8E;IAE9E;;;OAGG;IACK,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,aAAa,EAAE,IAAI,iBAAiB,EAAE,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAM;QAE7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAErC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;gBAE5D,oBAAoB;gBACpB,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC/C,IAAI,OAAO,GAA6B,SAAS,CAAA;gBAEjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,CAAC,CAAA;oBAC3E,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACjC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CACvF,CAAA;wBACD,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;oBAC7C,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,SAAS,CAAA;oBACrB,CAAC;gBACH,CAAC;gBAED,qCAAqC;gBACrC,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,WAAW,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACjG,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;4BACzC,KAAK,EAAE,aAAa;4BACpB,EAAE,EAAE,EAAE,CAAC,MAAM;4BACb,MAAM,EAAE,EAAE,CAAC,UAAU;4BACrB,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,EAAE,CAAC,GAAG;yBACd,CAAC,CAAA;oBACJ,CAAC;yBAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBACjC,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,EAAE,EAAE,EAAE,CAAC,MAAM;4BACb,MAAM,EAAE,EAAE,CAAC,UAAU;4BACrB,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,EAAE,CAAC,GAAG;yBACd,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,0BAA0B;gBAC1B,IAAI,SAAS,GAA+B,SAAS,CAAA;gBACrD,IAAI,CAAC;oBACH,MAAM,eAAe,GAAG,QAAQ,CAC9B,cAAc,EAAE,CAAC,MAAM,iCAAiC,EACxD,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACtE,CAAC,IAAI,EAAE,CAAA;oBACR,IAAI,eAAe,KAAK,aAAa,EAAE,CAAC;wBACtC,SAAS,GAAG,aAAa,CAAA;oBAC3B,CAAC;yBAAM,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;wBAC3C,SAAS,GAAG,WAAW,CAAA;oBACzB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,iEAAiE;oBACjE,iDAAiD;oBACjD,SAAS,GAAG,OAAO,EAAE,aAAa,IAAI,SAAS,CAAA;gBACjD,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,SAAS,KAAK,WAAW,IAAI,QAAQ,EAAE,CAAC;oBAC1C,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBACjD,CAAC;gBAED,mFAAmF;gBACnF,MAAM,aAAa,GAAG,SAAS,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,CAAA;gBAC1G,IAAI,aAAa,EAAE,CAAC;oBAClB,+EAA+E;oBAC/E,IAAI,QAAQ,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7D,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,MAAM,kDAAkD,QAAQ,YAAY,CAAC,CAAA;oBACzG,CAAC;yBAAM,CAAC;wBACN,IAAI,QAAQ,EAAE,CAAC;4BACb,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;wBAC9C,CAAC;wBACD,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;wBACnD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE;4BAC/C,KAAK,EAAE,mBAAmB;4BAC1B,EAAE,EAAE,EAAE,CAAC,MAAM;4BACb,MAAM,EAAE,EAAE,CAAC,UAAU;4BACrB,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,EAAE,CAAC,GAAG;yBACd,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,kBAAkB;gBAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE;oBAC7B,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,WAAW,EAAE,OAAO;oBACpB,aAAa,EAAE,SAAS;iBACzB,CAAC,CAAA;YACJ,CAAC;YAED,6DAA6D;YAC7D,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC3C,8CAA8C;oBAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;oBACzC,IAAI,EAAE,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;wBAC5D,IAAI,CAAC,GAAG,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAA;wBAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,EAAE,EAAE,KAAK;4BACT,MAAM,EAAE,EAAE,CAAC,UAAU;4BACrB,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,EAAE,CAAC,GAAG;yBACd,CAAC,CAAA;oBACJ,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAE9E;;;;;;;;;;OAUG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,wDAAwD;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC/B,IAAI,CAAC,MAAM;gBAAE,OAAM;YAEnB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;YAEzC,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGhC,CAAC,CAAC,GAAG,EAA2B,CAAA;YAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE;wBAC9D,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC;wBAC5C,MAAM,EAAE,KAAK;qBACd,CAAC,CAAA;oBAEF,iDAAiD;oBACjD,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;gBAC7C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,yCAAyC,OAAO,CAAC,EAAE,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACtH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,wBAAwB,CAAC,MAAkB;QACvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,cAAc;wBACjB,IAAI,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;wBACjE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,MAAM,EAAE,MAAM,CAAC,QAAQ;yBACxB,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,gBAAgB;wBACnB,IAAI,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;wBACjE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,MAAM,EAAE,MAAM,CAAC,QAAQ;yBACxB,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,qBAAqB;wBACxB,IAAI,CAAC,GAAG,CAAC,0CAA0C,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;wBACrE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE;4BAC9C,KAAK,EAAE,kBAAkB;4BACzB,MAAM,EAAE,MAAM,CAAC,QAAQ;yBACxB,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,YAAY,CAAC;oBAClB,KAAK,mBAAmB;wBACtB,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;wBACpE,MAAK;oBAEP,KAAK,gBAAgB;wBACnB,IAAI,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;wBACxE,MAAK;oBAEP,KAAK,iBAAiB;wBACpB,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC/E,MAAK;gBACT,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACxH,CAAC;QACH,CAAC;QAED,eAAe;QACf,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,MAAM,CAAC,QAAQ,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,SAAS;QACf,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,cAAc,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,8EAA8E;IAC9E,UAAU;IACV,8EAA8E;IAE9E;;;OAGG;IACK,uBAAuB,CAAC,MAAc;QAC5C,kDAAkD;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/poller.ts"],"names":[],"mappings":"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"}
@@ -8,19 +8,30 @@
8
8
  * - supervised: auto for safe ops, confirm for destructive
9
9
  */
10
10
  const SHARED_HOOKS = [
11
+ // PR lifecycle
11
12
  { event: 'on_ci_green', action: 'merge-pr' },
12
13
  { event: 'on_pr_merged', action: 'move-ticket', config: { target: 'done' } },
13
14
  { event: 'on_pr_opened', action: 'move-ticket', config: { target: 'review' } },
15
+ { event: 'on_pr_opened', action: 'spawn-review-agent' },
14
16
  { event: 'on_pr_merged', action: 'rebase-conflicting-prs' },
15
17
  { event: 'on_pr_conflicting', action: 'resolve-conflict' },
18
+ // Ticket lifecycle
16
19
  { event: 'on_ticket_ready', action: 'spawn-agent' },
20
+ // Agent lifecycle (PRLT-1224: full loop — spawned→in-progress, completed→review, died→ready)
21
+ { event: 'on_agent_spawned', action: 'move-ticket', config: { target: 'in-progress' } },
22
+ { event: 'on_agent_completed', action: 'move-ticket', config: { target: 'review' } },
23
+ { event: 'on_agent_completed', action: 'cleanup-container' },
24
+ { event: 'on_agent_died', action: 'move-ticket', config: { target: 'ready' } },
17
25
  { event: 'on_agent_died', action: 'respawn', config: { max_retries: 2 } },
18
26
  { event: 'on_agent_died', action: 'notify' },
27
+ { event: 'on_agent_idle', action: 'health-check' },
28
+ // Review lifecycle
29
+ { event: 'on_review_approved', action: 'notify' },
30
+ { event: 'on_changes_requested', action: 'spawn-fix-agent' },
31
+ { event: 'on_changes_requested', action: 'notify' },
32
+ // CI lifecycle
19
33
  { event: 'on_ci_failed', action: 'notify' },
20
34
  { event: 'on_ci_failed', action: 'spawn-fix-agent' },
21
- { event: 'on_agent_completed', action: 'cleanup-container' },
22
- { event: 'on_agent_idle', action: 'health-check' },
23
- { event: 'on_agent_spawned', action: 'move-ticket', config: { target: 'in-progress' } },
24
35
  ];
25
36
  /**
26
37
  * Safe actions that can be auto-executed even in supervised mode.
@@ -28,6 +39,9 @@ const SHARED_HOOKS = [
28
39
  * Actions that spawn agents/containers (spawn-agent, respawn, spawn-fix-agent,
29
40
  * resolve-conflict) are NOT safe — they create external resources and must
30
41
  * require confirmation in supervised mode.
42
+ *
43
+ * Exception: spawn-review-agent IS safe because review agents are non-destructive
44
+ * — they only read diffs and post review comments (read-only permission mode).
31
45
  */
32
46
  const SAFE_ACTIONS = new Set([
33
47
  'move-ticket',
@@ -35,6 +49,7 @@ const SAFE_ACTIONS = new Set([
35
49
  'cleanup-container',
36
50
  'health-check',
37
51
  'rebase-conflicting-prs',
52
+ 'spawn-review-agent',
38
53
  ]);
39
54
  export const PRESETS = {
40
55
  aggressive: {
@@ -1 +1 @@
1
- {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,MAAM,YAAY,GAAyF;IACzG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE;IAC5C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC5E,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAC9E,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE;IAC3D,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,EAAE;IAC1D,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE;IACnD,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;IACzE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE;IACpD,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC5D,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE;IAClD,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;CACxF,CAAA;AAED;;;;;;GAMG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,cAAc;IACd,wBAAwB;CACzB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAyC;IAC3D,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,MAAkB;SACzB,CAAC,CAAC;KACJ;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iDAAiD;QAC9D,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,SAAqB;SAC5B,CAAC,CAAC;KACJ;IAED,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAa;SACpE,CAAC,CAAC;KACJ;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAiBH,MAAM,YAAY,GAAyF;IACzG,eAAe;IACf,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE;IAC5C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAC5E,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IAC9E,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,oBAAoB,EAAE;IACvD,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,wBAAwB,EAAE;IAC3D,EAAE,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,kBAAkB,EAAE;IAC1D,mBAAmB;IACnB,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE;IACnD,6FAA6F;IAC7F,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE;IACvF,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE;IACpF,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,mBAAmB,EAAE;IAC5D,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;IAC9E,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;IACzE,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC5C,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE;IAClD,mBAAmB;IACnB,EAAE,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,QAAQ,EAAE;IACjD,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,iBAAiB,EAAE;IAC5D,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,QAAQ,EAAE;IACnD,eAAe;IACf,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC3C,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,iBAAiB,EAAE;CACrD,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;IAC3B,aAAa;IACb,QAAQ;IACR,mBAAmB;IACnB,cAAc;IACd,wBAAwB;IACxB,oBAAoB;CACrB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,OAAO,GAAyC;IAC3D,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,mCAAmC;QAChD,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,MAAkB;SACzB,CAAC,CAAC;KACJ;IAED,YAAY,EAAE;QACZ,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,iDAAiD;QAC9D,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,SAAqB;SAC5B,CAAC,CAAC;KACJ;IAED,UAAU,EAAE;QACV,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,oDAAoD;QACjE,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,CAAC;YACJ,IAAI,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAa;SACpE,CAAC,CAAC;KACJ;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,IAAgB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;AACtB,CAAC"}
@@ -10,6 +10,7 @@
10
10
  */
11
11
  import { execSync } from 'node:child_process';
12
12
  import { isGHInstalled, isGHAuthenticated, listOpenPRs, getPRChecks } from '../pr/index.js';
13
+ import { getWorkflowConfig } from '../work-lifecycle/settings.js';
13
14
  // =============================================================================
14
15
  // Simple Poller
15
16
  // =============================================================================
@@ -246,17 +247,38 @@ export class SimplePoller {
246
247
  pollReadyTickets() {
247
248
  const changes = [];
248
249
  try {
249
- const readyTickets = this.db.prepare(`
250
- SELECT t.id, t.title
251
- FROM pmo_tickets t
252
- JOIN pmo_workflow_statuses ws ON t.status_id = ws.id
253
- WHERE ws.category = 'todo'
254
- AND t.assignee IS NULL
255
- AND t.id NOT IN (
256
- SELECT ticket_id FROM agent_work WHERE status IN ('starting', 'running')
257
- )
258
- LIMIT 20
259
- `).all();
250
+ // Resolve configured ready status name
251
+ let readyStatusName = null;
252
+ try {
253
+ const config = getWorkflowConfig(this.db);
254
+ readyStatusName = config.planned;
255
+ }
256
+ catch {
257
+ // pmo_settings may not exist yet
258
+ }
259
+ const readyTickets = readyStatusName
260
+ ? this.db.prepare(`
261
+ SELECT t.id, t.title
262
+ FROM pmo_tickets t
263
+ JOIN pmo_workflow_statuses ws ON t.status_id = ws.id
264
+ WHERE LOWER(ws.name) = LOWER(?)
265
+ AND t.assignee IS NULL
266
+ AND t.id NOT IN (
267
+ SELECT ticket_id FROM agent_work WHERE status IN ('starting', 'running')
268
+ )
269
+ LIMIT 20
270
+ `).all(readyStatusName)
271
+ : this.db.prepare(`
272
+ SELECT t.id, t.title
273
+ FROM pmo_tickets t
274
+ JOIN pmo_workflow_statuses ws ON t.status_id = ws.id
275
+ WHERE ws.category = 'unstarted'
276
+ AND t.assignee IS NULL
277
+ AND t.id NOT IN (
278
+ SELECT ticket_id FROM agent_work WHERE status IN ('starting', 'running')
279
+ )
280
+ LIMIT 20
281
+ `).all();
260
282
  const currentReadyIds = new Set(readyTickets.map(t => t.id));
261
283
  // Detect newly ready tickets
262
284
  for (const ticket of readyTickets) {