jishushell 0.6.18 → 0.7.3

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 (343) hide show
  1. package/apps/anythingllm-container.yaml +1 -0
  2. package/apps/browserless-chromium-container.yaml +1 -0
  3. package/apps/filebrowser-container.yaml +1 -0
  4. package/apps/hermes-container.yaml +1 -7
  5. package/apps/immich-container-lite.yaml +337 -0
  6. package/apps/immich-container.yaml +371 -0
  7. package/apps/jishu-kb-container.yaml +26 -21
  8. package/apps/ollama-binary.yaml +1 -0
  9. package/apps/ollama-cpu-container.yaml +1 -0
  10. package/apps/ollama-with-hollama-binary.yaml +2 -0
  11. package/apps/openclaw-binary.yaml +4 -8
  12. package/apps/openclaw-container.yaml +1 -7
  13. package/apps/openclaw-with-ollama-container.yaml +1 -0
  14. package/apps/openclaw-with-searxng-container.yaml +20 -0
  15. package/apps/searxng-container.yaml +20 -0
  16. package/apps/weknora-container.yaml +5 -0
  17. package/dependencies/jishushell-panel-0.7.3.tgz +0 -0
  18. package/dist/cli/core.js +1 -1
  19. package/dist/cli/core.js.map +1 -1
  20. package/dist/cli/doctor.js +96 -0
  21. package/dist/cli/doctor.js.map +1 -1
  22. package/dist/config.d.ts +9 -1
  23. package/dist/config.js +72 -2
  24. package/dist/config.js.map +1 -1
  25. package/dist/install.js +60 -19
  26. package/dist/install.js.map +1 -1
  27. package/dist/routes/admin.d.ts +2 -0
  28. package/dist/routes/admin.js +72 -0
  29. package/dist/routes/admin.js.map +1 -0
  30. package/dist/routes/docker.d.ts +2 -0
  31. package/dist/routes/docker.js +58 -0
  32. package/dist/routes/docker.js.map +1 -0
  33. package/dist/routes/file-mounts.js +5 -8
  34. package/dist/routes/file-mounts.js.map +1 -1
  35. package/dist/routes/instances.d.ts +0 -14
  36. package/dist/routes/instances.js +44 -1184
  37. package/dist/routes/instances.js.map +1 -1
  38. package/dist/server.d.ts +6 -0
  39. package/dist/server.js +53 -20
  40. package/dist/server.js.map +1 -1
  41. package/dist/services/app-common/catalog-service.js +15 -5
  42. package/dist/services/app-common/catalog-service.js.map +1 -1
  43. package/dist/services/app-common/delete-service.js +5 -0
  44. package/dist/services/app-common/delete-service.js.map +1 -1
  45. package/dist/services/app-common/instance-store.js +3 -0
  46. package/dist/services/app-common/instance-store.js.map +1 -1
  47. package/dist/services/app-common/lifecycle-service.js +12 -4
  48. package/dist/services/app-common/lifecycle-service.js.map +1 -1
  49. package/dist/services/app-common/ownership.d.ts +3 -0
  50. package/dist/services/app-common/ownership.js +11 -0
  51. package/dist/services/app-common/ownership.js.map +1 -0
  52. package/dist/services/app-common/runtime-facts.js +2 -0
  53. package/dist/services/app-common/runtime-facts.js.map +1 -1
  54. package/dist/services/app-common/spec-materializer.d.ts +0 -1
  55. package/dist/services/app-common/spec-materializer.js +21 -87
  56. package/dist/services/app-common/spec-materializer.js.map +1 -1
  57. package/dist/services/app-common/status-refresh.js +25 -13
  58. package/dist/services/app-common/status-refresh.js.map +1 -1
  59. package/dist/services/app-modules/browserless/routes.js +5 -3
  60. package/dist/services/app-modules/browserless/routes.js.map +1 -1
  61. package/dist/services/capabilities/contract.d.ts +1 -2
  62. package/dist/services/capabilities/contract.js +0 -10
  63. package/dist/services/capabilities/contract.js.map +1 -1
  64. package/dist/services/capabilities/endpoint-validator.js +0 -1
  65. package/dist/services/capabilities/endpoint-validator.js.map +1 -1
  66. package/dist/services/capabilities/health.js +1 -1
  67. package/dist/services/capabilities/health.js.map +1 -1
  68. package/dist/services/capability-proxy/http.d.ts +7 -0
  69. package/dist/services/capability-proxy/http.js +555 -0
  70. package/dist/services/capability-proxy/http.js.map +1 -0
  71. package/dist/services/capability-proxy/terminal.d.ts +4 -0
  72. package/dist/services/capability-proxy/terminal.js +179 -0
  73. package/dist/services/capability-proxy/terminal.js.map +1 -0
  74. package/dist/services/connections/admin.js +19 -9
  75. package/dist/services/connections/admin.js.map +1 -1
  76. package/dist/services/connections/apply.d.ts +3 -9
  77. package/dist/services/connections/apply.js +0 -29
  78. package/dist/services/connections/apply.js.map +1 -1
  79. package/dist/services/connections/transactor.js +2 -2
  80. package/dist/services/connections/transactor.js.map +1 -1
  81. package/dist/services/files/bootstrap.d.ts +7 -0
  82. package/dist/services/files/bootstrap.js +16 -0
  83. package/dist/services/files/bootstrap.js.map +1 -0
  84. package/dist/services/files/photos/upload-page.d.ts +2 -0
  85. package/dist/services/files/photos/upload-page.js +248 -0
  86. package/dist/services/files/photos/upload-page.js.map +1 -0
  87. package/dist/services/files/photos/upload-store.d.ts +74 -0
  88. package/dist/services/files/photos/upload-store.js +432 -0
  89. package/dist/services/files/photos/upload-store.js.map +1 -0
  90. package/dist/services/http/proxy-utils.d.ts +7 -0
  91. package/dist/services/http/proxy-utils.js +29 -0
  92. package/dist/services/http/proxy-utils.js.map +1 -0
  93. package/dist/services/http/request-utils.d.ts +3 -0
  94. package/dist/services/http/request-utils.js +23 -0
  95. package/dist/services/http/request-utils.js.map +1 -0
  96. package/dist/services/instances/manager.d.ts +6 -5
  97. package/dist/services/instances/manager.js +45 -51
  98. package/dist/services/instances/manager.js.map +1 -1
  99. package/dist/services/instances/pairing.d.ts +17 -0
  100. package/dist/services/instances/pairing.js +53 -0
  101. package/dist/services/instances/pairing.js.map +1 -0
  102. package/dist/services/instances/status.d.ts +2 -0
  103. package/dist/services/instances/status.js +11 -0
  104. package/dist/services/instances/status.js.map +1 -0
  105. package/dist/services/integrations/hermes/integration.d.ts +1 -1
  106. package/dist/services/integrations/hermes/integration.js +7 -8
  107. package/dist/services/integrations/hermes/integration.js.map +1 -1
  108. package/dist/services/integrations/immich/client.d.ts +93 -0
  109. package/dist/services/integrations/immich/client.js +458 -0
  110. package/dist/services/integrations/immich/client.js.map +1 -0
  111. package/dist/services/integrations/immich/config.d.ts +15 -0
  112. package/dist/services/integrations/immich/config.js +178 -0
  113. package/dist/services/integrations/immich/config.js.map +1 -0
  114. package/dist/services/integrations/immich/discovery.d.ts +9 -0
  115. package/dist/services/integrations/immich/discovery.js +101 -0
  116. package/dist/services/integrations/immich/discovery.js.map +1 -0
  117. package/dist/services/integrations/immich/gallery-renderer.d.ts +5 -0
  118. package/dist/services/integrations/immich/gallery-renderer.js +150 -0
  119. package/dist/services/integrations/immich/gallery-renderer.js.map +1 -0
  120. package/dist/services/integrations/immich/immich-shim.d.ts +11 -0
  121. package/dist/services/integrations/immich/immich-shim.js +439 -0
  122. package/dist/services/integrations/immich/immich-shim.js.map +1 -0
  123. package/dist/services/integrations/immich/integration.d.ts +18 -0
  124. package/dist/services/integrations/immich/integration.js +64 -0
  125. package/dist/services/integrations/immich/integration.js.map +1 -0
  126. package/dist/services/integrations/immich/photo-library.d.ts +4 -0
  127. package/dist/services/integrations/immich/photo-library.js +63 -0
  128. package/dist/services/integrations/immich/photo-library.js.map +1 -0
  129. package/dist/services/integrations/immich/review-executor.d.ts +3 -0
  130. package/dist/services/integrations/immich/review-executor.js +41 -0
  131. package/dist/services/integrations/immich/review-executor.js.map +1 -0
  132. package/dist/services/integrations/immich/review-session-service.d.ts +27 -0
  133. package/dist/services/integrations/immich/review-session-service.js +206 -0
  134. package/dist/services/integrations/immich/review-session-service.js.map +1 -0
  135. package/dist/services/integrations/immich/review-store.d.ts +47 -0
  136. package/dist/services/integrations/immich/review-store.js +347 -0
  137. package/dist/services/integrations/immich/review-store.js.map +1 -0
  138. package/dist/services/integrations/immich/routes.d.ts +7 -0
  139. package/dist/services/integrations/immich/routes.js +363 -0
  140. package/dist/services/integrations/immich/routes.js.map +1 -0
  141. package/dist/services/integrations/immich/types.d.ts +186 -0
  142. package/dist/services/integrations/immich/types.js +2 -0
  143. package/dist/services/integrations/immich/types.js.map +1 -0
  144. package/dist/services/integrations/index.d.ts +1 -0
  145. package/dist/services/integrations/index.js +1 -0
  146. package/dist/services/integrations/index.js.map +1 -1
  147. package/dist/services/integrations/installable/installers/integration.js +113 -7
  148. package/dist/services/integrations/installable/installers/integration.js.map +1 -1
  149. package/dist/services/integrations/jishukb/integration.d.ts +3 -1
  150. package/dist/services/integrations/jishukb/integration.js +121 -10
  151. package/dist/services/integrations/jishukb/integration.js.map +1 -1
  152. package/dist/services/integrations/openclaw/integration.d.ts +21 -7
  153. package/dist/services/integrations/openclaw/integration.js +385 -158
  154. package/dist/services/integrations/openclaw/integration.js.map +1 -1
  155. package/dist/services/integrations/openclaw/jishukb-native-mcp.d.ts +58 -0
  156. package/dist/services/integrations/openclaw/jishukb-native-mcp.js +373 -0
  157. package/dist/services/integrations/openclaw/jishukb-native-mcp.js.map +1 -0
  158. package/dist/services/integrations/openclaw/jishukb-shim.d.ts +8 -4
  159. package/dist/services/integrations/openclaw/jishukb-shim.js +624 -17
  160. package/dist/services/integrations/openclaw/jishukb-shim.js.map +1 -1
  161. package/dist/services/integrations/openclaw/mcporter.d.ts +13 -0
  162. package/dist/services/integrations/openclaw/mcporter.js +31 -0
  163. package/dist/services/integrations/openclaw/mcporter.js.map +1 -1
  164. package/dist/services/integrations/openclaw/native-mcp.d.ts +48 -0
  165. package/dist/services/integrations/openclaw/native-mcp.js +125 -0
  166. package/dist/services/integrations/openclaw/native-mcp.js.map +1 -0
  167. package/dist/services/integrations/openclaw/routes.js +4 -1
  168. package/dist/services/integrations/openclaw/routes.js.map +1 -1
  169. package/dist/services/integrations/types.d.ts +5 -17
  170. package/dist/services/repair/runtime-repair.js +68 -1
  171. package/dist/services/repair/runtime-repair.js.map +1 -1
  172. package/dist/services/runtime/docker-network.d.ts +8 -0
  173. package/dist/services/runtime/docker-network.js +123 -0
  174. package/dist/services/runtime/docker-network.js.map +1 -0
  175. package/dist/services/runtime/driver-registry.d.ts +4 -0
  176. package/dist/services/runtime/driver-registry.js.map +1 -1
  177. package/dist/services/runtime/drivers/nomad.d.ts +1 -0
  178. package/dist/services/runtime/drivers/nomad.js +35 -5
  179. package/dist/services/runtime/drivers/nomad.js.map +1 -1
  180. package/dist/services/runtime/service-manager.d.ts +2 -0
  181. package/dist/services/runtime/service-manager.js +18 -0
  182. package/dist/services/runtime/service-manager.js.map +1 -0
  183. package/dist/services/runtime/types.d.ts +1 -0
  184. package/dist/services/runtime/workload-compiler.js +29 -4
  185. package/dist/services/runtime/workload-compiler.js.map +1 -1
  186. package/dist/services/setup/setup-manager.js +29 -73
  187. package/dist/services/setup/setup-manager.js.map +1 -1
  188. package/dist/services/system/runtime-ownership.d.ts +36 -0
  189. package/dist/services/system/runtime-ownership.js +250 -0
  190. package/dist/services/system/runtime-ownership.js.map +1 -0
  191. package/dist/services/system/system-reconciler.js +53 -0
  192. package/dist/services/system/system-reconciler.js.map +1 -1
  193. package/dist/types.d.ts +19 -3
  194. package/dist/utils/path-safety.js +1 -1
  195. package/dist/utils/service-user.d.ts +13 -0
  196. package/dist/utils/service-user.js +129 -0
  197. package/dist/utils/service-user.js.map +1 -0
  198. package/install/jishu-install.sh +0 -1
  199. package/node_modules/brace-expansion/dist/commonjs/index.js +24 -14
  200. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  201. package/node_modules/brace-expansion/dist/esm/index.js +24 -14
  202. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  203. package/node_modules/brace-expansion/package.json +2 -2
  204. package/node_modules/fast-uri/index.js +1 -1
  205. package/node_modules/fast-uri/package.json +1 -1
  206. package/node_modules/fast-uri/test/security.test.js +28 -0
  207. package/node_modules/fastify/SECURITY.md +1 -1
  208. package/node_modules/fastify/SPONSORS.md +6 -4
  209. package/node_modules/fastify/docs/Guides/Database.md +0 -28
  210. package/node_modules/fastify/docs/Guides/Ecosystem.md +13 -2
  211. package/node_modules/fastify/docs/Guides/Serverless.md +2 -2
  212. package/node_modules/fastify/docs/Guides/Write-Plugin.md +1 -1
  213. package/node_modules/fastify/docs/Reference/Encapsulation.md +27 -26
  214. package/node_modules/fastify/docs/Reference/Errors.md +10 -4
  215. package/node_modules/fastify/docs/Reference/HTTP2.md +10 -10
  216. package/node_modules/fastify/docs/Reference/Hooks.md +4 -4
  217. package/node_modules/fastify/docs/Reference/Index.md +14 -16
  218. package/node_modules/fastify/docs/Reference/LTS.md +12 -13
  219. package/node_modules/fastify/docs/Reference/Lifecycle.md +9 -8
  220. package/node_modules/fastify/docs/Reference/Logging.md +44 -39
  221. package/node_modules/fastify/docs/Reference/Middleware.md +21 -25
  222. package/node_modules/fastify/docs/Reference/Principles.md +2 -2
  223. package/node_modules/fastify/docs/Reference/Reply.md +6 -1
  224. package/node_modules/fastify/docs/Reference/Request.md +27 -16
  225. package/node_modules/fastify/docs/Reference/Routes.md +5 -2
  226. package/node_modules/fastify/docs/Reference/Server.md +31 -3
  227. package/node_modules/fastify/docs/Reference/Type-Providers.md +29 -5
  228. package/node_modules/fastify/docs/Reference/Validation-and-Serialization.md +15 -2
  229. package/node_modules/fastify/docs/Reference/Warnings.md +7 -6
  230. package/node_modules/fastify/eslint.config.js +7 -2
  231. package/node_modules/fastify/fastify.d.ts +8 -3
  232. package/node_modules/fastify/fastify.js +43 -14
  233. package/node_modules/fastify/lib/content-type-parser.js +13 -1
  234. package/node_modules/fastify/lib/decorate.js +11 -3
  235. package/node_modules/fastify/lib/error-handler.js +4 -3
  236. package/node_modules/fastify/lib/error-serializer.js +59 -59
  237. package/node_modules/fastify/lib/errors.js +16 -1
  238. package/node_modules/fastify/lib/four-oh-four.js +14 -9
  239. package/node_modules/fastify/lib/handle-request.js +11 -5
  240. package/node_modules/fastify/lib/plugin-override.js +2 -1
  241. package/node_modules/fastify/lib/plugin-utils.js +5 -5
  242. package/node_modules/fastify/lib/reply.js +63 -8
  243. package/node_modules/fastify/lib/request.js +14 -4
  244. package/node_modules/fastify/lib/route.js +20 -6
  245. package/node_modules/fastify/lib/schema-controller.js +1 -1
  246. package/node_modules/fastify/lib/schemas.js +37 -30
  247. package/node_modules/fastify/lib/symbols.js +3 -1
  248. package/node_modules/fastify/lib/validation.js +1 -13
  249. package/node_modules/fastify/lib/warnings.js +3 -3
  250. package/node_modules/fastify/package.json +13 -15
  251. package/node_modules/fastify/scripts/validate-ecosystem-links.js +1 -0
  252. package/node_modules/fastify/test/bundler/esbuild/package.json +1 -1
  253. package/node_modules/fastify/test/close-pipelining.test.js +1 -2
  254. package/node_modules/fastify/test/custom-http-server.test.js +38 -0
  255. package/node_modules/fastify/test/decorator-instance-properties.test.js +63 -0
  256. package/node_modules/fastify/test/diagnostics-channel/async-error-handler.test.js +74 -0
  257. package/node_modules/fastify/test/hooks.test.js +23 -0
  258. package/node_modules/fastify/test/http-methods/get.test.js +1 -1
  259. package/node_modules/fastify/test/http2/plain.test.js +135 -0
  260. package/node_modules/fastify/test/http2/secure-with-fallback.test.js +1 -1
  261. package/node_modules/fastify/test/https/https.test.js +1 -2
  262. package/node_modules/fastify/test/internals/errors.test.js +31 -1
  263. package/node_modules/fastify/test/internals/plugin.test.js +3 -1
  264. package/node_modules/fastify/test/internals/request.test.js +27 -3
  265. package/node_modules/fastify/test/internals/schema-controller-perf.test.js +33 -0
  266. package/node_modules/fastify/test/logger/logging.test.js +18 -1
  267. package/node_modules/fastify/test/logger/options.test.js +38 -1
  268. package/node_modules/fastify/test/reply-error.test.js +1 -1
  269. package/node_modules/fastify/test/reply-trailers.test.js +70 -0
  270. package/node_modules/fastify/test/request-media-type.test.js +105 -0
  271. package/node_modules/fastify/test/route-prefix.test.js +34 -0
  272. package/node_modules/fastify/test/router-options.test.js +222 -11
  273. package/node_modules/fastify/test/schema-serialization.test.js +108 -0
  274. package/node_modules/fastify/test/schema-validation.test.js +24 -0
  275. package/node_modules/fastify/test/scripts/validate-ecosystem-links.test.js +40 -57
  276. package/node_modules/fastify/test/throw.test.js +14 -0
  277. package/node_modules/fastify/test/trust-proxy.test.js +21 -0
  278. package/node_modules/fastify/test/types/content-type-parser.tst.ts +70 -0
  279. package/node_modules/fastify/test/types/{decorate-request-reply.test-d.ts → decorate-request-reply.tst.ts} +4 -4
  280. package/node_modules/fastify/test/types/{dummy-plugin.ts → dummy-plugin.mts} +1 -1
  281. package/node_modules/fastify/test/types/errors.tst.ts +91 -0
  282. package/node_modules/fastify/test/types/fastify.tst.ts +351 -0
  283. package/node_modules/fastify/test/types/hooks.tst.ts +578 -0
  284. package/node_modules/fastify/test/types/instance.tst.ts +597 -0
  285. package/node_modules/fastify/test/types/{logger.test-d.ts → logger.tst.ts} +61 -62
  286. package/node_modules/fastify/test/types/plugin.tst.ts +96 -0
  287. package/node_modules/fastify/test/types/register.tst.ts +245 -0
  288. package/node_modules/fastify/test/types/reply.tst.ts +297 -0
  289. package/node_modules/fastify/test/types/request.tst.ts +199 -0
  290. package/node_modules/fastify/test/types/route.tst.ts +576 -0
  291. package/node_modules/fastify/test/types/{schema.test-d.ts → schema.tst.ts} +22 -22
  292. package/node_modules/fastify/test/types/{serverFactory.test-d.ts → serverFactory.tst.ts} +4 -4
  293. package/node_modules/fastify/test/types/tsconfig.json +9 -0
  294. package/node_modules/fastify/test/types/{type-provider.test-d.ts → type-provider.tst.ts} +256 -250
  295. package/node_modules/fastify/test/types/using.tst.ts +14 -0
  296. package/node_modules/fastify/types/errors.d.ts +3 -0
  297. package/node_modules/fastify/types/request.d.ts +23 -2
  298. package/node_modules/jishushell-panel/output/public/assets/{ApiKeyField-NKcbHjNz.js → ApiKeyField-Ce5d1xna.js} +1 -1
  299. package/node_modules/jishushell-panel/output/public/assets/{Dashboard-Da1fL38t.js → Dashboard-BXame3yg.js} +1 -1
  300. package/node_modules/jishushell-panel/output/public/assets/{HermesChatPanel-DZvmYsoh.js → HermesChatPanel-BHZtPCJd.js} +1 -1
  301. package/node_modules/jishushell-panel/output/public/assets/{HermesConfigForm-BLUWlKwm.js → HermesConfigForm-CB3GbNX9.js} +1 -1
  302. package/node_modules/jishushell-panel/output/public/assets/{InitPassword-BAKsshzk.js → InitPassword-Boab9F6g.js} +1 -1
  303. package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-DrIWCqo-.js +14 -0
  304. package/node_modules/jishushell-panel/output/public/assets/{Login-DHeOmwI8.js → Login-CzpOkNau.js} +1 -1
  305. package/node_modules/jishushell-panel/output/public/assets/NewInstance-CANXyCcL.js +1 -0
  306. package/node_modules/jishushell-panel/output/public/assets/{ProviderRecommendations-H0ByEYF0.js → ProviderRecommendations-BABo9VOC.js} +1 -1
  307. package/node_modules/jishushell-panel/output/public/assets/Settings-CKp5XxFh.js +1 -0
  308. package/node_modules/jishushell-panel/output/public/assets/Setup-C7xVDPow.js +1 -0
  309. package/node_modules/jishushell-panel/output/public/assets/{WeixinLoginPanel-D-T6BxkQ.js → WeixinLoginPanel-B765Xz4C.js} +1 -1
  310. package/node_modules/jishushell-panel/output/public/assets/{index-ERt6_ngA.js → index-Bs6DSbiR.js} +6 -6
  311. package/node_modules/jishushell-panel/output/public/assets/{registry-DF93EzIb.js → registry-sWIZsIEF.js} +2 -2
  312. package/node_modules/jishushell-panel/output/public/assets/{usePolling-DeoThIQn.js → usePolling-D4IDOQd_.js} +1 -1
  313. package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-Df8aUdv8.js +1 -0
  314. package/node_modules/jishushell-panel/output/public/assets/{vendor-react-Cc84NArf.js → vendor-react-0L0rjmYG.js} +3 -3
  315. package/node_modules/jishushell-panel/output/public/index.html +3 -3
  316. package/node_modules/jishushell-panel/package.json +1 -1
  317. package/node_modules/semver/classes/range.js +6 -2
  318. package/node_modules/semver/package.json +1 -1
  319. package/package.json +4 -4
  320. package/scripts/check-app-spec.mjs +4 -12
  321. package/scripts/check-architecture-boundaries.mjs +178 -0
  322. package/scripts/pack-gui-and-send-pi.sh +5 -3
  323. package/dependencies/jishushell-panel-0.6.18.tgz +0 -0
  324. package/dist/services/connections/suggestions.d.ts +0 -27
  325. package/dist/services/connections/suggestions.js +0 -124
  326. package/dist/services/connections/suggestions.js.map +0 -1
  327. package/node_modules/fastify/test/types/content-type-parser.test-d.ts +0 -72
  328. package/node_modules/fastify/test/types/errors.test-d.ts +0 -90
  329. package/node_modules/fastify/test/types/fastify.test-d.ts +0 -352
  330. package/node_modules/fastify/test/types/hooks.test-d.ts +0 -550
  331. package/node_modules/fastify/test/types/import.ts +0 -2
  332. package/node_modules/fastify/test/types/instance.test-d.ts +0 -588
  333. package/node_modules/fastify/test/types/plugin.test-d.ts +0 -97
  334. package/node_modules/fastify/test/types/register.test-d.ts +0 -237
  335. package/node_modules/fastify/test/types/reply.test-d.ts +0 -254
  336. package/node_modules/fastify/test/types/request.test-d.ts +0 -188
  337. package/node_modules/fastify/test/types/route.test-d.ts +0 -553
  338. package/node_modules/fastify/test/types/using.test-d.ts +0 -17
  339. package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-Dgyc_TX5.js +0 -14
  340. package/node_modules/jishushell-panel/output/public/assets/NewInstance-CIy0cYtp.js +0 -1
  341. package/node_modules/jishushell-panel/output/public/assets/Settings-DAT-UMfP.js +0 -1
  342. package/node_modules/jishushell-panel/output/public/assets/Setup-g3uckFYR.js +0 -1
  343. package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-CS8DFbkQ.js +0 -1
