@juspay/shooter 1.11.0 → 1.12.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.
- package/build/client/_app/immutable/chunks/{Ce85PELw.js → DTGtOxE1.js} +1 -1
- package/build/client/_app/immutable/chunks/DTGtOxE1.js.br +0 -0
- package/build/client/_app/immutable/chunks/DTGtOxE1.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BlgsHm7b.js → DfsJh23H.js} +1 -1
- package/build/client/_app/immutable/chunks/DfsJh23H.js.br +0 -0
- package/build/client/_app/immutable/chunks/DfsJh23H.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DlSs5Yra.js +3 -0
- package/build/client/_app/immutable/chunks/DlSs5Yra.js.br +0 -0
- package/build/client/_app/immutable/chunks/DlSs5Yra.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.BRJS3bSR.js → app.B-sEFuLK.js} +2 -2
- package/build/client/_app/immutable/entry/app.B-sEFuLK.js.br +0 -0
- package/build/client/_app/immutable/entry/app.B-sEFuLK.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.A2buqyYO.js +1 -0
- package/build/client/_app/immutable/entry/start.A2buqyYO.js.br +2 -0
- package/build/client/_app/immutable/entry/start.A2buqyYO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.BdenYwQ0.js → 0.-0SstbRm.js} +1 -1
- package/build/client/_app/immutable/nodes/0.-0SstbRm.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.-0SstbRm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.Dg4RfBlr.js → 1.BVLzPogE.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BVLzPogE.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.BVLzPogE.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DW-JPzyt.js → 2.CiUyTQg5.js} +1 -1
- package/build/client/_app/immutable/nodes/2.CiUyTQg5.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CiUyTQg5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.bF7rX0-f.js → 3.C9vlOBU0.js} +1 -1
- package/build/client/_app/immutable/nodes/3.C9vlOBU0.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C9vlOBU0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.DSMOdSb2.js → 6.BSsUBbIT.js} +1 -1
- package/build/client/_app/immutable/nodes/6.BSsUBbIT.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BSsUBbIT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.cNNZm7gF.js → 7.BIQq9Yuz.js} +1 -1
- package/build/client/_app/immutable/nodes/7.BIQq9Yuz.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BIQq9Yuz.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.DtjRdVVT.js → 8.BU_sJ5_M.js} +1 -1
- package/build/client/_app/immutable/nodes/8.BU_sJ5_M.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BU_sJ5_M.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9._gEbLeEN.js → 9.C1vJI771.js} +1 -1
- package/build/client/_app/immutable/nodes/9.C1vJI771.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.C1vJI771.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/{0-Cdx5OqRN.js → 0-DgzcVTc0.js} +3 -3
- package/build/server/chunks/{0-Cdx5OqRN.js.map → 0-DgzcVTc0.js.map} +1 -1
- package/build/server/chunks/{1-BQErgU_W.js → 1-iMvE8O_M.js} +3 -3
- package/build/server/chunks/{1-BQErgU_W.js.map → 1-iMvE8O_M.js.map} +1 -1
- package/build/server/chunks/{2-BWmy5V7g.js → 2-BJrmwHii.js} +3 -3
- package/build/server/chunks/{2-BWmy5V7g.js.map → 2-BJrmwHii.js.map} +1 -1
- package/build/server/chunks/{3-ClpS_rbl.js → 3-Ds3b4DfT.js} +3 -3
- package/build/server/chunks/{3-ClpS_rbl.js.map → 3-Ds3b4DfT.js.map} +1 -1
- package/build/server/chunks/{4-CbejE1SC.js → 4-BtYdKCVW.js} +2 -2
- package/build/server/chunks/{4-CbejE1SC.js.map → 4-BtYdKCVW.js.map} +1 -1
- package/build/server/chunks/{5-BwqumuR1.js → 5-CvJK3PiH.js} +2 -2
- package/build/server/chunks/{5-BwqumuR1.js.map → 5-CvJK3PiH.js.map} +1 -1
- package/build/server/chunks/{6-CQHRlS4a.js → 6-DEbZkQEO.js} +3 -3
- package/build/server/chunks/{6-CQHRlS4a.js.map → 6-DEbZkQEO.js.map} +1 -1
- package/build/server/chunks/{7-VdriLQgS.js → 7-BrQeR-CO.js} +3 -3
- package/build/server/chunks/{7-VdriLQgS.js.map → 7-BrQeR-CO.js.map} +1 -1
- package/build/server/chunks/{8-SAsJLBKt.js → 8-e5TDwEpx.js} +3 -3
- package/build/server/chunks/{8-SAsJLBKt.js.map → 8-e5TDwEpx.js.map} +1 -1
- package/build/server/chunks/{9-BkY6ynKj.js → 9-1iqRqatJ.js} +3 -3
- package/build/server/chunks/{9-BkY6ynKj.js.map → 9-1iqRqatJ.js.map} +1 -1
- package/build/server/chunks/{Button-Dpueno77.js → Button-B5dU-ntz.js} +2 -2
- package/build/server/chunks/{Button-Dpueno77.js.map → Button-B5dU-ntz.js.map} +1 -1
- package/build/server/chunks/{Icon-aOLx5ELI.js → Icon-C7Ml3GX6.js} +3 -3
- package/build/server/chunks/{Icon-aOLx5ELI.js.map → Icon-C7Ml3GX6.js.map} +1 -1
- package/build/server/chunks/{Input-Cq7ZdLxS.js → Input-CPGO0sbS.js} +2 -2
- package/build/server/chunks/{Input-Cq7ZdLxS.js.map → Input-CPGO0sbS.js.map} +1 -1
- package/build/server/chunks/{Pill-Bn597jm0.js → Pill-CcrtCejm.js} +3 -3
- package/build/server/chunks/{Pill-Bn597jm0.js.map → Pill-CcrtCejm.js.map} +1 -1
- package/build/server/chunks/{Shimmer-5o7MVwXF.js → Shimmer-C5jkvGr1.js} +2 -2
- package/build/server/chunks/{Shimmer-5o7MVwXF.js.map → Shimmer-C5jkvGr1.js.map} +1 -1
- package/build/server/chunks/{_error.svelte-C85mEsv9.js → _error.svelte-CSIxs-ab.js} +8 -8
- package/build/server/chunks/{_error.svelte-C85mEsv9.js.map → _error.svelte-CSIxs-ab.js.map} +1 -1
- package/build/server/chunks/{_layout.svelte-rpYLLajc.js → _layout.svelte-noB4j-v2.js} +10 -10
- package/build/server/chunks/{_layout.svelte-rpYLLajc.js.map → _layout.svelte-noB4j-v2.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BfCXobKv.js → _page.svelte-B6qyh-K-.js} +11 -11
- package/build/server/chunks/{_page.svelte-BfCXobKv.js.map → _page.svelte-B6qyh-K-.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CA46TyHk.js → _page.svelte-BUkm2304.js} +5 -5
- package/build/server/chunks/{_page.svelte-CA46TyHk.js.map → _page.svelte-BUkm2304.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-B6O0uTrK.js → _page.svelte-BV0XyYJZ.js} +4 -4
- package/build/server/chunks/{_page.svelte-B6O0uTrK.js.map → _page.svelte-BV0XyYJZ.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CCpVmMpU.js → _page.svelte-BfB8maoc.js} +9 -9
- package/build/server/chunks/{_page.svelte-CCpVmMpU.js.map → _page.svelte-BfB8maoc.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DjADcbfZ.js → _page.svelte-C60lAagP.js} +8 -8
- package/build/server/chunks/{_page.svelte-DjADcbfZ.js.map → _page.svelte-C60lAagP.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DUj1mSq0.js → _page.svelte-Dmg-RFCg.js} +7 -7
- package/build/server/chunks/{_page.svelte-DUj1mSq0.js.map → _page.svelte-Dmg-RFCg.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-fkR4xqGu.js → _page.svelte-DnTpPnPR.js} +5 -5
- package/build/server/chunks/{_page.svelte-fkR4xqGu.js.map → _page.svelte-DnTpPnPR.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-D0FBtMtH.js → _page.svelte-DuzZr5dA.js} +11 -11
- package/build/server/chunks/{_page.svelte-D0FBtMtH.js.map → _page.svelte-DuzZr5dA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-HGYjOWF2.js → _server.ts-C-W5J15L.js} +2 -2
- package/build/server/chunks/{_server.ts-HGYjOWF2.js.map → _server.ts-C-W5J15L.js.map} +1 -1
- package/build/server/chunks/_server.ts-CvJKTS3Z.js +35 -0
- package/build/server/chunks/_server.ts-CvJKTS3Z.js.map +1 -0
- package/build/server/chunks/{_server.ts-BBLuxvp6.js → _server.ts-tChyh9FX.js} +43 -8
- package/build/server/chunks/_server.ts-tChyh9FX.js.map +1 -0
- package/build/server/chunks/{cache-5_eamjtv.js → cache-Me3zUAaD.js} +2 -2
- package/build/server/chunks/{cache-5_eamjtv.js.map → cache-Me3zUAaD.js.map} +1 -1
- package/build/server/chunks/{client-w1WsLDGu.js → client-CfNnl32g.js} +4 -4
- package/build/server/chunks/{client-w1WsLDGu.js.map → client-CfNnl32g.js.map} +1 -1
- package/build/server/chunks/client2-DDP30_vY.js +7 -0
- package/build/server/chunks/{client2-B5wCRDQi.js.map → client2-DDP30_vY.js.map} +1 -1
- package/build/server/chunks/{index-DMikC9Qy.js → index-CJrGuxuM.js} +2 -2
- package/build/server/chunks/{index-DMikC9Qy.js.map → index-CJrGuxuM.js.map} +1 -1
- package/build/server/chunks/{index-server-DHNcb_Bd.js → index-server--49oHtA0.js} +2 -2
- package/build/server/chunks/{index-server-DHNcb_Bd.js.map → index-server--49oHtA0.js.map} +1 -1
- package/build/server/chunks/{index2-BTTf6mSG.js → index2-MY7PXeAc.js} +2 -2
- package/build/server/chunks/{index2-BTTf6mSG.js.map → index2-MY7PXeAc.js.map} +1 -1
- package/build/server/chunks/pending-requests-C9p57WoU.js +174 -0
- package/build/server/chunks/pending-requests-C9p57WoU.js.map +1 -0
- package/build/server/chunks/{root-DhBbA8QD.js → root-xvQIR1Bt.js} +2 -2
- package/build/server/chunks/{root-DhBbA8QD.js.map → root-xvQIR1Bt.js.map} +1 -1
- package/build/server/chunks/{state.svelte-M8y8rROy.js → state.svelte-RCtlkrNH.js} +3 -3
- package/build/server/chunks/{state.svelte-M8y8rROy.js.map → state.svelte-RCtlkrNH.js.map} +1 -1
- package/build/server/chunks/{stores-CwkRmCHA.js → stores-C-LqoonT.js} +4 -4
- package/build/server/chunks/{stores-CwkRmCHA.js.map → stores-C-LqoonT.js.map} +1 -1
- package/build/server/index.js +4 -4
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +20 -13
- package/build/server/manifest.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/modules/server/apn/pending-requests.ts +156 -33
- package/src/lib/types/decision.ts +114 -0
- package/src/lib/types/index.ts +1 -0
- package/src/routes/api/decide/[requestId]/+server.ts +46 -0
- package/src/routes/api/response/+server.ts +61 -11
- package/build/client/_app/immutable/chunks/BlgsHm7b.js.br +0 -0
- package/build/client/_app/immutable/chunks/BlgsHm7b.js.gz +0 -0
- package/build/client/_app/immutable/chunks/C9URPhwn.js +0 -3
- package/build/client/_app/immutable/chunks/C9URPhwn.js.br +0 -0
- package/build/client/_app/immutable/chunks/C9URPhwn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Ce85PELw.js.br +0 -0
- package/build/client/_app/immutable/chunks/Ce85PELw.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BRJS3bSR.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BRJS3bSR.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.D0irEiqS.js +0 -1
- package/build/client/_app/immutable/entry/start.D0irEiqS.js.br +0 -2
- package/build/client/_app/immutable/entry/start.D0irEiqS.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BdenYwQ0.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BdenYwQ0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Dg4RfBlr.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.Dg4RfBlr.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DW-JPzyt.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DW-JPzyt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.bF7rX0-f.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.bF7rX0-f.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DSMOdSb2.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DSMOdSb2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.cNNZm7gF.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.cNNZm7gF.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.DtjRdVVT.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DtjRdVVT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9._gEbLeEN.js.br +0 -0
- package/build/client/_app/immutable/nodes/9._gEbLeEN.js.gz +0 -0
- package/build/server/chunks/_server.ts-BBLuxvp6.js.map +0 -1
- package/build/server/chunks/client2-B5wCRDQi.js +0 -7
- package/build/server/chunks/pending-requests-B-JNGxpk.js +0 -96
- package/build/server/chunks/pending-requests-B-JNGxpk.js.map +0 -1
package/build/server/manifest.js
CHANGED
|
@@ -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.
|
|
13
|
+
client: {start:"_app/immutable/entry/start.A2buqyYO.js",app:"_app/immutable/entry/app.B-sEFuLK.js",imports:["_app/immutable/entry/start.A2buqyYO.js","_app/immutable/chunks/DlSs5Yra.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/entry/app.B-sEFuLK.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-
|
|
16
|
-
__memo(() => import('./chunks/1-
|
|
17
|
-
__memo(() => import('./chunks/2-
|
|
18
|
-
__memo(() => import('./chunks/3-
|
|
19
|
-
__memo(() => import('./chunks/4-
|
|
20
|
-
__memo(() => import('./chunks/5-
|
|
21
|
-
__memo(() => import('./chunks/6-
|
|
22
|
-
__memo(() => import('./chunks/7-
|
|
23
|
-
__memo(() => import('./chunks/8-
|
|
24
|
-
__memo(() => import('./chunks/9-
|
|
15
|
+
__memo(() => import('./chunks/0-DgzcVTc0.js')),
|
|
16
|
+
__memo(() => import('./chunks/1-iMvE8O_M.js')),
|
|
17
|
+
__memo(() => import('./chunks/2-BJrmwHii.js')),
|
|
18
|
+
__memo(() => import('./chunks/3-Ds3b4DfT.js')),
|
|
19
|
+
__memo(() => import('./chunks/4-BtYdKCVW.js')),
|
|
20
|
+
__memo(() => import('./chunks/5-CvJK3PiH.js')),
|
|
21
|
+
__memo(() => import('./chunks/6-DEbZkQEO.js')),
|
|
22
|
+
__memo(() => import('./chunks/7-BrQeR-CO.js')),
|
|
23
|
+
__memo(() => import('./chunks/8-e5TDwEpx.js')),
|
|
24
|
+
__memo(() => import('./chunks/9-1iqRqatJ.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-
|
|
84
|
+
endpoint: __memo(() => import('./chunks/_server.ts-C-W5J15L.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-
|
|
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":"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"}
|
|
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.A2buqyYO.js\",app:\"_app/immutable/entry/app.B-sEFuLK.js\",imports:[\"_app/immutable/entry/start.A2buqyYO.js\",\"_app/immutable/chunks/DlSs5Yra.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/entry/app.B-sEFuLK.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
|
@@ -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)
|
|
6
|
-
* (reads/updates decisions)
|
|
7
|
-
*
|
|
8
|
-
*
|
|
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 {
|
|
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
|
|
36
|
-
session_id
|
|
37
|
-
tool_name
|
|
38
|
-
tool_input
|
|
39
|
-
decision
|
|
40
|
-
created_at
|
|
41
|
-
decided_at
|
|
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: {
|
|
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(
|
|
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:
|
|
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
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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
|
|
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: {
|
|
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?:
|
|
248
|
+
decision?: DecisionKind;
|
|
131
249
|
status: 'decided' | 'not_found' | 'pending';
|
|
132
250
|
} {
|
|
133
|
-
const entry = pendingRequestsStore.
|
|
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
|
-
|
|
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
|
+
}
|
package/src/lib/types/index.ts
CHANGED
|
@@ -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
|
+
};
|