jishushell 0.6.5 → 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.
- package/apps/anythingllm-container.yaml +16 -170
- package/apps/browserless-chromium-container.yaml +16 -10
- package/apps/filebrowser-container.yaml +15 -9
- package/apps/hermes-container.yaml +20 -5
- package/apps/immich-container-lite.yaml +337 -0
- package/apps/immich-container.yaml +371 -0
- package/apps/jishu-kb-container.yaml +50 -177
- package/apps/ollama-binary.yaml +33 -28
- package/apps/ollama-cpu-container.yaml +6 -0
- package/apps/ollama-with-hollama-binary.yaml +35 -28
- package/apps/openclaw-binary.yaml +35 -15
- package/apps/openclaw-container.yaml +29 -11
- package/apps/openclaw-with-ollama-container.yaml +9 -2
- package/apps/openclaw-with-searxng-container.yaml +38 -6
- package/apps/searxng-container.yaml +31 -6
- package/apps/weknora-container.yaml +26 -21
- package/dependencies/jishushell-panel-0.7.3.tgz +0 -0
- package/dist/cli/app.js +244 -213
- package/dist/cli/app.js.map +1 -1
- package/dist/cli/backup.js +15 -12
- package/dist/cli/backup.js.map +1 -1
- package/dist/cli/core.d.ts +4 -3
- package/dist/cli/core.js +392 -227
- package/dist/cli/core.js.map +1 -1
- package/dist/cli/doctor.d.ts +1 -1
- package/dist/cli/doctor.js +113 -10
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/job.js +62 -14
- package/dist/cli/job.js.map +1 -1
- package/dist/cli/llm.js +80 -11
- package/dist/cli/llm.js.map +1 -1
- package/dist/cli/managed-list.d.ts +1 -3
- package/dist/cli/managed-list.js +18 -16
- package/dist/cli/managed-list.js.map +1 -1
- package/dist/cli/migrate.d.ts +2 -0
- package/dist/cli/migrate.js +160 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +32 -20
- package/dist/config.js +132 -51
- package/dist/config.js.map +1 -1
- package/dist/control.d.ts +6 -6
- package/dist/control.js +31 -23
- package/dist/control.js.map +1 -1
- package/dist/core.d.ts +5 -5
- package/dist/core.js +5 -5
- package/dist/core.js.map +1 -1
- package/dist/install.d.ts +2 -2
- package/dist/install.js +78 -37
- package/dist/install.js.map +1 -1
- package/dist/routes/admin.d.ts +2 -0
- package/dist/routes/admin.js +72 -0
- package/dist/routes/admin.js.map +1 -0
- package/dist/routes/apps.d.ts +1 -1
- package/dist/routes/apps.js +101 -193
- package/dist/routes/apps.js.map +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/auth.js.map +1 -1
- package/dist/routes/backup.js +1 -1
- package/dist/routes/backup.js.map +1 -1
- package/dist/routes/docker.d.ts +2 -0
- package/dist/routes/docker.js +58 -0
- package/dist/routes/docker.js.map +1 -0
- package/dist/routes/external-mounts.d.ts +1 -1
- package/dist/routes/external-mounts.js +1 -1
- package/dist/routes/external-mounts.js.map +1 -1
- package/dist/routes/file-mounts.d.ts +4 -3
- package/dist/routes/file-mounts.js +49 -31
- package/dist/routes/file-mounts.js.map +1 -1
- package/dist/routes/files-organize.d.ts +2 -2
- package/dist/routes/files-organize.js +5 -5
- package/dist/routes/files-organize.js.map +1 -1
- package/dist/routes/files.d.ts +1 -1
- package/dist/routes/files.js +1 -1
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/instances.d.ts +0 -8
- package/dist/routes/instances.js +202 -1560
- package/dist/routes/instances.js.map +1 -1
- package/dist/routes/integration-apps.d.ts +14 -0
- package/dist/routes/integration-apps.js +81 -0
- package/dist/routes/integration-apps.js.map +1 -0
- package/dist/routes/integrations.d.ts +9 -0
- package/dist/routes/integrations.js +12 -0
- package/dist/routes/integrations.js.map +1 -0
- package/dist/routes/llm-proxy.js +26 -3
- package/dist/routes/llm-proxy.js.map +1 -1
- package/dist/routes/setup.js +53 -38
- package/dist/routes/setup.js.map +1 -1
- package/dist/routes/system.js +108 -68
- package/dist/routes/system.js.map +1 -1
- package/dist/routes/webdav.d.ts +1 -1
- package/dist/routes/webdav.js +2 -2
- package/dist/routes/webdav.js.map +1 -1
- package/dist/server.d.ts +6 -0
- package/dist/server.js +368 -233
- package/dist/server.js.map +1 -1
- package/dist/services/app-common/app-compiler.js +186 -0
- package/dist/services/app-common/app-compiler.js.map +1 -0
- package/dist/services/app-common/app-shared.d.ts +15 -0
- package/dist/services/app-common/app-shared.js +64 -0
- package/dist/services/app-common/app-shared.js.map +1 -0
- package/dist/services/app-common/capability-service.d.ts +45 -0
- package/dist/services/app-common/capability-service.js +331 -0
- package/dist/services/app-common/capability-service.js.map +1 -0
- package/dist/services/app-common/catalog-service.d.ts +59 -0
- package/dist/services/app-common/catalog-service.js +318 -0
- package/dist/services/app-common/catalog-service.js.map +1 -0
- package/dist/services/app-common/create-pipeline.d.ts +26 -0
- package/dist/services/app-common/create-pipeline.js +298 -0
- package/dist/services/app-common/create-pipeline.js.map +1 -0
- package/dist/services/app-common/delete-service.d.ts +5 -0
- package/dist/services/app-common/delete-service.js +109 -0
- package/dist/services/app-common/delete-service.js.map +1 -0
- package/dist/services/app-common/execution-owner.d.ts +23 -0
- package/dist/services/app-common/execution-owner.js +124 -0
- package/dist/services/app-common/execution-owner.js.map +1 -0
- package/dist/services/app-common/execution-service.d.ts +23 -0
- package/dist/services/app-common/execution-service.js +105 -0
- package/dist/services/app-common/execution-service.js.map +1 -0
- package/dist/services/app-common/id-normalizer.d.ts +31 -0
- package/dist/services/app-common/id-normalizer.js +83 -0
- package/dist/services/app-common/id-normalizer.js.map +1 -0
- package/dist/services/app-common/install-store.d.ts +34 -0
- package/dist/services/app-common/install-store.js +261 -0
- package/dist/services/app-common/install-store.js.map +1 -0
- package/dist/services/app-common/instance-store.d.ts +78 -0
- package/dist/services/app-common/instance-store.js +498 -0
- package/dist/services/app-common/instance-store.js.map +1 -0
- package/dist/services/app-common/integration-refs.d.ts +17 -0
- package/dist/services/app-common/integration-refs.js +47 -0
- package/dist/services/app-common/integration-refs.js.map +1 -0
- package/dist/services/app-common/lifecycle-pipeline.d.ts +62 -0
- package/dist/services/app-common/lifecycle-pipeline.js +317 -0
- package/dist/services/app-common/lifecycle-pipeline.js.map +1 -0
- package/dist/services/app-common/lifecycle-scripts.d.ts +38 -0
- package/dist/services/app-common/lifecycle-scripts.js +935 -0
- package/dist/services/app-common/lifecycle-scripts.js.map +1 -0
- package/dist/services/app-common/lifecycle-service.d.ts +68 -0
- package/dist/services/app-common/lifecycle-service.js +475 -0
- package/dist/services/app-common/lifecycle-service.js.map +1 -0
- package/dist/services/app-common/ownership.d.ts +3 -0
- package/dist/services/app-common/ownership.js +11 -0
- package/dist/services/app-common/ownership.js.map +1 -0
- package/dist/services/app-common/paths.d.ts +29 -0
- package/dist/services/app-common/paths.js +34 -0
- package/dist/services/app-common/paths.js.map +1 -0
- package/dist/services/app-common/platform-transform.d.ts +32 -0
- package/dist/services/app-common/platform-transform.js +65 -0
- package/dist/services/app-common/platform-transform.js.map +1 -0
- package/dist/services/app-common/provide-resolver.d.ts +29 -0
- package/dist/services/app-common/provide-resolver.js +129 -0
- package/dist/services/app-common/provide-resolver.js.map +1 -0
- package/dist/services/app-common/remote-spec.d.ts +14 -0
- package/dist/services/app-common/remote-spec.js +58 -0
- package/dist/services/app-common/remote-spec.js.map +1 -0
- package/dist/services/app-common/runtime-builder.d.ts +1 -0
- package/dist/services/app-common/runtime-builder.js +2 -0
- package/dist/services/app-common/runtime-builder.js.map +1 -0
- package/dist/services/app-common/runtime-facts.d.ts +19 -0
- package/dist/services/app-common/runtime-facts.js +128 -0
- package/dist/services/app-common/runtime-facts.js.map +1 -0
- package/dist/services/app-common/service.d.ts +9 -0
- package/dist/services/app-common/service.js +10 -0
- package/dist/services/app-common/service.js.map +1 -0
- package/dist/services/app-common/spec-materializer.d.ts +8 -0
- package/dist/services/app-common/spec-materializer.js +295 -0
- package/dist/services/app-common/spec-materializer.js.map +1 -0
- package/dist/services/app-common/status-refresh.d.ts +33 -0
- package/dist/services/app-common/status-refresh.js +771 -0
- package/dist/services/app-common/status-refresh.js.map +1 -0
- package/dist/services/app-common/task-service.d.ts +29 -0
- package/dist/services/app-common/task-service.js +93 -0
- package/dist/services/app-common/task-service.js.map +1 -0
- package/dist/services/app-common/terminal-session-manager.js +157 -0
- package/dist/services/app-common/terminal-session-manager.js.map +1 -0
- package/dist/services/app-modules/browserless/routes.d.ts +9 -0
- package/dist/services/app-modules/browserless/routes.js +519 -0
- package/dist/services/app-modules/browserless/routes.js.map +1 -0
- package/dist/services/app-modules/routes.d.ts +2 -0
- package/dist/services/app-modules/routes.js +5 -0
- package/dist/services/app-modules/routes.js.map +1 -0
- package/dist/services/backup/backup-admin.d.ts +95 -0
- package/dist/services/backup/backup-admin.js +246 -0
- package/dist/services/backup/backup-admin.js.map +1 -0
- package/dist/services/backup/backup-manager.d.ts +264 -0
- package/dist/services/backup/backup-manager.js +2318 -0
- package/dist/services/backup/backup-manager.js.map +1 -0
- package/dist/services/backup/backup-verify.js +240 -0
- package/dist/services/backup/backup-verify.js.map +1 -0
- package/dist/services/capabilities/browser-policy.d.ts +14 -0
- package/dist/services/capabilities/browser-policy.js +141 -0
- package/dist/services/capabilities/browser-policy.js.map +1 -0
- package/dist/services/capabilities/contract.d.ts +49 -0
- package/dist/services/capabilities/contract.js +119 -0
- package/dist/services/capabilities/contract.js.map +1 -0
- package/dist/services/capabilities/endpoint-validator.d.ts +42 -0
- package/dist/services/capabilities/endpoint-validator.js +113 -0
- package/dist/services/capabilities/endpoint-validator.js.map +1 -0
- package/dist/services/capabilities/health.d.ts +16 -0
- package/dist/services/capabilities/health.js +121 -0
- package/dist/services/capabilities/health.js.map +1 -0
- package/dist/services/capabilities/registry.d.ts +56 -0
- package/dist/services/capabilities/registry.js +222 -0
- package/dist/services/capabilities/registry.js.map +1 -0
- package/dist/services/capabilities/sync.d.ts +7 -0
- package/dist/services/capabilities/sync.js +223 -0
- package/dist/services/capabilities/sync.js.map +1 -0
- package/dist/services/capability-proxy/html-rewriters/browserless.d.ts +1 -0
- package/dist/services/capability-proxy/html-rewriters/browserless.js +83 -0
- package/dist/services/capability-proxy/html-rewriters/browserless.js.map +1 -0
- package/dist/services/capability-proxy/html-rewriters/index.d.ts +12 -0
- package/dist/services/capability-proxy/html-rewriters/index.js +25 -0
- package/dist/services/capability-proxy/html-rewriters/index.js.map +1 -0
- package/dist/services/capability-proxy/html-rewriters/jishukb.d.ts +1 -0
- package/dist/services/capability-proxy/html-rewriters/jishukb.js +161 -0
- package/dist/services/capability-proxy/html-rewriters/jishukb.js.map +1 -0
- package/dist/services/capability-proxy/http.d.ts +7 -0
- package/dist/services/capability-proxy/http.js +555 -0
- package/dist/services/capability-proxy/http.js.map +1 -0
- package/dist/services/capability-proxy/terminal.d.ts +4 -0
- package/dist/services/capability-proxy/terminal.js +179 -0
- package/dist/services/capability-proxy/terminal.js.map +1 -0
- package/dist/services/connections/admin.d.ts +80 -0
- package/dist/services/connections/admin.js +337 -0
- package/dist/services/connections/admin.js.map +1 -0
- package/dist/services/connections/apply.d.ts +104 -0
- package/dist/services/connections/apply.js +415 -0
- package/dist/services/connections/apply.js.map +1 -0
- package/dist/services/connections/resolver.d.ts +82 -0
- package/dist/services/connections/resolver.js +289 -0
- package/dist/services/connections/resolver.js.map +1 -0
- package/dist/services/connections/transactor.d.ts +39 -0
- package/dist/services/connections/transactor.js +307 -0
- package/dist/services/connections/transactor.js.map +1 -0
- package/dist/services/files/bootstrap.d.ts +7 -0
- package/dist/services/files/bootstrap.js +16 -0
- package/dist/services/files/bootstrap.js.map +1 -0
- package/dist/services/files/external-mounts.js +187 -0
- package/dist/services/files/external-mounts.js.map +1 -0
- package/dist/services/files/files-manager.d.ts +265 -0
- package/dist/services/files/files-manager.js +1189 -0
- package/dist/services/files/files-manager.js.map +1 -0
- package/dist/services/files/files-mounts.d.ts +42 -0
- package/dist/services/files/files-mounts.js +207 -0
- package/dist/services/files/files-mounts.js.map +1 -0
- package/dist/services/files/organize/applier.js +218 -0
- package/dist/services/files/organize/applier.js.map +1 -0
- package/dist/services/files/organize/rules.js +286 -0
- package/dist/services/files/organize/rules.js.map +1 -0
- package/dist/services/files/organize/scanner.js +366 -0
- package/dist/services/files/organize/scanner.js.map +1 -0
- package/dist/services/files/organize/store.js +82 -0
- package/dist/services/files/organize/store.js.map +1 -0
- package/dist/services/files/photos/upload-page.d.ts +2 -0
- package/dist/services/files/photos/upload-page.js +248 -0
- package/dist/services/files/photos/upload-page.js.map +1 -0
- package/dist/services/files/photos/upload-store.d.ts +74 -0
- package/dist/services/files/photos/upload-store.js +432 -0
- package/dist/services/files/photos/upload-store.js.map +1 -0
- package/dist/services/files/webdav/server.d.ts +47 -0
- package/dist/services/files/webdav/server.js +329 -0
- package/dist/services/files/webdav/server.js.map +1 -0
- package/dist/services/files/webdav/xml-builder.js.map +1 -0
- package/dist/services/http/proxy-utils.d.ts +7 -0
- package/dist/services/http/proxy-utils.js +29 -0
- package/dist/services/http/proxy-utils.js.map +1 -0
- package/dist/services/http/request-utils.d.ts +3 -0
- package/dist/services/http/request-utils.js +23 -0
- package/dist/services/http/request-utils.js.map +1 -0
- package/dist/services/instances/admin.d.ts +23 -0
- package/dist/services/instances/admin.js +218 -0
- package/dist/services/instances/admin.js.map +1 -0
- package/dist/services/instances/clone.d.ts +26 -0
- package/dist/services/instances/clone.js +78 -0
- package/dist/services/instances/clone.js.map +1 -0
- package/dist/services/instances/config-admin.d.ts +17 -0
- package/dist/services/instances/config-admin.js +181 -0
- package/dist/services/instances/config-admin.js.map +1 -0
- package/dist/services/instances/manager.d.ts +232 -0
- package/dist/services/instances/manager.js +1342 -0
- package/dist/services/instances/manager.js.map +1 -0
- package/dist/services/instances/pairing.d.ts +17 -0
- package/dist/services/instances/pairing.js +53 -0
- package/dist/services/instances/pairing.js.map +1 -0
- package/dist/services/instances/passwords.js +173 -0
- package/dist/services/instances/passwords.js.map +1 -0
- package/dist/services/instances/status.d.ts +2 -0
- package/dist/services/instances/status.js +11 -0
- package/dist/services/instances/status.js.map +1 -0
- package/dist/services/instances/types.d.ts +21 -0
- package/dist/services/instances/types.js +2 -0
- package/dist/services/instances/types.js.map +1 -0
- package/dist/services/integrations/anythingllm/integration.d.ts +25 -0
- package/dist/services/integrations/anythingllm/integration.js +251 -0
- package/dist/services/integrations/anythingllm/integration.js.map +1 -0
- package/dist/services/integrations/catalog.d.ts +3 -0
- package/dist/services/integrations/catalog.js +73 -0
- package/dist/services/integrations/catalog.js.map +1 -0
- package/dist/services/integrations/custom/integration.d.ts +28 -0
- package/dist/services/integrations/custom/integration.js +179 -0
- package/dist/services/integrations/custom/integration.js.map +1 -0
- package/dist/services/integrations/hermes/integration.d.ts +194 -0
- package/dist/services/integrations/hermes/integration.js +1668 -0
- package/dist/services/integrations/hermes/integration.js.map +1 -0
- package/dist/services/integrations/immich/client.d.ts +93 -0
- package/dist/services/integrations/immich/client.js +458 -0
- package/dist/services/integrations/immich/client.js.map +1 -0
- package/dist/services/integrations/immich/config.d.ts +15 -0
- package/dist/services/integrations/immich/config.js +178 -0
- package/dist/services/integrations/immich/config.js.map +1 -0
- package/dist/services/integrations/immich/discovery.d.ts +9 -0
- package/dist/services/integrations/immich/discovery.js +101 -0
- package/dist/services/integrations/immich/discovery.js.map +1 -0
- package/dist/services/integrations/immich/gallery-renderer.d.ts +5 -0
- package/dist/services/integrations/immich/gallery-renderer.js +150 -0
- package/dist/services/integrations/immich/gallery-renderer.js.map +1 -0
- package/dist/services/integrations/immich/immich-shim.d.ts +11 -0
- package/dist/services/integrations/immich/immich-shim.js +439 -0
- package/dist/services/integrations/immich/immich-shim.js.map +1 -0
- package/dist/services/integrations/immich/integration.d.ts +18 -0
- package/dist/services/integrations/immich/integration.js +64 -0
- package/dist/services/integrations/immich/integration.js.map +1 -0
- package/dist/services/integrations/immich/photo-library.d.ts +4 -0
- package/dist/services/integrations/immich/photo-library.js +63 -0
- package/dist/services/integrations/immich/photo-library.js.map +1 -0
- package/dist/services/integrations/immich/review-executor.d.ts +3 -0
- package/dist/services/integrations/immich/review-executor.js +41 -0
- package/dist/services/integrations/immich/review-executor.js.map +1 -0
- package/dist/services/integrations/immich/review-session-service.d.ts +27 -0
- package/dist/services/integrations/immich/review-session-service.js +206 -0
- package/dist/services/integrations/immich/review-session-service.js.map +1 -0
- package/dist/services/integrations/immich/review-store.d.ts +47 -0
- package/dist/services/integrations/immich/review-store.js +347 -0
- package/dist/services/integrations/immich/review-store.js.map +1 -0
- package/dist/services/integrations/immich/routes.d.ts +7 -0
- package/dist/services/integrations/immich/routes.js +363 -0
- package/dist/services/integrations/immich/routes.js.map +1 -0
- package/dist/services/integrations/immich/types.d.ts +186 -0
- package/dist/services/integrations/immich/types.js +2 -0
- package/dist/services/integrations/immich/types.js.map +1 -0
- package/dist/services/integrations/index.d.ts +41 -0
- package/dist/services/integrations/index.js +60 -0
- package/dist/services/integrations/index.js.map +1 -0
- package/dist/services/integrations/installable/catalog.d.ts +33 -0
- package/dist/services/integrations/installable/catalog.js +88 -0
- package/dist/services/integrations/installable/catalog.js.map +1 -0
- package/dist/services/integrations/installable/index.d.ts +35 -0
- package/dist/services/integrations/installable/index.js +170 -0
- package/dist/services/integrations/installable/index.js.map +1 -0
- package/dist/services/integrations/installable/installers/integration-probes.d.ts +50 -0
- package/dist/services/integrations/installable/installers/integration-probes.js +231 -0
- package/dist/services/integrations/installable/installers/integration-probes.js.map +1 -0
- package/dist/services/integrations/installable/installers/integration.d.ts +30 -0
- package/dist/services/integrations/installable/installers/integration.js +283 -0
- package/dist/services/integrations/installable/installers/integration.js.map +1 -0
- package/dist/services/integrations/installable/installers/registry-probe.js.map +1 -0
- package/dist/services/integrations/installable/installers/shell-script.d.ts +46 -0
- package/dist/services/integrations/installable/installers/shell-script.js +487 -0
- package/dist/services/integrations/installable/installers/shell-script.js.map +1 -0
- package/dist/services/integrations/installable/types.d.ts +130 -0
- package/dist/services/integrations/installable/types.js +19 -0
- package/dist/services/integrations/installable/types.js.map +1 -0
- package/dist/services/integrations/jishukb/integration.d.ts +24 -0
- package/dist/services/integrations/jishukb/integration.js +300 -0
- package/dist/services/integrations/jishukb/integration.js.map +1 -0
- package/dist/services/integrations/openclaw/anythingllm-shim.d.ts +46 -0
- package/dist/services/integrations/openclaw/anythingllm-shim.js +281 -0
- package/dist/services/integrations/openclaw/anythingllm-shim.js.map +1 -0
- package/dist/services/integrations/openclaw/drive-shim.js +490 -0
- package/dist/services/integrations/openclaw/drive-shim.js.map +1 -0
- package/dist/services/integrations/openclaw/integration.d.ts +438 -0
- package/dist/services/integrations/openclaw/integration.js +4629 -0
- package/dist/services/integrations/openclaw/integration.js.map +1 -0
- package/dist/services/integrations/openclaw/jishukb-native-mcp.d.ts +58 -0
- package/dist/services/integrations/openclaw/jishukb-native-mcp.js +373 -0
- package/dist/services/integrations/openclaw/jishukb-native-mcp.js.map +1 -0
- package/dist/services/integrations/openclaw/jishukb-shim.d.ts +52 -0
- package/dist/services/integrations/openclaw/jishukb-shim.js +1357 -0
- package/dist/services/integrations/openclaw/jishukb-shim.js.map +1 -0
- package/dist/services/integrations/openclaw/mcporter-lite.js +276 -0
- package/dist/services/integrations/openclaw/mcporter-lite.js.map +1 -0
- package/dist/services/integrations/openclaw/mcporter.d.ts +59 -0
- package/dist/services/integrations/openclaw/mcporter.js +143 -0
- package/dist/services/integrations/openclaw/mcporter.js.map +1 -0
- package/dist/services/integrations/openclaw/native-mcp.d.ts +48 -0
- package/dist/services/integrations/openclaw/native-mcp.js +125 -0
- package/dist/services/integrations/openclaw/native-mcp.js.map +1 -0
- package/dist/services/integrations/openclaw/routes.d.ts +21 -0
- package/dist/services/integrations/openclaw/routes.js +1194 -0
- package/dist/services/integrations/openclaw/routes.js.map +1 -0
- package/dist/services/integrations/registry.d.ts +17 -0
- package/dist/services/integrations/registry.js +36 -0
- package/dist/services/integrations/registry.js.map +1 -0
- package/dist/services/integrations/routes.d.ts +2 -0
- package/dist/services/integrations/routes.js +9 -0
- package/dist/services/integrations/routes.js.map +1 -0
- package/dist/services/integrations/types.d.ts +457 -0
- package/dist/services/integrations/types.js +2 -0
- package/dist/services/integrations/types.js.map +1 -0
- package/dist/services/legacy-migrator/classifier.d.ts +44 -0
- package/dist/services/legacy-migrator/classifier.js +309 -0
- package/dist/services/legacy-migrator/classifier.js.map +1 -0
- package/dist/services/legacy-migrator/executor.d.ts +42 -0
- package/dist/services/legacy-migrator/executor.js +637 -0
- package/dist/services/legacy-migrator/executor.js.map +1 -0
- package/dist/services/legacy-migrator/index.d.ts +31 -0
- package/dist/services/legacy-migrator/index.js +34 -0
- package/dist/services/legacy-migrator/index.js.map +1 -0
- package/dist/services/legacy-migrator/planner.d.ts +8 -0
- package/dist/services/legacy-migrator/planner.js +154 -0
- package/dist/services/legacy-migrator/planner.js.map +1 -0
- package/dist/services/legacy-migrator/provider-settings.d.ts +6 -0
- package/dist/services/legacy-migrator/provider-settings.js +72 -0
- package/dist/services/legacy-migrator/provider-settings.js.map +1 -0
- package/dist/services/legacy-migrator/report.d.ts +9 -0
- package/dist/services/legacy-migrator/report.js +99 -0
- package/dist/services/legacy-migrator/report.js.map +1 -0
- package/dist/services/legacy-migrator/scanner.d.ts +13 -0
- package/dist/services/legacy-migrator/scanner.js +157 -0
- package/dist/services/legacy-migrator/scanner.js.map +1 -0
- package/dist/services/legacy-migrator/types.d.ts +97 -0
- package/dist/services/legacy-migrator/types.js +23 -0
- package/dist/services/legacy-migrator/types.js.map +1 -0
- package/dist/services/llm-proxy/instance-proxy.d.ts +17 -1
- package/dist/services/llm-proxy/instance-proxy.js +171 -44
- package/dist/services/llm-proxy/instance-proxy.js.map +1 -1
- package/dist/services/llm-proxy/probe.js +5 -14
- package/dist/services/llm-proxy/probe.js.map +1 -1
- package/dist/services/llm-proxy/providers.js +23 -31
- package/dist/services/llm-proxy/providers.js.map +1 -1
- package/dist/services/llm-proxy/ssrf.d.ts +11 -4
- package/dist/services/llm-proxy/ssrf.js +45 -7
- package/dist/services/llm-proxy/ssrf.js.map +1 -1
- package/dist/services/llm-proxy/validate-key.js +16 -37
- package/dist/services/llm-proxy/validate-key.js.map +1 -1
- package/dist/services/repair/runtime-repair.d.ts +22 -0
- package/dist/services/repair/runtime-repair.js +374 -0
- package/dist/services/repair/runtime-repair.js.map +1 -0
- package/dist/services/runtime/docker-network.d.ts +8 -0
- package/dist/services/runtime/docker-network.js +123 -0
- package/dist/services/runtime/docker-network.js.map +1 -0
- package/dist/services/runtime/driver-registry.d.ts +25 -0
- package/dist/services/runtime/driver-registry.js +22 -0
- package/dist/services/runtime/driver-registry.js.map +1 -0
- package/dist/services/runtime/drivers/nomad.d.ts +261 -0
- package/dist/services/runtime/drivers/nomad.js +3122 -0
- package/dist/services/runtime/drivers/nomad.js.map +1 -0
- package/dist/services/runtime/errors.d.ts +3 -3
- package/dist/services/runtime/errors.js +3 -3
- package/dist/services/runtime/instance.d.ts +14 -16
- package/dist/services/runtime/instance.js +93 -123
- package/dist/services/runtime/instance.js.map +1 -1
- package/dist/services/runtime/job-id.d.ts +1 -1
- package/dist/services/runtime/job-id.js +1 -1
- package/dist/services/runtime/mcp-shims/firewall.d.ts +2 -2
- package/dist/services/runtime/mcp-shims/firewall.js +2 -2
- package/dist/services/runtime/mcp-shims/searxng-shim.d.ts +3 -5
- package/dist/services/runtime/mcp-shims/searxng-shim.js +3 -5
- package/dist/services/runtime/mcp-shims/searxng-shim.js.map +1 -1
- package/dist/services/runtime/mcp-shims/write-mcp-entry.d.ts +20 -20
- package/dist/services/runtime/mcp-shims/write-mcp-entry.js +16 -16
- package/dist/services/runtime/mcp-shims/write-mcp-entry.js.map +1 -1
- package/dist/services/runtime/ownership-marker.d.ts +83 -0
- package/dist/services/runtime/ownership-marker.js +109 -0
- package/dist/services/runtime/ownership-marker.js.map +1 -0
- package/dist/services/runtime/service-manager.d.ts +2 -0
- package/dist/services/runtime/service-manager.js +18 -0
- package/dist/services/runtime/service-manager.js.map +1 -0
- package/dist/services/runtime/types.d.ts +23 -501
- package/dist/services/runtime/types.js +0 -12
- package/dist/services/runtime/types.js.map +1 -1
- package/dist/services/runtime/workload-compiler.d.ts +17 -0
- package/dist/services/runtime/workload-compiler.js +550 -0
- package/dist/services/runtime/workload-compiler.js.map +1 -0
- package/dist/services/runtime/workload-types.d.ts +11 -0
- package/dist/services/runtime/workload-types.js +2 -0
- package/dist/services/runtime/workload-types.js.map +1 -0
- package/dist/services/setup/core-manager.d.ts +50 -0
- package/dist/services/setup/core-manager.js +456 -0
- package/dist/services/setup/core-manager.js.map +1 -0
- package/dist/services/setup/plugin-installer.js +136 -0
- package/dist/services/setup/plugin-installer.js.map +1 -0
- package/dist/services/setup/setup-manager.d.ts +158 -0
- package/dist/services/setup/setup-manager.js +2724 -0
- package/dist/services/setup/setup-manager.js.map +1 -0
- package/dist/services/system/cli-command.d.ts +5 -0
- package/dist/services/system/cli-command.js +18 -0
- package/dist/services/system/cli-command.js.map +1 -0
- package/dist/services/system/macos-launchd.js +312 -0
- package/dist/services/system/macos-launchd.js.map +1 -0
- package/dist/services/system/repair-orchestrator.d.ts +71 -0
- package/dist/services/system/repair-orchestrator.js +412 -0
- package/dist/services/system/repair-orchestrator.js.map +1 -0
- package/dist/services/system/runtime-ownership.d.ts +36 -0
- package/dist/services/system/runtime-ownership.js +250 -0
- package/dist/services/system/runtime-ownership.js.map +1 -0
- package/dist/services/system/system-monitor.js +96 -0
- package/dist/services/system/system-monitor.js.map +1 -0
- package/dist/services/system/system-ollama-provider.d.ts +14 -0
- package/dist/services/system/system-ollama-provider.js +129 -0
- package/dist/services/system/system-ollama-provider.js.map +1 -0
- package/dist/services/system/system-reconciler.d.ts +59 -0
- package/dist/services/system/system-reconciler.js +763 -0
- package/dist/services/system/system-reconciler.js.map +1 -0
- package/dist/services/system/update-manager.d.ts +43 -0
- package/dist/services/system/update-manager.js +315 -0
- package/dist/services/system/update-manager.js.map +1 -0
- package/dist/services/system/upgrade-finalize.d.ts +80 -0
- package/dist/services/system/upgrade-finalize.js +507 -0
- package/dist/services/system/upgrade-finalize.js.map +1 -0
- package/dist/services/tasks/registry.d.ts +44 -0
- package/dist/services/tasks/registry.js +90 -0
- package/dist/services/tasks/registry.js.map +1 -0
- package/dist/services/telemetry/activation.d.ts +6 -2
- package/dist/services/telemetry/activation.js +6 -2
- package/dist/services/telemetry/activation.js.map +1 -1
- package/dist/services/telemetry/heartbeat.d.ts +6 -2
- package/dist/services/telemetry/heartbeat.js +6 -2
- package/dist/services/telemetry/heartbeat.js.map +1 -1
- package/dist/services/workspaces/builder.d.ts +29 -0
- package/dist/services/workspaces/builder.js +186 -0
- package/dist/services/workspaces/builder.js.map +1 -0
- package/dist/types.d.ts +350 -48
- package/dist/utils/instance-lock.d.ts +2 -2
- package/dist/utils/instance-lock.js +2 -2
- package/dist/utils/path-safety.js +1 -1
- package/dist/utils/service-user.d.ts +13 -0
- package/dist/utils/service-user.js +129 -0
- package/dist/utils/service-user.js.map +1 -0
- package/install/jishu-install.sh +107 -27
- package/install/jishu-uninstall.sh +8 -0
- package/install/post-install.sh +162 -185
- package/install/post-uninstall.sh +6 -0
- package/node_modules/@fastify/static/.github/workflows/ci.yml +1 -1
- package/node_modules/@fastify/static/.github/workflows/lock-threads.yml +19 -0
- package/node_modules/@fastify/static/LICENSE +1 -3
- package/node_modules/@fastify/static/example/server-benchmark.js +39 -0
- package/node_modules/@fastify/static/index.js +169 -23
- package/node_modules/@fastify/static/lib/dirList.js +20 -6
- package/node_modules/@fastify/static/package.json +10 -8
- package/node_modules/@fastify/static/test/dir-list.test.js +82 -0
- package/node_modules/@fastify/static/test/static.test.js +326 -4
- package/node_modules/@fastify/static/types/index.d.ts +0 -4
- package/node_modules/@fastify/static/types/index.test-d.ts +1 -1
- package/node_modules/brace-expansion/dist/commonjs/index.js +24 -14
- package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
- package/node_modules/brace-expansion/dist/esm/index.js +24 -14
- package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
- package/node_modules/brace-expansion/package.json +2 -2
- package/node_modules/content-disposition/README.md +21 -22
- package/node_modules/content-disposition/index.js +122 -44
- package/node_modules/content-disposition/package.json +16 -20
- package/node_modules/fast-uri/index.js +1 -1
- package/node_modules/fast-uri/package.json +1 -1
- package/node_modules/fast-uri/test/security.test.js +28 -0
- package/node_modules/fastify/SECURITY.md +1 -1
- package/node_modules/fastify/SPONSORS.md +6 -4
- package/node_modules/fastify/docs/Guides/Database.md +0 -28
- package/node_modules/fastify/docs/Guides/Ecosystem.md +13 -2
- package/node_modules/fastify/docs/Guides/Serverless.md +2 -2
- package/node_modules/fastify/docs/Guides/Write-Plugin.md +1 -1
- package/node_modules/fastify/docs/Reference/Encapsulation.md +27 -26
- package/node_modules/fastify/docs/Reference/Errors.md +10 -4
- package/node_modules/fastify/docs/Reference/HTTP2.md +10 -10
- package/node_modules/fastify/docs/Reference/Hooks.md +4 -4
- package/node_modules/fastify/docs/Reference/Index.md +14 -16
- package/node_modules/fastify/docs/Reference/LTS.md +12 -13
- package/node_modules/fastify/docs/Reference/Lifecycle.md +9 -8
- package/node_modules/fastify/docs/Reference/Logging.md +44 -39
- package/node_modules/fastify/docs/Reference/Middleware.md +21 -25
- package/node_modules/fastify/docs/Reference/Principles.md +2 -2
- package/node_modules/fastify/docs/Reference/Reply.md +6 -1
- package/node_modules/fastify/docs/Reference/Request.md +27 -16
- package/node_modules/fastify/docs/Reference/Routes.md +5 -2
- package/node_modules/fastify/docs/Reference/Server.md +31 -3
- package/node_modules/fastify/docs/Reference/Type-Providers.md +29 -5
- package/node_modules/fastify/docs/Reference/Validation-and-Serialization.md +15 -2
- package/node_modules/fastify/docs/Reference/Warnings.md +7 -6
- package/node_modules/fastify/eslint.config.js +7 -2
- package/node_modules/fastify/fastify.d.ts +8 -3
- package/node_modules/fastify/fastify.js +43 -14
- package/node_modules/fastify/lib/content-type-parser.js +13 -1
- package/node_modules/fastify/lib/decorate.js +11 -3
- package/node_modules/fastify/lib/error-handler.js +4 -3
- package/node_modules/fastify/lib/error-serializer.js +59 -59
- package/node_modules/fastify/lib/errors.js +16 -1
- package/node_modules/fastify/lib/four-oh-four.js +14 -9
- package/node_modules/fastify/lib/handle-request.js +11 -5
- package/node_modules/fastify/lib/plugin-override.js +2 -1
- package/node_modules/fastify/lib/plugin-utils.js +5 -5
- package/node_modules/fastify/lib/reply.js +63 -8
- package/node_modules/fastify/lib/request.js +14 -4
- package/node_modules/fastify/lib/route.js +20 -6
- package/node_modules/fastify/lib/schema-controller.js +1 -1
- package/node_modules/fastify/lib/schemas.js +37 -30
- package/node_modules/fastify/lib/symbols.js +3 -1
- package/node_modules/fastify/lib/validation.js +1 -13
- package/node_modules/fastify/lib/warnings.js +3 -3
- package/node_modules/fastify/package.json +13 -15
- package/node_modules/fastify/scripts/validate-ecosystem-links.js +1 -0
- package/node_modules/fastify/test/bundler/esbuild/package.json +1 -1
- package/node_modules/fastify/test/close-pipelining.test.js +1 -2
- package/node_modules/fastify/test/custom-http-server.test.js +38 -0
- package/node_modules/fastify/test/decorator-instance-properties.test.js +63 -0
- package/node_modules/fastify/test/diagnostics-channel/async-error-handler.test.js +74 -0
- package/node_modules/fastify/test/hooks.test.js +23 -0
- package/node_modules/fastify/test/http-methods/get.test.js +1 -1
- package/node_modules/fastify/test/http2/plain.test.js +135 -0
- package/node_modules/fastify/test/http2/secure-with-fallback.test.js +1 -1
- package/node_modules/fastify/test/https/https.test.js +1 -2
- package/node_modules/fastify/test/internals/errors.test.js +31 -1
- package/node_modules/fastify/test/internals/plugin.test.js +3 -1
- package/node_modules/fastify/test/internals/request.test.js +27 -3
- package/node_modules/fastify/test/internals/schema-controller-perf.test.js +33 -0
- package/node_modules/fastify/test/logger/logging.test.js +18 -1
- package/node_modules/fastify/test/logger/options.test.js +38 -1
- package/node_modules/fastify/test/reply-error.test.js +1 -1
- package/node_modules/fastify/test/reply-trailers.test.js +70 -0
- package/node_modules/fastify/test/request-media-type.test.js +105 -0
- package/node_modules/fastify/test/route-prefix.test.js +34 -0
- package/node_modules/fastify/test/router-options.test.js +222 -11
- package/node_modules/fastify/test/schema-serialization.test.js +108 -0
- package/node_modules/fastify/test/schema-validation.test.js +24 -0
- package/node_modules/fastify/test/scripts/validate-ecosystem-links.test.js +40 -57
- package/node_modules/fastify/test/throw.test.js +14 -0
- package/node_modules/fastify/test/trust-proxy.test.js +21 -0
- package/node_modules/fastify/test/types/content-type-parser.tst.ts +70 -0
- package/node_modules/fastify/test/types/decorate-request-reply.tst.ts +18 -0
- package/node_modules/fastify/test/types/dummy-plugin.mts +9 -0
- package/node_modules/fastify/test/types/errors.tst.ts +91 -0
- package/node_modules/fastify/test/types/fastify.tst.ts +351 -0
- package/node_modules/fastify/test/types/hooks.tst.ts +578 -0
- package/node_modules/fastify/test/types/instance.tst.ts +597 -0
- package/node_modules/fastify/test/types/logger.tst.ts +276 -0
- package/node_modules/fastify/test/types/plugin.tst.ts +96 -0
- package/node_modules/fastify/test/types/register.tst.ts +245 -0
- package/node_modules/fastify/test/types/reply.tst.ts +297 -0
- package/node_modules/fastify/test/types/request.tst.ts +199 -0
- package/node_modules/fastify/test/types/route.tst.ts +576 -0
- package/node_modules/fastify/test/types/schema.tst.ts +135 -0
- package/node_modules/fastify/test/types/serverFactory.tst.ts +37 -0
- package/node_modules/fastify/test/types/tsconfig.json +9 -0
- package/node_modules/fastify/test/types/type-provider.tst.ts +1219 -0
- package/node_modules/fastify/test/types/using.tst.ts +14 -0
- package/node_modules/fastify/types/errors.d.ts +3 -0
- package/node_modules/fastify/types/request.d.ts +23 -2
- package/node_modules/glob/README.md +39 -130
- package/node_modules/glob/dist/commonjs/glob.d.ts +8 -0
- package/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/glob.js +2 -1
- package/node_modules/glob/dist/commonjs/glob.js.map +1 -1
- package/node_modules/glob/dist/commonjs/index.min.js +4 -0
- package/node_modules/glob/dist/commonjs/index.min.js.map +7 -0
- package/node_modules/glob/dist/commonjs/pattern.d.ts +3 -0
- package/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -1
- package/node_modules/glob/dist/commonjs/pattern.js +4 -0
- package/node_modules/glob/dist/commonjs/pattern.js.map +1 -1
- package/node_modules/glob/dist/esm/glob.d.ts +8 -0
- package/node_modules/glob/dist/esm/glob.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/glob.js +2 -1
- package/node_modules/glob/dist/esm/glob.js.map +1 -1
- package/node_modules/glob/dist/esm/index.min.js +4 -0
- package/node_modules/glob/dist/esm/index.min.js.map +7 -0
- package/node_modules/glob/dist/esm/pattern.d.ts +3 -0
- package/node_modules/glob/dist/esm/pattern.d.ts.map +1 -1
- package/node_modules/glob/dist/esm/pattern.js +4 -0
- package/node_modules/glob/dist/esm/pattern.js.map +1 -1
- package/node_modules/glob/package.json +38 -37
- package/node_modules/jishushell-panel/README.md +4 -4
- package/node_modules/jishushell-panel/output/dist/server.js +17 -6
- package/node_modules/jishushell-panel/output/dist/server.js.map +1 -1
- package/node_modules/jishushell-panel/output/public/assets/ApiKeyField-Ce5d1xna.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/Dashboard-BXame3yg.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/HermesChatPanel-BHZtPCJd.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/HermesConfigForm-CB3GbNX9.js +4 -0
- package/node_modules/jishushell-panel/output/public/assets/InitPassword-Boab9F6g.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-DrIWCqo-.js +14 -0
- package/node_modules/jishushell-panel/output/public/assets/Login-CzpOkNau.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/NewInstance-CANXyCcL.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/ProviderRecommendations-BABo9VOC.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/Settings-CKp5XxFh.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/Setup-C7xVDPow.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/WeixinLoginPanel-B765Xz4C.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/api-C70Gt678.js +4 -0
- package/node_modules/jishushell-panel/output/public/assets/index-Bs6DSbiR.js +23 -0
- package/node_modules/jishushell-panel/output/public/assets/index-DnnqTf7s.css +1 -0
- package/node_modules/jishushell-panel/output/public/assets/registry-sWIZsIEF.js +2 -0
- package/node_modules/jishushell-panel/output/public/assets/rolldown-runtime-QTnfLwEv.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/setup-task-q21GnI0E.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/usePolling-D4IDOQd_.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-Df8aUdv8.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/vendor-react-0L0rjmYG.js +8 -0
- package/node_modules/jishushell-panel/output/public/index.html +6 -4
- package/node_modules/jishushell-panel/package.json +2 -2
- package/node_modules/semver/classes/range.js +17 -4
- package/node_modules/semver/package.json +2 -2
- package/package.json +12 -64
- package/scripts/check-app-path-boundaries.mjs +121 -0
- package/scripts/check-app-spec.mjs +123 -29
- package/scripts/check-architecture-boundaries.mjs +178 -0
- package/scripts/check-colima-launchd.mjs +10 -8
- package/scripts/check-integration-isolation.ts +541 -0
- package/scripts/check-new-file-tests.mjs +11 -3
- package/scripts/check-open-core-boundaries.mjs +60 -10
- package/scripts/check-test-layering.sh +1 -1
- package/scripts/fixtures/instances/hermes-sample/instance.json +3 -2
- package/scripts/fixtures/instances/legacy-openclaw-sample/instance.json +1 -1
- package/scripts/local-web-upgrade-test.README +4 -3
- package/scripts/local-web-upgrade-test.example.env +2 -2
- package/scripts/local-web-upgrade-test.sh +14 -1
- package/scripts/pack-gui-and-send-pi.sh +43 -0
- package/scripts/perf/instances.js +1 -1
- package/scripts/prune-open-core-dist.mjs +89 -2
- package/scripts/smoke/hermes-bootstrap.sh +5 -5
- package/templates/hermes-entrypoint.sh +19 -29
- package/apps/openwebui-container.yaml +0 -97
- package/apps/playwright-container.yaml +0 -126
- package/dependencies/jishushell-panel-0.6.5.tgz +0 -0
- package/dist/crypto-shim.d.ts +0 -1
- package/dist/crypto-shim.js +0 -2
- package/dist/crypto-shim.js.map +0 -1
- package/dist/routes/agent-apps.d.ts +0 -14
- package/dist/routes/agent-apps.js +0 -77
- package/dist/routes/agent-apps.js.map +0 -1
- package/dist/routes/internal.d.ts +0 -2
- package/dist/routes/internal.js +0 -55
- package/dist/routes/internal.js.map +0 -1
- package/dist/routes/openclaw-routes.d.ts +0 -22
- package/dist/routes/openclaw-routes.js +0 -1020
- package/dist/routes/openclaw-routes.js.map +0 -1
- package/dist/routes/runtime.d.ts +0 -15
- package/dist/routes/runtime.js +0 -76
- package/dist/routes/runtime.js.map +0 -1
- package/dist/services/agent-apps/catalog.d.ts +0 -33
- package/dist/services/agent-apps/catalog.js +0 -88
- package/dist/services/agent-apps/catalog.js.map +0 -1
- package/dist/services/agent-apps/index.d.ts +0 -36
- package/dist/services/agent-apps/index.js +0 -171
- package/dist/services/agent-apps/index.js.map +0 -1
- package/dist/services/agent-apps/installers/adapter-probes.d.ts +0 -49
- package/dist/services/agent-apps/installers/adapter-probes.js +0 -230
- package/dist/services/agent-apps/installers/adapter-probes.js.map +0 -1
- package/dist/services/agent-apps/installers/adapter.d.ts +0 -30
- package/dist/services/agent-apps/installers/adapter.js +0 -171
- package/dist/services/agent-apps/installers/adapter.js.map +0 -1
- package/dist/services/agent-apps/installers/registry-probe.js.map +0 -1
- package/dist/services/agent-apps/installers/shell-script.d.ts +0 -47
- package/dist/services/agent-apps/installers/shell-script.js +0 -488
- package/dist/services/agent-apps/installers/shell-script.js.map +0 -1
- package/dist/services/agent-apps/types.d.ts +0 -128
- package/dist/services/agent-apps/types.js +0 -17
- package/dist/services/agent-apps/types.js.map +0 -1
- package/dist/services/app/app-compiler.js +0 -185
- package/dist/services/app/app-compiler.js.map +0 -1
- package/dist/services/app/app-manager.d.ts +0 -184
- package/dist/services/app/app-manager.js +0 -2933
- package/dist/services/app/app-manager.js.map +0 -1
- package/dist/services/app/custom-manager.d.ts +0 -27
- package/dist/services/app/custom-manager.js +0 -382
- package/dist/services/app/custom-manager.js.map +0 -1
- package/dist/services/app/hermes-agent-manager.d.ts +0 -20
- package/dist/services/app/hermes-agent-manager.js +0 -299
- package/dist/services/app/hermes-agent-manager.js.map +0 -1
- package/dist/services/app/id-normalizer.d.ts +0 -27
- package/dist/services/app/id-normalizer.js +0 -77
- package/dist/services/app/id-normalizer.js.map +0 -1
- package/dist/services/app/ollama-manager.d.ts +0 -18
- package/dist/services/app/ollama-manager.js +0 -224
- package/dist/services/app/ollama-manager.js.map +0 -1
- package/dist/services/app/openclaw-manager.d.ts +0 -63
- package/dist/services/app/openclaw-manager.js +0 -1215
- package/dist/services/app/openclaw-manager.js.map +0 -1
- package/dist/services/app/paths.d.ts +0 -27
- package/dist/services/app/paths.js +0 -40
- package/dist/services/app/paths.js.map +0 -1
- package/dist/services/app/platform-transform.d.ts +0 -32
- package/dist/services/app/platform-transform.js +0 -65
- package/dist/services/app/platform-transform.js.map +0 -1
- package/dist/services/app/provide-resolver.d.ts +0 -29
- package/dist/services/app/provide-resolver.js +0 -135
- package/dist/services/app/provide-resolver.js.map +0 -1
- package/dist/services/app/registry.d.ts +0 -17
- package/dist/services/app/registry.js +0 -31
- package/dist/services/app/registry.js.map +0 -1
- package/dist/services/app/remote-spec.d.ts +0 -14
- package/dist/services/app/remote-spec.js +0 -58
- package/dist/services/app/remote-spec.js.map +0 -1
- package/dist/services/app/terminal-session-manager.js +0 -157
- package/dist/services/app/terminal-session-manager.js.map +0 -1
- package/dist/services/app/types.d.ts +0 -74
- package/dist/services/app/types.js +0 -16
- package/dist/services/app/types.js.map +0 -1
- package/dist/services/app-config-admin.d.ts +0 -17
- package/dist/services/app-config-admin.js +0 -177
- package/dist/services/app-config-admin.js.map +0 -1
- package/dist/services/app-create-from-installed.d.ts +0 -23
- package/dist/services/app-create-from-installed.js +0 -75
- package/dist/services/app-create-from-installed.js.map +0 -1
- package/dist/services/app-passwords.js +0 -173
- package/dist/services/app-passwords.js.map +0 -1
- package/dist/services/backup-admin.d.ts +0 -101
- package/dist/services/backup-admin.js +0 -259
- package/dist/services/backup-admin.js.map +0 -1
- package/dist/services/backup-manager.d.ts +0 -264
- package/dist/services/backup-manager.js +0 -2263
- package/dist/services/backup-manager.js.map +0 -1
- package/dist/services/backup-verify.js +0 -240
- package/dist/services/backup-verify.js.map +0 -1
- package/dist/services/capability-endpoint-validator.d.ts +0 -41
- package/dist/services/capability-endpoint-validator.js +0 -114
- package/dist/services/capability-endpoint-validator.js.map +0 -1
- package/dist/services/capability-health.d.ts +0 -16
- package/dist/services/capability-health.js +0 -121
- package/dist/services/capability-health.js.map +0 -1
- package/dist/services/capability-registry.d.ts +0 -29
- package/dist/services/capability-registry.js +0 -176
- package/dist/services/capability-registry.js.map +0 -1
- package/dist/services/capability-sync.d.ts +0 -4
- package/dist/services/capability-sync.js +0 -220
- package/dist/services/capability-sync.js.map +0 -1
- package/dist/services/connection-admin.d.ts +0 -74
- package/dist/services/connection-admin.js +0 -287
- package/dist/services/connection-admin.js.map +0 -1
- package/dist/services/connection-apply.d.ts +0 -91
- package/dist/services/connection-apply.js +0 -471
- package/dist/services/connection-apply.js.map +0 -1
- package/dist/services/connection-resolver.d.ts +0 -65
- package/dist/services/connection-resolver.js +0 -281
- package/dist/services/connection-resolver.js.map +0 -1
- package/dist/services/connection-transactor.d.ts +0 -39
- package/dist/services/connection-transactor.js +0 -354
- package/dist/services/connection-transactor.js.map +0 -1
- package/dist/services/core-manager.d.ts +0 -50
- package/dist/services/core-manager.js +0 -411
- package/dist/services/core-manager.js.map +0 -1
- package/dist/services/external-mounts.js +0 -187
- package/dist/services/external-mounts.js.map +0 -1
- package/dist/services/files-manager.d.ts +0 -252
- package/dist/services/files-manager.js +0 -1156
- package/dist/services/files-manager.js.map +0 -1
- package/dist/services/files-mounts.d.ts +0 -42
- package/dist/services/files-mounts.js +0 -207
- package/dist/services/files-mounts.js.map +0 -1
- package/dist/services/instance-admin.d.ts +0 -26
- package/dist/services/instance-admin.js +0 -218
- package/dist/services/instance-admin.js.map +0 -1
- package/dist/services/instance-manager.d.ts +0 -192
- package/dist/services/instance-manager.js +0 -1289
- package/dist/services/instance-manager.js.map +0 -1
- package/dist/services/macos-launchd.js +0 -312
- package/dist/services/macos-launchd.js.map +0 -1
- package/dist/services/nomad-manager.d.ts +0 -307
- package/dist/services/nomad-manager.js +0 -3958
- package/dist/services/nomad-manager.js.map +0 -1
- package/dist/services/organize/applier.js +0 -218
- package/dist/services/organize/applier.js.map +0 -1
- package/dist/services/organize/rules.js +0 -286
- package/dist/services/organize/rules.js.map +0 -1
- package/dist/services/organize/scanner.js +0 -366
- package/dist/services/organize/scanner.js.map +0 -1
- package/dist/services/organize/store.js +0 -82
- package/dist/services/organize/store.js.map +0 -1
- package/dist/services/plugin-installer.js +0 -128
- package/dist/services/plugin-installer.js.map +0 -1
- package/dist/services/process-manager.d.ts +0 -25
- package/dist/services/process-manager.js +0 -568
- package/dist/services/process-manager.js.map +0 -1
- package/dist/services/runtime/adapters/custom.d.ts +0 -20
- package/dist/services/runtime/adapters/custom.js +0 -188
- package/dist/services/runtime/adapters/custom.js.map +0 -1
- package/dist/services/runtime/adapters/hermes.d.ts +0 -204
- package/dist/services/runtime/adapters/hermes.js +0 -1684
- package/dist/services/runtime/adapters/hermes.js.map +0 -1
- package/dist/services/runtime/adapters/openclaw-mcporter.d.ts +0 -45
- package/dist/services/runtime/adapters/openclaw-mcporter.js +0 -108
- package/dist/services/runtime/adapters/openclaw-mcporter.js.map +0 -1
- package/dist/services/runtime/adapters/openclaw.d.ts +0 -426
- package/dist/services/runtime/adapters/openclaw.js +0 -3975
- package/dist/services/runtime/adapters/openclaw.js.map +0 -1
- package/dist/services/runtime/index.d.ts +0 -34
- package/dist/services/runtime/index.js +0 -51
- package/dist/services/runtime/index.js.map +0 -1
- package/dist/services/runtime/mcp-shims/anythingllm-shim.d.ts +0 -46
- package/dist/services/runtime/mcp-shims/anythingllm-shim.js +0 -281
- package/dist/services/runtime/mcp-shims/anythingllm-shim.js.map +0 -1
- package/dist/services/runtime/mcp-shims/drive-shim.js +0 -490
- package/dist/services/runtime/mcp-shims/drive-shim.js.map +0 -1
- package/dist/services/runtime/mcp-shims/jishukb-shim.d.ts +0 -48
- package/dist/services/runtime/mcp-shims/jishukb-shim.js +0 -723
- package/dist/services/runtime/mcp-shims/jishukb-shim.js.map +0 -1
- package/dist/services/runtime/mcp-shims/mcporter-lite.js +0 -276
- package/dist/services/runtime/mcp-shims/mcporter-lite.js.map +0 -1
- package/dist/services/runtime/migrations.d.ts +0 -23
- package/dist/services/runtime/migrations.js +0 -125
- package/dist/services/runtime/migrations.js.map +0 -1
- package/dist/services/runtime/registry.d.ts +0 -13
- package/dist/services/runtime/registry.js +0 -32
- package/dist/services/runtime/registry.js.map +0 -1
- package/dist/services/runtime-identity.d.ts +0 -13
- package/dist/services/runtime-identity.js +0 -166
- package/dist/services/runtime-identity.js.map +0 -1
- package/dist/services/runtime-repair.d.ts +0 -52
- package/dist/services/runtime-repair.js +0 -352
- package/dist/services/runtime-repair.js.map +0 -1
- package/dist/services/setup-manager.d.ts +0 -158
- package/dist/services/setup-manager.js +0 -2740
- package/dist/services/setup-manager.js.map +0 -1
- package/dist/services/suggestions.d.ts +0 -27
- package/dist/services/suggestions.js +0 -133
- package/dist/services/suggestions.js.map +0 -1
- package/dist/services/system-monitor.js +0 -79
- package/dist/services/system-monitor.js.map +0 -1
- package/dist/services/system-ollama-provider.d.ts +0 -14
- package/dist/services/system-ollama-provider.js +0 -125
- package/dist/services/system-ollama-provider.js.map +0 -1
- package/dist/services/system-reconciler.d.ts +0 -72
- package/dist/services/system-reconciler.js +0 -600
- package/dist/services/system-reconciler.js.map +0 -1
- package/dist/services/task-registry.d.ts +0 -44
- package/dist/services/task-registry.js +0 -76
- package/dist/services/task-registry.js.map +0 -1
- package/dist/services/types-shim.d.ts +0 -16
- package/dist/services/types-shim.js +0 -2
- package/dist/services/types-shim.js.map +0 -1
- package/dist/services/update-manager.d.ts +0 -47
- package/dist/services/update-manager.js +0 -351
- package/dist/services/update-manager.js.map +0 -1
- package/dist/services/webdav/server.d.ts +0 -24
- package/dist/services/webdav/server.js +0 -420
- package/dist/services/webdav/server.js.map +0 -1
- package/dist/services/webdav/xml-builder.js.map +0 -1
- package/dist/services/workspace-builder.d.ts +0 -29
- package/dist/services/workspace-builder.js +0 -188
- package/dist/services/workspace-builder.js.map +0 -1
- package/node_modules/@fastify/static/.github/stale.yml +0 -21
- package/node_modules/@isaacs/cliui/LICENSE.md +0 -63
- package/node_modules/@isaacs/cliui/README.md +0 -151
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.d.ts +0 -4
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.js +0 -16
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.d.ts +0 -34
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.js +0 -170
- package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.d.ts +0 -6
- package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.js +0 -307
- package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.d.ts +0 -2
- package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.js +0 -7
- package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/index.d.ts +0 -41
- package/node_modules/@isaacs/cliui/dist/commonjs/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/index.js +0 -322
- package/node_modules/@isaacs/cliui/dist/commonjs/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/index.min.js +0 -12
- package/node_modules/@isaacs/cliui/dist/commonjs/index.min.js.map +0 -7
- package/node_modules/@isaacs/cliui/dist/commonjs/package.json +0 -3
- package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.d.ts +0 -5
- package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.js +0 -49
- package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.d.ts +0 -2
- package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.js +0 -8
- package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.d.ts +0 -7
- package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.js +0 -176
- package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.d.ts +0 -4
- package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.js +0 -12
- package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.d.ts +0 -34
- package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.js +0 -167
- package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.d.ts +0 -6
- package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.js +0 -299
- package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.d.ts +0 -2
- package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.js +0 -3
- package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/index.d.ts +0 -41
- package/node_modules/@isaacs/cliui/dist/esm/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/index.js +0 -317
- package/node_modules/@isaacs/cliui/dist/esm/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/index.min.js +0 -12
- package/node_modules/@isaacs/cliui/dist/esm/index.min.js.map +0 -7
- package/node_modules/@isaacs/cliui/dist/esm/package.json +0 -3
- package/node_modules/@isaacs/cliui/dist/esm/string-width/index.d.ts +0 -5
- package/node_modules/@isaacs/cliui/dist/esm/string-width/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/string-width/index.js +0 -46
- package/node_modules/@isaacs/cliui/dist/esm/string-width/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.d.ts +0 -2
- package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.js +0 -4
- package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.d.ts +0 -7
- package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.d.ts.map +0 -1
- package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.js +0 -172
- package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.js.map +0 -1
- package/node_modules/@isaacs/cliui/package.json +0 -163
- package/node_modules/content-disposition/HISTORY.md +0 -60
- package/node_modules/cross-spawn/LICENSE +0 -21
- package/node_modules/cross-spawn/README.md +0 -89
- package/node_modules/cross-spawn/index.js +0 -39
- package/node_modules/cross-spawn/lib/enoent.js +0 -59
- package/node_modules/cross-spawn/lib/parse.js +0 -91
- package/node_modules/cross-spawn/lib/util/escape.js +0 -47
- package/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
- package/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
- package/node_modules/cross-spawn/package.json +0 -73
- package/node_modules/fastify/test/types/content-type-parser.test-d.ts +0 -72
- package/node_modules/fastify/test/types/decorate-request-reply.test-d.ts +0 -18
- package/node_modules/fastify/test/types/dummy-plugin.ts +0 -9
- package/node_modules/fastify/test/types/errors.test-d.ts +0 -90
- package/node_modules/fastify/test/types/fastify.test-d.ts +0 -352
- package/node_modules/fastify/test/types/hooks.test-d.ts +0 -550
- package/node_modules/fastify/test/types/import.ts +0 -2
- package/node_modules/fastify/test/types/instance.test-d.ts +0 -588
- package/node_modules/fastify/test/types/logger.test-d.ts +0 -277
- package/node_modules/fastify/test/types/plugin.test-d.ts +0 -97
- package/node_modules/fastify/test/types/register.test-d.ts +0 -237
- package/node_modules/fastify/test/types/reply.test-d.ts +0 -254
- package/node_modules/fastify/test/types/request.test-d.ts +0 -188
- package/node_modules/fastify/test/types/route.test-d.ts +0 -553
- package/node_modules/fastify/test/types/schema.test-d.ts +0 -135
- package/node_modules/fastify/test/types/serverFactory.test-d.ts +0 -37
- package/node_modules/fastify/test/types/type-provider.test-d.ts +0 -1213
- package/node_modules/fastify/test/types/using.test-d.ts +0 -17
- package/node_modules/foreground-child/LICENSE +0 -15
- package/node_modules/foreground-child/README.md +0 -128
- package/node_modules/foreground-child/dist/commonjs/all-signals.d.ts +0 -2
- package/node_modules/foreground-child/dist/commonjs/all-signals.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/commonjs/all-signals.js +0 -58
- package/node_modules/foreground-child/dist/commonjs/all-signals.js.map +0 -1
- package/node_modules/foreground-child/dist/commonjs/index.d.ts +0 -58
- package/node_modules/foreground-child/dist/commonjs/index.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/commonjs/index.js +0 -123
- package/node_modules/foreground-child/dist/commonjs/index.js.map +0 -1
- package/node_modules/foreground-child/dist/commonjs/package.json +0 -3
- package/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts +0 -6
- package/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/commonjs/proxy-signals.js +0 -38
- package/node_modules/foreground-child/dist/commonjs/proxy-signals.js.map +0 -1
- package/node_modules/foreground-child/dist/commonjs/watchdog.d.ts +0 -10
- package/node_modules/foreground-child/dist/commonjs/watchdog.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/commonjs/watchdog.js +0 -50
- package/node_modules/foreground-child/dist/commonjs/watchdog.js.map +0 -1
- package/node_modules/foreground-child/dist/esm/all-signals.d.ts +0 -2
- package/node_modules/foreground-child/dist/esm/all-signals.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/esm/all-signals.js +0 -52
- package/node_modules/foreground-child/dist/esm/all-signals.js.map +0 -1
- package/node_modules/foreground-child/dist/esm/index.d.ts +0 -58
- package/node_modules/foreground-child/dist/esm/index.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/esm/index.js +0 -115
- package/node_modules/foreground-child/dist/esm/index.js.map +0 -1
- package/node_modules/foreground-child/dist/esm/package.json +0 -3
- package/node_modules/foreground-child/dist/esm/proxy-signals.d.ts +0 -6
- package/node_modules/foreground-child/dist/esm/proxy-signals.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/esm/proxy-signals.js +0 -34
- package/node_modules/foreground-child/dist/esm/proxy-signals.js.map +0 -1
- package/node_modules/foreground-child/dist/esm/watchdog.d.ts +0 -10
- package/node_modules/foreground-child/dist/esm/watchdog.d.ts.map +0 -1
- package/node_modules/foreground-child/dist/esm/watchdog.js +0 -46
- package/node_modules/foreground-child/dist/esm/watchdog.js.map +0 -1
- package/node_modules/foreground-child/package.json +0 -106
- package/node_modules/glob/dist/esm/bin.d.mts +0 -3
- package/node_modules/glob/dist/esm/bin.d.mts.map +0 -1
- package/node_modules/glob/dist/esm/bin.mjs +0 -346
- package/node_modules/glob/dist/esm/bin.mjs.map +0 -1
- package/node_modules/isexe/.npmignore +0 -2
- package/node_modules/isexe/LICENSE +0 -15
- package/node_modules/isexe/README.md +0 -51
- package/node_modules/isexe/index.js +0 -57
- package/node_modules/isexe/mode.js +0 -41
- package/node_modules/isexe/package.json +0 -31
- package/node_modules/isexe/test/basic.js +0 -221
- package/node_modules/isexe/windows.js +0 -42
- package/node_modules/jackspeak/LICENSE.md +0 -55
- package/node_modules/jackspeak/README.md +0 -394
- package/node_modules/jackspeak/dist/commonjs/index.d.ts +0 -323
- package/node_modules/jackspeak/dist/commonjs/index.d.ts.map +0 -1
- package/node_modules/jackspeak/dist/commonjs/index.js +0 -944
- package/node_modules/jackspeak/dist/commonjs/index.js.map +0 -1
- package/node_modules/jackspeak/dist/commonjs/index.min.js +0 -33
- package/node_modules/jackspeak/dist/commonjs/index.min.js.map +0 -7
- package/node_modules/jackspeak/dist/commonjs/package.json +0 -3
- package/node_modules/jackspeak/dist/esm/index.d.ts +0 -323
- package/node_modules/jackspeak/dist/esm/index.d.ts.map +0 -1
- package/node_modules/jackspeak/dist/esm/index.js +0 -936
- package/node_modules/jackspeak/dist/esm/index.js.map +0 -1
- package/node_modules/jackspeak/dist/esm/index.min.js +0 -33
- package/node_modules/jackspeak/dist/esm/index.min.js.map +0 -7
- package/node_modules/jackspeak/dist/esm/package.json +0 -3
- package/node_modules/jackspeak/package.json +0 -115
- package/node_modules/jishushell-panel/output/public/assets/ApiKeyField-D1i7zWXR.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/Dashboard-sWIvL43F.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/HermesChatPanel-DQ8RyvQY.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/HermesConfigForm-tIbPP1sB.js +0 -4
- package/node_modules/jishushell-panel/output/public/assets/InitPassword-C3Slq3Dd.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-7JqY9tq4.js +0 -92
- package/node_modules/jishushell-panel/output/public/assets/Login-BXLDJlQN.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/NewInstance-dLc5Xrpx.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/ProviderRecommendations-DIAXxesl.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/Settings-Bd5utbBh.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/Setup-Yn9_20FL.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/WeixinLoginPanel-C21doQTJ.js +0 -9
- package/node_modules/jishushell-panel/output/public/assets/index-CCkaIEjn.js +0 -20
- package/node_modules/jishushell-panel/output/public/assets/index-D7qxy-Vh.css +0 -1
- package/node_modules/jishushell-panel/output/public/assets/registry-B2ZQZXWL.js +0 -2
- package/node_modules/jishushell-panel/output/public/assets/usePolling-BFZm4do_.js +0 -1
- package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-DqPtOicc.js +0 -9
- package/node_modules/jishushell-panel/output/public/assets/vendor-react-DW5juQin.js +0 -59
- package/node_modules/package-json-from-dist/LICENSE.md +0 -63
- package/node_modules/package-json-from-dist/README.md +0 -110
- package/node_modules/package-json-from-dist/dist/commonjs/index.d.ts +0 -89
- package/node_modules/package-json-from-dist/dist/commonjs/index.d.ts.map +0 -1
- package/node_modules/package-json-from-dist/dist/commonjs/index.js +0 -134
- package/node_modules/package-json-from-dist/dist/commonjs/index.js.map +0 -1
- package/node_modules/package-json-from-dist/dist/commonjs/package.json +0 -3
- package/node_modules/package-json-from-dist/dist/esm/index.d.ts +0 -89
- package/node_modules/package-json-from-dist/dist/esm/index.d.ts.map +0 -1
- package/node_modules/package-json-from-dist/dist/esm/index.js +0 -129
- package/node_modules/package-json-from-dist/dist/esm/index.js.map +0 -1
- package/node_modules/package-json-from-dist/dist/esm/package.json +0 -3
- package/node_modules/package-json-from-dist/package.json +0 -68
- package/node_modules/path-key/index.d.ts +0 -40
- package/node_modules/path-key/index.js +0 -16
- package/node_modules/path-key/license +0 -9
- package/node_modules/path-key/package.json +0 -39
- package/node_modules/path-key/readme.md +0 -61
- package/node_modules/safe-buffer/LICENSE +0 -21
- package/node_modules/safe-buffer/README.md +0 -584
- package/node_modules/safe-buffer/index.d.ts +0 -187
- package/node_modules/safe-buffer/index.js +0 -65
- package/node_modules/safe-buffer/package.json +0 -51
- package/node_modules/shebang-command/index.js +0 -19
- package/node_modules/shebang-command/license +0 -9
- package/node_modules/shebang-command/package.json +0 -34
- package/node_modules/shebang-command/readme.md +0 -34
- package/node_modules/shebang-regex/index.d.ts +0 -22
- package/node_modules/shebang-regex/index.js +0 -2
- package/node_modules/shebang-regex/license +0 -9
- package/node_modules/shebang-regex/package.json +0 -35
- package/node_modules/shebang-regex/readme.md +0 -33
- package/node_modules/signal-exit/LICENSE.txt +0 -16
- package/node_modules/signal-exit/README.md +0 -74
- package/node_modules/signal-exit/dist/cjs/browser.d.ts +0 -12
- package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +0 -1
- package/node_modules/signal-exit/dist/cjs/browser.js +0 -10
- package/node_modules/signal-exit/dist/cjs/browser.js.map +0 -1
- package/node_modules/signal-exit/dist/cjs/index.d.ts +0 -48
- package/node_modules/signal-exit/dist/cjs/index.d.ts.map +0 -1
- package/node_modules/signal-exit/dist/cjs/index.js +0 -279
- package/node_modules/signal-exit/dist/cjs/index.js.map +0 -1
- package/node_modules/signal-exit/dist/cjs/package.json +0 -3
- package/node_modules/signal-exit/dist/cjs/signals.d.ts +0 -29
- package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +0 -1
- package/node_modules/signal-exit/dist/cjs/signals.js +0 -42
- package/node_modules/signal-exit/dist/cjs/signals.js.map +0 -1
- package/node_modules/signal-exit/dist/mjs/browser.d.ts +0 -12
- package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +0 -1
- package/node_modules/signal-exit/dist/mjs/browser.js +0 -4
- package/node_modules/signal-exit/dist/mjs/browser.js.map +0 -1
- package/node_modules/signal-exit/dist/mjs/index.d.ts +0 -48
- package/node_modules/signal-exit/dist/mjs/index.d.ts.map +0 -1
- package/node_modules/signal-exit/dist/mjs/index.js +0 -275
- package/node_modules/signal-exit/dist/mjs/index.js.map +0 -1
- package/node_modules/signal-exit/dist/mjs/package.json +0 -3
- package/node_modules/signal-exit/dist/mjs/signals.d.ts +0 -29
- package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +0 -1
- package/node_modules/signal-exit/dist/mjs/signals.js +0 -39
- package/node_modules/signal-exit/dist/mjs/signals.js.map +0 -1
- package/node_modules/signal-exit/package.json +0 -106
- package/node_modules/which/CHANGELOG.md +0 -166
- package/node_modules/which/LICENSE +0 -15
- package/node_modules/which/README.md +0 -54
- package/node_modules/which/bin/node-which +0 -52
- package/node_modules/which/package.json +0 -43
- package/node_modules/which/which.js +0 -125
- package/scripts/check-adapter-isolation.ts +0 -293
- /package/dist/services/{app → app-common}/app-compiler.d.ts +0 -0
- /package/dist/services/{app → app-common}/terminal-session-manager.d.ts +0 -0
- /package/dist/services/{backup-verify.d.ts → backup/backup-verify.d.ts} +0 -0
- /package/dist/services/{external-mounts.d.ts → files/external-mounts.d.ts} +0 -0
- /package/dist/services/{organize → files/organize}/applier.d.ts +0 -0
- /package/dist/services/{organize → files/organize}/rules.d.ts +0 -0
- /package/dist/services/{organize → files/organize}/scanner.d.ts +0 -0
- /package/dist/services/{organize → files/organize}/store.d.ts +0 -0
- /package/dist/services/{webdav → files/webdav}/xml-builder.d.ts +0 -0
- /package/dist/services/{webdav → files/webdav}/xml-builder.js +0 -0
- /package/dist/services/{app-passwords.d.ts → instances/passwords.d.ts} +0 -0
- /package/dist/services/{agent-apps → integrations/installable}/installers/registry-probe.d.ts +0 -0
- /package/dist/services/{agent-apps → integrations/installable}/installers/registry-probe.js +0 -0
- /package/dist/services/{runtime/mcp-shims → integrations/openclaw}/drive-shim.d.ts +0 -0
- /package/dist/services/{runtime/mcp-shims → integrations/openclaw}/mcporter-lite.d.ts +0 -0
- /package/dist/services/{plugin-installer.d.ts → setup/plugin-installer.d.ts} +0 -0
- /package/dist/services/{macos-launchd.d.ts → system/macos-launchd.d.ts} +0 -0
- /package/dist/services/{system-monitor.d.ts → system/system-monitor.d.ts} +0 -0
package/dist/server.js
CHANGED
|
@@ -2,40 +2,53 @@ import Fastify from "fastify";
|
|
|
2
2
|
import multipart from "@fastify/multipart";
|
|
3
3
|
import { request as httpRequest } from "http";
|
|
4
4
|
import { request as httpsRequest } from "https";
|
|
5
|
-
import { ensureDirs, ensureCoreConfig, getCoreConfig,
|
|
5
|
+
import { ensureDirs, ensureCoreConfig, getCoreConfig, migrateIntegrationRuntimeSchemaIfNeeded, migrateHermesShimOutIfNeeded, removeFlatOpenclawImageIfNeeded, getInternalMcpToken, } from "./config.js";
|
|
6
6
|
import { timingSafeEqual } from "node:crypto";
|
|
7
|
-
import {
|
|
7
|
+
import { listRegisteredIntegrations, normalizeIntegrationCoreConfigOnStartup } from "./services/integrations/index.js";
|
|
8
8
|
import { verifyToken } from "./auth.js";
|
|
9
9
|
import { authRoutes } from "./routes/auth.js";
|
|
10
|
+
import { adminRoutes } from "./routes/admin.js";
|
|
10
11
|
import { instanceRoutes } from "./routes/instances.js";
|
|
12
|
+
import { dockerRoutes } from "./routes/docker.js";
|
|
11
13
|
import { systemRoutes } from "./routes/system.js";
|
|
12
14
|
import { setupRoutes } from "./routes/setup.js";
|
|
13
|
-
import {
|
|
15
|
+
import { integrationsRoutes } from "./routes/integrations.js";
|
|
14
16
|
import { appRoutes } from "./routes/apps.js";
|
|
15
|
-
import {
|
|
17
|
+
import { integrationAppRoutes } from "./routes/integration-apps.js";
|
|
16
18
|
import { llmRoutes } from "./routes/llm.js";
|
|
17
19
|
import { filesRoutes } from "./routes/files.js";
|
|
18
|
-
import { internalRoutes } from "./routes/internal.js";
|
|
19
20
|
import { organizeRoutes } from "./routes/files-organize.js";
|
|
20
21
|
import { fileMountsRoutes } from "./routes/file-mounts.js";
|
|
21
22
|
import { registerProxyRoutes } from "./routes/llm-proxy.js";
|
|
22
23
|
import { webdavRoutes } from "./routes/webdav.js";
|
|
23
24
|
import { externalMountsRoutes } from "./routes/external-mounts.js";
|
|
24
|
-
import { FilesManager } from "./services/files-manager.js";
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import {
|
|
25
|
+
import { FilesManager } from "./services/files/files-manager.js";
|
|
26
|
+
import { ensureDefaultFilesLayout } from "./services/files/bootstrap.js";
|
|
27
|
+
import { registerAppModuleRoutes } from "./services/app-modules/routes.js";
|
|
28
|
+
import { registerIntegrationOwnedRoutes } from "./services/integrations/routes.js";
|
|
29
|
+
import * as appService from "./services/app-common/service.js";
|
|
30
|
+
import * as appLifecycle from "./services/app-common/lifecycle-service.js";
|
|
31
|
+
import * as capabilityRegistry from "./services/capabilities/registry.js";
|
|
32
|
+
import { getConnectHostForPort } from "./services/instances/manager.js";
|
|
28
33
|
import backupRoutes from "./routes/backup.js";
|
|
29
34
|
import * as llmProxy from "./services/llm-proxy/index.js";
|
|
30
|
-
import * as
|
|
31
|
-
import * as
|
|
32
|
-
import
|
|
33
|
-
import { startTmpCleanupScheduler, initAutoBackup } from "./services/backup-manager.js";
|
|
34
|
-
import { checkUpdate, getUpdateStatus
|
|
35
|
-
import { inspectSystemDrift
|
|
35
|
+
import * as nomadDriver from "./services/runtime/drivers/nomad.js";
|
|
36
|
+
import * as setupManager from "./services/setup/setup-manager.js";
|
|
37
|
+
import { shutdownTaskRegistry } from "./services/tasks/registry.js";
|
|
38
|
+
import { startTmpCleanupScheduler, stopTmpCleanupScheduler, initAutoBackup, shutdownAutoBackup, } from "./services/backup/backup-manager.js";
|
|
39
|
+
import { checkUpdate, getUpdateStatus } from "./services/system/update-manager.js";
|
|
40
|
+
import { inspectSystemDrift } from "./services/system/system-reconciler.js";
|
|
36
41
|
import { PROXY_IDENTITY_HEADERS } from "./constants.js";
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
const PUBLIC_PATHS = new Set([
|
|
43
|
+
"/api/auth/status",
|
|
44
|
+
"/api/auth/init",
|
|
45
|
+
"/api/auth/login",
|
|
46
|
+
"/api/setup/status",
|
|
47
|
+
// Public by product decision: this only validates a one-shot sudo password
|
|
48
|
+
// before install/upgrade flows. The actual privileged operation must still
|
|
49
|
+
// receive the password in its own request or run through a sudo CLI command.
|
|
50
|
+
"/api/apps/validate-sudo-password",
|
|
51
|
+
]);
|
|
39
52
|
/** Slug charset for /apps/:slug — same as instance ids. */
|
|
40
53
|
const SLUG_RE = /^[a-z0-9][a-z0-9-]{0,62}$/;
|
|
41
54
|
/** Regex for top-level app WebSocket upgrades (AI-FS v1 W2.5 PR-8). */
|
|
@@ -119,6 +132,79 @@ export function buildCapabilityWebSocketHeaders(headers, upstreamOrigin) {
|
|
|
119
132
|
}
|
|
120
133
|
return upstreamHeaders;
|
|
121
134
|
}
|
|
135
|
+
export function buildAppProxyHttpHeaders(input) {
|
|
136
|
+
const forwardHeaders = {};
|
|
137
|
+
for (const [key, value] of Object.entries(input.headers)) {
|
|
138
|
+
if (value === undefined)
|
|
139
|
+
continue;
|
|
140
|
+
const lower = key.toLowerCase();
|
|
141
|
+
if (lower === "host")
|
|
142
|
+
continue;
|
|
143
|
+
if (lower === "cookie") {
|
|
144
|
+
const stripped = stripPanelSessionCookie(value);
|
|
145
|
+
if (stripped)
|
|
146
|
+
forwardHeaders[key] = stripped;
|
|
147
|
+
continue;
|
|
148
|
+
}
|
|
149
|
+
if (lower === "authorization")
|
|
150
|
+
continue;
|
|
151
|
+
forwardHeaders[key] = value;
|
|
152
|
+
}
|
|
153
|
+
forwardHeaders.host = input.upstreamHostHeader;
|
|
154
|
+
if (input.headers.host)
|
|
155
|
+
forwardHeaders["x-forwarded-host"] = String(input.headers.host);
|
|
156
|
+
forwardHeaders["x-forwarded-proto"] = input.protocol;
|
|
157
|
+
if (input.clientIp) {
|
|
158
|
+
const existingForwardedFor = forwardHeaders["x-forwarded-for"];
|
|
159
|
+
const existingForwardedForText = Array.isArray(existingForwardedFor)
|
|
160
|
+
? existingForwardedFor.join(", ")
|
|
161
|
+
: existingForwardedFor;
|
|
162
|
+
forwardHeaders["x-forwarded-for"] = existingForwardedForText
|
|
163
|
+
? `${existingForwardedForText}, ${input.clientIp}`
|
|
164
|
+
: input.clientIp;
|
|
165
|
+
forwardHeaders["x-real-ip"] = input.clientIp;
|
|
166
|
+
}
|
|
167
|
+
return forwardHeaders;
|
|
168
|
+
}
|
|
169
|
+
function matchIntegrationPublicProxy(path, options = {}) {
|
|
170
|
+
for (const integration of listRegisteredIntegrations()) {
|
|
171
|
+
const descriptor = integration.publicProxy;
|
|
172
|
+
if (!descriptor)
|
|
173
|
+
continue;
|
|
174
|
+
if (options.authBypass === true && descriptor.authBypass !== true)
|
|
175
|
+
continue;
|
|
176
|
+
if (options.websocket === true && descriptor.websocket !== true)
|
|
177
|
+
continue;
|
|
178
|
+
descriptor.basePathPattern.lastIndex = 0;
|
|
179
|
+
const matched = descriptor.basePathPattern.exec(path);
|
|
180
|
+
if (!matched)
|
|
181
|
+
continue;
|
|
182
|
+
return {
|
|
183
|
+
integration,
|
|
184
|
+
match: {
|
|
185
|
+
instanceId: matched[1] ?? "",
|
|
186
|
+
suffix: matched[2] ?? "",
|
|
187
|
+
},
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
function buildPublicProxyWebSocketHeaders(headers, descriptorHeaders) {
|
|
193
|
+
const upstreamHeaders = {};
|
|
194
|
+
for (const [key, value] of Object.entries(headers)) {
|
|
195
|
+
if (value === undefined)
|
|
196
|
+
continue;
|
|
197
|
+
const lower = key.toLowerCase();
|
|
198
|
+
if (lower === "host" ||
|
|
199
|
+
lower === "cookie" ||
|
|
200
|
+
lower === "authorization" ||
|
|
201
|
+
PROXY_IDENTITY_HEADERS.has(lower)) {
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
upstreamHeaders[key] = value;
|
|
205
|
+
}
|
|
206
|
+
return { ...upstreamHeaders, ...descriptorHeaders };
|
|
207
|
+
}
|
|
122
208
|
function forwardWebSocketRejection(socket, res) {
|
|
123
209
|
const statusCode = res.statusCode || 502;
|
|
124
210
|
const statusMessage = res.statusMessage || "Bad Gateway";
|
|
@@ -140,10 +226,56 @@ export function selectRefererWebSocketCapability(capabilities, refererCapability
|
|
|
140
226
|
?? matches.find((capability) => capability.capability === refererCapability)
|
|
141
227
|
?? null;
|
|
142
228
|
}
|
|
229
|
+
async function convergeInstanceDesiredStateOnBoot() {
|
|
230
|
+
for (const inst of appService.listInstances()) {
|
|
231
|
+
const instanceId = typeof inst?.id === "string" ? inst.id : "";
|
|
232
|
+
if (!instanceId)
|
|
233
|
+
continue;
|
|
234
|
+
const desiredState = inst.desiredState;
|
|
235
|
+
if (desiredState !== "running" && desiredState !== "stopped") {
|
|
236
|
+
console.warn(`[startup] Skipping ${instanceId}: invalid desiredState '${String(desiredState)}'`);
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
try {
|
|
240
|
+
const status = await appService.getInstanceInstallRecordStatus(instanceId);
|
|
241
|
+
const actualStatus = String(status?.status ?? "unknown");
|
|
242
|
+
if (desiredState === "running") {
|
|
243
|
+
if (actualStatus === "running" || actualStatus === "pending" || actualStatus === "installing") {
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
if (actualStatus === "unknown") {
|
|
247
|
+
console.warn(`[startup] Skipping start convergence for ${instanceId}: runtime status unknown`);
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
console.log(`[startup] Starting ${instanceId} from Core desiredState=running (actual=${actualStatus})...`);
|
|
251
|
+
const result = await appLifecycle.startInstance(instanceId);
|
|
252
|
+
if (!result.ok) {
|
|
253
|
+
console.warn(`[startup] Start convergence failed for ${instanceId}: ${result.error ?? "unknown error"}`);
|
|
254
|
+
}
|
|
255
|
+
continue;
|
|
256
|
+
}
|
|
257
|
+
if (actualStatus === "running" || actualStatus === "pending") {
|
|
258
|
+
console.log(`[startup] Stopping ${instanceId} from Core desiredState=stopped (actual=${actualStatus})...`);
|
|
259
|
+
const result = await appLifecycle.stopInstance(instanceId);
|
|
260
|
+
if (!result.ok) {
|
|
261
|
+
console.warn(`[startup] Stop convergence failed for ${instanceId}: ${result.error ?? "unknown error"}`);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
catch (error) {
|
|
266
|
+
console.warn(`[startup] Desired-state convergence skipped for ${instanceId}: ${error?.message ?? error}`);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
}
|
|
143
270
|
export async function createServer(options = {}) {
|
|
144
271
|
const port = options.port ?? 8091;
|
|
145
272
|
const host = options.host || "0.0.0.0";
|
|
273
|
+
let startupTimer = null;
|
|
274
|
+
let delayedSystemDriftTimer = null;
|
|
275
|
+
let backgroundUpdateInitial = null;
|
|
276
|
+
let backgroundUpdateInterval = null;
|
|
146
277
|
ensureDirs();
|
|
278
|
+
ensureDefaultFilesLayout();
|
|
147
279
|
startTmpCleanupScheduler();
|
|
148
280
|
initAutoBackup().catch((e) => console.error("[auto-backup] Init error:", e.message));
|
|
149
281
|
llmProxy.rebuildTokenMap();
|
|
@@ -152,6 +284,19 @@ export async function createServer(options = {}) {
|
|
|
152
284
|
logger: true,
|
|
153
285
|
bodyLimit: 1048576,
|
|
154
286
|
});
|
|
287
|
+
app.addHook("onClose", async () => {
|
|
288
|
+
if (startupTimer)
|
|
289
|
+
clearTimeout(startupTimer);
|
|
290
|
+
if (delayedSystemDriftTimer)
|
|
291
|
+
clearTimeout(delayedSystemDriftTimer);
|
|
292
|
+
if (backgroundUpdateInitial)
|
|
293
|
+
clearTimeout(backgroundUpdateInitial);
|
|
294
|
+
if (backgroundUpdateInterval)
|
|
295
|
+
clearInterval(backgroundUpdateInterval);
|
|
296
|
+
shutdownTaskRegistry();
|
|
297
|
+
stopTmpCleanupScheduler();
|
|
298
|
+
shutdownAutoBackup();
|
|
299
|
+
});
|
|
155
300
|
// Allow empty JSON body for POST requests
|
|
156
301
|
app.addContentTypeParser("application/json", { parseAs: "string" }, (_req, body, done) => {
|
|
157
302
|
if (!body || body.length === 0) {
|
|
@@ -182,7 +327,7 @@ export async function createServer(options = {}) {
|
|
|
182
327
|
// any agent container starts and tries to read it via env injection.
|
|
183
328
|
// Lazy-init would only fire on the first request that carries an
|
|
184
329
|
// X-Jishushell-Internal-Token header, which is too late for the
|
|
185
|
-
//
|
|
330
|
+
// integration onBeforeStart hook that mounts the value into the container.
|
|
186
331
|
try {
|
|
187
332
|
getInternalMcpToken();
|
|
188
333
|
}
|
|
@@ -190,7 +335,7 @@ export async function createServer(options = {}) {
|
|
|
190
335
|
console.warn(`[server] internal MCP token init skipped: ${e?.message ?? e}`);
|
|
191
336
|
}
|
|
192
337
|
// ── Auth middleware for /apps/* (AI-FS v1 W2.5 PR-8) ──────────────────
|
|
193
|
-
// Top-level reverse proxy for
|
|
338
|
+
// Top-level reverse proxy for instance UI capabilities.
|
|
194
339
|
// Pairs with `/api/instances/:id/provides/:cap/*` which is instance-scoped.
|
|
195
340
|
// This hook is scoped to /apps/* only so it does not double-fire with the
|
|
196
341
|
// existing /api/* hook below.
|
|
@@ -215,41 +360,32 @@ export async function createServer(options = {}) {
|
|
|
215
360
|
const path = request.url.split("?")[0];
|
|
216
361
|
if (!path.startsWith("/api/") || PUBLIC_PATHS.has(path))
|
|
217
362
|
return;
|
|
218
|
-
// Allow
|
|
219
|
-
//
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
363
|
+
// Allow integration-owned public proxies without panel auth when the
|
|
364
|
+
// integration declares its own upstream auth, but verify the instance
|
|
365
|
+
// actually exists to prevent probing.
|
|
366
|
+
const publicProxy = matchIntegrationPublicProxy(path, { authBypass: true });
|
|
367
|
+
if (publicProxy) {
|
|
368
|
+
const id = publicProxy.match.instanceId;
|
|
369
|
+
if (!id || !appService.getInstance(id)) {
|
|
223
370
|
return reply.status(404).send({ detail: "Instance not found" });
|
|
224
371
|
}
|
|
225
372
|
return;
|
|
226
373
|
}
|
|
227
|
-
// Internal token path — used by
|
|
228
|
-
//
|
|
229
|
-
//
|
|
230
|
-
//
|
|
231
|
-
//
|
|
232
|
-
// (need ONLY X-Jishushell-Internal-Token; no instance binding —
|
|
233
|
-
// apps aren't instances)
|
|
234
|
-
// Combined with the standard JWT path below; we never require both.
|
|
374
|
+
// Internal token path — used by MCP/runtime shims spawned inside managed
|
|
375
|
+
// instances. These callers must present BOTH
|
|
376
|
+
// X-Jishushell-Internal-Token + X-Jishushell-Instance so Core can bind
|
|
377
|
+
// the request to a canonical instance. Combined with the standard JWT
|
|
378
|
+
// path below; we never require both.
|
|
235
379
|
const internalToken = request.headers["x-jishushell-internal-token"];
|
|
236
380
|
if (typeof internalToken === "string" && internalToken.length >= 32) {
|
|
237
381
|
const expected = getInternalMcpToken();
|
|
238
382
|
if (internalToken.length === expected.length &&
|
|
239
383
|
timingSafeEqual(Buffer.from(internalToken), Buffer.from(expected))) {
|
|
240
384
|
const instanceId = request.headers["x-jishushell-instance"];
|
|
241
|
-
if (typeof instanceId === "string" &&
|
|
385
|
+
if (typeof instanceId === "string" && appService.getInstance(instanceId)) {
|
|
242
386
|
request.internalCallerInstance = instanceId;
|
|
243
387
|
return;
|
|
244
388
|
}
|
|
245
|
-
// Path (b): app-lifecycle / internal-only routes. Allowed without
|
|
246
|
-
// an instance header. The route is responsible for asserting the
|
|
247
|
-
// (request as any).internalCallerScope === "panel" tag before
|
|
248
|
-
// returning sensitive data.
|
|
249
|
-
if (path.startsWith("/api/internal/")) {
|
|
250
|
-
request.internalCallerScope = "panel";
|
|
251
|
-
return;
|
|
252
|
-
}
|
|
253
389
|
}
|
|
254
390
|
return reply.status(401).send({ detail: "Unauthorized" });
|
|
255
391
|
}
|
|
@@ -287,15 +423,18 @@ export async function createServer(options = {}) {
|
|
|
287
423
|
registerProxyRoutes(app);
|
|
288
424
|
// Register routes
|
|
289
425
|
await app.register(authRoutes);
|
|
426
|
+
await app.register(adminRoutes);
|
|
427
|
+
await app.register(dockerRoutes);
|
|
290
428
|
await app.register(instanceRoutes);
|
|
291
429
|
await app.register(systemRoutes);
|
|
292
430
|
await app.register(setupRoutes);
|
|
293
|
-
await app.register(
|
|
431
|
+
await app.register(integrationsRoutes);
|
|
294
432
|
await app.register(appRoutes);
|
|
295
|
-
await app.register(
|
|
433
|
+
await app.register(integrationAppRoutes);
|
|
434
|
+
registerAppModuleRoutes(app);
|
|
435
|
+
await registerIntegrationOwnedRoutes(app);
|
|
296
436
|
await app.register(llmRoutes);
|
|
297
437
|
await app.register(backupRoutes);
|
|
298
|
-
await app.register(internalRoutes);
|
|
299
438
|
// Single FilesManager instance shared across /api/files, /webdav, and
|
|
300
439
|
// /api/files/external-mounts so a mutation on the mount list (PUT
|
|
301
440
|
// /external-mounts) is visible to every layer immediately.
|
|
@@ -322,7 +461,7 @@ export async function createServer(options = {}) {
|
|
|
322
461
|
await webdavRoutes(scope, { filesManager: sharedFilesManager });
|
|
323
462
|
});
|
|
324
463
|
// ── Top-level /apps/:slug/* reverse proxy (AI-FS v1 W2.5 PR-8) ───────────
|
|
325
|
-
// Reverse-proxies HTTP requests for
|
|
464
|
+
// Reverse-proxies HTTP requests for instance UI capabilities to their
|
|
326
465
|
// upstream. Auth is handled by the onRequest hook above. The /apps/:slug
|
|
327
466
|
// prefix is NOT stripped — apps like Filebrowser are configured with
|
|
328
467
|
// --baseURL=/apps/filebrowser and expect the full path.
|
|
@@ -344,27 +483,20 @@ export async function createServer(options = {}) {
|
|
|
344
483
|
// Pass the full original path unchanged (including /apps/<slug> prefix).
|
|
345
484
|
const rawUrl = req.raw.url ?? "/";
|
|
346
485
|
const targetPath = rawUrl;
|
|
347
|
-
const hostHeader = `${
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
continue;
|
|
362
|
-
}
|
|
363
|
-
if (lower === "authorization")
|
|
364
|
-
continue;
|
|
365
|
-
forwardHeaders[key] = value;
|
|
366
|
-
}
|
|
367
|
-
forwardHeaders["host"] = hostHeader;
|
|
486
|
+
const hostHeader = `${appService.urlHost(upstreamHost)}:${upstreamPort}`;
|
|
487
|
+
const clientIp = typeof req.ip === "string" && req.ip
|
|
488
|
+
? req.ip
|
|
489
|
+
: typeof req.raw?.socket?.remoteAddress === "string"
|
|
490
|
+
? req.raw.socket.remoteAddress
|
|
491
|
+
: "";
|
|
492
|
+
// Strip panel credentials, but preserve proxy identity for apps whose
|
|
493
|
+
// security middleware expects standard reverse-proxy headers.
|
|
494
|
+
const forwardHeaders = buildAppProxyHttpHeaders({
|
|
495
|
+
headers: req.headers,
|
|
496
|
+
upstreamHostHeader: hostHeader,
|
|
497
|
+
protocol: req.protocol,
|
|
498
|
+
clientIp,
|
|
499
|
+
});
|
|
368
500
|
// Hijack before writing to reply.raw so Fastify does not attempt its own
|
|
369
501
|
// lifecycle send after the handler returns.
|
|
370
502
|
reply.hijack();
|
|
@@ -413,62 +545,79 @@ export async function createServer(options = {}) {
|
|
|
413
545
|
app.all("/apps/:slug/*", appsProxyHandler);
|
|
414
546
|
// Auto-start Nomad-managed instances on startup
|
|
415
547
|
app.addHook("onReady", async () => {
|
|
416
|
-
setTimeout(async () => {
|
|
548
|
+
startupTimer = setTimeout(async () => {
|
|
549
|
+
startupTimer = null;
|
|
417
550
|
try {
|
|
551
|
+
if (process.env.JISHUSHELL_SKIP_STARTUP_MAINTENANCE === "1") {
|
|
552
|
+
console.log("[startup] Maintenance tasks skipped by JISHUSHELL_SKIP_STARTUP_MAINTENANCE");
|
|
553
|
+
return;
|
|
554
|
+
}
|
|
418
555
|
ensureCoreConfig();
|
|
419
556
|
removeFlatOpenclawImageIfNeeded();
|
|
420
557
|
// One-shot: drop runtime_catalog.hermes.shimPath and delete the
|
|
421
558
|
// orphaned ~/.jishushell/runtimes/hermes/ dir. The Hermes shim is
|
|
422
|
-
// now baked into the image (PR3c) and the
|
|
559
|
+
// now baked into the image (PR3c) and the integration verifies the
|
|
423
560
|
// official image RepoDigest before launch, so the host shim is dead weight.
|
|
424
561
|
migrateHermesShimOutIfNeeded();
|
|
425
|
-
// Stamp the runtime_catalog schema version so core.json
|
|
426
|
-
// provenance marker. Warns (but doesn't crash) on detected
|
|
427
|
-
// downgrade where the stored version exceeds what we support.
|
|
428
|
-
|
|
429
|
-
//
|
|
430
|
-
//
|
|
431
|
-
//
|
|
432
|
-
|
|
433
|
-
//
|
|
434
|
-
// runtime_catalog.
|
|
435
|
-
//
|
|
436
|
-
//
|
|
437
|
-
|
|
438
|
-
|
|
562
|
+
// Stamp the historical runtime_catalog schema version so core.json
|
|
563
|
+
// carries a provenance marker. Warns (but doesn't crash) on detected
|
|
564
|
+
// core downgrade where the stored version exceeds what we support.
|
|
565
|
+
migrateIntegrationRuntimeSchemaIfNeeded();
|
|
566
|
+
// Step 13: startup no longer runs implicit instance-schema
|
|
567
|
+
// migrations. The dedicated `jishushell migrate legacy` command
|
|
568
|
+
// owns all legacy normalisation; reconcile / doctor only touch
|
|
569
|
+
// system/runtime state.
|
|
570
|
+
// Let Integrations normalize only their Core-owned global config. For
|
|
571
|
+
// example, OpenClaw pins runtime_catalog.openclaw.defaultImage and
|
|
572
|
+
// Hermes pins runtime_catalog.hermes.defaultImage. This hook
|
|
573
|
+
// must never migrate instance directories, facts, config, or jobs.
|
|
574
|
+
if (process.env.JISHUSHELL_SKIP_STARTUP_MIGRATIONS === "1") {
|
|
575
|
+
console.log("[startup] Integration Core config normalization skipped by JISHUSHELL_SKIP_STARTUP_MIGRATIONS");
|
|
576
|
+
}
|
|
577
|
+
else {
|
|
578
|
+
normalizeIntegrationCoreConfigOnStartup();
|
|
579
|
+
}
|
|
439
580
|
getUpdateStatus();
|
|
440
|
-
//
|
|
441
|
-
//
|
|
442
|
-
//
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
581
|
+
// Inspect system-level drift (systemd units, Docker images, Nomad
|
|
582
|
+
// config) against the currently installed code. Startup is an
|
|
583
|
+
// observation point only: applying host-level fixes, sudo, reload, or
|
|
584
|
+
// service restarts must happen through explicit Panel/CLI reconcile
|
|
585
|
+
// actions after user confirmation.
|
|
586
|
+
if (process.env.JISHUSHELL_SKIP_STARTUP_RECONCILE === "1") {
|
|
587
|
+
console.log("[startup] System drift inspection skipped by JISHUSHELL_SKIP_STARTUP_RECONCILE");
|
|
588
|
+
}
|
|
589
|
+
else {
|
|
590
|
+
try {
|
|
591
|
+
const reconcileResult = await inspectSystemDrift();
|
|
592
|
+
const updated = reconcileResult.items.filter(i => i.status === "updated");
|
|
593
|
+
const errors = reconcileResult.items.filter(i => i.status === "error");
|
|
594
|
+
const needsSudo = reconcileResult.items.filter(i => i.requiresSudo && i.status !== "ok" && i.status !== "updated");
|
|
595
|
+
if (updated.length > 0) {
|
|
596
|
+
console.warn(`[startup] Unexpected system drift inspection update(s): ${updated.map(i => i.component).join(", ")}`);
|
|
597
|
+
}
|
|
598
|
+
if (errors.length > 0) {
|
|
599
|
+
console.warn(`[startup] System drift inspection errors: ${errors.map(i => `${i.component}: ${i.message}`).join("; ")}`);
|
|
600
|
+
}
|
|
601
|
+
if (needsSudo.length > 0) {
|
|
602
|
+
console.warn(`[startup] ${needsSudo.length} item(s) need sudo to fix. Run: ${reconcileResult.command}`);
|
|
603
|
+
}
|
|
604
|
+
else if (reconcileResult.reloadRequired) {
|
|
605
|
+
console.warn(`[startup] System files changed and services should be reloaded. Run: ${reconcileResult.command}`);
|
|
606
|
+
}
|
|
607
|
+
if (errors.length > 0 || reconcileResult.reloadRequired) {
|
|
608
|
+
delayedSystemDriftTimer = setTimeout(() => {
|
|
609
|
+
delayedSystemDriftTimer = null;
|
|
610
|
+
inspectSystemDrift().catch((e) => {
|
|
611
|
+
console.warn(`[startup] Delayed system reconciliation check skipped: ${e.message}`);
|
|
612
|
+
});
|
|
613
|
+
}, 15_000);
|
|
614
|
+
delayedSystemDriftTimer.unref();
|
|
615
|
+
}
|
|
460
616
|
}
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
inspectSystemDrift().catch((e) => {
|
|
464
|
-
console.warn(`[startup] Delayed system reconciliation check skipped: ${e.message}`);
|
|
465
|
-
});
|
|
466
|
-
}, 15_000).unref();
|
|
617
|
+
catch (e) {
|
|
618
|
+
console.warn(`[startup] System drift inspection skipped: ${e.message}`);
|
|
467
619
|
}
|
|
468
620
|
}
|
|
469
|
-
catch (e) {
|
|
470
|
-
console.warn(`[startup] System reconciliation skipped: ${e.message}`);
|
|
471
|
-
}
|
|
472
621
|
const config = getCoreConfig();
|
|
473
622
|
if (config.service_manager === "nomad") {
|
|
474
623
|
const nomadResult = await setupManager.startNomad();
|
|
@@ -477,51 +626,30 @@ export async function createServer(options = {}) {
|
|
|
477
626
|
}
|
|
478
627
|
else {
|
|
479
628
|
console.log(`[startup] Nomad: ${nomadResult.message}`);
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
continue;
|
|
487
|
-
const status = await nomadManager.getStatus(inst.id);
|
|
488
|
-
if (status.status === "running") {
|
|
489
|
-
continue;
|
|
490
|
-
}
|
|
491
|
-
else if (status.status === "pending" || status.status === "stopped") {
|
|
492
|
-
const shouldStart = await nomadManager.shouldAutoStart(inst.id);
|
|
493
|
-
if (shouldStart) {
|
|
494
|
-
console.log(`[startup] Auto-starting Nomad instance ${inst.id} (was running before restart)...`);
|
|
495
|
-
await nomadManager.startInstance(inst.id);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
629
|
+
try {
|
|
630
|
+
await convergeInstanceDesiredStateOnBoot();
|
|
631
|
+
console.log("[startup] Desired-state convergence completed.");
|
|
632
|
+
}
|
|
633
|
+
catch (e) {
|
|
634
|
+
console.error("[startup] Desired-state convergence failed:", e);
|
|
498
635
|
}
|
|
499
|
-
console.log("[startup] Nomad instances started/restarted.");
|
|
500
|
-
}
|
|
501
|
-
catch (e) {
|
|
502
|
-
console.error("[startup] Nomad restart failed:", e);
|
|
503
636
|
}
|
|
504
|
-
//
|
|
505
|
-
//
|
|
506
|
-
//
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
try {
|
|
510
|
-
migrateOpenclawImageTagIfNeeded();
|
|
637
|
+
// Retry Core config normalization after workload convergence because
|
|
638
|
+
// a newly available local image may now provide a pinnable version.
|
|
639
|
+
// This still must not mutate any instance-owned state.
|
|
640
|
+
if (process.env.JISHUSHELL_SKIP_STARTUP_MIGRATIONS === "1") {
|
|
641
|
+
console.log("[startup] Integration Core config normalization skipped by JISHUSHELL_SKIP_STARTUP_MIGRATIONS");
|
|
511
642
|
}
|
|
512
|
-
|
|
513
|
-
|
|
643
|
+
else {
|
|
644
|
+
normalizeIntegrationCoreConfigOnStartup();
|
|
514
645
|
}
|
|
515
|
-
// Second adapter-migration sweep — after Nomad auto-start the
|
|
516
|
-
// runtime images may finally be locally present so `:latest` →
|
|
517
|
-
// pinned digest tag rewrite can now succeed.
|
|
518
|
-
runStartupMigrations();
|
|
519
646
|
}
|
|
520
|
-
//
|
|
521
|
-
//
|
|
522
|
-
//
|
|
647
|
+
// Authoritative boot-time capability-registry rebuild. This
|
|
648
|
+
// populates reverse-proxy and connection routes immediately after
|
|
649
|
+
// Core restart. After boot, registry updates are event-driven through
|
|
650
|
+
// lifecycle/API status observations and uninstall cleanup.
|
|
523
651
|
try {
|
|
524
|
-
await
|
|
652
|
+
await appService.refreshCapabilityRegistry({ force: true });
|
|
525
653
|
}
|
|
526
654
|
catch (e) {
|
|
527
655
|
console.error("[startup] Capability registry rebuild failed:", e);
|
|
@@ -533,12 +661,15 @@ export async function createServer(options = {}) {
|
|
|
533
661
|
}, 0);
|
|
534
662
|
});
|
|
535
663
|
await app.listen({ port, host });
|
|
664
|
+
const address = app.server.address();
|
|
665
|
+
const actualPort = typeof address === "object" && address !== null
|
|
666
|
+
? address.port
|
|
667
|
+
: port;
|
|
536
668
|
// Track active WebSocket proxy sockets for graceful shutdown
|
|
537
669
|
const activeWsSockets = new Set();
|
|
538
670
|
// Handle WebSocket upgrades directly on the HTTP server, bypassing Fastify's
|
|
539
671
|
// request lifecycle. Fastify's internal headersTimeout (73s) kills hijacked
|
|
540
672
|
// sockets, so we intercept upgrades before Fastify sees them.
|
|
541
|
-
const GATEWAY_WS_RE = /^\/api\/instances\/([a-z0-9][a-z0-9-]{0,62})\/gateway(?:\/(.*))?$/;
|
|
542
673
|
const CAPABILITY_WS_RE = /^\/api\/instances\/([a-z0-9][a-z0-9-]{0,62})\/provides\/([^/?]+)(?:\/(.*))?$/;
|
|
543
674
|
// Match Referer pointing at a capability proxy page (used to resolve
|
|
544
675
|
// root-level WS upgrades initiated by embedded pages like Browserless debugger
|
|
@@ -547,12 +678,12 @@ export async function createServer(options = {}) {
|
|
|
547
678
|
app.server.on("upgrade", async (req, socket, head) => {
|
|
548
679
|
const url = req.url || "";
|
|
549
680
|
const path = url.split("?")[0];
|
|
550
|
-
const
|
|
681
|
+
const publicProxyMatch = matchIntegrationPublicProxy(path, { websocket: true });
|
|
551
682
|
const capabilityMatch = path.match(CAPABILITY_WS_RE);
|
|
552
683
|
// ── /apps/:slug/* WebSocket upgrade (AI-FS v1 W2.5 PR-8) ──────────────
|
|
553
|
-
// Proxy WS upgrades for top-level
|
|
684
|
+
// Proxy WS upgrades for top-level instance UI capabilities. Same auth gate as HTTP.
|
|
554
685
|
const appSlugWsMatch = path.match(APP_SLUG_WS_RE);
|
|
555
|
-
if (appSlugWsMatch && !
|
|
686
|
+
if (appSlugWsMatch && !publicProxyMatch && !capabilityMatch) {
|
|
556
687
|
const slug = appSlugWsMatch[1];
|
|
557
688
|
// Auth gate: same JWT cookie/bearer check as the HTTP handler above.
|
|
558
689
|
if (!hasValidPanelUpgradeToken(req)) {
|
|
@@ -567,7 +698,7 @@ export async function createServer(options = {}) {
|
|
|
567
698
|
return;
|
|
568
699
|
}
|
|
569
700
|
const { host: upstreamHost, port: upstreamPort } = upstream;
|
|
570
|
-
const hostHeader = `${
|
|
701
|
+
const hostHeader = `${appService.urlHost(upstreamHost)}:${upstreamPort}`;
|
|
571
702
|
const upstreamOrigin = `http://${hostHeader}`;
|
|
572
703
|
const qs = url.includes("?") ? url.slice(url.indexOf("?")) : "";
|
|
573
704
|
const targetPath = `${path}${qs}`;
|
|
@@ -677,7 +808,7 @@ export async function createServer(options = {}) {
|
|
|
677
808
|
// resolve the target instance via the Referer header pointing at the
|
|
678
809
|
// capability proxy page that served the embedded UI.
|
|
679
810
|
let refererCapabilityMatch = null;
|
|
680
|
-
if (!
|
|
811
|
+
if (!publicProxyMatch && !capabilityMatch) {
|
|
681
812
|
const referer = req.headers.referer || "";
|
|
682
813
|
try {
|
|
683
814
|
const refUrl = new URL(referer, "http://localhost");
|
|
@@ -688,8 +819,8 @@ export async function createServer(options = {}) {
|
|
|
688
819
|
}
|
|
689
820
|
catch { /* ignore malformed referer */ }
|
|
690
821
|
}
|
|
691
|
-
if (!
|
|
692
|
-
// Not a
|
|
822
|
+
if (!publicProxyMatch && !capabilityMatch && !refererCapabilityMatch) {
|
|
823
|
+
// Not a handled WebSocket — let it drop (Fastify doesn't handle WS natively)
|
|
693
824
|
socket.destroy();
|
|
694
825
|
return;
|
|
695
826
|
}
|
|
@@ -729,17 +860,17 @@ export async function createServer(options = {}) {
|
|
|
729
860
|
// instance that serves the request path (e.g. path "/" with http protocol).
|
|
730
861
|
if (refererCapabilityMatch) {
|
|
731
862
|
const id = refererCapabilityMatch.instanceId;
|
|
732
|
-
const appData =
|
|
863
|
+
const appData = appService.getInstanceInstallRecord(id);
|
|
733
864
|
if (!appData) {
|
|
734
865
|
socket.destroy();
|
|
735
866
|
return;
|
|
736
867
|
}
|
|
737
|
-
const capabilities =
|
|
868
|
+
const capabilities = appService.getProvidedCapabilitiesForApp(id);
|
|
738
869
|
// Find a capability whose path prefix matches the WS request path.
|
|
739
870
|
// Prefer capabilities with path "/" (root API) that aren't the debugger UI itself.
|
|
740
871
|
const wsPath = path || "/";
|
|
741
872
|
const capability = selectRefererWebSocketCapability(capabilities, refererCapabilityMatch.capability, wsPath);
|
|
742
|
-
if (!capability
|
|
873
|
+
if (!capability) {
|
|
743
874
|
try {
|
|
744
875
|
socket.write("HTTP/1.1 404 Not Found\r\nConnection: close\r\n\r\n");
|
|
745
876
|
}
|
|
@@ -754,9 +885,24 @@ export async function createServer(options = {}) {
|
|
|
754
885
|
// port (e.g. 18789) when the static port is taken at start-time. The
|
|
755
886
|
// HTTP capability proxy already does this; the WS proxy must mirror it
|
|
756
887
|
// or every WS upgrade for reallocated apps lands on a dead host port.
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
888
|
+
let runtimePort = null;
|
|
889
|
+
try {
|
|
890
|
+
runtimePort = appService.resolveRuntimeCapabilityPort(id, capability.capability);
|
|
891
|
+
}
|
|
892
|
+
catch (error) {
|
|
893
|
+
if (!appService.isCanonicalRuntimePortRequiredError(error))
|
|
894
|
+
throw error;
|
|
895
|
+
socket.write("HTTP/1.1 409 Conflict\r\nConnection: close\r\n\r\n");
|
|
896
|
+
socket.destroy();
|
|
897
|
+
return;
|
|
898
|
+
}
|
|
899
|
+
if (typeof runtimePort !== "number" || runtimePort < 1) {
|
|
900
|
+
socket.write("HTTP/1.1 409 Conflict\r\nConnection: close\r\n\r\n");
|
|
901
|
+
socket.destroy();
|
|
902
|
+
return;
|
|
903
|
+
}
|
|
904
|
+
const targetHost = await appService.getHostForAppPort(id, runtimePort);
|
|
905
|
+
const hostHeader = `${appService.urlHost(targetHost)}:${runtimePort}`;
|
|
760
906
|
const upstreamOrigin = `${protocol === "https" || protocol === "wss" ? "https" : "http"}://${hostHeader}`;
|
|
761
907
|
const qs = url.includes("?") ? url.slice(url.indexOf("?")) : "";
|
|
762
908
|
const targetPath = `${joinCapabilityUpstreamPath(capability.path, path.replace(/^\/+/, ""))}${qs}`;
|
|
@@ -862,12 +1008,12 @@ export async function createServer(options = {}) {
|
|
|
862
1008
|
if (capabilityMatch) {
|
|
863
1009
|
const id = capabilityMatch[1];
|
|
864
1010
|
const capabilityName = decodeURIComponent(capabilityMatch[2] || "");
|
|
865
|
-
const appData =
|
|
1011
|
+
const appData = appService.getInstanceInstallRecord(id);
|
|
866
1012
|
if (!appData) {
|
|
867
1013
|
socket.destroy();
|
|
868
1014
|
return;
|
|
869
1015
|
}
|
|
870
|
-
const capability =
|
|
1016
|
+
const capability = appService.getProvidedCapabilitiesForApp(id).find((entry) => entry.capability === capabilityName);
|
|
871
1017
|
if (!capability || capability.visibility === "internal") {
|
|
872
1018
|
try {
|
|
873
1019
|
socket.write("HTTP/1.1 404 Not Found\r\nConnection: close\r\n\r\n");
|
|
@@ -876,19 +1022,26 @@ export async function createServer(options = {}) {
|
|
|
876
1022
|
socket.destroy();
|
|
877
1023
|
return;
|
|
878
1024
|
}
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
1025
|
+
const protocol = String(capability.protocol || "http").toLowerCase();
|
|
1026
|
+
const upstreamRequest = protocol === "https" || protocol === "wss" ? httpsRequest : httpRequest;
|
|
1027
|
+
let runtimePort = null;
|
|
1028
|
+
try {
|
|
1029
|
+
runtimePort = appService.resolveRuntimeCapabilityPort(id, capabilityName);
|
|
1030
|
+
}
|
|
1031
|
+
catch (error) {
|
|
1032
|
+
if (!appService.isCanonicalRuntimePortRequiredError(error))
|
|
1033
|
+
throw error;
|
|
1034
|
+
socket.write("HTTP/1.1 409 Conflict\r\nConnection: close\r\n\r\n");
|
|
884
1035
|
socket.destroy();
|
|
885
1036
|
return;
|
|
886
1037
|
}
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
1038
|
+
if (typeof runtimePort !== "number" || runtimePort < 1) {
|
|
1039
|
+
socket.write("HTTP/1.1 409 Conflict\r\nConnection: close\r\n\r\n");
|
|
1040
|
+
socket.destroy();
|
|
1041
|
+
return;
|
|
1042
|
+
}
|
|
1043
|
+
const targetHost = await appService.getHostForAppPort(id, runtimePort);
|
|
1044
|
+
const hostHeader = `${appService.urlHost(targetHost)}:${runtimePort}`;
|
|
892
1045
|
const upstreamOrigin = `${protocol === "https" || protocol === "wss" ? "https" : "http"}://${hostHeader}`;
|
|
893
1046
|
const suffix = capabilityMatch[3] || "";
|
|
894
1047
|
const qs = url.includes("?") ? url.slice(url.indexOf("?")) : "";
|
|
@@ -994,67 +1147,47 @@ export async function createServer(options = {}) {
|
|
|
994
1147
|
proxyReq.end();
|
|
995
1148
|
return;
|
|
996
1149
|
}
|
|
997
|
-
const
|
|
998
|
-
const id = match
|
|
999
|
-
const inst =
|
|
1150
|
+
const publicProxy = publicProxyMatch;
|
|
1151
|
+
const id = publicProxy.match.instanceId;
|
|
1152
|
+
const inst = appService.getInstance(id);
|
|
1000
1153
|
if (!inst) {
|
|
1001
1154
|
socket.destroy();
|
|
1002
1155
|
return;
|
|
1003
1156
|
}
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1157
|
+
const qs = url.includes("?") ? url.slice(url.indexOf("?")) : "";
|
|
1158
|
+
const descriptor = publicProxy.integration.publicProxy;
|
|
1159
|
+
let target;
|
|
1160
|
+
try {
|
|
1161
|
+
target = await descriptor.resolveTarget({ match: publicProxy.match, query: qs });
|
|
1162
|
+
}
|
|
1163
|
+
catch (error) {
|
|
1164
|
+
if (appService.isCanonicalRuntimePortRequiredError(error)) {
|
|
1165
|
+
socket.write("HTTP/1.1 409 Conflict\r\nConnection: close\r\n\r\n");
|
|
1166
|
+
socket.destroy();
|
|
1167
|
+
return;
|
|
1007
1168
|
}
|
|
1008
|
-
|
|
1009
|
-
socket.destroy();
|
|
1010
|
-
return;
|
|
1169
|
+
throw error;
|
|
1011
1170
|
}
|
|
1012
|
-
const gwPort = instanceManager.getGatewayPort(id);
|
|
1013
|
-
const gwHost = await instanceManager.getGatewayHost(id);
|
|
1014
1171
|
// Bracket IPv6 literals for Host-header use. Node's http.request accepts
|
|
1015
1172
|
// a bare `::1` in `hostname`, but the `host` header field is a URL-style
|
|
1016
1173
|
// `<host>:<port>` where v6 must be bracketed.
|
|
1017
|
-
const hostHeader = `${
|
|
1018
|
-
const
|
|
1019
|
-
const
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
const lower = key.toLowerCase();
|
|
1026
|
-
if (lower === "host" ||
|
|
1027
|
-
PROXY_IDENTITY_HEADERS.has(lower) ||
|
|
1028
|
-
// Strip panel auth credentials — do not leak to downstream OpenClaw gateway
|
|
1029
|
-
lower === "cookie" ||
|
|
1030
|
-
lower === "authorization")
|
|
1031
|
-
continue;
|
|
1032
|
-
upstreamHeaders[key] = value;
|
|
1033
|
-
}
|
|
1034
|
-
try {
|
|
1035
|
-
const cfg = getNativeStoredConfig(id);
|
|
1036
|
-
const token = cfg?.gateway?.auth?.token;
|
|
1037
|
-
if (typeof token === "string" && token.trim()) {
|
|
1038
|
-
upstreamHeaders["authorization"] = `Bearer ${token.trim()}`;
|
|
1039
|
-
}
|
|
1040
|
-
}
|
|
1041
|
-
catch {
|
|
1042
|
-
// Best effort: if the config is unavailable, OpenClaw will reject the
|
|
1043
|
-
// upgrade with its normal auth error.
|
|
1044
|
-
}
|
|
1045
|
-
// Forward the browser's Origin unchanged. The panel auto-adds it to
|
|
1046
|
-
// `gateway.controlUi.allowedOrigins` via ensureControlUiAllowedOrigin
|
|
1047
|
-
// + restart; rewriting to the upstream host (as cli 94163bc did)
|
|
1048
|
-
// breaks that allowlist match.
|
|
1174
|
+
const hostHeader = `${appService.urlHost(target.host)}:${target.port}`;
|
|
1175
|
+
const targetPath = target.path;
|
|
1176
|
+
const descriptorHeaders = descriptor.buildHeaders?.({
|
|
1177
|
+
match: publicProxy.match,
|
|
1178
|
+
incomingHeaders: req.headers,
|
|
1179
|
+
}) ?? {};
|
|
1180
|
+
const upstreamHeaders = buildPublicProxyWebSocketHeaders(req.headers, descriptorHeaders);
|
|
1181
|
+
const upstreamRequest = target.protocol === "https" ? httpsRequest : httpRequest;
|
|
1049
1182
|
// Prevent any HTTP-level timeouts from killing this long-lived connection
|
|
1050
1183
|
socket.setTimeout?.(0);
|
|
1051
1184
|
socket.setNoDelay?.(true);
|
|
1052
1185
|
socket.setKeepAlive?.(true, 30000);
|
|
1053
1186
|
let proxyReq;
|
|
1054
1187
|
try {
|
|
1055
|
-
proxyReq =
|
|
1056
|
-
hostname:
|
|
1057
|
-
port:
|
|
1188
|
+
proxyReq = upstreamRequest({
|
|
1189
|
+
hostname: target.host,
|
|
1190
|
+
port: target.port,
|
|
1058
1191
|
path: targetPath,
|
|
1059
1192
|
method: "GET",
|
|
1060
1193
|
timeout: 10000, // 10s timeout for upstream upgrade handshake
|
|
@@ -1096,7 +1229,7 @@ export async function createServer(options = {}) {
|
|
|
1096
1229
|
if (proxyHead.length > 0)
|
|
1097
1230
|
socket.write(proxyHead);
|
|
1098
1231
|
// Bidirectional pipe: forward all WebSocket frames without interception.
|
|
1099
|
-
//
|
|
1232
|
+
// The upstream integration manages its own WebSocket protocol.
|
|
1100
1233
|
proxySocket.pipe(socket);
|
|
1101
1234
|
socket.pipe(proxySocket);
|
|
1102
1235
|
proxySocket.resume();
|
|
@@ -1149,23 +1282,25 @@ export async function createServer(options = {}) {
|
|
|
1149
1282
|
});
|
|
1150
1283
|
proxyReq.end();
|
|
1151
1284
|
});
|
|
1152
|
-
llmProxy.setCorePort(
|
|
1153
|
-
setupManager.setServerPort(
|
|
1154
|
-
|
|
1155
|
-
console.log(`JishuShell listening on http://${host}:${
|
|
1285
|
+
llmProxy.setCorePort(actualPort);
|
|
1286
|
+
setupManager.setServerPort(actualPort);
|
|
1287
|
+
nomadDriver.setCorePort(actualPort);
|
|
1288
|
+
console.log(`JishuShell listening on http://${host}:${actualPort}`);
|
|
1156
1289
|
// Background update check — runs the update probe (which probes the npm registry
|
|
1157
1290
|
// for new versions) so headless deployments can detect available updates.
|
|
1158
1291
|
// Safe by design: checkUpdate swallows all errors and has a 30s in-memory cache.
|
|
1159
1292
|
const bgUpdateCheck = () => { checkUpdate().catch(() => { }); };
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1293
|
+
backgroundUpdateInitial = setTimeout(bgUpdateCheck, 30_000);
|
|
1294
|
+
backgroundUpdateInterval = setInterval(bgUpdateCheck, 4 * 60 * 60 * 1000);
|
|
1295
|
+
backgroundUpdateInitial.unref();
|
|
1296
|
+
backgroundUpdateInterval.unref();
|
|
1164
1297
|
// Graceful shutdown — let in-flight requests finish before exiting
|
|
1165
1298
|
const shutdown = async () => {
|
|
1166
1299
|
console.log("[server] Shutting down gracefully...");
|
|
1167
|
-
|
|
1168
|
-
|
|
1300
|
+
if (backgroundUpdateInitial)
|
|
1301
|
+
clearTimeout(backgroundUpdateInitial);
|
|
1302
|
+
if (backgroundUpdateInterval)
|
|
1303
|
+
clearInterval(backgroundUpdateInterval);
|
|
1169
1304
|
llmProxy.flushUsage();
|
|
1170
1305
|
// Destroy all active WebSocket proxy connections
|
|
1171
1306
|
for (const s of activeWsSockets) {
|