vybekiit 0.7.12 → 0.7.13

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/dist/bin.js CHANGED
@@ -5688,7 +5688,7 @@ var walkPreferenceLadder = (walk) => Effect2.gen(function* () {
5688
5688
  });
5689
5689
 
5690
5690
  // src/cliRunner.ts
5691
- import { readFile as readFile32 } from "fs/promises";
5691
+ import { readFile as readFile33 } from "fs/promises";
5692
5692
  import { dirname as dirname23, join as join61 } from "path";
5693
5693
  import process36 from "process";
5694
5694
  import { fileURLToPath as fileURLToPath10 } from "url";
@@ -10791,7 +10791,7 @@ import open2 from "open";
10791
10791
 
10792
10792
  // src/global/runSessionOne.ts
10793
10793
  import { spawn } from "child_process";
10794
- import { access as access7, readdir as readdir6 } from "fs/promises";
10794
+ import { access as access7, readdir as readdir6, readFile as readFile6 } from "fs/promises";
10795
10795
  import { homedir } from "os";
10796
10796
  import { join as join14 } from "path";
10797
10797
  import process7 from "process";
@@ -11018,8 +11018,10 @@ var BUYER_BUILD_ROOTS = [
11018
11018
  join14("scripts", "lib", "tsupWorkspaceAliases.mjs"),
11019
11019
  "tsup.base.ts"
11020
11020
  ];
