@juspay/shooter 1.11.0 → 1.13.0

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 (162) hide show
  1. package/.claude/hooks/notifier.cjs +199 -81
  2. package/build/client/_app/immutable/chunks/BX6TUKUr.js +3 -0
  3. package/build/client/_app/immutable/chunks/BX6TUKUr.js.br +0 -0
  4. package/build/client/_app/immutable/chunks/BX6TUKUr.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{BlgsHm7b.js → C8fuqb5_.js} +1 -1
  6. package/build/client/_app/immutable/chunks/C8fuqb5_.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/C8fuqb5_.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{Ce85PELw.js → DXE_ttSN.js} +1 -1
  9. package/build/client/_app/immutable/chunks/DXE_ttSN.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/{Ce85PELw.js.gz → DXE_ttSN.js.gz} +0 -0
  11. package/build/client/_app/immutable/entry/{app.BRJS3bSR.js → app.nFNxeHLO.js} +2 -2
  12. package/build/client/_app/immutable/entry/app.nFNxeHLO.js.br +0 -0
  13. package/build/client/_app/immutable/entry/app.nFNxeHLO.js.gz +0 -0
  14. package/build/client/_app/immutable/entry/start.Ja5Vj3Hy.js +1 -0
  15. package/build/client/_app/immutable/entry/start.Ja5Vj3Hy.js.br +2 -0
  16. package/build/client/_app/immutable/entry/start.Ja5Vj3Hy.js.gz +0 -0
  17. package/build/client/_app/immutable/nodes/{0.BdenYwQ0.js → 0.DPygfoxx.js} +1 -1
  18. package/build/client/_app/immutable/nodes/0.DPygfoxx.js.br +0 -0
  19. package/build/client/_app/immutable/nodes/0.DPygfoxx.js.gz +0 -0
  20. package/build/client/_app/immutable/nodes/{1.Dg4RfBlr.js → 1.CMzJ-vKL.js} +1 -1
  21. package/build/client/_app/immutable/nodes/1.CMzJ-vKL.js.br +0 -0
  22. package/build/client/_app/immutable/nodes/1.CMzJ-vKL.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{2.DW-JPzyt.js → 2.Vq2hU4jC.js} +1 -1
  24. package/build/client/_app/immutable/nodes/2.Vq2hU4jC.js.br +0 -0
  25. package/build/client/_app/immutable/nodes/2.Vq2hU4jC.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{3.bF7rX0-f.js → 3.C9533L9p.js} +1 -1
  27. package/build/client/_app/immutable/nodes/3.C9533L9p.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/3.C9533L9p.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{6.DSMOdSb2.js → 6.BJ2KZBR0.js} +1 -1
  30. package/build/client/_app/immutable/nodes/6.BJ2KZBR0.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/6.BJ2KZBR0.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{7.cNNZm7gF.js → 7.BW3qRNSj.js} +1 -1
  33. package/build/client/_app/immutable/nodes/7.BW3qRNSj.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/7.BW3qRNSj.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{8.DtjRdVVT.js → 8.BBF3ti4G.js} +1 -1
  36. package/build/client/_app/immutable/nodes/8.BBF3ti4G.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/8.BBF3ti4G.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{9._gEbLeEN.js → 9.LI1n0A_s.js} +1 -1
  39. package/build/client/_app/immutable/nodes/9.LI1n0A_s.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/9.LI1n0A_s.js.gz +0 -0
  41. package/build/client/_app/version.json +1 -1
  42. package/build/client/_app/version.json.br +0 -0
  43. package/build/client/_app/version.json.gz +0 -0
  44. package/build/server/chunks/{0-Cdx5OqRN.js → 0-C5VG6nCZ.js} +3 -3
  45. package/build/server/chunks/{0-Cdx5OqRN.js.map → 0-C5VG6nCZ.js.map} +1 -1
  46. package/build/server/chunks/{1-BQErgU_W.js → 1-CxT3oFDd.js} +3 -3
  47. package/build/server/chunks/{1-BQErgU_W.js.map → 1-CxT3oFDd.js.map} +1 -1
  48. package/build/server/chunks/{2-BWmy5V7g.js → 2-D-hS2r7O.js} +3 -3
  49. package/build/server/chunks/{2-BWmy5V7g.js.map → 2-D-hS2r7O.js.map} +1 -1
  50. package/build/server/chunks/{3-ClpS_rbl.js → 3-qAPXfbJm.js} +3 -3
  51. package/build/server/chunks/{3-ClpS_rbl.js.map → 3-qAPXfbJm.js.map} +1 -1
  52. package/build/server/chunks/{4-CbejE1SC.js → 4-BtYdKCVW.js} +2 -2
  53. package/build/server/chunks/{4-CbejE1SC.js.map → 4-BtYdKCVW.js.map} +1 -1
  54. package/build/server/chunks/{5-BwqumuR1.js → 5-CvJK3PiH.js} +2 -2
  55. package/build/server/chunks/{5-BwqumuR1.js.map → 5-CvJK3PiH.js.map} +1 -1
  56. package/build/server/chunks/{6-CQHRlS4a.js → 6-Vj-4wida.js} +3 -3
  57. package/build/server/chunks/{6-CQHRlS4a.js.map → 6-Vj-4wida.js.map} +1 -1
  58. package/build/server/chunks/{7-VdriLQgS.js → 7-BYfx84Bj.js} +3 -3
  59. package/build/server/chunks/{7-VdriLQgS.js.map → 7-BYfx84Bj.js.map} +1 -1
  60. package/build/server/chunks/{8-SAsJLBKt.js → 8-CN6v3xbl.js} +3 -3
  61. package/build/server/chunks/{8-SAsJLBKt.js.map → 8-CN6v3xbl.js.map} +1 -1
  62. package/build/server/chunks/{9-BkY6ynKj.js → 9-BcAY9pkm.js} +3 -3
  63. package/build/server/chunks/{9-BkY6ynKj.js.map → 9-BcAY9pkm.js.map} +1 -1
  64. package/build/server/chunks/{Button-Dpueno77.js → Button-B5dU-ntz.js} +2 -2
  65. package/build/server/chunks/{Button-Dpueno77.js.map → Button-B5dU-ntz.js.map} +1 -1
  66. package/build/server/chunks/{Icon-aOLx5ELI.js → Icon-C7Ml3GX6.js} +3 -3
  67. package/build/server/chunks/{Icon-aOLx5ELI.js.map → Icon-C7Ml3GX6.js.map} +1 -1
  68. package/build/server/chunks/{Input-Cq7ZdLxS.js → Input-CPGO0sbS.js} +2 -2
  69. package/build/server/chunks/{Input-Cq7ZdLxS.js.map → Input-CPGO0sbS.js.map} +1 -1
  70. package/build/server/chunks/{Pill-Bn597jm0.js → Pill-CcrtCejm.js} +3 -3
  71. package/build/server/chunks/{Pill-Bn597jm0.js.map → Pill-CcrtCejm.js.map} +1 -1
  72. package/build/server/chunks/{Shimmer-5o7MVwXF.js → Shimmer-C5jkvGr1.js} +2 -2
  73. package/build/server/chunks/{Shimmer-5o7MVwXF.js.map → Shimmer-C5jkvGr1.js.map} +1 -1
  74. package/build/server/chunks/{_error.svelte-C85mEsv9.js → _error.svelte-CSIxs-ab.js} +8 -8
  75. package/build/server/chunks/{_error.svelte-C85mEsv9.js.map → _error.svelte-CSIxs-ab.js.map} +1 -1
  76. package/build/server/chunks/{_layout.svelte-rpYLLajc.js → _layout.svelte-noB4j-v2.js} +10 -10
  77. package/build/server/chunks/{_layout.svelte-rpYLLajc.js.map → _layout.svelte-noB4j-v2.js.map} +1 -1
  78. package/build/server/chunks/{_page.svelte-BfCXobKv.js → _page.svelte-B6qyh-K-.js} +11 -11
  79. package/build/server/chunks/{_page.svelte-BfCXobKv.js.map → _page.svelte-B6qyh-K-.js.map} +1 -1
  80. package/build/server/chunks/{_page.svelte-CA46TyHk.js → _page.svelte-BUkm2304.js} +5 -5
  81. package/build/server/chunks/{_page.svelte-CA46TyHk.js.map → _page.svelte-BUkm2304.js.map} +1 -1
  82. package/build/server/chunks/{_page.svelte-B6O0uTrK.js → _page.svelte-BV0XyYJZ.js} +4 -4
  83. package/build/server/chunks/{_page.svelte-B6O0uTrK.js.map → _page.svelte-BV0XyYJZ.js.map} +1 -1
  84. package/build/server/chunks/{_page.svelte-CCpVmMpU.js → _page.svelte-BfB8maoc.js} +9 -9
  85. package/build/server/chunks/{_page.svelte-CCpVmMpU.js.map → _page.svelte-BfB8maoc.js.map} +1 -1
  86. package/build/server/chunks/{_page.svelte-DjADcbfZ.js → _page.svelte-C60lAagP.js} +8 -8
  87. package/build/server/chunks/{_page.svelte-DjADcbfZ.js.map → _page.svelte-C60lAagP.js.map} +1 -1
  88. package/build/server/chunks/{_page.svelte-DUj1mSq0.js → _page.svelte-Dmg-RFCg.js} +7 -7
  89. package/build/server/chunks/{_page.svelte-DUj1mSq0.js.map → _page.svelte-Dmg-RFCg.js.map} +1 -1
  90. package/build/server/chunks/{_page.svelte-fkR4xqGu.js → _page.svelte-DnTpPnPR.js} +5 -5
  91. package/build/server/chunks/{_page.svelte-fkR4xqGu.js.map → _page.svelte-DnTpPnPR.js.map} +1 -1
  92. package/build/server/chunks/{_page.svelte-D0FBtMtH.js → _page.svelte-DuzZr5dA.js} +11 -11
  93. package/build/server/chunks/{_page.svelte-D0FBtMtH.js.map → _page.svelte-DuzZr5dA.js.map} +1 -1
  94. package/build/server/chunks/{_server.ts-HGYjOWF2.js → _server.ts-CFX-S_8q.js} +21 -3
  95. package/build/server/chunks/_server.ts-CFX-S_8q.js.map +1 -0
  96. package/build/server/chunks/_server.ts-CvJKTS3Z.js +35 -0
  97. package/build/server/chunks/_server.ts-CvJKTS3Z.js.map +1 -0
  98. package/build/server/chunks/{_server.ts-BBLuxvp6.js → _server.ts-tChyh9FX.js} +43 -8
  99. package/build/server/chunks/_server.ts-tChyh9FX.js.map +1 -0
  100. package/build/server/chunks/{cache-5_eamjtv.js → cache-Me3zUAaD.js} +2 -2
  101. package/build/server/chunks/{cache-5_eamjtv.js.map → cache-Me3zUAaD.js.map} +1 -1
  102. package/build/server/chunks/{client-w1WsLDGu.js → client-CfNnl32g.js} +4 -4
  103. package/build/server/chunks/{client-w1WsLDGu.js.map → client-CfNnl32g.js.map} +1 -1
  104. package/build/server/chunks/client2-DDP30_vY.js +7 -0
  105. package/build/server/chunks/{client2-B5wCRDQi.js.map → client2-DDP30_vY.js.map} +1 -1
  106. package/build/server/chunks/{index-DMikC9Qy.js → index-CJrGuxuM.js} +2 -2
  107. package/build/server/chunks/{index-DMikC9Qy.js.map → index-CJrGuxuM.js.map} +1 -1
  108. package/build/server/chunks/{index-server-DHNcb_Bd.js → index-server--49oHtA0.js} +2 -2
  109. package/build/server/chunks/{index-server-DHNcb_Bd.js.map → index-server--49oHtA0.js.map} +1 -1
  110. package/build/server/chunks/{index2-BTTf6mSG.js → index2-MY7PXeAc.js} +2 -2
  111. package/build/server/chunks/{index2-BTTf6mSG.js.map → index2-MY7PXeAc.js.map} +1 -1
  112. package/build/server/chunks/pending-requests-C9p57WoU.js +174 -0
  113. package/build/server/chunks/pending-requests-C9p57WoU.js.map +1 -0
  114. package/build/server/chunks/{root-DhBbA8QD.js → root-xvQIR1Bt.js} +2 -2
  115. package/build/server/chunks/{root-DhBbA8QD.js.map → root-xvQIR1Bt.js.map} +1 -1
  116. package/build/server/chunks/{state.svelte-M8y8rROy.js → state.svelte-RCtlkrNH.js} +3 -3
  117. package/build/server/chunks/{state.svelte-M8y8rROy.js.map → state.svelte-RCtlkrNH.js.map} +1 -1
  118. package/build/server/chunks/{stores-CwkRmCHA.js → stores-C-LqoonT.js} +4 -4
  119. package/build/server/chunks/{stores-CwkRmCHA.js.map → stores-C-LqoonT.js.map} +1 -1
  120. package/build/server/index.js +4 -4
  121. package/build/server/index.js.map +1 -1
  122. package/build/server/manifest.js +20 -13
  123. package/build/server/manifest.js.map +1 -1
  124. package/package.json +2 -2
  125. package/src/lib/modules/server/apn/pending-requests.ts +156 -33
  126. package/src/lib/types/decision.ts +114 -0
  127. package/src/lib/types/index.ts +1 -0
  128. package/src/routes/api/decide/[requestId]/+server.ts +46 -0
  129. package/src/routes/api/notify/+server.ts +43 -2
  130. package/src/routes/api/response/+server.ts +61 -11
  131. package/build/client/_app/immutable/chunks/BlgsHm7b.js.br +0 -0
  132. package/build/client/_app/immutable/chunks/BlgsHm7b.js.gz +0 -0
  133. package/build/client/_app/immutable/chunks/C9URPhwn.js +0 -3
  134. package/build/client/_app/immutable/chunks/C9URPhwn.js.br +0 -0
  135. package/build/client/_app/immutable/chunks/C9URPhwn.js.gz +0 -0
  136. package/build/client/_app/immutable/chunks/Ce85PELw.js.br +0 -0
  137. package/build/client/_app/immutable/entry/app.BRJS3bSR.js.br +0 -0
  138. package/build/client/_app/immutable/entry/app.BRJS3bSR.js.gz +0 -0
  139. package/build/client/_app/immutable/entry/start.D0irEiqS.js +0 -1
  140. package/build/client/_app/immutable/entry/start.D0irEiqS.js.br +0 -2
  141. package/build/client/_app/immutable/entry/start.D0irEiqS.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/0.BdenYwQ0.js.br +0 -0
  143. package/build/client/_app/immutable/nodes/0.BdenYwQ0.js.gz +0 -0
  144. package/build/client/_app/immutable/nodes/1.Dg4RfBlr.js.br +0 -0
  145. package/build/client/_app/immutable/nodes/1.Dg4RfBlr.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/2.DW-JPzyt.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/2.DW-JPzyt.js.gz +0 -0
  148. package/build/client/_app/immutable/nodes/3.bF7rX0-f.js.br +0 -0
  149. package/build/client/_app/immutable/nodes/3.bF7rX0-f.js.gz +0 -0
  150. package/build/client/_app/immutable/nodes/6.DSMOdSb2.js.br +0 -0
  151. package/build/client/_app/immutable/nodes/6.DSMOdSb2.js.gz +0 -0
  152. package/build/client/_app/immutable/nodes/7.cNNZm7gF.js.br +0 -0
  153. package/build/client/_app/immutable/nodes/7.cNNZm7gF.js.gz +0 -0
  154. package/build/client/_app/immutable/nodes/8.DtjRdVVT.js.br +0 -0
  155. package/build/client/_app/immutable/nodes/8.DtjRdVVT.js.gz +0 -0
  156. package/build/client/_app/immutable/nodes/9._gEbLeEN.js.br +0 -0
  157. package/build/client/_app/immutable/nodes/9._gEbLeEN.js.gz +0 -0
  158. package/build/server/chunks/_server.ts-BBLuxvp6.js.map +0 -1
  159. package/build/server/chunks/_server.ts-HGYjOWF2.js.map +0 -1
  160. package/build/server/chunks/client2-B5wCRDQi.js +0 -7
  161. package/build/server/chunks/pending-requests-B-JNGxpk.js +0 -96
  162. package/build/server/chunks/pending-requests-B-JNGxpk.js.map +0 -1
