envibe 0.2.0 → 0.2.2

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/cli/index.js CHANGED
@@ -15545,7 +15545,7 @@ function serializeManifest(manifest) {
15545
15545
  version: manifest.version,
15546
15546
  variables: manifest.variables
15547
15547
  });
15548
- const header = `# aienv manifest - AI access control for environment variables
15548
+ const header = `# envibe manifest - AI access control for environment variables
15549
15549
  # Access levels:
15550
15550
  # full - AI can see and modify the value
15551
15551
  # read-only - AI can see but not modify
@@ -15588,245 +15588,193 @@ var CLASSIFICATION_PATTERNS = [
15588
15588
  name: "stripe-secret",
15589
15589
  pattern: /^STRIPE_SECRET/i,
15590
15590
  suggestedAccess: "hidden" /* HIDDEN */,
15591
- description: "Stripe secret key",
15592
- format: "key",
15593
- example: "sk_live_..."
15591
+ description: "Stripe secret key"
15594
15592
  },
15595
15593
  {
15596
15594
  name: "private-key",
15597
15595
  pattern: /PRIVATE[_-]?KEY/i,
15598
15596
  suggestedAccess: "hidden" /* HIDDEN */,
15599
- description: "Private key material",
15600
- format: "pem",
15601
- example: "-----BEGIN PRIVATE KEY-----..."
15597
+ description: "Private key material"
15602
15598
  },
15603
15599
  {
15604
15600
  name: "signing-secret",
15605
15601
  pattern: /SIGNING[_-]?SECRET/i,
15606
15602
  suggestedAccess: "hidden" /* HIDDEN */,
15607
- description: "Signing secret",
15608
- format: "key"
15603
+ description: "Signing secret"
15609
15604
  },
15610
15605
  {
15611
15606
  name: "api-key",
15612
15607
  pattern: /API[_-]?KEY/i,
15613
15608
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15614
- description: "API key",
15615
- format: "key",
15616
- example: "sk-..."
15609
+ description: "API key"
15617
15610
  },
15618
15611
  {
15619
15612
  name: "secret-key",
15620
15613
  pattern: /SECRET[_-]?KEY/i,
15621
15614
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15622
- description: "Secret key",
15623
- format: "key"
15615
+ description: "Secret key"
15624
15616
  },
15625
15617
  {
15626
15618
  name: "access-key",
15627
15619
  pattern: /ACCESS[_-]?KEY/i,
15628
15620
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15629
- description: "Access key",
15630
- format: "key",
15631
- example: "AKIA..."
15621
+ description: "Access key"
15632
15622
  },
15633
15623
  {
15634
15624
  name: "auth-token",
15635
15625
  pattern: /AUTH[_-]?TOKEN/i,
15636
15626
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15637
- description: "Authentication token",
15638
- format: "token"
15627
+ description: "Authentication token"
15639
15628
  },
15640
15629
  {
15641
15630
  name: "bearer-token",
15642
15631
  pattern: /BEARER[_-]?TOKEN/i,
15643
15632
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15644
- description: "Bearer token",
15645
- format: "token"
15633
+ description: "Bearer token"
15646
15634
  },
15647
15635
  {
15648
15636
  name: "jwt-secret",
15649
15637
  pattern: /JWT[_-]?SECRET/i,
15650
15638
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15651
- description: "JWT signing secret",
15652
- format: "key"
15639
+ description: "JWT signing secret"
15653
15640
  },
15654
15641
  {
15655
15642
  name: "password",
15656
15643
  pattern: /PASSWORD/i,
15657
15644
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15658
- description: "Password credential",
15659
- format: "password"
15645
+ description: "Password credential"
15660
15646
  },
15661
15647
  {
15662
15648
  name: "credential",
15663
15649
  pattern: /CREDENTIAL/i,
15664
15650
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15665
- description: "Credential",
15666
- format: "key"
15651
+ description: "Credential"
15667
15652
  },
15668
15653
  {
15669
15654
  name: "secret",
15670
15655
  pattern: /SECRET/i,
15671
15656
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15672
- description: "Secret value",
15673
- format: "key"
15657
+ description: "Secret value"
15674
15658
  },
15675
15659
  {
15676
15660
  name: "token",
15677
15661
  pattern: /TOKEN$/i,
15678
15662
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15679
- description: "Token",
15680
- format: "token"
15663
+ description: "Token"
15681
15664
  },
