@memberjunction/cli 6.2.0-edge.5 → 6.2.0-edge.7

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 (97) hide show
  1. package/README.md +95 -0
  2. package/dist/commands/agent/init.d.ts +5 -0
  3. package/dist/commands/agent/init.d.ts.map +1 -1
  4. package/dist/commands/agent/init.js +109 -0
  5. package/dist/commands/agent/init.js.map +1 -1
  6. package/dist/commands/ai/actions/run.d.ts.map +1 -1
  7. package/dist/commands/ai/actions/run.js +5 -1
  8. package/dist/commands/ai/actions/run.js.map +1 -1
  9. package/dist/commands/ai/agents/run.d.ts +1 -0
  10. package/dist/commands/ai/agents/run.d.ts.map +1 -1
  11. package/dist/commands/ai/agents/run.js +20 -6
  12. package/dist/commands/ai/agents/run.js.map +1 -1
  13. package/dist/commands/ai/prompts/run.d.ts.map +1 -1
  14. package/dist/commands/ai/prompts/run.js +5 -1
  15. package/dist/commands/ai/prompts/run.js.map +1 -1
  16. package/dist/commands/app/install.d.ts.map +1 -1
  17. package/dist/commands/app/install.js +17 -2
  18. package/dist/commands/app/install.js.map +1 -1
  19. package/dist/commands/app/upgrade.d.ts.map +1 -1
  20. package/dist/commands/app/upgrade.js +7 -1
  21. package/dist/commands/app/upgrade.js.map +1 -1
  22. package/dist/commands/dev/workspace/clean.d.ts +2 -1
  23. package/dist/commands/dev/workspace/clean.d.ts.map +1 -1
  24. package/dist/commands/dev/workspace/clean.js +4 -3
  25. package/dist/commands/dev/workspace/clean.js.map +1 -1
  26. package/dist/commands/dev/workspace/doctor.d.ts.map +1 -1
  27. package/dist/commands/dev/workspace/doctor.js +3 -2
  28. package/dist/commands/dev/workspace/doctor.js.map +1 -1
  29. package/dist/commands/dev/workspace/index.d.ts +2 -2
  30. package/dist/commands/dev/workspace/index.d.ts.map +1 -1
  31. package/dist/commands/dev/workspace/index.js +12 -9
  32. package/dist/commands/dev/workspace/index.js.map +1 -1
  33. package/dist/commands/dev/workspace/status.d.ts +1 -1
  34. package/dist/commands/dev/workspace/status.js +1 -1
  35. package/dist/commands/query/refresh.d.ts +25 -0
  36. package/dist/commands/query/refresh.d.ts.map +1 -0
  37. package/dist/commands/query/refresh.js +67 -0
  38. package/dist/commands/query/refresh.js.map +1 -0
  39. package/dist/commands/query/usage.d.ts +7 -0
  40. package/dist/commands/query/usage.d.ts.map +1 -0
  41. package/dist/commands/query/usage.js +10 -0
  42. package/dist/commands/query/usage.js.map +1 -0
  43. package/dist/commands/user/clone.d.ts.map +1 -1
  44. package/dist/commands/user/clone.js +1 -0
  45. package/dist/commands/user/clone.js.map +1 -1
  46. package/dist/init-templates/citizen-builder/.agents/skills/new-agent/SKILL.md +19 -6
  47. package/dist/init-templates/citizen-builder/.agents/skills/test-agent/SKILL.md +4 -1
  48. package/dist/init-templates/citizen-builder/.claude/skills/new-agent/SKILL.md +19 -6
  49. package/dist/init-templates/citizen-builder/.claude/skills/test-agent/SKILL.md +4 -1
  50. package/dist/init-templates/citizen-builder/.env.example +4 -2
  51. package/dist/init-templates/citizen-builder/AGENTS.md +136 -40
  52. package/dist/init-templates/citizen-builder/README.md +18 -5
  53. package/dist/init-templates/citizen-builder/docker-compose.yml +6 -5
  54. package/dist/init-templates/citizen-builder/metadata/.mj-sync.json +7 -4
  55. package/dist/init-templates/citizen-builder/metadata/agents/.customer-insight-agent.json +17 -13
  56. package/dist/init-templates/citizen-builder/metadata/prompts/.customer-insight-prompt.json +3 -1
  57. package/dist/init-templates/citizen-builder/metadata/prompts/templates/customer-insight.template.md +8 -0
  58. package/dist/init-templates/citizen-builder/scripts/docker-entrypoint.sh +140 -38
  59. package/dist/init-templates/citizen-builder/scripts/sync-metadata.sh +1 -1
  60. package/dist/lib/dev-workspace/build-output.d.ts +22 -0
  61. package/dist/lib/dev-workspace/build-output.d.ts.map +1 -0
  62. package/dist/lib/dev-workspace/build-output.js +146 -0
  63. package/dist/lib/dev-workspace/build-output.js.map +1 -0
  64. package/dist/lib/dev-workspace/build.d.ts +6 -6
  65. package/dist/lib/dev-workspace/build.d.ts.map +1 -1
  66. package/dist/lib/dev-workspace/build.js +59 -34
  67. package/dist/lib/dev-workspace/build.js.map +1 -1
  68. package/dist/lib/dev-workspace/clean.d.ts +19 -5
  69. package/dist/lib/dev-workspace/clean.d.ts.map +1 -1
  70. package/dist/lib/dev-workspace/clean.js +44 -12
  71. package/dist/lib/dev-workspace/clean.js.map +1 -1
  72. package/dist/lib/dev-workspace/detect.d.ts.map +1 -1
  73. package/dist/lib/dev-workspace/detect.js +0 -2
  74. package/dist/lib/dev-workspace/detect.js.map +1 -1
  75. package/dist/lib/dev-workspace/doctor.d.ts.map +1 -1
  76. package/dist/lib/dev-workspace/doctor.js +63 -5
  77. package/dist/lib/dev-workspace/doctor.js.map +1 -1
  78. package/dist/lib/dev-workspace/lockfile.d.ts +9 -1
  79. package/dist/lib/dev-workspace/lockfile.d.ts.map +1 -1
  80. package/dist/lib/dev-workspace/lockfile.js +19 -8
  81. package/dist/lib/dev-workspace/lockfile.js.map +1 -1
  82. package/dist/lib/dev-workspace/types.d.ts +40 -16
  83. package/dist/lib/dev-workspace/types.d.ts.map +1 -1
  84. package/dist/lib/dev-workspace/types.js +2 -2
  85. package/dist/lib/dev-workspace/write.d.ts +7 -2
  86. package/dist/lib/dev-workspace/write.d.ts.map +1 -1
  87. package/dist/lib/dev-workspace/write.js +7 -3
  88. package/dist/lib/dev-workspace/write.js.map +1 -1
  89. package/dist/lib/domain-profiles.d.ts.map +1 -1
  90. package/dist/lib/domain-profiles.js +4 -0
  91. package/dist/lib/domain-profiles.js.map +1 -1
  92. package/dist/lib/query-refresh.d.ts +23 -0
  93. package/dist/lib/query-refresh.d.ts.map +1 -0
  94. package/dist/lib/query-refresh.js +33 -0
  95. package/dist/lib/query-refresh.js.map +1 -0
  96. package/oclif.manifest.json +2615 -2471
  97. package/package.json +27 -26
