@ourofoundation/ouro-js 3.4.0 → 3.5.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 (39) hide show
  1. package/dist/chunk-7F26V24D.js +2 -0
  2. package/dist/chunk-7F26V24D.js.map +1 -0
  3. package/dist/chunk-CONKY65O.cjs +2 -0
  4. package/dist/chunk-CONKY65O.cjs.map +1 -0
  5. package/dist/chunk-JKTQY4RU.js +2 -0
  6. package/dist/chunk-JKTQY4RU.js.map +1 -0
  7. package/dist/chunk-JW7FACNZ.cjs +2 -0
  8. package/dist/chunk-JW7FACNZ.cjs.map +1 -0
  9. package/dist/chunk-XWXLCG4E.cjs +2 -0
  10. package/dist/chunk-XWXLCG4E.cjs.map +1 -0
  11. package/dist/chunk-Z3ALIFYO.js +2 -0
  12. package/dist/chunk-Z3ALIFYO.js.map +1 -0
  13. package/dist/index.cjs +1 -1
  14. package/dist/index.d.cts +2 -1
  15. package/dist/index.d.ts +2 -1
  16. package/dist/index.js +1 -1
  17. package/dist/schema/quests.cjs +1 -1
  18. package/dist/schema/quests.d.cts +406 -29
  19. package/dist/schema/quests.d.ts +406 -29
  20. package/dist/schema/quests.js +1 -1
  21. package/dist/schema/services.cjs +1 -1
  22. package/dist/schema/services.d.cts +117 -5
  23. package/dist/schema/services.d.ts +117 -5
  24. package/dist/schema/services.js +1 -1
  25. package/dist/utils/quest-submission.cjs +2 -0
  26. package/dist/utils/quest-submission.cjs.map +1 -0
  27. package/dist/utils/quest-submission.d.cts +134 -0
  28. package/dist/utils/quest-submission.d.ts +134 -0
  29. package/dist/utils/quest-submission.js +2 -0
  30. package/dist/utils/quest-submission.js.map +1 -0
  31. package/package.json +1 -1
  32. package/dist/chunk-36UOEIZN.js +0 -2
  33. package/dist/chunk-36UOEIZN.js.map +0 -1
  34. package/dist/chunk-4KDHR4VP.js +0 -2
  35. package/dist/chunk-4KDHR4VP.js.map +0 -1
  36. package/dist/chunk-IU7AKVYI.cjs +0 -2
  37. package/dist/chunk-IU7AKVYI.cjs.map +0 -1
  38. package/dist/chunk-NRZCTFCQ.cjs +0 -2
  39. package/dist/chunk-NRZCTFCQ.cjs.map +0 -1
