@agenticwork/openagentic 1.0.0-rc.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.
Files changed (2) hide show
  1. package/dist/index.js +19 -0
  2. package/package.json +42 -0
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ var Mr=Object.create;var _t=Object.defineProperty;var Br=Object.getOwnPropertyDescriptor;var Dr=Object.getOwnPropertyNames;var wr=Object.getPrototypeOf,Lr=Object.prototype.hasOwnProperty;var bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Nr=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Dr(t))!Lr.call(e,n)&&n!==r&&_t(e,n,{get:()=>t[n],enumerable:!(o=Br(t,n))||o.enumerable});return e};var Wr=(e,t,r)=>(r=e!=null?Mr(wr(e)):{},Nr(t||!e||!e.__esModule?_t(r,"default",{value:e,enumerable:!0}):r,e));var Rt=bt((us,ro)=>{ro.exports={dots:{interval:80,frames:["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"]},dots2:{interval:80,frames:["\u28FE","\u28FD","\u28FB","\u28BF","\u287F","\u28DF","\u28EF","\u28F7"]},dots3:{interval:80,frames:["\u280B","\u2819","\u281A","\u281E","\u2816","\u2826","\u2834","\u2832","\u2833","\u2813"]},dots4:{interval:80,frames:["\u2804","\u2806","\u2807","\u280B","\u2819","\u2838","\u2830","\u2820","\u2830","\u2838","\u2819","\u280B","\u2807","\u2806"]},dots5:{interval:80,frames:["\u280B","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B"]},dots6:{interval:80,frames:["\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2834","\u2832","\u2812","\u2802","\u2802","\u2812","\u281A","\u2819","\u2809","\u2801"]},dots7:{interval:80,frames:["\u2808","\u2809","\u280B","\u2813","\u2812","\u2810","\u2810","\u2812","\u2816","\u2826","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808"]},dots8:{interval:80,frames:["\u2801","\u2801","\u2809","\u2819","\u281A","\u2812","\u2802","\u2802","\u2812","\u2832","\u2834","\u2824","\u2804","\u2804","\u2824","\u2820","\u2820","\u2824","\u2826","\u2816","\u2812","\u2810","\u2810","\u2812","\u2813","\u280B","\u2809","\u2808","\u2808"]},dots9:{interval:80,frames:["\u28B9","\u28BA","\u28BC","\u28F8","\u28C7","\u2867","\u2857","\u284F"]},dots10:{interval:80,frames:["\u2884","\u2882","\u2881","\u2841","\u2848","\u2850","\u2860"]},dots11:{interval:100,frames:["\u2801","\u2802","\u2804","\u2840","\u2880","\u2820","\u2810","\u2808"]},dots12:{interval:80,frames:["\u2880\u2800","\u2840\u2800","\u2804\u2800","\u2882\u2800","\u2842\u2800","\u2805\u2800","\u2883\u2800","\u2843\u2800","\u280D\u2800","\u288B\u2800","\u284B\u2800","\u280D\u2801","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2888\u2829","\u2840\u2899","\u2804\u2859","\u2882\u2829","\u2842\u2898","\u2805\u2858","\u2883\u2828","\u2843\u2890","\u280D\u2850","\u288B\u2820","\u284B\u2880","\u280D\u2841","\u288B\u2801","\u284B\u2801","\u280D\u2809","\u280B\u2809","\u280B\u2809","\u2809\u2819","\u2809\u2819","\u2809\u2829","\u2808\u2899","\u2808\u2859","\u2808\u2829","\u2800\u2899","\u2800\u2859","\u2800\u2829","\u2800\u2898","\u2800\u2858","\u2800\u2828","\u2800\u2890","\u2800\u2850","\u2800\u2820","\u2800\u2880","\u2800\u2840"]},dots13:{interval:80,frames:["\u28FC","\u28F9","\u28BB","\u283F","\u285F","\u28CF","\u28E7","\u28F6"]},dots8Bit:{interval:80,frames:["\u2800","\u2801","\u2802","\u2803","\u2804","\u2805","\u2806","\u2807","\u2840","\u2841","\u2842","\u2843","\u2844","\u2845","\u2846","\u2847","\u2808","\u2809","\u280A","\u280B","\u280C","\u280D","\u280E","\u280F","\u2848","\u2849","\u284A","\u284B","\u284C","\u284D","\u284E","\u284F","\u2810","\u2811","\u2812","\u2813","\u2814","\u2815","\u2816","\u2817","\u2850","\u2851","\u2852","\u2853","\u2854","\u2855","\u2856","\u2857","\u2818","\u2819","\u281A","\u281B","\u281C","\u281D","\u281E","\u281F","\u2858","\u2859","\u285A","\u285B","\u285C","\u285D","\u285E","\u285F","\u2820","\u2821","\u2822","\u2823","\u2824","\u2825","\u2826","\u2827","\u2860","\u2861","\u2862","\u2863","\u2864","\u2865","\u2866","\u2867","\u2828","\u2829","\u282A","\u282B","\u282C","\u282D","\u282E","\u282F","\u2868","\u2869","\u286A","\u286B","\u286C","\u286D","\u286E","\u286F","\u2830","\u2831","\u2832","\u2833","\u2834","\u2835","\u2836","\u2837","\u2870","\u2871","\u2872","\u2873","\u2874","\u2875","\u2876","\u2877","\u2838","\u2839","\u283A","\u283B","\u283C","\u283D","\u283E","\u283F","\u2878","\u2879","\u287A","\u287B","\u287C","\u287D","\u287E","\u287F","\u2880","\u2881","\u2882","\u2883","\u2884","\u2885","\u2886","\u2887","\u28C0","\u28C1","\u28C2","\u28C3","\u28C4","\u28C5","\u28C6","\u28C7","\u2888","\u2889","\u288A","\u288B","\u288C","\u288D","\u288E","\u288F","\u28C8","\u28C9","\u28CA","\u28CB","\u28CC","\u28CD","\u28CE","\u28CF","\u2890","\u2891","\u2892","\u2893","\u2894","\u2895","\u2896","\u2897","\u28D0","\u28D1","\u28D2","\u28D3","\u28D4","\u28D5","\u28D6","\u28D7","\u2898","\u2899","\u289A","\u289B","\u289C","\u289D","\u289E","\u289F","\u28D8","\u28D9","\u28DA","\u28DB","\u28DC","\u28DD","\u28DE","\u28DF","\u28A0","\u28A1","\u28A2","\u28A3","\u28A4","\u28A5","\u28A6","\u28A7","\u28E0","\u28E1","\u28E2","\u28E3","\u28E4","\u28E5","\u28E6","\u28E7","\u28A8","\u28A9","\u28AA","\u28AB","\u28AC","\u28AD","\u28AE","\u28AF","\u28E8","\u28E9","\u28EA","\u28EB","\u28EC","\u28ED","\u28EE","\u28EF","\u28B0","\u28B1","\u28B2","\u28B3","\u28B4","\u28B5","\u28B6","\u28B7","\u28F0","\u28F1","\u28F2","\u28F3","\u28F4","\u28F5","\u28F6","\u28F7","\u28B8","\u28B9","\u28BA","\u28BB","\u28BC","\u28BD","\u28BE","\u28BF","\u28F8","\u28F9","\u28FA","\u28FB","\u28FC","\u28FD","\u28FE","\u28FF"]},sand:{interval:80,frames:["\u2801","\u2802","\u2804","\u2840","\u2848","\u2850","\u2860","\u28C0","\u28C1","\u28C2","\u28C4","\u28CC","\u28D4","\u28E4","\u28E5","\u28E6","\u28EE","\u28F6","\u28F7","\u28FF","\u287F","\u283F","\u289F","\u281F","\u285B","\u281B","\u282B","\u288B","\u280B","\u280D","\u2849","\u2809","\u2811","\u2821","\u2881"]},line:{interval:130,frames:["-","\\","|","/"]},line2:{interval:100,frames:["\u2802","-","\u2013","\u2014","\u2013","-"]},pipe:{interval:100,frames:["\u2524","\u2518","\u2534","\u2514","\u251C","\u250C","\u252C","\u2510"]},simpleDots:{interval:400,frames:[". ",".. ","..."," "]},simpleDotsScrolling:{interval:200,frames:[". ",".. ","..."," .."," ."," "]},star:{interval:70,frames:["\u2736","\u2738","\u2739","\u273A","\u2739","\u2737"]},star2:{interval:80,frames:["+","x","*"]},flip:{interval:70,frames:["_","_","_","-","`","`","'","\xB4","-","_","_","_"]},hamburger:{interval:100,frames:["\u2631","\u2632","\u2634"]},growVertical:{interval:120,frames:["\u2581","\u2583","\u2584","\u2585","\u2586","\u2587","\u2586","\u2585","\u2584","\u2583"]},growHorizontal:{interval:120,frames:["\u258F","\u258E","\u258D","\u258C","\u258B","\u258A","\u2589","\u258A","\u258B","\u258C","\u258D","\u258E"]},balloon:{interval:140,frames:[" ",".","o","O","@","*"," "]},balloon2:{interval:120,frames:[".","o","O","\xB0","O","o","."]},noise:{interval:100,frames:["\u2593","\u2592","\u2591"]},bounce:{interval:120,frames:["\u2801","\u2802","\u2804","\u2802"]},boxBounce:{interval:120,frames:["\u2596","\u2598","\u259D","\u2597"]},boxBounce2:{interval:100,frames:["\u258C","\u2580","\u2590","\u2584"]},triangle:{interval:50,frames:["\u25E2","\u25E3","\u25E4","\u25E5"]},binary:{interval:80,frames:["010010","001100","100101","111010","111101","010111","101011","111000","110011","110101"]},arc:{interval:100,frames:["\u25DC","\u25E0","\u25DD","\u25DE","\u25E1","\u25DF"]},circle:{interval:120,frames:["\u25E1","\u2299","\u25E0"]},squareCorners:{interval:180,frames:["\u25F0","\u25F3","\u25F2","\u25F1"]},circleQuarters:{interval:120,frames:["\u25F4","\u25F7","\u25F6","\u25F5"]},circleHalves:{interval:50,frames:["\u25D0","\u25D3","\u25D1","\u25D2"]},squish:{interval:100,frames:["\u256B","\u256A"]},toggle:{interval:250,frames:["\u22B6","\u22B7"]},toggle2:{interval:80,frames:["\u25AB","\u25AA"]},toggle3:{interval:120,frames:["\u25A1","\u25A0"]},toggle4:{interval:100,frames:["\u25A0","\u25A1","\u25AA","\u25AB"]},toggle5:{interval:100,frames:["\u25AE","\u25AF"]},toggle6:{interval:300,frames:["\u101D","\u1040"]},toggle7:{interval:80,frames:["\u29BE","\u29BF"]},toggle8:{interval:100,frames:["\u25CD","\u25CC"]},toggle9:{interval:100,frames:["\u25C9","\u25CE"]},toggle10:{interval:100,frames:["\u3282","\u3280","\u3281"]},toggle11:{interval:50,frames:["\u29C7","\u29C6"]},toggle12:{interval:120,frames:["\u2617","\u2616"]},toggle13:{interval:80,frames:["=","*","-"]},arrow:{interval:100,frames:["\u2190","\u2196","\u2191","\u2197","\u2192","\u2198","\u2193","\u2199"]},arrow2:{interval:80,frames:["\u2B06\uFE0F ","\u2197\uFE0F ","\u27A1\uFE0F ","\u2198\uFE0F ","\u2B07\uFE0F ","\u2199\uFE0F ","\u2B05\uFE0F ","\u2196\uFE0F "]},arrow3:{interval:120,frames:["\u25B9\u25B9\u25B9\u25B9\u25B9","\u25B8\u25B9\u25B9\u25B9\u25B9","\u25B9\u25B8\u25B9\u25B9\u25B9","\u25B9\u25B9\u25B8\u25B9\u25B9","\u25B9\u25B9\u25B9\u25B8\u25B9","\u25B9\u25B9\u25B9\u25B9\u25B8"]},bouncingBar:{interval:80,frames:["[ ]","[= ]","[== ]","[=== ]","[====]","[ ===]","[ ==]","[ =]","[ ]","[ =]","[ ==]","[ ===]","[====]","[=== ]","[== ]","[= ]"]},bouncingBall:{interval:80,frames:["( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF)","( \u25CF )","( \u25CF )","( \u25CF )","( \u25CF )","(\u25CF )"]},smiley:{interval:200,frames:["\u{1F604} ","\u{1F61D} "]},monkey:{interval:300,frames:["\u{1F648} ","\u{1F648} ","\u{1F649} ","\u{1F64A} "]},hearts:{interval:100,frames:["\u{1F49B} ","\u{1F499} ","\u{1F49C} ","\u{1F49A} ","\u2764\uFE0F "]},clock:{interval:100,frames:["\u{1F55B} ","\u{1F550} ","\u{1F551} ","\u{1F552} ","\u{1F553} ","\u{1F554} ","\u{1F555} ","\u{1F556} ","\u{1F557} ","\u{1F558} ","\u{1F559} ","\u{1F55A} "]},earth:{interval:180,frames:["\u{1F30D} ","\u{1F30E} ","\u{1F30F} "]},material:{interval:17,frames:["\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2588","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581","\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581\u2581"]},moon:{interval:80,frames:["\u{1F311} ","\u{1F312} ","\u{1F313} ","\u{1F314} ","\u{1F315} ","\u{1F316} ","\u{1F317} ","\u{1F318} "]},runner:{interval:140,frames:["\u{1F6B6} ","\u{1F3C3} "]},pong:{interval:80,frames:["\u2590\u2802 \u258C","\u2590\u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802\u258C","\u2590 \u2820\u258C","\u2590 \u2840\u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590 \u2820 \u258C","\u2590 \u2802 \u258C","\u2590 \u2808 \u258C","\u2590 \u2802 \u258C","\u2590 \u2820 \u258C","\u2590 \u2840 \u258C","\u2590\u2820 \u258C"]},shark:{interval:120,frames:["\u2590|\\____________\u258C","\u2590_|\\___________\u258C","\u2590__|\\__________\u258C","\u2590___|\\_________\u258C","\u2590____|\\________\u258C","\u2590_____|\\_______\u258C","\u2590______|\\______\u258C","\u2590_______|\\_____\u258C","\u2590________|\\____\u258C","\u2590_________|\\___\u258C","\u2590__________|\\__\u258C","\u2590___________|\\_\u258C","\u2590____________|\\\u258C","\u2590____________/|\u258C","\u2590___________/|_\u258C","\u2590__________/|__\u258C","\u2590_________/|___\u258C","\u2590________/|____\u258C","\u2590_______/|_____\u258C","\u2590______/|______\u258C","\u2590_____/|_______\u258C","\u2590____/|________\u258C","\u2590___/|_________\u258C","\u2590__/|__________\u258C","\u2590_/|___________\u258C","\u2590/|____________\u258C"]},dqpb:{interval:100,frames:["d","q","p","b"]},weather:{interval:100,frames:["\u2600\uFE0F ","\u2600\uFE0F ","\u2600\uFE0F ","\u{1F324} ","\u26C5\uFE0F ","\u{1F325} ","\u2601\uFE0F ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u26C8 ","\u{1F328} ","\u{1F327} ","\u{1F328} ","\u2601\uFE0F ","\u{1F325} ","\u26C5\uFE0F ","\u{1F324} ","\u2600\uFE0F ","\u2600\uFE0F "]},christmas:{interval:400,frames:["\u{1F332}","\u{1F384}"]},grenade:{interval:80,frames:["\u060C ","\u2032 "," \xB4 "," \u203E "," \u2E0C"," \u2E0A"," |"," \u204E"," \u2055"," \u0DF4 "," \u2053"," "," "," "]},point:{interval:125,frames:["\u2219\u2219\u2219","\u25CF\u2219\u2219","\u2219\u25CF\u2219","\u2219\u2219\u25CF","\u2219\u2219\u2219"]},layer:{interval:150,frames:["-","=","\u2261"]},betaWave:{interval:80,frames:["\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1\u03B2","\u03B2\u03B2\u03B2\u03B2\u03B2\u03B2\u03C1"]},fingerDance:{interval:160,frames:["\u{1F918} ","\u{1F91F} ","\u{1F596} ","\u270B ","\u{1F91A} ","\u{1F446} "]},fistBump:{interval:80,frames:["\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u{1F91C}\u3000\u3000\u3000\u3000\u{1F91B} ","\u3000\u{1F91C}\u3000\u3000\u{1F91B}\u3000 ","\u3000\u3000\u{1F91C}\u{1F91B}\u3000\u3000 ","\u3000\u{1F91C}\u2728\u{1F91B}\u3000\u3000 ","\u{1F91C}\u3000\u2728\u3000\u{1F91B}\u3000 "]},soccerHeader:{interval:80,frames:[" \u{1F9D1}\u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F\u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} ","\u{1F9D1} \u26BD\uFE0F \u{1F9D1} "]},mindblown:{interval:160,frames:["\u{1F610} ","\u{1F610} ","\u{1F62E} ","\u{1F62E} ","\u{1F626} ","\u{1F626} ","\u{1F627} ","\u{1F627} ","\u{1F92F} ","\u{1F4A5} ","\u2728 ","\u3000 ","\u3000 ","\u3000 "]},speaker:{interval:160,frames:["\u{1F508} ","\u{1F509} ","\u{1F50A} ","\u{1F509} "]},orangePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} "]},bluePulse:{interval:100,frames:["\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},orangeBluePulse:{interval:100,frames:["\u{1F538} ","\u{1F536} ","\u{1F7E0} ","\u{1F7E0} ","\u{1F536} ","\u{1F539} ","\u{1F537} ","\u{1F535} ","\u{1F535} ","\u{1F537} "]},timeTravel:{interval:100,frames:["\u{1F55B} ","\u{1F55A} ","\u{1F559} ","\u{1F558} ","\u{1F557} ","\u{1F556} ","\u{1F555} ","\u{1F554} ","\u{1F553} ","\u{1F552} ","\u{1F551} ","\u{1F550} "]},aesthetic:{interval:80,frames:["\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B1","\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0\u25B0","\u25B0\u25B1\u25B1\u25B1\u25B1\u25B1\u25B1"]},dwarfFortress:{interval:80,frames:[" \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A\u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 ","\u263A \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\u2588\xA3\xA3\xA3 "," \u263A \u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2588\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2593\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2592\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A\u2591\u2588\xA3\xA3\xA3 "," \u263A \u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2588\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2592\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A\u2591\xA3\xA3\xA3 "," \u263A \xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\xA3\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2593\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2592\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A\u2591\xA3\xA3 "," \u263A \xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\xA3\xA3 "," \u263A\u2593\xA3 "," \u263A\u2593\xA3 "," \u263A\u2592\xA3 "," \u263A\u2592\xA3 "," \u263A\u2591\xA3 "," \u263A\u2591\xA3 "," \u263A \xA3 "," \u263A\xA3 "," \u263A\xA3 "," \u263A\u2593 "," \u263A\u2593 "," \u263A\u2592 "," \u263A\u2592 "," \u263A\u2591 "," \u263A\u2591 "," \u263A "," \u263A &"," \u263A \u263C&"," \u263A \u263C &"," \u263A\u263C &"," \u263A\u263C & "," \u203C & "," \u263A & "," \u203C & "," \u263A & "," \u203C & "," \u263A & ","\u203C & "," & "," & "," & \u2591 "," & \u2592 "," & \u2593 "," & \xA3 "," & \u2591\xA3 "," & \u2592\xA3 "," & \u2593\xA3 "," & \xA3\xA3 "," & \u2591\xA3\xA3 "," & \u2592\xA3\xA3 ","& \u2593\xA3\xA3 ","& \xA3\xA3\xA3 "," \u2591\xA3\xA3\xA3 "," \u2592\xA3\xA3\xA3 "," \u2593\xA3\xA3\xA3 "," \u2588\xA3\xA3\xA3 "," \u2591\u2588\xA3\xA3\xA3 "," \u2592\u2588\xA3\xA3\xA3 "," \u2593\u2588\xA3\xA3\xA3 "," \u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2591\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2592\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2593\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "," \u2588\u2588\u2588\u2588\u2588\u2588\xA3\xA3\xA3 "]}}});var Mt=bt((ms,Pt)=>{"use strict";var Pe=Object.assign({},Rt()),It=Object.keys(Pe);Object.defineProperty(Pe,"random",{get(){let e=Math.floor(Math.random()*It.length),t=It[e];return Pe[t]}});Pt.exports=Pe});import{useState as Rr}from"react";import{realpathSync as An}from"fs";import{fileURLToPath as Tn}from"url";import{render as Cn,Box as Ir,Text as ht}from"ink";import{Text as J,Box as ie}from"ink";import{Text as ne}from"ink";import{jsx as se}from"react/jsx-runtime";function Fr(e,t,r){let o=[parseInt(e.slice(1,3),16),parseInt(e.slice(3,5),16),parseInt(e.slice(5,7),16)],n=[parseInt(t.slice(1,3),16),parseInt(t.slice(3,5),16),parseInt(t.slice(5,7),16)];return"#"+o.map((i,m)=>Math.round(i+(n[m]-i)*Math.max(0,Math.min(1,r)))).map(i=>i.toString(16).padStart(2,"0")).join("")}function Xe(e,t){if(e.length===1)return e[0];let r=Math.max(0,Math.min(1,t))*(e.length-1),o=Math.min(e.length-2,Math.floor(r));return Fr(e[o],e[o+1],r-o)}var xt=({text:e,stops:t,bold:r,dim:o})=>{let n=[...e],s=Math.max(1,n.length-1);return se(ne,{children:n.map((i,m)=>se(ne,{color:Xe(t,m/s),bold:r,dimColor:o,children:i},m))})},vt=({width:e,stops:t,char:r="\u2500"})=>{let o=Math.max(1,e-1);return se(ne,{children:Array.from({length:e},(n,s)=>se(ne,{color:Xe(t,s/o),children:r},s))})},St=({value:e,total:t,width:r,stops:o,track:n="#2C3A31"})=>{let s=Math.max(0,Math.min(r,Math.round(e/Math.max(1,t)*r))),i=Math.max(1,r-1);return se(ne,{children:Array.from({length:r},(m,a)=>a<s?se(ne,{color:Xe(o,a/i),children:"\u2501"},a):se(ne,{color:n,children:"\u2500"},a))})};import{jsx as w,jsxs as X}from"react/jsx-runtime";var c={accent:"#88CCA0",accentDeep:"#5FA877",ink:"#E3EBE0",muted:"#8C9C8C",faint:"#5E6E5E",ok:"#88CCA0",warn:"#D9AE52",err:"#E0663A",signal:"#DB8240",teal:"#9FD8C4"},Ze=["#6FB3A8","#9FD8C4","#88CCA0","#D9AE52","#DB8240"],Et=()=>Math.max(44,Math.min((process.stdout.columns||80)-6,88)),Qe=()=>{let e=Et();return X(ie,{flexDirection:"column",paddingY:1,children:[X(ie,{width:e,justifyContent:"space-between",children:[X(ie,{children:[X(J,{color:c.signal,bold:!0,children:["\u2325"," "]}),w(xt,{text:"openagentic",stops:Ze,bold:!0})]}),w(J,{color:c.faint,children:"self-hosted \xB7 docker / k8s \xB7 v1.0"})]}),w(vt,{width:e,stops:Ze}),w(J,{color:c.muted,children:"the open agentic platform for IT operations"})]})},Hr=({step:e,total:t,title:r})=>X(ie,{flexDirection:"column",marginBottom:1,children:[X(ie,{children:[w(J,{color:c.accent,bold:!0,children:String(e).padStart(2,"0")}),X(J,{color:c.faint,children:[" / ",String(t).padStart(2,"0")]}),w(J,{color:c.faint,children:" "}),w(J,{color:c.ink,bold:!0,children:r})]}),w(ie,{marginTop:0,children:w(St,{value:e,total:t,width:Math.min(36,Et()),stops:Ze})})]}),x=({children:e})=>w(J,{color:c.muted,children:e}),S=({step:e,total:t,title:r,children:o})=>X(ie,{flexDirection:"column",paddingX:2,children:[w(Qe,{}),w(Hr,{step:e,total:t,title:r}),o]});import Vr from"react";import{Box as et,Text as ae}from"ink";import{jsx as Z,jsxs as yt}from"react/jsx-runtime";var Re=class extends Vr.Component{constructor(t){super(t),this.state={error:null}}static getDerivedStateFromError(t){return{error:t}}componentDidCatch(){}render(){let{error:t}=this.state;return t?yt(et,{flexDirection:"column",paddingX:1,paddingY:1,children:[Z(ae,{color:c.err,bold:!0,children:"\u2717 The setup wizard hit an unexpected error"}),Z(et,{marginTop:1,children:Z(ae,{color:c.ink,children:t.message||String(t)})}),yt(et,{flexDirection:"column",marginTop:1,children:[Z(ae,{color:c.muted,children:"Retry the wizard, or fall back to a non-interactive install:"}),Z(ae,{color:c.faint,children:" Quick (Ollama): ./install.sh --quick"}),Z(ae,{color:c.faint,children:" From a .env: ./install.sh --env ./my.env"}),Z(ae,{color:c.faint,children:" Help: https://openagentics.io/docs/troubleshooting"}),Z(ae,{color:c.faint,children:" Issues: https://github.com/agentic-work/openagentic/issues"})]})]}):this.props.children}};import{Text as Qr}from"ink";import tt from"react";import{Box as Kr,Text as At}from"ink";import Gr from"figures";function Ur({isSelected:e=!1}){return tt.createElement(Kr,{marginRight:1},e?tt.createElement(At,{color:"blue"},Gr.pointer):tt.createElement(At,null," "))}var rt=Ur;import*as Tt from"react";import{Text as jr}from"ink";function $r({isSelected:e=!1,label:t}){return Tt.createElement(jr,{color:e?"blue":void 0},t)}var ot=$r;import{isDeepStrictEqual as zr}from"node:util";import Ie,{useState as Ct,useEffect as Yr,useRef as qr,useCallback as Jr}from"react";function le(e,t){if(!Array.isArray(e))throw new TypeError(`Expected an array, got \`${typeof e}\`.`);if(!Number.isSafeInteger(t))throw new TypeError(`The \`steps\` parameter must be an integer, got ${t}.`);let{length:r}=e;if(r===0)return[...e];let o=(t%r+r)%r;return o===0?[...e]:[...e.slice(-o),...e.slice(0,-o)]}import{Box as Ot,useInput as Xr}from"ink";function Zr({items:e=[],isFocused:t=!0,initialIndex:r=0,indicatorComponent:o=rt,itemComponent:n=ot,limit:s,onSelect:i,onHighlight:m}){let a=typeof s=="number"&&e.length>s,l=a?Math.min(s,e.length):e.length,u=l-1,[p,h]=Ct(r>u?u-r:0),[_,b]=Ct(r?r>u?u:r:0),O=qr(e);Yr(()=>{zr(O.current.map(f=>f.value),e.map(f=>f.value))||(h(0),b(0)),O.current=e},[e]),Xr(Jr((f,v)=>{if(f==="k"||v.upArrow){let g=(a?l:e.length)-1,R=_===0,H=a?_:g,q=R?p+1:p,fe=R?H:_-1;h(q),b(fe);let C=a?le(e,q).slice(0,l):e;typeof m=="function"&&m(C[fe])}if(f==="j"||v.downArrow){let g=_===(a?l:e.length)-1,R=a?_:0,H=g?p-1:p,q=g?R:_+1;h(H),b(q);let fe=a?le(e,H).slice(0,l):e;typeof m=="function"&&m(fe[q])}if(/^[1-9]$/.test(f)){let g=Number.parseInt(f,10)-1,R=a?le(e,p).slice(0,l):e;if(g>=0&&g<R.length){let H=R[g];H&&i?.(H)}}if(v.return){let g=a?le(e,p).slice(0,l):e;typeof i=="function"&&i(g[_])}},[a,l,p,_,e,i,m]),{isActive:t});let d=a?le(e,p).slice(0,l):e;return Ie.createElement(Ot,{flexDirection:"column"},d.map((f,v)=>{let g=v===_;return Ie.createElement(Ot,{key:f.key??f.value},Ie.createElement(o,{isSelected:g}),Ie.createElement(n,{...f,isSelected:g}))}))}var D=Zr;import{jsx as nt,jsxs as to}from"react/jsx-runtime";var kt=({onPick:e})=>to(S,{step:1,total:9,title:"Where do you want to run openagentic?",children:[nt(D,{items:[{label:"Docker (local / single machine)",value:"docker"},{label:"Helm (production / kubernetes)",value:"helm"}],onSelect:r=>e(r.value),indicatorComponent:eo}),nt(x,{children:"Both paths land at http://localhost:8080 with the same UI."})]}),eo=({isSelected:e})=>nt(Qr,{color:c.accent,children:e?"\u276F ":" "});import{useEffect as Do,useState as wo}from"react";import{Box as P,Text as M,useInput as Lo}from"ink";var Bt=Wr(Mt(),1);import oo,{useState as no,useEffect as so}from"react";import{Text as io}from"ink";function ao({type:e="dots"}){let[t,r]=no(0),o=Bt.default[e];return so(()=>{let n=setInterval(()=>{r(s=>s===o.frames.length-1?0:s+1)},o.interval);return()=>{clearInterval(n)}},[o]),oo.createElement(io,null,o.frames[t])}var Dt=ao;import Ao,{useState as To,useEffect as Co}from"react";import{Text as Oo,useInput as ko}from"ink";var wt=(e=0)=>t=>`\x1B[${t+e}m`,Lt=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,Nt=(e=0)=>(t,r,o)=>`\x1B[${38+e};2;${t};${r};${o}m`,A={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]}},gs=Object.keys(A.modifier),lo=Object.keys(A.color),co=Object.keys(A.bgColor),hs=[...lo,...co];function uo(){let e=new Map;for(let[t,r]of Object.entries(A)){for(let[o,n]of Object.entries(r))A[o]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},r[o]=A[o],e.set(n[0],n[1]);Object.defineProperty(A,t,{value:r,enumerable:!1})}return Object.defineProperty(A,"codes",{value:e,enumerable:!1}),A.color.close="\x1B[39m",A.bgColor.close="\x1B[49m",A.color.ansi=wt(),A.color.ansi256=Lt(),A.color.ansi16m=Nt(),A.bgColor.ansi=wt(10),A.bgColor.ansi256=Lt(10),A.bgColor.ansi16m=Nt(10),Object.defineProperties(A,{rgbToAnsi256:{value(t,r,o){return t===r&&r===o?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)},enumerable:!1},hexToRgb:{value(t){let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.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:t=>A.rgbToAnsi256(...A.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,o,n;if(t>=232)r=((t-232)*10+8)/255,o=r,n=r;else{t-=16;let m=t%36;r=Math.floor(t/36)/5,o=Math.floor(m/6)/5,n=m%6/5}let s=Math.max(r,o,n)*2;if(s===0)return 30;let i=30+(Math.round(n)<<2|Math.round(o)<<1|Math.round(r));return s===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(t,r,o)=>A.ansi256ToAnsi(A.rgbToAnsi256(t,r,o)),enumerable:!1},hexToAnsi:{value:t=>A.ansi256ToAnsi(A.hexToAnsi256(t)),enumerable:!1}}),A}var mo=uo(),V=mo;import st from"node:process";import po from"node:os";import Wt from"node:tty";function L(e,t=globalThis.Deno?globalThis.Deno.args:st.argv){let r=e.startsWith("-")?"":e.length===1?"-":"--",o=t.indexOf(r+e),n=t.indexOf("--");return o!==-1&&(n===-1||o<n)}var{env:T}=st,Me;L("no-color")||L("no-colors")||L("color=false")||L("color=never")?Me=0:(L("color")||L("colors")||L("color=true")||L("color=always"))&&(Me=1);function fo(){if("FORCE_COLOR"in T)return T.FORCE_COLOR==="true"?1:T.FORCE_COLOR==="false"?0:T.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(T.FORCE_COLOR,10),3)}function go(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function ho(e,{streamIsTTY:t,sniffFlags:r=!0}={}){let o=fo();o!==void 0&&(Me=o);let n=r?Me:o;if(n===0)return 0;if(r){if(L("color=16m")||L("color=full")||L("color=truecolor"))return 3;if(L("color=256"))return 2}if("TF_BUILD"in T&&"AGENT_NAME"in T)return 1;if(e&&!t&&n===void 0)return 0;let s=n||0;if(T.TERM==="dumb")return s;if(st.platform==="win32"){let i=po.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in T)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(i=>i in T)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(i=>i in T)||T.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in T)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(T.TEAMCITY_VERSION)?1:0;if(T.COLORTERM==="truecolor"||T.TERM==="xterm-kitty"||T.TERM==="xterm-ghostty"||T.TERM==="wezterm")return 3;if("TERM_PROGRAM"in T){let i=Number.parseInt((T.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(T.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(T.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(T.TERM)||"COLORTERM"in T?1:s}function Ft(e,t={}){let r=ho(e,{streamIsTTY:e&&e.isTTY,...t});return go(r)}var _o={stdout:Ft({isTTY:Wt.isatty(1)}),stderr:Ft({isTTY:Wt.isatty(2)})},Ht=_o;function Vt(e,t,r){let o=e.indexOf(t);if(o===-1)return e;let n=t.length,s=0,i="";do i+=e.slice(s,o)+t+r,s=o+n,o=e.indexOf(t,s);while(o!==-1);return i+=e.slice(s),i}function Kt(e,t,r,o){let n=0,s="";do{let i=e[o-1]==="\r";s+=e.slice(n,i?o-1:o)+t+(i?`\r
3
+ `:`
4
+ `)+r,n=o+1,o=e.indexOf(`
5
+ `,n)}while(o!==-1);return s+=e.slice(n),s}var{stdout:Gt,stderr:Ut}=Ht,it=Symbol("GENERATOR"),ge=Symbol("STYLER"),ye=Symbol("IS_EMPTY"),jt=["ansi","ansi","ansi256","ansi16m"],he=Object.create(null),bo=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=Gt?Gt.level:0;e.level=t.level===void 0?r:t.level};var xo=e=>{let t=(...r)=>r.join(" ");return bo(t,e),Object.setPrototypeOf(t,Ae.prototype),t};function Ae(e){return xo(e)}Object.setPrototypeOf(Ae.prototype,Function.prototype);for(let[e,t]of Object.entries(V))he[e]={get(){let r=Be(this,lt(t.open,t.close,this[ge]),this[ye]);return Object.defineProperty(this,e,{value:r}),r}};he.visible={get(){let e=Be(this,this[ge],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var at=(e,t,r,...o)=>e==="rgb"?t==="ansi16m"?V[r].ansi16m(...o):t==="ansi256"?V[r].ansi256(V.rgbToAnsi256(...o)):V[r].ansi(V.rgbToAnsi(...o)):e==="hex"?at("rgb",t,r,...V.hexToRgb(...o)):V[r][e](...o),vo=["rgb","hex","ansi256"];for(let e of vo){he[e]={get(){let{level:r}=this;return function(...o){let n=lt(at(e,jt[r],"color",...o),V.color.close,this[ge]);return Be(this,n,this[ye])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);he[t]={get(){let{level:r}=this;return function(...o){let n=lt(at(e,jt[r],"bgColor",...o),V.bgColor.close,this[ge]);return Be(this,n,this[ye])}}}}var So=Object.defineProperties(()=>{},{...he,level:{enumerable:!0,get(){return this[it].level},set(e){this[it].level=e}}}),lt=(e,t,r)=>{let o,n;return r===void 0?(o=e,n=t):(o=r.openAll+e,n=t+r.closeAll),{open:e,close:t,openAll:o,closeAll:n,parent:r}},Be=(e,t,r)=>{let o=(...n)=>Eo(o,n.length===1?""+n[0]:n.join(" "));return Object.setPrototypeOf(o,So),o[it]=e,o[ge]=t,o[ye]=r,o},Eo=(e,t)=>{if(e.level<=0||!t)return e[ye]?"":t;let r=e[ge];if(r===void 0)return t;let{openAll:o,closeAll:n}=r;if(t.includes("\x1B"))for(;r!==void 0;)t=Vt(t,r.close,r.open),r=r.parent;let s=t.indexOf(`
6
+ `);return s!==-1&&(t=Kt(t,n,o,s)),o+t+n};Object.defineProperties(Ae.prototype,he);var yo=Ae(),Cs=Ae({level:Ut?Ut.level:0});var Q=yo;function Ro({value:e,placeholder:t="",focus:r=!0,mask:o,highlightPastedText:n=!1,showCursor:s=!0,onChange:i,onSubmit:m}){let[a,l]=To({cursorOffset:(e||"").length,cursorWidth:0}),{cursorOffset:u,cursorWidth:p}=a;Co(()=>{l(d=>{if(!r||!s)return d;let f=e||"";return d.cursorOffset>f.length-1?{cursorOffset:f.length,cursorWidth:0}:d})},[e,r,s]);let h=n?p:0,_=o?o.repeat(e.length):e,b=_,O=t?Q.grey(t):void 0;if(s&&r){O=t.length>0?Q.inverse(t[0])+Q.grey(t.slice(1)):Q.inverse(" "),b=_.length>0?"":Q.inverse(" ");let d=0;for(let f of _)b+=d>=u-h&&d<=u?Q.inverse(f):f,d++;_.length>0&&u===_.length&&(b+=Q.inverse(" "))}return ko((d,f)=>{if(f.upArrow||f.downArrow||f.ctrl&&d==="c"||f.tab||f.shift&&f.tab)return;if(f.return){m&&m(e);return}let v=u,g=e,R=0;f.leftArrow?s&&v--:f.rightArrow?s&&v++:f.backspace||f.delete?u>0&&(g=e.slice(0,u-1)+e.slice(u,e.length),v--):(g=e.slice(0,u)+d+e.slice(u,e.length),v+=d.length,d.length>1&&(R=d.length)),u<0&&(v=0),u>e.length&&(v=e.length),l({cursorOffset:v,cursorWidth:R}),g!==e&&i(g)},{isActive:r}),Ao.createElement(Oo,null,t?_.length>0?b:O:b)}var I=Ro;import{execa as Io}from"execa";import{existsSync as $t,statSync as Po}from"node:fs";import{homedir as zt}from"node:os";import{join as Yt}from"node:path";var Mo=8e3;function Bo(e){return e.startsWith("~/")||e==="~"?Yt(zt(),e.slice(1)):e}function qt(){let e=process.env.KUBECONFIG?.trim();if(e)return e;let t=Yt(zt(),".kube","config");return $t(t)?t:null}function Jt(e){let t=Bo(e.trim());if(!t)return{ok:!1,reason:"path is empty"};if(!$t(t))return{ok:!1,reason:`not found: ${t}`};try{if(!Po(t).isFile())return{ok:!1,reason:`${t} is not a regular file`}}catch{return{ok:!1,reason:`cannot read ${t}`}}return{ok:!0,path:t}}async function ce(e,t,r){try{let o=await Io(e,t,{timeout:Mo,env:r,reject:!1});return{ok:o.exitCode===0,stdout:o.stdout||"",stderr:o.stderr||""}}catch(o){return{ok:!1,stdout:"",stderr:String(o)}}}async function Xt(e){let t={...process.env,KUBECONFIG:e},r={kubeconfigPath:e,kubectlVersion:null,helmVersion:null,context:null,reachable:!1,serverVersion:null,nodeCount:null,namespaceExists:!1,existingRelease:null},o=await ce("kubectl",["version","--client=true","--output=json"],t);if(o.ok)try{let u=JSON.parse(o.stdout);r.kubectlVersion=u?.clientVersion?.gitVersion||null}catch{r.kubectlVersion=null}let n=await ce("helm",["version","--template={{.Version}}"],t);if(n.ok&&(r.helmVersion=n.stdout.trim()),!r.kubectlVersion||!r.helmVersion)return r;let s=await ce("kubectl",["config","current-context"],t);if(s.ok&&(r.context=s.stdout.trim()),!r.context)return r;let i=await ce("kubectl",["version","--output=json"],t);if(i.ok)try{let u=JSON.parse(i.stdout);r.serverVersion=u?.serverVersion?.gitVersion||null,r.reachable=!!r.serverVersion}catch{r.reachable=!1}if(!r.reachable)return r;let m=await ce("kubectl",["get","nodes","-o","name"],t);m.ok&&(r.nodeCount=m.stdout.split(`
7
+ `).filter(Boolean).length);let a=await ce("kubectl",["get","namespace","openagentic","-o","name"],t);r.namespaceExists=a.ok&&a.stdout.trim().length>0;let l=await ce("helm",["list","-n","openagentic","-o","json"],t);if(l.ok)try{let u=JSON.parse(l.stdout);if(Array.isArray(u)&&u.length>0){let p=u.find(h=>h.name==="openagentic")??u[0];p&&(r.existingRelease={name:p.name,revision:Number(p.revision)||0,status:p.status||"unknown"})}}catch{}return r}import{jsx as E,jsxs as N}from"react/jsx-runtime";var Zt=({onContinue:e,onBackToDocker:t})=>{let r=qt(),[o,n]=wo(r?{stage:"probing",kubeconfigPath:r}:{stage:"picking-kubeconfig",input:"",error:null});if(Do(()=>{if(o.stage!=="probing")return;let l=!1;return Xt(o.kubeconfigPath).then(u=>{l||n({stage:"ready",probe:u})}),()=>{l=!0}},[o.stage==="probing"?o.kubeconfigPath:null]),Lo((l,u)=>{o.stage==="picking-kubeconfig"&&u.escape&&t()}),o.stage==="picking-kubeconfig")return N(S,{step:2,total:10,title:"Checking your cluster",children:[N(P,{flexDirection:"column",marginBottom:1,children:[N(M,{children:["No kubeconfig found at ",E(M,{color:c.accent,children:"$KUBECONFIG"})," or ",E(M,{color:c.accent,children:"~/.kube/config"}),"."]}),N(M,{children:["Paste a path to your kubeconfig, or press ",E(M,{color:c.accent,children:"Esc"})," to go back to Docker."]})]}),N(P,{children:[E(M,{children:"kubeconfig: "}),E(I,{value:o.input,onChange:l=>n({...o,input:l,error:null}),onSubmit:l=>{let u=Jt(l);if(!u.ok){n({...o,error:u.reason});return}n({stage:"probing",kubeconfigPath:u.path})}})]}),o.error&&E(P,{marginTop:1,children:E(M,{color:c.err,children:o.error})})]});if(o.stage==="probing")return E(S,{step:2,total:10,title:"Checking your cluster",children:N(P,{children:[E(M,{color:c.accent,children:E(Dt,{type:"dots"})}),N(M,{children:[" probing cluster via ",o.kubeconfigPath,"\u2026"]})]})});let{probe:s}=o,i=[{label:"kubeconfig",value:s.kubeconfigPath},{label:"kubectl",value:s.kubectlVersion??"not found on PATH",colour:s.kubectlVersion?void 0:c.err},{label:"helm",value:s.helmVersion??"not found on PATH",colour:s.helmVersion?void 0:c.err},{label:"context",value:s.context??"no current context set",colour:s.context?void 0:c.err},{label:"cluster",value:s.reachable?`${s.serverVersion??"unknown"} (${s.nodeCount??"?"} nodes)`:"unreachable",colour:s.reachable?void 0:c.err},{label:"namespace",value:s.namespaceExists?"openagentic \u2014 exists":"openagentic \u2014 does not exist",colour:s.namespaceExists?c.warn:void 0},{label:"existing release",value:s.existingRelease?`${s.existingRelease.name} rev ${s.existingRelease.revision} (${s.existingRelease.status})`:"none",colour:s.existingRelease?c.warn:void 0}],m=s.kubectlVersion?s.helmVersion?s.context?s.reachable?null:"cluster is unreachable. Check VPN / kubeconfig / network.":"no current kubectl context is set. Run: kubectl config use-context <name>":"helm is not installed or not on PATH.":"kubectl is not installed or not on PATH.";if(m)return N(S,{step:2,total:10,title:"Checking your cluster",children:[E(P,{flexDirection:"column",children:i.map(l=>N(P,{children:[E(P,{width:18,children:E(M,{color:c.muted,children:l.label})}),E(M,{color:l.colour,children:l.value})]},l.label))}),E(P,{marginTop:1,children:E(M,{color:c.err,children:m})}),E(P,{marginTop:1,children:E(D,{items:[{label:"Back to Docker deploy",value:"docker"},{label:"Quit",value:"quit"}],onSelect:l=>{l.value==="docker"?t():process.exit(0)}})})]});let a=s.existingRelease?`Existing release 'openagentic' (rev ${s.existingRelease.revision}). Continuing will run helm upgrade.`:s.namespaceExists?"Namespace 'openagentic' exists but no Helm release. Continuing will adopt it.":null;return N(S,{step:2,total:10,title:"Checking your cluster",children:[E(P,{flexDirection:"column",children:i.map(l=>N(P,{children:[E(P,{width:18,children:E(M,{color:c.muted,children:l.label})}),E(M,{color:l.colour,children:l.value})]},l.label))}),a&&E(P,{marginTop:1,children:N(M,{color:c.warn,children:["\u26A0 ",a]})}),E(P,{marginTop:1,children:E(D,{items:[{label:s.existingRelease?"Upgrade existing release":"Continue",value:"continue"},{label:"Back to Docker deploy",value:"docker"}],onSelect:l=>{l.value==="continue"?e(s.kubeconfigPath):t()}})}),E(P,{marginTop:1,children:E(x,{children:"Helm backend implementation is still in progress \u2014 the preflight above will run, but the final install step may not complete. See CLAUDE.md."})})]})};import{useState as ct}from"react";import{Box as De,Text as _e}from"ink";import{jsx as j,jsxs as Te}from"react/jsx-runtime";var Qt=({initial:e,step:t,total:r,onDone:o})=>{let[n,s]=ct(e.email),[i,m]=ct(e.password),[a,l]=ct("email");return j(S,{step:t,total:r,title:"Create your admin account",children:Te(De,{flexDirection:"column",children:[Te(De,{children:[Te(_e,{color:a==="email"?c.accent:c.muted,children:[a==="email"?"\u276F ":" ","email :"]}),j(_e,{children:" "}),a==="email"?j(I,{value:n,onChange:s,onSubmit:()=>l("password")}):j(_e,{children:n})]}),Te(De,{children:[Te(_e,{color:a==="password"?c.accent:c.muted,children:[a==="password"?"\u276F ":" ","password :"]}),j(_e,{children:" "}),a==="password"?j(I,{value:i,onChange:m,mask:"\u2022",onSubmit:()=>{i.length>=8&&n.includes("@")&&o({...e,email:n,password:i})}}):j(_e,{children:"\u2022".repeat(Math.min(i.length,12))})]}),j(De,{marginTop:1,children:j(x,{children:"Minimum 8 characters. You can change this later from the admin panel."})})]})})};import{Box as ut,Text as mt}from"ink";import{jsx as ee,jsxs as tr}from"react/jsx-runtime";var er=[{label:"Local only \u2014 Ollama on this machine",value:"ollama",hint:"Zero API costs, fully offline. Need an Ollama install (https://ollama.com)."},{label:"AWS Bedrock (Claude via IAM)",value:"cloud",hint:"Authenticate with AWS IAM creds \u2014 no raw API keys. Seeds Claude Sonnet 4.6 as the default chat + flows model."},{label:"Google Vertex AI (Gemini via service account)",value:"vertex",hint:"Authenticate with a GCP service account / workload identity \u2014 no API keys. Seeds gemini-2.5-pro chat + text-embedding-005 embeddings + Imagen, all on Vertex."},{label:"Both \u2014 gpt-oss:20b (local) + AWS Bedrock Claude Sonnet 4.6 (default), Ollama embeddings",value:"both",hint:"Richest demo: TWO selectable chat models \u2014 local gpt-oss:20b + frontier Claude Sonnet 4.6 (the default), free Ollama embeddings, all via AWS IAM (no raw keys)."},{label:"Skip for now \u2014 configure later from the admin panel",value:"skip",hint:"Stack will boot, but chat/embedding calls will fail until you wire a provider."}],rr=({step:e,total:t,onPick:r})=>ee(S,{step:e,total:t,title:"How should the platform call LLMs?",children:tr(ut,{flexDirection:"column",children:[ee(x,{children:"This decides where chat completions and embeddings get made."}),ee(x,{children:"Cloud-management creds (Azure / AWS / GCP) are a separate step further down."}),ee(ut,{marginTop:1,children:ee(D,{items:er.map(o=>({label:o.label,value:o.value})),onSelect:o=>r(o.value),indicatorComponent:({isSelected:o})=>ee(mt,{color:c.accent,children:o?"\u276F ":" "})})}),ee(ut,{marginTop:1,flexDirection:"column",children:er.map(o=>tr(mt,{color:c.muted,children:[" ",ee(mt,{bold:!0,children:o.label.split(" \u2014 ")[0]})," \u2014 ",o.hint]},o.value))})]})});import{useState as No}from"react";import{Box as we,Text as or}from"ink";import{jsx as te,jsxs as nr}from"react/jsx-runtime";var sr=({initial:e,step:t,total:r,onDone:o})=>{let[n,s]=No(e.host);return te(S,{step:t,total:r,title:"Where is your Ollama?",children:nr(we,{flexDirection:"column",children:[nr(we,{children:[te(or,{color:c.accent,children:"\u276F "}),te(or,{children:"host: "}),te(I,{value:n,onChange:s,onSubmit:()=>o({...e,host:n})})]}),te(we,{marginTop:1,children:te(x,{children:"Default http://ollama:11434 = the bundled container (recommended). Use http://host.docker.internal:11434 to reach Ollama on your host."})}),te(we,{children:te(x,{children:"Ollama provides embeddings (semantic tool routing). The bundled container pre-pulls the embed model on first boot."})})]})})};import{useState as ue}from"react";import{Box as W,Text as $}from"ink";import Wo from"node:fs";import Fo from"node:os";import Ho from"node:path";import{jsx as y,jsxs as K}from"react/jsx-runtime";var Vo=Fo.homedir(),ir=e=>{try{return Wo.existsSync(Ho.join(Vo,e))}catch{return!1}},Ko=()=>ir(".aws/credentials")||ir(".aws/config"),ar="us-east-1",lr=({initial:e,step:t,total:r,onDone:o})=>{let n=Ko(),s=e.awsBedrock,i=s?.useHostCreds?"host":s?.profile?"profile":s?.accessKeyId?"inline":n?"host":"inline",[m,a]=ue("mode"),[l,u]=ue(i),[p,h]=ue(s?.region||ar),[_,b]=ue(s?.accessKeyId||""),[O,d]=ue(s?.secretAccessKey||""),[f,v]=ue(s?.profile||"default"),[g,R]=ue(0),H=(C,k)=>{let oe={region:k.trim()||ar};C==="host"?oe.useHostCreds=!0:C==="inline"?(oe.accessKeyId=_.trim(),oe.secretAccessKey=O):C==="profile"&&(oe.profile=f.trim()||"default"),o({awsBedrock:oe})};if(m==="mode"){let C=[];return n&&C.push({label:"Use my host AWS creds (~/.aws \u2014 mounted read-only)",value:"host"}),C.push({label:"Enter IAM access key / secret inline",value:"inline"}),C.push({label:"Use a named AWS profile",value:"profile"}),y(S,{step:t,total:r,title:"AWS Bedrock (Claude via IAM)",children:K(W,{flexDirection:"column",children:[y(x,{children:"Cloud LLMs authenticate with AWS IAM \u2014 no raw provider API keys."}),y(x,{children:"Claude Sonnet 4.6 becomes the default chat + flows model."}),n?y(x,{children:"Detected AWS credentials in ~/.aws \u2014 host creds are the easy path."}):y(x,{children:"No ~/.aws found on this machine \u2014 paste IAM keys or name a profile."}),y(W,{marginTop:1,children:y(D,{items:C.map(k=>({label:k.label,value:k.value})),initialIndex:Math.max(0,C.findIndex(k=>k.value===l)),onSelect:k=>{let re=k.value;u(re),R(0),a(re==="host"?"region":re==="inline"?"inline":"profile")},indicatorComponent:({isSelected:k})=>y($,{color:c.accent,children:k?"\u276F ":" "})})})]})})}if(m==="region")return y(S,{step:t,total:r,title:"AWS Bedrock \u2014 region",children:K(W,{flexDirection:"column",children:[K(W,{children:[y($,{color:c.accent,children:"\u276F AWS region: "}),y(I,{value:p,onChange:h,onSubmit:()=>H("host",p)})]}),y(W,{marginTop:1,children:y(x,{children:"Default us-east-1. Your host ~/.aws creds will be mounted read-only into the api."})})]})});if(m==="inline"){let C=[{key:"region",label:"AWS region ",value:p,set:h,mask:!1},{key:"accessKeyId",label:"AWS access key id ",value:_,set:b,mask:!1},{key:"secretAccessKey",label:"AWS secret access key ",value:O,set:d,mask:!0}],k=C[g],re=(k.key==="accessKeyId"||k.key==="secretAccessKey")&&!k.value.trim(),oe=()=>{re||(g+1<C.length?R(g+1):H("inline",p))};return y(S,{step:t,total:r,title:"AWS Bedrock \u2014 IAM access key",children:K(W,{flexDirection:"column",children:[C.map((U,Je)=>K(W,{children:[K($,{color:Je===g?c.accent:c.muted,children:[Je===g?"\u276F ":" ",U.label,":"]}),y($,{children:" "}),Je===g?y(I,{value:U.value,onChange:U.set,onSubmit:oe,mask:U.mask?"\u2022":void 0}):y($,{children:U.value?U.mask?"\u2022".repeat(Math.min(U.value.length,20)):U.value:""})]},U.key)),y(W,{marginTop:1,children:y(x,{children:"Inline IAM keys are written to .env as AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY."})}),re&&y(W,{children:K($,{color:c.accent,children:["\u25CF required \u2014 paste your IAM ",k.key==="secretAccessKey"?"secret":"access key"," to continue"]})})]})})}let q=[{key:"region",label:"AWS region ",value:p,set:h},{key:"profile",label:"AWS profile ",value:f,set:v}],fe=()=>{g+1<q.length?R(g+1):H("profile",p)};return y(S,{step:t,total:r,title:"AWS Bedrock \u2014 named profile",children:K(W,{flexDirection:"column",children:[q.map((C,k)=>K(W,{children:[K($,{color:k===g?c.accent:c.muted,children:[k===g?"\u276F ":" ",C.label,":"]}),y($,{children:" "}),k===g?y(I,{value:C.value,onChange:C.set,onSubmit:fe}):y($,{children:C.value})]},C.key)),y(W,{marginTop:1,children:y(x,{children:"The named profile resolves from your host ~/.aws (mounted read-only into the api)."})})]})})};import{useState as cr}from"react";import{Box as Le,Text as Ne,useInput as Go}from"ink";import Uo from"node:fs";import jo from"node:os";import ur from"node:path";import{jsx as me,jsxs as We}from"react/jsx-runtime";var $o=jo.homedir(),zo=()=>{let e=ur.join($o,".config","gcloud","keys");try{let t=Uo.readdirSync(e).find(r=>r.endsWith(".json"));if(t)return ur.join(e,t)}catch{}return""},mr=({initial:e,step:t,total:r,onDone:o})=>{let n=e.vertex,s=zo(),i=[{key:"project",label:"GCP project id ",def:"",placeholder:"my-gcp-project",required:!0},{key:"region",label:"Region ",def:"us-central1",placeholder:"us-central1",required:!1},{key:"chatModel",label:"Chat model ",def:"gemini-2.5-pro",placeholder:"gemini-2.5-pro",required:!1},{key:"embedModel",label:"Embedding model ",def:"text-embedding-005",placeholder:"text-embedding-005",required:!1},{key:"imageModel",label:"Image model ",def:"imagen-4.0-generate-001",placeholder:"imagen-4.0-generate-001",required:!1},{key:"saKeyPath",label:"Service-account key ",def:s,placeholder:s||"~/.config/gcloud/keys/sa.json",required:!0}],[m,a]=cr({project:n?.project||"",region:n?.region||"",chatModel:n?.chatModel||"",embedModel:n?.embedModel||"",imageModel:n?.imageModel||"",saKeyPath:n?.saKeyPath||""}),[l,u]=cr(0),p=i[l],h=f=>{let v=(m[f]||"").trim();return v||i.find(g=>g.key===f)?.def||""},_=f=>i.find(g=>g.key===f).required&&!h(f),b=_(p.key),O=()=>o({vertex:{project:h("project"),region:h("region")||"us-central1",chatModel:h("chatModel")||"gemini-2.5-pro",embedModel:h("embedModel")||"text-embedding-005",imageModel:h("imageModel")||"imagen-4.0-generate-001",saKeyPath:h("saKeyPath")}});Go((f,v)=>{v.ctrl&&f==="d"&&!_("project")&&!_("saKeyPath")&&O()});let d=()=>{b||(l+1<i.length?u(l+1):O())};return me(S,{step:t,total:r,title:"Google Vertex AI (service account / ADC)",children:We(Le,{flexDirection:"column",children:[i.map((f,v)=>We(Le,{children:[We(Ne,{color:v===l?c.accent:c.muted,children:[v===l?"\u276F ":" ",f.label,":"]}),me(Ne,{children:" "}),v===l?me(I,{value:m[f.key]||"",placeholder:f.placeholder,onChange:g=>a({...m,[f.key]:g}),onSubmit:d}):me(Ne,{color:m[f.key]?void 0:c.muted,children:m[f.key]||f.placeholder})]},f.key)),me(Le,{marginTop:1,children:me(x,{children:"No API keys \u2014 the api calls Vertex with the mounted service-account (ADC). Enter accepts each default."})}),b&&me(Le,{children:We(Ne,{color:c.accent,children:["\u25CF required \u2014 enter the ",p.key==="project"?"GCP project id":"service-account key path"," to continue"]})})]})})};import{useState as fr}from"react";import{Box as He,Text as Ve,useInput as Zo}from"ink";import Yo from"node:fs";import qo from"node:os";import Jo from"node:path";var Xo=qo.homedir(),de=e=>{try{return Yo.existsSync(Jo.join(Xo,e))}catch{return!1}},G=[{id:"web",label:"Web",blurb:"Search + page fetch (DuckDuckGo, no auth).",disabledEnv:"OpenAgentic_WEB_MCP_DISABLED",needsAuth:!1,authType:"none",defaultOn:!0},{id:"admin",label:"Admin",blurb:"Platform admin helpers \u2014 Postgres/Redis/Milvus/health.",disabledEnv:"OpenAgentic_ADMIN_MCP_DISABLED",needsAuth:!1,authType:"none",defaultOn:!0},{id:"aws",label:"AWS",blurb:"EC2 / S3 / IAM / Cost Explorer \u2014 AWS read-only.",disabledEnv:"OpenAgentic_AWS_MCP_DISABLED",needsAuth:!0,authType:"env-file",envFile:"aws.env",envVars:[{env:"AWS_ACCESS_KEY_ID",label:"AWS access key id"},{env:"AWS_SECRET_ACCESS_KEY",label:"AWS secret access key",mask:!0},{env:"AWS_REGION",label:"AWS default region",hint:"e.g. us-east-1"}],hostCreds:{description:"Use my host AWS CLI creds (~/.aws \u2014 mounted read-only)",detect:()=>de(".aws/credentials")||de(".aws/config")},defaultOn:!0},{id:"azure",label:"Azure",blurb:"ARM / Graph / Key Vault / Monitor / Cost \u2014 Azure read-only.",disabledEnv:"OpenAgentic_AZURE_MCP_DISABLED",needsAuth:!0,authType:"env-file",envFile:"azure.env",envVars:[{env:"AZURE_TENANT_ID",label:"Azure tenant id"},{env:"AZURE_CLIENT_ID",label:"Azure client id (App Registration)"},{env:"AZURE_CLIENT_SECRET",label:"Azure client secret",mask:!0},{env:"AZURE_SUBSCRIPTION_ID",label:"Default subscription id"}],hostCreds:{description:"Use my host Azure CLI creds (~/.azure \u2014 mounted read-only)",detect:()=>de(".azure/azureProfile.json")||de(".azure/TokenCache")},defaultOn:!0},{id:"gcp",label:"GCP",blurb:"Projects / Compute / Storage / Logging / Monitoring.",disabledEnv:"OpenAgentic_GCP_MCP_DISABLED",needsAuth:!0,authType:"env-file",envFile:"gcp.env",envVars:[{env:"GCP_PROJECT_ID",label:"GCP project id"},{env:"GCP_REGION",label:"Default region",hint:"e.g. us-central1"},{env:"GCP_CREDENTIALS_FILE",label:"Service-account JSON path",hint:"inside the mcp-proxy container"}],hostCreds:{description:"Use my host gcloud creds (~/.config/gcloud \u2014 mounted read-only)",detect:()=>de(".config/gcloud/application_default_credentials.json")||de(".config/gcloud/credentials.db")},defaultOn:!0},{id:"kubernetes",label:"Kubernetes",blurb:"Pods / deployments / logs (your local kubeconfig).",disabledEnv:"OpenAgentic_KUBERNETES_MCP_DISABLED",needsAuth:!0,authType:"fields",envVars:[{env:"KUBECONFIG",label:"Path to kubeconfig",hint:"~/.kube/config on most machines"}],hostCreds:{description:"Use my host kubeconfig (~/.kube/config \u2014 mounted read-only)",detect:()=>de(".kube/config")},defaultOn:!0},{id:"github",label:"GitHub",blurb:"Repos / issues / PRs via a PAT.",disabledEnv:"OpenAgentic_GITHUB_MCP_DISABLED",needsAuth:!0,authType:"fields",envVars:[{env:"GITHUB_TOKEN",label:"GitHub personal access token",mask:!0}],defaultOn:!1},{id:"prometheus",label:"Prometheus",blurb:"Metric queries against a Prometheus server.",disabledEnv:"OpenAgentic_PROMETHEUS_MCP_DISABLED",needsAuth:!0,authType:"fields",envVars:[{env:"PROMETHEUS_URL",label:"Prometheus URL",hint:"https://prom.example.com"},{env:"PROMETHEUS_USERNAME",label:"Basic auth user (optional)"},{env:"PROMETHEUS_PASSWORD",label:"Basic auth pass (optional)",mask:!0}],defaultOn:!1},{id:"loki",label:"Loki",blurb:"Log queries against a Loki instance.",disabledEnv:"OpenAgentic_LOKI_MCP_DISABLED",needsAuth:!0,authType:"fields",envVars:[{env:"LOKI_URL",label:"Loki URL",hint:"https://loki.example.com"},{env:"LOKI_USERNAME",label:"Basic auth user (optional)"},{env:"LOKI_PASSWORD",label:"Basic auth pass (optional)",mask:!0}],defaultOn:!1}];function Fe(e){return G.filter(t=>e.includes(t.id)&&t.needsAuth)}function dr(){return G.filter(e=>e.defaultOn).map(e=>e.id)}function pr(){return G.map(e=>e.id)}import{jsx as be,jsxs as Ke}from"react/jsx-runtime";var gr=({initial:e,step:t,total:r,onDone:o})=>{let[n,s]=fr(new Set(e)),[i,m]=fr(0);return Zo((a,l)=>{if(l.upArrow){m(u=>Math.max(0,u-1));return}if(l.downArrow){m(u=>Math.min(G.length-1,u+1));return}if(a===" "){let u=G[i].id,p=new Set(n);p.has(u)?p.delete(u):p.add(u),s(p);return}if(l.return){o(Array.from(n));return}if(a==="a"){s(new Set(G.map(u=>u.id)));return}if(a==="n"){s(new Set);return}}),be(S,{step:t,total:r,title:"Which MCPs do you want enabled?",children:Ke(He,{flexDirection:"column",children:[G.map((a,l)=>{let u=n.has(a.id),p=l===i,h=u?"[x]":"[ ]",_=p?c.accent:"white",b=c.muted;return Ke(He,{children:[be(Ve,{color:p?c.accent:c.muted,children:p?"\u276F ":" "}),be(Ve,{color:u?c.ok:c.muted,children:h}),be(He,{width:20,children:Ke(Ve,{color:_,children:[" ",a.label]})}),Ke(Ve,{color:b,children:[" ",a.blurb]})]},a.id)}),be(He,{marginTop:1,children:be(x,{children:"Space toggles \xB7 a = all \xB7 n = none \xB7 Enter to continue"})})]})})};import{useState as Oe,useEffect as hr}from"react";import{Box as Ce,Text as xe}from"ink";import Qo from"node:fs";import en from"node:os";import _r from"node:path";import{jsx as F,jsxs as Ge}from"react/jsx-runtime";var tn=_r.join(en.homedir(),".openagentic","cloud-secrets"),br=({enabledIds:e,initialAuth:t,step:r,total:o,onDone:n})=>{let s=Fe(e),[i,m]=Oe(0),[a,l]=Oe({...t}),u=s.length===0;if(hr(()=>{u&&n(a)},[u]),u)return null;let p=s[i],h=_=>{let b={...a,..._};l(b),i+1<s.length?m(i+1):n(b)};return F(S,{step:r,total:o,title:`${p.label}: credentials (${i+1} of ${s.length})`,children:F(rn,{mcp:p,auth:a,onDone:h},p.id)})},rn=({mcp:e,auth:t,onDone:r})=>{let o=e.envFile?_r.join(tn,e.envFile):void 0,n=!!o&&Qo.existsSync(o),s=e.authType==="fields"&&(e.hostCreds?.detect()??!1),[i,m]=Oe(e.authType==="env-file"||s?"choose-source":"fields"),[a,l]=Oe(0),[u,p]=Oe(e.envVars?Object.fromEntries(e.envVars.map(b=>[b.env,t[b.env]??""])):{}),h=e.envVars?.[a],_=i==="fields"&&!h;if(hr(()=>{_&&r(u)},[_]),i==="choose-source"){let O=[...e.hostCreds?.detect()??!1?[{label:`${e.hostCreds.description} (detected \u2014 recommended)`,value:"host-creds"}]:[],...e.authType==="env-file"?n?[{label:`Use ${o} (detected)`,value:"use-file"}]:[{label:`Create empty ${o} stub (fill in later)`,value:"stub"}]:[],{label:e.authType==="env-file"?"Paste credentials inline now":"Enter credentials inline",value:"paste"},{label:"Skip (this MCP will stay disabled)",value:"skip"}];return Ge(Ce,{flexDirection:"column",children:[F(xe,{color:c.muted,children:e.blurb}),F(Ce,{marginTop:1,children:F(D,{items:O,onSelect:d=>{d.value==="host-creds"||d.value==="use-file"||d.value==="stub"?r({}):d.value==="skip"?r({[`__skip_${e.id}`]:"1"}):m("fields")},indicatorComponent:({isSelected:d})=>F(xe,{color:c.accent,children:d?"\u276F ":" "})})})]})}return h?Ge(Ce,{flexDirection:"column",children:[F(xe,{color:c.muted,children:e.blurb}),e.envVars.map((b,O)=>Ge(Ce,{children:[Ge(xe,{color:O===a?c.accent:c.muted,children:[O===a?"\u276F ":" ",b.label.padEnd(32)]}),F(xe,{children:": "}),O===a?F(I,{value:u[b.env]??"",onChange:d=>p({...u,[b.env]:d}),mask:b.mask?"\u2022":void 0,onSubmit:()=>{a+1<e.envVars.length?l(a+1):r(u)}}):F(xe,{children:b.mask&&u[b.env]?"\u2022".repeat(Math.min(u[b.env].length,16)):u[b.env]||""})]},b.env)),F(Ce,{marginTop:1,children:F(x,{children:"Enter to advance \xB7 leave blank to skip an optional field"})})]}):null};import{Box as ve,Text as Ue}from"ink";import{jsx as z,jsxs as je}from"react/jsx-runtime";var on=e=>{switch(e){case"ollama":return"local Ollama only";case"cloud":return"AWS Bedrock (Claude via IAM)";case"vertex":return"Google Vertex AI (Gemini via service account)";case"both":return"Ollama embeddings + AWS Bedrock (Claude) chat";case"skip":return"skipped \u2014 configure in admin panel"}},nn=e=>e?e.useHostCreds?`host ~/.aws creds, region ${e.region}`:e.profile?`profile ${e.profile}, region ${e.region}`:e.accessKeyId?`inline IAM key, region ${e.region}`:`region ${e.region}`:"none \u2014 chat will fail until set",sn=e=>{if(!e||!e.project)return"none \u2014 chat will fail until set";let t=e.saKeyPath?`SA key ${e.saKeyPath}`:"host gcloud ADC";return`${e.project} (${e.region}), ${t}`},xr=({config:e,step:t,total:r,onLaunch:o,onCancel:n})=>{let i=Fe(e.mcps).filter(l=>l.authType==="fields"&&l.envVars?!l.envVars.some(u=>e.mcpAuth[u.env]):!1),m=e.mcps.length===0?"none selected":`${e.mcps.length} enabled (${e.mcps.slice(0,4).join(", ")}${e.mcps.length>4?"\u2026":""})`,a=(l,u,p)=>je(ve,{children:[z(ve,{width:18,children:z(Ue,{color:c.muted,children:l})}),z(Ue,{color:p,children:u})]},l);return je(S,{step:t,total:r,title:"Review & launch",children:[je(ve,{flexDirection:"column",children:[a("deploy target",e.target),e.target==="helm"&&e.kubeconfigPath&&a("kubeconfig",e.kubeconfigPath),a("admin email",e.admin.email),a("LLM strategy",on(e.llmStrategy)),(e.llmStrategy==="ollama"||e.llmStrategy==="both")&&a("ollama host",e.ollama.host),(e.llmStrategy==="ollama"||e.llmStrategy==="both")&&a("embedding model",e.ollama.embedModel),(e.llmStrategy==="cloud"||e.llmStrategy==="both")&&a("AWS Bedrock",nn(e.providers.awsBedrock)),(e.llmStrategy==="cloud"||e.llmStrategy==="both")&&a("chat model","claude-sonnet-4-6 (default)"),e.llmStrategy==="vertex"&&a("Vertex AI",sn(e.providers.vertex),e.providers.vertex?.project?void 0:c.err),e.llmStrategy==="vertex"&&a("chat / embed",`${e.providers.vertex?.chatModel||"gemini-2.5-pro"} \xB7 ${e.providers.vertex?.embedModel||"text-embedding-005"}`),a("MCPs",m),a("UI port",String(e.uiPort)),i.length>0&&z(ve,{marginTop:1,children:je(Ue,{color:c.err,children:["\u26A0 missing creds: ",i.map(l=>l.label).join(", ")]})})]}),z(ve,{marginTop:1,children:z(D,{items:[{label:`Launch ${e.target}`,value:"go"},{label:"Cancel",value:"no"}],onSelect:l=>l.value==="go"?o():n(),indicatorComponent:({isSelected:l})=>z(Ue,{color:c.accent,children:l?"\u276F ":" "})})}),z(ve,{marginTop:1,children:z(x,{children:"Nothing has been written to disk yet. Launch will write .env and bring the stack up."})})]})};import{useEffect as dn,useState as pn}from"react";import{Box as ft,Text as ze}from"ink";import fn from"open";import ke from"node:fs";import cn from"node:crypto";import{fileURLToPath as an}from"node:url";import Se from"node:path";var ln=Se.dirname(an(import.meta.url)),pe=Se.resolve(ln,"..","..","..",".."),$e=Se.join(pe,".env"),dt=Se.join(pe,".env.example"),ma=Se.join(pe,"docker-compose.yml"),da=Se.join(pe,"helm","openagentic");var vr="REPLACE_ME_AT_INSTALL_TIME",un=(e=24)=>cn.randomBytes(e).toString("base64url");function pt(){return ke.existsSync($e)?mn(ke.readFileSync($e,"utf8")):{}}function Sr(e){let t=ke.existsSync(dt)?ke.readFileSync(dt,"utf8"):"",r=pt(),o=t.split(`
8
+ `).map(i=>{let m=/^(\s*)([A-Z0-9_]+)\s*=(.*)$/.exec(i);if(m){let a=m[2],l=m[3];if(a in e)return`${m[1]}${a}=${e[a]}`;if(l.trim()===vr)return`${m[1]}${a}=${r[a]&&r[a]!==vr?r[a]:un()}`}return i}),n=new Set(t.split(`
9
+ `).flatMap(i=>{let m=/^\s*([A-Z0-9_]+)\s*=/.exec(i);return m?[m[1]]:[]})),s=Object.entries(e).filter(([i])=>!n.has(i));if(s.length>0){o.push("","# \u2500\u2500\u2500 Added by setup wizard \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500");for(let[i,m]of s)o.push(`${i}=${m}`)}ke.writeFileSync($e,o.join(`
10
+ `),"utf8")}function mn(e){let t={};for(let r of e.split(`
11
+ `)){let o=/^\s*([A-Z0-9_]+)\s*=\s*(.*?)\s*$/.exec(r);if(!o)continue;let n=o[2];(n.startsWith('"')&&n.endsWith('"')||n.startsWith("'")&&n.endsWith("'"))&&(n=n.slice(1,-1)),t[o[1]]=n}return t}import{execa as Er}from"execa";async function yr(e,t){t.onBuild?.("docker compose --profile milvus build (first run may take several minutes)"),await Er("docker",["compose","--profile","milvus","build"],{cwd:pe}),t.onBuildDone?.(),t.onStart?.("docker compose --profile milvus up -d"),await Er("docker",["compose","--profile","milvus","up","-d"],{cwd:pe}),t.onStartDone?.();let r=`http://localhost:${e.uiPort}`;t.onHealth?.(`waiting for ${r}/api/health`);let o=Date.now();for(;Date.now()-o<10*6e4;){try{if((await fetch(`${r}/api/health`)).ok)return t.onHealthDone?.(),r}catch{}await new Promise(n=>setTimeout(n,3e3))}throw new Error("API did not become healthy within 10 minutes. Run 'docker compose logs api' to investigate.")}async function Ar(e,t){throw new Error("Helm deploy is not wired up yet \u2014 the chart at helm/openagentic needs a cleanup pass before the wizard can drive it. Use the Docker path for now.")}import{jsx as Ee,jsxs as gt}from"react/jsx-runtime";var Ye=process.env.WIZARD_DRY_RUN==="1",gn="anthropic.claude-sonnet-4-6",hn="nomic-embed-text",_n=768,bn="gpt-oss:20b",Tr="6",xn="gemini-2.5-pro",vn="text-embedding-005",Cr=768,Sn="imagen-4.0-generate-001",En="/var/secrets/gcp/key.json",kr=({config:e,step:t,total:r,onDone:o})=>{let[n,s]=pn(()=>(Ye?["Write .env (dry-run)","Skip build (dry-run)","Skip start (dry-run)","Skip health (dry-run)","Skip browser (dry-run)"]:["Write .env",e.target==="docker"?"Build images":"Render chart",e.target==="docker"?"Start containers":"Apply release","Wait for health","Open browser"]).map(a=>({label:a,state:"pending"}))),i=(m,a)=>s(l=>l.map((u,p)=>p===m?{...u,...a}:u));return dn(()=>{let m=!1;return(async()=>{try{if(i(0,{state:"running"}),Sr(yn(e)),i(0,{state:"ok"}),Ye){i(1,{state:"ok",detail:"skipped"}),i(2,{state:"ok",detail:"skipped"}),i(3,{state:"ok",detail:"skipped"}),i(4,{state:"ok",detail:"skipped"}),setTimeout(o,50);return}let l=await(e.target==="docker"?yr:Ar)(e,{onBuild:u=>!m&&i(1,{state:"running",detail:u}),onBuildDone:()=>!m&&i(1,{state:"ok"}),onStart:u=>!m&&i(2,{state:"running",detail:u}),onStartDone:()=>!m&&i(2,{state:"ok"}),onHealth:u=>!m&&i(3,{state:"running",detail:u}),onHealthDone:()=>!m&&i(3,{state:"ok"})});if(m)return;i(4,{state:"running",detail:l});try{await fn(l)}catch{}i(4,{state:"ok",detail:l}),setTimeout(o,1200)}catch(a){if(m)return;let l=a instanceof Error?a.message:String(a);s(u=>u.map(p=>p.state==="running"?{...p,state:"fail",detail:l}:p))}})(),()=>{m=!0}},[e]),gt(S,{step:t,total:r,title:Ye?"Bringing up openagentic (dry-run)":"Bringing up openagentic",children:[Ee(ft,{flexDirection:"column",children:n.map((m,a)=>gt(ft,{children:[Ee(ze,{color:Or(m.state).color,children:Or(m.state).char}),Ee(ze,{children:" "}),Ee(ze,{children:m.label}),m.detail?gt(ze,{color:c.muted,children:[" ",m.detail.slice(0,80)]}):null]},a))}),Ee(ft,{marginTop:1,children:Ee(x,{children:Ye?"WIZARD_DRY_RUN=1 \u2014 only .env is written; no containers are touched.":"First boot pulls the embedding model and seeds Milvus \u2014 give it a couple minutes."})})]})};function Or(e){switch(e){case"ok":return{char:"\u2713",color:c.ok};case"fail":return{char:"\u2717",color:c.err};case"running":return{char:"\u25E6",color:c.accent};default:return{char:"\xB7",color:c.muted}}}function yn(e){let t=e.llmStrategy==="ollama"||e.llmStrategy==="both",r=e.llmStrategy==="cloud"||e.llmStrategy==="both",o=e.llmStrategy==="vertex",n={ADMIN_USER_EMAIL:e.admin.email,ADMIN_SEED_PASSWORD:e.admin.password,LOCAL_ADMIN_USERNAME:e.admin.name,UI_HOST_PORT:String(e.uiPort),MCPS_ENABLED:e.mcps.join(",")};t?(n.OLLAMA_HOST=e.ollama.host,n.OLLAMA_EMBED_MODEL=e.ollama.embedModel,n.OLLAMA_ENABLED="true",e.llmStrategy==="both"&&(n.OLLAMA_CHAT_MODEL=bn)):n.OLLAMA_ENABLED="false";let s=e.providers.awsBedrock;if(r&&s){let a=(s.region||"us-east-1").trim()||"us-east-1";n.AWS_REGION=a,s.accessKeyId&&s.secretAccessKey?(n.AWS_ACCESS_KEY_ID=s.accessKeyId,n.AWS_SECRET_ACCESS_KEY=s.secretAccessKey):s.profile&&(n.AWS_PROFILE=s.profile),n.BOOTSTRAP_PROVIDER_NAME="aws-bedrock",n.BOOTSTRAP_PROVIDER_DISPLAY_NAME="AWS Bedrock",n.BOOTSTRAP_PROVIDER_TYPE="aws-bedrock",n.BOOTSTRAP_PROVIDER_CONFIG=JSON.stringify({region:a}),n.BOOTSTRAP_PROVIDER_DEFAULTS=JSON.stringify({chat:gn,embedding:hn,embeddingDimension:_n}),n.SEEDER_VERSION=Tr}let i=e.providers.vertex;if(o&&i){let a=(i.project||"").trim(),l=(i.region||"us-central1").trim()||"us-central1",u=i.chatModel||xn,p=i.embedModel||vn,h=i.imageModel||Sn;n.GOOGLE_CLOUD_PROJECT=a,n.GOOGLE_CLOUD_LOCATION=l,n.VERTEX_PROJECT=a,n.VERTEX_LOCATION=l,n.EMBEDDING_PROVIDER="vertex-ai",n.GCP_PROJECT_ID=a,n.GCP_LOCATION=l,n.GCP_EMBEDDING_MODEL=p,n.EMBEDDING_DIMENSIONS=String(Cr),n.SKIP_TOOL_SEMANTIC_CACHE="false",n.DEFAULT_IMAGE_MODEL=h,i.saKeyPath&&(n.GCP_SA_KEY_FILE=i.saKeyPath.startsWith("~")?(process.env.HOME||"")+i.saKeyPath.slice(1):i.saKeyPath,n.GOOGLE_APPLICATION_CREDENTIALS=En),n.VERTEX_AI_API_KEY="",n.GEMINI_API_KEY="",n.BOOTSTRAP_PROVIDER_NAME="google-vertex",n.BOOTSTRAP_PROVIDER_DISPLAY_NAME="Google Vertex AI",n.BOOTSTRAP_PROVIDER_TYPE="vertex-ai",n.BOOTSTRAP_PROVIDER_CONFIG=JSON.stringify({projectId:a,location:l}),n.BOOTSTRAP_PROVIDER_DEFAULTS=JSON.stringify({chat:u,embedding:p,embeddingDimension:Cr}),n.SEEDER_VERSION=Tr}let m=new Set(e.mcps);for(let a of G)n[a.disabledEnv]=m.has(a.id)?"false":"true";for(let[a,l]of Object.entries(e.mcpAuth))a.startsWith("__skip_")||l&&(n[a]=l);return n}var Y={target:"docker",llmStrategy:"both",admin:{email:"admin@openagentic.local",password:"",name:"Admin"},ollama:{host:"http://ollama:11434",embedModel:"nomic-embed-text"},providers:{},mcps:[],mcpAuth:{},uiPort:8080};import{jsx as B,jsxs as qe}from"react/jsx-runtime";var On=()=>{let e=pt(),[t,r]=Rr(()=>({...Y,admin:{...Y.admin,email:e.ADMIN_USER_EMAIL||Y.admin.email,name:e.LOCAL_ADMIN_USERNAME||Y.admin.name},ollama:{...Y.ollama,host:e.OLLAMA_HOST||Y.ollama.host,embedModel:e.OLLAMA_EMBED_MODEL||Y.ollama.embedModel},providers:e.AWS_REGION||e.AWS_ACCESS_KEY_ID||e.AWS_PROFILE?{awsBedrock:{region:e.AWS_REGION||"us-east-1",accessKeyId:e.AWS_ACCESS_KEY_ID||void 0,secretAccessKey:e.AWS_SECRET_ACCESS_KEY||void 0,profile:e.AWS_PROFILE||void 0,useHostCreds:!e.AWS_ACCESS_KEY_ID&&!e.AWS_PROFILE?!0:void 0}}:e.VERTEX_PROJECT||e.GOOGLE_CLOUD_PROJECT?{vertex:{project:e.VERTEX_PROJECT||e.GOOGLE_CLOUD_PROJECT||"",region:e.VERTEX_LOCATION||e.GOOGLE_CLOUD_LOCATION||"us-central1",chatModel:e.VERTEX_CHAT_MODEL||"gemini-2.5-pro",embedModel:e.GCP_EMBEDDING_MODEL||"text-embedding-005",imageModel:e.DEFAULT_IMAGE_MODEL||"imagen-4.0-generate-001",saKeyPath:e.GCP_SA_KEY_FILE||""}}:{},mcps:e.MCPS_ENABLED?e.MCPS_ENABLED.split(",").map(d=>d.trim()).filter(Boolean):dr(),mcpAuth:{},uiPort:e.UI_HOST_PORT?Number(e.UI_HOST_PORT):Y.uiPort})),[o,n]=Rr("target"),s=t.llmStrategy,i=d=>r(f=>({...f,llmStrategy:d})),m=t.target==="helm"?1:0,a=s==="ollama"||s==="both"?1:0,l=s==="cloud"||s==="both"?1:0,u=s==="vertex"?1:0,p=1+m+1+1+a+l+u+1+1+1+1,h=1,_={target:h++,helmPreflight:t.target==="helm"?h++:0,admin:h++,llmStrategy:h++,ollama:a?h++:0,providers:l?h++:0,vertex:u?h++:0,mcps:h++,mcpAuth:h++,review:h++,launch:h++},b=d=>d==="ollama"||d==="both"?"ollama":d==="cloud"?"providers":d==="vertex"?"vertex":"mcps",O=d=>d==="both"?"providers":"mcps";return o==="target"?B(kt,{onPick:d=>{r({...t,target:d}),n(d==="helm"?"helm-preflight":"admin")}}):o==="helm-preflight"?B(Zt,{onContinue:d=>{r({...t,kubeconfigPath:d}),n("admin")},onBackToDocker:()=>{r({...t,target:"docker",kubeconfigPath:void 0}),n("admin")}}):o==="admin"?B(Qt,{initial:t.admin,step:_.admin,total:p,onDone:d=>{r({...t,admin:d}),n("llm-strategy")}}):o==="llm-strategy"?B(rr,{step:_.llmStrategy,total:p,onPick:d=>{d==="both"?r(f=>({...f,llmStrategy:d,mcps:pr()})):i(d),n(b(d))}}):o==="ollama"?B(sr,{initial:t.ollama,step:_.ollama,total:p,onDone:d=>{r({...t,ollama:d}),n(O(s))}}):o==="providers"?B(lr,{initial:t.providers,step:_.providers,total:p,onDone:d=>{r({...t,providers:d}),n("mcps")}}):o==="vertex"?B(mr,{initial:t.providers,step:_.vertex,total:p,onDone:d=>{r({...t,providers:d}),n("mcps")}}):o==="mcps"?B(gr,{initial:t.mcps,step:_.mcps,total:p,onDone:d=>{r({...t,mcps:d}),n("mcp-auth")}}):o==="mcp-auth"?B(br,{enabledIds:t.mcps,initialAuth:t.mcpAuth,step:_.mcpAuth,total:p,onDone:d=>{let f=Object.keys(d).filter(g=>g.startsWith("__skip_")).map(g=>g.slice(7)),v={};for(let[g,R]of Object.entries(d))g.startsWith("__skip_")||(v[g]=R);r({...t,mcps:t.mcps.filter(g=>!f.includes(g)),mcpAuth:v}),n("review")}}):o==="review"?B(xr,{config:t,step:_.review,total:p,onLaunch:()=>n("launch"),onCancel:()=>process.exit(0)}):o==="launch"?B(kr,{config:t,step:_.launch,total:p,onDone:()=>n("done")}):qe(Ir,{flexDirection:"column",children:[B(Qe,{}),qe(Ir,{marginLeft:2,flexDirection:"column",children:[B(ht,{color:c.ok,bold:!0,children:"openagentic is running"}),qe(ht,{color:c.muted,children:["open http://localhost:",t.uiPort," in your browser"]}),qe(ht,{color:c.muted,children:["sign in with ",t.admin.email]})]})]})},Pr=!1;try{Pr=!!process.argv[1]&&An(process.argv[1])===Tn(import.meta.url)}catch{}if(Pr){process.stdout.isTTY&&process.stdout.write("\x1B[2J\x1B[3J\x1B[H");let e=t=>{let r=t instanceof Error?t.stack||t.message:String(t);process.stderr.write(`
12
+ \u2717 The setup wizard hit an unexpected error.
13
+ ${r}
14
+
15
+ Diagnose: curl -fsSL https://install.openagentics.io | bash -s -- --doctor
16
+ Help: https://openagentics.io/docs/troubleshooting
17
+ Issues: https://github.com/agentic-work/openagentic/issues
18
+
19
+ `),process.exit(1)};process.on("uncaughtException",e),process.on("unhandledRejection",e),Cn(B(Re,{children:B(On,{})}))}export{On as App};
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@agenticwork/openagentic",
3
+ "version": "1.0.0-rc.1",
4
+ "type": "module",
5
+ "bin": {
6
+ "openagentic-setup": "dist/index.js"
7
+ },
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "start": "tsx src/index.tsx",
13
+ "dev": "tsx watch src/index.tsx",
14
+ "build": "tsx build.ts",
15
+ "prepublishOnly": "npm run build",
16
+ "typecheck": "tsc --noEmit",
17
+ "test": "node --import tsx --test --test-force-exit tests/*.test.tsx"
18
+ },
19
+ "engines": {
20
+ "node": ">=20"
21
+ },
22
+ "dependencies": {
23
+ "execa": "^9.5.2",
24
+ "figures": "^6.1.0",
25
+ "ink": "^7.0.5",
26
+ "ink-select-input": "^6.2.0",
27
+ "ink-spinner": "^5.0.0",
28
+ "ink-text-input": "^6.0.0",
29
+ "open": "^10.1.0",
30
+ "react": "^19.2.7",
31
+ "react-devtools-core": "^7.0.1",
32
+ "react-dom": "^19.2.7"
33
+ },
34
+ "devDependencies": {
35
+ "@types/node": "^22.10.1",
36
+ "@types/react": "^19.2.17",
37
+ "esbuild": "^0.24.0",
38
+ "ink-testing-library": "^4.0.0",
39
+ "tsx": "^4.19.2",
40
+ "typescript": "^5.7.2"
41
+ }
42
+ }