@open-agent-toolkit/cli 0.1.43 → 0.1.46

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/assets/agents/oat-reviewer.md +2 -2
  2. package/assets/config/dispatch-matrix-recommendation.json +23 -0
  3. package/assets/docs/cli-utilities/config-and-local-state.md +7 -0
  4. package/assets/docs/cli-utilities/configuration.md +104 -25
  5. package/assets/docs/cli-utilities/workflow-gates.md +79 -16
  6. package/assets/docs/contributing/code.md +10 -4
  7. package/assets/docs/contributing/hooks-and-safety.md +23 -0
  8. package/assets/docs/provider-sync/config.md +5 -1
  9. package/assets/docs/provider-sync/manifest-and-drift.md +6 -1
  10. package/assets/docs/provider-sync/providers.md +6 -3
  11. package/assets/docs/provider-sync/scope-and-surface.md +2 -1
  12. package/assets/docs/reference/oat-directory-structure.md +2 -2
  13. package/assets/docs/workflows/projects/dispatch-ceiling.md +110 -27
  14. package/assets/docs/workflows/projects/implementation-execution.md +20 -13
  15. package/assets/public-package-versions.json +4 -4
  16. package/assets/skills/oat-project-implement/SKILL.md +155 -58
  17. package/assets/skills/oat-project-plan/SKILL.md +22 -3
  18. package/assets/skills/oat-project-quick-start/SKILL.md +54 -23
  19. package/assets/templates/state.md +5 -0
  20. package/dist/commands/config/index.d.ts +6 -0
  21. package/dist/commands/config/index.d.ts.map +1 -1
  22. package/dist/commands/config/index.js +429 -20
  23. package/dist/commands/doctor/index.d.ts +6 -1
  24. package/dist/commands/doctor/index.d.ts.map +1 -1
  25. package/dist/commands/doctor/index.js +209 -19
  26. package/dist/commands/gate/index.d.ts +39 -2
  27. package/dist/commands/gate/index.d.ts.map +1 -1
  28. package/dist/commands/gate/index.js +343 -30
  29. package/dist/commands/internal/cursor-current-target.d.ts +37 -0
  30. package/dist/commands/internal/cursor-current-target.d.ts.map +1 -0
  31. package/dist/commands/internal/cursor-current-target.js +228 -0
  32. package/dist/commands/internal/index.d.ts.map +1 -1
  33. package/dist/commands/internal/index.js +2 -0
  34. package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
  35. package/dist/commands/project/dispatch-ceiling/index.js +487 -17
  36. package/dist/commands/providers/codex/index.d.ts +4 -0
  37. package/dist/commands/providers/codex/index.d.ts.map +1 -0
  38. package/dist/commands/providers/codex/index.js +7 -0
  39. package/dist/commands/providers/codex/materialize.d.ts +5 -0
  40. package/dist/commands/providers/codex/materialize.d.ts.map +1 -0
  41. package/dist/commands/providers/codex/materialize.js +152 -0
  42. package/dist/commands/providers/index.d.ts +2 -2
  43. package/dist/commands/providers/index.d.ts.map +1 -1
  44. package/dist/commands/providers/index.js +4 -2
  45. package/dist/commands/providers/providers.types.d.ts +23 -0
  46. package/dist/commands/providers/providers.types.d.ts.map +1 -1
  47. package/dist/commands/shared/codex-strays.d.ts.map +1 -1
  48. package/dist/commands/shared/codex-strays.js +11 -1
  49. package/dist/commands/status/index.d.ts +4 -1
  50. package/dist/commands/status/index.d.ts.map +1 -1
  51. package/dist/commands/status/index.js +1 -1
  52. package/dist/commands/sync/index.d.ts.map +1 -1
  53. package/dist/commands/sync/index.js +1 -1
  54. package/dist/commands/sync/sync.types.d.ts +4 -1
  55. package/dist/commands/sync/sync.types.d.ts.map +1 -1
  56. package/dist/config/dispatch-ceiling-preset.d.ts +4 -0
  57. package/dist/config/dispatch-ceiling-preset.d.ts.map +1 -1
  58. package/dist/config/dispatch-ceiling-preset.js +3 -0
  59. package/dist/config/dispatch-policy-options.d.ts +20 -0
  60. package/dist/config/dispatch-policy-options.d.ts.map +1 -0
  61. package/dist/config/dispatch-policy-options.js +96 -0
  62. package/dist/config/oat-config.d.ts +21 -5
  63. package/dist/config/oat-config.d.ts.map +1 -1
  64. package/dist/config/oat-config.js +118 -10
  65. package/dist/config/resolve.js +12 -0
  66. package/dist/manifest/manifest.types.d.ts +12 -12
  67. package/dist/providers/ceiling/registry.d.ts +7 -5
  68. package/dist/providers/ceiling/registry.d.ts.map +1 -1
  69. package/dist/providers/ceiling/registry.js +32 -5
  70. package/dist/providers/codex/codec/config-merge.d.ts +6 -0
  71. package/dist/providers/codex/codec/config-merge.d.ts.map +1 -1
  72. package/dist/providers/codex/codec/config-merge.js +7 -0
  73. package/dist/providers/codex/codec/materialize.d.ts +16 -0
  74. package/dist/providers/codex/codec/materialize.d.ts.map +1 -0
  75. package/dist/providers/codex/codec/materialize.js +57 -0
  76. package/dist/providers/codex/codec/shared.d.ts +1 -0
  77. package/dist/providers/codex/codec/shared.d.ts.map +1 -1
  78. package/dist/providers/codex/codec/shared.js +9 -1
  79. package/dist/providers/codex/codec/sync-extension.d.ts +7 -1
  80. package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -1
  81. package/dist/providers/codex/codec/sync-extension.js +183 -46
  82. package/dist/providers/identity/availability.d.ts +45 -0
  83. package/dist/providers/identity/availability.d.ts.map +1 -0
  84. package/dist/providers/identity/availability.js +353 -0
  85. package/dist/providers/identity/family.d.ts +13 -0
  86. package/dist/providers/identity/family.d.ts.map +1 -0
  87. package/dist/providers/identity/family.js +32 -0
  88. package/dist/providers/identity/provenance.d.ts +21 -0
  89. package/dist/providers/identity/provenance.d.ts.map +1 -0
  90. package/dist/providers/identity/provenance.js +65 -0
  91. package/dist/providers/identity/stamp.d.ts +35 -0
  92. package/dist/providers/identity/stamp.d.ts.map +1 -0
  93. package/dist/providers/identity/stamp.js +171 -0
  94. package/package.json +2 -2
