langwatch 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{add-TRJAXM4D.mjs → add-SMYALCQG.mjs} +10 -9
- package/dist/{add-TRJAXM4D.mjs.map → add-SMYALCQG.mjs.map} +1 -1
- package/dist/{add-35QACTIV.js → add-SV662KZU.js} +27 -26
- package/dist/add-SV662KZU.js.map +1 -0
- package/dist/{chunk-LP76VXI3.mjs → chunk-5ZKAT4KI.mjs} +70 -113
- package/dist/chunk-5ZKAT4KI.mjs.map +1 -0
- package/dist/{chunk-HUI45ULC.mjs → chunk-7ZRAJ52N.mjs} +3 -3
- package/dist/chunk-CAVBDSBT.mjs +63 -0
- package/dist/chunk-CAVBDSBT.mjs.map +1 -0
- package/dist/{chunk-PGWR3OQY.mjs → chunk-ENSRDEDA.mjs} +16 -67
- package/dist/chunk-ENSRDEDA.mjs.map +1 -0
- package/dist/{chunk-HA3LI5IK.js → chunk-I5NDMIK5.js} +1 -1
- package/dist/{chunk-HA3LI5IK.js.map → chunk-I5NDMIK5.js.map} +1 -1
- package/dist/{chunk-M4VUHTT2.js → chunk-ILTCLEIF.js} +5 -5
- package/dist/{chunk-M4VUHTT2.js.map → chunk-ILTCLEIF.js.map} +1 -1
- package/dist/{chunk-ECUXLXFT.mjs → chunk-K4ICRI7W.mjs} +53 -13
- package/dist/chunk-K4ICRI7W.mjs.map +1 -0
- package/dist/{chunk-SYMZPWZE.mjs → chunk-LXVDGQA4.mjs} +5 -4
- package/dist/chunk-LXVDGQA4.mjs.map +1 -0
- package/dist/{chunk-4ZSSHX6F.js → chunk-NFM6RB4R.js} +71 -114
- package/dist/chunk-NFM6RB4R.js.map +1 -0
- package/dist/{chunk-OUCVXP4G.js → chunk-NVKMXXNP.js} +26 -77
- package/dist/chunk-NVKMXXNP.js.map +1 -0
- package/dist/{chunk-D2CSG4SJ.js → chunk-P5F63PAW.js} +5 -5
- package/dist/{chunk-D2CSG4SJ.js.map → chunk-P5F63PAW.js.map} +1 -1
- package/dist/{chunk-SGNJDRCT.js → chunk-PUHM465C.js} +5 -4
- package/dist/chunk-PUHM465C.js.map +1 -0
- package/dist/{chunk-GQMDZ4GY.mjs → chunk-RBZNMZTF.mjs} +4 -4
- package/dist/{chunk-5EVBOHJY.js → chunk-T7FQHOLK.js} +14 -14
- package/dist/{chunk-5EVBOHJY.js.map → chunk-T7FQHOLK.js.map} +1 -1
- package/dist/chunk-VI5NJ53L.js +63 -0
- package/dist/chunk-VI5NJ53L.js.map +1 -0
- package/dist/{chunk-EJWJXTPU.mjs → chunk-VILW5FYO.mjs} +2 -2
- package/dist/chunk-VILW5FYO.mjs.map +1 -0
- package/dist/{chunk-4NRLVT2U.mjs → chunk-YQVVPMKH.mjs} +1 -1
- package/dist/chunk-YQVVPMKH.mjs.map +1 -0
- package/dist/{chunk-K64Y6YUG.js → chunk-ZZLIF3DE.js} +59 -19
- package/dist/chunk-ZZLIF3DE.js.map +1 -0
- package/dist/cli/index.js +9 -9
- package/dist/cli/index.mjs +8 -8
- package/dist/{create-MK7NEGCM.mjs → create-BHWZP6YD.mjs} +5 -5
- package/dist/{create-7K2CC4KQ.js → create-GUY3HZM2.js} +10 -10
- package/dist/{create-7K2CC4KQ.js.map → create-GUY3HZM2.js.map} +1 -1
- package/dist/{implementation-CzemP9jY.d.ts → implementation--7B7PUww.d.ts} +1 -1
- package/dist/{implementation-C4lvooSg.d.mts → implementation-D7LzdQop.d.mts} +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -6
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +6 -5
- package/dist/index.mjs.map +1 -1
- package/dist/init-OO2BUJ6V.js +16 -0
- package/dist/{init-GDKJICSS.js.map → init-OO2BUJ6V.js.map} +1 -1
- package/dist/{init-RINSTP4L.mjs → init-RDW2F4G3.mjs} +5 -5
- package/dist/{list-7L23G5DY.mjs → list-32BRZ6RS.mjs} +7 -6
- package/dist/list-32BRZ6RS.mjs.map +1 -0
- package/dist/{list-OLLQ7XKZ.js → list-GZGLSJ52.js} +10 -9
- package/dist/list-GZGLSJ52.js.map +1 -0
- package/dist/{login-XF3BQQPV.js → login-IAP4RFUM.js} +6 -3
- package/dist/login-IAP4RFUM.js.map +1 -0
- package/dist/{login-RCNKL5AM.mjs → login-VXLW2OXR.mjs} +5 -2
- package/dist/login-VXLW2OXR.mjs.map +1 -0
- package/dist/observability-sdk/index.d.mts +3 -3
- package/dist/observability-sdk/index.d.ts +3 -3
- package/dist/observability-sdk/index.js +4 -3
- package/dist/observability-sdk/index.js.map +1 -1
- package/dist/observability-sdk/index.mjs +3 -2
- package/dist/observability-sdk/instrumentation/langchain/index.d.mts +1 -1
- package/dist/observability-sdk/instrumentation/langchain/index.d.ts +1 -1
- package/dist/observability-sdk/instrumentation/langchain/index.js +3 -3
- package/dist/observability-sdk/instrumentation/langchain/index.mjs +1 -1
- package/dist/observability-sdk/setup/node/index.js +12 -9
- package/dist/observability-sdk/setup/node/index.js.map +1 -1
- package/dist/observability-sdk/setup/node/index.mjs +9 -6
- package/dist/observability-sdk/setup/node/index.mjs.map +1 -1
- package/dist/{remove-3VLQNVHN.mjs → remove-JUVM6M7G.mjs} +8 -7
- package/dist/{remove-3VLQNVHN.mjs.map → remove-JUVM6M7G.mjs.map} +1 -1
- package/dist/{remove-L6JVJBWY.js → remove-N3324KHS.js} +16 -15
- package/dist/remove-N3324KHS.js.map +1 -0
- package/dist/{sync-DPMTUTVL.mjs → sync-B4YK6QYX.mjs} +14 -10
- package/dist/sync-B4YK6QYX.mjs.map +1 -0
- package/dist/{sync-PSU3F5Z4.js → sync-E32H3H52.js} +32 -28
- package/dist/sync-E32H3H52.js.map +1 -0
- package/dist/{types-1q5wIYP5.d.mts → types-D61S7yPU.d.mts} +917 -527
- package/dist/{types-C9k5gGhU.d.ts → types-D6Cs1385.d.ts} +917 -527
- package/package.json +11 -10
- package/dist/add-35QACTIV.js.map +0 -1
- package/dist/chunk-4NRLVT2U.mjs.map +0 -1
- package/dist/chunk-4ZSSHX6F.js.map +0 -1
- package/dist/chunk-ECUXLXFT.mjs.map +0 -1
- package/dist/chunk-EJWJXTPU.mjs.map +0 -1
- package/dist/chunk-K64Y6YUG.js.map +0 -1
- package/dist/chunk-LP76VXI3.mjs.map +0 -1
- package/dist/chunk-OUCVXP4G.js.map +0 -1
- package/dist/chunk-PGWR3OQY.mjs.map +0 -1
- package/dist/chunk-SGNJDRCT.js.map +0 -1
- package/dist/chunk-SYMZPWZE.mjs.map +0 -1
- package/dist/init-GDKJICSS.js +0 -16
- package/dist/list-7L23G5DY.mjs.map +0 -1
- package/dist/list-OLLQ7XKZ.js.map +0 -1
- package/dist/login-RCNKL5AM.mjs.map +0 -1
- package/dist/login-XF3BQQPV.js.map +0 -1
- package/dist/remove-L6JVJBWY.js.map +0 -1
- package/dist/sync-DPMTUTVL.mjs.map +0 -1
- package/dist/sync-PSU3F5Z4.js.map +0 -1
- /package/dist/{chunk-HUI45ULC.mjs.map → chunk-7ZRAJ52N.mjs.map} +0 -0
- /package/dist/{chunk-GQMDZ4GY.mjs.map → chunk-RBZNMZTF.mjs.map} +0 -0
- /package/dist/{create-MK7NEGCM.mjs.map → create-BHWZP6YD.mjs.map} +0 -0
- /package/dist/{init-RINSTP4L.mjs.map → init-RDW2F4G3.mjs.map} +0 -0
|
@@ -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 _chunkP5F63PAWjs = require('./chunk-P5F63PAW.js');
|
|
4
4
|
|
|
5
5
|
// src/cli/utils/init.ts
|
|
6
6
|
var _readline = require('readline'); var readline = _interopRequireWildcard(_readline);
|
|
@@ -19,67 +19,107 @@ var promptUser = (question) => {
|
|
|
19
19
|
};
|
|
20
20
|
var initializeProject = async () => {
|
|
21
21
|
console.log(_chalk2.default.blue("Initializing LangWatch prompts project..."));
|
|
22
|
-
const configResult =
|
|
22
|
+
const configResult = _chunkP5F63PAWjs.FileManager.initializePromptsConfig();
|
|
23
23
|
if (configResult.created) {
|
|
24
24
|
console.log(_chalk2.default.green(`\u2713 Created ${_chalk2.default.gray("./prompts.json")}`));
|
|
25
25
|
const shouldAddGitignore = await promptUser(
|
|
26
26
|
_chalk2.default.yellow("Add 'prompts/.materialized' to .gitignore? [Y/n]: ")
|
|
27
27
|
);
|
|
28
28
|
if (shouldAddGitignore === "" || shouldAddGitignore === "y" || shouldAddGitignore === "yes") {
|
|
29
|
-
const gitignoreResult =
|
|
29
|
+
const gitignoreResult = _chunkP5F63PAWjs.FileManager.addToGitignore(
|
|
30
|
+
"prompts/.materialized"
|
|
31
|
+
);
|
|
30
32
|
if (gitignoreResult.added) {
|
|
31
33
|
if (gitignoreResult.existed) {
|
|
32
|
-
console.log(
|
|
34
|
+
console.log(
|
|
35
|
+
_chalk2.default.green(
|
|
36
|
+
`\u2713 Added ${_chalk2.default.gray(
|
|
37
|
+
"prompts/.materialized"
|
|
38
|
+
)} to existing .gitignore`
|
|
39
|
+
)
|
|
40
|
+
);
|
|
33
41
|
} else {
|
|
34
|
-
console.log(
|
|
42
|
+
console.log(
|
|
43
|
+
_chalk2.default.green(
|
|
44
|
+
`\u2713 Created .gitignore with ${_chalk2.default.gray(
|
|
45
|
+
"prompts/.materialized"
|
|
46
|
+
)}`
|
|
47
|
+
)
|
|
48
|
+
);
|
|
35
49
|
}
|
|
36
50
|
} else {
|
|
37
|
-
console.log(
|
|
51
|
+
console.log(
|
|
52
|
+
_chalk2.default.gray(
|
|
53
|
+
`\u2022 ${_chalk2.default.gray("prompts/.materialized")} already in .gitignore`
|
|
54
|
+
)
|
|
55
|
+
);
|
|
38
56
|
}
|
|
39
57
|
}
|
|
40
58
|
} else {
|
|
41
59
|
console.log(_chalk2.default.gray(`\u2022 prompts.json already exists`));
|
|
42
60
|
}
|
|
43
|
-
const lockResult =
|
|
61
|
+
const lockResult = _chunkP5F63PAWjs.FileManager.initializePromptsLock();
|
|
44
62
|
if (lockResult.created) {
|
|
45
63
|
console.log(_chalk2.default.green(`\u2713 Created ${_chalk2.default.gray("./prompts-lock.json")}`));
|
|
46
64
|
} else {
|
|
47
65
|
console.log(_chalk2.default.gray(`\u2022 prompts-lock.json already exists`));
|
|
48
66
|
}
|
|
49
|
-
|
|
50
|
-
console.log(
|
|
51
|
-
|
|
67
|
+
_chunkP5F63PAWjs.FileManager.ensureDirectories();
|
|
68
|
+
console.log(
|
|
69
|
+
_chalk2.default.green(`\u2713 Created ${_chalk2.default.gray("./prompts/")} directory structure`)
|
|
70
|
+
);
|
|
71
|
+
console.log(
|
|
72
|
+
_chalk2.default.green("\n\u2728 Project initialized! You can now add prompts with:")
|
|
73
|
+
);
|
|
52
74
|
console.log(_chalk2.default.gray(" langwatch prompt add <name>"));
|
|
53
75
|
};
|
|
54
76
|
var ensureProjectInitialized = async (shouldPromptForGitignore = true) => {
|
|
55
|
-
const configResult =
|
|
77
|
+
const configResult = _chunkP5F63PAWjs.FileManager.initializePromptsConfig();
|
|
56
78
|
let askedAboutGitignore = false;
|
|
57
79
|
if (configResult.created) {
|
|
58
80
|
console.log(_chalk2.default.green(`\u2713 Created ${_chalk2.default.gray("./prompts.json")}`));
|
|
59
|
-
if (shouldPromptForGitignore) {
|
|
81
|
+
if (shouldPromptForGitignore && !askedAboutGitignore) {
|
|
60
82
|
askedAboutGitignore = true;
|
|
61
83
|
const shouldAddGitignore = await promptUser(
|
|
62
84
|
_chalk2.default.yellow("Add 'prompts/.materialized' to .gitignore? [Y/n]: ")
|
|
63
85
|
);
|
|
64
86
|
if (shouldAddGitignore === "" || shouldAddGitignore === "y" || shouldAddGitignore === "yes") {
|
|
65
|
-
const gitignoreResult =
|
|
87
|
+
const gitignoreResult = _chunkP5F63PAWjs.FileManager.addToGitignore(
|
|
88
|
+
"prompts/.materialized"
|
|
89
|
+
);
|
|
66
90
|
if (gitignoreResult.added) {
|
|
67
91
|
if (gitignoreResult.existed) {
|
|
68
|
-
console.log(
|
|
92
|
+
console.log(
|
|
93
|
+
_chalk2.default.green(
|
|
94
|
+
`\u2713 Added ${_chalk2.default.gray(
|
|
95
|
+
"prompts/.materialized"
|
|
96
|
+
)} to existing .gitignore`
|
|
97
|
+
)
|
|
98
|
+
);
|
|
69
99
|
} else {
|
|
70
|
-
console.log(
|
|
100
|
+
console.log(
|
|
101
|
+
_chalk2.default.green(
|
|
102
|
+
`\u2713 Created .gitignore with ${_chalk2.default.gray(
|
|
103
|
+
"prompts/.materialized"
|
|
104
|
+
)}`
|
|
105
|
+
)
|
|
106
|
+
);
|
|
71
107
|
}
|
|
72
108
|
} else {
|
|
73
|
-
console.log(
|
|
109
|
+
console.log(
|
|
110
|
+
_chalk2.default.gray(
|
|
111
|
+
`\u2022 ${_chalk2.default.gray("prompts/.materialized")} already in .gitignore`
|
|
112
|
+
)
|
|
113
|
+
);
|
|
74
114
|
}
|
|
75
115
|
}
|
|
76
116
|
}
|
|
77
117
|
}
|
|
78
|
-
const lockResult =
|
|
118
|
+
const lockResult = _chunkP5F63PAWjs.FileManager.initializePromptsLock();
|
|
79
119
|
if (lockResult.created) {
|
|
80
120
|
console.log(_chalk2.default.green(`\u2713 Created ${_chalk2.default.gray("./prompts-lock.json")}`));
|
|
81
121
|
}
|
|
82
|
-
|
|
122
|
+
_chunkP5F63PAWjs.FileManager.ensureDirectories();
|
|
83
123
|
return {
|
|
84
124
|
configCreated: configResult.created,
|
|
85
125
|
lockCreated: lockResult.created
|
|
@@ -90,4 +130,4 @@ var ensureProjectInitialized = async (shouldPromptForGitignore = true) => {
|
|
|
90
130
|
|
|
91
131
|
|
|
92
132
|
exports.initializeProject = initializeProject; exports.ensureProjectInitialized = ensureProjectInitialized;
|
|
93
|
-
//# sourceMappingURL=chunk-
|
|
133
|
+
//# sourceMappingURL=chunk-ZZLIF3DE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-ZZLIF3DE.js","../src/cli/utils/init.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACJA,uFAA0B;AAC1B,4EAAkB;AAGlB,IAAM,WAAA,EAAa,CAAC,QAAA,EAAA,GAAsC;AACxD,EAAA,MAAM,GAAA,EAAc,QAAA,CAAA,eAAA,CAAgB;AAAA,IAClC,KAAA,EAAO,OAAA,CAAQ,KAAA;AAAA,IACf,MAAA,EAAQ,OAAA,CAAQ;AAAA,EAClB,CAAC,CAAA;AAED,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAA,GAAY;AAC9B,IAAA,EAAA,CAAG,QAAA,CAAS,QAAA,EAAU,CAAC,MAAA,EAAA,GAAW;AAChC,MAAA,EAAA,CAAG,KAAA,CAAM,CAAA;AACT,MAAA,OAAA,CAAQ,MAAA,CAAO,IAAA,CAAK,CAAA,CAAE,WAAA,CAAY,CAAC,CAAA;AAAA,IACrC,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACH,CAAA;AAEO,IAAM,kBAAA,EAAoB,MAAA,CAAA,EAAA,GAA2B;AAC1D,EAAA,OAAA,CAAQ,GAAA,CAAI,eAAA,CAAM,IAAA,CAAK,2CAA2C,CAAC,CAAA;AAGnE,EAAA,MAAM,aAAA,EAAe,4BAAA,CAAY,uBAAA,CAAwB,CAAA;AACzD,EAAA,GAAA,CAAI,YAAA,CAAa,OAAA,EAAS;AACxB,IAAA,OAAA,CAAQ,GAAA,CAAI,eAAA,CAAM,KAAA,CAAM,CAAA,eAAA,EAAa,eAAA,CAAM,IAAA,CAAK,gBAAgB,CAAC,CAAA,CAAA;AAGhC,IAAA;AACkC,MAAA;AACnE,IAAA;AAKE,IAAA;AAEoC,MAAA;AAClC,QAAA;AACF,MAAA;AAC2B,MAAA;AACI,QAAA;AACnB,UAAA;AACA,YAAA;AACa,cAAA;AACf,gBAAA;AACD,cAAA;AACH,YAAA;AACF,UAAA;AACK,QAAA;AACG,UAAA;AACA,YAAA;AAC+B,cAAA;AACjC,gBAAA;AACD,cAAA;AACH,YAAA;AACF,UAAA;AACF,QAAA;AACK,MAAA;AACG,QAAA;AACA,UAAA;AACoC,YAAA;AAC1C,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACK,EAAA;AACkD,IAAA;AACzD,EAAA;AAGqD,EAAA;AAC7B,EAAA;AAC0B,IAAA;AAC3C,EAAA;AACuD,IAAA;AAC9D,EAAA;AAG8B,EAAA;AACtB,EAAA;AAC2C,IAAA;AACnD,EAAA;AAEQ,EAAA;AACM,IAAA;AACd,EAAA;AACuD,EAAA;AACzD;AAIgE;AAEL,EAAA;AAC/B,EAAA;AAEA,EAAA;AACyC,IAAA;AAGX,IAAA;AAC9B,MAAA;AACW,MAAA;AACkC,QAAA;AACnE,MAAA;AAKE,MAAA;AAEoC,QAAA;AAClC,UAAA;AACF,QAAA;AAC2B,QAAA;AACI,UAAA;AACnB,YAAA;AACA,cAAA;AACa,gBAAA;AACf,kBAAA;AACD,gBAAA;AACH,cAAA;AACF,YAAA;AACK,UAAA;AACG,YAAA;AACA,cAAA;AAC+B,gBAAA;AACjC,kBAAA;AACD,gBAAA;AACH,cAAA;AACF,YAAA;AACF,UAAA;AACK,QAAA;AACG,UAAA;AACA,YAAA;AACoC,cAAA;AAC1C,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AAGqD,EAAA;AAC7B,EAAA;AAC0B,IAAA;AAClD,EAAA;AAG8B,EAAA;AAEvB,EAAA;AACuB,IAAA;AACJ,IAAA;AAC1B,EAAA;AACF;AD7B2E;AACA;AACA;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-ZZLIF3DE.js","sourcesContent":[null,"import * as readline from \"readline\";\nimport chalk from \"chalk\";\nimport { FileManager } from \"./fileManager\";\n\nconst promptUser = (question: string): Promise<string> => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n\n return new Promise((resolve) => {\n rl.question(question, (answer) => {\n rl.close();\n resolve(answer.trim().toLowerCase());\n });\n });\n};\n\nexport const initializeProject = async (): Promise<void> => {\n console.log(chalk.blue(\"Initializing LangWatch prompts project...\"));\n\n // Initialize prompts.json\n const configResult = FileManager.initializePromptsConfig();\n if (configResult.created) {\n console.log(chalk.green(`✓ Created ${chalk.gray(\"./prompts.json\")}`));\n\n // Ask about .gitignore\n const shouldAddGitignore = await promptUser(\n chalk.yellow(\"Add 'prompts/.materialized' to .gitignore? [Y/n]: \"),\n );\n\n if (\n shouldAddGitignore === \"\" ||\n shouldAddGitignore === \"y\" ||\n shouldAddGitignore === \"yes\"\n ) {\n const gitignoreResult = FileManager.addToGitignore(\n \"prompts/.materialized\",\n );\n if (gitignoreResult.added) {\n if (gitignoreResult.existed) {\n console.log(\n chalk.green(\n `✓ Added ${chalk.gray(\n \"prompts/.materialized\",\n )} to existing .gitignore`,\n ),\n );\n } else {\n console.log(\n chalk.green(\n `✓ Created .gitignore with ${chalk.gray(\n \"prompts/.materialized\",\n )}`,\n ),\n );\n }\n } else {\n console.log(\n chalk.gray(\n `• ${chalk.gray(\"prompts/.materialized\")} already in .gitignore`,\n ),\n );\n }\n }\n } else {\n console.log(chalk.gray(`• prompts.json already exists`));\n }\n\n // Initialize lock file\n const lockResult = FileManager.initializePromptsLock();\n if (lockResult.created) {\n console.log(chalk.green(`✓ Created ${chalk.gray(\"./prompts-lock.json\")}`));\n } else {\n console.log(chalk.gray(`• prompts-lock.json already exists`));\n }\n\n // Ensure directories exist\n FileManager.ensureDirectories();\n console.log(\n chalk.green(`✓ Created ${chalk.gray(\"./prompts/\")} directory structure`),\n );\n\n console.log(\n chalk.green(\"\\n✨ Project initialized! You can now add prompts with:\"),\n );\n console.log(chalk.gray(\" langwatch prompt add <name>\"));\n};\n\nexport const ensureProjectInitialized = async (\n shouldPromptForGitignore = true,\n): Promise<{ configCreated: boolean; lockCreated: boolean }> => {\n // Initialize prompts.json\n const configResult = FileManager.initializePromptsConfig();\n let askedAboutGitignore = false;\n\n if (configResult.created) {\n console.log(chalk.green(`✓ Created ${chalk.gray(\"./prompts.json\")}`));\n\n // Ask about .gitignore only if we should prompt and haven't asked yet\n if (shouldPromptForGitignore && !askedAboutGitignore) {\n askedAboutGitignore = true;\n const shouldAddGitignore = await promptUser(\n chalk.yellow(\"Add 'prompts/.materialized' to .gitignore? [Y/n]: \"),\n );\n\n if (\n shouldAddGitignore === \"\" ||\n shouldAddGitignore === \"y\" ||\n shouldAddGitignore === \"yes\"\n ) {\n const gitignoreResult = FileManager.addToGitignore(\n \"prompts/.materialized\",\n );\n if (gitignoreResult.added) {\n if (gitignoreResult.existed) {\n console.log(\n chalk.green(\n `✓ Added ${chalk.gray(\n \"prompts/.materialized\",\n )} to existing .gitignore`,\n ),\n );\n } else {\n console.log(\n chalk.green(\n `✓ Created .gitignore with ${chalk.gray(\n \"prompts/.materialized\",\n )}`,\n ),\n );\n }\n } else {\n console.log(\n chalk.gray(\n `• ${chalk.gray(\"prompts/.materialized\")} already in .gitignore`,\n ),\n );\n }\n }\n }\n }\n\n // Initialize lock file\n const lockResult = FileManager.initializePromptsLock();\n if (lockResult.created) {\n console.log(chalk.green(`✓ Created ${chalk.gray(\"./prompts-lock.json\")}`));\n }\n\n // Ensure directories exist\n FileManager.ensureDirectories();\n\n return {\n configCreated: configResult.created,\n lockCreated: lockResult.created,\n };\n};\n"]}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict"; 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; } }
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkI5NDMIK5js = require('../chunk-I5NDMIK5.js');
|
|
5
5
|
require('../chunk-OXBO24RB.js');
|
|
6
6
|
|
|
7
7
|
// src/cli/index.ts
|
|
@@ -9,31 +9,31 @@ 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-SV662KZU.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-N3324KHS.js")));
|
|
17
17
|
return removeCommandImpl(name);
|
|
18
18
|
};
|
|
19
19
|
var initCommand = async () => {
|
|
20
|
-
const { initCommand: initCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../init-
|
|
20
|
+
const { initCommand: initCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../init-OO2BUJ6V.js")));
|
|
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-IAP4RFUM.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-GZGLSJ52.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-E32H3H52.js")));
|
|
33
33
|
return syncCommandImpl();
|
|
34
34
|
};
|
|
35
35
|
var createCommand = async (name, options) => {
|
|
36
|
-
const { createCommand: createCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../create-
|
|
36
|
+
const { createCommand: createCommandImpl } = await Promise.resolve().then(() => _interopRequireWildcard(require("../create-GUY3HZM2.js")));
|
|
37
37
|
return createCommandImpl(name, options);
|
|
38
38
|
};
|
|
39
39
|
var program = new (0, _commander.Command)();
|
|
@@ -70,7 +70,7 @@ promptCmd.command("add <spec> [localFile]").description("Add a prompt dependency
|
|
|
70
70
|
if (localFile) {
|
|
71
71
|
await addCommand(spec, { localFile });
|
|
72
72
|
} else {
|
|
73
|
-
const { name, version } =
|
|
73
|
+
const { name, version } = _chunkI5NDMIK5js.parsePromptSpec.call(void 0, spec);
|
|
74
74
|
await addCommand(name, { version });
|
|
75
75
|
}
|
|
76
76
|
} catch (error) {
|
package/dist/cli/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
parsePromptSpec
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-YQVVPMKH.mjs";
|
|
5
5
|
import "../chunk-CU3443HD.mjs";
|
|
6
6
|
|
|
7
7
|
// src/cli/index.ts
|
|
@@ -9,31 +9,31 @@ 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-SMYALCQG.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-JUVM6M7G.mjs");
|
|
17
17
|
return removeCommandImpl(name);
|
|
18
18
|
};
|
|
19
19
|
var initCommand = async () => {
|
|
20
|
-
const { initCommand: initCommandImpl } = await import("../init-
|
|
20
|
+
const { initCommand: initCommandImpl } = await import("../init-RDW2F4G3.mjs");
|
|
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-VXLW2OXR.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-32BRZ6RS.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-B4YK6QYX.mjs");
|
|
33
33
|
return syncCommandImpl();
|
|
34
34
|
};
|
|
35
35
|
var createCommand = async (name, options) => {
|
|
36
|
-
const { createCommand: createCommandImpl } = await import("../create-
|
|
36
|
+
const { createCommand: createCommandImpl } = await import("../create-BHWZP6YD.mjs");
|
|
37
37
|
return createCommandImpl(name, options);
|
|
38
38
|
};
|
|
39
39
|
var program = new Command();
|
|
@@ -3,12 +3,12 @@ import {
|
|
|
3
3
|
} from "./chunk-DHJKJVY7.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ensureProjectInitialized
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-K4ICRI7W.mjs";
|
|
7
7
|
import {
|
|
8
8
|
FileManager
|
|
9
|
-
} from "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-7ZRAJ52N.mjs";
|
|
10
|
+
import "./chunk-LXVDGQA4.mjs";
|
|
11
|
+
import "./chunk-YQVVPMKH.mjs";
|
|
12
12
|
import "./chunk-CU3443HD.mjs";
|
|
13
13
|
|
|
14
14
|
// src/cli/commands/create.ts
|
|
@@ -67,4 +67,4 @@ messages:
|
|
|
67
67
|
export {
|
|
68
68
|
createCommand
|
|
69
69
|
};
|
|
70
|
-
//# sourceMappingURL=create-
|
|
70
|
+
//# sourceMappingURL=create-BHWZP6YD.mjs.map
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkZZLIF3DEjs = require('./chunk-ZZLIF3DE.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
require('./chunk-
|
|
11
|
-
require('./chunk-
|
|
9
|
+
var _chunkP5F63PAWjs = require('./chunk-P5F63PAW.js');
|
|
10
|
+
require('./chunk-PUHM465C.js');
|
|
11
|
+
require('./chunk-I5NDMIK5.js');
|
|
12
12
|
require('./chunk-OXBO24RB.js');
|
|
13
13
|
|
|
14
14
|
// src/cli/commands/create.ts
|
|
@@ -22,7 +22,7 @@ var createCommand = async (name, options) => {
|
|
|
22
22
|
process.exit(1);
|
|
23
23
|
}
|
|
24
24
|
_chunkF6E4XQQUjs.checkApiKey.call(void 0, );
|
|
25
|
-
await
|
|
25
|
+
await _chunkZZLIF3DEjs.ensureProjectInitialized.call(void 0, );
|
|
26
26
|
const promptPath = path.join(process.cwd(), "prompts", `${name}.prompt.yaml`);
|
|
27
27
|
if (fs.existsSync(promptPath)) {
|
|
28
28
|
console.error(_chalk2.default.red(`Error: Prompt file already exists at ${promptPath}`));
|
|
@@ -42,11 +42,11 @@ messages:
|
|
|
42
42
|
content: "{{input}}"
|
|
43
43
|
`;
|
|
44
44
|
fs.writeFileSync(promptPath, defaultContent, "utf8");
|
|
45
|
-
const promptsConfig =
|
|
45
|
+
const promptsConfig = _chunkP5F63PAWjs.FileManager.loadPromptsConfig();
|
|
46
46
|
const relativePath = path.relative(process.cwd(), promptPath);
|
|
47
47
|
promptsConfig.prompts[name] = `file:${relativePath}`;
|
|
48
|
-
|
|
49
|
-
const lock =
|
|
48
|
+
_chunkP5F63PAWjs.FileManager.savePromptsConfig(promptsConfig);
|
|
49
|
+
const lock = _chunkP5F63PAWjs.FileManager.loadPromptsLock();
|
|
50
50
|
lock.prompts[name] = {
|
|
51
51
|
version: 0,
|
|
52
52
|
// Local files start at version 0
|
|
@@ -54,7 +54,7 @@ messages:
|
|
|
54
54
|
materialized: relativePath
|
|
55
55
|
// Store the original file path
|
|
56
56
|
};
|
|
57
|
-
|
|
57
|
+
_chunkP5F63PAWjs.FileManager.savePromptsLock(lock);
|
|
58
58
|
const displayPath = `./${relativePath}`;
|
|
59
59
|
console.log(_chalk2.default.green(`\u2713 Created prompt file: ${_chalk2.default.cyan(displayPath)}`));
|
|
60
60
|
console.log(_chalk2.default.gray(` Edit this file and then run:`));
|
|
@@ -67,4 +67,4 @@ messages:
|
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
exports.createCommand = createCommand;
|
|
70
|
-
//# sourceMappingURL=create-
|
|
70
|
+
//# sourceMappingURL=create-GUY3HZM2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-GUY3HZM2.js","../src/cli/commands/create.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACbA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AASX,IAAM,cAAA,EAAgB,MAAA,CAAO,IAAA,EAAc,OAAA,EAAA,GAA0C;AAC1F,EAAA,IAAI;AAEF,IAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,IAAA,CAAK,IAAA,CAAK,EAAA,IAAM,EAAA,EAAI;AAC/B,MAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,oCAAoC,CAAC,CAAA;AAC7D,MAAA,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA;AAAA,IAChB;AAGA,IAAA,0CAAA,CAAY;AAGZ,IAAA,MAAM,uDAAA,CAAyB;AAG/B,IAAA,MAAM,WAAA,EAAkB,IAAA,CAAA,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,CAAA,EAAG,SAAA,EAAW,CAAA,EAAA;AAExB,IAAA;AACL,MAAA;AACV,MAAA;AAChB,IAAA;AAG0C,IAAA;AACV,IAAA;AACc,MAAA;AAC9C,IAAA;AAGuB,IAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAW4B,IAAA;AAGC,IAAA;AACF,IAAA;AACA,IAAA;AACP,IAAA;AAGF,IAAA;AACpB,IAAA;AACV,MAAA;AAAA;AACE,MAAA;AACG,MAAA;AAAA;AAChB,IAAA;AACgC,IAAA;AAEK,IAAA;AACa,IAAA;AACM,IAAA;AACP,IAAA;AAEnC,EAAA;AACgC,IAAA;AAChC,IAAA;AAChB,EAAA;AACF;ADX4D;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/create-GUY3HZM2.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { ensureProjectInitialized } from \"../utils/init\";\n\ninterface CreateOptions {\n // Future options can be added here\n}\n\nexport const createCommand = async (name: string, options: CreateOptions): Promise<void> => {\n try {\n // Validate prompt name\n if (!name || name.trim() === \"\") {\n console.error(chalk.red(\"Error: Prompt name cannot be empty\"));\n process.exit(1);\n }\n\n // Check API key before doing anything else\n checkApiKey();\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Check if file already exists\n const promptPath = path.join(process.cwd(), \"prompts\", `${name}.prompt.yaml`);\n\n if (fs.existsSync(promptPath)) {\n console.error(chalk.red(`Error: Prompt file already exists at ${promptPath}`));\n process.exit(1);\n }\n\n // Create prompts directory if it doesn't exist\n const promptsDir = path.dirname(promptPath);\n if (!fs.existsSync(promptsDir)) {\n fs.mkdirSync(promptsDir, { recursive: true });\n }\n\n // Default prompt content\n const defaultContent = `model: openai/gpt-4o-mini\nmodelParameters:\n temperature: 0.7\nmessages:\n - role: system\n content: You are a helpful assistant.\n - role: user\n content: \"{{input}}\"\n`;\n\n // Write the file\n fs.writeFileSync(promptPath, defaultContent, \"utf8\");\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n const relativePath = path.relative(process.cwd(), promptPath);\n promptsConfig.prompts[name] = `file:${relativePath}`;\n FileManager.savePromptsConfig(promptsConfig);\n\n // Update lock file\n const lock = FileManager.loadPromptsLock();\n lock.prompts[name] = {\n version: 0, // Local files start at version 0\n versionId: \"local\",\n materialized: relativePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n const displayPath = `./${relativePath}`;\n console.log(chalk.green(`✓ Created prompt file: ${chalk.cyan(displayPath)}`));\n console.log(chalk.gray(` Edit this file and then run:`));\n console.log(chalk.cyan(` langwatch prompt sync`));\n\n } catch (error) {\n console.error(chalk.red(\"Unexpected error:\"), error instanceof Error ? error.message : error);\n process.exit(1);\n }\n};"]}
|
|
@@ -3,7 +3,7 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
|
3
3
|
import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
|
|
4
4
|
import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DRiQaKFG.js';
|
|
5
5
|
import { TracerProvider } from '@opentelemetry/api';
|
|
6
|
-
import { a as LangWatchTracer } from './types-
|
|
6
|
+
import { a as LangWatchTracer } from './types-D6Cs1385.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Filterable Batch Span Exporter for OpenTelemetry
|
|
@@ -3,7 +3,7 @@ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
|
|
|
3
3
|
import { Logger, LogRecord, LoggerProvider } from '@opentelemetry/api-logs';
|
|
4
4
|
import { a as SemConvLogRecordAttributes, S as SemConvAttributes } from './types-DRiQaKFG.mjs';
|
|
5
5
|
import { TracerProvider } from '@opentelemetry/api';
|
|
6
|
-
import { a as LangWatchTracer } from './types-
|
|
6
|
+
import { a as LangWatchTracer } from './types-D61S7yPU.mjs';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Filterable Batch Span Exporter for OpenTelemetry
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { L as Logger, C as ConsoleLogger, N as NoOpLogger } from './index-DTEZr0Jn.mjs';
|
|
2
|
-
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-
|
|
2
|
+
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation-D7LzdQop.mjs';
|
|
3
3
|
export { l as attributes } from './types-DRiQaKFG.mjs';
|
|
4
|
-
import { p as paths, P as PromptResponse, g as Prompt } from './types-
|
|
4
|
+
import { p as paths, P as PromptResponse, g as Prompt } from './types-D61S7yPU.mjs';
|
|
5
5
|
import openApiCreateClient from 'openapi-fetch';
|
|
6
6
|
import '@opentelemetry/sdk-trace-base';
|
|
7
7
|
import '@opentelemetry/exporter-trace-otlp-http';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { L as Logger, C as ConsoleLogger, N as NoOpLogger } from './index-DTEZr0Jn.js';
|
|
2
|
-
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation
|
|
2
|
+
export { F as FilterableBatchSpanProcessor, L as LangWatchExporter, S as SpanProcessingExcludeRule, g as getLangWatchLogger, d as getLangWatchTracer } from './implementation--7B7PUww.js';
|
|
3
3
|
export { l as attributes } from './types-DRiQaKFG.js';
|
|
4
|
-
import { p as paths, P as PromptResponse, g as Prompt } from './types-
|
|
4
|
+
import { p as paths, P as PromptResponse, g as Prompt } from './types-D6Cs1385.js';
|
|
5
5
|
import openApiCreateClient from 'openapi-fetch';
|
|
6
6
|
import '@opentelemetry/sdk-trace-base';
|
|
7
7
|
import '@opentelemetry/exporter-trace-otlp-http';
|
package/dist/index.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
require('./chunk-
|
|
3
|
+
var _chunkT7FQHOLKjs = require('./chunk-T7FQHOLK.js');
|
|
4
|
+
require('./chunk-NFM6RB4R.js');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
var _chunkYH5TIVK2js = require('./chunk-YH5TIVK2.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
var
|
|
10
|
+
var _chunkILTCLEIFjs = require('./chunk-ILTCLEIF.js');
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _chunkNVKMXXNPjs = require('./chunk-NVKMXXNP.js');
|
|
15
|
+
require('./chunk-VI5NJ53L.js');
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
|
|
19
20
|
var _chunkDISMHYXCjs = require('./chunk-DISMHYXC.js');
|
|
20
|
-
require('./chunk-
|
|
21
|
+
require('./chunk-PUHM465C.js');
|
|
21
22
|
require('./chunk-OXBO24RB.js');
|
|
22
23
|
|
|
23
24
|
// src/index.ts
|
|
@@ -33,5 +34,5 @@ var logger = {
|
|
|
33
34
|
|
|
34
35
|
|
|
35
36
|
|
|
36
|
-
exports.FilterableBatchSpanProcessor = _chunkYH5TIVK2js.FilterableBatchSpanProcessor; exports.LangWatch =
|
|
37
|
+
exports.FilterableBatchSpanProcessor = _chunkYH5TIVK2js.FilterableBatchSpanProcessor; exports.LangWatch = _chunkT7FQHOLKjs.LangWatch; exports.LangWatchExporter = _chunkNVKMXXNPjs.LangWatchTraceExporter; exports.attributes = _chunkDISMHYXCjs.attributes_exports; exports.getLangWatchLogger = _chunkNVKMXXNPjs.getLangWatchLogger; exports.getLangWatchTracer = _chunkILTCLEIFjs.getLangWatchTracer; exports.logger = logger;
|
|
37
38
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","../src/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","../src/index.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACRO,IAAM,OAAA,EAAS;AAAA,EACpB,6CAAA;AAAA,EACA;AACF,CAAA;ADUA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,iaAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/index.js","sourcesContent":[null,"import { ConsoleLogger, NoOpLogger } from \"./logger\";\n\nexport {\n getLangWatchTracer,\n getLangWatchLogger,\n attributes,\n} from \"./observability-sdk\";\n\nexport {\n FilterableBatchSpanProcessor,\n type SpanProcessingExcludeRule,\n} from \"./observability-sdk/processors\";\nexport { LangWatchExporter } from \"./observability-sdk/exporters\";\nexport { LangWatch } from \"./client-sdk\";\n\nexport const logger = {\n ConsoleLogger,\n NoOpLogger,\n};\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
LangWatch
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-RBZNMZTF.mjs";
|
|
4
|
+
import "./chunk-5ZKAT4KI.mjs";
|
|
5
5
|
import {
|
|
6
6
|
FilterableBatchSpanProcessor
|
|
7
7
|
} from "./chunk-N2V6J3U2.mjs";
|
|
8
8
|
import {
|
|
9
9
|
getLangWatchTracer
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VILW5FYO.mjs";
|
|
11
11
|
import {
|
|
12
12
|
LangWatchTraceExporter,
|
|
13
13
|
getLangWatchLogger
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ENSRDEDA.mjs";
|
|
15
|
+
import "./chunk-CAVBDSBT.mjs";
|
|
15
16
|
import {
|
|
16
17
|
ConsoleLogger,
|
|
17
18
|
NoOpLogger,
|
|
18
19
|
attributes_exports
|
|
19
20
|
} from "./chunk-YNQ44U6D.mjs";
|
|
20
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-LXVDGQA4.mjs";
|
|
21
22
|
import "./chunk-CU3443HD.mjs";
|
|
22
23
|
|
|
23
24
|
// src/index.ts
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { ConsoleLogger, NoOpLogger } from \"./logger\";\n\nexport {\n getLangWatchTracer,\n getLangWatchLogger,\n attributes,\n} from \"./observability-sdk\";\n\nexport {\n FilterableBatchSpanProcessor,\n type SpanProcessingExcludeRule,\n} from \"./observability-sdk/processors\";\nexport { LangWatchExporter } from \"./observability-sdk/exporters\";\nexport { LangWatch } from \"./client-sdk\";\n\nexport const logger = {\n ConsoleLogger,\n NoOpLogger,\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { ConsoleLogger, NoOpLogger } from \"./logger\";\n\nexport {\n getLangWatchTracer,\n getLangWatchLogger,\n attributes,\n} from \"./observability-sdk\";\n\nexport {\n FilterableBatchSpanProcessor,\n type SpanProcessingExcludeRule,\n} from \"./observability-sdk/processors\";\nexport { LangWatchExporter } from \"./observability-sdk/exporters\";\nexport { LangWatch } from \"./client-sdk\";\n\nexport const logger = {\n ConsoleLogger,\n NoOpLogger,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAeO,IAAM,SAAS;AAAA,EACpB;AAAA,EACA;AACF;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
|
+
|
|
3
|
+
var _chunkZZLIF3DEjs = require('./chunk-ZZLIF3DE.js');
|
|
4
|
+
require('./chunk-P5F63PAW.js');
|
|
5
|
+
require('./chunk-PUHM465C.js');
|
|
6
|
+
require('./chunk-I5NDMIK5.js');
|
|
7
|
+
require('./chunk-OXBO24RB.js');
|
|
8
|
+
|
|
9
|
+
// src/cli/commands/init.ts
|
|
10
|
+
var initCommand = async () => {
|
|
11
|
+
await _chunkZZLIF3DEjs.initializeProject.call(void 0, );
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
exports.initCommand = initCommand;
|
|
16
|
+
//# sourceMappingURL=init-OO2BUJ6V.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/init-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/init-OO2BUJ6V.js","../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;ACNO,IAAM,YAAA,EAAc,MAAA,CAAA,EAAA,GAA2B;AACpD,EAAA,MAAM,gDAAA,CAAkB;AAC1B,CAAA;ADQA;AACE;AACF,kCAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/init-OO2BUJ6V.js","sourcesContent":[null,"import { initializeProject } from \"../utils/init\";\n\nexport const initCommand = async (): Promise<void> => {\n await initializeProject();\n};"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
initializeProject
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-K4ICRI7W.mjs";
|
|
4
|
+
import "./chunk-7ZRAJ52N.mjs";
|
|
5
|
+
import "./chunk-LXVDGQA4.mjs";
|
|
6
|
+
import "./chunk-YQVVPMKH.mjs";
|
|
7
7
|
import "./chunk-CU3443HD.mjs";
|
|
8
8
|
|
|
9
9
|
// src/cli/commands/init.ts
|
|
@@ -13,4 +13,4 @@ var initCommand = async () => {
|
|
|
13
13
|
export {
|
|
14
14
|
initCommand
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=init-
|
|
16
|
+
//# sourceMappingURL=init-RDW2F4G3.mjs.map
|
|
@@ -3,15 +3,16 @@ import {
|
|
|
3
3
|
} from "./chunk-DHJKJVY7.mjs";
|
|
4
4
|
import {
|
|
5
5
|
LangWatch
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RBZNMZTF.mjs";
|
|
7
7
|
import {
|
|
8
8
|
PromptsError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5ZKAT4KI.mjs";
|
|
10
10
|
import "./chunk-N2V6J3U2.mjs";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-VILW5FYO.mjs";
|
|
12
|
+
import "./chunk-ENSRDEDA.mjs";
|
|
13
|
+
import "./chunk-CAVBDSBT.mjs";
|
|
13
14
|
import "./chunk-YNQ44U6D.mjs";
|
|
14
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-LXVDGQA4.mjs";
|
|
15
16
|
import "./chunk-CU3443HD.mjs";
|
|
16
17
|
|
|
17
18
|
// src/cli/commands/list.ts
|
|
@@ -145,4 +146,4 @@ var listCommand = async () => {
|
|
|
145
146
|
export {
|
|
146
147
|
listCommand
|
|
147
148
|
};
|
|
148
|
-
//# sourceMappingURL=list-
|
|
149
|
+
//# sourceMappingURL=list-32BRZ6RS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/list.ts"],"sourcesContent":["import chalk from \"chalk\";\nimport ora from \"ora\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { LangWatch } from \"@/client-sdk\";\nimport { checkApiKey } from \"../utils/apiKey\";\n\n// Helper to strip ANSI codes for length calculation\nconst stripAnsi = (str: string): string => {\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 LangWatch client\n const langwatch = new LangWatch();\n\n const spinner = ora(\"Fetching prompts from server...\").start();\n\n try {\n // Fetch all prompts\n const allPrompts = await langwatch.prompts.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"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,OAAO,WAAW;AAClB,OAAO,SAAS;AAMhB,IAAM,YAAY,CAAC,QAAwB;AACzC,SAAO,IAAI,QAAQ,qBAAqB,EAAE;AAC5C;AAGA,IAAM,cAAc,CAClB,MACA,YACS;AACT,MAAI,KAAK,WAAW,GAAG;AACrB,YAAQ,IAAI,MAAM,KAAK,kBAAkB,CAAC;AAC1C;AAAA,EACF;AAGA,QAAM,YAAoC,CAAC;AAC3C,UAAQ,QAAQ,CAAC,WAAW;AAC1B,cAAU,MAAM,IAAI,KAAK;AAAA,MACvB,OAAO;AAAA,MACP,GAAG,KAAK,IAAI,CAAC,QAAK;AA1BxB;AA0B2B,0BAAU,SAAI,MAAM,MAAV,YAAe,EAAE,EAAE;AAAA,OAAM;AAAA,IAC1D;AAAA,EACF,CAAC;AAGD,QAAM,YAAY,QACf,IAAI,CAAC,WAAW,MAAM,KAAK,OAAO,OAAO,UAAU,MAAM,CAAE,CAAC,CAAC,EAC7D,KAAK,IAAI;AACZ,UAAQ,IAAI,SAAS;AAGrB,QAAM,YAAY,QACf,IAAI,CAAC,WAAW,SAAI,OAAO,UAAU,MAAM,CAAE,CAAC,EAC9C,KAAK,IAAI;AACZ,UAAQ,IAAI,MAAM,KAAK,SAAS,CAAC;AAGjC,OAAK,QAAQ,CAAC,QAAQ;AACpB,UAAM,UAAU,QACb,IAAI,CAAC,WAAW;AA7CvB;AA8CQ,YAAM,SAAQ,SAAI,MAAM,MAAV,YAAe;AAC7B,YAAM,iBAAiB,UAAU,KAAK,EAAE;AACxC,YAAM,gBAAgB,UAAU,MAAM,IAAK;AAC3C,YAAM,cAAc,QAAQ,IAAI,OAAO,KAAK,IAAI,GAAG,aAAa,CAAC;AAGjE,UAAI,WAAW,QAAQ;AACrB,eAAO,MAAM,KAAK,WAAW;AAAA,MAC/B,WAAW,WAAW,WAAW;AAC/B,eAAO,MAAM,MAAM,WAAW;AAAA,MAChC,WAAW,WAAW,SAAS;AAC7B,eAAO,MAAM,OAAO,WAAW;AAAA,MACjC,OAAO;AACL,eAAO,MAAM,KAAK,WAAW;AAAA,MAC/B;AAAA,IACF,CAAC,EACA,KAAK,IAAI;AACZ,YAAQ,IAAI,OAAO;AAAA,EACrB,CAAC;AACH;AAEA,IAAM,qBAAqB,CAAC,eAA+B;AACzD,QAAM,OAAO,IAAI,KAAK,UAAU;AAChC,QAAM,MAAM,oBAAI,KAAK;AACrB,QAAM,SAAS,IAAI,QAAQ,IAAI,KAAK,QAAQ;AAE5C,QAAM,UAAU,KAAK,MAAM,SAAS,GAAI;AACxC,QAAM,UAAU,KAAK,MAAM,UAAU,EAAE;AACvC,QAAM,QAAQ,KAAK,MAAM,UAAU,EAAE;AACrC,QAAM,OAAO,KAAK,MAAM,QAAQ,EAAE;AAClC,QAAM,SAAS,KAAK,MAAM,OAAO,EAAE;AACnC,QAAM,QAAQ,KAAK,MAAM,OAAO,GAAG;AAEnC,MAAI,QAAQ,EAAG,QAAO,GAAG,KAAK;AAC9B,MAAI,SAAS,EAAG,QAAO,GAAG,MAAM;AAChC,MAAI,OAAO,EAAG,QAAO,GAAG,IAAI;AAC5B,MAAI,QAAQ,EAAG,QAAO,GAAG,KAAK;AAC9B,MAAI,UAAU,EAAG,QAAO,GAAG,OAAO;AAClC,SAAO,GAAG,OAAO;AACnB;AAEO,IAAM,cAAc,YAA2B;AACpD,MAAI;AAEF,gBAAY;AAGZ,UAAM,YAAY,IAAI,UAAU;AAEhC,UAAM,UAAU,IAAI,iCAAiC,EAAE,MAAM;AAE7D,QAAI;AAEF,YAAM,aAAa,MAAM,UAAU,QAAQ,OAAO;AAClD,YAAM,UAAU,WAAW,OAAO,CAAC,WAAW,OAAO,OAAO;AAC5D,YAAM,eAAe,WAAW,OAAO,CAAC,WAAW,CAAC,OAAO,OAAO;AAElE,cAAQ;AAAA,QACN,SAAS,QAAQ,MAAM,oBACrB,QAAQ,WAAW,IAAI,MAAM,EAC/B,MACE,MAAM;AAAA,UACJ,KAAK,aAAa,MAAM,SACtB,aAAa,WAAW,IAAI,MAAM,EACpC;AAAA,QACF;AAAA,MACJ;AAEA,UAAI,QAAQ,WAAW,GAAG;AACxB,gBAAQ,IAAI;AACZ,gBAAQ,IAAI,MAAM,KAAK,iCAAiC,CAAC;AACzD,gBAAQ,IAAI,MAAM,KAAK,gCAAgC,CAAC;AACxD,gBAAQ,IAAI,MAAM,KAAK,yBAAyB,CAAC;AACjD;AAAA,MACF;AAEA,cAAQ,IAAI;AAGZ,YAAM,YAAY,QAAQ,IAAI,CAAC,WAAQ;AA7H7C;AA6HiD;AAAA,UACzC,OAAM,YAAO,WAAP,YAAiB,GAAG,OAAO,IAAI,MAAM,MAAM,KAAK,IAAI,OAAO,EAAE,GAAG;AAAA,UACtE,SAAS,OAAO,UAAU,GAAG,OAAO,OAAO,KAAK;AAAA,UAChD,QAAO,YAAO,UAAP,YAAgB;AAAA,UACvB,SAAS,mBAAmB,OAAO,SAAS;AAAA,QAC9C;AAAA,OAAE;AAGF,kBAAY,WAAW,CAAC,QAAQ,WAAW,SAAS,SAAS,CAAC;AAE9D,cAAQ,IAAI;AACZ,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ,OAAO,MAAM;AAAA,YACX;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,KAAK;AACb,UAAI,iBAAiB,cAAc;AACjC,gBAAQ,MAAM,MAAM,IAAI,UAAU,MAAM,OAAO,EAAE,CAAC;AAAA,MACpD,OAAO;AACL,gBAAQ;AAAA,UACN,MAAM;AAAA,YACJ,2BACE,iBAAiB,QAAQ,MAAM,UAAU,eAC3C;AAAA,UACF;AAAA,QACF;AAAA,MACF;AACA,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF,SAAS,OAAO;AACd,QAAI,iBAAiB,cAAc;AACjC,cAAQ,MAAM,MAAM,IAAI,UAAU,MAAM,OAAO,EAAE,CAAC;AAAA,IACpD,OAAO;AACL,cAAQ;AAAA,QACN,MAAM;AAAA,UACJ,qBACE,iBAAiB,QAAQ,MAAM,UAAU,eAC3C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF;","names":[]}
|