nterminal 1.3.25 → 1.3.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/README.md +2 -1
  2. package/dist/client/assets/MarkdownPreview-CX0Zi6H6.js +1 -0
  3. package/dist/client/assets/{TranscriptMarkdownBody-BkgxZPQT.js → TranscriptMarkdownBody-BAtKa2bh.js} +1 -1
  4. package/dist/client/assets/{index-BauayuRF.js → index-B0Ef8nfS.js} +32 -32
  5. package/dist/client/assets/{index-CT36T3oC.js → index-BpnLI4BF.js} +1 -1
  6. package/dist/client/index.html +1 -1
  7. package/dist/server/agent/agentRoutes.js +6 -1
  8. package/dist/server/agent/agentRoutes.js.map +1 -1
  9. package/dist/server/index.js +14 -3
  10. package/dist/server/index.js.map +1 -1
  11. package/dist/server/routes/activityRoutes.js +3 -2
  12. package/dist/server/routes/activityRoutes.js.map +1 -1
  13. package/dist/server/routes/agentManagementRoutes.js +19 -1
  14. package/dist/server/routes/agentManagementRoutes.js.map +1 -1
  15. package/dist/server/routes/terminalRoutes.d.ts +4 -1
  16. package/dist/server/routes/terminalRoutes.js +15 -1
  17. package/dist/server/routes/terminalRoutes.js.map +1 -1
  18. package/dist/server/routes/terminalWebSocket.js +4 -0
  19. package/dist/server/routes/terminalWebSocket.js.map +1 -1
  20. package/dist/server/storage/terminalLayoutCleanup.d.ts +4 -0
  21. package/dist/server/storage/terminalLayoutCleanup.js +103 -0
  22. package/dist/server/storage/terminalLayoutCleanup.js.map +1 -0
  23. package/dist/server/terminal/TerminalManager.d.ts +23 -1
  24. package/dist/server/terminal/TerminalManager.js +338 -77
  25. package/dist/server/terminal/TerminalManager.js.map +1 -1
  26. package/dist/server/terminal/terminalSessionStore.d.ts +27 -0
  27. package/dist/server/terminal/terminalSessionStore.js +124 -0
  28. package/dist/server/terminal/terminalSessionStore.js.map +1 -0
  29. package/dist/shared/layoutState.d.ts +2 -0
  30. package/dist/shared/layoutState.js +3 -0
  31. package/dist/shared/layoutState.js.map +1 -1
  32. package/dist/shared/protocol.d.ts +2 -0
  33. package/dist/shared/protocol.js.map +1 -1
  34. package/docs/configuration.md +53 -0
  35. package/package.json +1 -1
  36. package/dist/client/assets/MarkdownPreview-D7uk3GJX.js +0 -1
