@stratusagent/cli 0.11.4 → 0.11.6

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 (72) hide show
  1. package/README.md +14 -2
  2. package/dist/commands/doctor.d.ts.map +1 -1
  3. package/dist/commands/doctor.js +39 -1
  4. package/dist/commands/doctor.js.map +1 -1
  5. package/dist/commands/grants.d.ts.map +1 -1
  6. package/dist/commands/grants.js +10 -4
  7. package/dist/commands/grants.js.map +1 -1
  8. package/dist/commands/memory.d.ts +16 -3
  9. package/dist/commands/memory.d.ts.map +1 -1
  10. package/dist/commands/memory.js +322 -16
  11. package/dist/commands/memory.js.map +1 -1
  12. package/dist/commands/plugins.d.ts.map +1 -1
  13. package/dist/commands/plugins.js +1 -5
  14. package/dist/commands/plugins.js.map +1 -1
  15. package/dist/commands/schedules.d.ts.map +1 -1
  16. package/dist/commands/schedules.js +140 -31
  17. package/dist/commands/schedules.js.map +1 -1
  18. package/dist/commands/serve.d.ts.map +1 -1
  19. package/dist/commands/serve.js +55 -3
  20. package/dist/commands/serve.js.map +1 -1
  21. package/dist/commands/setup.d.ts.map +1 -1
  22. package/dist/commands/setup.js +34 -15
  23. package/dist/commands/setup.js.map +1 -1
  24. package/dist/commands/template.d.ts.map +1 -1
  25. package/dist/commands/template.js +13 -7
  26. package/dist/commands/template.js.map +1 -1
  27. package/dist/commands/update.d.ts +0 -17
  28. package/dist/commands/update.d.ts.map +1 -1
  29. package/dist/commands/update.js +76 -32
  30. package/dist/commands/update.js.map +1 -1
  31. package/dist/companions.d.ts +34 -0
  32. package/dist/companions.d.ts.map +1 -0
  33. package/dist/companions.js +45 -0
  34. package/dist/companions.js.map +1 -0
  35. package/dist/daemon.d.ts.map +1 -1
  36. package/dist/daemon.js +3 -0
  37. package/dist/daemon.js.map +1 -1
  38. package/dist/events.d.ts.map +1 -1
  39. package/dist/events.js +27 -9
  40. package/dist/events.js.map +1 -1
  41. package/dist/help.d.ts +1 -1
  42. package/dist/help.d.ts.map +1 -1
  43. package/dist/help.js +31 -3
  44. package/dist/help.js.map +1 -1
  45. package/dist/index.d.ts +1 -1
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/main.d.ts.map +1 -1
  50. package/dist/main.js +14 -3
  51. package/dist/main.js.map +1 -1
  52. package/dist/npm.d.ts +1 -1
  53. package/dist/npm.js +1 -1
  54. package/dist/parse.d.ts +25 -2
  55. package/dist/parse.d.ts.map +1 -1
  56. package/dist/parse.js +66 -9
  57. package/dist/parse.js.map +1 -1
  58. package/dist/runtime.d.ts.map +1 -1
  59. package/dist/runtime.js +5 -4
  60. package/dist/runtime.js.map +1 -1
  61. package/dist/service.d.ts +23 -0
  62. package/dist/service.d.ts.map +1 -1
  63. package/dist/service.js +41 -2
  64. package/dist/service.js.map +1 -1
  65. package/dist/slack.d.ts.map +1 -1
  66. package/dist/slack.js +9 -0
  67. package/dist/slack.js.map +1 -1
  68. package/dist/trusted-config.d.ts +30 -1
  69. package/dist/trusted-config.d.ts.map +1 -1
  70. package/dist/trusted-config.js +53 -0
  71. package/dist/trusted-config.js.map +1 -1
  72. package/package.json +26 -25
@@ -1,5 +1,121 @@
1
+ import { stat } from 'node:fs/promises';
1
2
  import { canonicalDestination, describeCadence, describeSchedule } from '@stratusagent/agents';
3
+ import { fleetDbPath, legacySessionDbPath, stratusHomePath } from '@stratusagent/state';
2
4
  import { writeLine } from "../io.js";
