coaiajs 0.4.2 → 0.4.3

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/src/cli.js CHANGED
@@ -4,7 +4,7 @@ import chalk from 'chalk';
4
4
  import { readFileSync, writeFileSync, existsSync } from 'node:fs';
5
5
  import { resolve } from 'node:path';
6
6
  import { tash, fetch as redisFetch, disconnect as redisDisconnect } from './redis.js';
7
- import { readConfig } from './config.js';
7
+ import { loadConfig } from './config.js';
8
8
  import { llm as llmCall, transcribeAudio, abstractProcess } from './llm.js';
9
9
  import { listIssues, getIssue } from './github.js';
10
10
  import { createEnvironment, findEnvironment } from './environment.js';
@@ -1169,7 +1169,7 @@ async function main() {
1169
1169
  setColorEnabled(false);
1170
1170
  }
1171
1171
  if (opts.env) {
1172
- readConfig(opts.env);
1172
+ loadConfig(opts.env);
1173
1173
  }
1174
1174
  });
1175
1175
  registerRootCommands(program);
@@ -11,6 +11,8 @@ export declare function mergeConfigs(base: Partial<CoaiaConfig>, override: Parti
11
11
  */
12
12
  export declare function readConfig(envPath?: string): CoaiaConfig;
13
13
  export declare function getConfig(): CoaiaConfig;
14
+ /** Read an env file and make the resulting config the active singleton. */
15
+ export declare function loadConfig(envPath?: string): CoaiaConfig;
14
16
  /** Reset singleton (useful in tests). */
15
17
  export declare function resetConfig(): void;
16
18
  export declare const config: CoaiaConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe9C,qDAAqD;AACrD,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAYlD;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAYvD;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,EAC1B,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,GAC7B,WAAW,CAsBb;AA2ED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAexD;AAKD,wBAAgB,SAAS,IAAI,WAAW,CAKvC;AAED,yCAAyC;AACzC,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,eAAO,MAAM,MAAM,aAiBjB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAe9C,qDAAqD;AACrD,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CAYlD;AAED,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAYvD;AAED,iEAAiE;AACjE,wBAAgB,YAAY,CAC1B,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,EAC1B,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC,GAC7B,WAAW,CAsBb;AA2ED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAqBxD;AAKD,wBAAgB,SAAS,IAAI,WAAW,CAKvC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,WAAW,CAGxD;AAED,yCAAyC;AACzC,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED,eAAO,MAAM,MAAM,aAiBjB,CAAC"}
@@ -130,9 +130,12 @@ function envOverrides() {
130
130
  * Priority: env vars > .env file > coaia.json > defaults.
131
131
  */
132
132
  export function readConfig(envPath) {
133
- // 1. Load .env (lowest priority file source)
133
+ // An explicitly requested env file wins over ambient shell variables;
134
+ // implicit discovery stays lowest priority.
135
+ const explicit = Boolean(envPath ?? process.env['COAIAJS_ENV_PATH'] ?? process.env['COAIAPY_ENV_PATH']);
136
+ // 1. Load .env
134
137
  for (const dotenvPath of findEnvFiles(envPath)) {
135
- dotenv.config({ path: dotenvPath, override: false });
138
+ dotenv.config({ path: dotenvPath, override: explicit });
136
139
  }
137
140
  // 2. Load coaia.json
138
141
  const configPath = findExistingConfig();
@@ -150,6 +153,11 @@ export function getConfig() {
150
153
  }
151
154
  return _config;
152
155
  }
156
+ /** Read an env file and make the resulting config the active singleton. */
157
+ export function loadConfig(envPath) {
158
+ _config = readConfig(envPath);
159
+ return _config;
160
+ }
153
161
  /** Reset singleton (useful in tests). */
154
162
  export function resetConfig() {
155
163
  _config = null;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { findExistingConfig, mergeConfigs, readConfig, getConfig, resetConfig, config, } from './config.js';
1
+ export { findExistingConfig, mergeConfigs, readConfig, getConfig, loadConfig, resetConfig, config, } from './config.js';
2
2
  export { getClient as getRedisClient, tash, fetch, del, keys, exists, disconnect, resetClient as resetRedisClient, } from './redis.js';
3
3
  export { llm, transcribeAudio, generateImage, abstractProcess, resetClient as resetLlmClient, } from './llm.js';
4
4
  export { synthesize, resetClient as resetAudioClient, } from './audio.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,SAAS,IAAI,cAAc,EAC3B,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,GAAG,EACH,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,IAAI,cAAc,GAC9B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,WAAW,IAAI,iBAAiB,GACjC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,YAAY,EACV,MAAM,EACN,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,SAAS,IAAI,cAAc,EAC3B,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,GAAG,EACH,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,IAAI,cAAc,GAC9B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,WAAW,IAAI,iBAAiB,GACjC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAEhD,YAAY,EACV,MAAM,EACN,cAAc,EACd,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,YAAY,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // coaiajs/src/index.ts — Published package entry point
2
- export { findExistingConfig, mergeConfigs, readConfig, getConfig, resetConfig, config, } from './config.js';
2
+ export { findExistingConfig, mergeConfigs, readConfig, getConfig, loadConfig, resetConfig, config, } from './config.js';
3
3
  export { getClient as getRedisClient, tash, fetch, del, keys, exists, disconnect, resetClient as resetRedisClient, } from './redis.js';
4
4
  export { llm, transcribeAudio, generateImage, abstractProcess, resetClient as resetLlmClient, } from './llm.js';
5
5
  export { synthesize, resetClient as resetAudioClient, } from './audio.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,SAAS,IAAI,cAAc,EAC3B,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,GAAG,EACH,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,IAAI,cAAc,GAC9B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,WAAW,IAAI,iBAAiB,GACjC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,uDAAuD;AAEvD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,WAAW,EACX,MAAM,GACP,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,SAAS,IAAI,cAAc,EAC3B,IAAI,EACJ,KAAK,EACL,GAAG,EACH,IAAI,EACJ,MAAM,EACN,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,GAAG,EACH,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,IAAI,cAAc,GAC9B,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,UAAU,EACV,WAAW,IAAI,gBAAgB,GAChC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,WAAW,IAAI,iBAAiB,GACjC,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC"}
@@ -11,6 +11,7 @@ export { createScore, applyScoreToTrace, createScoreForTarget, listScores, listS
11
11
  export type { ScoreFilters } from './scores.js';
12
12
  export { listComments, getComment, createComment } from './comments.js';
13
13
  export type { CommentFilters } from './comments.js';
14
- export { uploadAndAttachMedia, getMedia, detectContentType, formatMediaDisplay, } from './media.js';
14
+ export { uploadMediaBytes, uploadAndAttachMedia, getMedia, detectContentType, formatMediaDisplay, } from './media.js';
15
+ export type { UploadMediaBytesInput, UploadMediaBytesResult, MediaSource } from './media.js';
15
16
  export { listProjects } from './projects.js';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/langfuse/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/F,YAAY,EACV,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,GACjF,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EACvC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAC5C,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,GACzD,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EACjE,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EACL,WAAW,EAAE,SAAS,EAAE,YAAY,EACpC,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,GAC9D,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAC5E,mBAAmB,EAAE,0BAA0B,GAChD,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAChE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EACnD,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAChB,iBAAiB,EAAE,aAAa,EAChC,iBAAiB,EAAE,uBAAuB,GAC3C,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EACL,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,GACtE,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/langfuse/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/F,YAAY,EACV,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,GACjF,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EACvC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAC5C,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,GACzD,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EACjE,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EACL,WAAW,EAAE,SAAS,EAAE,YAAY,EACpC,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,GAC9D,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAC5E,mBAAmB,EAAE,0BAA0B,GAChD,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAChE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EACnD,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAChB,iBAAiB,EAAE,aAAa,EAChC,iBAAiB,EAAE,uBAAuB,GAC3C,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EACL,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,GACxF,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7F,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -6,6 +6,6 @@ export { listPrompts, getPrompt, createPrompt, formatPromptsTable, formatPromptM
6
6
  export { listDatasets, getDataset, createDataset, listDatasetItems, createDatasetItem, formatDatasetsTable, formatDatasetForFinetuning, } from './datasets.js';
7
7
  export { createScore, applyScoreToTrace, createScoreForTarget, listScores, listScoreConfigs, getScoreConfig, createScoreConfig, exportScoreConfigs, importScoreConfigs, applyScoreConfig, getBuiltInPresets, installPreset, formatScoresTable, formatScoreConfigsTable, } from './scores.js';
8
8
  export { listComments, getComment, createComment } from './comments.js';
9
- export { uploadAndAttachMedia, getMedia, detectContentType, formatMediaDisplay, } from './media.js';
9
+ export { uploadMediaBytes, uploadAndAttachMedia, getMedia, detectContentType, formatMediaDisplay, } from './media.js';
10
10
  export { listProjects } from './projects.js';
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/langfuse/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK/F,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EACvC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAC5C,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,GACzD,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EACjE,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,WAAW,EAAE,SAAS,EAAE,YAAY,EACpC,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,GAC9D,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAC5E,mBAAmB,EAAE,0BAA0B,GAChD,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAChE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EACnD,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAChB,iBAAiB,EAAE,aAAa,EAChC,iBAAiB,EAAE,uBAAuB,GAC3C,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGxE,OAAO,EACL,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,GACtE,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/langfuse/index.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAEhD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAK/F,OAAO,EACL,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EACvC,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAC5C,iBAAiB,EAAE,oBAAoB,EAAE,eAAe,GACzD,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EACjE,wBAAwB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,WAAW,EAAE,SAAS,EAAE,YAAY,EACpC,kBAAkB,EAAE,oBAAoB,EAAE,mBAAmB,GAC9D,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAC5E,mBAAmB,EAAE,0BAA0B,GAChD,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,UAAU,EAChE,gBAAgB,EAAE,cAAc,EAAE,iBAAiB,EACnD,kBAAkB,EAAE,kBAAkB,EACtC,gBAAgB,EAChB,iBAAiB,EAAE,aAAa,EAChC,iBAAiB,EAAE,uBAAuB,GAC3C,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGxE,OAAO,EACL,gBAAgB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,kBAAkB,GACxF,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -1,3 +1,33 @@
1
+ export type MediaSource = 'bytes' | 'file' | 'base64_data_uri';
2
+ export interface UploadMediaBytesInput {
3
+ data: Uint8Array;
4
+ contentType: string;
5
+ fileName?: string;
6
+ traceId?: string;
7
+ observationId?: string;
8
+ datasetId?: string;
9
+ datasetItemId?: string;
10
+ field?: 'input' | 'output' | 'expectedOutput' | 'metadata';
11
+ source?: MediaSource;
12
+ }
13
+ export interface UploadMediaBytesResult {
14
+ success: boolean;
15
+ mediaId: string;
16
+ mediaToken: string;
17
+ fileName?: string;
18
+ contentType: string;
19
+ contentLength: number;
20
+ sha256Hash: string;
21
+ traceId?: string;
22
+ observationId?: string;
23
+ datasetId?: string;
24
+ datasetItemId?: string;
25
+ field: string;
26
+ uploadTimeMs: number;
27
+ alreadyUploaded: boolean;
28
+ }
29
+ /** Upload exact bytes through Langfuse's presigned object-storage flow. */
30
+ export declare function uploadMediaBytes(params: UploadMediaBytesInput): Promise<UploadMediaBytesResult>;
1
31
  export declare function uploadAndAttachMedia(params: {
2
32
  filePath: string;
3
33
  traceId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/langfuse/media.ts"],"names":[],"mappings":"AAyCA,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyFlB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI/D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiCxD"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../src/langfuse/media.ts"],"names":[],"mappings":"AAwDA,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,iBAAiB,CAAC;AAE/D,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,UAAU,CAAC;IAC3D,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,2EAA2E;AAC3E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CA+ErG;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI/D;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAiCxD"}
@@ -1,23 +1,31 @@
1
1
  // coaiajs/src/langfuse/media.ts — Media upload operations
2
2
  // Port of cofuse.py media functions
3
- import { readFileSync, statSync } from 'node:fs';
3
+ import { readFileSync } from 'node:fs';
4
4
  import { createHash } from 'node:crypto';
5
5
  import { basename, extname } from 'node:path';
6
6
  import { getClient } from './client.js';
7
7
  const SUPPORTED_CONTENT_TYPES = new Set([
8
- 'image/jpeg', 'image/png', 'image/gif', 'image/webp', 'image/svg+xml',
9
- 'image/tiff', 'image/bmp', 'image/avif',
10
- 'audio/mpeg', 'audio/mp4', 'audio/wav', 'audio/ogg', 'audio/webm', 'audio/flac',
11
- 'video/mp4', 'video/webm', 'video/ogg', 'video/quicktime',
12
- 'application/pdf',
13
- 'text/plain', 'text/html', 'text/css', 'text/csv',
14
- 'application/json', 'application/xml',
8
+ 'image/png', 'image/jpeg', 'image/jpg', 'image/webp', 'image/gif', 'image/svg+xml',
9
+ 'image/tiff', 'image/bmp', 'image/avif', 'image/heic',
10
+ 'audio/mpeg', 'audio/mp3', 'audio/wav', 'audio/ogg', 'audio/oga', 'audio/aac',
11
+ 'audio/mp4', 'audio/flac', 'audio/opus', 'audio/webm',
12
+ 'video/mp4', 'video/webm', 'video/ogg', 'video/mpeg', 'video/quicktime',
13
+ 'video/x-msvideo', 'video/x-matroska',
14
+ 'text/plain', 'text/html', 'text/css', 'text/csv', 'text/markdown',
15
+ 'text/x-python', 'text/x-typescript',
16
+ 'application/javascript', 'application/x-yaml', 'application/pdf', 'application/msword',
17
+ 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
18
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
19
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
20
+ 'application/zip', 'application/json', 'application/xml', 'application/octet-stream',
21
+ 'application/rtf', 'application/x-ndjson', 'application/vnd.apache.parquet',
22
+ 'application/gzip', 'application/x-tar', 'application/x-7z-compressed',
15
23
  ]);
16
24
  const EXTENSION_MAP = {
17
25
  '.jpg': 'image/jpeg', '.jpeg': 'image/jpeg', '.png': 'image/png',
18
26
  '.gif': 'image/gif', '.webp': 'image/webp', '.svg': 'image/svg+xml',
19
27
  '.tiff': 'image/tiff', '.tif': 'image/tiff', '.bmp': 'image/bmp',
20
- '.avif': 'image/avif',
28
+ '.avif': 'image/avif', '.heic': 'image/heic',
21
29
  '.mp3': 'audio/mpeg', '.m4a': 'audio/mp4', '.wav': 'audio/wav',
22
30
  '.ogg': 'audio/ogg', '.flac': 'audio/flac', '.weba': 'audio/webm',
23
31
  '.mp4': 'video/mp4', '.webm': 'video/webm', '.ogv': 'video/ogg',
@@ -25,7 +33,14 @@ const EXTENSION_MAP = {
25
33
  '.pdf': 'application/pdf',
26
34
  '.txt': 'text/plain', '.html': 'text/html', '.htm': 'text/html',
27
35
  '.css': 'text/css', '.csv': 'text/csv',
28
- '.json': 'application/json', '.xml': 'application/xml',
36
+ '.json': 'application/json', '.xml': 'application/xml', '.md': 'text/markdown',
37
+ '.py': 'text/x-python', '.ts': 'text/x-typescript', '.yaml': 'application/x-yaml', '.yml': 'application/x-yaml',
38
+ '.doc': 'application/msword', '.xls': 'application/vnd.ms-excel',
39
+ '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
40
+ '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
41
+ '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
42
+ '.zip': 'application/zip', '.gz': 'application/gzip', '.tar': 'application/x-tar',
43
+ '.7z': 'application/x-7z-compressed', '.parquet': 'application/vnd.apache.parquet',
29
44
  };
30
45
  const TRUSTED_DOMAINS = [
31
46
  'amazonaws.com',
@@ -34,79 +49,98 @@ const TRUSTED_DOMAINS = [
34
49
  'blob.core.windows.net',
35
50
  'r2.cloudflarestorage.com',
36
51
  ];
37
- export async function uploadAndAttachMedia(params) {
38
- const { filePath, traceId, observationId } = params;
52
+ /** Upload exact bytes through Langfuse's presigned object-storage flow. */
53
+ export async function uploadMediaBytes(params) {
54
+ const data = Buffer.from(params.data);
39
55
  const field = params.field ?? 'input';
40
- // Detect content type
41
- const contentType = params.contentType ?? detectContentType(filePath);
42
- if (!SUPPORTED_CONTENT_TYPES.has(contentType)) {
43
- return JSON.stringify({ error: `Unsupported content type: ${contentType}` });
56
+ const source = params.source ?? 'bytes';
57
+ if (!data.length)
58
+ throw new Error('Media data must not be empty');
59
+ if (!SUPPORTED_CONTENT_TYPES.has(params.contentType)) {
60
+ throw new Error(`Unsupported content type: ${params.contentType}`);
44
61
  }
45
- // Calculate file info
46
- const stat = statSync(filePath);
47
- const fileData = readFileSync(filePath);
48
- const sha256 = createHash('sha256').update(fileData).digest('base64');
49
- const client = getClient();
50
- // Step 1: Get presigned upload URL
51
- const uploadReqData = {
52
- traceId,
53
- contentType,
54
- contentLength: stat.size,
55
- sha256Hash: sha256,
62
+ const hasTraceContext = Boolean(params.traceId) && !params.datasetId && !params.datasetItemId;
63
+ const hasDatasetContext = Boolean(params.datasetId && params.datasetItemId) && !params.traceId && !params.observationId;
64
+ if (!hasTraceContext && !hasDatasetContext) {
65
+ throw new Error('Provide traceId (optionally observationId) or both datasetId and datasetItemId');
66
+ }
67
+ if (params.observationId && !params.traceId) {
68
+ throw new Error('observationId requires traceId');
69
+ }
70
+ const sha256Hash = createHash('sha256').update(data).digest('base64');
71
+ const uploadRequest = {
72
+ contentType: params.contentType,
73
+ contentLength: data.byteLength,
74
+ sha256Hash,
56
75
  field,
57
76
  };
58
- if (observationId)
59
- uploadReqData.observationId = observationId;
60
- const uploadInfo = await client.request('POST', '/api/public/media', uploadReqData);
61
- const uploadUrl = uploadInfo.uploadUrl;
62
- const mediaId = uploadInfo.mediaId;
63
- if (!uploadUrl || !mediaId) {
64
- return JSON.stringify({ error: 'Failed to get upload URL', detail: uploadInfo });
65
- }
66
- // Step 2: Validate upload URL domain
67
- const url = new URL(uploadUrl);
68
- if (!isTrustedDomain(url.hostname)) {
69
- return JSON.stringify({
70
- error: `Security: Upload URL domain '${url.hostname}' is not trusted`,
77
+ if (params.traceId)
78
+ uploadRequest.traceId = params.traceId;
79
+ if (params.observationId)
80
+ uploadRequest.observationId = params.observationId;
81
+ if (params.datasetId)
82
+ uploadRequest.datasetId = params.datasetId;
83
+ if (params.datasetItemId)
84
+ uploadRequest.datasetItemId = params.datasetItemId;
85
+ const client = getClient();
86
+ const uploadInfo = await client.request('POST', '/api/public/media', uploadRequest);
87
+ const mediaId = typeof uploadInfo.mediaId === 'string' ? uploadInfo.mediaId : '';
88
+ const uploadUrl = typeof uploadInfo.uploadUrl === 'string' ? uploadInfo.uploadUrl : undefined;
89
+ if (!mediaId)
90
+ throw new Error('Langfuse did not return a mediaId');
91
+ let uploadTimeMs = 0;
92
+ if (uploadUrl) {
93
+ validateUploadUrl(uploadUrl);
94
+ const startTime = Date.now();
95
+ const uploadResponse = await fetch(uploadUrl, {
96
+ method: 'PUT',
97
+ headers: {
98
+ 'Content-Type': params.contentType,
99
+ 'Content-Length': String(data.byteLength),
100
+ 'x-amz-checksum-sha256': sha256Hash,
101
+ },
102
+ body: data,
71
103
  });
72
- }
73
- // Step 3: Upload to presigned URL
74
- const startTime = Date.now();
75
- const uploadResponse = await fetch(uploadUrl, {
76
- method: 'PUT',
77
- headers: {
78
- 'Content-Type': contentType,
79
- 'x-amz-checksum-sha256': sha256,
80
- },
81
- body: fileData,
82
- });
83
- const uploadTimeMs = Date.now() - startTime;
84
- // Step 4: Patch status
85
- await client.request('PATCH', `/api/public/media/${mediaId}`, {
86
- uploadHttpStatus: uploadResponse.status,
87
- uploadTimeMs,
88
- uploadedAt: new Date().toISOString(),
89
- });
90
- if (!uploadResponse.ok) {
91
- return JSON.stringify({
92
- error: `Upload failed: ${uploadResponse.status}`,
93
- mediaId,
104
+ uploadTimeMs = Date.now() - startTime;
105
+ const uploadHttpError = uploadResponse.ok ? undefined : (await uploadResponse.text()).slice(0, 1000);
106
+ await client.request('PATCH', `/api/public/media/${mediaId}`, {
107
+ uploadHttpStatus: uploadResponse.status,
108
+ uploadHttpError,
109
+ uploadTimeMs,
110
+ uploadedAt: new Date().toISOString(),
94
111
  });
112
+ if (!uploadResponse.ok) {
113
+ throw new Error(`Media upload failed with HTTP ${uploadResponse.status}: ${uploadHttpError ?? ''}`.trim());
114
+ }
95
115
  }
96
- // Build media token
97
- const token = `@@@langfuseMedia:type=${contentType}|id=${mediaId}|source=file@@@`;
98
- return JSON.stringify({
116
+ return {
99
117
  success: true,
100
118
  mediaId,
101
- fileName: basename(filePath),
102
- contentType,
103
- contentLength: stat.size,
104
- traceId,
119
+ mediaToken: `@@@langfuseMedia:type=${params.contentType}|id=${mediaId}|source=${source}@@@`,
120
+ fileName: params.fileName,
121
+ contentType: params.contentType,
122
+ contentLength: data.byteLength,
123
+ sha256Hash,
124
+ traceId: params.traceId,
125
+ observationId: params.observationId,
126
+ datasetId: params.datasetId,
127
+ datasetItemId: params.datasetItemId,
105
128
  field,
106
- observationId: observationId ?? null,
107
129
  uploadTimeMs,
108
- mediaToken: token,
109
- }, null, 2);
130
+ alreadyUploaded: !uploadUrl,
131
+ };
132
+ }
133
+ export async function uploadAndAttachMedia(params) {
134
+ const result = await uploadMediaBytes({
135
+ data: readFileSync(params.filePath),
136
+ fileName: basename(params.filePath),
137
+ contentType: params.contentType ?? detectContentType(params.filePath),
138
+ traceId: params.traceId,
139
+ observationId: params.observationId,
140
+ field: normalizeMediaField(params.field),
141
+ source: 'file',
142
+ });
143
+ return JSON.stringify(result, null, 2);
110
144
  }
111
145
  export async function getMedia(mediaId) {
112
146
  const client = getClient();
@@ -156,12 +190,29 @@ export function formatMediaDisplay(json) {
156
190
  }
157
191
  }
158
192
  // ─── Helpers ────────────────────────────────────────────────────────
193
+ function normalizeMediaField(value) {
194
+ const field = value ?? 'input';
195
+ if (field === 'input' || field === 'output' || field === 'expectedOutput' || field === 'metadata')
196
+ return field;
197
+ throw new Error(`Unsupported media field: ${field}`);
198
+ }
199
+ function validateUploadUrl(uploadUrl) {
200
+ const url = new URL(uploadUrl);
201
+ const allowHttp = process.env['COAIA_MEDIA_ALLOW_HTTP'] === 'true';
202
+ if (url.protocol !== 'https:' && !(allowHttp && url.protocol === 'http:')) {
203
+ throw new Error(`Security: Upload URL protocol '${url.protocol}' is not allowed`);
204
+ }
205
+ if (!isTrustedDomain(url.hostname)) {
206
+ throw new Error(`Security: Upload URL domain '${url.hostname}' is not trusted`);
207
+ }
208
+ }
159
209
  function isTrustedDomain(hostname) {
210
+ const configured = (process.env['COAIA_MEDIA_UPLOAD_HOSTS'] ?? '')
211
+ .split(',')
212
+ .map((domain) => domain.trim().toLowerCase())
213
+ .filter(Boolean);
214
+ const domains = [...TRUSTED_DOMAINS, ...configured];
160
215
  const lower = hostname.toLowerCase();
161
- for (const domain of TRUSTED_DOMAINS) {
162
- if (lower === domain || lower.endsWith(`.${domain}`))
163
- return true;
164
- }
165
- return false;
216
+ return domains.some((domain) => lower === domain || lower.endsWith(`.${domain}`));
166
217
  }
167
218
  //# sourceMappingURL=media.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/langfuse/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/langfuse/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env node
2
+ import { type Server } from 'node:http';
3
+ import { type UploadMediaBytesResult } from './langfuse/media.js';
4
+ export interface OpenAIFileReference {
5
+ name: string;
6
+ id: string;
7
+ mime_type: string;
8
+ download_link: string;
9
+ }
10
+ export interface MediaUploadProxyRequest {
11
+ openaiFileIdRefs: unknown[];
12
+ traceId?: string;
13
+ observationId?: string;
14
+ datasetId?: string;
15
+ datasetItemId?: string;
16
+ field?: 'input' | 'output' | 'expectedOutput' | 'metadata';
17
+ }
18
+ export interface MediaUploadProxyOptions {
19
+ apiKey?: string;
20
+ maxFileBytes?: number;
21
+ maxBodyBytes?: number;
22
+ openAIFileHosts?: string[];
23
+ }
24
+ export interface MediaUploadProxyResult extends UploadMediaBytesResult {
25
+ openaiFileId: string;
26
+ }
27
+ /** Download one Custom GPT conversation file and complete the Langfuse media upload flow. */
28
+ export declare function uploadOpenAIFileToLangfuse(input: MediaUploadProxyRequest, options?: MediaUploadProxyOptions): Promise<MediaUploadProxyResult>;
29
+ /** Create the small HTTP service used by the companion Custom GPT action spec. */
30
+ export declare function createMediaUploadProxyServer(options?: MediaUploadProxyOptions): Server;
31
+ export declare function startMediaUploadProxy(): Promise<Server>;
32
+ //# sourceMappingURL=media-upload-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media-upload-proxy.d.ts","sourceRoot":"","sources":["../../src/media-upload-proxy.ts"],"names":[],"mappings":";AAIA,OAAO,EAAsC,KAAK,MAAM,EAAuB,MAAM,WAAW,CAAC;AAEjG,OAAO,EAAoB,KAAK,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAMpF,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,gBAAgB,GAAG,UAAU,CAAC;CAC5D;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,6FAA6F;AAC7F,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,uBAAuB,EAC9B,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC,CAmBjC;AAED,kFAAkF;AAClF,wBAAgB,4BAA4B,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CA6B1F;AAmID,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,CAU7D"}