@@ -10,18 +10,18 @@ return {
10
10
  assets: new Set(["app-icon.png","apple-touch-icon.png","favicon.png","favicon.svg","manifest.json","pwa-192x192.png","pwa-512x512.png"]),
11
11
  mimeTypes: {".png":"image/png",".svg":"image/svg+xml",".json":"application/json"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.D0irEiqS.js",app:"_app/immutable/entry/app.BRJS3bSR.js",imports:["_app/immutable/entry/start.D0irEiqS.js","_app/immutable/chunks/C9URPhwn.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/entry/app.BRJS3bSR.js","_app/immutable/chunks/PPVm8Dsz.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/Cg3dlX05.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.Ja5Vj3Hy.js",app:"_app/immutable/entry/app.nFNxeHLO.js",imports:["_app/immutable/entry/start.Ja5Vj3Hy.js","_app/immutable/chunks/BX6TUKUr.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/entry/app.nFNxeHLO.js","_app/immutable/chunks/PPVm8Dsz.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/Cg3dlX05.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-Cdx5OqRN.js')),
16
- __memo(() => import('./chunks/1-BQErgU_W.js')),
17
- __memo(() => import('./chunks/2-BWmy5V7g.js')),
18
- __memo(() => import('./chunks/3-ClpS_rbl.js')),
19
- __memo(() => import('./chunks/4-CbejE1SC.js')),
20
- __memo(() => import('./chunks/5-BwqumuR1.js')),
21
- __memo(() => import('./chunks/6-CQHRlS4a.js')),
22
- __memo(() => import('./chunks/7-VdriLQgS.js')),
23
- __memo(() => import('./chunks/8-SAsJLBKt.js')),
24
- __memo(() => import('./chunks/9-BkY6ynKj.js'))
15
+ __memo(() => import('./chunks/0-C5VG6nCZ.js')),
16
+ __memo(() => import('./chunks/1-CxT3oFDd.js')),
17
+ __memo(() => import('./chunks/2-D-hS2r7O.js')),
18
+ __memo(() => import('./chunks/3-qAPXfbJm.js')),
19
+ __memo(() => import('./chunks/4-BtYdKCVW.js')),
20
+ __memo(() => import('./chunks/5-CvJK3PiH.js')),
21
+ __memo(() => import('./chunks/6-Vj-4wida.js')),
22
+ __memo(() => import('./chunks/7-BYfx84Bj.js')),
23
+ __memo(() => import('./chunks/8-CN6v3xbl.js')),
24
+ __memo(() => import('./chunks/9-BcAY9pkm.js'))
25
25
  ],
26
26
  remotes: {
27
27
 
@@ -48,6 +48,13 @@ return {
48
48
  page: null,
49
49
  endpoint: __memo(() => import('./chunks/_server.ts-D-vgx5UZ.js'))
50
50
  },
51
+ {
52
+ id: "/api/decide/[requestId]",
53
+ pattern: /^\/api\/decide\/([^/]+?)\/?$/,
54
+ params: [{"name":"requestId","optional":false,"rest":false,"chained":false}],
55
+ page: null,
56
+ endpoint: __memo(() => import('./chunks/_server.ts-CvJKTS3Z.js'))
57
+ },
51
58
  {
52
59
  id: "/api/device-token",
53
60
  pattern: /^\/api\/device-token\/?$/,
@@ -74,7 +81,7 @@ return {
74
81
  pattern: /^\/api\/notify\/?$/,
75
82
  params: [],
76
83
  page: null,
77
- endpoint: __memo(() => import('./chunks/_server.ts-HGYjOWF2.js'))
84
+ endpoint: __memo(() => import('./chunks/_server.ts-CFX-S_8q.js'))
78
85
  },
79
86
  {
80
87
  id: "/api/qr-config",
@@ -88,7 +95,7 @@ return {
88
95
  pattern: /^\/api\/response\/?$/,
89
96
  params: [],
90
97
  page: null,
91
- endpoint: __memo(() => import('./chunks/_server.ts-BBLuxvp6.js'))
98
+ endpoint: __memo(() => import('./chunks/_server.ts-tChyh9FX.js'))
92
99
  },
93
100
  {
94
101
  id: "/api/sessions",
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"app-icon.png\",\"apple-touch-icon.png\",\"favicon.png\",\"favicon.svg\",\"manifest.json\",\"pwa-192x192.png\",\"pwa-512x512.png\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".svg\":\"image/svg+xml\",\".json\":\"application/json\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.D0irEiqS.js\",app:\"_app/immutable/entry/app.BRJS3bSR.js\",imports:[\"_app/immutable/entry/start.D0irEiqS.js\",\"_app/immutable/chunks/C9URPhwn.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/entry/app.BRJS3bSR.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/Cg3dlX05.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/activity\",\n\t\t\t\tpattern: /^\\/activity\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/debug\",\n\t\t\t\tpattern: /^\\/api\\/debug\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/debug/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/device-token\",\n\t\t\t\tpattern: /^\\/api\\/device-token\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/device-token/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/health\",\n\t\t\t\tpattern: /^\\/api\\/health\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/neurolink-proxy\",\n\t\t\t\tpattern: /^\\/api\\/neurolink-proxy\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/neurolink-proxy/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/notify\",\n\t\t\t\tpattern: /^\\/api\\/notify\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/notify/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/qr-config\",\n\t\t\t\tpattern: /^\\/api\\/qr-config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/qr-config/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/response\",\n\t\t\t\tpattern: /^\\/api\\/response\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/response/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/connect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/connect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/connect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/detect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/detect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/detect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/paste-image\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/paste-image\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/paste-image/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/resize\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/resize\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/resize/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/webhook\",\n\t\t\t\tpattern: /^\\/api\\/webhook\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/webhook/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-status\",\n\t\t\t\tpattern: /^\\/api\\/ws-status\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-status/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-ticket\",\n\t\t\t\tpattern: /^\\/api\\/ws-ticket\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-ticket/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/config\",\n\t\t\t\tpattern: /^\\/config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/neurolink\",\n\t\t\t\tpattern: /^\\/neurolink\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/project\",\n\t\t\t\tpattern: /^\\/project\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/session/[id]\",\n\t\t\t\tpattern: /^\\/session\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals\",\n\t\t\t\tpattern: /^\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals/[id]\",\n\t\t\t\tpattern: /^\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"AAAY,MAAC,QAAQ,GAAG,CAAC,MAAM;AAC/B,SAAS,MAAM,CAAC,EAAE,EAAE;AACpB,CAAC,IAAI,KAAK;AACV,CAAC,OAAO,MAAM,KAAK,MAAM,KAAK,GAAG,EAAE,EAAE,CAAC;AACtC;;AAEA,OAAO;AACP,CAAC,MAAM,EAAE,MAAM;AACf,CAAC,OAAO,EAAE,MAAM;AAChB,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,cAAc,CAAC,sBAAsB,CAAC,aAAa,CAAC,aAAa,CAAC,eAAe,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACzI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAClF,CAAC,CAAC,EAAE;AACJ,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,wCAAwC,CAAC,GAAG,CAAC,sCAAsC,CAAC,OAAO,CAAC,CAAC,wCAAwC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,sCAAsC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACza,EAAE,KAAK,EAAE;AACT,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC,CAAC;AACvC,GAAG,MAAM,CAAC,MAAM,OAAO,wBAAc,CAAC;AACtC,GAAG;AACH,EAAE,OAAO,EAAE;AACX;AACA,GAAG;AACH,EAAE,MAAM,EAAE;AACV,GAAG;AACH,IAAI,EAAE,EAAE,GAAG;AACX,IAAI,OAAO,EAAE,MAAM;AACnB,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,WAAW;AACnB,IAAI,OAAO,EAAE,iBAAiB;AAC9B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,YAAY;AACpB,IAAI,OAAO,EAAE,mBAAmB;AAChC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA6C,CAAC;AAChF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,mBAAmB;AAC3B,IAAI,OAAO,EAAE,0BAA0B;AACvC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAoD,CAAC;AACvF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,aAAa;AACrB,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA8C,CAAC;AACjF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,sBAAsB;AAC9B,IAAI,OAAO,EAAE,6BAA6B;AAC1C,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAuD,CAAC;AAC1F,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,aAAa;AACrB,IAAI,OAAO,EAAE,oBAAoB;AACjC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA8C,CAAC;AACjF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,OAAO,EAAE,uBAAuB;AACpC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAiD,CAAC;AACpF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,OAAO,EAAE,sBAAsB;AACnC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAgD,CAAC;AACnF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,OAAO,EAAE,sBAAsB;AACnC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAgD,CAAC;AACnF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,uBAAuB;AAC/B,IAAI,OAAO,EAAE,+BAA+B;AAC5C,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAwD,CAAC;AAC3F,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,sBAAsB;AAC9B,IAAI,OAAO,EAAE,8BAA8B;AAC3C,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAuD,CAAC;AAC1F,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,OAAO,EAAE,uBAAuB;AACpC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAiD,CAAC;AACpF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,qBAAqB;AAC7B,IAAI,OAAO,EAAE,iCAAiC;AAC9C,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAsD,CAAC;AACzF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,iCAAiC;AACzC,IAAI,OAAO,EAAE,8CAA8C;AAC3D,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAkE,CAAC;AACrG,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,4BAA4B;AACpC,IAAI,OAAO,EAAE,yCAAyC;AACtD,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA6D,CAAC;AAChG,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,cAAc;AACtB,IAAI,OAAO,EAAE,qBAAqB;AAClC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAA+C,CAAC;AAClF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,OAAO,EAAE,uBAAuB;AACpC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAiD,CAAC;AACpF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,gBAAgB;AACxB,IAAI,OAAO,EAAE,uBAAuB;AACpC,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,QAAQ,EAAE,MAAM,CAAC,MAAM,OAAO,iCAAiD,CAAC;AACpF,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,SAAS;AACjB,IAAI,OAAO,EAAE,eAAe;AAC5B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,YAAY;AACpB,IAAI,OAAO,EAAE,kBAAkB;AAC/B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,UAAU;AAClB,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,eAAe;AACvB,IAAI,OAAO,EAAE,0BAA0B;AACvC,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,YAAY;AACpB,IAAI,OAAO,EAAE,kBAAkB;AAC/B,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd,IAAI;AACJ,GAAG;AACH,IAAI,EAAE,EAAE,iBAAiB;AACzB,IAAI,OAAO,EAAE,4BAA4B;AACzC,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzE,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AAClD,IAAI,QAAQ,EAAE;AACd;AACA,GAAG;AACH,EAAE,kBAAkB,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC;AACjC,EAAE,QAAQ,EAAE,YAAY;AACxB;AACA,GAAG,OAAO,IAAI;AACd,EAAE,CAAC;AACH,EAAE,aAAa,EAAE;AACjB;AACA;AACA,CAAC;;AAEW,MAAC,WAAW,GAAG,IAAI,GAAG,CAAC,EAAE;;AAEzB,MAAC,IAAI,GAAG;;;;"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"app-icon.png\",\"apple-touch-icon.png\",\"favicon.png\",\"favicon.svg\",\"manifest.json\",\"pwa-192x192.png\",\"pwa-512x512.png\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".svg\":\"image/svg+xml\",\".json\":\"application/json\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Ja5Vj3Hy.js\",app:\"_app/immutable/entry/app.nFNxeHLO.js\",imports:[\"_app/immutable/entry/start.Ja5Vj3Hy.js\",\"_app/immutable/chunks/BX6TUKUr.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/entry/app.nFNxeHLO.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/Cg3dlX05.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/activity\",\n\t\t\t\tpattern: /^\\/activity\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/debug\",\n\t\t\t\tpattern: /^\\/api\\/debug\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/debug/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/decide/[requestId]\",\n\t\t\t\tpattern: /^\\/api\\/decide\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"requestId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/decide/_requestId_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/device-token\",\n\t\t\t\tpattern: /^\\/api\\/device-token\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/device-token/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/health\",\n\t\t\t\tpattern: /^\\/api\\/health\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/health/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/neurolink-proxy\",\n\t\t\t\tpattern: /^\\/api\\/neurolink-proxy\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/neurolink-proxy/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/notify\",\n\t\t\t\tpattern: /^\\/api\\/notify\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/notify/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/qr-config\",\n\t\t\t\tpattern: /^\\/api\\/qr-config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/qr-config/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/response\",\n\t\t\t\tpattern: /^\\/api\\/response\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/response/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/connect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/connect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/connect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/sessions/detect\",\n\t\t\t\tpattern: /^\\/api\\/sessions\\/detect\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/sessions/detect/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/paste-image\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/paste-image\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/paste-image/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/terminals/[id]/resize\",\n\t\t\t\tpattern: /^\\/api\\/terminals\\/([^/]+?)\\/resize\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/terminals/_id_/resize/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/webhook\",\n\t\t\t\tpattern: /^\\/api\\/webhook\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/webhook/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-status\",\n\t\t\t\tpattern: /^\\/api\\/ws-status\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-status/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/ws-ticket\",\n\t\t\t\tpattern: /^\\/api\\/ws-ticket\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/ws-ticket/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/config\",\n\t\t\t\tpattern: /^\\/config\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/neurolink\",\n\t\t\t\tpattern: /^\\/neurolink\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/project\",\n\t\t\t\tpattern: /^\\/project\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/session/[id]\",\n\t\t\t\tpattern: /^\\/session\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals\",\n\t\t\t\tpattern: /^\\/terminals\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/terminals/[id]\",\n\t\t\t\tpattern: /^\\/terminals\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"id\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/shooter",
3
- "version": "1.11.0",
3
+ "version": "1.13.0",
4
4
  "description": "Bidirectional communication server for Claude Code and iOS — push notifications, remote terminal, session viewing",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@10.28.2",
@@ -76,7 +76,7 @@
76
76
  "format:generated": "prettier --write ./src/lib/types/generated/*",
77
77
  "quality:all": "pnpm run lint && pnpm run format:check && pnpm run check",
78
78
  "gen:types": "npx type-crafter generate typescript-with-decoders ./specs/types/index.yaml ./src/lib/types/generated SingleFile SingleFile && bash scripts/postgen-types.sh && pnpm run format:generated",
79
- "test": "node tests/terminal-store.test.cjs && node tests/pending-requests.test.cjs && node tests/tunnel-discovery.test.cjs",
79
+ "test": "node tests/terminal-store.test.cjs && node tests/pending-requests.test.cjs && node tests/tunnel-discovery.test.cjs && node tests/plan-mode-routing.test.cjs",
80
80
  "setup": "node scripts/setup.cjs",
81
81
  "prepare": "husky || true",
82
82
  "prepublishOnly": "pnpm build"
@@ -2,15 +2,28 @@
2
2
  * Pending Permission Requests Store — SQLite persistence.
3
3
  *
4
4
  * Persists in-flight permission requests so they survive server
5
- * restarts. Used by `/api/notify` (creates entries) and `/api/response`
6
- * (reads/updates decisions). notifier.cjs polls `/api/response` via
7
- * HTTP, so persisting the row is sufficient there are no in-process
8
- * callbacks that need recovery.
5
+ * restarts. Used by `/api/notify` (creates entries), `/api/response`
6
+ * (reads/updates decisions), and `/api/decide/[id]` (returns the
7
+ * question + options for the iOS Decide screen). notifier.cjs polls
8
+ * `/api/response` via HTTP, so persisting the row is sufficient —
9
+ * there are no in-process callbacks that need recovery.
9
10
  *
10
11
  * Database location: `~/.shooter/shooter.db` (shared with terminal-store).
12
+ *
13
+ * Schema evolution: the original table had only the binary
14
+ * permission columns. Newer columns (question, options, response_kind)
15
+ * support dynamic-options notifications (plan-mode, MCP elicitation,
16
+ * AskUserQuestion). They are added via ALTER TABLE if missing, so the
17
+ * store works against both fresh DBs and DBs from older versions.
11
18
  */
12
19
 
13
- import type { PendingRequest } from '$lib/types';
20
+ import type {
21
+ DecisionKind,
22
+ OptionChoice,
23
+ PendingRequest,
24
+ PendingRequestRich,
25
+ ResponseKind,
26
+ } from '$lib/types';
14
27
 
15
28
  import Database from 'better-sqlite3';
16
29
  import * as fs from 'fs';
@@ -32,15 +45,19 @@ export class PendingRequestsStore {
32
45
  this.db.pragma('journal_mode = WAL');
33
46
  this.db.exec(`
34
47
  CREATE TABLE IF NOT EXISTS pending_requests (
35
- request_id TEXT PRIMARY KEY,
36
- session_id TEXT NOT NULL,
37
- tool_name TEXT NOT NULL,
38
- tool_input TEXT NOT NULL DEFAULT '{}',
39
- decision TEXT,
40
- created_at INTEGER NOT NULL,
41
- decided_at INTEGER
48
+ request_id TEXT PRIMARY KEY,
49
+ session_id TEXT NOT NULL,
50
+ tool_name TEXT NOT NULL,
51
+ tool_input TEXT NOT NULL DEFAULT '{}',
52
+ decision TEXT,
53
+ created_at INTEGER NOT NULL,
54
+ decided_at INTEGER,
55
+ question TEXT,
56
+ options TEXT NOT NULL DEFAULT '[]',
57
+ response_kind TEXT NOT NULL DEFAULT 'hook'
42
58
  )
43
59
  `);
60
+ this.migrate();
44
61
  }
45
62
 
46
63
  cleanup(maxAgeMs: number): number {
@@ -60,9 +77,23 @@ export class PendingRequestsStore {
60
77
  return row ? rowToRecord(row) : null;
61
78
  }
62
79
 
80
+ getRich(requestId: string): null | PendingRequestRich {
81
+ const row = this.db
82
+ .prepare('SELECT * FROM pending_requests WHERE request_id = ?')
83
+ .get(requestId) as Record<string, unknown> | undefined;
84
+ return row ? rowToRich(row) : null;
85
+ }
86
+
63
87
  insert(
64
88
  requestId: string,
65
- data: { sessionId: string; toolInput: Record<string, unknown>; toolName: string }
89
+ data: {
90
+ options?: OptionChoice[];
91
+ question?: null | string;
92
+ responseKind?: ResponseKind;
93
+ sessionId: string;
94
+ toolInput: Record<string, unknown>;
95
+ toolName: string;
96
+ }
66
97
  ): void {
67
98
  // INSERT OR REPLACE matches the old Map.set semantics: a second
68
99
  // create with the same requestId silently overwrites instead of
@@ -70,38 +101,118 @@ export class PendingRequestsStore {
70
101
  this.db
71
102
  .prepare(
72
103
  `INSERT OR REPLACE INTO pending_requests
73
- (request_id, session_id, tool_name, tool_input, decision, created_at, decided_at)
74
- VALUES (?, ?, ?, ?, NULL, ?, NULL)`
104
+ (request_id, session_id, tool_name, tool_input, decision, created_at, decided_at, question, options, response_kind)
105
+ VALUES (?, ?, ?, ?, NULL, ?, NULL, ?, ?, ?)`
75
106
  )
76
- .run(requestId, data.sessionId, data.toolName, JSON.stringify(data.toolInput), Date.now());
107
+ .run(
108
+ requestId,
109
+ data.sessionId,
110
+ data.toolName,
111
+ JSON.stringify(data.toolInput),
112
+ Date.now(),
113
+ data.question ?? null,
114
+ JSON.stringify(data.options ?? []),
115
+ data.responseKind ?? 'hook'
116
+ );
77
117
  }
78
118
 
79
- setDecision(requestId: string, decision: 'allow' | 'deny'): boolean {
119
+ setDecision(requestId: string, decision: DecisionKind): boolean {
80
120
  const result = this.db
81
121
  .prepare('UPDATE pending_requests SET decision = ?, decided_at = ? WHERE request_id = ?')
82
122
  .run(decision, Date.now(), requestId);
83
123
  return result.changes > 0;
84
124
  }
85
- }
86
125
 
87
- function rowToRecord(row: Record<string, unknown>): PendingRequest {
88
- let toolInput: Record<string, unknown> = {};
89
- if (typeof row.tool_input === 'string' && row.tool_input.length > 0) {
90
- try {
91
- const parsed: unknown = JSON.parse(row.tool_input);
92
- if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
93
- toolInput = parsed as Record<string, unknown>;
126
+ /**
127
+ * Add columns introduced in later versions. Idempotent — uses
128
+ * PRAGMA table_info to check before each ALTER TABLE so re-running
129
+ * against a fully-migrated DB is a no-op.
130
+ */
131
+ private migrate(): void {
132
+ const cols = this.db.prepare('PRAGMA table_info(pending_requests)').all() as {
133
+ name: string;
134
+ }[];
135
+ const existing = new Set(cols.map((c) => c.name));
136
+ const wanted: { name: string; sql: string }[] = [
137
+ { name: 'question', sql: 'ALTER TABLE pending_requests ADD COLUMN question TEXT' },
138
+ {
139
+ name: 'options',
140
+ sql: "ALTER TABLE pending_requests ADD COLUMN options TEXT NOT NULL DEFAULT '[]'",
141
+ },
142
+ {
143
+ name: 'response_kind',
144
+ sql: "ALTER TABLE pending_requests ADD COLUMN response_kind TEXT NOT NULL DEFAULT 'hook'",
145
+ },
146
+ ];
147
+ for (const col of wanted) {
148
+ if (!existing.has(col.name)) {
149
+ this.db.exec(col.sql);
94
150
  }
95
- } catch {
96
- // Corrupt JSON — fall back to empty.
97
151
  }
98
152
  }
153
+ }
154
+
155
+ function parseOptions(raw: unknown): OptionChoice[] {
156
+ if (typeof raw !== 'string' || raw.length === 0) {
157
+ return [];
158
+ }
159
+ try {
160
+ const parsed: unknown = JSON.parse(raw);
161
+ if (Array.isArray(parsed)) {
162
+ return parsed as OptionChoice[];
163
+ }
164
+ } catch {
165
+ // corrupt JSON — fall back to empty
166
+ }
167
+ return [];
168
+ }
169
+
170
+ function parseToolInput(raw: unknown): Record<string, unknown> {
171
+ if (typeof raw !== 'string' || raw.length === 0) {
172
+ return {};
173
+ }
174
+ try {
175
+ const parsed: unknown = JSON.parse(raw);
176
+ if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
177
+ return parsed as Record<string, unknown>;
178
+ }
179
+ } catch {
180
+ // corrupt JSON — fall back to empty
181
+ }
182
+ return {};
183
+ }
184
+
185
+ function rowToRecord(row: Record<string, unknown>): PendingRequest {
186
+ // Legacy adapter — only exposes the binary-decision fields the older
187
+ // PendingRequest YAML type knows about. New callers should use
188
+ // rowToRich() / getRich() instead.
189
+ const decision = row.decision;
190
+ return {
191
+ createdAt: row.created_at as number,
192
+ decidedAt: (row.decided_at as null | number) ?? null,
193
+ decision: decision === 'allow' || decision === 'deny' ? decision : null,
194
+ sessionId: row.session_id as string,
195
+ toolInput: parseToolInput(row.tool_input),
196
+ toolName: row.tool_name as string,
197
+ };
198
+ }
199
+
200
+ function rowToRich(row: Record<string, unknown>): PendingRequestRich {
201
+ const responseKindRaw = typeof row.response_kind === 'string' ? row.response_kind : 'hook';
202
+ const responseKind: ResponseKind =
203
+ responseKindRaw === 'hook' || responseKindRaw === 'pty' || responseKindRaw === 'info'
204
+ ? responseKindRaw
205
+ : 'hook';
99
206
  return {
100
207
  createdAt: row.created_at as number,
101
208
  decidedAt: (row.decided_at as null | number) ?? null,
102
- decision: (row.decision as null | PendingRequest['decision']) ?? null,
209
+ decision: (row.decision as DecisionKind | null) ?? null,
210
+ options: parseOptions(row.options),
211
+ question: (row.question as null | string) ?? null,
212
+ requestId: row.request_id as string,
213
+ responseKind,
103
214
  sessionId: row.session_id as string,
104
- toolInput,
215
+ toolInput: parseToolInput(row.tool_input),
105
216
  toolName: row.tool_name as string,
106
217
  };
107
218
  }
@@ -120,17 +231,24 @@ export function cleanup(maxAgeMs: number = MAX_AGE_MS): void {
120
231
 
121
232
  export function createPendingRequest(
122
233
  requestId: string,
123
- data: { sessionId: string; toolInput: Record<string, unknown>; toolName: string }
234
+ data: {
235
+ options?: OptionChoice[];
236
+ question?: null | string;
237
+ responseKind?: ResponseKind;
238
+ sessionId: string;
239
+ toolInput: Record<string, unknown>;
240
+ toolName: string;
241
+ }
124
242
  ): void {
125
243
  cleanup();
126
244
  pendingRequestsStore.insert(requestId, data);
127
245
  }
128
246
 
129
247
  export function getDecision(requestId: string): {
130
- decision?: 'allow' | 'deny';
248
+ decision?: DecisionKind;
131
249
  status: 'decided' | 'not_found' | 'pending';
132
250
  } {
133
- const entry = pendingRequestsStore.get(requestId);
251
+ const entry = pendingRequestsStore.getRich(requestId);
134
252
  if (!entry) {
135
253
  return { status: 'not_found' };
136
254
  }
@@ -143,6 +261,11 @@ export function getDecision(requestId: string): {
143
261
  return { status: 'pending' };
144
262
  }
145
263
 
146
- export function setDecision(requestId: string, decision: 'allow' | 'deny'): boolean {
264
+ /** Used by /api/decide/[requestId] to render the Decide screen. */
265
+ export function getRichRequest(requestId: string): null | PendingRequestRich {
266
+ return pendingRequestsStore.getRich(requestId);
267
+ }
268
+
269
+ export function setDecision(requestId: string, decision: DecisionKind): boolean {
147
270
  return pendingRequestsStore.setDecision(requestId, decision);
148
271
  }
@@ -0,0 +1,114 @@
1
+ // Dynamic-options decision types. Hand-written because the value sets are
2
+ // unions that vary by event kind (permission allow/deny, plan-mode
3
+ // approval modes, generic numbered choices) and YAML can express each
4
+ // enum but not the discriminated union over the response routing kind.
5
+ //
6
+ // These extend the binary PermissionDecision enum generated from
7
+ // specs/types/notification.yaml. PermissionDecision (`allow | deny`)
8
+ // remains the legacy type for callers that only ever needed binary;
9
+ // DecisionKind is the new umbrella accepted by /api/response.
10
+
11
+ /**
12
+ * Every decision value /api/response accepts.
13
+ *
14
+ * - `allow` / `deny` — binary PermissionRequest answer.
15
+ * - `plan_auto` / `plan_accept` / `plan_review` / `plan_keep` — ExitPlanMode
16
+ * approval modes mirroring Claude Code's plan-mode menu.
17
+ * - `option_1`..`option_4` — generic numbered choices used by MCP
18
+ * elicitation forms and AskUserQuestion. The actual label for each
19
+ * option lives in the persisted `options[]` array; the index here is
20
+ * 1-based to match the body-text rendering.
21
+ */
22
+ export type DecisionKind =
23
+ | 'allow'
24
+ | 'deny'
25
+ | 'option_1'
26
+ | 'option_2'
27
+ | 'option_3'
28
+ | 'option_4'
29
+ | 'plan_accept'
30
+ | 'plan_auto'
31
+ | 'plan_keep'
32
+ | 'plan_review';
33
+
34
+ /**
35
+ * How the server should route a user's decision back to Claude Code.
36
+ *
37
+ * - `hook` — Claude Code's notifier.cjs is blocked in a poll loop on
38
+ * /api/response and will read the decision from there, then write it
39
+ * to stdout as the hook's response (allow/deny + optional extras).
40
+ * - `pty` — the active session lives inside a Shooter-managed PTY;
41
+ * server writes the chosen option's keystrokes to the PTY's stdin so
42
+ * Claude Code reads it as if the user typed at the laptop.
43
+ * - `info` — informational only; no answer routes back to Claude Code.
44
+ * The push exists to nudge the user to the laptop.
45
+ */
46
+ export type ResponseKind = 'hook' | 'info' | 'pty';
47
+
48
+ /** All valid DecisionKind values. Exported so /api/response can validate. */
49
+ export const DECISION_KINDS: readonly DecisionKind[] = [
50
+ 'allow',
51
+ 'deny',
52
+ 'option_1',
53
+ 'option_2',
54
+ 'option_3',
55
+ 'option_4',
56
+ 'plan_accept',
57
+ 'plan_auto',
58
+ 'plan_keep',
59
+ 'plan_review',
60
+ ] as const;
61
+
62
+ /**
63
+ * Full payload returned by GET /api/decide/[requestId] for the iOS
64
+ * Decide screen to render. Includes everything the screen needs without
65
+ * a second round-trip.
66
+ */
67
+ export interface DecidePayload {
68
+ options: OptionChoice[];
69
+ question: string;
70
+ requestId: string;
71
+ responseKind: ResponseKind;
72
+ toolInput?: Record<string, unknown>;
73
+ /** Snapshot of the tool input that triggered the prompt (for context). */
74
+ toolName?: string;
75
+ }
76
+
77
+ /**
78
+ * One choice rendered to the user. Persisted as JSON in
79
+ * pending_requests.options and returned from /api/decide/[id] to the
80
+ * iOS Decide screen.
81
+ */
82
+ export interface OptionChoice {
83
+ /** Optional secondary text shown beneath the label in the Decide screen. */
84
+ hint?: string;
85
+ /** Decision value the iOS app POSTs to /api/response when this is tapped. */
86
+ id: DecisionKind;
87
+ /** Human-readable label ("Use frontend", "Auto mode", etc.). */
88
+ label: string;
89
+ }
90
+
91
+ /**
92
+ * Richer view of a pending_requests row that includes the
93
+ * dynamic-options columns (question, options, responseKind). The
94
+ * legacy `PendingRequest` type (binary `decision`, no question/options)
95
+ * remains the public surface for callers that don't care about dynamic
96
+ * options. Used by PendingRequestsStore and /api/decide/[id].
97
+ */
98
+ export interface PendingRequestRich {
99
+ createdAt: number;
100
+ decidedAt: null | number;
101
+ decision: DecisionKind | null;
102
+ options: OptionChoice[];
103
+ question: null | string;
104
+ requestId: string;
105
+ responseKind: ResponseKind;
106
+ sessionId: string;
107
+ toolInput: Record<string, unknown>;
108
+ toolName: string;
109
+ }
110
+
111
+ /** Type guard for incoming strings from HTTP requests. */
112
+ export function isDecisionKind(value: unknown): value is DecisionKind {
113
+ return typeof value === 'string' && (DECISION_KINDS as readonly string[]).includes(value);
114
+ }
@@ -6,6 +6,7 @@ export type * from './apn';
6
6
  export type * from './cli';
7
7
  export type * from './common';
8
8
  export type * from './dashboard';
9
+ export * from './decision';
9
10
  export * from './generated';
10
11
  export type * from './neurolink';
11
12
  export type * from './server';
@@ -0,0 +1,46 @@
1
+ import type { DecidePayload } from '$lib/types';
2
+
3
+ import { getRichRequest } from '$lib/modules/server/apn/pending-requests';
4
+ import { validateAuth } from '$lib/modules/server/auth';
5
+ import { json } from '@sveltejs/kit';
6
+
7
+ import type { RequestHandler } from './$types';
8
+
9
+ // GET /api/decide/[requestId]
10
+ //
11
+ // Returns the full Decide payload (question + options + responseKind +
12
+ // tool context) for the iOS Decide screen to render. Called when the
13
+ // user taps the notification body (or the "Open in Shooter" action)
14
+ // instead of one of the lock-screen quick-tap buttons.
15
+ //
16
+ // Separated from `/api/response` GET (which is the lightweight polling
17
+ // endpoint that returns only the decision) so the rich payload can
18
+ // evolve independently and only fires when the iOS screen actually
19
+ // needs the full context.
20
+ export const GET: RequestHandler = ({ params, request }) => {
21
+ const authErr = validateAuth(request);
22
+ if (authErr) {
23
+ return authErr;
24
+ }
25
+
26
+ const requestId = params.requestId;
27
+ if (!requestId) {
28
+ return json({ error: 'requestId path parameter is required' }, { status: 400 });
29
+ }
30
+
31
+ const entry = getRichRequest(requestId);
32
+ if (!entry) {
33
+ return json({ error: 'Request not found or expired' }, { status: 404 });
34
+ }
35
+
36
+ const payload: DecidePayload = {
37
+ options: entry.options,
38
+ question: entry.question ?? '',
39
+ requestId: entry.requestId,
40
+ responseKind: entry.responseKind,
41
+ toolInput: entry.toolInput,
42
+ toolName: entry.toolName,
43
+ };
44
+
45
+ return json(payload);
46
+ };