broods 0.13.0 → 0.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/account.d.ts +171 -81
- package/dist/account.js +1 -1
- package/dist/chunk-3cvxks4m.js +2 -0
- package/dist/{chunk-rr4srzb6.js → chunk-qerk8v3m.js} +5 -5
- package/dist/cli/index.js +95 -87
- package/dist/index.d.ts +338 -170
- package/dist/index.js +1 -1
- package/package.json +23 -14
- package/dist/chunk-1wahfz6h.js +0 -1
- package/dist/chunk-4gvdgqrg.js +0 -2
- package/dist/chunk-pfhy5049.js +0 -2
- package/dist/chunk-vmgd45s5.js +0 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as O,b as R,c as L}from"./chunk-ce3yb3yz.js";import{A as _,B as U,C as B,D as H,E as K,F as P,G as j,H as G,I as F,J as z,K as Z,L as V,M as X,N as Y,O as J,P as Q,Q as ee,R as te,S as re,T as ne,d as v,e as k,p as S,q as A,r as M,s as h,t as W,u as w,v as E,w as D,x as T,y as q,z as N}from"./chunk-qerk8v3m.js";import"./chunk-3cvxks4m.js";var a=500;function i(e){if(typeof e!=="object"||e===null)return!1;let t=e;if(t.type==="subscribe"){let r=t.stream;if(r!=="logs"&&r!=="traces")return!1;let n=t.backfill;if(n!==void 0&&(typeof n!=="number"||!Number.isSafeInteger(n)||n<0||n>500))return!1;if(t.liveOnly!==void 0&&typeof t.liveOnly!=="boolean")return!1;let s=t.minLevel;if(s!==void 0&&!o(s))return!1;return!0}if(t.type==="unsubscribe"){let r=t.stream;return r==="logs"||r==="traces"}return!1}function o(e){return e==="DEBUG"||e==="INFO"||e==="WARN"||e==="ERROR"}function p(e){return e==="task"||e==="cron"||e==="subtask"}export{R as BroodsAccountApiError,L as BroodsAccountClient,M as BroodsClient,W as BroodsWebSocketClient,S as DEFAULT_CORE_BASE_URL,A as IngressAcceptedError,a as MAX_OBSERVABILITY_BACKFILL,W as WebSocketClient,W as WebsocketClient,z as defineAgent,F as defineBroods,ee as defineCron,B as defineDiscordChannel,D as defineDiscordConnection,H as defineGitHubChannel,T as defineGitHubConnection,Z as defineHarness,K as definePancakeChannel,q as definePancakeConnection,Q as definePolicy,X as defineSandbox,Y as defineSkill,P as defineSlackChannel,N as defineSlackConnection,j as defineTelegramChannel,_ as defineTelegramConnection,J as defineTool,V as defineWorkspace,G as defineZaloChannel,U as defineZaloConnection,E as env,O as envPlaceholder,ne as isBroodsConfig,re as isConnectionDefinition,o as isLogLevel,i as isObservabilityClientMessage,te as isResource,p as isRootSpanKind,h as normalizeHttpServiceUrl,k as readSseStream,v as resolveRunEvents,w as toWebSocketBaseUrl};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "broods",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.3",
|
|
4
4
|
"description": "CLI + TypeScript SDK for the broods agent platform.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -33,6 +33,13 @@
|
|
|
33
33
|
"import": "./dist/account.js"
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
|
+
"typesVersions": {
|
|
37
|
+
"*": {
|
|
38
|
+
"account": [
|
|
39
|
+
"./dist/account.d.ts"
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
},
|
|
36
43
|
"main": "./dist/index.js",
|
|
37
44
|
"types": "./dist/index.d.ts",
|
|
38
45
|
"files": [
|
|
@@ -41,30 +48,32 @@
|
|
|
41
48
|
"LICENSE.md"
|
|
42
49
|
],
|
|
43
50
|
"scripts": {
|
|
44
|
-
"build": "bun scripts/build.ts && rollup -c rollup.dts.config.mjs &&
|
|
51
|
+
"build": "bun scripts/build.ts && rollup -c rollup.dts.config.mjs && rm -rf .dts-temp",
|
|
45
52
|
"check": "tsc --noEmit",
|
|
46
|
-
"pack:check": "bun run build &&
|
|
53
|
+
"pack:check": "bun run build && publint && attw --pack .",
|
|
47
54
|
"test": "bun test"
|
|
48
55
|
},
|
|
49
56
|
"engines": {
|
|
50
|
-
"node": ">=22"
|
|
57
|
+
"node": ">=22.15"
|
|
51
58
|
},
|
|
52
59
|
"dependencies": {
|
|
53
60
|
"esbuild": "^0.28.2"
|
|
54
61
|
},
|
|
55
62
|
"peerDependencies": {
|
|
56
|
-
"ai": "^7.0.
|
|
63
|
+
"ai": "^7.0.67"
|
|
57
64
|
},
|
|
58
65
|
"devDependencies": {
|
|
59
|
-
"@ai-sdk/tui": "^1.0.
|
|
60
|
-
"
|
|
61
|
-
"@chat-adapter/discord": "^4.
|
|
62
|
-
"@chat-adapter/github": "^4.
|
|
63
|
-
"@chat-adapter/slack": "^4.
|
|
64
|
-
"@chat-adapter/telegram": "^4.
|
|
66
|
+
"@ai-sdk/tui": "^1.0.68",
|
|
67
|
+
"@arethetypeswrong/cli": "^0.18.5",
|
|
68
|
+
"@chat-adapter/discord": "^4.38.1",
|
|
69
|
+
"@chat-adapter/github": "^4.38.1",
|
|
70
|
+
"@chat-adapter/slack": "^4.38.1",
|
|
71
|
+
"@chat-adapter/telegram": "^4.38.1",
|
|
65
72
|
"@types/bun": "^1.3.14",
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"rollup
|
|
73
|
+
"ai": "^7.0.67",
|
|
74
|
+
"publint": "^0.3.23",
|
|
75
|
+
"rollup": "^4.62.4",
|
|
76
|
+
"rollup-plugin-dts": "^6.5.1",
|
|
77
|
+
"typescript": "^6.0.3"
|
|
69
78
|
}
|
|
70
79
|
}
|
package/dist/chunk-1wahfz6h.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Q as a}from"./chunk-4gvdgqrg.js";import"./chunk-pfhy5049.js";export default a();
|
package/dist/chunk-4gvdgqrg.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{R as c,T as s}from"./chunk-pfhy5049.js";var g=c(function(pr,A){var{defineProperty:w,getOwnPropertyDescriptor:ne,getOwnPropertyNames:se}=Object,ie=Object.prototype.hasOwnProperty,ae=(e,r)=>{for(var t in r)w(e,t,{get:r[t],enumerable:!0})},ce=(e,r,t,n)=>{if(r&&typeof r==="object"||typeof r==="function"){for(let o of se(r))if(!ie.call(e,o)&&o!==t)w(e,o,{get:()=>r[o],enumerable:!(n=ne(r,o))||n.enumerable})}return e},ue=(e)=>ce(w({},"__esModule",{value:!0}),e),D={};ae(D,{VercelOidcTokenError:()=>x});A.exports=ue(D);class x extends Error{constructor(e,r){super(e);this.name="VercelOidcTokenError",this.cause=r}toString(){if(this.cause)return`${this.name}: ${this.message}: ${this.cause}`;return`${this.name}: ${this.message}`}}});var R=c(function(lr,C){var{create:pe,defineProperty:h,getOwnPropertyDescriptor:le,getOwnPropertyNames:fe,getPrototypeOf:_e}=Object,de=Object.prototype.hasOwnProperty,he=(e,r)=>{for(var t in r)h(e,t,{get:r[t],enumerable:!0})},S=(e,r,t,n)=>{if(r&&typeof r==="object"||typeof r==="function"){for(let o of fe(r))if(!de.call(e,o)&&o!==t)h(e,o,{get:()=>r[o],enumerable:!(n=le(r,o))||n.enumerable})}return e},P=(e,r,t)=>(t=e!=null?pe(_e(e)):{},S(r||!e||!e.__esModule?h(t,"default",{value:e,enumerable:!0}):t,e)),ve=(e)=>S(h({},"__esModule",{value:!0}),e),V={};he(V,{findRootDir:()=>we,getUserDataDir:()=>ge});C.exports=ve(V);var f=P(s("path")),ke=P(s("fs")),O=P(s("os")),ye=g();function we(){try{let e=process.cwd();while(e!==f.default.dirname(e)){let r=f.default.join(e,".vercel");if(ke.default.existsSync(r))return e;e=f.default.dirname(e)}}catch(e){throw new ye.VercelOidcTokenError("Token refresh only supported in node server environments")}return null}function ge(){if(process.env.XDG_DATA_HOME)return process.env.XDG_DATA_HOME;switch(O.default.platform()){case"darwin":return f.default.join(O.default.homedir(),"Library/Application Support");case"linux":return f.default.join(O.default.homedir(),".local/share");case"win32":if(process.env.LOCALAPPDATA)return process.env.LOCALAPPDATA;return null;default:return null}}});var J=c(function(fr,U){var{create:Oe,defineProperty:v,getOwnPropertyDescriptor:Pe,getOwnPropertyNames:be,getPrototypeOf:je}=Object,Te=Object.prototype.hasOwnProperty,Ee=(e,r)=>{for(var t in r)v(e,t,{get:r[t],enumerable:!0})},M=(e,r,t,n)=>{if(r&&typeof r==="object"||typeof r==="function"){for(let o of be(r))if(!Te.call(e,o)&&o!==t)v(e,o,{get:()=>r[o],enumerable:!(n=Pe(r,o))||n.enumerable})}return e},I=(e,r,t)=>(t=e!=null?Oe(je(e)):{},M(r||!e||!e.__esModule?v(t,"default",{value:e,enumerable:!0}):t,e)),me=(e)=>M(v({},"__esModule",{value:!0}),e),N={};Ee(N,{isValidAccessToken:()=>Se,readAuthConfig:()=>xe,writeAuthConfig:()=>Ae});U.exports=me(N);var _=I(s("fs")),q=I(s("path")),De=L();function F(){let e=(0,De.getVercelDataDir)();if(!e)throw Error(`Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`);return q.join(e,"auth.json")}function xe(){try{let e=F();if(!_.existsSync(e))return null;let r=_.readFileSync(e,"utf8");if(!r)return null;return JSON.parse(r)}catch(e){return null}}function Ae(e){let r=F(),t=q.dirname(r);if(!_.existsSync(t))_.mkdirSync(t,{mode:504,recursive:!0});_.writeFileSync(r,JSON.stringify(e,null,2),{mode:384})}function Se(e,r=0){if(!e.token)return!1;if(typeof e.expiresAt!=="number")return!0;let t=Math.floor(Date.now()/1000),n=r/1000;return e.expiresAt>=t+n}});var G=c(function(_r,z){var{defineProperty:T,getOwnPropertyDescriptor:Ve,getOwnPropertyNames:Ce}=Object,Re=Object.prototype.hasOwnProperty,Me=(e,r)=>{for(var t in r)T(e,t,{get:r[t],enumerable:!0})},Ie=(e,r,t,n)=>{if(r&&typeof r==="object"||typeof r==="function"){for(let o of Ce(r))if(!Re.call(e,o)&&o!==t)T(e,o,{get:()=>r[o],enumerable:!(n=Ve(r,o))||n.enumerable})}return e},Ne=(e)=>Ie(T({},"__esModule",{value:!0}),e),B={};Me(B,{processTokenResponse:()=>Je,refreshTokenRequest:()=>Ue});z.exports=Ne(B);var b=s("os"),qe="https://vercel.com",Fe="cl_HYyOPBNtFMfHhaUn9L4QPfTZz6TP47bp",H=`@vercel/oidc node-${process.version} ${(0,b.platform)()} (${(0,b.arch)()}) ${(0,b.hostname)()}`,j=null;async function $e(){if(j)return j;let e=`${qe}/.well-known/openid-configuration`,r=await fetch(e,{headers:{"user-agent":H}});if(!r.ok)throw Error("Failed to discover OAuth endpoints");let t=await r.json();if(!t||typeof t.token_endpoint!=="string")throw Error("Invalid OAuth discovery response");let n=t.token_endpoint;return j=n,n}async function Ue(e){let r=await $e();return await fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded","user-agent":H},body:new URLSearchParams({client_id:Fe,grant_type:"refresh_token",...e})})}async function Je(e){let r=await e.json();if(!e.ok){let t=typeof r==="object"&&r&&"error"in r?String(r.error):"Token refresh failed";return[Error(t)]}if(typeof r!=="object"||r===null)return[Error("Invalid token response")];if(typeof r.access_token!=="string")return[Error("Missing access_token in response")];if(r.token_type!=="Bearer")return[Error("Invalid token_type in response")];if(typeof r.expires_in!=="number")return[Error("Missing expires_in in response")];return[null,r]}});var K=c(function(dr,Z){var{defineProperty:E,getOwnPropertyDescriptor:Le,getOwnPropertyNames:Be}=Object,He=Object.prototype.hasOwnProperty,ze=(e,r)=>{for(var t in r)E(e,t,{get:r[t],enumerable:!0})},Ge=(e,r,t,n)=>{if(r&&typeof r==="object"||typeof r==="function"){for(let o of Be(r))if(!He.call(e,o)&&o!==t)E(e,o,{get:()=>r[o],enumerable:!(n=Le(r,o))||n.enumerable})}return e},Xe=(e)=>Ge(E({},"__esModule",{value:!0}),e),X={};ze(X,{AccessTokenMissingError:()=>Y,RefreshAccessTokenFailedError:()=>Q});Z.exports=Xe(X);class Y extends Error{constructor(){super("No authentication found. Please log in with the Vercel CLI (vercel login).");this.name="AccessTokenMissingError"}}class Q extends Error{constructor(e){super("Failed to refresh authentication token.",{cause:e});this.name="RefreshAccessTokenFailedError"}}});var L=c(function(hr,oe){var{create:Ye,defineProperty:k,getOwnPropertyDescriptor:Qe,getOwnPropertyNames:Ze,getPrototypeOf:Ke}=Object,We=Object.prototype.hasOwnProperty,er=(e,r)=>{for(var t in r)k(e,t,{get:r[t],enumerable:!0})},ee=(e,r,t,n)=>{if(r&&typeof r==="object"||typeof r==="function"){for(let o of Ze(r))if(!We.call(e,o)&&o!==t)k(e,o,{get:()=>r[o],enumerable:!(n=Qe(r,o))||n.enumerable})}return e},re=(e,r,t)=>(t=e!=null?Ye(Ke(e)):{},ee(r||!e||!e.__esModule?k(t,"default",{value:e,enumerable:!0}):t,e)),rr=(e)=>ee(k({},"__esModule",{value:!0}),e),te={};er(te,{assertVercelOidcTokenResponse:()=>m,findProjectInfo:()=>sr,getTokenPayload:()=>cr,getVercelDataDir:()=>tr,getVercelOidcToken:()=>nr,getVercelToken:()=>or,isExpired:()=>ur,loadToken:()=>ar,saveToken:()=>ir});oe.exports=rr(te);var d=re(s("path")),i=re(s("fs")),l=g(),y=R(),u=J(),W=G(),p=K();function tr(){let r=(0,y.getUserDataDir)();if(!r)return null;return d.join(r,"com.vercel.cli")}async function or(e){let r=(0,u.readAuthConfig)();if(!r?.token)throw new p.AccessTokenMissingError;if((0,u.isValidAccessToken)(r,e?.expirationBufferMs))return r.token;if(!r.refreshToken)throw(0,u.writeAuthConfig)({}),new p.RefreshAccessTokenFailedError("No refresh token available");try{let t=await(0,W.refreshTokenRequest)({refresh_token:r.refreshToken}),[n,o]=await(0,W.processTokenResponse)(t);if(n||!o)throw(0,u.writeAuthConfig)({}),new p.RefreshAccessTokenFailedError(n);let a={token:o.access_token,expiresAt:Math.floor(Date.now()/1000)+o.expires_in};if(o.refresh_token)a.refreshToken=o.refresh_token;return(0,u.writeAuthConfig)(a),a.token}catch(t){if((0,u.writeAuthConfig)({}),t instanceof p.AccessTokenMissingError||t instanceof p.RefreshAccessTokenFailedError)throw t;throw new p.RefreshAccessTokenFailedError(t)}}async function nr(e,r,t){let n=`https://api.vercel.com/v1/projects/${r}/token?source=vercel-oidc-refresh${t?`&teamId=${t}`:""}`,o=await fetch(n,{method:"POST",headers:{Authorization:`Bearer ${e}`}});if(!o.ok)throw new l.VercelOidcTokenError(`Failed to refresh OIDC token: ${o.statusText}`);let a=await o.json();return m(a),a}function m(e){if(!e||typeof e!=="object")throw TypeError("Vercel OIDC token is malformed. Expected an object. Please run `vc env pull` and try again");if(!("token"in e)||typeof e.token!=="string")throw TypeError("Vercel OIDC token is malformed. Expected a string-valued token property. Please run `vc env pull` and try again")}function sr(){let e=(0,y.findRootDir)();if(!e)throw new l.VercelOidcTokenError("Unable to find project root directory. Have you linked your project with `vc link?`");let r=d.join(e,".vercel","project.json");if(!i.existsSync(r))throw new l.VercelOidcTokenError("project.json not found, have you linked your project with `vc link?`");let t=JSON.parse(i.readFileSync(r,"utf8"));if(typeof t.projectId!=="string"&&typeof t.orgId!=="string")throw TypeError("Expected a string-valued projectId property. Try running `vc link` to re-link your project.");return{projectId:t.projectId,teamId:t.orgId}}function ir(e,r){let t=(0,y.getUserDataDir)();if(!t)throw new l.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let n=d.join(t,"com.vercel.token",`${r}.json`),o=JSON.stringify(e);i.mkdirSync(d.dirname(n),{mode:504,recursive:!0}),i.writeFileSync(n,o),i.chmodSync(n,432);return}function ar(e){let r=(0,y.getUserDataDir)();if(!r)throw new l.VercelOidcTokenError("Unable to find user data directory. Please reach out to Vercel support.");let t=d.join(r,"com.vercel.token",`${e}.json`);if(!i.existsSync(t))return null;let n=JSON.parse(i.readFileSync(t,"utf8"));return m(n),n}function cr(e){let r=e.split(".");if(r.length!==3)throw new l.VercelOidcTokenError("Invalid token. Please run `vc env pull` and try again");let t=r[1].replace(/-/g,"+").replace(/_/g,"/"),n=t.padEnd(t.length+(4-t.length%4)%4,"=");return JSON.parse(Buffer.from(n,"base64").toString("utf8"))}function ur(e,r=0){return e.exp*1000<Date.now()+r}});
|
|
2
|
-
export{g as P,L as Q};
|
package/dist/chunk-pfhy5049.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createRequire as g}from"node:module";var d=Object.defineProperty;var h=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var e=(b)=>b;function f(b,a){this[b]=e.bind(null,a)}var i=(b,a)=>{for(var c in a)d(b,c,{get:a[c],enumerable:!0,configurable:!0,set:f.bind(a,c)})};var k=g(import.meta.url);
|
|
2
|
-
export{h as R,i as S,k as T};
|
package/dist/chunk-vmgd45s5.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as _,Q as k}from"./chunk-4gvdgqrg.js";import{R as s}from"./chunk-pfhy5049.js";var T=s(function(w,f){var{defineProperty:i,getOwnPropertyDescriptor:l,getOwnPropertyNames:u}=Object,d=Object.prototype.hasOwnProperty,O=(t,e)=>{for(var o in e)i(t,o,{get:e[o],enumerable:!0})},j=(t,e,o,n)=>{if(e&&typeof e==="object"||typeof e==="function"){for(let r of u(e))if(!d.call(t,r)&&r!==o)i(t,r,{get:()=>e[r],enumerable:!(n=l(e,r))||n.enumerable})}return t},v=(t)=>j(i({},"__esModule",{value:!0}),t),p={};O(p,{refreshToken:()=>y});f.exports=v(p);var c=_(),a=k();async function y(t){let e=t?.project,o=t?.team;if(!e&&!o){let r=(0,a.findProjectInfo)();e=r.projectId,o=r.teamId}else if(!e||!o){let r=(0,a.findProjectInfo)();e=e??r.projectId,o=o??r.teamId}if(!e)throw new c.VercelOidcTokenError("Failed to refresh OIDC token: No project specified. Try re-linking your project with `vc link`");let n=(0,a.loadToken)(e);if(!n||(0,a.isExpired)((0,a.getTokenPayload)(n.token),t?.expirationBufferMs)){let r=await(0,a.getVercelToken)({expirationBufferMs:t?.expirationBufferMs});if(n=await(0,a.getVercelOidcToken)(r,e,o),!n)throw new c.VercelOidcTokenError("Failed to refresh OIDC token");(0,a.saveToken)(n,e)}process.env.VERCEL_OIDC_TOKEN=n.token;return}});export default T();
|