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.
Files changed (126) hide show
  1. package/README.md +68 -37
  2. package/assets/screenshot/accounts.png +0 -0
  3. package/assets/screenshot/history.png +0 -0
  4. package/assets/screenshot/mobile-panes.png +0 -0
  5. package/assets/screenshot/mobile.png +0 -0
  6. package/assets/screenshot/scr.png +0 -0
  7. package/assets/screenshot/subagents.png +0 -0
  8. package/bin/nterminal.js +10 -3
  9. package/dist/client/assets/MarkdownPreview-B-LrTjTM.js +1 -0
  10. package/dist/client/assets/{TranscriptMarkdownBody-H8ZsISc6.js → TranscriptMarkdownBody-3aYVmqQz.js} +1 -1
  11. package/dist/client/assets/index-D3LN5iAH.js +58 -0
  12. package/dist/client/assets/{index-DxfBq-4P.js → index-Dd_o8KCL.js} +1 -1
  13. package/dist/client/assets/index-W-zGfY1a.css +1 -0
  14. package/dist/client/index.html +2 -2
  15. package/dist/scripts/hooks.js +124 -0
  16. package/dist/scripts/hooks.js.map +1 -0
  17. package/dist/server/accounts/accountService.d.ts +23 -1
  18. package/dist/server/accounts/accountService.js +235 -103
  19. package/dist/server/accounts/accountService.js.map +1 -1
  20. package/dist/server/accounts/providerRequests.d.ts +12 -0
  21. package/dist/server/accounts/providerRequests.js +159 -0
  22. package/dist/server/accounts/providerRequests.js.map +1 -0
  23. package/dist/server/agent/agentRoutes.js +11 -0
  24. package/dist/server/agent/agentRoutes.js.map +1 -1
  25. package/dist/server/hooks/codexAppServer.d.ts +30 -0
  26. package/dist/server/hooks/codexAppServer.js +170 -0
  27. package/dist/server/hooks/codexAppServer.js.map +1 -0
  28. package/dist/server/hooks/codexTrust.d.ts +72 -0
  29. package/dist/server/hooks/codexTrust.js +116 -0
  30. package/dist/server/hooks/codexTrust.js.map +1 -0
  31. package/dist/server/hooks/helperJournal.d.ts +16 -0
  32. package/dist/server/hooks/helperJournal.js +74 -0
  33. package/dist/server/hooks/helperJournal.js.map +1 -0
  34. package/dist/server/hooks/hookBinding.d.ts +39 -0
  35. package/dist/server/hooks/hookBinding.js +91 -0
  36. package/dist/server/hooks/hookBinding.js.map +1 -0
  37. package/dist/server/hooks/hookFiles.d.ts +24 -0
  38. package/dist/server/hooks/hookFiles.js +160 -0
  39. package/dist/server/hooks/hookFiles.js.map +1 -0
  40. package/dist/server/hooks/hookInstallation.d.ts +108 -0
  41. package/dist/server/hooks/hookInstallation.js +1074 -0
  42. package/dist/server/hooks/hookInstallation.js.map +1 -0
  43. package/dist/server/hooks/hookProcess.d.ts +5 -0
  44. package/dist/server/hooks/hookProcess.js +85 -0
  45. package/dist/server/hooks/hookProcess.js.map +1 -0
  46. package/dist/server/hooks/hookReceiver.d.ts +66 -0
  47. package/dist/server/hooks/hookReceiver.js +549 -0
  48. package/dist/server/hooks/hookReceiver.js.map +1 -0
  49. package/dist/server/hooks/lifecycle.d.ts +40 -0
  50. package/dist/server/hooks/lifecycle.js +200 -0
  51. package/dist/server/hooks/lifecycle.js.map +1 -0
  52. package/dist/server/hooks/publicationLock.d.ts +3 -0
  53. package/dist/server/hooks/publicationLock.js +137 -0
  54. package/dist/server/hooks/publicationLock.js.map +1 -0
  55. package/dist/server/hooks/verifiedLock.d.ts +24 -0
  56. package/dist/server/hooks/verifiedLock.js +207 -0
  57. package/dist/server/hooks/verifiedLock.js.map +1 -0
  58. package/dist/server/http.d.ts +4 -0
  59. package/dist/server/http.js +6 -0
  60. package/dist/server/http.js.map +1 -1
  61. package/dist/server/index.js +71 -2
  62. package/dist/server/index.js.map +1 -1
  63. package/dist/server/notifications/agentCompletionMonitor.d.ts +16 -1
  64. package/dist/server/notifications/agentCompletionMonitor.js +261 -47
  65. package/dist/server/notifications/agentCompletionMonitor.js.map +1 -1
  66. package/dist/server/notifications/completionNotificationRouter.d.ts +2 -0
  67. package/dist/server/notifications/completionNotificationRouter.js +9 -0
  68. package/dist/server/notifications/completionNotificationRouter.js.map +1 -1
  69. package/dist/server/routes/accountRoutes.js +11 -0
  70. package/dist/server/routes/accountRoutes.js.map +1 -1
  71. package/dist/server/routes/activityRoutes.d.ts +13 -0
  72. package/dist/server/routes/activityRoutes.js +165 -0
  73. package/dist/server/routes/activityRoutes.js.map +1 -0
  74. package/dist/server/routes/agentManagementRoutes.js +8 -1
  75. package/dist/server/routes/agentManagementRoutes.js.map +1 -1
  76. package/dist/server/routes/hookRoutes.d.ts +16 -0
  77. package/dist/server/routes/hookRoutes.js +109 -0
  78. package/dist/server/routes/hookRoutes.js.map +1 -0
  79. package/dist/server/routes/terminalRoutes.js +4 -0
  80. package/dist/server/routes/terminalRoutes.js.map +1 -1
  81. package/dist/server/routes/transcriptQuery.d.ts +2 -1
  82. package/dist/server/routes/transcriptQuery.js +3 -1
  83. package/dist/server/routes/transcriptQuery.js.map +1 -1
  84. package/dist/server/terminal/PtyAdapter.d.ts +19 -0
  85. package/dist/server/terminal/PtyAdapter.js.map +1 -1
  86. package/dist/server/terminal/TerminalManager.d.ts +61 -0
  87. package/dist/server/terminal/TerminalManager.js +672 -12
  88. package/dist/server/terminal/TerminalManager.js.map +1 -1
  89. package/dist/server/terminal/TmuxPtyAdapter.d.ts +14 -2
  90. package/dist/server/terminal/TmuxPtyAdapter.js +101 -15
  91. package/dist/server/terminal/TmuxPtyAdapter.js.map +1 -1
  92. package/dist/server/terminal/activityChannel.d.ts +57 -0
  93. package/dist/server/terminal/activityChannel.js +166 -0
  94. package/dist/server/terminal/activityChannel.js.map +1 -0
  95. package/dist/server/terminal/agentTranscriptStatus.d.ts +12 -0
  96. package/dist/server/terminal/agentTranscriptStatus.js +78 -7
  97. package/dist/server/terminal/agentTranscriptStatus.js.map +1 -1
  98. package/dist/server/terminal/codexTranscriptSource.d.ts +3 -0
  99. package/dist/server/terminal/codexTranscriptSource.js +99 -39
  100. package/dist/server/terminal/codexTranscriptSource.js.map +1 -1
  101. package/dist/server/terminal/subagentSources.js +2 -1
  102. package/dist/server/terminal/subagentSources.js.map +1 -1
  103. package/dist/server/terminal/transcriptHeader.d.ts +85 -0
  104. package/dist/server/terminal/transcriptHeader.js +376 -0
  105. package/dist/server/terminal/transcriptHeader.js.map +1 -0
  106. package/dist/server/terminal/transcriptHistory.d.ts +16 -2
  107. package/dist/server/terminal/transcriptHistory.js +120 -21
  108. package/dist/server/terminal/transcriptHistory.js.map +1 -1
  109. package/dist/server/terminal/transcriptStore.d.ts +6 -0
  110. package/dist/server/terminal/transcriptStore.js +222 -26
  111. package/dist/server/terminal/transcriptStore.js.map +1 -1
  112. package/dist/shared/activityProbe.d.ts +10 -0
  113. package/dist/shared/activityProbe.js +24 -0
  114. package/dist/shared/activityProbe.js.map +1 -0
  115. package/dist/shared/protocol.d.ts +45 -0
  116. package/dist/shared/protocol.js.map +1 -1
  117. package/dist/shared/types.d.ts +9 -1
  118. package/docs/features.md +21 -1
  119. package/docs/provider-hooks.md +340 -0
  120. package/docs/terminal-history.md +10 -0
  121. package/package.json +2 -1
  122. package/scripts/nterminal-hook.cjs +171 -0
  123. package/scripts/nterminalctl +26 -2
  124. package/dist/client/assets/MarkdownPreview-DjDO4lEl.js +0 -1
  125. package/dist/client/assets/index-CIYazAGv.css +0 -1
  126. package/dist/client/assets/index-DwvLN_WJ.js +0 -56