package/README.md CHANGED
@@ -16,6 +16,7 @@ graph TD
16
16
  B --> H[test]
17
17
  B --> I[dbdoc]
18
18
  B --> J[querygen]
19
+ B --> Q2[query]
19
20
  B --> K[bump]
20
21
  B --> L[clean]
21
22
 
@@ -31,6 +32,7 @@ graph TD
31
32
  S["@memberjunction/db-auto-doc"]
32
33
  T["@memberjunction/query-gen"]
33
34
  U["@memberjunction/ai-cli"]
35
+ V["@memberjunction/core-entities-server"]
34
36
  end
35
37
 
36
38
  E --> P
@@ -39,6 +41,7 @@ graph TD
39
41
  I --> S
40
42
  J --> T
41
43
  G --> U
44
+ Q2 --> V
42
45
 
43
46
  style A fill:#2d6a9f,stroke:#1a4971,color:#fff
44
47
  style C fill:#2d8659,stroke:#1a5c3a,color:#fff
@@ -49,6 +52,7 @@ graph TD
49
52
  style H fill:#b8762f,stroke:#8a5722,color:#fff
50
53
  style I fill:#b8762f,stroke:#8a5722,color:#fff
51
54
  style J fill:#b8762f,stroke:#8a5722,color:#fff