15682
15665
  {
15683
15666
  name: "database-url",
15684
15667
  pattern: /DATABASE[_-]?URL/i,
15685
15668
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15686
- description: "Database connection URL (may contain password)",
15687
- format: "url",
15688
- example: "postgres://user:pass@localhost:5432/dbname"
15669
+ description: "Database connection URL (may contain password)"
15689
15670
  },
15690
15671
  {
15691
15672
  name: "redis-url",
15692
15673
  pattern: /REDIS[_-]?URL/i,
15693
15674
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15694
- description: "Redis connection URL (may contain password)",
15695
- format: "url",
15696
- example: "redis://user:pass@localhost:6379/0"
15675
+ description: "Redis connection URL (may contain password)"
15697
15676
  },
15698
15677
  {
15699
15678
  name: "mongodb-uri",
15700
15679
  pattern: /MONGO(DB)?[_-]?URI/i,
15701
15680
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15702
- description: "MongoDB connection URI (may contain password)",
15703
- format: "url",
15704
- example: "mongodb://user:pass@localhost:27017/dbname"
15681
+ description: "MongoDB connection URI (may contain password)"
15705
15682
  },
15706
15683
  {
15707
15684
  name: "connection-string",
15708
15685
  pattern: /CONNECTION[_-]?STRING/i,
15709
15686
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
15710
- description: "Connection string (may contain password)",
15711
- format: "url"
15687
+ description: "Connection string (may contain password)"
15712
15688
  },
15713
15689
  {
15714
15690
  name: "url-suffix",
15715
15691
  pattern: /_URL$/i,
15716
15692
  suggestedAccess: "read-only" /* READ_ONLY */,
15717
- description: "URL endpoint",
15718
- format: "url",
15719
- example: "https://api.example.com"
15693
+ description: "URL endpoint"
15720
15694
  },
15721
15695
  {
15722
15696
  name: "uri-suffix",
15723
15697
  pattern: /_URI$/i,
15724
15698
  suggestedAccess: "read-only" /* READ_ONLY */,
15725
- description: "URI endpoint",
15726
- format: "url"
15699
+ description: "URI endpoint"
15727
15700
  },
15728
15701
  {
15729
15702
  name: "host",
15730
15703
  pattern: /_HOST$/i,
15731
15704
  suggestedAccess: "read-only" /* READ_ONLY */,
15732
- description: "Host address",
15733
- format: "hostname",
15734
- example: "localhost"
15705
+ description: "Host address"
15735
15706
  },
15736
15707
  {
15737
15708
  name: "node-env",
15738
15709
  pattern: /^NODE_ENV$/i,
15739
15710
  suggestedAccess: "full" /* FULL */,
15740
- description: "Node.js environment mode",
15741
- format: "enum",
15742
- example: "development | production | test"
15711
+ description: "Node.js environment mode"
15743
15712
  },
15744
15713
  {
15745
15714
  name: "env-suffix",
15746
15715
  pattern: /_ENV$/i,
15747
15716
  suggestedAccess: "full" /* FULL */,
15748
- description: "Environment setting",
15749
- format: "string"
15717
+ description: "Environment setting"
15750
15718
  },
15751
15719
  {
15752
15720
  name: "debug",
15753
15721
  pattern: /DEBUG/i,
15754
15722
  suggestedAccess: "full" /* FULL */,
15755
- description: "Debug flag",
15756
- format: "boolean",
15757
- example: "true | false"
15723
+ description: "Debug flag"
15758
15724
  },
15759
15725
  {
15760
15726
  name: "log-level",
15761
15727
  pattern: /LOG[_-]?LEVEL/i,
15762
15728
  suggestedAccess: "full" /* FULL */,
15763
- description: "Logging level",
15764
- format: "enum",
15765
- example: "debug | info | warn | error"
15729
+ description: "Logging level"
15766
15730
  },
15767
15731
  {
15768
15732
  name: "port",
15769
15733
  pattern: /^PORT$/i,
15770
15734
  suggestedAccess: "full" /* FULL */,
15771
- description: "Server port",
15772
- format: "number",
15773
- example: "3000"
15735
+ description: "Server port"
15774
15736
  },