@@ -9,10 +9,10 @@
9
9
  from the instance cards, making the panel look like Hermes. -->
10
10
  <link rel="icon" type="image/png" href="/favicon.png" />
11
11
  <title>JishuShell</title>
12
- <script type="module" crossorigin src="/assets/index-ERt6_ngA.js"></script>
12
+ <script type="module" crossorigin src="/assets/index-Bs6DSbiR.js"></script>
13
13
  <link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
14
- <link rel="modulepreload" crossorigin href="/assets/vendor-i18n-CS8DFbkQ.js">
15
- <link rel="modulepreload" crossorigin href="/assets/vendor-react-Cc84NArf.js">
14
+ <link rel="modulepreload" crossorigin href="/assets/vendor-i18n-Df8aUdv8.js">
15
+ <link rel="modulepreload" crossorigin href="/assets/vendor-react-0L0rjmYG.js">
16
16
  <link rel="modulepreload" crossorigin href="/assets/api-C70Gt678.js">
17
17
  <link rel="stylesheet" crossorigin href="/assets/index-DnnqTf7s.css">
18
18
  </head>
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jishushell-panel",
3
- "version": "0.6.18",
3
+ "version": "0.7.3",
4
4
  "jishushellCoreMinVersion": "0.5.28",
5
5
  "description": "JishuShell panel server and web frontend",