@@ -22,9 +22,11 @@ import { registerAgentCodeServerRoutes, registerCodeServerRoutes } from './route
22
22
  import { registerAgentLinkRoutes } from './routes/agentLinkRoutes.js';
23
23
  import { registerAccountRoutes } from './routes/accountRoutes.js';
24
24
  import { registerFavoriteRoutes } from './routes/favoriteRoutes.js';
25
+ import { registerHookRoutes } from './routes/hookRoutes.js';
25
26
  import { OutboundAgentRegistry } from './agent/outboundAgentRegistry.js';
26
27
  import { AuthenticatedSocketRegistry } from './routes/authenticatedSocketRegistry.js';
27
28
  import { AccountService } from './accounts/accountService.js';
29
+ import { registerActivityRoutes } from './routes/activityRoutes.js';
28
30
  // Browser terminal input and code-server traffic can legitimately exceed the
29
31
  // agent-link control protocol's tiny messages, so this remains a shared upper
30
32
  // bound. Agent-link authentication runs before upgrade and control handlers
@@ -69,6 +71,7 @@ export async function buildApp(config, services) {
69
71
  await registerSecurityRoutes(app, config, services);
70
72
  await registerUpdateRoutes(app, config, services);
71
73
  await registerAccountRoutes(app, config, { authService: services.authService, accountService });
74
+ await registerHookRoutes(app, config, services);
72
75
  await registerFavoriteRoutes(app, config, services);
73
76
  await registerTerminalRoutes(app, config, services);
74
77
  await registerTerminalLayoutRoutes(app, config, services);
@@ -78,6 +81,9 @@ export async function buildApp(config, services) {
78
81
  await registerPushNotificationRoutes(app, config, services);
79
82
  await registerClientDiagnosticsRoutes(app, config, services);
80
83
  await registerTerminalWebSocket(app, config, services, authenticatedSocketRegistry);
84
+ if (services.activityChannel) {
85
+ await registerActivityRoutes(app, config, { authService: services.authService, activityChannel: services.activityChannel }, authenticatedSocketRegistry);
86
+ }
81
87
  await registerAgentLinkRoutes(app, config, { fileStore: services.fileStore, outboundAgentRegistry });
82
88
  if (config.role === 'main' && services.codeServerManager) {
83
89
  await registerCodeServerRoutes(app, config, {
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,10 @@ import { OutboundAgentClient } from './agent/outboundAgentClient.js';
17
17
  import { startEventLoopDelayMonitor } from './eventLoopDelayMonitor.js';
18
18
  import { AccountService } from './accounts/accountService.js';
19
19
  import { assertNodeRuntime } from '../shared/nodeVersion.js';
20
+ import path from 'node:path';
21
+ import { HookReceiver } from './hooks/hookReceiver.js';
22
+ import { HookInstallation } from './hooks/hookInstallation.js';
23
+ import { TerminalActivityChannel } from './terminal/activityChannel.js';
20
24
  async function main() {
21
25
  assertNodeRuntime();
22
26
  const config = loadConfig(loadDotEnvFile());
@@ -39,7 +43,20 @@ async function main() {
39
43
  ? null
40
44
  : TmuxPtyAdapter.detect(config.tmuxSocket ? { socket: config.tmuxSocket } : undefined);
41
45
  const ptyAdapter = tmuxAdapter ?? new NodePtyAdapter();
46
+ const hookInstallation = new HookInstallation({ stateDir: path.dirname(config.statePath), previewMode: config.previewMode ?? false });
47
+ const hookConfigurationCache = new Map();
42
48
  const terminalManager = new TerminalManager(config, ptyAdapter, {
49
+ isHookProviderEnabled: async (provider) => {
50
+ if ((hookConfigurationCache.get(provider) ?? 0) > Date.now())
51
+ return true;
52
+ const status = await hookInstallation.status(provider);
53
+ const enabled = status.installed && status.reason !== 'hooks_disabled';
54
+ if (enabled)
55
+ hookConfigurationCache.set(provider, Date.now() + 5_000);
56
+ else
57
+ hookConfigurationCache.delete(provider);
58
+ return enabled;
59
+ },
43
60
  onCompletion: (event) => completionNotificationRouter.notifyCompletion({ agentId: null, ...event }),
44
61
  onDiagnostic: (diagnostic) => {
45
62
  const { error, ...details } = diagnostic;
@@ -54,12 +71,34 @@ async function main() {
54
71
  }
55
72
  });
56
73
  await terminalManager.restoreSessions();
57
- const accountService = new AccountService(config, terminalManager);
74
+ const activityChannel = new TerminalActivityChannel(terminalManager);
75
+ const hookDiagnosticTimes = new Map();
76
+ const hookReceiver = new HookReceiver({
77
+ stateDir: path.dirname(config.statePath),
78
+ onEvent: event => terminalManager.receiveLifecycle(event),
79
+ onDiagnostic: diagnostic => {
80
+ const now = Date.now();
81
+ if (now - (hookDiagnosticTimes.get(diagnostic.code) ?? 0) < 30_000)
82
+ return;
83
+ hookDiagnosticTimes.set(diagnostic.code, now);
84
+ backgroundErrorLogger?.warn({ code: diagnostic.code }, 'lifecycle hook delivery failed');
85
+ }
86
+ });
87
+ const accountService = new AccountService(config, terminalManager, {
88
+ onDiagnostic: (event) => {
89
+ if (event.state === 'success')
90
+ backgroundErrorLogger?.info(event, 'account token refreshed');
91
+ else
92
+ backgroundErrorLogger?.warn(event, 'account token refresh deferred or failed');
93
+ }
94
+ });
58
95
  const codeServerManager = new CodeServerManager(config, terminalManager);
59
96
  const outboundAgentRegistry = new OutboundAgentRegistry();
60
97
  const agentCompletionMonitor = config.role === 'main'
61
98
  ? new AgentCompletionMonitor(store, completionNotificationRouter, {
62
- resolveAgent: (agent) => outboundAgentRegistry.resolve(agent)
99
+ resolveAgent: (agent) => outboundAgentRegistry.resolve(agent),
100
+ onActivity: (agentId, terminals, initial) => activityChannel.publish(agentId, terminals, initial),
101
+ onRemoveAgent: agentId => activityChannel.removeAgent(agentId)
63
102
  })
64
103
  : null;
65
104
  const app = await buildApp(config, {
@@ -70,6 +109,24 @@ async function main() {
70
109
  codeServerManager,
71
110
  pushNotificationService,
72
111
  clientPresence,
112
+ activityChannel,
113
+ hookInstallation: {
114
+ status: provider => hookInstallation.status(provider),
115
+ install: async (provider) => {
116
+ const result = await hookInstallation.install(provider);
117
+ hookConfigurationCache.delete(provider);
118
+ return result;
119
+ },
120
+ remove: async (provider) => {
121
+ const result = await hookInstallation.remove(provider);
122
+ hookConfigurationCache.delete(provider);
123
+ if (!result.installed && !result.reason)
124
+ terminalManager.invalidateLifecycleHooks(provider);
125
+ return result;
126
+ },
127
+ trustCodexHooks: () => hookInstallation.trustCodexHooks(),
128
+ checkCodexTrust: () => hookInstallation.checkCodexTrust()
129
+ },
73
130
  outboundAgentRegistry
74
131
  });
75
132
  backgroundErrorLogger = app.log;
@@ -95,6 +152,8 @@ async function main() {
95
152
  outboundAgentRegistry.dispose();
96
153
  codeServerManager.dispose();
97
154
  accountService.dispose();
155
+ await hookReceiver.stop();
156
+ activityChannel.dispose();
98
157
  await terminalManager.closeAll();
99
158
  terminalManager.dispose();
100
159
  await app.close();
@@ -107,6 +166,16 @@ async function main() {
107
166
  // (uncaught lifecycle, beforeExit). Sync flush so it works during process tear-down.
108
167
  process.on('beforeExit', () => store.flushSync());
109
168
  await app.listen({ host: config.host, port: config.port });
169
+ try {
170
+ const refreshed = await hookInstallation.refreshManagedHelper();
171
+ if (refreshed.reason && !['not_installed', 'preview_mode'].includes(refreshed.reason)) {
172
+ app.log.warn({ code: refreshed.reason }, 'installed lifecycle helper could not be refreshed');
173
+ }
174
+ await hookReceiver.start();
175
+ }
176
+ catch {
177
+ app.log.warn({ code: 'hook_receiver_unavailable' }, 'lifecycle hooks unavailable; transcript detection remains active');
178
+ }
110
179
  accountService.start();
111
180
  outboundAgentClient?.start();
112
181
  agentCompletionMonitor?.start();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
+ import type { TerminalSummary } from '../../shared/types.js';
1
2
  import type { FileStore, StoredAgent } from '../storage/fileStore.js';
2
3
  import type { ResolvedAgent } from '../agent/outboundAgentRegistry.js';
3
4
  import type { CompletionNotificationRouter } from './completionNotificationRouter.js';
5
+ import WebSocket, { type ClientOptions } from 'ws';
4
6
  export interface AgentCompletionMonitorOptions {
5
7
  intervalMs?: number;
6
8
  timeoutMs?: number;
@@ -8,6 +10,10 @@ export interface AgentCompletionMonitorOptions {
8
10
  maxConcurrentAgents?: number;
9
11
  now?: () => number;
10
12
  resolveAgent?: (agent: StoredAgent) => ResolvedAgent | null;
13
+ onActivity?: (agentId: string, terminals: TerminalSummary[], initial: boolean) => void;
14
+ /** Forget hub metadata on configuration removal, without publishing exits. */
15
+ onRemoveAgent?: (agentId: string) => void;
16
+ createWebSocket?: (url: string, options: ClientOptions) => WebSocket;
11
17
  }
12
18
  export declare class AgentCompletionMonitor {
13
19
  private readonly store;
@@ -18,13 +24,22 @@ export declare class AgentCompletionMonitor {
18
24
  private readonly maxConcurrentAgents;
19
25
  private readonly now;
20
26
  private readonly resolveAgent;
27
+ private readonly onActivity;
28
+ private readonly onRemoveAgent;
29
+ private readonly createWebSocket;
21
30
  private readonly states;
22
31
  private timer;
23
32
  private inflight;
33
+ private disposed;
34
+ private notifications;
24
35
  constructor(store: FileStore, router: CompletionNotificationRouter, options?: AgentCompletionMonitorOptions);
25
36
  start(): void;
26
37
  dispose(): void;
27
38
  pollOnce(): Promise<void>;
28
- private pollAgent;
39
+ private visitAgent;
40
+ private connectAgent;
41
+ private applyActivity;
42
+ private failed;
43
+ private disconnect;
29
44
  private stateFor;
30
45
  }