@productbrain/cli 0.1.0-beta.9254 → 0.1.0-beta.9261

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 (36) hide show
  1. package/dist/__tests__/login.test.js +18 -1
  2. package/dist/__tests__/login.test.js.map +1 -1
  3. package/dist/__tests__/profiles.test.js +31 -1
  4. package/dist/__tests__/profiles.test.js.map +1 -1
  5. package/dist/commands/connect-config.test.js +11 -3
  6. package/dist/commands/connect-config.test.js.map +1 -1
  7. package/dist/commands/connect-integration.test.js +9 -5
  8. package/dist/commands/connect-integration.test.js.map +1 -1
  9. package/dist/commands/connect-legacy-migration.test.js +19 -19
  10. package/dist/commands/connect-legacy-migration.test.js.map +1 -1
  11. package/dist/commands/connect.d.ts +7 -9
  12. package/dist/commands/connect.d.ts.map +1 -1
  13. package/dist/commands/connect.js +70 -125
  14. package/dist/commands/connect.js.map +1 -1
  15. package/dist/commands/connect.test.js +73 -141
  16. package/dist/commands/connect.test.js.map +1 -1
  17. package/dist/commands/login.d.ts.map +1 -1
  18. package/dist/commands/login.js +15 -11
  19. package/dist/commands/login.js.map +1 -1
  20. package/dist/lib/connectProfileName.d.ts +36 -0
  21. package/dist/lib/connectProfileName.d.ts.map +1 -0
  22. package/dist/lib/connectProfileName.js +72 -0
  23. package/dist/lib/connectProfileName.js.map +1 -0
  24. package/dist/lib/connectProfileName.test.d.ts +2 -0
  25. package/dist/lib/connectProfileName.test.d.ts.map +1 -0
  26. package/dist/lib/connectProfileName.test.js +100 -0
  27. package/dist/lib/connectProfileName.test.js.map +1 -0
  28. package/dist/lib/errors.d.ts +3 -4
  29. package/dist/lib/errors.d.ts.map +1 -1
  30. package/dist/lib/errors.js +3 -4
  31. package/dist/lib/errors.js.map +1 -1
  32. package/dist/lib/profiles.d.ts +10 -8
  33. package/dist/lib/profiles.d.ts.map +1 -1
  34. package/dist/lib/profiles.js +15 -15
  35. package/dist/lib/profiles.js.map +1 -1
  36. package/package.json +1 -1
@@ -32,24 +32,34 @@ vi.mock('../lib/prompts.js', () => ({
32
32
  confirm: vi.fn(async () => true),
33
33
  isInteractive: vi.fn(() => true),
34
34
  }));
35
- // Mock profiles (connect saves key as named profile). resolveNamedProfileConfig defaults to
36
- // "no existing profile" so the pre-fix happy-path tests take the create branch unchanged;
37
- // TEN-2851 clobber tests override this per-test.
38
- // validateProfileName is the REAL implementation (via importOriginal) — only the two
39
- // filesystem-touching functions are stubbed. This exercises the actual name-validation
40
- // regex/CLIError shape in the traversal regression test below, not a hand-rolled double.
35
+ // Mock profiles (connect saves key as named profile). createProfile is stubbed;
36
+ // profileFileExists wraps the REAL implementation (name validation + the mocked fs above, so
37
+ // "no profile on disk" by default) and the naming tests override it per test. This exercises
38
+ // the actual name-validation regex/CLIError shape in the traversal tests, not a double.
41
39
  vi.mock('../lib/profiles.js', async (importOriginal) => {
42
40
  const actual = await importOriginal();
43
41
  return {
44
42
  ...actual,
45
43
  createProfile: vi.fn(),
46
- resolveNamedProfileConfig: vi.fn(() => null),
44
+ profileFileExists: vi.fn((name) => actual.profileFileExists(name)),
47
45
  };
48
46
  });