5
+ /**
6
+ * Every schedule this home has, from every database it keeps them in.
7
+ *
8
+ * Both, for as long as the per-agent move is pending, and merged rather
9
+ * than chosen between. Resolving to one file first — "where are the rows
10
+ * right now" — reads as tidier and loses an audit: `stratus schedules` can
11
+ * see rows in the legacy database, the exclusive migration can rename it in
12
+ * the moment before the store opens, and SQLite creates an empty one at the
13
+ * old name. The command then reports a fleet with nothing scheduled while
14
+ * every row sits safely in `fleet.db`, which is the worst answer this
15
+ * surface can give — an operator reads it as "nothing will fire".
16
+ *
17
+ * **The legacy database is read first**, and reading both is not by itself
18
+ * enough to make that safe. The migration copies the rows and *then*
19
+ * renames the source, so fleet-first leaves the same empty answer one step
20
+ * along: the fleet read finds nothing because the copy has not run, the
21
+ * copy and the rename happen, and the legacy read then finds no file — or
22
+ * the empty husk SQLite creates at the old name. Legacy-first cannot land
23
+ * there. Either the legacy read precedes the rename and sees the rows, or
24
+ * it follows the copy, in which case the fleet read after it has them.
25
+ *
26
+ * Deduped by id because the migration copies with `INSERT OR REPLACE` on
27
+ * that key, so a row caught mid-move is the same row in both places. The
28
+ * fleet copy overwrites the legacy one, so what survives the merge is the
29
+ * row the fleet will actually fire.
30
+ */
31
+ const listEverywhere = async (env) => {
32
+ const { SqliteScheduleStore } = await import('@stratusagent/gateway');
33
+ const byId = new Map();
34
+ for (const dbPath of [legacySessionDbPath(env), fleetDbPath(env)]) {
35
+ if (!(await pathExists(dbPath))) {
36
+ continue;
37
+ }
38
+ // `fleet.db` is a name Stratus derived and is refused behind a link;
39
+ // the legacy database may be one an operator relocated, and is not.
40
+ const store = new SqliteScheduleStore(dbPath, dbPath === fleetDbPath(env) ? { stateHome: stratusHomePath(env) } : {});
41
+ try {
42
+ for (const record of store.list()) {
43
+ // Unconditional, so the fleet row read second replaces the legacy
44
+ // copy of the same id rather than losing to it.
45
+ byId.set(record.id, record);
46
+ }
47
+ }
48
+ finally {
49
+ store.close();
50
+ }
51
+ }
52
+ return [...byId.values()];
53
+ };
54
+ /**
55
+ * Cancel a schedule out of every database this home has one in.
56
+ *
57
+ * Two of them exist for as long as the per-agent move is pending, and a row
58
+ * that survives in either is a schedule that fires after the operator was
59
+ * told it was cancelled — carrying the standing destination grant the
60
+ * cancel was supposed to revoke with it, which is the failure this surface
61
+ * exists to prevent.
62
+ *
63
+ * **The legacy database goes first**, and the order is the point. The
64
+ * migration copies the rows out of it under an IMMEDIATE transaction, so a
65
+ * delete there either lands before the copy — leaving nothing to copy — or
66
+ * waits out the copy's brief lock and runs after it, in which case the row
67
+ * is now in `fleet.db` and the second delete below removes it. Deleting the
68
+ * fleet row first would invert that and let a copy still in flight put the
69
+ * row back behind us.
70
+ *
71
+ * Returns the record as the first database holding it described it, or
72
+ * undefined when nothing did.
73
+ */
74
+ const cancelEverywhere = async (env, id) => {
75
+ const { SqliteScheduleStore } = await import('@stratusagent/gateway');
76
+ let cancelled;
77
+ for (const dbPath of [legacySessionDbPath(env), fleetDbPath(env)]) {
78
+ if (!(await pathExists(dbPath))) {
79
+ continue;
80
+ }
81
+ // `fleet.db` is a name Stratus derived and is refused behind a link;
82
+ // the legacy database may be one an operator relocated, and is not.
83
+ const store = new SqliteScheduleStore(dbPath, dbPath === fleetDbPath(env) ? { stateHome: stratusHomePath(env) } : {});
84
+ try {
85
+ const record = store.get(id);
86
+ if (store.delete(id) && record) {
87
+ cancelled ??= record;
88
+ }
89
+ }
90
+ finally {
91
+ store.close();
92
+ }
93
+ }
94
+ return cancelled;
95
+ };
96
+ /**
97
+ * Whether the database is there — and only "no" when it is genuinely not.
98
+ *
99
+ * Anything else propagates, because the alternative is this surface's
100
+ * worst failure mode wearing a confident face: a permission error or a
101
+ * failing disk swallowed here makes `stratus schedules` print "No
102
+ * schedules set" over a fleet that is about to fire, and makes `schedules
103
+ * cancel` report an id that does not exist while the schedule — and the
104
+ * standing destination grant riding on it — stays live. Opening the one
105
+ * database used to surface those; reading two must not lose them.
106
+ */
107
+ const pathExists = async (filePath) => {
108
+ try {
109
+ await stat(filePath);
110
+ return true;
111
+ }
112
+ catch (error) {
113
+ if (error.code === 'ENOENT') {
114
+ return false;
115
+ }
116
+ throw error;
117
+ }
118
+ };
3
119
  /**
4
120
  * List and cancel what the fleet has scheduled — against the daemon's own
5
121
  * database, the way `stratus logs` reads the daemon's own log. WAL makes a
@@ -10,41 +126,34 @@ import { writeLine } from "../io.js";
10
126
  export const runSchedules = async (command, streams, env = {}) => {
11
127
  // Lazy like the serve path: node:sqlite loads only for the command that
12
128
  // needs it.
13
- const { SqliteScheduleStore, defaultSessionDbPath } = await import('@stratusagent/gateway');
14
- const store = new SqliteScheduleStore(defaultSessionDbPath(env));
15
- try {
16
- if (command.action === 'cancel') {
17
- const id = command.scheduleId ?? '';
18
- const record = store.get(id);
19
- if (!record || !store.delete(id)) {
20
- writeLine(streams.stderr, `No schedule with id ${id}. \`stratus schedules\` lists what exists.`);
21
- return 1;
22
- }
23
- writeLine(streams.stdout, `Cancelled ${id} (${record.agentId}, ${describeCadence(record.cadence)}).`);
24
- if (record.destination) {
25
- writeLine(streams.stdout, `Its pre-authorized destination ${canonicalDestination(record.destination)} is revoked with it.`);
26
- }
27
- return 0;
28
- }
29
- const schedules = store.list();
30
- if (command.format === 'json') {
31
- writeLine(streams.stdout, JSON.stringify({ schedules: schedules.map(describeSchedule) }, null, 2));
32
- return 0;
33
- }
34
- if (schedules.length === 0) {
35
- writeLine(streams.stdout, 'No schedules set. An agent sets one with the schedule.every / schedule.at tools.');
36
- return 0;
129
+ if (command.action === 'cancel') {
130
+ const id = command.scheduleId ?? '';
131
+ const record = await cancelEverywhere(env, id);
132
+ if (!record) {
133
+ writeLine(streams.stderr, `No schedule with id ${id}. \`stratus schedules\` lists what exists.`);
134
+ return 1;
37
135
  }
38
- for (const record of schedules) {
39
- const destination = record.destination ? ` → ${canonicalDestination(record.destination)}` : '';
40
- writeLine(streams.stdout, `${record.id} [${record.agentId}] ${describeCadence(record.cadence)}${destination}`);
41
- writeLine(streams.stdout, ` next: ${record.nextFireAt ?? '(spent — awaiting cleanup)'}${record.lastFiredAt ? ` last: ${record.lastFiredAt}` : ''}`);
42
- writeLine(streams.stdout, ` prompt: ${record.prompt}`);
136
+ writeLine(streams.stdout, `Cancelled ${id} (${record.agentId}, ${describeCadence(record.cadence)}).`);
137
+ if (record.destination) {
138
+ writeLine(streams.stdout, `Its pre-authorized destination ${canonicalDestination(record.destination)} is revoked with it.`);
43
139
  }
44
140
  return 0;
45
141
  }
46
- finally {
47
- store.close();
142
+ const schedules = await listEverywhere(env);
143
+ if (command.format === 'json') {
144
+ writeLine(streams.stdout, JSON.stringify({ schedules: schedules.map(describeSchedule) }, null, 2));
145
+ return 0;
146
+ }
147
+ if (schedules.length === 0) {
148
+ writeLine(streams.stdout, 'No schedules set. An agent sets one with the schedule.every / schedule.at tools.');
149
+ return 0;
150
+ }
151
+ for (const record of schedules) {
152
+ const destination = record.destination ? ` → ${canonicalDestination(record.destination)}` : '';
153
+ writeLine(streams.stdout, `${record.id} [${record.agentId}] ${describeCadence(record.cadence)}${destination}`);
154
+ writeLine(streams.stdout, ` next: ${record.nextFireAt ?? '(spent — awaiting cleanup)'}${record.lastFiredAt ? ` last: ${record.lastFiredAt}` : ''}`);
155
+ writeLine(streams.stdout, ` prompt: ${record.prompt}`);
48
156
  }
157
+ return 0;
49
158
  };
50
159
  //# sourceMappingURL=schedules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schedules.js","sourceRoot":"","sources":["../../src/commands/schedules.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAItF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAkBtD,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CAuDhB,CAAC"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAoB,MAAM,mBAAmB,CAAC;AAMtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAoBtD,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CAuDhB,CAAC"}
@@ -7,16 +7,18 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
7
7
  return path;
8
8
  };
9
9
  import { createFileCommandWhitelist, createPermissionPolicy, describeCommandScope, describeOriginScope, describeToolGrant, } from '@stratusagent/permissions';
10
- import { agentsDirPath, loadChannelCredentials, readProcessEnv, logsDirPath, resolveAgentApprovals, resolveAgentPrincipals, servedRuntimes, discoverIgnoredUntrustedConfig, } from '@stratusagent/state';
10
+ import { agentsDirPath, stratusHomePath, loadChannelCredentials, readProcessEnv, logsDirPath, resolveAgentApprovals, resolveAgentPrincipals, resolveAgentSlack, applyPerAgentWorkspaces, workspaceRepairPending, runStateMigrations, servedRuntimes, discoverIgnoredUntrustedConfig, } from '@stratusagent/state';
11
11
  import { createLogWriter, truncateRedirectLogs } from "../logs.js";
12
12
  import { describePrincipals, describeApprovers } from "../approvals.js";
13
13
  import { HomeHeldError, legacyDaemonServing, describeHeldHome } from "../daemon.js";
14
14
  import { formatEvent, eventDetail } from "../events.js";
15
15
  import { writeLine } from "../io.js";
16
16
  import { loadSlackAdapter, loadControlApi } from "../loaders.js";
17
+ import { companionsBehindMessage, readCompanions } from "../companions.js";
18
+ import { CLI_VERSION } from "../npm.js";
17
19
  import { warnOnCredentialOverride, warnOnUntrustedConfig, warnOnIgnoredConfig } from "../runtime.js";
18
20
  import { RESTART_EXIT_CODE, UNDRAINED_RESTART_EXIT_CODE, SUPERVISED_ENV, BOUND_API_PORT_ENV, defaultSupervisorLink, superviseRestarts, } from "../supervisor.js";
19
- import { loadServeApprovals, loadServePrincipals, loadServeApi, loadServePlugins, loadServeRuntimeSelection, } from "../trusted-config.js";
21
+ import { loadServeApprovals, loadServePrincipals, loadServeSlack, loadServeApi, loadServePlugins, loadServeRuntimeSelection, loadServeMaxTurns, } from "../trusted-config.js";
20
22
  export const runServe = async (command, streams, env = {}) => {
21
23
  // First, before anything that can throw. A broken install makes the
22
24
  // gateway import below fail, the manager restarts, and the CLI's error
@@ -86,6 +88,40 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
86
88
  writeLine(streams.stderr, `Warning: ${line}`);
87
89
  void logWriter?.write({ ts: new Date().toISOString(), level: 'warn', msg: line });
88
90
  };
91
+ // With the home claim in hand, this daemon is the exclusive holder of the
92
+ // state a migration would move — which is the bracket the marked ones
93
+ // wait for. Every ordinary command defers them (see `requiresExclusive`),
94
+ // so for an install that is never updated through `stratus update` this
95
+ // is where the move actually happens: before the stores are opened, so
96
+ // nothing here reads a path the migration is still populating.
97
+ for (const migration of await runStateMigrations(env, { exclusive: true })) {
98
+ log(`state migration ${migration.id}: ${migration.detail ?? migration.description}`);
99
+ }
100
+ // And then the workspace pass again, unconditionally, whatever the schema
101
+ // stamp says. It is registered as `0004` and runs once as a migration, but
102
+ // the stamp is not what makes that move safe: ordinary commands take no
103
+ // home lock, so a command of an *older* build can create
104
+ // `workspaces/<id>` by pathname at any moment — including after the
105
+ // migration that was meant to be the last word on it. With nothing looking
106
+ // there afterwards, those files and every provenance label in them were
107
+ // stranded where no build reads, silently.
108
+ //
109
+ // Here is the right moment for it: the home claim is held, so no second
110
+ // daemon is racing, and the stores are not open yet, so nothing is reading
111
+ // a path this may still be populating. Costs one `readdir` on a home that
112
+ // has finished moving, which is every home eventually.
113
+ // Gated, because the pass opens by finishing any interrupted move — which
114
+ // asks every agent and reads each provenance ledger whole. Append-only
115
+ // files on a fleet that has been up for months are not something to parse
116
+ // on every start. The gate asks whether anything is actually pending
117
+ // rather than whether the directory exists: an ordinary home keeps it
118
+ // forever, since a collision leaves a workspace's files in it by design.
119
+ if (await workspaceRepairPending(env)) {
120
+ const repaired = await applyPerAgentWorkspaces(env);
121
+ if (repaired !== undefined) {
122
+ log(`workspace layout: ${repaired}`);
123
+ }
124
+ }
89
125
  // Agents with stored Slack tokens go live in Slack automatically — the
90
126
  // tokens are gateway infrastructure secrets in the channels namespace of
91
127
  // ~/.stratus/credentials.json (see @stratusagent/channel-slack's README
@@ -96,6 +132,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
96
132
  const approvalsConfig = await loadServeApprovals(env, command.configPath, warn);
97
133
  const approvalMode = command.approvals ?? approvalsConfig.mode ?? 'headless';
98
134
  const principalsConfig = await loadServePrincipals(env, command.configPath, warn);
135
+ const slackConfig = await loadServeSlack(env, command.configPath, warn);
99
136
  // Read here rather than inside the gateway for the same reason as the two
100
137
  // blocks above: the trust boundary is a property of *which file* said it,
101
138
  // and this is where the file precedence is already understood.
@@ -105,6 +142,11 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
105
142
  // at start when the name is nobody's.
106
143
  const executorName = await loadServeRuntimeSelection('executor', env, command.configPath, warn);
107
144
  const memoryStoreName = await loadServeRuntimeSelection('memoryStore', env, command.configPath, warn);
145
+ // How long a loop one message may buy. Same trust rule, and the last
146
+ // thing the daemon could not say for itself — `--max-turns` is a
147
+ // `stratus run` flag, so a served fleet was held to the kernel default
148
+ // with no override.
149
+ const maxTurns = await loadServeMaxTurns(env, command.configPath, warn);
108
150
  // Every kind of grant an agent holds — command scopes, origins, standing
109
151
  // tool grants — in one file per agent beside its soul, through one store
110
152
  // instance for the whole daemon. One instance, because the store caches
@@ -114,7 +156,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
114
156
  // restart. A whitelist that exists and will not read is said here, once,
115
157
  // and never written over — the daemon's log is where a grant list going
116
158
  // quiet would otherwise go unnoticed.
117
- const grantStore = createFileCommandWhitelist({ directory: agentsDirPath(env), warn });
159
+ const grantStore = createFileCommandWhitelist({ directory: agentsDirPath(env), stateHome: stratusHomePath(env), warn });
118
160
  // The control API is a channel adapter like any other: started after the
119
161
  // roster loads, stopped before the store drains. It is optional because
120
162
  // installing it is how an operator says they want a port open.
@@ -171,6 +213,14 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
171
213
  }
172
214
  });
173
215
  }
216
+ // Every start, not only `stratus update`: an upgrade that went around it
217
+ // leaves the adapters this daemon is about to load at their old version,
218
+ // and a Slack adapter from before thread follow-through answers mentions
219
+ // and nothing else, with no error anywhere to say why.
220
+ const behind = (await readCompanions(CLI_VERSION, env)).filter((entry) => entry.stale);
221
+ if (behind.length > 0) {
222
+ warn(companionsBehindMessage(behind));
223
+ }
174
224
  const channelCredentials = await loadChannelCredentials(env);
175
225
  const slackAgents = Object.entries(channelCredentials.slack ?? {});
176
226
  const channels = [...controlApiChannels];
@@ -201,6 +251,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
201
251
  ...(route.slackChannel ? { approvalChannel: route.slackChannel } : {}),
202
252
  ...(principals.slackUsers ? { principals: principals.slackUsers } : {}),
203
253
  ...(principals.admit ? { admit: principals.admit } : {}),
254
+ replies: resolveAgentSlack(slackConfig, agentId).replies,
204
255
  };
205
256
  }),
206
257
  log,
@@ -384,6 +435,7 @@ const serveHeldHome = async (command, streams, env, createGateway) => {
384
435
  ...(approvalsConfig.timeoutMs !== undefined ? { approvalTimeoutMs: approvalsConfig.timeoutMs } : {}),
385
436
  ...(command.configPath ? { selection: { configPath: command.configPath } } : {}),
386
437
  ...(command.idleTimeoutMs !== undefined ? { idleTimeoutMs: command.idleTimeoutMs } : {}),
438
+ ...(maxTurns !== undefined ? { maxTurns } : {}),
387
439
  ...(channels.length > 0 ? { channels } : {}),
388
440
  // The Slack adapter is host-wired, so its (agent, kind) claims are
389
441
  // declared here; a plugin channel claiming one of them is refused at
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":";;;;;;;;AAOA,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,GAKlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAkB,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAuB,cAAc,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACrG,OAAO,EACL,iBAAiB,EACjB,2BAA2B,EAC3B,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,OAA2B,EAC3B,OAAmB,EACnB,MAAsB,EAAE,EACP,EAAE;IACnB,oEAAoE;IACpE,uEAAuE;IACvE,wEAAwE;IACxE,sEAAsE;IACtE,aAAa;IACb,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QAChC,MAAM,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,yEAAyE;IACzE,iEAAiE;IACjE,gCAAgC;IAChC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAE7F,yEAAyE;IACzE,yEAAyE;IACzE,wBAAwB;IACxB,IAAI,KAAgB,CAAC;IACrB,IAAI,CAAC;QACH,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,gBAAgB,EAAE,CAAC;YACtC,MAAM,IAAI,aAAa,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,OAAqB,CAAC;IAC1B,IAAI,CAAC;QACH,6DAA6D;QAC7D,IAAI,MAAM,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,aAAa,CAAC,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;YAAS,CAAC;QACT,oEAAoE;QACpE,iEAAiE;QACjE,qEAAqE;QACrE,uEAAuE;QACvE,8CAA8C;QAC9C,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;IACD,yEAAyE;IACzE,uEAAuE;IACvE,0EAA0E;IAC1E,uEAAuE;IACvE,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/E,OAAO,iBAAiB,CACtB,OAAO,EACP,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EACrH,OAAO,EACP,GAAG,CACJ,CAAC;IACJ,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC;AACtB,CAAC,CAAC;AAYF,MAAM,aAAa,GAAG,KAAK,EACzB,OAA2B,EAC3B,OAAmB,EACnB,GAAmB,EACnB,aAA6B,EACN,EAAE;IACzB,wEAAwE;IACxE,uEAAuE;IACvE,wDAAwD;IACxD,MAAM,SAAS,GAA0B,OAAO,CAAC,SAAS,KAAK,KAAK;QAClE,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,eAAe,CAAC;YACd,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC;YACrB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAC3B,OAAO,CAAC,MAAM,EACd,0CAA0C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CACjH;SACF,CAAC,CAAC;IACP,MAAM,GAAG,GAAG,CAAC,IAAY,EAAQ,EAAE;QACjC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChC,KAAK,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAQ,EAAE;QAClC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;QAC9C,KAAK,SAAS,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,CAAC,CAAC;IAEF,0EAA0E;IAC1E,sEAAsE;IACtE,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,+DAA+D;IAC/D,KAAK,MAAM,SAAS,IAAI,MAAM,kBAAkB,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3E,GAAG,CAAC,mBAAmB,SAAS,CAAC,EAAE,KAAK,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IACvF,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,yDAAyD;IACzD,oEAAoE;IACpE,2EAA2E;IAC3E,wEAAwE;IACxE,2CAA2C;IAC3C,EAAE;IACF,wEAAwE;IACxE,2EAA2E;IAC3E,0EAA0E;IAC1E,uDAAuD;IACvD,0EAA0E;IAC1E,uEAAuE;IACvE,0EAA0E;IAC1E,qEAAqE;IACrE,sEAAsE;IACtE,yEAAyE;IACzE,IAAI,MAAM,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,GAAG,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,wEAAwE;IACxE,yCAAyC;IACzC,qEAAqE;IACrE,wEAAwE;IACxE,iEAAiE;IACjE,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChF,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,IAAI,eAAe,CAAC,IAAI,IAAI,UAAU,CAAC;IAC7E,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAExE,0EAA0E;IAC1E,0EAA0E;IAC1E,+DAA+D;IAC/D,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5E,sEAAsE;IACtE,wEAAwE;IACxE,sCAAsC;IACtC,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChG,MAAM,eAAe,GAAG,MAAM,yBAAyB,CAAC,aAAa,EAAE,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtG,qEAAqE;IACrE,iEAAiE;IACjE,uEAAuE;IACvE,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAExE,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,oEAAoE;IACpE,uEAAuE;IACvE,oEAAoE;IACpE,yEAAyE;IACzE,wEAAwE;IACxE,sCAAsC;IACtC,MAAM,UAAU,GAAG,0BAA0B,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAExH,yEAAyE;IACzE,wEAAwE;IACxE,+DAA+D;IAC/D,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC;IAC3D,uEAAuE;IACvE,0DAA0D;IAC1D,MAAM,kBAAkB,GAA4B,EAAE,CAAC;IACvD,yHAAyH;IACzH,IAAI,QAIS,CAAC;IACd,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,gBAAgB,GAAG,MAAM,cAAc,EAAE,CAAC;QAChD,wEAAwE;QACxE,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,+BAA+B;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC;QAClD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC;QACxD,mEAAmE;QACnE,qEAAqE;QACrE,yCAAyC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;QACvG,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,gBAAgB,CAAC;gBAC3B,GAAG;gBACH,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjE,MAAM,EAAE,UAAU;gBAClB,GAAG;gBACH,IAAI;aACL,CAAC,CAAC;YACH,QAAQ,GAAG,GAAG,CAAC;YACf,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;aAAM,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC9D,qEAAqE;YACrE,iEAAiE;YACjE,IAAI,CACF,iFAAiF;kBAC/E,yFAAyF,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,uBAAuB;IACvB,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,IAAI,qBAAqB,CAAC;IACzD,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACvB,IAAI,OAAO,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACzC,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,uDAAuD;IACvD,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,CAAC,GAAG,kBAAkB,CAAC,CAAC;IACzC,yEAAyE;IACzE,2EAA2E;IAC3E,uEAAuE;IACvE,uEAAuE;IACvE,wEAAwE;IACxE,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,+DAA+D;QAC/D,iEAAiE;QACjE,kEAAkE;QAClE,6DAA6D;QAC7D,0BAA0B;QAC1B,MAAM,OAAO,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,cAAc,GAAG,IAAI,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;gBACpB,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE;oBAC5C,MAAM,KAAK,GAAG,qBAAqB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;oBAC9D,MAAM,UAAU,GAAG,sBAAsB,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;oBACrE,OAAO;wBACL,OAAO;wBACP,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACtE,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACvE,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxD,OAAO,EAAE,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,OAAO;qBACzD,CAAC;gBACJ,CAAC,CAAC;gBACF,GAAG;gBACH,IAAI;aACL,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,IAAI,CACF,+BAA+B,WAAW,CAAC,MAAM,+DAA+D;kBAC9G,4GAA4G,CAC/G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,mEAAmE;IACnE,sEAAsE;IACtE,uEAAuE;IACvE,uEAAuE;IACvE,mEAAmE;IACnE,wEAAwE;IACxE,4DAA4D;IAC5D,CAAC;QACC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;QACjC,MAAM,OAAO,GAAG,CAAC,IAAY,EAAQ,EAAE;YACrC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjB,kEAAkE;YAClE,+DAA+D;YAC/D,kEAAkE;YAClE,4DAA4D;YAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC;QACF,MAAM,QAAQ,GAAe;YAC3B,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;YAC7B,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE;SAC1F,CAAC;QACF,sEAAsE;QACtE,uEAAuE;QACvE,oEAAoE;QACpE,sEAAsE;QACtE,mEAAmE;QACnE,oEAAoE;QACpE,0EAA0E;QAC1E,mBAAmB,CAAC,MAAM,8BAA8B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9I,qEAAqE;QACrE,uEAAuE;QACvE,kEAAkE;QAClE,KAAK,MAAM,MAAM,IAAI,MAAM,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACnE,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,wBAAwB,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,8DAA8D;IAC9D,yEAAyE;IACzE,yEAAyE;IACzE,kEAAkE;IAClE,EAAE;IACF,kEAAkE;IAClE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,qEAAqE;IACrE,0EAA0E;IAC1E,iBAAiB;IACjB,MAAM,UAAU,GAAG,CAAC,QAA4B,EAAQ,EAAE;QACxD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,iEAAiE;YACjE,mEAAmE;YACnE,qEAAqE;YACrE,sEAAsE;YACtE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACnB,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,QAAQ,gCAAgC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,QAAQ,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,cAAc,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;YAC/L,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,KAAK,QAAQ,CAAC,MAAM,aAAa,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IAClF,CAAC,CAAC;IACF,sEAAsE;IACtE,yEAAyE;IACzE,sEAAsE;IACtE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,QAAQ,GAAG;QACf,SAAS,EAAE,UAAU;QACrB,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAA4C,EAAE,EAAE;YAClF,iEAAiE;YACjE,sEAAsE;YACtE,YAAY;YACZ,GAAG,CAAC,GAAG,OAAO,MAAM,oBAAoB,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9E,CAAC;KACF,CAAC;IACF,qEAAqE;IACrE,uEAAuE;IACvE,yEAAyE;IACzE,2DAA2D;IAC3D,MAAM,OAAO,GAAG;QACd,SAAS,EAAE,UAAU;QACrB,iBAAiB,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAA2C,EAAE,EAAE;YACjF,GAAG,CAAC,GAAG,OAAO,KAAK,mBAAmB,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAClF,CAAC;KACF,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,SAA4B,EAAkB,EAAE;QACjE,qEAAqE;QACrE,mEAAmE;QACnE,sEAAsE;QACtE,MAAM,MAAM,GAAG;YACb,KAAK,EAAE,UAAU;YACjB,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAyC,EAAE,EAAE;gBACvE,GAAG,CAAC,GAAG,OAAO,KAAK,iBAAiB,CAAC,KAAK,CAAC,0CAA0C,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpJ,CAAC;SACF,CAAC;QACF,OAAO,sBAAsB;QAC3B,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,qEAAqE;QACrE,gEAAgE;QAChE,kDAAkD;QAClD,YAAY,KAAK,QAAQ;YACvB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE;YAC7H,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,CAAC,YAAY,EAAE,CACtG,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,qEAAqE;QACrE,gEAAgE;QAChE,mDAAmD;QACnD,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9E,GAAG,CAAC,kEAAkE,iBAAiB,CAAC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACxH,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,uEAAuE;QACvE,qEAAqE;QACrE,uEAAuE;QACvE,GAAG,CAAC,eAAe,kBAAkB,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;;;OAIG;IACH,IAAI,UAAoC,CAAC;IACzC,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,yEAAyE;IACzE,wEAAwE;IACxE,4DAA4D;IAC5D,IAAI,OAAmC,CAAC;IACxC,8FAA8F;IAC9F,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,eAAe,GAAe,GAAG,EAAE,GAAE,CAAC,CAAC;IAC3C,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;QACtD,eAAe,GAAG,OAAO,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,aAAa,CAAC;QAC5B,GAAG;QACH,SAAS;QACT,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;YACrB,OAAO,GAAG,OAAO,CAAC;YAClB,eAAe,EAAE,CAAC;QACpB,CAAC;QACD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,CAAC;YACvC,CAAC,CAAC;gBACE,OAAO,EAAE,aAAa;gBACtB,qDAAqD;gBACrD,kEAAkE;gBAClE,iEAAiE;gBACjE,iEAAiE;gBACjE,2DAA2D;gBAC3D,UAAU,EAAE;oBACV,OAAO,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;oBAC9D,MAAM,EAAE,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,kCAAC,SAAS,EAAC;iBACjD;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,mEAAmE;QACnE,qEAAqE;QACrE,sCAAsC;QACtC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtH,GAAG;QACH,IAAI;KACL,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,IAAI,EAAE,CAAC;gBACT,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,mEAAmE;QACnE,oEAAoE;QACpE,gEAAgE;QAChE,uEAAuE;QACvE,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;QACjD,wEAAwE;QACxE,uEAAuE;QACvE,qEAAqE;QACrE,iEAAiE;QACjE,sEAAsE;QACtE,uCAAuC;QACvC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBACrC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACrD,CAAC;YACD,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG;gBACX,EAAE;gBACF,KAAK,EAAE,OAAgB;gBACvB,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,SAAS,EAAE,KAAK,CAAC,SAAS;gBAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9B,CAAC;YACF,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACN,mEAAmE;gBACnE,mEAAmE;gBACnE,yCAAyC;gBACzC,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;qBACpC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;oBAChB,MAAM,OAAO,GAAG,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;oBAClC,IAAI,OAAO,EAAE,CAAC;wBACZ,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC/C,CAAC;oBACD,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvE,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBAC1E,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IAEtB,sEAAsE;IACtE,mDAAmD;IACnD,MAAM,YAAY,GAAG,QAAQ,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAClG,IAAI,UAAU,IAAI,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;QACnG,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,oEAAoE;IACpE,qEAAqE;IACrE,uEAAuE;IACvE,+CAA+C;IAC/C,IAAI,aAAyC,CAAC;IAC9C,IAAI,CAAC;QACH,yEAAyE;QACzE,oEAAoE;QACpE,wEAAwE;QACxE,wEAAwE;QACxE,sEAAsE;QACtE,qEAAqE;QACrE,gDAAgD;QAChD,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvF,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,IAAI,CACF,0BAA0B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,2CAA2C;sBACzF,sGAAsG,CACzG,CAAC;YACJ,CAAC;QACH,CAAC;QAED,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;QAEnD,kEAAkE;QAClE,sEAAsE;QACtE,iEAAiE;QACjE,mEAAmE;QACnE,sEAAsE;QACtE,qEAAqE;QACrE,qEAAqE;QACrE,gDAAgD;QAChD,IAAI,SAAS,EAAE,CAAC;YACd,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,oBAAoB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;YAC3F,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;QAC1B,CAAC;QAED,qEAAqE;QACrE,uDAAuD;QACvD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,aAAa,CAAC,CAAC;YACvD,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,QAAQ,GAAG,GAAS,EAAE;gBAC1B,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO;gBACT,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC;gBACf,aAAa,CAAC,SAAS,CAAC,CAAC;gBACzB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,UAAU,GAAG,GAAS,EAAE;gBACtB,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,QAAQ,EAAE,CAAC;oBACX,OAAO;gBACT,CAAC;gBACD,kEAAkE;gBAClE,mEAAmE;gBACnE,gDAAgD;gBAChD,aAAa,GAAG,IAAI,CAAC;gBACrB,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,YAAY,GAAG,IAAI,CAAC;oBACpB,kEAAkE;oBAClE,iEAAiE;oBACjE,4DAA4D;oBAC5D,iEAAiE;oBACjE,IAAI,CAAC;wBACH,IAAI,CAAC,mHAAmH,CAAC,CAAC;oBAC5H,CAAC;oBAAC,MAAM,CAAC;wBACP,mDAAmD;oBACrD,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YACF,mEAAmE;YACnE,oEAAoE;YACpE,oEAAoE;YACpE,kEAAkE;YAClE,mEAAmE;YACnE,mEAAmE;YACnE,qEAAqE;YACrE,mEAAmE;YACnE,gEAAgE;YAChE,+DAA+D;YAC/D,iEAAiE;YACjE,mBAAmB;YACnB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAClC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACjC,KAAK,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,GAAG,CAAC,cAAc,EAAE,OAAO,EAAE,CAAC;gBAChC,QAAQ,EAAE,CAAC;YACb,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,qEAAqE;QACrE,sEAAsE;QACtE,oEAAoE;QACpE,+BAA+B;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,qEAAqE;YACrE,qEAAqE;YACrE,+DAA+D;YAC/D,qCAAqC;YACrC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,kEAAkE;gBAClE,kEAAkE;gBAClE,iEAAiE;gBACjE,6DAA6D;gBAC7D,IAAI,CAAC,0DAA0D,2BAA2B,iFAAiF,CAAC,CAAC;YAC/K,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,sBAAsB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,sEAAsE;YACtE,oEAAoE;YACpE,oEAAoE;YACpE,0CAA0C;YAC1C,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,oEAAoE;YACpE,mEAAmE;YACnE,sEAAsE;YACtE,kEAAkE;YAClE,gEAAgE;YAChE,gEAAgE;YAChE,kEAAkE;YAClE,8DAA8D;YAC9D,qEAAqE;YACrE,oEAAoE;YACpE,wCAAwC;YACxC,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,aAAa,EAAE,CAAC;gBAClB,aAAa,CAAC,aAAa,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,YAAY,GAAG,CAAC;QAC5F,CAAC,CAAC,EAAE,YAAY,EAAE;QAClB,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,CAAC,OAAO,IAAI,aAAa,EAAE,CAAC;QAC9B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,2BAA2B,CAAC,CAAC;QAC/D,OAAO,EAAE,IAAI,EAAE,2BAA2B,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACvE,CAAC;IACD,+DAA+D;IAC/D,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,QAAQ,GAAG,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;IAClD,IAAI,UAAU,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrD,CAAC;IACD,qEAAqE;IACrE,uEAAuE;IACvE,kEAAkE;IAClE,oEAAoE;IACpE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC;AACzD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAInF,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAYvE,eAAO,MAAM,oBAAoB,QAKrB,CAAC;AA4Db,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA4lFhB,CAAC"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAgEA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AAInF,OAAO,KAAK,EAAmB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAYvE,eAAO,MAAM,oBAAoB,QAKrB,CAAC;AAmEb,eAAO,MAAM,QAAQ,GACnB,SAAS,kBAAkB,EAC3B,SAAS,UAAU,EACnB,MAAK,cAAmB,KACvB,OAAO,CAAC,MAAM,CA+mFhB,CAAC"}
@@ -4,7 +4,7 @@ import { preflightPlugin, readPluginManifest, PluginConfigError, PluginManifestE
4
4
  import { DEFAULT_ANTHROPIC_MODEL } from '@stratusagent/provider-anthropic';
5
5
  import { DEFAULT_CODEX_MODEL } from '@stratusagent/provider-codex';
6
6
  import { formatSoul, parseSoul } from '@stratusagent/agents';
7
- import { claimSoulFile, collectAvailableModels as collectModels, credentialsPath, defaultApiKeyEnvName, DEFAULT_ANTHROPIC_BASE_URL, DEFAULT_OPENAI_BASE_URL, DEFAULT_OPENAI_MODEL, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isRegisteredProviderName, readNonEmptyString, registeredProviderNameOf, readProcessEnv, readWorkingDirectory, resolveAgentApprovals, DEFAULT_CONFIG_FILENAME, loadConfigFile, saveChannelCredentials, saveConfigFile, saveCredentials, CREDENTIAL_PROVIDER_NAMES, verifyProviderKey, workspacesDirPath, } from '@stratusagent/state';
7
+ import { claimSoulFile, collectAvailableModels as collectModels, credentialsPath, defaultApiKeyEnvName, DEFAULT_ANTHROPIC_BASE_URL, DEFAULT_OPENAI_BASE_URL, DEFAULT_OPENAI_MODEL, DEFAULT_STRATUS_AGENT, globalConfigPath, loadChannelCredentials, loadCredentials, loadRosterSouls, loadSoulFile, isRegisteredProviderName, readNonEmptyString, registeredProviderNameOf, readProcessEnv, readWorkingDirectory, resolveAgentApprovals, DEFAULT_CONFIG_FILENAME, loadConfigFile, saveChannelCredentials, saveConfigFile, saveCredentials, CREDENTIAL_PROVIDER_NAMES, verifyProviderKey, } from '@stratusagent/state';
8
8
  import { installService, readServiceStatus, servicePlatform, serviceUnitPath, uninstallService, } from "../service.js";
9
9
  import { classifyApprovalReach, unattendedReachParts } from "../approvals.js";
10
10
  import { serviceEnvFor } from "../daemon.js";
@@ -101,11 +101,17 @@ export const runSetup = async (command, streams, env = {}) => {
101
101
  ...(existing.approvals !== undefined ? { approvals: existing.approvals } : {}),
102
102
  ...(existing.api !== undefined ? { api: existing.api } : {}),
103
103
  ...(existing.principals !== undefined ? { principals: existing.principals } : {}),
104
- // Trusted-only selections setup has no menu for, carried through a
105
- // save untouched: a re-run that dropped them would put the operator's
106
- // agents back on the host and the file store without a word.
104
+ ...(existing.slack !== undefined ? { slack: existing.slack } : {}),
105
+ // Settings setup has no menu for, carried through a save untouched: a
106
+ // re-run that dropped them would put the operator's agents back on the
107
+ // host and the file store without a word — and, for the two bounds,
108
+ // back on defaults their model cannot serve. A `maxTokens` set because
109
+ // a proxy's ceiling is under 16000 would silently return to 16000 and
110
+ // fail every request; a raised `maxTurns` would return to 8.
107
111
  ...(existing.executor !== undefined ? { executor: existing.executor } : {}),
108
112
  ...(existing.memoryStore !== undefined ? { memoryStore: existing.memoryStore } : {}),
113
+ ...(existing.maxTokens !== undefined ? { maxTokens: existing.maxTokens } : {}),
114
+ ...(existing.maxTurns !== undefined ? { maxTurns: existing.maxTurns } : {}),
109
115
  credentials: await loadCredentials(env),
110
116
  credentialsDirty: false,
111
117
  channels: await loadChannelCredentials(env),
@@ -816,27 +822,31 @@ export const runSetup = async (command, streams, env = {}) => {
816
822
  writeLine(streams.stdout);
817
823
  writeLine(streams.stdout, `Create a Slack app for ${agentName}:`);
818
824
  writeLine(streams.stdout, ' 1. Open https://api.slack.com/apps → Create New App → From a manifest');
819
- writeLine(streams.stdout, ' 2. Pick your workspace, then paste this manifest:');
825
+ writeLine(streams.stdout, ' 2. Pick your workspace → Next, then paste this manifest:');
820
826
  writeLine(streams.stdout);
821
827
  for (const line of slackAppManifest(agentName).split('\n')) {
822
828
  writeLine(streams.stdout, ` ${line}`);
823
829
  }
824
830
  writeLine(streams.stdout);
825
- writeLine(streams.stdout, ' 3. Create the app, then Basic Information → App-Level Tokens →');
826
- writeLine(streams.stdout, ' Generate a token with the connections:write scope (xapp-…)');
827
- writeLine(streams.stdout, ' 4. Install App → copy the Bot User OAuth Token (xoxb-…)');
831
+ // The app-level token is the step people got lost on: it lives on
832
+ // Basic Information rather than OAuth & Permissions, where the other
833
+ // token is, and needs a scope added in the dialog that generates it.
834
+ writeLine(streams.stdout, ' 3. Click Next, then Create. You land on Basic Information — scroll down to');
835
+ writeLine(streams.stdout, ' App-Level Tokens and click Generate Token and Scopes (scope: connections:write)');
836
+ writeLine(streams.stdout, ' 4. Sidebar → Install App → Install to your workspace → Allow, then copy');
837
+ writeLine(streams.stdout, ' the Bot User OAuth Token — it starts with xoxb-');
828
838
  writeLine(streams.stdout, ` 5. Basic Information → Display Information → upload ${agentName}'s avatar`);
829
839
  writeLine(streams.stdout);
830
- const appToken = await prompter.askSecret('Paste the app-level token (xapp-…, Enter to cancel; input is hidden): ');
840
+ const appToken = await prompter.askSecret('Paste the app-level token from step 3 (xapp-…, Enter to cancel; input is hidden): ');
831
841
  if (!appToken) {
832
842
  writeLine(streams.stdout, 'Cancelled — nothing was saved.');
833
843
  return;
834
844
  }
835
845
  if (!appToken.startsWith('xapp-')) {
836
- writeLine(streams.stdout, '✗ That does not look like an app-level token (they start with xapp-). Nothing was saved.');
846
+ writeLine(streams.stdout, '✗ That does not look like an app-level token (they start with xapp-, and live under Basic Information → App-Level Tokens, not OAuth & Permissions). Nothing was saved.');
837
847
  return;
838
848
  }
839
- const botToken = await prompter.askSecret('Paste the bot user OAuth token (xoxb-…, Enter to cancel; input is hidden): ');
849
+ const botToken = await prompter.askSecret('Paste the Bot User OAuth Token from step 4 (xoxb-…, Enter to cancel; input is hidden): ');
840
850
  if (!botToken) {
841
851
  writeLine(streams.stdout, 'Cancelled — nothing was saved.');
842
852
  return;
@@ -854,7 +864,7 @@ export const runSetup = async (command, streams, env = {}) => {
854
864
  }
855
865
  const app = await verifySlackAppToken(appToken, fetchImpl);
856
866
  if (app.status === 'rejected') {
857
- writeLine(streams.stdout, `✗ Slack rejected the app-level token (${app.detail}). Nothing was saved — check it has the connections:write scope.`);
867
+ writeLine(streams.stdout, `✗ Slack rejected the app-level token (${app.detail}). Nothing was saved — generate a new one under Basic Information → App-Level Tokens with the connections:write scope.`);
858
868
  return;
859
869
  }
860
870
  const slack = { ...(state.channels.slack ?? {}) };
@@ -1087,7 +1097,7 @@ export const runSetup = async (command, streams, env = {}) => {
1087
1097
  const { manifest, directory } = await readPluginManifest(name, {
1088
1098
  resolve: (target) => import.meta.resolve(target),
1089
1099
  });
1090
- await preflightPlugin(manifest, directory, block, workspacesDirPath(env));
1100
+ await preflightPlugin(manifest, directory, block);
1091
1101
  return undefined;
1092
1102
  }
1093
1103
  catch (error) {
@@ -2220,8 +2230,8 @@ export const runSetup = async (command, streams, env = {}) => {
2220
2230
  if (state.promptCacheTtl !== undefined) {
2221
2231
  config.promptCacheTtl = state.promptCacheTtl;
2222
2232
  }
2223
- // `plugins` and `approvals` have menus above; `api` and `principals`
2224
- // do not and are written back exactly as they were read. Both cases
2233
+ // `plugins` and `approvals` have menus above; `api`, `principals`, and
2234
+ // `slack` do not and are written back exactly as they were read. Both cases
2225
2235
  // land here the same way, because the menus edit this state rather
2226
2236
  // than the file — so there is nothing to merge, only to not lose.
2227
2237
  if (state.plugins !== undefined) {
@@ -2236,12 +2246,21 @@ export const runSetup = async (command, streams, env = {}) => {
2236
2246
  if (state.principals !== undefined) {
2237
2247
  config.principals = state.principals;
2238
2248
  }
2249
+ if (state.slack !== undefined) {
2250
+ config.slack = state.slack;
2251
+ }
2239
2252
  if (state.executor !== undefined) {
2240
2253
  config.executor = state.executor;
2241
2254
  }
2242
2255
  if (state.memoryStore !== undefined) {
2243
2256
  config.memoryStore = state.memoryStore;
2244
2257
  }
2258
+ if (state.maxTokens !== undefined) {
2259
+ config.maxTokens = state.maxTokens;
2260
+ }
2261
+ if (state.maxTurns !== undefined) {
2262
+ config.maxTurns = state.maxTurns;
2263
+ }
2245
2264
  await saveConfigFile(configPath, config);
2246
2265
  writeLine(streams.stdout);
2247
2266
  writeLine(streams.stdout, `Wrote ${configPath}`);