sandstream-kit 1.4.3 → 1.5.0

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.
package/README.md CHANGED
@@ -102,6 +102,9 @@ check = "stripe config --list"
102
102
 
103
103
  [secrets]
104
104
  store = "1password" # or env, dotenvx, vault, aws-sm, gcp-sm, azure-kv, infisical, doppler, bitwarden, eas
105
+ # Choosing a vault wires it up: kit adds its CLI to [tools] so `kit setup` installs
106
+ # it via mise (1password, infisical, doppler, bitwarden, vault), then guides login.
107
+ # Cloud secret managers (aws-sm, gcp-sm, azure-kv) are an exception — see below.
105
108
  template = ".env.template"
106
109
 
107
110
  [secrets.keys]
@@ -253,6 +256,29 @@ migration, to deploy-platform propagation, to destructive history cleanup.
253
256
  - `kit secrets onecli register <KEY> --host <pattern>`: Register with the OneCLI gateway so the agent process never sees the real value
254
257
  - `kit secrets purge-history <pattern> --force-history`: Destructive: rewrite git history to scrub a leaked value (wraps `git filter-repo` / `bfg`). Requires elevation + explicit flag.
255
258
 
259
+ **Which vault CLIs kit installs.** When you pick a secret backend at `kit init`, kit
260
+ provisions its CLI like any other tool — it adds the CLI to `[tools]`, so `kit setup`
261
+ installs it via mise, resolves it mise-first at read time, and prints the login step.
262
+ This covers the dedicated vault CLIs:
263
+
264
+ | Backend | CLI installed by `kit setup`? | Authenticate with |
265
+ |---|---|---|
266
+ | 1Password | yes (`op` via mise) | `op signin` |
267
+ | Infisical | yes (`infisical` via mise) | `infisical login` + `infisical init` |
268
+ | Doppler | yes (`doppler` via mise) | `doppler login` + `doppler setup` |
269
+ | Bitwarden | yes (`bw` via mise) | `bw login` + `bw unlock` |
270
+ | HashiCorp Vault | yes (`vault` via mise) | `vault login` |
271
+ | AWS Secrets Manager | **no** — uses your existing `aws` CLI | `aws configure` / IAM role |
272
+ | GCP Secret Manager | **no** — uses your existing `gcloud` CLI | `gcloud auth login` |
273
+ | Azure Key Vault | **no** — uses your existing `az` CLI | `az login` |
274
+
275
+ The three cloud secret managers are a deliberate exception: their CLIs are normally
276
+ already present (cloud installer, CI image, IAM environment), authenticate through
277
+ cloud-native mechanisms rather than a CLI login, and a second mise-managed copy could
278
+ shadow the system one. kit therefore **guides** their login but does not install the
279
+ CLI — it resolves the binary from your `PATH` and falls back cleanly if absent. Logging
280
+ in to any vault is always your own account action; kit never does it for you.
281
+
256
282
  ### Security scanners
257
283
 
258
284
  - `kit security scan-staged`: Pre-commit: scan staged blobs for known credential patterns
@@ -9,6 +9,12 @@ export interface SecurityCheckResult {
9
9
  suggestion?: string;
10
10
  rule?: RuleRef;
11
11
  }
12
+ /** Count HIGH/CRITICAL misconfigurations in a `trivy config --format json`
13
+ * payload. PURE so it can be unit-tested without running trivy. */
14
+ export declare function parseTrivyMisconfigCount(stdout: string): number;
15
+ /** Count vulnerabilities in an `osv-scanner --format json` payload. PURE so it
16
+ * can be unit-tested without running osv-scanner. -1 = unparseable. */
17
+ export declare function parseOsvVulnCount(stdout: string): number;
12
18
  /**
13
19
  * Run all security checks
14
20
  */
@@ -1,6 +1,6 @@
1
1
  import { execFile } from "node:child_process";
2
2
  import { promisify } from "node:util";
3
- import { readFile, access } from "node:fs/promises";
3
+ import { readFile, access, readdir } from "node:fs/promises";
4
4
  import { resolve } from "node:path";
5
5
  import { execFileNoThrow } from "./utils/execFileNoThrow.js";
6
6
  import { resolveToolBin } from "./utils/resolveTool.js";
@@ -445,18 +445,31 @@ async function checkSecretsInCode() {
445
445
  detail: "not a git repository",
446
446
  };
