@flowdot.ai/cli 1.1.0 → 1.1.1

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/ui/run.js CHANGED
@@ -1 +1,5 @@
1
- import{useState as c,useEffect as I,useRef as v,useCallback as g}from"react";import{render as R,Box as o,Text as r,useApp as B,useStdout as M}from"ink";import C from"ink-text-input";import{jsx as e,jsxs as l}from"react/jsx-runtime";var m=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],E=300,D=()=>{let[s,i]=c(0);return I(()=>{let d=setInterval(()=>{i(a=>(a+1)%m.length)},E);return()=>clearInterval(d)},[]),e(r,{children:m[s]})};function y(s){process.send&&process.send(s)}function N(){let[s,i]=c([]),[d,a]=c(""),[f,x]=c({active:!1,text:""}),[S,T]=c(!1),b=v(0),{exit:p}=B(),{stdout:k}=M(),h=k?.columns||80;I(()=>{let t=n=>{switch(n.type){case"display":x({active:!1,text:""}),i(u=>[...u,{id:b.current++,content:n.content,color:n.color,bold:n.bold}]);break;case"spinner:start":x({active:!0,text:n.text});break;case"spinner:succeed":case"spinner:fail":case"spinner:warn":x({active:!1,text:""}),n.text&&i(u=>[...u,{id:b.current++,content:n.text,color:n.type==="spinner:succeed"?"green":n.type==="spinner:fail"?"red":"yellow"}]);break;case"clear":i([]);break;case"prompt":break;case"exit":p(),process.exit(0);break;default:break}};return process.on("message",t),y({type:"ready"}),T(!0),()=>{process.removeListener("message",t)}},[p]);let w=g(t=>{t.trim()&&(y({type:"input",value:t}),a(""))},[]),A=g(()=>{y({type:"exit"}),p()},[p]);return S?l(o,{flexDirection:"column",width:h,children:[e(o,{borderStyle:"round",borderColor:"cyan",paddingX:1,children:e(r,{color:"cyan",bold:!0,children:"FlowDot CLI"})}),e(o,{flexDirection:"column",marginY:1,children:s.map(t=>e(r,{color:t.color||"white",bold:t.bold,children:t.content},t.id))}),f.active&&l(o,{children:[e(r,{color:"cyan",children:e(D,{})}),l(r,{children:[" ",f.text]})]}),l(o,{children:[e(r,{color:"green",bold:!0,children:"> "}),e(C,{value:d,onChange:a,onSubmit:w})]}),e(o,{marginTop:1,children:e(r,{color:"gray",children:"Press Ctrl+C to exit"})})]}):e(o,{children:e(r,{color:"cyan",children:"Initializing..."})})}process.stdin.resume();R(e(N,{}));
1
+ import{useState as B,useEffect as re,useRef as Ae,useCallback as ee}from"react";import{render as ve,Box as C,Text as x,useApp as Ee,useStdout as Ie}from"ink";import xe,{useState as Te,useEffect as ye}from"react";import{Text as Oe,useInput as Re}from"ink";var U=(t=0)=>e=>`\x1B[${e+t}m`,W=(t=0)=>e=>`\x1B[${38+t};5;${e}m`,$=(t=0)=>(e,r,o)=>`\x1B[${38+t};2;${e};${r};${o}m`,i={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Se=Object.keys(i.modifier),oe=Object.keys(i.color),ne=Object.keys(i.bgColor),we=[...oe,...ne];function se(){let t=new Map;for(let[e,r]of Object.entries(i)){for(let[o,n]of Object.entries(r))i[o]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},r[o]=i[o],t.set(n[0],n[1]);Object.defineProperty(i,e,{value:r,enumerable:!1})}return Object.defineProperty(i,"codes",{value:t,enumerable:!1}),i.color.close="\x1B[39m",i.bgColor.close="\x1B[49m",i.color.ansi=U(),i.color.ansi256=W(),i.color.ansi16m=$(),i.bgColor.ansi=U(10),i.bgColor.ansi256=W(10),i.bgColor.ansi16m=$(10),Object.defineProperties(i,{rgbToAnsi256:{value(e,r,o){return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(e){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!r)return[0,0,0];let[o]=r;o.length===3&&(o=[...o].map(s=>s+s).join(""));let n=Number.parseInt(o,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:e=>i.rgbToAnsi256(...i.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let r,o,n;if(e>=232)r=((e-232)*10+8)/255,o=r,n=r;else{e-=16;let T=e%36;r=Math.floor(e/36)/5,o=Math.floor(T/6)/5,n=T%6/5}let s=Math.max(r,o,n)*2;if(s===0)return 30;let c=30+(Math.round(n)<<2|Math.round(o)<<1|Math.round(r));return s===2&&(c+=60),c},enumerable:!1},rgbToAnsi:{value:(e,r,o)=>i.ansi256ToAnsi(i.rgbToAnsi256(e,r,o)),enumerable:!1},hexToAnsi:{value:e=>i.ansi256ToAnsi(i.hexToAnsi256(e)),enumerable:!1}}),i}var ie=se(),g=ie;import L from"node:process";import le from"node:os";import K from"node:tty";function h(t,e=globalThis.Deno?globalThis.Deno.args:L.argv){let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),n=e.indexOf("--");return o!==-1&&(n===-1||o<n)}var{env:l}=L,S;h("no-color")||h("no-colors")||h("color=false")||h("color=never")?S=0:(h("color")||h("colors")||h("color=true")||h("color=always"))&&(S=1);function ce(){if("FORCE_COLOR"in l)return l.FORCE_COLOR==="true"?1:l.FORCE_COLOR==="false"?0:l.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(l.FORCE_COLOR,10),3)}function ae(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function ue(t,{streamIsTTY:e,sniffFlags:r=!0}={}){let o=ce();o!==void 0&&(S=o);let n=r?S:o;if(n===0)return 0;if(r){if(h("color=16m")||h("color=full")||h("color=truecolor"))return 3;if(h("color=256"))return 2}if("TF_BUILD"in l&&"AGENT_NAME"in l)return 1;if(t&&!e&&n===void 0)return 0;let s=n||0;if(l.TERM==="dumb")return s;if(L.platform==="win32"){let c=le.release().split(".");return Number(c[0])>=10&&Number(c[2])>=10586?Number(c[2])>=14931?3:2:1}if("CI"in l)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(c=>c in l)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(c=>c in l)||l.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in l)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(l.TEAMCITY_VERSION)?1:0;if(l.COLORTERM==="truecolor"||l.TERM==="xterm-kitty"||l.TERM==="xterm-ghostty"||l.TERM==="wezterm")return 3;if("TERM_PROGRAM"in l){let c=Number.parseInt((l.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(l.TERM_PROGRAM){case"iTerm.app":return c>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(l.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(l.TERM)||"COLORTERM"in l?1:s}function z(t,e={}){let r=ue(t,{streamIsTTY:t&&t.isTTY,...e});return ae(r)}var fe={stdout:z({isTTY:K.isatty(1)}),stderr:z({isTTY:K.isatty(2)})},H=fe;function X(t,e,r){let o=t.indexOf(e);if(o===-1)return t;let n=e.length,s=0,c="";do c+=t.slice(s,o)+e+r,s=o+n,o=t.indexOf(e,s);while(o!==-1);return c+=t.slice(s),c}function q(t,e,r,o){let n=0,s="";do{let c=t[o-1]==="\r";s+=t.slice(n,c?o-1:o)+e+(c?`\r
2
+ `:`
3
+ `)+r,n=o+1,o=t.indexOf(`
4
+ `,n)}while(o!==-1);return s+=t.slice(n),s}var{stdout:J,stderr:Q}=H,k=Symbol("GENERATOR"),A=Symbol("STYLER"),E=Symbol("IS_EMPTY"),Z=["ansi","ansi","ansi256","ansi16m"],v=Object.create(null),pe=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=J?J.level:0;t.level=e.level===void 0?r:e.level};var de=t=>{let e=(...r)=>r.join(" ");return pe(e,t),Object.setPrototypeOf(e,I.prototype),e};function I(t){return de(t)}Object.setPrototypeOf(I.prototype,Function.prototype);for(let[t,e]of Object.entries(g))v[t]={get(){let r=w(this,G(e.open,e.close,this[A]),this[E]);return Object.defineProperty(this,t,{value:r}),r}};v.visible={get(){let t=w(this,this[A],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var j=(t,e,r,...o)=>t==="rgb"?e==="ansi16m"?g[r].ansi16m(...o):e==="ansi256"?g[r].ansi256(g.rgbToAnsi256(...o)):g[r].ansi(g.rgbToAnsi(...o)):t==="hex"?j("rgb",e,r,...g.hexToRgb(...o)):g[r][t](...o),be=["rgb","hex","ansi256"];for(let t of be){v[t]={get(){let{level:r}=this;return function(...o){let n=G(j(t,Z[r],"color",...o),g.color.close,this[A]);return w(this,n,this[E])}}};let e="bg"+t[0].toUpperCase()+t.slice(1);v[e]={get(){let{level:r}=this;return function(...o){let n=G(j(t,Z[r],"bgColor",...o),g.bgColor.close,this[A]);return w(this,n,this[E])}}}}var he=Object.defineProperties(()=>{},{...v,level:{enumerable:!0,get(){return this[k].level},set(t){this[k].level=t}}}),G=(t,e,r)=>{let o,n;return r===void 0?(o=t,n=e):(o=r.openAll+t,n=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:n,parent:r}},w=(t,e,r)=>{let o=(...n)=>ge(o,n.length===1?""+n[0]:n.join(" "));return Object.setPrototypeOf(o,he),o[k]=t,o[A]=e,o[E]=r,o},ge=(t,e)=>{if(t.level<=0||!e)return t[E]?"":e;let r=t[A];if(r===void 0)return e;let{openAll:o,closeAll:n}=r;if(e.includes("\x1B"))for(;r!==void 0;)e=X(e,r.close,r.open),r=r.parent;let s=e.indexOf(`
5
+ `);return s!==-1&&(e=q(e,n,o,s)),o+e+n};Object.defineProperties(I.prototype,v);var me=I(),Ue=I({level:Q?Q.level:0});var m=me;function Ce({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:n=!1,showCursor:s=!0,onChange:c,onSubmit:T}){let[N,y]=Te({cursorOffset:(t||"").length,cursorWidth:0}),{cursorOffset:d,cursorWidth:_}=N;ye(()=>{y(a=>{if(!r||!s)return a;let u=t||"";return a.cursorOffset>u.length-1?{cursorOffset:u.length,cursorWidth:0}:a})},[t,r,s]);let P=n?_:0,O=o?o.repeat(t.length):t,f=O,b=e?m.grey(e):void 0;if(s&&r){b=e.length>0?m.inverse(e[0])+m.grey(e.slice(1)):m.inverse(" "),f=O.length>0?"":m.inverse(" ");let a=0;for(let u of O)f+=a>=d-P&&a<=d?m.inverse(u):u,a++;O.length>0&&d===O.length&&(f+=m.inverse(" "))}return Re((a,u)=>{if(u.upArrow||u.downArrow||u.ctrl&&a==="c"||u.tab||u.shift&&u.tab)return;if(u.return){T&&T(t);return}let R=d,M=t,Y=0;u.leftArrow?s&&R--:u.rightArrow?s&&R++:u.backspace||u.delete?d>0&&(M=t.slice(0,d-1)+t.slice(d,t.length),R--):(M=t.slice(0,d)+a+t.slice(d,t.length),R+=a.length,a.length>1&&(Y=a.length)),d<0&&(R=0),d>t.length&&(R=t.length),y({cursorOffset:R,cursorWidth:Y}),M!==t&&c(M)},{isActive:r}),xe.createElement(Oe,null,e?O.length>0?f:b:f)}var V=Ce;import{jsx as p,jsxs as F}from"react/jsx-runtime";var te=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Be=300,Ne=()=>{let[t,e]=B(0);return re(()=>{let r=setInterval(()=>{e(o=>(o+1)%te.length)},Be);return()=>clearInterval(r)},[]),p(x,{children:te[t]})};function D(t){process.send&&process.send(t)}function Me(){let[t,e]=B([]),[r,o]=B(""),[n,s]=B({active:!1,text:""}),[c,T]=B(!1),N=Ae(0),{exit:y}=Ee(),{stdout:d}=Ie(),_=d?.columns||80;re(()=>{let f=b=>{switch(b.type){case"display":s({active:!1,text:""}),e(a=>[...a,{id:N.current++,content:b.content,color:b.color,bold:b.bold}]);break;case"spinner:start":s({active:!0,text:b.text});break;case"spinner:succeed":case"spinner:fail":case"spinner:warn":s({active:!1,text:""}),b.text&&e(a=>[...a,{id:N.current++,content:b.text,color:b.type==="spinner:succeed"?"green":b.type==="spinner:fail"?"red":"yellow"}]);break;case"clear":e([]);break;case"prompt":break;case"exit":y(),process.exit(0);break;default:break}};return process.on("message",f),D({type:"ready"}),T(!0),()=>{process.removeListener("message",f)}},[y]);let P=ee(f=>{f.trim()&&(D({type:"input",value:f}),o(""))},[]),O=ee(()=>{D({type:"exit"}),y()},[y]);return c?F(C,{flexDirection:"column",width:_,children:[p(C,{borderStyle:"round",borderColor:"cyan",paddingX:1,children:p(x,{color:"cyan",bold:!0,children:"FlowDot CLI"})}),p(C,{flexDirection:"column",marginY:1,children:t.map(f=>p(x,{color:f.color||"white",bold:f.bold,children:f.content},f.id))}),n.active&&F(C,{children:[p(x,{color:"cyan",children:p(Ne,{})}),F(x,{children:[" ",n.text]})]}),F(C,{children:[p(x,{color:"green",bold:!0,children:"> "}),p(V,{value:r,onChange:o,onSubmit:P})]}),p(C,{marginTop:1,children:p(x,{color:"gray",children:"Press Ctrl+C to exit"})})]}):p(C,{children:p(x,{color:"cyan",children:"Initializing..."})})}process.stdin.resume();ve(p(Me,{}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowdot.ai/cli",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Official CLI for FlowDot - Execute workflows, send messages to the agent, and manage your account from the command line",
5
5
  "type": "module",
6
6
  "bin": {
@@ -77,8 +77,9 @@
77
77
  "vitest": "^3.2.4"
78
78
  },
79
79
  "dependencies": {
80
- "@flowdot.ai/api": "^1.1.0",
80
+ "@flowdot.ai/api": "^1.2.1",
81
81
  "ink": "npm:@jrichman/ink@6.4.6",
82
+ "keytar": "^7.9.0",
82
83
  "react": "^19.2.0"
83
84
  },
84
85
  "lint-staged": {