langwatch 0.4.1 → 0.5.1
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-RGWB3264.js → add-4WXEWG5H.js} +63 -34
- package/dist/add-4WXEWG5H.js.map +1 -0
- package/dist/{add-WLUMK5VQ.mjs → add-D2WVVKIP.mjs} +48 -19
- package/dist/add-D2WVVKIP.mjs.map +1 -0
- package/dist/{chunk-K64Y6YUG.js → chunk-7OZKH5K2.js} +59 -19
- package/dist/chunk-7OZKH5K2.js.map +1 -0
- package/dist/{chunk-HA3LI5IK.js → chunk-AZHZ4NB4.js} +1 -1
- package/dist/{chunk-HA3LI5IK.js.map → chunk-AZHZ4NB4.js.map} +1 -1
- package/dist/{chunk-4NRLVT2U.mjs → chunk-BTBSMJTY.mjs} +1 -1
- package/dist/chunk-BTBSMJTY.mjs.map +1 -0
- package/dist/{chunk-D2CSG4SJ.js → chunk-CAZONSXV.js} +5 -5
- package/dist/{chunk-D2CSG4SJ.js.map → chunk-CAZONSXV.js.map} +1 -1
- package/dist/{chunk-HUI45ULC.mjs → chunk-CKVDNVFL.mjs} +3 -3
- package/dist/{chunk-ECUXLXFT.mjs → chunk-DLJO7AK5.mjs} +53 -13
- package/dist/chunk-DLJO7AK5.mjs.map +1 -0
- package/dist/{chunk-AZELEDOV.js → chunk-DSIQSULK.js} +15 -18
- package/dist/chunk-DSIQSULK.js.map +1 -0
- package/dist/{chunk-M4VUHTT2.js → chunk-ECOC36EA.js} +11 -11
- package/dist/chunk-ECOC36EA.js.map +1 -0
- package/dist/{chunk-IZ2U3ABC.mjs → chunk-H5PON53W.mjs} +67 -127
- package/dist/chunk-H5PON53W.mjs.map +1 -0
- package/dist/{chunk-4TF2O2TH.js → chunk-P4SQTYGN.js} +14 -14
- package/dist/{chunk-4TF2O2TH.js.map → chunk-P4SQTYGN.js.map} +1 -1
- package/dist/{chunk-DEVJ7BPE.js → chunk-QCYYSMCU.js} +2 -2
- package/dist/chunk-QCYYSMCU.js.map +1 -0
- package/dist/{chunk-EJWJXTPU.mjs → chunk-QZGTM76F.mjs} +8 -8
- package/dist/chunk-QZGTM76F.mjs.map +1 -0
- package/dist/{chunk-SGNJDRCT.js → chunk-R6FBJN7K.js} +22 -7
- package/dist/chunk-R6FBJN7K.js.map +1 -0
- package/dist/{chunk-5N5BUR2Z.js → chunk-SVXNUWZI.js} +68 -128
- package/dist/chunk-SVXNUWZI.js.map +1 -0
- package/dist/{chunk-SYMZPWZE.mjs → chunk-V5M3HUBV.mjs} +22 -7
- package/dist/chunk-V5M3HUBV.mjs.map +1 -0
- package/dist/{chunk-4ILMGMAP.mjs → chunk-YEGQXDTE.mjs} +5 -8
- package/dist/{chunk-4ILMGMAP.mjs.map → chunk-YEGQXDTE.mjs.map} +1 -1
- package/dist/{chunk-FQSWUK5N.mjs → chunk-YKFTFYKK.mjs} +2 -2
- package/dist/chunk-YKFTFYKK.mjs.map +1 -0
- package/dist/{chunk-ZJZ3MIWE.mjs → chunk-ZIULPOMQ.mjs} +2 -2
- package/dist/cli/index.js +9 -9
- package/dist/cli/index.mjs +8 -8
- package/dist/{create-7K2CC4KQ.js → create-4LG4N2A4.js} +27 -16
- package/dist/create-4LG4N2A4.js.map +1 -0
- package/dist/{create-MK7NEGCM.mjs → create-OQEMO4MU.mjs} +22 -11
- package/dist/create-OQEMO4MU.mjs.map +1 -0
- package/dist/{implementation-CzemP9jY.d.ts → implementation-BIlL6-SW.d.ts} +1 -1
- package/dist/{implementation-C4lvooSg.d.mts → implementation-fAgqv8OM.d.mts} +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -7
- package/dist/index.mjs +6 -6
- package/dist/init-EKNL2SQE.js +16 -0
- package/dist/{init-GDKJICSS.js.map → init-EKNL2SQE.js.map} +1 -1
- package/dist/{init-RINSTP4L.mjs → init-MQXXHCNT.mjs} +5 -5
- package/dist/{list-DBUK47MA.js → list-GIAXAAH5.js} +10 -10
- package/dist/list-GIAXAAH5.js.map +1 -0
- package/dist/{list-ZOMRKOBV.mjs → list-PFWV7IU6.mjs} +7 -7
- package/dist/list-PFWV7IU6.mjs.map +1 -0
- package/dist/{login-A7LEPNBR.js → login-3STX2FAO.js} +3 -3
- package/dist/{login-A7LEPNBR.js.map → login-3STX2FAO.js.map} +1 -1
- package/dist/{login-ULPHWIAX.mjs → login-BYLXS23I.mjs} +2 -2
- 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 -4
- package/dist/observability-sdk/index.mjs +3 -3
- 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.d.mts +1 -1
- package/dist/observability-sdk/setup/node/index.d.ts +1 -1
- package/dist/observability-sdk/setup/node/index.js +10 -10
- package/dist/observability-sdk/setup/node/index.mjs +2 -2
- package/dist/{remove-RAJBGHQQ.mjs → remove-FTF3EBYV.mjs} +8 -8
- package/dist/{remove-ODTJLFWR.js → remove-U3PILQDV.js} +16 -16
- package/dist/{remove-ODTJLFWR.js.map → remove-U3PILQDV.js.map} +1 -1
- package/dist/{sync-2IXPWN64.mjs → sync-FOW7DHAH.mjs} +27 -19
- package/dist/sync-FOW7DHAH.mjs.map +1 -0
- package/dist/{sync-PBOL5ODF.js → sync-T3T22GVZ.js} +45 -37
- package/dist/sync-T3T22GVZ.js.map +1 -0
- package/dist/{types-C9k5gGhU.d.ts → types-DyUmlaDx.d.ts} +973 -533
- package/dist/{types-1q5wIYP5.d.mts → types-jrEEZt9d.d.mts} +973 -533
- package/package.json +16 -14
- package/dist/add-RGWB3264.js.map +0 -1
- package/dist/add-WLUMK5VQ.mjs.map +0 -1
- package/dist/chunk-4NRLVT2U.mjs.map +0 -1
- package/dist/chunk-5N5BUR2Z.js.map +0 -1
- package/dist/chunk-AZELEDOV.js.map +0 -1
- package/dist/chunk-DEVJ7BPE.js.map +0 -1
- package/dist/chunk-ECUXLXFT.mjs.map +0 -1
- package/dist/chunk-EJWJXTPU.mjs.map +0 -1
- package/dist/chunk-FQSWUK5N.mjs.map +0 -1
- package/dist/chunk-IZ2U3ABC.mjs.map +0 -1
- package/dist/chunk-K64Y6YUG.js.map +0 -1
- package/dist/chunk-M4VUHTT2.js.map +0 -1
- package/dist/chunk-SGNJDRCT.js.map +0 -1
- package/dist/chunk-SYMZPWZE.mjs.map +0 -1
- package/dist/create-7K2CC4KQ.js.map +0 -1
- package/dist/create-MK7NEGCM.mjs.map +0 -1
- package/dist/init-GDKJICSS.js +0 -16
- package/dist/list-DBUK47MA.js.map +0 -1
- package/dist/list-ZOMRKOBV.mjs.map +0 -1
- package/dist/sync-2IXPWN64.mjs.map +0 -1
- package/dist/sync-PBOL5ODF.js.map +0 -1
- /package/dist/{chunk-HUI45ULC.mjs.map → chunk-CKVDNVFL.mjs.map} +0 -0
- /package/dist/{chunk-ZJZ3MIWE.mjs.map → chunk-ZIULPOMQ.mjs.map} +0 -0
- /package/dist/{init-RINSTP4L.mjs.map → init-MQXXHCNT.mjs.map} +0 -0
- /package/dist/{login-ULPHWIAX.mjs.map → login-BYLXS23I.mjs.map} +0 -0
- /package/dist/{remove-RAJBGHQQ.mjs.map → remove-FTF3EBYV.mjs.map} +0 -0
|
@@ -3,25 +3,25 @@
|
|
|
3
3
|
var _chunkF6E4XQQUjs = require('./chunk-F6E4XQQU.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkDSIQSULKjs = require('./chunk-DSIQSULK.js');
|
|
7
7
|
|
|
8
8
|
|
|
9
|
-
var
|
|
9
|
+
var _chunkSVXNUWZIjs = require('./chunk-SVXNUWZI.js');
|
|
10
10
|
require('./chunk-YH5TIVK2.js');
|
|
11
|
-
require('./chunk-
|
|
12
|
-
require('./chunk-
|
|
13
|
-
require('./chunk-
|
|
11
|
+
require('./chunk-ECOC36EA.js');
|
|
12
|
+
require('./chunk-P4SQTYGN.js');
|
|
13
|
+
require('./chunk-QCYYSMCU.js');
|
|
14
14
|
require('./chunk-DISMHYXC.js');
|
|
15
15
|
|
|
16
16
|
|
|
17
|
-
var
|
|
17
|
+
var _chunk7OZKH5K2js = require('./chunk-7OZKH5K2.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkCAZONSXVjs = require('./chunk-CAZONSXV.js');
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
var
|
|
24
|
-
require('./chunk-
|
|
23
|
+
var _chunkR6FBJN7Kjs = require('./chunk-R6FBJN7K.js');
|
|
24
|
+
require('./chunk-AZHZ4NB4.js');
|
|
25
25
|
require('./chunk-OXBO24RB.js');
|
|
26
26
|
|
|
27
27
|
// src/cli/commands/add.ts
|
|
@@ -35,16 +35,18 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
35
35
|
process.exit(1);
|
|
36
36
|
}
|
|
37
37
|
if (!localFilePath.endsWith(".prompt.yaml")) {
|
|
38
|
-
console.error(
|
|
38
|
+
console.error(
|
|
39
|
+
_chalk2.default.red(`Error: Local file must have .prompt.yaml extension`)
|
|
40
|
+
);
|
|
39
41
|
process.exit(1);
|
|
40
42
|
}
|
|
41
43
|
try {
|
|
42
|
-
|
|
43
|
-
await
|
|
44
|
-
const promptsConfig =
|
|
44
|
+
_chunkCAZONSXVjs.FileManager.loadLocalPrompt(localFilePath);
|
|
45
|
+
await _chunk7OZKH5K2js.ensureProjectInitialized.call(void 0, );
|
|
46
|
+
const promptsConfig = _chunkCAZONSXVjs.FileManager.loadPromptsConfig();
|
|
45
47
|
promptsConfig.prompts[name] = `file:${localFilePath}`;
|
|
46
|
-
|
|
47
|
-
const lock =
|
|
48
|
+
_chunkCAZONSXVjs.FileManager.savePromptsConfig(promptsConfig);
|
|
49
|
+
const lock = _chunkCAZONSXVjs.FileManager.loadPromptsLock();
|
|
48
50
|
lock.prompts[name] = {
|
|
49
51
|
version: 0,
|
|
50
52
|
// Local files start at version 0
|
|
@@ -52,11 +54,19 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
52
54
|
materialized: localFilePath
|
|
53
55
|
// Store the original file path
|
|
54
56
|
};
|
|
55
|
-
|
|
56
|
-
console.log(
|
|
57
|
+
_chunkCAZONSXVjs.FileManager.savePromptsLock(lock);
|
|
58
|
+
console.log(
|
|
59
|
+
_chalk2.default.green(
|
|
60
|
+
`\u2713 Added local prompt: ${_chalk2.default.cyan(name)} \u2192 ${_chalk2.default.gray(
|
|
61
|
+
localFilePath
|
|
62
|
+
)}`
|
|
63
|
+
)
|
|
64
|
+
);
|
|
57
65
|
} catch (error) {
|
|
58
66
|
console.error(_chalk2.default.red("Error loading local prompt file:"));
|
|
59
|
-
console.error(
|
|
67
|
+
console.error(
|
|
68
|
+
_chalk2.default.red(error instanceof Error ? error.message : String(error))
|
|
69
|
+
);
|
|
60
70
|
process.exit(1);
|
|
61
71
|
}
|
|
62
72
|
};
|
|
@@ -72,9 +82,11 @@ var addCommand = async (name, options) => {
|
|
|
72
82
|
return;
|
|
73
83
|
}
|
|
74
84
|
_chunkF6E4XQQUjs.checkApiKey.call(void 0, );
|
|
75
|
-
const langwatch = new (0,
|
|
85
|
+
const langwatch = new (0, _chunkDSIQSULKjs.LangWatch)();
|
|
76
86
|
const version = (_a = options.version) != null ? _a : "latest";
|
|
77
|
-
const spinner = _ora2.default.call(void 0,
|
|
87
|
+
const spinner = _ora2.default.call(void 0,
|
|
88
|
+
`Adding ${_chalk2.default.cyan(`${name}@${version}`)}...`
|
|
89
|
+
).start();
|
|
78
90
|
try {
|
|
79
91
|
const prompt = await langwatch.prompts.get(name);
|
|
80
92
|
if (!prompt) {
|
|
@@ -83,34 +95,51 @@ var addCommand = async (name, options) => {
|
|
|
83
95
|
process.exit(1);
|
|
84
96
|
}
|
|
85
97
|
spinner.stop();
|
|
86
|
-
await
|
|
98
|
+
await _chunk7OZKH5K2js.ensureProjectInitialized.call(void 0, );
|
|
87
99
|
spinner.start(`Adding ${_chalk2.default.cyan(`${name}@${version}`)}...`);
|
|
88
|
-
const materializedPrompt =
|
|
89
|
-
const savedPath =
|
|
100
|
+
const materializedPrompt = _chunkR6FBJN7Kjs.PromptConverter.fromApiToMaterialized(prompt);
|
|
101
|
+
const savedPath = _chunkCAZONSXVjs.FileManager.saveMaterializedPrompt(
|
|
102
|
+
name,
|
|
103
|
+
materializedPrompt
|
|
104
|
+
);
|
|
90
105
|
const relativePath = path.relative(process.cwd(), savedPath);
|
|
91
|
-
const config =
|
|
92
|
-
const lock =
|
|
106
|
+
const config = _chunkCAZONSXVjs.FileManager.loadPromptsConfig();
|
|
107
|
+
const lock = _chunkCAZONSXVjs.FileManager.loadPromptsLock();
|
|
93
108
|
config.prompts[name] = version;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
109
|
+
_chunkCAZONSXVjs.FileManager.updateLockEntry(lock, name, materializedPrompt, savedPath);
|
|
110
|
+
_chunkCAZONSXVjs.FileManager.savePromptsConfig(config);
|
|
111
|
+
_chunkCAZONSXVjs.FileManager.savePromptsLock(lock);
|
|
97
112
|
spinner.succeed();
|
|
98
113
|
const displayPath = relativePath.startsWith("./") ? relativePath : `./${relativePath}`;
|
|
99
|
-
console.log(
|
|
114
|
+
console.log(
|
|
115
|
+
_chalk2.default.green(
|
|
116
|
+
`\u2713 Pulled ${_chalk2.default.cyan(`${name}@${version}`)} ${_chalk2.default.gray(
|
|
117
|
+
`(version ${prompt.version})`
|
|
118
|
+
)} \u2192 ${_chalk2.default.gray(displayPath)}`
|
|
119
|
+
)
|
|
120
|
+
);
|
|
100
121
|
} catch (error) {
|
|
101
122
|
spinner.fail();
|
|
102
|
-
if (error instanceof
|
|
123
|
+
if (error instanceof _chunkSVXNUWZIjs.PromptsError) {
|
|
103
124
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
104
125
|
} else {
|
|
105
|
-
console.error(
|
|
126
|
+
console.error(
|
|
127
|
+
_chalk2.default.red(
|
|
128
|
+
`Error adding prompt: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
129
|
+
)
|
|
130
|
+
);
|
|
106
131
|
}
|
|
107
132
|
process.exit(1);
|
|
108
133
|
}
|
|
109
134
|
} catch (error) {
|
|
110
|
-
if (error instanceof
|
|
135
|
+
if (error instanceof _chunkSVXNUWZIjs.PromptsError) {
|
|
111
136
|
console.error(_chalk2.default.red(`Error: ${error.message}`));
|
|
112
137
|
} else {
|
|
113
|
-
console.error(
|
|
138
|
+
console.error(
|
|
139
|
+
_chalk2.default.red(
|
|
140
|
+
`Unexpected error: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
141
|
+
)
|
|
142
|
+
);
|
|
114
143
|
}
|
|
115
144
|
process.exit(1);
|
|
116
145
|
}
|
|
@@ -118,4 +147,4 @@ var addCommand = async (name, options) => {
|
|
|
118
147
|
|
|
119
148
|
|
|
120
149
|
exports.addCommand = addCommand;
|
|
121
|
-
//# sourceMappingURL=add-
|
|
150
|
+
//# sourceMappingURL=add-4WXEWG5H.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/add-4WXEWG5H.js","../src/cli/commands/add.ts"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B,+BAA4B;AAC5B,+BAA4B;AAC5B;AACA;AC1BA,+DAAoB;AACpB,uEAAsB;AACtB,4EAAkB;AAClB,oEAAgB;AAahB,IAAM,aAAA,EAAe,MAAA,CACnB,IAAA,EACA,aAAA,EAAA,GACkB;AAElB,EAAA,GAAA,CAAI,CAAI,EAAA,CAAA,UAAA,CAAW,aAAa,CAAA,EAAG;AACjC,IAAA,OAAA,CAAQ,KAAA,CAAM,eAAA,CAAM,GAAA,CAAI,CAAA,6BAAA,EAAgC,aAAa,CAAA,CAAA;AACvD,IAAA;AAChB,EAAA;AAE6C,EAAA;AACnC,IAAA;AACwD,MAAA;AAChE,IAAA;AACc,IAAA;AAChB,EAAA;AAGI,EAAA;AACuC,IAAA;AAGV,IAAA;AAGqB,IAAA;AACD,IAAA;AACR,IAAA;AAGF,IAAA;AACpB,IAAA;AACV,MAAA;AAAA;AACE,MAAA;AACG,MAAA;AAAA;AAChB,IAAA;AACgC,IAAA;AAExB,IAAA;AACA,MAAA;AACiD,QAAA;AACnD,UAAA;AACD,QAAA;AACH,MAAA;AACF,IAAA;AACc,EAAA;AAC6C,IAAA;AACnD,IAAA;AAC0D,MAAA;AAClE,IAAA;AACc,IAAA;AAChB,EAAA;AACF;AAKoB;AAzEpB,EAAA;AA0EM,EAAA;AAE+B,IAAA;AAC8B,MAAA;AAC/C,MAAA;AAChB,IAAA;AAGuB,IAAA;AACqB,MAAA;AAC1C,MAAA;AACF,IAAA;AAGY,IAAA;AAEoB,IAAA;AACG,IAAA;AAGnB,IAAA;AAC4B,MAAA;AACpC,IAAA;AAEJ,IAAA;AAE6C,MAAA;AAElC,MAAA;AACE,QAAA;AAC+C,QAAA;AAC9C,QAAA;AAChB,MAAA;AAGa,MAAA;AAGkB,MAAA;AAG8B,MAAA;AAGI,MAAA;AACnC,MAAA;AAC5B,QAAA;AACA,QAAA;AACF,MAAA;AAC2D,MAAA;AAGd,MAAA;AACJ,MAAA;AAElB,MAAA;AACqC,MAAA;AAGxB,MAAA;AACJ,MAAA;AAEhB,MAAA;AAKZ,MAAA;AACI,MAAA;AACA,QAAA;AACkD,UAAA;AAC1B,YAAA;AACE,UAAA;AAChC,QAAA;AACF,MAAA;AACc,IAAA;AACD,MAAA;AACsB,MAAA;AACiB,QAAA;AAC7C,MAAA;AACG,QAAA;AACA,UAAA;AAE6B,YAAA;AAEnC,UAAA;AACF,QAAA;AACF,MAAA;AACc,MAAA;AAChB,IAAA;AACc,EAAA;AACqB,IAAA;AACiB,MAAA;AAC7C,IAAA;AACG,MAAA;AACA,QAAA;AAEuC,UAAA;AAE7C,QAAA;AACF,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AACF;ADhC0E;AACA;AACA","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/add-4WXEWG5H.js","sourcesContent":[null,"import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { PromptConverter } from \"../utils/promptConverter\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { LangWatch } from \"@/client-sdk\";\n\ninterface AddOptions {\n version?: string;\n localFile?: string;\n}\n\nconst addLocalFile = async (\n name: string,\n localFilePath: string,\n): Promise<void> => {\n // Validate that the file exists and has the right extension\n if (!fs.existsSync(localFilePath)) {\n console.error(chalk.red(`Error: Local file not found: ${localFilePath}`));\n process.exit(1);\n }\n\n if (!localFilePath.endsWith(\".prompt.yaml\")) {\n console.error(\n chalk.red(`Error: Local file must have .prompt.yaml extension`),\n );\n process.exit(1);\n }\n\n // Load and validate the YAML file\n try {\n FileManager.loadLocalPrompt(localFilePath);\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n promptsConfig.prompts[name] = `file:${localFilePath}`;\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: localFilePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n console.log(\n chalk.green(\n `✓ Added local prompt: ${chalk.cyan(name)} → ${chalk.gray(\n localFilePath,\n )}`,\n ),\n );\n } catch (error) {\n console.error(chalk.red(\"Error loading local prompt file:\"));\n console.error(\n chalk.red(error instanceof Error ? error.message : String(error)),\n );\n process.exit(1);\n }\n};\n\nexport const addCommand = async (\n name: string,\n options: AddOptions,\n): 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 // Handle local file addition\n if (options.localFile) {\n await addLocalFile(name, options.localFile);\n return;\n }\n\n // Check API key before doing anything else\n checkApiKey();\n\n const langwatch = new LangWatch();\n const version = options.version ?? \"latest\";\n\n // Fetch and materialize the prompt (like sync does for individual prompts)\n const spinner = ora(\n `Adding ${chalk.cyan(`${name}@${version}`)}...`,\n ).start();\n\n try {\n // Fetch the prompt from the API\n const prompt = await langwatch.prompts.get(name);\n\n if (!prompt) {\n spinner.fail();\n console.error(chalk.red(`Error: Prompt \"${name}\" not found`));\n process.exit(1);\n }\n\n // Stop spinner before any user input prompts\n spinner.stop();\n\n // Ensure project is initialized (prompts.json, lock file, directories)\n await ensureProjectInitialized();\n\n // Restart spinner for the actual work\n spinner.start(`Adding ${chalk.cyan(`${name}@${version}`)}...`);\n\n // Convert to MaterializedPrompt format and save\n const materializedPrompt = PromptConverter.fromApiToMaterialized(prompt);\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt,\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n\n // Load existing config and lock, add the new dependency\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n config.prompts[name] = version;\n FileManager.updateLockEntry(lock, name, materializedPrompt, savedPath);\n\n // Save the updated config and lock\n FileManager.savePromptsConfig(config);\n FileManager.savePromptsLock(lock);\n\n spinner.succeed();\n\n // Show what was done (add ./ prefix for consistency)\n const displayPath = relativePath.startsWith(\"./\")\n ? relativePath\n : `./${relativePath}`;\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${version}`)} ${chalk.gray(\n `(version ${prompt.version})`,\n )} → ${chalk.gray(displayPath)}`,\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 adding prompt: ${\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"]}
|
|
@@ -3,25 +3,25 @@ import {
|
|
|
3
3
|
} from "./chunk-DHJKJVY7.mjs";
|
|
4
4
|
import {
|
|
5
5
|
LangWatch
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YEGQXDTE.mjs";
|
|
7
7
|
import {
|
|
8
8
|
PromptsError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-H5PON53W.mjs";
|
|
10
10
|
import "./chunk-N2V6J3U2.mjs";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-QZGTM76F.mjs";
|
|
12
|
+
import "./chunk-ZIULPOMQ.mjs";
|
|
13
|
+
import "./chunk-YKFTFYKK.mjs";
|
|
14
14
|
import "./chunk-YNQ44U6D.mjs";
|
|
15
15
|
import {
|
|
16
16
|
ensureProjectInitialized
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-DLJO7AK5.mjs";
|
|
18
18
|
import {
|
|
19
19
|
FileManager
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-CKVDNVFL.mjs";
|
|
21
21
|
import {
|
|
22
22
|
PromptConverter
|
|
23
|
-
} from "./chunk-
|
|
24
|
-
import "./chunk-
|
|
23
|
+
} from "./chunk-V5M3HUBV.mjs";
|
|
24
|
+
import "./chunk-BTBSMJTY.mjs";
|
|
25
25
|
import "./chunk-CU3443HD.mjs";
|
|
26
26
|
|
|
27
27
|
// src/cli/commands/add.ts
|
|
@@ -35,11 +35,13 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
35
35
|
process.exit(1);
|
|
36
36
|
}
|
|
37
37
|
if (!localFilePath.endsWith(".prompt.yaml")) {
|
|
38
|
-
console.error(
|
|
38
|
+
console.error(
|
|
39
|
+
chalk.red(`Error: Local file must have .prompt.yaml extension`)
|
|
40
|
+
);
|
|
39
41
|
process.exit(1);
|
|
40
42
|
}
|
|
41
43
|
try {
|
|
42
|
-
|
|
44
|
+
FileManager.loadLocalPrompt(localFilePath);
|
|
43
45
|
await ensureProjectInitialized();
|
|
44
46
|
const promptsConfig = FileManager.loadPromptsConfig();
|
|
45
47
|
promptsConfig.prompts[name] = `file:${localFilePath}`;
|
|
@@ -53,10 +55,18 @@ var addLocalFile = async (name, localFilePath) => {
|
|
|
53
55
|
// Store the original file path
|
|
54
56
|
};
|
|
55
57
|
FileManager.savePromptsLock(lock);
|
|
56
|
-
console.log(
|
|
58
|
+
console.log(
|
|
59
|
+
chalk.green(
|
|
60
|
+
`\u2713 Added local prompt: ${chalk.cyan(name)} \u2192 ${chalk.gray(
|
|
61
|
+
localFilePath
|
|
62
|
+
)}`
|
|
63
|
+
)
|
|
64
|
+
);
|
|
57
65
|
} catch (error) {
|
|
58
66
|
console.error(chalk.red("Error loading local prompt file:"));
|
|
59
|
-
console.error(
|
|
67
|
+
console.error(
|
|
68
|
+
chalk.red(error instanceof Error ? error.message : String(error))
|
|
69
|
+
);
|
|
60
70
|
process.exit(1);
|
|
61
71
|
}
|
|
62
72
|
};
|
|
@@ -74,7 +84,9 @@ var addCommand = async (name, options) => {
|
|
|
74
84
|
checkApiKey();
|
|
75
85
|
const langwatch = new LangWatch();
|
|
76
86
|
const version = (_a = options.version) != null ? _a : "latest";
|
|
77
|
-
const spinner = ora(
|
|
87
|
+
const spinner = ora(
|
|
88
|
+
`Adding ${chalk.cyan(`${name}@${version}`)}...`
|
|
89
|
+
).start();
|
|
78
90
|
try {
|
|
79
91
|
const prompt = await langwatch.prompts.get(name);
|
|
80
92
|
if (!prompt) {
|
|
@@ -86,7 +98,10 @@ var addCommand = async (name, options) => {
|
|
|
86
98
|
await ensureProjectInitialized();
|
|
87
99
|
spinner.start(`Adding ${chalk.cyan(`${name}@${version}`)}...`);
|
|
88
100
|
const materializedPrompt = PromptConverter.fromApiToMaterialized(prompt);
|
|
89
|
-
const savedPath = FileManager.saveMaterializedPrompt(
|
|
101
|
+
const savedPath = FileManager.saveMaterializedPrompt(
|
|
102
|
+
name,
|
|
103
|
+
materializedPrompt
|
|
104
|
+
);
|
|
90
105
|
const relativePath = path.relative(process.cwd(), savedPath);
|
|
91
106
|
const config = FileManager.loadPromptsConfig();
|
|
92
107
|
const lock = FileManager.loadPromptsLock();
|
|
@@ -96,13 +111,23 @@ var addCommand = async (name, options) => {
|
|
|
96
111
|
FileManager.savePromptsLock(lock);
|
|
97
112
|
spinner.succeed();
|
|
98
113
|
const displayPath = relativePath.startsWith("./") ? relativePath : `./${relativePath}`;
|
|
99
|
-
console.log(
|
|
114
|
+
console.log(
|
|
115
|
+
chalk.green(
|
|
116
|
+
`\u2713 Pulled ${chalk.cyan(`${name}@${version}`)} ${chalk.gray(
|
|
117
|
+
`(version ${prompt.version})`
|
|
118
|
+
)} \u2192 ${chalk.gray(displayPath)}`
|
|
119
|
+
)
|
|
120
|
+
);
|
|
100
121
|
} catch (error) {
|
|
101
122
|
spinner.fail();
|
|
102
123
|
if (error instanceof PromptsError) {
|
|
103
124
|
console.error(chalk.red(`Error: ${error.message}`));
|
|
104
125
|
} else {
|
|
105
|
-
console.error(
|
|
126
|
+
console.error(
|
|
127
|
+
chalk.red(
|
|
128
|
+
`Error adding prompt: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
129
|
+
)
|
|
130
|
+
);
|
|
106
131
|
}
|
|
107
132
|
process.exit(1);
|
|
108
133
|
}
|
|
@@ -110,7 +135,11 @@ var addCommand = async (name, options) => {
|
|
|
110
135
|
if (error instanceof PromptsError) {
|
|
111
136
|
console.error(chalk.red(`Error: ${error.message}`));
|
|
112
137
|
} else {
|
|
113
|
-
console.error(
|
|
138
|
+
console.error(
|
|
139
|
+
chalk.red(
|
|
140
|
+
`Unexpected error: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
141
|
+
)
|
|
142
|
+
);
|
|
114
143
|
}
|
|
115
144
|
process.exit(1);
|
|
116
145
|
}
|
|
@@ -118,4 +147,4 @@ var addCommand = async (name, options) => {
|
|
|
118
147
|
export {
|
|
119
148
|
addCommand
|
|
120
149
|
};
|
|
121
|
-
//# sourceMappingURL=add-
|
|
150
|
+
//# sourceMappingURL=add-D2WVVKIP.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/commands/add.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport chalk from \"chalk\";\nimport ora from \"ora\";\nimport { FileManager } from \"../utils/fileManager\";\nimport { PromptsError } from \"@/client-sdk/services/prompts\";\nimport { PromptConverter } from \"../utils/promptConverter\";\nimport { ensureProjectInitialized } from \"../utils/init\";\nimport { checkApiKey } from \"../utils/apiKey\";\nimport { LangWatch } from \"@/client-sdk\";\n\ninterface AddOptions {\n version?: string;\n localFile?: string;\n}\n\nconst addLocalFile = async (\n name: string,\n localFilePath: string,\n): Promise<void> => {\n // Validate that the file exists and has the right extension\n if (!fs.existsSync(localFilePath)) {\n console.error(chalk.red(`Error: Local file not found: ${localFilePath}`));\n process.exit(1);\n }\n\n if (!localFilePath.endsWith(\".prompt.yaml\")) {\n console.error(\n chalk.red(`Error: Local file must have .prompt.yaml extension`),\n );\n process.exit(1);\n }\n\n // Load and validate the YAML file\n try {\n FileManager.loadLocalPrompt(localFilePath);\n\n // Ensure project is initialized\n await ensureProjectInitialized();\n\n // Add to prompts.json as a file: dependency\n const promptsConfig = FileManager.loadPromptsConfig();\n promptsConfig.prompts[name] = `file:${localFilePath}`;\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: localFilePath, // Store the original file path\n };\n FileManager.savePromptsLock(lock);\n\n console.log(\n chalk.green(\n `✓ Added local prompt: ${chalk.cyan(name)} → ${chalk.gray(\n localFilePath,\n )}`,\n ),\n );\n } catch (error) {\n console.error(chalk.red(\"Error loading local prompt file:\"));\n console.error(\n chalk.red(error instanceof Error ? error.message : String(error)),\n );\n process.exit(1);\n }\n};\n\nexport const addCommand = async (\n name: string,\n options: AddOptions,\n): 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 // Handle local file addition\n if (options.localFile) {\n await addLocalFile(name, options.localFile);\n return;\n }\n\n // Check API key before doing anything else\n checkApiKey();\n\n const langwatch = new LangWatch();\n const version = options.version ?? \"latest\";\n\n // Fetch and materialize the prompt (like sync does for individual prompts)\n const spinner = ora(\n `Adding ${chalk.cyan(`${name}@${version}`)}...`,\n ).start();\n\n try {\n // Fetch the prompt from the API\n const prompt = await langwatch.prompts.get(name);\n\n if (!prompt) {\n spinner.fail();\n console.error(chalk.red(`Error: Prompt \"${name}\" not found`));\n process.exit(1);\n }\n\n // Stop spinner before any user input prompts\n spinner.stop();\n\n // Ensure project is initialized (prompts.json, lock file, directories)\n await ensureProjectInitialized();\n\n // Restart spinner for the actual work\n spinner.start(`Adding ${chalk.cyan(`${name}@${version}`)}...`);\n\n // Convert to MaterializedPrompt format and save\n const materializedPrompt = PromptConverter.fromApiToMaterialized(prompt);\n const savedPath = FileManager.saveMaterializedPrompt(\n name,\n materializedPrompt,\n );\n const relativePath = path.relative(process.cwd(), savedPath);\n\n // Load existing config and lock, add the new dependency\n const config = FileManager.loadPromptsConfig();\n const lock = FileManager.loadPromptsLock();\n\n config.prompts[name] = version;\n FileManager.updateLockEntry(lock, name, materializedPrompt, savedPath);\n\n // Save the updated config and lock\n FileManager.savePromptsConfig(config);\n FileManager.savePromptsLock(lock);\n\n spinner.succeed();\n\n // Show what was done (add ./ prefix for consistency)\n const displayPath = relativePath.startsWith(\"./\")\n ? relativePath\n : `./${relativePath}`;\n console.log(\n chalk.green(\n `✓ Pulled ${chalk.cyan(`${name}@${version}`)} ${chalk.gray(\n `(version ${prompt.version})`,\n )} → ${chalk.gray(displayPath)}`,\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 adding prompt: ${\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":"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","names":[]}
|
|
@@ -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 _chunkCAZONSXVjs = require('./chunk-CAZONSXV.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 = _chunkCAZONSXVjs.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 = _chunkCAZONSXVjs.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 = _chunkCAZONSXVjs.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
|
+
_chunkCAZONSXVjs.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 = _chunkCAZONSXVjs.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 = _chunkCAZONSXVjs.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 = _chunkCAZONSXVjs.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
|
+
_chunkCAZONSXVjs.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-7OZKH5K2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-7OZKH5K2.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-7OZKH5K2.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"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-AZHZ4NB4.js","../src/cli/types.ts"],"names":[],"mappings":"AAAA;ACAA,0BAAkB;AAcX,IAAM,wBAAA,EAA0B,MAAA,CACpC,MAAA,CAAO;AAAA,EACN,KAAA,EAAO,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,GAAA,CAAI,CAAA,EAAG,mBAAmB,CAAA;AAAA,EAC5C,eAAA,EAAiB,MAAA,CACd,MAAA,CAAO;AAAA,IACN,WAAA,EAAa,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS,CAAA;AAAA,IACjC,UAAA,EAAY,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,QAAA,CAAS;AAAA,EAClC,CAAC,CAAA,CACA,KAAA,CAAM,CAAA,CACN,QAAA,CAAS,CAAA;AAAA,EACZ,QAAA,EAAU,MAAA,CACP,KAAA;AAAA,IACC,MAAA,CACG,MAAA,CAAO;AAAA,MACN,IAAA,EAAM,MAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,MAAA,EAAQ,WAAW,CAAC,CAAA;AAAA,MAC5C,OAAA,EAAS,MAAA,CAAE,MAAA,CAAO,CAAA,CAAE,GAAA,CAAI,CAAA,EAAG,iCAAiC;AAAA,IAC9D,CAAC,CAAA,CACA,KAAA,CAAM;AAAA,EACX,CAAA,CACC,GAAA,CAAI,CAAA,EAAG,kCAAkC;AAC9C,CAAC,CAAA,CACA,KAAA,CAAM,CAAA;AA0CF,IAAM,gBAAA,EAAkB,CAC7B,IAAA,EAAA,GACsC;AACtC,EAAA,MAAM,QAAA,EAAU,IAAA,CAAK,WAAA,CAAY,GAAG,CAAA;AACpC,EAAA,GAAA,CAAI,QAAA,IAAY,CAAA,CAAA,EAAI;AAClB,IAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,OAAA,EAAS,SAAS,CAAA;AAAA,EACzC;AAEA,EAAA,MAAM,KAAA,EAAO,IAAA,CAAK,KAAA,CAAM,CAAA,EAAG,OAAO,CAAA;AAClC,EAAA,MAAM,QAAA,EAAU,IAAA,CAAK,KAAA,CAAM,QAAA,EAAU,CAAC,CAAA;AAEtC,EAAA,GAAA,CAAI,CAAC,KAAA,GAAQ,CAAC,OAAA,EAAS;AACrB,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,CAAA,8BAAA,EAAiC,IAAI,CAAA,0CAAA;AAAA,IACvC,CAAA;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,QAAQ,CAAA;AACzB,CAAA;ADlEA;AACA;AACE;AACA;AACF,qGAAC","file":"/home/runner/work/langwatch/langwatch/typescript-sdk/dist/chunk-AZHZ4NB4.js","sourcesContent":[null,"import { z } from \"zod\";\n\nexport type PromptDependency =\n | string\n | {\n version?: string;\n file?: string;\n };\n\nexport type PromptsConfig = {\n prompts: Record<string, PromptDependency>;\n};\n\n// Zod schema for local prompt config with permissive validation\nexport const localPromptConfigSchema = z\n .object({\n model: z.string().min(1, \"Model is required\"),\n modelParameters: z\n .object({\n temperature: z.number().optional(),\n max_tokens: z.number().optional(),\n })\n .loose()\n .optional(),\n messages: z\n .array(\n z\n .object({\n role: z.enum([\"system\", \"user\", \"assistant\"]),\n content: z.string().min(1, \"Message content cannot be empty\"),\n })\n .loose(),\n )\n .min(1, \"At least one message is required\"),\n })\n .loose();\n\nexport type LocalPromptConfig = z.infer<typeof localPromptConfigSchema>;\n\nexport type MaterializedPrompt = {\n id: string;\n name: string;\n version: number;\n versionId: string;\n model: string;\n messages: Array<{\n role: \"system\" | \"user\" | \"assistant\";\n content: string;\n }>;\n prompt: string;\n temperature?: number;\n maxTokens?: number;\n inputs?: any;\n outputs?: any;\n updatedAt: string;\n};\n\nexport type SyncResult = {\n fetched: Array<{ name: string; version: number; versionSpec: string }>;\n pushed: Array<{ name: string; version: number }>;\n unchanged: string[];\n cleaned: string[];\n errors: Array<{ name: string; error: string }>;\n};\n\nexport type PromptsLockEntry = {\n version: number;\n versionId: string;\n materialized: string;\n};\n\nexport type PromptsLock = {\n lockfileVersion: number;\n prompts: Record<string, PromptsLockEntry>;\n};\n\n// Parse npm-style version specifications like \"foo@latest\" or \"bar@5\"\nexport const parsePromptSpec = (\n spec: string,\n): { name: string; version: string } => {\n const atIndex = spec.lastIndexOf(\"@\");\n if (atIndex === -1) {\n return { name: spec, version: \"latest\" };\n }\n\n const name = spec.slice(0, atIndex);\n const version = spec.slice(atIndex + 1);\n\n if (!name || !version) {\n throw new Error(\n `Invalid prompt specification: ${spec}. Use format 'name@version' or just 'name'`,\n );\n }\n\n return { name, version };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/cli/types.ts"],"sourcesContent":["import { z } from \"zod\";\n\nexport type PromptDependency =\n | string\n | {\n version?: string;\n file?: string;\n };\n\nexport type PromptsConfig = {\n prompts: Record<string, PromptDependency>;\n};\n\n// Zod schema for local prompt config with permissive validation\nexport const localPromptConfigSchema = z\n .object({\n model: z.string().min(1, \"Model is required\"),\n modelParameters: z\n .object({\n temperature: z.number().optional(),\n max_tokens: z.number().optional(),\n })\n .loose()\n .optional(),\n messages: z\n .array(\n z\n .object({\n role: z.enum([\"system\", \"user\", \"assistant\"]),\n content: z.string().min(1, \"Message content cannot be empty\"),\n })\n .loose(),\n )\n .min(1, \"At least one message is required\"),\n })\n .loose();\n\nexport type LocalPromptConfig = z.infer<typeof localPromptConfigSchema>;\n\nexport type MaterializedPrompt = {\n id: string;\n name: string;\n version: number;\n versionId: string;\n model: string;\n messages: Array<{\n role: \"system\" | \"user\" | \"assistant\";\n content: string;\n }>;\n prompt: string;\n temperature?: number;\n maxTokens?: number;\n inputs?: any;\n outputs?: any;\n updatedAt: string;\n};\n\nexport type SyncResult = {\n fetched: Array<{ name: string; version: number; versionSpec: string }>;\n pushed: Array<{ name: string; version: number }>;\n unchanged: string[];\n cleaned: string[];\n errors: Array<{ name: string; error: string }>;\n};\n\nexport type PromptsLockEntry = {\n version: number;\n versionId: string;\n materialized: string;\n};\n\nexport type PromptsLock = {\n lockfileVersion: number;\n prompts: Record<string, PromptsLockEntry>;\n};\n\n// Parse npm-style version specifications like \"foo@latest\" or \"bar@5\"\nexport const parsePromptSpec = (\n spec: string,\n): { name: string; version: string } => {\n const atIndex = spec.lastIndexOf(\"@\");\n if (atIndex === -1) {\n return { name: spec, version: \"latest\" };\n }\n\n const name = spec.slice(0, atIndex);\n const version = spec.slice(atIndex + 1);\n\n if (!name || !version) {\n throw new Error(\n `Invalid prompt specification: ${spec}. Use format 'name@version' or just 'name'`,\n );\n }\n\n return { name, version };\n};\n"],"mappings":";AAAA,SAAS,SAAS;AAcX,IAAM,0BAA0B,EACpC,OAAO;AAAA,EACN,OAAO,EAAE,OAAO,EAAE,IAAI,GAAG,mBAAmB;AAAA,EAC5C,iBAAiB,EACd,OAAO;AAAA,IACN,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,IACjC,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,CAAC,EACA,MAAM,EACN,SAAS;AAAA,EACZ,UAAU,EACP;AAAA,IACC,EACG,OAAO;AAAA,MACN,MAAM,EAAE,KAAK,CAAC,UAAU,QAAQ,WAAW,CAAC;AAAA,MAC5C,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,iCAAiC;AAAA,IAC9D,CAAC,EACA,MAAM;AAAA,EACX,EACC,IAAI,GAAG,kCAAkC;AAC9C,CAAC,EACA,MAAM;AA0CF,IAAM,kBAAkB,CAC7B,SACsC;AACtC,QAAM,UAAU,KAAK,YAAY,GAAG;AACpC,MAAI,YAAY,IAAI;AAClB,WAAO,EAAE,MAAM,MAAM,SAAS,SAAS;AAAA,EACzC;AAEA,QAAM,OAAO,KAAK,MAAM,GAAG,OAAO;AAClC,QAAM,UAAU,KAAK,MAAM,UAAU,CAAC;AAEtC,MAAI,CAAC,QAAQ,CAAC,SAAS;AACrB,UAAM,IAAI;AAAA,MACR,iCAAiC,IAAI;AAAA,IACvC;AAAA,EACF;AAEA,SAAO,EAAE,MAAM,QAAQ;AACzB;","names":[]}
|
|
@@ -1,9 +1,9 @@
|
|
|
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 _chunkR6FBJN7Kjs = require('./chunk-R6FBJN7K.js');
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
var
|
|
6
|
+
var _chunkAZHZ4NB4js = require('./chunk-AZHZ4NB4.js');
|
|
7
7
|
|
|
8
8
|
// src/cli/utils/fileManager.ts
|
|
9
9
|
var _fs = require('fs'); var fs = _interopRequireWildcard(_fs);
|
|
@@ -99,7 +99,7 @@ var FileManager = class {
|
|
|
99
99
|
try {
|
|
100
100
|
const content = fs.readFileSync(fullPath, "utf-8");
|
|
101
101
|
const rawData = yaml.load(content);
|
|
102
|
-
const result =
|
|
102
|
+
const result = _chunkAZHZ4NB4js.localPromptConfigSchema.safeParse(rawData);
|
|
103
103
|
if (!result.success) {
|
|
104
104
|
const prettyError = result.error.issues.map((issue) => `\u2716 ${issue.message}${issue.path.length > 0 ? `
|
|
105
105
|
\u2192 at ${issue.path.join(".")}` : ""}`).join("\n");
|
|
@@ -127,7 +127,7 @@ ${prettyError}`
|
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
const filePath = path.join(materializedDir, ...parts.slice(0, -1), fileName);
|
|
130
|
-
const yamlContent =
|
|
130
|
+
const yamlContent = _chunkR6FBJN7Kjs.PromptConverter.fromMaterializedToYaml(prompt);
|
|
131
131
|
const yamlString = yaml.dump(yamlContent, {
|
|
132
132
|
lineWidth: -1,
|
|
133
133
|
noRefs: true,
|
|
@@ -239,4 +239,4 @@ FileManager.MATERIALIZED_DIR = ".materialized";
|
|
|
239
239
|
|
|
240
240
|
|
|
241
241
|
exports.FileManager = FileManager;
|
|
242
|
-
//# sourceMappingURL=chunk-
|
|
242
|
+
//# sourceMappingURL=chunk-CAZONSXV.js.map
|