@minimalcorp/tsunagi 0.4.2 → 0.4.4
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/.next/standalone/apps/web/.next/BUILD_ID +1 -1
- package/.next/standalone/apps/web/.next/build-manifest.json +6 -6
- package/.next/standalone/apps/web/.next/prerender-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/_global-error/page/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/_not-found.rsc +14 -14
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/index.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/index.rsc +16 -16
- package/.next/standalone/apps/web/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/index.segments/_full.segment.rsc +16 -16
- package/.next/standalone/apps/web/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/index.segments/_index.segment.rsc +9 -9
- package/.next/standalone/apps/web/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/page/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.html +1 -1
- package/.next/standalone/apps/web/.next/server/app/settings.rsc +16 -16
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_full.segment.rsc +16 -16
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_index.segment.rsc +9 -9
- package/.next/standalone/apps/web/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/standalone/apps/web/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page/build-manifest.json +3 -3
- package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page.js.nft.json +1 -1
- package/.next/standalone/apps/web/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__005.hr~._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0ico9~m._.js → [root-of-the-server]__00puz_c._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__02o_btn._.js +1 -7
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__02q5-1m._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0n2qong._.js → [root-of-the-server]__03o2h-e._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0sha5xx._.js → [root-of-the-server]__05wew2i._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__06if0s-._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_kp63e._.js +4 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0_w.d9j._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0a58evg._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0dq2eci._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0zb._6y._.js → [root-of-the-server]__0ea3~0o._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0g_zo8g._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0gltout._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0hhrm~l._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0.c7m6m._.js → [root-of-the-server]__0i9qg2.._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0mzj6x_._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0e2_bho._.js → [root-of-the-server]__0qm.zmb._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0a09w3z._.js → [root-of-the-server]__0ttok7z._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0wi.4eb._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__0tlibqy._.js → [root-of-the-server]__0zl.~s9._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10~ets0._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0-oerzu._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0.ix5hx._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0.q7f2f._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_03lm.~7._.js +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_05fp9lp._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_07aaj~c._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_087.824._.js +7 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_087u93h._.js +7 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_09br4yx._.js +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{_0g.cd6a._.js → _0cll8v8._.js} +4 -4
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0ewpv3x._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0f-.2d8._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0gzw46w._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0j_5kw4._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0lqioz1._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0nrfrqx._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0pnf7yr._.js +14 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0tgd956._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0~zpobw._.js +8 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_10gzkhj._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_settings_page_tsx_0i6itlb._.js +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_layout_tsx_0hv_h45._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_components_ui_input_tsx_10tfquc._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0.j_mel._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0.k090e._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_006_~bg._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_03f~che._.js → node_modules_00srdmg._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_01x9jhr._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0246kbi._.js +26 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_042s455._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_048a-3e._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_04wp5xt._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_d3-scale_src_0~kn3a6._.js → node_modules_05~6lsn._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_06dbwfx._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_mermaid_dist_chunks_mermaid_core_0o900rn._.js → node_modules_06e-q5p._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0727fxi._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_07o4lep._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_09he~u6._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_09t5n8h._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0_-izm4._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0_09.d-._.js → node_modules_0a5ccwh._.js} +3 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0adf7g.._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0awk6-u._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0b.92cv._.js +31 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0d4bnxq._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0e535.c._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0mogzs3._.js → node_modules_0e805wu._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0eany8j._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_0k6b-s.._.js → node_modules_0ef084~._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0e~.z5.._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0f_fmlz._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0fhe2y1._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0gbqzyp._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0h9.n77._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0j3cdoi._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0l1i1-g._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0mw17em._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0n2.ctn._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0nroyub._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0o7wk9s._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/{node_modules_08av5m5._.js → node_modules_0qj8sd8._.js} +2 -2
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0qlz.rw._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0qnxp8p._.js +11 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0r3rp45._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0rb60-8._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0sxzkm4._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0ufhiu0._.js +45 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0ut-0ui._.js +31 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0xwob0c._.js +11 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0ygvzv3._.js +26 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0z.b_s6._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0zffsu.._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0~dnzen._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0~flrfh._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0~mdhr-._.js +17 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0~wmeou._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_117ifaa._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_11vhz_f._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_11x_vv~._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_12fg7ff._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_12nhtkv._.js +45 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_0kp9p~f._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_katex_dist_katex_mjs_0v075ak._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_lodash-es_0a8e-..._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_06.qh_h._.js +3 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_mermaid_dist_mermaid_core_mjs_0rr2bb.._.js +9 -0
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0h9llsw._.js +6 -0
- package/.next/standalone/apps/web/.next/server/middleware-build-manifest.js +6 -6
- package/.next/standalone/apps/web/.next/server/pages/404.html +1 -1
- package/.next/standalone/apps/web/.next/server/pages/500.html +1 -1
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/apps/web/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/apps/web/.next/static/chunks/01xlw8hd842-c.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/03lipngy2bzgv.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/05802kvs1cqcr.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/07j468amjp9_u.js +5 -0
- package/.next/standalone/apps/web/.next/static/chunks/09hkvp9eixhrd.js +6 -0
- package/.next/standalone/apps/web/.next/static/chunks/09tryc7egq1d-.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0_8u4hou0pvbl.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0b9~.0l.ortto.js +12 -0
- package/.next/standalone/apps/web/.next/static/chunks/0c2kbud31dfzp.js +5 -0
- package/.next/standalone/apps/web/.next/static/chunks/0fa94q8j1ob9n.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0h2bvf6c.2me1.js +5 -0
- package/.next/standalone/apps/web/.next/static/chunks/0hejs.0.z-zgt.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0ibllnu3qqge2.js +2 -0
- package/.next/standalone/apps/web/.next/static/chunks/0j1vs.65on.~..js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{0ae7zmpe8063z.js → 0kn6j_p.m8q~k.js} +2 -2
- package/.next/standalone/apps/web/.next/static/chunks/0kp9e7au9n6c..js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{11u7x4ic4~mp3.js → 0lvka-xs16a~i.js} +2 -2
- package/.next/standalone/apps/web/.next/static/chunks/0nucsyd1g6g0i.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0tb8r64zrr_gb.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/0u5h8b5lgm1ki.css +4 -0
- package/.next/standalone/apps/web/.next/static/chunks/0v18jp7h2x2n-.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{0yp~t_.pozr-d.js → 0w_b4db5lrkt8.js} +10 -10
- package/.next/standalone/apps/web/.next/static/chunks/148ko75-ihlmp.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/14tyifilnj_k5.js +31 -0
- package/.next/standalone/apps/web/.next/static/chunks/14~~793b3ie-s.js +7 -0
- package/.next/standalone/apps/web/.next/static/chunks/15d92uby6n-v3.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/1600wck5zi5.~.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/162ni7xyo_8_-.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/16xeyatjk8-e0.js +1 -0
- package/.next/standalone/apps/web/.next/static/chunks/{turbopack-0s_.rdhg458.a.js → turbopack-0i5dxy28w4s._.js} +1 -1
- package/dist/server/pty-manager.d.ts +28 -2
- package/dist/server/pty-manager.js +71 -4
- package/dist/server/routes/env.js +38 -0
- package/dist/server/routes/terminal.js +24 -48
- package/npm-shrinkwrap.json +202 -214
- package/package.json +1 -1
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00qk65u._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__00xeq7r._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__03zxnl6._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0cl-0al._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0ff1foz._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0hhfi7s._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0mhr-tu._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__0qtqq5d._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__10s~ptn._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13fmof_._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/[root-of-the-server]__13yzr3f._.js +0 -4
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_01~tp-i._.js +0 -7
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0835zmv._.js +0 -14
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0h-u~an._.js +0 -7
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0kkt7a_._.js +0 -7
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_0ts4rpp._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/_13ne7ej._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/apps_web_src_app_tasks_[id]_page_tsx_0jshsm2._.js +0 -8
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_06jdmu~._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_07xyphe._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0ac2-~z._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0gglkx9._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0h4h_aw._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0i5v48e._.js +0 -11
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0j1i92p._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0k3x6_w._.js +0 -26
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0mwl~df._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0omx0o-._.js +0 -17
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0q8yuvq._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0rnsluy._.js +0 -31
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0t-jssg._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0t6ysh_._.js +0 -26
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0ut2-yw._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0vq~hzy._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0w6fm3f._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0yb2sh9._.js +0 -31
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0yc~s8p._.js +0 -11
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0zi0w9_._.js +0 -45
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_0zzdoud._.js +0 -45
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_d3-shape_src_arc_135n374.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_lodash-es_0yap81y._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_0zerlct._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_04x.vut._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0cje6no._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_0w_54yy._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-FMBD7UC4_mjs_0dox0y0._.js +0 -17
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_mermaid_dist_chunks_mermaid_core_chunk-YZCP3GAM_mjs_04sswi2._.js +0 -3
- package/.next/standalone/apps/web/.next/server/chunks/ssr/node_modules_next_dist_0xdsm99._.js +0 -6
- package/.next/standalone/apps/web/.next/static/chunks/026168y2bx0d~.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/04ygsac3q3ar..js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/08s3o7outb~0z.js +0 -5
- package/.next/standalone/apps/web/.next/static/chunks/0a2u28f44p7t..js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0dgu~u-1e5b7-.js +0 -5
- package/.next/standalone/apps/web/.next/static/chunks/0e8u7rqrqfiiy.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0fsi8lw5utejl.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0gxhy80~c0gvp.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0lxvbkhh7amha.js +0 -1
- package/.next/standalone/apps/web/.next/static/chunks/0mqupo29wme26.js +0 -7
- package/.next/standalone/apps/web/.next/static/chunks/0mtq6r6l61k.f.js +0 -31
- package/.next/standalone/apps/web/.next/static/chunks/0n72w4sxrwoj4.js +0 -5
- package/.next/standalone/apps/web/.next/static/chunks/0o1bh_qwdvmid.css +0 -4
- package/.next/standalone/apps/web/.next/static/chunks/0rn1kcmsfzjmz.js +0 -12
- package/.next/standalone/apps/web/.next/static/chunks/0uugzgqr-ug3_.js +0 -5
- package/.next/standalone/apps/web/.next/static/chunks/0ysgl4vmer~v5.js +0 -6
- package/.next/standalone/apps/web/.next/static/chunks/11rs2-0jl1rzr.js +0 -2
- package/.next/standalone/apps/web/.next/static/chunks/13_9zaka0bif_.js +0 -1
- /package/.next/standalone/apps/web/.next/static/{vdAs-hr87-L7y2bUSdX3i → 224zD8YM7ARX7LuhyyCln}/_buildManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{vdAs-hr87-L7y2bUSdX3i → 224zD8YM7ARX7LuhyyCln}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/apps/web/.next/static/{vdAs-hr87-L7y2bUSdX3i → 224zD8YM7ARX7LuhyyCln}/_ssgManifest.js +0 -0
|
@@ -45,6 +45,7 @@ function addTsunagiPluginDir(env) {
|
|
|
45
45
|
dirs.push(pluginDir);
|
|
46
46
|
env.CLAUDE_CODE_PLUGIN_DIRS = dirs.join(':');
|
|
47
47
|
}
|
|
48
|
+
const INITIAL_PTY_SIZE = { cols: 80, rows: 24 };
|
|
48
49
|
class PtyManager {
|
|
49
50
|
sessions = new Map();
|
|
50
51
|
/** sessionId → 最後に input を送信した socket.id */
|
|
@@ -118,8 +119,8 @@ class PtyManager {
|
|
|
118
119
|
addTsunagiPluginDir(spawnEnv);
|
|
119
120
|
const ptyProcess = pty.spawn(shell, [], {
|
|
120
121
|
name: 'xterm-256color',
|
|
121
|
-
cols:
|
|
122
|
-
rows:
|
|
122
|
+
cols: INITIAL_PTY_SIZE.cols,
|
|
123
|
+
rows: INITIAL_PTY_SIZE.rows,
|
|
123
124
|
cwd,
|
|
124
125
|
env: spawnEnv,
|
|
125
126
|
});
|
|
@@ -136,6 +137,7 @@ class PtyManager {
|
|
|
136
137
|
lastInputAt: 0,
|
|
137
138
|
scrollback: [],
|
|
138
139
|
scrollbackSize: 0,
|
|
140
|
+
scrollbackStartSize: INITIAL_PTY_SIZE,
|
|
139
141
|
lastOutputAt: now,
|
|
140
142
|
lastConnectedAt: now,
|
|
141
143
|
gcTimer: null,
|
|
@@ -147,8 +149,14 @@ class PtyManager {
|
|
|
147
149
|
session.scrollbackSize += data.length;
|
|
148
150
|
// バッファ上限を超えたら古いものから削除
|
|
149
151
|
while (session.scrollbackSize > SCROLLBACK_MAX_BYTES && session.scrollback.length > 0) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
+
const head = session.scrollback.shift();
|
|
153
|
+
if (typeof head === 'string') {
|
|
154
|
+
session.scrollbackSize -= head.length;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// サイズ印を捨てる → 残りの先頭はこのサイズで描かれている
|
|
158
|
+
session.scrollbackStartSize = head;
|
|
159
|
+
}
|
|
152
160
|
}
|
|
153
161
|
});
|
|
154
162
|
this.sessions.set(sessionId, session);
|
|
@@ -157,6 +165,65 @@ class PtyManager {
|
|
|
157
165
|
getSession(sessionId) {
|
|
158
166
|
return this.sessions.get(sessionId);
|
|
159
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* PTY を resize する。サイズが変わったときだけ SIGWINCH が飛び、scrollback にサイズ印を残す。
|
|
170
|
+
* PTY の resize は必ずここを通し、replay が「どの出力がどの幅で描かれたか」を再現できるようにする。
|
|
171
|
+
* @returns 実際にサイズが変わったか
|
|
172
|
+
*/
|
|
173
|
+
resizePty(session, size) {
|
|
174
|
+
const { pty: ptyProcess } = session;
|
|
175
|
+
if (ptyProcess.cols === size.cols && ptyProcess.rows === size.rows)
|
|
176
|
+
return false;
|
|
177
|
+
try {
|
|
178
|
+
ptyProcess.resize(size.cols, size.rows);
|
|
179
|
+
}
|
|
180
|
+
catch {
|
|
181
|
+
// 終了済みの PTY は無視する
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
// 直前の印以降に出力が無ければ、その印は不要なので置き換える
|
|
185
|
+
// (ウィンドウのドラッグ中など、出力を挟まず resize が連続しても印が溜まらないようにする)
|
|
186
|
+
const last = session.scrollback.at(-1);
|
|
187
|
+
if (last !== undefined && typeof last !== 'string') {
|
|
188
|
+
session.scrollback[session.scrollback.length - 1] = { cols: size.cols, rows: size.rows };
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
session.scrollback.push({ cols: size.cols, rows: size.rows });
|
|
192
|
+
}
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* 再接続時の画面復元用に、scrollback を PTY サイズごとの区間に分ける。
|
|
197
|
+
* 末尾の区間は必ず現在の PTY サイズになる(出力が無くても返す)。
|
|
198
|
+
* @param transform 各区間の出力に適用する加工(端末クエリの除去など。区間ごとに join 済みの文字列を渡す)
|
|
199
|
+
*/
|
|
200
|
+
getReplaySegments(session, transform) {
|
|
201
|
+
const segments = [];
|
|
202
|
+
let size = session.scrollbackStartSize;
|
|
203
|
+
let chunks = [];
|
|
204
|
+
const flush = () => {
|
|
205
|
+
if (chunks.length > 0) {
|
|
206
|
+
segments.push({ ...size, data: transform(chunks.join('')) });
|
|
207
|
+
chunks = [];
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
for (const entry of session.scrollback) {
|
|
211
|
+
if (typeof entry === 'string') {
|
|
212
|
+
chunks.push(entry);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
flush();
|
|
216
|
+
size = entry;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
flush();
|
|
220
|
+
const current = { cols: session.pty.cols, rows: session.pty.rows };
|
|
221
|
+
const last = segments.at(-1);
|
|
222
|
+
if (!last || last.cols !== current.cols || last.rows !== current.rows) {
|
|
223
|
+
segments.push({ ...current, data: '' });
|
|
224
|
+
}
|
|
225
|
+
return segments;
|
|
226
|
+
}
|
|
160
227
|
deleteSession(sessionId) {
|
|
161
228
|
const session = this.sessions.get(sessionId);
|
|
162
229
|
if (!session)
|
|
@@ -6,6 +6,7 @@ const RESERVED_KEY_ERROR = 'エージェントの認証は Settings の Claude P
|
|
|
6
6
|
function syncPtyEnv(fastify) {
|
|
7
7
|
notifyEnvChanged().catch((err) => fastify.log.warn(err, 'Failed to sync PTY env'));
|
|
8
8
|
}
|
|
9
|
+
const ENV_KEY_RE = /^[A-Z0-9_]+$/;
|
|
9
10
|
export async function envRoutes(fastify) {
|
|
10
11
|
// GET /env
|
|
11
12
|
fastify.get('/env', async (request, reply) => {
|
|
@@ -120,6 +121,43 @@ export async function envRoutes(fastify) {
|
|
|
120
121
|
return reply.status(500).send({ error: 'Failed to delete environment variable' });
|
|
121
122
|
}
|
|
122
123
|
});
|
|
124
|
+
// POST /env/bulk — 複数の環境変数を一括で登録・上書きする(ペーストによる取り込み用)
|
|
125
|
+
fastify.post('/env/bulk', async (request, reply) => {
|
|
126
|
+
try {
|
|
127
|
+
const { scope, owner, repo, vars } = request.body;
|
|
128
|
+
if (!scope || !Array.isArray(vars) || vars.length === 0) {
|
|
129
|
+
return reply.status(400).send({ error: 'Missing required fields: scope, vars' });
|
|
130
|
+
}
|
|
131
|
+
if (scope === 'owner' && !owner) {
|
|
132
|
+
return reply.status(400).send({ error: 'Missing required field: owner for scope=owner' });
|
|
133
|
+
}
|
|
134
|
+
if (scope === 'repo' && (!owner || !repo)) {
|
|
135
|
+
return reply.status(400).send({
|
|
136
|
+
error: 'Missing required fields: owner, repo for scope=repo',
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
for (const { key, value } of vars) {
|
|
140
|
+
if (typeof key !== 'string' || typeof value !== 'string' || !key || !value) {
|
|
141
|
+
return reply.status(400).send({ error: 'Each var requires non-empty key and value' });
|
|
142
|
+
}
|
|
143
|
+
if (!ENV_KEY_RE.test(key)) {
|
|
144
|
+
return reply.status(400).send({ error: `Invalid key: ${key}` });
|
|
145
|
+
}
|
|
146
|
+
if (RESERVED_ENV_KEYS.includes(key)) {
|
|
147
|
+
return reply.status(400).send({ error: RESERVED_KEY_ERROR });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
for (const { key, value } of vars) {
|
|
151
|
+
await envRepo.setEnv(key, value, scope, owner, repo);
|
|
152
|
+
}
|
|
153
|
+
syncPtyEnv(fastify);
|
|
154
|
+
return reply.status(200).send({ data: { success: true, count: vars.length } });
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
fastify.log.error(error, 'POST /env/bulk error');
|
|
158
|
+
return reply.status(500).send({ error: 'Failed to import environment variables' });
|
|
159
|
+
}
|
|
160
|
+
});
|
|
123
161
|
// GET /env/list
|
|
124
162
|
fastify.get('/env/list', async (request, reply) => {
|
|
125
163
|
try {
|
|
@@ -27,27 +27,6 @@ function stripTerminalQueries(s) {
|
|
|
27
27
|
.replace(/\x1b\[[?>]?[0-9;]*n/g, '') // DSR: ESC[?6n(主犯) / ESC[6n / ESC[5n など
|
|
28
28
|
.replace(/\x1b\[[?>=]?[0-9;]*c/g, ''); // DA: ESC[c / ESC[0c / ESC[>c / ESC[=c
|
|
29
29
|
}
|
|
30
|
-
/**
|
|
31
|
-
* 表示中のクライアントがいなくなった PTY の cols をこの幅に縮める。
|
|
32
|
-
* 一定の幅を下回ると Claude(Ink) が full-frame redraw を行い <Static> を再 emit するという
|
|
33
|
-
* 観測に基づくしきい値。元 cols が既にこの値の場合のみ -1 にして必ず cols を変化させる。
|
|
34
|
-
*
|
|
35
|
-
* 再表示時は replay 後にクライアントが実サイズへ resize するため、必ず cols が変わり
|
|
36
|
-
* SIGWINCH が飛んで Claude が現在の画面を描き直す(同一サイズの resize は no-op で
|
|
37
|
-
* SIGWINCH が飛ばない)。縮める処理を切断時に済ませておくことで、縮めた時の再描画が
|
|
38
|
-
* 再表示より前に scrollback に入り、replay と描き直しの順序がタイミングに依存しない。
|
|
39
|
-
*/
|
|
40
|
-
const REDRAW_BUMP_COLS = 64;
|
|
41
|
-
function bumpColsForRedraw(session) {
|
|
42
|
-
const { pty: ptyProcess } = session;
|
|
43
|
-
const cols = ptyProcess.cols === REDRAW_BUMP_COLS ? REDRAW_BUMP_COLS - 1 : REDRAW_BUMP_COLS;
|
|
44
|
-
try {
|
|
45
|
-
ptyProcess.resize(cols, ptyProcess.rows);
|
|
46
|
-
}
|
|
47
|
-
catch {
|
|
48
|
-
// 終了済みの PTY は無視する
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
30
|
export async function terminalRoutes(fastify) {
|
|
52
31
|
const io = fastify.io;
|
|
53
32
|
// 作成中のセッション(sessionId → 作成処理)。存在確認から PTY 作成までの間に await を挟むため、
|
|
@@ -112,20 +91,22 @@ export async function terminalRoutes(fastify) {
|
|
|
112
91
|
}
|
|
113
92
|
ptyManager.setActiveSocket(sessionId, socket.id);
|
|
114
93
|
const { pty: ptyProcess } = session;
|
|
115
|
-
const isReused = session.
|
|
94
|
+
const isReused = session.scrollbackSize > 0;
|
|
116
95
|
// リングバッファの内容を一括送信(画面復元)。初回接続・再接続を問わず join のたびに送る。
|
|
117
|
-
//
|
|
118
|
-
//
|
|
96
|
+
// 出力は PTY サイズごとの区間に分けて送り、クライアントは画面をクリアした後、区間ごとに
|
|
97
|
+
// xterm をそのサイズにしてから書き込む(録画時と同じ幅で再生する)。書き終えたら実サイズへ
|
|
98
|
+
// resize し、サイズが変わっていれば SIGWINCH で Claude が現在の画面を描き直す。
|
|
99
|
+
// 切断中に PTY のサイズは変えない(以前は再描画を誘発するため cols を縮めていたが、
|
|
100
|
+
// Claude は resize のたびに履歴全体を再出力するため、狭い幅の履歴コピーが scrollback に
|
|
101
|
+
// 積まれて再表示時に横幅の狭い行や同じ内容の繰り返しが残る原因になっていた)。
|
|
119
102
|
// 端末クエリ列(ESC[?6n / ESC[c 等)を除去してから replay する。
|
|
120
103
|
// これを怠ると xterm.js が応答を生成し PTY へ注入され、入力欄に "1;2c64;3R..." が
|
|
121
104
|
// 勝手に入力される(stripTerminalQueries のコメント参照)。
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
rows: ptyProcess.rows,
|
|
128
|
-
});
|
|
105
|
+
const segments = ptyManager.getReplaySegments(session, stripTerminalQueries);
|
|
106
|
+
// 末尾の \r\n / \n / \r をトリムする。
|
|
107
|
+
const lastSegment = segments[segments.length - 1];
|
|
108
|
+
lastSegment.data = lastSegment.data.replace(/[\r\n]+$/, '');
|
|
109
|
+
socket.emit('replay', { segments });
|
|
129
110
|
// reused の場合、最初の resize まで onData 出力をバッファリング
|
|
130
111
|
let initialResizeHandled = !isReused;
|
|
131
112
|
const pendingOutput = [];
|
|
@@ -167,7 +148,7 @@ export async function terminalRoutes(fastify) {
|
|
|
167
148
|
return;
|
|
168
149
|
ptyManager.setTerminalSize(sessionId, socket.id, { cols, rows });
|
|
169
150
|
if (ptyManager.getActiveSocket(sessionId) === socket.id) {
|
|
170
|
-
|
|
151
|
+
ptyManager.resizePty(session, { cols, rows });
|
|
171
152
|
}
|
|
172
153
|
// reused時: 初回 resize 後にバッファリングしていた出力をフラッシュ
|
|
173
154
|
if (!initialResizeHandled) {
|
|
@@ -186,9 +167,7 @@ export async function terminalRoutes(fastify) {
|
|
|
186
167
|
return;
|
|
187
168
|
ptyManager.setTerminalSize(sessionId, socket.id, { cols, rows });
|
|
188
169
|
ptyManager.setActiveSocket(sessionId, socket.id);
|
|
189
|
-
|
|
190
|
-
ptyProcess.resize(cols, rows);
|
|
191
|
-
}
|
|
170
|
+
ptyManager.resizePty(session, { cols, rows });
|
|
192
171
|
});
|
|
193
172
|
// input イベント: 所有者 socket からの入力のみ PTY へ書き込む。
|
|
194
173
|
// ゾンビ/非所有 socket(再接続前の旧 socket・誤バインド socket 等)からの重複 input は
|
|
@@ -223,23 +202,16 @@ export async function terminalRoutes(fastify) {
|
|
|
223
202
|
const next = ptyManager.removeTerminalSocket(boundSessionId, socket.id);
|
|
224
203
|
if (wasOwner && next) {
|
|
225
204
|
// 同じ PTY を表示している socket が残っている → 最後に使われた socket に所有権と
|
|
226
|
-
// サイズを引き継ぐ(表示中なので GC
|
|
205
|
+
// サイズを引き継ぐ(表示中なので GC は行わない)
|
|
227
206
|
ptyManager.setActiveSocket(boundSessionId, next.socketId);
|
|
228
207
|
const session = ptyManager.getSession(boundSessionId);
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
}
|
|
232
|
-
catch {
|
|
233
|
-
// 終了済みの PTY は無視する
|
|
234
|
-
}
|
|
208
|
+
if (session)
|
|
209
|
+
ptyManager.resizePty(session, next.size);
|
|
235
210
|
}
|
|
236
211
|
else if (wasOwner) {
|
|
212
|
+
// 表示中のクライアントがいなくなっても PTY のサイズはそのまま保つ。
|
|
213
|
+
// 再表示時にサイズが同じなら replay だけで復元され、違えば resize で Claude が描き直す
|
|
237
214
|
ptyManager.scheduleGc(boundSessionId);
|
|
238
|
-
// 次に表示されたとき Claude に描き直させるため、表示中のクライアントがいない間に
|
|
239
|
-
// cols を縮めておく(REDRAW_BUMP_COLS 参照)
|
|
240
|
-
const session = ptyManager.getSession(boundSessionId);
|
|
241
|
-
if (session)
|
|
242
|
-
bumpColsForRedraw(session);
|
|
243
215
|
}
|
|
244
216
|
}
|
|
245
217
|
});
|
|
@@ -350,11 +322,15 @@ export async function terminalRoutes(fastify) {
|
|
|
350
322
|
if (!session) {
|
|
351
323
|
return reply.status(404).send({ error: 'Session not found' });
|
|
352
324
|
}
|
|
353
|
-
|
|
325
|
+
// サイズ印は <RESIZE cols x rows> として埋め込む
|
|
326
|
+
const raw = session.scrollback
|
|
327
|
+
.map((e) => (typeof e === 'string' ? e : `<RESIZE ${e.cols}x${e.rows}>`))
|
|
328
|
+
.join('');
|
|
354
329
|
// 制御文字を可視化して返す
|
|
355
330
|
const visible = raw.replace(/\x1b/g, '<ESC>').replace(/\r/g, '<CR>').replace(/\n/g, '<LF>\n');
|
|
356
331
|
return reply.send({
|
|
357
332
|
sessionId,
|
|
333
|
+
startSize: session.scrollbackStartSize,
|
|
358
334
|
chunks: session.scrollback.length,
|
|
359
335
|
sizeBytes: session.scrollbackSize,
|
|
360
336
|
raw: Buffer.from(raw).toString('base64'),
|