@t2000/cli 0.17.22 → 0.17.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/commands/address.d.ts +3 -0
- package/dist/commands/address.d.ts.map +1 -0
- package/dist/commands/address.js +26 -0
- package/dist/commands/address.js.map +1 -0
- package/dist/commands/balance.d.ts +3 -0
- package/dist/commands/balance.d.ts.map +1 -0
- package/dist/commands/balance.js +134 -0
- package/dist/commands/balance.js.map +1 -0
- package/dist/commands/borrow.d.ts +3 -0
- package/dist/commands/borrow.d.ts.map +1 -0
- package/dist/commands/borrow.js +40 -0
- package/dist/commands/borrow.js.map +1 -0
- package/dist/commands/claimRewards.d.ts +3 -0
- package/dist/commands/claimRewards.d.ts.map +1 -0
- package/dist/commands/claimRewards.js +49 -0
- package/dist/commands/claimRewards.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +139 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/contacts.d.ts +3 -0
- package/dist/commands/contacts.d.ts.map +1 -0
- package/dist/commands/contacts.js +83 -0
- package/dist/commands/contacts.js.map +1 -0
- package/dist/commands/deposit.d.ts +3 -0
- package/dist/commands/deposit.d.ts.map +1 -0
- package/dist/commands/deposit.js +27 -0
- package/dist/commands/deposit.js.map +1 -0
- package/dist/commands/earn.d.ts +3 -0
- package/dist/commands/earn.d.ts.map +1 -0
- package/dist/commands/earn.js +186 -0
- package/dist/commands/earn.js.map +1 -0
- package/dist/commands/earnings.d.ts +3 -0
- package/dist/commands/earnings.d.ts.map +1 -0
- package/dist/commands/earnings.js +38 -0
- package/dist/commands/earnings.js.map +1 -0
- package/dist/commands/exchange.d.ts +3 -0
- package/dist/commands/exchange.d.ts.map +1 -0
- package/dist/commands/exchange.js +45 -0
- package/dist/commands/exchange.js.map +1 -0
- package/dist/commands/exportKey.d.ts +3 -0
- package/dist/commands/exportKey.d.ts.map +1 -0
- package/dist/commands/exportKey.js +81 -0
- package/dist/commands/exportKey.js.map +1 -0
- package/dist/commands/fundStatus.d.ts +3 -0
- package/dist/commands/fundStatus.d.ts.map +1 -0
- package/dist/commands/fundStatus.js +50 -0
- package/dist/commands/fundStatus.js.map +1 -0
- package/dist/commands/health.d.ts +3 -0
- package/dist/commands/health.d.ts.map +1 -0
- package/dist/commands/health.js +44 -0
- package/dist/commands/health.js.map +1 -0
- package/dist/commands/history.d.ts +3 -0
- package/dist/commands/history.d.ts.map +1 -0
- package/dist/commands/history.js +37 -0
- package/dist/commands/history.js.map +1 -0
- package/dist/commands/importKey.d.ts +3 -0
- package/dist/commands/importKey.d.ts.map +1 -0
- package/dist/commands/importKey.js +39 -0
- package/dist/commands/importKey.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +56 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/invest.d.ts +3 -0
- package/dist/commands/invest.d.ts.map +1 -0
- package/dist/commands/invest.js +635 -0
- package/dist/commands/invest.js.map +1 -0
- package/dist/commands/lock.d.ts +3 -0
- package/dist/commands/lock.d.ts.map +1 -0
- package/dist/commands/lock.js +66 -0
- package/dist/commands/lock.js.map +1 -0
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +141 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/pay.d.ts +3 -0
- package/dist/commands/pay.d.ts.map +1 -0
- package/dist/commands/pay.js +96 -0
- package/dist/commands/pay.js.map +1 -0
- package/dist/commands/portfolio.d.ts +3 -0
- package/dist/commands/portfolio.d.ts.map +1 -0
- package/dist/commands/portfolio.js +104 -0
- package/dist/commands/portfolio.js.map +1 -0
- package/dist/commands/positions.d.ts +3 -0
- package/dist/commands/positions.d.ts.map +1 -0
- package/dist/commands/positions.js +73 -0
- package/dist/commands/positions.js.map +1 -0
- package/dist/commands/rates.d.ts +3 -0
- package/dist/commands/rates.d.ts.map +1 -0
- package/dist/commands/rates.js +64 -0
- package/dist/commands/rates.js.map +1 -0
- package/dist/commands/rebalance.d.ts +3 -0
- package/dist/commands/rebalance.d.ts.map +1 -0
- package/dist/commands/rebalance.js +109 -0
- package/dist/commands/rebalance.js.map +1 -0
- package/dist/commands/repay.d.ts +3 -0
- package/dist/commands/repay.d.ts.map +1 -0
- package/dist/commands/repay.js +35 -0
- package/dist/commands/repay.js.map +1 -0
- package/dist/commands/save.d.ts +3 -0
- package/dist/commands/save.d.ts.map +1 -0
- package/dist/commands/save.js +57 -0
- package/dist/commands/save.js.map +1 -0
- package/dist/commands/send.d.ts +3 -0
- package/dist/commands/send.d.ts.map +1 -0
- package/dist/commands/send.js +52 -0
- package/dist/commands/send.js.map +1 -0
- package/dist/commands/sentinel.d.ts +3 -0
- package/dist/commands/sentinel.d.ts.map +1 -0
- package/dist/commands/sentinel.js +142 -0
- package/dist/commands/sentinel.js.map +1 -0
- package/dist/commands/serve.d.ts +3 -0
- package/dist/commands/serve.d.ts.map +1 -0
- package/dist/commands/serve.js +341 -0
- package/dist/commands/serve.js.map +1 -0
- package/dist/commands/withdraw.d.ts +3 -0
- package/dist/commands/withdraw.d.ts.map +1 -0
- package/dist/commands/withdraw.js +34 -0
- package/dist/commands/withdraw.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -2708
- package/dist/index.js.map +1 -1
- package/dist/output.d.ts +16 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +85 -0
- package/dist/output.js.map +1 -0
- package/dist/program.d.ts +3 -0
- package/dist/program.d.ts.map +1 -0
- package/dist/program.js +80 -0
- package/dist/program.js.map +1 -0
- package/dist/prompts.d.ts +16 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +69 -0
- package/dist/prompts.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invest.js","sourceRoot":"","sources":["../../src/commands/invest.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAsB,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAExG,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE3K,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,+BAA+B,CAAC,CAAC;IAEhD,SAAS;SACN,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,GAAG,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,KAAa,EAAE,IAAwC,EAAE,EAAE;QACxF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC;gBACnC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAqB;gBAC7C,SAAS,EAAE,MAAM;gBACjB,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG;aAC7C,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAChC,YAAY,CAAC,UAAU,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrG,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtD,aAAa,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACzI,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,EAAE,GAAG,CAAC;SACvD,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,KAAa,EAAE,IAAwC,EAAE,EAAE;QACxF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC;YAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACtD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;oBAC5D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;YACH,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAc,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;gBACpC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAqB;gBAC7C,SAAS;gBACT,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG;aAC7C,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAChC,YAAY,CAAC,QAAQ,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnG,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;gBAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpC,aAAa,CAAC,WAAW,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3I,CAAC;YACD,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAsB,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;gBACpC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAqB;aAC9C,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACtC,YAAY,CAAC,GAAG,GAAG,iCAAiC,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzG,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,GAAG,GAAG,mBAAmB,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACzF,aAAa,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC3E,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC3C,aAAa,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClD,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,2DAA2D,CAAC;SACxE,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,IAAsB,EAAE,EAAE;QACtD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC;gBACtC,KAAK,EAAE,KAAK,CAAC,WAAW,EAAqB;aAC9C,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAChC,YAAY,CAAC,YAAY,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,GAAG,SAAS,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjG,aAAa,CAAC,QAAQ,EAAE,GAAG,GAAG,2CAA2C,CAAC,CAAC;YAC3E,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5C,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,SAAS;SACN,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,WAAW,EAAE,iCAAiC,CAAC;SACtD,MAAM,CAAC,kBAAkB,EAAE,wCAAwC,EAAE,KAAK,CAAC;SAC3E,MAAM,CAAC,KAAK,EAAE,IAA0D,EAAE,EAAE;QAC3E,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aAClE,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YAEb,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,SAAS,CAAC,oDAAoD,CAAC,CAAC;gBAChE,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC/B,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;oBACrI,CAAC;gBACH,CAAC;gBACD,UAAU,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,WAAW,CAAC,mBAAmB,CAAC,CAAC;gBACjC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7B,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACnH,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,8BAA8B,CAAC,CAAC;gBAC7C,cAAc,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC7B,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACnH,aAAa,CAAC,QAAQ,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC9E,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACnE,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,aAAa,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,UAAU,EAAE,CAAC;gBACb,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAC/B,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;YAED,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,6BAA6B;IAE7B,MAAM,WAAW,GAAG,SAAS;SAC1B,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,8BAA8B,CAAC,CAAC;IAE/C,WAAW;SACR,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAEtC,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE7C,UAAU,EAAE,CAAC;YACb,WAAW,CAAC,uBAAuB,CAAC,CAAC;YACrC,cAAc,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxF,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,aAAa,CAAC,GAAG,EAAE,GAAG,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC;gBACtC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,cAAc,EAAE,CAAC;YAEjB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,SAAS,CAAC,6DAA6D,CAAC,CAAC;YAC3E,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,WAAW;SACR,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,WAAW,EAAE,sCAAsC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,MAAc,EAAE,IAAwC,EAAE,EAAE;QACvF,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC,CAAC;gBAC5D,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAEpH,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,WAAW,CAAC,aAAa,IAAI,eAAe,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClE,cAAc,EAAE,CAAC;gBACjB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAChJ,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,SAAS,CAAC,kCAAkC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3D,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC1C,YAAY,CAAC,YAAY,SAAS,CAAC,MAAM,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC;gBAClE,cAAc,EAAE,CAAC;gBACjB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9B,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpG,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,aAAa,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;gBACjE,IAAI,UAAU,EAAE,CAAC;oBACf,aAAa,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjD,CAAC;qBAAM,CAAC;oBACN,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAC9B,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;YACH,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,WAAW;SACR,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAsB,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAE1E,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,YAAY,CAAC,YAAY,IAAI,qBAAqB,CAAC,CAAC;YACpD,cAAc,EAAE,CAAC;YACjB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;gBAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACpK,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,cAAc,EAAE,CAAC;YACjB,aAAa,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;YACjE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;YAC9D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,aAAa,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YACxF,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,WAAW;SACR,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAsB,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAEjE,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,WAAW,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;YACnD,cAAc,EAAE,CAAC;YAEjB,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,2DAA2D,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;YACzF,CAAC;iBAAM,CAAC;gBACN,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;oBAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;oBAC5D,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC;oBAC5D,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,aAAa,CACX,GAAG,CAAC,KAAK,EACT,GAAG,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,QAAQ,CAAC,GAAG,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,UAAU,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,UAAU,CAAC,EAAE,CACzM,CAAC;gBACJ,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,aAAa,CAAC,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,WAAW;SACR,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAsB,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YAE/E,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/B,SAAS,CAAC,aAAa,IAAI,6CAA6C,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,cAAc,IAAI,WAAW,CAAC,CAAC;gBAC5C,cAAc,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBACrE,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC1G,CAAC;gBACD,cAAc,EAAE,CAAC;gBACjB,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACnH,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,WAAW;SACR,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,0BAA0B,CAAC;SACvC,cAAc,CAAC,oBAAoB,EAAE,+CAA+C,CAAC;SACrF,MAAM,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;SACtD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAA+C,EAAE,EAAE;QAC9E,IAAI,CAAC;YACH,MAAM,WAAW,GAA2B,EAAE,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC9B,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;oBACtB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,4BAA4B,IAAI,uCAAuC,CAAC,CAAC,CAAC;oBAC/F,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;oBACrB,OAAO;gBACT,CAAC;gBACD,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAEjG,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEpD,UAAU,EAAE,CAAC;YACb,YAAY,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/F,aAAa,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACrC,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,WAAW;SACR,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAsB,EAAE,EAAE;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7D,IAAI,KAAK,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iBAAiB,IAAI,gEAAgE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnH,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAE5C,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE3D,UAAU,EAAE,CAAC;YACb,YAAY,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;YAC3C,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,gCAAgC;IAEhC,MAAM,OAAO,GAAG,SAAS;SACtB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uCAAuC,CAAC,CAAC;IAExD,OAAO;SACJ,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,aAAa,EAAE,mCAAmC,CAAC;SAC1D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,SAAiB,EAAE,MAA0B,EAAE,IAAoC,EAAE,EAAE;QACpH,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YACD,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;gBACzE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7D,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC;YAE3E,IAAI,MAAM,IAAI,CAAC,UAAU,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,MAAM,oCAAoC,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC;gBACrC,MAAM,EAAE,MAAM;gBACd,SAAS,EAAE,SAA2C;gBACtD,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,MAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;gBACxD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,MAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;gBAClD,SAAS,EAAE,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBACtD,UAAU,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;YAEH,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAElD,UAAU,EAAE,CAAC;YACb,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC;YACrE,YAAY,CAAC,wBAAwB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,SAAS,MAAM,WAAW,EAAE,CAAC,CAAC;YAC1G,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAC3E,SAAS,CAAC,qCAAqC,CAAC,CAAC;YACjD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAE3C,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,kFAAkF,CAAC,CAAC;gBAC9F,UAAU,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,WAAW,CAAC,uBAAuB,CAAC,CAAC;YACrC,cAAc,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC;gBAC5C,MAAM,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACpE,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;gBACvF,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,QAAQ,aAAa,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/I,CAAC;YACD,cAAc,EAAE,CAAC;YAEjB,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,SAAS,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,iDAAiD,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,0BAA0B,CAAC,CAAC;YACxC,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,+BAA+B,CAAC;SAC5C,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7D,MAAM,MAAM,GAAG,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACpC,IAAI,UAAU,EAAE,EAAE,CAAC;oBAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACvE,UAAU,EAAE,CAAC;gBACb,SAAS,CAAC,4DAA4D,CAAC,CAAC;gBACxE,UAAU,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE,CAAC;YAE3C,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEhD,UAAU,EAAE,CAAC;YACb,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,YAAY,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,MAAM,qBAAqB,CAAC,CAAC;gBACtE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC;oBAClD,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBAClC,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC9E,CAAC;YACH,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,8BAA8B,CAAC;SAC3C,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAsB,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7D,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YAEzB,IAAI,UAAU,EAAE,EAAE,CAAC;gBAAC,SAAS,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAEzD,UAAU,EAAE,CAAC;YACb,YAAY,CAAC,gCAAgC,EAAE,EAAE,CAAC,CAAC;YACnD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.d.ts","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASzC,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,QA6D5C"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { join } from 'node:path';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { SafeguardEnforcer } from '@t2000/sdk';
|
|
4
|
+
import { clearSession, resolvePin } from '../prompts.js';
|
|
5
|
+
import { printSuccess, printBlank, printJson, printInfo, isJsonMode, handleError } from '../output.js';
|
|
6
|
+
const CONFIG_DIR = join(homedir(), '.t2000');
|
|
7
|
+
export function registerLock(program) {
|
|
8
|
+
program
|
|
9
|
+
.command('lock')
|
|
10
|
+
.description('Lock agent — freeze all operations')
|
|
11
|
+
.action(async () => {
|
|
12
|
+
try {
|
|
13
|
+
const enforcer = new SafeguardEnforcer(CONFIG_DIR);
|
|
14
|
+
enforcer.load();
|
|
15
|
+
enforcer.lock();
|
|
16
|
+
await clearSession();
|
|
17
|
+
if (isJsonMode()) {
|
|
18
|
+
printJson({ locked: true });
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
printBlank();
|
|
22
|
+
printSuccess('Agent locked. All operations frozen.');
|
|
23
|
+
printInfo('Run: t2000 unlock (requires PIN)');
|
|
24
|
+
printBlank();
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
handleError(error);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
program
|
|
31
|
+
.command('unlock')
|
|
32
|
+
.description('Unlock agent — resume operations')
|
|
33
|
+
.action(async () => {
|
|
34
|
+
try {
|
|
35
|
+
const pin = await resolvePin();
|
|
36
|
+
if (!pin) {
|
|
37
|
+
throw new Error('PIN required to unlock agent');
|
|
38
|
+
}
|
|
39
|
+
const { T2000 } = await import('@t2000/sdk');
|
|
40
|
+
await T2000.create({ pin });
|
|
41
|
+
const enforcer = new SafeguardEnforcer(CONFIG_DIR);
|
|
42
|
+
enforcer.load();
|
|
43
|
+
enforcer.unlock();
|
|
44
|
+
if (isJsonMode()) {
|
|
45
|
+
printJson({ locked: false });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const config = enforcer.getConfig();
|
|
49
|
+
printBlank();
|
|
50
|
+
printSuccess('Agent unlocked. Operations resumed.');
|
|
51
|
+
if (config.maxPerTx > 0 || config.maxDailySend > 0) {
|
|
52
|
+
const limits = [];
|
|
53
|
+
if (config.maxPerTx > 0)
|
|
54
|
+
limits.push(`maxPerTx=$${config.maxPerTx}`);
|
|
55
|
+
if (config.maxDailySend > 0)
|
|
56
|
+
limits.push(`maxDailySend=$${config.maxDailySend}`);
|
|
57
|
+
printInfo(`Active safeguards: ${limits.join(', ')}`);
|
|
58
|
+
}
|
|
59
|
+
printBlank();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
handleError(error);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lock.js","sourceRoot":"","sources":["../../src/commands/lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAiH3C"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
2
|
+
import { join, dirname } from 'node:path';
|
|
3
|
+
import { homedir } from 'node:os';
|
|
4
|
+
import { existsSync } from 'node:fs';
|
|
5
|
+
import { printSuccess, printBlank, printInfo, printJson, isJsonMode, handleError } from '../output.js';
|
|
6
|
+
const MCP_CONFIG = {
|
|
7
|
+
command: 't2000',
|
|
8
|
+
args: ['mcp'],
|
|
9
|
+
};
|
|
10
|
+
function getPlatformConfigs() {
|
|
11
|
+
const home = homedir();
|
|
12
|
+
return [
|
|
13
|
+
{
|
|
14
|
+
name: 'Claude Desktop',
|
|
15
|
+
path: join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'Cursor (global)',
|
|
19
|
+
path: join(home, '.cursor', 'mcp.json'),
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
async function readJsonFile(path) {
|
|
24
|
+
try {
|
|
25
|
+
const content = await readFile(path, 'utf-8');
|
|
26
|
+
return JSON.parse(content);
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async function writeJsonFile(path, data) {
|
|
33
|
+
const dir = dirname(path);
|
|
34
|
+
if (!existsSync(dir)) {
|
|
35
|
+
await mkdir(dir, { recursive: true });
|
|
36
|
+
}
|
|
37
|
+
await writeFile(path, JSON.stringify(data, null, 2) + '\n', 'utf-8');
|
|
38
|
+
}
|
|
39
|
+
export function registerMcp(program) {
|
|
40
|
+
const mcp = program
|
|
41
|
+
.command('mcp')
|
|
42
|
+
.description('MCP server for AI platforms');
|
|
43
|
+
mcp
|
|
44
|
+
.command('start', { isDefault: true })
|
|
45
|
+
.description('Start MCP server (stdio transport)')
|
|
46
|
+
.option('--key <path>', 'Key file path')
|
|
47
|
+
.action(async (opts) => {
|
|
48
|
+
let mod;
|
|
49
|
+
try {
|
|
50
|
+
mod = await import('@t2000/mcp');
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
console.error('MCP server not installed. Run:\n npm install -g @t2000/mcp');
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
await mod.startMcpServer({ keyPath: opts.key });
|
|
57
|
+
});
|
|
58
|
+
mcp
|
|
59
|
+
.command('install')
|
|
60
|
+
.description('Auto-configure MCP in Claude Desktop and Cursor')
|
|
61
|
+
.action(async () => {
|
|
62
|
+
try {
|
|
63
|
+
const platforms = getPlatformConfigs();
|
|
64
|
+
const results = [];
|
|
65
|
+
for (const platform of platforms) {
|
|
66
|
+
const config = await readJsonFile(platform.path);
|
|
67
|
+
if (config.mcpServers && config.mcpServers['t2000']) {
|
|
68
|
+
results.push({ name: platform.name, status: 'exists' });
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
config.mcpServers = {
|
|
72
|
+
...(config.mcpServers ?? {}),
|
|
73
|
+
t2000: MCP_CONFIG,
|
|
74
|
+
};
|
|
75
|
+
await writeJsonFile(platform.path, config);
|
|
76
|
+
results.push({ name: platform.name, status: 'added' });
|
|
77
|
+
}
|
|
78
|
+
if (isJsonMode()) {
|
|
79
|
+
printJson({ installed: results });
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
printBlank();
|
|
83
|
+
for (const r of results) {
|
|
84
|
+
if (r.status === 'exists') {
|
|
85
|
+
printInfo(`${r.name} already configured`);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
printSuccess(`${r.name} configured`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
printBlank();
|
|
92
|
+
printInfo('Restart your AI platform to activate.');
|
|
93
|
+
printInfo('Then ask: "what\'s my t2000 balance?"');
|
|
94
|
+
printBlank();
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
handleError(error);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
mcp
|
|
101
|
+
.command('uninstall')
|
|
102
|
+
.description('Remove t2000 MCP config from Claude Desktop and Cursor')
|
|
103
|
+
.action(async () => {
|
|
104
|
+
try {
|
|
105
|
+
const platforms = getPlatformConfigs();
|
|
106
|
+
const results = [];
|
|
107
|
+
for (const platform of platforms) {
|
|
108
|
+
if (!existsSync(platform.path)) {
|
|
109
|
+
results.push({ name: platform.name, removed: false });
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
const config = await readJsonFile(platform.path);
|
|
113
|
+
if (!config.mcpServers || !config.mcpServers['t2000']) {
|
|
114
|
+
results.push({ name: platform.name, removed: false });
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
delete config.mcpServers['t2000'];
|
|
118
|
+
await writeJsonFile(platform.path, config);
|
|
119
|
+
results.push({ name: platform.name, removed: true });
|
|
120
|
+
}
|
|
121
|
+
if (isJsonMode()) {
|
|
122
|
+
printJson({ uninstalled: results });
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
printBlank();
|
|
126
|
+
for (const r of results) {
|
|
127
|
+
if (r.removed) {
|
|
128
|
+
printSuccess(`${r.name} removed`);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
printInfo(`${r.name} not configured (skipped)`);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
printBlank();
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
handleError(error);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvG,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,OAAO;IAChB,IAAI,EAAE,CAAC,KAAK,CAAC;CACd,CAAC;AAOF,SAAS,kBAAkB;IACzB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO;QACL;YACE,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC;SAC3F;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC;SACxC;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAY,EAAE,IAAmB;IAC5D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,6BAA6B,CAAC,CAAC;IAE9C,GAAG;SACA,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACrC,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAsB,EAAE,EAAE;QACvC,IAAI,GAAuE,CAAC;QAC5E,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,MAAM,CAAC,YAAsB,CAAC,CAAC;QAC7C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,KAAK,CACX,6DAA6D,CAC9D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,GAAG,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAmD,EAAE,CAAC;YAEnE,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEjD,IAAI,MAAM,CAAC,UAAU,IAAK,MAAM,CAAC,UAAsC,CAAC,OAAO,CAAC,EAAE,CAAC;oBACjF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;oBACxD,SAAS;gBACX,CAAC;gBAED,MAAM,CAAC,UAAU,GAAG;oBAClB,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;oBAC5B,KAAK,EAAE,UAAU;iBAClB,CAAC;gBAEF,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;gBAClC,OAAO;YACT,CAAC;YAED,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBAC1B,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,sBAAsB,CAAC,CAAC;gBAC7C,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YACD,UAAU,EAAE,CAAC;YACb,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACnD,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACnD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,GAAG;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,wDAAwD,CAAC;SACrE,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;YACvC,MAAM,OAAO,GAAyC,EAAE,CAAC;YAEzD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAEjD,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAE,MAAM,CAAC,UAAsC,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtD,SAAS;gBACX,CAAC;gBAED,OAAQ,MAAM,CAAC,UAAsC,CAAC,OAAO,CAAC,CAAC;gBAC/D,MAAM,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,UAAU,EAAE,EAAE,CAAC;gBACjB,SAAS,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;oBACd,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,4BAA4B,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;YACD,UAAU,EAAE,CAAC;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,WAAW,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../../src/commands/pay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA8BzC,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,QAkF3C"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import pc from 'picocolors';
|
|
2
|
+
import { T2000 } from '@t2000/sdk';
|
|
3
|
+
import { x402Client } from '@t2000/x402';
|
|
4
|
+
import { resolvePin } from '../prompts.js';
|
|
5
|
+
import { printSuccess, printBlank, printJson, printInfo, isJsonMode, handleError, } from '../output.js';
|
|
6
|
+
function createX402Wallet(agent) {
|
|
7
|
+
return {
|
|
8
|
+
client: agent.suiClient,
|
|
9
|
+
keypair: agent.signer,
|
|
10
|
+
address: () => agent.address(),
|
|
11
|
+
signAndExecute: async (tx) => {
|
|
12
|
+
const result = await agent.suiClient.signAndExecuteTransaction({
|
|
13
|
+
signer: agent.signer,
|
|
14
|
+
transaction: tx,
|
|
15
|
+
});
|
|
16
|
+
return { digest: result.digest };
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export function registerPay(program) {
|
|
21
|
+
program
|
|
22
|
+
.command('pay <url>')
|
|
23
|
+
.description('Pay for an x402-protected API resource')
|
|
24
|
+
.option('--key <path>', 'Key file path')
|
|
25
|
+
.option('--method <method>', 'HTTP method (GET, POST, PUT)', 'GET')
|
|
26
|
+
.option('--data <json>', 'Request body for POST/PUT')
|
|
27
|
+
.option('--header <key=value>', 'Additional HTTP header (repeatable)', collectHeaders, {})
|
|
28
|
+
.option('--max-price <amount>', 'Max USDC price to auto-approve', '1.00')
|
|
29
|
+
.option('--timeout <seconds>', 'Request timeout in seconds', '30')
|
|
30
|
+
.option('--dry-run', 'Show what would be paid without paying')
|
|
31
|
+
.action(async (url, opts) => {
|
|
32
|
+
try {
|
|
33
|
+
const pin = await resolvePin();
|
|
34
|
+
const agent = await T2000.create({ pin, keyPath: opts.key });
|
|
35
|
+
agent.enforcer.check({ operation: 'pay', amount: parseFloat(opts.maxPrice) });
|
|
36
|
+
const wallet = createX402Wallet(agent);
|
|
37
|
+
const client = new x402Client(wallet);
|
|
38
|
+
const startTime = Date.now();
|
|
39
|
+
if (!isJsonMode()) {
|
|
40
|
+
printBlank();
|
|
41
|
+
printInfo(`→ ${opts.method} ${url}`);
|
|
42
|
+
}
|
|
43
|
+
const response = await client.fetch(url, {
|
|
44
|
+
method: opts.method,
|
|
45
|
+
headers: opts.header,
|
|
46
|
+
body: opts.data,
|
|
47
|
+
maxPrice: parseFloat(opts.maxPrice),
|
|
48
|
+
timeout: parseInt(opts.timeout, 10) * 1000,
|
|
49
|
+
dryRun: opts.dryRun,
|
|
50
|
+
onPayment: (details) => {
|
|
51
|
+
if (!isJsonMode()) {
|
|
52
|
+
printInfo(`← 402 Payment Required: $${details.amount} USDC (Sui)`);
|
|
53
|
+
printSuccess(`Paid $${details.amount} USDC (tx: ${details.txHash.slice(0, 10)}...)`);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
const elapsed = Date.now() - startTime;
|
|
58
|
+
if (!isJsonMode()) {
|
|
59
|
+
printInfo(`← ${response.status} ${response.statusText || 'OK'} ${pc.dim(`[${elapsed}ms]`)}`);
|
|
60
|
+
}
|
|
61
|
+
const contentType = response.headers.get('content-type') ?? '';
|
|
62
|
+
const body = contentType.includes('application/json')
|
|
63
|
+
? await response.json()
|
|
64
|
+
: await response.text();
|
|
65
|
+
if (isJsonMode()) {
|
|
66
|
+
printJson({
|
|
67
|
+
status: response.status,
|
|
68
|
+
url,
|
|
69
|
+
elapsed,
|
|
70
|
+
body,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
printBlank();
|
|
75
|
+
if (typeof body === 'string') {
|
|
76
|
+
console.log(body);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
console.log(JSON.stringify(body, null, 2));
|
|
80
|
+
}
|
|
81
|
+
printBlank();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
handleError(error);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
function collectHeaders(value, previous) {
|
|
90
|
+
const [key, ...rest] = value.split('=');
|
|
91
|
+
if (key && rest.length > 0) {
|
|
92
|
+
previous[key.trim()] = rest.join('=').trim();
|
|
93
|
+
}
|
|
94
|
+
return previous;
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=pay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/commands/pay.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.d.ts","sourceRoot":"","sources":["../../src/commands/portfolio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,QAsFjD"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import pc from 'picocolors';
|
|
2
|
+
import { T2000, formatUsd, formatAssetAmount } from '@t2000/sdk';
|
|
3
|
+
import { resolvePin } from '../prompts.js';
|
|
4
|
+
import { printKeyValue, printBlank, printJson, isJsonMode, handleError, printHeader, printSeparator, printInfo, printLine } from '../output.js';
|
|
5
|
+
function printPositionLine(pos, rewardKeys) {
|
|
6
|
+
if (pos.currentPrice === 0 && pos.totalAmount > 0) {
|
|
7
|
+
printKeyValue(pos.asset, `${formatAssetAmount(pos.totalAmount, pos.asset)} Avg: ${formatUsd(pos.avgPrice)} Now: ${pc.yellow('unavailable')}`);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
const pnlColor = pos.unrealizedPnL >= 0 ? pc.green : pc.red;
|
|
11
|
+
const pnlSign = pos.unrealizedPnL >= 0 ? '+' : '';
|
|
12
|
+
let yieldSuffix = '';
|
|
13
|
+
if (pos.earning && pos.earningApy) {
|
|
14
|
+
const hasRewards = rewardKeys?.has(`${pos.earningProtocol}:${pos.asset}`);
|
|
15
|
+
const rewardTag = hasRewards ? ` ${pc.yellow('+rewards')}` : '';
|
|
16
|
+
yieldSuffix = ` ${pc.cyan(`${pos.earningApy.toFixed(1)}% APY (${pos.earningProtocol})`)}${rewardTag}`;
|
|
17
|
+
}
|
|
18
|
+
printKeyValue(pos.asset, `${formatAssetAmount(pos.totalAmount, pos.asset)} Avg: ${formatUsd(pos.avgPrice)} Now: ${formatUsd(pos.currentPrice)} ${pnlColor(`${pnlSign}${formatUsd(pos.unrealizedPnL)} (${pnlSign}${pos.unrealizedPnLPct.toFixed(1)}%)`)}${yieldSuffix}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function registerPortfolio(program) {
|
|
22
|
+
program
|
|
23
|
+
.command('portfolio')
|
|
24
|
+
.description('Show investment portfolio')
|
|
25
|
+
.option('--key <path>', 'Key file path')
|
|
26
|
+
.action(async (opts) => {
|
|
27
|
+
try {
|
|
28
|
+
const pin = await resolvePin();
|
|
29
|
+
const agent = await T2000.create({ pin, keyPath: opts.key });
|
|
30
|
+
const portfolio = await agent.getPortfolio();
|
|
31
|
+
if (isJsonMode()) {
|
|
32
|
+
printJson(portfolio);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const rewardKeys = new Set();
|
|
36
|
+
try {
|
|
37
|
+
const pending = await agent.getPendingRewards();
|
|
38
|
+
for (const r of pending)
|
|
39
|
+
rewardKeys.add(`${r.protocol}:${r.asset}`);
|
|
40
|
+
}
|
|
41
|
+
catch { /* skip */ }
|
|
42
|
+
printBlank();
|
|
43
|
+
const hasDirectPositions = portfolio.positions.length > 0;
|
|
44
|
+
const hasStrategyPositions = portfolio.strategyPositions && Object.keys(portfolio.strategyPositions).length > 0;
|
|
45
|
+
if (!hasDirectPositions && !hasStrategyPositions) {
|
|
46
|
+
printInfo('No investments yet. Try: t2000 invest buy 100 SUI');
|
|
47
|
+
printBlank();
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
printHeader('Investment Portfolio');
|
|
51
|
+
if (hasStrategyPositions) {
|
|
52
|
+
for (const [key, positions] of Object.entries(portfolio.strategyPositions)) {
|
|
53
|
+
let stratLabel = key;
|
|
54
|
+
try {
|
|
55
|
+
const def = agent.strategies.get(key);
|
|
56
|
+
stratLabel = def.name;
|
|
57
|
+
}
|
|
58
|
+
catch { /* use key */ }
|
|
59
|
+
printLine(` ${pc.bold(pc.cyan(`▸ ${stratLabel}`))}`);
|
|
60
|
+
printSeparator();
|
|
61
|
+
for (const pos of positions) {
|
|
62
|
+
printPositionLine(pos, rewardKeys);
|
|
63
|
+
}
|
|
64
|
+
const stratValue = positions.reduce((s, p) => s + p.currentValue, 0);
|
|
65
|
+
printLine(` ${pc.dim(`Subtotal: ${formatUsd(stratValue)}`)}`);
|
|
66
|
+
printBlank();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (hasDirectPositions) {
|
|
70
|
+
if (hasStrategyPositions) {
|
|
71
|
+
printLine(` ${pc.bold(pc.cyan('▸ Direct'))}`);
|
|
72
|
+
}
|
|
73
|
+
printSeparator();
|
|
74
|
+
for (const pos of portfolio.positions) {
|
|
75
|
+
printPositionLine(pos, rewardKeys);
|
|
76
|
+
}
|
|
77
|
+
if (hasStrategyPositions) {
|
|
78
|
+
const directValue = portfolio.positions.reduce((s, p) => s + p.currentValue, 0);
|
|
79
|
+
printLine(` ${pc.dim(`Subtotal: ${formatUsd(directValue)}`)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
printSeparator();
|
|
83
|
+
const hasPriceUnavailable = portfolio.positions.some(p => p.currentPrice === 0 && p.totalAmount > 0);
|
|
84
|
+
if (hasPriceUnavailable) {
|
|
85
|
+
printInfo(pc.yellow('⚠ Price data unavailable for some assets. Values may be inaccurate.'));
|
|
86
|
+
}
|
|
87
|
+
printKeyValue('Total invested', formatUsd(portfolio.totalInvested));
|
|
88
|
+
printKeyValue('Current value', formatUsd(portfolio.totalValue));
|
|
89
|
+
const upnlColor = portfolio.unrealizedPnL >= 0 ? pc.green : pc.red;
|
|
90
|
+
const upnlSign = portfolio.unrealizedPnL >= 0 ? '+' : '';
|
|
91
|
+
printKeyValue('Unrealized P&L', upnlColor(`${upnlSign}${formatUsd(portfolio.unrealizedPnL)} (${upnlSign}${portfolio.unrealizedPnLPct.toFixed(1)}%)`));
|
|
92
|
+
if (portfolio.realizedPnL !== 0) {
|
|
93
|
+
const rpnlColor = portfolio.realizedPnL >= 0 ? pc.green : pc.red;
|
|
94
|
+
const rpnlSign = portfolio.realizedPnL >= 0 ? '+' : '';
|
|
95
|
+
printKeyValue('Realized P&L', rpnlColor(`${rpnlSign}${formatUsd(portfolio.realizedPnL)}`));
|
|
96
|
+
}
|
|
97
|
+
printBlank();
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
handleError(error);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=portfolio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portfolio.js","sourceRoot":"","sources":["../../src/commands/portfolio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../src/commands/positions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMzC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,QAsEjD"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import pc from 'picocolors';
|
|
2
|
+
import { T2000, formatUsd } from '@t2000/sdk';
|
|
3
|
+
import { resolvePin } from '../prompts.js';
|
|
4
|
+
import { printKeyValue, printBlank, printJson, isJsonMode, handleError, printInfo, printLine, printDivider } from '../output.js';
|
|
5
|
+
export function registerPositions(program) {
|
|
6
|
+
program
|
|
7
|
+
.command('positions')
|
|
8
|
+
.description('Show savings & borrow positions across all protocols and assets')
|
|
9
|
+
.option('--key <path>', 'Key file path')
|
|
10
|
+
.action(async (opts) => {
|
|
11
|
+
try {
|
|
12
|
+
const pin = await resolvePin();
|
|
13
|
+
const agent = await T2000.create({ pin, keyPath: opts.key });
|
|
14
|
+
const result = await agent.positions();
|
|
15
|
+
if (isJsonMode()) {
|
|
16
|
+
printJson(result);
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
let hasRewards = false;
|
|
20
|
+
const rewardsByKey = new Map();
|
|
21
|
+
try {
|
|
22
|
+
const pending = await agent.getPendingRewards();
|
|
23
|
+
for (const r of pending) {
|
|
24
|
+
rewardsByKey.set(`${r.protocol}:${r.asset}`, true);
|
|
25
|
+
hasRewards = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch { /* skip */ }
|
|
29
|
+
printBlank();
|
|
30
|
+
if (result.positions.length === 0) {
|
|
31
|
+
printInfo('No positions. Use `t2000 save <amount>` to start earning.');
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
const saves = result.positions.filter(p => p.type === 'save');
|
|
35
|
+
const borrows = result.positions.filter(p => p.type === 'borrow');
|
|
36
|
+
if (saves.length > 0) {
|
|
37
|
+
printLine(pc.bold('Savings'));
|
|
38
|
+
printDivider();
|
|
39
|
+
for (const pos of saves) {
|
|
40
|
+
const earning = rewardsByKey.has(`${pos.protocol}:${pos.asset}`)
|
|
41
|
+
? ` ${pc.yellow('+rewards')}`
|
|
42
|
+
: '';
|
|
43
|
+
printKeyValue(pos.protocol, `${formatUsd(pos.amount)} ${pos.asset} @ ${pos.apy.toFixed(2)}% APY${earning}`);
|
|
44
|
+
}
|
|
45
|
+
const totalSaved = saves.reduce((s, p) => s + p.amount, 0);
|
|
46
|
+
if (saves.length > 1) {
|
|
47
|
+
printKeyValue('Total', formatUsd(totalSaved));
|
|
48
|
+
}
|
|
49
|
+
if (hasRewards) {
|
|
50
|
+
printLine(` ${pc.dim('Run claim-rewards to collect and convert to USDC')}`);
|
|
51
|
+
}
|
|
52
|
+
printBlank();
|
|
53
|
+
}
|
|
54
|
+
if (borrows.length > 0) {
|
|
55
|
+
printLine(pc.bold('Borrows'));
|
|
56
|
+
printDivider();
|
|
57
|
+
for (const pos of borrows) {
|
|
58
|
+
printKeyValue(pos.protocol, `${formatUsd(pos.amount)} ${pos.asset} @ ${pos.apy.toFixed(2)}% APY`);
|
|
59
|
+
}
|
|
60
|
+
const totalBorrowed = borrows.reduce((s, p) => s + p.amount, 0);
|
|
61
|
+
if (borrows.length > 1) {
|
|
62
|
+
printKeyValue('Total', formatUsd(totalBorrowed));
|
|
63
|
+
}
|
|
64
|
+
printBlank();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
handleError(error);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=positions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"positions.js","sourceRoot":"","sources":["../../src/commands/positions.ts"],"names":[],"mappings":"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"}
|