@neetru/cli 2.12.23 → 2.13.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.
@@ -3,6 +3,7 @@ import OpenAI from 'openai';
3
3
  import { config } from '../config.js';
4
4
  import { NEETRU_SYSTEM_CONTEXT, loadProjectContext } from './context.js';
5
5
  import { discoveredKeys } from './auth-discovery.js';
6
+ import { getActiveTokenSync } from '../token-resolver.js';
6
7
  import { log } from '../../utils/logger.js';
7
8
  // ── Endpoints + modelos default dos providers OpenAI-compatible ──────────────
8
9
  // Groq e NVIDIA NIM expõem APIs OpenAI-compatible → reusamos o SDK `openai`
@@ -22,6 +23,15 @@ const NVIDIA_DEFAULT_MODEL = 'meta/llama-3.3-70b-instruct';
22
23
  const OPENAI_DEFAULT_MODEL = 'gpt-4.1';
23
24
  const GEMINI_DEFAULT_MODEL = 'gemini-2.5-flash';
24
25
  const CLAUDE_DEFAULT_MODEL = 'claude-sonnet-4-6';
26
+ // ── AI Gateway do Core (2026-07) ─────────────────────────────────────────────
27
+ // `neetru ai --debug:model gateway` — usa o token de sessão `nrt_...` gravado
28
+ // por `neetru login` (RFC 8628 device code) em vez de uma chave BYOK própria.
29
+ // Endpoint: POST {neetruApiUrl}/api/cli/v1/ai/chat (Bearer nrt_... — mesmo
30
+ // controle de acesso dos demais `/api/cli/v1/*`). productId/tenantId são
31
+ // fixos no lado do Core (`neetru-cli` / `neetru-internal`) — não mandamos.
32
+ // Override de modelo: `neetru config set gatewayModel <id>`.
33
+ const AI_GATEWAY_CHAT_PATH = '/api/cli/v1/ai/chat';
34
+ const GATEWAY_DEFAULT_MODEL = 'claude-sonnet-4-6';
25
35
  // ── Timeout de stream (ms) ───────────────────────────────────────────────────
26
36
  // Tempo máximo pra receber o 1º byte (ou completar) um stream de qualquer
27
37
  // provider. Configurável via env NEETRU_STREAM_TIMEOUT_MS (ex: 120000 pra 2min).
@@ -128,6 +138,9 @@ export function routeModel(input, preferred) {
128
138
  gemini: !!resolveKey('gemini'),
129
139
  groq: !!resolveKey('groq'),
130
140
  nvidia: !!resolveKey('nvidia'),
141
+ // Gateway não é BYOK — "disponível" = tem sessão de `neetru login` válida
142
+ // (mesmo resolver usado por todo o resto do CLI), não uma chave de pool.
143
+ gateway: !!getActiveTokenSync(),
131
144
  };
132
145
  if (preferred !== 'auto') {
133
146
  if (available[preferred])
@@ -354,6 +367,48 @@ function streamNvidia(messages, systemExtra, onChunk) {
354
367
  onChunk,
355
368
  });
356
369
  }