@@ -7,16 +7,18 @@ import { createPjmDisabledCheck, runPjmDoctorChecks, } from '../pjm/doctor.js';
7
7
  import { getSkillVersion } from '../shared/frontmatter.js';
8
8
  import { withScopeOption } from '../shared/scope-option.js';
9
9
  import { readGlobalOptions, resolveConcreteScopes, } from '../shared/shared.utils.js';
10
- import { readOatConfig } from '../../config/oat-config.js';
10
+ import { readOatConfig, readOatLocalConfig, readUserConfig, isCodexMaterializedRouteTarget, } from '../../config/oat-config.js';
11
11
  import { resolveAssetsRoot } from '../../fs/assets.js';
12
12
  import { resolveProjectRoot, resolveScopeRoot } from '../../fs/paths.js';
13
13
  import TOML from '@iarna/toml';
14
14
  import { loadManifest } from '../../manifest/index.js';
15
15
  import { claudeAdapter } from '../../providers/claude/index.js';
16
16
  import { codexAdapter } from '../../providers/codex/index.js';
17
+ import { isOatManagedCodexRoleFile } from '../../providers/codex/codec/shared.js';
17
18
  import { copilotAdapter } from '../../providers/copilot/index.js';
18
19
  import { cursorAdapter } from '../../providers/cursor/index.js';
19
20
  import { geminiAdapter } from '../../providers/gemini/index.js';
21
+ import { normalizeMatrixCellAvailability, validateMatrixCell, } from '../../providers/identity/availability.js';
20
22
  import { formatDoctorResults } from '../../ui/output.js';
21
23
  import { Command } from 'commander';