11021
+ var LEGACY_CLIENT_STATE_ALIAS = '"@vybekiit/client-state"';
11021
11022
  var repairProjectBuildRoots = async (appPath, deps = {
11022
11023
  pathExists: pathExists3,
11024
+ readText: async (path) => await readFile6(path, "utf8"),
11023
11025
  locateKit: locateKitWorkspace,
11024
11026
  repairFromKit: repairKitBuildRoots
11025
11027
  }) => {
@@ -11027,7 +11029,15 @@ var repairProjectBuildRoots = async (appPath, deps = {
11027
11029
  const checks = await Promise.all(
11028
11030
  BUYER_BUILD_ROOTS.map((relativePath) => deps.pathExists(join14(appPath, relativePath)))
11029
11031
  );
11030
- return checks.every(Boolean);
11032
+ if (!checks.every(Boolean)) {
11033
+ return false;
11034
+ }
11035
+ try {
11036
+ const baseTsconfig = await deps.readText(join14(appPath, "tsconfig.base.json"));
11037
+ return baseTsconfig.includes(LEGACY_CLIENT_STATE_ALIAS);
11038
+ } catch {
11039
+ return false;
11040
+ }
11031
11041
  };
11032
11042
  if (await buildRootsReady()) {
11033
11043
  return true;
@@ -11729,7 +11739,7 @@ var runDocFallback = (args) => {
11729
11739
  import { join as join17, resolve as resolve7 } from "path";
11730
11740
 
11731
11741
  // src/commands/dropFiles.ts
11732
- import { access as access9, cp as cp3, mkdir as mkdir5, readdir as readdir8, readFile as readFile6, writeFile as writeFile5 } from "fs/promises";
11742
+ import { access as access9, cp as cp3, mkdir as mkdir5, readdir as readdir8, readFile as readFile7, writeFile as writeFile5 } from "fs/promises";
11733
11743
  import { dirname as dirname7, join as join16 } from "path";
11734
11744
  import { fileURLToPath as fileURLToPath4 } from "url";
11735
11745
  var HERE4 = dirname7(fileURLToPath4(import.meta.url));
@@ -11793,7 +11803,7 @@ var copyDropTemplate = async (context) => {
11793
11803
  var pinDeps = async (dest) => {
11794
11804
  const pkgPath = join16(dest, "package.json");
11795
11805
  try {
11796
- const raw = await readFile6(pkgPath, "utf8");
11806
+ const raw = await readFile7(pkgPath, "utf8");
11797
11807
  const pkg = JSON.parse(raw);
11798
11808
  for (const field of ["dependencies", "devDependencies"]) {
11799
11809
  const deps = pkg[field];
@@ -12242,7 +12252,7 @@ var createFeedbackIntakeClient = (options = {}) => {
12242
12252
  };
12243
12253
 
12244
12254
  // src/feedback/feedbackFiles.ts
12245
- import { chmod, lstat as lstat2, mkdir as mkdir6, readFile as readFile7, realpath, rename, writeFile as writeFile6 } from "fs/promises";
12255
+ import { chmod, lstat as lstat2, mkdir as mkdir6, readFile as readFile8, realpath, rename, writeFile as writeFile6 } from "fs/promises";
12246
12256
  import { isAbsolute, join as join18, relative } from "path";
12247
12257
  var FeedbackFileError = class extends Error {
12248
12258
  code;
@@ -12279,7 +12289,7 @@ var readFeedbackDraft = async (draftPath, projectRoot) => {
12279
12289
  );
12280
12290
  }
12281
12291
  try {
12282
- return decodeFeedbackDraft(JSON.parse(await readFile7(resolvedDraftPath, "utf8")));
12292
+ return decodeFeedbackDraft(JSON.parse(await readFile8(resolvedDraftPath, "utf8")));
12283
12293
  } catch (error) {
12284
12294
  if (error instanceof FeedbackFileError) {
12285
12295
  throw error;
@@ -12298,7 +12308,7 @@ var recordFeedbackSubmission = async (projectRoot, submission) => {
12298
12308
  await mkdir6(feedbackDirectory, { recursive: true, mode: 448 });
12299
12309
  let submissions = [];
12300
12310
  try {
12301
- const storedSubmissions = JSON.parse(await readFile7(submissionsPath, "utf8"));
12311
+ const storedSubmissions = JSON.parse(await readFile8(submissionsPath, "utf8"));
12302
12312
  if (Array.isArray(storedSubmissions)) {
12303
12313
  submissions = storedSubmissions.filter(
12304
12314
  (entry) => typeof entry === "object" && entry !== null && "fingerprint" in entry && typeof entry.fingerprint === "string" && "reference" in entry && typeof entry.reference === "string" && "submittedAt" in entry && typeof entry.submittedAt === "string"
@@ -12414,13 +12424,13 @@ import { join as join23 } from "path";
12414
12424
 
12415
12425
  // src/commands/initAssets.ts
12416
12426
  import { execFile as execFile6 } from "child_process";
12417
- import { cp as cp4, mkdir as mkdir7, readdir as readdir9, readFile as readFile9, writeFile as writeFile7 } from "fs/promises";
12427
+ import { cp as cp4, mkdir as mkdir7, readdir as readdir9, readFile as readFile10, writeFile as writeFile7 } from "fs/promises";
12418
12428
  import { dirname as dirname8, join as join20 } from "path";
12419
12429
  import { fileURLToPath as fileURLToPath5 } from "url";
12420
12430
  import { promisify as promisify5 } from "util";
12421
12431
 
12422
12432
  // src/commands/initTypes.ts
12423
- import { access as access10, readFile as readFile8 } from "fs/promises";
12433
+ import { access as access10, readFile as readFile9 } from "fs/promises";
12424
12434
  import { join as join19 } from "path";
12425
12435
  var pathExists4 = async (path) => {
12426
12436
  try {
@@ -12432,7 +12442,7 @@ var pathExists4 = async (path) => {
12432
12442
  };
12433
12443
  var readInitPackageJson = async (cwd) => {
12434
12444
  try {
12435
- const raw = await readFile8(join19(cwd, "package.json"), "utf8");
12445
+ const raw = await readFile9(join19(cwd, "package.json"), "utf8");
12436
12446
  return JSON.parse(raw);
12437
12447
  } catch {
12438
12448
  return null;
@@ -12575,7 +12585,7 @@ var adaptWorkflows = async (dir, pm) => {
12575
12585
  await Promise.all(
12576
12586
  workflowFiles.map(async (file) => {
12577
12587
  const path = join20(dir, file);
12578
- let content = await readFile9(path, "utf8");
12588
+ let content = await readFile10(path, "utf8");
12579
12589
  for (const [from, to] of Object.entries(replacements[pm])) {
12580
12590
  content = content.replaceAll(from, to);
12581
12591
  }
@@ -12680,11 +12690,11 @@ var writeInitSuccess = (pm) => {
12680
12690
  };
12681
12691
 
12682
12692
  // src/commands/initPatches.ts
12683
- import { readFile as readFile10, writeFile as writeFile8 } from "fs/promises";
12693
+ import { readFile as readFile11, writeFile as writeFile8 } from "fs/promises";
12684
12694
  import { join as join22 } from "path";
12685
12695
  var patchGitignore = async (cwd) => {
12686
12696
  const gitignorePath = join22(cwd, ".gitignore");
12687
- const content = await pathExists4(gitignorePath) ? await readFile10(gitignorePath, "utf8") : "";
12697
+ const content = await pathExists4(gitignorePath) ? await readFile11(gitignorePath, "utf8") : "";
12688
12698
  const needed = ["dev-scripts/", ".env", ".env.*", "!.env.example"];
12689
12699
  const additions = needed.filter((pattern) => !content.includes(pattern));
12690
12700
  if (additions.length > 0) {
@@ -12764,7 +12774,7 @@ var runInit = async (args) => {
12764
12774
  };
12765
12775
 
12766
12776
  // src/commands/lintExtensionSkill.ts
12767
- import { readFile as readFile11 } from "fs/promises";
12777
+ import { readFile as readFile12 } from "fs/promises";
12768
12778
  var extensionSkillKind = (path, explicit) => {
12769
12779
  if (explicit === "buyer-goal" || explicit === "platform-wrapper" || explicit === "agent-skills-global") {
12770
12780
  return explicit;
@@ -12809,7 +12819,7 @@ var runLintExtensionSkill = async (args) => {
12809
12819
  }
12810
12820
  let content;
12811
12821
  try {
12812
- content = await readFile11(path, "utf8");
12822
+ content = await readFile12(path, "utf8");
12813
12823
  } catch {
12814
12824
  return {
12815
12825
  json: JSON.stringify({ ok: false, error: `Cannot read file: ${path}` }),
@@ -18373,7 +18383,7 @@ var CLOUDFLARE_DASHBOARD_URL = "https://dash.cloudflare.com";
18373
18383
  var CLOUDFLARE_API_BASE = "https://api.cloudflare.com/client/v4";
18374
18384
 
18375
18385
  // ../packages/browserAutomation/src/core/writeEnvBlock.ts
18376
- import { readFile as readFile12, writeFile as writeFile9 } from "fs/promises";
18386
+ import { readFile as readFile13, writeFile as writeFile9 } from "fs/promises";
18377
18387
  import { resolve as resolve11 } from "path";
18378
18388
  var TRAILING_NEWLINES_PATTERN2 = /\n+$/;
18379
18389
  var envAssignmentKey = (line) => {
@@ -18415,7 +18425,7 @@ var upsertEnvAssignment = (lines, key, value) => {
18415
18425
  var writeEnvBlock = async (assignments, cwd = process.cwd(), options = {}) => {
18416
18426
  const fileName = options.fileName ?? ".env";
18417
18427
  const envFilePath = resolve11(cwd, fileName);
18418
- const existing = await readFile12(envFilePath, "utf8").catch(() => "");
18428
+ const existing = await readFile13(envFilePath, "utf8").catch(() => "");
18419
18429
  const startingLines = existing.length > 0 ? existing.split("\n") : [];
18420
18430
  const removed = removeNamedKeys(startingLines, new Set(options.removeKeys ?? []));
18421
18431
  const keysWritten = Object.keys(assignments);
@@ -18614,7 +18624,7 @@ var supabaseEnvBlock = (result) => ({
18614
18624
  });
18615
18625
 
18616
18626
  // ../packages/browserAutomation/src/core/chromeProfilePath.ts
18617
- import { mkdir as mkdir8, readFile as readFile13, writeFile as writeFile10 } from "fs/promises";
18627
+ import { mkdir as mkdir8, readFile as readFile14, writeFile as writeFile10 } from "fs/promises";
18618
18628
  import { homedir as homedir3 } from "os";
18619
18629
  import { join as join31 } from "path";
18620
18630
 
@@ -18645,7 +18655,7 @@ var ENV_KEYS = {
18645
18655
  };
18646
18656
  var readManifest = async () => {
18647
18657
  try {
18648
- const manifestText = await readFile13(MANIFEST_PATH, "utf8");
18658
+ const manifestText = await readFile14(MANIFEST_PATH, "utf8");
18649
18659
  const parsed = JSON.parse(manifestText);
18650
18660
  return parsed !== null && typeof parsed === "object" ? parsed : {};
18651
18661
  } catch {
@@ -19080,7 +19090,7 @@ var verifyUpstash = async (restUrl, restToken) => {
19080
19090
  };
19081
19091
 
19082
19092
  // ../packages/browserAutomation/src/cli/discover.ts
19083
- import { readFile as readFile14 } from "fs/promises";
19093
+ import { readFile as readFile15 } from "fs/promises";
19084
19094
  import { dirname as dirname10, resolve as resolve13 } from "path";
19085
19095
 
19086
19096
  // ../packages/browserAutomation/src/domains/extension/cwsStoreSchema.ts
@@ -19125,7 +19135,7 @@ var discoverStore = async (startDir = process.cwd()) => {
19125
19135
  while (dir !== root) {
19126
19136
  const configPath = cwsJsonPath(dir);
19127
19137
  try {
19128
- const fileText = await readFile14(configPath, "utf8");
19138
+ const fileText = await readFile15(configPath, "utf8");
19129
19139
  const store = parseCwsStoreConfig(JSON.parse(fileText));
19130
19140
  return { repoRoot: dir, store };
19131
19141
  } catch (err) {
@@ -19240,7 +19250,7 @@ var connectToCwsChrome = async (ctx) => {
19240
19250
  };
19241
19251
 
19242
19252
  // ../packages/browserAutomation/src/domains/extension/cwsIdRegistry.ts
19243
- import { mkdir as mkdir9, readFile as readFile15, writeFile as writeFile11 } from "fs/promises";
19253
+ import { mkdir as mkdir9, readFile as readFile16, writeFile as writeFile11 } from "fs/promises";
19244
19254
  import { dirname as dirname11 } from "path";
19245
19255
  var CHROME_WEB_STORE_ID_PATTERN = /^[a-z0-9]{32}$/;
19246
19256
  var recordChromeWebStoreId = async (repoRoot, extensionKey, chromeWebStoreId) => {
@@ -19272,7 +19282,7 @@ var recordChromeWebStoreId = async (repoRoot, extensionKey, chromeWebStoreId) =>
19272
19282
  var isNotFoundError = (error) => error instanceof Error && "code" in error && error.code === "ENOENT";
19273
19283
  var readCwsStoreConfig = async (path) => {
19274
19284
  try {
19275
- const raw = await readFile15(path, "utf8");
19285
+ const raw = await readFile16(path, "utf8");
19276
19286
  return parseCwsStoreConfig(JSON.parse(raw));
19277
19287
  } catch (error) {
19278
19288
  if (isNotFoundError(error)) {
@@ -25849,7 +25859,7 @@ var searchDoctorTools = (query, options) => {
25849
25859
  };
25850
25860
 
25851
25861
  // ../packages/agentMcp/src/server.ts
25852
- import { readFile as readFile17 } from "fs/promises";
25862
+ import { readFile as readFile18 } from "fs/promises";
25853
25863
  import { join as join35 } from "path";
25854
25864
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
25855
25865
  import {
@@ -25861,7 +25871,7 @@ import {
25861
25871
  import { Either as Either8, ParseResult, Schema as Schema11 } from "effect";
25862
25872
 
25863
25873
  // ../packages/agentMcp/src/skills.ts
25864
- import { readdir as readdir10, readFile as readFile16 } from "fs/promises";
25874
+ import { readdir as readdir10, readFile as readFile17 } from "fs/promises";
25865
25875
  import { homedir as homedir4 } from "os";
25866
25876
  import { join as join34, resolve as resolve15, sep } from "path";
25867
25877
  import process14 from "process";
@@ -25991,7 +26001,7 @@ var getSkill = async (projectRoot, skillIdOrFile, options) => {
25991
26001
  continue;
25992
26002
  }
25993
26003
  try {
25994
- const content = await readFile16(absolute, "utf8");
26004
+ const content = await readFile17(absolute, "utf8");
25995
26005
  const goalMatch = content.match(BUYER_GOAL_PATTERN2);
25996
26006
  const lines = content.split("\n").slice(0, excerptLines);
25997
26007
  return {
@@ -26012,7 +26022,7 @@ var getSkill = async (projectRoot, skillIdOrFile, options) => {
26012
26022
  const globalSkillPath = join34(globalSkillsDir, skillFile, "SKILL.md");
26013
26023
  if (isWithinProjectRoot(globalSkillsDir, globalSkillPath)) {
26014
26024
  try {
26015
- const content = await readFile16(globalSkillPath, "utf8");
26025
+ const content = await readFile17(globalSkillPath, "utf8");
26016
26026
  const goalMatch = content.match(BUYER_GOAL_PATTERN2);
26017
26027
  return {
26018
26028
  id: agentEntry?.id ?? entry?.id ?? skillFile,
@@ -26440,7 +26450,7 @@ var loadUiCatalog = async () => {
26440
26450
  return cachedCatalog.catalog;
26441
26451
  }
26442
26452
  try {
26443
- const json = await readFile17(catalogPath, "utf8");
26453
+ const json = await readFile18(catalogPath, "utf8");
26444
26454
  const catalog = loadCatalog(json);
26445
26455
  cachedCatalog = { path: catalogPath, catalog };
26446
26456
  return catalog;
@@ -26675,7 +26685,7 @@ var runNew = async (args) => {
26675
26685
  import process17 from "process";
26676
26686
 
26677
26687
  // src/lib/pageRecipeCatalog.ts
26678
- import { readFile as readFile18 } from "fs/promises";
26688
+ import { readFile as readFile19 } from "fs/promises";
26679
26689
  import { join as join36 } from "path";
26680
26690
  var PAGE_RECIPE_MANIFEST_RELATIVE = join36("scripts", "data", "page-recipe-manifest.json");
26681
26691
  var pageRecipeManifestPath = (kitRoot) => join36(kitRoot, PAGE_RECIPE_MANIFEST_RELATIVE);
@@ -26757,7 +26767,7 @@ var parsePageRecipeManifest = (raw) => {
26757
26767
  };
26758
26768
  var loadPageRecipes = async (kitRoot) => {
26759
26769
  try {
26760
- const raw = await readFile18(pageRecipeManifestPath(kitRoot), "utf8");
26770
+ const raw = await readFile19(pageRecipeManifestPath(kitRoot), "utf8");
26761
26771
  return parsePageRecipeManifest(raw);
26762
26772
  } catch {
26763
26773
  return [];
@@ -26766,7 +26776,7 @@ var loadPageRecipes = async (kitRoot) => {
26766
26776
  var findPageRecipe = (recipes, idOrSlug) => recipes.find((recipe) => recipe.id === idOrSlug || recipe.slug === idOrSlug);
26767
26777
 
26768
26778
  // src/lib/pageRecipeInstall.ts
26769
- import { access as access13, mkdir as mkdir11, readFile as readFile20, writeFile as writeFile13 } from "fs/promises";
26779
+ import { access as access13, mkdir as mkdir11, readFile as readFile21, writeFile as writeFile13 } from "fs/promises";
26770
26780
  import { basename as basename2, dirname as dirname16, join as join39, relative as relative5, resolve as resolve17 } from "path";
26771
26781
 
26772
26782
  // src/lib/appSurface.ts
@@ -26913,7 +26923,7 @@ var rewriteInstalledSource = (source) => (
26913
26923
  );
26914
26924
 
26915
26925
  // src/lib/pageRecipePlanFiles.ts
26916
- import { access as access12, readFile as readFile19 } from "fs/promises";
26926
+ import { access as access12, readFile as readFile20 } from "fs/promises";
26917
26927
  import { basename, dirname as dirname15, join as join38, relative as relative4 } from "path";
26918
26928
 
26919
26929
  // src/lib/pageRecipeRouteStub.ts
@@ -27067,7 +27077,7 @@ var loadSharedModule = async (options) => {
27067
27077
  throw new Error(`Missing shared recipe dependency: ${spec}`);
27068
27078
  }
27069
27079
  const sharedDest = join38(componentsDir, "shared", basename(kitSharedFile));
27070
- const sharedRaw = await readFile19(kitSharedFile, "utf8");
27080
+ const sharedRaw = await readFile20(kitSharedFile, "utf8");
27071
27081
  const sharedContent = rewriteInstalledSource(sharedRaw);
27072
27082
  const nextSpecs = collectRelativeImports(sharedRaw).map((rel) => stripLeadingDotSlash(rel));
27073
27083
  return {
@@ -27207,7 +27217,7 @@ var planPageRecipeInstall = async (options) => {
27207
27217
  `Recipe source not found at ${recipe.sourcePath}. Re-run from a kit workspace or with kit access.`
27208
27218
  );
27209
27219
  }
27210
- const recipeSource = await readFile20(sourceAbs, "utf8");
27220
+ const recipeSource = await readFile21(sourceAbs, "utf8");
27211
27221
  const recipeFileName = basename2(recipe.sourcePath);
27212
27222
  const recipeDest = join39(layout.componentsDir, recipeFileName);
27213
27223
  const shared = await planSharedFiles({
@@ -27758,15 +27768,15 @@ var inferVybeAssistant = (availability) => {
27758
27768
  };
27759
27769
 
27760
27770
  // src/lib/reportModeInstall.ts
27761
- import { access as access14, mkdir as mkdir12, readdir as readdir11, readFile as readFile22, writeFile as writeFile15 } from "fs/promises";
27771
+ import { access as access14, mkdir as mkdir12, readdir as readdir11, readFile as readFile23, writeFile as writeFile15 } from "fs/promises";
27762
27772
  import { dirname as dirname17, join as join40, relative as relative6 } from "path";
27763
27773
 
27764
27774
  // src/lib/packageJsonDeps.ts
27765
- import { readFile as readFile21, writeFile as writeFile14 } from "fs/promises";
27775
+ import { readFile as readFile22, writeFile as writeFile14 } from "fs/promises";
27766
27776
  var ensureDependencies = async (pkgPath, deps) => {
27767
27777
  let raw;
27768
27778
  try {
27769
- raw = await readFile21(pkgPath, "utf8");
27779
+ raw = await readFile22(pkgPath, "utf8");
27770
27780
  } catch {
27771
27781
  return [];
27772
27782
  }
@@ -27812,7 +27822,7 @@ var defaultReportModeFs = {
27812
27822
  listFiles: (dir) => listFilesRecursive(dir),
27813
27823
  readText: async (path) => {
27814
27824
  try {
27815
- return await readFile22(path, "utf8");
27825
+ return await readFile23(path, "utf8");
27816
27826
  } catch {
27817
27827
  return null;
27818
27828
  }
@@ -28341,7 +28351,7 @@ var runAddPiecesInteractive = async () => {
28341
28351
  };
28342
28352
 
28343
28353
  // src/commands/planDataModelCmd.ts
28344
- import { readFile as readFile23 } from "fs/promises";
28354
+ import { readFile as readFile24 } from "fs/promises";
28345
28355
  var PROVIDERS = [
28346
28356
  "supabase",
28347
28357
  "neon",
@@ -28371,7 +28381,7 @@ var runPlanDataModel = async (args) => {
28371
28381
  };
28372
28382
  }
28373
28383
  try {
28374
- const raw = await readFile23(inputPath, "utf8");
28384
+ const raw = await readFile24(inputPath, "utf8");
28375
28385
  const parsed = JSON.parse(raw);
28376
28386
  const { entities } = parsed;
28377
28387
  if (entities === void 0 || entities.length === 0) {
@@ -29267,7 +29277,7 @@ var globalInstallPaths = (configDir = claudeConfigDir()) => ({
29267
29277
  });
29268
29278
 
29269
29279
  // src/global/globalStatus.ts
29270
- import { readFile as readFile24, stat as stat2 } from "fs/promises";
29280
+ import { readFile as readFile25, stat as stat2 } from "fs/promises";
29271
29281
  import { join as join48 } from "path";
29272
29282
 
29273
29283
  // src/global/managedSkills.ts
@@ -29332,7 +29342,7 @@ var exists2 = async (path) => {
29332
29342
  var readGlobalStatus = async (paths) => {
29333
29343
  let hasMemory = false;
29334
29344
  try {
29335
- hasMemory = (await readFile24(paths.memoryFile, "utf8")).includes("BEGIN VYBEKIIT");
29345
+ hasMemory = (await readFile25(paths.memoryFile, "utf8")).includes("BEGIN VYBEKIIT");
29336
29346
  } catch {
29337
29347
  hasMemory = false;
29338
29348
  }
@@ -29357,7 +29367,7 @@ var formatGlobalStatus = (status) => {
29357
29367
  };
29358
29368
 
29359
29369
  // src/doctor/codexConfig.ts
29360
- import { access as access16, mkdir as mkdir14, readFile as readFile25, writeFile as writeFile17 } from "fs/promises";
29370
+ import { access as access16, mkdir as mkdir14, readFile as readFile26, writeFile as writeFile17 } from "fs/promises";
29361
29371
  import { homedir as homedir7 } from "os";
29362
29372
  import { join as join49 } from "path";
29363
29373
  var FEATURES_BLOCK = ["[features]", "skills = true"].join("\n");
@@ -29400,7 +29410,7 @@ var ensureCodexSkillsEnabled = async () => {
29400
29410
  await mkdir14(join49(path, ".."), { recursive: true });
29401
29411
  let previous = "";
29402
29412
  try {
29403
- previous = await readFile25(path, "utf8");
29413
+ previous = await readFile26(path, "utf8");
29404
29414
  } catch (error) {
29405
29415
  if (!(error instanceof Error && "code" in error) || error.code !== "ENOENT") {
29406
29416
  throw error;
@@ -30932,13 +30942,13 @@ var runDoctor = async (log = processDoctorLog, setupScope = {}) => {
30932
30942
  };
30933
30943
 
30934
30944
  // src/global/installState.ts
30935
- import { mkdir as mkdir15, readFile as readFile26, writeFile as writeFile18 } from "fs/promises";
30945
+ import { mkdir as mkdir15, readFile as readFile27, writeFile as writeFile18 } from "fs/promises";
30936
30946
  import { join as join56 } from "path";
30937
30947
  var INSTALL_STATE_FILENAME = ".vybekiit-install.json";
30938
30948
  var installStatePath = (configDir) => join56(configDir, INSTALL_STATE_FILENAME);
30939
30949
  var readInstallState = async (configDir) => {
30940
30950
  try {
30941
- const raw = await readFile26(installStatePath(configDir), "utf8");
30951
+ const raw = await readFile27(installStatePath(configDir), "utf8");
30942
30952
  const parsed = JSON.parse(raw);
30943
30953
  if (typeof parsed.version !== "string" || parsed.version === "") {
30944
30954
  return null;
@@ -30980,7 +30990,7 @@ import process29 from "process";
30980
30990
  import { confirm as confirm3, isCancel as isCancel4 } from "@clack/prompts";
30981
30991
 
30982
30992
  // src/global/awareness.ts
30983
- import { mkdir as mkdir16, readFile as readFile27, writeFile as writeFile19 } from "fs/promises";
30993
+ import { mkdir as mkdir16, readFile as readFile28, writeFile as writeFile19 } from "fs/promises";
30984
30994
  import { dirname as dirname21 } from "path";
30985
30995
  var BEGIN_MARKER = "<!-- BEGIN VYBEKIIT (managed by `vybekiit setup`) -->";
30986
30996
  var END_MARKER = "<!-- END VYBEKIIT -->";
@@ -31036,7 +31046,7 @@ ${block}`;
31036
31046
  };
31037
31047
  var readOrEmpty = async (path) => {
31038
31048
  try {
31039
- return await readFile27(path, "utf8");
31049
+ return await readFile28(path, "utf8");
31040
31050
  } catch (error) {
31041
31051
  if (error instanceof Error && "code" in error && error.code === "ENOENT") {
31042
31052
  return "";
@@ -31108,7 +31118,7 @@ var installAwareness = async (paths) => {
31108
31118
  };
31109
31119
 
31110
31120
  // src/global/cliVersion.ts
31111
- import { readFile as readFile28 } from "fs/promises";
31121
+ import { readFile as readFile29 } from "fs/promises";
31112
31122
  import { dirname as dirname22, join as join57 } from "path";
31113
31123
  import { fileURLToPath as fileURLToPath9 } from "url";
31114
31124
  var MODULE_DIR2 = dirname22(fileURLToPath9(import.meta.url));
@@ -31121,7 +31131,7 @@ var readCliVersion = async () => {
31121
31131
  ];
31122
31132
  for (const candidate of candidates) {
31123
31133
  try {
31124
- const raw = await readFile28(candidate, "utf8");
31134
+ const raw = await readFile29(candidate, "utf8");
31125
31135
  const parsed = JSON.parse(raw);
31126
31136
  if (parsed.version !== void 0 && parsed.version !== "") {
31127
31137
  return parsed.version;
@@ -31326,7 +31336,7 @@ var installGlobalMcp = async (deps = defaultDeps4) => {
31326
31336
  };
31327
31337
 
31328
31338
  // src/global/installGlobalSkills.ts
31329
- import { cp as cp5, mkdir as mkdir17, readdir as readdir13, readFile as readFile29, rm as rm5, stat as stat3, writeFile as writeFile20 } from "fs/promises";
31339
+ import { cp as cp5, mkdir as mkdir17, readdir as readdir13, readFile as readFile30, rm as rm5, stat as stat3, writeFile as writeFile20 } from "fs/promises";
31330
31340
  import { join as join58 } from "path";
31331
31341
  var REQUIRED_MANAGED_SKILLS = ["feedback"];
31332
31342
  var pathExists8 = async (path) => {
@@ -31339,7 +31349,7 @@ var pathExists8 = async (path) => {
31339
31349
  };
31340
31350
  var listBundledSkills = async (sourceDir) => {
31341
31351
  try {
31342
- const manifest = JSON.parse(await readFile29(join58(sourceDir, "manifest.json"), "utf8"));
31352
+ const manifest = JSON.parse(await readFile30(join58(sourceDir, "manifest.json"), "utf8"));
31343
31353
  if (Array.isArray(manifest.skills)) {
31344
31354
  return [...manifest.skills];
31345
31355
  }
@@ -31798,7 +31808,7 @@ var runSetup = async (args = []) => {
31798
31808
 
31799
31809
  // src/commands/syncAgentLayer.ts
31800
31810
  import { execFile as execFile7 } from "child_process";
31801
- import { access as access17, cp as cp6, readFile as readFile30, writeFile as writeFile21 } from "fs/promises";
31811
+ import { access as access17, cp as cp6, readFile as readFile31, writeFile as writeFile21 } from "fs/promises";
31802
31812
  import { join as join59 } from "path";
31803
31813
  import process33 from "process";
31804
31814
  import { promisify as promisify6 } from "util";
@@ -31889,14 +31899,14 @@ var readGoalIndexBeforeSync = async (pathsToSync, cwd, deps) => {
31889
31899
  if (!await deps.pathExists(goalIndexPath)) {
31890
31900
  return;
31891
31901
  }
31892
- return await readFile30(goalIndexPath, "utf8");
31902
+ return await readFile31(goalIndexPath, "utf8");
31893
31903
  };
31894
31904
  var mergeGoalIndexAfterSync = async (cwd, goalIndexBefore) => {
31895
31905
  if (goalIndexBefore === void 0) {
31896
31906
  return;
31897
31907
  }
31898
31908
  const goalIndexPath = join59(cwd, ".vybekiit/agent/goal-index.md");
31899
- const synced = await readFile30(goalIndexPath, "utf8");
31909
+ const synced = await readFile31(goalIndexPath, "utf8");
31900
31910
  const merged = mergeGoalIndexOnSync(synced, goalIndexBefore);
31901
31911
  if (merged !== synced) {
31902
31912
  await writeFile21(goalIndexPath, merged, "utf8");
@@ -32087,7 +32097,7 @@ var formatEnsureStatus = (ensureStatus) => {
32087
32097
  };
32088
32098
 
32089
32099
  // src/prompts/envWizard.ts
32090
- import { readFile as readFile31 } from "fs/promises";
32100
+ import { readFile as readFile32 } from "fs/promises";
32091
32101
  import { join as join60 } from "path";
32092
32102
  import { cancel as cancel3, isCancel as isCancel5, text as text2 } from "@clack/prompts";
32093
32103
  var ENV_KEY_PATTERN = /^[A-Z][A-Z0-9_]*$/;
@@ -32143,7 +32153,7 @@ var runEnvWizard = async (cwd = process.cwd()) => {
32143
32153
  const examplePath = join60(cwd, ".env.example");
32144
32154
  let raw;
32145
32155
  try {
32146
- raw = await readFile31(examplePath, "utf8");
32156
+ raw = await readFile32(examplePath, "utf8");
32147
32157
  } catch {
32148
32158
  process.stderr.write("No .env.example in this folder.\n");
32149
32159
  return 1;
@@ -32152,7 +32162,7 @@ var runEnvWizard = async (cwd = process.cwd()) => {
32152
32162
  const envPath = join60(cwd, ".env");
32153
32163
  let envContent = "";
32154
32164
  try {
32155
- envContent = await readFile31(envPath, "utf8");
32165
+ envContent = await readFile32(envPath, "utf8");
32156
32166
  } catch {
32157
32167
  }
32158
32168
  for (const key of keys) {
@@ -32224,7 +32234,7 @@ var HERE7 = dirname23(fileURLToPath10(import.meta.url));
32224
32234
  var GATE_EXEMPT = /* @__PURE__ */ new Set(["doctor", "setup", "global-install", "update", "feedback", "mcp"]);
32225
32235
  var readVersion = async () => {
32226
32236
  try {
32227
- const raw = await readFile32(join61(HERE7, "..", "package.json"), "utf8");
32237
+ const raw = await readFile33(join61(HERE7, "..", "package.json"), "utf8");
32228
32238
  const parsed = JSON.parse(raw);
32229
32239
  if (parsed.version !== void 0 && parsed.version !== "") {
32230
32240
  return parsed.version;
@@ -13,12 +13,10 @@ const path = require("path");
13
13
 
14
14
  const POSTHOG_HOST = "https://us.i.posthog.com";
15
15
 
16
- // PostHog project API key. This is a *write-only, public* ingestion key — the
17
- // same kind embedded in browser snippets so it is safe to commit. Override
18
- // per environment with EXPO_SKILLS_POSTHOG_KEY (e.g. a staging project).
16
+ // PostHog project API key. Supply it explicitly when telemetry is enabled with
17
+ // EXPO_SKILLS_POSTHOG_KEY; the bundled skill never carries a live project token.
19
18
  // NOTE: never put a PostHog *personal* API key (phx_...) here — those are secret.
20
- const POSTHOG_PROJECT_API_KEY =
21
- process.env.EXPO_SKILLS_POSTHOG_KEY || "phc_w8xRytdAAwkV3oExnuUozqH64PMzCmDLnyoChpPBcNXs";
19
+ const POSTHOG_PROJECT_API_KEY = process.env.EXPO_SKILLS_POSTHOG_KEY || "";
22
20
 
23
21
  const SOURCE = "expo-skills";
24
22
  const INSTALLATION_ID_PATH = path.join(os.homedir(), ".expo-skills", "installation-id");
@@ -79,11 +77,10 @@ function telemetryActive() {
79
77
  return DEFAULT_ON;
80
78
  }
81
79
 
82
- // A real key ships in this file, so this check passes by default. This guard only
83
- // makes the scripts inert if someone strips the key (e.g. a fork or private build).
80
+ // Keep telemetry inert until the user supplies a project token explicitly.
84
81
  function telemetryConfigured() {
85
82
  const key = String(POSTHOG_PROJECT_API_KEY || "").trim();
86
- return key.length > 0 && key !== "phc_REPLACE_ME";
83
+ return key.length > 0;
87
84
  }
88
85
 
89
86
  // Best-effort agent-harness label for the event (default when --agent-harness isn't passed).
@@ -213,7 +213,7 @@ PostHogSDK.shared.reset()
213
213
  <EnvironmentVariables>
214
214
  <EnvironmentVariable
215
215
  key = "POSTHOG_PROJECT_TOKEN"
216
- value = "phc_jE9kXU0depRekiuabVROlxxkIXn95NqsNO3qB4qNKtl"
216
+ value = "YOUR_POSTHOG_PROJECT_TOKEN"
217
217
  isEnabled = "YES">
218
218
  </EnvironmentVariable>
219
219
  <EnvironmentVariable
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vybekiit",
3
- "version": "0.7.12",
3
+ "version": "0.7.13",
4
4
  "description": "Choose your services, sign in, create a VybeKiit app, and open its verified local welcome page.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -32,13 +32,13 @@
32
32
  "tsup": "8.5.1",
33
33
  "typescript": "5.7.2",
34
34
  "vitest": "3.2.6",
35
- "@vybekiit/agent-kit": "0.7.12",
36
- "@vybekiit/core": "0.7.12",
37
- "@vybekiit/payments": "0.7.12",
38
- "@vybekiit/db": "0.7.12",
39
- "@vybekiit/agent-mcp": "0.7.12",
40
- "@vybekiit/deploy": "0.7.12",
41
- "@vybekiit/report-mode": "0.7.12"
35
+ "@vybekiit/agent-mcp": "0.7.13",
36
+ "@vybekiit/core": "0.7.13",
37
+ "@vybekiit/db": "0.7.13",
38
+ "@vybekiit/agent-kit": "0.7.13",
39
+ "@vybekiit/payments": "0.7.13",
40
+ "@vybekiit/report-mode": "0.7.13",
41
+ "@vybekiit/deploy": "0.7.13"
42
42
  },
43
43
  "scripts": {
44
44
  "build": "tsup && node scripts/bundleGlobalSkills.mjs",