@deepseek-insight/dsi 0.5.30 → 0.5.32

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 (80) hide show
  1. package/build/client/_app/immutable/assets/0.BU1D48E8.css +2 -0
  2. package/build/client/_app/immutable/chunks/DBe02xXt.js +1 -0
  3. package/build/client/_app/immutable/chunks/{smd3Jq9O.js → DU8_fdC7.js} +2 -2
  4. package/build/client/_app/immutable/chunks/kgRREf9p.js +1 -0
  5. package/build/client/_app/immutable/chunks/{DX_pn7Eg.js → n6wHvlqG.js} +1 -1
  6. package/build/client/_app/immutable/entry/{app.CIeDJy8c.js → app.DbINeXv9.js} +2 -2
  7. package/build/client/_app/immutable/entry/start.CfKDOfK5.js +1 -0
  8. package/build/client/_app/immutable/nodes/{1.VxhMSm3s.js → 1.CgN4qkEI.js} +1 -1
  9. package/build/client/_app/immutable/nodes/2.D-rt0knM.js +174 -0
  10. package/build/client/_app/version.json +1 -1
  11. package/build/handler.js +4 -4
  12. package/build/index.js +4 -4
  13. package/build/server/chunks/chunks/{db.js-BTsRdpsi.js → db.js-BylhmazO.js} +2 -2
  14. package/build/server/chunks/chunks/{db2.js-ou6Vlz7O.js → db2.js-BDE3IYQf.js} +2 -2
  15. package/build/server/chunks/chunks/{dsh-connection.js-DawPog_I.js → dsh-connection.js-BSzUs8-n.js} +2 -2
  16. package/build/server/chunks/chunks/{git-probe.js-D5q52JMr.js → git-probe.js-DoWgYcXG.js} +2 -2
  17. package/build/server/chunks/chunks/{insight-config.js-DiF58x83.js → insight-config.js-XUD5BN0g.js} +6 -3
  18. package/build/server/chunks/chunks/{internal.js-Cr424dfu.js → internal.js-DFJpTf_o.js} +2 -2
  19. package/build/server/chunks/chunks/{state.js-BPfg8KK0.js → state.js-CpGQrOQj.js} +2 -2
  20. package/build/server/chunks/chunks/{watcher.js-BJlOJaBs.js → watcher.js-ZBFDj7d0.js} +4 -4
  21. package/build/server/chunks/entries/endpoints/api/a2a/_id_/{_server.ts.js-CDJ0OmUG.js → _server.ts.js-DQenu1Rx.js} +3 -3
  22. package/build/server/chunks/entries/endpoints/api/a2a/{_server.ts.js-BVFSRjvv.js → _server.ts.js-C12q5Acf.js} +5 -5
  23. package/build/server/chunks/entries/endpoints/api/a2a/register/{_server.ts.js-Bhou8F5X.js → _server.ts.js-CdMcLL0n.js} +5 -5
  24. package/build/server/chunks/entries/endpoints/api/config/{_server.ts.js-BJIzdaiA.js → _server.ts.js-CeSzWmzO.js} +3 -3
  25. package/build/server/chunks/entries/endpoints/api/dsh/directory/{_server.ts.js-C6n_idy7.js → _server.ts.js-BJMlDa_R.js} +3 -3
  26. package/build/server/chunks/entries/endpoints/api/dsh/pick-directory/{_server.ts.js-DADH8M-H.js → _server.ts.js-C5xgupWg.js} +3 -3
  27. package/build/server/chunks/entries/endpoints/api/dsh/presets/{_server.ts.js-bC_NLj4U.js → _server.ts.js-DG0cxf9Y.js} +3 -3
  28. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/attachment/{_server.ts.js-CoScceI5.js → _server.ts.js-CjIzvUMY.js} +3 -3
  29. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/cancel/{_server.ts.js-C1FgtncS.js → _server.ts.js-DqvT86T0.js} +3 -3
  30. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/catalog/{_server.ts.js-PIxDn234.js → _server.ts.js-BzBZnI3P.js} +3 -3
  31. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/command/{_server.ts.js-B_CRf61I.js → _server.ts.js-DHWvuiKn.js} +3 -3
  32. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/events/{_server.ts.js-DGGUjpY9.js → _server.ts.js-ARtFWpnE.js} +3 -3
  33. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/fork/{_server.ts.js-xEVeT3pb.js → _server.ts.js-rH3qhAct.js} +3 -3
  34. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/goal/{_server.ts.js-Df8t4hkX.js → _server.ts.js-D_fm0cJY.js} +3 -3
  35. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/history/{_server.ts.js-CH1L9p8z.js → _server.ts.js-BqpeQTZq.js} +3 -3
  36. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/models/{_server.ts.js-BvG76FMN.js → _server.ts.js-CHKAkZEq.js} +3 -3
  37. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/path/{_server.ts.js-t8Oiyikl.js → _server.ts.js-DxiKkvE-.js} +2 -2
  38. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/permission/{_server.ts.js-C7fokwxa.js → _server.ts.js-DmjKvFqc.js} +3 -3
  39. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/prompt/{_server.ts.js-Cfm2eSa-.js → _server.ts.js-N1651orW.js} +3 -3
  40. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/rename/{_server.ts.js-DJ3WSBOS.js → _server.ts.js-w1dYBirS.js} +3 -3
  41. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/respond/{_server.ts.js-B8lDX-zk.js → _server.ts.js-Bwb62OTc.js} +3 -3
  42. package/build/server/chunks/entries/endpoints/api/dsh/session/_sessionId_/select-model/{_server.ts.js-DCKvoONe.js → _server.ts.js-D2BCSITG.js} +3 -3
  43. package/build/server/chunks/entries/endpoints/api/dsh/sessions/{_server.ts.js-Bl4xBKoB.js → _server.ts.js-t_DpnCyJ.js} +3 -3
  44. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file/{_server.ts.js--FCZv4Np.js → _server.ts.js-BddU8qpx.js} +3 -3
  45. package/build/server/chunks/entries/endpoints/api/dsh/workspace-file-bytes/{_server.ts.js-DEUnD1Mn.js → _server.ts.js-Di_7wqCI.js} +3 -3
  46. package/build/server/chunks/entries/endpoints/api/dsh/workspace-tree/{_server.ts.js-BiHVvbW-.js → _server.ts.js-DPz9GQJJ.js} +3 -3
  47. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/{_server.ts.js-CcDE1rk8.js → _server.ts.js-C1jO88hY.js} +3 -3
  48. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/delete/{_server.ts.js-C8vdE5Jr.js → _server.ts.js-C1akVoP3.js} +3 -3
  49. package/build/server/chunks/entries/endpoints/api/dsh/workspaces/_workspaceId_/rename/{_server.ts.js-C9cgB8t0.js → _server.ts.js-C4RkBuGZ.js} +3 -3
  50. package/build/server/chunks/entries/endpoints/api/prompts/_id_/{_server.ts.js-oR6Qu-Wa.js → _server.ts.js-jiY6dVD-.js} +3 -3
  51. package/build/server/chunks/entries/endpoints/api/prompts/{_server.ts.js-j8TNOmk3.js → _server.ts.js-C0r4Wyxc.js} +3 -3
  52. package/build/server/chunks/entries/endpoints/api/prompts/use/{_server.ts.js-B6UZ2HZ5.js → _server.ts.js-wKxhb4I-.js} +3 -3
  53. package/build/server/chunks/entries/endpoints/api/settings/{_server.ts.js-BWE38_9X.js → _server.ts.js-DmU2MBc5.js} +2 -2
  54. package/build/server/chunks/entries/endpoints/api/terminal/_id_/reattach/_server.ts.js-wSsMKLiw.js +34 -0
  55. package/build/server/chunks/entries/endpoints/api/terminal/_id_/stream/{_server.ts.js-_-HKTzoH.js → _server.ts.js-C8PLMU0Y.js} +64 -43
  56. package/build/server/chunks/entries/endpoints/api/terminal/{_server.ts.js-CmM-ksLQ.js → _server.ts.js-DHhod6dT.js} +4 -2
  57. package/build/server/chunks/entries/endpoints/api/workspace/file-write/{_server.ts.js-1pMekv7y.js → _server.ts.js-D1gyOGEM.js} +4 -4
  58. package/build/server/chunks/entries/endpoints/api/workspace/git-events/{_server.ts.js-Cwebkv8Y.js → _server.ts.js-D5XlAzdL.js} +4 -4
  59. package/build/server/chunks/entries/endpoints/api/workspace/git-file-head/{_server.ts.js-4JF7UGE-.js → _server.ts.js-BKJbQR9z.js} +4 -4
  60. package/build/server/chunks/entries/endpoints/api/workspace/git-map/{_server.ts.js-B5i8ziTR.js → _server.ts.js-CehoxXA_.js} +4 -4
  61. package/build/server/chunks/entries/endpoints/api/workspace/git-status/{_server.ts.js-zYBj_jzG.js → _server.ts.js-DMhaSADa.js} +4 -4
  62. package/build/server/chunks/entries/endpoints/api/workspace/write-gate/{_server.ts.js-BbgR18Zo.js → _server.ts.js-BQRvPo9G.js} +4 -4
  63. package/build/server/chunks/entries/pages/{_error.svelte.js-izlnhqFW.js → _error.svelte.js-D1ggHK75.js} +3 -3
  64. package/build/server/chunks/entries/pages/{_page.server.ts.js-CNmIVlOY.js → _page.server.ts.js-C3_-EdaG.js} +2 -2
  65. package/build/server/chunks/entries/pages/{_page.svelte.js-DOcEfh5K.js → _page.svelte.js-C-gx9imA.js} +325 -58
  66. package/build/server/chunks/{handler-t4JeFn6X.js → handler-C-ZkJfQi.js} +3 -3
  67. package/build/server/chunks/{index.js-DgUdoRMr.js → index.js-BHhoIUPw.js} +2 -2
  68. package/build/server/chunks/{manifest.js-CuVIAGaj.js → manifest.js-DkA6N6z6.js} +53 -46
  69. package/build/server/chunks/nodes/{0.js-DphETTOT.js → 0.js-CWZQcgo6.js} +3 -3
  70. package/build/server/chunks/nodes/1.js-7HAwHjCf.js +9 -0
  71. package/build/server/chunks/nodes/{2.js-CmddEN1j.js → 2.js-CTiax7zN.js} +6 -6
  72. package/package.json +1 -1
  73. package/template/.dsi/resources/skills-reff.md +1 -1
  74. package/build/client/_app/immutable/assets/0.Ckapanfk.css +0 -2
  75. package/build/client/_app/immutable/chunks/BK9eh7ly.js +0 -1
  76. package/build/client/_app/immutable/chunks/DFcmLsZu.js +0 -1
  77. package/build/client/_app/immutable/entry/start.BdDgymYC.js +0 -1
  78. package/build/client/_app/immutable/nodes/2.xvwoCX2a.js +0 -174
  79. package/build/server/chunks/nodes/1.js-3gG-llw5.js +0 -9
  80. /package/build/client/_app/immutable/nodes/{0.tkrxyU6K.js → 0.ze9O6tWo.js} +0 -0