47
+ // The folder part of the derived profile name (TASK-638): pinned so tests never depend on the
48
+ // directory the suite runs from.
49
+ vi.mock('../lib/connectProfileName.js', async (importOriginal) => {
50
+ const actual = await importOriginal();
51
+ return { ...actual, connectFolderName: vi.fn(() => 'my-repo') };
52
+ });
53
+ // readLocalProjectConfig is the REAL implementation by default; the own-pin test overrides it.
54
+ vi.mock('../lib/config.js', async (importOriginal) => {
55
+ const actual = await importOriginal();
56
+ return { ...actual, readLocalProjectConfig: vi.fn(() => actual.readLocalProjectConfig()) };
57
+ });
49
58
  // Mock handshake (connect runs handshake after token redemption)
50
59
  vi.mock('./handshake.js', () => ({
51
60
  runHandshake: vi.fn(async () => { }),
52
61
  }));
62
+ vi.mock('../lib/session.js', () => ({ discardAllSessions: vi.fn() }));
53
63
  // Mock connect-screens (Ink TUI — cannot render in Vitest environment)
54
64
  vi.mock('./connect-screens.js', () => ({
55
65
  runConnectScreens: vi.fn(async () => { }),
@@ -123,7 +133,7 @@ describe('pb connect', () => {
123
133
  }));
124
134
  // Verify profile was created and project config was written
125
135
  const { createProfile } = await import('../lib/profiles.js');
126
- expect(createProfile).toHaveBeenCalledWith('dev-workspace', 'pb_sk_redeemed123', expect.any(String));
136
+ expect(createProfile).toHaveBeenCalledWith('dev-workspace-my-repo', 'pb_sk_redeemed123', expect.any(String));
127
137
  expect(fs.writeFileSync).toHaveBeenCalled();
128
138
  });
129
139
  it('includes name in redeem body when ConnectOptions.name is set', async () => {
@@ -203,11 +213,11 @@ describe('pb connect', () => {
203
213
  }),
204
214
  });
205
215
  await runConnect(validToken);
206
- // Profile created with slugified name and API key
216
+ // Profile created as <workspace>-<folder> (TASK-638) with the API key
207
217
  const { createProfile } = await import('../lib/profiles.js');
208
- expect(createProfile).toHaveBeenCalledWith('final-workspace', 'pb_sk_final', expect.any(String));
218
+ expect(createProfile).toHaveBeenCalledWith('final-workspace-my-repo', 'pb_sk_final', expect.any(String));
209
219
  });
