@agentteams/cli 0.1.83 → 0.1.84

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 (102) hide show
  1. package/.eslintcache +1 -1
  2. package/dist/auth/activeCredential.d.ts +22 -0
  3. package/dist/auth/activeCredential.d.ts.map +1 -0
  4. package/dist/auth/activeCredential.js +25 -0
  5. package/dist/auth/activeCredential.js.map +1 -0
  6. package/dist/auth/credentialStore.d.ts +89 -0
  7. package/dist/auth/credentialStore.d.ts.map +1 -0
  8. package/dist/auth/credentialStore.js +254 -0
  9. package/dist/auth/credentialStore.js.map +1 -0
  10. package/dist/auth/personalTokenClient.d.ts +155 -0
  11. package/dist/auth/personalTokenClient.d.ts.map +1 -0
  12. package/dist/auth/personalTokenClient.js +312 -0
  13. package/dist/auth/personalTokenClient.js.map +1 -0
  14. package/dist/auth/personalTokenStore.d.ts +16 -0
  15. package/dist/auth/personalTokenStore.d.ts.map +1 -0
  16. package/dist/auth/personalTokenStore.js +27 -0
  17. package/dist/auth/personalTokenStore.js.map +1 -0
  18. package/dist/commands/agentConfig.d.ts.map +1 -1
  19. package/dist/commands/agentConfig.js +8 -6
  20. package/dist/commands/agentConfig.js.map +1 -1
  21. package/dist/commands/auth.d.ts +97 -0
  22. package/dist/commands/auth.d.ts.map +1 -0
  23. package/dist/commands/auth.js +245 -0
  24. package/dist/commands/auth.js.map +1 -0
  25. package/dist/commands/config.d.ts.map +1 -1
  26. package/dist/commands/config.js +16 -2
  27. package/dist/commands/config.js.map +1 -1
  28. package/dist/commands/convention.d.ts +11 -0
  29. package/dist/commands/convention.d.ts.map +1 -1
  30. package/dist/commands/convention.js +35 -11
  31. package/dist/commands/convention.js.map +1 -1
  32. package/dist/commands/dependency.d.ts.map +1 -1
  33. package/dist/commands/dependency.js +8 -6
  34. package/dist/commands/dependency.js.map +1 -1
  35. package/dist/commands/index.d.ts.map +1 -1
  36. package/dist/commands/index.js +19 -14
  37. package/dist/commands/index.js.map +1 -1
  38. package/dist/commands/init.d.ts +17 -0
  39. package/dist/commands/init.d.ts.map +1 -1
  40. package/dist/commands/init.js +90 -9
  41. package/dist/commands/init.js.map +1 -1
  42. package/dist/index.js +101 -15
  43. package/dist/index.js.map +1 -1
  44. package/dist/mcp/context.d.ts +15 -1
  45. package/dist/mcp/context.d.ts.map +1 -1
  46. package/dist/mcp/context.js +24 -5
  47. package/dist/mcp/context.js.map +1 -1
  48. package/dist/mcp/server.d.ts +1 -1
  49. package/dist/mcp/server.d.ts.map +1 -1
  50. package/dist/mcp/server.js +5 -2
  51. package/dist/mcp/server.js.map +1 -1
  52. package/dist/mcp/tools.d.ts.map +1 -1
  53. package/dist/mcp/tools.js +25 -22
  54. package/dist/mcp/tools.js.map +1 -1
  55. package/dist/mcp-registration/clients.d.ts.map +1 -1
  56. package/dist/mcp-registration/clients.js +1 -9
  57. package/dist/mcp-registration/clients.js.map +1 -1
  58. package/dist/mcp-registration/doctor.d.ts +38 -0
  59. package/dist/mcp-registration/doctor.d.ts.map +1 -0
  60. package/dist/mcp-registration/doctor.js +379 -0
  61. package/dist/mcp-registration/doctor.js.map +1 -0
  62. package/dist/mcp-registration/index.d.ts +7 -5
  63. package/dist/mcp-registration/index.d.ts.map +1 -1
  64. package/dist/mcp-registration/index.js +46 -21
  65. package/dist/mcp-registration/index.js.map +1 -1
  66. package/dist/mcp-registration/install.d.ts.map +1 -1
  67. package/dist/mcp-registration/install.js +12 -15
  68. package/dist/mcp-registration/install.js.map +1 -1
  69. package/dist/mcp-registration/render.d.ts +8 -6
  70. package/dist/mcp-registration/render.d.ts.map +1 -1
  71. package/dist/mcp-registration/render.js +15 -36
  72. package/dist/mcp-registration/render.js.map +1 -1
  73. package/dist/mcp-registration/serverSpec.d.ts +31 -18
  74. package/dist/mcp-registration/serverSpec.d.ts.map +1 -1
  75. package/dist/mcp-registration/serverSpec.js +36 -20
  76. package/dist/mcp-registration/serverSpec.js.map +1 -1
  77. package/dist/mcp-registration/types.d.ts +0 -3
  78. package/dist/mcp-registration/types.d.ts.map +1 -1
  79. package/dist/types/index.d.ts +10 -0
  80. package/dist/types/index.d.ts.map +1 -1
  81. package/dist/utils/apiKeyInput.d.ts +16 -0
  82. package/dist/utils/apiKeyInput.d.ts.map +1 -0
  83. package/dist/utils/apiKeyInput.js +47 -0
  84. package/dist/utils/apiKeyInput.js.map +1 -0
  85. package/dist/utils/authServer.d.ts +32 -3
  86. package/dist/utils/authServer.d.ts.map +1 -1
  87. package/dist/utils/authServer.js +46 -6
  88. package/dist/utils/authServer.js.map +1 -1
  89. package/dist/utils/config.d.ts +118 -15
  90. package/dist/utils/config.d.ts.map +1 -1
  91. package/dist/utils/config.js +182 -8
  92. package/dist/utils/config.js.map +1 -1
  93. package/dist/utils/errors.d.ts.map +1 -1
  94. package/dist/utils/errors.js +16 -0
  95. package/dist/utils/errors.js.map +1 -1
  96. package/dist/utils/httpClient.d.ts.map +1 -1
  97. package/dist/utils/httpClient.js +25 -0
  98. package/dist/utils/httpClient.js.map +1 -1
  99. package/dist/utils/initOutput.d.ts.map +1 -1
  100. package/dist/utils/initOutput.js +30 -0
  101. package/dist/utils/initOutput.js.map +1 -1
  102. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { PROJECT_SCOPE_FILE_MODE, USER_SCOPE_FILE_MODE, writeConfigFileAtomicall
3
3
  import { findClient, MCP_CLIENTS } from './clients.js';
4
4
  import { detectClients } from './detect.js';
5
5
  import { McpConfigParseError, upsertContainerEntry } from './jsonc.js';
6
- import { buildEntryValue, redactSecrets, renderConfigSnippet, renderVendorCommandLine } from './render.js';
6
+ import { buildEntryValue, redactKeyMaterial, renderConfigSnippet, renderVendorCommandLine } from './render.js';
7
7
  import { buildServerSpec, MCP_SERVER_NAME } from './serverSpec.js';
8
8
  import { runVendorCommand } from './vendorCommand.js';
9
9
  function firstLines(text, limit = 4) {
@@ -22,9 +22,8 @@ function installViaVendorCommand(options, configPath, manualSnippet) {
22
22
  if (!vendor)
23
23
  throw new Error(`No vendor command configured for ${client.id}/${scope}`);
24
24
  const spec = buildServerSpec({
25
- credentials: options.credentials,
26
- secretMode: scope === 'user' ? 'literal' : 'reference',
27
25
  serverEntry: options.serverEntry,
26
+ context: options.context,
28
27
  });
29
28
  const executable = client.executables[0];
30
29
  const runner = options.vendorRunner ?? runVendorCommand;
@@ -38,9 +37,9 @@ function installViaVendorCommand(options, configPath, manualSnippet) {
38
37
  manualSnippet,
39
38
  };
40
39
  }
41
- // Vendor CLIs echo their own argv on failure, and user-scope argv carries the
42
- // API key, so nothing reaches the caller before passing through redaction.
43
- const combined = redactSecrets(`${outcome.stdout}\n${outcome.stderr}`, [options.credentials.apiKey]);
40
+ // Registration passes no credential, so there is no value of ours to redact — but a
41
+ // vendor CLI echoing its own argv/environment on failure can still surface a `key_`.
42
+ const combined = redactKeyMaterial(`${outcome.stdout}\n${outcome.stderr}`);
44
43
  const alreadyRegistered = (vendor.alreadyRegisteredPatterns ?? []).some((pattern) => pattern.test(combined));
45
44
  if (alreadyRegistered) {
46
45
  return {
@@ -75,10 +74,8 @@ function installViaJsonMerge(options, configPath, manualSnippet) {
75
74
  throw new Error(`No container key configured for ${client.id}/${scope}`);
76
75
  const base = { clientId: client.id, scope, strategy: definition.strategy, configPath };
77
76
  const spec = buildServerSpec({
78
- credentials: options.credentials,
79
- // Project files are committable, so they never receive a literal key.
80
- secretMode: scope === 'user' ? 'literal' : 'reference',
81
77
  serverEntry: options.serverEntry,
78
+ context: options.context,
82
79
  });
83
80
  let source = '';
84
81
  if (existsSync(configPath)) {
@@ -99,7 +96,7 @@ function installViaJsonMerge(options, configPath, manualSnippet) {
99
96
  edited = upsertContainerEntry(source, {
100
97
  containerKey,
101
98
  entryKey: serverName,
102
- entryValue: buildEntryValue(definition.entryShape ?? 'plain', spec, client.secretReference),
99
+ entryValue: buildEntryValue(definition.entryShape ?? 'plain', spec),
103
100
  });
104
101
  }
105
102
  catch (error) {
@@ -145,9 +142,8 @@ export function installClient(options) {
145
142
  const definition = client.scopes[scope];
146
143
  const configPath = definition.configPath(options.context);
147
144
  const displaySpec = buildServerSpec({
148
- credentials: options.credentials,
149
- secretMode: 'reference',
150
145
  serverEntry: options.serverEntry,
146
+ context: options.context,
151
147
  });
152
148
  const manualSnippet = renderConfigSnippet(client, scope, displaySpec, serverName);
153
149
  if (definition.strategy === 'configOnly') {
@@ -208,7 +204,8 @@ export function buildBatchPlan(options) {
208
204
  * the collected outcomes.
209
205
  */
210
206
  export function runBatchInstall(options) {
211
- const plan = buildBatchPlan({ ...options, scope: 'user' });
207
+ const scope = options.scope ?? 'user';
208
+ const plan = buildBatchPlan({ ...options, scope });
212
209
  const results = [];
213
210
  for (const entry of plan.entries) {
214
211
  const client = findClient(entry.clientId);
@@ -217,7 +214,7 @@ export function runBatchInstall(options) {
217
214
  if (!entry.applicable) {
218
215
  results.push({
219
216
  clientId: entry.clientId,
220
- scope: 'user',
217
+ scope: entry.scope,
221
218
  strategy: entry.strategy,
222
219
  configPath: entry.targetPath,
223
220
  outcome: entry.strategy === 'configOnly' ? 'SKIPPED_CONFIG_ONLY' : 'SKIPPED_NOT_DETECTED',
@@ -227,7 +224,7 @@ export function runBatchInstall(options) {
227
224
  }
228
225
  results.push(installClient({
229
226
  client,
230
- scope: 'user',
227
+ scope: entry.scope,
231
228
  credentials: options.credentials,
232
229
  context: options.context,
233
230
  serverEntry: options.serverEntry,
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/mcp-registration/install.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/mcp-registration/install.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { McpClientDefinition, McpEntryShape, McpScope, McpSecretReference, McpServerSpec } from './types.js';
1
+ import type { McpClientDefinition, McpEntryShape, McpScope, McpServerSpec } from './types.js';
2
2
  /** Serialize the AgentTeams server entry in the shape the target client expects. */
3
- export declare function buildEntryValue(shape: McpEntryShape, spec: McpServerSpec, reference?: McpSecretReference): Record<string, unknown>;
3
+ export declare function buildEntryValue(shape: McpEntryShape, spec: McpServerSpec): Record<string, unknown>;
4
4
  /**
5
5
  * The copy-pasteable config fragment for one client/scope. This is the escape
6
6
  * hatch every failure path points at, so it must be complete on its own: the
@@ -10,9 +10,11 @@ export declare function renderConfigSnippet(client: McpClientDefinition, scope:
10
10
  /** The equivalent vendor command, for users who prefer to run it themselves. */
11
11
  export declare function renderVendorCommandLine(client: McpClientDefinition, scope: McpScope, spec: McpServerSpec, serverName: string): string | null;
12
12
  /**
13
- * Strip credential values from anything that reaches a terminal, a log or a
14
- * test snapshot. Vendor CLIs echo their own arguments on failure, so their
15
- * captured output has to pass through here before it is shown.
13
+ * Strip AgentTeams key material from vendor output before it reaches a terminal or a log.
14
+ *
15
+ * Registration itself no longer holds a credential the server spec embeds nothing — so
16
+ * there is no value to pass in. What remains is that vendor CLIs echo their own argv and
17
+ * environment on failure, and that output can carry a `key_` this process never saw.
16
18
  */
17
- export declare function redactSecrets(text: string, secrets: string[]): string;
19
+ export declare function redactKeyMaterial(text: string): string;
18
20
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/mcp-registration/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAYlH,oFAAoF;AACpF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,aAAa,EACnB,SAAS,GAAE,kBAAmC,GAC7C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiBzB;AA+BD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAWR;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAMf;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAOrE"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/mcp-registration/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE9F,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBlG;AAwBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,CAWR;AAED,gFAAgF;AAChF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAC3B,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,MAAM,GACjB,MAAM,GAAG,IAAI,CAMf;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -1,32 +1,19 @@
1
- import { CREDENTIAL_ENV_KEYS } from './serverSpec.js';
2
- function referencedSpec(spec, reference) {
3
- if (reference !== 'opencodeEnv')
4
- return spec;
5
- const apiKey = spec.env[CREDENTIAL_ENV_KEYS.apiKey];
6
- if (apiKey !== `\${${CREDENTIAL_ENV_KEYS.apiKey}}`)
7
- return spec;
8
- return {
9
- ...spec,
10
- env: { ...spec.env, [CREDENTIAL_ENV_KEYS.apiKey]: `{env:${CREDENTIAL_ENV_KEYS.apiKey}}` },
11
- };
12
- }
13
1
  /** Serialize the AgentTeams server entry in the shape the target client expects. */
14
- export function buildEntryValue(shape, spec, reference = 'dollarBraces') {
15
- const clientSpec = referencedSpec(spec, reference);
2
+ export function buildEntryValue(shape, spec) {
16
3
  if (shape === 'opencode') {
17
4
  return {
18
5
  type: 'local',
19
- command: [clientSpec.command, ...clientSpec.args],
20
- environment: { ...clientSpec.env },
6
+ command: [spec.command, ...spec.args],
7
+ environment: { ...spec.env },
21
8
  enabled: true,
22
9
  };
23
10
  }
24
11
  const entry = {};
25
12
  if (shape === 'stdio')
26
13
  entry.type = 'stdio';
27
- entry.command = clientSpec.command;
28
- entry.args = [...clientSpec.args];
29
- entry.env = { ...clientSpec.env };
14
+ entry.command = spec.command;
15
+ entry.args = [...spec.args];
16
+ entry.env = { ...spec.env };
30
17
  return entry;
31
18
  }
32
19
  function tomlString(value) {
@@ -38,11 +25,7 @@ function renderCodexToml(serverName, spec) {
38
25
  `command = ${tomlString(spec.command)}`,
39
26
  `args = [${spec.args.map(tomlString).join(', ')}]`,
40
27
  ];
41
- const apiKey = spec.env[CREDENTIAL_ENV_KEYS.apiKey];
42
- if (apiKey === `\${${CREDENTIAL_ENV_KEYS.apiKey}}`) {
43
- lines.push(`env_vars = [${tomlString(CREDENTIAL_ENV_KEYS.apiKey)}]`);
44
- }
45
- const envEntries = Object.entries(spec.env).filter(([key, value]) => key !== CREDENTIAL_ENV_KEYS.apiKey || value !== `\${${CREDENTIAL_ENV_KEYS.apiKey}}`);
28
+ const envEntries = Object.entries(spec.env);
46
29
  if (envEntries.length > 0) {
47
30
  lines.push('', `[mcp_servers.${serverName}.env]`);
48
31
  for (const [key, value] of envEntries) {
@@ -62,7 +45,7 @@ export function renderConfigSnippet(client, scope, spec, serverName) {
62
45
  return renderCodexToml(serverName, spec);
63
46
  }
64
47
  const containerKey = definition.containerKey;
65
- const entry = buildEntryValue(definition.entryShape ?? 'plain', spec, client.secretReference);
48
+ const entry = buildEntryValue(definition.entryShape ?? 'plain', spec);
66
49
  const document = containerKey ? { [containerKey]: { [serverName]: entry } } : { [serverName]: entry };
67
50
  return JSON.stringify(document, null, 2);
68
51
  }
@@ -75,17 +58,13 @@ export function renderVendorCommandLine(client, scope, spec, serverName) {
75
58
  return [client.executables[0], ...args].join(' ');
76
59
  }
77
60
  /**
78
- * Strip credential values from anything that reaches a terminal, a log or a
79
- * test snapshot. Vendor CLIs echo their own arguments on failure, so their
80
- * captured output has to pass through here before it is shown.
61
+ * Strip AgentTeams key material from vendor output before it reaches a terminal or a log.
62
+ *
63
+ * Registration itself no longer holds a credential the server spec embeds nothing — so
64
+ * there is no value to pass in. What remains is that vendor CLIs echo their own argv and
65
+ * environment on failure, and that output can carry a `key_` this process never saw.
81
66
  */
82
- export function redactSecrets(text, secrets) {
83
- let redacted = text;
84
- for (const secret of secrets) {
85
- if (!secret || secret.length < 4)
86
- continue;
87
- redacted = redacted.split(secret).join('***');
88
- }
89
- return redacted;
67
+ export function redactKeyMaterial(text) {
68
+ return text.replace(/(?<![A-Za-z0-9_-])key_[A-Za-z0-9][A-Za-z0-9_-]{7,}/g, '***');
90
69
  }
91
70
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/mcp-registration/render.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,SAAS,cAAc,CAAC,IAAmB,EAAE,SAA6B;IACxE,IAAI,SAAS,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,MAAM,mBAAmB,CAAC,MAAM,GAAG;QAAE,OAAO,IAAI,CAAC;IAChE,OAAO;QACL,GAAG,IAAI;QACP,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,QAAQ,mBAAmB,CAAC,MAAM,GAAG,EAAE;KAC1F,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,eAAe,CAC7B,KAAoB,EACpB,IAAmB,EACnB,YAAgC,cAAc;IAE9C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACnD,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;QACzB,OAAO;YACL,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;YACjD,WAAW,EAAE,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE;YAClC,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,IAAI,KAAK,KAAK,OAAO;QAAE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;IAC5C,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;IACnC,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB,EAAE,IAAmB;IAC9D,MAAM,KAAK,GAAG;QACZ,gBAAgB,UAAU,GAAG;QAC7B,aAAa,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QACvC,WAAW,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KACnD,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,MAAM,mBAAmB,CAAC,MAAM,GAAG,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAChD,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,CAAC,MAAM,IAAI,KAAK,KAAK,MAAM,mBAAmB,CAAC,MAAM,GAAG,CACtG,CAAC;IACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,UAAU,OAAO,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA2B,EAC3B,KAAe,EACf,IAAmB,EACnB,UAAkB;IAElB,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExC,IAAI,UAAU,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;IAC7C,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,UAAU,IAAI,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAC9F,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC;IACtG,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,uBAAuB,CACrC,MAA2B,EAC3B,KAAe,EACf,IAAmB,EACnB,UAAkB;IAElB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;IAC3C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACvG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAiB;IAC3D,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC3C,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/mcp-registration/render.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,44 @@
1
- import type { McpServerSpec } from './types.js';
1
+ import type { McpPathContext, McpServerSpec } from './types.js';
2
2
  /** Server name registered in every client. Kept stable so re-runs update rather than duplicate. */
3
3
  export declare const MCP_SERVER_NAME = "agentteams";
4
- export declare const CREDENTIAL_ENV_KEYS: {
5
- readonly apiKey: "AGENTTEAMS_API_KEY";
6
- readonly projectId: "AGENTTEAMS_PROJECT_ID";
7
- readonly teamId: "AGENTTEAMS_TEAM_ID";
8
- readonly apiUrl: "AGENTTEAMS_API_URL";
9
- };
4
+ /** Published package the `npx` fallback runs. */
5
+ export declare const MCP_RUNTIME_PACKAGE = "@agentteams/cli";
6
+ /** Name of the globally installed executable, when there is one. */
7
+ export declare const MCP_GLOBAL_EXECUTABLE = "agentteams";
8
+ /**
9
+ * Project identity for command context and human-readable output only.
10
+ *
11
+ * There is no credential field on purpose: the generated server spec embeds nothing,
12
+ * and `agentteams mcp` resolves project config plus the OS credential store at request
13
+ * time. Re-adding one here would put a secret back into a client config file.
14
+ */
10
15
  export interface McpCredentials {
11
- apiKey: string;
12
16
  projectId: string;
13
17
  teamId: string;
14
18
  apiUrl: string;
15
19
  }
16
- /**
17
- * `literal` writes the real API key into the client's own config file — only
18
- * ever used for user-scope `install`, where the file lives outside the repo and
19
- * is chmod 0600. Everything a human can read (`config` output, dry-run plans,
20
- * project-scope files that get committed) uses `reference`. The renderer then
21
- * converts that marker to each client's supported inheritance syntax.
22
- */
23
- export type SecretMode = 'literal' | 'reference';
24
20
  export interface BuildServerSpecOptions {
25
- credentials: McpCredentials;
26
- secretMode: SecretMode;
27
21
  /** Absolute path to a local `cli/dist/index.js`; omit to use the published package. */
28
22
  serverEntry?: string;
23
+ /**
24
+ * Registration context. When present, the spec is chosen from what this machine can
25
+ * actually spawn; when absent, the global executable is assumed.
26
+ */
27
+ context?: McpPathContext;
28
+ /** Injection seam so tests drive a fake PATH instead of the developer's machine. */
29
+ fileExists?: (path: string) => boolean;
29
30
  }
31
+ /** Is a bare `agentteams` resolvable from this context's PATH? */
32
+ export declare function hasGlobalExecutable(context: McpPathContext, fileExists?: (path: string) => boolean): boolean;
33
+ /**
34
+ * What the client will spawn.
35
+ *
36
+ * A bare `agentteams` is the fast path, but it is only correct when the package is
37
+ * installed globally *and* the client inherits a PATH that contains it — neither holds
38
+ * for `npx @agentteams/cli mcp install` or for a GUI-launched client that never sourced
39
+ * a login shell. Those failures surface as an opaque "server failed to start" inside the
40
+ * client, so when the executable is not resolvable the spec falls back to `npx`, which
41
+ * works in both cases.
42
+ */
30
43
  export declare function buildServerSpec(options: BuildServerSpecOptions): McpServerSpec;
31
44
  //# sourceMappingURL=serverSpec.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverSpec.d.ts","sourceRoot":"","sources":["../../src/mcp-registration/serverSpec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,mGAAmG;AACnG,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,eAAO,MAAM,mBAAmB;;;;;CAKtB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAEjD,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa,CAqB9E"}
1
+ {"version":3,"file":"serverSpec.d.ts","sourceRoot":"","sources":["../../src/mcp-registration/serverSpec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,mGAAmG;AACnG,eAAO,MAAM,eAAe,eAAe,CAAC;AAE5C,iDAAiD;AACjD,eAAO,MAAM,mBAAmB,oBAAoB,CAAC;AAErD,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,oFAAoF;IACpF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC;AAMD,kEAAkE;AAClE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,UAAU,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAoB,GACjD,OAAO,CAUT;AAED;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,aAAa,CAc9E"}
@@ -1,29 +1,45 @@
1
- import { isAbsolute, resolve } from 'node:path';
2
- import { DEFAULT_API_URL } from '../utils/config.js';
1
+ import { existsSync } from 'node:fs';
2
+ import { delimiter, isAbsolute, join, resolve } from 'node:path';
3
3
  /** Server name registered in every client. Kept stable so re-runs update rather than duplicate. */
4
4
  export const MCP_SERVER_NAME = 'agentteams';
5
- export const CREDENTIAL_ENV_KEYS = {
6
- apiKey: 'AGENTTEAMS_API_KEY',
7
- projectId: 'AGENTTEAMS_PROJECT_ID',
8
- teamId: 'AGENTTEAMS_TEAM_ID',
9
- apiUrl: 'AGENTTEAMS_API_URL',
10
- };
11
- export function buildServerSpec(options) {
12
- const { credentials, secretMode, serverEntry } = options;
13
- const env = {
14
- [CREDENTIAL_ENV_KEYS.apiKey]: secretMode === 'literal' ? credentials.apiKey : `\${${CREDENTIAL_ENV_KEYS.apiKey}}`,
15
- [CREDENTIAL_ENV_KEYS.projectId]: credentials.projectId,
16
- [CREDENTIAL_ENV_KEYS.teamId]: credentials.teamId,
17
- };
18
- // Only non-default API URLs are worth pinning; emitting the default would make
19
- // every generated config break the day the hosted URL changes.
20
- if (credentials.apiUrl && credentials.apiUrl !== DEFAULT_API_URL) {
21
- env[CREDENTIAL_ENV_KEYS.apiUrl] = credentials.apiUrl;
5
+ /** Published package the `npx` fallback runs. */
6
+ export const MCP_RUNTIME_PACKAGE = '@agentteams/cli';
7
+ /** Name of the globally installed executable, when there is one. */
8
+ export const MCP_GLOBAL_EXECUTABLE = 'agentteams';
9
+ function executableSuffixes() {
10
+ return process.platform === 'win32' ? ['', '.cmd', '.exe', '.bat', '.ps1'] : [''];
11
+ }
12
+ /** Is a bare `agentteams` resolvable from this context's PATH? */
13
+ export function hasGlobalExecutable(context, fileExists = existsSync) {
14
+ const pathDirs = (context.env.PATH ?? '').split(delimiter).filter((entry) => entry.length > 0);
15
+ for (const directory of pathDirs) {
16
+ for (const suffix of executableSuffixes()) {
17
+ if (fileExists(join(directory, `${MCP_GLOBAL_EXECUTABLE}${suffix}`)))
18
+ return true;
19
+ }
22
20
  }
21
+ return false;
22
+ }
23
+ /**
24
+ * What the client will spawn.
25
+ *
26
+ * A bare `agentteams` is the fast path, but it is only correct when the package is
27
+ * installed globally *and* the client inherits a PATH that contains it — neither holds
28
+ * for `npx @agentteams/cli mcp install` or for a GUI-launched client that never sourced
29
+ * a login shell. Those failures surface as an opaque "server failed to start" inside the
30
+ * client, so when the executable is not resolvable the spec falls back to `npx`, which
31
+ * works in both cases.
32
+ */
33
+ export function buildServerSpec(options) {
34
+ const { serverEntry } = options;
35
+ const env = {};
23
36
  if (serverEntry) {
24
37
  const entryPath = isAbsolute(serverEntry) ? serverEntry : resolve(serverEntry);
25
38
  return { command: 'node', args: [entryPath, 'mcp'], env };
26
39
  }
27
- return { command: 'npx', args: ['-y', '@agentteams/cli', 'mcp'], env };
40
+ if (options.context && !hasGlobalExecutable(options.context, options.fileExists)) {
41
+ return { command: 'npx', args: ['-y', MCP_RUNTIME_PACKAGE, 'mcp'], env };
42
+ }
43
+ return { command: MCP_GLOBAL_EXECUTABLE, args: ['mcp'], env };
28
44
  }
29
45
  //# sourceMappingURL=serverSpec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverSpec.js","sourceRoot":"","sources":["../../src/mcp-registration/serverSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,MAAM,EAAE,oBAAoB;IAC5B,SAAS,EAAE,uBAAuB;IAClC,MAAM,EAAE,oBAAoB;IAC5B,MAAM,EAAE,oBAAoB;CACpB,CAAC;AAyBX,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAEzD,MAAM,GAAG,GAA2B;QAClC,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,MAAM,GAAG;QACjH,CAAC,mBAAmB,CAAC,SAAS,CAAC,EAAE,WAAW,CAAC,SAAS;QACtD,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM;KACjD,CAAC;IAEF,+EAA+E;IAC/E,+DAA+D;IAC/D,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;QACjE,GAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;IACvD,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"serverSpec.js","sourceRoot":"","sources":["../../src/mcp-registration/serverSpec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGjE,mGAAmG;AACnG,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,iDAAiD;AACjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAErD,oEAAoE;AACpE,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAAC;AA2BlD,SAAS,kBAAkB;IACzB,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,mBAAmB,CACjC,OAAuB,EACvB,aAAwC,UAAU;IAElD,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE/F,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjC,KAAK,MAAM,MAAM,IAAI,kBAAkB,EAAE,EAAE,CAAC;YAC1C,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,qBAAqB,GAAG,MAAM,EAAE,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpF,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,OAA+B;IAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAChC,MAAM,GAAG,GAA2B,EAAE,CAAC;IAEvC,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACjF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IAC3E,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AAChE,CAAC"}
@@ -2,8 +2,6 @@
2
2
  export declare const MCP_CLIENT_IDS: readonly ["claude-code", "codex", "copilot-cli", "opencode", "amp", "cursor-cli", "kimi-cli", "antigravity"];
3
3
  export type McpClientId = (typeof MCP_CLIENT_IDS)[number];
4
4
  export type McpScope = 'user' | 'project';
5
- /** Syntax the client uses to inherit a secret from its parent process. */
6
- export type McpSecretReference = 'dollarBraces' | 'opencodeEnv' | 'codexEnvVars';
7
5
  /** How the AgentTeams entry reaches the client's configuration. */
8
6
  export type McpInstallStrategy =
9
7
  /** The client owns the format; we shell out to its documented non-interactive command. */
@@ -61,7 +59,6 @@ export interface McpClientDefinition {
61
59
  label: string;
62
60
  /** Executable names looked up on PATH. */
63
61
  executables: string[];
64
- secretReference: McpSecretReference;
65
62
  /** Extra directories to probe when the client installs outside PATH (e.g. Kimi). */
66
63
  extraBinDirs?: (context: McpPathContext) => string[];
67
64
  /** Files/directories whose presence proves the client has been configured on this machine. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp-registration/types.ts"],"names":[],"mappings":"AAAA,+HAA+H;AAC/H,eAAO,MAAM,cAAc,8GASjB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,0EAA0E;AAC1E,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;AAEjF,mEAAmE;AACnE,MAAM,MAAM,kBAAkB;AAC5B,0FAA0F;AACxF,eAAe;AACjB,6EAA6E;GAC3E,WAAW;AACb,6FAA6F;GAC3F,YAAY,CAAC;AAEjB,+EAA+E;AAC/E,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEtD,wEAAwE;AACxE,MAAM,MAAM,aAAa;AACvB,8CAA8C;AAC5C,OAAO;AACT,+BAA+B;GAC7B,OAAO;AACT,gEAAgE;GAC9D,UAAU,CAAC;AAEf,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,UAAU,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC;IAChD,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAClC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,mDAAmD;IACnD,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;QACjE,aAAa,EAAE,mBAAmB,CAAC;QACnC,6DAA6D;QAC7D,yBAAyB,CAAC,EAAE,MAAM,EAAE,CAAC;KACtC,CAAC;IACF,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,WAAW,CAAC;IAChB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,kBAAkB,CAAC;IACpC,oFAAoF;IACpF,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,EAAE,CAAC;IACrD,8FAA8F;IAC9F,aAAa,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,EAAE,CAAC;IACrD,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;CAC9C;AAED,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,oBAAoB,GACpB,qBAAqB,GACrB,sBAAsB,GACtB,QAAQ,CAAC;AAEb,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,mFAAmF;IACnF,QAAQ,EAAE,YAAY,GAAG,YAAY,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp-registration/types.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,14 @@
6
6
  * CLI Configuration stored in .agentteams/config.json
7
7
  * Contains credentials and project context for API communication
8
8
  */
9
+ /**
10
+ * Which credential family this project is configured to authenticate with.
11
+ *
12
+ * `personal-token` is the default: project config stays secret-free while a
13
+ * rotating refresh token lives in the OS credential store. `api-key` is the
14
+ * explicit compatibility path for existing automation and legacy projects.
15
+ */
16
+ export type AuthMode = 'api-key' | 'personal-token';
9
17
  export interface Config {
10
18
  /** Team ID from AgentTeams */
11
19
  teamId: string;
@@ -15,6 +23,8 @@ export interface Config {
15
23
  apiKey: string;
16
24
  /** API URL (e.g., "http://localhost:3001") */
17
25
  apiUrl: string;
26
+ /** Legacy migration marker; absent configs choose by whether an apiKey exists. */
27
+ authMode?: AuthMode;
18
28
  }
19
29
  /**
20
30
  * Plan from API
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAMD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH;;;GAGG;AACH;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAEpD,MAAM,WAAW,MAAM;IACrB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAMD;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,2DAA2D;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAMD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC"}
@@ -0,0 +1,16 @@
1
+ export interface ApiKeyInputOptions {
2
+ apiKey?: string;
3
+ apiKeyFile?: string;
4
+ }
5
+ export interface ApiKeyInputDependencies {
6
+ readFile: (path: string) => string;
7
+ readStdin: () => string;
8
+ warn: (message: string) => void;
9
+ }
10
+ /**
11
+ * Resolve explicit credential input without ever writing the credential to
12
+ * output. The legacy argv path remains compatible, but every use explains the
13
+ * safer environment, file and stdin alternatives on stderr.
14
+ */
15
+ export declare function resolveApiKeyInput(options: ApiKeyInputOptions, dependencies?: ApiKeyInputDependencies): string | undefined;
16
+ //# sourceMappingURL=apiKeyInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiKeyInput.d.ts","sourceRoot":"","sources":["../../src/utils/apiKeyInput.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACnC,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAmBD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,kBAAkB,EAC3B,YAAY,GAAE,uBAA6C,GAC1D,MAAM,GAAG,SAAS,CA8BpB"}
@@ -0,0 +1,47 @@
1
+ import { readFileSync } from 'node:fs';
2
+ const defaultDependencies = {
3
+ readFile: (path) => readFileSync(path, 'utf-8'),
4
+ readStdin: () => readFileSync(0, 'utf-8'),
5
+ warn: (message) => process.stderr.write(message),
6
+ };
7
+ const normalizeApiKey = (value, source) => {
8
+ const normalized = value.trim();
9
+ if (!normalized) {
10
+ throw new Error(`${source} is empty.`);
11
+ }
12
+ if (/\s/.test(normalized)) {
13
+ throw new Error(`${source} must contain exactly one API key without whitespace.`);
14
+ }
15
+ return normalized;
16
+ };
17
+ /**
18
+ * Resolve explicit credential input without ever writing the credential to
19
+ * output. The legacy argv path remains compatible, but every use explains the
20
+ * safer environment, file and stdin alternatives on stderr.
21
+ */
22
+ export function resolveApiKeyInput(options, dependencies = defaultDependencies) {
23
+ if (options.apiKey !== undefined && options.apiKeyFile !== undefined) {
24
+ throw new Error('--api-key and --api-key-file cannot be used together.');
25
+ }
26
+ if (options.apiKey !== undefined) {
27
+ dependencies.warn('[warn] --api-key exposes credentials in shell history and process listings. Prefer AGENTTEAMS_API_KEY, --api-key-file <path>, or --api-key-file - for stdin.\n');
28
+ return normalizeApiKey(options.apiKey, '--api-key');
29
+ }
30
+ if (options.apiKeyFile === undefined) {
31
+ return undefined;
32
+ }
33
+ const source = options.apiKeyFile === '-' ? 'stdin' : `API key file ${options.apiKeyFile}`;
34
+ try {
35
+ const value = options.apiKeyFile === '-' ? dependencies.readStdin() : dependencies.readFile(options.apiKeyFile);
36
+ return normalizeApiKey(value, source);
37
+ }
38
+ catch (error) {
39
+ if (error instanceof Error &&
40
+ (error.message.endsWith('is empty.') || error.message.includes('exactly one API key'))) {
41
+ throw error;
42
+ }
43
+ const detail = error instanceof Error ? error.message : String(error);
44
+ throw new Error(`Could not read ${source}: ${detail}`);
45
+ }
46
+ }
47
+ //# sourceMappingURL=apiKeyInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiKeyInput.js","sourceRoot":"","sources":["../../src/utils/apiKeyInput.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAavC,MAAM,mBAAmB,GAA4B;IACnD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC;IAC/C,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC;IACzC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;CACjD,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,uDAAuD,CAAC,CAAC;IACpF,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAA2B,EAC3B,eAAwC,mBAAmB;IAE3D,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACjC,YAAY,CAAC,IAAI,CACf,gKAAgK,CACjK,CAAC;QACF,OAAO,eAAe,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3F,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChH,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK,YAAY,KAAK;YACtB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,EACtF,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,KAAK,CAAC,kBAAkB,MAAM,KAAK,MAAM,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
@@ -7,9 +7,18 @@ export type AuthResult = {
7
7
  configId: string;
8
8
  seedPlanId?: string | null;
9
9
  };
10
- type AuthServerResult = {
10
+ /**
11
+ * The authorization-code callback. Deliberately smaller than {@link AuthResult}:
12
+ * a single-use code that is worthless without the `code_verifier` this process
13
+ * never sent anywhere, instead of a long-lived key travelling through a browser.
14
+ */
15
+ export type AuthorizationCodeResult = {
16
+ code: string;
17
+ state: string;
18
+ };
19
+ type AuthServerResult<T> = {
11
20
  server: Server;
12
- waitForCallback: () => Promise<AuthResult>;
21
+ waitForCallback: () => Promise<T>;
13
22
  port: number;
14
23
  /** Echo this back through the authorize URL; the callback is rejected without it. */
15
24
  state: string;
@@ -19,6 +28,26 @@ type StartLocalAuthServerOptions = {
19
28
  };
20
29
  /** Unguessable value that proves a callback belongs to the login this process started. */
21
30
  export declare function createAuthState(): string;
22
- export declare function startLocalAuthServer(options?: StartLocalAuthServerOptions): Promise<AuthServerResult>;
31
+ export type PkcePair = {
32
+ /** Stays in this process. Without it a stolen code cannot be redeemed. */
33
+ verifier: string;
34
+ /** S256 hash sent through the browser. */
35
+ challenge: string;
36
+ };
37
+ /**
38
+ * PKCE S256 pair.
39
+ *
40
+ * 48 random bytes base64url-encode to 64 characters, inside the server's
41
+ * 43–128 range (`api/src/routes/desktop-auth/index.ts`).
42
+ */
43
+ export declare function createPkcePair(): PkcePair;
44
+ /**
45
+ * Legacy login callback: the web posts the issued agent key back to this port.
46
+ * Kept unchanged for CLI/web combinations that predate the authorization-code
47
+ * path; `P3` is where it goes away.
48
+ */
49
+ export declare function startLocalAuthServer(options?: StartLocalAuthServerOptions): Promise<AuthServerResult<AuthResult>>;
50
+ /** Authorization-code login callback: only `{ code, state }` crosses this boundary. */
51
+ export declare function startAuthorizationCodeServer(options?: StartLocalAuthServerOptions): Promise<AuthServerResult<AuthorizationCodeResult>>;
23
52
  export {};
24
53
  //# sourceMappingURL=authServer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"authServer.d.ts","sourceRoot":"","sources":["../../src/utils/authServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAA6C,MAAM,WAAW,CAAC;AAejG,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAwJD,wBAAsB,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAmJ3G"}
1
+ {"version":3,"file":"authServer.d.ts","sourceRoot":"","sources":["../../src/utils/authServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAA6C,MAAM,WAAW,CAAC;AAejG,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,0FAA0F;AAC1F,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,QAAQ,CAGzC;AAkUD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAEjH;AAED,uFAAuF;AACvF,wBAAgB,4BAA4B,CAC1C,OAAO,CAAC,EAAE,2BAA2B,GACpC,OAAO,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,CAAC,CAKpD"}