@@ -1,7 +1,7 @@
1
- import { g as getDshConnection, D as DshRpcError, m as mapRpcFailure, s as statusFor } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
1
+ import { g as getDshConnection, D as DshRpcError, m as mapRpcFailure, s as statusFor } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
2
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
3
3
  import '../../../../../chunks/config.js-B0w1-uCA.js';
4
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
4
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
5
5
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
6
6
  import 'node:fs';
7
7
  import 'node:path';
@@ -112,4 +112,4 @@ var GET = async ({ url }) => {
112
112
  };
113
113
 
114
114
  export { GET };
115
- //# sourceMappingURL=_server.ts.js-DEUnD1Mn.js.map
115
+ //# sourceMappingURL=_server.ts.js-Di_7wqCI.js.map
@@ -1,7 +1,7 @@
1
- import { g as getDshConnection, D as DshRpcError, m as mapRpcFailure, s as statusFor } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
1
+ import { g as getDshConnection, D as DshRpcError, m as mapRpcFailure, s as statusFor } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
2
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
3
3
  import '../../../../../chunks/config.js-B0w1-uCA.js';
4
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
4
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
5
5
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
6
6
  import 'node:fs';
7
7
  import 'node:path';
@@ -58,4 +58,4 @@ var GET = async ({ url }) => {
58
58
  };
