@1mcp/agent 0.30.3 → 0.31.0-beta1

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 (191) hide show
  1. package/README.md +75 -2
  2. package/build/commands/auth/index.d.ts +3 -0
  3. package/build/commands/auth/index.d.ts.map +1 -0
  4. package/build/commands/auth/index.js +47 -0
  5. package/build/commands/auth/index.js.map +1 -0
  6. package/build/commands/auth/login.d.ts +7 -0
  7. package/build/commands/auth/login.d.ts.map +1 -0
  8. package/build/commands/auth/login.js +83 -0
  9. package/build/commands/auth/login.js.map +1 -0
  10. package/build/commands/auth/logout.d.ts +7 -0
  11. package/build/commands/auth/logout.d.ts.map +1 -0
  12. package/build/commands/auth/logout.js +46 -0
  13. package/build/commands/auth/logout.js.map +1 -0
  14. package/build/commands/auth/status.d.ts +6 -0
  15. package/build/commands/auth/status.d.ts.map +1 -0
  16. package/build/commands/auth/status.js +54 -0
  17. package/build/commands/auth/status.js.map +1 -0
  18. package/build/commands/cliSetup/cliSetup.d.ts +12 -0
  19. package/build/commands/cliSetup/cliSetup.d.ts.map +1 -0
  20. package/build/commands/cliSetup/cliSetup.js +49 -0
  21. package/build/commands/cliSetup/cliSetup.js.map +1 -0
  22. package/build/commands/cliSetup/index.d.ts +3 -0
  23. package/build/commands/cliSetup/index.d.ts.map +1 -0
  24. package/build/commands/cliSetup/index.js +52 -0
  25. package/build/commands/cliSetup/index.js.map +1 -0
  26. package/build/commands/cliSetup/setupFiles.d.ts +24 -0
  27. package/build/commands/cliSetup/setupFiles.d.ts.map +1 -0
  28. package/build/commands/cliSetup/setupFiles.js +233 -0
  29. package/build/commands/cliSetup/setupFiles.js.map +1 -0
  30. package/build/commands/inspect/index.d.ts +3 -0
  31. package/build/commands/inspect/index.d.ts.map +1 -0
  32. package/build/commands/inspect/index.js +60 -0
  33. package/build/commands/inspect/index.js.map +1 -0
  34. package/build/commands/inspect/inspect.d.ts +36 -0
  35. package/build/commands/inspect/inspect.d.ts.map +1 -0
  36. package/build/commands/inspect/inspect.js +274 -0
  37. package/build/commands/inspect/inspect.js.map +1 -0
  38. package/build/commands/inspect/inspectUtils.d.ts +76 -0
  39. package/build/commands/inspect/inspectUtils.d.ts.map +1 -0
  40. package/build/commands/inspect/inspectUtils.js +303 -0
  41. package/build/commands/inspect/inspectUtils.js.map +1 -0
  42. package/build/commands/instructions/index.d.ts +3 -0
  43. package/build/commands/instructions/index.d.ts.map +1 -0
  44. package/build/commands/instructions/index.js +34 -0
  45. package/build/commands/instructions/index.js.map +1 -0
  46. package/build/commands/instructions/instructions.d.ts +10 -0
  47. package/build/commands/instructions/instructions.d.ts.map +1 -0
  48. package/build/commands/instructions/instructions.js +86 -0
  49. package/build/commands/instructions/instructions.js.map +1 -0
  50. package/build/commands/instructions/instructionsUtils.d.ts +24 -0
  51. package/build/commands/instructions/instructionsUtils.d.ts.map +1 -0
  52. package/build/commands/instructions/instructionsUtils.js +74 -0
  53. package/build/commands/instructions/instructionsUtils.js.map +1 -0
  54. package/build/commands/proxy/proxy.d.ts.map +1 -1
  55. package/build/commands/proxy/proxy.js +26 -30
  56. package/build/commands/proxy/proxy.js.map +1 -1
  57. package/build/commands/run/index.d.ts +3 -0
  58. package/build/commands/run/index.d.ts.map +1 -0
  59. package/build/commands/run/index.js +62 -0
  60. package/build/commands/run/index.js.map +1 -0
  61. package/build/commands/run/run.d.ts +35 -0
  62. package/build/commands/run/run.d.ts.map +1 -0
  63. package/build/commands/run/run.js +340 -0
  64. package/build/commands/run/run.js.map +1 -0
  65. package/build/commands/run/runUtils.d.ts +49 -0
  66. package/build/commands/run/runUtils.d.ts.map +1 -0
  67. package/build/commands/run/runUtils.js +195 -0
  68. package/build/commands/run/runUtils.js.map +1 -0
  69. package/build/commands/shared/apiClient.d.ts +27 -0
  70. package/build/commands/shared/apiClient.d.ts.map +1 -0
  71. package/build/commands/shared/apiClient.js +96 -0
  72. package/build/commands/shared/apiClient.js.map +1 -0
  73. package/build/commands/shared/authProfileStore.d.ts +16 -0
  74. package/build/commands/shared/authProfileStore.d.ts.map +1 -0
  75. package/build/commands/shared/authProfileStore.js +109 -0
  76. package/build/commands/shared/authProfileStore.js.map +1 -0
  77. package/build/commands/shared/baseConfigUtils.d.ts.map +1 -1
  78. package/build/commands/shared/baseConfigUtils.js +28 -2
  79. package/build/commands/shared/baseConfigUtils.js.map +1 -1
  80. package/build/commands/shared/cliContext.d.ts +13 -0
  81. package/build/commands/shared/cliContext.d.ts.map +1 -0
  82. package/build/commands/shared/cliContext.js +71 -0
  83. package/build/commands/shared/cliContext.js.map +1 -0
  84. package/build/commands/shared/commandRunner.d.ts +3 -0
  85. package/build/commands/shared/commandRunner.d.ts.map +1 -0
  86. package/build/commands/shared/commandRunner.js +13 -0
  87. package/build/commands/shared/commandRunner.js.map +1 -0
  88. package/build/commands/shared/serveClient.d.ts +68 -0
  89. package/build/commands/shared/serveClient.d.ts.map +1 -0
  90. package/build/commands/shared/serveClient.js +204 -0
  91. package/build/commands/shared/serveClient.js.map +1 -0
  92. package/build/commands/shared/serveTargetResolver.d.ts +21 -0
  93. package/build/commands/shared/serveTargetResolver.d.ts.map +1 -0
  94. package/build/commands/shared/serveTargetResolver.js +33 -0
  95. package/build/commands/shared/serveTargetResolver.js.map +1 -0
  96. package/build/config/configManager.d.ts +10 -0
  97. package/build/config/configManager.d.ts.map +1 -1
  98. package/build/config/configManager.js +54 -2
  99. package/build/config/configManager.js.map +1 -1
  100. package/build/config/projectConfigLoader.d.ts +9 -0
  101. package/build/config/projectConfigLoader.d.ts.map +1 -1
  102. package/build/config/projectConfigLoader.js +72 -20
  103. package/build/config/projectConfigLoader.js.map +1 -1
  104. package/build/config/templateProcessor.d.ts.map +1 -1
  105. package/build/config/templateProcessor.js +2 -2
  106. package/build/config/templateProcessor.js.map +1 -1
  107. package/build/constants/api.d.ts +6 -0
  108. package/build/constants/api.d.ts.map +1 -1
  109. package/build/constants/api.js +7 -0
  110. package/build/constants/api.js.map +1 -1
  111. package/build/constants/mcp.d.ts +1 -1
  112. package/build/constants/mcp.d.ts.map +1 -1
  113. package/build/constants/mcp.js +1 -1
  114. package/build/constants/mcp.js.map +1 -1
  115. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +7 -2
  116. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  117. package/build/core/capabilities/lazyLoadingOrchestrator.js +12 -12
  118. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  119. package/build/core/capabilities/metaToolProvider.d.ts +1 -1
  120. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  121. package/build/core/capabilities/metaToolProvider.js +22 -21
  122. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  123. package/build/core/server/connectionResolver.d.ts +4 -0
  124. package/build/core/server/connectionResolver.d.ts.map +1 -1
  125. package/build/core/server/connectionResolver.js +18 -11
  126. package/build/core/server/connectionResolver.js.map +1 -1
  127. package/build/core/server/serverManager.d.ts +4 -0
  128. package/build/core/server/serverManager.d.ts.map +1 -1
  129. package/build/core/server/serverManager.js +6 -0
  130. package/build/core/server/serverManager.js.map +1 -1
  131. package/build/core/tools/handlers/serverManagementHandler.d.ts +2 -2
  132. package/build/core/tools/internal/schemas/discovery.d.ts +3 -3
  133. package/build/core/tools/internal/schemas/index.d.ts +4 -4
  134. package/build/core/tools/internal/schemas/management.d.ts +1 -1
  135. package/build/globalOptions.d.ts +6 -0
  136. package/build/globalOptions.d.ts.map +1 -1
  137. package/build/globalOptions.js +5 -0
  138. package/build/globalOptions.js.map +1 -1
  139. package/build/index.js +20 -1
  140. package/build/index.js.map +1 -1
  141. package/build/transport/http/routes/apiRoutes.d.ts +10 -0
  142. package/build/transport/http/routes/apiRoutes.d.ts.map +1 -0
  143. package/build/transport/http/routes/apiRoutes.js +18 -0
  144. package/build/transport/http/routes/apiRoutes.js.map +1 -0
  145. package/build/transport/http/routes/cliTokenRoute.d.ts +4 -0
  146. package/build/transport/http/routes/cliTokenRoute.d.ts.map +1 -0
  147. package/build/transport/http/routes/cliTokenRoute.js +35 -0
  148. package/build/transport/http/routes/cliTokenRoute.js.map +1 -0
  149. package/build/transport/http/routes/inspectHelpers.d.ts +68 -0
  150. package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -0
  151. package/build/transport/http/routes/inspectHelpers.js +141 -0
  152. package/build/transport/http/routes/inspectHelpers.js.map +1 -0
  153. package/build/transport/http/routes/inspectRoutes.d.ts +8 -0
  154. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -0
  155. package/build/transport/http/routes/inspectRoutes.js +348 -0
  156. package/build/transport/http/routes/inspectRoutes.js.map +1 -0
  157. package/build/transport/http/routes/toolRoutes.d.ts +5 -0
  158. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -0
  159. package/build/transport/http/routes/toolRoutes.js +204 -0
  160. package/build/transport/http/routes/toolRoutes.js.map +1 -0
  161. package/build/transport/http/server.d.ts.map +1 -1
  162. package/build/transport/http/server.js +16 -1
  163. package/build/transport/http/server.js.map +1 -1
  164. package/build/transport/http/utils/contextExtractor.d.ts +5 -1
  165. package/build/transport/http/utils/contextExtractor.d.ts.map +1 -1
  166. package/build/transport/http/utils/contextExtractor.js +75 -12
  167. package/build/transport/http/utils/contextExtractor.js.map +1 -1
  168. package/build/transport/stdioProxyTransport.d.ts +2 -2
  169. package/build/transport/stdioProxyTransport.d.ts.map +1 -1
  170. package/build/transport/stdioProxyTransport.js +11 -75
  171. package/build/transport/stdioProxyTransport.js.map +1 -1
  172. package/build/types/context.d.ts +1 -0
  173. package/build/types/context.d.ts.map +1 -1
  174. package/build/types/context.js.map +1 -1
  175. package/build/utils/context/contextHash.d.ts +11 -0
  176. package/build/utils/context/contextHash.d.ts.map +1 -0
  177. package/build/utils/context/contextHash.js +37 -0
  178. package/build/utils/context/contextHash.js.map +1 -0
  179. package/build/utils/typeGuards.d.ts +2 -0
  180. package/build/utils/typeGuards.d.ts.map +1 -0
  181. package/build/utils/typeGuards.js +4 -0
  182. package/build/utils/typeGuards.js.map +1 -0
  183. package/build/utils/urlUtils.d.ts +2 -0
  184. package/build/utils/urlUtils.d.ts.map +1 -0
  185. package/build/utils/urlUtils.js +4 -0
  186. package/build/utils/urlUtils.js.map +1 -0
  187. package/build/utils/validation/urlDetection.d.ts +1 -0
  188. package/build/utils/validation/urlDetection.d.ts.map +1 -1
  189. package/build/utils/validation/urlDetection.js +8 -3
  190. package/build/utils/validation/urlDetection.js.map +1 -1
  191. package/package.json +3 -2