@@ -1,2 +0,0 @@
1
- import {b as b$1,c,d,a as a$1}from'./chunk-G2MXCB7Q.js';import {a,j}from'./chunk-WRHPQNEL.js';import {enum as _enum,object,optional,string,nullable,number,record,any,array,boolean,uuid}from'zod';var v=_enum(["Personal Access Token","Ouro","None","OAuth 2.0"]),A=object({authentication:v,base_url:string(),version:optional(nullable(string())),spec_path:optional(nullable(string())),spec_url:optional(nullable(string())),auth_url:optional(nullable(string()))}),S=A.extend(b$1.partial().shape),z=c.extend({asset_type:a.refine(r=>r==="service"),metadata:S}),E=d.extend({asset_type:a.refine(r=>r==="service"),metadata:S}).transform(r=>a$1(r)),k=z.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true}).extend({last_updated:string().default(()=>new Date().toISOString())}).transform(r=>a$1(r)),y=_enum(["sync","async"]),T=object({id:string(),user_id:string(),service_id:string(),path:string(),method:_enum(["GET","POST","PUT","PATCH","DELETE"]),summary:optional(nullable(string())),parameters:optional(nullable(array(record(string(),any())))),request_body:optional(nullable(record(string(),any()))),responses:optional(nullable(array(record(string(),any())))),input_assets:optional(nullable(record(string(),any()))),input_type:optional(nullable(_enum(["file","dataset","post"]))),input_filter:optional(nullable(_enum(["audio","video","image","pdf","3d model","atomic structure"]))),input_file_extension:optional(nullable(string())),input_file_extensions:optional(nullable(array(string()))),output_type:optional(nullable(_enum(["file","dataset","post"]))),output_assets:optional(nullable(record(string(),any()))),output_file_extension:optional(nullable(string())),security:optional(nullable(record(string(),any()))),rate_limit:optional(nullable(number())),execution_mode:optional(y).default("sync"),observed_execution_mode:optional(nullable(y)),last_updated:string()}),b=object({avg_ack_ms:optional(nullable(number())),p95_ack_ms:optional(nullable(number())),avg_completion_ms:optional(nullable(number())),p95_completion_ms:optional(nullable(number())),latency_sample_count:optional(nullable(number()))}),D=c.extend({asset_type:a.refine(r=>r==="route"),route:T,metrics:optional(nullable(b))}),P=object({id:uuid(),user_id:uuid(),route_id:uuid(),metadata:optional(nullable(record(string(),any()))),response:optional(nullable(record(string(),any()))),side_effects:boolean().default(true),input_asset_id:optional(nullable(uuid())),output_asset_id:optional(nullable(uuid())),input_asset:optional(nullable(c)),input_assets:optional(nullable(array(record(string(),any())))),output_asset:optional(nullable(c)),output_assets:optional(nullable(array(record(string(),any())))),webhook_url:optional(nullable(string())),webhook_token:optional(nullable(string())),status:j,created_at:string(),last_updated:string(),started_at:optional(nullable(string())),ack_at:optional(nullable(string())),upstream_status_code:optional(nullable(number())),finished_at:optional(nullable(string()))});export{z as a,E as b,k as c,y as d,b as e,D as f,P as g};//# sourceMappingURL=chunk-36UOEIZN.js.map
2
- //# sourceMappingURL=chunk-36UOEIZN.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schema/services.ts"],"names":["AuthType","zodEnum","BaseServiceMetadataSchema","object","string","optional","nullable","ServiceMetadataSchema","AssetMetadataSchema","ServiceSchema","AssetSchema","AssetTypeSchema","x","CreateServiceSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateServiceSchema","ExecutionModeSchema","RouteDetailSchema","array","record","any","number","RouteMetricsSchema","RouteSchema","ActionSchema","uuid","boolean","StatusSchema"],"mappings":"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","file":"chunk-36UOEIZN.js","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n type z,\n record,\n any,\n enum as zodEnum,\n optional,\n nullable,\n boolean\n} from \"zod\";\n\nimport { AssetTypeSchema, StatusSchema } from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\n\nconst AuthType = zodEnum([\"Personal Access Token\", \"Ouro\", \"None\", \"OAuth 2.0\"]);\n\nconst BaseServiceMetadataSchema = object({\n authentication: AuthType,\n base_url: string(),\n version: optional(nullable(string())),\n spec_path: optional(nullable(string())),\n spec_url: optional(nullable(string())),\n auth_url: optional(nullable(string())),\n});\n\nconst ServiceMetadataSchema = BaseServiceMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ServiceSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n});\n\nconst CreateServiceSchema = CreateAssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateServiceSchema = ServiceSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ExecutionModeSchema = zodEnum([\"sync\", \"async\"]);\n\nconst RouteDetailSchema = object({\n id: string(),\n user_id: string(),\n service_id: string(),\n path: string(),\n method: zodEnum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"]),\n summary: optional(nullable(string())),\n parameters: optional(nullable(array(record(string(), any())))),\n request_body: optional(nullable(record(string(), any()))),\n responses: optional(nullable(array(record(string(), any())))),\n input_assets: optional(nullable(record(string(), any()))),\n input_type: optional(nullable(zodEnum([\"file\", \"dataset\", \"post\"]))),\n input_filter: optional(nullable(zodEnum([\"audio\", \"video\", \"image\", \"pdf\", \"3d model\", \"atomic structure\"]))),\n input_file_extension: optional(nullable(string())),\n input_file_extensions: optional(nullable(array(string()))),\n output_type: optional(nullable(zodEnum([\"file\", \"dataset\", \"post\"]))),\n output_assets: optional(nullable(record(string(), any()))),\n output_file_extension: optional(nullable(string())),\n security: optional(nullable(record(string(), any()))),\n rate_limit: optional(nullable(number())),\n // Author-declared execution model: 'sync' = upstream returns the result\n // inline; 'async' = upstream returns 202 quickly and webhooks completion.\n execution_mode: optional(ExecutionModeSchema).default(\"sync\"),\n // Empirical mode derived by the platform from recent action history; null\n // until enough samples have been observed. When this differs from\n // execution_mode the route is misconfigured.\n observed_execution_mode: optional(nullable(ExecutionModeSchema)),\n last_updated: string(),\n});\n\n// Per-route latency aggregates surfaced from asset_metrics. All fields are\n// nullable because they don't exist until the platform has observed at least\n// one completed action for the route.\nconst RouteMetricsSchema = object({\n // Average HTTP-hop latency in milliseconds: time from request start until\n // upstream returned 200 or 202.\n avg_ack_ms: optional(nullable(number())),\n p95_ack_ms: optional(nullable(number())),\n // Average end-to-end latency in milliseconds: started_at to finished_at,\n // includes webhook completion for async routes. This is the value an\n // agent should consider when deciding whether to wait or poll.\n avg_completion_ms: optional(nullable(number())),\n p95_completion_ms: optional(nullable(number())),\n latency_sample_count: optional(nullable(number())),\n});\n\nconst RouteSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"route\" === x),\n route: RouteDetailSchema,\n // Latency aggregates joined from asset_metrics; null when no samples yet.\n metrics: optional(nullable(RouteMetricsSchema)),\n});\n\nconst ActionSchema = object({\n id: uuid(),\n user_id: uuid(),\n route_id: uuid(),\n metadata: optional(nullable(record(string(), any()))),\n response: optional(nullable(record(string(), any()))),\n side_effects: boolean().default(true),\n input_asset_id: optional(nullable(uuid())),\n output_asset_id: optional(nullable(uuid())),\n input_asset: optional(nullable(AssetSchema)),\n input_assets: optional(nullable(array(record(string(), any())))),\n output_asset: optional(nullable(AssetSchema)),\n output_assets: optional(nullable(array(record(string(), any())))),\n webhook_url: optional(nullable(string())),\n webhook_token: optional(nullable(string())),\n status: StatusSchema,\n created_at: string(),\n last_updated: string(),\n started_at: optional(nullable(string())),\n // When the upstream service first responded (200 or 202). For sync routes\n // this is approximately equal to finished_at; for async routes the gap\n // between ack_at and finished_at is the out-of-band wait time.\n ack_at: optional(nullable(string())),\n // HTTP status code returned by the upstream service at ack time.\n upstream_status_code: optional(nullable(number())),\n finished_at: optional(nullable(string())),\n});\n\nexport {\n RouteSchema,\n ServiceSchema,\n CreateServiceSchema,\n UpdateServiceSchema,\n ActionSchema,\n RouteMetricsSchema,\n ExecutionModeSchema,\n};\nexport type Service = z.infer<typeof ServiceSchema>;\nexport type Route = z.infer<typeof RouteSchema>;\nexport type RouteDetail = z.infer<typeof RouteDetailSchema>;\nexport type RouteMetrics = z.infer<typeof RouteMetricsSchema>;\nexport type ExecutionMode = z.infer<typeof ExecutionModeSchema>;\nexport type AuthType = z.infer<typeof AuthType>;\nexport type Action = z.infer<typeof ActionSchema>;\n"]}
@@ -1,2 +0,0 @@
1
- import {c,b as b$1,d as d$1,a as a$1}from'./chunk-G2MXCB7Q.js';import {a}from'./chunk-WRHPQNEL.js';import {enum as _enum,object,optional,string,array,any,record,literal,number,uuid,nullable,union}from'zod';var Q=_enum(["closable","continuous"]),v=_enum(["draft","open","closed","cancelled"]),_=_enum(["pending","in_progress","done","skipped"]),g=_enum(["btc","usd"]),E=_enum(["skipped","running","passed","failed","errored"]),w=_enum(["submitted","accepted","rejected"]),b=object({type:string(),content:optional(array(any())),attrs:optional(record(string(),any())),marks:optional(array(any())),text:optional(string())}),d=object({json:object({type:literal("doc"),content:array(b)}),text:string()}),C=object({id:uuid(),quest_id:uuid(),description:string(),status:_.default("pending"),auto_skipped:optional(nullable(string().or(any()))),status_before_auto_skip:optional(nullable(_)),sort_order:number().default(0),type:string().default("task"),created_by:uuid(),assignee_id:optional(nullable(uuid())),expected_asset_type:optional(nullable(a)),reward_xp:number().int().nonnegative().default(0),reward_currency:g.default("btc"),reward_amount:number().int().nonnegative().default(0),child_quest_id:optional(nullable(uuid())),completed_entry_id:optional(nullable(uuid())),eval_route_id:optional(nullable(uuid())),eval_score_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),eval_input_key:optional(nullable(string())),notes:optional(nullable(string())),created_at:string(),updated_at:string()}),I=C,l=object({description:string().min(1,{message:"Item description cannot be empty"}),type:optional(string()).default("task"),sort_order:optional(number().int()),assignee_id:optional(nullable(uuid())),expected_asset_type:optional(nullable(a)),reward_xp:optional(number().int().nonnegative()).default(0),reward_currency:optional(g).default("btc"),reward_amount:optional(number().int().nonnegative()).default(0),child_quest_id:optional(nullable(uuid())),eval_route_id:optional(nullable(uuid())),eval_score_path:optional(nullable(string())),eval_pass_min:optional(nullable(number())),eval_pass_max:optional(nullable(number())),eval_input_key:optional(nullable(string())),notes:optional(nullable(string()))}),q=union([string().transform(p=>({description:p})),l]).pipe(l),k=object({type:Q.default("closable"),status:v.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),closed_at:optional(nullable(string()))}),T=c.extend({asset_type:literal("quest").default("quest"),metadata:optional(nullable(b$1.partial())),quest:optional(k.partial()),items:optional(array(I.partial())),progress:optional(object({total:number(),done:number(),remaining:number()}))}),A=d$1.extend({asset_type:literal("quest").default("quest"),name:optional(nullable(string())).default(null),description:optional(nullable(d)),type:Q.default("closable"),status:v.default("open"),max_xp_per_contributor:optional(nullable(number().int().nonnegative())),items:optional(array(q)).default([])}).transform(p=>a$1(p)),O=T.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,items:true,progress:true}).extend({asset_type:literal("quest").default("quest"),last_updated:string().default(()=>new Date().toISOString())}).transform(p=>a$1(p)),Z=l.partial().extend({status:optional(_)}),B=object({id:uuid(),quest_id:uuid(),user_id:uuid(),item_id:optional(nullable(uuid())),asset_id:optional(nullable(uuid())),asset_type:optional(nullable(a)),description:optional(nullable(d)),review:optional(nullable(d)),status:w,reviewer_id:optional(nullable(uuid())),reviewed_at:optional(nullable(string())),eval_action_id:optional(nullable(uuid())),eval_score:optional(nullable(number())),eval_status:optional(nullable(E)),created_at:string(),updated_at:string()}),D=object({item_id:optional(nullable(uuid())),asset_id:optional(nullable(uuid())),asset_type:optional(nullable(a)),description:optional(nullable(union([string(),d])))}),F=object({status:_enum(["accepted","rejected"]),review:optional(nullable(union([string(),d])))});export{Q as a,v as b,_ as c,g as d,E as e,w as f,C as g,I as h,l as i,q as j,T as k,A as l,O as m,Z as n,B as o,D as p,F as q};//# sourceMappingURL=chunk-4KDHR4VP.js.map
2
- //# sourceMappingURL=chunk-4KDHR4VP.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","QuestItemSchema","CreateQuestItemObjectSchema","CreateQuestItemSchema","union","s","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-4KDHR4VP.js","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\n \"draft\",\n \"open\",\n \"closed\",\n \"cancelled\",\n]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\n \"submitted\",\n \"accepted\",\n \"rejected\",\n]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: string(),\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n completed_entry_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n eval_input_key: optional(nullable(string())),\n notes: optional(nullable(string())),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string as a convenience — it's lifted\n * into `{ description }` by the `union` below.\n */\nconst CreateQuestItemObjectSchema = object({\n description: string().min(1, { message: \"Item description cannot be empty\" }),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n eval_input_key: optional(nullable(string())),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string().transform((s) => ({ description: s })),\n CreateQuestItemObjectSchema,\n]).pipe(CreateQuestItemObjectSchema);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // `read /quests/:id` returns the quest specifics nested under `quest`\n // and hoists items to the top level for convenience.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n done: number(),\n remaining: number(),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings or full item objects —\n * the backend `createQuestItems`/`createQuest` paths already handle both\n * shapes, and `CreateQuestItemSchema` normalizes strings into\n * `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n items: true,\n progress: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
@@ -1,2 +0,0 @@
1
- 'use strict';var chunkIP4OVRZB_cjs=require('./chunk-IP4OVRZB.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var Q=zod.enum(["closable","continuous"]),v=zod.enum(["draft","open","closed","cancelled"]),_=zod.enum(["pending","in_progress","done","skipped"]),g=zod.enum(["btc","usd"]),E=zod.enum(["skipped","running","passed","failed","errored"]),w=zod.enum(["submitted","accepted","rejected"]),b=zod.object({type:zod.string(),content:zod.optional(zod.array(zod.any())),attrs:zod.optional(zod.record(zod.string(),zod.any())),marks:zod.optional(zod.array(zod.any())),text:zod.optional(zod.string())}),d=zod.object({json:zod.object({type:zod.literal("doc"),content:zod.array(b)}),text:zod.string()}),C=zod.object({id:zod.uuid(),quest_id:zod.uuid(),description:zod.string(),status:_.default("pending"),auto_skipped:zod.optional(zod.nullable(zod.string().or(zod.any()))),status_before_auto_skip:zod.optional(zod.nullable(_)),sort_order:zod.number().default(0),type:zod.string().default("task"),created_by:zod.uuid(),assignee_id:zod.optional(zod.nullable(zod.uuid())),expected_asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),reward_xp:zod.number().int().nonnegative().default(0),reward_currency:g.default("btc"),reward_amount:zod.number().int().nonnegative().default(0),child_quest_id:zod.optional(zod.nullable(zod.uuid())),completed_entry_id:zod.optional(zod.nullable(zod.uuid())),eval_route_id:zod.optional(zod.nullable(zod.uuid())),eval_score_path:zod.optional(zod.nullable(zod.string())),eval_pass_min:zod.optional(zod.nullable(zod.number())),eval_pass_max:zod.optional(zod.nullable(zod.number())),eval_input_key:zod.optional(zod.nullable(zod.string())),notes:zod.optional(zod.nullable(zod.string())),created_at:zod.string(),updated_at:zod.string()}),I=C,l=zod.object({description:zod.string().min(1,{message:"Item description cannot be empty"}),type:zod.optional(zod.string()).default("task"),sort_order:zod.optional(zod.number().int()),assignee_id:zod.optional(zod.nullable(zod.uuid())),expected_asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),reward_xp:zod.optional(zod.number().int().nonnegative()).default(0),reward_currency:zod.optional(g).default("btc"),reward_amount:zod.optional(zod.number().int().nonnegative()).default(0),child_quest_id:zod.optional(zod.nullable(zod.uuid())),eval_route_id:zod.optional(zod.nullable(zod.uuid())),eval_score_path:zod.optional(zod.nullable(zod.string())),eval_pass_min:zod.optional(zod.nullable(zod.number())),eval_pass_max:zod.optional(zod.nullable(zod.number())),eval_input_key:zod.optional(zod.nullable(zod.string())),notes:zod.optional(zod.nullable(zod.string()))}),q=zod.union([zod.string().transform(p=>({description:p})),l]).pipe(l),k=zod.object({type:Q.default("closable"),status:v.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),closed_at:zod.optional(zod.nullable(zod.string()))}),T=chunkIP4OVRZB_cjs.c.extend({asset_type:zod.literal("quest").default("quest"),metadata:zod.optional(zod.nullable(chunkIP4OVRZB_cjs.b.partial())),quest:zod.optional(k.partial()),items:zod.optional(zod.array(I.partial())),progress:zod.optional(zod.object({total:zod.number(),done:zod.number(),remaining:zod.number()}))}),A=chunkIP4OVRZB_cjs.d.extend({asset_type:zod.literal("quest").default("quest"),name:zod.optional(zod.nullable(zod.string())).default(null),description:zod.optional(zod.nullable(d)),type:Q.default("closable"),status:v.default("open"),max_xp_per_contributor:zod.optional(zod.nullable(zod.number().int().nonnegative())),items:zod.optional(zod.array(q)).default([])}).transform(p=>chunkIP4OVRZB_cjs.a(p)),O=T.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true,items:true,progress:true}).extend({asset_type:zod.literal("quest").default("quest"),last_updated:zod.string().default(()=>new Date().toISOString())}).transform(p=>chunkIP4OVRZB_cjs.a(p)),Z=l.partial().extend({status:zod.optional(_)}),B=zod.object({id:zod.uuid(),quest_id:zod.uuid(),user_id:zod.uuid(),item_id:zod.optional(zod.nullable(zod.uuid())),asset_id:zod.optional(zod.nullable(zod.uuid())),asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),description:zod.optional(zod.nullable(d)),review:zod.optional(zod.nullable(d)),status:w,reviewer_id:zod.optional(zod.nullable(zod.uuid())),reviewed_at:zod.optional(zod.nullable(zod.string())),eval_action_id:zod.optional(zod.nullable(zod.uuid())),eval_score:zod.optional(zod.nullable(zod.number())),eval_status:zod.optional(zod.nullable(E)),created_at:zod.string(),updated_at:zod.string()}),D=zod.object({item_id:zod.optional(zod.nullable(zod.uuid())),asset_id:zod.optional(zod.nullable(zod.uuid())),asset_type:zod.optional(zod.nullable(chunk43KB23BA_cjs.a)),description:zod.optional(zod.nullable(zod.union([zod.string(),d])))}),F=zod.object({status:zod.enum(["accepted","rejected"]),review:zod.optional(zod.nullable(zod.union([zod.string(),d])))});exports.a=Q;exports.b=v;exports.c=_;exports.d=g;exports.e=E;exports.f=w;exports.g=C;exports.h=I;exports.i=l;exports.j=q;exports.k=T;exports.l=A;exports.m=O;exports.n=Z;exports.o=B;exports.p=D;exports.q=F;//# sourceMappingURL=chunk-IU7AKVYI.cjs.map
2
- //# sourceMappingURL=chunk-IU7AKVYI.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schema/quests.ts"],"names":["QuestTypeSchema","zodEnum","QuestStatusSchema","QuestItemStatusSchema","RewardCurrencySchema","EntryEvalStatusSchema","EntryStatusSchema","TipTapNode","object","string","optional","array","any","record","ContentSchema","literal","QuestItemBaseSchema","uuid","nullable","number","AssetTypeSchema","QuestItemSchema","CreateQuestItemObjectSchema","CreateQuestItemSchema","union","s","QuestSpecificsSchema","QuestSchema","AssetSchema","AssetMetadataSchema","CreateQuestSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateQuestSchema","UpdateQuestItemSchema","EntrySchema","CreateEntrySchema","ReviewEntrySchema"],"mappings":"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","file":"chunk-IU7AKVYI.cjs","sourcesContent":["import {\n object,\n string,\n number,\n array,\n literal,\n record,\n type z,\n any,\n optional,\n nullable,\n union,\n uuid,\n enum as zodEnum,\n type ZodType,\n} from \"zod\";\n\nimport {\n AssetSchema,\n AssetMetadataSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\nimport { AssetTypeSchema } from \"./common\";\n\n// ── Enums ──────────────────────────────────────────────────────────────\n\nconst QuestTypeSchema = zodEnum([\"closable\", \"continuous\"]);\nconst QuestStatusSchema = zodEnum([\n \"draft\",\n \"open\",\n \"closed\",\n \"cancelled\",\n]);\n\nconst QuestItemStatusSchema = zodEnum([\n \"pending\",\n \"in_progress\",\n \"done\",\n \"skipped\",\n]);\n\nconst RewardCurrencySchema = zodEnum([\"btc\", \"usd\"]);\n\nconst EntryEvalStatusSchema = zodEnum([\n \"skipped\",\n \"running\",\n \"passed\",\n \"failed\",\n \"errored\",\n]);\n\nconst EntryStatusSchema = zodEnum([\n \"submitted\",\n \"accepted\",\n \"rejected\",\n]);\n\n// ── Content (TipTap) ───────────────────────────────────────────────────\n// Posts/quests share the same rich description shape: { json, text }.\n// We mirror it locally here so the quest schema doesn't depend on posts.\n\nconst TipTapNode: ZodType<any> = object({\n type: string(),\n content: optional(array(any())),\n attrs: optional(record(string(), any())),\n marks: optional(array(any())),\n text: optional(string()),\n});\n\nconst ContentSchema = object({\n json: object({\n type: literal(\"doc\"),\n content: array(TipTapNode),\n }),\n text: string(),\n});\n\n// ── Quest items ────────────────────────────────────────────────────────\n\nconst QuestItemBaseSchema = object({\n id: uuid(),\n quest_id: uuid(),\n description: string(),\n status: QuestItemStatusSchema.default(\"pending\"),\n auto_skipped: optional(nullable(string().or(any()))),\n status_before_auto_skip: optional(nullable(QuestItemStatusSchema)),\n sort_order: number().default(0),\n type: string().default(\"task\"),\n created_by: uuid(),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: number().int().nonnegative().default(0),\n reward_currency: RewardCurrencySchema.default(\"btc\"),\n reward_amount: number().int().nonnegative().default(0),\n child_quest_id: optional(nullable(uuid())),\n completed_entry_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n eval_input_key: optional(nullable(string())),\n notes: optional(nullable(string())),\n created_at: string(),\n updated_at: string(),\n});\n\nconst QuestItemSchema = QuestItemBaseSchema;\n\n/**\n * Shape used by `POST /quests/create` (inline items) and\n * `POST /quests/:id/items` (batch add). The controller fills in\n * `quest_id`, `created_by`, and lifecycle-derived fields\n * (`auto_skipped`, `status_before_auto_skip`).\n *\n * Accepts a plain description string as a convenience — it's lifted\n * into `{ description }` by the `union` below.\n */\nconst CreateQuestItemObjectSchema = object({\n description: string().min(1, { message: \"Item description cannot be empty\" }),\n type: optional(string()).default(\"task\"),\n sort_order: optional(number().int()),\n assignee_id: optional(nullable(uuid())),\n expected_asset_type: optional(nullable(AssetTypeSchema)),\n reward_xp: optional(number().int().nonnegative()).default(0),\n reward_currency: optional(RewardCurrencySchema).default(\"btc\"),\n // Amount is in minor units of `reward_currency`: sats for BTC, cents\n // for USD. Both fit in JS numbers comfortably for our reward sizes;\n // the underlying column is `bigint`.\n reward_amount: optional(number().int().nonnegative()).default(0),\n child_quest_id: optional(nullable(uuid())),\n eval_route_id: optional(nullable(uuid())),\n eval_score_path: optional(nullable(string())),\n eval_pass_min: optional(nullable(number())),\n eval_pass_max: optional(nullable(number())),\n eval_input_key: optional(nullable(string())),\n notes: optional(nullable(string())),\n});\n\nconst CreateQuestItemSchema = union([\n string().transform((s) => ({ description: s })),\n CreateQuestItemObjectSchema,\n]).pipe(CreateQuestItemObjectSchema);\n\n// ── Quest ──────────────────────────────────────────────────────────────\n\nconst QuestSpecificsSchema = object({\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n closed_at: optional(nullable(string())),\n});\n\nconst QuestSchema = AssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n metadata: optional(nullable(AssetMetadataSchema.partial())),\n // `read /quests/:id` returns the quest specifics nested under `quest`\n // and hoists items to the top level for convenience.\n quest: optional(QuestSpecificsSchema.partial()),\n items: optional(array(QuestItemSchema.partial())),\n progress: optional(\n object({\n total: number(),\n done: number(),\n remaining: number(),\n })\n ),\n});\n\n/**\n * Schema used by the backend controller and SDK clients to validate /\n * default the body of `POST /quests/create`. Mirrors how\n * `CreatePostSchema` defaults `org_id`/`team_id` so non-frontend callers\n * don't have to know about `GLOBAL_ORG_ID`.\n *\n * The `items` field accepts either plain strings or full item objects —\n * the backend `createQuestItems`/`createQuest` paths already handle both\n * shapes, and `CreateQuestItemSchema` normalizes strings into\n * `{ description }`.\n */\nconst CreateQuestSchema = CreateAssetSchema.extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n name: optional(nullable(string())).default(null),\n description: optional(nullable(ContentSchema)),\n type: QuestTypeSchema.default(\"closable\"),\n status: QuestStatusSchema.default(\"open\"),\n max_xp_per_contributor: optional(nullable(number().int().nonnegative())),\n items: optional(array(CreateQuestItemSchema)).default([]),\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestSchema = QuestSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n items: true,\n progress: true,\n })\n .extend({\n asset_type: literal(\"quest\").default(\"quest\"),\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateQuestItemSchema = CreateQuestItemObjectSchema.partial().extend({\n status: optional(QuestItemStatusSchema),\n});\n\n// ── Entries ────────────────────────────────────────────────────────────\n\nconst EntrySchema = object({\n id: uuid(),\n quest_id: uuid(),\n user_id: uuid(),\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n description: optional(nullable(ContentSchema)),\n review: optional(nullable(ContentSchema)),\n status: EntryStatusSchema,\n reviewer_id: optional(nullable(uuid())),\n reviewed_at: optional(nullable(string())),\n eval_action_id: optional(nullable(uuid())),\n eval_score: optional(nullable(number())),\n eval_status: optional(nullable(EntryEvalStatusSchema)),\n created_at: string(),\n updated_at: string(),\n});\n\nconst CreateEntrySchema = object({\n item_id: optional(nullable(uuid())),\n asset_id: optional(nullable(uuid())),\n asset_type: optional(nullable(AssetTypeSchema)),\n description: optional(nullable(union([string(), ContentSchema]))),\n});\n\nconst ReviewEntrySchema = object({\n status: zodEnum([\"accepted\", \"rejected\"]),\n review: optional(nullable(union([string(), ContentSchema]))),\n});\n\n// ── Exports ────────────────────────────────────────────────────────────\n\nexport {\n QuestTypeSchema,\n QuestStatusSchema,\n QuestItemStatusSchema,\n RewardCurrencySchema,\n EntryEvalStatusSchema,\n EntryStatusSchema,\n QuestSchema,\n QuestItemSchema,\n QuestItemBaseSchema,\n CreateQuestSchema,\n CreateQuestItemSchema,\n CreateQuestItemObjectSchema,\n UpdateQuestSchema,\n UpdateQuestItemSchema,\n EntrySchema,\n CreateEntrySchema,\n ReviewEntrySchema,\n};\n\nexport type QuestType = z.infer<typeof QuestTypeSchema>;\nexport type QuestStatus = z.infer<typeof QuestStatusSchema>;\nexport type QuestItemStatus = z.infer<typeof QuestItemStatusSchema>;\nexport type RewardCurrency = z.infer<typeof RewardCurrencySchema>;\nexport type EntryEvalStatus = z.infer<typeof EntryEvalStatusSchema>;\nexport type EntryStatus = z.infer<typeof EntryStatusSchema>;\nexport type Quest = z.infer<typeof QuestSchema>;\nexport type QuestItem = z.infer<typeof QuestItemSchema>;\nexport type CreateQuest = z.infer<typeof CreateQuestSchema>;\nexport type CreateQuestItem = z.infer<typeof CreateQuestItemSchema>;\nexport type UpdateQuest = z.infer<typeof UpdateQuestSchema>;\nexport type UpdateQuestItem = z.infer<typeof UpdateQuestItemSchema>;\nexport type Entry = z.infer<typeof EntrySchema>;\nexport type CreateEntry = z.infer<typeof CreateEntrySchema>;\nexport type ReviewEntry = z.infer<typeof ReviewEntrySchema>;\n"]}
@@ -1,2 +0,0 @@
1
- 'use strict';var chunkIP4OVRZB_cjs=require('./chunk-IP4OVRZB.cjs'),chunk43KB23BA_cjs=require('./chunk-43KB23BA.cjs'),zod=require('zod');var v=zod.enum(["Personal Access Token","Ouro","None","OAuth 2.0"]),A=zod.object({authentication:v,base_url:zod.string(),version:zod.optional(zod.nullable(zod.string())),spec_path:zod.optional(zod.nullable(zod.string())),spec_url:zod.optional(zod.nullable(zod.string())),auth_url:zod.optional(zod.nullable(zod.string()))}),S=A.extend(chunkIP4OVRZB_cjs.b.partial().shape),z=chunkIP4OVRZB_cjs.c.extend({asset_type:chunk43KB23BA_cjs.a.refine(r=>r==="service"),metadata:S}),E=chunkIP4OVRZB_cjs.d.extend({asset_type:chunk43KB23BA_cjs.a.refine(r=>r==="service"),metadata:S}).transform(r=>chunkIP4OVRZB_cjs.a(r)),k=z.partial().omit({user_id:true,id:true,created_at:true,last_updated:true,organization:true,user:true,team:true,slug:true}).extend({last_updated:zod.string().default(()=>new Date().toISOString())}).transform(r=>chunkIP4OVRZB_cjs.a(r)),y=zod.enum(["sync","async"]),T=zod.object({id:zod.string(),user_id:zod.string(),service_id:zod.string(),path:zod.string(),method:zod.enum(["GET","POST","PUT","PATCH","DELETE"]),summary:zod.optional(zod.nullable(zod.string())),parameters:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),request_body:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),responses:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),input_assets:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),input_type:zod.optional(zod.nullable(zod.enum(["file","dataset","post"]))),input_filter:zod.optional(zod.nullable(zod.enum(["audio","video","image","pdf","3d model","atomic structure"]))),input_file_extension:zod.optional(zod.nullable(zod.string())),input_file_extensions:zod.optional(zod.nullable(zod.array(zod.string()))),output_type:zod.optional(zod.nullable(zod.enum(["file","dataset","post"]))),output_assets:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),output_file_extension:zod.optional(zod.nullable(zod.string())),security:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),rate_limit:zod.optional(zod.nullable(zod.number())),execution_mode:zod.optional(y).default("sync"),observed_execution_mode:zod.optional(zod.nullable(y)),last_updated:zod.string()}),b=zod.object({avg_ack_ms:zod.optional(zod.nullable(zod.number())),p95_ack_ms:zod.optional(zod.nullable(zod.number())),avg_completion_ms:zod.optional(zod.nullable(zod.number())),p95_completion_ms:zod.optional(zod.nullable(zod.number())),latency_sample_count:zod.optional(zod.nullable(zod.number()))}),D=chunkIP4OVRZB_cjs.c.extend({asset_type:chunk43KB23BA_cjs.a.refine(r=>r==="route"),route:T,metrics:zod.optional(zod.nullable(b))}),P=zod.object({id:zod.uuid(),user_id:zod.uuid(),route_id:zod.uuid(),metadata:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),response:zod.optional(zod.nullable(zod.record(zod.string(),zod.any()))),side_effects:zod.boolean().default(true),input_asset_id:zod.optional(zod.nullable(zod.uuid())),output_asset_id:zod.optional(zod.nullable(zod.uuid())),input_asset:zod.optional(zod.nullable(chunkIP4OVRZB_cjs.c)),input_assets:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),output_asset:zod.optional(zod.nullable(chunkIP4OVRZB_cjs.c)),output_assets:zod.optional(zod.nullable(zod.array(zod.record(zod.string(),zod.any())))),webhook_url:zod.optional(zod.nullable(zod.string())),webhook_token:zod.optional(zod.nullable(zod.string())),status:chunk43KB23BA_cjs.j,created_at:zod.string(),last_updated:zod.string(),started_at:zod.optional(zod.nullable(zod.string())),ack_at:zod.optional(zod.nullable(zod.string())),upstream_status_code:zod.optional(zod.nullable(zod.number())),finished_at:zod.optional(zod.nullable(zod.string()))});exports.a=z;exports.b=E;exports.c=k;exports.d=y;exports.e=b;exports.f=D;exports.g=P;//# sourceMappingURL=chunk-NRZCTFCQ.cjs.map
2
- //# sourceMappingURL=chunk-NRZCTFCQ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/schema/services.ts"],"names":["AuthType","zodEnum","BaseServiceMetadataSchema","object","string","optional","nullable","ServiceMetadataSchema","AssetMetadataSchema","ServiceSchema","AssetSchema","AssetTypeSchema","x","CreateServiceSchema","CreateAssetSchema","value","normalizeAssetConfigForParsing","UpdateServiceSchema","ExecutionModeSchema","RouteDetailSchema","array","record","any","number","RouteMetricsSchema","RouteSchema","ActionSchema","uuid","boolean","StatusSchema"],"mappings":"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","file":"chunk-NRZCTFCQ.cjs","sourcesContent":["import {\n object,\n string,\n uuid,\n number,\n array,\n type z,\n record,\n any,\n enum as zodEnum,\n optional,\n nullable,\n boolean\n} from \"zod\";\n\nimport { AssetTypeSchema, StatusSchema } from \"./common\";\nimport {\n AssetMetadataSchema,\n AssetSchema,\n CreateAssetSchema,\n normalizeAssetConfigForParsing,\n} from \"./assets\";\n\nconst AuthType = zodEnum([\"Personal Access Token\", \"Ouro\", \"None\", \"OAuth 2.0\"]);\n\nconst BaseServiceMetadataSchema = object({\n authentication: AuthType,\n base_url: string(),\n version: optional(nullable(string())),\n spec_path: optional(nullable(string())),\n spec_url: optional(nullable(string())),\n auth_url: optional(nullable(string())),\n});\n\nconst ServiceMetadataSchema = BaseServiceMetadataSchema.extend(\n AssetMetadataSchema.partial().shape\n);\n\nconst ServiceSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n});\n\nconst CreateServiceSchema = CreateAssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"service\" === x),\n metadata: ServiceMetadataSchema,\n}).transform((value) => normalizeAssetConfigForParsing(value));\n\nconst UpdateServiceSchema = ServiceSchema.partial()\n .omit({\n user_id: true,\n id: true,\n created_at: true,\n last_updated: true,\n organization: true,\n user: true,\n team: true,\n slug: true,\n })\n .extend({\n last_updated: string().default(() => new Date().toISOString()),\n })\n .transform((value) => normalizeAssetConfigForParsing(value));\n\nconst ExecutionModeSchema = zodEnum([\"sync\", \"async\"]);\n\nconst RouteDetailSchema = object({\n id: string(),\n user_id: string(),\n service_id: string(),\n path: string(),\n method: zodEnum([\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\"]),\n summary: optional(nullable(string())),\n parameters: optional(nullable(array(record(string(), any())))),\n request_body: optional(nullable(record(string(), any()))),\n responses: optional(nullable(array(record(string(), any())))),\n input_assets: optional(nullable(record(string(), any()))),\n input_type: optional(nullable(zodEnum([\"file\", \"dataset\", \"post\"]))),\n input_filter: optional(nullable(zodEnum([\"audio\", \"video\", \"image\", \"pdf\", \"3d model\", \"atomic structure\"]))),\n input_file_extension: optional(nullable(string())),\n input_file_extensions: optional(nullable(array(string()))),\n output_type: optional(nullable(zodEnum([\"file\", \"dataset\", \"post\"]))),\n output_assets: optional(nullable(record(string(), any()))),\n output_file_extension: optional(nullable(string())),\n security: optional(nullable(record(string(), any()))),\n rate_limit: optional(nullable(number())),\n // Author-declared execution model: 'sync' = upstream returns the result\n // inline; 'async' = upstream returns 202 quickly and webhooks completion.\n execution_mode: optional(ExecutionModeSchema).default(\"sync\"),\n // Empirical mode derived by the platform from recent action history; null\n // until enough samples have been observed. When this differs from\n // execution_mode the route is misconfigured.\n observed_execution_mode: optional(nullable(ExecutionModeSchema)),\n last_updated: string(),\n});\n\n// Per-route latency aggregates surfaced from asset_metrics. All fields are\n// nullable because they don't exist until the platform has observed at least\n// one completed action for the route.\nconst RouteMetricsSchema = object({\n // Average HTTP-hop latency in milliseconds: time from request start until\n // upstream returned 200 or 202.\n avg_ack_ms: optional(nullable(number())),\n p95_ack_ms: optional(nullable(number())),\n // Average end-to-end latency in milliseconds: started_at to finished_at,\n // includes webhook completion for async routes. This is the value an\n // agent should consider when deciding whether to wait or poll.\n avg_completion_ms: optional(nullable(number())),\n p95_completion_ms: optional(nullable(number())),\n latency_sample_count: optional(nullable(number())),\n});\n\nconst RouteSchema = AssetSchema.extend({\n asset_type: AssetTypeSchema.refine((x) => \"route\" === x),\n route: RouteDetailSchema,\n // Latency aggregates joined from asset_metrics; null when no samples yet.\n metrics: optional(nullable(RouteMetricsSchema)),\n});\n\nconst ActionSchema = object({\n id: uuid(),\n user_id: uuid(),\n route_id: uuid(),\n metadata: optional(nullable(record(string(), any()))),\n response: optional(nullable(record(string(), any()))),\n side_effects: boolean().default(true),\n input_asset_id: optional(nullable(uuid())),\n output_asset_id: optional(nullable(uuid())),\n input_asset: optional(nullable(AssetSchema)),\n input_assets: optional(nullable(array(record(string(), any())))),\n output_asset: optional(nullable(AssetSchema)),\n output_assets: optional(nullable(array(record(string(), any())))),\n webhook_url: optional(nullable(string())),\n webhook_token: optional(nullable(string())),\n status: StatusSchema,\n created_at: string(),\n last_updated: string(),\n started_at: optional(nullable(string())),\n // When the upstream service first responded (200 or 202). For sync routes\n // this is approximately equal to finished_at; for async routes the gap\n // between ack_at and finished_at is the out-of-band wait time.\n ack_at: optional(nullable(string())),\n // HTTP status code returned by the upstream service at ack time.\n upstream_status_code: optional(nullable(number())),\n finished_at: optional(nullable(string())),\n});\n\nexport {\n RouteSchema,\n ServiceSchema,\n CreateServiceSchema,\n UpdateServiceSchema,\n ActionSchema,\n RouteMetricsSchema,\n ExecutionModeSchema,\n};\nexport type Service = z.infer<typeof ServiceSchema>;\nexport type Route = z.infer<typeof RouteSchema>;\nexport type RouteDetail = z.infer<typeof RouteDetailSchema>;\nexport type RouteMetrics = z.infer<typeof RouteMetricsSchema>;\nexport type ExecutionMode = z.infer<typeof ExecutionModeSchema>;\nexport type AuthType = z.infer<typeof AuthType>;\nexport type Action = z.infer<typeof ActionSchema>;\n"]}