370
+ /**
371
+ * Consome um `ReadableStream` de bytes no formato SSE (`data: <payload>\n\n`,
372
+ * uma ou mais linhas por chunk de rede) e chama `onLine(payload)` pra cada
373
+ * linha `data: ` encontrada — `payload` é a string crua (sem parse; o caller
374
+ * decide o shape do JSON e trata `[DONE]`/keep-alives à sua maneira).
375
+ *
376
+ * Extraído do parsing manual que `streamGemini` já fazia (buffer + split por
377
+ * `\n` + regex `^data:\s*(.*)$`) pra ser reusado por `streamGateway` (que
378
+ * consome SSE OpenAI-compatible do AI Gateway do Core) sem duplicar a lógica
379
+ * de buffering/decode. Cleanup do reader é feito aqui (`reader.cancel()` em
380
+ * finally) — o caller só precisa gerenciar seu próprio timeout/AbortController.
381
+ */
382
+ async function readSseLines(body, onLine) {
383
+ const reader = body.getReader();
384
+ const dec = new TextDecoder();
385
+ let buf = '';
386
+ try {
387
+ while (true) {
388
+ const { value, done } = await reader.read();
389
+ if (done)
390
+ break;
391
+ buf += dec.decode(value, { stream: true });
392
+ const lines = buf.split('\n');
393
+ buf = lines.pop() ?? '';
394
+ for (const line of lines) {
395
+ const matchData = line.match(/^data:\s*(.*)$/);
396
+ if (!matchData)
397
+ continue;
398
+ onLine(matchData[1]);
399
+ }
400
+ }
401
+ }
402
+ finally {
403
+ // Libera o reader; idempotente — safe em erro, completion ou abort.
404
+ try {
405
+ await reader.cancel();
406
+ }
407
+ catch {
408
+ // reader já fechado, ignora.
409
+ }
410
+ }
411
+ }
357
412
  /**
358
413
  * Stream via Gemini REST API `streamGenerateContent`.
359
414
  *
@@ -415,55 +470,33 @@ async function streamGemini(messages, systemExtra, onChunk, signal) {
415
470
  }
416
471
  if (!resp.body)
417
472
  throw new Error('Gemini: resposta sem body');
418
- const reader = resp.body.getReader();
419
- const dec = new TextDecoder();
420
- let buf = '';
421
473
  let full = '';
422
474
  let usage;
423
475
  try {
424
- while (true) {
425
- const { value, done } = await reader.read();
426
- if (done)
427
- break;
428
- buf += dec.decode(value, { stream: true });
429
- // SSE: linhas começando com "data: "
430
- const lines = buf.split('\n');
431
- buf = lines.pop() ?? '';
432
- for (const line of lines) {
433
- const matchData = line.match(/^data:\s*(.*)$/);
434
- if (!matchData)
435
- continue;
436
- try {
437
- const obj = JSON.parse(matchData[1]);
438
- const txt = obj?.candidates?.[0]?.content?.parts?.[0]?.text;
439
- if (typeof txt === 'string' && txt) {
440
- onChunk(txt);
441
- full += txt;
442
- }
443
- // usageMetadata aparece no último objeto da stream.
444
- if (obj?.usageMetadata) {
445
- const u = obj.usageMetadata;
446
- usage = {
447
- inputTokens: u.promptTokenCount ?? 0,
448
- outputTokens: u.candidatesTokenCount ?? 0,
449
- totalTokens: u.totalTokenCount ?? 0,
450
- };
451
- }
476
+ await readSseLines(resp.body, (payload) => {
477
+ try {
478
+ const obj = JSON.parse(payload);
479
+ const txt = obj?.candidates?.[0]?.content?.parts?.[0]?.text;
480
+ if (typeof txt === 'string' && txt) {
481
+ onChunk(txt);
482
+ full += txt;
452
483
  }
453
- catch {
454
- // ignora linha de keep-alive
484
+ // usageMetadata aparece no último objeto da stream.
485
+ if (obj?.usageMetadata) {
486
+ const u = obj.usageMetadata;
487
+ usage = {
488
+ inputTokens: u.promptTokenCount ?? 0,
489
+ outputTokens: u.candidatesTokenCount ?? 0,
490
+ totalTokens: u.totalTokenCount ?? 0,
491
+ };
455
492
  }
456
493
  }
457
- }
494
+ catch {
495
+ // ignora linha de keep-alive
496
+ }
497
+ });
458
498
  }
459
499
  finally {
460
- // Libera o reader; idempotente — safe em erro, completion ou abort.
461
- try {
462
- await reader.cancel();
463
- }
464
- catch {
465
- // reader já fechado, ignora.
466
- }
467
500
  clearTimeout(timer);
468
501
  }
469
502
  recordUsage(usage);
@@ -487,6 +520,125 @@ async function streamGemini(messages, systemExtra, onChunk, signal) {
487
520
  const detail = lastErr?.message ?? String(lastErr);
488
521
  throw new Error(`Gemini: todas as ${keys.length} chave(s) do pool falharam (auth/rate-limit). Último erro: ${detail}`);
489
522
  }
523
+ /**
524
+ * Streamer do AI Gateway do Core (`POST /api/cli/v1/ai/chat`).
525
+ *
526
+ * Diferente dos demais streamers: NÃO é BYOK (sem chave própria pra rotacionar).
527
+ * "Disponibilidade" é binária — tem sessão válida (`neetru login`) ou não; o
528
+ * token vem de `getActiveTokenSync()` (canônico `~/.config/neetru-cli/auth.json`,
529
+ * fallback Conf legacy — mesmo resolver usado por todo o resto do CLI). Erros de
530
+ * auth (401/403) NÃO tentam de novo — orientam direto pra `neetru login`.
531
+ *
532
+ * Contrato do endpoint: body `{ model, messages, stream:true, maxTokens,
533
+ * temperature? }`; productId/tenantId são fixos no lado do Core (não mandamos).
534
+ * Resposta SSE OpenAI-compatible: `data: {"choices":[{"delta":{"content":"…"}}]}`
535
+ * terminando em `data: [DONE]`. Usage (quando presente) vem em `chunk.usage`
536
+ * (só quando o provider por trás do gateway suporta `stream_options.include_usage`
537
+ * — ex: OpenAI/Groq/NVIDIA; modelos roteados pro provider Anthropic não expõem
538
+ * usage por chunk). Se o stream nunca trouxer usage, `recordUsage` simplesmente
539
+ * não é chamado — não inventamos número.
540
+ */
541
+ async function streamGateway(messages, systemExtra, onChunk, signal) {
542
+ const token = getActiveTokenSync();
543
+ if (!token) {
544
+ throw new Error('Sessão Neetru ausente ou expirada. Rode `neetru login`.');
545
+ }
546
+ const baseUrl = (config.get('neetruApiUrl') ?? 'https://api.neetru.com').replace(/\/+$/, '');
547
+ const url = `${baseUrl}${AI_GATEWAY_CHAT_PATH}`;
548
+ const model = config.get('gatewayModel') ?? GATEWAY_DEFAULT_MODEL;
549
+ const systemContent = [NEETRU_SYSTEM_CONTEXT, systemExtra].filter(Boolean).join('\n\n');
550
+ const payloadMessages = [
551
+ { role: 'system', content: systemContent },
552
+ ...messages.map((m) => ({ role: m.role, content: m.content })),
553
+ ];
554
+ const ctrl = new AbortController();
555
+ const timer = setTimeout(() => ctrl.abort(new Error(`Neetru AI Gateway stream timeout (${STREAM_TIMEOUT_MS}ms)`)), STREAM_TIMEOUT_MS);
556
+ // Encadeia signal externo com o local (mesmo padrão de streamGemini).
557
+ if (signal) {
558
+ if (signal.aborted)
559
+ ctrl.abort();
560
+ else
561
+ signal.addEventListener('abort', () => ctrl.abort(), { once: true });
562
+ }
563
+ try {
564
+ let resp;
565
+ try {
566
+ resp = await fetch(url, {
567
+ method: 'POST',
568
+ headers: {
569
+ 'content-type': 'application/json',
570
+ accept: 'text/event-stream',
571
+ authorization: `Bearer ${token}`,
572
+ },
573
+ body: JSON.stringify({
574
+ model,
575
+ messages: payloadMessages,
576
+ stream: true,
577
+ maxTokens: 8096,
578
+ }),
579
+ signal: ctrl.signal,
580
+ });
581
+ }
582
+ catch (err) {
583
+ // Timeout → propaga direto a mensagem já construída acima.
584
+ if (ctrl.signal.aborted)
585
+ throw err;
586
+ throw new Error(`Falha ao contactar o AI Gateway do Core (${url}): ${err?.message ?? String(err)}`);
587
+ }
588
+ if (!resp.ok) {
589
+ const bodyText = await resp.text().catch(() => '');
590
+ let detail = bodyText;
591
+ try {
592
+ const parsed = JSON.parse(bodyText);
593
+ if (parsed?.error?.message)
594
+ detail = parsed.error.message;
595
+ }
596
+ catch {
597
+ // corpo não-JSON — usa o texto cru (truncado abaixo).
598
+ }
599
+ if (resp.status === 401 || resp.status === 403) {
600
+ throw new Error('Sessão Neetru ausente ou expirada. Rode `neetru login`.');
601
+ }
602
+ throw new Error(`AI Gateway do Core retornou ${resp.status}: ${detail.slice(0, 300) || 'erro sem detalhe'}`);
603
+ }
604
+ if (!resp.body)
605
+ throw new Error('AI Gateway do Core: resposta sem body.');
606
+ let full = '';
607
+ let usage;
608
+ await readSseLines(resp.body, (payload) => {
609
+ if (payload === '[DONE]')
610
+ return;
611
+ let obj;
612
+ try {
613
+ obj = JSON.parse(payload);
614
+ }
615
+ catch {
616
+ return; // linha não-JSON (keep-alive) — ignora.
617
+ }
618
+ const text = obj?.choices?.[0]?.delta?.content;
619
+ if (typeof text === 'string' && text) {
620
+ onChunk(text);
621
+ full += text;
622
+ }
623
+ // Usage OpenAI-compatible (`stream_options.include_usage`) — só presente
624
+ // em modelos roteados por providers que suportam. Sobrescreve a cada
625
+ // chunk que a tiver (normalmente só o último).
626
+ if (obj?.usage) {
627
+ const u = obj.usage;
628
+ usage = {
629
+ inputTokens: u.prompt_tokens ?? 0,
630
+ outputTokens: u.completion_tokens ?? 0,
631
+ totalTokens: u.total_tokens ?? (u.prompt_tokens ?? 0) + (u.completion_tokens ?? 0),
632
+ };
633
+ }
634
+ });
635
+ recordUsage(usage);
636
+ return full;
637
+ }
638
+ finally {
639
+ clearTimeout(timer);
640
+ }
641
+ }
490
642
  /** Dispatcher de stream por modelo resolvido. */
