log10x-mcp 1.6.7 → 1.8.1

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 (88) hide show
  1. package/build/index.js +118 -14
  2. package/build/index.js.map +1 -1
  3. package/build/lib/auth-api.d.ts +15 -10
  4. package/build/lib/auth-api.js +13 -9
  5. package/build/lib/auth-api.js.map +1 -1
  6. package/build/lib/auth0-device-flow.d.ts +92 -0
  7. package/build/lib/auth0-device-flow.js +143 -0
  8. package/build/lib/auth0-device-flow.js.map +1 -0
  9. package/build/lib/credentials.d.ts +0 -2
  10. package/build/lib/credentials.js +2 -2
  11. package/build/lib/credentials.js.map +1 -1
  12. package/build/lib/customer-metrics.d.ts +12 -0
  13. package/build/lib/customer-metrics.js +42 -0
  14. package/build/lib/customer-metrics.js.map +1 -1
  15. package/build/lib/environments.d.ts +58 -11
  16. package/build/lib/environments.js +82 -22
  17. package/build/lib/environments.js.map +1 -1
  18. package/build/lib/poc-report-renderer.js +54 -5
  19. package/build/lib/poc-report-renderer.js.map +1 -1
  20. package/build/lib/retriever-api.d.ts +49 -0
  21. package/build/lib/retriever-api.js +86 -0
  22. package/build/lib/retriever-api.js.map +1 -1
  23. package/build/lib/siem/deps/cloudwatch.js +6 -6
  24. package/build/lib/siem/deps/cloudwatch.js.map +1 -1
  25. package/build/lib/siem/deps/datadog.js +5 -5
  26. package/build/lib/siem/deps/datadog.js.map +1 -1
  27. package/build/lib/siem/deps/elasticsearch.js +5 -5
  28. package/build/lib/siem/deps/elasticsearch.js.map +1 -1
  29. package/build/lib/siem/deps/splunk.js +5 -5
  30. package/build/lib/siem/deps/splunk.js.map +1 -1
  31. package/build/lib/siem/deps/types.d.ts +38 -1
  32. package/build/lib/siem/deps/types.js +52 -1
  33. package/build/lib/siem/deps/types.js.map +1 -1
  34. package/build/lib/tool-errors.js +1 -1
  35. package/build/lib/tool-errors.js.map +1 -1
  36. package/build/tools/backfill-metric.js +7 -3
  37. package/build/tools/backfill-metric.js.map +1 -1
  38. package/build/tools/correlate-cross-pillar.js +32 -3
  39. package/build/tools/correlate-cross-pillar.js.map +1 -1
  40. package/build/tools/cost-drivers.js +15 -0
  41. package/build/tools/cost-drivers.js.map +1 -1
  42. package/build/tools/dependency-check.js +34 -5
  43. package/build/tools/dependency-check.js.map +1 -1
  44. package/build/tools/discover-join.js +6 -2
  45. package/build/tools/discover-join.js.map +1 -1
  46. package/build/tools/doctor.js +4 -4
  47. package/build/tools/doctor.js.map +1 -1
  48. package/build/tools/event-lookup.js +31 -5
  49. package/build/tools/event-lookup.js.map +1 -1
  50. package/build/tools/exclusion-filter.js +21 -1
  51. package/build/tools/exclusion-filter.js.map +1 -1
  52. package/build/tools/investigate.js +38 -5
  53. package/build/tools/investigate.js.map +1 -1
  54. package/build/tools/login-status.d.ts +1 -1
  55. package/build/tools/login-status.js +20 -4
  56. package/build/tools/login-status.js.map +1 -1
  57. package/build/tools/pattern-examples.d.ts +70 -0
  58. package/build/tools/pattern-examples.js +452 -0
  59. package/build/tools/pattern-examples.js.map +1 -0
  60. package/build/tools/resolve-batch.js +58 -2
  61. package/build/tools/resolve-batch.js.map +1 -1
  62. package/build/tools/retriever-query-status.d.ts +13 -8
  63. package/build/tools/retriever-query-status.js +78 -11
  64. package/build/tools/retriever-query-status.js.map +1 -1
  65. package/build/tools/retriever-query.d.ts +2 -0
  66. package/build/tools/retriever-query.js +74 -24
  67. package/build/tools/retriever-query.js.map +1 -1
  68. package/build/tools/retriever-series.d.ts +2 -0
  69. package/build/tools/retriever-series.js +49 -4
  70. package/build/tools/retriever-series.js.map +1 -1
  71. package/build/tools/rotate-api-key.js +16 -11
  72. package/build/tools/rotate-api-key.js.map +1 -1
  73. package/build/tools/signin.d.ts +41 -36
  74. package/build/tools/signin.js +203 -230
  75. package/build/tools/signin.js.map +1 -1
  76. package/build/tools/signout.d.ts +1 -1
  77. package/build/tools/signout.js +6 -8
  78. package/build/tools/signout.js.map +1 -1
  79. package/build/tools/trend.js +25 -2
  80. package/build/tools/trend.js.map +1 -1
  81. package/default-manifest.json +15 -5
  82. package/package.json +1 -1
  83. package/build/lib/gh-cli.d.ts +0 -6
  84. package/build/lib/gh-cli.js +0 -58
  85. package/build/lib/gh-cli.js.map +0 -1
  86. package/build/lib/github-device-flow.d.ts +0 -73
  87. package/build/lib/github-device-flow.js +0 -138
  88. package/build/lib/github-device-flow.js.map +0 -1