447
447
  }
448
- // Try trufflehog first
448
+ // Deep scan with trufflehog — resolve mise-first so a mise-installed one is
449
+ // used (kit provisions it as a default), not just a bare-PATH one. Throwing
450
+ // when it's absent falls through to the basic pattern-matching below.
449
451
  try {
450
- await exec("trufflehog", ["--version"], { timeout: 5_000 });
452
+ const trufflehogBin = await resolveToolBin("trufflehog");
453
+ if (!trufflehogBin)
454
+ throw new Error("trufflehog not installed");
451
455
  try {
452
- const { stdout } = await exec("trufflehog", ["filesystem", ".", "--json", "--no-update"], { timeout: 60_000 });
453
- const findings = stdout.trim().split("\n").filter(Boolean);
456
+ // Scan GIT (committed content) not the raw filesystem. `filesystem .`
457
+ // walks node_modules (times out) and flags gitignored local files like
458
+ // `.env.production.local` that were never committed (false positives).
459
+ // Git mode is fast and only sees what's actually in the repo's history.
460
+ const { stdout } = await exec(trufflehogBin, ["git", `file://${process.cwd()}`, "--json", "--no-update"], { timeout: 90_000 });
461
+ // trufflehog --json prefixes an info LOG line ({"level":...}); only count
462
+ // lines that are real findings (they carry a DetectorName).
463
+ const findings = stdout
464
+ .trim()
465
+ .split("\n")
466
+ .filter((l) => l.includes('"DetectorName"'));
454
467
  if (findings.length > 0) {
455
468
  return {
456
469
  category: "secrets",
457
470
  name: "secrets scan",
458
471
  status: "fail",
459
- detail: `${findings.length} potential secret(s) found`,
472
+ detail: `${findings.length} secret(s) committed in git history -run: trufflehog git file://.`,
460
473
  severity: "critical",
461
474
  };
462
475
  }
@@ -464,7 +477,7 @@ async function checkSecretsInCode() {
464
477
  category: "secrets",
465
478
  name: "secrets scan",
466
479
  status: "pass",
467
- detail: "no secrets detected (trufflehog)",
480
+ detail: "no committed secrets (trufflehog git)",
468
481
  };
469
482
  }
470
483
  catch {
@@ -628,6 +641,130 @@ async function checkTrivy() {
628
641
  return { category: "supply-chain", name: "trivy container scan", status: "warn", detail: "trivy scan failed", severity: "medium" };
629
642
  }
630
643
  }
644
+ /** Count HIGH/CRITICAL misconfigurations in a `trivy config --format json`
645
+ * payload. PURE so it can be unit-tested without running trivy. */
646
+ export function parseTrivyMisconfigCount(stdout) {
647
+ try {
648
+ const parsed = JSON.parse(stdout);
649
+ return (parsed.Results ?? [])
650
+ .flatMap((r) => r.Misconfigurations ?? [])
651
+ .filter((m) => m.Severity === "HIGH" || m.Severity === "CRITICAL").length;
652
+ }
653
+ catch {
654
+ return -1; // unparseable
655
+ }
656
+ }
657
+ /**
658
+ * IaC misconfiguration scan (Dockerfile / Compose / Terraform) via
659
+ * `trivy config`. Distinct from the container-CVE scan above: that finds
660
+ * vulnerable packages, this finds insecure infrastructure config (root user,
661
+ * privileged containers, public buckets, missing healthchecks, …). Runs only
662
+ * when there is IaC to scan; resolves trivy mise-first like the CVE scan.
663
+ */
664
+ async function checkTrivyConfig() {
665
+ const name = "trivy config (IaC)";
666
+ const cwd = process.cwd();
667
+ const fileMarkers = [
668
+ "Dockerfile",
669
+ "docker-compose.yml",
670
+ "docker-compose.yaml",
671
+ "compose.yml",
672
+ "compose.yaml",
673
+ ];
674
+ let hasIaC = false;
675
+ for (const m of fileMarkers) {
676
+ if (await access(resolve(cwd, m)).then(() => true).catch(() => false)) {
677
+ hasIaC = true;
678
+ break;
679
+ }
680
+ }
681
+ if (!hasIaC) {
682
+ // Any top-level Terraform?
683
+ try {
684
+ const entries = await readdir(cwd);
685
+ hasIaC = entries.some((e) => e.endsWith(".tf"));
686
+ }
687
+ catch {
688
+ /* unreadable cwd — treat as no IaC */
689
+ }
690
+ }
691
+ if (!hasIaC) {
692
+ return { category: "supply-chain", name, status: "skip", detail: "no Dockerfile/Compose/Terraform found" };
693
+ }
694
+ const trivyBin = await resolveToolBin("trivy");
695
+ if (!trivyBin) {
696
+ return {
697
+ category: "supply-chain",
698
+ name,
699
+ status: "warn",
700
+ detail: "trivy not installed -IaC misconfigurations undetected",
701
+ severity: "medium",
702
+ suggestion: "mise use aqua:aquasecurity/trivy (or: brew install trivy)",
703
+ };
704
+ }
705
+ const result = await execFileNoThrow(trivyBin, ["config", ".", "--format", "json", "--severity", "HIGH,CRITICAL", "--quiet"], { timeout: 120_000 });
706
+ const count = parseTrivyMisconfigCount(result.stdout);
707
+ if (count < 0) {
708
+ return { category: "supply-chain", name, status: "warn", detail: "trivy config scan failed", severity: "medium" };
709
+ }
710
+ if (count === 0) {
711
+ return { category: "supply-chain", name, status: "pass", detail: "no high/critical IaC misconfigurations" };
712
+ }
713
+ return {
714
+ category: "supply-chain",
715
+ name,
716
+ status: "warn",
717
+ detail: `${count} high/critical IaC misconfiguration(s) -run: trivy config .`,
718
+ severity: "high",
719
+ };
720
+ }
721
+ /** Count vulnerabilities in an `osv-scanner --format json` payload. PURE so it
722
+ * can be unit-tested without running osv-scanner. -1 = unparseable. */
723
+ export function parseOsvVulnCount(stdout) {
724
+ try {
725
+ const parsed = JSON.parse(stdout);
726
+ return (parsed.results ?? [])
727
+ .flatMap((r) => r.packages ?? [])
728
+ .flatMap((p) => p.vulnerabilities ?? []).length;
729
+ }
730
+ catch {
731
+ return -1;
732
+ }
733
+ }
734
+ /**
735
+ * Multi-ecosystem dependency CVE scan via osv-scanner (Google OSV). Provisioned
736
+ * only for ecosystems kit has no dedicated scanner for (go/rust/php/…) — for
737
+ * node it's npm audit, for python pip-audit — so it skips cleanly when absent
738
+ * rather than duplicating those. Resolves mise-first.
739
+ */
740
+ async function checkOsvScanner() {
741
+ const name = "osv-scanner (deps)";
742
+ const osvBin = await resolveToolBin("osv-scanner");
743
+ if (!osvBin) {
744
+ return {
745
+ category: "supply-chain",
746
+ name,
747
+ status: "skip",
748
+ detail: "osv-scanner not installed (mise use aqua:google/osv-scanner)",
749
+ };
750
+ }
751
+ const result = await execFileNoThrow(osvBin, ["--format", "json", "-r", "."], { timeout: 120_000 });
752
+ const count = parseOsvVulnCount(result.stdout);
753
+ if (count < 0) {
754
+ // osv exits non-zero with no JSON when there are no lockfiles to scan.
755
+ return { category: "supply-chain", name, status: "skip", detail: "no lockfiles to scan" };
756
+ }
757
+ if (count === 0) {
758
+ return { category: "supply-chain", name, status: "pass", detail: "no known dependency vulnerabilities" };
759
+ }
760
+ return {
761
+ category: "supply-chain",
762
+ name,
763
+ status: "warn",
764
+ detail: `${count} known dependency vulnerability(ies) -run: osv-scanner -r .`,
765
+ severity: "high",
766
+ };
767
+ }
631
768
  /**
632
769
  * Check dependency licenses for GPL/AGPL that create legal obligations.
633
770
  */
@@ -843,7 +980,7 @@ function describeFindings(findings) {
843
980
  */
844
981
  export async function checkSecurity() {
845
982
  const results = [];
846
- const [npmResult, pipResult, envResult, pinnedResult, secretsScan, socketResult, trivyResult, licenseResult, semgrepResult, bumblebeeResult, ...lockfileResults] = await Promise.all([
983
+ const [npmResult, pipResult, envResult, pinnedResult, secretsScan, socketResult, trivyResult, licenseResult, semgrepResult, bumblebeeResult, trivyConfigResult, osvResult, ...lockfileResults] = await Promise.all([
847
984
  checkNpmAudit(),
848
985
  checkPipAudit(),
849
986
  checkEnvGitignored(),
@@ -854,9 +991,11 @@ export async function checkSecurity() {
854
991
  checkLicenses(),
855
992
  checkSemgrep(),
856
993
  checkBumblebee(),
994
+ checkTrivyConfig(),
995
+ checkOsvScanner(),
857
996
  ...await checkLockfilesCommitted(),
858
997
  ]);
859
- results.push(npmResult, pipResult, envResult, pinnedResult, secretsScan, socketResult, trivyResult, licenseResult, semgrepResult, bumblebeeResult);
998
+ results.push(npmResult, pipResult, envResult, pinnedResult, secretsScan, socketResult, trivyResult, licenseResult, semgrepResult, bumblebeeResult, trivyConfigResult, osvResult);
860
999
  results.push(...lockfileResults);
861
1000
  const exposureResults = await checkServiceExposure();
862
1001
  results.push(...exposureResults);
@@ -1 +1 @@
1
- {"version":3,"file":"check-security.js","sourceRoot":"","sources":["../src/check-security.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"check-security.js","sourceRoot":"","sources":["../src/check-security.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { readFileSync, writeFileSync } from "node:fs";
2
+ import { readFileSync, writeFileSync, existsSync } from "node:fs";
3
3
  import { writeFile, access, mkdir } from "node:fs/promises";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { resolve, dirname, join } from "node:path";
@@ -56,7 +56,7 @@ import { promptConfirm } from "./utils/prompt.js";
56
56
  import { c } from "./utils/colors.js";
57
57
  import { gatherStatus } from "./status.js";
58
58
  import { KIT_FILE, resolveConfigPath } from "./cli-shared.js";
59
- import { checkContext, applyContext, contextPrompt, gatherLive, suggestContextToml } from "./context-lock.js";
59
+ import { checkContext, applyContext, contextPrompt, gatherLive, suggestContextToml, hasLockableContext } from "./context-lock.js";
60
60
  import { cmdEnv } from "./commands/env.js";
61
61
  import { cmdAuth } from "./commands/auth.js";
62
62
  import { cmdAudit } from "./commands/audit.js";
@@ -66,6 +66,8 @@ import { resolveAllAuth } from "./service-auth.js";
66
66
  import { runDoctor } from "./doctor.js";
67
67
  import { detectStack } from "./stack-detector.js";
68
68
  import { generateToml } from "./toml-generator.js";
69
+ import { vaultMeta } from "./vault-meta.js";
70
+ import { vaultCliInstalled } from "./secret-backends.js";
69
71
  import { createPlugin } from "./create-plugin.js";
70
72
  import { cmdPlugin } from "./plugins-cli.js";
71
73
  import { cloneRepository } from "./clone.js";
@@ -630,6 +632,27 @@ async function cmdSecrets() {
630
632
  else if (skipped === "nothing-resolved") {
631
633
  console.log(`\n ${c.yellow}!${c.reset} Skipped .env.local ${c.dim}— no secrets resolved (vault empty/unauthed); existing file left intact${c.reset}`);
632
634
  }
635
+ // Loud, actionable vault-readiness flag. A chosen vault that resolves zero
636
+ // secrets is almost always "CLI installed but not logged in" — surface
637
+ // that once, with the exact next command, instead of leaving the user to
638
+ // infer it from a column of per-key ✗ lines.
639
+ const meta = vaultMeta(secretsConfig.store);
640
+ const resolvedCount = results.filter((r) => r.resolved).length;
641
+ if (meta && results.length > 0 && resolvedCount === 0) {
642
+ const installed = meta.miseTool ? await vaultCliInstalled(meta.miseTool) : true;
643
+ console.log(`\n ${c.yellow}${c.bold}! Vault "${secretsConfig.store}" is configured but resolved 0 secrets.${c.reset}`);
644
+ if (meta.miseTool && !installed) {
645
+ console.log(` ${c.dim}The ${meta.label} CLI isn't installed yet — run ${c.reset}${c.bold}kit setup${c.reset}${c.dim} (installs it via mise).${c.reset}`);
646
+ }
647
+ else if (meta.loginCmd) {
648
+ console.log(` ${c.dim}The ${meta.label} CLI is installed but not authenticated. Log in:${c.reset}`);
649
+ console.log(` ${c.bold}${meta.loginCmd}${c.reset}`);
650
+ if (meta.initCmd) {
651
+ console.log(` ${c.dim}then bind this repo:${c.reset} ${c.bold}${meta.initCmd}${c.reset}`);
652
+ }
653
+ console.log(` ${c.dim}then re-run ${c.reset}${c.bold}kit secrets${c.reset}${c.dim}.${c.reset}`);
654
+ }
655
+ }
633
656
  console.log();
634
657
  return allOk;
635
658
  });
@@ -706,6 +729,27 @@ async function cmdEscalate() {
706
729
  return false;
707
730
  });
708
731
  }
732
+ /**
733
+ * Run a command string from a `.kit.toml [setup]` field. These are commands the
734
+ * user configured themselves, but kit's exec invariant forbids a shell — so we
735
+ * split on whitespace (fine for `pnpm install`, `supabase db push`, `uv sync`,
736
+ * `go mod download`) and REFUSE anything with shell operators rather than
737
+ * mis-running it. Returns true on exit 0.
738
+ */
739
+ async function runConfiguredCommand(label, cmdStr) {
740
+ if (/[&|;<>`$()]/.test(cmdStr)) {
741
+ console.log(` ${c.yellow}!${c.reset} ${label}: ${c.dim}has shell operators — run it yourself: ${c.reset}${c.bold}${cmdStr}${c.reset}`);
742
+ return false;
743
+ }
744
+ console.log(` ${c.dim}$ ${cmdStr}${c.reset}`);
745
+ const res = await executeCommand({ commandArgs: cmdStr.trim().split(/\s+/), cwd: process.cwd() });
746
+ if (res.exitCode === 0) {
747
+ console.log(` ${c.green}✓${c.reset} ${label}`);
748
+ return true;
749
+ }
750
+ console.log(` ${c.red}✗${c.reset} ${label} ${c.dim}(exit ${res.exitCode})${c.reset}`);
751
+ return false;
752
+ }
709
753
  async function cmdSetup() {
710
754
  console.log(`${c.bold}${c.cyan}kit setup${c.reset}`);
711
755
  console.log(`${c.dim}${"─".repeat(50)}${c.reset}\n`);
@@ -739,6 +783,13 @@ async function cmdSetup() {
739
783
  console.log(`${c.dim}Fix the issues above and run ${c.reset}${c.bold}kit setup${c.reset}${c.dim} again.${c.reset}`);
740
784
  return false;
741
785
  }
786
+ // Project dependencies. cmdInstall above provisions the TOOLCHAIN (node, pnpm,
787
+ // … via mise); now install the project's own deps so the repo actually works
788
+ // after setup. The generated [setup].install was never executed before — kit
789
+ // installed the toolchain but left node_modules absent.
790
+ if (config.setup?.install) {
791
+ await runConfiguredCommand("deps installed", config.setup.install);
792
+ }
742
793
  // Step 2: Git Hooks
743
794
  if (config.hooks && Object.keys(config.hooks).length > 0 && isGitRepository()) {
744
795
  console.log(`${c.bold}[2/6] Git Hooks${c.reset}`);
@@ -753,7 +804,39 @@ async function cmdSetup() {
753
804
  }
754
805
  // Step 4: Secrets
755
806
  console.log(`${c.bold}[4/6] Secrets${c.reset}`);
807
+ // Harden .gitignore BEFORE secrets are materialized. kit's headline is
808
+ // "secret-safe", but cmdSecrets writes .env.local below — if the repo's
809
+ // .gitignore doesn't already cover it, the next `git add .` stages real
810
+ // secrets. Patching is a non-destructive, repo-local append, so we do it by
811
+ // default and announce it (standalone `kit security check-gitignore --fix`
812
+ // remains for the manual path).
813
+ if (isGitRepository()) {
814
+ const gi = await checkGitignore(process.cwd());
815
+ if (gi.missingPatterns.length > 0) {
816
+ const patched = await patchGitignore(process.cwd());
817
+ const names = gi.missingPatterns.slice(0, 3).map((m) => m.pattern).join(", ");
818
+ console.log(` ${c.green}✓${c.reset} hardened .gitignore ${c.dim}(+${patched.added}: ${names}${gi.missingPatterns.length > 3 ? ", …" : ""}) — review + commit it${c.reset}`);
819
+ }
820
+ }
756
821
  const secretsOk = await cmdSecrets();
822
+ // [setup].migrate / .seed are intentionally NOT auto-run: a configured migrate
823
+ // (`supabase db push`, `prisma migrate deploy`) can mutate a linked — possibly
824
+ // production — database. Run only on explicit opt-in; otherwise surface the
825
+ // exact command so applying it stays a deliberate human action.
826
+ if (config.setup?.migrate || config.setup?.seed) {
827
+ if (hasFlag(process.argv, "--with-migrate")) {
828
+ console.log(`${c.bold}[+] Migrate / seed${c.reset}`);
829
+ if (config.setup.migrate)
830
+ await runConfiguredCommand("migrate", config.setup.migrate);
831
+ if (config.setup.seed)
832
+ await runConfiguredCommand("seed", config.setup.seed);
833
+ console.log();
834
+ }
835
+ else {
836
+ const cmds = [config.setup.migrate, config.setup.seed].filter(Boolean).join(" · ");
837
+ console.log(` ${c.yellow}!${c.reset} ${c.dim}Skipping migrate/seed (may mutate a real DB). Run deliberately: ${c.reset}${c.bold}${cmds}${c.reset}${c.dim} or ${c.reset}${c.bold}kit setup --with-migrate${c.reset}`);
838
+ }
839
+ }
757
840
  // Step 5: Agent config — teach the present agent(s) to use kit. Idempotent;
758
841
  // only writes a managed block, so re-running setup leaves it unchanged.
759
842
  console.log(`${c.bold}[5/6] Agent config${c.reset}`);
@@ -794,7 +877,16 @@ async function cmdSetup() {
794
877
  }
795
878
  console.log();
796
879
  }
797
- const allOk = installOk && loginOk && secretsOk && verifyOk;
880
+ // Project verify (e.g. the configured build). Distinct from cmdCheck above,
881
+ // which audits setup STATE — this proves the app actually builds. Run last so
882
+ // deps + secrets are in place.
883
+ let setupVerifyOk = true;
884
+ if (config.setup?.verify) {
885
+ console.log(`\n${c.bold}[+] Verify build${c.reset}`);
886
+ setupVerifyOk = await runConfiguredCommand(config.setup.verify, config.setup.verify);
887
+ console.log();
888
+ }
889
+ const allOk = installOk && loginOk && secretsOk && verifyOk && setupVerifyOk;
798
890
  if (allOk) {
799
891
  console.log(`${c.bold}${c.green}Setup complete — you're ready to go! ✓${c.reset}\n`);
800
892
  }
@@ -958,7 +1050,12 @@ async function generateConfigFile(configPath, nonInteractive) {
958
1050
  ]));
959
1051
  console.log();
960
1052
  }
961
- const tomlContent = generateToml(stack, { secretsStore: chosenStore });
1053
+ // Detect a Dockerfile so generateToml can provision the trivy container/IaC
1054
+ // scanner only where it applies.
1055
+ const hasDockerfile = existsSync(resolve(process.cwd(), "Dockerfile")) ||
1056
+ existsSync(resolve(process.cwd(), "docker-compose.yml")) ||
1057
+ existsSync(resolve(process.cwd(), "compose.yml"));
1058
+ const tomlContent = generateToml(stack, { secretsStore: chosenStore, hasDockerfile });
962
1059
  // Show diff preview
963
1060
  console.log(`${c.bold}Preview — .kit.toml${c.reset}\n`);
964
1061
  for (const line of tomlContent.split("\n")) {
@@ -980,8 +1077,57 @@ async function generateConfigFile(configPath, nonInteractive) {
980
1077
  }
981
1078
  await writeFile(configPath, tomlContent, "utf-8");
982
1079
  console.log(` ${c.green}✓${c.reset} Generated ${c.bold}.kit.toml${c.reset}\n`);
1080
+ // Close the loop on the vault choice: tell the user exactly what `kit setup`
1081
+ // will provision and what they still have to do themselves (login is their
1082
+ // account action — kit guides it, never runs it).
1083
+ const meta = vaultMeta(chosenStore);
1084
+ if (meta) {
1085
+ console.log(` ${c.dim}Secret backend: ${c.reset}${c.bold}${meta.label}${c.reset}`);
1086
+ if (meta.miseTool) {
1087
+ console.log(` ${c.green}✓${c.reset} ${c.dim}${c.reset}${c.bold}kit setup${c.reset}${c.dim} will install its CLI via mise${c.reset}`);
1088
+ }
1089
+ if (meta.loginCmd) {
1090
+ const steps = meta.initCmd ? `${meta.loginCmd} && ${meta.initCmd}` : meta.loginCmd;
1091
+ console.log(` ${c.yellow}!${c.reset} ${c.dim}then authenticate (your account): ${c.reset}${c.bold}${steps}${c.reset}`);
1092
+ }
1093
+ console.log();
1094
+ }
983
1095
  return "written";
984
1096
  }
1097
+ /**
1098
+ * Brownfield context-lock offer. If the repo already talks to gcloud / vercel /
1099
+ * github but `.kit.toml` declares no `[context]`, surface the detected
1100
+ * account+project and offer to lock it. kit does NOT install or authenticate
1101
+ * these (cloud env's job) — it locks which account+project this repo is bound to,
1102
+ * the exact pairing where cross-account contamination bugs hide. Default is NO:
1103
+ * the values are the currently-active CLI state, which is what the lock exists to
1104
+ * question, so the user must confirm they're right for THIS repo first.
1105
+ */
1106
+ async function offerContextLock(configPath, nonInteractive) {
1107
+ const live = await gatherLive(process.cwd());
1108
+ if (!hasLockableContext(live))
1109
+ return;
1110
+ const block = suggestContextToml(live);
1111
+ if (!block.trim())
1112
+ return;
1113
+ console.log(`${c.bold}Detected environment${c.reset} ${c.dim}— lock account+project so kit verifies the right one each session:${c.reset}\n`);
1114
+ for (const line of block.split("\n")) {
1115
+ console.log(line.trim() === "" ? "" : ` ${c.dim}${line}${c.reset}`);
1116
+ }
1117
+ console.log(`\n${c.yellow}⚠ These are the currently-active CLI values — verify each is right for THIS repo before locking.${c.reset}`);
1118
+ if (nonInteractive) {
1119
+ console.log(`${c.dim}Non-interactive: not writing. Add the block above to .kit.toml, or run ${c.reset}${c.bold}kit context check${c.reset}${c.dim} to lock it.${c.reset}\n`);
1120
+ return;
1121
+ }
1122
+ const ok = await promptConfirm("Add this [context] lock to .kit.toml? [y/N] ", 10000, false);
1123
+ if (!ok) {
1124
+ console.log(`${c.dim}Skipped — run ${c.reset}${c.bold}kit context check${c.reset}${c.dim} later to add it.${c.reset}\n`);
1125
+ return;
1126
+ }
1127
+ const existing = readFileSync(configPath, "utf-8");
1128
+ await writeFile(configPath, existing.trimEnd() + "\n\n" + block + "\n", "utf-8");
1129
+ console.log(` ${c.green}✓${c.reset} Locked ${c.bold}[context]${c.reset} ${c.dim}→ verify with ${c.reset}${c.bold}kit context check${c.reset}\n`);
1130
+ }
985
1131
  async function cmdInit() {
986
1132
  console.log(`${c.bold}${c.cyan}kit init${c.reset}`);
987
1133
  console.log(`${c.dim}${"─".repeat(50)}${c.reset}\n`);
@@ -1003,6 +1149,11 @@ async function cmdInit() {
1003
1149
  return true; // user declined — exit 0, not an error
1004
1150
  }
1005
1151
  const config = await loadConfig(configPath);
1152
+ // Brownfield: offer to lock the already-active cloud/repo context (no install,
1153
+ // no login — just pin account+project) when none is declared yet.
1154
+ if (!config.context) {
1155
+ await offerContextLock(configPath, nonInteractive);
1156
+ }
1006
1157
  // Check if lock files exist
1007
1158
  const kitMeta = await readkitMeta();
1008
1159
  const skillsLock = await readSkillsLock();