langwatch 0.19.0 → 0.20.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-WLIE6XEG.mjs → add-2I554R6L.mjs} +4 -4
- package/dist/{add-OYRTMKQO.js → add-FJ2SMVQE.js} +7 -7
- package/dist/{add-OYRTMKQO.js.map → add-FJ2SMVQE.js.map} +1 -1
- package/dist/{chunk-MPOVGCVD.mjs → chunk-5M66X6SZ.mjs} +2 -2
- package/dist/{chunk-CIMNUH6E.mjs → chunk-A7CF6ZGH.mjs} +14 -7
- package/dist/chunk-A7CF6ZGH.mjs.map +1 -0
- package/dist/{chunk-44V235QR.js → chunk-BJUXJHMQ.js} +2 -2
- package/dist/{chunk-44V235QR.js.map → chunk-BJUXJHMQ.js.map} +1 -1
- package/dist/{chunk-CCDYGS72.mjs → chunk-CWXQ53NE.mjs} +2 -2
- package/dist/{chunk-HZAW7WTJ.js → chunk-NW32UPEI.js} +14 -14
- package/dist/{chunk-HZAW7WTJ.js.map → chunk-NW32UPEI.js.map} +1 -1
- package/dist/{chunk-JSD3JAHK.js → chunk-OLI6GF46.js} +11 -11
- package/dist/{chunk-JSD3JAHK.js.map → chunk-OLI6GF46.js.map} +1 -1
- package/dist/{chunk-22J3GPSB.js → chunk-PIF2RJWZ.js} +12 -12
- package/dist/{chunk-22J3GPSB.js.map → chunk-PIF2RJWZ.js.map} +1 -1
- package/dist/{chunk-SPEPSXKI.js → chunk-QLBNSGWC.js} +16 -9
- package/dist/chunk-QLBNSGWC.js.map +1 -0
- package/dist/{chunk-DCKVBP6R.mjs → chunk-SSONRNFB.mjs} +2 -2
- package/dist/{chunk-DCKVBP6R.mjs.map → chunk-SSONRNFB.mjs.map} +1 -1
- package/dist/{chunk-QD7BOTQC.mjs → chunk-WASZSPD7.mjs} +5 -5
- package/dist/{chunk-QD7BOTQC.mjs.map → chunk-WASZSPD7.mjs.map} +1 -1
- package/dist/{chunk-HYPS247A.mjs → chunk-WSESRS6L.mjs} +3 -3
- package/dist/{chunk-IJWZY7FY.js → chunk-ZLCERT3X.js} +4 -4
- package/dist/{chunk-IJWZY7FY.js.map → chunk-ZLCERT3X.js.map} +1 -1
- package/dist/cli/index.js +12 -12
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/index.mjs +12 -12
- package/dist/cli/index.mjs.map +1 -1
- package/dist/index.js +14 -14
- package/dist/index.mjs +4 -4
- package/dist/{list-LZTSDYZO.mjs → list-53QTWXGF.mjs} +4 -4
- package/dist/{list-TVCERIYC.js → list-LBDUK454.js} +7 -7
- package/dist/{list-TVCERIYC.js.map → list-LBDUK454.js.map} +1 -1
- package/dist/{login-IC7I2IMY.mjs → login-QWXRNDAM.mjs} +2 -2
- package/dist/{login-2SBOQ62B.js → login-XBFOVP6G.js} +3 -3
- package/dist/{login-2SBOQ62B.js.map → login-XBFOVP6G.js.map} +1 -1
- package/dist/observability-sdk/index.js +3 -3
- package/dist/observability-sdk/index.mjs +2 -2
- package/dist/observability-sdk/setup/node/index.js +4 -4
- package/dist/observability-sdk/setup/node/index.mjs +3 -3
- package/dist/{pull-UFR3NBC7.js → pull-3B3CBSSM.js} +6 -6
- package/dist/{pull-UFR3NBC7.js.map → pull-3B3CBSSM.js.map} +1 -1
- package/dist/{pull-KXRSK5HG.mjs → pull-WK6P7KS2.mjs} +5 -5
- package/dist/{push-KFRI5YNG.mjs → push-G457CXVG.mjs} +5 -5
- package/dist/{push-73ABYK6C.js → push-GKFQL6GO.js} +6 -6
- package/dist/{push-73ABYK6C.js.map → push-GKFQL6GO.js.map} +1 -1
- package/dist/{remove-AIXQHYLS.js → remove-KIZPGE7J.js} +6 -6
- package/dist/{remove-AIXQHYLS.js.map → remove-KIZPGE7J.js.map} +1 -1
- package/dist/{remove-P3V4V2YO.mjs → remove-Q573N52S.mjs} +4 -4
- package/dist/{sync-53MALFUS.mjs → sync-TM7JZNNW.mjs} +6 -6
- package/dist/{sync-KQW7FUGI.js → sync-YPJIIHKC.js} +10 -10
- package/dist/{sync-KQW7FUGI.js.map → sync-YPJIIHKC.js.map} +1 -1
- package/package.json +5 -5
- package/dist/chunk-CIMNUH6E.mjs.map +0 -1
- package/dist/chunk-SPEPSXKI.js.map +0 -1
- /package/dist/{add-WLIE6XEG.mjs.map → add-2I554R6L.mjs.map} +0 -0
- /package/dist/{chunk-MPOVGCVD.mjs.map → chunk-5M66X6SZ.mjs.map} +0 -0
- /package/dist/{chunk-CCDYGS72.mjs.map → chunk-CWXQ53NE.mjs.map} +0 -0
- /package/dist/{chunk-HYPS247A.mjs.map → chunk-WSESRS6L.mjs.map} +0 -0
- /package/dist/{list-LZTSDYZO.mjs.map → list-53QTWXGF.mjs.map} +0 -0
- /package/dist/{login-IC7I2IMY.mjs.map → login-QWXRNDAM.mjs.map} +0 -0
- /package/dist/{pull-KXRSK5HG.mjs.map → pull-WK6P7KS2.mjs.map} +0 -0
- /package/dist/{push-KFRI5YNG.mjs.map → push-G457CXVG.mjs.map} +0 -0
- /package/dist/{remove-P3V4V2YO.mjs.map → remove-Q573N52S.mjs.map} +0 -0
- /package/dist/{sync-53MALFUS.mjs.map → sync-TM7JZNNW.mjs.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-IJWZY7FY.js","../src/cli/commands/pull.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-IJWZY7FY.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptConverter } from \"@/cli/utils/promptConverter\";\nimport {\n PromptsApiService,\n PromptsError,\n} from \"@/client-sdk/services/prompts\";\nimport type { PromptsConfig, PromptsLock, SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n/**\n * Core pull logic: fetches remote prompts and materializes them locally.\n * Returns the result and mutates the lock object in place.\n */\nexport const pullPrompts = async ({\n config,\n lock,\n promptsApiService,\n result,\n}: {\n config: PromptsConfig;\n lock: PromptsLock;\n promptsApiService: PromptsApiService;\n result: SyncResult;\n}): Promise<void> => {\n const remoteDeps = Object.entries(config.prompts).filter(\n ([, dependency]) => {\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n }\n );\n\n if (remoteDeps.length > 0) {\n const fetchSpinner = ora(\n `Checking ${remoteDeps.length} remote prompts...`\n ).start();\n\n for (const [name, dependency] of remoteDeps) {\n try {\n const versionSpec =\n typeof dependency === \"string\"\n ? dependency\n : dependency.version ?? \"latest\";\n\n const lockEntry = lock.prompts[name];\n\n const prompt = await promptsApiService.get(name, { version: versionSpec });\n\n if (prompt) {\n const needsUpdate =\n lockEntry?.version !== prompt.version ||\n !lockEntry.materialized ||\n !fs.existsSync(path.resolve(lockEntry.materialized));\n\n if (needsUpdate) {\n const materializedPrompt =\n PromptConverter.fromApiToMaterialized(prompt);\n\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n result.fetched.push({\n name,\n version: prompt.version,\n versionSpec,\n });\n\n FileManager.updateLockEntry(\n lock,\n name,\n materializedPrompt,\n savedPath\n );\n\n fetchSpinner.text = `Fetched ${chalk.cyan(\n `${name}@${versionSpec}`\n )} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(\n relativePath\n )}`;\n } else {\n result.unchanged.push(name);\n }\n } else {\n result.errors.push({ name, error: \"Prompt not found\" });\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n result.errors.push({ name, error: errorMessage });\n }\n }\n\n fetchSpinner.stop();\n }\n\n // Cleanup orphaned materialized files\n const currentDependencies = new Set(\n Object.keys(config.prompts).filter((name) => {\n const dependency = config.prompts[name];\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n })\n );\n\n const cleanedFiles =\n FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);\n if (cleanedFiles.length > 0) {\n result.cleaned = cleanedFiles;\n FileManager.removeFromLock(lock, cleanedFiles);\n }\n};\n\nconst printPullResults = ({\n result,\n lock,\n duration,\n}: {\n result: SyncResult;\n lock: PromptsLock;\n duration: string;\n}): void => {\n if (result.fetched.length > 0) {\n for (const { name, version, versionSpec } of result.fetched) {\n const lockEntry = lock.prompts[name];\n const displayPath = lockEntry?.materialized\n ? `./${lockEntry.materialized}`\n : `./prompts/.materialized/${name}.prompt.yaml`;\n\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(\n `(version ${version})`\n )} → ${chalk.gray(displayPath)}`\n )\n );\n }\n }\n\n if (result.cleaned.length > 0) {\n for (const name of result.cleaned) {\n console.log(\n chalk.yellow(\n `✓ Cleaned ${chalk.cyan(name)} (no longer in dependencies)`\n )\n );\n }\n }\n\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.log(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n const totalActions = result.fetched.length + result.cleaned.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Pulled in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} fetched`);\n if (result.cleaned.length > 0)\n summary.push(`${result.cleaned.length} cleaned`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Pulled ${summary.join(\", \")} in ${duration}s`));\n }\n};\n\nexport const pullCommand = async (): Promise<void> => {\n console.log(\"⬇️ Pulling remote prompts...\");\n\n const startTime = Date.now();\n\n try {\n checkApiKey();\n\n const promptsApiService = new PromptsApiService();\n\n await ensureProjectInitialized(false);\n\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n await pullPrompts({ config, lock, promptsApiService, result });\n\n FileManager.savePromptsLock(lock);\n\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n printPullResults({ result, lock, duration });\n\n if (result.errors.length > 0) {\n process.exit(1);\n }\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Unexpected error: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`\n )\n );\n }\n process.exit(1);\n }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-ZLCERT3X.js","../src/cli/commands/pull.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-ZLCERT3X.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptConverter } from \"@/cli/utils/promptConverter\";\nimport {\n PromptsApiService,\n PromptsError,\n} from \"@/client-sdk/services/prompts\";\nimport type { PromptsConfig, PromptsLock, SyncResult } from \"../types\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n/**\n * Core pull logic: fetches remote prompts and materializes them locally.\n * Returns the result and mutates the lock object in place.\n */\nexport const pullPrompts = async ({\n config,\n lock,\n promptsApiService,\n result,\n}: {\n config: PromptsConfig;\n lock: PromptsLock;\n promptsApiService: PromptsApiService;\n result: SyncResult;\n}): Promise<void> => {\n const remoteDeps = Object.entries(config.prompts).filter(\n ([, dependency]) => {\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n }\n );\n\n if (remoteDeps.length > 0) {\n const fetchSpinner = ora(\n `Checking ${remoteDeps.length} remote prompts...`\n ).start();\n\n for (const [name, dependency] of remoteDeps) {\n try {\n const versionSpec =\n typeof dependency === \"string\"\n ? dependency\n : dependency.version ?? \"latest\";\n\n const lockEntry = lock.prompts[name];\n\n const prompt = await promptsApiService.get(name, { version: versionSpec });\n\n if (prompt) {\n const needsUpdate =\n lockEntry?.version !== prompt.version ||\n !lockEntry.materialized ||\n !fs.existsSync(path.resolve(lockEntry.materialized));\n\n if (needsUpdate) {\n const materializedPrompt =\n PromptConverter.fromApiToMaterialized(prompt);\n\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n result.fetched.push({\n name,\n version: prompt.version,\n versionSpec,\n });\n\n FileManager.updateLockEntry(\n lock,\n name,\n materializedPrompt,\n savedPath\n );\n\n fetchSpinner.text = `Fetched ${chalk.cyan(\n `${name}@${versionSpec}`\n )} ${chalk.gray(`(version ${prompt.version})`)} → ${chalk.gray(\n relativePath\n )}`;\n } else {\n result.unchanged.push(name);\n }\n } else {\n result.errors.push({ name, error: \"Prompt not found\" });\n }\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : \"Unknown error\";\n result.errors.push({ name, error: errorMessage });\n }\n }\n\n fetchSpinner.stop();\n }\n\n // Cleanup orphaned materialized files\n const currentDependencies = new Set(\n Object.keys(config.prompts).filter((name) => {\n const dependency = config.prompts[name];\n if (typeof dependency === \"object\" && dependency.file) {\n return false;\n }\n if (typeof dependency === \"string\" && dependency.startsWith(\"file:\")) {\n return false;\n }\n return true;\n })\n );\n\n const cleanedFiles =\n FileManager.cleanupOrphanedMaterializedFiles(currentDependencies);\n if (cleanedFiles.length > 0) {\n result.cleaned = cleanedFiles;\n FileManager.removeFromLock(lock, cleanedFiles);\n }\n};\n\nconst printPullResults = ({\n result,\n lock,\n duration,\n}: {\n result: SyncResult;\n lock: PromptsLock;\n duration: string;\n}): void => {\n if (result.fetched.length > 0) {\n for (const { name, version, versionSpec } of result.fetched) {\n const lockEntry = lock.prompts[name];\n const displayPath = lockEntry?.materialized\n ? `./${lockEntry.materialized}`\n : `./prompts/.materialized/${name}.prompt.yaml`;\n\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${versionSpec}`)} ${chalk.gray(\n `(version ${version})`\n )} → ${chalk.gray(displayPath)}`\n )\n );\n }\n }\n\n if (result.cleaned.length > 0) {\n for (const name of result.cleaned) {\n console.log(\n chalk.yellow(\n `✓ Cleaned ${chalk.cyan(name)} (no longer in dependencies)`\n )\n );\n }\n }\n\n if (result.errors.length > 0) {\n for (const { name, error } of result.errors) {\n console.log(chalk.red(`✗ Failed ${chalk.cyan(name)}: ${error}`));\n }\n }\n\n const totalActions = result.fetched.length + result.cleaned.length;\n\n if (totalActions === 0 && result.errors.length === 0) {\n console.log(chalk.gray(`Pulled in ${duration}s, no changes`));\n } else {\n const summary = [];\n if (result.fetched.length > 0)\n summary.push(`${result.fetched.length} fetched`);\n if (result.cleaned.length > 0)\n summary.push(`${result.cleaned.length} cleaned`);\n if (result.errors.length > 0)\n summary.push(`${result.errors.length} errors`);\n\n console.log(chalk.gray(`Pulled ${summary.join(\", \")} in ${duration}s`));\n }\n};\n\nexport const pullCommand = async (): Promise<void> => {\n console.log(\"⬇️ Pulling remote prompts...\");\n\n const startTime = Date.now();\n\n try {\n checkApiKey();\n\n const promptsApiService = new PromptsApiService();\n\n await ensureProjectInitialized(false);\n\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n const result: SyncResult = {\n fetched: [],\n pushed: [],\n unchanged: [],\n cleaned: [],\n errors: [],\n };\n\n await pullPrompts({ config, lock, promptsApiService, result });\n\n FileManager.savePromptsLock(lock);\n\n const duration = ((Date.now() - startTime) / 1000).toFixed(1);\n printPullResults({ result, lock, duration });\n\n if (result.errors.length > 0) {\n process.exit(1);\n }\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Unexpected error: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`\n )\n );\n }\n process.exit(1);\n }\n};\n"]}
|
package/dist/cli/index.js
CHANGED
|
@@ -9,11 +9,11 @@ var _dotenv = require('dotenv');
|
|
|
9
9
|
var _commander = require('commander');
|
|
10
10
|
_dotenv.config.call(void 0, );
|
|
11
11
|
var addCommand = async (name, options) => {
|
|
12
|
-
const { addCommand: addCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../add-
|
|
12
|
+
const { addCommand: addCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../add-FJ2SMVQE.js")));
|
|
13
13
|
return addCommandImpl(name, options);
|
|
14
14
|
};
|
|
15
15
|
var removeCommand = async (name) => {
|
|
16
|
-
const { removeCommand: removeCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../remove-
|
|
16
|
+
const { removeCommand: removeCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../remove-KIZPGE7J.js")));
|
|
17
17
|
return removeCommandImpl(name);
|
|
18
18
|
};
|
|
19
19
|
var initCommand = async () => {
|
|
@@ -21,31 +21,31 @@ var initCommand = async () => {
|
|
|
21
21
|
return initCommandImpl();
|
|
22
22
|
};
|
|
23
23
|
var loginCommand = async () => {
|
|
24
|
-
const { loginCommand: loginCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../login-
|
|
24
|
+
const { loginCommand: loginCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../login-XBFOVP6G.js")));
|
|
25
25
|
return loginCommandImpl();
|
|
26
26
|
};
|
|
27
27
|
var listCommand = async () => {
|
|
28
|
-
const { listCommand: listCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../list-
|
|
28
|
+
const { listCommand: listCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../list-LBDUK454.js")));
|
|
29
29
|
return listCommandImpl();
|
|
30
30
|
};
|
|
31
31
|
var syncCommand = async () => {
|
|
32
|
-
const { syncCommand: syncCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../sync-
|
|
32
|
+
const { syncCommand: syncCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../sync-YPJIIHKC.js")));
|
|
33
33
|
return syncCommandImpl();
|
|
34
34
|
};
|
|
35
35
|
var pullCommand = async () => {
|
|
36
|
-
const { pullCommand: pullCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../pull-
|
|
36
|
+
const { pullCommand: pullCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../pull-3B3CBSSM.js")));
|
|
37
37
|
return pullCommandImpl();
|
|
38
38
|
};
|
|
39
|
-
var pushCommand = async () => {
|
|
40
|
-
const { pushCommand: pushCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../push-
|
|
41
|
-
return pushCommandImpl();
|
|
39
|
+
var pushCommand = async (options) => {
|
|
40
|
+
const { pushCommand: pushCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../push-GKFQL6GO.js")));
|
|
41
|
+
return pushCommandImpl(options);
|
|
42
42
|
};
|
|
43
43
|
var createCommand = async (name, options) => {
|
|
44
44
|
const { createCommand: createCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../create-SWMCGN2Y.js")));
|
|
45
45
|
return createCommandImpl(name, options);
|
|
46
46
|
};
|
|
47
47
|
var program = new (0, _commander.Command)();
|
|
48
|
-
program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.
|
|
48
|
+
program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.20.0", "-v, --version", "Display the current version").configureHelp({
|
|
49
49
|
showGlobalOptions: true
|
|
50
50
|
}).showHelpAfterError().showSuggestionAfterError();
|
|
51
51
|
program.command("login").description("Login to LangWatch and save API key").action(async () => {
|
|
@@ -118,9 +118,9 @@ promptCmd.command("pull").description("Pull remote prompts and materialize local
|
|
|
118
118
|
process.exit(1);
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
|
-
promptCmd.command("push").description("Push local prompts to the server").action(async () => {
|
|
121
|
+
promptCmd.command("push").description("Push local prompts to the server").option("--force-local", "Auto-resolve conflicts by keeping local version").option("--force-remote", "Auto-resolve conflicts by keeping remote version").action(async (options) => {
|
|
122
122
|
try {
|
|
123
|
-
await pushCommand();
|
|
123
|
+
await pushCommand({ forceLocal: options.forceLocal, forceRemote: options.forceRemote });
|
|
124
124
|
} catch (error) {
|
|
125
125
|
console.error(`Error: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
126
126
|
process.exit(1);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/cli/index.js","../../src/cli/index.ts"],"names":[],"mappings":"AAAA;AACA;AACE;AACF,uDAA6B;AAC7B,gCAA6B;AAC7B;AACA;ACHA,gCAAuB;AAGvB,sCAAwB;AAFxB,4BAAA,CAAO;AAQP,IAAM,WAAA,EAAa,MAAA,CAAO,IAAA,EAAc,OAAA,EAAA,GAAqE;AAC3G,EAAA,MAAM,EAAE,UAAA,EAAY,eAAe,EAAA,EAAI,MAAM,4DAAA,CAAO,oBAAmB,GAAA;AACvE,EAAA,OAAO,cAAA,CAAe,IAAA,EAAM,OAAO,CAAA;AACrC,CAAA;AAEA,IAAM,cAAA,EAAgB,MAAA,CAAO,IAAA,EAAA,GAAgC;AAC3D,EAAA,MAAM,EAAE,aAAA,EAAe,kBAAkB,EAAA,EAAI,MAAM,4DAAA,CAAO,uBAAsB,GAAA;AAChF,EAAA,OAAO,iBAAA,CAAkB,IAAI,CAAA;AAC/B,CAAA;AAEA,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AAC7C,EAAA,MAAM,EAAE,WAAA,EAAa,gBAAgB,EAAA,EAAI,MAAM,4DAAA,CAAO,qBAAoB,GAAA;AAC1E,EAAA,OAAO,eAAA,CAAgB,CAAA;AACzB,CAAA;AAEA,IAAM,aAAA,EAAe,MAAA,CAAA,EAAA,GAA2B;AAC9C,EAAA,MAAM,EAAE,YAAA,EAAc,iBAAiB,EAAA,EAAI,MAAM,4DAAA,CAAO,sBAAqB,GAAA;AAC7E,EAAA,OAAO,gBAAA,CAAiB,CAAA;AAC1B,CAAA;AAEA,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AAC7C,EAAA,MAAM,EAAE,WAAA,EAAa,gBAAgB,EAAA,EAAI,MAAM,4DAAA,CAAO,qBAAoB,GAAA;AAC1E,EAAA,OAAO,eAAA,CAAgB,CAAA;AACzB,CAAA;AAEA,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AAC7C,EAAA,MAAM,EAAE,WAAA,EAAa,gBAAgB,EAAA,EAAI,MAAM,4DAAA,CAAO,qBAAoB,GAAA;AAC1E,EAAA,OAAO,eAAA,CAAgB,CAAA;AACzB,CAAA;AAEA,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AAC7C,EAAA,MAAM,EAAE,WAAA,EAAa,gBAAgB,EAAA,EAAI,MAAM,4DAAA,CAAO,qBAAoB,GAAA;AAC1E,EAAA,OAAO,eAAA,CAAgB,CAAA;AACzB,CAAA;AAEA,IAAM,YAAA,EAAc,MAAA,
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/cli/index.js","../../src/cli/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/cli/index.js","sourcesContent":[null,"#!/usr/bin/env node\n\n// Load environment variables BEFORE any other imports\nimport { config } from \"dotenv\";\nconfig();\n\nimport { Command } from \"commander\";\nimport { parsePromptSpec } from \"./types\";\n\ndeclare const __CLI_VERSION__: string;\n\n// Import commands with proper async handling\nconst addCommand = async (name: string, options: { version?: string; localFile?: string }): Promise<void> => {\n const { addCommand: addCommandImpl } = await import(\"./commands/add.js\");\n return addCommandImpl(name, options);\n};\n\nconst removeCommand = async (name: string): Promise<void> => {\n const { removeCommand: removeCommandImpl } = await import(\"./commands/remove.js\");\n return removeCommandImpl(name);\n};\n\nconst initCommand = async (): Promise<void> => {\n const { initCommand: initCommandImpl } = await import(\"./commands/init.js\");\n return initCommandImpl();\n};\n\nconst loginCommand = async (): Promise<void> => {\n const { loginCommand: loginCommandImpl } = await import(\"./commands/login.js\");\n return loginCommandImpl();\n};\n\nconst listCommand = async (): Promise<void> => {\n const { listCommand: listCommandImpl } = await import(\"./commands/list.js\");\n return listCommandImpl();\n};\n\nconst syncCommand = async (): Promise<void> => {\n const { syncCommand: syncCommandImpl } = await import(\"./commands/sync.js\");\n return syncCommandImpl();\n};\n\nconst pullCommand = async (): Promise<void> => {\n const { pullCommand: pullCommandImpl } = await import(\"./commands/pull.js\");\n return pullCommandImpl();\n};\n\nconst pushCommand = async (options?: { forceLocal?: boolean; forceRemote?: boolean }): Promise<void> => {\n const { pushCommand: pushCommandImpl } = await import(\"./commands/push.js\");\n return pushCommandImpl(options);\n};\n\nconst createCommand = async (name: string, options: Record<string, unknown>): Promise<void> => {\n const { createCommand: createCommandImpl } = await import(\"./commands/create.js\");\n return createCommandImpl(name, options);\n};\n\nconst program = new Command();\n\nprogram\n .name(\"langwatch\")\n .description(\"LangWatch CLI - The npm of prompts\")\n .version(__CLI_VERSION__, \"-v, --version\", \"Display the current version\")\n .configureHelp({\n showGlobalOptions: true,\n })\n .showHelpAfterError()\n .showSuggestionAfterError();\n\n// Top-level commands\nprogram\n .command(\"login\")\n .description(\"Login to LangWatch and save API key\")\n .action(async () => {\n try {\n await loginCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\n// Add prompt command group\nconst promptCmd = program\n .command(\"prompt\")\n .description(\"Manage prompt dependencies\");\n\npromptCmd\n .command(\"init\")\n .description(\"Initialize a new prompts project\")\n .action(async () => {\n try {\n await initCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"create <name>\")\n .description(\"Create a new prompt YAML file with default content\")\n .action(async (name: string) => {\n try {\n await createCommand(name, {});\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"add <spec> [localFile]\")\n .description(\"Add a prompt dependency (e.g., 'agent/foo', 'agent/bar@5') or local file\")\n .action(async (spec: string, localFile?: string) => {\n try {\n if (localFile) {\n await addCommand(spec, { localFile });\n } else {\n const { name, version } = parsePromptSpec(spec);\n await addCommand(name, { version });\n }\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"remove <name>\")\n .description(\"Remove a prompt dependency\")\n .action(async (name: string) => {\n try {\n await removeCommand(name);\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"list\")\n .description(\"List all available prompts on the server\")\n .action(async () => {\n try {\n await listCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"sync\")\n .description(\"Sync prompts - fetch remote and push local\")\n .action(async () => {\n try {\n await syncCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"pull\")\n .description(\"Pull remote prompts and materialize locally\")\n .action(async () => {\n try {\n await pullCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"push\")\n .description(\"Push local prompts to the server\")\n .option(\"--force-local\", \"Auto-resolve conflicts by keeping local version\")\n .option(\"--force-remote\", \"Auto-resolve conflicts by keeping remote version\")\n .action(async (options: { forceLocal?: boolean; forceRemote?: boolean }) => {\n try {\n await pushCommand({ forceLocal: options.forceLocal, forceRemote: options.forceRemote });\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\nprogram.parse(process.argv);"]}
|
package/dist/cli/index.mjs
CHANGED
|
@@ -9,11 +9,11 @@ import { config } from "dotenv";
|
|
|
9
9
|
import { Command } from "commander";
|
|
10
10
|
config();
|
|
11
11
|
var addCommand = async (name, options) => {
|
|
12
|
-
const { addCommand: addCommandImpl } = await import("../add-
|
|
12
|
+
const { addCommand: addCommandImpl } = await import("../add-2I554R6L.mjs");
|
|
13
13
|
return addCommandImpl(name, options);
|
|
14
14
|
};
|
|
15
15
|
var removeCommand = async (name) => {
|
|
16
|
-
const { removeCommand: removeCommandImpl } = await import("../remove-
|
|
16
|
+
const { removeCommand: removeCommandImpl } = await import("../remove-Q573N52S.mjs");
|
|
17
17
|
return removeCommandImpl(name);
|
|
18
18
|
};
|
|
19
19
|
var initCommand = async () => {
|
|
@@ -21,31 +21,31 @@ var initCommand = async () => {
|
|
|
21
21
|
return initCommandImpl();
|
|
22
22
|
};
|
|
23
23
|
var loginCommand = async () => {
|
|
24
|
-
const { loginCommand: loginCommandImpl } = await import("../login-
|
|
24
|
+
const { loginCommand: loginCommandImpl } = await import("../login-QWXRNDAM.mjs");
|
|
25
25
|
return loginCommandImpl();
|
|
26
26
|
};
|
|
27
27
|
var listCommand = async () => {
|
|
28
|
-
const { listCommand: listCommandImpl } = await import("../list-
|
|
28
|
+
const { listCommand: listCommandImpl } = await import("../list-53QTWXGF.mjs");
|
|
29
29
|
return listCommandImpl();
|
|
30
30
|
};
|
|
31
31
|
var syncCommand = async () => {
|
|
32
|
-
const { syncCommand: syncCommandImpl } = await import("../sync-
|
|
32
|
+
const { syncCommand: syncCommandImpl } = await import("../sync-TM7JZNNW.mjs");
|
|
33
33
|
return syncCommandImpl();
|
|
34
34
|
};
|
|
35
35
|
var pullCommand = async () => {
|
|
36
|
-
const { pullCommand: pullCommandImpl } = await import("../pull-
|
|
36
|
+
const { pullCommand: pullCommandImpl } = await import("../pull-WK6P7KS2.mjs");
|
|
37
37
|
return pullCommandImpl();
|
|
38
38
|
};
|
|
39
|
-
var pushCommand = async () => {
|
|
40
|
-
const { pushCommand: pushCommandImpl } = await import("../push-
|
|
41
|
-
return pushCommandImpl();
|
|
39
|
+
var pushCommand = async (options) => {
|
|
40
|
+
const { pushCommand: pushCommandImpl } = await import("../push-G457CXVG.mjs");
|
|
41
|
+
return pushCommandImpl(options);
|
|
42
42
|
};
|
|
43
43
|
var createCommand = async (name, options) => {
|
|
44
44
|
const { createCommand: createCommandImpl } = await import("../create-KEEZMNMH.mjs");
|
|
45
45
|
return createCommandImpl(name, options);
|
|
46
46
|
};
|
|
47
47
|
var program = new Command();
|
|
48
|
-
program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.
|
|
48
|
+
program.name("langwatch").description("LangWatch CLI - The npm of prompts").version("0.20.0", "-v, --version", "Display the current version").configureHelp({
|
|
49
49
|
showGlobalOptions: true
|
|
50
50
|
}).showHelpAfterError().showSuggestionAfterError();
|
|
51
51
|
program.command("login").description("Login to LangWatch and save API key").action(async () => {
|
|
@@ -118,9 +118,9 @@ promptCmd.command("pull").description("Pull remote prompts and materialize local
|
|
|
118
118
|
process.exit(1);
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
|
-
promptCmd.command("push").description("Push local prompts to the server").action(async () => {
|
|
121
|
+
promptCmd.command("push").description("Push local prompts to the server").option("--force-local", "Auto-resolve conflicts by keeping local version").option("--force-remote", "Auto-resolve conflicts by keeping remote version").action(async (options) => {
|
|
122
122
|
try {
|
|
123
|
-
await pushCommand();
|
|
123
|
+
await pushCommand({ forceLocal: options.forceLocal, forceRemote: options.forceRemote });
|
|
124
124
|
} catch (error) {
|
|
125
125
|
console.error(`Error: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
126
126
|
process.exit(1);
|
package/dist/cli/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\n// Load environment variables BEFORE any other imports\nimport { config } from \"dotenv\";\nconfig();\n\nimport { Command } from \"commander\";\nimport { parsePromptSpec } from \"./types\";\n\ndeclare const __CLI_VERSION__: string;\n\n// Import commands with proper async handling\nconst addCommand = async (name: string, options: { version?: string; localFile?: string }): Promise<void> => {\n const { addCommand: addCommandImpl } = await import(\"./commands/add.js\");\n return addCommandImpl(name, options);\n};\n\nconst removeCommand = async (name: string): Promise<void> => {\n const { removeCommand: removeCommandImpl } = await import(\"./commands/remove.js\");\n return removeCommandImpl(name);\n};\n\nconst initCommand = async (): Promise<void> => {\n const { initCommand: initCommandImpl } = await import(\"./commands/init.js\");\n return initCommandImpl();\n};\n\nconst loginCommand = async (): Promise<void> => {\n const { loginCommand: loginCommandImpl } = await import(\"./commands/login.js\");\n return loginCommandImpl();\n};\n\nconst listCommand = async (): Promise<void> => {\n const { listCommand: listCommandImpl } = await import(\"./commands/list.js\");\n return listCommandImpl();\n};\n\nconst syncCommand = async (): Promise<void> => {\n const { syncCommand: syncCommandImpl } = await import(\"./commands/sync.js\");\n return syncCommandImpl();\n};\n\nconst pullCommand = async (): Promise<void> => {\n const { pullCommand: pullCommandImpl } = await import(\"./commands/pull.js\");\n return pullCommandImpl();\n};\n\nconst pushCommand = async (): Promise<void> => {\n const { pushCommand: pushCommandImpl } = await import(\"./commands/push.js\");\n return pushCommandImpl();\n};\n\nconst createCommand = async (name: string, options: Record<string, unknown>): Promise<void> => {\n const { createCommand: createCommandImpl } = await import(\"./commands/create.js\");\n return createCommandImpl(name, options);\n};\n\nconst program = new Command();\n\nprogram\n .name(\"langwatch\")\n .description(\"LangWatch CLI - The npm of prompts\")\n .version(__CLI_VERSION__, \"-v, --version\", \"Display the current version\")\n .configureHelp({\n showGlobalOptions: true,\n })\n .showHelpAfterError()\n .showSuggestionAfterError();\n\n// Top-level commands\nprogram\n .command(\"login\")\n .description(\"Login to LangWatch and save API key\")\n .action(async () => {\n try {\n await loginCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\n// Add prompt command group\nconst promptCmd = program\n .command(\"prompt\")\n .description(\"Manage prompt dependencies\");\n\npromptCmd\n .command(\"init\")\n .description(\"Initialize a new prompts project\")\n .action(async () => {\n try {\n await initCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"create <name>\")\n .description(\"Create a new prompt YAML file with default content\")\n .action(async (name: string) => {\n try {\n await createCommand(name, {});\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"add <spec> [localFile]\")\n .description(\"Add a prompt dependency (e.g., 'agent/foo', 'agent/bar@5') or local file\")\n .action(async (spec: string, localFile?: string) => {\n try {\n if (localFile) {\n await addCommand(spec, { localFile });\n } else {\n const { name, version } = parsePromptSpec(spec);\n await addCommand(name, { version });\n }\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"remove <name>\")\n .description(\"Remove a prompt dependency\")\n .action(async (name: string) => {\n try {\n await removeCommand(name);\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"list\")\n .description(\"List all available prompts on the server\")\n .action(async () => {\n try {\n await listCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"sync\")\n .description(\"Sync prompts - fetch remote and push local\")\n .action(async () => {\n try {\n await syncCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"pull\")\n .description(\"Pull remote prompts and materialize locally\")\n .action(async () => {\n try {\n await pullCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"push\")\n .description(\"Push local prompts to the server\")\n .action(async () => {\n try {\n await pushCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\nprogram.parse(process.argv);"],"mappings":";;;;;;;AAGA,SAAS,cAAc;AAGvB,SAAS,eAAe;AAFxB,OAAO;AAQP,IAAM,aAAa,OAAO,MAAc,YAAqE;AAC3G,QAAM,EAAE,YAAY,eAAe,IAAI,MAAM,OAAO,qBAAmB;AACvE,SAAO,eAAe,MAAM,OAAO;AACrC;AAEA,IAAM,gBAAgB,OAAO,SAAgC;AAC3D,QAAM,EAAE,eAAe,kBAAkB,IAAI,MAAM,OAAO,wBAAsB;AAChF,SAAO,kBAAkB,IAAI;AAC/B;AAEA,IAAM,cAAc,YAA2B;AAC7C,QAAM,EAAE,aAAa,gBAAgB,IAAI,MAAM,OAAO,sBAAoB;AAC1E,SAAO,gBAAgB;AACzB;AAEA,IAAM,eAAe,YAA2B;AAC9C,QAAM,EAAE,cAAc,iBAAiB,IAAI,MAAM,OAAO,uBAAqB;AAC7E,SAAO,iBAAiB;AAC1B;AAEA,IAAM,cAAc,YAA2B;AAC7C,QAAM,EAAE,aAAa,gBAAgB,IAAI,MAAM,OAAO,sBAAoB;AAC1E,SAAO,gBAAgB;AACzB;AAEA,IAAM,cAAc,YAA2B;AAC7C,QAAM,EAAE,aAAa,gBAAgB,IAAI,MAAM,OAAO,sBAAoB;AAC1E,SAAO,gBAAgB;AACzB;AAEA,IAAM,cAAc,YAA2B;AAC7C,QAAM,EAAE,aAAa,gBAAgB,IAAI,MAAM,OAAO,sBAAoB;AAC1E,SAAO,gBAAgB;AACzB;AAEA,IAAM,cAAc,
|
|
1
|
+
{"version":3,"sources":["../../src/cli/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\n// Load environment variables BEFORE any other imports\nimport { config } from \"dotenv\";\nconfig();\n\nimport { Command } from \"commander\";\nimport { parsePromptSpec } from \"./types\";\n\ndeclare const __CLI_VERSION__: string;\n\n// Import commands with proper async handling\nconst addCommand = async (name: string, options: { version?: string; localFile?: string }): Promise<void> => {\n const { addCommand: addCommandImpl } = await import(\"./commands/add.js\");\n return addCommandImpl(name, options);\n};\n\nconst removeCommand = async (name: string): Promise<void> => {\n const { removeCommand: removeCommandImpl } = await import(\"./commands/remove.js\");\n return removeCommandImpl(name);\n};\n\nconst initCommand = async (): Promise<void> => {\n const { initCommand: initCommandImpl } = await import(\"./commands/init.js\");\n return initCommandImpl();\n};\n\nconst loginCommand = async (): Promise<void> => {\n const { loginCommand: loginCommandImpl } = await import(\"./commands/login.js\");\n return loginCommandImpl();\n};\n\nconst listCommand = async (): Promise<void> => {\n const { listCommand: listCommandImpl } = await import(\"./commands/list.js\");\n return listCommandImpl();\n};\n\nconst syncCommand = async (): Promise<void> => {\n const { syncCommand: syncCommandImpl } = await import(\"./commands/sync.js\");\n return syncCommandImpl();\n};\n\nconst pullCommand = async (): Promise<void> => {\n const { pullCommand: pullCommandImpl } = await import(\"./commands/pull.js\");\n return pullCommandImpl();\n};\n\nconst pushCommand = async (options?: { forceLocal?: boolean; forceRemote?: boolean }): Promise<void> => {\n const { pushCommand: pushCommandImpl } = await import(\"./commands/push.js\");\n return pushCommandImpl(options);\n};\n\nconst createCommand = async (name: string, options: Record<string, unknown>): Promise<void> => {\n const { createCommand: createCommandImpl } = await import(\"./commands/create.js\");\n return createCommandImpl(name, options);\n};\n\nconst program = new Command();\n\nprogram\n .name(\"langwatch\")\n .description(\"LangWatch CLI - The npm of prompts\")\n .version(__CLI_VERSION__, \"-v, --version\", \"Display the current version\")\n .configureHelp({\n showGlobalOptions: true,\n })\n .showHelpAfterError()\n .showSuggestionAfterError();\n\n// Top-level commands\nprogram\n .command(\"login\")\n .description(\"Login to LangWatch and save API key\")\n .action(async () => {\n try {\n await loginCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\n// Add prompt command group\nconst promptCmd = program\n .command(\"prompt\")\n .description(\"Manage prompt dependencies\");\n\npromptCmd\n .command(\"init\")\n .description(\"Initialize a new prompts project\")\n .action(async () => {\n try {\n await initCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"create <name>\")\n .description(\"Create a new prompt YAML file with default content\")\n .action(async (name: string) => {\n try {\n await createCommand(name, {});\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"add <spec> [localFile]\")\n .description(\"Add a prompt dependency (e.g., 'agent/foo', 'agent/bar@5') or local file\")\n .action(async (spec: string, localFile?: string) => {\n try {\n if (localFile) {\n await addCommand(spec, { localFile });\n } else {\n const { name, version } = parsePromptSpec(spec);\n await addCommand(name, { version });\n }\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"remove <name>\")\n .description(\"Remove a prompt dependency\")\n .action(async (name: string) => {\n try {\n await removeCommand(name);\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"list\")\n .description(\"List all available prompts on the server\")\n .action(async () => {\n try {\n await listCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"sync\")\n .description(\"Sync prompts - fetch remote and push local\")\n .action(async () => {\n try {\n await syncCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"pull\")\n .description(\"Pull remote prompts and materialize locally\")\n .action(async () => {\n try {\n await pullCommand();\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\npromptCmd\n .command(\"push\")\n .description(\"Push local prompts to the server\")\n .option(\"--force-local\", \"Auto-resolve conflicts by keeping local version\")\n .option(\"--force-remote\", \"Auto-resolve conflicts by keeping remote version\")\n .action(async (options: { forceLocal?: boolean; forceRemote?: boolean }) => {\n try {\n await pushCommand({ forceLocal: options.forceLocal, forceRemote: options.forceRemote });\n } catch (error) {\n console.error(`Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n process.exit(1);\n }\n });\n\nprogram.parse(process.argv);"],"mappings":"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","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkOLI6GF46js = require('./chunk-OLI6GF46.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
@@ -8,7 +8,7 @@ var _chunkJSD3JAHKjs = require('./chunk-JSD3JAHK.js');
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkPIF2RJWZjs = require('./chunk-PIF2RJWZ.js');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
var _chunkQNT5P6VVjs = require('./chunk-QNT5P6VV.js');
|
|
@@ -19,12 +19,12 @@ var _chunkVCC7F6B7js = require('./chunk-VCC7F6B7.js');
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _chunkNW32UPEIjs = require('./chunk-NW32UPEI.js');
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
var
|
|
27
|
+
var _chunkBJUXJHMQjs = require('./chunk-BJUXJHMQ.js');
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
@@ -355,7 +355,7 @@ var Experiment = class _Experiment {
|
|
|
355
355
|
* Initialize an evaluation session
|
|
356
356
|
*/
|
|
357
357
|
static async init(name, options) {
|
|
358
|
-
|
|
358
|
+
_chunkOLI6GF46js.ensureSetup.call(void 0, );
|
|
359
359
|
const experiment = new _Experiment(name, options);
|
|
360
360
|
await experiment.initialize();
|
|
361
361
|
return experiment;
|
|
@@ -1455,13 +1455,13 @@ var TracesError = class extends Error {
|
|
|
1455
1455
|
};
|
|
1456
1456
|
|
|
1457
1457
|
// src/client-sdk/services/traces/tracing/tracer.ts
|
|
1458
|
-
var tracer = _chunkVCC7F6B7js.getLangWatchTracer.call(void 0, `${
|
|
1458
|
+
var tracer = _chunkVCC7F6B7js.getLangWatchTracer.call(void 0, `${_chunkBJUXJHMQjs.LANGWATCH_SDK_NAME_CLIENT}.traces`, _chunkBJUXJHMQjs.LANGWATCH_SDK_VERSION);
|
|
1459
1459
|
|
|
1460
1460
|
// src/client-sdk/services/traces/service.ts
|
|
1461
1461
|
var TracesService = class {
|
|
1462
1462
|
constructor(config) {
|
|
1463
1463
|
this.config = config;
|
|
1464
|
-
return
|
|
1464
|
+
return _chunkPIF2RJWZjs.createTracingProxy.call(void 0,
|
|
1465
1465
|
this,
|
|
1466
1466
|
tracer
|
|
1467
1467
|
);
|
|
@@ -1524,15 +1524,15 @@ var LangWatch = class {
|
|
|
1524
1524
|
_chunkOHM7JUMRjs.__privateAdd.call(void 0, this, _LangWatch_instances);
|
|
1525
1525
|
var _a, _b, _c, _d;
|
|
1526
1526
|
const apiKey = (_b = (_a = options.apiKey) != null ? _a : process.env.LANGWATCH_API_KEY) != null ? _b : "";
|
|
1527
|
-
const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d :
|
|
1527
|
+
const endpoint = (_d = (_c = options.endpoint) != null ? _c : process.env.LANGWATCH_ENDPOINT) != null ? _d : _chunkBJUXJHMQjs.DEFAULT_ENDPOINT;
|
|
1528
1528
|
this.config = _chunkOHM7JUMRjs.__privateMethod.call(void 0, this, _LangWatch_instances, createInternalConfig_fn).call(this, {
|
|
1529
1529
|
apiKey,
|
|
1530
1530
|
endpoint,
|
|
1531
1531
|
options: options.options
|
|
1532
1532
|
});
|
|
1533
|
-
this.prompts = new (0,
|
|
1534
|
-
promptsApiService: new (0,
|
|
1535
|
-
localPromptsService: new (0,
|
|
1533
|
+
this.prompts = new (0, _chunkPIF2RJWZjs.PromptsFacade)(_chunkOHM7JUMRjs.__spreadValues.call(void 0, {
|
|
1534
|
+
promptsApiService: new (0, _chunkPIF2RJWZjs.PromptsApiService)(this.config),
|
|
1535
|
+
localPromptsService: new (0, _chunkPIF2RJWZjs.LocalPromptsService)()
|
|
1536
1536
|
}, this.config));
|
|
1537
1537
|
this.traces = new TracesFacade(this.config);
|
|
1538
1538
|
this.experiments = new ExperimentsFacade({
|
|
@@ -1564,7 +1564,7 @@ createInternalConfig_fn = function({
|
|
|
1564
1564
|
var _a;
|
|
1565
1565
|
return {
|
|
1566
1566
|
logger: (_a = options == null ? void 0 : options.logger) != null ? _a : new (0, _chunk5LYWRKDFjs.NoOpLogger)(),
|
|
1567
|
-
langwatchApiClient:
|
|
1567
|
+
langwatchApiClient: _chunkPIF2RJWZjs.createLangWatchApiClient.call(void 0, apiKey, endpoint),
|
|
1568
1568
|
endpoint,
|
|
1569
1569
|
apiKey
|
|
1570
1570
|
};
|
|
@@ -1584,7 +1584,7 @@ var EvaluatorsApiError = class extends Error {
|
|
|
1584
1584
|
var EvaluatorsApiService = class {
|
|
1585
1585
|
constructor(config) {
|
|
1586
1586
|
var _a;
|
|
1587
|
-
this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a :
|
|
1587
|
+
this.apiClient = (_a = config == null ? void 0 : config.langwatchApiClient) != null ? _a : _chunkPIF2RJWZjs.createLangWatchApiClient.call(void 0, );
|
|
1588
1588
|
}
|
|
1589
1589
|
handleApiError(operation, error) {
|
|
1590
1590
|
var _a;
|
|
@@ -1660,5 +1660,5 @@ var logger = {
|
|
|
1660
1660
|
|
|
1661
1661
|
|
|
1662
1662
|
|
|
1663
|
-
exports.EvaluationError = EvaluationError; exports.EvaluationsApiError = EvaluationsApiError; exports.EvaluationsFacade = EvaluationsFacade; exports.EvaluatorCallError = EvaluatorCallError; exports.EvaluatorError = EvaluatorError; exports.EvaluatorNotFoundError = EvaluatorNotFoundError; exports.EvaluatorsApiError = EvaluatorsApiError; exports.EvaluatorsApiService = EvaluatorsApiService; exports.Experiment = Experiment; exports.ExperimentApiError = ExperimentApiError; exports.ExperimentError = ExperimentError; exports.ExperimentInitError = ExperimentInitError; exports.ExperimentsFacade = ExperimentsFacade; exports.FetchPolicy =
|
|
1663
|
+
exports.EvaluationError = EvaluationError; exports.EvaluationsApiError = EvaluationsApiError; exports.EvaluationsFacade = EvaluationsFacade; exports.EvaluatorCallError = EvaluatorCallError; exports.EvaluatorError = EvaluatorError; exports.EvaluatorNotFoundError = EvaluatorNotFoundError; exports.EvaluatorsApiError = EvaluatorsApiError; exports.EvaluatorsApiService = EvaluatorsApiService; exports.Experiment = Experiment; exports.ExperimentApiError = ExperimentApiError; exports.ExperimentError = ExperimentError; exports.ExperimentInitError = ExperimentInitError; exports.ExperimentsFacade = ExperimentsFacade; exports.FetchPolicy = _chunkPIF2RJWZjs.FetchPolicy; exports.FilterableBatchSpanProcessor = _chunkQNT5P6VVjs.FilterableBatchSpanProcessor; exports.LangWatch = LangWatch; exports.LangWatchExporter = _chunkNW32UPEIjs.LangWatchTraceExporter; exports.TargetMetadataConflictError = TargetMetadataConflictError; exports.attributes = _chunk5LYWRKDFjs.attributes_exports; exports.getLangWatchLogger = _chunkNW32UPEIjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkVCC7F6B7js.getLangWatchTracer; exports.logger = logger;
|
|
1664
1664
|
//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ensureSetup
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-WSESRS6L.mjs";
|
|
4
4
|
import {
|
|
5
5
|
FetchPolicy,
|
|
6
6
|
LocalPromptsService,
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
PromptsFacade,
|
|
9
9
|
createLangWatchApiClient,
|
|
10
10
|
createTracingProxy
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WASZSPD7.mjs";
|
|
12
12
|
import {
|
|
13
13
|
FilterableBatchSpanProcessor
|
|
14
14
|
} from "./chunk-FMYG6IOZ.mjs";
|
|
@@ -19,12 +19,12 @@ import {
|
|
|
19
19
|
import {
|
|
20
20
|
LangWatchTraceExporter,
|
|
21
21
|
getLangWatchLogger
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-5M66X6SZ.mjs";
|
|
23
23
|
import {
|
|
24
24
|
DEFAULT_ENDPOINT,
|
|
25
25
|
LANGWATCH_SDK_NAME_CLIENT,
|
|
26
26
|
LANGWATCH_SDK_VERSION
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-SSONRNFB.mjs";
|
|
28
28
|
import {
|
|
29
29
|
ConsoleLogger,
|
|
30
30
|
NoOpLogger,
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
PromptsApiService,
|
|
6
6
|
PromptsError
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WASZSPD7.mjs";
|
|
8
8
|
import "./chunk-FMYG6IOZ.mjs";
|
|
9
9
|
import "./chunk-L5Z7F7MG.mjs";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-5M66X6SZ.mjs";
|
|
11
|
+
import "./chunk-SSONRNFB.mjs";
|
|
12
12
|
import "./chunk-JVIQJFUE.mjs";
|
|
13
13
|
import "./chunk-O6D3W3PG.mjs";
|
|
14
14
|
import "./chunk-BTBSMJTY.mjs";
|
|
@@ -145,4 +145,4 @@ var listCommand = async () => {
|
|
|
145
145
|
export {
|
|
146
146
|
listCommand
|
|
147
147
|
};
|
|
148
|
-
//# sourceMappingURL=list-
|
|
148
|
+
//# sourceMappingURL=list-53QTWXGF.mjs.map
|
|
@@ -4,11 +4,11 @@ var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var
|
|
7
|
+
var _chunkPIF2RJWZjs = require('./chunk-PIF2RJWZ.js');
|
|
8
8
|
require('./chunk-QNT5P6VV.js');
|
|
9
9
|
require('./chunk-VCC7F6B7.js');
|
|
10
|
-
require('./chunk-
|
|
11
|
-
require('./chunk-
|
|
10
|
+
require('./chunk-NW32UPEI.js');
|
|
11
|
+
require('./chunk-BJUXJHMQ.js');
|
|
12
12
|
require('./chunk-5LYWRKDF.js');
|
|
13
13
|
require('./chunk-WAAQLJ67.js');
|
|
14
14
|
require('./chunk-AZHZ4NB4.js');
|
|
@@ -79,7 +79,7 @@ var formatRelativeTime = (dateString) => {
|
|
|
79
79
|
var listCommand = async () => {
|
|
80
80
|
try {
|
|
81
81
|
_chunkF6E4XQQUjs.checkApiKey.call(void 0, );
|
|
82
|
-
const promptsApiService = new (0,
|
|
82
|
+
const promptsApiService = new (0, _chunkPIF2RJWZjs.PromptsApiService)();
|
|
83
83
|
const spinner = _ora2.default.call(void 0, "Fetching prompts from server...").start();
|
|
84
84
|
try {
|
|
85
85
|
const allPrompts = await promptsApiService.getAll();
|
|
@@ -118,7 +118,7 @@ var listCommand = async () => {
|
|
|
118
118
|
);
|
|
119
119
|
} catch (error) {
|
|
120
120
|
spinner.fail();
|
|
121
|
-
if (error instanceof
|
|
121
|
+
if (error instanceof _chunkPIF2RJWZjs.PromptsError) {
|
|
122
122
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
123
123
|
} else {
|
|
124
124
|
console.error(
|
|
@@ -130,7 +130,7 @@ var listCommand = async () => {
|
|
|
130
130
|
process.exit(1);
|
|
131
131
|
}
|
|
132
132
|
} catch (error) {
|
|
133
|
-
if (error instanceof
|
|
133
|
+
if (error instanceof _chunkPIF2RJWZjs.PromptsError) {
|
|
134
134
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
135
135
|
} else {
|
|
136
136
|
console.error(
|
|
@@ -145,4 +145,4 @@ var listCommand = async () => {
|
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
exports.listCommand = listCommand;
|
|
148
|
-
//# sourceMappingURL=list-
|
|
148
|
+
//# sourceMappingURL=list-LBDUK454.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-LBDUK454.js","../src/cli/commands/list.ts"],"names":[],"mappings":"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","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/list-LBDUK454.js","sourcesContent":[null,"import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsApiService, PromptsError } from \"@/client-sdk/services/prompts\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\n // eslint-disable-next-line no-control-regex\n return str.replace(/\\u001b\\[[0-9;]*m/g, \"\");\n};\n\n// Simple table formatting helper\nconst formatTable = (\n data: Array<Record<string, string>>,\n headers: string[],\n): void => {\n if (data.length === 0) {\n console.log(chalk.gray(\"No prompts found\"));\n return;\n }\n\n // Calculate column widths (strip ANSI codes for accurate length calculation)\n const colWidths: Record<string, number> = {};\n headers.forEach((header) => {\n colWidths[header] = Math.max(\n header.length,\n ...data.map((row) => stripAnsi(row[header] ?? \"\").length),\n );\n });\n\n // Print header\n const headerRow = headers\n .map((header) => chalk.bold(header.padEnd(colWidths[header]!)))\n .join(\" \");\n console.log(headerRow);\n\n // Print separator\n const separator = headers\n .map((header) => \"─\".repeat(colWidths[header]!))\n .join(\" \");\n console.log(chalk.gray(separator));\n\n // Print data rows\n data.forEach((row) => {\n const dataRow = headers\n .map((header) => {\n const value = row[header] ?? \"\";\n const strippedLength = stripAnsi(value).length;\n const paddingNeeded = colWidths[header]! - strippedLength;\n const paddedValue = value + \" \".repeat(Math.max(0, paddingNeeded));\n\n // Color coding\n if (header === \"Name\") {\n return chalk.cyan(paddedValue);\n } else if (header === \"Version\") {\n return chalk.green(paddedValue);\n } else if (header === \"Model\") {\n return chalk.yellow(paddedValue);\n } else {\n return chalk.gray(paddedValue);\n }\n })\n .join(\" \");\n console.log(dataRow);\n });\n};\n\nconst formatRelativeTime = (dateString: string): string => {\n const date = new Date(dateString);\n const now = new Date();\n const diffMs = now.getTime() - date.getTime();\n\n const seconds = Math.floor(diffMs / 1000);\n const minutes = Math.floor(seconds / 60);\n const hours = Math.floor(minutes / 60);\n const days = Math.floor(hours / 24);\n const months = Math.floor(days / 30);\n const years = Math.floor(days / 365);\n\n if (years > 0) return `${years}y ago`;\n if (months > 0) return `${months}mo ago`;\n if (days > 0) return `${days}d ago`;\n if (hours > 0) return `${hours}h ago`;\n if (minutes > 0) return `${minutes}m ago`;\n return `${seconds}s ago`;\n};\n\nexport const listCommand = async (): Promise<void> => {\n try {\n // Check API key before doing anything else\n checkApiKey();\n\n // Get prompts API service\n const promptsApiService = new PromptsApiService();\n\n const spinner = ora(\"Fetching prompts from server...\").start();\n\n try {\n // Fetch all prompts\n const allPrompts = await promptsApiService.getAll();\n const prompts = allPrompts.filter((prompt) => prompt.version);\n const draftPrompts = allPrompts.filter((prompt) => !prompt.version);\n\n spinner.succeed(\n `Found ${prompts.length} published prompt${\n prompts.length !== 1 ? \"s\" : \"\"\n } ` +\n chalk.gray(\n `(+${draftPrompts.length} draft${\n draftPrompts.length !== 1 ? \"s\" : \"\"\n })`,\n ),\n );\n\n if (prompts.length === 0) {\n console.log();\n console.log(chalk.gray(\"No prompts found on the server.\"));\n console.log(chalk.gray(\"Create your first prompt with:\"));\n console.log(chalk.cyan(\" langwatch prompt init\"));\n return;\n }\n\n console.log();\n\n // Format prompts for table display\n const tableData = prompts.map((prompt) => ({\n Name: prompt.handle ?? `${prompt.name} ` + chalk.gray(`(${prompt.id})`),\n Version: prompt.version ? `${prompt.version}` : \"N/A\",\n Model: prompt.model ?? \"N/A\",\n Updated: formatRelativeTime(prompt.updatedAt),\n }));\n\n // Display table\n formatTable(tableData, [\"Name\", \"Version\", \"Model\", \"Updated\"]);\n\n console.log();\n console.log(\n chalk.gray(\n `Use ${chalk.cyan(\n \"langwatch prompt add <name>\",\n )} to add a prompt to your project`,\n ),\n );\n } catch (error) {\n spinner.fail();\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Error fetching prompts: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\n process.exit(1);\n }\n } catch (error) {\n if (error instanceof PromptsError) {\n console.error(chalk.red(`Error: ${error.message}`));\n } else {\n console.error(\n chalk.red(\n `Unexpected error: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n }\n process.exit(1);\n }\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
DEFAULT_ENDPOINT
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SSONRNFB.mjs";
|
|
4
4
|
import "./chunk-URTD2WOC.mjs";
|
|
5
5
|
|
|
6
6
|
// src/cli/commands/login.ts
|
|
@@ -111,4 +111,4 @@ var loginCommand = async () => {
|
|
|
111
111
|
export {
|
|
112
112
|
loginCommand
|
|
113
113
|
};
|
|
114
|
-
//# sourceMappingURL=login-
|
|
114
|
+
//# sourceMappingURL=login-QWXRNDAM.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkBJUXJHMQjs = require('./chunk-BJUXJHMQ.js');
|
|
4
4
|
require('./chunk-OHM7JUMR.js');
|
|
5
5
|
|
|
6
6
|
// src/cli/commands/login.ts
|
|
@@ -11,7 +11,7 @@ var _ora = require('ora'); var _ora2 = _interopRequireDefault(_ora);
|
|
|
11
11
|
var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
|
|
12
12
|
var getEndpoint = () => {
|
|
13
13
|
var _a;
|
|
14
|
-
return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a :
|
|
14
|
+
return (_a = process.env.LANGWATCH_ENDPOINT) != null ? _a : _chunkBJUXJHMQjs.DEFAULT_ENDPOINT;
|
|
15
15
|
};
|
|
16
16
|
var updateEnvFile = (apiKey) => {
|
|
17
17
|
const envPath = path.join(process.cwd(), ".env");
|
|
@@ -111,4 +111,4 @@ var loginCommand = async () => {
|
|
|
111
111
|
|
|
112
112
|
|
|
113
113
|
exports.loginCommand = loginCommand;
|
|
114
|
-
//# sourceMappingURL=login-
|
|
114
|
+
//# sourceMappingURL=login-XBFOVP6G.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-XBFOVP6G.js","../src/cli/commands/login.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACLA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAChB,oFAAoB;AAGpB,IAAM,YAAA,EAAc,CAAA,EAAA,GAAc;AAPlC,EAAA,IAAA,EAAA;AAQE,EAAA,OAAA,CAAO,GAAA,EAAA,OAAA,CAAQ,GAAA,CAAI,kBAAA,EAAA,GAAZ,KAAA,EAAA,GAAA,EAAkC,iCAAA;AAC3C,CAAA;AAEA,IAAM,cAAA,EAAgB,CACpB,MAAA,EAAA,GACyD;AACzD,EAAA,MAAM,QAAA,EAAe,IAAA,CAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,MAAM,CAAA;AAG/C,EAAA,GAAA,CAAI,CAAI,EAAA,CAAA,UAAA,CAAW,OAAO,CAAA,EAAG;AAE3B,IAAG,EAAA,CAAA,aAAA,CAAc,OAAA,EAAS,CAAA,kBAAA,EAAqB,MAAM,CAAA;AAAA,CAAI,CAAA;AACzD,IAAA,OAAO,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,KAAA,EAAO,IAAA,EAAM,QAAQ,CAAA;AAAA,EACxD;AAGA,EAAA,MAAM,QAAA,EAAa,EAAA,CAAA,YAAA,CAAa,OAAA,EAAS,OAAO,CAAA;AAChD,EAAA,MAAM,MAAA,EAAQ,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA;AAGhC,EAAA,IAAI,MAAA,EAAQ,KAAA;AACZ,EAAA,MAAM,aAAA,EAAe,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACvC,IAAA,GAAA,CAAI,IAAA,CAAK,UAAA,CAAW,oBAAoB,CAAA,EAAG;AACzC,MAAA,MAAA,EAAQ,IAAA;AACR,MAAA,OAAO,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAA;AACpC,IAAA;AACO,IAAA;AACR,EAAA;AAEW,EAAA;AAEoB,IAAA;AACV,MAAA;AACb,IAAA;AACiB,MAAA;AACxB,IAAA;AACF,EAAA;AAEuC,EAAA;AACL,EAAA;AACpC;AAEuD;AACjD,EAAA;AACqB,IAAA;AACf,IAAA;AACA,MAAA;AACJ,QAAA;AACF,MAAA;AACF,IAAA;AACY,IAAA;AAGiB,IAAA;AACF,IAAA;AAEQ,IAAA;AAGf,IAAA;AAEhB,IAAA;AAC+B,MAAA;AACf,MAAA;AACc,MAAA;AAC1B,IAAA;AACO,MAAA;AACY,MAAA;AAC3B,IAAA;AAEY,IAAA;AACW,IAAA;AACA,IAAA;AACA,IAAA;AACX,IAAA;AAGmB,IAAA;AACvB,MAAA;AACA,MAAA;AACG,MAAA;AACoB,MAAA;AACI,QAAA;AACtB,UAAA;AACT,QAAA;AACuB,QAAA;AACd,UAAA;AACT,QAAA;AACO,QAAA;AACT,MAAA;AACD,IAAA;AAEqB,IAAA;AACK,MAAA;AACX,MAAA;AAChB,IAAA;AAEoC,IAAA;AAGJ,IAAA;AAEpB,IAAA;AACY,IAAA;AAED,IAAA;AACE,MAAA;AACK,IAAA;AACL,MAAA;AAClB,IAAA;AACkB,MAAA;AACzB,IAAA;AAEY,IAAA;AACY,IAAA;AACD,IAAA;AACA,IAAA;AACT,EAAA;AACN,IAAA;AACA,MAAA;AAEF,QAAA;AAEJ,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADzByC;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/login-XBFOVP6G.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport prompts from \"prompts\";\nimport { DEFAULT_ENDPOINT } from \"@/internal/constants\";\n\nconst getEndpoint = (): string => {\n return process.env.LANGWATCH_ENDPOINT ?? DEFAULT_ENDPOINT;\n};\n\nconst updateEnvFile = (\n apiKey: string,\n): { created: boolean; updated: boolean; path: string } => {\n const envPath = path.join(process.cwd(), \".env\");\n\n // Check if .env exists\n if (!fs.existsSync(envPath)) {\n // Create new .env file\n fs.writeFileSync(envPath, `LANGWATCH_API_KEY=${apiKey}\\n`);\n return { created: true, updated: false, path: envPath };\n }\n\n // Read existing .env file\n const content = fs.readFileSync(envPath, \"utf-8\");\n const lines = content.split(\"\\n\");\n\n // Check if LANGWATCH_API_KEY already exists and update it\n let found = false;\n const updatedLines = lines.map((line) => {\n if (line.startsWith(\"LANGWATCH_API_KEY=\")) {\n found = true;\n return `LANGWATCH_API_KEY=${apiKey}`;\n }\n return line;\n });\n\n if (!found) {\n // Add to end of file\n if (content.endsWith(\"\\n\") || content === \"\") {\n updatedLines.push(`LANGWATCH_API_KEY=${apiKey}`);\n } else {\n updatedLines.push(\"\", `LANGWATCH_API_KEY=${apiKey}`);\n }\n }\n\n fs.writeFileSync(envPath, updatedLines.join(\"\\n\"));\n return { created: false, updated: found, path: envPath };\n};\n\nexport const loginCommand = async (): Promise<void> => {\n try {\n console.log(chalk.blue(\"🔐 LangWatch Login\"));\n console.log(\n chalk.gray(\n \"This will open your browser to get an API key from LangWatch.\",\n ),\n );\n console.log();\n\n // Get the authorization URL\n const endpoint = getEndpoint();\n const authUrl = `${endpoint}/authorize`;\n\n console.log(chalk.cyan(`Opening: ${authUrl}`));\n\n // Open browser\n const spinner = ora(\"Opening browser...\").start();\n\n try {\n const open = (await import(\"open\")).default;\n await open(authUrl);\n spinner.succeed(\"Browser opened\");\n } catch {\n spinner.fail(\"Failed to open browser\");\n console.log(chalk.yellow(`Please manually open: ${chalk.cyan(authUrl)}`));\n }\n\n console.log();\n console.log(chalk.gray(\"1. Log in to LangWatch in your browser\"));\n console.log(chalk.gray(\"2. Copy your API key\"));\n console.log(chalk.gray(\"3. Come back here and paste it\"));\n console.log();\n\n // Wait for user input using prompts library\n const response = await prompts({\n type: \"password\",\n name: \"apiKey\",\n message: \"Paste your API key here:\",\n validate: (value: string) => {\n if (!value || value.trim() === \"\") {\n return \"API key is required\";\n }\n if (value.length < 10) {\n return \"API key seems too short. Please check and try again.\";\n }\n return true;\n },\n });\n\n if (!response.apiKey) {\n console.log(chalk.yellow(\"Login cancelled\"));\n process.exit(0);\n }\n\n const apiKey = response.apiKey.trim();\n\n // Save to .env file\n const envResult = updateEnvFile(apiKey);\n\n console.log();\n console.log(chalk.green(\"✓ API key saved successfully!\"));\n\n if (envResult.created) {\n console.log(chalk.gray(`• Created .env file with your API key`));\n } else if (envResult.updated) {\n console.log(chalk.gray(`• Updated existing API key in .env file`));\n } else {\n console.log(chalk.gray(`• Added API key to existing .env file`));\n }\n\n console.log();\n console.log(chalk.green(\"🎉 You're all set! You can now use:\"));\n console.log(chalk.cyan(\" langwatch prompt add <name>\"));\n console.log(chalk.cyan(\" langwatch prompt sync\"));\n } catch (error) {\n console.error(\n chalk.red(\n `Error during login: ${\n error instanceof Error ? error.message : \"Unknown error\"\n }`,\n ),\n );\n process.exit(1);\n }\n};\n"]}
|