nterminal 1.2.70 → 1.2.71

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.
@@ -12,7 +12,7 @@
12
12
  <link rel="icon" type="image/png" sizes="64x64" href="/icons/favicon-64.png" />
13
13
  <link rel="icon" type="image/png" sizes="96x96" href="/icons/favicon-96.png" />
14
14
  <title>NTerminal</title>
15
- <script type="module" crossorigin src="/assets/index-E-kkOjos.js"></script>
15
+ <script type="module" crossorigin src="/assets/index-Cz0ghFhb.js"></script>
16
16
  <link rel="stylesheet" crossorigin href="/assets/index-C6Bpyyau.css">
17
17
  </head>
18
18
  <body>
package/dist/client/sw.js CHANGED
@@ -12,7 +12,8 @@ self.addEventListener('push', (event) => {
12
12
  icon: '/icons/app-icon-384.png',
13
13
  badge: '/icons/favicon-96.png',
14
14
  data: {
15
- url: safeUrl(payload && payload.data && payload.data.url)
15
+ url: safeUrl(payload && payload.data && payload.data.url),
16
+ focus: safeFocus(payload && payload.data && payload.data.focus)
16
17
  },
17
18
  silent: true
18
19
  };
@@ -22,12 +23,20 @@ self.addEventListener('push', (event) => {
22
23
  self.addEventListener('notificationclick', (event) => {
23
24
  event.notification.close();
24
25
  const targetUrl = safeUrl(event.notification.data && event.notification.data.url);
26
+ const focus = safeFocus(event.notification.data && event.notification.data.focus);
25
27
  event.waitUntil(
26
- self.clients.matchAll({ type: 'window', includeUncontrolled: true }).then((clients) => {
28
+ self.clients.matchAll({ type: 'window', includeUncontrolled: true }).then(async (clients) => {
27
29
  for (const client of clients) {
28
30
  const url = new URL(client.url);
29
31
  if (url.origin === self.location.origin) {
30
- return client.focus();
32
+ const targetClient = focus && typeof client.navigate === 'function'
33
+ ? (await client.navigate(new URL(targetUrl, self.location.origin).href).catch(() => null)) || client
34
+ : client;
35
+ const focusedClient = await targetClient.focus();
36
+ if (focus) {
37
+ focusedClient.postMessage({ type: 'nterminal.notificationFocus', focus });
38
+ }
39
+ return focusedClient;
31
40
  }
32
41
  }
33
42
  return self.clients.openWindow(targetUrl);
@@ -49,3 +58,27 @@ function safeUrl(value) {
49
58
  return '/';
50
59
  }
51
60
  }
61
+
62
+ function safeFocus(value) {
63
+ if (!value || typeof value !== 'object') {
64
+ return null;
65
+ }
66
+ const kind = value.kind;
67
+ const terminalId = value.terminalId;
68
+ const agentId = value.agentId;
69
+ if (kind !== 'terminal' || !safeIdentifier(terminalId)) {
70
+ return null;
71
+ }
72
+ if (agentId !== undefined && agentId !== null && agentId !== '' && !safeIdentifier(agentId)) {
73
+ return null;
74
+ }
75
+ return {
76
+ kind: 'terminal',
77
+ agentId: agentId || null,
78
+ terminalId
79
+ };
80
+ }
81
+
82
+ function safeIdentifier(value) {
83
+ return typeof value === 'string' && /^[A-Za-z0-9_.:-]{1,128}$/.test(value);
84
+ }
@@ -1,4 +1,5 @@
1
1
  import { MAIN_SERVER_ID } from '../../shared/protocol.js';
2
+ import { buildNotificationFocusPath } from '../../shared/notificationFocus.js';
2
3
  const defaultCoalesceWindowMs = 30_000;
3
4
  export class CompletionNotificationRouter {
4
5
  store;
@@ -27,11 +28,13 @@ export class CompletionNotificationRouter {
27
28
  const serverName = event.agentId
28
29
  ? (state.agents.find((agent) => agent.id === event.agentId)?.name ?? 'remote server')
29
30
  : (state.mainName ?? 'main server');
31
+ const focus = completionFocusTarget(event);
30
32
  await this.pushService.sendToSubscriptions(targets, {
31
33
  title: 'NTerminal',
32
34
  body: `${completionLabel(event)} finished on ${serverName}`,
33
35
  tag,
34
- url: '/'
36
+ url: buildNotificationFocusPath(focus),
37
+ focus
35
38
  });
36
39
  }
37
40
  reserveCoalesceTag(tag) {
@@ -86,6 +89,13 @@ function mostRecentStandaloneSubscription(subscriptions, liveClientIds) {
86
89
  function completionTag(event) {
87
90
  return `nterminal:${event.agentId ?? MAIN_SERVER_ID}:${event.terminalId}:completion`;
88
91
  }
92
+ function completionFocusTarget(event) {
93
+ return {
94
+ kind: 'terminal',
95
+ agentId: event.agentId,
96
+ terminalId: event.terminalId
97
+ };
98
+ }
89
99
  function completionLabel(event) {
90
100
  if (event.provider === 'codex')
91
101
  return 'Codex task';
@@ -1 +1 @@
1
- {"version":3,"file":"completionNotificationRouter.js","sourceRoot":"","sources":["../../../src/server/notifications/completionNotificationRouter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completionNotificationRouter.js","sourceRoot":"","sources":["../../../src/server/notifications/completionNotificationRouter.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { PushNotificationDeviceKind, PushNotificationDeviceSummary, PushNotificationDisplayMode } from '../../shared/protocol.js';
2
+ import { type NotificationFocusTarget } from '../../shared/notificationFocus.js';
2
3
  import type { StoredPushSubscription } from '../storage/fileStore.js';
3
4
  import type { FileStore } from '../storage/fileStore.js';
4
5
  export interface PushSubscriptionInput {
@@ -22,6 +23,7 @@ export interface PushNotificationPayload {
22
23
  body: string;
23
24
  tag: string;
24
25
  url?: string;
26
+ focus?: NotificationFocusTarget;
25
27
  }
26
28
  export interface PushNotificationServiceOptions {
27
29
  subject: string;
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import webPush from 'web-push';
3
+ import { sanitizeNotificationFocusTarget } from '../../shared/notificationFocus.js';
3
4
  export class PushNotificationService {
4
5
  store;
5
6
  options;
@@ -135,7 +136,10 @@ export class PushNotificationService {
135
136
  tag: payload.tag,
136
137
  icon: '/icons/app-icon-384.png',
137
138
  badge: '/icons/favicon-96.png',
138
- data: { url: sanitizeNotificationUrl(payload.url) }
139
+ data: {
140
+ url: sanitizeNotificationUrl(payload.url),
141
+ focus: sanitizeNotificationFocusTarget(payload.focus)
142
+ }
139
143
  });
140
144
  const byEndpoint = new Map();
141
145
  for (const subscription of subscriptions) {
@@ -1 +1 @@
1
- {"version":3,"file":"pushNotificationService.js","sourceRoot":"","sources":["../../../src/server/notifications/pushNotificationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pushNotificationService.js","sourceRoot":"","sources":["../../../src/server/notifications/pushNotificationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export interface NotificationFocusTarget {
2
+ kind: 'terminal';
3
+ agentId: string | null;
4
+ terminalId: string;
5
+ }
6
+ export declare function buildNotificationFocusPath(target: NotificationFocusTarget): string;
7
+ export declare function parseNotificationFocusHash(hash: string): NotificationFocusTarget | null;
8
+ export declare function sanitizeNotificationFocusTarget(value: unknown): NotificationFocusTarget | null;
@@ -0,0 +1,49 @@
1
+ const focusHashKey = 'nterminal-focus';
2
+ const identifierPattern = /^[A-Za-z0-9_.:-]{1,128}$/;
3
+ export function buildNotificationFocusPath(target) {
4
+ const params = new URLSearchParams();
5
+ params.set(focusHashKey, target.kind);
6
+ params.set('terminalId', target.terminalId);
7
+ if (target.agentId) {
8
+ params.set('agentId', target.agentId);
9
+ }
10
+ return `/#${params.toString()}`;
11
+ }
12
+ export function parseNotificationFocusHash(hash) {
13
+ if (!hash.startsWith('#')) {
14
+ return null;
15
+ }
16
+ const params = new URLSearchParams(hash.slice(1));
17
+ if (params.get(focusHashKey) !== 'terminal') {
18
+ return null;
19
+ }
20
+ return sanitizeNotificationFocusTarget({
21
+ kind: 'terminal',
22
+ agentId: params.get('agentId'),
23
+ terminalId: params.get('terminalId')
24
+ });
25
+ }
26
+ export function sanitizeNotificationFocusTarget(value) {
27
+ if (!value || typeof value !== 'object') {
28
+ return null;
29
+ }
30
+ const candidate = value;
31
+ if (candidate.kind !== 'terminal' || !isSafeIdentifier(candidate.terminalId)) {
32
+ return null;
33
+ }
34
+ const agentId = candidate.agentId === null || candidate.agentId === undefined || candidate.agentId === ''
35
+ ? null
36
+ : candidate.agentId;
37
+ if (agentId !== null && !isSafeIdentifier(agentId)) {
38
+ return null;
39
+ }
40
+ return {
41
+ kind: 'terminal',
42
+ agentId,
43
+ terminalId: candidate.terminalId
44
+ };
45
+ }
46
+ function isSafeIdentifier(value) {
47
+ return typeof value === 'string' && identifierPattern.test(value);
48
+ }
49
+ //# sourceMappingURL=notificationFocus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notificationFocus.js","sourceRoot":"","sources":["../../src/shared/notificationFocus.ts"],"names":[],"mappings":"AAMA,MAAM,YAAY,GAAG,iBAAiB,CAAC;AACvC,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD,MAAM,UAAU,0BAA0B,CAAC,MAA+B;IACxE,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACrD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,+BAA+B,CAAC;QACrC,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;KACrC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAAc;IAC5D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,KAAyC,CAAC;IAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,KAAK,IAAI,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS,CAAC,OAAO,KAAK,EAAE;QACvG,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IACtB,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO;QACP,UAAU,EAAE,SAAS,CAAC,UAAU;KACjC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAc;IACtC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nterminal",
3
- "version": "1.2.70",
3
+ "version": "1.2.71",
4
4
  "license": "GPL-3.0-only",
5
5
  "type": "module",
6
6
  "packageManager": "npm@10.9.7",
package/public/sw.js CHANGED
@@ -12,7 +12,8 @@ self.addEventListener('push', (event) => {
12
12
  icon: '/icons/app-icon-384.png',
13
13
  badge: '/icons/favicon-96.png',
14
14
  data: {
15
- url: safeUrl(payload && payload.data && payload.data.url)
15
+ url: safeUrl(payload && payload.data && payload.data.url),
16
+ focus: safeFocus(payload && payload.data && payload.data.focus)
16
17
  },
17
18
  silent: true
18
19
  };
@@ -22,12 +23,20 @@ self.addEventListener('push', (event) => {
22
23
  self.addEventListener('notificationclick', (event) => {
23
24
  event.notification.close();
24
25
  const targetUrl = safeUrl(event.notification.data && event.notification.data.url);
26
+ const focus = safeFocus(event.notification.data && event.notification.data.focus);
25
27
  event.waitUntil(
26
- self.clients.matchAll({ type: 'window', includeUncontrolled: true }).then((clients) => {
28
+ self.clients.matchAll({ type: 'window', includeUncontrolled: true }).then(async (clients) => {
27
29
  for (const client of clients) {
28
30
  const url = new URL(client.url);
29
31
  if (url.origin === self.location.origin) {
30
- return client.focus();
32
+ const targetClient = focus && typeof client.navigate === 'function'
33
+ ? (await client.navigate(new URL(targetUrl, self.location.origin).href).catch(() => null)) || client
34
+ : client;
35
+ const focusedClient = await targetClient.focus();
36
+ if (focus) {
37
+ focusedClient.postMessage({ type: 'nterminal.notificationFocus', focus });
38
+ }
39
+ return focusedClient;
31
40
  }
32
41
  }
33
42
  return self.clients.openWindow(targetUrl);
@@ -49,3 +58,27 @@ function safeUrl(value) {
49
58
  return '/';
50
59
  }
51
60
  }
61
+
62
+ function safeFocus(value) {
63
+ if (!value || typeof value !== 'object') {
64
+ return null;
65
+ }
66
+ const kind = value.kind;
67
+ const terminalId = value.terminalId;
68
+ const agentId = value.agentId;
69
+ if (kind !== 'terminal' || !safeIdentifier(terminalId)) {
70
+ return null;
71
+ }
72
+ if (agentId !== undefined && agentId !== null && agentId !== '' && !safeIdentifier(agentId)) {
73
+ return null;
74
+ }
75
+ return {
76
+ kind: 'terminal',
77
+ agentId: agentId || null,
78
+ terminalId
79
+ };
80
+ }
81
+
82
+ function safeIdentifier(value) {
83
+ return typeof value === 'string' && /^[A-Za-z0-9_.:-]{1,128}$/.test(value);
84
+ }
@@ -1 +0,0 @@
1
- import{j as a}from"./index-E-kkOjos.js";import{M as e,r as o}from"./index-Dd5r0ChL.js";function s({content:r}){return a.jsx(e,{remarkPlugins:[o],children:r})}export{s as default};