15775
15737
  {
15776
15738
  name: "port-suffix",
15777
15739
  pattern: /_PORT$/i,
15778
15740
  suggestedAccess: "full" /* FULL */,
15779
- description: "Port number",
15780
- format: "number",
15781
- example: "5432"
15741
+ description: "Port number"
15782
15742
  },
15783
15743
  {
15784
15744
  name: "timeout",
15785
15745
  pattern: /TIMEOUT/i,
15786
15746
  suggestedAccess: "full" /* FULL */,
15787
- description: "Timeout setting",
15788
- format: "number",
15789
- example: "30000"
15747
+ description: "Timeout setting"
15790
15748
  },
15791
15749
  {
15792
15750
  name: "max-size",
15793
15751
  pattern: /MAX[_-]?(SIZE|LENGTH|COUNT)/i,
15794
15752
  suggestedAccess: "full" /* FULL */,
15795
- description: "Size/count limit",
15796
- format: "number",
15797
- example: "100"
15753
+ description: "Size/count limit"
15798
15754
  },
15799
15755
  {
15800
15756
  name: "enable-disable",
15801
15757
  pattern: /(ENABLE|DISABLE)[_-]/i,
15802
15758
  suggestedAccess: "full" /* FULL */,
15803
- description: "Feature flag",
15804
- format: "boolean",
15805
- example: "true | false"
15759
+ description: "Feature flag"
15806
15760
  },
15807
15761
  {
15808
15762
  name: "feature-flag",
15809
15763
  pattern: /FEATURE[_-]/i,
15810
15764
  suggestedAccess: "full" /* FULL */,
15811
- description: "Feature flag",
15812
- format: "boolean",
15813
- example: "true | false"
15765
+ description: "Feature flag"
15814
15766
  },
15815
15767
  {
15816
15768
  name: "region",
15817
15769
  pattern: /_REGION$/i,
15818
15770
  suggestedAccess: "full" /* FULL */,
15819
- description: "Cloud region",
15820
- format: "string",
15821
- example: "us-east-1"
15771
+ description: "Cloud region"
15822
15772
  },
15823
15773
  {
15824
15774
  name: "version",
15825
15775
  pattern: /_VERSION$/i,
15826
15776
  suggestedAccess: "full" /* FULL */,
15827
- description: "Version number",
15828
- format: "string",
15829
- example: "1.0.0"
15777
+ description: "Version number"
15830
15778
  }
15831
15779
  ];
15832
15780
  function classifyVariable(name) {
@@ -15834,9 +15782,7 @@ function classifyVariable(name) {
15834
15782
  if (pattern.pattern.test(name)) {
15835
15783
  return {
15836
15784
  access: pattern.suggestedAccess,
15837
- description: pattern.description,
15838
- format: pattern.format,
15839
- example: pattern.example
15785
+ description: pattern.description
15840
15786
  };
15841
15787
  }
15842
15788
  }
@@ -15920,9 +15866,9 @@ function filterForAI(env, manifest) {
15920
15866
  }
15921
15867
  function generateAIEnvContent(variables) {
15922
15868
  const lines = [
15923
- "# Generated by aienv - AI-safe view of environment variables",
15869
+ "# Generated by envibe - AI-safe view of environment variables",
15924
15870
  "# See .env.manifest.yaml for access rules",
15925
- "# DO NOT EDIT - regenerate with: aienv export --for-ai",
15871
+ "# DO NOT EDIT - regenerate with: envibe generate",
15926
15872
  ""
15927
15873
  ];
15928
15874
  for (const variable of variables) {
@@ -16113,8 +16059,8 @@ Created ${manifestPath}`);
16113
16059
  console.log(`
16114
16060
  Next steps:`);
16115
16061
  console.log(` 1. Review and adjust access levels in ${manifestPath}`);
16116
- console.log(" 2. Run: aienv generate");
16117
- console.log(" 3. Run: aienv setup (to configure Claude Code)");
16062
+ console.log(" 2. Run: envibe generate");
16063
+ console.log(" 3. Run: envibe setup (to configure Claude Code)");
16118
16064
  });
16119
16065
 
16120
16066
  // src/cli/commands/generate.ts
@@ -16141,7 +16087,7 @@ Access level summary:`);
16141
16087
  }
16142
16088
  } catch (error) {
16143
16089
  if (error instanceof Error && error.message.includes("not found")) {
16144
- console.error("Error: No manifest found. Run 'aienv init' first.");
16090
+ console.error("Error: No manifest found. Run 'envibe init' first.");
16145
16091
  process.exit(1);
16146
16092
  }
16147
16093
  throw error;
@@ -16205,7 +16151,7 @@ var viewCommand = new Command("view").description("Display environment variables
16205
16151
  }
16206
16152
  } catch (error) {
16207
16153
  if (error instanceof Error && error.message.includes("not found")) {
16208
- console.error("Error: No manifest found. Run 'aienv init' first.");
16154
+ console.error("Error: No manifest found. Run 'envibe init' first.");
16209
16155
  process.exit(1);
16210
16156
  }
16211
16157
  throw error;
@@ -16247,7 +16193,7 @@ To bypass access control, use --force (not recommended)`);
16247
16193
  }
16248
16194
  } catch (error) {
16249
16195
  if (error instanceof Error && error.message.includes("not found")) {
16250
- console.error("Error: No manifest found. Run 'aienv init' first.");
16196
+ console.error("Error: No manifest found. Run 'envibe init' first.");
16251
16197
  process.exit(1);
16252
16198
  }
16253
16199
  throw error;
@@ -16322,7 +16268,7 @@ Summary: ${errors2.length} errors, ${warnings.length} warnings`);
16322
16268
  }