package/build/index.js CHANGED
@@ -9,7 +9,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
9
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
10
10
  import { recordStart, withTelemetry, setEnvsProvider } from './lib/self-telemetry.js';
11
11
  import { loadManifest, applyManifestToTools, readClientVersion, getPackageDefaultTool, } from './lib/manifest.js';
12
- import { loadEnvironments, resolveEnv, EnvironmentValidationError } from './lib/environments.js';
12
+ import { loadEnvironments, resolveEnv, revalidateEnvironments, EnvironmentValidationError } from './lib/environments.js';
13
13
  import { fetchAnalyzerCost } from './lib/api.js';
14
14
  import { costDriversSchema, executeCostDrivers } from './tools/cost-drivers.js';
15
15
  import { eventLookupSchema, executeEventLookup } from './tools/event-lookup.js';
@@ -17,6 +17,7 @@ import { savingsSchema, executeSavings } from './tools/savings.js';
17
17
  import { trendSchema, executeTrend } from './tools/trend.js';
18
18
  import { servicesSchema, executeServices } from './tools/services.js';
19
19
  import { exclusionFilterSchema, executeExclusionFilter } from './tools/exclusion-filter.js';
20
+ import { patternExamplesSchema, executePatternExamples } from './tools/pattern-examples.js';
20
21
  import { dependencyCheckSchema, executeDependencyCheck } from './tools/dependency-check.js';
21
22
  import { discoverLabelsSchema, executeDiscoverLabels } from './tools/discover-labels.js';
22
23
  import { topPatternsSchema, executeTopPatterns } from './tools/top-patterns.js';
@@ -44,7 +45,7 @@ import { adviseRetrieverSchema, executeAdviseRetriever } from './tools/advise-re
44
45
  import { adviseInstallSchema, executeAdviseInstall } from './tools/advise-install.js';
45
46
  import { adviseCompactSchema, executeAdviseCompact } from './tools/advise-compact.js';
46
47
  import { loginStatusSchema, executeLoginStatus } from './tools/login-status.js';
47
- import { signinSchema, executeSignin } from './tools/signin.js';
48
+ import { signinStartSchema, signinCompleteSchema, executeSigninStart, executeSigninComplete, } from './tools/signin.js';
48
49
  import { signoutSchema, executeSignout } from './tools/signout.js';
49
50
  import { updateSettingsSchema, executeUpdateSettings } from './tools/update-settings.js';
50
51
  import { createEnvSchema, executeCreateEnv } from './tools/create-env.js';
@@ -84,14 +85,14 @@ const COST_REFRESH_MS = 3_600_000; // 1 hour
84
85
  * the raw error message is logged at debug level before `describeToolError`