@@ -0,0 +1,233 @@
1
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import logger from '../../logger/logger.js';
5
+ import JSON5 from 'json5';
6
+ export const CLI_SETUP_TARGETS = ['codex', 'claude'];
7
+ export const CLI_SETUP_SCOPES = ['global', 'repo', 'all'];
8
+ const LEGACY_MANAGED_BLOCK_PATTERN = /<!-- BEGIN 1MCP MANAGED STARTUP DOCS -->[\s\S]*?<!-- END 1MCP MANAGED STARTUP DOCS -->\n?/gm;
9
+ const MANAGED_COMMAND = '1mcp instructions';
10
+ export function resolveCliSetupScope(rawScope) {
11
+ if (!rawScope || rawScope.trim() === '') {
12
+ return 'global';
13
+ }
14
+ const normalizedScope = rawScope.trim().toLowerCase();
15
+ if (!CLI_SETUP_SCOPES.includes(normalizedScope)) {
16
+ throw new Error(`Invalid cli-setup scope: ${rawScope}. Expected one of: ${CLI_SETUP_SCOPES.join(', ')}`);
17
+ }
18
+ return normalizedScope;
19
+ }
20
+ export async function writeCliSetupFiles(options) {
21
+ const managedDocContent = renderManagedDocContent();
22
+ const writes = getScopePaths(options.repoRoot, options.scope).flatMap((scopePaths) => options.targets.map(async (target) => {
23
+ const isCodex = target === 'codex';
24
+ const managedDocPath = isCodex ? scopePaths.codexManagedDocPath : scopePaths.claudeManagedDocPath;
25
+ const hookPath = isCodex ? scopePaths.codexHookPath : scopePaths.claudeHookPath;
26
+ const startupPath = isCodex ? scopePaths.codexStartupPath : scopePaths.claudeStartupPath;
27
+ return writeTargetSetupFiles(managedDocPath, hookPath, startupPath, managedDocContent, {
28
+ target,
29
+ scope: scopePaths.scope,
30
+ });
31
+ }));
32
+ return (await Promise.all(writes)).flat();
33
+ }
34
+ async function writeTargetSetupFiles(managedDocPath, hookPath, startupPath, managedDocContent, resultInfo) {
35
+ const existingStartup = await readExistingFile(startupPath);
36
+ const startupContent = upsertStartupDocManagedBlock(existingStartup, renderStartupDocManagedBlock(startupPath, managedDocPath));
37
+ return Promise.all([
38
+ writeManagedFile(managedDocPath, managedDocContent, { ...resultInfo, kind: 'managed-doc' }),
39
+ writeManagedJson(hookPath, (existing) => upsertHooks(existing), { ...resultInfo, kind: 'hook' }),
40
+ writeManagedFile(startupPath, startupContent, { ...resultInfo, kind: 'startup-doc' }, existingStartup),
41
+ ]);
42
+ }
43
+ export function formatCliSetupOutput(results) {
44
+ const header = 'Updated 1MCP CLI setup files:';
45
+ const lines = results.map((result) => `- [${result.scope}] ${result.kind} ${result.target}: ${result.path}${result.changed ? '' : ' (unchanged)'}`);
46
+ return [header, ...lines].join('\n');
47
+ }
48
+ export function renderManagedDocContent() {
49
+ return [
50
+ '# 1MCP Agent Bootstrap',
51
+ '',
52
+ 'If this session already received the current 1MCP instructions content from hooks, do not run `1mcp instructions` again.',
53
+ 'Otherwise, run `1mcp instructions` before using any 1MCP-managed MCP servers.',
54
+ '',
55
+ 'Always use the 1MCP CLI as the entrypoint for upstream MCP capabilities. Do not call replaced upstream MCP servers directly when 1MCP is available.',
56
+ '',
57
+ 'Required workflow after you have the instructions content:',
58
+ '1. Review the available servers and choose the one that matches the task.',
59
+ '2. Run `1mcp inspect <server>` before selecting a tool.',
60
+ '3. Run `1mcp inspect <server>/<tool>` before invoking that tool.',
61
+ "4. Run `1mcp run <server>/<tool> --args '<json>'` only after inspecting the tool schema.",
62
+ '',
63
+ 'Use `--preset`, `--tags`, or `--tag-filter` with `1mcp instructions`, `inspect`, and `run` when you need a narrower server set.',
64
+ '',
65
+ ].join('\n');
66
+ }
67
+ export function renderStartupDocManagedBlock(startupDocPath, managedDocPath) {
68
+ const relativePath = path.relative(path.dirname(startupDocPath), managedDocPath).replace(/\\/g, '/');
69
+ return `@${relativePath}\n`;
70
+ }
71
+ export function upsertStartupDocManagedBlock(existingContent, managedBlock) {
72
+ const normalizedExisting = existingContent.replace(/\r\n/g, '\n');
73
+ const referenceLine = managedBlock.trim();
74
+ const withoutLegacyBlocks = normalizedExisting.replace(LEGACY_MANAGED_BLOCK_PATTERN, '');
75
+ const remainingLines = withoutLegacyBlocks
76
+ .split('\n')
77
+ .filter((line) => line.trim() !== referenceLine)
78
+ .join('\n')
79
+ .trimEnd();
80
+ if (remainingLines.length === 0) {
81
+ return `${referenceLine}\n`;
82
+ }
83
+ return `${remainingLines}\n${referenceLine}\n`;
84
+ }
85
+ function getScopePaths(repoRoot, scope) {
86
+ const scopes = scope === 'all' ? ['global', 'repo'] : [scope];
87
+ return scopes.map((currentScope) => {
88
+ if (currentScope === 'global') {
89
+ const homeDir = os.homedir();
90
+ const codexRoot = path.join(homeDir, '.codex');
91
+ const claudeRoot = path.join(homeDir, '.claude');
92
+ return {
93
+ scope: currentScope,
94
+ rootDir: homeDir,
95
+ codexManagedDocPath: path.join(codexRoot, '1MCP.md'),
96
+ claudeManagedDocPath: path.join(claudeRoot, '1MCP.md'),
97
+ codexHookPath: path.join(codexRoot, 'hooks.json'),
98
+ claudeHookPath: path.join(claudeRoot, 'settings.json'),
99
+ codexStartupPath: path.join(codexRoot, 'AGENTS.md'),
100
+ claudeStartupPath: path.join(claudeRoot, 'CLAUDE.md'),
101
+ };
102
+ }
103
+ const resolvedRepoRoot = path.resolve(repoRoot);
104
+ return {
105
+ scope: currentScope,
106
+ rootDir: resolvedRepoRoot,
107
+ codexManagedDocPath: path.join(resolvedRepoRoot, '.codex', '1MCP.md'),
108
+ claudeManagedDocPath: path.join(resolvedRepoRoot, '.claude', '1MCP.md'),
109
+ codexHookPath: path.join(resolvedRepoRoot, '.codex', 'hooks.json'),
110
+ claudeHookPath: path.join(resolvedRepoRoot, '.claude', 'settings.json'),
111
+ codexStartupPath: path.join(resolvedRepoRoot, 'AGENTS.md'),
112
+ claudeStartupPath: path.join(resolvedRepoRoot, 'CLAUDE.md'),
113
+ };
114
+ });
115
+ }
116
+ async function writeManagedJson(filePath, updater, resultInfo) {
117
+ const existingContent = await readExistingFile(filePath);
118
+ const parsed = parseJsonConfig(existingContent);
119
+ if (hasJsonComments(existingContent)) {
120
+ logger.warn(`Skipping managed update for ${filePath} because the file contains JSON comments.`);
121
+ return {
122
+ ...resultInfo,
123
+ path: filePath,
124
+ changed: false,
125
+ };
126
+ }
127
+ const updated = updater(parsed);
128
+ const nextContent = `${JSON.stringify(updated, null, 2)}\n`;
129
+ const changed = nextContent !== normalizeText(existingContent);
130
+ if (changed) {
131
+ await mkdir(path.dirname(filePath), { recursive: true });
132
+ await writeFile(filePath, nextContent, 'utf8');
133
+ }
134
+ return {
135
+ ...resultInfo,
136
+ path: filePath,
137
+ changed,
138
+ };
139
+ }
140
+ async function writeManagedFile(filePath, nextContent, resultInfo, existingContent) {
141
+ const resolved = existingContent ?? (await readExistingFile(filePath));
142
+ const normalizedNextContent = normalizeText(nextContent);
143
+ const changed = normalizedNextContent !== normalizeText(resolved);
144
+ if (changed) {
145
+ await mkdir(path.dirname(filePath), { recursive: true });
146
+ await writeFile(filePath, normalizedNextContent, 'utf8');
147
+ }
148
+ return {
149
+ ...resultInfo,
150
+ path: filePath,
151
+ changed,
152
+ };
153
+ }
154
+ function upsertHooks(existing) {
155
+ const config = cloneHookConfig(existing);
156
+ config.hooks ??= {};
157
+ config.hooks.SessionStart = dedupeSessionStartHooks(config.hooks.SessionStart ?? []);
158
+ return config;
159
+ }
160
+ function dedupeSessionStartHooks(entries) {
161
+ const dedupedEntries = [];
162
+ let seenManagedHook = false;
163
+ for (const entry of entries) {
164
+ const hooks = Array.isArray(entry?.hooks) ? entry.hooks : [];
165
+ const nextHooks = [];
166
+ for (const hook of hooks) {
167
+ if (isManagedHook(hook)) {
168
+ if (!seenManagedHook) {
169
+ seenManagedHook = true;
170
+ nextHooks.push(hook);
171
+ }
172
+ continue;
173
+ }
174
+ nextHooks.push(hook);
175
+ }
176
+ if (nextHooks.length > 0) {
177
+ dedupedEntries.push({
178
+ ...entry,
179
+ hooks: nextHooks,
180
+ });
181
+ }
182
+ }
183
+ if (!seenManagedHook) {
184
+ dedupedEntries.push(createHookEntry());
185
+ }
186
+ return dedupedEntries;
187
+ }
188
+ function createHookEntry() {
189
+ return {
190
+ hooks: [{ type: 'command', command: MANAGED_COMMAND }],
191
+ };
192
+ }
193
+ function isManagedHook(hook) {
194
+ return hook?.type === 'command' && hook.command === MANAGED_COMMAND;
195
+ }
196
+ function cloneHookConfig(existing) {
197
+ if (typeof structuredClone === 'function') {
198
+ return structuredClone(existing || {});
199
+ }
200
+ return JSON.parse(JSON.stringify(existing || {}));
201
+ }
202
+ function hasJsonComments(content) {
203
+ return /(^|\n)\s*\/\/|\/\*/m.test(content);
204
+ }
205
+ function parseJsonConfig(content) {
206
+ if (content.trim() === '') {
207
+ return {};
208
+ }
209
+ const parsed = JSON5.parse(content);
210
+ if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {
211
+ throw new Error('Expected a JSON object in setup config file.');
212
+ }
213
+ return parsed;
214
+ }
215
+ async function readExistingFile(filePath) {
216
+ try {
217
+ return await readFile(filePath, 'utf8');
218
+ }
219
+ catch (error) {
220
+ if (isMissingFileError(error)) {
221
+ return '';
222
+ }
223
+ throw error;
224
+ }
225
+ }
226
+ function normalizeText(value) {
227
+ const normalized = value.replace(/\r\n/g, '\n');
228
+ return normalized.endsWith('\n') ? normalized : `${normalized}\n`;
229
+ }
230
+ function isMissingFileError(error) {
231
+ return error !== null && typeof error === 'object' && 'code' in error && error.code === 'ENOENT';
232
+ }
233
+ //# sourceMappingURL=setupFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupFiles.js","sourceRoot":"","sources":["../../../src/commands/cliSetup/setupFiles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Argv } from 'yargs';
2
+ export declare function setupInspectCommand(yargs: Argv): Argv;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/inspect/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAElC,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CA8DrD"}
@@ -0,0 +1,60 @@
1
+ import { runCliCommand } from '../../commands/shared/commandRunner.js';
2
+ import { globalOptions } from '../../globalOptions.js';
3
+ export function setupInspectCommand(yargs) {
4
+ return yargs.command('inspect [target]', 'Inspect servers or tools from a running 1MCP serve instance', (commandYargs) => commandYargs
5
+ .options(globalOptions || {})
6
+ .positional('target', {
7
+ describe: 'Inspect target: <server>, <server>/<tool>, or omit to list all servers',
8
+ type: 'string',
9
+ })
10
+ .option('url', {
11
+ alias: 'u',
12
+ describe: 'Override auto-detected 1MCP server URL',
13
+ type: 'string',
14
+ })
15
+ .option('preset', {
16
+ alias: 'p',
17
+ describe: 'Use a preset when querying the running 1MCP server',
18
+ type: 'string',
19
+ })
20
+ .option('tag-filter', {
21
+ alias: 'f',
22
+ describe: 'Apply an advanced tag filter expression',
23
+ type: 'string',
24
+ })
25
+ .option('tags', {
26
+ describe: 'Apply simple comma-separated tags',
27
+ type: 'array',
28
+ string: true,
29
+ })
30
+ .option('format', {
31
+ describe: 'Output format',
32
+ type: 'string',
33
+ choices: ['toon', 'text', 'json'],
34
+ })
35
+ .option('all', {
36
+ describe: 'Fetch all tools without pagination (server target only)',
37
+ type: 'boolean',
38
+ default: false,
39
+ })
40
+ .option('limit', {
41
+ describe: 'Page size for tool listing (server target only)',
42
+ type: 'number',
43
+ default: 20,
44
+ })
45
+ .option('cursor', {
46
+ describe: 'Pagination cursor from a previous response',
47
+ type: 'string',
48
+ })
49
+ .example('$0 inspect', 'List all servers exposed by the running 1MCP instance')
50
+ .example('$0 inspect filesystem', 'List the exposed tools for a server')
51
+ .example('$0 inspect filesystem/read_file', 'Show a readable summary of a tool schema')
52
+ .example('$0 inspect filesystem --format json', 'Output normalized server tool list JSON for scripting')
53
+ .example('$0 inspect filesystem --format text', 'Human-readable chalk output')
54
+ .example('$0 inspect filesystem --all', 'List all tools without pagination')
55
+ .epilogue('This command requires a running `1mcp serve` instance. Errors are written to stderr only.'), async (argv) => {
56
+ const { inspectCommand } = await import('./inspect.js');
57
+ await runCliCommand(argv, inspectCommand);
58
+ });
59
+ }
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/inspect/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,MAAM,UAAU,mBAAmB,CAAC,KAAW;IAC7C,OAAO,KAAK,CAAC,OAAO,CAClB,kBAAkB,EAClB,6DAA6D,EAC7D,CAAC,YAAY,EAAE,EAAE,CACf,YAAY;SACT,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;SAC5B,UAAU,CAAC,QAAQ,EAAE;QACpB,QAAQ,EAAE,wEAAwE;QAClF,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,wCAAwC;QAClD,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,oDAAoD;QAC9D,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,yCAAyC;QACnD,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,QAAQ,EAAE,mCAAmC;QAC7C,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;KACb,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;KAClC,CAAC;SACD,MAAM,CAAC,KAAK,EAAE;QACb,QAAQ,EAAE,yDAAyD;QACnE,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,QAAQ,EAAE,iDAAiD;QAC3D,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;KACZ,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,QAAQ,EAAE,4CAA4C;QACtD,IAAI,EAAE,QAAQ;KACf,CAAC;SACD,OAAO,CAAC,YAAY,EAAE,uDAAuD,CAAC;SAC9E,OAAO,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;SACvE,OAAO,CAAC,iCAAiC,EAAE,0CAA0C,CAAC;SACtF,OAAO,CAAC,qCAAqC,EAAE,uDAAuD,CAAC;SACvG,OAAO,CAAC,qCAAqC,EAAE,6BAA6B,CAAC;SAC7E,OAAO,CAAC,6BAA6B,EAAE,mCAAmC,CAAC;SAC3E,QAAQ,CAAC,2FAA2F,CAAC,EAC1G,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACxD,MAAM,aAAa,CAAC,IAA4C,EAAE,cAAc,CAAC,CAAC;IACpF,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { Tool } from '@modelcontextprotocol/sdk/types.js';
2
+ import { type JsonRpcResponse } from '../../commands/shared/serveClient.js';
3
+ import type { GlobalOptions } from '../../globalOptions.js';
4
+ import type { ContextData } from '../../types/context.js';
5
+ import { type InspectOutputFormat, type InspectResult } from './inspectUtils.js';
6
+ export interface InspectCommandOptions extends GlobalOptions {
7
+ url?: string;
8
+ preset?: string;
9
+ filter?: string;
10
+ tags?: string[];
11
+ 'tag-filter'?: string;
12
+ format?: InspectOutputFormat;
13
+ target?: string;
14
+ all?: boolean;
15
+ limit?: number;
16
+ cursor?: string;
17
+ }
18
+ interface GetInspectResultOptions {
19
+ includeServerInstructions?: boolean;
20
+ }
21
+ export declare function getInspectResult(options: InspectCommandOptions, resultOptions?: GetInspectResultOptions): Promise<InspectResult>;
22
+ export declare function inspectCommand(options: InspectCommandOptions): Promise<void>;
23
+ export declare function inspectTools(options: {
24
+ serverUrl: URL;
25
+ sessionId?: string;
26
+ bearerToken?: string;
27
+ context?: ContextData;
28
+ }): Promise<{
29
+ rawResponse: JsonRpcResponse<unknown>;
30
+ tools: Tool[];
31
+ sessionId?: string;
32
+ instructions?: string | null;
33
+ retryWithFreshSession: boolean;
34
+ }>;
35
+ export {};
36
+ //# sourceMappingURL=inspect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/commands/inspect/inspect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAM/D,OAAO,EAKL,KAAK,eAAe,EAIrB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAKL,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAGnB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,uBAAuB;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAuGD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,qBAAqB,EAC9B,aAAa,GAAE,uBAA4B,GAC1C,OAAO,CAAC,aAAa,CAAC,CA2IxB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlF;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,GAAG,OAAO,CAAC;IACV,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,qBAAqB,EAAE,OAAO,CAAC;CAChC,CAAC,CAgFD"}
@@ -0,0 +1,274 @@
1
+ import { StreamableHTTPError } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
2
+ import { findToolByQualifiedName } from '../../commands/run/runUtils.js';
3
+ import { ApiClient } from '../../commands/shared/apiClient.js';
4
+ import { loadAuthProfile, normalizeServerUrl } from '../../commands/shared/authProfileStore.js';
5
+ import { buildCliContext } from '../../commands/shared/cliContext.js';
6
+ import { deleteCliSessionCache, getCliSessionCachePath, getCliSessionContextHash, readCliSessionCache, StreamableServeClient, writeCliSessionCache, } from '../../commands/shared/serveClient.js';
7
+ import { resolveServeTarget } from '../../commands/shared/serveTargetResolver.js';
8
+ import { MCP_URI_SEPARATOR } from '../../constants.js';
9
+ import { API_INSPECT_ENDPOINT } from '../../constants/api.js';
10
+ import { stripMcpSuffix } from '../../utils/urlUtils.js';
11
+ import { extractInspectServerInfo, extractInspectToolInfo, formatInspectOutput, InspectCommandError, parseInspectTarget, } from './inspectUtils.js';
12
+ function buildInspectQuery(options, target) {
13
+ const query = {};
14
+ if (target)
15
+ query.target = target;
16
+ if (options.preset)
17
+ query.preset = options.preset;
18
+ else if (options['tag-filter'])
19
+ query['tag-filter'] = options['tag-filter'];
20
+ else if (options.filter)
21
+ query.filter = options.filter;
22
+ else if (options.tags && options.tags.length > 0)
23
+ query.tags = options.tags.join(',');
24
+ if (options.all)
25
+ query.all = 'true';
26
+ else if (options.limit && options.limit !== 20)
27
+ query.limit = String(options.limit);
28
+ if (options.cursor)
29
+ query.cursor = options.cursor;
30
+ return query;
31
+ }
32
+ function isApiInspectToolResult(value) {
33
+ return (typeof value === 'object' && value !== null && 'kind' in value && value.kind === 'tool' && 'inputSchema' in value);
34
+ }
35
+ function extractServerInstructionsFromAggregatedInstructions(instructions, serverName) {
36
+ if (!instructions?.trim()) {
37
+ return undefined;
38
+ }
39
+ const escapedServerName = serverName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
40
+ const match = instructions.match(new RegExp(`<${escapedServerName}>\\s*([\\s\\S]*?)\\s*</${escapedServerName}>`, 'i'));
41
+ return match?.[1]?.trim() || undefined;
42
+ }
43
+ function normalizeApiInspectResult(result, target, includeServerInstructions) {
44
+ if (target.kind === 'tool' && isApiInspectToolResult(result)) {
45
+ result = extractInspectToolInfo({
46
+ name: result.qualifiedName,
47
+ description: result.description,
48
+ inputSchema: result.inputSchema,
49
+ outputSchema: result.outputSchema,
50
+ }, target.reference);
51
+ }
52
+ if (!includeServerInstructions) {
53
+ result = maybeStripServerInstructions(result);
54
+ result = stripListInstructions(result);
55
+ }
56
+ return result;
57
+ }
58
+ function stripServerInstructions(result) {
59
+ const { instructions: _instructions, ...serverResult } = result;
60
+ return serverResult;
61
+ }
62
+ function maybeStripServerInstructions(result) {
63
+ if (result.kind !== 'server') {
64
+ return result;
65
+ }
66
+ return stripServerInstructions(result);
67
+ }
68
+ function stripListInstructions(result) {
69
+ if (result.kind !== 'servers') {
70
+ return result;
71
+ }
72
+ const { instructions: _instructions, serverInstructions: _serverInstructions, ...serversResult } = result;
73
+ return serversResult;
74
+ }
75
+ function hasServerTools(tools, serverName) {
76
+ return tools.some((tool) => {
77
+ const [toolServerName] = tool.name.split(MCP_URI_SEPARATOR);
78
+ return toolServerName === serverName;
79
+ });
80
+ }
81
+ export async function getInspectResult(options, resultOptions = {}) {
82
+ const includeServerInstructions = resultOptions.includeServerInstructions ?? true;
83
+ const { cwd, projectConfig, projectRoot, mergedOptions, discoveredUrl, serverPid, serverUrl } = await resolveServeTarget(options);
84
+ const target = parseInspectTarget(mergedOptions.target);
85
+ const baseUrl = stripMcpSuffix(discoveredUrl);
86
+ const cachePath = getCliSessionCachePath({
87
+ cachePathTemplate: mergedOptions['cli-session-cache-path'],
88
+ serverPid,
89
+ serverUrl: serverUrl.toString(),
90
+ });
91
+ const inspectContext = buildCliContext({
92
+ cwd,
93
+ projectConfig,
94
+ projectRoot,
95
+ transportType: 'inspect',
96
+ version: 'inspect',
97
+ });
98
+ const contextHash = getCliSessionContextHash(inspectContext);
99
+ const [authProfile, cachedSession] = await Promise.all([
100
+ loadAuthProfile(mergedOptions['config-dir'], normalizeServerUrl(baseUrl)),
101
+ readCliSessionCache(cachePath, serverUrl.toString(), contextHash),
102
+ ]);
103
+ // Try /api/inspect first (fast path)
104
+ const apiClient = new ApiClient({
105
+ baseUrl,
106
+ bearerToken: authProfile?.token,
107
+ sessionId: cachedSession?.sessionId,
108
+ context: inspectContext,
109
+ });
110
+ const query = buildInspectQuery(mergedOptions, mergedOptions.target);
111
+ const apiResponse = await apiClient.get(API_INSPECT_ENDPOINT, query);
112
+ if (apiResponse.ok && apiResponse.data !== undefined) {
113
+ const result = normalizeApiInspectResult(apiResponse.data, target, includeServerInstructions);
114
+ // Mark that this server has the REST endpoint
115
+ await writeCliSessionCache(cachePath, {
116
+ sessionId: cachedSession?.sessionId ?? '',
117
+ serverUrl: serverUrl.toString(),
118
+ contextHash,
119
+ savedAt: Date.now(),
120
+ hasRestEndpoint: true,
121
+ });
122
+ return result;
123
+ }
124
+ // Fall back to MCP protocol for servers without /api/inspect (404) or for tool targets
125
+ if (apiResponse.status === 401 || apiResponse.status === 403) {
126
+ throw new InspectCommandError(`Authentication required. Run: 1mcp auth login --url ${baseUrl} --token <your-token>`);
127
+ }
128
+ const canFallbackToMcp = apiResponse.status === 404 ||
129
+ apiResponse.status === 405 ||
130
+ apiResponse.status === 0 ||
131
+ ((target.kind === 'server' || target.kind === 'tool') && apiResponse.status === 503);
132
+ if (!canFallbackToMcp) {
133
+ // Non-fallback error from the API — surface it
134
+ throw new InspectCommandError(apiResponse.error || `Server returned HTTP ${apiResponse.status}`);
135
+ }
136
+ // MCP fallback: only works for server/tool targets (not the all-servers listing)
137
+ if (target.kind === 'all') {
138
+ throw new InspectCommandError('Cannot list all servers: the running 1MCP server does not support the /api/inspect endpoint.');
139
+ }
140
+ let response = await inspectTools({
141
+ serverUrl,
142
+ sessionId: cachedSession?.sessionId,
143
+ bearerToken: authProfile?.token,
144
+ context: inspectContext,
145
+ });
146
+ const shouldRetryWithFreshSession = response.retryWithFreshSession ||
147
+ (!!cachedSession?.sessionId &&
148
+ ((target.kind === 'server' && !hasServerTools(response.tools, target.serverName)) ||
149
+ (target.kind === 'tool' && !findToolByQualifiedName(response.tools, target.reference.qualifiedName))));
150
+ if (shouldRetryWithFreshSession) {
151
+ await deleteCliSessionCache(cachePath);
152
+ response = await inspectTools({ serverUrl, bearerToken: authProfile?.token, context: inspectContext });
153
+ }
154
+ if (response.sessionId) {
155
+ await writeCliSessionCache(cachePath, {
156
+ sessionId: response.sessionId,
157
+ serverUrl: serverUrl.toString(),
158
+ contextHash,
159
+ savedAt: Date.now(),
160
+ hasRestEndpoint: false,
161
+ });
162
+ }
163
+ if (target.kind === 'server') {
164
+ const refreshedApiResponse = await apiClient.get(API_INSPECT_ENDPOINT, query);
165
+ if (refreshedApiResponse.ok && refreshedApiResponse.data !== undefined) {
166
+ return normalizeApiInspectResult(refreshedApiResponse.data, target, includeServerInstructions);
167
+ }
168
+ }
169
+ let result;
170
+ if (target.kind === 'tool') {
171
+ result = extractInspectToolInfo(findTool(response.tools, target.reference.qualifiedName, mergedOptions.target), target.reference, Boolean(cachedSession?.sessionId));
172
+ }
173
+ else {
174
+ result = extractInspectServerInfo(target.serverName, response.tools, Boolean(cachedSession?.sessionId), extractServerInstructionsFromAggregatedInstructions(response.instructions, target.serverName));
175
+ if (!includeServerInstructions) {
176
+ result = stripServerInstructions(result);
177
+ }
178
+ }
179
+ return result;
180
+ }
181
+ export async function inspectCommand(options) {
182
+ const format = options.format || 'toon';
183
+ const result = await getInspectResult(options, { includeServerInstructions: false });
184
+ const output = formatInspectOutput(result, format);
185
+ if (output.length > 0) {
186
+ process.stdout.write(`${output}\n`);
187
+ }
188
+ }
189
+ export async function inspectTools(options) {
190
+ const client = new StreamableServeClient(options.serverUrl, options.sessionId, options.bearerToken);
191
+ await client.start();
192
+ try {
193
+ if (!options.sessionId) {
194
+ const initializeResponse = await client.initialize(options.context);
195
+ if ('error' in initializeResponse) {
196
+ return {
197
+ rawResponse: initializeResponse,
198
+ tools: [],
199
+ sessionId: client.sessionId,
200
+ instructions: undefined,
201
+ retryWithFreshSession: false,
202
+ };
203
+ }
204
+ const response = await client.listTools();
205
+ if ('error' in response) {
206
+ return {
207
+ rawResponse: response,
208
+ tools: [],
209
+ sessionId: client.sessionId,
210
+ instructions: initializeResponse.result.instructions ?? null,
211
+ retryWithFreshSession: false,
212
+ };
213
+ }
214
+ return {
215
+ rawResponse: response,
216
+ tools: response.result.tools,
217
+ sessionId: client.sessionId,
218
+ instructions: initializeResponse.result.instructions ?? null,
219
+ retryWithFreshSession: false,
220
+ };
221
+ }
222
+ const response = await client.listTools();
223
+ if ('error' in response) {
224
+ return {
225
+ rawResponse: response,
226
+ tools: [],
227
+ sessionId: client.sessionId,
228
+ instructions: undefined,
229
+ retryWithFreshSession: false,
230
+ };
231
+ }
232
+ return {
233
+ rawResponse: response,
234
+ tools: response.result.tools,
235
+ sessionId: client.sessionId,
236
+ instructions: undefined,
237
+ retryWithFreshSession: false,
238
+ };
239
+ }
240
+ catch (error) {
241
+ if (error instanceof StreamableHTTPError && error.code === 404 && options.sessionId) {
242
+ return {
243
+ rawResponse: {
244
+ jsonrpc: '2.0',
245
+ id: 0,
246
+ error: {
247
+ code: -32004,
248
+ message: 'Cached session expired.',
249
+ },
250
+ },
251
+ tools: [],
252
+ instructions: undefined,
253
+ retryWithFreshSession: true,
254
+ };
255
+ }
256
+ throw error;
257
+ }
258
+ finally {
259
+ try {
260
+ await client.close();
261
+ }
262
+ catch {
263
+ // Best-effort cleanup for CLI inspect sessions.
264
+ }
265
+ }
266
+ }
267
+ function findTool(tools, qualifiedToolName, displayToolName) {
268
+ const tool = findToolByQualifiedName(tools, qualifiedToolName);
269
+ if (!tool) {
270
+ throw new InspectCommandError(`Tool not found: ${displayToolName}`);
271
+ }
272
+ return tool;
273
+ }
274
+ //# sourceMappingURL=inspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/commands/inspect/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oDAAoD,CAAC;AAGzF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EAGxB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAG7D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EAInB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AA6B3B,SAAS,iBAAiB,CACxB,OAA8G,EAC9G,MAAe;IAEf,MAAM,KAAK,GAA2B,EAAE,CAAC;IACzC,IAAI,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;IAClC,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAC7C,IAAI,OAAO,CAAC,YAAY,CAAC;QAAE,KAAK,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;SACvE,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;SAClD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtF,IAAI,OAAO,CAAC,GAAG;QAAE,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;SAC/B,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,EAAE;QAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM;QAAE,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAClD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,aAAa,IAAI,KAAK,CAClH,CAAC;AACJ,CAAC;AAED,SAAS,mDAAmD,CAC1D,YAAuC,EACvC,UAAkB;IAElB,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAC9B,IAAI,MAAM,CAAC,IAAI,iBAAiB,0BAA0B,iBAAiB,GAAG,EAAE,GAAG,CAAC,CACrF,CAAC;IACF,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;AACzC,CAAC;AAED,SAAS,yBAAyB,CAChC,MAAiD,EACjD,MAA6C,EAC7C,yBAAkC;IAElC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7D,MAAM,GAAG,sBAAsB,CAC7B;YACE,IAAI,EAAE,MAAM,CAAC,aAAa;YAC1B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;SAC1B,EACT,MAAM,CAAC,SAAS,CACjB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC/B,MAAM,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAyB;IACxD,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;IAChE,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAqB;IACzD,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,uBAAuB,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAqB;IAClD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,CAAC;IAC1G,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa,EAAE,UAAkB;IACvD,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC5D,OAAO,cAAc,KAAK,UAAU,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA8B,EAC9B,gBAAyC,EAAE;IAE3C,MAAM,yBAAyB,GAAG,aAAa,CAAC,yBAAyB,IAAI,IAAI,CAAC;IAClF,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAC3F,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAEpC,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,sBAAsB,CAAC;QACvC,iBAAiB,EAAE,aAAa,CAAC,wBAAwB,CAAC;QAC1D,SAAS;QACT,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;KAChC,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,eAAe,CAAC;QACrC,GAAG;QACH,aAAa;QACb,WAAW;QACX,aAAa,EAAE,SAAS;QACxB,OAAO,EAAE,SAAS;KACnB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,wBAAwB,CAAC,cAAc,CAAC,CAAC;IAE7D,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrD,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACzE,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,WAAW,CAAC;KAClE,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC;QAC9B,OAAO;QACP,WAAW,EAAE,WAAW,EAAE,KAAK;QAC/B,SAAS,EAAE,aAAa,EAAE,SAAS;QACnC,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,iBAAiB,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,GAAG,CAAU,oBAAoB,EAAE,KAAK,CAAC,CAAC;IAE9E,IAAI,WAAW,CAAC,EAAE,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,yBAAyB,CACtC,WAAW,CAAC,IAAiD,EAC7D,MAAM,EACN,yBAAyB,CAC1B,CAAC;QAEF,8CAA8C;QAC9C,MAAM,oBAAoB,CAAC,SAAS,EAAE;YACpC,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,EAAE;YACzC,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;YAC/B,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uFAAuF;IACvF,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7D,MAAM,IAAI,mBAAmB,CAC3B,uDAAuD,OAAO,uBAAuB,CACtF,CAAC;IACJ,CAAC;IAED,MAAM,gBAAgB,GACpB,WAAW,CAAC,MAAM,KAAK,GAAG;QAC1B,WAAW,CAAC,MAAM,KAAK,GAAG;QAC1B,WAAW,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;IAEvF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,+CAA+C;QAC/C,MAAM,IAAI,mBAAmB,CAAC,WAAW,CAAC,KAAK,IAAI,wBAAwB,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,iFAAiF;IACjF,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,mBAAmB,CAC3B,8FAA8F,CAC/F,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAAG,MAAM,YAAY,CAAC;QAChC,SAAS;QACT,SAAS,EAAE,aAAa,EAAE,SAAS;QACnC,WAAW,EAAE,WAAW,EAAE,KAAK;QAC/B,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,MAAM,2BAA2B,GAC/B,QAAQ,CAAC,qBAAqB;QAC9B,CAAC,CAAC,CAAC,aAAa,EAAE,SAAS;YACzB,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC/E,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAE7G,IAAI,2BAA2B,EAAE,CAAC;QAChC,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;QACvC,QAAQ,GAAG,MAAM,YAAY,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,MAAM,oBAAoB,CAAC,SAAS,EAAE;YACpC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,SAAS,EAAE,SAAS,CAAC,QAAQ,EAAE;YAC/B,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;YACnB,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,MAAM,oBAAoB,GAAG,MAAM,SAAS,CAAC,GAAG,CAAU,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACvF,IAAI,oBAAoB,CAAC,EAAE,IAAI,oBAAoB,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACvE,OAAO,yBAAyB,CAC9B,oBAAoB,CAAC,IAAiD,EACtE,MAAM,EACN,yBAAyB,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAiD,CAAC;IAEtD,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,sBAAsB,CAC7B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,MAAO,CAAC,EAC/E,MAAM,CAAC,SAAS,EAChB,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAClC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,wBAAwB,CAC/B,MAAM,CAAC,UAAU,EACjB,QAAQ,CAAC,KAAK,EACd,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EACjC,mDAAmD,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAC9F,CAAC;QACF,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA8B;IACjE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,EAAE,yBAAyB,EAAE,KAAK,EAAE,CAAC,CAAC;IACrF,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAKlC;IAOC,MAAM,MAAM,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACpG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IAErB,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,OAAO,IAAI,kBAAkB,EAAE,CAAC;gBAClC,OAAO;oBACL,WAAW,EAAE,kBAAkB;oBAC/B,KAAK,EAAE,EAAE;oBACT,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,YAAY,EAAE,SAAS;oBACvB,qBAAqB,EAAE,KAAK;iBAC7B,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YAC1C,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,OAAO;oBACL,WAAW,EAAE,QAAgC;oBAC7C,KAAK,EAAE,EAAE;oBACT,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;oBAC5D,qBAAqB,EAAE,KAAK;iBAC7B,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,WAAW,EAAE,QAAQ;gBACrB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;gBAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,kBAAkB,CAAC,MAAM,CAAC,YAAY,IAAI,IAAI;gBAC5D,qBAAqB,EAAE,KAAK;aAC7B,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QAC1C,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,OAAO;gBACL,WAAW,EAAE,QAAgC;gBAC7C,KAAK,EAAE,EAAE;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,YAAY,EAAE,SAAS;gBACvB,qBAAqB,EAAE,KAAK;aAC7B,CAAC;QACJ,CAAC;QAED,OAAO;YACL,WAAW,EAAE,QAAQ;YACrB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK;YAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,YAAY,EAAE,SAAS;YACvB,qBAAqB,EAAE,KAAK;SAC7B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACpF,OAAO;gBACL,WAAW,EAAE;oBACX,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,CAAC;oBACL,KAAK,EAAE;wBACL,IAAI,EAAE,CAAC,KAAK;wBACZ,OAAO,EAAE,yBAAyB;qBACnC;iBACF;gBACD,KAAK,EAAE,EAAE;gBACT,YAAY,EAAE,SAAS;gBACvB,qBAAqB,EAAE,IAAI;aAC5B,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,gDAAgD;QAClD,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,iBAAyB,EAAE,eAAuB;IACjF,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,eAAe,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}