@posthog/wizard 2.65.0 → 2.66.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/dist/{add-mcp-server-to-clients-ArtlMX9-.js → add-mcp-server-to-clients-DWDEuDUR.js} +209 -45
- package/dist/add-mcp-server-to-clients-DWDEuDUR.js.map +1 -0
- package/dist/{agent-interface-ORzGEFNM.js → agent-interface-D3MNaDp3.js} +337 -44
- package/dist/agent-interface-D3MNaDp3.js.map +1 -0
- package/dist/{agent-prompt-loader-D3w6sc34.js → agent-prompt-loader-D8Bajo-L.js} +5 -5
- package/dist/{agent-prompt-loader-D3w6sc34.js.map → agent-prompt-loader-D8Bajo-L.js.map} +1 -1
- package/dist/{agent-runner-Ca-e2TOQ.js → agent-runner-DEeMqJxy.js} +100 -49
- package/dist/agent-runner-DEeMqJxy.js.map +1 -0
- package/dist/{analytics-zBrIVjMV.js → analytics-D8JNuPAT.js} +2 -2
- package/dist/{analytics-zBrIVjMV.js.map → analytics-D8JNuPAT.js.map} +1 -1
- package/dist/analytics-DN3Kzf7H.js +2 -0
- package/dist/{api-Wgb7AhrP.js → api-CemGgyBv.js} +3 -3
- package/dist/{api-Wgb7AhrP.js.map → api-CemGgyBv.js.map} +1 -1
- package/dist/bin.js +95 -67
- package/dist/bin.js.map +1 -1
- package/dist/{bounded-fs-DqsVmh4r.js → bounded-fs-C6OjqZst.js} +3 -3
- package/dist/{bounded-fs-DqsVmh4r.js.map → bounded-fs-C6OjqZst.js.map} +1 -1
- package/dist/{ci-install-D1QqmJIc.js → ci-install-DIB2n4Ju.js} +4 -4
- package/dist/{ci-install-D1QqmJIc.js.map → ci-install-DIB2n4Ju.js.map} +1 -1
- package/dist/{debug-Cm1hvkVy.js → debug-BKqv-yfT.js} +3 -3
- package/dist/{debug-Cm1hvkVy.js.map → debug-BKqv-yfT.js.map} +1 -1
- package/dist/{debug-CtQ13sCW.js → debug-H-GTKvvU.js} +1 -1
- package/dist/{env-api-key-CdI2XZIz.js → env-api-key-CzHDwfV2.js} +2 -2
- package/dist/{env-api-key-CdI2XZIz.js.map → env-api-key-CzHDwfV2.js.map} +1 -1
- package/dist/{environment-BhFvfkQg.js → environment-Cl-fIQku.js} +4 -4
- package/dist/{environment-BhFvfkQg.js.map → environment-Cl-fIQku.js.map} +1 -1
- package/dist/{file-watcher-Dciz09Rr.js → file-watcher-Cr-4tA-e.js} +2 -2
- package/dist/{file-watcher-Dciz09Rr.js.map → file-watcher-Cr-4tA-e.js.map} +1 -1
- package/dist/{headless-ui-B4FnKm11.js → headless-ui-DT3Db1bk.js} +2 -2
- package/dist/{headless-ui-B4FnKm11.js.map → headless-ui-DT3Db1bk.js.map} +1 -1
- package/dist/{interactive-DxHFVYr2.js → interactive-D3LdFxZG.js} +2 -2
- package/dist/{interactive-DxHFVYr2.js.map → interactive-D3LdFxZG.js.map} +1 -1
- package/dist/{mcp-t0UxAPur.js → mcp-BjckYQmP.js} +2 -2
- package/dist/{mcp-t0UxAPur.js.map → mcp-BjckYQmP.js.map} +1 -1
- package/dist/mcp-install-smoke-test.ts +477 -0
- package/dist/{mcp-prompt-streaming-ro98iUDc.js → mcp-prompt-streaming--sRErHKv.js} +4 -4
- package/dist/{mcp-prompt-streaming-ro98iUDc.js.map → mcp-prompt-streaming--sRErHKv.js.map} +1 -1
- package/dist/{non-interactive-BA2L_jDT.js → non-interactive-CNoYoEZp.js} +2 -2
- package/dist/{non-interactive-BA2L_jDT.js.map → non-interactive-CNoYoEZp.js.map} +1 -1
- package/dist/{orchestrator-tools-vZmNsHy9.js → orchestrator-tools-8bGyDDhn.js} +3 -3
- package/dist/{orchestrator-tools-vZmNsHy9.js.map → orchestrator-tools-8bGyDDhn.js.map} +1 -1
- package/dist/{package-manager-DgqJdAQk.js → package-manager-BQDHm7ER.js} +2 -2
- package/dist/{package-manager-DgqJdAQk.js.map → package-manager-BQDHm7ER.js.map} +1 -1
- package/dist/{pi-nwrCARRp.js → pi-W-4RUPFY.js} +11 -11
- package/dist/{pi-nwrCARRp.js.map → pi-W-4RUPFY.js.map} +1 -1
- package/dist/{playground-xkEke_h0.js → playground-uHHgZChe.js} +7 -7
- package/dist/{playground-xkEke_h0.js.map → playground-uHHgZChe.js.map} +1 -1
- package/dist/{posthog-9To56cSd.js → posthog-ChzdlmCs.js} +2 -2
- package/dist/{posthog-9To56cSd.js.map → posthog-ChzdlmCs.js.map} +1 -1
- package/dist/{posthog-integration-CoPvN6YZ.js → posthog-integration-LxEBGkoe.js} +661 -35
- package/dist/posthog-integration-LxEBGkoe.js.map +1 -0
- package/dist/{provisioning-BYFSHSHY.js → provisioning-BHTl91OZ.js} +3 -3
- package/dist/{provisioning-BYFSHSHY.js.map → provisioning-BHTl91OZ.js.map} +1 -1
- package/dist/{queue-tools-BREbgGSC.js → queue-tools-DABh1Ssc.js} +33 -7
- package/dist/queue-tools-DABh1Ssc.js.map +1 -0
- package/dist/{registry-DGJQ_8QI.js → registry-CxNpCNAj.js} +5 -5
- package/dist/{registry-DGJQ_8QI.js.map → registry-CxNpCNAj.js.map} +1 -1
- package/dist/{security-wc-naGq5.js → security-B4jU_-7q.js} +5 -5
- package/dist/{security-wc-naGq5.js.map → security-B4jU_-7q.js.map} +1 -1
- package/dist/{setup-utils-Cz0wPLsQ.js → setup-utils-aWZEdfwh.js} +9 -9
- package/dist/{setup-utils-Cz0wPLsQ.js.map → setup-utils-aWZEdfwh.js.map} +1 -1
- package/dist/{start-tui-DDW9uVnD.js → start-tui-BQH4mQIZ.js} +43 -21
- package/dist/start-tui-BQH4mQIZ.js.map +1 -0
- package/dist/{steps-CZI0B24_.js → steps-5HAqjUvn.js} +7 -7
- package/dist/{steps-CZI0B24_.js.map → steps-5HAqjUvn.js.map} +1 -1
- package/dist/{store-xMkU8xAa.js → store-P_7zUfbj.js} +7 -6
- package/dist/{store-xMkU8xAa.js.map → store-P_7zUfbj.js.map} +1 -1
- package/dist/{subagent-BztacyoV.js → subagent-uGPDXPfS.js} +2 -2
- package/dist/{subagent-BztacyoV.js.map → subagent-uGPDXPfS.js.map} +1 -1
- package/dist/{task-CJ7x3McC.js → task-oh8OAnvR.js} +12 -12
- package/dist/{task-CJ7x3McC.js.map → task-oh8OAnvR.js.map} +1 -1
- package/dist/{task-stream-BK7JQ27G.js → task-stream-jUARpyB5.js} +5 -5
- package/dist/{task-stream-BK7JQ27G.js.map → task-stream-jUARpyB5.js.map} +1 -1
- package/dist/{tasks-FGzp_zBd.js → tasks-2mu3lAvm.js} +2 -2
- package/dist/{tasks-FGzp_zBd.js.map → tasks-2mu3lAvm.js.map} +1 -1
- package/dist/{telemetry-By56gAtF.js → telemetry-BllPiBKw.js} +3 -3
- package/dist/{telemetry-By56gAtF.js.map → telemetry-BllPiBKw.js.map} +1 -1
- package/dist/{terminal-C_rmkaku.js → terminal-aWQrDy8s.js} +72 -79
- package/dist/terminal-aWQrDy8s.js.map +1 -0
- package/dist/{tools-BpCJgMez.js → tools-u8TaJFqa.js} +54 -47
- package/dist/tools-u8TaJFqa.js.map +1 -0
- package/dist/{wizard-abort-CzwID162.js → wizard-abort-D9jiMkZA.js} +4 -4
- package/dist/{wizard-abort-CzwID162.js.map → wizard-abort-D9jiMkZA.js.map} +1 -1
- package/dist/{wizard-abort-BlDla_Jd.js → wizard-abort-pFFH7dcx.js} +1 -1
- package/dist/{wizard-session-UxA_A0cA.js → wizard-session-Cw7-_OcZ.js} +1 -1
- package/dist/{wizard-session-Bn6dO1gE.js → wizard-session-DTyLMPsX.js} +2 -1
- package/dist/{wizard-session-Bn6dO1gE.js.map → wizard-session-DTyLMPsX.js.map} +1 -1
- package/dist/{yara-hooks-BrisBebM.js → yara-hooks-BXDBIOBq.js} +4 -4
- package/dist/{yara-hooks-BrisBebM.js.map → yara-hooks-BXDBIOBq.js.map} +1 -1
- package/dist/yara-hooks-i2jOabhI.js +2 -0
- package/package.json +2 -1
- package/dist/add-mcp-server-to-clients-ArtlMX9-.js.map +0 -1
- package/dist/agent-interface-ORzGEFNM.js.map +0 -1
- package/dist/agent-runner-Ca-e2TOQ.js.map +0 -1
- package/dist/analytics-C4j6grao.js +0 -2
- package/dist/posthog-integration-CoPvN6YZ.js.map +0 -1
- package/dist/queue-tools-BREbgGSC.js.map +0 -1
- package/dist/start-tui-DDW9uVnD.js.map +0 -1
- package/dist/terminal-C_rmkaku.js.map +0 -1
- package/dist/tools-BpCJgMez.js.map +0 -1
- package/dist/yara-hooks-D2B7Fd9G.js +0 -2
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { L as Integration, N as HAIKU_MODEL, O as DETECTION_TIMEOUT_MS, _ as evaluateWizardReadiness, at as WIZARD_INTERACTION_EVENT_NAME, f as getUI, g as SIGNUP_WIZARD_READINESS_CONFIG, mt as getSkillsBaseUrl, s as logToFile, v as getBlockingServiceKeys, x as AGENTIC_DETECTION_TIMEOUT_MS } from "./debug-
|
|
2
|
-
import { n as analytics } from "./analytics-
|
|
3
|
-
import { i as withUtm, n as openTrackedLink } from "./telemetry-
|
|
4
|
-
import { a as safeReadFile, i as readProjectFile, o as walkProjectFiles } from "./bounded-fs-
|
|
5
|
-
import { i as tryGetPackageJson, n as isUsingTypeScript } from "./setup-utils-
|
|
6
|
-
import { i as requestDeepLink } from "./provisioning-
|
|
7
|
-
import "./wizard-session-
|
|
8
|
-
import { i as wizardAbort } from "./wizard-abort-
|
|
9
|
-
import { n as runAgent, r as shouldDisableAsk, s as authenticate } from "./agent-runner-
|
|
10
|
-
import {
|
|
11
|
-
import { h as EVENT_PLAN_FILE } from "./yara-hooks-
|
|
12
|
-
import { a as detectNodePackageManagers } from "./package-manager-
|
|
13
|
-
import { i as SPINNER_MESSAGE, t as FRAMEWORK_REGISTRY } from "./registry-
|
|
1
|
+
import { L as Integration, N as HAIKU_MODEL, O as DETECTION_TIMEOUT_MS, _ as evaluateWizardReadiness, at as WIZARD_INTERACTION_EVENT_NAME, f as getUI, g as SIGNUP_WIZARD_READINESS_CONFIG, mt as getSkillsBaseUrl, s as logToFile, v as getBlockingServiceKeys, x as AGENTIC_DETECTION_TIMEOUT_MS } from "./debug-BKqv-yfT.js";
|
|
2
|
+
import { n as analytics } from "./analytics-D8JNuPAT.js";
|
|
3
|
+
import { i as withUtm, n as openTrackedLink } from "./telemetry-BllPiBKw.js";
|
|
4
|
+
import { a as safeReadFile, i as readProjectFile, o as walkProjectFiles } from "./bounded-fs-C6OjqZst.js";
|
|
5
|
+
import { i as tryGetPackageJson, n as isUsingTypeScript } from "./setup-utils-aWZEdfwh.js";
|
|
6
|
+
import { i as requestDeepLink } from "./provisioning-BHTl91OZ.js";
|
|
7
|
+
import "./wizard-session-DTyLMPsX.js";
|
|
8
|
+
import { i as wizardAbort } from "./wizard-abort-D9jiMkZA.js";
|
|
9
|
+
import { n as runAgent, r as shouldDisableAsk, s as authenticate } from "./agent-runner-DEeMqJxy.js";
|
|
10
|
+
import { D as WIZARD_TOOL_NAMES, H as isEnvFileName, U as parseEnvKeyNames, V as MAX_ENV_KEY_SET, W as toPromptSafeRelativePath, i as runAgent$1, n as buildRunTags, p as AgentSignals, r as initializeAgent } from "./agent-interface-D3MNaDp3.js";
|
|
11
|
+
import { h as EVENT_PLAN_FILE } from "./yara-hooks-BXDBIOBq.js";
|
|
12
|
+
import { a as detectNodePackageManagers } from "./package-manager-BQDHm7ER.js";
|
|
13
|
+
import { i as SPINNER_MESSAGE, t as FRAMEWORK_REGISTRY } from "./registry-CxNpCNAj.js";
|
|
14
14
|
import * as semver from "semver";
|
|
15
15
|
import { existsSync, statSync } from "fs";
|
|
16
16
|
import { isAbsolute, join, resolve, sep } from "path";
|
|
@@ -688,6 +688,71 @@ const SOURCE_DETECTORS = [
|
|
|
688
688
|
envKeys: [/^CONVEX_/, /^NEXT_PUBLIC_CONVEX_URL$/]
|
|
689
689
|
}
|
|
690
690
|
},
|
|
691
|
+
{
|
|
692
|
+
kind: "Firebase",
|
|
693
|
+
label: "Firebase",
|
|
694
|
+
mode: "in-cli",
|
|
695
|
+
signals: {
|
|
696
|
+
npm: ["firebase-admin", "firebase"],
|
|
697
|
+
python: ["firebase-admin"],
|
|
698
|
+
envKeys: [/^FIREBASE_/, /^NEXT_PUBLIC_FIREBASE_/]
|
|
699
|
+
}
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
kind: "Neon",
|
|
703
|
+
label: "Neon",
|
|
704
|
+
mode: "in-cli",
|
|
705
|
+
signals: {
|
|
706
|
+
npm: ["@neondatabase/serverless"],
|
|
707
|
+
envKeys: [/^NEON_/]
|
|
708
|
+
}
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
kind: "PlanetScaleMySQL",
|
|
712
|
+
label: "PlanetScale MySQL",
|
|
713
|
+
mode: "in-cli",
|
|
714
|
+
signals: {
|
|
715
|
+
npm: ["@planetscale/database"],
|
|
716
|
+
envKeys: [/^PLANETSCALE_/]
|
|
717
|
+
}
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
kind: "DynamoDB",
|
|
721
|
+
label: "DynamoDB",
|
|
722
|
+
mode: "in-cli",
|
|
723
|
+
signals: {
|
|
724
|
+
npm: ["@aws-sdk/client-dynamodb", "@aws-sdk/lib-dynamodb"],
|
|
725
|
+
python: ["pynamodb"]
|
|
726
|
+
}
|
|
727
|
+
},
|
|
728
|
+
{
|
|
729
|
+
kind: "Motherduck",
|
|
730
|
+
label: "MotherDuck",
|
|
731
|
+
mode: "in-cli",
|
|
732
|
+
signals: {
|
|
733
|
+
npm: ["@motherduck/wasm-client"],
|
|
734
|
+
envKeys: [/^MOTHERDUCK_/]
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
kind: "Databricks",
|
|
739
|
+
label: "Databricks",
|
|
740
|
+
mode: "in-cli",
|
|
741
|
+
signals: {
|
|
742
|
+
npm: ["@databricks/sql"],
|
|
743
|
+
python: ["databricks-sql-connector", "databricks-sdk"],
|
|
744
|
+
envKeys: [/^DATABRICKS_/]
|
|
745
|
+
}
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
kind: "Singlestore",
|
|
749
|
+
label: "SingleStore",
|
|
750
|
+
mode: "in-cli",
|
|
751
|
+
signals: {
|
|
752
|
+
python: ["singlestoredb"],
|
|
753
|
+
envKeys: [/^SINGLESTORE_/]
|
|
754
|
+
}
|
|
755
|
+
},
|
|
691
756
|
{
|
|
692
757
|
kind: "Stripe",
|
|
693
758
|
label: "Stripe",
|
|
@@ -1369,6 +1434,55 @@ const SOURCE_DETECTORS = [
|
|
|
1369
1434
|
envKeys: [/^OPENROUTER_/]
|
|
1370
1435
|
}
|
|
1371
1436
|
},
|
|
1437
|
+
{
|
|
1438
|
+
kind: "Browserbase",
|
|
1439
|
+
label: "Browserbase",
|
|
1440
|
+
mode: "in-cli",
|
|
1441
|
+
signals: {
|
|
1442
|
+
npm: ["@browserbasehq/sdk", "@browserbasehq/stagehand"],
|
|
1443
|
+
python: ["browserbase"],
|
|
1444
|
+
envKeys: [/^BROWSERBASE_/]
|
|
1445
|
+
}
|
|
1446
|
+
},
|
|
1447
|
+
{
|
|
1448
|
+
kind: "E2B",
|
|
1449
|
+
label: "E2B",
|
|
1450
|
+
mode: "in-cli",
|
|
1451
|
+
signals: {
|
|
1452
|
+
npm: ["e2b", "@e2b/code-interpreter"],
|
|
1453
|
+
python: ["e2b", "e2b-code-interpreter"],
|
|
1454
|
+
envKeys: [/^E2B_/]
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
{
|
|
1458
|
+
kind: "WeightsAndBiases",
|
|
1459
|
+
label: "Weights & Biases",
|
|
1460
|
+
mode: "in-cli",
|
|
1461
|
+
signals: {
|
|
1462
|
+
python: ["wandb"],
|
|
1463
|
+
envKeys: [/^WANDB_/]
|
|
1464
|
+
}
|
|
1465
|
+
},
|
|
1466
|
+
{
|
|
1467
|
+
kind: "LlamaCloud",
|
|
1468
|
+
label: "LlamaCloud",
|
|
1469
|
+
mode: "in-cli",
|
|
1470
|
+
signals: {
|
|
1471
|
+
npm: ["llama-cloud-services"],
|
|
1472
|
+
python: ["llama-cloud-services"],
|
|
1473
|
+
envKeys: [/^LLAMA_CLOUD_/]
|
|
1474
|
+
}
|
|
1475
|
+
},
|
|
1476
|
+
{
|
|
1477
|
+
kind: "Zep",
|
|
1478
|
+
label: "Zep",
|
|
1479
|
+
mode: "in-cli",
|
|
1480
|
+
signals: {
|
|
1481
|
+
npm: ["@getzep/zep-cloud"],
|
|
1482
|
+
python: ["zep-cloud"],
|
|
1483
|
+
envKeys: [/^ZEP_API_KEY$/]
|
|
1484
|
+
}
|
|
1485
|
+
},
|
|
1372
1486
|
{
|
|
1373
1487
|
kind: "Paystack",
|
|
1374
1488
|
label: "Paystack",
|
|
@@ -1453,6 +1567,84 @@ const SOURCE_DETECTORS = [
|
|
|
1453
1567
|
envKeys: [/^INVOICED_/]
|
|
1454
1568
|
}
|
|
1455
1569
|
},
|
|
1570
|
+
{
|
|
1571
|
+
kind: "LemonSqueezy",
|
|
1572
|
+
label: "Lemon Squeezy",
|
|
1573
|
+
mode: "in-cli",
|
|
1574
|
+
signals: {
|
|
1575
|
+
npm: ["@lemonsqueezy/lemonsqueezy.js"],
|
|
1576
|
+
envKeys: [/^LEMONSQUEEZY_/, /^LEMON_SQUEEZY_/]
|
|
1577
|
+
}
|
|
1578
|
+
},
|
|
1579
|
+
{
|
|
1580
|
+
kind: "Razorpay",
|
|
1581
|
+
label: "Razorpay",
|
|
1582
|
+
mode: "in-cli",
|
|
1583
|
+
signals: {
|
|
1584
|
+
npm: ["razorpay"],
|
|
1585
|
+
python: ["razorpay"],
|
|
1586
|
+
ruby: ["razorpay"],
|
|
1587
|
+
envKeys: [/^RAZORPAY_/]
|
|
1588
|
+
}
|
|
1589
|
+
},
|
|
1590
|
+
{
|
|
1591
|
+
kind: "Adyen",
|
|
1592
|
+
label: "Adyen",
|
|
1593
|
+
mode: "in-cli",
|
|
1594
|
+
signals: {
|
|
1595
|
+
npm: ["@adyen/api-library"],
|
|
1596
|
+
python: ["adyen"],
|
|
1597
|
+
envKeys: [/^ADYEN_/]
|
|
1598
|
+
}
|
|
1599
|
+
},
|
|
1600
|
+
{
|
|
1601
|
+
kind: "ChartMogul",
|
|
1602
|
+
label: "ChartMogul",
|
|
1603
|
+
mode: "in-cli",
|
|
1604
|
+
signals: {
|
|
1605
|
+
npm: ["chartmogul-node"],
|
|
1606
|
+
python: ["chartmogul"],
|
|
1607
|
+
envKeys: [/^CHARTMOGUL_/]
|
|
1608
|
+
}
|
|
1609
|
+
},
|
|
1610
|
+
{
|
|
1611
|
+
kind: "Airwallex",
|
|
1612
|
+
label: "Airwallex",
|
|
1613
|
+
mode: "in-cli",
|
|
1614
|
+
signals: {
|
|
1615
|
+
npm: ["airwallex-payment-elements"],
|
|
1616
|
+
envKeys: [/^AIRWALLEX_/]
|
|
1617
|
+
}
|
|
1618
|
+
},
|
|
1619
|
+
{
|
|
1620
|
+
kind: "Flutterwave",
|
|
1621
|
+
label: "Flutterwave",
|
|
1622
|
+
mode: "in-cli",
|
|
1623
|
+
signals: {
|
|
1624
|
+
npm: ["flutterwave-node-v3"],
|
|
1625
|
+
python: ["flutterwave"],
|
|
1626
|
+
envKeys: [/^FLUTTERWAVE_/, /^FLW_(PUBLIC|SECRET)_KEY$/]
|
|
1627
|
+
}
|
|
1628
|
+
},
|
|
1629
|
+
{
|
|
1630
|
+
kind: "DodoPayments",
|
|
1631
|
+
label: "Dodo Payments",
|
|
1632
|
+
mode: "in-cli",
|
|
1633
|
+
signals: {
|
|
1634
|
+
npm: ["dodopayments"],
|
|
1635
|
+
python: ["dodopayments"],
|
|
1636
|
+
envKeys: [/^DODO_PAYMENTS_/]
|
|
1637
|
+
}
|
|
1638
|
+
},
|
|
1639
|
+
{
|
|
1640
|
+
kind: "Whop",
|
|
1641
|
+
label: "Whop",
|
|
1642
|
+
mode: "in-cli",
|
|
1643
|
+
signals: {
|
|
1644
|
+
npm: ["@whop/api", "@whop-apps/sdk"],
|
|
1645
|
+
envKeys: [/^WHOP_/]
|
|
1646
|
+
}
|
|
1647
|
+
},
|
|
1456
1648
|
{
|
|
1457
1649
|
kind: "SparkPost",
|
|
1458
1650
|
label: "SparkPost",
|
|
@@ -1527,6 +1719,90 @@ const SOURCE_DETECTORS = [
|
|
|
1527
1719
|
mode: "in-cli",
|
|
1528
1720
|
signals: { envKeys: [/^LEMLIST_/] }
|
|
1529
1721
|
},
|
|
1722
|
+
{
|
|
1723
|
+
kind: "Loops",
|
|
1724
|
+
label: "Loops",
|
|
1725
|
+
mode: "in-cli",
|
|
1726
|
+
signals: {
|
|
1727
|
+
npm: ["loops"],
|
|
1728
|
+
envKeys: [/^LOOPS_/]
|
|
1729
|
+
}
|
|
1730
|
+
},
|
|
1731
|
+
{
|
|
1732
|
+
kind: "Knock",
|
|
1733
|
+
label: "Knock",
|
|
1734
|
+
mode: "in-cli",
|
|
1735
|
+
signals: {
|
|
1736
|
+
npm: ["@knocklabs/node", "@knocklabs/client"],
|
|
1737
|
+
python: ["knockapi"],
|
|
1738
|
+
envKeys: [/^KNOCK_/]
|
|
1739
|
+
}
|
|
1740
|
+
},
|
|
1741
|
+
{
|
|
1742
|
+
kind: "AwsSes",
|
|
1743
|
+
label: "Amazon SES",
|
|
1744
|
+
mode: "in-cli",
|
|
1745
|
+
signals: {
|
|
1746
|
+
npm: ["@aws-sdk/client-ses", "@aws-sdk/client-sesv2"],
|
|
1747
|
+
envKeys: [/^AWS_SES_/]
|
|
1748
|
+
}
|
|
1749
|
+
},
|
|
1750
|
+
{
|
|
1751
|
+
kind: "Beehiiv",
|
|
1752
|
+
label: "beehiiv",
|
|
1753
|
+
mode: "in-cli",
|
|
1754
|
+
signals: { envKeys: [/^BEEHIIV_/] }
|
|
1755
|
+
},
|
|
1756
|
+
{
|
|
1757
|
+
kind: "Mailtrap",
|
|
1758
|
+
label: "Mailtrap",
|
|
1759
|
+
mode: "in-cli",
|
|
1760
|
+
signals: {
|
|
1761
|
+
npm: ["mailtrap"],
|
|
1762
|
+
python: ["mailtrap"],
|
|
1763
|
+
envKeys: [/^MAILTRAP_/]
|
|
1764
|
+
}
|
|
1765
|
+
},
|
|
1766
|
+
{
|
|
1767
|
+
kind: "Plunk",
|
|
1768
|
+
label: "Plunk",
|
|
1769
|
+
mode: "in-cli",
|
|
1770
|
+
signals: {
|
|
1771
|
+
npm: ["@plunk/node"],
|
|
1772
|
+
envKeys: [/^PLUNK_/]
|
|
1773
|
+
}
|
|
1774
|
+
},
|
|
1775
|
+
{
|
|
1776
|
+
kind: "Ortto",
|
|
1777
|
+
label: "Ortto",
|
|
1778
|
+
mode: "in-cli",
|
|
1779
|
+
signals: { envKeys: [/^ORTTO_/] }
|
|
1780
|
+
},
|
|
1781
|
+
{
|
|
1782
|
+
kind: "Postscript",
|
|
1783
|
+
label: "Postscript",
|
|
1784
|
+
mode: "in-cli",
|
|
1785
|
+
signals: { envKeys: [/^POSTSCRIPT_/] }
|
|
1786
|
+
},
|
|
1787
|
+
{
|
|
1788
|
+
kind: "Marketo",
|
|
1789
|
+
label: "Marketo",
|
|
1790
|
+
mode: "in-cli",
|
|
1791
|
+
signals: {
|
|
1792
|
+
python: ["marketorestpython"],
|
|
1793
|
+
envKeys: [/^MARKETO_/]
|
|
1794
|
+
}
|
|
1795
|
+
},
|
|
1796
|
+
{
|
|
1797
|
+
kind: "Lob",
|
|
1798
|
+
label: "Lob",
|
|
1799
|
+
mode: "in-cli",
|
|
1800
|
+
signals: {
|
|
1801
|
+
npm: ["lob"],
|
|
1802
|
+
python: ["lob"],
|
|
1803
|
+
envKeys: [/^LOB_API_KEY$/]
|
|
1804
|
+
}
|
|
1805
|
+
},
|
|
1530
1806
|
{
|
|
1531
1807
|
kind: "Segment",
|
|
1532
1808
|
label: "Segment",
|
|
@@ -1692,6 +1968,36 @@ const SOURCE_DETECTORS = [
|
|
|
1692
1968
|
mode: "in-cli",
|
|
1693
1969
|
signals: { envKeys: [/^JUSTCALL_/] }
|
|
1694
1970
|
},
|
|
1971
|
+
{
|
|
1972
|
+
kind: "Telnyx",
|
|
1973
|
+
label: "Telnyx",
|
|
1974
|
+
mode: "in-cli",
|
|
1975
|
+
signals: {
|
|
1976
|
+
npm: ["telnyx"],
|
|
1977
|
+
python: ["telnyx"],
|
|
1978
|
+
envKeys: [/^TELNYX_/]
|
|
1979
|
+
}
|
|
1980
|
+
},
|
|
1981
|
+
{
|
|
1982
|
+
kind: "Plivo",
|
|
1983
|
+
label: "Plivo",
|
|
1984
|
+
mode: "in-cli",
|
|
1985
|
+
signals: {
|
|
1986
|
+
npm: ["plivo"],
|
|
1987
|
+
python: ["plivo"],
|
|
1988
|
+
envKeys: [/^PLIVO_/]
|
|
1989
|
+
}
|
|
1990
|
+
},
|
|
1991
|
+
{
|
|
1992
|
+
kind: "Courier",
|
|
1993
|
+
label: "Courier",
|
|
1994
|
+
mode: "in-cli",
|
|
1995
|
+
signals: {
|
|
1996
|
+
npm: ["@trycourier/courier"],
|
|
1997
|
+
python: ["trycourier"],
|
|
1998
|
+
envKeys: [/^COURIER_AUTH_TOKEN$/]
|
|
1999
|
+
}
|
|
2000
|
+
},
|
|
1695
2001
|
{
|
|
1696
2002
|
kind: "WooCommerce",
|
|
1697
2003
|
label: "WooCommerce",
|
|
@@ -1765,6 +2071,15 @@ const SOURCE_DETECTORS = [
|
|
|
1765
2071
|
mode: "in-cli",
|
|
1766
2072
|
signals: { envKeys: [/^PRINTIFY_/] }
|
|
1767
2073
|
},
|
|
2074
|
+
{
|
|
2075
|
+
kind: "BigCommerce",
|
|
2076
|
+
label: "BigCommerce",
|
|
2077
|
+
mode: "in-cli",
|
|
2078
|
+
signals: {
|
|
2079
|
+
npm: ["node-bigcommerce"],
|
|
2080
|
+
envKeys: [/^BIGCOMMERCE_/]
|
|
2081
|
+
}
|
|
2082
|
+
},
|
|
1768
2083
|
{
|
|
1769
2084
|
kind: "Freshdesk",
|
|
1770
2085
|
label: "Freshdesk",
|
|
@@ -1985,6 +2300,226 @@ const SOURCE_DETECTORS = [
|
|
|
1985
2300
|
envKeys: [/^VERCEL_API_TOKEN$/]
|
|
1986
2301
|
}
|
|
1987
2302
|
},
|
|
2303
|
+
{
|
|
2304
|
+
kind: "Algolia",
|
|
2305
|
+
label: "Algolia",
|
|
2306
|
+
mode: "in-cli",
|
|
2307
|
+
signals: {
|
|
2308
|
+
npm: ["algoliasearch"],
|
|
2309
|
+
python: ["algoliasearch"],
|
|
2310
|
+
ruby: ["algolia"],
|
|
2311
|
+
envKeys: [/^ALGOLIA_/]
|
|
2312
|
+
}
|
|
2313
|
+
},
|
|
2314
|
+
{
|
|
2315
|
+
kind: "Inngest",
|
|
2316
|
+
label: "Inngest",
|
|
2317
|
+
mode: "in-cli",
|
|
2318
|
+
signals: {
|
|
2319
|
+
npm: ["inngest"],
|
|
2320
|
+
python: ["inngest"],
|
|
2321
|
+
envKeys: [/^INNGEST_/]
|
|
2322
|
+
}
|
|
2323
|
+
},
|
|
2324
|
+
{
|
|
2325
|
+
kind: "TriggerDev",
|
|
2326
|
+
label: "Trigger.dev",
|
|
2327
|
+
mode: "in-cli",
|
|
2328
|
+
signals: {
|
|
2329
|
+
npm: ["@trigger.dev/sdk"],
|
|
2330
|
+
envKeys: [/^TRIGGER_(SECRET_KEY|API_KEY|PROJECT_ID)$/]
|
|
2331
|
+
}
|
|
2332
|
+
},
|
|
2333
|
+
{
|
|
2334
|
+
kind: "Ably",
|
|
2335
|
+
label: "Ably",
|
|
2336
|
+
mode: "in-cli",
|
|
2337
|
+
signals: {
|
|
2338
|
+
npm: ["ably"],
|
|
2339
|
+
python: ["ably"],
|
|
2340
|
+
envKeys: [/^ABLY_/]
|
|
2341
|
+
}
|
|
2342
|
+
},
|
|
2343
|
+
{
|
|
2344
|
+
kind: "Netlify",
|
|
2345
|
+
label: "Netlify",
|
|
2346
|
+
mode: "in-cli",
|
|
2347
|
+
signals: {
|
|
2348
|
+
npm: ["@netlify/functions"],
|
|
2349
|
+
envKeys: [/^NETLIFY_/]
|
|
2350
|
+
}
|
|
2351
|
+
},
|
|
2352
|
+
{
|
|
2353
|
+
kind: "Railway",
|
|
2354
|
+
label: "Railway",
|
|
2355
|
+
mode: "in-cli",
|
|
2356
|
+
signals: { envKeys: [/^RAILWAY_/] }
|
|
2357
|
+
},
|
|
2358
|
+
{
|
|
2359
|
+
kind: "Render",
|
|
2360
|
+
label: "Render",
|
|
2361
|
+
mode: "in-cli",
|
|
2362
|
+
signals: { envKeys: [/^RENDER_API_KEY$/] }
|
|
2363
|
+
},
|
|
2364
|
+
{
|
|
2365
|
+
kind: "FlyIo",
|
|
2366
|
+
label: "Fly.io",
|
|
2367
|
+
mode: "in-cli",
|
|
2368
|
+
signals: { envKeys: [/^FLY_API_TOKEN$/, /^FLY_APP_NAME$/] }
|
|
2369
|
+
},
|
|
2370
|
+
{
|
|
2371
|
+
kind: "Heroku",
|
|
2372
|
+
label: "Heroku",
|
|
2373
|
+
mode: "in-cli",
|
|
2374
|
+
signals: { envKeys: [/^HEROKU_/] }
|
|
2375
|
+
},
|
|
2376
|
+
{
|
|
2377
|
+
kind: "DigitalOcean",
|
|
2378
|
+
label: "DigitalOcean",
|
|
2379
|
+
mode: "in-cli",
|
|
2380
|
+
signals: { envKeys: [/^DIGITALOCEAN_/] }
|
|
2381
|
+
},
|
|
2382
|
+
{
|
|
2383
|
+
kind: "Grafana",
|
|
2384
|
+
label: "Grafana",
|
|
2385
|
+
mode: "in-cli",
|
|
2386
|
+
signals: {
|
|
2387
|
+
python: ["grafana-client"],
|
|
2388
|
+
envKeys: [/^GRAFANA_/]
|
|
2389
|
+
}
|
|
2390
|
+
},
|
|
2391
|
+
{
|
|
2392
|
+
kind: "BetterStack",
|
|
2393
|
+
label: "Better Stack",
|
|
2394
|
+
mode: "in-cli",
|
|
2395
|
+
signals: {
|
|
2396
|
+
npm: ["@logtail/node", "@logtail/js"],
|
|
2397
|
+
envKeys: [
|
|
2398
|
+
/^BETTERSTACK_/,
|
|
2399
|
+
/^BETTER_STACK_/,
|
|
2400
|
+
/^LOGTAIL_/
|
|
2401
|
+
]
|
|
2402
|
+
}
|
|
2403
|
+
},
|
|
2404
|
+
{
|
|
2405
|
+
kind: "Honeycomb",
|
|
2406
|
+
label: "Honeycomb",
|
|
2407
|
+
mode: "in-cli",
|
|
2408
|
+
signals: {
|
|
2409
|
+
npm: ["@honeycombio/opentelemetry-node", "honeycomb-beeline"],
|
|
2410
|
+
python: ["honeycomb-beeline", "libhoney"],
|
|
2411
|
+
envKeys: [/^HONEYCOMB_/]
|
|
2412
|
+
}
|
|
2413
|
+
},
|
|
2414
|
+
{
|
|
2415
|
+
kind: "Descope",
|
|
2416
|
+
label: "Descope",
|
|
2417
|
+
mode: "in-cli",
|
|
2418
|
+
signals: {
|
|
2419
|
+
npm: [
|
|
2420
|
+
"@descope/node-sdk",
|
|
2421
|
+
"@descope/nextjs-sdk",
|
|
2422
|
+
"@descope/react-sdk"
|
|
2423
|
+
],
|
|
2424
|
+
python: ["descope"],
|
|
2425
|
+
envKeys: [/^DESCOPE_/]
|
|
2426
|
+
}
|
|
2427
|
+
},
|
|
2428
|
+
{
|
|
2429
|
+
kind: "FusionAuth",
|
|
2430
|
+
label: "FusionAuth",
|
|
2431
|
+
mode: "in-cli",
|
|
2432
|
+
signals: {
|
|
2433
|
+
npm: ["@fusionauth/typescript-client"],
|
|
2434
|
+
python: ["fusionauth-client"],
|
|
2435
|
+
envKeys: [/^FUSIONAUTH_/, /^FUSION_AUTH_/]
|
|
2436
|
+
}
|
|
2437
|
+
},
|
|
2438
|
+
{
|
|
2439
|
+
kind: "Hookdeck",
|
|
2440
|
+
label: "Hookdeck",
|
|
2441
|
+
mode: "in-cli",
|
|
2442
|
+
signals: {
|
|
2443
|
+
npm: ["@hookdeck/sdk"],
|
|
2444
|
+
envKeys: [/^HOOKDECK_/]
|
|
2445
|
+
}
|
|
2446
|
+
},
|
|
2447
|
+
{
|
|
2448
|
+
kind: "N8n",
|
|
2449
|
+
label: "n8n",
|
|
2450
|
+
mode: "in-cli",
|
|
2451
|
+
signals: {
|
|
2452
|
+
npm: ["n8n"],
|
|
2453
|
+
envKeys: [/^N8N_/]
|
|
2454
|
+
}
|
|
2455
|
+
},
|
|
2456
|
+
{
|
|
2457
|
+
kind: "Dbt",
|
|
2458
|
+
label: "dbt",
|
|
2459
|
+
mode: "in-cli",
|
|
2460
|
+
signals: {
|
|
2461
|
+
python: [
|
|
2462
|
+
"dbt-core",
|
|
2463
|
+
"dbt-snowflake",
|
|
2464
|
+
"dbt-postgres",
|
|
2465
|
+
"dbt-bigquery",
|
|
2466
|
+
"dbt-redshift",
|
|
2467
|
+
"dbt-databricks"
|
|
2468
|
+
],
|
|
2469
|
+
envKeys: [/^DBT_/]
|
|
2470
|
+
}
|
|
2471
|
+
},
|
|
2472
|
+
{
|
|
2473
|
+
kind: "Fastly",
|
|
2474
|
+
label: "Fastly",
|
|
2475
|
+
mode: "in-cli",
|
|
2476
|
+
signals: {
|
|
2477
|
+
npm: ["fastly"],
|
|
2478
|
+
python: ["fastly"],
|
|
2479
|
+
envKeys: [/^FASTLY_/]
|
|
2480
|
+
}
|
|
2481
|
+
},
|
|
2482
|
+
{
|
|
2483
|
+
kind: "Bunny",
|
|
2484
|
+
label: "Bunny.net",
|
|
2485
|
+
mode: "in-cli",
|
|
2486
|
+
signals: { envKeys: [/^BUNNY_/] }
|
|
2487
|
+
},
|
|
2488
|
+
{
|
|
2489
|
+
kind: "Codecov",
|
|
2490
|
+
label: "Codecov",
|
|
2491
|
+
mode: "in-cli",
|
|
2492
|
+
signals: {
|
|
2493
|
+
npm: ["codecov"],
|
|
2494
|
+
envKeys: [/^CODECOV_/]
|
|
2495
|
+
}
|
|
2496
|
+
},
|
|
2497
|
+
{
|
|
2498
|
+
kind: "Sourcegraph",
|
|
2499
|
+
label: "Sourcegraph",
|
|
2500
|
+
mode: "in-cli",
|
|
2501
|
+
signals: { envKeys: [/^SOURCEGRAPH_/, /^SRC_ACCESS_TOKEN$/] }
|
|
2502
|
+
},
|
|
2503
|
+
{
|
|
2504
|
+
kind: "TemporalIO",
|
|
2505
|
+
label: "Temporal.io",
|
|
2506
|
+
mode: "in-cli",
|
|
2507
|
+
signals: {
|
|
2508
|
+
npm: ["@temporalio/client", "@temporalio/worker"],
|
|
2509
|
+
python: ["temporalio"],
|
|
2510
|
+
envKeys: [/^TEMPORAL_/]
|
|
2511
|
+
}
|
|
2512
|
+
},
|
|
2513
|
+
{
|
|
2514
|
+
kind: "Hatchet",
|
|
2515
|
+
label: "Hatchet",
|
|
2516
|
+
mode: "in-cli",
|
|
2517
|
+
signals: {
|
|
2518
|
+
npm: ["@hatchet-dev/typescript-sdk"],
|
|
2519
|
+
python: ["hatchet-sdk"],
|
|
2520
|
+
envKeys: [/^HATCHET_/]
|
|
2521
|
+
}
|
|
2522
|
+
},
|
|
1988
2523
|
{
|
|
1989
2524
|
kind: "Pipedrive",
|
|
1990
2525
|
label: "Pipedrive",
|
|
@@ -2048,6 +2583,28 @@ const SOURCE_DETECTORS = [
|
|
|
2048
2583
|
mode: "in-cli",
|
|
2049
2584
|
signals: { envKeys: [/^VITALLY_/] }
|
|
2050
2585
|
},
|
|
2586
|
+
{
|
|
2587
|
+
kind: "Docusign",
|
|
2588
|
+
label: "DocuSign",
|
|
2589
|
+
mode: "in-cli",
|
|
2590
|
+
signals: {
|
|
2591
|
+
npm: ["docusign-esign"],
|
|
2592
|
+
python: ["docusign-esign"],
|
|
2593
|
+
envKeys: [/^DOCUSIGN_/]
|
|
2594
|
+
}
|
|
2595
|
+
},
|
|
2596
|
+
{
|
|
2597
|
+
kind: "PandaDoc",
|
|
2598
|
+
label: "PandaDoc",
|
|
2599
|
+
mode: "in-cli",
|
|
2600
|
+
signals: { envKeys: [/^PANDADOC_/] }
|
|
2601
|
+
},
|
|
2602
|
+
{
|
|
2603
|
+
kind: "Gong",
|
|
2604
|
+
label: "Gong",
|
|
2605
|
+
mode: "in-cli",
|
|
2606
|
+
signals: { envKeys: [/^GONG_/] }
|
|
2607
|
+
},
|
|
2051
2608
|
{
|
|
2052
2609
|
kind: "Asana",
|
|
2053
2610
|
label: "Asana",
|
|
@@ -2155,6 +2712,64 @@ const SOURCE_DETECTORS = [
|
|
|
2155
2712
|
mode: "in-cli",
|
|
2156
2713
|
signals: { envKeys: [/^PRODUCTBOARD_/] }
|
|
2157
2714
|
},
|
|
2715
|
+
{
|
|
2716
|
+
kind: "GoogleSheets",
|
|
2717
|
+
label: "Google Sheets",
|
|
2718
|
+
mode: "in-cli",
|
|
2719
|
+
signals: {
|
|
2720
|
+
npm: ["google-spreadsheet"],
|
|
2721
|
+
python: ["gspread"],
|
|
2722
|
+
envKeys: [/^GOOGLE_SHEETS_/]
|
|
2723
|
+
}
|
|
2724
|
+
},
|
|
2725
|
+
{
|
|
2726
|
+
kind: "Formbricks",
|
|
2727
|
+
label: "Formbricks",
|
|
2728
|
+
mode: "in-cli",
|
|
2729
|
+
signals: {
|
|
2730
|
+
npm: ["@formbricks/js"],
|
|
2731
|
+
envKeys: [/^FORMBRICKS_/]
|
|
2732
|
+
}
|
|
2733
|
+
},
|
|
2734
|
+
{
|
|
2735
|
+
kind: "Tally",
|
|
2736
|
+
label: "Tally",
|
|
2737
|
+
mode: "in-cli",
|
|
2738
|
+
signals: { envKeys: [/^TALLY_API_KEY$/] }
|
|
2739
|
+
},
|
|
2740
|
+
{
|
|
2741
|
+
kind: "Jotform",
|
|
2742
|
+
label: "Jotform",
|
|
2743
|
+
mode: "in-cli",
|
|
2744
|
+
signals: {
|
|
2745
|
+
python: ["jotform"],
|
|
2746
|
+
envKeys: [/^JOTFORM_/]
|
|
2747
|
+
}
|
|
2748
|
+
},
|
|
2749
|
+
{
|
|
2750
|
+
kind: "GitBook",
|
|
2751
|
+
label: "GitBook",
|
|
2752
|
+
mode: "in-cli",
|
|
2753
|
+
signals: {
|
|
2754
|
+
npm: ["@gitbook/api"],
|
|
2755
|
+
envKeys: [/^GITBOOK_/]
|
|
2756
|
+
}
|
|
2757
|
+
},
|
|
2758
|
+
{
|
|
2759
|
+
kind: "Wordpress",
|
|
2760
|
+
label: "WordPress",
|
|
2761
|
+
mode: "in-cli",
|
|
2762
|
+
signals: {
|
|
2763
|
+
npm: ["wpapi"],
|
|
2764
|
+
envKeys: [/^WORDPRESS_/]
|
|
2765
|
+
}
|
|
2766
|
+
},
|
|
2767
|
+
{
|
|
2768
|
+
kind: "Clockify",
|
|
2769
|
+
label: "Clockify",
|
|
2770
|
+
mode: "in-cli",
|
|
2771
|
+
signals: { envKeys: [/^CLOCKIFY_/] }
|
|
2772
|
+
},
|
|
2158
2773
|
{
|
|
2159
2774
|
kind: "Calendly",
|
|
2160
2775
|
label: "Calendly",
|
|
@@ -2298,6 +2913,16 @@ const SOURCE_DETECTORS = [
|
|
|
2298
2913
|
npm: ["react-native-appsflyer"],
|
|
2299
2914
|
envKeys: [/^APPSFLYER_/]
|
|
2300
2915
|
}
|
|
2916
|
+
},
|
|
2917
|
+
{
|
|
2918
|
+
kind: "Dub",
|
|
2919
|
+
label: "Dub",
|
|
2920
|
+
mode: "in-cli",
|
|
2921
|
+
signals: {
|
|
2922
|
+
npm: ["dub"],
|
|
2923
|
+
python: ["dub"],
|
|
2924
|
+
envKeys: [/^DUB_API_KEY$/]
|
|
2925
|
+
}
|
|
2301
2926
|
}
|
|
2302
2927
|
];
|
|
2303
2928
|
//#endregion
|
|
@@ -2313,7 +2938,7 @@ const SOURCE_DETECTORS = [
|
|
|
2313
2938
|
* Note we only read `.env` KEY NAMES, never values.
|
|
2314
2939
|
*/
|
|
2315
2940
|
const MAX_DEPTH = 3;
|
|
2316
|
-
const MAX_SIGNAL_SET =
|
|
2941
|
+
const MAX_SIGNAL_SET = MAX_ENV_KEY_SET;
|
|
2317
2942
|
function addCapped(set, value) {
|
|
2318
2943
|
if (set.size < MAX_SIGNAL_SET) set.add(value);
|
|
2319
2944
|
}
|
|
@@ -2346,7 +2971,7 @@ function matchDetector(detector, signals) {
|
|
|
2346
2971
|
const rubyHit = ruby?.find((gem) => signals.ruby.has(gem));
|
|
2347
2972
|
if (rubyHit) return `found \`${rubyHit}\` in Gemfile`;
|
|
2348
2973
|
if (envKeys) {
|
|
2349
|
-
for (const key of signals.envKeys) if (envKeys.some((re) => re.test(key))) return `found \`${key}\` in
|
|
2974
|
+
for (const [key, file] of signals.envKeys) if (envKeys.some((re) => re.test(key))) return `found \`${key}\` in \`${file}\``;
|
|
2350
2975
|
}
|
|
2351
2976
|
return null;
|
|
2352
2977
|
}
|
|
@@ -2355,9 +2980,9 @@ function collectSignals(installDir) {
|
|
|
2355
2980
|
npm: /* @__PURE__ */ new Set(),
|
|
2356
2981
|
python: /* @__PURE__ */ new Set(),
|
|
2357
2982
|
ruby: /* @__PURE__ */ new Set(),
|
|
2358
|
-
envKeys: /* @__PURE__ */ new
|
|
2983
|
+
envKeys: /* @__PURE__ */ new Map()
|
|
2359
2984
|
};
|
|
2360
|
-
walkProjectFiles(installDir, (name, fullPath) => ingestFile(name, fullPath, signals), MAX_DEPTH);
|
|
2985
|
+
walkProjectFiles(installDir, (name, fullPath) => ingestFile(installDir, name, fullPath, signals), MAX_DEPTH);
|
|
2361
2986
|
return signals;
|
|
2362
2987
|
}
|
|
2363
2988
|
/**
|
|
@@ -2366,12 +2991,12 @@ function collectSignals(installDir) {
|
|
|
2366
2991
|
* avoids slurping every file in the tree (lockfiles, binaries, assets) into
|
|
2367
2992
|
* memory just to discard it.
|
|
2368
2993
|
*/
|
|
2369
|
-
function ingestFile(name, fullPath, signals) {
|
|
2994
|
+
function ingestFile(installDir, name, fullPath, signals) {
|
|
2370
2995
|
const ingest = ingestorFor(name);
|
|
2371
2996
|
if (!ingest) return;
|
|
2372
2997
|
const content = safeReadFile(fullPath);
|
|
2373
2998
|
if (content === null) return;
|
|
2374
|
-
ingest(content, signals);
|
|
2999
|
+
ingest(content, signals, toPromptSafeRelativePath(installDir, fullPath));
|
|
2375
3000
|
}
|
|
2376
3001
|
/** Pick the parser for a manifest filename, or null if it's not one we read. */
|
|
2377
3002
|
function ingestorFor(name) {
|
|
@@ -2380,9 +3005,21 @@ function ingestorFor(name) {
|
|
|
2380
3005
|
if (name === "pyproject.toml") return (c, s) => parsePyprojectToml(c).forEach((d) => addCapped(s.python, d));
|
|
2381
3006
|
if (name === "Pipfile") return (c, s) => parsePipfile(c).forEach((d) => addCapped(s.python, d));
|
|
2382
3007
|
if (name === "Gemfile") return (c, s) => parseGemfile(c).forEach((g) => addCapped(s.ruby, g));
|
|
2383
|
-
if (name
|
|
3008
|
+
if (isEnvFileName(name)) return (c, s, relativePath) => addEnvKeys(c, s, relativePath);
|
|
2384
3009
|
return null;
|
|
2385
3010
|
}
|
|
3011
|
+
/**
|
|
3012
|
+
* Record each key NAME against the file that defined it. The first file wins,
|
|
3013
|
+
* so the reported signal stays stable when several `.env*` files repeat a key.
|
|
3014
|
+
* Values are never read.
|
|
3015
|
+
*/
|
|
3016
|
+
function addEnvKeys(content, signals, relativePath) {
|
|
3017
|
+
for (const key of parseEnvKeyNames(content)) {
|
|
3018
|
+
if (signals.envKeys.has(key)) continue;
|
|
3019
|
+
if (signals.envKeys.size >= MAX_SIGNAL_SET) return;
|
|
3020
|
+
signals.envKeys.set(key, relativePath);
|
|
3021
|
+
}
|
|
3022
|
+
}
|
|
2386
3023
|
function addNpmDeps(content, signals) {
|
|
2387
3024
|
try {
|
|
2388
3025
|
const pkg = JSON.parse(content);
|
|
@@ -2400,17 +3037,6 @@ function parseGemfile(content) {
|
|
|
2400
3037
|
for (const match of content.matchAll(/^\s*gem\s+['"]([^'"]+)['"]/gm)) gems.push(match[1]);
|
|
2401
3038
|
return gems;
|
|
2402
3039
|
}
|
|
2403
|
-
/** Extract KEY NAMES from a dotenv file. Values are intentionally discarded. */
|
|
2404
|
-
function parseEnvKeys(content) {
|
|
2405
|
-
const keys = [];
|
|
2406
|
-
for (const line of content.split("\n")) {
|
|
2407
|
-
const trimmed = line.trim();
|
|
2408
|
-
if (!trimmed || trimmed.startsWith("#")) continue;
|
|
2409
|
-
const match = trimmed.match(/^(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=/);
|
|
2410
|
-
if (match) keys.push(match[1]);
|
|
2411
|
-
}
|
|
2412
|
-
return keys;
|
|
2413
|
-
}
|
|
2414
3040
|
//#endregion
|
|
2415
3041
|
//#region src/lib/programs/warehouse-source/detect.ts
|
|
2416
3042
|
/**
|
|
@@ -3743,7 +4369,7 @@ const warehouseSeedTasks = (sess) => {
|
|
|
3743
4369
|
})) },
|
|
3744
4370
|
notice: {
|
|
3745
4371
|
title: "Connect your data sources",
|
|
3746
|
-
body: ["We detected some warehouse sources we can connect to enrich your PostHog data.
|
|
4372
|
+
body: ["We detected some warehouse sources we can connect to enrich your PostHog data. Answer now, and we connect them at the end of the run, after your code changes. We will ask you for the credentials at that point, and beep when we do.", "You can select [Skip] if you'd like to do this later in PostHog."],
|
|
3747
4373
|
items: sources.map((s) => s.label),
|
|
3748
4374
|
docsLabel: "Learn more about warehouse sources",
|
|
3749
4375
|
docsUrl: WAREHOUSE_SOURCES_DOCS_URL,
|
|
@@ -3852,7 +4478,7 @@ STEP 3: Load the installed skill's SKILL.md file to understand what references a
|
|
|
3852
4478
|
STEP 4: Follow the skill's program files in sequence. Look for numbered program files in the references (e.g., files with patterns like "1-", "2-", "3-"). Start with the first one and proceed through each step until completion. Each program file will tell you what to do and which file comes next. Never directly write PostHog tokens directly to code files; always use environment variables.
|
|
3853
4479
|
|
|
3854
4480
|
STEP 5: Set up environment variables for PostHog using the wizard-tools MCP server (this runs locally — secret values never leave the machine):
|
|
3855
|
-
- Use check_env_keys to see which keys already
|
|
4481
|
+
- Use check_env_keys to see which keys the project already sets, and where. Omit filePath and it scans every .env file in the project, so you don't have to guess between .env, .env.local and a nested one. It answers { status, foundIn } per key: "present" means a real env file sets the key, while a key found only in a committed template (.env.example and friends) reads as "missing" — a template documents a key rather than setting it, and is never a file to write credentials into.
|
|
3856
4482
|
- Use set_env_values to create or update the PostHog public token and host, using the appropriate environment variable naming convention for ${config.metadata.name}, which you'll find in example code. The tool will also ensure .gitignore coverage. Don't assume the presence of keys means the value is up to date. Write the correct value each time.
|
|
3857
4483
|
- Reference these environment variables in the code files you create instead of hardcoding the public token and host.
|
|
3858
4484
|
|
|
@@ -3864,7 +4490,7 @@ ${warehouseReportInstruction(session)}
|
|
|
3864
4490
|
postRun: async (sess, credentials) => {
|
|
3865
4491
|
const envVars = config.environment.getEnvVars(credentials.projectApiKey, credentials.host.apiHost);
|
|
3866
4492
|
if (config.environment.uploadToHosting) {
|
|
3867
|
-
const { uploadEnvironmentVariablesStep } = await import("./steps-
|
|
4493
|
+
const { uploadEnvironmentVariablesStep } = await import("./steps-5HAqjUvn.js");
|
|
3868
4494
|
const uploadedEnvVars = await uploadEnvironmentVariablesStep(envVars, {
|
|
3869
4495
|
integration: config.metadata.integration,
|
|
3870
4496
|
session: sess
|
|
@@ -3920,4 +4546,4 @@ const integrationRunStep = {
|
|
|
3920
4546
|
//#endregion
|
|
3921
4547
|
export { scopeInstallDirToProject as C, detectFramework as D, gatherFrameworkContext as E, detectIntegrationProjects as S, resolveProjectDir as T, HEALTH_CHECK_STEP as _, LINE_CHART_BLOCK as a, getDetectedWarehouseSources as b, TextBlock as c, isClearBlock as d, isLinesBlock as f, detectPostHogIntegration as g, Icons as h, FUNNEL_BLOCK as i, computeVisibleRange as l, Colors as m, integrationRunStep as n, PRODUCT_SUITE_BLOCK as o, isObjectBlock as p, posthogIntegrationConfig as r, StatusPeekTrigger as s, SETUP_REPORT_FILE as t, wordWrap as u, WAREHOUSE_ABORT_CASES as v, detectProjectsWithAgent as w, detectWarehouseSources as x, detectWarehousePrerequisites as y };
|
|
3922
4548
|
|
|
3923
|
-
//# sourceMappingURL=posthog-integration-
|
|
4549
|
+
//# sourceMappingURL=posthog-integration-LxEBGkoe.js.map
|