@uploadista/flow-images-replicate 0.1.4-beta.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.cjs +1 -1
  2. package/package.json +6 -6
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@uploadista/core/errors`),l=require(`@uploadista/core/flow`),u=require(`@uploadista/observability`),d=require(`effect`),f=require(`replicate`);f=s(f);const p=(e,t)=>{let n=typeof e==`string`,r=n?e:null,i=n?null:e.credentialProvider,a=n?!1:e.useCredentialProviderService,o=(n?t?.removeBackgroundModelId:e.removeBackgroundModelId)||`lucataco/remove-bg:95fcc2a26d3899cd6c2691c900465aaeff466285a65c14638cc5f36f34befaf1`,s=(n?t?.describeImageModelId:e.describeImageModelId)||`zsxkib/blip-3:499bec581d8f64060fd695ec0c34d7595c6824c4118259aa8b0788e0d2d903e1`,f=e=>r?d.Effect.succeed(r):a?d.Effect.gen(function*(){let t=yield*d.Effect.serviceOption(l.CredentialProvider);if(d.Option.isNone(t))return yield*d.Effect.fail(c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:Error(`Credential provider service not found`)}));{let n=yield*t.value.getCredential({clientId:e.clientId,serviceType:`replicate`});if(typeof n==`object`&&n&&`apiKey`in n&&typeof n.apiKey==`string`)return n.apiKey}return yield*d.Effect.fail(c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:Error(`Invalid credential format from service`)}))}):i?d.Effect.gen(function*(){return(yield*i({...e,serviceType:`replicate`})).apiKey}):d.Effect.fail(c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:Error(`No API credentials configured`)}));return d.Layer.succeed(l.ImageAiPlugin,l.ImageAiPlugin.of({removeBackground:(e,t)=>d.Effect.gen(function*(){let n=yield*f(t);return{outputUrl:(yield*d.Effect.tryPromise({try:async()=>{let t=new t.default({auth:n}),r={image:e};return console.log(`input`,r),await t.run(o,{input:r})},catch:e=>(console.log(`error`,e),c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e}))})).url()}}).pipe((0,u.withOperationSpan)(`ai`,`remove-background`,{"ai.provider":`replicate`,"ai.model":o,"ai.client_id":t.clientId})),describeImage:(e,t)=>d.Effect.gen(function*(){let n=yield*f(t);return yield*d.Effect.logInfo(`[Replicate describeImage] Starting with URL: ${e}`),{description:yield*d.Effect.tryPromise({try:async()=>{let t=new t.default({auth:n});console.log(`[Replicate describeImage] Calling Replicate API with model:`,s);let r=await t.run(s,{input:{image:e,top_k:50,top_p:1,caption:!1,question:`What is shown in the image?`,do_sample:!1,num_beams:1,temperature:1,system_prompt:`A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.`,length_penalty:1,max_new_tokens:768,repetition_penalty:1}});console.log(`[Replicate describeImage] Raw result type:`,typeof r),console.log(`[Replicate describeImage] Raw result:`,JSON.stringify(r,null,2));let i;if(typeof r==`string`)i=r;else if(Array.isArray(r)&&r.length>0)i=typeof r[0]==`string`?r[0]:String(r[0]);else if(r!=null)console.log(`[Replicate describeImage] Fallback: result is not string or array, stringifying`),i=String(r);else throw console.error(`[Replicate describeImage] ERROR: result is null or undefined`),Error(`Replicate returned empty or undefined response for image description. Result was: ${r}`);return console.log(`[Replicate describeImage] Final description:`,i.substring(0,100)),i},catch:e=>(console.error(`[Replicate describeImage] Caught error:`,e),c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e}))})}}).pipe((0,u.withOperationSpan)(`ai`,`describe-image`,{"ai.provider":`replicate`,"ai.model":s,"ai.client_id":t.clientId}))}))};exports.imageAiPlugin=p;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`@uploadista/core/errors`),l=require(`@uploadista/core/flow`),u=require(`@uploadista/observability`),d=require(`effect`),f=require(`replicate`);f=s(f);const p=(e,t)=>{let n=typeof e==`string`,r=n?e:null,i=n?null:e.credentialProvider,a=n?!1:e.useCredentialProviderService,o=(n?t?.removeBackgroundModelId:e.removeBackgroundModelId)||`lucataco/remove-bg:95fcc2a26d3899cd6c2691c900465aaeff466285a65c14638cc5f36f34befaf1`,s=(n?t?.describeImageModelId:e.describeImageModelId)||`zsxkib/blip-3:499bec581d8f64060fd695ec0c34d7595c6824c4118259aa8b0788e0d2d903e1`,p=e=>r?d.Effect.succeed(r):a?d.Effect.gen(function*(){let t=yield*d.Effect.serviceOption(l.CredentialProvider);if(d.Option.isNone(t))return yield*d.Effect.fail(c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:Error(`Credential provider service not found`)}));{let n=yield*t.value.getCredential({clientId:e.clientId,serviceType:`replicate`});if(typeof n==`object`&&n&&`apiKey`in n&&typeof n.apiKey==`string`)return n.apiKey}return yield*d.Effect.fail(c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:Error(`Invalid credential format from service`)}))}):i?d.Effect.gen(function*(){return(yield*i({...e,serviceType:`replicate`})).apiKey}):d.Effect.fail(c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:Error(`No API credentials configured`)}));return d.Layer.succeed(l.ImageAiPlugin,l.ImageAiPlugin.of({removeBackground:(e,t)=>d.Effect.gen(function*(){let n=yield*p(t);return{outputUrl:(yield*d.Effect.tryPromise({try:async()=>{let t=new f.default({auth:n}),r={image:e};return console.log(`input`,r),await t.run(o,{input:r})},catch:e=>(console.log(`error`,e),c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e}))})).url()}}).pipe((0,u.withOperationSpan)(`ai`,`remove-background`,{"ai.provider":`replicate`,"ai.model":o,"ai.client_id":t.clientId})),describeImage:(e,t)=>d.Effect.gen(function*(){let n=yield*p(t);return yield*d.Effect.logInfo(`[Replicate describeImage] Starting with URL: ${e}`),{description:yield*d.Effect.tryPromise({try:async()=>{let t=new f.default({auth:n});console.log(`[Replicate describeImage] Calling Replicate API with model:`,s);let r=await t.run(s,{input:{image:e,top_k:50,top_p:1,caption:!1,question:`What is shown in the image?`,do_sample:!1,num_beams:1,temperature:1,system_prompt:`A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.`,length_penalty:1,max_new_tokens:768,repetition_penalty:1}});console.log(`[Replicate describeImage] Raw result type:`,typeof r),console.log(`[Replicate describeImage] Raw result:`,JSON.stringify(r,null,2));let i;if(typeof r==`string`)i=r;else if(Array.isArray(r)&&r.length>0)i=typeof r[0]==`string`?r[0]:String(r[0]);else if(r!=null)console.log(`[Replicate describeImage] Fallback: result is not string or array, stringifying`),i=String(r);else throw console.error(`[Replicate describeImage] ERROR: result is null or undefined`),Error(`Replicate returned empty or undefined response for image description. Result was: ${r}`);return console.log(`[Replicate describeImage] Final description:`,i.substring(0,100)),i},catch:e=>(console.error(`[Replicate describeImage] Caught error:`,e),c.UploadistaError.fromCode(`UNKNOWN_ERROR`,{cause:e}))})}}).pipe((0,u.withOperationSpan)(`ai`,`describe-image`,{"ai.provider":`replicate`,"ai.model":s,"ai.client_id":t.clientId}))}))};exports.imageAiPlugin=p;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@uploadista/flow-images-replicate",
3
3
  "type": "module",
4
- "version": "0.1.4-beta.1",
4
+ "version": "0.2.0",
5
5
  "description": "Replicate image AI processing service for Uploadista Flow",
6
6
  "license": "MIT",
7
7
  "author": "Uploadista",
@@ -15,8 +15,8 @@
15
15
  },
16
16
  "dependencies": {
17
17
  "replicate": "1.4.0",
18
- "@uploadista/core": "0.1.4-beta.1",
19
- "@uploadista/observability": "0.1.4-beta.1"
18
+ "@uploadista/core": "0.2.0",
19
+ "@uploadista/observability": "0.2.0"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "effect": "^3.0.0",
@@ -25,11 +25,11 @@
25
25
  "devDependencies": {
26
26
  "@effect/vitest": "0.27.0",
27
27
  "@types/node": "24.10.9",
28
- "effect": "3.19.15",
29
- "tsdown": "0.20.1",
28
+ "effect": "3.19.17",
29
+ "tsdown": "0.20.3",
30
30
  "vitest": "4.0.18",
31
31
  "zod": "4.3.6",
32
- "@uploadista/typescript-config": "0.1.4-beta.1"
32
+ "@uploadista/typescript-config": "0.2.0"
33
33
  },
34
34
  "scripts": {
35
35
  "build": "tsc --noEmit && tsdown",