55
+ style Q2 fill:#b8762f,stroke:#8a5722,color:#fff
52
56
  ```
53
57
 
54
58
  ## Overview
@@ -476,6 +480,75 @@ mj dbdoc generate-queries
476
480
  mj dbdoc export-sample-queries
477
481
  ```
478
482
 
483
+ ### mj query
484
+
485
+ Saved query maintenance.
486
+
487
+ #### mj query refresh
488
+
489
+ Re-establishes saved queries' parameters, fields, entities and dependencies from their SQL and the database server. The SQL itself is never changed. It runs the same extraction that saving an edited query runs: each query is described on the database server and parsed, the child rows are corrected, and the query's `ExtractedSQLHash`, `ExtractionStatus` and `ExtractionMessage` are updated. Authored annotations (descriptions, and a `Manual` parameter's type, default, sample value and filters) are kept.
490
+
491
+ ```bash
492
+ # Recommended after upgrading: review first, then apply
493
+ mj query refresh --all --dry-run
494
+ mj query refresh --all
495
+
496
+ # One query by full path, or every query with a bare name
497
+ mj query refresh --name "MJ/Reports/Top Customers"
498
+
499
+ # A category and everything below it, filling empty descriptions with the LLM
500
+ mj query refresh --category MJ --with-ai
501
+
502
+ # Every query that reads an entity
503
+ mj query refresh --entity "MJ: AI Agents"
504
+ ```
505
+
506
+ | Flag | Description |
507
+ |------|-------------|
508
+ | `--id <id>` | Refresh the query with this ID. Repeatable. |
509
+ | `--name <name>` | A query name or a full path `Category/Sub/Name`. A bare name selects every query with that name. Repeatable. |
510
+ | `--category <path>` | A category path: the queries in it and in every category below it. Given once. |
511
+ | `--entity <name>` | The queries that read this entity. Repeatable. |
512
+ | `--all` | Refresh every query. |
513
+ | `--dry-run` | Report the changes without writing anything. |
514
+ | `--with-ai` | Fill empty descriptions with the LLM description pass (off by default). |
515
+ | `-v`, `--verbose` | Also list queries that are unchanged. |
516
+ | `--format <text\|json>` | Output format (default `text`). `json` prints the full run report. |
517
+
518
+ At least one of `--id`, `--name`, `--category`, `--entity` or `--all` is required. The selectors are not mutually exclusive: when several are given, the queries any of them select are refreshed. Each query is refreshed in its own transaction, and the queries a composition depends on are refreshed before the queries that compose them.
519
+
520
+ **Output.** Progress goes to stderr, one line per query (`[3/31] Refreshed AIUsageHourly`). The report goes to stdout: one heading per query with its outcome and extraction status, then its changes, then a summary line:
521
+
522
+ ```text
523
+ WOULD REFRESH "AIUsageHourly" (<query ID>) [OK]
524
+ + field CacheReadTokens
525
+ ~ parameter start (Type)
526
+ - entity MJ: AI Models
527
+ ! parameter scope: authored, no longer used by the SQL (kept)
528
+ 31 queries: 1 would be refreshed, 30 unchanged, 0 failed (dry run: nothing was written).
529
+ ```
530
+
531
+ `+`, `~` and `-` mark child rows added, updated (with the changed columns) and removed; `~ query (...)` lists changed columns on the query row itself. The outcomes are `REFRESHED` (`WOULD REFRESH` in a dry run), `UNCHANGED`, `NOTPERMITTED`, `UNAVAILABLE` and `FAILED`. Without `--verbose`, unchanged queries with no diagnostics are left out. A failed query reports the reason, and nothing is written for it.
532
+
533
+ **Exit codes.**
534
+
535
+ | Code | Meaning |
536
+ |------|---------|
537
+ | `0` | Every selected query was refreshed, was unchanged, or was skipped as not permitted. |
538
+ | `1` | A query failed, or an `--id` or `--name` you gave matched no query you can read. |
539
+ | `2` | No selector flag was given. |
540
+
541
+ **Permissions.** A refresh, including a dry run, needs Update on `MJ: Queries` and Create, Update and Delete on `MJ: Query Fields`, `MJ: Query Parameters`, `MJ: Query Entities` and `MJ: Query Dependencies`. For each query it also needs read access to every entity the query reads, with no field denied on any of them. A query that fails these checks is reported as `NOTPERMITTED` in a bulk run, with no reason given. `mj query refresh` runs in process as the System user, using the database connection in `mj.config.cjs`; the same checks apply when a refresh is started from MJAPI or Explorer as a signed-in user.
542
+
543
+ #### mj query usage
544
+
545
+ Prints every `mj query` command with its flags, examples and runtime hints. `--format` takes `text`, `json` or `md`; it defaults to `text` on a terminal and `json` when stdout is piped.
546
+
547
+ ```bash
548
+ mj query usage
549
+ mj query usage --format=json
550
+ ```
551
+
479
552
  ### mj querygen
480
553
 
481
554
  Query generation tools.
@@ -533,6 +606,28 @@ mj app remove <name> --keep-data
533
606
  mj app check-updates
534
607
  ```
535
608
 
609
+ #### Private repositories
610
+
611
+ Some BizApp repositories are private or internal (`bizapps-ats` is one). GitHub answers **404, not 403**, for a repository
612
+ it will not show you, so an install without a credential fails as though the app or the version
613
+ did not exist. Supply a token one of three ways:
614
+
615
+ ```bash
616
+ # 1. Environment variable
617
+ GITHUB_TOKEN=$(gh auth token) mj app install https://github.com/MemberJunction/bizapps-ats
618
+
619
+ # 2. mj.config.cjs — per-repository tokens, keyed by repo URL
620
+ # openApps: { github: { tokens: { 'https://github.com/MemberJunction/bizapps-ats': process.env.ATS_TOKEN } } }
621
+
622
+ # 3. mj.config.cjs — one token for every Open App repo
623
+ # openApps: { github: { token: process.env.GITHUB_TOKEN } }
624
+ ```
625
+
626
+ If more than one is set, the per-repo `tokens` entry wins, then `token`, then `GITHUB_TOKEN` — so a
627
+ stale `token` left in `mj.config.cjs` silently shadows a freshly exported `GITHUB_TOKEN`.
628
+
629
+ The token needs `repo` scope for the repositories you install from.
630
+
536
631
  #### Internal / dangerous flags
537
632
 
538
633
  Intentionally omitted from `--help`. Almost never needed: MJ's own Open Apps use the
@@ -13,6 +13,11 @@ export default class AgentInit extends Command {
13
13
  'skip-docker-check': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
14
14
  };
15
15
  run(): Promise<void>;
16
+ private checkDockerMemory;
17
+ private checkPortsAvailable;
18
+ private findAvailablePort;
19
+ private isPortAvailable;
20
+ private canBindPort;
16
21
  /**
17
22
  * This CLI's own version, read from its package.json. Not `this.config.version`: that is the
18
23
  * version of whatever package root oclif resolved, which is this CLI only when the command runs
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAUnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAC+G;IAEjI,MAAM,CAAC,OAAO,WAAsB;IAEpC,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;;;;MAoBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8E1B;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAUlB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,4BAA4B;CAcrC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAWnD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAC+G;IAEjI,MAAM,CAAC,OAAO,WAAsB;IAEpC,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;;;;MAoBV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8F1B,OAAO,CAAC,iBAAiB;YAsBX,mBAAmB;YA2CnB,iBAAiB;IAS/B,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,WAAW;IAWnB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAUlB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,kBAAkB;IAsB1B,OAAO,CAAC,mBAAmB;IAmC3B,OAAO,CAAC,gBAAgB;IAiCxB,OAAO,CAAC,8BAA8B;IActC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,4BAA4B;CAcrC"}
@@ -1,5 +1,6 @@
1
1
  import { Args, Command, Flags } from '@oclif/core';
2
2
  import { existsSync, mkdirSync, cpSync, copyFileSync, readFileSync, writeFileSync } from 'node:fs';
3
+ import * as net from 'node:net';
3
4
  import path from 'node:path';
4
5
  import { fileURLToPath } from 'node:url';
5
6
  import { execSync } from 'node:child_process';
@@ -81,6 +82,14 @@ export default class AgentInit extends Command {
81
82
  // container installs this exact CLI and passes it to `mj install --tag`, so the stack cannot
82
83
  // drift onto whatever npm's `latest` or the newest GitHub release happens to be.
83
84
  this.upsertEnvValue(envPath, 'MJ_VERSION', this.cliVersion());
85
+ // Set a workspace-unique COMPOSE_PROJECT_NAME so multiple Citizen Builder workspaces on one
86
+ // machine don't collide on Docker container/volume names.
87
+ const slug = path
88
+ .basename(targetDir)
89
+ .toLowerCase()
90
+ .replace(/[^a-z0-9_-]+/g, '-')
91
+ .replace(/^-+|-+$/g, '') || 'citizen';
92
+ this.upsertEnvValue(envPath, 'COMPOSE_PROJECT_NAME', `mj-${slug}`);
84
93
  // If a custom app URL was supplied, point the workspace at it
85
94
  if (flags.app) {
86
95
  this.upsertEnvValue(envPath, 'OPEN_APP_INSTALL_URL', flags.app);
@@ -94,6 +103,12 @@ export default class AgentInit extends Command {
94
103
  this.error(errorMsg);
95
104
  }
96
105
  // 6. Start Docker and bootstrap if requested and available
106
+ if (!flags['skip-docker-check']) {
107
+ if (dockerAvailable) {
108
+ this.checkDockerMemory();
109
+ }
110
+ await this.checkPortsAvailable(targetDir);
111
+ }
97
112
  if (flags.start && dockerAvailable) {
98
113
  this.startEnvironment(targetDir);
99
114
  }
@@ -104,6 +119,100 @@ export default class AgentInit extends Command {
104
119
  this.printNextSteps(targetDir, dockerAvailable);
105
120
  }
106
121
  }
122
+ checkDockerMemory() {
123
+ try {
124
+ const memBytesRaw = execSync("docker info --format '{{.MemTotal}}'", {
125
+ stdio: ['ignore', 'pipe', 'ignore'],
126
+ })
127
+ .toString()
128
+ .trim();
129
+ const memBytes = Number(memBytesRaw);
130
+ const minRecommendedBytes = 6 * 1024 * 1024 * 1024; // 6 GB
131
+ if (Number.isFinite(memBytes) && memBytes > 0 && memBytes < minRecommendedBytes) {
132
+ const memGb = (memBytes / (1024 * 1024 * 1024)).toFixed(1);
133
+ this.log(chalk.yellow(`⚠️ Docker has ${memGb} GB RAM allocated. SQL Server + MJExplorer recommend at least 8 GB RAM in Docker Desktop settings.`));
134
+ }
135
+ }
136
+ catch {
137
+ // Ignore if docker info format is unsupported
138
+ }
139
+ }
140
+ async checkPortsAvailable(targetDir) {
141
+ let apiPort = 4000;
142
+ let dbPort = 1433;
143
+ let explorerPort = 4202;
144
+ const envPath = path.join(targetDir, '.env');
145
+ if (existsSync(envPath)) {
146
+ const content = readFileSync(envPath, 'utf8');
147
+ const apiMatch = content.match(/^API_PORT=(\d+)/m);
148
+ if (apiMatch)
149
+ apiPort = Number(apiMatch[1]);
150
+ const dbMatch = content.match(/^DB_PORT=(\d+)/m);
151
+ if (dbMatch)
152
+ dbPort = Number(dbMatch[1]);
153
+ const explorerMatch = content.match(/^EXPLORER_PORT=(\d+)/m);
154
+ if (explorerMatch)
155
+ explorerPort = Number(explorerMatch[1]);
156
+ }
157
+ const portsToCheck = [
158
+ { port: dbPort, envVar: 'DB_PORT', label: 'SQL Server' },
159
+ { port: apiPort, envVar: 'API_PORT', label: 'MJAPI' },
160
+ { port: explorerPort, envVar: 'EXPLORER_PORT', label: 'MJExplorer' },
161
+ ];
162
+ for (const item of portsToCheck) {
163
+ const available = await this.isPortAvailable(item.port);
164
+ if (!available) {
165
+ const replacement = await this.findAvailablePort(item.port + 1);
166
+ if (replacement && existsSync(envPath)) {
167
+ this.upsertEnvValue(envPath, item.envVar, String(replacement));
168
+ this.log(chalk.yellow(`⚠️ Port ${item.port} (${item.label}) is already in use on localhost. Automatically set ${item.envVar}=${replacement} in .env.`));
169
+ }
170
+ else {
171
+ this.log(chalk.yellow(`⚠️ Port ${item.port} (${item.label}) is already in use on localhost. Update ${item.envVar} in .env before starting Docker if needed.`));
172
+ }
173
+ }
174
+ }
175
+ }
176
+ async findAvailablePort(startPort) {
177
+ for (let port = startPort; port < startPort + 50; port++) {
178
+ if (await this.isPortAvailable(port)) {
179
+ return port;
180
+ }
181
+ }
182
+ return null;
183
+ }
184
+ isPortAvailable(port) {
185
+ return new Promise((resolve) => {
186
+ // 1. First probe whether anything is already accepting connections on 127.0.0.1:port.
187
+ // On macOS/Windows, Docker Desktop's port proxy binds wildcard/IPv6 in a way that
188
+ // can allow net.createServer().listen(port, '127.0.0.1') to succeed even when
189
+ // Docker has already allocated the port.
190
+ const socket = net.createConnection({ port, host: '127.0.0.1' });
191
+ socket.setTimeout(250);
192
+ socket.once('connect', () => {
193
+ socket.destroy();
194
+ resolve(false);
195
+ });
196
+ socket.once('timeout', () => {
197
+ socket.destroy();
198
+ this.canBindPort(port).then(resolve);
199
+ });
200
+ socket.once('error', () => {
201
+ socket.destroy();
202
+ this.canBindPort(port).then(resolve);
203
+ });
204
+ });
205
+ }
206
+ canBindPort(port) {
207
+ return new Promise((resolve) => {
208
+ const server = net.createServer();
209
+ server.once('error', () => resolve(false));
210
+ server.once('listening', () => {
211
+ server.close(() => resolve(true));
212
+ });
213
+ server.listen(port, '0.0.0.0');
214
+ });
215
+ }
107
216
  /**
108
217
  * This CLI's own version, read from its package.json. Not `this.config.version`: that is the
109
218
  * version of whatever package root oclif resolved, which is this CLI only when the command runs
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/agent/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/agent/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/commands/ai/actions/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAA0C;IAE5D,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;MA+BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoD3B"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/commands/ai/actions/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAA0C;IAE5D,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;MA+BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAuD3B"}
@@ -41,7 +41,7 @@ export default class ActionsRun extends Command {
41
41
  }),
42
42
  }; }
43
43
  async run() {
44
- const { ActionService, OutputFormatter } = await import('@memberjunction/ai-cli');
44
+ const { ActionService, OutputFormatter, CloseMJProvider } = await import('@memberjunction/ai-cli');
45
45
  const { flags, metadata } = await this.parse(ActionsRun);
46
46
  const service = new ActionService();
47
47
  const formatter = new OutputFormatter(ResolveLegacyFormat({
@@ -82,11 +82,15 @@ export default class ActionsRun extends Command {
82
82
  if (!result.success) {
83
83
  this.exit(1);
84
84
  }
85
+ setImmediate(() => process.exit(0));
85
86
  }
86
87
  }
87
88
  catch (error) {
88
89
  this.error(error);
89
90
  }
91
+ finally {
92
+ await CloseMJProvider().catch(() => { });
93
+ }
90
94
  }
91
95
  }
92
96
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/ai/actions/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/ai/actions/run.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export default class AgentsRun extends Command {
5
5
  static flags: {
6
6
  agent: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
7
7
  prompt: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
+ 'prompt-file': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
8
9
  chat: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
9
10
  format: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
11
  output: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/commands/ai/agents/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAM7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAAiE;IAEnF,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;;;;;;MAiCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8D3B"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/commands/ai/agents/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAO7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAAiE;IAEnF,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;MAsCV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoE3B"}
@@ -1,4 +1,5 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
+ import * as fs from 'node:fs';
2
3
  import ora from 'ora-classic';
3
4
  import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, ResolveLegacyFormat } from '../../../lib/format-compat.js';
4
5
  import { FailOnNonInteractive, requireInteractive } from '../../../lib/interactive-guard.js';
@@ -6,6 +7,7 @@ export default class AgentsRun extends Command {
6
7
  static { this.description = 'Execute an AI agent with a prompt or start interactive chat'; }
7
8
  static { this.examples = [
8
9
  '<%= config.bin %> <%= command.id %> -a "Skip: Requirements Expert" -p "Create a dashboard for sales metrics"',
10
+ '<%= config.bin %> <%= command.id %> -a "Customer Insight Agent" -f ./prompt.txt',
9
11
  '<%= config.bin %> <%= command.id %> -a "Child Component Generator Sub-agent" --chat',
10
12
  '<%= config.bin %> <%= command.id %> -a "Skip: Technical Design Expert" -p "Build a React component" --verbose --timeout=600000',
11
13
  ]; }
@@ -18,12 +20,17 @@ export default class AgentsRun extends Command {
18
20
  prompt: Flags.string({
19
21
  char: 'p',
20
22
  description: 'Prompt to execute',
21
- exclusive: ['chat'],
23
+ exclusive: ['chat', 'prompt-file'],
24
+ }),
25
+ 'prompt-file': Flags.string({
26
+ char: 'f',
27
+ description: 'Path to a file containing the prompt to execute',
28
+ exclusive: ['chat', 'prompt'],
22
29
  }),
23
30
  chat: Flags.boolean({
24
31
  char: 'c',
25
32
  description: 'Start interactive chat mode',
26
- exclusive: ['prompt'],
33
+ exclusive: ['prompt', 'prompt-file'],
27
34
  }),
28
35
  format: CANONICAL_FORMAT_FLAG,
29
36
  output: Flags.string({
@@ -44,8 +51,11 @@ export default class AgentsRun extends Command {
44
51
  }; }
45
52
  async run() {
46
53
  const { flags, metadata } = await this.parse(AgentsRun);
47
- if (!flags.prompt && !flags.chat) {
48
- this.error('Either --prompt or --chat flag is required');
54
+ const resolvedPrompt = flags['prompt-file']
55
+ ? fs.readFileSync(flags['prompt-file'], 'utf-8').trim()
56
+ : flags.prompt;
57
+ if (!resolvedPrompt && !flags.chat) {
58
+ this.error('Either --prompt, --prompt-file, or --chat flag is required');
49
59
  }
50
60
  // --chat is a REPL that reads stdin turn by turn: interactive by nature, with no
51
61
  // flag that could stand in for the conversation. Spawned or piped it would sit on
@@ -60,7 +70,7 @@ export default class AgentsRun extends Command {
60
70
  FailOnNonInteractive(this, error);
61
71
  }
62
72
  }
63
- const { AgentService, OutputFormatter, ConversationService } = await import('@memberjunction/ai-cli');
73
+ const { AgentService, OutputFormatter, ConversationService, CloseMJProvider } = await import('@memberjunction/ai-cli');
64
74
  const service = new AgentService();
65
75
  const formatter = new OutputFormatter(ResolveLegacyFormat({
66
76
  Format: flags.format,
@@ -81,7 +91,7 @@ export default class AgentsRun extends Command {
81
91
  // Single prompt execution
82
92
  const spinner = ora();
83
93
  spinner.start(`Executing agent: ${flags.agent}`);
84
- const result = await service.executeAgent(flags.agent, flags.prompt, {
94
+ const result = await service.executeAgent(flags.agent, resolvedPrompt, {
85
95
  verbose: flags.verbose,
86
96
  timeout: flags.timeout,
87
97
  });
@@ -90,11 +100,15 @@ export default class AgentsRun extends Command {
90
100
  if (!result.success) {
91
101
  this.exit(1);
92
102
  }
103
+ setImmediate(() => process.exit(0));
93
104
  }
94
105
  }
95
106
  catch (error) {
96
107
  this.error(error);
97
108
  }
109
+ finally {
110
+ await CloseMJProvider().catch(() => { });
111
+ }
98
112
  }
99
113
  }
100
114
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/ai/agents/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/ai/agents/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/commands/ai/prompts/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MA0CV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAqD3B"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../../src/commands/ai/prompts/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAA8C;IAEhE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;MA0CV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAwD3B"}
@@ -52,7 +52,7 @@ export default class PromptsRun extends Command {
52
52
  }),
53
53
  }; }
54
54
  async run() {
55
- const { PromptService, OutputFormatter } = await import('@memberjunction/ai-cli');
55
+ const { PromptService, OutputFormatter, CloseMJProvider } = await import('@memberjunction/ai-cli');
56
56
  const { flags, metadata } = await this.parse(PromptsRun);
57
57
  const service = new PromptService();
58
58
  const formatter = new OutputFormatter(ResolveLegacyFormat({
@@ -94,10 +94,14 @@ export default class PromptsRun extends Command {
94
94
  if (!result.success) {
95
95
  this.exit(1);
96
96
  }
97
+ setImmediate(() => process.exit(0));
97
98
  }
98
99
  catch (error) {
99
100
  this.error(error);
100
101
  }
102
+ finally {
103
+ await CloseMJProvider().catch(() => { });
104
+ }
101
105
  }
102
106
  }
103
107
  //# sourceMappingURL=run.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/ai/prompts/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../../src/commands/ai/prompts/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAqD;IAEvE,MAAM,CAAC,QAAQ,WAMb;IAEF,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAO7C,MAAM,CAAC,WAAW,SAE0S;IAE5T,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,IAAI;;MAMT;IAEF,MAAM,CAAC,KAAK;;;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsC3B"}
@@ -11,13 +11,22 @@ import { BuildOrchestratorContext } from '../../utils/open-app-context.js';
11
11
  * migration execution, npm package management, and config updates).
12
12
  */
13
13
  export default class AppInstall extends Command {
14
- static { this.description = 'Install an MJ Open App from a GitHub repository'; }
14
+ // The second paragraph deliberately mirrors CONFIGURE_CREDENTIAL_REMEDY in
15
+ // github-client.ts (module-private there, phrased as a clause rather than a sentence —
16
+ // not shared as an import). Kept in sync by hand; update both when either wording changes.
17
+ //
18
+ // No hard newlines WITHIN a paragraph below: oclif re-wraps this to the reader's terminal
19
+ // width, and a hard newline mid-paragraph survives that re-wrap as a stray short line.
20
+ static { this.description = `Install an MJ Open App from a GitHub repository.
21
+
22
+ Private repositories need a GitHub credential. GitHub returns 404 (not 403) for a repo it will not show you, so without one an install fails as though the app or its version did not exist. Set GITHUB_TOKEN in the environment, or add the repo to openApps.github.tokens (or set openApps.github.token) in mj.config.cjs.`; }
15
23
  static { this.examples = [
16
24
  '<%= config.bin %> app install https://github.com/acme/mj-crm',
17
25
  '<%= config.bin %> app install https://github.com/acme/mj-crm --version 1.2.0',
18
26
  '<%= config.bin %> app install https://github.com/acme/mj-crm --verbose',
19
27
  '<%= config.bin %> app install https://github.com/MemberJunction/Integrations/CRM/HubSpot',
20
28
  '<%= config.bin %> app install https://github.com/acme/mj-crm --non-interactive',
29
+ 'GITHUB_TOKEN=$(gh auth token) <%= config.bin %> app install https://github.com/acme/private-app',
21
30
  ]; }
22
31
  static { this.args = {
23
32
  source: Args.string({
@@ -40,6 +49,7 @@ export default class AppInstall extends Command {
40
49
  async run() {
41
50
  const { args, flags } = await this.parse(AppInstall);
42
51
  const spinner = ora();
52
+ let failed = false;
43
53
  try {
44
54
  const context = await BuildOrchestratorContext(this, flags.verbose, !flags['non-interactive']);
45
55
  const result = await InstallApp({
@@ -56,7 +66,7 @@ export default class AppInstall extends Command {
56
66
  }
57
67
  else {
58
68
  spinner.fail(chalk.red(`Install failed: ${result.ErrorMessage}`));
59
- this.exit(1);
69
+ failed = true;
60
70
  }
61
71
  }
62
72
  catch (error) {
@@ -64,6 +74,11 @@ export default class AppInstall extends Command {
64
74
  const message = error instanceof Error ? error.message : String(error);
65
75
  this.error(message);
66
76
  }
77
+ // Outside the try on purpose: oclif's exit() works by throwing, and the catch above would
78
+ // swallow it — printing a second failure line and exiting 2 with "EEXIT: 1".
79
+ if (failed) {
80
+ this.exit(1);
81
+ }
67
82
  }
68
83
  }
69
84
  //# sourceMappingURL=install.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;aACtC,gBAAW,GAAG,iDAAiD,CAAC;aAEhE,aAAQ,GAAG;QAChB,8DAA8D;QAC9D,8EAA8E;QAC9E,wEAAwE;QACxE,0FAA0F;QAC1F,gFAAgF;KACjF,CAAC;aAEK,SAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EACT,oKAAoK;YACtK,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;QACvF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;QAC1E,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,oHAAoH;YACjI,OAAO,EAAE,KAAK;SACf,CAAC;QACF,+CAA+C,EAAE,KAAK,CAAC,OAAO,CAAC;YAC7D,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAE/F,MAAM,MAAM,GAAG,MAAM,UAAU,CAC7B;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,2BAA2B,EAAE,KAAK,CAAC,+CAA+C,CAAC;aACpF,EACD,OAAO,CACR,CAAC;YAEF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAC/E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;IACH,CAAC"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/app/install.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/commands/app/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAgC3B"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/commands/app/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAMnD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,IAAI;;MAKT;IAEF,MAAM,CAAC,KAAK;;;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsC3B"}