22
24
  async function pathExistsDefault(path) {
@@ -129,13 +131,193 @@ function createDependencies() {
129
131
  readFile: async (path) => readFile(path, 'utf8'),
130
132
  resolveAssetsRoot,
131
133
  readOatConfig,
134
+ readOatLocalConfig,
135
+ readUserConfig,
136
+ validateMatrixCell,
137
+ processEnv: process.env,
132
138
  runPjmDoctorChecks,
133
139
  // Default binding remains self-contained, but still honors the caller-
134
140
  // provided pathExists dependency from runChecksForScope when available.
135
141
  checkSkillVersions: (scopeRoot, assetsRoot, pathExists = pathExistsDefault) => checkSkillVersionsDefault(scopeRoot, assetsRoot, pathExists),
136
142
  };
137
143
  }
138
- async function runChecksForScope(scope, scopeRoot, dependencies) {
144
+ function isRouteTarget(entry) {
145
+ return typeof entry === 'object' && entry !== null && !Array.isArray(entry);
146
+ }
147
+ function formatRouteTargetValue(entry) {
148
+ return [entry.model, entry.effort].filter(Boolean).join('/');
149
+ }
150
+ function addDispatchMatrixCellRefs(refs, layer, provider, path, cell) {
151
+ if (typeof cell === 'string') {
152
+ refs.push({ layer, provider, value: cell, path });
153
+ return;
154
+ }
155
+ for (const [index, entry] of cell.entries()) {
156
+ const entryPath = `${path}[${index}]`;
157
+ if (typeof entry === 'string') {
158
+ refs.push({ layer, provider, value: entry, path: entryPath });
159
+ continue;
160
+ }
161
+ if (!isRouteTarget(entry)) {
162
+ continue;
163
+ }
164
+ const targetProvider = entry.harness ?? provider;
165
+ if (isCodexMaterializedRouteTarget(provider, entry)) {
166
+ if (entry.model && entry.effort) {
167
+ refs.push({
168
+ layer,
169
+ provider: targetProvider,
170
+ value: formatRouteTargetValue(entry),
171
+ path: entryPath,
172
+ target: entry,
173
+ });
174
+ continue;
175
+ }
176
+ }
177
+ if (entry.model) {
178
+ refs.push({
179
+ layer,
180
+ provider: targetProvider,
181
+ value: entry.model,
182
+ path: `${entryPath}.model`,
183
+ });
184
+ }
185
+ if (entry.effort) {
186
+ refs.push({
187
+ layer,
188
+ provider: targetProvider,
189
+ value: entry.effort,
190
+ path: `${entryPath}.effort`,
191
+ });
192
+ }
193
+ }
194
+ }
195
+ function collectDispatchMatrixCellRefs(layers) {
196
+ const refs = [];
197
+ for (const { layer, config } of layers) {
198
+ const providers = config.workflow?.dispatchCeiling?.providers ?? {};
199
+ for (const [provider, providerValue] of Object.entries(providers)) {
200
+ const providerPath = `workflow.dispatchCeiling.providers.${provider}`;
201
+ if (typeof providerValue === 'string') {
202
+ refs.push({
203
+ layer,
204
+ provider,
205
+ value: providerValue,
206
+ path: providerPath,
207
+ });
208
+ continue;
209
+ }
210
+ const tierMap = providerValue;
211
+ for (const [tier, cell] of Object.entries(tierMap)) {
212
+ if (cell === undefined) {
213
+ continue;
214
+ }
215
+ addDispatchMatrixCellRefs(refs, layer, provider, `${providerPath}.${tier}`, cell);
216
+ }
217
+ }
218
+ }
219
+ return refs;
220
+ }
221
+ function formatDispatchMatrixIssueList(issues) {
222
+ return issues
223
+ .map((issue) => {
224
+ const suffix = 'message' in issue && typeof issue.message === 'string'
225
+ ? `; ${issue.message}`
226
+ : '';
227
+ return `${issue.path}=${issue.value} (${issue.layer} config)${suffix}`;
228
+ })
229
+ .join(', ');
230
+ }
231
+ async function createDispatchMatrixDoctorCheck(scopeRoot, layers, dependencies) {
232
+ const refs = collectDispatchMatrixCellRefs(layers);
233
+ if (refs.length === 0) {
234
+ return {
235
+ name: 'project:dispatch_matrix',
236
+ description: 'Dispatch matrix cell availability',
237
+ status: 'pass',
238
+ message: 'No configured dispatch matrix cells found in user, shared, or local config layers.',
239
+ };
240
+ }
241
+ const issues = [];
242
+ for (const ref of refs) {
243
+ let result;
244
+ try {
245
+ result = normalizeMatrixCellAvailability(await dependencies.validateMatrixCell(ref.provider, ref.value, {
246
+ cwd: scopeRoot,
247
+ env: dependencies.processEnv,
248
+ detailed: true,
249
+ ...(ref.target ? { target: ref.target } : {}),
250
+ }));
251
+ }
252
+ catch {
253
+ result = { availability: 'unvalidated' };
254
+ }
255
+ if (result.availability !== 'valid') {
256
+ issues.push({
257
+ ...ref,
258
+ availability: result.availability,
259
+ ...(result.message ? { message: result.message } : {}),
260
+ });
261
+ }
262
+ }
263
+ if (issues.length === 0) {
264
+ return {
265
+ name: 'project:dispatch_matrix',
266
+ description: 'Dispatch matrix cell availability',
267
+ status: 'pass',
268
+ message: `All configured dispatch matrix cells are available: ${formatDispatchMatrixIssueList(refs)}.`,
269
+ };
270
+ }
271
+ const unknown = issues.filter((issue) => issue.availability === 'unknown-value');
272
+ const unvalidated = issues.filter((issue) => issue.availability === 'unvalidated');
273
+ const messageParts = [];
274
+ if (unknown.length > 0) {
275
+ messageParts.push(`Unknown dispatch matrix cells: ${formatDispatchMatrixIssueList(unknown)}`);
276
+ }
277
+ if (unvalidated.length > 0) {
278
+ messageParts.push(`Unvalidated dispatch matrix cells: ${formatDispatchMatrixIssueList(unvalidated)}`);
279
+ }
280
+ const hasUnknown = unknown.length > 0;
281
+ const hasUnvalidated = unvalidated.length > 0;
282
+ return {
283
+ name: 'project:dispatch_matrix',
284
+ description: 'Dispatch matrix cell availability',
285
+ status: hasUnknown || hasUnvalidated ? 'warn' : 'pass',
286
+ message: messageParts.join('. '),
287
+ fix: hasUnknown
288
+ ? 'Run `oat config set workflow.dispatchCeiling.providers.<provider> <value>` with an available value, or refresh provider assets with `oat sync --scope project`.'
289
+ : undefined,
290
+ };
291
+ }
292
+ function getCodexAgentConfigFile(config) {
293
+ if (!config || typeof config !== 'object' || Array.isArray(config)) {
294
+ return null;
295
+ }
296
+ const configFile = config.config_file;
297
+ return typeof configFile === 'string' && configFile.startsWith('agents/')
298
+ ? configFile
299
+ : null;
300
+ }
301
+ function isLikelyOatGeneratedCodexRoleName(roleName) {
302
+ return (roleName === 'oat-phase-implementer' ||
303
+ roleName === 'oat-reviewer' ||
304
+ roleName.startsWith('oat-phase-implementer-') ||
305
+ roleName.startsWith('oat-reviewer-'));
306
+ }
307
+ async function isManagedCodexRoleConfig(scopeRoot, roleName, configFile, dependencies) {
308
+ const absoluteRolePath = join(scopeRoot, '.codex', configFile);
309
+ if (!(await dependencies.pathExists(absoluteRolePath))) {
310
+ return isLikelyOatGeneratedCodexRoleName(roleName);
311
+ }
312
+ try {
313
+ const roleContent = await dependencies.readFile(absoluteRolePath);
314
+ return isOatManagedCodexRoleFile(roleContent, roleName);
315
+ }
316
+ catch {
317
+ return false;
318
+ }
319
+ }
320
+ async function runChecksForScope(scope, scopeRoot, userConfigDir, dependencies) {
139
321
  const checks = [];
140
322
  const skillsPath = join(scopeRoot, '.agents', 'skills');
141
323
  const agentsPath = join(scopeRoot, '.agents', 'agents');
@@ -294,17 +476,18 @@ async function runChecksForScope(scope, scopeRoot, dependencies) {
294
476
  !Array.isArray(parsedConfig.agents)
295
477
  ? parsedConfig.agents
296
478
  : null;
297
- const managedRoles = Object.entries(agents ?? {})
298
- .filter(([, config]) => {
299
- if (!config ||
300
- typeof config !== 'object' ||
301
- Array.isArray(config)) {
302
- return false;
479
+ const managedRoles = [];
480
+ const roleConfigFiles = new Map();
481
+ for (const [roleName, roleConfig] of Object.entries(agents ?? {})) {
482
+ const configFile = getCodexAgentConfigFile(roleConfig);
483
+ if (!configFile) {
484
+ continue;
485
+ }
486
+ roleConfigFiles.set(roleName, configFile);
487
+ if (await isManagedCodexRoleConfig(scopeRoot, roleName, configFile, dependencies)) {
488
+ managedRoles.push(roleName);
303
489
  }
304
- const configFile = config.config_file;
305
- return (typeof configFile === 'string' && configFile.startsWith('agents/'));
306
- })
307
- .map(([roleName]) => roleName);
490
+ }
308
491
  if (managedRoles.length > 0) {
309
492
  const multiAgentEnabled = features?.multi_agent === true || features?.multi_agent === 'true';
310
493
  checks.push({
@@ -320,11 +503,9 @@ async function runChecksForScope(scope, scopeRoot, dependencies) {
320
503
  });
321
504
  const missingRoleFiles = [];
322
505
  for (const roleName of managedRoles) {
323
- const roleConfig = agents[roleName];
324
- const configFile = roleConfig.config_file;
325
- if (typeof configFile !== 'string') {
506
+ const configFile = roleConfigFiles.get(roleName);
507
+ if (!configFile)
326
508
  continue;
327
- }
328
509
  const absoluteRolePath = join(scopeRoot, '.codex', configFile);
329
510
  if (!(await dependencies.pathExists(absoluteRolePath))) {
330
511
  missingRoleFiles.push(configFile);
@@ -339,13 +520,22 @@ async function runChecksForScope(scope, scopeRoot, dependencies) {
339
520
  : `Missing codex role files: ${missingRoleFiles.join(', ')}`,
340
521
  fix: missingRoleFiles.length === 0
341
522
  ? undefined
342
- : 'Regenerate codex roles with `oat sync --scope project`.',
523
+ : 'Regenerate codex roles with `oat sync --scope project`, or materialize a single role with `oat providers codex materialize ...`.',
343
524
  });
344
525
  }
345
526
  }
346
527
  }
347
528
  const repoReferenceRoot = join(scopeRoot, '.oat', 'repo');
348
- const config = await dependencies.readOatConfig(scopeRoot);
529
+ const [userConfig, config, localConfig] = await Promise.all([
530
+ dependencies.readUserConfig(userConfigDir),
531
+ dependencies.readOatConfig(scopeRoot),
532
+ dependencies.readOatLocalConfig(scopeRoot),
533
+ ]);
534
+ checks.push(await createDispatchMatrixDoctorCheck(scopeRoot, [
535
+ { layer: 'user', config: userConfig },
536
+ { layer: 'shared', config },
537
+ { layer: 'local', config: localConfig },
538
+ ], dependencies));
349
539
  const projectManagementEnabled = config.tools?.['project-management'] === true;
350
540
  if (projectManagementEnabled) {
351
541
  checks.push(...(await dependencies.runPjmDoctorChecks(repoReferenceRoot, {
@@ -362,7 +552,7 @@ async function runDoctorCommand(context, dependencies) {
362
552
  const checks = [];
363
553
  for (const scope of resolveConcreteScopes(context.scope)) {
364
554
  const scopeRoot = await dependencies.resolveScopeRoot(scope, context);
365
- const scopeChecks = await runChecksForScope(scope, scopeRoot, dependencies);
555
+ const scopeChecks = await runChecksForScope(scope, scopeRoot, join(context.home, '.oat'), dependencies);
366
556
  checks.push(...scopeChecks);
367
557
  }
368
558
  if (context.json) {
@@ -1,6 +1,8 @@
1
1
  import { type CommandContext, type GlobalOptions } from '../../app/command-context.js';
2
2
  import { type ExecTarget, type OatConfig, type OatLocalConfig, type UserConfig } from '../../config/oat-config.js';
3
3
  import { type ResolvedConfig } from '../../config/resolve.js';
4
+ import { type ModelFamily } from '../../providers/identity/family.js';
5
+ import { type IdentityConfidence, type IdentityProvenance } from '../../providers/identity/provenance.js';
4
6
  import { Command } from 'commander';
5
7
  interface GateCommandDependencies {
6
8
  buildCommandContext: (options: GlobalOptions) => CommandContext;
@@ -20,16 +22,51 @@ interface ProcessRunOptions {
20
22
  env: NodeJS.ProcessEnv;
21
23
  purpose: 'host-detection' | 'availability' | 'execute';
22
24
  stdio: 'ignore' | 'inherit';
25
+ timeoutMs: number;
23
26
  }
24
27
  interface ProcessRunResult {
25
28
  exitCode: number;
29
+ timedOut?: boolean;
26
30
  }
27
- type CrossProviderAvoid = 'same-runtime' | 'none';
31
+ type CrossProviderAvoid = 'same-family' | 'same-runtime' | 'none';
32
+ type GateDiversityAchieved = 'different-family' | 'degraded-to-different-slug' | 'same-family - no diverse target available' | 'unknown-producer';
28
33
  export interface SelectedExecTarget {
29
34
  id: string;
30
35
  target: ExecTarget;
36
+ model?: string;
37
+ family: ModelFamily;
38
+ diversity?: GateDiversityMetadata;
39
+ noDiverseFamilyFallback?: boolean;
31
40
  }
32
- export declare function selectExecTarget(registry: Readonly<Record<string, ExecTarget>>, currentRuntime: string, avoid: CrossProviderAvoid): SelectedExecTarget | null;
41
+ interface GateProducerIdentity {
42
+ value: string;
43
+ provenance: IdentityProvenance;
44
+ confidence: IdentityConfidence;
45
+ family: ModelFamily;
46
+ avoidFamilies: ModelFamily[];
47
+ diversityClaimable: boolean;
48
+ source: 'flag' | 'stamp' | 'unknown';
49
+ }
50
+ interface GateDiversityMetadata {
51
+ avoid: CrossProviderAvoid;
52
+ achieved: GateDiversityAchieved;
53
+ producer: {
54
+ value: string;
55
+ provenance: IdentityProvenance;
56
+ confidence: IdentityConfidence;
57
+ family: ModelFamily;
58
+ source: GateProducerIdentity['source'];
59
+ avoidFamilies: ModelFamily[];
60
+ };
61
+ reviewer: {
62
+ target: string;
63
+ runtime: string;
64
+ family: ModelFamily;
65
+ model?: string;
66
+ };
67
+ warning?: string;
68
+ }
69
+ export declare function selectExecTarget(registry: Readonly<Record<string, ExecTarget>>, currentRuntime: string, avoid: CrossProviderAvoid, producerIdentity?: GateProducerIdentity): SelectedExecTarget | null;
33
70
  export declare function createGateCommand(overrides?: Partial<GateCommandDependencies>): Command;
34
71
  export {};
35
72
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/gate/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAQL,KAAK,UAAU,EAIf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAIL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,UAAU,uBAAuB;IAC/B,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AA0CD,UAAU,iBAAiB;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAC;IACvD,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,kBAAkB,GAAG,cAAc,GAAG,MAAM,CAAC;AAMlD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;CACpB;AAyZD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAC9C,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,kBAAkB,GACxB,kBAAkB,GAAG,IAAI,CAE3B;AAu7BD,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAC/C,OAAO,CAwKT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/gate/index.ts"],"names":[],"mappings":"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"}