59
59
 
60
60
  export { GET };
61
- //# sourceMappingURL=_server.ts.js-BiHVvbW-.js.map
61
+ //# sourceMappingURL=_server.ts.js-DPz9GQJJ.js.map
@@ -1,7 +1,7 @@
1
- import { g as getDshConnection, s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
1
+ import { g as getDshConnection, s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
2
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
3
3
  import '../../../../../chunks/config.js-B0w1-uCA.js';
4
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
4
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
5
5
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
6
6
  import 'node:fs';
7
7
  import 'node:path';
@@ -54,4 +54,4 @@ var POST = async ({ request }) => {
54
54
  };
55
55
 
56
56
  export { POST };
57
- //# sourceMappingURL=_server.ts.js-CcDE1rk8.js.map
57
+ //# sourceMappingURL=_server.ts.js-C1jO88hY.js.map
@@ -1,7 +1,7 @@
1
- import { g as getDshConnection, s as statusFor, m as mapRpcFailure } from '../../../../../../../chunks/dsh-connection.js-DawPog_I.js';
1
+ import { g as getDshConnection, s as statusFor, m as mapRpcFailure } from '../../../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
2
  import { j as json } from '../../../../../../../chunks/utils.js-CAdNO8Tu.js';
3
3
  import '../../../../../../../chunks/config.js-B0w1-uCA.js';
4
- import '../../../../../../../chunks/insight-config.js-DiF58x83.js';
4
+ import '../../../../../../../chunks/insight-config.js-XUD5BN0g.js';
5
5
  import '../../../../../../../chunks/settings-document.js-BRTO59Al.js';
6
6
  import 'node:fs';
7
7
  import 'node:path';
@@ -44,4 +44,4 @@ var POST = async ({ params }) => {
44
44
  };
45
45
 
46
46
  export { POST };
47
- //# sourceMappingURL=_server.ts.js-C8vdE5Jr.js.map
47
+ //# sourceMappingURL=_server.ts.js-C1akVoP3.js.map
@@ -1,7 +1,7 @@
1
- import { g as getDshConnection, s as statusFor, m as mapRpcFailure } from '../../../../../../../chunks/dsh-connection.js-DawPog_I.js';
1
+ import { g as getDshConnection, s as statusFor, m as mapRpcFailure } from '../../../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
2
  import { j as json } from '../../../../../../../chunks/utils.js-CAdNO8Tu.js';
3
3
  import '../../../../../../../chunks/config.js-B0w1-uCA.js';
4
- import '../../../../../../../chunks/insight-config.js-DiF58x83.js';
4
+ import '../../../../../../../chunks/insight-config.js-XUD5BN0g.js';
5
5
  import '../../../../../../../chunks/settings-document.js-BRTO59Al.js';
6
6
  import 'node:fs';
7
7
  import 'node:path';
@@ -62,4 +62,4 @@ var POST = async ({ params, request }) => {
62
62
  };
63
63
 
64
64
  export { POST };
65
- //# sourceMappingURL=_server.ts.js-C9cgB8t0.js.map
65
+ //# sourceMappingURL=_server.ts.js-C4RkBuGZ.js.map
@@ -1,6 +1,6 @@
1
- import { d as deletePrompt, u as updatePrompt, b as renamePromptLabel } from '../../../../../chunks/db2.js-ou6Vlz7O.js';
1
+ import { d as deletePrompt, u as updatePrompt, b as renamePromptLabel } from '../../../../../chunks/db2.js-BDE3IYQf.js';
2
2
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
3
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
3
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
4
4
  import '../../../../../chunks/config.js-B0w1-uCA.js';
5
5
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
6
6
  import 'node:fs';
@@ -65,4 +65,4 @@ var DELETE = async ({ params }) => {
65
65
  };
66
66
 
67
67
  export { DELETE, PATCH };
68
- //# sourceMappingURL=_server.ts.js-oR6Qu-Wa.js.map
68
+ //# sourceMappingURL=_server.ts.js-jiY6dVD-.js.map
@@ -1,5 +1,5 @@
1
- import { p as parseTagWords, m as isValidTagWord } from '../../../../chunks/insight-config.js-DiF58x83.js';
2
- import { l as listPrompts, s as searchPrompts, c as createPrompt } from '../../../../chunks/db2.js-ou6Vlz7O.js';
1
+ import { p as parseTagWords, m as isValidTagWord } from '../../../../chunks/insight-config.js-XUD5BN0g.js';
2
+ import { l as listPrompts, s as searchPrompts, c as createPrompt } from '../../../../chunks/db2.js-BDE3IYQf.js';
3
3
  import { j as json } from '../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import '../../../../chunks/config.js-B0w1-uCA.js';
5
5
  import '../../../../chunks/settings-document.js-BRTO59Al.js';
@@ -101,4 +101,4 @@ var POST = async ({ request }) => {
101
101
  };
102
102
 
103
103
  export { GET, POST };
104
- //# sourceMappingURL=_server.ts.js-j8TNOmk3.js.map
104
+ //# sourceMappingURL=_server.ts.js-C0r4Wyxc.js.map
@@ -1,6 +1,6 @@
1
- import { a as countPromptUse } from '../../../../../chunks/db2.js-ou6Vlz7O.js';
1
+ import { a as countPromptUse } from '../../../../../chunks/db2.js-BDE3IYQf.js';
2
2
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
3
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
3
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
4
4
  import '../../../../../chunks/config.js-B0w1-uCA.js';
5
5
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
6
6
  import 'node:fs';
@@ -43,4 +43,4 @@ var POST = async ({ request }) => {
43
43
  };
44
44
 
45
45
  export { POST };
46
- //# sourceMappingURL=_server.ts.js-B6UZ2HZ5.js.map
46
+ //# sourceMappingURL=_server.ts.js-wKxhb4I-.js.map
@@ -1,5 +1,5 @@
1
1
  import { r as readSettingsDocument, s as saveSettingsDocument, S as SettingsParseError } from '../../../../chunks/settings-document.js-BRTO59Al.js';
2
- import { n as DEFAULT_DSH_PRESET_ENGLISH, o as DEFAULT_SERVER_CONFIG, q as DEFAULT_PROMPTS_CONFIG, s as DEFAULT_SIDEBAR_CONFIG, t as DEFAULT_PANEL_CONFIG, u as DEFAULT_A2A_CONFIG, v as DEFAULT_HOME_CONFIG, w as DEFAULT_CONVERSATION_CONFIG, x as DEFAULT_CHAT_CONFIG } from '../../../../chunks/insight-config.js-DiF58x83.js';
2
+ import { n as DEFAULT_DSH_PRESET_ENGLISH, o as DEFAULT_SERVER_CONFIG, q as DEFAULT_PROMPTS_CONFIG, s as DEFAULT_SIDEBAR_CONFIG, t as DEFAULT_PANEL_CONFIG, u as DEFAULT_A2A_CONFIG, v as DEFAULT_HOME_CONFIG, w as DEFAULT_CONVERSATION_CONFIG, x as DEFAULT_CHAT_CONFIG } from '../../../../chunks/insight-config.js-XUD5BN0g.js';
3
3
  import { j as json } from '../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import { stringify } from 'yaml';
5
5
  import '../../../../chunks/config.js-B0w1-uCA.js';
@@ -100,4 +100,4 @@ var PUT = async ({ url, request }) => {
100
100
  };
101
101
 
102
102
  export { GET, PUT };
103
- //# sourceMappingURL=_server.ts.js-BWE38_9X.js.map
103
+ //# sourceMappingURL=_server.ts.js-DmU2MBc5.js.map
@@ -0,0 +1,34 @@
1
+ import { t as terminalRegistry, T as TerminalRegistryRefusal } from '../../../../../../chunks/registry.js-G1hzOje_.js';
2
+ import { j as json } from '../../../../../../chunks/utils.js-CAdNO8Tu.js';
3
+ import 'node:path';
4
+ import 'node:os';
5
+ import 'node:fs/promises';
6
+ import 'node:child_process';
7
+ import 'node:crypto';
8
+ import 'node:events';
9
+ import 'node-pty';
10
+ import '../../../../../../chunks/shared.js-HQ0rfhm4.js';
11
+ import '../../../../../../chunks/uneval.js-BJ9Qq2SF.js';
12
+
13
+ //#region src/routes/api/terminal/[id]/reattach/+server.ts
14
+ /**
15
+ * /api/terminal/[id]/reattach — token re-mint for a page reload (The
16
+ * Surviving Shell, ADR 2026-09-24 D2): a thin POST over the registry's
17
+ * reattach — the asking tab gets a fresh token and the session's whole-
18
+ * stream byte tail; the old token dies (many watchers, one writer).
19
+ */
20
+ var POST = (ctx) => {
21
+ try {
22
+ const { token, fromByte } = terminalRegistry.reattach(ctx.params.id);
23
+ return json({
24
+ token,
25
+ fromByte
26
+ });
27
+ } catch (err) {
28
+ if (err instanceof TerminalRegistryRefusal) return json({ error: err.code }, { status: err.code === "NO_SESSION" ? 404 : 403 });
29
+ throw err;
30
+ }
31
+ };
32
+
33
+ export { POST };
34
+ //# sourceMappingURL=_server.ts.js-wSsMKLiw.js.map
@@ -19,6 +19,12 @@ import '../../../../../../chunks/uneval.js-BJ9Qq2SF.js';
19
19
  * the stream ends after closed. fromByte resumes a late attacher from the
20
20
  * ring tail; a slid-out offset reports lossy and names the spill.
21
21
  * X-Accel-Buffering: no keeps reverse proxies from buffering the stream.
22
+ *
23
+ * Cancel arm (crash RCA 2026-09-24): a CLIENT going away (reload / tab
24
+ * close) cancels the ReadableStream while the PTY lives on — without
25
+ * dropping the session listener there, the next output chunk enqueues
26
+ * into a dead controller and the ERR_INVALID_STATE throw kills the
27
+ * server process.
22
28
  */
23
29
  var SSE_HEADERS = {
24
30
  "content-type": "text/event-stream",
@@ -42,54 +48,69 @@ var GET = (ctx) => {
42
48
  const session = terminalRegistry.events(id);
43
49
  if (!session) return json({ error: "NO_SESSION" }, { status: 404 });
44
50
  const encoder = new TextEncoder();
45
- const stream = new ReadableStream({ start(controller) {
46
- let closed = false;
47
- const enqueue = (chunk) => {
48
- if (!closed) controller.enqueue(encoder.encode(chunk));
49
- };
50
- const read = session.readFrom(fromByte);
51
- enqueue(sseFrame("output", {
52
- text: read.text,
53
- nextOffset: read.nextOffset,
54
- lossy: read.lossy,
55
- spillPath: read.spillPath
56
- }));
57
- const onEvent = (event) => {
58
- if (event.type === "output") {
59
- enqueue(sseFrame("output", {
60
- text: event.bytes,
61
- nextOffset: event.nextOffset,
62
- lossy: false
63
- }));
64
- return;
65
- }
66
- if (event.type === "settled") {
67
- enqueue(sseFrame("settled", { reason: event.reason }));
68
- return;
69
- }
70
- if (event.type === "exit") {
71
- enqueue(sseFrame("exit", { outcome: event.outcome }));
72
- return;
73
- }
74
- if (event.type === "closed") {
75
- enqueue(sseFrame("closed", {
76
- quiescent: event.quiescent,
77
- lingeringPids: event.lingeringPids
78
- }));
79
- closed = true;
51
+ const state = { closed: false };
52
+ let onEvent = () => void 0;
53
+ const stream = new ReadableStream({
54
+ start(controller) {
55
+ const enqueue = (chunk) => {
56
+ if (state.closed) return;
57
+ try {
58
+ controller.enqueue(encoder.encode(chunk));
59
+ } catch {
60
+ state.closed = true;
61
+ }
62
+ };
63
+ const read = session.readFrom(fromByte);
64
+ enqueue(sseFrame("output", {
65
+ text: read.text,
66
+ nextOffset: read.nextOffset,
67
+ lossy: read.lossy,
68
+ spillPath: read.spillPath
69
+ }));
70
+ onEvent = (event) => {
71
+ if (event.type === "output") {
72
+ enqueue(sseFrame("output", {
73
+ text: event.bytes,
74
+ nextOffset: event.nextOffset,
75
+ lossy: false
76
+ }));
77
+ return;
78
+ }
79
+ if (event.type === "settled") {
80
+ enqueue(sseFrame("settled", { reason: event.reason }));
81
+ return;
82
+ }
83
+ if (event.type === "exit") {
84
+ enqueue(sseFrame("exit", { outcome: event.outcome }));
85
+ return;
86
+ }
87
+ if (event.type === "closed") {
88
+ enqueue(sseFrame("closed", {
89
+ quiescent: event.quiescent,
90
+ lingeringPids: event.lingeringPids
91
+ }));
92
+ state.closed = true;
93
+ session.off("event", onEvent);
94
+ try {
95
+ controller.close();
96
+ } catch {}
97
+ }
98
+ };
99
+ session.on("event", onEvent);
100
+ if (session.isExited() && terminalRegistry.exitOutcome(id) !== null && !terminalRegistry.list().some((s) => s.id === id)) {
101
+ enqueue(sseFrame("error", { error: "NO_SESSION" }));
102
+ state.closed = true;
80
103
  session.off("event", onEvent);
81
104
  controller.close();
82
105
  }
83
- };
84
- session.on("event", onEvent);
85
- if (session.isExited() && terminalRegistry.exitOutcome(id) !== null && !terminalRegistry.list().some((s) => s.id === id)) {
86
- enqueue(sseFrame("error", { error: "NO_SESSION" }));
87
- closed = true;
88
- controller.close();
106
+ },
107
+ cancel() {
108
+ state.closed = true;
109
+ session.off("event", onEvent);
89
110
  }
90
- } });
111
+ });
91
112
  return new Response(stream, { headers: SSE_HEADERS });
92
113
  };
93
114
 
94
115
  export { GET };
95
- //# sourceMappingURL=_server.ts.js-_-HKTzoH.js.map
116
+ //# sourceMappingURL=_server.ts.js-C8PLMU0Y.js.map
@@ -1,4 +1,4 @@
1
- import { y as readTerminalConfig } from '../../../../chunks/insight-config.js-DiF58x83.js';
1
+ import { y as readTerminalConfig } from '../../../../chunks/insight-config.js-XUD5BN0g.js';
2
2
  import { t as terminalRegistry } from '../../../../chunks/registry.js-G1hzOje_.js';
3
3
  import { j as json } from '../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import { homedir } from 'node:os';
@@ -30,6 +30,7 @@ var GET = () => {
30
30
  const cfg = readTerminalConfig();
31
31
  return json({
32
32
  enabled: cfg.enabled,
33
+ maxSessions: cfg.maxSessions,
33
34
  sessions: terminalRegistry.list()
34
35
  });
35
36
  };
@@ -54,6 +55,7 @@ function resolveSpec(body, cfg) {
54
55
  var POST = async ({ request }) => {
55
56
  const cfg = readTerminalConfig();
56
57
  if (!cfg.enabled) return json({ error: "NOT_ENABLED" }, { status: 403 });
58
+ if (terminalRegistry.list().filter((s) => !s.exited).length >= cfg.maxSessions) return json({ error: "MAX_SESSIONS" }, { status: 429 });
57
59
  let body = {};
58
60
  try {
59
61
  body = await request.json();
@@ -70,4 +72,4 @@ var POST = async ({ request }) => {
70
72
  };
71
73
 
72
74
  export { GET, POST };
73
- //# sourceMappingURL=_server.ts.js-CmM-ksLQ.js.map
75
+ //# sourceMappingURL=_server.ts.js-DHhod6dT.js.map
@@ -1,10 +1,10 @@
1
- import { s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
2
- import { g as gitGateEnabled, i as isInsideRoot } from '../../../../../chunks/git-probe.js-D5q52JMr.js';
1
+ import { s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
+ import { g as gitGateEnabled, i as isInsideRoot } from '../../../../../chunks/git-probe.js-DoWgYcXG.js';
3
3
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import { promises } from 'node:fs';
5
5
  import * as nodePath from 'node:path';
6
6
  import '../../../../../chunks/config.js-B0w1-uCA.js';
7
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
7
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
8
8
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
9
9
  import 'node:os';
10
10
  import 'yaml';
@@ -107,4 +107,4 @@ var POST = async ({ request }) => {
107
107
  };
108
108
 
109
109
  export { POST };
110
- //# sourceMappingURL=_server.ts.js-1pMekv7y.js.map
110
+ //# sourceMappingURL=_server.ts.js-D1gyOGEM.js.map
@@ -1,11 +1,11 @@
1
- import { s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
2
- import { g as gitGateEnabled, i as isInsideRoot, a as gitStatus, p as parsePorcelainStatus } from '../../../../../chunks/git-probe.js-D5q52JMr.js';
1
+ import { s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
+ import { g as gitGateEnabled, i as isInsideRoot, a as gitStatus, p as parsePorcelainStatus } from '../../../../../chunks/git-probe.js-DoWgYcXG.js';
3
3
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import { watch } from 'node:fs';
5
5
  import { join } from 'node:path';
6
6
  import { execFileSync } from 'node:child_process';
7
7
  import '../../../../../chunks/config.js-B0w1-uCA.js';
8
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
8
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
9
9
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
10
10
  import 'node:os';
11
11
  import 'yaml';
@@ -293,4 +293,4 @@ var GET = async ({ url, request }) => {
293
293
  };
294
294
 
295
295
  export { GET };
296
- //# sourceMappingURL=_server.ts.js-Cwebkv8Y.js.map
296
+ //# sourceMappingURL=_server.ts.js-D5XlAzdL.js.map
@@ -1,8 +1,8 @@
1
- import { s as statusFor } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
2
- import { r as resolveEnclosingRepo, i as isInsideRoot, b as gitFileHead, G as GitUnavailableError } from '../../../../../chunks/git-probe.js-D5q52JMr.js';
1
+ import { s as statusFor } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
+ import { r as resolveEnclosingRepo, i as isInsideRoot, b as gitFileHead, G as GitUnavailableError } from '../../../../../chunks/git-probe.js-DoWgYcXG.js';
3
3
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import '../../../../../chunks/config.js-B0w1-uCA.js';
5
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
5
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
6
6
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
7
7
  import 'node:fs';
8
8
  import 'node:path';
@@ -76,4 +76,4 @@ var GET = async ({ url }) => {
76
76
  };
77
77
 
78
78
  export { GET };
79
- //# sourceMappingURL=_server.ts.js-4JF7UGE-.js.map
79
+ //# sourceMappingURL=_server.ts.js-BKJbQR9z.js.map
@@ -1,8 +1,8 @@
1
- import { s as statusFor } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
2
- import { d as detectRepos } from '../../../../../chunks/git-probe.js-D5q52JMr.js';
1
+ import { s as statusFor } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
+ import { d as detectRepos } from '../../../../../chunks/git-probe.js-DoWgYcXG.js';
3
3
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import '../../../../../chunks/config.js-B0w1-uCA.js';
5
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
5
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
6
6
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
7
7
  import 'node:fs';
8
8
  import 'node:path';
@@ -64,4 +64,4 @@ var GET = async ({ url }) => {
64
64
  };
65
65
 
66
66
  export { GET };
67
- //# sourceMappingURL=_server.ts.js-B5i8ziTR.js.map
67
+ //# sourceMappingURL=_server.ts.js-CehoxXA_.js.map
@@ -1,8 +1,8 @@
1
- import { s as statusFor } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
2
- import { i as isInsideRoot, a as gitStatus, G as GitUnavailableError } from '../../../../../chunks/git-probe.js-D5q52JMr.js';
1
+ import { s as statusFor } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
+ import { i as isInsideRoot, a as gitStatus, G as GitUnavailableError } from '../../../../../chunks/git-probe.js-DoWgYcXG.js';
3
3
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import '../../../../../chunks/config.js-B0w1-uCA.js';
5
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
5
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
6
6
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
7
7
  import 'node:fs';
8
8
  import 'node:path';
@@ -69,4 +69,4 @@ var GET = async ({ url }) => {
69
69
  };
70
70
 
71
71
  export { GET };
72
- //# sourceMappingURL=_server.ts.js-zYBj_jzG.js.map
72
+ //# sourceMappingURL=_server.ts.js-DMhaSADa.js.map
@@ -1,8 +1,8 @@
1
- import { s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-DawPog_I.js';
2
- import { g as gitGateEnabled } from '../../../../../chunks/git-probe.js-D5q52JMr.js';
1
+ import { s as statusFor, m as mapRpcFailure } from '../../../../../chunks/dsh-connection.js-BSzUs8-n.js';
2
+ import { g as gitGateEnabled } from '../../../../../chunks/git-probe.js-DoWgYcXG.js';
3
3
  import { j as json } from '../../../../../chunks/utils.js-CAdNO8Tu.js';
4
4
  import '../../../../../chunks/config.js-B0w1-uCA.js';
5
- import '../../../../../chunks/insight-config.js-DiF58x83.js';
5
+ import '../../../../../chunks/insight-config.js-XUD5BN0g.js';
6
6
  import '../../../../../chunks/settings-document.js-BRTO59Al.js';
7
7
  import 'node:fs';
8
8
  import 'node:path';
@@ -51,4 +51,4 @@ var GET = async ({ url }) => {
51
51
  };
52
52
 
53
53
  export { GET };
54
- //# sourceMappingURL=_server.ts.js-BbgR18Zo.js.map
54
+ //# sourceMappingURL=_server.ts.js-BQRvPo9G.js.map
@@ -1,7 +1,7 @@
1
1
  import { V as head, W as escape_html, y as derived } from '../../chunks/server.js-11-pxAWV.js';
2
- import { t, p as page, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, u as unexpectederror1, b as backtoworkspace2 } from '../../chunks/state.js-BPfg8KK0.js';
2
+ import { t, p as page, s as sessionnotfound2, r as reapednote1, d as dshunreachable1, u as unexpectederror1, b as backtoworkspace2 } from '../../chunks/state.js-CpGQrOQj.js';
3
3
  import '../../chunks/uneval.js-BJ9Qq2SF.js';
4
- import '../../chunks/internal.js-Cr424dfu.js';
4
+ import '../../chunks/internal.js-DFJpTf_o.js';
5
5
  import '../../chunks/shared.js-HQ0rfhm4.js';
6
6
  import '../../chunks/exports.js-DH_tjtdv.js';
7
7
  import '../../chunks/config.js-B0w1-uCA.js';
@@ -40,4 +40,4 @@ function _error($$renderer, $$props) {
40
40
  }
41
41
 
42
42
  export { _error as default };
43
- //# sourceMappingURL=_error.svelte.js-izlnhqFW.js.map
43
+ //# sourceMappingURL=_error.svelte.js-D1ggHK75.js.map
@@ -1,4 +1,4 @@
1
- import { g as getDshConnection, D as DshRpcError, i as isSubagentRejection } from '../../chunks/dsh-connection.js-DawPog_I.js';
1
+ import { g as getDshConnection, D as DshRpcError, i as isSubagentRejection } from '../../chunks/dsh-connection.js-BSzUs8-n.js';
2
2
  import { h as historyToEvents, e as eventsToEntries } from '../../chunks/dsh-events.js-DEZgATm-.js';
3
3
  import { p as permissionFromProjection, f as filterKnobEvents } from '../../chunks/permission-state.js-B7UpAHBv.js';
4
4
  import { i as imageLimitsFromProjection } from '../../chunks/image-limits.js-CUdJ0f7r.js';
@@ -83,4 +83,4 @@ var _page_server_ts = /*#__PURE__*/Object.freeze({
83
83
  });
84
84
 
85
85
  export { _page_server_ts as _ };
86
- //# sourceMappingURL=_page.server.ts.js-CNmIVlOY.js.map
86
+ //# sourceMappingURL=_page.server.ts.js-C3_-EdaG.js.map