nterminal 1.3.4 → 1.3.6
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 +68 -37
- package/assets/screenshot/accounts.png +0 -0
- package/assets/screenshot/history.png +0 -0
- package/assets/screenshot/mobile-panes.png +0 -0
- package/assets/screenshot/mobile.png +0 -0
- package/assets/screenshot/scr.png +0 -0
- package/assets/screenshot/subagents.png +0 -0
- package/bin/nterminal.js +10 -3
- package/dist/client/assets/MarkdownPreview-B-LrTjTM.js +1 -0
- package/dist/client/assets/{TranscriptMarkdownBody-H8ZsISc6.js → TranscriptMarkdownBody-3aYVmqQz.js} +1 -1
- package/dist/client/assets/index-D3LN5iAH.js +58 -0
- package/dist/client/assets/{index-DxfBq-4P.js → index-Dd_o8KCL.js} +1 -1
- package/dist/client/assets/index-W-zGfY1a.css +1 -0
- package/dist/client/index.html +2 -2
- package/dist/scripts/hooks.js +124 -0
- package/dist/scripts/hooks.js.map +1 -0
- package/dist/server/accounts/accountService.d.ts +23 -1
- package/dist/server/accounts/accountService.js +235 -103
- package/dist/server/accounts/accountService.js.map +1 -1
- package/dist/server/accounts/providerRequests.d.ts +12 -0
- package/dist/server/accounts/providerRequests.js +159 -0
- package/dist/server/accounts/providerRequests.js.map +1 -0
- package/dist/server/agent/agentRoutes.js +11 -0
- package/dist/server/agent/agentRoutes.js.map +1 -1
- package/dist/server/hooks/codexAppServer.d.ts +30 -0
- package/dist/server/hooks/codexAppServer.js +170 -0
- package/dist/server/hooks/codexAppServer.js.map +1 -0
- package/dist/server/hooks/codexTrust.d.ts +72 -0
- package/dist/server/hooks/codexTrust.js +116 -0
- package/dist/server/hooks/codexTrust.js.map +1 -0
- package/dist/server/hooks/helperJournal.d.ts +16 -0
- package/dist/server/hooks/helperJournal.js +74 -0
- package/dist/server/hooks/helperJournal.js.map +1 -0
- package/dist/server/hooks/hookBinding.d.ts +39 -0
- package/dist/server/hooks/hookBinding.js +91 -0
- package/dist/server/hooks/hookBinding.js.map +1 -0
- package/dist/server/hooks/hookFiles.d.ts +24 -0
- package/dist/server/hooks/hookFiles.js +160 -0
- package/dist/server/hooks/hookFiles.js.map +1 -0
- package/dist/server/hooks/hookInstallation.d.ts +108 -0
- package/dist/server/hooks/hookInstallation.js +1074 -0
- package/dist/server/hooks/hookInstallation.js.map +1 -0
- package/dist/server/hooks/hookProcess.d.ts +5 -0
- package/dist/server/hooks/hookProcess.js +85 -0
- package/dist/server/hooks/hookProcess.js.map +1 -0
- package/dist/server/hooks/hookReceiver.d.ts +66 -0
- package/dist/server/hooks/hookReceiver.js +549 -0
- package/dist/server/hooks/hookReceiver.js.map +1 -0
- package/dist/server/hooks/lifecycle.d.ts +40 -0
- package/dist/server/hooks/lifecycle.js +200 -0
- package/dist/server/hooks/lifecycle.js.map +1 -0
- package/dist/server/hooks/publicationLock.d.ts +3 -0
- package/dist/server/hooks/publicationLock.js +137 -0
- package/dist/server/hooks/publicationLock.js.map +1 -0
- package/dist/server/hooks/verifiedLock.d.ts +24 -0
- package/dist/server/hooks/verifiedLock.js +207 -0
- package/dist/server/hooks/verifiedLock.js.map +1 -0
- package/dist/server/http.d.ts +4 -0
- package/dist/server/http.js +6 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/index.js +71 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/notifications/agentCompletionMonitor.d.ts +16 -1
- package/dist/server/notifications/agentCompletionMonitor.js +261 -47
- package/dist/server/notifications/agentCompletionMonitor.js.map +1 -1
- package/dist/server/notifications/completionNotificationRouter.d.ts +2 -0
- package/dist/server/notifications/completionNotificationRouter.js +9 -0
- package/dist/server/notifications/completionNotificationRouter.js.map +1 -1
- package/dist/server/routes/accountRoutes.js +11 -0
- package/dist/server/routes/accountRoutes.js.map +1 -1
- package/dist/server/routes/activityRoutes.d.ts +13 -0
- package/dist/server/routes/activityRoutes.js +165 -0
- package/dist/server/routes/activityRoutes.js.map +1 -0
- package/dist/server/routes/agentManagementRoutes.js +8 -1
- package/dist/server/routes/agentManagementRoutes.js.map +1 -1
- package/dist/server/routes/hookRoutes.d.ts +16 -0
- package/dist/server/routes/hookRoutes.js +109 -0
- package/dist/server/routes/hookRoutes.js.map +1 -0
- package/dist/server/routes/terminalRoutes.js +4 -0
- package/dist/server/routes/terminalRoutes.js.map +1 -1
- package/dist/server/routes/transcriptQuery.d.ts +2 -1
- package/dist/server/routes/transcriptQuery.js +3 -1
- package/dist/server/routes/transcriptQuery.js.map +1 -1
- package/dist/server/terminal/PtyAdapter.d.ts +19 -0
- package/dist/server/terminal/PtyAdapter.js.map +1 -1
- package/dist/server/terminal/TerminalManager.d.ts +61 -0
- package/dist/server/terminal/TerminalManager.js +672 -12
- package/dist/server/terminal/TerminalManager.js.map +1 -1
- package/dist/server/terminal/TmuxPtyAdapter.d.ts +14 -2
- package/dist/server/terminal/TmuxPtyAdapter.js +101 -15
- package/dist/server/terminal/TmuxPtyAdapter.js.map +1 -1
- package/dist/server/terminal/activityChannel.d.ts +57 -0
- package/dist/server/terminal/activityChannel.js +166 -0
- package/dist/server/terminal/activityChannel.js.map +1 -0
- package/dist/server/terminal/agentTranscriptStatus.d.ts +12 -0
- package/dist/server/terminal/agentTranscriptStatus.js +78 -7
- package/dist/server/terminal/agentTranscriptStatus.js.map +1 -1
- package/dist/server/terminal/codexTranscriptSource.d.ts +3 -0
- package/dist/server/terminal/codexTranscriptSource.js +99 -39
- package/dist/server/terminal/codexTranscriptSource.js.map +1 -1
- package/dist/server/terminal/subagentSources.js +2 -1
- package/dist/server/terminal/subagentSources.js.map +1 -1
- package/dist/server/terminal/transcriptHeader.d.ts +85 -0
- package/dist/server/terminal/transcriptHeader.js +376 -0
- package/dist/server/terminal/transcriptHeader.js.map +1 -0
- package/dist/server/terminal/transcriptHistory.d.ts +16 -2
- package/dist/server/terminal/transcriptHistory.js +120 -21
- package/dist/server/terminal/transcriptHistory.js.map +1 -1
- package/dist/server/terminal/transcriptStore.d.ts +6 -0
- package/dist/server/terminal/transcriptStore.js +222 -26
- package/dist/server/terminal/transcriptStore.js.map +1 -1
- package/dist/shared/activityProbe.d.ts +10 -0
- package/dist/shared/activityProbe.js +24 -0
- package/dist/shared/activityProbe.js.map +1 -0
- package/dist/shared/protocol.d.ts +45 -0
- package/dist/shared/protocol.js.map +1 -1
- package/dist/shared/types.d.ts +9 -1
- package/docs/features.md +21 -1
- package/docs/provider-hooks.md +340 -0
- package/docs/terminal-history.md +10 -0
- package/package.json +2 -1
- package/scripts/nterminal-hook.cjs +171 -0
- package/scripts/nterminalctl +26 -2
- package/dist/client/assets/MarkdownPreview-DjDO4lEl.js +0 -1
- package/dist/client/assets/index-CIYazAGv.css +0 -1
- package/dist/client/assets/index-DwvLN_WJ.js +0 -56
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
NTerminal turns your own machines into one secure browser workspace for real shells, Codex, Claude, files, and long-running terminal sessions.
|
|
6
6
|
|
|
7
|
-
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/scr.png?v=readme-latest" alt="NTerminal workspace with split terminal panes" width="100%">
|
|
7
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/scr.png?v=readme-latest" alt="NTerminal workspace with two servers in the sidebar, a Codex pane, and split terminal panes" width="100%">
|
|
8
8
|
|
|
9
9
|
NTerminal is a single-owner web terminal for machines you control. It is not a hosted shell product, not a SaaS app, and not a multi-user IDE.
|
|
10
10
|
|
|
@@ -50,23 +50,25 @@ Run onboarding as the account that should own NTerminal. Do not use `sudo ntermi
|
|
|
50
50
|
|
|
51
51
|
## Major Features
|
|
52
52
|
|
|
53
|
-
- **Multi-server workspace**: manage the main server and
|
|
54
|
-
- **Persistent real shells**:
|
|
55
|
-
- **Codex / Claude
|
|
56
|
-
- **
|
|
57
|
-
- **
|
|
58
|
-
- **
|
|
53
|
+
- **Multi-server workspace**: manage the main server and every secondary server from one browser UI. Each server keeps its own workspaces, tabs, split panes, files, and layout.
|
|
54
|
+
- **Persistent real shells**: real host PTYs with workspaces, tabs, and split panes. Closed terminals detach instead of dying, and shells survive NTerminal restarts when `tmux` is available.
|
|
55
|
+
- **Codex / Claude aware panes**: panes running Codex or Claude get a transcript history viewer with server-side search, a subagent viewer, working/unread activity colors, and completion notifications.
|
|
56
|
+
- **Provider accounts and hooks**: save several Codex or Claude logins per server, switch between them, and check weekly usage. Optional lifecycle hooks give more reliable session and activity signals.
|
|
57
|
+
- **Secure personal access**: password plus TOTP, trusted devices and networks, IP-aware session checks, and origin checks around terminal/file mutation routes.
|
|
58
|
+
- **Files, uploads, and attachments**: browse and edit files in the selected pane's folder, drop files or folders into the terminal, attach files to a Compose message for an agent to read, or open the pane in a browser VS Code (code-server add-on).
|
|
59
|
+
- **Works on phones and tablets**: pane switcher, terminal key bar, and installable PWA with push notifications.
|
|
60
|
+
- **Guided npm deployment**: install with npm, run `nterminal onboarding`, keep runtime state under `~/.nterminal`, and update every server from the UI.
|
|
59
61
|
|
|
60
62
|
## Feature Details
|
|
61
63
|
|
|
62
|
-
###
|
|
64
|
+
### Servers And Workspaces
|
|
63
65
|
|
|
64
66
|
- Sidebar server switching does not tear down inactive server workspaces.
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
- Hourly update checks badge Settings and Updates when a newer package is available.
|
|
67
|
+
- Each server has named **workspaces**, each with a default folder and its own tabs and panes. Workspaces can be renamed, reordered, and deleted.
|
|
68
|
+
- Server cards can show CPU, memory, disk, and swap usage with percentages and absolute values, in compact or detailed mode. High usage is highlighted.
|
|
69
|
+
- Secondary servers connect **directly** (main reaches them over the network) or **outbound** (the secondary keeps an authenticated WSS connection to main, for NAT, mobile, or changing IPs, with no inbound port).
|
|
70
|
+
- The **Server information** dialog shows the server role, its external IPv4, its favorite tabs, and its processes grouped by project folder with CPU and memory totals.
|
|
71
|
+
- Fleet updates check the npm registry, update secondary servers first, and update the main server last. Hourly update checks badge Settings and Updates when a newer package is available.
|
|
70
72
|
|
|
71
73
|
### Terminal Workspace
|
|
72
74
|
|
|
@@ -74,38 +76,57 @@ Run onboarding as the account that should own NTerminal. Do not use `sudo ntermi
|
|
|
74
76
|
- Closed tabs and panes become restorable detached terminals.
|
|
75
77
|
- A lightweight supervisor restarts the NTerminal Node process if it exits unexpectedly.
|
|
76
78
|
- Tab titles sync with tmux window names so labels survive detach/reattach cycles.
|
|
79
|
+
- 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
|
+
- **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.
|
|
77
81
|
- Scroll progress, jump-to-bottom, mobile drag handles, and follow-tail behavior keep large outputs usable.
|
|
82
|
+
- Workspace shortcuts use Control-based keys and can be rebound in Settings (see [Features](docs/features.md#keyboard-shortcuts)).
|
|
78
83
|
|
|
79
|
-
###
|
|
84
|
+
### Codex / Claude History And Subagents
|
|
80
85
|
|
|
81
|
-
|
|
82
|
-
- The history viewer supports full-history search, Markdown rendering, optional tool output, and scroll-to-load older transcript entries. Search scans older records progressively and can jump to results that have not been loaded in the viewer.
|
|
83
|
-
- When live session evidence is ambiguous, choose a transcript from the available candidates instead of silently attaching the wrong conversation.
|
|
84
|
-
- A private, bounded disk cache reuses rendered conversation records across history views and searches. New output updates the tail without rebuilding the older cached records.
|
|
85
|
-
- Transcript history is attached only when NTerminal can identify the backing session unambiguously.
|
|
86
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/history.png?v=readme-latest" alt="Transcript history viewer with search results in a Claude pane" width="100%">
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
- Supported Codex/Claude panes open JSONL transcript history (`View history`, `Alt+H`) from `~/.codex/sessions` or `~/.claude/projects`, with Markdown rendering, optional tool output, a prompt list, and scroll-to-load older entries.
|
|
89
|
+
- Search runs on the server from newest to oldest, including records not yet loaded in the viewer, and selecting a result loads the history around it.
|
|
90
|
+
- History is attached only when NTerminal can identify the backing session unambiguously. When several sessions are plausible, choose one from the session menu; this never changes the running CLI.
|
|
91
|
+
- A private, bounded disk cache reuses parsed conversation records across views and searches, and the history layout adapts to narrow panes.
|
|
92
|
+
- The subagent viewer (`View agents`, `Alt+A`) lists the subagents a session launched, with their state, and opens each one's conversation. It covers Claude subagents, Codex child threads, and `codex exec` runs started from a Claude session; nested subagents fold under their parent.
|
|
88
93
|
|
|
89
|
-
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
94
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/subagents.png?v=readme-latest" alt="Subagent viewer listing nested subagents of a Claude session" width="100%">
|
|
95
|
+
|
|
96
|
+
### Provider Accounts And Hooks
|
|
97
|
+
|
|
98
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/accounts.png?v=readme-latest" alt="Codex accounts dialog with two saved accounts, weekly usage, and provider hooks" width="480">
|
|
99
|
+
|
|
100
|
+
- Open a server's Codex or Claude account dialog from the provider buttons on its server card.
|
|
101
|
+
- Each server keeps its own encrypted credential vault. Save several accounts, switch with **Use**, add one through a login terminal, and refresh credentials. Switching is blocked while Codex/Claude processes are running.
|
|
102
|
+
- The dialog shows access-token expiry, weekly and session usage remaining, reset times, and the last refresh result. Usage checks are read-only.
|
|
103
|
+
- Optional [provider lifecycle hooks](docs/provider-hooks.md) (Linux) can be installed or removed from the same dialog or with `nterminal hooks`. For Codex, **Trust NTerminal hooks in Codex** asks Codex to trust only NTerminal's own hooks, the same as approving them in `/hooks`.
|
|
104
|
+
|
|
105
|
+
### Files, Uploads, And Editor
|
|
106
|
+
|
|
107
|
+
- The Files sidebar browses the selected pane's folder: view/edit text and Markdown, preview browser-supported files, and create, rename, or delete entries. Saves reject stale overwrites.
|
|
108
|
+
- Drop files or folders onto the terminal to upload them into the active pane's folder. Folder drops preserve internal paths and never overwrite existing files. Batches queue safely, show progress, support cancel, and retry only failed files.
|
|
109
|
+
- **Compose attachments**: attach files to a Compose message by picker, drag-and-drop, or paste. They are stored privately under `~/.nterminal/attachments` on the pane's server, and their paths are appended when the message is sent, so Codex, Claude, or another CLI can read them.
|
|
110
|
+
- **Remote editor**: the pane header can open the pane's folder in code-server (browser VS Code). NTerminal downloads and verifies the code-server release on first use (Linux x64/arm64) and stops idle instances.
|
|
93
111
|
- Terminal Ctrl+C copies selected text and falls through to SIGINT when nothing is selected; Ctrl+V pastes clipboard text.
|
|
94
112
|
|
|
95
113
|
### Notifications
|
|
96
114
|
|
|
97
|
-
- In-app completion toasts appear when background commands finish.
|
|
98
|
-
- Toasts can auto-dismiss, stay until dismissed, or
|
|
99
|
-
-
|
|
100
|
-
- Clicking a completion toast jumps back to the server and pane that finished.
|
|
101
|
-
- Optional OS notifications are available when the page is hidden.
|
|
115
|
+
- In-app completion toasts appear when background commands or Codex/Claude turns finish. Clicking one jumps to the server and pane that finished.
|
|
116
|
+
- Toasts can auto-dismiss, stay until dismissed, or play custom MP4/WebM videos chosen at random from the enabled set.
|
|
117
|
+
- OS notifications are available while the page is hidden, and the installed PWA can receive push notifications (HTTPS or localhost).
|
|
102
118
|
|
|
103
119
|
### Mobile And PWA
|
|
104
120
|
|
|
105
|
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
121
|
+
<p>
|
|
122
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/mobile.png?v=readme-latest" alt="NTerminal on a phone: one pane of a split tab with the terminal key bar" width="280">
|
|
123
|
+
<img src="https://cdn.jsdelivr.net/npm/nterminal@latest/assets/screenshot/mobile-panes.png?v=readme-latest" alt="NTerminal on a phone: the pane switcher bottom sheet listing the tab's panes" width="280">
|
|
124
|
+
</p>
|
|
125
|
+
|
|
126
|
+
- Split layouts on narrow screens show one pane at a time, with previous/next buttons and a switcher for terminals and editors.
|
|
127
|
+
- The mobile key bar exposes Ctrl, Esc, Tab, and arrows when needed.
|
|
108
128
|
- Touch scrolling controls are tuned for long terminal output.
|
|
129
|
+
- iPad home-screen metadata and icons are included.
|
|
109
130
|
|
|
110
131
|
## Requirements
|
|
111
132
|
|
|
@@ -113,6 +134,7 @@ Run onboarding as the account that should own NTerminal. Do not use `sudo ntermi
|
|
|
113
134
|
- Linux or macOS.
|
|
114
135
|
- Native build tools required by `node-pty`.
|
|
115
136
|
- Optional `tmux` for PTY persistence across Node restarts.
|
|
137
|
+
- Provider hooks and the code-server add-on require Linux.
|
|
116
138
|
|
|
117
139
|
If PTY creation fails after a package install, rebuild the native module inside the global package:
|
|
118
140
|
|
|
@@ -125,18 +147,27 @@ npm explore -g nterminal -- npm rebuild node-pty --build-from-source
|
|
|
125
147
|
```bash
|
|
126
148
|
nterminal onboarding
|
|
127
149
|
nterminal status
|
|
128
|
-
nterminal
|
|
129
|
-
nterminal
|
|
150
|
+
nterminal start | stop | restart
|
|
151
|
+
nterminal logs [-f] [N]
|
|
152
|
+
nterminal doctor
|
|
153
|
+
nterminal url
|
|
154
|
+
nterminal version
|
|
155
|
+
nterminal hooks status --provider codex
|
|
156
|
+
nterminal hooks install --provider claude
|
|
157
|
+
nterminal hooks trust --provider codex
|
|
130
158
|
nterminal uninstall --force
|
|
131
159
|
```
|
|
132
160
|
|
|
161
|
+
Run `nterminal help` for the full list. Updates run from Settings, not from a CLI command.
|
|
162
|
+
|
|
133
163
|
## Documentation
|
|
134
164
|
|
|
135
165
|
- [Onboarding](docs/onboarding.md): main/secondary setup, nginx, TLS, firewall, and package runtime setup.
|
|
136
166
|
- [Configuration](docs/configuration.md): `.env`, environment variables, and deployment examples.
|
|
137
167
|
- [Operations](docs/operations.md): service control, updates, clean uninstall, verification, and troubleshooting.
|
|
138
|
-
- [Terminal History](docs/terminal-history.md): tmux scrollback, alternate buffer behavior, Codex/Claude JSONL history, and large-output ergonomics.
|
|
139
|
-
- [
|
|
168
|
+
- [Terminal History](docs/terminal-history.md): tmux scrollback, alternate buffer behavior, Codex/Claude JSONL history, search, and large-output ergonomics.
|
|
169
|
+
- [Provider Hooks](docs/provider-hooks.md): optional Codex/Claude lifecycle hooks, Codex trust, and the `nterminal hooks` command.
|
|
170
|
+
- [Features](docs/features.md): workspaces, accounts, files, uploads, attachments, notifications, mobile controls, keyboard shortcuts, and PWA behavior.
|
|
140
171
|
- [Security](SECURITY.md): supported security boundary and vulnerability reporting.
|
|
141
172
|
|
|
142
173
|
## Limitations
|
|
@@ -145,7 +176,7 @@ nterminal uninstall --force
|
|
|
145
176
|
- No container isolation for spawned shells by default.
|
|
146
177
|
- No recovery of live PTYs after an OS reboot.
|
|
147
178
|
- No Node-restart PTY persistence on hosts without `tmux`.
|
|
148
|
-
-
|
|
179
|
+
- The built-in file editor is not an IDE. Full editing needs the optional code-server add-on, which is Linux-only.
|
|
149
180
|
|
|
150
181
|
## Publication Notes
|
|
151
182
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/bin/nterminal.js
CHANGED
|
@@ -48,7 +48,7 @@ function scriptEntrypoint(name) {
|
|
|
48
48
|
function runScript(name, runArgs) {
|
|
49
49
|
const [major, minor] = process.versions.node.split('.').map(Number);
|
|
50
50
|
if (major < 22 || (major === 22 && minor < 13)) {
|
|
51
|
-
console.error('error: Node.js >=22.13.0 is required; update Node.js before running
|
|
51
|
+
console.error('error: Node.js >=22.13.0 is required; update Node.js before running this command.');
|
|
52
52
|
process.exit(1);
|
|
53
53
|
}
|
|
54
54
|
const entrypoint = scriptEntrypoint(name);
|
|
@@ -85,6 +85,10 @@ function printHelp() {
|
|
|
85
85
|
Commands:
|
|
86
86
|
version Print the installed NTerminal version.
|
|
87
87
|
onboarding Run interactive main/secondary onboarding.
|
|
88
|
+
hooks <action> --provider <codex|claude>
|
|
89
|
+
Inspect, install, or remove lifecycle hooks (status/install/remove).
|
|
90
|
+
hooks trust --provider codex [--yes]
|
|
91
|
+
Ask Codex to trust only NTerminal's installed hooks (like /hooks).
|
|
88
92
|
generate-secrets Print a new NTERMINAL_SESSION_SECRET.
|
|
89
93
|
status Show process status.
|
|
90
94
|
start Start the built server.
|
|
@@ -93,8 +97,8 @@ Commands:
|
|
|
93
97
|
restart-after-update Restart after replacing the npm package.
|
|
94
98
|
build Verify the bundled runtime exists.
|
|
95
99
|
deploy Restart the installed package.
|
|
96
|
-
clean --force Remove local runtime state.
|
|
97
|
-
uninstall --force Stop and remove local runtime state before npm uninstall.
|
|
100
|
+
clean --force Remove local runtime state and NTerminal's provider hooks.
|
|
101
|
+
uninstall --force Stop and remove local runtime state and provider hooks before npm uninstall.
|
|
98
102
|
logs [N] Show recent logs.
|
|
99
103
|
logs -f [N] Follow logs.
|
|
100
104
|
doctor Check local runtime readiness.
|
|
@@ -108,6 +112,9 @@ switch (command) {
|
|
|
108
112
|
case 'onboarding':
|
|
109
113
|
runScript('onboarding', args);
|
|
110
114
|
break;
|
|
115
|
+
case 'hooks':
|
|
116
|
+
runScript('hooks', args);
|
|
117
|
+
break;
|
|
111
118
|
case 'generate-secrets':
|
|
112
119
|
case 'generate:secrets':
|
|
113
120
|
runScript('generate-secrets', args);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{j as a}from"./index-D3LN5iAH.js";import{M as e,r as o}from"./index-Dd_o8KCL.js";function s({content:r}){return a.jsx(e,{remarkPlugins:[o],children:r})}export{s as default};
|
package/dist/client/assets/{TranscriptMarkdownBody-H8ZsISc6.js → TranscriptMarkdownBody-3aYVmqQz.js}
RENAMED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{R as a,j as t}from"./index-
|
|
1
|
+
import{R as a,j as t}from"./index-D3LN5iAH.js";import{M as u,r as m}from"./index-Dd_o8KCL.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};
|