@posthog/wizard 2.39.0 → 2.40.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-Ci0I1vbS.js → add-mcp-server-to-clients-Dtvqw5DO.js} +4 -4
- package/dist/{add-mcp-server-to-clients-Ci0I1vbS.js.map → add-mcp-server-to-clients-Dtvqw5DO.js.map} +1 -1
- package/dist/{agent-interface-BR3zAUpM.js → agent-interface-BTVAlvLW.js} +23 -7
- package/dist/agent-interface-BTVAlvLW.js.map +1 -0
- package/dist/{agent-runner-B1fzwFzc.js → agent-runner-CqNL9x2D.js} +21 -19
- package/dist/agent-runner-CqNL9x2D.js.map +1 -0
- package/dist/analytics-D6RSYOPO.js +2 -0
- package/dist/{analytics-C7Oc3yWZ.js → analytics-__4kRqZr.js} +2 -2
- package/dist/{analytics-C7Oc3yWZ.js.map → analytics-__4kRqZr.js.map} +1 -1
- package/dist/{api-DSG-l8Ql.js → api-D0RqJPWO.js} +3 -3
- package/dist/{api-DSG-l8Ql.js.map → api-D0RqJPWO.js.map} +1 -1
- package/dist/bin.js +38 -38
- package/dist/{ci-install-DeAd2HYP.js → ci-install-SXJrlScZ.js} +4 -4
- package/dist/{ci-install-DeAd2HYP.js.map → ci-install-SXJrlScZ.js.map} +1 -1
- package/dist/{debug-BZnZ7Gvh.js → debug-D_mboDpg.js} +4 -4
- package/dist/debug-D_mboDpg.js.map +1 -0
- package/dist/{debug-DtgfvuKF.js → debug-dh-I1XvJ.js} +1 -1
- package/dist/{environment-QNoUem74.js → environment-4zKc7kWr.js} +3 -3
- package/dist/{environment-QNoUem74.js.map → environment-4zKc7kWr.js.map} +1 -1
- package/dist/{file-utils-UqdMTR9x.js → file-utils-Cb6HLPhu.js} +2 -2
- package/dist/{file-utils-UqdMTR9x.js.map → file-utils-Cb6HLPhu.js.map} +1 -1
- package/dist/{headless-ui-DtFktXIa.js → headless-ui-CjdRKkTG.js} +2 -2
- package/dist/{headless-ui-DtFktXIa.js.map → headless-ui-CjdRKkTG.js.map} +1 -1
- package/dist/{host-resolution-DjQvur4X.js → host-resolution-Czw5O33G.js} +6 -6
- package/dist/{host-resolution-DjQvur4X.js.map → host-resolution-Czw5O33G.js.map} +1 -1
- package/dist/{interactive-_8v2Ymw2.js → interactive-C3Ty8H5M.js} +2 -2
- package/dist/{interactive-_8v2Ymw2.js.map → interactive-C3Ty8H5M.js.map} +1 -1
- package/dist/{mcp-BX34188X.js → mcp-B_utnKAq.js} +2 -2
- package/dist/{mcp-BX34188X.js.map → mcp-B_utnKAq.js.map} +1 -1
- package/dist/{mcp-prompt-streaming-l1zsmQQc.js → mcp-prompt-streaming-BzFu8dP6.js} +5 -5
- package/dist/mcp-prompt-streaming-BzFu8dP6.js.map +1 -0
- package/dist/{non-interactive-BBCGIDP5.js → non-interactive-B2a00UId.js} +2 -2
- package/dist/{non-interactive-BBCGIDP5.js.map → non-interactive-B2a00UId.js.map} +1 -1
- package/dist/{package-manager-FY9qPU4z.js → package-manager-CRYusNaP.js} +2 -2
- package/dist/{package-manager-FY9qPU4z.js.map → package-manager-CRYusNaP.js.map} +1 -1
- package/dist/{playground-B9Gesj-w.js → playground-CVIGzLGh.js} +5 -5
- package/dist/{playground-B9Gesj-w.js.map → playground-CVIGzLGh.js.map} +1 -1
- package/dist/{posthog-integration-CMNtIV97.js → posthog-integration-D2S9mCAv.js} +16 -15
- package/dist/{posthog-integration-CMNtIV97.js.map → posthog-integration-D2S9mCAv.js.map} +1 -1
- package/dist/{provisioning-BInfIJy5.js → provisioning-B1KoQFFK.js} +4 -4
- package/dist/{provisioning-BInfIJy5.js.map → provisioning-B1KoQFFK.js.map} +1 -1
- package/dist/{registry-BsPnELr-.js → registry-CgrvMaYt.js} +5 -4
- package/dist/{registry-BsPnELr-.js.map → registry-CgrvMaYt.js.map} +1 -1
- package/dist/{security-CSlaLY6P.js → security-DX5ey9g8.js} +4 -4
- package/dist/{security-CSlaLY6P.js.map → security-DX5ey9g8.js.map} +1 -1
- package/dist/{setup-utils-DfRLklZ3.js → setup-utils-CUeGnxBk.js} +9 -9
- package/dist/{setup-utils-DfRLklZ3.js.map → setup-utils-CUeGnxBk.js.map} +1 -1
- package/dist/{start-tui-H_BSAFdp.js → start-tui-BC3yp_wW.js} +17 -17
- package/dist/{start-tui-H_BSAFdp.js.map → start-tui-BC3yp_wW.js.map} +1 -1
- package/dist/{steps-z89LzfJG.js → steps-5YGQK7la.js} +7 -7
- package/dist/{steps-z89LzfJG.js.map → steps-5YGQK7la.js.map} +1 -1
- package/dist/{store-B3B76DgD.js → store-DQ0-oE_Y.js} +4 -4
- package/dist/{store-B3B76DgD.js.map → store-DQ0-oE_Y.js.map} +1 -1
- package/dist/{subagent-CV59ljO1.js → subagent-DkTSX2ew.js} +2 -2
- package/dist/{subagent-CV59ljO1.js.map → subagent-DkTSX2ew.js.map} +1 -1
- package/dist/{tasks-DkX454Mg.js → tasks-SbUmyQPS.js} +2 -2
- package/dist/{tasks-DkX454Mg.js.map → tasks-SbUmyQPS.js.map} +1 -1
- package/dist/{telemetry-BCIe6Kli.js → telemetry-_7NXwx7o.js} +3 -3
- package/dist/{telemetry-BCIe6Kli.js.map → telemetry-_7NXwx7o.js.map} +1 -1
- package/dist/{terminal-CPXW44sU.js → terminal-NhR2Seu_.js} +11 -11
- package/dist/{terminal-CPXW44sU.js.map → terminal-NhR2Seu_.js.map} +1 -1
- package/dist/{tools-C4BqVrt6.js → tools-WDPzlrXc.js} +4 -4
- package/dist/{tools-C4BqVrt6.js.map → tools-WDPzlrXc.js.map} +1 -1
- package/dist/{urls-D1AehCBN.js → urls-DYIMfv29.js} +2 -2
- package/dist/{urls-D1AehCBN.js.map → urls-DYIMfv29.js.map} +1 -1
- package/dist/{wizard-abort-5fOIcY8w.js → wizard-abort-CWaKUNMI.js} +3 -3
- package/dist/{wizard-abort-5fOIcY8w.js.map → wizard-abort-CWaKUNMI.js.map} +1 -1
- package/dist/{wizard-abort-Ce2RceZ1.js → wizard-abort-DGM_sAA9.js} +1 -1
- package/dist/{wizard-tools-xvIrJeNN.js → wizard-tools-CrpRaYkE.js} +3 -3
- package/dist/{wizard-tools-xvIrJeNN.js.map → wizard-tools-CrpRaYkE.js.map} +1 -1
- package/dist/{yara-hooks-DNn1Jqih.js → yara-hooks-BPQ3VE-l.js} +3 -3
- package/dist/{yara-hooks-DNn1Jqih.js.map → yara-hooks-BPQ3VE-l.js.map} +1 -1
- package/dist/yara-hooks-yy8OLJ43.js +2 -0
- package/package.json +1 -1
- package/dist/agent-interface-BR3zAUpM.js.map +0 -1
- package/dist/agent-runner-B1fzwFzc.js.map +0 -1
- package/dist/analytics-tVERo8XR.js +0 -2
- package/dist/debug-BZnZ7Gvh.js.map +0 -1
- package/dist/mcp-prompt-streaming-l1zsmQQc.js.map +0 -1
- package/dist/yara-hooks-7MEXlgqm.js +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { s as logToFile } from "./debug-
|
|
2
|
-
import { a as installSkillById, c as resolveEnvPath, i as fetchSkillMenu, o as mergeEnvValues, s as parseEnvKeys } from "./wizard-tools-
|
|
3
|
-
import { r as detectNodePackageManagers } from "./package-manager-
|
|
1
|
+
import { s as logToFile } from "./debug-D_mboDpg.js";
|
|
2
|
+
import { a as installSkillById, c as resolveEnvPath, i as fetchSkillMenu, o as mergeEnvValues, s as parseEnvKeys } from "./wizard-tools-CrpRaYkE.js";
|
|
3
|
+
import { r as detectNodePackageManagers } from "./package-manager-CRYusNaP.js";
|
|
4
4
|
import fs from "fs";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import { Type } from "typebox";
|
|
@@ -119,4 +119,4 @@ function createWizardPiTools(ctx) {
|
|
|
119
119
|
//#endregion
|
|
120
120
|
export { createWizardPiTools };
|
|
121
121
|
|
|
122
|
-
//# sourceMappingURL=tools-
|
|
122
|
+
//# sourceMappingURL=tools-WDPzlrXc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-C4BqVrt6.js","names":[],"sources":["../src/lib/agent/runner/harness/pi/tools.ts"],"sourcesContent":["/**\n * Wizard capabilities as pi custom tools (#5). pi does not mount MCP servers,\n * so the tools the wizard prompt depends on — skill discovery/install and\n * fenced `.env` edits — are exposed to pi as native `defineTool` tools backed\n * by the same helpers the claude-agent-sdk path uses (`fetchSkillMenu`,\n * `installSkillById`, `parseEnvKeys`, `mergeEnvValues`). Same tool names as the\n * MCP server so the shared prompt is unchanged.\n *\n * v1 covers the four tools a framework integration needs. `wizard_ask` is\n * interactive-only (disabled in CI) and the secret-vault `secretRef` path is a\n * follow-up — CI passes literal values.\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport { Type } from 'typebox';\nimport { defineTool } from '@earendil-works/pi-coding-agent';\nimport type { ToolDefinition } from '@earendil-works/pi-coding-agent';\nimport { logToFile } from '@utils/debug';\nimport {\n fetchSkillMenu,\n installSkillById,\n mergeEnvValues,\n parseEnvKeys,\n resolveEnvPath,\n} from '@lib/wizard-tools';\nimport {\n detectNodePackageManagers,\n type PackageManagerDetector,\n} from '@lib/detection/package-manager';\n\nfunction text(s: string): {\n content: [{ type: 'text'; text: string }];\n details: unknown;\n} {\n return { content: [{ type: 'text', text: s }], details: {} };\n}\n\nexport interface PiToolsContext {\n workingDirectory: string;\n skillsBaseUrl: string;\n /** Framework's package-manager detector. Defaults to Node detection. */\n detectPackageManager?: PackageManagerDetector;\n}\n\nexport function createWizardPiTools(ctx: PiToolsContext): ToolDefinition[] {\n const { workingDirectory, skillsBaseUrl } = ctx;\n const detectPackageManager =\n ctx.detectPackageManager ?? detectNodePackageManagers;\n\n // Fetch the skill menu at most once per run — the agent calls load_skill_menu\n // 2-3× otherwise, each a fresh HTTP round-trip (profiled slowness).\n let menuPromise: ReturnType<typeof fetchSkillMenu> | undefined;\n const getSkillMenu = () => (menuPromise ??= fetchSkillMenu(skillsBaseUrl));\n\n const loadSkillMenu = defineTool({\n name: 'load_skill_menu',\n label: 'Load skill menu',\n description:\n 'Load available PostHog skills for a category. Returns skill IDs and names. Call this first, then install_skill with the chosen ID.',\n promptSnippet:\n 'load_skill_menu(category) — list installable PostHog skills',\n parameters: Type.Object({\n category: Type.String({\n description: 'Skill category, e.g. \"integration\"',\n }),\n }),\n async execute(_id, args) {\n const menu = await getSkillMenu();\n if (!menu) return text('Error: could not load the skill menu.');\n const skills = menu.categories[args.category] ?? [];\n if (skills.length === 0) {\n return text(`No skills found for category \"${args.category}\".`);\n }\n logToFile(`[pi] load_skill_menu: ${skills.length} skills`);\n return text(skills.map((s) => `- ${s.id}: ${s.name}`).join('\\n'));\n },\n });\n\n const installSkill = defineTool({\n name: 'install_skill',\n label: 'Install skill',\n description:\n 'Download and install a PostHog skill by ID into .claude/skills/<skillId>/. Call load_skill_menu first. Then read the installed SKILL.md and follow it.',\n promptSnippet:\n 'install_skill(skillId) — install a skill, then read its SKILL.md',\n parameters: Type.Object({\n skillId: Type.String({ description: 'Skill ID from load_skill_menu' }),\n }),\n async execute(_id, args) {\n const result = await installSkillById(\n args.skillId,\n workingDirectory,\n skillsBaseUrl,\n );\n if (result.kind !== 'ok') {\n logToFile(`[pi] install_skill ${args.skillId}: ${result.kind}`);\n return text(\n `Error installing skill \"${args.skillId}\": ${result.kind}. Use load_skill_menu to see valid IDs.`,\n );\n }\n logToFile(`[pi] install_skill ${args.skillId} -> ${result.path}`);\n return text(\n `Installed \"${args.skillId}\" at ${result.path}. Read ${result.path}/SKILL.md and follow it.`,\n );\n },\n });\n\n const checkEnvKeys = defineTool({\n name: 'check_env_keys',\n label: 'Check env keys',\n description:\n 'Check which environment variable keys are present or missing in a .env file. Never reveals values.',\n promptSnippet: 'check_env_keys(filePath, keys) — see which .env keys exist',\n parameters: Type.Object({\n filePath: Type.String({\n description: 'Path to the .env file, relative to the project root',\n }),\n keys: Type.Array(Type.String(), {\n description: 'Environment variable key names to check',\n }),\n }),\n async execute(_id, args) {\n const resolved = resolveEnvPath(workingDirectory, args.filePath);\n const existing = fs.existsSync(resolved)\n ? parseEnvKeys(await fs.promises.readFile(resolved, 'utf8'))\n : new Set<string>();\n const results: Record<string, 'present' | 'missing'> = {};\n for (const key of args.keys) {\n results[key] = existing.has(key) ? 'present' : 'missing';\n }\n return text(JSON.stringify(results, null, 2));\n },\n });\n\n const setEnvValues = defineTool({\n name: 'set_env_values',\n label: 'Set env values',\n description:\n 'Create or update environment variable keys in a .env file (creates the file if missing). Pass literal string values.',\n promptSnippet:\n 'set_env_values(filePath, values) — write .env keys (never hardcode secrets in source)',\n parameters: Type.Object({\n filePath: Type.String({\n description: 'Path to the .env file, relative to the project root',\n }),\n values: Type.Record(Type.String(), Type.String(), {\n description: 'Key → literal value',\n }),\n }),\n async execute(_id, args) {\n const forbidden = Object.keys(args.values).find(\n (k) => k.toUpperCase() === 'POSTHOG_KEY',\n );\n if (forbidden) {\n return text(\n `Error: \"${forbidden}\" is not a valid PostHog env var name. Use the framework-specific key (e.g. NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN).`,\n );\n }\n const resolved = resolveEnvPath(workingDirectory, args.filePath);\n const existing = fs.existsSync(resolved)\n ? await fs.promises.readFile(resolved, 'utf8')\n : '';\n const merged = mergeEnvValues(existing, args.values);\n const dir = path.dirname(resolved);\n if (!fs.existsSync(dir))\n await fs.promises.mkdir(dir, { recursive: true });\n await fs.promises.writeFile(resolved, merged, 'utf8');\n logToFile(\n `[pi] set_env_values: ${resolved} keys=${Object.keys(args.values).join(\n ',',\n )}`,\n );\n return text(\n `Wrote ${Object.keys(args.values).length} key(s) to ${args.filePath}.`,\n );\n },\n });\n\n const detectPm = defineTool({\n name: 'detect_package_manager',\n label: 'Detect package manager',\n description:\n \"Detect the project's package manager(s). Returns the name and the install command for each. Call this before installing a dependency, then RUN the returned install command (with the posthog package) via bash — the SDK package must end up in the project manifest, or the app will not build.\",\n promptSnippet:\n 'detect_package_manager() — find the PM + install command, then run it via bash to add the SDK',\n parameters: Type.Object({}),\n async execute() {\n const result = await detectPackageManager(workingDirectory);\n logToFile(\n `[pi] detect_package_manager: ${result.detected.length} detected`,\n );\n return text(JSON.stringify(result, null, 2));\n },\n });\n\n return [loadSkillMenu, installSkill, checkEnvKeys, setEnvValues, detectPm];\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools-WDPzlrXc.js","names":[],"sources":["../src/lib/agent/runner/harness/pi/tools.ts"],"sourcesContent":["/**\n * Wizard capabilities as pi custom tools (#5). pi does not mount MCP servers,\n * so the tools the wizard prompt depends on — skill discovery/install and\n * fenced `.env` edits — are exposed to pi as native `defineTool` tools backed\n * by the same helpers the claude-agent-sdk path uses (`fetchSkillMenu`,\n * `installSkillById`, `parseEnvKeys`, `mergeEnvValues`). Same tool names as the\n * MCP server so the shared prompt is unchanged.\n *\n * v1 covers the four tools a framework integration needs. `wizard_ask` is\n * interactive-only (disabled in CI) and the secret-vault `secretRef` path is a\n * follow-up — CI passes literal values.\n */\n\nimport fs from 'fs';\nimport path from 'path';\nimport { Type } from 'typebox';\nimport { defineTool } from '@earendil-works/pi-coding-agent';\nimport type { ToolDefinition } from '@earendil-works/pi-coding-agent';\nimport { logToFile } from '@utils/debug';\nimport {\n fetchSkillMenu,\n installSkillById,\n mergeEnvValues,\n parseEnvKeys,\n resolveEnvPath,\n} from '@lib/wizard-tools';\nimport {\n detectNodePackageManagers,\n type PackageManagerDetector,\n} from '@lib/detection/package-manager';\n\nfunction text(s: string): {\n content: [{ type: 'text'; text: string }];\n details: unknown;\n} {\n return { content: [{ type: 'text', text: s }], details: {} };\n}\n\nexport interface PiToolsContext {\n workingDirectory: string;\n skillsBaseUrl: string;\n /** Framework's package-manager detector. Defaults to Node detection. */\n detectPackageManager?: PackageManagerDetector;\n}\n\nexport function createWizardPiTools(ctx: PiToolsContext): ToolDefinition[] {\n const { workingDirectory, skillsBaseUrl } = ctx;\n const detectPackageManager =\n ctx.detectPackageManager ?? detectNodePackageManagers;\n\n // Fetch the skill menu at most once per run — the agent calls load_skill_menu\n // 2-3× otherwise, each a fresh HTTP round-trip (profiled slowness).\n let menuPromise: ReturnType<typeof fetchSkillMenu> | undefined;\n const getSkillMenu = () => (menuPromise ??= fetchSkillMenu(skillsBaseUrl));\n\n const loadSkillMenu = defineTool({\n name: 'load_skill_menu',\n label: 'Load skill menu',\n description:\n 'Load available PostHog skills for a category. Returns skill IDs and names. Call this first, then install_skill with the chosen ID.',\n promptSnippet:\n 'load_skill_menu(category) — list installable PostHog skills',\n parameters: Type.Object({\n category: Type.String({\n description: 'Skill category, e.g. \"integration\"',\n }),\n }),\n async execute(_id, args) {\n const menu = await getSkillMenu();\n if (!menu) return text('Error: could not load the skill menu.');\n const skills = menu.categories[args.category] ?? [];\n if (skills.length === 0) {\n return text(`No skills found for category \"${args.category}\".`);\n }\n logToFile(`[pi] load_skill_menu: ${skills.length} skills`);\n return text(skills.map((s) => `- ${s.id}: ${s.name}`).join('\\n'));\n },\n });\n\n const installSkill = defineTool({\n name: 'install_skill',\n label: 'Install skill',\n description:\n 'Download and install a PostHog skill by ID into .claude/skills/<skillId>/. Call load_skill_menu first. Then read the installed SKILL.md and follow it.',\n promptSnippet:\n 'install_skill(skillId) — install a skill, then read its SKILL.md',\n parameters: Type.Object({\n skillId: Type.String({ description: 'Skill ID from load_skill_menu' }),\n }),\n async execute(_id, args) {\n const result = await installSkillById(\n args.skillId,\n workingDirectory,\n skillsBaseUrl,\n );\n if (result.kind !== 'ok') {\n logToFile(`[pi] install_skill ${args.skillId}: ${result.kind}`);\n return text(\n `Error installing skill \"${args.skillId}\": ${result.kind}. Use load_skill_menu to see valid IDs.`,\n );\n }\n logToFile(`[pi] install_skill ${args.skillId} -> ${result.path}`);\n return text(\n `Installed \"${args.skillId}\" at ${result.path}. Read ${result.path}/SKILL.md and follow it.`,\n );\n },\n });\n\n const checkEnvKeys = defineTool({\n name: 'check_env_keys',\n label: 'Check env keys',\n description:\n 'Check which environment variable keys are present or missing in a .env file. Never reveals values.',\n promptSnippet: 'check_env_keys(filePath, keys) — see which .env keys exist',\n parameters: Type.Object({\n filePath: Type.String({\n description: 'Path to the .env file, relative to the project root',\n }),\n keys: Type.Array(Type.String(), {\n description: 'Environment variable key names to check',\n }),\n }),\n async execute(_id, args) {\n const resolved = resolveEnvPath(workingDirectory, args.filePath);\n const existing = fs.existsSync(resolved)\n ? parseEnvKeys(await fs.promises.readFile(resolved, 'utf8'))\n : new Set<string>();\n const results: Record<string, 'present' | 'missing'> = {};\n for (const key of args.keys) {\n results[key] = existing.has(key) ? 'present' : 'missing';\n }\n return text(JSON.stringify(results, null, 2));\n },\n });\n\n const setEnvValues = defineTool({\n name: 'set_env_values',\n label: 'Set env values',\n description:\n 'Create or update environment variable keys in a .env file (creates the file if missing). Pass literal string values.',\n promptSnippet:\n 'set_env_values(filePath, values) — write .env keys (never hardcode secrets in source)',\n parameters: Type.Object({\n filePath: Type.String({\n description: 'Path to the .env file, relative to the project root',\n }),\n values: Type.Record(Type.String(), Type.String(), {\n description: 'Key → literal value',\n }),\n }),\n async execute(_id, args) {\n const forbidden = Object.keys(args.values).find(\n (k) => k.toUpperCase() === 'POSTHOG_KEY',\n );\n if (forbidden) {\n return text(\n `Error: \"${forbidden}\" is not a valid PostHog env var name. Use the framework-specific key (e.g. NEXT_PUBLIC_POSTHOG_PROJECT_TOKEN).`,\n );\n }\n const resolved = resolveEnvPath(workingDirectory, args.filePath);\n const existing = fs.existsSync(resolved)\n ? await fs.promises.readFile(resolved, 'utf8')\n : '';\n const merged = mergeEnvValues(existing, args.values);\n const dir = path.dirname(resolved);\n if (!fs.existsSync(dir))\n await fs.promises.mkdir(dir, { recursive: true });\n await fs.promises.writeFile(resolved, merged, 'utf8');\n logToFile(\n `[pi] set_env_values: ${resolved} keys=${Object.keys(args.values).join(\n ',',\n )}`,\n );\n return text(\n `Wrote ${Object.keys(args.values).length} key(s) to ${args.filePath}.`,\n );\n },\n });\n\n const detectPm = defineTool({\n name: 'detect_package_manager',\n label: 'Detect package manager',\n description:\n \"Detect the project's package manager(s). Returns the name and the install command for each. Call this before installing a dependency, then RUN the returned install command (with the posthog package) via bash — the SDK package must end up in the project manifest, or the app will not build.\",\n promptSnippet:\n 'detect_package_manager() — find the PM + install command, then run it via bash to add the SDK',\n parameters: Type.Object({}),\n async execute() {\n const result = await detectPackageManager(workingDirectory);\n logToFile(\n `[pi] detect_package_manager: ${result.detected.length} detected`,\n );\n return text(JSON.stringify(result, null, 2));\n },\n });\n\n return [loadSkillMenu, installSkill, checkEnvKeys, setEnvValues, detectPm];\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { st as WIZARD_USER_AGENT } from "./debug-
|
|
1
|
+
import { st as WIZARD_USER_AGENT } from "./debug-D_mboDpg.js";
|
|
2
2
|
import axios from "axios";
|
|
3
3
|
//#region src/utils/urls.ts
|
|
4
4
|
/**
|
|
@@ -64,4 +64,4 @@ const getOAuthUrl = (baseUrl) => resolveBaseUrl(baseUrl) ?? PROD_OAUTH_URL;
|
|
|
64
64
|
//#endregion
|
|
65
65
|
export { getOAuthUrl as a, getLlmGatewayUrl as i, getCloudUrl as n, getUiHostFromHost as o, getHost as r, resolveBaseUrl as s, detectRegion as t };
|
|
66
66
|
|
|
67
|
-
//# sourceMappingURL=urls-
|
|
67
|
+
//# sourceMappingURL=urls-DYIMfv29.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urls-
|
|
1
|
+
{"version":3,"file":"urls-DYIMfv29.js","names":[],"sources":["../src/utils/urls.ts"],"sourcesContent":["import axios from 'axios';\nimport { IS_DEV, WIZARD_USER_AGENT } from '@lib/constants';\nimport type { CloudRegion } from './types';\n\n/**\n * Resolve a pinned PostHog base URL from an optional override. When present, it\n * becomes the single source of truth for every PostHog origin — the\n * API/ingestion host, the cloud/app URL, and the OAuth server — bypassing\n * region resolution entirely.\n *\n * The override lives on the session (`session.baseUrl`, set by `--base-url`) and\n * is threaded in by callers, so there is no hidden module-level state. A `--base-url`\n * value wins; otherwise a dev/test build implies `localhost:8010`; otherwise the\n * result is `undefined`, meaning region-based resolution applies.\n *\n * This is the runtime equivalent of the `IS_DEV` localhost routing: `IS_DEV` is a\n * build-time constant that tsdown compiles out of production builds, so it can't\n * point a shipped wizard at a local stack — `--base-url` can. Both feed this one\n * resolver so every URL helper only asks the question once.\n */\nexport const resolveBaseUrl = (override?: string): string | undefined => {\n return override?.trim() || (IS_DEV ? 'http://localhost:8010' : undefined);\n};\n\nexport const getUiHostFromHost = (host: string) => {\n if (host.includes('us.i.posthog.com')) {\n return 'https://us.posthog.com';\n }\n\n if (host.includes('eu.i.posthog.com')) {\n return 'https://eu.posthog.com';\n }\n\n return host;\n};\n\nexport const getHost = (region: CloudRegion, baseUrl?: string) => {\n const override = resolveBaseUrl(baseUrl);\n if (override) {\n return override;\n }\n\n if (region === 'eu') {\n return 'https://eu.i.posthog.com';\n }\n\n return 'https://us.i.posthog.com';\n};\n\nexport const getCloudUrl = (region: CloudRegion, baseUrl?: string) => {\n const override = resolveBaseUrl(baseUrl);\n if (override) {\n return override;\n }\n\n if (region === 'eu') {\n return 'https://eu.posthog.com';\n }\n\n return 'https://us.posthog.com';\n};\n\nexport async function detectRegion(\n accessToken: string,\n baseUrl?: string,\n): Promise<CloudRegion> {\n // With a pinned base URL there is only one instance to talk to — skip the\n // us/eu probe and default the region label to 'us'. (Covers IS_DEV too, via\n // resolveBaseUrl.) The URLs themselves come from the override, not this label.\n if (resolveBaseUrl(baseUrl)) {\n return 'us';\n }\n\n const headers = {\n Authorization: `Bearer ${accessToken}`,\n 'User-Agent': WIZARD_USER_AGENT,\n };\n\n const [usResult, euResult] = await Promise.allSettled([\n axios.get('https://us.posthog.com/api/users/@me/', { headers }),\n axios.get('https://eu.posthog.com/api/users/@me/', { headers }),\n ]);\n\n if (usResult.status === 'fulfilled') return 'us';\n if (euResult.status === 'fulfilled') return 'eu';\n\n throw new Error(\n 'Could not determine cloud region from access token. Please check your PostHog account.',\n );\n}\n\nexport const getLlmGatewayUrl = (host: string) => {\n if (host.includes('host.docker.internal')) {\n return 'http://host.docker.internal:3308/wizard';\n }\n\n if (host.includes('localhost')) {\n return 'http://localhost:3308/wizard';\n }\n\n if (host.includes('eu.posthog.com') || host.includes('eu.i.posthog.com')) {\n return 'https://gateway.eu.posthog.com/wizard';\n }\n\n return 'https://gateway.us.posthog.com/wizard';\n};\n\n/** Region-agnostic prod OAuth server. Resolves to the right region server-side. */\nconst PROD_OAUTH_URL = 'https://oauth.posthog.com';\n\n/**\n * OAuth server URL. Follows the base-URL override (and thus IS_DEV → localhost),\n * otherwise the region-agnostic prod OAuth host.\n */\nexport const getOAuthUrl = (baseUrl?: string): string =>\n resolveBaseUrl(baseUrl) ?? PROD_OAUTH_URL;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,MAAa,kBAAkB,aAA0C;AACvE,QAAO,UAAU,MAAM,IAAwC,KAAA;;AAGjE,MAAa,qBAAqB,SAAiB;AACjD,KAAI,KAAK,SAAS,mBAAmB,CACnC,QAAO;AAGT,KAAI,KAAK,SAAS,mBAAmB,CACnC,QAAO;AAGT,QAAO;;AAGT,MAAa,WAAW,QAAqB,YAAqB;CAChE,MAAM,WAAW,eAAe,QAAQ;AACxC,KAAI,SACF,QAAO;AAGT,KAAI,WAAW,KACb,QAAO;AAGT,QAAO;;AAGT,MAAa,eAAe,QAAqB,YAAqB;CACpE,MAAM,WAAW,eAAe,QAAQ;AACxC,KAAI,SACF,QAAO;AAGT,KAAI,WAAW,KACb,QAAO;AAGT,QAAO;;AAGT,eAAsB,aACpB,aACA,SACsB;AAItB,KAAI,eAAe,QAAQ,CACzB,QAAO;CAGT,MAAM,UAAU;EACd,eAAe,UAAU;EACzB,cAAc;EACf;CAED,MAAM,CAAC,UAAU,YAAY,MAAM,QAAQ,WAAW,CACpD,MAAM,IAAI,yCAAyC,EAAE,SAAS,CAAC,EAC/D,MAAM,IAAI,yCAAyC,EAAE,SAAS,CAAC,CAChE,CAAC;AAEF,KAAI,SAAS,WAAW,YAAa,QAAO;AAC5C,KAAI,SAAS,WAAW,YAAa,QAAO;AAE5C,OAAM,IAAI,MACR,yFACD;;AAGH,MAAa,oBAAoB,SAAiB;AAChD,KAAI,KAAK,SAAS,uBAAuB,CACvC,QAAO;AAGT,KAAI,KAAK,SAAS,YAAY,CAC5B,QAAO;AAGT,KAAI,KAAK,SAAS,iBAAiB,IAAI,KAAK,SAAS,mBAAmB,CACtE,QAAO;AAGT,QAAO;;;AAIT,MAAM,iBAAiB;;;;;AAMvB,MAAa,eAAe,YAC1B,eAAe,QAAQ,IAAI"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as getUI, s as logToFile } from "./debug-
|
|
2
|
-
import { n as analytics } from "./analytics-
|
|
1
|
+
import { f as getUI, s as logToFile } from "./debug-D_mboDpg.js";
|
|
2
|
+
import { n as analytics } from "./analytics-__4kRqZr.js";
|
|
3
3
|
import "./wizard-session-BoXAZEOf.js";
|
|
4
4
|
//#region src/utils/wizard-abort.ts
|
|
5
5
|
/**
|
|
@@ -46,4 +46,4 @@ async function wizardAbort(options) {
|
|
|
46
46
|
//#endregion
|
|
47
47
|
export { wizardAbort as i, registerCleanup as n, runCleanups as r, WizardError as t };
|
|
48
48
|
|
|
49
|
-
//# sourceMappingURL=wizard-abort-
|
|
49
|
+
//# sourceMappingURL=wizard-abort-CWaKUNMI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard-abort-
|
|
1
|
+
{"version":3,"file":"wizard-abort-CWaKUNMI.js","names":[],"sources":["../src/utils/wizard-abort.ts"],"sourcesContent":["/**\n * Single exit point for the wizard. Use instead of process.exit() directly.\n *\n * Sequence: cleanup -> error capture (optional) -> analytics shutdown -> outro -> process.exit\n *\n * WizardError is a data carrier passed to wizardAbort() for analytics context, never thrown.\n * The legacy abort() in setup-utils.ts delegates here.\n */\nimport { analytics } from './analytics';\nimport { logToFile } from './debug';\nimport { getUI } from '@ui';\nimport { OutroKind, type OutroData } from '@lib/wizard-session';\n\nexport class WizardError extends Error {\n constructor(\n message: string,\n public readonly context?: Record<string, unknown>,\n ) {\n super(message);\n this.name = 'WizardError';\n }\n}\n\ninterface WizardAbortOptions {\n message?: string;\n /** Structured error data. Renders via `outroError` instead of `outro`. */\n outroData?: OutroData;\n error?: Error | WizardError;\n exitCode?: number;\n}\n\nconst cleanupFns: Array<() => void> = [];\n\nexport function registerCleanup(fn: () => void): void {\n cleanupFns.push(fn);\n}\n\nexport function clearCleanup(): void {\n cleanupFns.length = 0;\n}\n\n/** Runs all registered cleanup functions and drains the array. */\nexport function runCleanups(): void {\n const fns = cleanupFns.splice(0);\n for (const fn of fns) {\n try {\n fn();\n } catch {\n /* cleanup should not prevent exit */\n }\n }\n}\n\nexport async function wizardAbort(\n options?: WizardAbortOptions,\n): Promise<never> {\n const {\n message = 'Wizard setup cancelled.',\n outroData,\n error,\n exitCode = 1,\n } = options ?? {};\n\n logToFile(`[wizard-abort] exitCode=${exitCode}, message: ${message}`);\n if (error) {\n logToFile('[wizard-abort] error:', error);\n }\n\n // 1. Run registered cleanup functions\n runCleanups();\n\n // 2. Capture error in analytics (if provided)\n if (error) {\n analytics.captureException(error, {\n ...((error instanceof WizardError && error.context) || {}),\n });\n }\n\n // 3. Shutdown analytics\n await analytics.shutdown(error ? 'error' : 'cancelled');\n\n // 4. Render the error outro. Synthesize OutroData from `message`\n // when the caller didn't provide structured data.\n const ui = getUI();\n ui.outroError(outroData ?? { kind: OutroKind.Error, message });\n\n // 5. Wait for the user to dismiss the outro screen. In a TUI this gives\n // them time to read the error; in non-TUI environments it resolves\n // immediately.\n await ui.waitForOutroDismissed();\n\n // 6. Exit (fires 'exit' event so TUI cleanup runs)\n return process.exit(exitCode);\n}\n"],"mappings":";;;;;;;;;;;;AAaA,IAAa,cAAb,cAAiC,MAAM;CACrC,YACE,SACA,SACA;AACA,QAAM,QAAQ;AAFE,OAAA,UAAA;AAGhB,OAAK,OAAO;;;AAYhB,MAAM,aAAgC,EAAE;AAExC,SAAgB,gBAAgB,IAAsB;AACpD,YAAW,KAAK,GAAG;;;AAQrB,SAAgB,cAAoB;CAClC,MAAM,MAAM,WAAW,OAAO,EAAE;AAChC,MAAK,MAAM,MAAM,IACf,KAAI;AACF,MAAI;SACE;;AAMZ,eAAsB,YACpB,SACgB;CAChB,MAAM,EACJ,UAAU,2BACV,WACA,OACA,WAAW,MACT,WAAW,EAAE;AAEjB,WAAU,2BAA2B,SAAS,aAAa,UAAU;AACrE,KAAI,MACF,WAAU,yBAAyB,MAAM;AAI3C,cAAa;AAGb,KAAI,MACF,WAAU,iBAAiB,OAAO,EAChC,GAAK,iBAAiB,eAAe,MAAM,WAAY,EAAE,EAC1D,CAAC;AAIJ,OAAM,UAAU,SAAS,QAAQ,UAAU,YAAY;CAIvD,MAAM,KAAK,OAAO;AAClB,IAAG,WAAW,aAAa;EAAE,MAAA;EAAuB;EAAS,CAAC;AAK9D,OAAM,GAAG,uBAAuB;AAGhC,QAAO,QAAQ,KAAK,SAAS"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as wizardAbort, t as WizardError } from "./wizard-abort-
|
|
1
|
+
import { i as wizardAbort, t as WizardError } from "./wizard-abort-CWaKUNMI.js";
|
|
2
2
|
export { WizardError, wizardAbort };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { s as logToFile } from "./debug-
|
|
2
|
-
import { n as analytics } from "./analytics-
|
|
1
|
+
import { s as logToFile } from "./debug-D_mboDpg.js";
|
|
2
|
+
import { n as analytics } from "./analytics-__4kRqZr.js";
|
|
3
3
|
import { a as coerceAuditChecks, t as AUDIT_CHECKS_FILE } from "./types-evL_rPob.js";
|
|
4
4
|
import * as fs$1 from "fs";
|
|
5
5
|
import fs from "fs";
|
|
@@ -1101,4 +1101,4 @@ const WIZARD_TOOL_NAMES = {
|
|
|
1101
1101
|
//#endregion
|
|
1102
1102
|
export { installSkillById as a, resolveEnvPath as c, TaskStatus as d, createWizardAskBridge as f, fetchSkillMenu as i, QUEUE_DIR_NAME as l, createWizardToolsServer as n, mergeEnvValues as o, downloadSkill as r, parseEnvKeys as s, WIZARD_TOOL_NAMES as t, QueueStore as u };
|
|
1103
1103
|
|
|
1104
|
-
//# sourceMappingURL=wizard-tools-
|
|
1104
|
+
//# sourceMappingURL=wizard-tools-CrpRaYkE.js.map
|