16323
16269
  } catch (error) {
16324
16270
  if (error instanceof Error && error.message.includes("not found")) {
16325
- console.error("Error: No manifest found. Run 'aienv init' first.");
16271
+ console.error("Error: No manifest found. Run 'envibe init' first.");
16326
16272
  process.exit(1);
16327
16273
  }
16328
16274
  throw error;
@@ -16478,7 +16424,7 @@ var EXAMPLE_FILES = [
16478
16424
  ".env.development.example"
16479
16425
  ];
16480
16426
  var GITIGNORE_PATTERNS = [
16481
- "# aienv - environment files with secrets",
16427
+ "# envibe - environment files with secrets",
16482
16428
  ".env",
16483
16429
  ".env.local",
16484
16430
  ".env.development",
@@ -16488,7 +16434,7 @@ var GITIGNORE_PATTERNS = [
16488
16434
  ".env.secrets",
16489
16435
  ".env.keys",
16490
16436
  "",
16491
- "# aienv - generated AI-safe view (regenerated)",
16437
+ "# envibe - generated AI-safe view (regenerated)",
16492
16438
  ".env.ai"
16493
16439
  ];
16494
16440
  var FALLBACK_MANIFEST = {
@@ -16573,7 +16519,7 @@ async function classifyVariablesInteractive(varNames) {
16573
16519
  return result;
16574
16520
  }
16575
16521
  var setupCommand = new Command("setup").description("Full setup: init manifest, generate .env.ai, configure Claude Code").option("-i, --interactive", "Interactively configure access levels for each variable").option("--skip-claude", "Skip Claude Code settings configuration").option("--skip-gitignore", "Skip .gitignore configuration").action(async (options) => {
16576
- console.log(`Setting up aienv...
16522
+ console.log(`Setting up envibe...
16577
16523
  `);
16578
16524
  const manifestPath = getManifestFilename();
16579
16525
  const manifestFile = Bun.file(manifestPath);
@@ -16640,7 +16586,7 @@ var setupCommand = new Command("setup").description("Full setup: init manifest,
16640
16586
  Setup complete! Next steps:`);
16641
16587
  console.log(" 1. Review .env.manifest.yaml and adjust access levels");
16642
16588
  console.log(" 2. Create .env with your actual secrets (it's gitignored)");
16643
- console.log(" 3. Run 'aienv generate' to update .env.ai");
16589
+ console.log(" 3. Run 'envibe generate' to update .env.ai");
16644
16590
  console.log(" 4. AI will read .env.ai and use MCP tools (secrets protected)");
16645
16591
  });
16646
16592
  async function configureGitignore() {
@@ -23001,8 +22947,8 @@ async function ensureSetup() {
23001
22947
  }
23002
22948
  async function startMCPServer() {
23003
22949
  const server = new Server({
23004
- name: "aienv",
23005
- version: "0.1.0"
22950
+ name: "envibe",
22951
+ version: "0.2.2"
23006
22952
  }, {
23007
22953
  capabilities: {
23008
22954
  tools: {},
package/dist/index.js CHANGED
@@ -13494,7 +13494,7 @@ function serializeManifest(manifest) {
13494
13494
  version: manifest.version,
13495
13495
  variables: manifest.variables
13496
13496
  });
13497
- const header = `# aienv manifest - AI access control for environment variables
13497
+ const header = `# envibe manifest - AI access control for environment variables
13498
13498
  # Access levels:
13499
13499
  # full - AI can see and modify the value
13500
13500
  # read-only - AI can see but not modify
@@ -13549,245 +13549,193 @@ var CLASSIFICATION_PATTERNS = [
13549
13549
  name: "stripe-secret",
13550
13550
  pattern: /^STRIPE_SECRET/i,
13551
13551
  suggestedAccess: "hidden" /* HIDDEN */,
13552
- description: "Stripe secret key",
13553
- format: "key",
13554
- example: "sk_live_..."
13552
+ description: "Stripe secret key"
13555
13553
  },
13556
13554
  {
13557
13555
  name: "private-key",
13558
13556
  pattern: /PRIVATE[_-]?KEY/i,
13559
13557
  suggestedAccess: "hidden" /* HIDDEN */,
13560
- description: "Private key material",
13561
- format: "pem",
13562
- example: "-----BEGIN PRIVATE KEY-----..."
13558
+ description: "Private key material"
13563
13559
  },
13564
13560
  {
13565
13561
  name: "signing-secret",
13566
13562
  pattern: /SIGNING[_-]?SECRET/i,
13567
13563
  suggestedAccess: "hidden" /* HIDDEN */,
13568
- description: "Signing secret",
13569
- format: "key"
13564
+ description: "Signing secret"
13570
13565
  },
13571
13566
  {
13572
13567
  name: "api-key",
13573
13568
  pattern: /API[_-]?KEY/i,
13574
13569
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13575
- description: "API key",
13576
- format: "key",
13577
- example: "sk-..."
13570
+ description: "API key"
13578
13571
  },
13579
13572
  {
13580
13573
  name: "secret-key",
13581
13574
  pattern: /SECRET[_-]?KEY/i,
13582
13575
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13583
- description: "Secret key",
13584
- format: "key"
13576
+ description: "Secret key"
13585
13577
  },
13586
13578
  {
13587
13579
  name: "access-key",
13588
13580
  pattern: /ACCESS[_-]?KEY/i,
13589
13581
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13590
- description: "Access key",
13591
- format: "key",
13592
- example: "AKIA..."
13582
+ description: "Access key"
13593
13583
  },
13594
13584
  {
13595
13585
  name: "auth-token",
13596
13586
  pattern: /AUTH[_-]?TOKEN/i,
13597
13587
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13598
- description: "Authentication token",
13599
- format: "token"
13588
+ description: "Authentication token"
13600
13589
  },
13601
13590
  {
13602
13591
  name: "bearer-token",
13603
13592
  pattern: /BEARER[_-]?TOKEN/i,
13604
13593
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13605
- description: "Bearer token",
13606
- format: "token"
13594
+ description: "Bearer token"
13607
13595
  },
13608
13596
  {
13609
13597
  name: "jwt-secret",
13610
13598
  pattern: /JWT[_-]?SECRET/i,
13611
13599
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13612
- description: "JWT signing secret",
13613
- format: "key"
13600
+ description: "JWT signing secret"
13614
13601
  },
13615
13602
  {
13616
13603
  name: "password",
13617
13604
  pattern: /PASSWORD/i,
13618
13605
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13619
- description: "Password credential",
13620
- format: "password"
13606
+ description: "Password credential"
13621
13607
  },
13622
13608
  {
13623
13609
  name: "credential",
13624
13610
  pattern: /CREDENTIAL/i,
13625
13611
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13626
- description: "Credential",
13627
- format: "key"
13612
+ description: "Credential"
13628
13613
  },
13629
13614
  {
13630
13615
  name: "secret",
13631
13616
  pattern: /SECRET/i,
13632
13617
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13633
- description: "Secret value",
13634
- format: "key"
13618
+ description: "Secret value"
13635
13619
  },
13636
13620
  {
13637
13621
  name: "token",
13638
13622
  pattern: /TOKEN$/i,
13639
13623
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13640
- description: "Token",
13641
- format: "token"
13624
+ description: "Token"
13642
13625
  },
13643
13626
  {
13644
13627
  name: "database-url",
13645
13628
  pattern: /DATABASE[_-]?URL/i,
13646
13629
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13647
- description: "Database connection URL (may contain password)",
13648
- format: "url",
13649
- example: "postgres://user:pass@localhost:5432/dbname"
13630
+ description: "Database connection URL (may contain password)"
13650
13631
  },
13651
13632
  {
13652
13633
  name: "redis-url",
13653
13634
  pattern: /REDIS[_-]?URL/i,
13654
13635
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13655
- description: "Redis connection URL (may contain password)",
13656
- format: "url",
13657
- example: "redis://user:pass@localhost:6379/0"
13636
+ description: "Redis connection URL (may contain password)"
13658
13637
  },
13659
13638
  {
13660
13639
  name: "mongodb-uri",
13661
13640
  pattern: /MONGO(DB)?[_-]?URI/i,
13662
13641
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13663
- description: "MongoDB connection URI (may contain password)",
13664
- format: "url",
13665
- example: "mongodb://user:pass@localhost:27017/dbname"
13642
+ description: "MongoDB connection URI (may contain password)"
13666
13643
  },
13667
13644
  {
13668
13645
  name: "connection-string",
13669
13646
  pattern: /CONNECTION[_-]?STRING/i,
13670
13647
  suggestedAccess: "placeholder" /* PLACEHOLDER */,
13671
- description: "Connection string (may contain password)",
13672
- format: "url"
13648
+ description: "Connection string (may contain password)"
13673
13649
  },
13674
13650
  {
13675
13651
  name: "url-suffix",
13676
13652
  pattern: /_URL$/i,
13677
13653
  suggestedAccess: "read-only" /* READ_ONLY */,
13678
- description: "URL endpoint",
13679
- format: "url",
13680
- example: "https://api.example.com"
13654
+ description: "URL endpoint"
13681
13655
  },
13682
13656
  {
13683
13657
  name: "uri-suffix",
13684
13658
  pattern: /_URI$/i,
13685
13659
  suggestedAccess: "read-only" /* READ_ONLY */,
13686
- description: "URI endpoint",
13687
- format: "url"
13660
+ description: "URI endpoint"
13688
13661
  },
13689
13662
  {
13690
13663
  name: "host",
13691
13664
  pattern: /_HOST$/i,
13692
13665
  suggestedAccess: "read-only" /* READ_ONLY */,
13693
- description: "Host address",
13694
- format: "hostname",
13695
- example: "localhost"
13666
+ description: "Host address"
13696
13667
  },
13697
13668
  {
13698
13669
  name: "node-env",
13699
13670
  pattern: /^NODE_ENV$/i,
13700
13671
  suggestedAccess: "full" /* FULL */,
13701
- description: "Node.js environment mode",
13702
- format: "enum",
13703
- example: "development | production | test"
13672
+ description: "Node.js environment mode"
13704
13673
  },
13705
13674
  {
13706
13675
  name: "env-suffix",
13707
13676
  pattern: /_ENV$/i,
13708
13677
  suggestedAccess: "full" /* FULL */,
13709
- description: "Environment setting",
13710
- format: "string"
13678
+ description: "Environment setting"
13711
13679
  },
13712
13680
  {
13713
13681
  name: "debug",
13714
13682
  pattern: /DEBUG/i,
13715
13683
  suggestedAccess: "full" /* FULL */,
13716
- description: "Debug flag",
13717
- format: "boolean",
13718
- example: "true | false"
13684
+ description: "Debug flag"
13719
13685
  },
13720
13686
  {
13721
13687
  name: "log-level",
13722
13688
  pattern: /LOG[_-]?LEVEL/i,
13723
13689
  suggestedAccess: "full" /* FULL */,
13724
- description: "Logging level",
13725
- format: "enum",
13726
- example: "debug | info | warn | error"
13690
+ description: "Logging level"
13727
13691
  },
13728
13692
  {
13729
13693
  name: "port",
13730
13694
  pattern: /^PORT$/i,
13731
13695
  suggestedAccess: "full" /* FULL */,
13732
- description: "Server port",
13733
- format: "number",
13734
- example: "3000"
13696
+ description: "Server port"
13735
13697
  },
13736
13698
  {
13737
13699
  name: "port-suffix",
13738
13700
  pattern: /_PORT$/i,
13739
13701
  suggestedAccess: "full" /* FULL */,
13740
- description: "Port number",
13741
- format: "number",
13742
- example: "5432"
13702
+ description: "Port number"
13743
13703
  },
13744
13704
  {
13745
13705
  name: "timeout",
13746
13706
  pattern: /TIMEOUT/i,
13747
13707
  suggestedAccess: "full" /* FULL */,
13748
- description: "Timeout setting",
13749
- format: "number",
13750
- example: "30000"
13708
+ description: "Timeout setting"
13751
13709
  },
13752
13710
  {
13753
13711
  name: "max-size",
13754
13712
  pattern: /MAX[_-]?(SIZE|LENGTH|COUNT)/i,
13755
13713
  suggestedAccess: "full" /* FULL */,
13756
- description: "Size/count limit",
13757
- format: "number",
13758
- example: "100"
13714
+ description: "Size/count limit"
13759
13715
  },
13760
13716
  {
13761
13717
  name: "enable-disable",
13762
13718
  pattern: /(ENABLE|DISABLE)[_-]/i,
13763
13719
  suggestedAccess: "full" /* FULL */,
13764
- description: "Feature flag",
13765
- format: "boolean",
13766
- example: "true | false"
13720
+ description: "Feature flag"
13767
13721
  },
13768
13722
  {
13769
13723
  name: "feature-flag",
13770
13724
  pattern: /FEATURE[_-]/i,
13771
13725
  suggestedAccess: "full" /* FULL */,
13772
- description: "Feature flag",
13773
- format: "boolean",
13774
- example: "true | false"
13726
+ description: "Feature flag"
13775
13727
  },
13776
13728
  {
13777
13729
  name: "region",
13778
13730
  pattern: /_REGION$/i,
13779
13731
  suggestedAccess: "full" /* FULL */,
13780
- description: "Cloud region",
13781
- format: "string",
13782
- example: "us-east-1"
13732
+ description: "Cloud region"
13783
13733
  },
13784
13734
  {
13785
13735
  name: "version",
13786
13736
  pattern: /_VERSION$/i,
13787
13737
  suggestedAccess: "full" /* FULL */,
13788
- description: "Version number",
13789
- format: "string",
13790
- example: "1.0.0"
13738
+ description: "Version number"
13791
13739
  }
13792
13740
  ];
13793
13741
  function classifyVariable(name) {
@@ -13795,9 +13743,7 @@ function classifyVariable(name) {
13795
13743
  if (pattern.pattern.test(name)) {
13796
13744
  return {
13797
13745
  access: pattern.suggestedAccess,
13798
- description: pattern.description,
13799
- format: pattern.format,
13800
- example: pattern.example
13746
+ description: pattern.description
13801
13747
  };
13802
13748
  }
13803
13749
  }
@@ -13881,9 +13827,9 @@ function filterForAI(env, manifest) {
13881
13827
  }
13882
13828
  function generateAIEnvContent(variables) {
13883
13829
  const lines = [
13884
- "# Generated by aienv - AI-safe view of environment variables",
13830
+ "# Generated by envibe - AI-safe view of environment variables",
13885
13831
  "# See .env.manifest.yaml for access rules",
13886
- "# DO NOT EDIT - regenerate with: aienv export --for-ai",
13832
+ "# DO NOT EDIT - regenerate with: envibe generate",
13887
13833
  ""
13888
13834
  ];
13889
13835
  for (const variable of variables) {
@@ -20510,8 +20456,8 @@ async function ensureSetup() {
20510
20456
  }
20511
20457
  async function startMCPServer() {
20512
20458
  const server = new Server({
20513
- name: "aienv",
20514
- version: "0.1.0"
20459
+ name: "envibe",
20460
+ version: "0.2.2"
20515
20461
  }, {
20516
20462
  capabilities: {
20517
20463
  tools: {},
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "envibe",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "The missing permission layer between AI agents and your .env",
5
5
  "type": "module",
6
6
  "bin": {