6
6
  "type": "module",
@@ -299,6 +299,10 @@ const replaceTildes = (comp, options) => {
299
299
 
300
300
  const replaceTilde = (comp, options) => {
301
301
  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]
302
+ // if we're including prereleases in the match, then the lower bound is
303
+ // -0, the lowest possible prerelease value, just like x-ranges and carets.
304
+ // this keeps `~1.2` equivalent to the `1.2.x` x-range it's documented as.
305
+ const z = options.includePrerelease ? '-0' : ''
302
306
  return comp.replace(r, (_, M, m, p, pr) => {
303
307
  debug('tilde', comp, _, M, m, p, pr)
304
308
  let ret
@@ -306,10 +310,10 @@ const replaceTilde = (comp, options) => {
306
310
  if (isX(M)) {
307
311
  ret = ''
308
312
  } else if (isX(m)) {
309
- ret = `>=${M}.0.0 <${+M + 1}.0.0-0`
313
+ ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`
310
314
  } else if (isX(p)) {
311
315
  // ~1.2 == >=1.2.0 <1.3.0-0
312
- ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`
316
+ ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`
313
317
  } else if (pr) {
314
318
  debug('replaceTilde pr', pr)
315
319
  ret = `>=${M}.${m}.${p}-${pr
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "semver",
3
- "version": "7.8.4",
3
+ "version": "7.8.5",
4
4
  "description": "The semantic version parser used by npm.",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jishushell",
3
- "version": "0.6.18",
3
+ "version": "0.7.3",
4
4
  "description": "JishuShell — Raspberry Pi server management panel (Core + Web UI)",
5
5
  "type": "module",
6
6
  "jishushellPanel": {
@@ -28,7 +28,7 @@
28
28
  "openclaw-entry.sh",
29
29
  "INSTALL-NOTICE",
30
30
  "THIRD-PARTY-NOTICES",
31
- "dependencies/jishushell-panel-0.6.18.tgz"
31
+ "dependencies/jishushell-panel-0.7.3.tgz"
32
32
  ],
33
33
  "scripts": {
34
34
  "build": "npm install && npm run compile:backend",
@@ -62,7 +62,7 @@
62
62
  "build:pack": "npm run build && npm pack",
63
63
  "build:pack:cli": "npm run build:pack",
64
64
  "build:pack:gui": "npm run build && node scripts/pack-with-gui.mjs",
65
- "check:contracts": "node --experimental-strip-types scripts/check-integration-isolation.ts && node scripts/check-app-path-boundaries.mjs && node scripts/check-open-core-boundaries.mjs && node scripts/check-colima-launchd.mjs",
65
+ "check:contracts": "node --experimental-strip-types scripts/check-integration-isolation.ts && node scripts/check-app-path-boundaries.mjs && node scripts/check-architecture-boundaries.mjs && node scripts/check-open-core-boundaries.mjs && node scripts/check-colima-launchd.mjs",
66
66
  "check:open-core-boundaries": "node scripts/check-open-core-boundaries.mjs",
67
67
  "check:i18n": "echo 'i18n checks live in sibling repo ../jishushell-panel.'",
68
68
  "check:app-spec": "node scripts/check-app-spec.mjs",
@@ -95,7 +95,7 @@
95
95
  "jsonwebtoken": "^9.0.2",
96
96
  "systeminformation": "^5.23.0",
97
97
  "yaml": "^2.8.3",
98
- "jishushell-panel": "file:dependencies/jishushell-panel-0.6.18.tgz"
98
+ "jishushell-panel": "file:dependencies/jishushell-panel-0.7.3.tgz"
99
99
  },
100
100
  "optionalDependencies": {
101
101
  "macos-temperature-sensor": "^1.0.4"
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * Three provide classes:
6
6
  * A. Bindable category — capability has CAPABILITY_CATEGORIES prefix
7
- * (`llm-` / `search-` / `browser-` / `mcp-`). Must declare task,
7
+ * (`llm-` / `search-` / `browser-`). Must declare task,
8
8
  * port (resolvable to a task port via host_port ?? port), protocol
9
9
  * from category whitelist, optional health, description.
10
10
  * B. Legacy bindable exact — capability is in LEGACY_BINDABLE_EXACT_ALLOWLIST
@@ -34,14 +34,13 @@ const APPS_DIR = process.env.APPS_DIR_OVERRIDE ?? join(__dirname, "..", "apps");
34
34
  // deliberately small and closed: provider app ids stay free-form, but
35
35
  // matching protocol must be explicit and statically checkable.
36
36
  const CAPABILITY_CATEGORIES = new Set([
37
- "llm", "search", "browser", "mcp", "files", "knowledge", "ui", "terminal",
37
+ "llm", "search", "browser", "files", "knowledge", "ui", "terminal",
38
38
  ]);
39
39
 
40
40
  const INTERFACES_BY_KIND = {
41
41
  llm: new Set(["openai-compatible"]),
42
42
  search: new Set(["searxng-json"]),
43
43
  browser: new Set(["cdp-ws"]),
44
- mcp: new Set(["mcp-http", "mcp-sse", "mcp-stdio"]),
45
44
  files: new Set(["web-file-manager"]),
46
45
  knowledge: new Set(["kb-search"]),
47
46
  ui: new Set(["web-ui"]),
@@ -68,7 +67,6 @@ const PROTOCOL_WHITELIST = {
68
67
  llm: new Set(["http", "https"]),
69
68
  search: new Set(["http", "https"]),
70
69
  browser: new Set(["ws", "wss", "http", "https"]),
71
- mcp: new Set(["http", "https", "ws", "sse"]),
72
70
  // Filebrowser exposes an HTTP Web UI under /apps/filebrowser; webdav adds
73
71
  // PROPFIND/PUT over the same HTTP origin. Both fit `http(s)`.
74
72
  files: new Set(["http", "https"]),
@@ -99,12 +97,6 @@ function inferLegacyInterface(kind, capability, protocol) {
99
97
  case "knowledge": return "kb-search";
100
98
  case "ui": return "web-ui";
101
99
  case "terminal": return "terminal";
102
- case "mcp": {
103
- const normalized = typeof protocol === "string" ? protocol.trim().toLowerCase() : "";
104
- if (normalized === "sse") return "mcp-sse";
105
- if (normalized === "stdio") return "mcp-stdio";
106
- return "mcp-http";
107
- }
108
100
  default: return null;
109
101
  }
110
102
  }
@@ -440,8 +432,8 @@ for (const { file, spec } of specs) {
440
432
 
441
433
  // ── §17 (PR 8): tool_schema validation — applies to any bindable
442
434
  // capability that an LLM integration hook may turn into an MCP
443
- // server entry (i.e. category A search-/mcp-, plus any future
444
- // bindable cap). Warn-only this release; promoted to err in v0.5.
435
+ // server entry (i.e. category A search-, plus any future bindable
436
+ // cap). Warn-only this release; promoted to err in v0.5.
445
437
  if (provide.tool_schema !== undefined) {
446
438
  const ts = provide.tool_schema;
447
439
  if (typeof ts !== "object" || ts === null) {
@@ -0,0 +1,178 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Guard high-risk architecture boundaries that AI/codegen commonly crosses.
4
+ *
5
+ * These are intentionally small string checks. They do not prove correctness;
6
+ * they catch the easy regressions before review:
7
+ * - writing instance.json outside canonical writers
8
+ * - bringing install-time port shifting back into the AppSpec materializer
9
+ * - adding product-specific code to the generic instances route
10
+ */
11
+
12
+ import { readdirSync, readFileSync, statSync } from "node:fs";
13
+ import { relative, resolve, sep } from "node:path";
14
+
15
+ const REPO_ROOT = resolve(import.meta.dirname ?? ".", "..");
16
+ const SRC_ROOT = resolve(REPO_ROOT, "src");
17
+
18
+ const ALLOWED_INSTANCE_METADATA_WRITERS = new Set([
19
+ "src/services/app-common/create-pipeline.ts",
20
+ "src/services/app-common/instance-store.ts",
21
+ "src/services/instances/manager.ts",
22
+ ]);
23
+
24
+ const INSTANCE_METADATA_WRITE_PATTERNS = [
25
+ /\bsafeWriteJson\s*\(\s*[^;\n]*(?:INSTANCE_METADATA_FILENAME|instanceMetaPath\s*\(|["']instance\.json["'])/,
26
+ /\bwriteFileSync\s*\(\s*[^;\n]*(?:INSTANCE_METADATA_FILENAME|instanceMetaPath\s*\(|["']instance\.json["'])/,
27
+ /\bsafeWriteJson\s*\(\s*(?:metaPath|instancePath)\b/,
28
+ /\bwriteFileSync\s*\(\s*(?:metaPath|instancePath)\b/,
29
+ ];
30
+
31
+ const MATERIALIZER_FORBIDDEN_PATTERNS = [
32
+ {
33
+ pattern: /\bcollectDeclaredPorts\b/,
34
+ rule: "install materializer must not collect AppSpec ports for conflict checks",
35
+ },
36
+ {
37
+ pattern: /\bbuildPortShiftMap\b|\bportShift(?:Map)?\b/,
38
+ rule: "install materializer must not shift AppSpec port values",
39
+ },
40
+ {
41
+ pattern: /\breplacePortTokens\b/,
42
+ rule: "install materializer must not rewrite arbitrary YAML strings/numbers as ports",
43
+ },
44
+ {
45
+ pattern: /\bisPortInUse\s*\(/,
46
+ rule: "port availability belongs to the Core runtime allocator, not install materialization",
47
+ },
48
+ ];
49
+
50
+ const INSTANCE_ROUTE_PRODUCT_PATTERNS = [
51
+ {
52
+ pattern: /\bopenclaw\b/i,
53
+ rule: "OpenClaw-specific HTTP behavior belongs in src/services/integrations/openclaw",
54
+ },
55
+ {
56
+ pattern: /\bhermes\b/i,
57
+ rule: "Hermes-specific HTTP behavior belongs in src/services/integrations/hermes",
58
+ },
59
+ {
60
+ pattern: /\bjishukb\b|\bjishu-kb\b/i,
61
+ rule: "JishuKB-specific HTTP behavior belongs in its integration/app boundary",
62
+ },
63
+ {
64
+ pattern: /\banythingllm\b/i,
65
+ rule: "AnythingLLM-specific HTTP behavior belongs in its integration/app boundary",
66
+ },
67
+ {
68
+ pattern: /\bbrowserless\b/i,
69
+ rule: "Browserless-specific HTTP behavior belongs in app-modules/browserless",
70
+ },
71
+ ];
72
+
73
+ function isSourceFile(path) {
74
+ return path.endsWith(".ts") && !path.endsWith(".d.ts");
75
+ }
76
+
77
+ function* walk(dir) {
78
+ for (const entry of readdirSync(dir)) {
79
+ const full = resolve(dir, entry);
80
+ const stat = statSync(full);
81
+ if (stat.isDirectory()) {
82
+ yield* walk(full);
83
+ } else if (stat.isFile() && isSourceFile(full)) {
84
+ yield full;
85
+ }
86
+ }
87
+ }
88
+
89
+ function relPath(abs) {
90
+ return relative(REPO_ROOT, abs).split(sep).join("/");
91
+ }
92
+
93
+ function isCommentLine(line) {
94
+ const trimmed = line.trimStart();
95
+ return trimmed.startsWith("//") || trimmed.startsWith("*") || trimmed.startsWith("/*");
96
+ }
97
+
98
+ function lineNumberAt(content, index) {
99
+ return content.slice(0, index).split("\n").length;
100
+ }
101
+
102
+ const violations = [];
103
+
104
+ for (const abs of walk(SRC_ROOT)) {
105
+ const rel = relPath(abs);
106
+ if (rel.includes("/legacy-migrator/") || rel.includes("/repair/")) continue;
107
+
108
+ const content = readFileSync(abs, "utf-8");
109
+ const allowedInstanceWriter = ALLOWED_INSTANCE_METADATA_WRITERS.has(rel);
110
+
111
+ if (!allowedInstanceWriter) {
112
+ for (const pattern of INSTANCE_METADATA_WRITE_PATTERNS) {
113
+ const re = new RegExp(pattern.source, "g");
114
+ let match;
115
+ while ((match = re.exec(content)) !== null) {
116
+ violations.push({
117
+ file: rel,
118
+ line: lineNumberAt(content, match.index),
119
+ rule: "instance-metadata-write-boundary",
120
+ detail: "Write instance.json through canonical instance-store/instances manager helpers.",
121
+ text: match[0],
122
+ });
123
+ }
124
+ }
125
+ }
126
+ }
127
+
128
+ {
129
+ const file = "src/services/app-common/spec-materializer.ts";
130
+ const content = readFileSync(resolve(REPO_ROOT, file), "utf-8");
131
+ const lines = content.split("\n");
132
+ for (let i = 0; i < lines.length; i += 1) {
133
+ const line = lines[i];
134
+ if (isCommentLine(line)) continue;
135
+ for (const { pattern, rule } of MATERIALIZER_FORBIDDEN_PATTERNS) {
136
+ if (!pattern.test(line)) continue;
137
+ violations.push({
138
+ file,
139
+ line: i + 1,
140
+ rule: "install-port-materializer-boundary",
141
+ detail: rule,
142
+ text: line.trim(),
143
+ });
144
+ }
145
+ }
146
+ }
147
+
148
+ {
149
+ const file = "src/routes/instances.ts";
150
+ const content = readFileSync(resolve(REPO_ROOT, file), "utf-8");
151
+ const lines = content.split("\n");
152
+ for (let i = 0; i < lines.length; i += 1) {
153
+ const line = lines[i];
154
+ if (isCommentLine(line)) continue;
155
+ for (const { pattern, rule } of INSTANCE_ROUTE_PRODUCT_PATTERNS) {
156
+ if (!pattern.test(line)) continue;
157
+ violations.push({
158
+ file,
159
+ line: i + 1,
160
+ rule: "instance-route-product-boundary",
161
+ detail: rule,
162
+ text: line.trim().slice(0, 160),
163
+ });
164
+ }
165
+ }
166
+ }
167
+
168
+ if (violations.length > 0) {
169
+ console.error(`check-architecture-boundaries FAILED: ${violations.length} violation(s)\n`);
170
+ for (const violation of violations) {
171
+ console.error(` ${violation.file}:${violation.line} [${violation.rule}]`);
172
+ console.error(` ${violation.detail}`);
173
+ console.error(` ${violation.text}`);
174
+ }
175
+ process.exit(1);
176
+ }
177
+
178
+ console.log("check-architecture-boundaries OK");
@@ -3,10 +3,12 @@ set -euo pipefail
3
3
 
4
4
  PANEL_ROOT="/home/eriyu01/work/jishushell-panel"
5
5
  CORE_ROOT="/home/eriyu01/work/jishushell"
6
- VERSION="0.6.16"
7
6
 
8
- PANEL_TARBALL_NAME="jishushell-panel-${VERSION}.tgz"
9
- CORE_TARBALL_NAME="jishushell-${VERSION}.tgz"
7
+ PANEL_VERSION="$(node -p "require('${PANEL_ROOT}/package.json').version")"
8
+ CORE_VERSION="$(node -p "require('${CORE_ROOT}/package.json').version")"
9
+
10
+ PANEL_TARBALL_NAME="jishushell-panel-${PANEL_VERSION}.tgz"
11
+ CORE_TARBALL_NAME="jishushell-${CORE_VERSION}.tgz"
10
12
 
11
13
  PANEL_TARBALL="${PANEL_ROOT}/${PANEL_TARBALL_NAME}"
12
14
  CORE_PANEL_TARBALL="${CORE_ROOT}/dependencies/${PANEL_TARBALL_NAME}"
@@ -1,27 +0,0 @@
1
- export interface ConnectionSuggestion {
2
- id: string;
3
- consumerInstanceId: string;
4
- consumerName: string;
5
- instanceId: string;
6
- slot: string;
7
- capability: string;
8
- candidate: {
9
- providerId: string;
10
- capability: string;
11
- name?: string;
12
- protocol: string;
13
- status: string;
14
- hostPort: number;
15
- path?: string;
16
- };
17
- reason: string;
18
- }
19
- export declare function computeSuggestions(): ConnectionSuggestion[];
20
- /**
21
- * Mark a suggestion as dismissed. Persisted on the consumer instance so
22
- * subsequent computeSuggestions() invocations skip it for the TTL window.
23
- *
24
- * `id` follows the format `${consumerInstanceId}::${slot}::...` — the
25
- * leading two segments are enough to identify the slot to dismiss.
26
- */
27
- export declare function dismissSuggestion(id: string): Promise<void>;
@@ -1,124 +0,0 @@
1
- /**
2
- * Panel-only Suggestions engine — scans every app instance for unbound `requires`
3
- * slots that *could* be filled from the current capability registry, and
4
- * emits one suggestion per (consumer, slot, candidate). The Dashboard
5
- * polls this so the user gets a low-friction "you can connect X to Y"
6
- * prompt without having to dig into each instance.
7
- *
8
- * Dismissals are stored on the consumer's `instance.json.dismissedSuggestions`
9
- * (per-slot, 30-day TTL).
10
- */
11
- import * as capabilityRegistry from "../capabilities/registry.js";
12
- import * as instanceManager from "../instances/manager.js";
13
- import { getInstanceInstallRecord } from "../app-common/service.js";
14
- import { resolveConnections } from "./resolver.js";
15
- import { capabilityMatchesRequire } from "../capabilities/contract.js";
16
- import { readCanonicalSpecForInstance } from "../app-common/instance-store.js";
17
- import { resolveExecutionOwnerFromMetadata } from "../app-common/execution-owner.js";
18
- import { getIntegration } from "../integrations/index.js";
19
- import { safeReadJson, safeWriteJson } from "../../utils/safe-json.js";
20
- const DISMISS_TTL_MS = 30 * 24 * 60 * 60 * 1000;
21
- export function computeSuggestions() {
22
- const out = [];
23
- const allInstances = instanceManager.listInstances();
24
- for (const inst of allInstances) {
25
- const instanceId = String(inst.id ?? "");
26
- let spec = getInstanceInstallRecord(instanceId)?.spec ?? null;
27
- if (!spec) {
28
- spec = readCanonicalSpecForInstance(instanceId);
29
- if (!spec)
30
- continue;
31
- }
32
- const persisted = (inst.connections ?? {});
33
- const dismissed = (inst.dismissedSuggestions ?? []);
34
- const dismissedSlots = new Set(dismissed
35
- .filter((d) => new Date(d.until).getTime() > Date.now())
36
- .map((d) => d.slot));
37
- let pending = [];
38
- try {
39
- const r = resolveConnections(spec, { connections: persisted }, "preCreate");
40
- pending = r.pending;
41
- }
42
- catch {
43
- continue;
44
- }
45
- for (const p of pending) {
46
- if (dismissedSlots.has(p.slot))
47
- continue;
48
- const req = (spec.requires ?? []).find((item) => item.inject_as === p.slot);
49
- if (!req)
50
- continue;
51
- const candidates = enumerateCandidates(req);
52
- // Same agent-on-agent guard as the Connections-tab dropdown: agent
53
- // consumers of `llm` should never be offered another agent's
54
- // `llm-agent` (would chain agent → agent → real model).
55
- const owner = resolveExecutionOwnerFromMetadata(instanceId, inst);
56
- const consumerIsAgent = owner.type === "integration"
57
- && getIntegration(owner.integrationKind).manifest?.connectionRole === "agent";
58
- const running = candidates.filter((e) => {
59
- if (e.status !== "running")
60
- return false;
61
- if (e.instanceId === inst.id)
62
- return false;
63
- if (consumerIsAgent && req.capability === "llm" && e.capability === "llm-agent")
64
- return false;
65
- return true;
66
- });
67
- if (running.length === 0)
68
- continue;
69
- // Single candidate → suggest it; multiple → suggest the running ones.
70
- const top = running[0];
71
- out.push({
72
- id: `${inst.id}::${p.slot}::${top.instanceId}::${top.capability}`,
73
- consumerInstanceId: inst.id,
74
- consumerName: inst.name ?? inst.id,
75
- instanceId,
76
- slot: p.slot,
77
- capability: p.capability,
78
- candidate: {
79
- providerId: top.instanceId,
80
- capability: top.capability,
81
- name: top.name,
82
- protocol: top.protocol,
83
- status: top.status,
84
- hostPort: top.hostPort,
85
- path: top.path,
86
- },
87
- reason: p.reason,
88
- });
89
- }
90
- }
91
- return out;
92
- }
93
- function enumerateCandidates(req) {
94
- const file = capabilityRegistry.snapshot();
95
- const out = [];
96
- for (const list of Object.values(file.providersByCapability ?? {})) {
97
- for (const entry of list) {
98
- if (capabilityMatchesRequire(req, entry))
99
- out.push(entry);
100
- }
101
- }
102
- return out;
103
- }
104
- /**
105
- * Mark a suggestion as dismissed. Persisted on the consumer instance so
106
- * subsequent computeSuggestions() invocations skip it for the TTL window.
107
- *
108
- * `id` follows the format `${consumerInstanceId}::${slot}::...` — the
109
- * leading two segments are enough to identify the slot to dismiss.
110
- */
111
- export async function dismissSuggestion(id) {
112
- const parts = id.split("::");
113
- if (parts.length < 2)
114
- throw new Error(`Invalid suggestion id: ${id}`);
115
- const [consumerInstanceId, slot] = parts;
116
- const path = instanceManager.instanceMetaPath(consumerInstanceId);
117
- const cur = (safeReadJson(path, `instance:${consumerInstanceId}`) ?? {});
118
- const list = Array.isArray(cur.dismissedSuggestions) ? cur.dismissedSuggestions : [];
119
- const filtered = list.filter((d) => d.slot !== slot);
120
- filtered.push({ slot, until: new Date(Date.now() + DISMISS_TTL_MS).toISOString() });
121
- cur.dismissedSuggestions = filtered;
122
- safeWriteJson(path, cur);
123
- }
124
- //# sourceMappingURL=suggestions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"suggestions.js","sourceRoot":"","sources":["../../../src/services/connections/suggestions.ts"],"names":[],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- import fastify, { FastifyBodyParser } from '../../fastify'
2
- import { expectError, expectType } from 'tsd'
3
- import { IncomingMessage } from 'node:http'
4
- import { FastifyRequest } from '../../types/request'
5
-
6
- expectType<void>(fastify().addContentTypeParser('contentType', function (request, payload, done) {
7
- expectType<FastifyRequest>(request)
8
- expectType<IncomingMessage>(payload)
9
- done(null)
10
- }))
11
-
12
- // Body limit options
13
-
14
- expectType<void>(fastify().addContentTypeParser('contentType', { bodyLimit: 99 }, function (request, payload, done) {
15
- expectType<FastifyRequest>(request)
16
- expectType<IncomingMessage>(payload)
17
- done(null)
18
- }))
19
-
20
- // Array for contentType
21
-
22
- expectType<void>(fastify().addContentTypeParser(['contentType'], function (request, payload, done) {
23
- expectType<FastifyRequest>(request)
24
- expectType<IncomingMessage>(payload)
25
- done(null)
26
- }))
27
-
28
- // Body Parser - the generic after addContentTypeParser enforces the type of the `body` parameter as well as the value of the `parseAs` property
29
-
30
- expectType<void>(fastify().addContentTypeParser<string>('bodyContentType', { parseAs: 'string' }, function (request, body, done) {
31
- expectType<FastifyRequest>(request)
32
- expectType<string>(body)
33
- done(null)
34
- }))
35
-
36
- expectType<void>(fastify().addContentTypeParser<Buffer>('bodyContentType', { parseAs: 'buffer' }, function (request, body, done) {
37
- expectType<FastifyRequest>(request)
38
- expectType<Buffer>(body)
39
- done(null)
40
- }))
41
-
42
- expectType<void>(fastify().addContentTypeParser('contentType', async function (request: FastifyRequest, payload: IncomingMessage) {
43
- expectType<FastifyRequest>(request)
44
- expectType<IncomingMessage>(payload)
45
- return null
46
- }))
47
-
48
- expectType<void>(fastify().addContentTypeParser<string>('bodyContentType', { parseAs: 'string' }, async function (request: FastifyRequest, body: string) {
49
- expectType<FastifyRequest>(request)
50
- expectType<string>(body)
51
- return null
52
- }))
53
-
54
- expectType<void>(fastify().addContentTypeParser<Buffer>('bodyContentType', { parseAs: 'buffer' }, async function (request: FastifyRequest, body: Buffer) {
55
- expectType<FastifyRequest>(request)
56
- expectType<Buffer>(body)
57
- return null
58
- }))
59
-
60
- expectType<FastifyBodyParser<string>>(fastify().getDefaultJsonParser('error', 'ignore'))
61
-
62
- expectError(fastify().getDefaultJsonParser('error', 'skip'))
63
-
64
- expectError(fastify().getDefaultJsonParser('nothing', 'ignore'))
65
-
66
- expectType<void>(fastify().removeAllContentTypeParsers())
67
- expectError(fastify().removeAllContentTypeParsers('contentType'))
68
-
69
- expectType<void>(fastify().removeContentTypeParser('contentType'))
70
- expectType<void>(fastify().removeContentTypeParser(/contentType+.*/))
71
- expectType<void>(fastify().removeContentTypeParser(['contentType', /contentType+.*/]))
72
- expectError(fastify().removeContentTypeParser({}))