package/README.md CHANGED
@@ -76,6 +76,7 @@ Run onboarding as the account that should own NTerminal. Do not use `sudo ntermi
76
76
  - Closed tabs and panes become restorable detached terminals.
77
77
  - A lightweight supervisor restarts the NTerminal Node process if it exits unexpectedly.
78
78
  - Tab titles sync with tmux window names so labels survive detach/reattach cycles.
79
+ - With tmux enabled, each server saves pane IDs, titles, working directories, and sizes outside the npm package. After a machine reboot, NTerminal reopens missing shells with the same IDs so workspace, tab, and split layouts reconnect. Commands and AI conversations are not automatically resumed.
79
80
  - Tabs show a green dot while working and a blue unread badge when output finished in the background; workspaces and favorites show the same state.
80
81
  - **Favorite tabs**: star any tab, then open the favorites dialog (`Ctrl+Alt+F`) to jump to it on any server. A favorite whose tab was closed is recreated in its saved folder.
81
82
  - Scroll progress, jump-to-bottom, mobile drag handles, and follow-tail behavior keep large outputs usable.
@@ -176,7 +177,7 @@ These guides ship with the package: after `npm install -g nterminal` they are in
176
177
 
177
178
  - No multi-user accounts or roles.
178
179
  - No container isolation for spawned shells by default.
179
- - No recovery of live PTYs after an OS reboot.
180
+ - An OS reboot ends running commands and in-memory terminal scrollback. Saved panes reopen as shells; Codex/Claude conversations must be resumed explicitly.
180
181
  - No Node-restart PTY persistence on hosts without `tmux`.
181
182
  - The built-in file editor is not an IDE. Full editing needs the optional code-server add-on, which is Linux-only.
182
183
 
@@ -0,0 +1 @@
1
+ import{j as a}from"./index-B0Ef8nfS.js";import{M as e,r as o}from"./index-BpnLI4BF.js";function s({content:r}){return a.jsx(e,{remarkPlugins:[o],children:r})}export{s as default};
@@ -1,3 +1,3 @@
1
- import{R as a,j as t}from"./index-BauayuRF.js";import{M as u,r as m}from"./index-CT36T3oC.js";const _=a.memo(function({text:o,searchQuery:n}){const e=a.useMemo(()=>f(n),[n]),i=a.useMemo(()=>j(o),[o]);return t.jsx(u,{components:e,remarkPlugins:[m],children:i})});function f(r){return{a({node:o,children:n,...e}){return t.jsx("a",{...e,target:"_blank",rel:"noreferrer",children:d(n,r)})},blockquote({node:o,children:n,...e}){return t.jsx("blockquote",{...e,children:d(n,r)})},code({node:o,children:n,...e}){return t.jsx("code",{...e,children:d(n,r)})},em({node:o,children:n,...e}){return t.jsx("em",{...e,children:d(n,r)})},h1({node:o,children:n,...e}){return t.jsx("h1",{...e,children:d(n,r)})},h2({node:o,children:n,...e}){return t.jsx("h2",{...e,children:d(n,r)})},h3({node:o,children:n,...e}){return t.jsx("h3",{...e,children:d(n,r)})},h4({node:o,children:n,...e}){return t.jsx("h4",{...e,children:d(n,r)})},h5({node:o,children:n,...e}){return t.jsx("h5",{...e,children:d(n,r)})},h6({node:o,children:n,...e}){return t.jsx("h6",{...e,children:d(n,r)})},li({node:o,children:n,...e}){return t.jsx("li",{...e,children:d(n,r)})},p({node:o,children:n,...e}){return t.jsx("p",{...e,children:d(n,r)})},pre({node:o,children:n,...e}){return t.jsx("pre",{...e,className:"transcript-markdown-code",children:n})},strong({node:o,children:n,...e}){return t.jsx("strong",{...e,children:d(n,r)})},td({node:o,children:n,...e}){return t.jsx("td",{...e,children:d(n,r)})},th({node:o,children:n,...e}){return t.jsx("th",{...e,children:d(n,r)})}}}function d(r,o){return a.Children.map(r,n=>typeof n=="string"?p(n,o):n)}function p(r,o){const n=o.trim();if(!n)return r||" ";const e=r.toLowerCase(),i=n.toLowerCase(),c=[];let l=0,s=e.indexOf(i);for(;s!==-1;){s>l&&c.push(r.slice(l,s));const h=s+n.length;c.push(t.jsx("mark",{className:"transcript-search-hit",children:r.slice(s,h)},`${s}-${h}`)),l=h,s=e.indexOf(i,l)}return l<r.length&&c.push(r.slice(l)),c.length>0?c:r||" "}function j(r){const o=r.split(`
1
+ import{R as a,j as t}from"./index-B0Ef8nfS.js";import{M as u,r as m}from"./index-BpnLI4BF.js";const _=a.memo(function({text:o,searchQuery:n}){const e=a.useMemo(()=>f(n),[n]),i=a.useMemo(()=>j(o),[o]);return t.jsx(u,{components:e,remarkPlugins:[m],children:i})});function f(r){return{a({node:o,children:n,...e}){return t.jsx("a",{...e,target:"_blank",rel:"noreferrer",children:d(n,r)})},blockquote({node:o,children:n,...e}){return t.jsx("blockquote",{...e,children:d(n,r)})},code({node:o,children:n,...e}){return t.jsx("code",{...e,children:d(n,r)})},em({node:o,children:n,...e}){return t.jsx("em",{...e,children:d(n,r)})},h1({node:o,children:n,...e}){return t.jsx("h1",{...e,children:d(n,r)})},h2({node:o,children:n,...e}){return t.jsx("h2",{...e,children:d(n,r)})},h3({node:o,children:n,...e}){return t.jsx("h3",{...e,children:d(n,r)})},h4({node:o,children:n,...e}){return t.jsx("h4",{...e,children:d(n,r)})},h5({node:o,children:n,...e}){return t.jsx("h5",{...e,children:d(n,r)})},h6({node:o,children:n,...e}){return t.jsx("h6",{...e,children:d(n,r)})},li({node:o,children:n,...e}){return t.jsx("li",{...e,children:d(n,r)})},p({node:o,children:n,...e}){return t.jsx("p",{...e,children:d(n,r)})},pre({node:o,children:n,...e}){return t.jsx("pre",{...e,className:"transcript-markdown-code",children:n})},strong({node:o,children:n,...e}){return t.jsx("strong",{...e,children:d(n,r)})},td({node:o,children:n,...e}){return t.jsx("td",{...e,children:d(n,r)})},th({node:o,children:n,...e}){return t.jsx("th",{...e,children:d(n,r)})}}}function d(r,o){return a.Children.map(r,n=>typeof n=="string"?p(n,o):n)}function p(r,o){const n=o.trim();if(!n)return r||" ";const e=r.toLowerCase(),i=n.toLowerCase(),c=[];let l=0,s=e.indexOf(i);for(;s!==-1;){s>l&&c.push(r.slice(l,s));const h=s+n.length;c.push(t.jsx("mark",{className:"transcript-search-hit",children:r.slice(s,h)},`${s}-${h}`)),l=h,s=e.indexOf(i,l)}return l<r.length&&c.push(r.slice(l)),c.length>0?c:r||" "}function j(r){const o=r.split(`
2
2
  `);let n=!1,e=null;return o.map((i,c)=>{const l=n,s=/^ {0,3}(```+|~~~+)/.exec(i);if(s){const h=s[1]?.startsWith("`")?"`":"~";n?e===h&&(n=!1,e=null):(n=!0,e=h)}return c===o.length-1||l||s||i.trim()===""||i.endsWith(" ")?i:`${i.replace(/[ \t]+$/,"")} `}).join(`
3
3
  `)}export{_ as default};