210
- it('does NOT write profile to config.json (committed file must not have profile)', async () => {
220
+ it('declares the project with an empty config.json: no profile, no siteUrl (TASK-638)', async () => {
211
221
  const validToken = 'pb_ct_' + 'a'.repeat(40);
212
222
  mockFetch.mockResolvedValueOnce({
213
223
  ok: true,
@@ -224,12 +234,7 @@ describe('pb connect', () => {
224
234
  const writeCalls = writeFileSync.mock.calls;
225
235
  // Find the config.json write (ends with config.json)
226
236
  const configJsonCall = writeCalls.find(([path]) => typeof path === 'string' && path.endsWith('config.json') && !path.endsWith('config.local.json'));
227
- expect(configJsonCall).toBeTruthy();
228
- if (configJsonCall) {
229
- const writtenContent = JSON.parse(configJsonCall[1]);
230
- expect(writtenContent).not.toHaveProperty('profile');
231
- expect(writtenContent).toHaveProperty('siteUrl');
232
- }
237
+ expect(configJsonCall?.[1]).toBe('{}\n');
233
238
  });
234
239
  it('writes profile to config.local.json (machine-local, gitignored)', async () => {
235
240
  const validToken = 'pb_ct_' + 'a'.repeat(40);
@@ -251,7 +256,7 @@ describe('pb connect', () => {
251
256
  if (localConfigCall) {
252
257
  const writtenContent = JSON.parse(localConfigCall[1]);
253
258
  expect(writtenContent).toHaveProperty('profile');
254
- expect(writtenContent.profile).toBe('dev-workspace');
259
+ expect(writtenContent.profile).toBe('dev-workspace-my-repo');
255
260
  }
256
261
  });
257
262
  it('sets process.env for current session', async () => {
@@ -286,9 +291,6 @@ describe('pb connect', () => {
286
291
  }),
287
292
  });
288
293
  await runConnect(validToken);
289
- // Before the fix: this always slugified to 'totally-different-workspace',
290
- // silently ignoring PB_PROFILE — and if 'owner' pre-existed, a slug COLLISION
291
- // (not this test's scenario, but the same code path) would have overwritten it.
292
294
  const { createProfile } = await import('../lib/profiles.js');
293
295
  expect(createProfile).toHaveBeenCalledWith('owner', 'pb_sk_env_profile', expect.any(String));
294
296
  const { writeFileSync } = await import('fs');
@@ -300,7 +302,7 @@ describe('pb connect', () => {
300
302
  expect(writtenContent.profile).toBe('owner');
301
303
  }
302
304
  });
303
- it('ignores blank/whitespace-only PB_PROFILE and falls back to the auto-derived slug', async () => {
305
+ it('ignores blank/whitespace-only PB_PROFILE and uses the derived name', async () => {
304
306
  process.env.PB_PROFILE = ' ';
305
307
  const validToken = 'pb_ct_' + 'a'.repeat(40);
306
308
  mockFetch.mockResolvedValueOnce({
@@ -314,143 +316,73 @@ describe('pb connect', () => {
314
316
  });
315
317
  await runConnect(validToken);
316
318
  const { createProfile } = await import('../lib/profiles.js');
317
- expect(createProfile).toHaveBeenCalledWith('blank-env-workspace', 'pb_sk_blank_env', expect.any(String));
319
+ expect(createProfile).toHaveBeenCalledWith('blank-env-workspace-my-repo', 'pb_sk_blank_env', expect.any(String));
318
320
  });
319
321
  });
320
322
  });
321
- describe('profile clobber gate (TEN-2851)', () => {
323
+ describe('naming and clashes (TASK-638, DEC-1961)', () => {
322
324
  const validToken = 'pb_ct_' + 'a'.repeat(40);
323
325
  function mockRedeemOnce(apiKey, workspaceName) {
324
326
  mockFetch.mockResolvedValueOnce({
325
327
  ok: true,
326
- json: async () => ({ ok: true, apiKey, workspaceId: 'ws-clobber', workspaceName }),
328
+ json: async () => ({ ok: true, apiKey, workspaceId: 'ws-naming', workspaceName }),
327
329
  });
328
330
  }
329
- beforeEach(async () => {
330
- // Pin siteUrl to a known value — beforeEach's `process.env.CONVEX_SITE_URL = undefined`
331
- // coerces to the string "undefined" (Node env quirk), which would otherwise make
332
- // resolveConnectRedeemUrl's resolved siteUrl an unpredictable literal.
333
- process.env.CONVEX_SITE_URL = 'https://gateway.productbrain.io';
334
- });
335
- // resolveNamedProfileConfig is set with mockReturnValue (persistent), never
336
- // mockReturnValueOnce: a decline/refusal path can return from runConnect BEFORE
337
- // saveKeyAsProfile ever calls it, and vi.clearAllMocks() does NOT drain a queued
338
- // "Once" implementation (only mockClear()s call history) — an unconsumed Once value
339
- // would silently leak into a LATER, unrelated test. Reset to the file's "no existing
340
- // profile" default afterward so sibling describe blocks are unaffected.
341
331
  afterEach(async () => {
342
- const { resolveNamedProfileConfig } = await import('../lib/profiles.js');
343
- vi.mocked(resolveNamedProfileConfig).mockReturnValue(null);
344
- });
345
- it('same credentials already saved: idempotent, no overwrite prompt, createProfile not called', async () => {
346
- const { resolveNamedProfileConfig, createProfile } = await import('../lib/profiles.js');
347
- vi.mocked(resolveNamedProfileConfig).mockReturnValue({
348
- apiKey: 'pb_sk_same',
349
- siteUrl: 'https://gateway.productbrain.io',
350
- });
351
- const { confirm } = await import('../lib/prompts.js');
352
- mockRedeemOnce('pb_sk_same', 'Same Creds WS');
353
- await runConnect(validToken);
354
- expect(createProfile).not.toHaveBeenCalled();
355
- // confirm() is still called once for the workspace-binding gate (unrelated to the
356
- // profile-clobber gate) — assert it was NOT called a second time for an overwrite prompt.
357
- expect(confirm).toHaveBeenCalledTimes(1);
332
+ delete process.env.PB_PROFILE;
333
+ const profiles = await import('../lib/profiles.js');
334
+ const actualProfiles = await vi.importActual('../lib/profiles.js');
335
+ vi.mocked(profiles.profileFileExists).mockImplementation((n) => actualProfiles.profileFileExists(n));
336
+ const config = await import('../lib/config.js');
337
+ const actualConfig = await vi.importActual('../lib/config.js');
338
+ vi.mocked(config.readLocalProjectConfig).mockImplementation(() => actualConfig.readLocalProjectConfig());
358
339
  });
359
- it('different credentials, interactive decline: refuses, writes nothing, no project config', async () => {
360
- const { resolveNamedProfileConfig, createProfile } = await import('../lib/profiles.js');
361
- vi.mocked(resolveNamedProfileConfig).mockReturnValue({
362
- apiKey: 'pb_sk_OLD',
363
- siteUrl: 'https://gateway.productbrain.io',
364
- });
340
+ it("another folder's profile holds the name: takes -2, never overwrites, never prompts", async () => {
341
+ const { profileFileExists, createProfile } = await import('../lib/profiles.js');
342
+ vi.mocked(profileFileExists).mockImplementation((n) => n === 'product-brain-product-os');
343
+ const { connectFolderName } = await import('../lib/connectProfileName.js');
344
+ vi.mocked(connectFolderName).mockReturnValueOnce('Product-OS');
365
345
  const { confirm } = await import('../lib/prompts.js');
366
- // Call 1 = workspace-confirm gate (must proceed); call 2 = profile-overwrite prompt
367
- // (declined). Queuing exactly two Once values targets each call precisely.
368
- vi.mocked(confirm).mockResolvedValueOnce(true).mockResolvedValueOnce(false);
369
- mockRedeemOnce('pb_sk_NEW', 'Clobber Decline WS');
346
+ mockRedeemOnce('pb_sk_second_folder', 'Product Brain');
370
347
  await runConnect(validToken);
371
- expect(confirm).toHaveBeenCalledTimes(2);
372
- expect(confirm).toHaveBeenNthCalledWith(2, expect.objectContaining({ message: expect.stringContaining('different credentials') }));
373
- expect(createProfile).not.toHaveBeenCalled();
374
- // No project config write either — decline means the machine stays fully untouched.
375
- const { writeFileSync } = await import('fs');
376
- const writeCalls = writeFileSync.mock.calls;
377
- expect(writeCalls.find(([p]) => typeof p === 'string' && p.endsWith('config.local.json'))).toBeUndefined();
348
+ expect(createProfile).toHaveBeenCalledWith('product-brain-product-os-2', 'pb_sk_second_folder', expect.any(String));
349
+ expect(confirm).toHaveBeenCalledTimes(1); // the workspace gate only — no overwrite prompt exists
378
350
  });
379
- it('different credentials, interactive confirm: overwrites via createProfile({ overwrite: true })', async () => {
380
- const { resolveNamedProfileConfig, createProfile } = await import('../lib/profiles.js');
381
- vi.mocked(resolveNamedProfileConfig).mockReturnValue({
382
- apiKey: 'pb_sk_OLD',
383
- siteUrl: 'https://gateway.productbrain.io',
384
- });
385
- // Both calls (workspace gate + overwrite prompt) use the file-level default (true) —
386
- // no explicit queuing needed.
387
- mockRedeemOnce('pb_sk_NEW', 'Clobber Confirm WS');
351
+ it("this clone's own pin names the profile: the new key replaces it in place", async () => {
352
+ const { profileFileExists, createProfile } = await import('../lib/profiles.js');
353
+ vi.mocked(profileFileExists).mockReturnValue(true);
354
+ const { readLocalProjectConfig } = await import('../lib/config.js');
355
+ vi.mocked(readLocalProjectConfig).mockReturnValue({ profile: 'rotate-ws-my-repo' });
356
+ const stderrSpy = vi.spyOn(process.stderr, 'write');
357
+ mockRedeemOnce('pb_sk_rotated', 'Rotate WS');
388
358
  await runConnect(validToken);
389
- expect(createProfile).toHaveBeenCalledWith('clobber-confirm-ws', 'pb_sk_NEW', expect.any(String), { overwrite: true });
359
+ expect(createProfile).toHaveBeenCalledWith('rotate-ws-my-repo', 'pb_sk_rotated', expect.any(String), { overwrite: true });
360
+ const { discardAllSessions } = await import('../lib/session.js');
361
+ expect(discardAllSessions).toHaveBeenCalledTimes(1);
362
+ expect(stderrSpy).toHaveBeenCalledWith(expect.stringContaining('now holds a new key for workspace "Rotate WS"'));
390
363
  });
391
- it('different credentials, non-interactive: fails closed, never prompts, writes nothing', async () => {
392
- const { resolveNamedProfileConfig, createProfile } = await import('../lib/profiles.js');
393
- vi.mocked(resolveNamedProfileConfig).mockReturnValue({
394
- apiKey: 'pb_sk_OLD',
395
- siteUrl: 'https://gateway.productbrain.io',
396
- });
397
- const { isInteractive, confirm } = await import('../lib/prompts.js');
398
- // Interactive for the workspace-confirm gate (assumeYes covers that one), but the
399
- // profile-clobber gate checks isInteractive() directly and is NOT bypassed by --yes.
400
- vi.mocked(isInteractive).mockReturnValue(false);
401
- mockRedeemOnce('pb_sk_NEW', 'Clobber Noninteractive WS');
402
- const err = await runConnect(validToken, { assumeYes: true }).catch((e) => e);
364
+ it('PB_PROFILE naming an existing profile is refused BEFORE redeem: token unspent, nothing written', async () => {
365
+ process.env.PB_PROFILE = 'taken-name';
366
+ const { profileFileExists, createProfile } = await import('../lib/profiles.js');
367
+ vi.mocked(profileFileExists).mockImplementation((n) => n === 'taken-name');
368
+ const err = await runConnect(validToken).catch((e) => e);
403
369
  expect(err).toBeInstanceOf(CLIError);
404
370
  expect(err.code).toBe(ErrorCode.PROFILE_CREDENTIALS_CONFLICT);
405
- expect(err.guidance).toContain('PB_PROFILE=');
406
- expect(confirm).not.toHaveBeenCalled();
371
+ expect(err.guidance).toContain('has not been used');
372
+ expect(mockFetch).not.toHaveBeenCalled();
407
373
  expect(createProfile).not.toHaveBeenCalled();
408
- const { writeFileSync } = await import('fs');
409
- const writeCalls = writeFileSync.mock.calls;
410
- expect(writeCalls.find(([p]) => typeof p === 'string' && p.endsWith('config.local.json'))).toBeUndefined();
374
+ expect(fs.writeFileSync).not.toHaveBeenCalled();
411
375
  });
412
- describe('profile-name validation runs BEFORE any path resolution (Copilot review)', () => {
413
- afterEach(() => {
414
- delete process.env.PB_PROFILE;
415
- });
416
- it('a traversal-shaped PB_PROFILE is rejected before redeemToken ever burns the one-time token (WP-632 sweep fix, PR #594 post-merge review)', async () => {
417
- process.env.PB_PROFILE = '../../etc/passwd';
418
- const { resolveNamedProfileConfig, createProfile } = await import('../lib/profiles.js');
419
- // No mockRedeemOnce here (sweep fix): the fetch call must never happen, so queuing a
420
- // once-response nothing consumes would leak into a LATER test's fetch call instead.
421
- const err = await runConnect(validToken).catch((e) => e);
422
- expect(err).toBeInstanceOf(CLIError);
423
- expect(err.code).toBe(ErrorCode.PROFILE_NAME_INVALID);
424
- // The whole point: resolveNamedProfileConfig (which resolve()s profileName into a
425
- // filesystem path with NO sanitization of its own) must never even be CALLED with
426
- // the unvalidated name — validation happens strictly before any path resolution.
427
- expect(resolveNamedProfileConfig).not.toHaveBeenCalled();
428
- expect(createProfile).not.toHaveBeenCalled();
429
- const { writeFileSync } = await import('fs');
430
- expect(writeFileSync).not.toHaveBeenCalled();
431
- // Sweep fix: validation must also run BEFORE redeemToken's network call, not merely
432
- // before the local file write — a review finding after the original PR merged noted
433
- // the one-time token was still burned (mockFetch WAS called) even though nothing was
434
- // written locally, so a corrected retry could never reuse the same onboarding link.
435
- expect(mockFetch).not.toHaveBeenCalled();
436
- });
437
- it('a traversal-shaped PB_PROFILE with a leading slash is also rejected before the token is redeemed', async () => {
438
- process.env.PB_PROFILE = '/etc/passwd';
439
- const { resolveNamedProfileConfig } = await import('../lib/profiles.js');
440
- // No mockRedeemOnce here either — same reason as above.
441
- const err = await runConnect(validToken).catch((e) => e);
442
- expect(err).toBeInstanceOf(CLIError);
443
- expect(err.code).toBe(ErrorCode.PROFILE_NAME_INVALID);
444
- expect(resolveNamedProfileConfig).not.toHaveBeenCalled();
445
- expect(mockFetch).not.toHaveBeenCalled();
446
- });
447
- it('a normal PB_PROFILE name still passes validation and proceeds', async () => {
448
- process.env.PB_PROFILE = 'legit-name';
449
- const { resolveNamedProfileConfig } = await import('../lib/profiles.js');
450
- mockRedeemOnce('pb_sk_legit', 'Legit WS');
451
- await runConnect(validToken);
452
- expect(resolveNamedProfileConfig).toHaveBeenCalledWith('legit-name');
453
- });
376
+ it.each(['../../etc/passwd', '/etc/passwd'])('a traversal-shaped PB_PROFILE (%s) is refused before redeem and before any path is built', async (bad) => {
377
+ process.env.PB_PROFILE = bad;
378
+ const { createProfile } = await import('../lib/profiles.js');
379
+ const err = await runConnect(validToken).catch((e) => e);
380
+ expect(err).toBeInstanceOf(CLIError);
381
+ expect(err.code).toBe(ErrorCode.PROFILE_NAME_INVALID);
382
+ expect(fs.existsSync).not.toHaveBeenCalledWith(expect.stringContaining('passwd'));
383
+ expect(createProfile).not.toHaveBeenCalled();
384
+ expect(fs.writeFileSync).not.toHaveBeenCalled();
385
+ expect(mockFetch).not.toHaveBeenCalled();
454
386
  });
455
387
  });
456
388
  describe('confirm-first gate (WP-2)', () => {
@@ -502,11 +434,11 @@ describe('pb connect', () => {
502
434
  await runConnect(validToken, { assumeYes: true });
503
435
  const { createProfile } = await import('../lib/profiles.js');
504
436
  const { runConnectScreens, runConnectHeadless } = await import('./connect-screens.js');
505
- expect(createProfile).toHaveBeenCalledWith('yes-ws', 'pb_sk_gate', expect.any(String));
437
+ expect(createProfile).toHaveBeenCalledWith('yes-ws-my-repo', 'pb_sk_gate', expect.any(String));
506
438
  expect(confirm).not.toHaveBeenCalled();
507
439
  // Headless: the Ink wizard (raw-mode stdin) is skipped; the plain summary runs instead.
508
440
  expect(runConnectScreens).not.toHaveBeenCalled();
509
- expect(runConnectHeadless).toHaveBeenCalledWith('Yes WS', 'yes-ws');
441
+ expect(runConnectHeadless).toHaveBeenCalledWith('Yes WS', 'yes-ws-my-repo');
510
442
  });
511
443
  it('strips control chars from the server-provided workspace name before the prompt (BET-269 C3)', async () => {
512
444
  const { confirm } = await import('../lib/prompts.js');
@@ -1 +1 @@
1
- {"version":3,"file":"connect.test.js","sourceRoot":"","sources":["../../src/commands/connect.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connect.test.js","sourceRoot":"","sources":["../../src/commands/connect.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuDH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAiE9C"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0DH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAkE9C"}
@@ -6,23 +6,27 @@
6
6
  * (don't block offline users).
7
7
  */
8
8
  import { mkdirSync, writeFileSync } from 'fs';
9
- import { resolve } from 'path';
10
9
  import { HOME_CONFIG_DIR, HOME_ENV_PATH } from '../lib/config.js';
11
10
  import { DEFAULT_SITE_URL, resolveAppUrl } from '../lib/constants.js';
12
11
  import { API_KEY_PREFIX } from '../lib/tokenConstants.js';
13
12
  import { validateKey } from '../lib/client.js';
14
13
  import { password as promptPassword } from '../lib/prompts.js';
15
14
  import { CLIError, ErrorCode } from '../lib/errors.js';
16
- import { getActiveProfile, PROFILES_DIR } from '../lib/profiles.js';
15
+ import { getActiveProfile, profilePath, PROFILES_DIR } from '../lib/profiles.js';
17
16
  const SIGNUP_URL = resolveAppUrl();
18
- function saveKey(apiKey, siteUrl) {
19
- // If a named profile is active, write to that profile's file instead of the
20
- // legacy HOME_ENV_PATH. This ensures `pb profile use <name> && pb login`
21
- // writes to the correct location and `pb doctor` finds the key immediately.
17
+ /**
18
+ * Where the key goes: the active profile's file when one is named, else the legacy
19
+ * HOME_ENV_PATH. This ensures `pb profile use <name> && pb login` writes to the correct
20
+ * location and `pb doctor` finds the key immediately. Resolved BEFORE the key prompt so a bad
21
+ * PB_PROFILE or active-profile name (`../x`) is refused before anything is read or written
22
+ * (TEN-4503: profilePath validates the name).
23
+ */
24
+ function resolveLoginTarget() {
22
25
  const activeProfile = getActiveProfile();
23
- let savePath;
26
+ return { activeProfile, savePath: activeProfile ? profilePath(activeProfile) : HOME_ENV_PATH };
27
+ }
28
+ function saveKey(apiKey, siteUrl, { activeProfile, savePath }) {
24
29
  if (activeProfile) {
25
- savePath = resolve(PROFILES_DIR, `${activeProfile}.env`);
26
30
  const profileContent = [
27
31
  `# Product Brain CLI profile: ${activeProfile}`,
28
32
  `# Saved by "pb login"`,
@@ -35,7 +39,6 @@ function saveKey(apiKey, siteUrl) {
35
39
  writeFileSync(savePath, profileContent, { mode: 0o600 });
36
40
  }
37
41
  else {
38
- savePath = HOME_ENV_PATH;
39
42
  const content = [
40
43
  `# Product Brain CLI — saved by "pb login"`,
41
44
  `# Edit or delete this file to change or remove your key.`,
@@ -52,6 +55,7 @@ function saveKey(apiKey, siteUrl) {
52
55
  return savePath;
53
56
  }
54
57
  export async function runLogin() {
58
+ const target = resolveLoginTarget();
55
59
  console.log('Product Brain — sign in with your API key');
56
60
  console.log(` Get a key: ${SIGNUP_URL} → Settings → API Keys\n`);
57
61
  const apiKey = await promptPassword({
@@ -87,7 +91,7 @@ export async function runLogin() {
87
91
  const result = await validateKey(apiKey, siteUrl);
88
92
  if (result.valid) {
89
93
  process.stdout.write(' connected.\n\n');
90
- const savedPath = saveKey(apiKey, siteUrl);
94
+ const savedPath = saveKey(apiKey, siteUrl, target);
91
95
  console.log(`Saved to ${savedPath}`);
92
96
  console.log('You can run pb from any directory now. Try: pb orient -b\n');
93
97
  }
@@ -108,7 +112,7 @@ export async function runLogin() {
108
112
  process.stdout.write(' could not reach server.\n\n');
109
113
  console.warn('Could not reach server — key saved but not verified.\n' +
110
114
  'Run `pb doctor` to check connectivity later.\n');
111
- const savedPath = saveKey(apiKey, siteUrl);
115
+ const savedPath = saveKey(apiKey, siteUrl, target);
112
116
  console.log(`Saved to ${savedPath}`);
113
117
  console.log('You can run pb from any directory now. Try: pb orient -b\n');
114
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The profile name `pb connect` gives a connection (TASK-638, DEC-1961): `<workspace>-<folder>`,
3
+ * so several folders on one machine can each hold their own key for one workspace:
4
+ * - the folder is the main clone's directory, read from the git common dir, so a Superset
5
+ * worktree names the same profile as its main clone (DEC-1606 copies the pin across);
6
+ * outside git it is the current directory;
7
+ * - a folder whose slug already is, or starts with, the workspace slug is the name on its own
8
+ * (`product-brain` + `product-brain-positioning` → `product-brain-positioning`);
9
+ * - the name fits PROFILE_NAME_RE (32 chars): the folder part is cut first, then the workspace
10
+ * part, and a `-N` clash suffix always fits.
11
+ */
12
+ /** Lowercase, every run of other characters becomes one hyphen, no leading or trailing hyphen. */
13
+ export declare function slugify(name: string): string;
14
+ /**
15
+ * The folder a connect is named after: the directory holding the git common dir (the main
16
+ * clone, also from inside a worktree), or `cwd` itself outside git.
17
+ */
18
+ export declare function connectFolderName(cwd: string): string;
19
+ /** The name for clash attempt `n` (1 = no suffix, 2 → `-2`, …), always within 32 chars. */
20
+ export declare function composeProfileName(workspaceName: string, folderName: string, n?: number): string;
21
+ export interface ConnectProfileChoice {
22
+ profileName: string;
23
+ /** True when the name is this folder's own pin: the new key replaces it (a key rotation). */
24
+ replace: boolean;
25
+ }
26
+ /**
27
+ * Pick the profile a connect writes. This folder's own pin, if it is any of this folder's names,
28
+ * is replaced in place first; otherwise the first free `-N`. Never another folder's profile.
29
+ */
30
+ export declare function pickConnectProfileName(args: {
31
+ workspaceName: string;
32
+ folderName: string;
33
+ ownPin: string | null;
34
+ isTaken: (profileName: string) => boolean;
35
+ }): ConnectProfileChoice | null;
36
+ //# sourceMappingURL=connectProfileName.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectProfileName.d.ts","sourceRoot":"","sources":["../../src/lib/connectProfileName.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,kGAAkG;AAClG,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5C;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAYrD;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,SAAI,GAAG,MAAM,CAc3F;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;CAC3C,GAAG,oBAAoB,GAAG,IAAI,CAK9B"}