agentstack-sdk 0.5.2 → 0.6.0-rc2
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/client/a2a/extensions/index.d.ts +1 -0
- package/dist/client/a2a/extensions/interactions/approval/index.d.ts +2 -1
- package/dist/client/a2a/extensions/interactions/approval/schemas.d.ts +4 -5
- package/dist/client/a2a/extensions/interactions/approval/types.d.ts +6 -2
- package/dist/client/a2a/extensions/schemas.d.ts +1 -0
- package/dist/client/a2a/extensions/types.d.ts +1 -0
- package/dist/client/core/extensions/types.d.ts +4 -3
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.js +1 -1
- package/dist/core.js.map +1 -1
- package/dist/core.umd.js +1 -1
- package/dist/core.umd.js.map +1 -1
- package/dist/extensions.cjs +1 -1
- package/dist/extensions.cjs.map +1 -1
- package/dist/extensions.js +1 -1
- package/dist/extensions.js.map +1 -1
- package/dist/extensions.umd.js +1 -1
- package/dist/extensions.umd.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
- package/src/client/a2a/extensions/index.ts +1 -0
- package/src/client/a2a/extensions/interactions/approval/index.ts +7 -2
- package/src/client/a2a/extensions/interactions/approval/schemas.ts +8 -4
- package/src/client/a2a/extensions/interactions/approval/types.ts +7 -2
- package/src/client/a2a/extensions/schemas.ts +1 -0
- package/src/client/a2a/extensions/types.ts +1 -0
- package/src/client/core/extensions/resolve-user-metadata.ts +5 -1
- package/src/client/core/extensions/types.ts +4 -3
- package/src/client/core/handle-agent-card.ts +12 -9
package/dist/core.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import t from"zod";function e(){return e=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},e.apply(null,arguments)}function n(t,n){const i=null!=n?n:void 0!==globalThis.fetch?globalThis.fetch:void 0;if(!i)throw new Error("fetch is not available. In Node.js < 18 or environments without global fetch, provide a fetch implementation via the baseFetch parameter.");return async(n,r)=>{const a=new Headers(null==r?void 0:r.headers);return a.set("Authorization",`Bearer ${t}`),i(n,e({},r,{headers:a}))}}function i(t){const e=t.getMessageMetadataSchema(),n=t.getUri();return function(t){const{success:i,data:r,error:a}=e.safeParse(null!=t?t:{});return i||console.warn(a),i?r[n]:null}}function r(t){const e=t.getDemandsSchema(),n=t.getUri();return function(t){const i=t.find(t=>t.uri===n);if(null==i||!i.params)return null;const{success:r,data:a,error:o}=e.safeParse(i.params);return r?a:(console.warn(o),null)}}function a(t){const n=t.getFulfillmentsSchema(),i=t.getUri();return function(t,r){const{success:a,data:o,error:s}=n.safeParse(r);return a||console.warn(s),e({},t,{[i]:a?o:{}})}}t.object({start_index:t.int(),end_index:t.int(),description:t.string().nullish(),artifact_id:t.string()});const o=t.object({id:t.string().nonempty(),label:t.string().nonempty(),required:t.boolean(),col_span:t.int().min(1).max(4).nullish()}),s=o.extend({type:t.literal("text"),placeholder:t.string().nullish(),default_value:t.string().nullish(),auto_resize:t.boolean().default(!0).nullish()}),l=o.extend({type:t.literal("date"),placeholder:t.string().nullish(),default_value:t.string().nullish()}),c=o.extend({type:t.literal("file"),accept:t.array(t.string())}),d=o.extend({type:t.literal("singleselect"),options:t.array(t.object({id:t.string().nonempty(),label:t.string().nonempty()})).nonempty(),default_value:t.string().nullish()}),g=o.extend({type:t.literal("multiselect"),options:t.array(t.object({id:t.string().nonempty(),label:t.string().nonempty()})).nonempty(),default_value:t.array(t.string()).nullish()}),u=o.extend({type:t.literal("checkbox"),content:t.string(),default_value:t.boolean()}),p=t.discriminatedUnion("type",[s,l,c,d,g,u]),m=t.object({type:s.shape.type,value:t.string().nullish()}),b=t.object({type:l.shape.type,value:t.string().nullish()}),h=t.object({type:c.shape.type,value:t.array(t.object({uri:t.string(),name:t.string().nullish(),mime_type:t.string().nullish()})).nullish()}),_=t.object({type:d.shape.type,value:t.string().nullish()}),y=t.object({type:g.shape.type,value:t.array(t.string()).nullish()}),f=t.object({type:u.shape.type,value:t.boolean().nullish()}),j=t.discriminatedUnion("type",[m,b,h,_,y,f]),v=t.object({title:t.string().nullish(),description:t.string().nullish(),columns:t.int().min(1).max(4).nullish(),submit_label:t.string().nullish(),fields:t.array(p).nonempty()}),x=t.record(t.string(),j),k=t.object({values:x}),w="https://a2a-extensions.agentstack.beeai.dev/ui/form_request/v1",U={getUri:()=>w,getMessageMetadataSchema:()=>t.object({[w]:v}).partial()},S=async t=>{const e={},{form:n,canvasEditRequest:i}=t;return n&&(e[U.getUri()]={values:n}),i&&(e["https://a2a-extensions.agentstack.beeai.dev/ui/canvas/v1"]=i),e};var q,M;!function(t){t.SecretRequired="secret-required",t.FormRequired="form-required",t.OAuthRequired="oauth-required",t.ApprovalRequired="approval-required"}(q||(q={})),function(t){t.Get="GET",t.Post="POST",t.Put="PUT",t.Delete="DELETE",t.Patch="PATCH"}(M||(M={})),t.object({id:t.string(),created_by:t.string(),updated_at:t.string(),default_embedding_model:t.string().nullish(),default_llm_model:t.string().nullish()}),t.never(),t.object({default_embedding_model:t.string().nullish(),default_llm_model:t.string().nullish()});const I=t.object({limit:t.number().optional(),order:t.string().optional(),order_by:t.string().optional(),page_token:t.string().nullish()}),T=t.object({items:t.array(t.unknown()),total_count:t.number(),has_more:t.boolean(),next_page_token:t.string().nullable()});var D;!function(t){t.Created="created",t.AuthRequired="auth_required",t.Connected="connected",t.Disconnected="disconnected"}(D||(D={}));const A=t.enum(D),O=t.object({id:t.string(),url:t.string(),state:A,auth_request:t.object({type:t.literal("code"),authorization_endpoint:t.string()}).nullable(),disconnect_reason:t.string().nullable(),metadata:t.record(t.string(),t.string()).nullable()});t.never(),T.extend({items:t.array(O)}),t.object({match_preset:t.boolean(),url:t.string(),client_id:t.string().nullish(),client_secret:t.string().nullish(),metadata:t.record(t.string(),t.string()).nullish()}),t.object({connector_id:t.string()}),t.object({connector_id:t.string()}),t.null(),t.object({connector_id:t.string(),redirect_url:t.string().nullish()}),t.object({connector_id:t.string()});const R=t.object({url:t.string(),metadata:t.record(t.string(),t.string()).nullable()});function C(e){return t.preprocess(t=>E(e,t),e)}function E(e,n){if(e instanceof t.ZodOptional){if(null===n)return;return E(e.unwrap(),n)}if(e instanceof t.ZodObject){if(null===n||"object"!=typeof n||Array.isArray(n))return n;const{shape:t}=e,i=n;return Object.keys(i).reduce((e,n)=>(e[n]=n in t?E(t[n],i[n]):i[n],e),{})}return n}t.never(),T.extend({items:t.array(R)});const P=C(t.object({transport:t.string(),url:t.string()})),F=C(t.object({uri:t.string(),description:t.string().optional(),required:t.boolean().optional(),params:t.record(t.string(),t.unknown()).optional()})),z=C(t.object({extensions:t.array(F).optional(),pushNotifications:t.boolean().optional(),stateTransitionHistory:t.boolean().optional(),streaming:t.boolean().optional()})),H=C(t.object({url:t.string(),organization:t.string()})),N=C(t.object({signature:t.string(),protected:t.string(),header:t.record(t.string(),t.unknown()).optional()})),G=C(t.object({id:t.string(),name:t.string(),description:t.string(),tags:t.array(t.string()),inputModes:t.array(t.string()).optional(),outputModes:t.array(t.string()).optional(),examples:t.array(t.string()).optional(),security:t.array(t.record(t.string(),t.array(t.string()))).optional()})),L=C(t.object({authorizationUrl:t.string(),tokenUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),Z=C(t.object({tokenUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),B=C(t.object({authorizationUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),V=C(t.object({tokenUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),$=C(t.object({authorizationCode:L.optional(),clientCredentials:Z.optional(),implicit:B.optional(),password:V.optional()})),J=C(t.object({type:t.literal("apiKey"),name:t.string(),in:t.literal(["cookie","header","query"]),description:t.string().optional()})),K=C(t.object({type:t.literal("http"),scheme:t.string(),description:t.string().optional(),bearerFormat:t.string().optional()})),W=C(t.object({type:t.literal("oauth2"),flows:$,description:t.string().optional(),oauth2MetadataUrl:t.string().optional()})),Q=C(t.object({type:t.literal("openIdConnect"),openIdConnectUrl:t.string(),description:t.string().optional()})),X=C(t.object({type:t.literal("mutualTLS"),description:t.string().optional()})),Y=C(t.union([J,K,W,Q,X])),tt=C(t.object({url:t.string(),name:t.string(),description:t.string(),version:t.string(),protocolVersion:t.string(),capabilities:z,defaultInputModes:t.array(t.string()),defaultOutputModes:t.array(t.string()),skills:t.array(G),iconUrl:t.string().optional(),documentationUrl:t.string().optional(),preferredTransport:t.string().optional(),supportsAuthenticatedExtendedCard:t.boolean().optional(),additionalInterfaces:t.array(P).optional(),provider:H.optional(),signatures:t.array(N).optional(),security:t.array(t.record(t.string(),t.array(t.string()))).optional(),securitySchemes:t.record(t.string(),Y).optional()})),et=C(t.object({bytes:t.string(),mimeType:t.string().optional(),name:t.string().optional()})),nt=C(t.object({uri:t.string(),mimeType:t.string().optional(),name:t.string().optional()})),it=C(t.object({kind:t.literal("text"),text:t.string(),metadata:t.record(t.string(),t.unknown()).optional()})),rt=C(t.object({kind:t.literal("file"),file:t.union([et,nt]),metadata:t.record(t.string(),t.unknown()).optional()})),at=C(t.object({kind:t.literal("data"),data:t.record(t.string(),t.unknown()),metadata:t.record(t.string(),t.unknown()).optional()})),ot=C(t.union([it,rt,at])),st=C(t.object({artifactId:t.string(),parts:t.array(ot),description:t.string().optional(),extensions:t.array(t.string()).optional(),metadata:t.record(t.string(),t.unknown()).optional(),name:t.string().optional()})),lt=C(t.object({kind:t.literal("message"),messageId:t.string(),parts:t.array(ot),role:t.literal(["agent","user"]),contextId:t.string().optional(),extensions:t.array(t.string()).optional(),metadata:t.record(t.string(),t.unknown()).optional(),referenceTaskIds:t.array(t.string()).optional(),taskId:t.string().optional()})),ct=C(t.object({state:t.literal(["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"]),message:lt.optional(),timestamp:t.string().optional()}));C(t.object({kind:t.literal("status-update"),taskId:t.string(),contextId:t.string(),status:ct,final:t.boolean(),metadata:t.record(t.string(),t.unknown()).optional()}));const dt=C(t.object({kind:t.literal("task"),id:t.string(),contextId:t.string(),status:ct,artifacts:t.array(st).optional(),history:t.array(lt).optional(),metadata:t.record(t.string(),t.unknown()).optional()}));C(t.object({kind:t.literal("artifact-update"),taskId:t.string(),contextId:t.string(),artifact:st,append:t.boolean().optional(),lastChunk:t.boolean().optional(),metadata:t.record(t.string(),t.unknown()).optional()}));const gt=t.object({message:t.string(),data:t.record(t.string(),t.unknown()).optional()}),ut=C(gt.extend({code:t.number()})),pt=C(gt.extend({code:t.literal(-32700)})),mt=C(gt.extend({code:t.literal(-32600)})),bt=C(gt.extend({code:t.literal(-32601)})),ht=C(gt.extend({code:t.literal(-32602)})),_t=C(gt.extend({code:t.literal(-32603)})),yt=C(gt.extend({code:t.literal(-32001)})),ft=C(gt.extend({code:t.literal(-32002)})),jt=C(gt.extend({code:t.literal(-32003)})),vt=C(gt.extend({code:t.literal(-32004)})),xt=C(gt.extend({code:t.literal(-32005)})),kt=C(gt.extend({code:t.literal(-32006)})),wt=C(gt.extend({code:t.literal(-32007)})),Ut=C(t.object({jsonrpc:t.literal("2.0"),id:t.union([t.string(),t.number()]).nullable(),error:t.union([ut,pt,mt,bt,ht,_t,yt,ft,jt,vt,xt,kt,wt])})),St=C(t.object({jsonrpc:t.literal("2.0"),id:t.union([t.string(),t.number()]).nullable(),result:dt}));var qt;C(t.union([Ut,St])),function(t){t.Artifact="artifact",t.Message="message"}(qt||(qt={}));const Mt=t.object({id:t.string(),created_at:t.string(),updated_at:t.string(),last_active_at:t.string(),created_by:t.string(),provider_id:t.string().nullable(),metadata:t.record(t.string(),t.unknown()).nullable()});t.object({query:I.extend({provider_id:t.string().nullish(),include_empty:t.boolean().optional()}).optional()}),T.extend({items:t.array(Mt)}),t.object({provider_id:t.string().nullish(),metadata:t.record(t.string(),t.string()).nullish()}),t.object({context_id:t.string()}),t.object({context_id:t.string(),metadata:t.record(t.string(),t.string()).nullish()}),t.object({context_id:t.string()}),t.null();const It=t.enum(qt),Tt=t.object({id:t.string(),context_id:t.string(),created_at:t.string(),kind:It,data:t.union([st,lt])});t.object({context_id:t.string(),query:I.optional()}),T.extend({items:t.array(Tt)}),t.object({context_id:t.string(),data:t.union([st,lt])}),t.null(),t.object({context_id:t.string(),metadata:t.record(t.string(),t.union([t.string(),t.null()]))}),t.object({token:t.string(),expires_at:t.string().nullable()});const Dt=t.object({id:t.string()}),At=t.object({files:t.array(t.literal(["read","write","extract","*"])).optional(),vector_stores:t.array(t.literal(["read","write","*"])).optional(),context_data:t.array(t.literal(["read","write","*"])).optional()}),Ot=At.extend({feedback:t.array(t.literal("write")).optional(),llm:t.array(t.union([t.literal("*"),Dt])).optional(),embeddings:t.array(t.union([t.literal("*"),Dt])).optional(),model_providers:t.array(t.literal(["read","write","*"])).optional(),a2a_proxy:t.array(t.union([t.literal("*"),t.string()])).optional(),providers:t.array(t.literal(["read","write","*"])).optional(),provider_variables:t.array(t.literal(["read","write","*"])).optional(),contexts:t.array(t.literal(["read","write","*"])).optional(),connectors:t.array(t.literal(["read","write","proxy","*"])).optional()}).superRefine((e,n)=>{if(!e.a2a_proxy)return;if(0===e.a2a_proxy.length)return void n.addIssue({code:t.ZodIssueCode.custom,message:"a2a_proxy cannot be empty array",path:["a2a_proxy"]});const i=e.a2a_proxy.includes("*"),r=e.a2a_proxy.some(t=>"*"!==t);i&&r&&n.addIssue({code:t.ZodIssueCode.custom,message:"a2a_proxy cannot mix '*' with specific providers",path:["a2a_proxy"]})});var Rt;t.object({context_id:t.string(),grant_context_permissions:At.optional(),grant_global_permissions:Ot.optional()}),function(t){t.UserUpload="user_upload",t.ExtractedText="extracted_text"}(Rt||(Rt={}));const Ct=t.enum(Rt);var Et,Pt;t.object({id:t.string(),filename:t.string(),content_type:t.string(),file_type:Ct,created_by:t.string(),created_at:t.string(),context_id:t.string().nullish(),file_size_bytes:t.number().nullish(),parent_file_id:t.string().nullish()}),t.object({context_id:t.string().nullable(),file:t.union([t.file(),t.object({blob:t.instanceof(Blob),filename:t.string()})])}),t.object({context_id:t.string().nullable(),file_id:t.string()}),t.object({context_id:t.string().nullable(),file_id:t.string()}),t.null(),t.object({context_id:t.string().nullable(),file_id:t.string()}),t.unknown(),function(t){t.Llm="llm",t.Embedding="embedding"}(Et||(Et={})),function(t){t.Anthropic="anthropic",t.Cerebras="cerebras",t.Chutes="chutes",t.Cohere="cohere",t.DeepSeek="deepseek",t.Gemini="gemini",t.GitHub="github",t.Groq="groq",t.Watsonx="watsonx",t.Jan="jan",t.Mistral="mistral",t.Moonshot="moonshot",t.Nvidia="nvidia",t.Ollama="ollama",t.OpenAI="openai",t.OpenRouter="openrouter",t.Perplexity="perplexity",t.Together="together",t.Voyage="voyage",t.Rits="rits",t.Other="other"}(Pt||(Pt={}));const Ft=t.enum(Et),zt=t.enum(Pt),Ht=t.object({id:t.string(),base_url:t.string(),created_at:t.string(),capabilities:t.array(Ft),name:t.string().nullish(),description:t.string().nullish(),type:zt});var Nt;t.never(),T.extend({items:t.array(Ht)}),t.object({api_key:t.string(),base_url:t.string(),type:zt,name:t.string().nullish(),description:t.string().nullish(),watsonx_project_id:t.string().nullish(),watsonx_space_id:t.string().nullish()}),t.object({model_provider_id:t.string()}),t.object({model_provider_id:t.string()}),t.null(),t.object({suggested_models:t.array(t.string()).nullable(),capability:Ft,score_cutoff:t.number()}),T.extend({items:t.array(t.object({model_id:t.string(),score:t.number()}))}),function(t){t.Head="head",t.Tag="tag"}(Nt||(Nt={}));const Gt=t.enum(Nt),Lt=t.string(),Zt=t.string(),Bt=t.string(),Vt=t.string(),$t=Vt,Jt=t.string(),Kt=t.object({host:t.string(),org:t.string(),repo:t.string(),version:t.string(),version_type:Gt,commit_hash:t.string(),path:t.string().nullish()}),Wt=t.object({registry:t.string(),repository:t.string(),tag:t.string(),digest:t.string(),image_id:Vt});var Qt;t.custom(t=>t instanceof ReadableStream,{error:"Expected ReadableStream"}),function(t){t.Missing="missing",t.InProgress="in_progress",t.BuildCompleted="build_completed",t.Completed="completed",t.Failed="failed"}(Qt||(Qt={}));const Xt=t.enum(Qt),Yt=t.object({type:t.literal("add_provider"),auto_stop_timeout_sec:t.number().nullish(),variables:t.record(t.string(),t.string()).nullish()}),te=t.object({type:t.literal("update_provider"),provider_id:t.string()}),ee=t.object({type:t.literal("no_action")}),ne=t.union([Yt,te,ee]),ie=t.object({dockerfile_path:t.string().nullish()}),re=t.object({id:t.string(),created_at:t.string(),created_by:t.string(),provider_origin:t.string(),status:Xt,source:Kt,destination:Vt,on_complete:ne,build_configuration:ie.nullish(),provider_id:t.string().nullish(),error_message:t.string().nullish()});var ae,oe,se;t.object({query:I.extend({status:Xt.nullish(),user_owned:t.boolean().nullish()}).optional()}),T.extend({items:t.array(re)}),t.object({location:t.string(),build_configuration:ie.nullish(),on_complete:ne.optional()}),t.object({id:t.string()}),t.object({id:t.string()}),t.null(),t.object({id:t.string()}),t.object({location:t.string(),build_configuration:ie.nullish(),on_complete:ne.optional()}),function(t){t.Managed="managed",t.Unmanaged="unmanaged"}(ae||(ae={})),function(t){t.Missing="missing",t.Starting="starting",t.Ready="ready",t.Running="running",t.Error="error"}(oe||(oe={})),function(t){t.Online="online",t.Offline="offline"}(se||(se={}));const le=t.enum(ae),ce=t.enum(oe),de=t.enum(se),ge=t.object({message:t.string()}),ue=t.object({name:t.string(),required:t.boolean(),description:t.string().nullish()}),pe=t.object({docker:Wt.nullish(),github:Kt.nullish()}),me=t.object({id:t.string(),source:t.union([$t,Jt]),agent_card:tt,state:t.union([ce,de]),origin:t.string(),created_at:t.string(),created_by:t.string(),updated_at:t.string(),last_active_at:t.string(),auto_stop_timeout:t.string(),managed:t.boolean(),type:le,env:t.array(ue),registry:t.union([Lt,Zt,Bt]).nullish(),last_error:ge.nullish(),missing_configuration:t.array(ue).optional(),version_info:pe.optional()});var be;t.object({query:t.object({origin:t.string().nullish(),user_owned:t.boolean().nullish()}).optional()}),T.extend({items:t.array(me)}),t.object({location:t.union([$t,Jt]),agent_card:tt.nullish(),auto_stop_timeout_sec:t.number().nullish(),origin:t.string().nullish(),variables:t.record(t.string(),t.string()).nullish()}),t.object({id:t.string()}),t.object({id:t.string()}),t.null(),t.object({id:t.string(),location:t.union([$t,Jt]).nullish(),agent_card:tt.nullish(),auto_stop_timeout_sec:t.number().nullish(),origin:t.string().nullish(),variables:t.record(t.string(),t.string()).nullish()}),t.object({id:t.string()}),t.object({id:t.string()}),t.object({variables:t.record(t.string(),t.string())}),t.object({id:t.string(),variables:t.record(t.string(),t.union([t.string(),t.null()]))}),t.null(),t.object({location:t.string()}),t.object({provider_id:t.string(),context_id:t.string(),task_id:t.string(),message:t.string(),rating:t.union([t.literal(1),t.literal(-1)]),comment:t.string().nullish(),comment_tags:t.array(t.string()).nullish()}),t.null(),function(t){t.Admin="admin",t.Developer="developer",t.User="user"}(be||(be={}));const he=t.enum(be);var _e;t.object({id:t.string(),role:he,email:t.string(),created_at:t.string()}),t.never(),t.never(),t.object({variables:t.record(t.string(),t.string())}),t.object({variables:t.record(t.string(),t.union([t.string(),t.null()]))}),t.null(),function(t){t.Http="http",t.Network="network",t.Parse="parse",t.Unknown="unknown",t.Validation="validation"}(_e||(_e={}));class ye extends Error{constructor(t){super(t.message),this.apiError=void 0,this.apiError=t}}const fe=(t,e)=>async({llm_demands:n})=>{const i=Object.keys(n).map(async i=>{var r;const a=n[i],o=function(t){if(t.ok){const{data:e}=t;return e}throw new ye(t.error)}(await t.matchModelProviders({suggested_models:null!=(r=a.suggested)?r:[],capability:Et.Llm,score_cutoff:.4}));if(0===o.items.length)throw new Error(`No models found for demand ${i}. Demand details: ${JSON.stringify(a)}`);return[i,{identifier:"llm_proxy",api_base:"{platform_url}/api/v1/openai/",api_key:e.token,api_model:o.items[0].model_id}]}),r=await Promise.all(i);return{llm_fulfillments:Object.fromEntries(r)}},je=t.object({redirect_uri:t.boolean()}),ve=t.object({oauth_demands:t.record(t.string(),je)}),xe=t.object({redirect_uri:t.string()}),ke=t.object({oauth_fulfillments:t.record(t.string(),xe)}),we=t.object({authorization_endpoint_url:t.string()}),Ue=t.object({redirect_uri:t.string()});t.object({data:Ue});const Se="https://a2a-extensions.agentstack.beeai.dev/auth/oauth/v1",qe={getUri:()=>Se,getDemandsSchema:()=>ve,getFulfillmentsSchema:()=>ke},Me={getUri:()=>Se,getMessageMetadataSchema:()=>t.object({[Se]:we}).partial()},Ie=t.object({name:t.string(),description:t.string().nullish()}),Te=t.object({secret_demands:t.record(t.string(),Ie)}),De=t.object({secret:t.string()}),Ae=t.object({secret_fulfillments:t.record(t.string(),De)}),Oe="https://a2a-extensions.agentstack.beeai.dev/auth/secrets/v1",Re={getUri:()=>Oe,getDemandsSchema:()=>Te,getFulfillmentsSchema:()=>Ae},Ce={getUri:()=>Oe,getMessageMetadataSchema:()=>t.object({[Oe]:Te}).partial()},Ee=t.object({description:t.string().nullish(),suggested:t.array(t.string()).nullish()}),Pe=t.object({embedding_demands:t.record(t.string(),Ee)}),Fe=t.object({identifier:t.string().nullish(),api_base:t.string(),api_key:t.string(),api_model:t.string()}),ze=t.object({embedding_fulfillments:t.record(t.string(),Fe)}),He={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/embedding/v1",getDemandsSchema:()=>Pe,getFulfillmentsSchema:()=>ze},Ne=t.object({form_demands:t.object({initial_form:v}).partial()}),Ge=t.object({form_fulfillments:t.record(t.string(),k)}),Le={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/form/v1",getDemandsSchema:()=>Ne,getFulfillmentsSchema:()=>Ge},Ze=t.object({description:t.string().nullish(),suggested:t.array(t.string()).nullish()}),Be=t.object({llm_demands:t.record(t.string(),Ze)}),Ve=t.object({identifier:t.string().nullish(),api_base:t.string(),api_key:t.string(),api_model:t.string()}),$e=t.object({llm_fulfillments:t.record(t.string(),Ve)}),Je={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/llm/v1",getDemandsSchema:()=>Be,getFulfillmentsSchema:()=>$e};var Ke;!function(t){t.StreamableHttp="streamable_http",t.Stdio="stdio"}(Ke||(Ke={}));const We=t.enum(Ke),Qe=t.object({description:t.string().nullish(),suggested:t.array(t.string()).nullish(),allowed_transports:t.array(We).nullish()}),Xe=t.object({mcp_demands:t.record(t.string(),Qe)}),Ye=t.object({transport:t.object({type:We,url:t.string(),headers:t.record(t.string(),t.string()).optional()})}),tn=t.object({mcp_fulfillments:t.record(t.string(),Ye)}),en={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/mcp/v1",getDemandsSchema:()=>Xe,getFulfillmentsSchema:()=>tn},nn="https://a2a-extensions.agentstack.beeai.dev/services/platform_api/v1",rn=t.object({id:t.string().nonempty(),label:t.string().nonempty(),default_value:t.boolean()}),an=t.object({id:t.string().nonempty(),type:t.literal("checkbox_group"),fields:t.array(rn)}),on=t.object({label:t.string().nonempty(),value:t.string().nonempty()}),sn=t.object({type:t.literal("single_select"),id:t.string().nonempty(),label:t.string().nonempty(),options:t.array(on).nonempty(),default_value:t.string().nonempty()}),ln=t.discriminatedUnion("type",[an,sn]),cn=t.object({value:t.boolean()}),dn=t.object({type:t.literal("checkbox_group"),values:t.record(t.string(),cn)}),gn=t.object({type:t.literal("single_select"),value:t.string()}),un=t.discriminatedUnion("type",[dn,gn]),pn=t.object({fields:t.array(ln)}),mn=t.record(t.string(),un),bn=t.object({values:mn}),hn={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/ui/settings/v1",getDemandsSchema:()=>pn,getFulfillmentsSchema:()=>bn},_n=r(en),yn=r(Je),fn=r(He),jn=r(qe),vn=r(hn),xn=r(Re),kn=r(Le),wn=a(en),Un=a(Je),Sn=a(He),qn=a(qe),Mn=a(hn),In=a(Re),Tn=a(Le),Dn=t=>{var n;const i=null!=(n=t.capabilities.extensions)?n:[],r=yn(i),a=fn(i),o=_n(i),s=jn(i),l=vn(i),c=xn(i),d=kn(i);return{resolveMetadata:async t=>{let n={};var i,g;i=n,g=t.getContextToken(),n=e({},i,{[nn]:{auth_token:g.token,expires_at:g.expires_at}}),r&&(n=Un(n,await t.llm(r))),a&&(n=Sn(n,await t.embedding(a))),o&&(n=wn(n,await t.mcp(o))),s&&(n=qn(n,await t.oauth(s))),l&&(n=Mn(n,await t.settings(l))),c&&(n=In(n,await t.secrets(c))),d&&(n=Tn(n,await t.form(d)));const u=t.oauthRedirectUri();return u&&(n=e({},n,{[Me.getUri()]:{redirect_uri:u}})),n},demands:{llmDemands:r,embeddingDemands:a,mcpDemands:o,oauthDemands:s,settingsDemands:l,secretDemands:c,formDemands:d}}},An=t.object({action:t.literal("generic"),title:t.string().nullish().describe("A human-readable title for the action being approved."),description:t.string().nullish().describe("A human-readable description of the action being approved.")}),On=t.object({action:t.literal("tool-call"),title:t.string().nullish().describe("A human-readable title for the tool call being approved."),description:t.string().nullish().describe("A human-readable description of the tool call being approved."),name:t.string().describe("The programmatic name of the tool."),input:t.object().nullish().describe("The input for the tool."),server:t.object({name:t.string().describe("The programmatic name of the server."),title:t.string().nullish().describe("A human-readable title for the server."),version:t.string().describe("The version of the server.")}).nullish().describe("The server executing the tool.")}),Rn=t.discriminatedUnion("action",[An,On]);t.object({decision:t.enum(["approve","reject"])});const Cn="https://a2a-extensions.agentstack.beeai.dev/interactions/approval/v1",En={getUri:()=>Cn,getMessageMetadataSchema:()=>t.object({[Cn]:Rn}).partial()},Pn=i(Ce),Fn=i(Me),zn=i(U),Hn=i(En),Nn=t=>{const e=[];if("auth-required"===t.status.state){var n,i;const r=Pn(null==(n=t.status.message)?void 0:n.metadata),a=Fn(null==(i=t.status.message)?void 0:i.metadata);a&&e.push({type:q.OAuthRequired,url:a.authorization_endpoint_url}),r&&e.push({type:q.SecretRequired,demands:r})}else if("input-required"===t.status.state){var r,a;const n=zn(null==(r=t.status.message)?void 0:r.metadata),i=Hn(null==(a=t.status.message)?void 0:a.metadata);n&&e.push({type:q.FormRequired,form:n}),i&&e.push({type:q.ApprovalRequired,request:i})}return e},Gn=t=>async(n,i,r)=>{const{resolveMetadata:a}=Dn(t);return e({},r,{contextId:n,kind:"message",role:"user",metadata:await a(i)})};export{q as TaskStatusUpdateType,fe as buildLLMExtensionFulfillmentResolver,Gn as buildMessageBuilder,n as createAuthenticatedFetch,r as extractServiceExtensionDemands,i as extractUiExtensionData,a as fulfillServiceExtensionDemand,Dn as handleAgentCard,Nn as handleTaskStatusUpdate,S as resolveUserMetadata};
|
|
1
|
+
import t from"zod";function e(){return e=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},e.apply(null,arguments)}function n(t,n){const i=null!=n?n:void 0!==globalThis.fetch?globalThis.fetch:void 0;if(!i)throw new Error("fetch is not available. In Node.js < 18 or environments without global fetch, provide a fetch implementation via the baseFetch parameter.");return async(n,r)=>{const a=new Headers(null==r?void 0:r.headers);return a.set("Authorization",`Bearer ${t}`),i(n,e({},r,{headers:a}))}}function i(t){const e=t.getMessageMetadataSchema(),n=t.getUri();return function(t){const{success:i,data:r,error:a}=e.safeParse(null!=t?t:{});return i||console.warn(a),i?r[n]:null}}function r(t){const e=t.getDemandsSchema(),n=t.getUri();return function(t){const i=t.find(t=>t.uri===n);if(null==i||!i.params)return null;const{success:r,data:a,error:o}=e.safeParse(i.params);return r?a:(console.warn(o),null)}}function a(t){const n=t.getFulfillmentsSchema(),i=t.getUri();return function(t,r){const{success:a,data:o,error:s}=n.safeParse(r);return a||console.warn(s),e({},t,{[i]:a?o:{}})}}var o;!function(t){t.Approve="approve",t.Reject="reject"}(o||(o={}));const s=t.object({action:t.literal("generic"),title:t.string().nullish().describe("A human-readable title for the action being approved."),description:t.string().nullish().describe("A human-readable description of the action being approved.")}),l=t.object({action:t.literal("tool-call"),title:t.string().nullish().describe("A human-readable title of the tool."),description:t.string().nullish().describe("A human-readable description of the tool."),name:t.string().describe("The programmatic name of the tool."),input:t.object().nullish().describe("The input for the tool."),server:t.object({name:t.string().describe("The programmatic name of the server."),title:t.string().nullish().describe("A human-readable title for the server."),version:t.string().describe("The version of the server.")}).nullish().describe("The server executing the tool.")}),c=t.discriminatedUnion("action",[s,l]),d=t.enum(o),g=(t.object({decision:d}),"https://a2a-extensions.agentstack.beeai.dev/interactions/approval/v1"),u={getUri:()=>g,getMessageMetadataSchema:()=>t.object({[g]:c}).partial()},p=(t.object({start_index:t.int(),end_index:t.int(),description:t.string().nullish(),artifact_id:t.string()}),"https://a2a-extensions.agentstack.beeai.dev/ui/canvas/v1"),m=t.object({id:t.string().nonempty(),label:t.string().nonempty(),required:t.boolean(),col_span:t.int().min(1).max(4).nullish()}),b=m.extend({type:t.literal("text"),placeholder:t.string().nullish(),default_value:t.string().nullish(),auto_resize:t.boolean().default(!0).nullish()}),h=m.extend({type:t.literal("date"),placeholder:t.string().nullish(),default_value:t.string().nullish()}),_=m.extend({type:t.literal("file"),accept:t.array(t.string())}),y=m.extend({type:t.literal("singleselect"),options:t.array(t.object({id:t.string().nonempty(),label:t.string().nonempty()})).nonempty(),default_value:t.string().nullish()}),f=m.extend({type:t.literal("multiselect"),options:t.array(t.object({id:t.string().nonempty(),label:t.string().nonempty()})).nonempty(),default_value:t.array(t.string()).nullish()}),j=m.extend({type:t.literal("checkbox"),content:t.string(),default_value:t.boolean()}),v=t.discriminatedUnion("type",[b,h,_,y,f,j]),x=t.object({type:b.shape.type,value:t.string().nullish()}),k=t.object({type:h.shape.type,value:t.string().nullish()}),w=t.object({type:_.shape.type,value:t.array(t.object({uri:t.string(),name:t.string().nullish(),mime_type:t.string().nullish()})).nullish()}),U=t.object({type:y.shape.type,value:t.string().nullish()}),S=t.object({type:f.shape.type,value:t.array(t.string()).nullish()}),q=t.object({type:j.shape.type,value:t.boolean().nullish()}),M=t.discriminatedUnion("type",[x,k,w,U,S,q]),T=t.object({title:t.string().nullish(),description:t.string().nullish(),columns:t.int().min(1).max(4).nullish(),submit_label:t.string().nullish(),fields:t.array(v).nonempty()}),I=t.record(t.string(),M),D=t.object({values:I}),R="https://a2a-extensions.agentstack.beeai.dev/ui/form_request/v1",A={getUri:()=>R,getMessageMetadataSchema:()=>t.object({[R]:T}).partial()},O=async t=>{const e={},{form:n,canvasEditRequest:i,approvalResponse:r}=t;return n&&(e[A.getUri()]={values:n}),i&&(e[p]=i),r&&(e[g]=r),e};var C,E;!function(t){t.SecretRequired="secret-required",t.FormRequired="form-required",t.OAuthRequired="oauth-required",t.ApprovalRequired="approval-required"}(C||(C={})),function(t){t.Get="GET",t.Post="POST",t.Put="PUT",t.Delete="DELETE",t.Patch="PATCH"}(E||(E={})),t.object({id:t.string(),created_by:t.string(),updated_at:t.string(),default_embedding_model:t.string().nullish(),default_llm_model:t.string().nullish()}),t.never(),t.object({default_embedding_model:t.string().nullish(),default_llm_model:t.string().nullish()});const P=t.object({limit:t.number().optional(),order:t.string().optional(),order_by:t.string().optional(),page_token:t.string().nullish()}),F=t.object({items:t.array(t.unknown()),total_count:t.number(),has_more:t.boolean(),next_page_token:t.string().nullable()});var z;!function(t){t.Created="created",t.AuthRequired="auth_required",t.Connected="connected",t.Disconnected="disconnected"}(z||(z={}));const H=t.enum(z),N=t.object({id:t.string(),url:t.string(),state:H,auth_request:t.object({type:t.literal("code"),authorization_endpoint:t.string()}).nullable(),disconnect_reason:t.string().nullable(),metadata:t.record(t.string(),t.string()).nullable()});t.never(),F.extend({items:t.array(N)}),t.object({match_preset:t.boolean(),url:t.string(),client_id:t.string().nullish(),client_secret:t.string().nullish(),metadata:t.record(t.string(),t.string()).nullish()}),t.object({connector_id:t.string()}),t.object({connector_id:t.string()}),t.null(),t.object({connector_id:t.string(),redirect_url:t.string().nullish()}),t.object({connector_id:t.string()});const G=t.object({url:t.string(),metadata:t.record(t.string(),t.string()).nullable()});function L(e){return t.preprocess(t=>Z(e,t),e)}function Z(e,n){if(e instanceof t.ZodOptional){if(null===n)return;return Z(e.unwrap(),n)}if(e instanceof t.ZodObject){if(null===n||"object"!=typeof n||Array.isArray(n))return n;const{shape:t}=e,i=n;return Object.keys(i).reduce((e,n)=>(e[n]=n in t?Z(t[n],i[n]):i[n],e),{})}return n}t.never(),F.extend({items:t.array(G)});const B=L(t.object({transport:t.string(),url:t.string()})),V=L(t.object({uri:t.string(),description:t.string().optional(),required:t.boolean().optional(),params:t.record(t.string(),t.unknown()).optional()})),$=L(t.object({extensions:t.array(V).optional(),pushNotifications:t.boolean().optional(),stateTransitionHistory:t.boolean().optional(),streaming:t.boolean().optional()})),J=L(t.object({url:t.string(),organization:t.string()})),K=L(t.object({signature:t.string(),protected:t.string(),header:t.record(t.string(),t.unknown()).optional()})),W=L(t.object({id:t.string(),name:t.string(),description:t.string(),tags:t.array(t.string()),inputModes:t.array(t.string()).optional(),outputModes:t.array(t.string()).optional(),examples:t.array(t.string()).optional(),security:t.array(t.record(t.string(),t.array(t.string()))).optional()})),Q=L(t.object({authorizationUrl:t.string(),tokenUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),X=L(t.object({tokenUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),Y=L(t.object({authorizationUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),tt=L(t.object({tokenUrl:t.string(),scopes:t.record(t.string(),t.string()),refreshUrl:t.string().optional()})),et=L(t.object({authorizationCode:Q.optional(),clientCredentials:X.optional(),implicit:Y.optional(),password:tt.optional()})),nt=L(t.object({type:t.literal("apiKey"),name:t.string(),in:t.literal(["cookie","header","query"]),description:t.string().optional()})),it=L(t.object({type:t.literal("http"),scheme:t.string(),description:t.string().optional(),bearerFormat:t.string().optional()})),rt=L(t.object({type:t.literal("oauth2"),flows:et,description:t.string().optional(),oauth2MetadataUrl:t.string().optional()})),at=L(t.object({type:t.literal("openIdConnect"),openIdConnectUrl:t.string(),description:t.string().optional()})),ot=L(t.object({type:t.literal("mutualTLS"),description:t.string().optional()})),st=L(t.union([nt,it,rt,at,ot])),lt=L(t.object({url:t.string(),name:t.string(),description:t.string(),version:t.string(),protocolVersion:t.string(),capabilities:$,defaultInputModes:t.array(t.string()),defaultOutputModes:t.array(t.string()),skills:t.array(W),iconUrl:t.string().optional(),documentationUrl:t.string().optional(),preferredTransport:t.string().optional(),supportsAuthenticatedExtendedCard:t.boolean().optional(),additionalInterfaces:t.array(B).optional(),provider:J.optional(),signatures:t.array(K).optional(),security:t.array(t.record(t.string(),t.array(t.string()))).optional(),securitySchemes:t.record(t.string(),st).optional()})),ct=L(t.object({bytes:t.string(),mimeType:t.string().optional(),name:t.string().optional()})),dt=L(t.object({uri:t.string(),mimeType:t.string().optional(),name:t.string().optional()})),gt=L(t.object({kind:t.literal("text"),text:t.string(),metadata:t.record(t.string(),t.unknown()).optional()})),ut=L(t.object({kind:t.literal("file"),file:t.union([ct,dt]),metadata:t.record(t.string(),t.unknown()).optional()})),pt=L(t.object({kind:t.literal("data"),data:t.record(t.string(),t.unknown()),metadata:t.record(t.string(),t.unknown()).optional()})),mt=L(t.union([gt,ut,pt])),bt=L(t.object({artifactId:t.string(),parts:t.array(mt),description:t.string().optional(),extensions:t.array(t.string()).optional(),metadata:t.record(t.string(),t.unknown()).optional(),name:t.string().optional()})),ht=L(t.object({kind:t.literal("message"),messageId:t.string(),parts:t.array(mt),role:t.literal(["agent","user"]),contextId:t.string().optional(),extensions:t.array(t.string()).optional(),metadata:t.record(t.string(),t.unknown()).optional(),referenceTaskIds:t.array(t.string()).optional(),taskId:t.string().optional()})),_t=L(t.object({state:t.literal(["submitted","working","input-required","completed","canceled","failed","rejected","auth-required","unknown"]),message:ht.optional(),timestamp:t.string().optional()}));L(t.object({kind:t.literal("status-update"),taskId:t.string(),contextId:t.string(),status:_t,final:t.boolean(),metadata:t.record(t.string(),t.unknown()).optional()}));const yt=L(t.object({kind:t.literal("task"),id:t.string(),contextId:t.string(),status:_t,artifacts:t.array(bt).optional(),history:t.array(ht).optional(),metadata:t.record(t.string(),t.unknown()).optional()}));L(t.object({kind:t.literal("artifact-update"),taskId:t.string(),contextId:t.string(),artifact:bt,append:t.boolean().optional(),lastChunk:t.boolean().optional(),metadata:t.record(t.string(),t.unknown()).optional()}));const ft=t.object({message:t.string(),data:t.record(t.string(),t.unknown()).optional()}),jt=L(ft.extend({code:t.number()})),vt=L(ft.extend({code:t.literal(-32700)})),xt=L(ft.extend({code:t.literal(-32600)})),kt=L(ft.extend({code:t.literal(-32601)})),wt=L(ft.extend({code:t.literal(-32602)})),Ut=L(ft.extend({code:t.literal(-32603)})),St=L(ft.extend({code:t.literal(-32001)})),qt=L(ft.extend({code:t.literal(-32002)})),Mt=L(ft.extend({code:t.literal(-32003)})),Tt=L(ft.extend({code:t.literal(-32004)})),It=L(ft.extend({code:t.literal(-32005)})),Dt=L(ft.extend({code:t.literal(-32006)})),Rt=L(ft.extend({code:t.literal(-32007)})),At=L(t.object({jsonrpc:t.literal("2.0"),id:t.union([t.string(),t.number()]).nullable(),error:t.union([jt,vt,xt,kt,wt,Ut,St,qt,Mt,Tt,It,Dt,Rt])})),Ot=L(t.object({jsonrpc:t.literal("2.0"),id:t.union([t.string(),t.number()]).nullable(),result:yt}));var Ct;L(t.union([At,Ot])),function(t){t.Artifact="artifact",t.Message="message"}(Ct||(Ct={}));const Et=t.object({id:t.string(),created_at:t.string(),updated_at:t.string(),last_active_at:t.string(),created_by:t.string(),provider_id:t.string().nullable(),metadata:t.record(t.string(),t.unknown()).nullable()});t.object({query:P.extend({provider_id:t.string().nullish(),include_empty:t.boolean().optional()}).optional()}),F.extend({items:t.array(Et)}),t.object({provider_id:t.string().nullish(),metadata:t.record(t.string(),t.string()).nullish()}),t.object({context_id:t.string()}),t.object({context_id:t.string(),metadata:t.record(t.string(),t.string()).nullish()}),t.object({context_id:t.string()}),t.null();const Pt=t.enum(Ct),Ft=t.object({id:t.string(),context_id:t.string(),created_at:t.string(),kind:Pt,data:t.union([bt,ht])});t.object({context_id:t.string(),query:P.optional()}),F.extend({items:t.array(Ft)}),t.object({context_id:t.string(),data:t.union([bt,ht])}),t.null(),t.object({context_id:t.string(),metadata:t.record(t.string(),t.union([t.string(),t.null()]))}),t.object({token:t.string(),expires_at:t.string().nullable()});const zt=t.object({id:t.string()}),Ht=t.object({files:t.array(t.literal(["read","write","extract","*"])).optional(),vector_stores:t.array(t.literal(["read","write","*"])).optional(),context_data:t.array(t.literal(["read","write","*"])).optional()}),Nt=Ht.extend({feedback:t.array(t.literal("write")).optional(),llm:t.array(t.union([t.literal("*"),zt])).optional(),embeddings:t.array(t.union([t.literal("*"),zt])).optional(),model_providers:t.array(t.literal(["read","write","*"])).optional(),a2a_proxy:t.array(t.union([t.literal("*"),t.string()])).optional(),providers:t.array(t.literal(["read","write","*"])).optional(),provider_variables:t.array(t.literal(["read","write","*"])).optional(),contexts:t.array(t.literal(["read","write","*"])).optional(),connectors:t.array(t.literal(["read","write","proxy","*"])).optional()}).superRefine((e,n)=>{if(!e.a2a_proxy)return;if(0===e.a2a_proxy.length)return void n.addIssue({code:t.ZodIssueCode.custom,message:"a2a_proxy cannot be empty array",path:["a2a_proxy"]});const i=e.a2a_proxy.includes("*"),r=e.a2a_proxy.some(t=>"*"!==t);i&&r&&n.addIssue({code:t.ZodIssueCode.custom,message:"a2a_proxy cannot mix '*' with specific providers",path:["a2a_proxy"]})});var Gt;t.object({context_id:t.string(),grant_context_permissions:Ht.optional(),grant_global_permissions:Nt.optional()}),function(t){t.UserUpload="user_upload",t.ExtractedText="extracted_text"}(Gt||(Gt={}));const Lt=t.enum(Gt);var Zt,Bt;t.object({id:t.string(),filename:t.string(),content_type:t.string(),file_type:Lt,created_by:t.string(),created_at:t.string(),context_id:t.string().nullish(),file_size_bytes:t.number().nullish(),parent_file_id:t.string().nullish()}),t.object({context_id:t.string().nullable(),file:t.union([t.file(),t.object({blob:t.instanceof(Blob),filename:t.string()})])}),t.object({context_id:t.string().nullable(),file_id:t.string()}),t.object({context_id:t.string().nullable(),file_id:t.string()}),t.null(),t.object({context_id:t.string().nullable(),file_id:t.string()}),t.unknown(),function(t){t.Llm="llm",t.Embedding="embedding"}(Zt||(Zt={})),function(t){t.Anthropic="anthropic",t.Cerebras="cerebras",t.Chutes="chutes",t.Cohere="cohere",t.DeepSeek="deepseek",t.Gemini="gemini",t.GitHub="github",t.Groq="groq",t.Watsonx="watsonx",t.Jan="jan",t.Mistral="mistral",t.Moonshot="moonshot",t.Nvidia="nvidia",t.Ollama="ollama",t.OpenAI="openai",t.OpenRouter="openrouter",t.Perplexity="perplexity",t.Together="together",t.Voyage="voyage",t.Rits="rits",t.Other="other"}(Bt||(Bt={}));const Vt=t.enum(Zt),$t=t.enum(Bt),Jt=t.object({id:t.string(),base_url:t.string(),created_at:t.string(),capabilities:t.array(Vt),name:t.string().nullish(),description:t.string().nullish(),type:$t});var Kt;t.never(),F.extend({items:t.array(Jt)}),t.object({api_key:t.string(),base_url:t.string(),type:$t,name:t.string().nullish(),description:t.string().nullish(),watsonx_project_id:t.string().nullish(),watsonx_space_id:t.string().nullish()}),t.object({model_provider_id:t.string()}),t.object({model_provider_id:t.string()}),t.null(),t.object({suggested_models:t.array(t.string()).nullable(),capability:Vt,score_cutoff:t.number()}),F.extend({items:t.array(t.object({model_id:t.string(),score:t.number()}))}),function(t){t.Head="head",t.Tag="tag"}(Kt||(Kt={}));const Wt=t.enum(Kt),Qt=t.string(),Xt=t.string(),Yt=t.string(),te=t.string(),ee=te,ne=t.string(),ie=t.object({host:t.string(),org:t.string(),repo:t.string(),version:t.string(),version_type:Wt,commit_hash:t.string(),path:t.string().nullish()}),re=t.object({registry:t.string(),repository:t.string(),tag:t.string(),digest:t.string(),image_id:te});var ae;t.custom(t=>t instanceof ReadableStream,{error:"Expected ReadableStream"}),function(t){t.Missing="missing",t.InProgress="in_progress",t.BuildCompleted="build_completed",t.Completed="completed",t.Failed="failed"}(ae||(ae={}));const oe=t.enum(ae),se=t.object({type:t.literal("add_provider"),auto_stop_timeout_sec:t.number().nullish(),variables:t.record(t.string(),t.string()).nullish()}),le=t.object({type:t.literal("update_provider"),provider_id:t.string()}),ce=t.object({type:t.literal("no_action")}),de=t.union([se,le,ce]),ge=t.object({dockerfile_path:t.string().nullish()}),ue=t.object({id:t.string(),created_at:t.string(),created_by:t.string(),provider_origin:t.string(),status:oe,source:ie,destination:te,on_complete:de,build_configuration:ge.nullish(),provider_id:t.string().nullish(),error_message:t.string().nullish()});var pe,me,be;t.object({query:P.extend({status:oe.nullish(),user_owned:t.boolean().nullish()}).optional()}),F.extend({items:t.array(ue)}),t.object({location:t.string(),build_configuration:ge.nullish(),on_complete:de.optional()}),t.object({id:t.string()}),t.object({id:t.string()}),t.null(),t.object({id:t.string()}),t.object({location:t.string(),build_configuration:ge.nullish(),on_complete:de.optional()}),function(t){t.Managed="managed",t.Unmanaged="unmanaged"}(pe||(pe={})),function(t){t.Missing="missing",t.Starting="starting",t.Ready="ready",t.Running="running",t.Error="error"}(me||(me={})),function(t){t.Online="online",t.Offline="offline"}(be||(be={}));const he=t.enum(pe),_e=t.enum(me),ye=t.enum(be),fe=t.object({message:t.string()}),je=t.object({name:t.string(),required:t.boolean(),description:t.string().nullish()}),ve=t.object({docker:re.nullish(),github:ie.nullish()}),xe=t.object({id:t.string(),source:t.union([ee,ne]),agent_card:lt,state:t.union([_e,ye]),origin:t.string(),created_at:t.string(),created_by:t.string(),updated_at:t.string(),last_active_at:t.string(),auto_stop_timeout:t.string(),managed:t.boolean(),type:he,env:t.array(je),registry:t.union([Qt,Xt,Yt]).nullish(),last_error:fe.nullish(),missing_configuration:t.array(je).optional(),version_info:ve.optional()});var ke;t.object({query:t.object({origin:t.string().nullish(),user_owned:t.boolean().nullish()}).optional()}),F.extend({items:t.array(xe)}),t.object({location:t.union([ee,ne]),agent_card:lt.nullish(),auto_stop_timeout_sec:t.number().nullish(),origin:t.string().nullish(),variables:t.record(t.string(),t.string()).nullish()}),t.object({id:t.string()}),t.object({id:t.string()}),t.null(),t.object({id:t.string(),location:t.union([ee,ne]).nullish(),agent_card:lt.nullish(),auto_stop_timeout_sec:t.number().nullish(),origin:t.string().nullish(),variables:t.record(t.string(),t.string()).nullish()}),t.object({id:t.string()}),t.object({id:t.string()}),t.object({variables:t.record(t.string(),t.string())}),t.object({id:t.string(),variables:t.record(t.string(),t.union([t.string(),t.null()]))}),t.null(),t.object({location:t.string()}),t.object({provider_id:t.string(),context_id:t.string(),task_id:t.string(),message:t.string(),rating:t.union([t.literal(1),t.literal(-1)]),comment:t.string().nullish(),comment_tags:t.array(t.string()).nullish()}),t.null(),function(t){t.Admin="admin",t.Developer="developer",t.User="user"}(ke||(ke={}));const we=t.enum(ke);var Ue;t.object({id:t.string(),role:we,email:t.string(),created_at:t.string()}),t.never(),t.never(),t.object({variables:t.record(t.string(),t.string())}),t.object({variables:t.record(t.string(),t.union([t.string(),t.null()]))}),t.null(),function(t){t.Http="http",t.Network="network",t.Parse="parse",t.Unknown="unknown",t.Validation="validation"}(Ue||(Ue={}));class Se extends Error{constructor(t){super(t.message),this.apiError=void 0,this.apiError=t}}const qe=(t,e)=>async({llm_demands:n})=>{const i=Object.keys(n).map(async i=>{var r;const a=n[i],o=function(t){if(t.ok){const{data:e}=t;return e}throw new Se(t.error)}(await t.matchModelProviders({suggested_models:null!=(r=a.suggested)?r:[],capability:Zt.Llm,score_cutoff:.4}));if(0===o.items.length)throw new Error(`No models found for demand ${i}. Demand details: ${JSON.stringify(a)}`);return[i,{identifier:"llm_proxy",api_base:"{platform_url}/api/v1/openai/",api_key:e.token,api_model:o.items[0].model_id}]}),r=await Promise.all(i);return{llm_fulfillments:Object.fromEntries(r)}},Me=t.object({redirect_uri:t.boolean()}),Te=t.object({oauth_demands:t.record(t.string(),Me)}),Ie=t.object({redirect_uri:t.string()}),De=t.object({oauth_fulfillments:t.record(t.string(),Ie)}),Re=t.object({authorization_endpoint_url:t.string()}),Ae=t.object({redirect_uri:t.string()});t.object({data:Ae});const Oe="https://a2a-extensions.agentstack.beeai.dev/auth/oauth/v1",Ce={getUri:()=>Oe,getDemandsSchema:()=>Te,getFulfillmentsSchema:()=>De},Ee={getUri:()=>Oe,getMessageMetadataSchema:()=>t.object({[Oe]:Re}).partial()},Pe=t.object({name:t.string(),description:t.string().nullish()}),Fe=t.object({secret_demands:t.record(t.string(),Pe)}),ze=t.object({secret:t.string()}),He=t.object({secret_fulfillments:t.record(t.string(),ze)}),Ne="https://a2a-extensions.agentstack.beeai.dev/auth/secrets/v1",Ge={getUri:()=>Ne,getDemandsSchema:()=>Fe,getFulfillmentsSchema:()=>He},Le={getUri:()=>Ne,getMessageMetadataSchema:()=>t.object({[Ne]:Fe}).partial()},Ze=t.object({description:t.string().nullish(),suggested:t.array(t.string()).nullish()}),Be=t.object({embedding_demands:t.record(t.string(),Ze)}),Ve=t.object({identifier:t.string().nullish(),api_base:t.string(),api_key:t.string(),api_model:t.string()}),$e=t.object({embedding_fulfillments:t.record(t.string(),Ve)}),Je={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/embedding/v1",getDemandsSchema:()=>Be,getFulfillmentsSchema:()=>$e},Ke=t.object({form_demands:t.object({initial_form:T}).partial()}),We=t.object({form_fulfillments:t.record(t.string(),D)}),Qe={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/form/v1",getDemandsSchema:()=>Ke,getFulfillmentsSchema:()=>We},Xe=t.object({description:t.string().nullish(),suggested:t.array(t.string()).nullish()}),Ye=t.object({llm_demands:t.record(t.string(),Xe)}),tn=t.object({identifier:t.string().nullish(),api_base:t.string(),api_key:t.string(),api_model:t.string()}),en=t.object({llm_fulfillments:t.record(t.string(),tn)}),nn={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/llm/v1",getDemandsSchema:()=>Ye,getFulfillmentsSchema:()=>en};var rn;!function(t){t.StreamableHttp="streamable_http",t.Stdio="stdio"}(rn||(rn={}));const an=t.enum(rn),on=t.object({description:t.string().nullish(),suggested:t.array(t.string()).nullish(),allowed_transports:t.array(an).nullish()}),sn=t.object({mcp_demands:t.record(t.string(),on)}),ln=t.object({transport:t.object({type:an,url:t.string(),headers:t.record(t.string(),t.string()).optional()})}),cn=t.object({mcp_fulfillments:t.record(t.string(),ln)}),dn={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/services/mcp/v1",getDemandsSchema:()=>sn,getFulfillmentsSchema:()=>cn},gn="https://a2a-extensions.agentstack.beeai.dev/services/platform_api/v1",un=t.object({id:t.string().nonempty(),label:t.string().nonempty(),default_value:t.boolean()}),pn=t.object({id:t.string().nonempty(),type:t.literal("checkbox_group"),fields:t.array(un)}),mn=t.object({label:t.string().nonempty(),value:t.string().nonempty()}),bn=t.object({type:t.literal("single_select"),id:t.string().nonempty(),label:t.string().nonempty(),options:t.array(mn).nonempty(),default_value:t.string().nonempty()}),hn=t.discriminatedUnion("type",[pn,bn]),_n=t.object({value:t.boolean()}),yn=t.object({type:t.literal("checkbox_group"),values:t.record(t.string(),_n)}),fn=t.object({type:t.literal("single_select"),value:t.string()}),jn=t.discriminatedUnion("type",[yn,fn]),vn=t.object({fields:t.array(hn)}),xn=t.record(t.string(),jn),kn=t.object({values:xn}),wn={getUri:()=>"https://a2a-extensions.agentstack.beeai.dev/ui/settings/v1",getDemandsSchema:()=>vn,getFulfillmentsSchema:()=>kn},Un=r(dn),Sn=r(nn),qn=r(Je),Mn=r(Ce),Tn=r(wn),In=r(Ge),Dn=r(Qe),Rn=a(dn),An=a(nn),On=a(Je),Cn=a(Ce),En=a(wn),Pn=a(Ge),Fn=a(Qe),zn=t=>{var n;const i=null!=(n=t.capabilities.extensions)?n:[],r=Sn(i),a=qn(i),o=Un(i),s=Mn(i),l=Tn(i),c=In(i),d=Dn(i);return{resolveMetadata:async t=>{let n={};var i,g;t.getContextToken&&(i=n,g=t.getContextToken(),n=e({},i,{[gn]:{auth_token:g.token,expires_at:g.expires_at}})),r&&t.llm&&(n=An(n,await t.llm(r))),a&&t.embedding&&(n=On(n,await t.embedding(a))),o&&t.mcp&&(n=Rn(n,await t.mcp(o))),s&&t.oauth&&(n=Cn(n,await t.oauth(s))),l&&t.settings&&(n=En(n,await t.settings(l))),c&&t.secrets&&(n=Pn(n,await t.secrets(c))),d&&t.form&&(n=Fn(n,await t.form(d)));const u=null==t.oauthRedirectUri?void 0:t.oauthRedirectUri();return u&&(n=e({},n,{[Ee.getUri()]:{redirect_uri:u}})),n},demands:{llmDemands:r,embeddingDemands:a,mcpDemands:o,oauthDemands:s,settingsDemands:l,secretDemands:c,formDemands:d}}},Hn=i(Le),Nn=i(Ee),Gn=i(A),Ln=i(u),Zn=t=>{const e=[];if("auth-required"===t.status.state){var n,i;const r=Hn(null==(n=t.status.message)?void 0:n.metadata),a=Nn(null==(i=t.status.message)?void 0:i.metadata);a&&e.push({type:C.OAuthRequired,url:a.authorization_endpoint_url}),r&&e.push({type:C.SecretRequired,demands:r})}else if("input-required"===t.status.state){var r,a;const n=Gn(null==(r=t.status.message)?void 0:r.metadata),i=Ln(null==(a=t.status.message)?void 0:a.metadata);n&&e.push({type:C.FormRequired,form:n}),i&&e.push({type:C.ApprovalRequired,request:i})}return e},Bn=t=>async(n,i,r)=>{const{resolveMetadata:a}=zn(t);return e({},r,{contextId:n,kind:"message",role:"user",metadata:await a(i)})};export{C as TaskStatusUpdateType,qe as buildLLMExtensionFulfillmentResolver,Bn as buildMessageBuilder,n as createAuthenticatedFetch,r as extractServiceExtensionDemands,i as extractUiExtensionData,a as fulfillServiceExtensionDemand,zn as handleAgentCard,Zn as handleTaskStatusUpdate,O as resolveUserMetadata};
|
|
2
2
|
//# sourceMappingURL=core.js.map
|