85
86
  * rewrites it, so ops can see the original text when hunting root causes.
86
87
  */
87
- function wrap(toolName, fn) {
88
+ async function wrap(toolName, fn) {
88
89
  const started = Date.now();
89
- return fn()
90
- .then((text) => {
90
+ try {
91
+ const text = await runWithDemoFallbackRetry(toolName, fn);
91
92
  log.info(`tool.${toolName}.ok`, { ms: Date.now() - started });
92
93
  return { content: [{ type: 'text', text: applyDemoBanner(text) }] };
93
- })
94
- .catch((e) => {
94
+ }
95
+ catch (e) {
95
96
  const raw = e instanceof Error ? e.message : String(e);
96
97
  log.debug(`tool.${toolName}.raw_err`, { msg: raw });
97
98
  log.warn(`tool.${toolName}.err`, { ms: Date.now() - started, msg: raw });
@@ -99,7 +100,63 @@ function wrap(toolName, fn) {
99
100
  content: [{ type: 'text', text: applyDemoBanner(describeToolError(toolName, e)) }],
100
101
  isError: true,
101
102
  };
102
- });
103
+ }
104
+ }
105
+ /**
106
+ * Run the tool's inner function. If it throws an auth error (401/403)
107
+ * AND the MCP is currently in demo-fallback mode, revalidate
108
+ * credentials once and retry the tool.
109
+ *
110
+ * Why: every account-scoped EnvConfig bakes the apiKey at boot
111
+ * (`environments.ts:loadFromApi`). If the user's key was invalid at
112
+ * boot (typo, transient backend issue, rotated key whose authorizer
113
+ * cache had not yet cleared), the MCP falls back to the public demo
114
+ * key and every account-scoped tool keeps using that demo key for the
115
+ * lifetime of the process, even after the real key starts working.
116
+ * Restarting the MCP host was the only recovery path until now.
117
+ *
118
+ * This wrapper makes recovery automatic: any account-scoped tool that
119
+ * gets 401/403 while in demo-fallback triggers a single revalidation
120
+ * + retry, transparently un-sticking the user. Pure demo mode (no key
121
+ * configured at all) does NOT trigger this; only the fallback case
122
+ * where the user intended to use a real account.
123
+ *
124
+ * Tools that don't hit the gateway (resolve_batch, extract_templates)
125
+ * never produce 401/403 errors so this is a no-op for them.
126
+ */
127
+ async function runWithDemoFallbackRetry(toolName, fn) {
128
+ try {
129
+ return await fn();
130
+ }
131
+ catch (e) {
132
+ if (!isAuthRecoverableError(e))
133
+ throw e;
134
+ if (!envs || !envs.isDemoMode || !envs.demoFallbackReason)
135
+ throw e;
136
+ log.info(`tool.${toolName}.auth_retry.attempt`, {
137
+ reason: envs.demoFallbackReason.slice(0, 200),
138
+ });
139
+ try {
140
+ await revalidateEnvironments(envs);
141
+ }
142
+ catch (reloadErr) {
143
+ log.warn(`tool.${toolName}.auth_retry.reload_failed`, {
144
+ msg: reloadErr.message,
145
+ });
146
+ throw e;
147
+ }
148
+ if (envs.isDemoMode) {
149
+ // Reload still ended in demo. Original error stands.
150
+ log.info(`tool.${toolName}.auth_retry.still_demo`);
151
+ throw e;
152
+ }
153
+ log.info(`tool.${toolName}.auth_retry.recovered`);
154
+ return await fn();
155
+ }
156
+ }
157
+ function isAuthRecoverableError(e) {
158
+ const msg = e instanceof Error ? e.message : String(e);
159
+ return /HTTP 401|HTTP 403|forbidden|unauthorized/i.test(msg);
103
160
  }
104
161
  /**
105
162
  * Prepend a banner to the tool result when the MCP is in
@@ -143,6 +200,15 @@ async function getAnalyzerCost(env, override) {
143
200
  }
144
201
  // ── Server ──
145
202
  const server = new McpServer({ name: 'log10x', version: readClientVersion() }, {
203
+ // Declare the `logging` capability so calls to extra.sendNotification
204
+ // ('notifications/message', ...) inside tool handlers don't throw
205
+ // synchronously from the SDK's assertNotificationCapability guard.
206
+ // We don't currently rely on mid-tool push for the sign-in flow
207
+ // (the two-tool log10x_signin_start / log10x_signin_complete split
208
+ // sidesteps Cursor's lack of mid-tool rendering), but declaring the
209
+ // capability is correct hygiene and unblocks any other tool that
210
+ // wants to use the channel on hosts that do support it.
211
+ capabilities: { logging: {} },
146
212
  instructions: `Log10x is the observability memory for the user's logs. Every log line the pipeline
147
213
  has ever seen is fingerprinted into a stable pattern identity (field-set) that stays constant across
148
214
  deploys, restarts, pod names, timestamps, and request IDs. That identity is the key to a Prometheus
@@ -210,7 +276,12 @@ Root-cause across services (the investigate wedge):
210
276
 
211
277
  Account / setup / discovery:
212
278
  - "am I logged in" / "login status" / "what envs do I have" → log10x_login_status
213
- - "log me in" / "sign me up" / "create a Log10x account" → log10x_signin
279
+ - "log me in" / "sign me up" / "create a Log10x account" → log10x_signin_start, then log10x_signin_complete
280
+ (Two-tool chain: log10x_signin_start opens the browser and returns the device_code + user_code,
281
+ the model surfaces the code so the user can verify it matches the Auth0 page, then the model
282
+ automatically calls log10x_signin_complete with that device_code to finish the flow. The user
283
+ does NOT need to ask for the second step explicitly. For pasted-key sign-in instead of browser,
284
+ skip log10x_signin_start and call log10x_signin_complete directly with { api_key: "<key>" }.)
214
285
  - "sign out" / "log out" / "remove my credentials" → log10x_signout
215
286
  - "rotate my API key" / "I think my key was leaked" → log10x_rotate_api_key
216
287
  - "health check" / "is the MCP set up right" / "diagnose" → log10x_doctor
@@ -325,6 +396,17 @@ registerLog10xTool('log10x_event_lookup', eventLookupSchema, (args) => wrap('log
325
396
  const cost = await getAnalyzerCost(env, args.analyzerCost);
326
397
  return executeEventLookup({ ...args, analyzerCost: cost }, env);
327
398
  }));
399
+ // ── Tool: log10x_pattern_examples ──
400
+ //
401
+ // Orchestration primitive for fetching live SIEM events for one pattern
402
+ // with template-extracted slot values. Designed for `log10x_investigate`
403
+ // (or another orchestrator) to call autonomously when the chain needs
404
+ // event evidence. See memory/project_pattern_examples_design.md for the
405
+ // full design contract — read before changing this tool's shape.
406
+ registerLog10xTool('log10x_pattern_examples', patternExamplesSchema, (args) => wrap('log10x_pattern_examples', async () => {
407
+ const env = resolveEnv(getEnvs(), args.environment);
408
+ return executePatternExamples(args, env);
409
+ }));
328
410
  // ── Tool: log10x_savings ──
329
411
  registerLog10xTool('log10x_savings', savingsSchema, (args) => wrap('log10x_savings', async () => {
330
412
  const env = resolveEnv(getEnvs(), args.environment);
@@ -405,8 +487,28 @@ registerLog10xTool('log10x_backfill_metric', backfillMetricSchema, (args) => wra
405
487
  registerLog10xTool('log10x_doctor', doctorSchema, (args) => wrap('log10x_doctor', async () => executeDoctor(args)));
406
488
  // ── Tool: log10x_login_status ──
407
489
  registerLog10xTool('log10x_login_status', loginStatusSchema, () => wrap('log10x_login_status', async () => executeLoginStatus({}, getEnvs())));
408
- // ── Tool: log10x_signin ──
409
- registerLog10xTool('log10x_signin', signinSchema, (args) => wrap('log10x_signin', async () => executeSignin(args, getEnvs())));
490
+ // ── Tool: log10x_signin_start ──
491
+ //
492
+ // Step 1 of the sign-in chain: requests an Auth0 device code, opens the
493
+ // user's browser, and returns the user_code + device_code immediately.
494
+ // Returns synchronously (no polling) because Cursor and most other MCP
495
+ // hosts do NOT render mid-tool `notifications/message` push, so the
496
+ // only reliable way to surface the user_code to a human is to put it
497
+ // in the tool's response markdown. The model then calls
498
+ // `log10x_signin_complete` with the device_code to finish the flow.
499
+ registerLog10xTool('log10x_signin_start', signinStartSchema, () => wrap('log10x_signin_start', async () => executeSigninStart()));
500
+ // ── Tool: log10x_signin_complete ──
501
+ //
502
+ // Step 2 of the sign-in chain. Two paths via mutually-exclusive args:
503
+ // - { device_code }: finishes a browser flow started by `_start`.
504
+ // Polls Auth0 until the user confirms in the browser, then
505
+ // exchanges the access token for a Log10x API key.
506
+ // - { api_key }: pasted-key path. Validates the key against
507
+ // /api/v1/user and persists. No browser, no IdP.
508
+ // Either path writes the resolved API key to ~/.log10x/credentials,
509
+ // hot-reloads envs in-process, and clears any overriding
510
+ // LOG10X_API_KEY env var so the new key wins the priority chain.
511
+ registerLog10xTool('log10x_signin_complete', signinCompleteSchema, (args) => wrap('log10x_signin_complete', async () => executeSigninComplete(args, getEnvs())));
410
512
  // ── Tool: log10x_signout ──
411
513
  registerLog10xTool('log10x_signout', signoutSchema, () => wrap('log10x_signout', async () => executeSignout({}, getEnvs())));
412
514
  // ── Tool: log10x_update_settings ──
@@ -510,6 +612,7 @@ server.resource('pipeline-status', 'log10x://status', { description: 'Current pi
510
612
  const REGISTERED_TOOLS = [
511
613
  { name: 'log10x_cost_drivers', intent: 'Why did log costs spike this week — dollar-ranked patterns with week-over-week deltas' },
512
614
  { name: 'log10x_event_lookup', intent: 'What is this single log line — resolve to stable identity + cost + AI classification' },
615
+ { name: 'log10x_pattern_examples', intent: 'Recent live events for a pattern from the log analyzer with template-parsed slot values — bounded to 24h, for older use retriever_query' },
513
616
  { name: 'log10x_savings', intent: 'Pipeline ROI — how much receiver / optimizer / retriever are saving in dollars' },
514
617
  { name: 'log10x_pattern_trend', intent: 'Time series for a pattern — volume + cost history, spike detection, sparkline' },
515
618
  { name: 'log10x_services', intent: 'List all monitored services ranked by cost' },
@@ -523,12 +626,13 @@ const REGISTERED_TOOLS = [
523
626
  { name: 'log10x_resolve_batch', intent: 'Pasted-batch triage — per-pattern variable concentration + next actions' },
524
627
  { name: 'log10x_extract_templates', intent: 'Extract structural templates from a log corpus via local tenx — optional min/required/forbidden-merge assertions' },
525
628
  { name: 'log10x_retriever_query', intent: 'Direct archive retrieval by templateHash with JS filter expressions' },
526
- { name: 'log10x_retriever_query_status', intent: 'Poll CloudWatch diagnostics for an existing retriever query (no S3 results re-fetch)' },
629
+ { name: 'log10x_retriever_query_status', intent: 'Poll CloudWatch diagnostics for an existing retriever query and optionally recover stranded results from S3 via fetch_results=true (avoids resubmit + new queryId)' },
527
630
  { name: 'log10x_retriever_series', intent: 'Fidelity-aware time series from the S3 archive — auto-selects exact aggregation vs sampled fan-out' },
528
631
  { name: 'log10x_backfill_metric', intent: 'Create a new Datadog / Prometheus metric backfilled from Retriever archive' },
529
632
  { name: 'log10x_doctor', intent: 'Startup health check — env config, gateway, tier, freshness, Retriever, paste endpoint, cross-pillar enrichment floor' },
530
633
  { name: 'log10x_login_status', intent: 'Report credential / env state — identity, env list with permissions, demo-mode upgrade guide if applicable' },
531
- { name: 'log10x_signin', intent: 'GitHub device-flow signup/signin opens browser, exchanges OAuth token for a Log10x API key, hot-reloads envs (no MCP-host restart needed)' },
634
+ { name: 'log10x_signin_start', intent: 'Step 1 of Auth0 Device Flow signup/signin: opens browser, returns the user_code + device_code so the model can surface them and chain to log10x_signin_complete' },
635
+ { name: 'log10x_signin_complete', intent: 'Step 2 of sign-in: pass back the device_code from log10x_signin_start to finish the browser flow, OR pass api_key directly for pasted-key sign-in (no browser). Hot-reloads envs (no MCP-host restart needed)' },
532
636
  { name: 'log10x_signout', intent: 'Wipe ~/.log10x/credentials and fall back to demo mode (or lower-priority config); does not revoke the key on the backend' },
533
637
  { name: 'log10x_update_settings', intent: 'Update user metadata (analyzer cost, AI provider, etc.) via POST /api/v1/user' },
534
638
  { name: 'log10x_create_env', intent: 'Create a new Log10x environment on the account; pairs with log10x_advise_install for end-to-end provision-and-install' },
@@ -594,7 +698,7 @@ async function handleCliFlags() {
594
698
  ' --help, -h Print this help and exit',
595
699
  '',
596
700
  'Environment:',
597
- ' LOG10X_API_KEY API key from console.log10x.com (or run `log10x_signin` to mint one via GitHub)',
701
+ ' LOG10X_API_KEY API key from console.log10x.com (or run `log10x_signin_start` then `log10x_signin_complete` to mint one via Auth0 Device Flow)',
598
702
  ' LOG10X_API_BASE Override Prometheus gateway URL',
599
703
  ' LOG10X_REGULATOR_RETRIEVER_URL Retriever query endpoint (optional)',
600
704
  ' LOG10X_PASTE_URL Override Log10x paste endpoint (optional)',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,24 @@
3
3
  * because these are credential-exchange calls that don't take a
4
4
  * `LOG10X_API_KEY` (the goal IS to get one).
5
5
  */
6
- export interface GithubSigninResponse {
6
+ export interface SigninResponse {
7
7
  /** Long-lived Log10x API key. Persist this. */
8
8
  api_key: string;
9
- /** User's email used as their human-readable identity. */
9
+ /** User's email. The backend reads it from the Auth0 user record's
10
+ * email attribute. May be empty if Auth0 didn't capture one
11
+ * (e.g. a misconfigured social connection); the MCP should treat
12
+ * empty as "no email" and continue. */
10
13
  username: string;
11
- /** GitHub login (e.g. "talweiss"). */
12
- github_login: string;
13
- /** True for fresh signups, false when an existing account was matched. */
14
- is_new_account: boolean;
15
14
  }
16
15
  /**
17
- * POST /api/v1/auth/github with a verified GitHub access token. The BE
18
- * verifies the token against api.github.com, looks up or creates the
19
- * matching Log10x account, and returns an API key.
16
+ * POST /api/v1/auth/token with an Auth0 access_token (issued via the
17
+ * Device Authorization Flow against `auth.log10x.com`). The BE calls
18
+ * Auth0's `/userinfo` to resolve the `sub`, then looks up the user
19
+ * record via the Management API and returns the long-lived api_key
20
+ * stored in `app_metadata.api_key`.
21
+ *
22
+ * The Auth0 access_token is single-use from the MCP's perspective:
23
+ * we don't keep it after this exchange. The api_key is what
24
+ * authenticates every subsequent log10x call.
20
25
  */
21
- export declare function exchangeGithubTokenForApiKey(githubToken: string): Promise<GithubSigninResponse>;
26
+ export declare function exchangeAuth0TokenForApiKey(auth0AccessToken: string): Promise<SigninResponse>;
@@ -8,20 +8,26 @@ function getBase() {
8
8
  return process.env.LOG10X_API_BASE || DEFAULT_BASE;
9
9
  }
10
10
  /**
11
- * POST /api/v1/auth/github with a verified GitHub access token. The BE
12
- * verifies the token against api.github.com, looks up or creates the
13
- * matching Log10x account, and returns an API key.
11
+ * POST /api/v1/auth/token with an Auth0 access_token (issued via the
12
+ * Device Authorization Flow against `auth.log10x.com`). The BE calls
13
+ * Auth0's `/userinfo` to resolve the `sub`, then looks up the user
14
+ * record via the Management API and returns the long-lived api_key
15
+ * stored in `app_metadata.api_key`.
16
+ *
17
+ * The Auth0 access_token is single-use from the MCP's perspective:
18
+ * we don't keep it after this exchange. The api_key is what
19
+ * authenticates every subsequent log10x call.
14
20
  */
15
- export async function exchangeGithubTokenForApiKey(githubToken) {
16
- const url = new URL('/api/v1/auth/github', getBase()).toString();
21
+ export async function exchangeAuth0TokenForApiKey(auth0AccessToken) {
22
+ const url = new URL('/api/v1/auth/token', getBase()).toString();
17
23
  const res = await fetch(url, {
18
24
  method: 'POST',
19
25
  headers: { 'Content-Type': 'application/json' },
20
- body: JSON.stringify({ github_token: githubToken }),
26
+ body: JSON.stringify({ access_token: auth0AccessToken }),
21
27
  });
22
28
  if (!res.ok) {
23
29
  const body = await res.text().catch(() => '');
24
- throw new Error(`Log10x BE rejected GitHub token: HTTP ${res.status}: ${body.slice(0, 300)}`);
30
+ throw new Error(`Log10x BE rejected the Auth0 access token: HTTP ${res.status}: ${body.slice(0, 300)}`);
25
31
  }
26
32
  const json = (await res.json());
27
33
  if (!json.api_key) {
@@ -30,8 +36,6 @@ export async function exchangeGithubTokenForApiKey(githubToken) {
30
36
  return {
31
37
  api_key: json.api_key,
32
38
  username: json.username || '',
33
- github_login: json.github_login || '',
34
- is_new_account: !!json.is_new_account,
35
39
  };
36
40
  }
37
41
  //# sourceMappingURL=auth-api.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-api.js","sourceRoot":"","sources":["../../src/lib/auth-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAErD,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,YAAY,CAAC;AACrD,CAAC;AAaD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,WAAmB;IACpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;KACpD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAkC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;QAC7B,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,EAAE;QACrC,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc;KACtC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"auth-api.js","sourceRoot":"","sources":["../../src/lib/auth-api.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,YAAY,GAAG,+BAA+B,CAAC;AAErD,SAAS,OAAO;IACd,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,YAAY,CAAC;AACrD,CAAC;AAYD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,gBAAwB;IACxE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;KACzD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,mDAAmD,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA4B,CAAC;IAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;KAC9B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Auth0 OAuth 2.0 Device Authorization Flow client (RFC 8628).
3
+ *
4
+ * Used by `log10x_signin_start` (step 1: requestDeviceCode) and
5
+ * `log10x_signin_complete` (step 2: pollForAccessToken). The flow:
6
+ *
7
+ * 1. POST `{AUTH0_DOMAIN}/oauth/device/code` with our public client_id
8
+ * → get back `device_code`, `user_code`, `verification_uri`,
9
+ * `verification_uri_complete`, `interval`, `expires_in`.
10
+ * 2. The MCP shows the user the verification URL (Auth0 already
11
+ * embeds the user_code in `verification_uri_complete`) and
12
+ * launches their browser to it.
13
+ * 3. The user lands on Auth0's universal login page where they pick
14
+ * GitHub, Google, or any other social/db connection enabled on
15
+ * our `mcp_backend` Auth0 client. They complete the chosen IdP's
16
+ * OAuth, Auth0 mints a session, then prompts them to confirm the
17
+ * device authorization.
18
+ * 4. Poll `{AUTH0_DOMAIN}/oauth/token` every `interval` seconds with
19
+ * `grant_type=urn:ietf:params:oauth:grant-type:device_code`. Auth0
20
+ * responds with `authorization_pending` (HTTP 403) until the user
21
+ * confirms, then 200 + `access_token`/`id_token`/`refresh_token`.
22
+ *
23
+ * The Auth0 client must be of `app_type=native` and have the device_code
24
+ * grant enabled. Client_id is public per RFC 8628 (appears in the
25
+ * verification URL the user sees in their browser).
26
+ *
27
+ * References:
28
+ * - https://auth0.com/docs/get-started/authentication-and-authorization-flow/device-authorization-flow
29
+ * - https://datatracker.ietf.org/doc/html/rfc8628
30
+ */
31
+ /** Auth0 custom domain. Override via env for staging/forks. */
32
+ export declare const LOG10X_AUTH0_DOMAIN: string;
33
+ /** Auth0 native client id for the MCP. Public by design (appears in
34
+ * the user's verification URL during Device Flow). Override via env to
35
+ * point an MCP build at a different tenant (e.g. staging). */
36
+ export declare const LOG10X_AUTH0_CLIENT_ID: string;
37
+ /** Scopes for the device-code request.
38
+ * - `openid` is required for Auth0 to issue an ID token at all.
39
+ * - `profile` and `email` populate the standard OIDC claims so the
40
+ * backend's /userinfo lookup returns a real email + name.
41
+ * - `offline_access` requests a refresh_token so the user could
42
+ * re-issue access tokens later without going through Device Flow
43
+ * again. The MCP itself doesn't currently use it (we exchange the
44
+ * access_token for a long-lived api_key and then forget the Auth0
45
+ * session), but it's cheap to ask for and lets future flows refresh
46
+ * without a fresh login. */
47
+ export declare const REQUESTED_SCOPES = "openid profile email offline_access";
48
+ export interface DeviceCodeResponse {
49
+ device_code: string;
50
+ user_code: string;
51
+ verification_uri: string;
52
+ /** Auth0 returns this with the user_code already embedded. Prefer
53
+ * it over manually building one. */
54
+ verification_uri_complete: string;
55
+ /** Seconds the device_code is valid; usually 900 (15 min). */
56
+ expires_in: number;
57
+ /** Minimum poll interval in seconds; usually 5. */
58
+ interval: number;
59
+ }
60
+ export interface AccessTokenResponse {
61
+ access_token: string;
62
+ id_token?: string;
63
+ refresh_token?: string;
64
+ scope?: string;
65
+ expires_in?: number;
66
+ token_type: string;
67
+ }
68
+ /**
69
+ * Step 1: ask Auth0 for a device + user code.
70
+ */
71
+ export declare function requestDeviceCode(clientId?: string, scope?: string, domain?: string): Promise<DeviceCodeResponse>;
72
+ export interface PollOptions {
73
+ deviceCode: string;
74
+ /** Seconds between polls (from `requestDeviceCode`). */
75
+ interval: number;
76
+ /** Total polling deadline in seconds. */
77
+ expiresIn: number;
78
+ clientId?: string;
79
+ domain?: string;
80
+ /** Optional callback to log/render progress on each poll. */
81
+ onTick?: (elapsedSec: number) => void;
82
+ }
83
+ /**
84
+ * Step 2/3: poll until Auth0 gives us an access token, the user
85
+ * declines, or the device_code expires. Honors the `slow_down`
86
+ * back-pressure signal by adding 5s to the interval each time.
87
+ *
88
+ * Auth0 returns these errors as HTTP 403 with a JSON body of
89
+ * `{error: ..., error_description: ...}`. We don't surface the 403
90
+ * itself as an error; we read the body and decide based on `error`.
91
+ */
92
+ export declare function pollForAccessToken(opts: PollOptions): Promise<AccessTokenResponse>;