491
643
  function streamFor(model, messages, systemExtra, onChunk) {
492
644
  switch (model) {
@@ -498,6 +650,8 @@ function streamFor(model, messages, systemExtra, onChunk) {
498
650
  return streamGroq(messages, systemExtra, onChunk);
499
651
  case 'nvidia':
500
652
  return streamNvidia(messages, systemExtra, onChunk);
653
+ case 'gateway':
654
+ return streamGateway(messages, systemExtra, onChunk);
501
655
  case 'claude':
502
656
  default:
503
657
  return streamClaude(messages, systemExtra, onChunk);
@@ -527,6 +681,8 @@ export async function chat(messages, onChunk, preferred) {
527
681
  * N tokens quando só 2-3 providers são necessários.
528
682
  */
529
683
  export async function chatParallel(prompt, systemExtra, opts) {
684
+ // `gateway` fica de fora do team mode: não é BYOK (sem `Provider`/pool de
685
+ // chaves equivalente) — por isso `Partial` em vez de `Record<ResolvedModel,…>`.
530
686
  const providerOf = {
531
687
  claude: 'anthropic',
532
688
  openai: 'openai',
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/lib/ai/orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../../src/lib/ai/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -10,9 +10,10 @@ interface NeetruConfig {
10
10
  claudeModel?: string;
11
11
  openaiModel?: string;
12
12
  geminiModel?: string;
13
+ gatewayModel?: string;
13
14
  neetruApiKey?: string;
14
15
  neetruApiUrl: string;
15
- defaultModel: 'claude' | 'openai' | 'gemini' | 'groq' | 'nvidia' | 'auto';
16
+ defaultModel: 'claude' | 'openai' | 'gemini' | 'groq' | 'nvidia' | 'gateway' | 'auto';
16
17
  projectName?: string;
17
18
  'telemetry.enabled'?: boolean;
18
19
  }
@@ -23,11 +23,12 @@ export const config = new Conf({
23
23
  claudeModel: { type: 'string' },
24
24
  openaiModel: { type: 'string' },
25
25
  geminiModel: { type: 'string' },
26
+ gatewayModel: { type: 'string' },
26
27
  neetruApiKey: { type: 'string' },
27
28
  neetruApiUrl: { type: 'string', default: 'https://api.neetru.com' },
28
29
  defaultModel: {
29
30
  type: 'string',
30
- enum: ['claude', 'openai', 'gemini', 'groq', 'nvidia', 'auto'],
31
+ enum: ['claude', 'openai', 'gemini', 'groq', 'nvidia', 'gateway', 'auto'],
31
32
  default: 'auto',
32
33
  },
33
34
  'telemetry.enabled': { type: 'boolean' },
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AA+BxB,MAAM,QAAQ,GAAiB;IAC7B,YAAY,EAAE,wBAAwB;IACtC,YAAY,EAAE,MAAM;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAe;IAC3C,WAAW,EAAE,YAAY;IACzB,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,cAAc,EAAE,KAAK;IACrB,QAAQ;IACR,MAAM,EAAE;QACN,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;QACnE,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC9D,OAAO,EAAE,MAAM;SAChB;QACD,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KACzC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,MAAM,CAAC,IAAwB;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAA0E;IACnG,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,iDAAiD,IAAI,UAAU,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAmCxB,MAAM,QAAQ,GAAiB;IAC7B,YAAY,EAAE,wBAAwB;IACtC,YAAY,EAAE,MAAM;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAe;IAC3C,WAAW,EAAE,YAAY;IACzB,4EAA4E;IAC5E,+EAA+E;IAC/E,8EAA8E;IAC9E,+EAA+E;IAC/E,2EAA2E;IAC3E,cAAc,EAAE,KAAK;IACrB,QAAQ;IACR,MAAM,EAAE;QACN,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAChC,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wBAAwB,EAAE;QACnE,YAAY,EAAE;YACZ,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;YACzE,OAAO,EAAE,MAAM;SAChB;QACD,mBAAmB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KACzC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,MAAM,CAAC,IAAwB;IAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAA0E;IACnG,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,UAAU,IAAI,iDAAiD,IAAI,UAAU,CAC9E,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neetru/cli",
3
- "version": "2.12.23",
3
+ "version": "2.13.1",
4
4
  "type": "module",
5
5
  "description": "Neetru Developer Kit — scaffold, AI assistant, publish, build e deploy de produtos SaaS Neetru via Core (VM-based agents)",
6
6
  "keywords": [
@@ -1,22 +1,22 @@
1
- /**
2
- * Template — `src/lib/neetru/auth/callback.ts` (gerado por `neetru add auth`).
3
- *
4
- * Handler de callback OIDC (auth code → id_token). Use em `app/oauth/callback/route.ts`.
5
- */
6
- import { NextRequest, NextResponse } from 'next/server';
7
-
8
- export const runtime = 'nodejs';
9
-
10
- export async function GET(request: NextRequest) {
11
- const { searchParams } = new URL(request.url);
12
- const code = searchParams.get('code');
13
- const state = searchParams.get('state');
14
-
15
- if (!code) {
16
- return NextResponse.json({ error: 'missing_code' }, { status: 400 });
17
- }
18
-
19
- // Trocar code → id_token contra auth.neetru.com/token
20
- // Implementação detalhada em docs/PLATFORM_AUTH.md §4
21
- return NextResponse.redirect(state ?? '/');
22
- }
1
+ /**
2
+ * Template — `src/lib/neetru/auth/callback.ts` (gerado por `neetru add auth`).
3
+ *
4
+ * Handler de callback OIDC (auth code → id_token). Use em `app/oauth/callback/route.ts`.
5
+ */
6
+ import { NextRequest, NextResponse } from 'next/server';
7
+
8
+ export const runtime = 'nodejs';
9
+
10
+ export async function GET(request: NextRequest) {
11
+ const { searchParams } = new URL(request.url);
12
+ const code = searchParams.get('code');
13
+ const state = searchParams.get('state');
14
+
15
+ if (!code) {
16
+ return NextResponse.json({ error: 'missing_code' }, { status: 400 });
17
+ }
18
+
19
+ // Trocar code → id_token contra auth.neetru.com/token
20
+ // Implementação detalhada em docs/PLATFORM_AUTH.md §4
21
+ return NextResponse.redirect(state ?? '/');
22
+ }
@@ -1,41 +1,41 @@
1
- /**
2
- * Template — `src/lib/neetru/auth/sign-in.tsx` (gerado por `neetru add auth`).
3
- *
4
- * Botão Google → redireciona pra auth.neetru.com via SDK (`client.auth.signIn`).
5
- *
6
- * Customização: ajuste `redirectUri` se hospedar fora do domínio default.
7
- */
8
- 'use client';
9
-
10
- import { useState } from 'react';
11
- import { createNeetruClient } from '@neetru/sdk';
12
-
13
- const client = createNeetruClient({
14
- apiKey: process.env.NEXT_PUBLIC_NEETRU_API_KEY,
15
- productId: process.env.NEXT_PUBLIC_NEETRU_PRODUCT_ID,
16
- });
17
-
18
- export function SignInButton() {
19
- const [loading, setLoading] = useState(false);
20
-
21
- async function handleSignIn() {
22
- setLoading(true);
23
- try {
24
- await client.auth.signIn();
25
- } catch (err) {
26
- console.error('signIn failed', err);
27
- setLoading(false);
28
- }
29
- }
30
-
31
- return (
32
- <button
33
- type="button"
34
- onClick={handleSignIn}
35
- disabled={loading}
36
- className="inline-flex items-center justify-center px-4 py-2 border bg-white hover:bg-zinc-50 text-zinc-900 font-medium"
37
- >
38
- {loading ? 'Redirecionando...' : 'Entrar com Neetru'}
39
- </button>
40
- );
41
- }
1
+ /**
2
+ * Template — `src/lib/neetru/auth/sign-in.tsx` (gerado por `neetru add auth`).
3
+ *
4
+ * Botão Google → redireciona pra auth.neetru.com via SDK (`client.auth.signIn`).
5
+ *
6
+ * Customização: ajuste `redirectUri` se hospedar fora do domínio default.
7
+ */
8
+ 'use client';
9
+
10
+ import { useState } from 'react';
11
+ import { createNeetruClient } from '@neetru/sdk';
12
+
13
+ const client = createNeetruClient({
14
+ apiKey: process.env.NEXT_PUBLIC_NEETRU_API_KEY,
15
+ productId: process.env.NEXT_PUBLIC_NEETRU_PRODUCT_ID,
16
+ });
17
+
18
+ export function SignInButton() {
19
+ const [loading, setLoading] = useState(false);
20
+
21
+ async function handleSignIn() {
22
+ setLoading(true);
23
+ try {
24
+ await client.auth.signIn();
25
+ } catch (err) {
26
+ console.error('signIn failed', err);
27
+ setLoading(false);
28
+ }
29
+ }
30
+
31
+ return (
32
+ <button
33
+ type="button"
34
+ onClick={handleSignIn}
35
+ disabled={loading}
36
+ className="inline-flex items-center justify-center px-4 py-2 border bg-white hover:bg-zinc-50 text-zinc-900 font-medium"
37
+ >
38
+ {loading ? 'Redirecionando...' : 'Entrar com Neetru'}
39
+ </button>
40
+ );
41
+ }
@@ -1,22 +1,22 @@
1
- /**
2
- * Template — `src/lib/neetru/billing/checkout.ts` (gerado por `neetru add billing`).
3
- *
4
- * Inicia checkout Stripe via Core. Server route handler.
5
- */
6
- import { NextRequest, NextResponse } from 'next/server';
7
-
8
- export const runtime = 'nodejs';
9
-
10
- export async function POST(request: NextRequest) {
11
- const body = await request.json();
12
- const slug = body?.slug as string | undefined;
13
- if (!slug) {
14
- return NextResponse.json({ error: 'slug required' }, { status: 400 });
15
- }
16
-
17
- // Hit Core REST: POST /api/v1/billing/checkout
18
- // (Sprint 9 expõe via SDK direto)
19
- return NextResponse.json({
20
- redirectUrl: `https://minhaconta.neetru.com/checkout?slug=${slug}`,
21
- });
22
- }
1
+ /**
2
+ * Template — `src/lib/neetru/billing/checkout.ts` (gerado por `neetru add billing`).
3
+ *
4
+ * Inicia checkout Stripe via Core. Server route handler.
5
+ */
6
+ import { NextRequest, NextResponse } from 'next/server';
7
+
8
+ export const runtime = 'nodejs';
9
+
10
+ export async function POST(request: NextRequest) {
11
+ const body = await request.json();
12
+ const slug = body?.slug as string | undefined;
13
+ if (!slug) {
14
+ return NextResponse.json({ error: 'slug required' }, { status: 400 });
15
+ }
16
+
17
+ // Hit Core REST: POST /api/v1/billing/checkout
18
+ // (Sprint 9 expõe via SDK direto)
19
+ return NextResponse.json({
20
+ redirectUrl: `https://minhaconta.neetru.com/checkout?slug=${slug}`,
21
+ });
22
+ }