jishushell 0.6.5 → 0.6.18
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 +15 -170
- package/apps/browserless-chromium-container.yaml +15 -10
- package/apps/filebrowser-container.yaml +14 -9
- package/apps/hermes-container.yaml +23 -2
- package/apps/jishu-kb-container.yaml +29 -161
- package/apps/ollama-binary.yaml +32 -28
- package/apps/ollama-cpu-container.yaml +5 -0
- package/apps/ollama-with-hollama-binary.yaml +33 -28
- package/apps/openclaw-binary.yaml +34 -10
- package/apps/openclaw-container.yaml +31 -7
- package/apps/openclaw-with-ollama-container.yaml +8 -2
- package/apps/openclaw-with-searxng-container.yaml +18 -6
- package/apps/searxng-container.yaml +11 -6
- package/apps/weknora-container.yaml +21 -21
- package/dependencies/jishushell-panel-0.6.18.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 +17 -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 +23 -19
- package/dist/config.js +60 -49
- 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 +18 -18
- package/dist/install.js.map +1 -1
- 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/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 +51 -30
- 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 +10 -4
- package/dist/routes/instances.js +323 -541
- 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.js +315 -213
- 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 +308 -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 +104 -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 +495 -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 +467 -0
- package/dist/services/app-common/lifecycle-service.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 +126 -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 +9 -0
- package/dist/services/app-common/spec-materializer.js +361 -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 +759 -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 +517 -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 +50 -0
- package/dist/services/capabilities/contract.js +129 -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 +114 -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/connections/admin.d.ts +80 -0
- package/dist/services/connections/admin.js +327 -0
- package/dist/services/connections/admin.js.map +1 -0
- package/dist/services/connections/apply.d.ts +110 -0
- package/dist/services/connections/apply.js +444 -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/suggestions.d.ts +27 -0
- package/dist/services/connections/suggestions.js +124 -0
- package/dist/services/connections/suggestions.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/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/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/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 +231 -0
- package/dist/services/instances/manager.js +1348 -0
- package/dist/services/instances/manager.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/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 +1669 -0
- package/dist/services/integrations/hermes/integration.js.map +1 -0
- package/dist/services/integrations/index.d.ts +40 -0
- package/dist/services/integrations/index.js +59 -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 +177 -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 +22 -0
- package/dist/services/integrations/jishukb/integration.js +189 -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 +424 -0
- package/dist/services/integrations/openclaw/integration.js +4402 -0
- package/dist/services/integrations/openclaw/integration.js.map +1 -0
- package/dist/services/integrations/openclaw/jishukb-shim.d.ts +48 -0
- package/dist/services/integrations/openclaw/jishukb-shim.js +750 -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 +46 -0
- package/dist/services/integrations/openclaw/mcporter.js +112 -0
- package/dist/services/integrations/openclaw/mcporter.js.map +1 -0
- package/dist/services/integrations/openclaw/routes.d.ts +21 -0
- package/dist/services/integrations/openclaw/routes.js +1191 -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 +469 -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 +307 -0
- package/dist/services/repair/runtime-repair.js.map +1 -0
- package/dist/services/runtime/driver-registry.d.ts +21 -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 +260 -0
- package/dist/services/runtime/drivers/nomad.js +3092 -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/types.d.ts +22 -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 +525 -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 +2768 -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/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 +710 -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 +331 -45
- package/dist/utils/instance-lock.d.ts +2 -2
- package/dist/utils/instance-lock.js +2 -2
- package/install/jishu-install.sh +107 -26
- 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/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/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-NKcbHjNz.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/Dashboard-Da1fL38t.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/HermesChatPanel-DZvmYsoh.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/HermesConfigForm-BLUWlKwm.js +4 -0
- package/node_modules/jishushell-panel/output/public/assets/InitPassword-BAKsshzk.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-Dgyc_TX5.js +14 -0
- package/node_modules/jishushell-panel/output/public/assets/Login-DHeOmwI8.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/NewInstance-CIy0cYtp.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/ProviderRecommendations-H0ByEYF0.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/Settings-DAT-UMfP.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/Setup-g3uckFYR.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/WeixinLoginPanel-D-T6BxkQ.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-DnnqTf7s.css +1 -0
- package/node_modules/jishushell-panel/output/public/assets/index-ERt6_ngA.js +23 -0
- package/node_modules/jishushell-panel/output/public/assets/registry-DF93EzIb.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-DeoThIQn.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-CS8DFbkQ.js +1 -0
- package/node_modules/jishushell-panel/output/public/assets/vendor-react-Cc84NArf.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 +11 -2
- 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 +127 -25
- 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 +41 -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/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/cli/app.js
CHANGED
|
@@ -2,9 +2,10 @@ import { existsSync, readFileSync } from "fs";
|
|
|
2
2
|
import { basename, extname } from "path";
|
|
3
3
|
import { parseFlag } from "./helpers.js";
|
|
4
4
|
import { loadManagedListEntries, printManagedList } from "./managed-list.js";
|
|
5
|
-
import { ensureNomadToken, execInInstance, getInstanceLogs, getInstanceStatus, readInstanceMeta,
|
|
6
|
-
import {
|
|
7
|
-
import { getTask, subscribeTask } from "../services/
|
|
5
|
+
import { ensureNomadToken, execInInstance, getInstanceLogs, getInstanceStatus, readInstanceMeta, submitIntegrationRuntimeJob, stopIntegrationRuntimeJob, } from "../services/runtime/drivers/nomad.js";
|
|
6
|
+
import { markRuntimeRepairRestartApplied } from "../services/repair/runtime-repair.js";
|
|
7
|
+
import { getTask, subscribeTask } from "../services/tasks/registry.js";
|
|
8
|
+
import { resolveRuntimeCapabilityPort } from "../services/app-common/service.js";
|
|
8
9
|
// ── ANSI colour helpers ───────────────────────────────────────────────────
|
|
9
10
|
const isTTY = process.stdout.isTTY ?? false;
|
|
10
11
|
const c = {
|
|
@@ -73,17 +74,67 @@ async function runManagedAppTask(starter, successMessage) {
|
|
|
73
74
|
if (!started.ok) {
|
|
74
75
|
log(c.red(` ✗ ${started.error || "Task failed"}`));
|
|
75
76
|
process.exitCode = 1;
|
|
76
|
-
return;
|
|
77
|
+
return false;
|
|
77
78
|
}
|
|
78
79
|
if (started.taskId) {
|
|
79
80
|
const result = await waitForLocalTask(started.taskId);
|
|
80
81
|
if (result.status === "error") {
|
|
81
82
|
log(c.red(` ✗ ${result.message || "Task failed"}`));
|
|
82
83
|
process.exitCode = 1;
|
|
83
|
-
return;
|
|
84
|
+
return false;
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
log(c.green(` ✓ ${successMessage}`));
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
const LEGACY_RAW_RUNTIME_RESTART_SETTLE_MS = 2_000;
|
|
91
|
+
function logLegacyRawRuntimeWarning(instanceId) {
|
|
92
|
+
log(c.yellow(` ! No Core instance record found for "${instanceId}"; using legacy raw runtime operation. `
|
|
93
|
+
+ "Run repair/migration before normal lifecycle operations."));
|
|
94
|
+
}
|
|
95
|
+
async function runLegacyRawRuntimeStart(instanceId) {
|
|
96
|
+
// Legacy/repair boundary only. Managed instances must go through lifecycle-service.
|
|
97
|
+
logLegacyRawRuntimeWarning(instanceId);
|
|
98
|
+
const result = await submitIntegrationRuntimeJob(instanceId);
|
|
99
|
+
if (result.ok) {
|
|
100
|
+
markRuntimeRepairRestartApplied(instanceId);
|
|
101
|
+
log(c.green(` ✓ Started: ${readInstanceMeta(instanceId)?.name || instanceId}`));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
log(c.red(` ✗ ${result.error || "Start failed"}`));
|
|
105
|
+
process.exitCode = 1;
|
|
106
|
+
}
|
|
107
|
+
async function runLegacyRawRuntimeStop(instanceId, purge) {
|
|
108
|
+
// Legacy/repair boundary only. Managed instances must go through lifecycle-service.
|
|
109
|
+
logLegacyRawRuntimeWarning(instanceId);
|
|
110
|
+
const result = await stopIntegrationRuntimeJob(instanceId, purge);
|
|
111
|
+
if (result.ok) {
|
|
112
|
+
log(c.green(` ✓ Stopped: ${readInstanceMeta(instanceId)?.name || instanceId}${purge ? " (purged)" : ""}`));
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
log(c.red(` ✗ ${result.error || "Stop failed"}`));
|
|
116
|
+
process.exitCode = 1;
|
|
117
|
+
}
|
|
118
|
+
async function runLegacyRawRuntimeRestart(instanceId) {
|
|
119
|
+
// Legacy/repair boundary only. Managed instances must go through lifecycle-service.
|
|
120
|
+
logLegacyRawRuntimeWarning(instanceId);
|
|
121
|
+
const stopResult = await stopIntegrationRuntimeJob(instanceId);
|
|
122
|
+
if (!stopResult.ok && !stopResult.error?.includes("not running") && !stopResult.error?.includes("not found")) {
|
|
123
|
+
log(c.red(` ✗ ${stopResult.error || "Restart failed"}`));
|
|
124
|
+
process.exitCode = 1;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
// Legacy raw runtime restart may need a short gap between stop/start until
|
|
128
|
+
// the repair path is retired behind canonical lifecycle state.
|
|
129
|
+
await new Promise((resolve) => setTimeout(resolve, LEGACY_RAW_RUNTIME_RESTART_SETTLE_MS));
|
|
130
|
+
const result = await submitIntegrationRuntimeJob(instanceId);
|
|
131
|
+
if (result.ok) {
|
|
132
|
+
markRuntimeRepairRestartApplied(instanceId);
|
|
133
|
+
log(c.green(` ✓ Restarted: ${readInstanceMeta(instanceId)?.name || instanceId}`));
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
log(c.red(` ✗ ${result.error || "Restart failed"}`));
|
|
137
|
+
process.exitCode = 1;
|
|
87
138
|
}
|
|
88
139
|
function readPassword(prompt) {
|
|
89
140
|
return new Promise((resolve, reject) => {
|
|
@@ -226,24 +277,19 @@ function parseCreateArgs(args) {
|
|
|
226
277
|
parsed.description = result.value;
|
|
227
278
|
i = result.nextIndex;
|
|
228
279
|
}
|
|
229
|
-
else if (arg === "--
|
|
230
|
-
const result = readFlagValue(args, i, "--
|
|
231
|
-
parsed.
|
|
232
|
-
i = result.nextIndex;
|
|
233
|
-
}
|
|
234
|
-
else if (arg === "--from" || arg.startsWith("--from=")) {
|
|
235
|
-
const result = readFlagValue(args, i, "--from");
|
|
236
|
-
parsed.fromAppId = result.value;
|
|
280
|
+
else if (arg === "--app-spec-id" || arg.startsWith("--app-spec-id=")) {
|
|
281
|
+
const result = readFlagValue(args, i, "--app-spec-id");
|
|
282
|
+
parsed.appSpecId = result.value;
|
|
237
283
|
i = result.nextIndex;
|
|
238
284
|
}
|
|
239
|
-
else if (arg === "--
|
|
240
|
-
const result = readFlagValue(args, i, "--
|
|
241
|
-
parsed.
|
|
285
|
+
else if (arg === "--builtin" || arg.startsWith("--builtin=")) {
|
|
286
|
+
const result = readFlagValue(args, i, "--builtin");
|
|
287
|
+
parsed.appSpecId = result.value;
|
|
242
288
|
i = result.nextIndex;
|
|
243
289
|
}
|
|
244
|
-
else if (arg === "--
|
|
245
|
-
const result = readFlagValue(args, i, "--
|
|
246
|
-
parsed.
|
|
290
|
+
else if (arg === "--from" || arg.startsWith("--from=")) {
|
|
291
|
+
const result = readFlagValue(args, i, "--from");
|
|
292
|
+
parsed.cloneFromInstanceId = result.value;
|
|
247
293
|
i = result.nextIndex;
|
|
248
294
|
}
|
|
249
295
|
else {
|
|
@@ -288,12 +334,6 @@ function fallbackTaskState(appStatus) {
|
|
|
288
334
|
return "pending";
|
|
289
335
|
return "unknown";
|
|
290
336
|
}
|
|
291
|
-
function resolveProvidePort(spec, provide) {
|
|
292
|
-
if (typeof provide?.port === "number")
|
|
293
|
-
return provide.port;
|
|
294
|
-
const serviceTask = spec.tasks.find((task) => (task.role ?? "service") === "service");
|
|
295
|
-
return serviceTask?.ports?.[0]?.port;
|
|
296
|
-
}
|
|
297
337
|
function provideAddress(port, path) {
|
|
298
338
|
if (typeof port !== "number")
|
|
299
339
|
return undefined;
|
|
@@ -305,7 +345,7 @@ function describeHealthTargets(targets) {
|
|
|
305
345
|
.map((target) => `${target.method}${typeof target.port === "number" ? `:${target.port}` : ""}`)
|
|
306
346
|
.join(",");
|
|
307
347
|
}
|
|
308
|
-
function enrichStatusForCli(status, spec) {
|
|
348
|
+
function enrichStatusForCli(instanceId, status, spec) {
|
|
309
349
|
const taskSpecs = new Map((spec?.tasks ?? []).map((task) => [task.name, task]));
|
|
310
350
|
const taskNames = new Set([
|
|
311
351
|
...taskSpecs.keys(),
|
|
@@ -340,7 +380,7 @@ function enrichStatusForCli(status, spec) {
|
|
|
340
380
|
};
|
|
341
381
|
}
|
|
342
382
|
const provides = (spec?.provides ?? []).map((provide) => {
|
|
343
|
-
const port =
|
|
383
|
+
const port = resolveRuntimeCapabilityPort(instanceId, provide.capability) ?? undefined;
|
|
344
384
|
return {
|
|
345
385
|
capability: provide.capability,
|
|
346
386
|
...(typeof port === "number" ? { port } : {}),
|
|
@@ -393,7 +433,7 @@ async function loadBuiltinInstallYaml(source) {
|
|
|
393
433
|
const normalizedSource = source.trim();
|
|
394
434
|
if (!normalizedSource)
|
|
395
435
|
return null;
|
|
396
|
-
const { listBuiltinAppSpecs } = await import("../services/app/
|
|
436
|
+
const { listBuiltinAppSpecs } = await import("../services/app-common/service.js");
|
|
397
437
|
const templates = listBuiltinAppSpecs();
|
|
398
438
|
const normalizedWithoutExt = normalizedSource.replace(/\.ya?ml$/i, "");
|
|
399
439
|
const aliasTarget = BUILTIN_INSTALL_ALIASES[normalizedWithoutExt] ?? BUILTIN_INSTALL_ALIASES[normalizedSource];
|
|
@@ -413,21 +453,8 @@ async function loadBuiltinInstallYaml(source) {
|
|
|
413
453
|
async function loadInstallYaml(source) {
|
|
414
454
|
const remoteUrl = parseRemoteYamlUrl(source);
|
|
415
455
|
if (remoteUrl) {
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
resp = await fetch(remoteUrl, { signal: AbortSignal.timeout(30_000) });
|
|
419
|
-
}
|
|
420
|
-
catch (e) {
|
|
421
|
-
throw new Error(`Failed to download app YAML: ${e.message}`);
|
|
422
|
-
}
|
|
423
|
-
if (!resp.ok) {
|
|
424
|
-
throw new Error(`Failed to download app YAML: HTTP ${resp.status}`);
|
|
425
|
-
}
|
|
426
|
-
const body = await resp.text();
|
|
427
|
-
if (!body.trim()) {
|
|
428
|
-
throw new Error(`Downloaded app YAML is empty: ${remoteUrl}`);
|
|
429
|
-
}
|
|
430
|
-
return body;
|
|
456
|
+
const { loadRemoteAppSpecYaml } = await import("../services/app-common/remote-spec.js");
|
|
457
|
+
return loadRemoteAppSpecYaml(remoteUrl.toString(), { fieldName: "app install source URL" });
|
|
431
458
|
}
|
|
432
459
|
const builtinYaml = await loadBuiltinInstallYaml(source);
|
|
433
460
|
if (builtinYaml) {
|
|
@@ -449,8 +476,8 @@ async function cmdList(args) {
|
|
|
449
476
|
printManagedList("Managed Apps / Instances", items, c, log);
|
|
450
477
|
}
|
|
451
478
|
async function cmdShow(id) {
|
|
452
|
-
const {
|
|
453
|
-
const app =
|
|
479
|
+
const { getInstanceInstallRecord, getInstance } = await import("../services/app-common/service.js");
|
|
480
|
+
const app = getInstanceInstallRecord(id);
|
|
454
481
|
if (app) {
|
|
455
482
|
console.log(JSON.stringify(app, null, 2));
|
|
456
483
|
return;
|
|
@@ -465,7 +492,7 @@ async function cmdShow(id) {
|
|
|
465
492
|
}
|
|
466
493
|
async function cmdInstall(args) {
|
|
467
494
|
const installSource = args[0];
|
|
468
|
-
let
|
|
495
|
+
let requestedInstanceId;
|
|
469
496
|
for (let index = 1; index < args.length; index += 1) {
|
|
470
497
|
const value = args[index];
|
|
471
498
|
if (value === "--sudo-password") {
|
|
@@ -474,20 +501,19 @@ async function cmdInstall(args) {
|
|
|
474
501
|
}
|
|
475
502
|
if (value.startsWith("--"))
|
|
476
503
|
continue;
|
|
477
|
-
|
|
504
|
+
requestedInstanceId = value;
|
|
478
505
|
break;
|
|
479
506
|
}
|
|
480
507
|
const yamlText = await loadInstallYaml(installSource);
|
|
481
|
-
const {
|
|
508
|
+
const { installInstance } = await import("../services/app-common/lifecycle-service.js");
|
|
482
509
|
const sudoState = getCliSudoState(args);
|
|
483
510
|
while (true) {
|
|
484
511
|
try {
|
|
485
512
|
const installOptions = sudoState.password ? { exec: { sudoPassword: sudoState.password } } : undefined;
|
|
486
513
|
const result = installOptions
|
|
487
|
-
? await
|
|
488
|
-
: await
|
|
489
|
-
|
|
490
|
-
log(c.green(` ✓ Installed: ${result.manifest.id} (${result.spec.name || ""} v${result.spec.version || "?"}, ${installModeLabel})`));
|
|
514
|
+
? await installInstance(yamlText, requestedInstanceId, installOptions)
|
|
515
|
+
: await installInstance(yamlText, requestedInstanceId);
|
|
516
|
+
log(c.green(` ✓ Installed: ${result.manifest.instanceId} (${result.spec.name || ""} v${result.spec.version || "?"})`));
|
|
491
517
|
return;
|
|
492
518
|
}
|
|
493
519
|
catch (err) {
|
|
@@ -500,14 +526,14 @@ async function cmdInstall(args) {
|
|
|
500
526
|
}
|
|
501
527
|
}
|
|
502
528
|
async function cmdProvides(args) {
|
|
503
|
-
const { listProvidedCapabilities } = await import("../services/app/
|
|
529
|
+
const { listProvidedCapabilities } = await import("../services/app-common/service.js");
|
|
504
530
|
const provides = listProvidedCapabilities();
|
|
505
531
|
if (args.includes("--json")) {
|
|
506
532
|
console.log(JSON.stringify(provides, null, 2));
|
|
507
533
|
return;
|
|
508
534
|
}
|
|
509
535
|
log("");
|
|
510
|
-
log(c.bold("
|
|
536
|
+
log(c.bold(" Instance Provides"));
|
|
511
537
|
log(c.dim(" ─────────────────────────────────────────────────────"));
|
|
512
538
|
if (provides.length === 0) {
|
|
513
539
|
log(c.dim(" (no app capabilities declared)"));
|
|
@@ -516,12 +542,12 @@ async function cmdProvides(args) {
|
|
|
516
542
|
}
|
|
517
543
|
const grouped = new Map();
|
|
518
544
|
for (const provide of provides) {
|
|
519
|
-
const items = grouped.get(provide.
|
|
545
|
+
const items = grouped.get(provide.instanceId) ?? [];
|
|
520
546
|
items.push(provide);
|
|
521
|
-
grouped.set(provide.
|
|
547
|
+
grouped.set(provide.instanceId, items);
|
|
522
548
|
}
|
|
523
|
-
for (const [
|
|
524
|
-
log(` ${c.cyan(
|
|
549
|
+
for (const [instanceId, items] of grouped.entries()) {
|
|
550
|
+
log(` ${c.cyan(instanceId)}`);
|
|
525
551
|
for (const provide of items) {
|
|
526
552
|
const endpoint = provide.registeredAddress ?? provide.address ?? "-";
|
|
527
553
|
const registration = provide.registered
|
|
@@ -543,7 +569,7 @@ function parseOptionalFlag(args, flag) {
|
|
|
543
569
|
return undefined;
|
|
544
570
|
}
|
|
545
571
|
async function cmdProviders(args) {
|
|
546
|
-
const { listConnectionProviders } = await import("../services/
|
|
572
|
+
const { listConnectionProviders } = await import("../services/connections/admin.js");
|
|
547
573
|
const capability = parseOptionalFlag(args, "--capability");
|
|
548
574
|
const providers = await listConnectionProviders(capability);
|
|
549
575
|
if (args.includes("--json")) {
|
|
@@ -551,7 +577,7 @@ async function cmdProviders(args) {
|
|
|
551
577
|
return;
|
|
552
578
|
}
|
|
553
579
|
log("");
|
|
554
|
-
log(c.bold(capability ? ` Providers for ${capability}` : "
|
|
580
|
+
log(c.bold(capability ? ` Providers for ${capability}` : " Capability Providers"));
|
|
555
581
|
log(c.dim(" ─────────────────────────────────────────────────────"));
|
|
556
582
|
if (providers.length === 0) {
|
|
557
583
|
log(c.dim(" (no matching providers registered)"));
|
|
@@ -583,18 +609,18 @@ function describeConnectionValue(value) {
|
|
|
583
609
|
}
|
|
584
610
|
return c.yellow("invalid");
|
|
585
611
|
}
|
|
586
|
-
async function cmdConnections(
|
|
587
|
-
const { getConnectionSummary, getConnectionStatus } = await import("../services/
|
|
612
|
+
async function cmdConnections(instanceId, args) {
|
|
613
|
+
const { getConnectionSummary, getConnectionStatus } = await import("../services/connections/admin.js");
|
|
588
614
|
const [summary, status] = await Promise.all([
|
|
589
|
-
getConnectionSummary(
|
|
590
|
-
getConnectionStatus(
|
|
615
|
+
getConnectionSummary(instanceId),
|
|
616
|
+
getConnectionStatus(instanceId),
|
|
591
617
|
]);
|
|
592
618
|
if (args.includes("--json")) {
|
|
593
619
|
console.log(JSON.stringify({ ...summary, status }, null, 2));
|
|
594
620
|
return;
|
|
595
621
|
}
|
|
596
622
|
log("");
|
|
597
|
-
log(` ${c.bold("
|
|
623
|
+
log(` ${c.bold("Instance:")} ${c.cyan(instanceId)}`);
|
|
598
624
|
log(` ${c.bold("Connections:")} ${status.state === "ok" ? c.green(status.state) : status.state === "empty" ? c.dim(status.state) : c.yellow(status.state)}`);
|
|
599
625
|
if (summary.requires.length === 0) {
|
|
600
626
|
log(c.dim(" (this app does not require external capabilities)"));
|
|
@@ -654,73 +680,74 @@ function parseBindArgs(args) {
|
|
|
654
680
|
throw new Error(`Unknown option: ${arg}`);
|
|
655
681
|
}
|
|
656
682
|
}
|
|
657
|
-
parsed.
|
|
683
|
+
parsed.instanceId = positional[0];
|
|
658
684
|
if (positional.length > 1)
|
|
659
685
|
throw new Error(`Unexpected argument: ${positional[1]}`);
|
|
660
686
|
return parsed;
|
|
661
687
|
}
|
|
662
688
|
async function cmdBind(args) {
|
|
663
689
|
const parsed = parseBindArgs(args);
|
|
664
|
-
if (!parsed.
|
|
665
|
-
throw new Error("Usage: jishushell app bind <
|
|
690
|
+
if (!parsed.instanceId || !parsed.slot || !parsed.providerId || !parsed.capability) {
|
|
691
|
+
throw new Error("Usage: jishushell app bind <instance-id> --slot <slot> --provider <provider-instance-id> --capability <capability>");
|
|
666
692
|
}
|
|
667
|
-
const { bindConnection } = await import("../services/
|
|
693
|
+
const { bindConnection } = await import("../services/connections/admin.js");
|
|
668
694
|
await bindConnection({
|
|
669
|
-
|
|
695
|
+
instanceId: parsed.instanceId,
|
|
670
696
|
slot: parsed.slot,
|
|
671
697
|
providerId: parsed.providerId,
|
|
672
698
|
capability: parsed.capability,
|
|
673
699
|
...(parsed.selectedModelId ? { selectedModelId: parsed.selectedModelId } : {}),
|
|
674
700
|
});
|
|
675
|
-
log(c.green(` ✓ Bound ${parsed.
|
|
701
|
+
log(c.green(` ✓ Bound ${parsed.instanceId}:${parsed.slot} to ${parsed.providerId}/${parsed.capability}`));
|
|
676
702
|
}
|
|
677
|
-
async function cmdUnbind(
|
|
703
|
+
async function cmdUnbind(instanceId, args) {
|
|
678
704
|
const slot = parseOptionalFlag(args, "--slot");
|
|
679
705
|
if (!slot) {
|
|
680
|
-
throw new Error("Usage: jishushell app unbind <
|
|
706
|
+
throw new Error("Usage: jishushell app unbind <instance-id> --slot <slot>");
|
|
681
707
|
}
|
|
682
|
-
const { unbindConnection } = await import("../services/
|
|
683
|
-
await unbindConnection({
|
|
684
|
-
log(c.green(` ✓ Unbound ${
|
|
708
|
+
const { unbindConnection } = await import("../services/connections/admin.js");
|
|
709
|
+
await unbindConnection({ instanceId, slot });
|
|
710
|
+
log(c.green(` ✓ Unbound ${instanceId}:${slot}`));
|
|
685
711
|
}
|
|
686
712
|
async function cmdConfig(args) {
|
|
687
713
|
const subcmd = args[0];
|
|
688
|
-
const
|
|
689
|
-
if (!subcmd || !
|
|
690
|
-
throw new Error("Usage: jishushell app config <get|set|meta> <
|
|
714
|
+
const instanceId = args[1];
|
|
715
|
+
if (!subcmd || !instanceId) {
|
|
716
|
+
throw new Error("Usage: jishushell app config <get|set|meta> <instance-id> [key=value]");
|
|
691
717
|
}
|
|
692
718
|
if (subcmd === "get") {
|
|
693
|
-
const { readAppConfig } = await import("../services/
|
|
694
|
-
const config = await readAppConfig(
|
|
719
|
+
const { readAppConfig } = await import("../services/instances/config-admin.js");
|
|
720
|
+
const config = await readAppConfig(instanceId);
|
|
695
721
|
console.log(JSON.stringify(config, null, 2));
|
|
696
722
|
return;
|
|
697
723
|
}
|
|
698
724
|
if (subcmd === "meta") {
|
|
699
|
-
const { getAppConfigMeta } = await import("../services/
|
|
700
|
-
const meta = getAppConfigMeta(
|
|
725
|
+
const { getAppConfigMeta } = await import("../services/instances/config-admin.js");
|
|
726
|
+
const meta = getAppConfigMeta(instanceId);
|
|
701
727
|
console.log(JSON.stringify(meta, null, 2));
|
|
702
728
|
return;
|
|
703
729
|
}
|
|
704
730
|
if (subcmd === "set") {
|
|
705
731
|
const assignment = args[2];
|
|
706
732
|
if (!assignment) {
|
|
707
|
-
throw new Error("Usage: jishushell app config set <
|
|
733
|
+
throw new Error("Usage: jishushell app config set <instance-id> <key=value>");
|
|
708
734
|
}
|
|
709
|
-
const { setAppConfigValue } = await import("../services/
|
|
710
|
-
await setAppConfigValue(
|
|
711
|
-
log(c.green(` ✓ Updated config for ${
|
|
735
|
+
const { setAppConfigValue } = await import("../services/instances/config-admin.js");
|
|
736
|
+
await setAppConfigValue(instanceId, assignment);
|
|
737
|
+
log(c.green(` ✓ Updated config for ${instanceId}`));
|
|
712
738
|
return;
|
|
713
739
|
}
|
|
714
|
-
throw new Error("Usage: jishushell app config <get|set|meta> <
|
|
740
|
+
throw new Error("Usage: jishushell app config <get|set|meta> <instance-id> [key=value]");
|
|
715
741
|
}
|
|
716
742
|
async function cmdUninstall(id, args = []) {
|
|
717
|
-
const {
|
|
718
|
-
|
|
719
|
-
|
|
743
|
+
const { uninstallInstanceTask } = await import("../services/app-common/lifecycle-service.js");
|
|
744
|
+
const { getInstanceInstallRecord, getInstance } = await import("../services/app-common/service.js");
|
|
745
|
+
if (getInstanceInstallRecord(id)) {
|
|
746
|
+
await runManagedUninstallTask((exec) => exec ? uninstallInstanceTask(id, exec) : uninstallInstanceTask(id), `Uninstalled: ${id}`, getCliSudoState(args));
|
|
720
747
|
return;
|
|
721
748
|
}
|
|
722
749
|
if (getInstance(id)) {
|
|
723
|
-
const { deleteInstance } = await import("../services/
|
|
750
|
+
const { deleteInstance } = await import("../services/instances/manager.js");
|
|
724
751
|
const deleteResult = await deleteInstance(id);
|
|
725
752
|
if (!deleteResult.ok) {
|
|
726
753
|
throw new Error(`Failed to uninstall instance '${id}'`);
|
|
@@ -737,13 +764,14 @@ async function cmdUninstallAll(args = []) {
|
|
|
737
764
|
log(c.dim(" (no managed apps or instances to uninstall)"));
|
|
738
765
|
return;
|
|
739
766
|
}
|
|
740
|
-
const {
|
|
741
|
-
const {
|
|
767
|
+
const { uninstallInstanceTask } = await import("../services/app-common/lifecycle-service.js");
|
|
768
|
+
const { getInstanceInstallRecord } = await import("../services/app-common/service.js");
|
|
769
|
+
const { deleteInstance } = await import("../services/instances/manager.js");
|
|
742
770
|
const errors = [];
|
|
743
771
|
const sudoState = getCliSudoState(args);
|
|
744
772
|
for (const item of items) {
|
|
745
773
|
try {
|
|
746
|
-
if (item.
|
|
774
|
+
if (!getInstanceInstallRecord(item.id)) {
|
|
747
775
|
const deleteResult = await deleteInstance(item.id);
|
|
748
776
|
if (!deleteResult.ok) {
|
|
749
777
|
throw new Error(`Failed to uninstall instance '${item.id}'`);
|
|
@@ -751,12 +779,12 @@ async function cmdUninstallAll(args = []) {
|
|
|
751
779
|
}
|
|
752
780
|
else {
|
|
753
781
|
const started = sudoState.password
|
|
754
|
-
?
|
|
755
|
-
:
|
|
782
|
+
? uninstallInstanceTask(item.id, { sudoPassword: sudoState.password })
|
|
783
|
+
: uninstallInstanceTask(item.id);
|
|
756
784
|
if (!started.ok) {
|
|
757
785
|
const startedMessage = started.error || `Failed to uninstall '${item.id}'`;
|
|
758
786
|
if (isSudoPasswordError(startedMessage) && await promptForCliSudoPassword(sudoState)) {
|
|
759
|
-
const retried =
|
|
787
|
+
const retried = uninstallInstanceTask(item.id, { sudoPassword: sudoState.password });
|
|
760
788
|
if (!retried.ok) {
|
|
761
789
|
throw new Error(formatSudoHint(retried.error || `Failed to uninstall '${item.id}'`, sudoState));
|
|
762
790
|
}
|
|
@@ -773,7 +801,7 @@ async function cmdUninstallAll(args = []) {
|
|
|
773
801
|
if (taskResult.status === "error") {
|
|
774
802
|
const taskMessage = taskResult.message || `Failed to uninstall '${item.id}'`;
|
|
775
803
|
if (isSudoPasswordError(taskMessage) && await promptForCliSudoPassword(sudoState)) {
|
|
776
|
-
const retried =
|
|
804
|
+
const retried = uninstallInstanceTask(item.id, { sudoPassword: sudoState.password });
|
|
777
805
|
if (!retried.ok) {
|
|
778
806
|
throw new Error(formatSudoHint(retried.error || `Failed to uninstall '${item.id}'`, sudoState));
|
|
779
807
|
}
|
|
@@ -799,11 +827,11 @@ async function cmdUninstallAll(args = []) {
|
|
|
799
827
|
process.exitCode = 1;
|
|
800
828
|
}
|
|
801
829
|
}
|
|
802
|
-
async function
|
|
803
|
-
const {
|
|
830
|
+
async function cmdCloneInstance(sourceInstanceId, instanceId, name, description = "") {
|
|
831
|
+
const { cloneInstance, isInstanceCloneError, } = await import("../services/instances/clone.js");
|
|
804
832
|
try {
|
|
805
|
-
const result = await
|
|
806
|
-
|
|
833
|
+
const result = await cloneInstance({
|
|
834
|
+
sourceInstanceId,
|
|
807
835
|
targetId: instanceId,
|
|
808
836
|
name,
|
|
809
837
|
description,
|
|
@@ -816,7 +844,7 @@ async function cmdCreateFromInstalledApp(appId, instanceId, name, description =
|
|
|
816
844
|
}
|
|
817
845
|
}
|
|
818
846
|
catch (e) {
|
|
819
|
-
if (
|
|
847
|
+
if (isInstanceCloneError(e)) {
|
|
820
848
|
log(c.red(` ✗ ${e.message}`));
|
|
821
849
|
process.exitCode = 1;
|
|
822
850
|
return;
|
|
@@ -825,107 +853,90 @@ async function cmdCreateFromInstalledApp(appId, instanceId, name, description =
|
|
|
825
853
|
process.exitCode = 1;
|
|
826
854
|
return;
|
|
827
855
|
}
|
|
828
|
-
log(c.green(` ✓
|
|
856
|
+
log(c.green(` ✓ Cloned instance "${sourceInstanceId}" to "${instanceId}"`));
|
|
829
857
|
}
|
|
830
858
|
async function cmdCreate(args) {
|
|
831
859
|
const parsed = parseCreateArgs(args);
|
|
832
860
|
if (!parsed.id || !parsed.name) {
|
|
833
861
|
throw new Error("Usage: jishushell app create <id> --name <name>");
|
|
834
862
|
}
|
|
835
|
-
if (parsed.
|
|
836
|
-
if (parsed.
|
|
837
|
-
throw new Error("app create --from cannot be combined with --
|
|
863
|
+
if (parsed.cloneFromInstanceId) {
|
|
864
|
+
if (parsed.appSpecId) {
|
|
865
|
+
throw new Error("app create --from cannot be combined with --builtin or --app-spec-id");
|
|
838
866
|
}
|
|
839
|
-
await
|
|
867
|
+
await cmdCloneInstance(parsed.cloneFromInstanceId, parsed.id, parsed.name, parsed.description || "");
|
|
840
868
|
return;
|
|
841
869
|
}
|
|
842
|
-
const { createInstance } = await import("../services/
|
|
870
|
+
const { createInstance } = await import("../services/instances/admin.js");
|
|
843
871
|
const result = await createInstance({
|
|
844
872
|
id: parsed.id,
|
|
845
873
|
name: parsed.name,
|
|
846
874
|
...(parsed.description != null ? { description: parsed.description } : {}),
|
|
847
|
-
...(parsed.
|
|
848
|
-
...(parsed.appSpecPath ? { app_spec_yaml: readFileSync(parsed.appSpecPath, "utf-8") } : {}),
|
|
849
|
-
...(parsed.appSpecUrl ? { app_spec_url: parsed.appSpecUrl } : {}),
|
|
875
|
+
...(parsed.appSpecId ? { app_spec_id: parsed.appSpecId } : {}),
|
|
850
876
|
});
|
|
851
877
|
console.log(JSON.stringify(result, null, 2));
|
|
852
878
|
}
|
|
853
|
-
async function
|
|
854
|
-
const { copyApp } = await import("../services/app/app-manager.js");
|
|
855
|
-
const result = await copyApp(sourceId);
|
|
856
|
-
log(c.green(` ✓ Copied ${sourceId} → ${result.manifest.id}`));
|
|
857
|
-
}
|
|
858
|
-
async function cmdStart(appId) {
|
|
879
|
+
async function cmdStart(instanceId) {
|
|
859
880
|
ensureNomadToken();
|
|
860
|
-
const {
|
|
861
|
-
const
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
await acknowledgeRuntimeRestartAdvisory(appId);
|
|
870
|
-
log(c.green(` ✓ Started: ${readInstanceMeta(appId)?.name || appId}`));
|
|
881
|
+
const { startInstanceTask } = await import("../services/app-common/lifecycle-service.js");
|
|
882
|
+
const { getInstanceInstallRecord, getInstance } = await import("../services/app-common/service.js");
|
|
883
|
+
const app = getInstanceInstallRecord(instanceId);
|
|
884
|
+
const instance = getInstance(instanceId);
|
|
885
|
+
if (app || instance) {
|
|
886
|
+
const ok = await runManagedAppTask(() => startInstanceTask(instanceId), `Started: ${app?.spec.name || readInstanceMeta(instanceId)?.name || instanceId}`);
|
|
887
|
+
if (ok) {
|
|
888
|
+
markRuntimeRepairRestartApplied(instanceId);
|
|
889
|
+
}
|
|
871
890
|
return;
|
|
872
891
|
}
|
|
873
|
-
|
|
874
|
-
process.exitCode = 1;
|
|
892
|
+
await runLegacyRawRuntimeStart(instanceId);
|
|
875
893
|
}
|
|
876
|
-
async function cmdStop(
|
|
894
|
+
async function cmdStop(instanceId, purge) {
|
|
877
895
|
ensureNomadToken();
|
|
878
|
-
const {
|
|
879
|
-
const
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
const result = await stopNomadJobInstance(appId, purge);
|
|
885
|
-
if (result.ok) {
|
|
886
|
-
log(c.green(` ✓ Stopped: ${readInstanceMeta(appId)?.name || appId}${purge ? " (purged)" : ""}`));
|
|
896
|
+
const { stopInstanceTask } = await import("../services/app-common/lifecycle-service.js");
|
|
897
|
+
const { getInstanceInstallRecord, getInstance } = await import("../services/app-common/service.js");
|
|
898
|
+
const app = getInstanceInstallRecord(instanceId);
|
|
899
|
+
const instance = getInstance(instanceId);
|
|
900
|
+
if (app || instance) {
|
|
901
|
+
await runManagedAppTask(() => stopInstanceTask(instanceId, purge), `Stopped: ${app?.spec.name || readInstanceMeta(instanceId)?.name || instanceId}${purge ? " (purged)" : ""}`);
|
|
887
902
|
return;
|
|
888
903
|
}
|
|
889
|
-
|
|
890
|
-
process.exitCode = 1;
|
|
904
|
+
await runLegacyRawRuntimeStop(instanceId, purge);
|
|
891
905
|
}
|
|
892
|
-
async function cmdRestart(
|
|
906
|
+
async function cmdRestart(instanceId) {
|
|
893
907
|
ensureNomadToken();
|
|
894
|
-
const {
|
|
895
|
-
const
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
await acknowledgeRuntimeRestartAdvisory(appId);
|
|
904
|
-
log(c.green(` ✓ Restarted: ${readInstanceMeta(appId)?.name || appId}`));
|
|
908
|
+
const { restartInstanceTask } = await import("../services/app-common/lifecycle-service.js");
|
|
909
|
+
const { getInstanceInstallRecord, getInstance } = await import("../services/app-common/service.js");
|
|
910
|
+
const app = getInstanceInstallRecord(instanceId);
|
|
911
|
+
const instance = getInstance(instanceId);
|
|
912
|
+
if (app || instance) {
|
|
913
|
+
const ok = await runManagedAppTask(() => restartInstanceTask(instanceId), `Restarted: ${app?.spec.name || readInstanceMeta(instanceId)?.name || instanceId}`);
|
|
914
|
+
if (ok) {
|
|
915
|
+
markRuntimeRepairRestartApplied(instanceId);
|
|
916
|
+
}
|
|
905
917
|
return;
|
|
906
918
|
}
|
|
907
|
-
|
|
908
|
-
process.exitCode = 1;
|
|
919
|
+
await runLegacyRawRuntimeRestart(instanceId);
|
|
909
920
|
}
|
|
910
|
-
async function cmdStatus(
|
|
921
|
+
async function cmdStatus(instanceId, json) {
|
|
911
922
|
ensureNomadToken();
|
|
912
|
-
const {
|
|
913
|
-
const app =
|
|
923
|
+
const { getInstanceInstallRecord, getInstanceInstallRecordStatus, getInstance } = await import("../services/app-common/service.js");
|
|
924
|
+
const app = getInstanceInstallRecord(instanceId);
|
|
914
925
|
if (!app) {
|
|
915
|
-
const instance = getInstance(
|
|
926
|
+
const instance = getInstance(instanceId);
|
|
916
927
|
if (!instance) {
|
|
917
|
-
log(c.red(` ✗
|
|
928
|
+
log(c.red(` ✗ Instance "${instanceId}" not found.`));
|
|
918
929
|
process.exitCode = 1;
|
|
919
930
|
return;
|
|
920
931
|
}
|
|
921
|
-
const status = await getInstanceStatus(
|
|
932
|
+
const status = await getInstanceStatus(instanceId);
|
|
922
933
|
if (json) {
|
|
923
|
-
console.log(JSON.stringify({ id:
|
|
934
|
+
console.log(JSON.stringify({ id: instanceId, name: instance.name, ...status }, null, 2));
|
|
924
935
|
return;
|
|
925
936
|
}
|
|
926
937
|
const upStr = status.uptime ? `${Math.floor(status.uptime / 3600)}h ${Math.floor((status.uptime % 3600) / 60)}m` : "—";
|
|
927
938
|
log("");
|
|
928
|
-
log(` ${c.bold("Job:")} ${c.cyan(instance.name ||
|
|
939
|
+
log(` ${c.bold("Job:")} ${c.cyan(instance.name || instanceId)} ${c.dim(`(${instanceId})`)}`);
|
|
929
940
|
log(` ${c.bold("Status:")} ${status.status === "running" ? c.green(status.status) : status.status}`);
|
|
930
941
|
log(` ${c.bold("Uptime:")} ${upStr}`);
|
|
931
942
|
if (status.memory_mb)
|
|
@@ -937,10 +948,10 @@ async function cmdStatus(appId, json) {
|
|
|
937
948
|
log("");
|
|
938
949
|
return;
|
|
939
950
|
}
|
|
940
|
-
const status = await
|
|
941
|
-
const enriched = enrichStatusForCli(status, app.spec);
|
|
951
|
+
const status = await getInstanceInstallRecordStatus(instanceId);
|
|
952
|
+
const enriched = enrichStatusForCli(instanceId, status, app.spec);
|
|
942
953
|
if (json) {
|
|
943
|
-
console.log(JSON.stringify({ id:
|
|
954
|
+
console.log(JSON.stringify({ id: instanceId, ...status, tasks: enriched.tasks, provides: enriched.provides }, null, 2));
|
|
944
955
|
return;
|
|
945
956
|
}
|
|
946
957
|
const stColor = status.status === "running" ? c.green
|
|
@@ -948,7 +959,7 @@ async function cmdStatus(appId, json) {
|
|
|
948
959
|
: status.status === "pending" ? c.yellow
|
|
949
960
|
: c.red;
|
|
950
961
|
log("");
|
|
951
|
-
log(` ${c.bold("
|
|
962
|
+
log(` ${c.bold("Instance:")} ${c.cyan(instanceId)}`);
|
|
952
963
|
log(` ${c.bold("Status:")} ${stColor(status.status)}`);
|
|
953
964
|
if (status.uptime != null)
|
|
954
965
|
log(` ${c.bold("Uptime:")} ${status.uptime}s`);
|
|
@@ -977,27 +988,48 @@ async function cmdStatus(appId, json) {
|
|
|
977
988
|
log(c.red(` ${status.error}`));
|
|
978
989
|
log("");
|
|
979
990
|
}
|
|
980
|
-
async function cmdLogs(
|
|
991
|
+
async function cmdLogs(instanceId, args) {
|
|
981
992
|
ensureNomadToken();
|
|
982
|
-
const {
|
|
993
|
+
const { getInstanceInstallRecord, getInstanceInstallRecordLogs } = await import("../services/app-common/service.js");
|
|
983
994
|
const taskArg = args.find((a) => !a.startsWith("--"));
|
|
984
995
|
const lines = parseFlag(args, "--lines", 200);
|
|
985
996
|
const logType = args.includes("--stdout") ? "stdout" : "stderr";
|
|
986
|
-
const logLines =
|
|
987
|
-
? await
|
|
988
|
-
: await getInstanceLogs(
|
|
997
|
+
const logLines = getInstanceInstallRecord(instanceId)
|
|
998
|
+
? await getInstanceInstallRecordLogs(instanceId, taskArg ?? "", lines, logType)
|
|
999
|
+
: await getInstanceLogs(instanceId, lines, logType);
|
|
989
1000
|
if (logLines.length === 0) {
|
|
990
1001
|
log(c.dim(" (no logs)"));
|
|
991
1002
|
return;
|
|
992
1003
|
}
|
|
993
1004
|
process.stdout.write(logLines.join("\n") + "\n");
|
|
994
1005
|
}
|
|
995
|
-
|
|
1006
|
+
function parseExecArgs(args) {
|
|
1007
|
+
const dashDash = args.indexOf("--");
|
|
1008
|
+
if (dashDash < 0)
|
|
1009
|
+
return { command: [], error: "missing command separator" };
|
|
1010
|
+
const options = args.slice(0, dashDash);
|
|
1011
|
+
const command = args.slice(dashDash + 1);
|
|
1012
|
+
let user;
|
|
1013
|
+
for (let i = 0; i < options.length; i += 1) {
|
|
1014
|
+
const arg = options[i];
|
|
1015
|
+
if (arg === "--user" || arg === "-u") {
|
|
1016
|
+
const value = options[i + 1];
|
|
1017
|
+
if (!value || value.startsWith("-"))
|
|
1018
|
+
return { command, error: `${arg} requires a value` };
|
|
1019
|
+
user = value;
|
|
1020
|
+
i += 1;
|
|
1021
|
+
continue;
|
|
1022
|
+
}
|
|
1023
|
+
return { command, error: `unknown exec option: ${arg}` };
|
|
1024
|
+
}
|
|
1025
|
+
return { command, user };
|
|
1026
|
+
}
|
|
1027
|
+
async function cmdExec(instanceId, command, options = {}) {
|
|
996
1028
|
ensureNomadToken();
|
|
997
|
-
const {
|
|
998
|
-
const result =
|
|
999
|
-
? await execInApp(
|
|
1000
|
-
: await execInInstance(
|
|
1029
|
+
const { getInstanceInstallRecord, execInApp } = await import("../services/app-common/service.js");
|
|
1030
|
+
const result = getInstanceInstallRecord(instanceId)
|
|
1031
|
+
? await execInApp(instanceId, command, undefined, options)
|
|
1032
|
+
: await execInInstance(instanceId, command, undefined, options);
|
|
1001
1033
|
if (result.stdout)
|
|
1002
1034
|
process.stdout.write(result.stdout);
|
|
1003
1035
|
if (result.stderr)
|
|
@@ -1045,9 +1077,6 @@ export async function run(rest) {
|
|
|
1045
1077
|
else if (appCmd === "create") {
|
|
1046
1078
|
await cmdCreate(rest.slice(1));
|
|
1047
1079
|
}
|
|
1048
|
-
else if (appCmd === "copy" && rest[1]) {
|
|
1049
|
-
await cmdCopy(rest[1]);
|
|
1050
|
-
}
|
|
1051
1080
|
else if (appCmd === "start" && rest[1]) {
|
|
1052
1081
|
await cmdStart(rest[1]);
|
|
1053
1082
|
}
|
|
@@ -1064,13 +1093,14 @@ export async function run(rest) {
|
|
|
1064
1093
|
await cmdLogs(rest[1], rest.slice(2));
|
|
1065
1094
|
}
|
|
1066
1095
|
else if (appCmd === "exec" && rest[1]) {
|
|
1067
|
-
const
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1096
|
+
const parsed = parseExecArgs(rest.slice(2));
|
|
1097
|
+
if (parsed.command.length === 0 || parsed.error) {
|
|
1098
|
+
if (parsed.error && parsed.error !== "missing command separator")
|
|
1099
|
+
console.error(parsed.error);
|
|
1100
|
+
console.error("Usage: jishushell app exec <instance-id> [--user <user>|-u <user>] -- <command...>");
|
|
1071
1101
|
process.exit(1);
|
|
1072
1102
|
}
|
|
1073
|
-
await cmdExec(rest[1],
|
|
1103
|
+
await cmdExec(rest[1], parsed.command, { user: parsed.user });
|
|
1074
1104
|
}
|
|
1075
1105
|
else if (appCmd === "help" || appCmd === "--help" || appCmd === "-h") {
|
|
1076
1106
|
printHelp();
|
|
@@ -1093,42 +1123,44 @@ export async function dispatch(argv) {
|
|
|
1093
1123
|
return true;
|
|
1094
1124
|
}
|
|
1095
1125
|
export function brief() {
|
|
1096
|
-
return " app <create|install|providers|connections|bind|config|start|status>
|
|
1126
|
+
return " app <create|install|providers|connections|bind|config|start|status> 实例与 AppSpec 安装管理";
|
|
1097
1127
|
}
|
|
1098
1128
|
export function printHelp() {
|
|
1099
1129
|
console.log(`
|
|
1100
1130
|
Usage: jishushell app <command> [options]
|
|
1101
1131
|
|
|
1102
1132
|
Commands:
|
|
1103
|
-
create <id> --name <name> [--
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1133
|
+
create <id> --name <name> [--builtin <builtin-id>]
|
|
1134
|
+
按 builtin AppSpec 创建实例(默认 builtin=openclaw-container)
|
|
1135
|
+
create <id> --name <name> --from <instance-id> 从已有实例克隆一个新实例
|
|
1136
|
+
list [--json] 列出受管实例
|
|
1137
|
+
provides [--json] 列出实例声明/注册的能力
|
|
1107
1138
|
providers [--capability <name>] [--json] 列出可绑定 provider
|
|
1108
|
-
connections <
|
|
1109
|
-
bind <
|
|
1110
|
-
|
|
1111
|
-
unbind <
|
|
1112
|
-
config get <
|
|
1113
|
-
config set <
|
|
1114
|
-
config meta <
|
|
1115
|
-
show <id>
|
|
1116
|
-
install <yaml-file|https-url|builtin-id> [
|
|
1117
|
-
从本地、HTTPS
|
|
1118
|
-
uninstall <
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
start <id>
|
|
1122
|
-
stop <id> [--purge]
|
|
1123
|
-
restart <id>
|
|
1124
|
-
status <id> [--json]
|
|
1139
|
+
connections <instance-id> [--json] 查看实例依赖能力与绑定状态
|
|
1140
|
+
bind <instance-id> --slot <slot> --provider <id> --capability <capability>
|
|
1141
|
+
绑定实例依赖能力到 provider 实例
|
|
1142
|
+
unbind <instance-id> --slot <slot> 解除实例能力绑定
|
|
1143
|
+
config get <instance-id> 查看实例配置
|
|
1144
|
+
config set <instance-id> <key=value> 修改实例配置字段
|
|
1145
|
+
config meta <instance-id> 查看实例配置元信息
|
|
1146
|
+
show <id> 查看实例详情(JSON)
|
|
1147
|
+
install <yaml-file|https-url|builtin-id> [instance-id] [--sudo-password <password>]
|
|
1148
|
+
从本地、HTTPS 或内置 AppSpec 安装实例,可选指定实例 id
|
|
1149
|
+
uninstall <instance-id> [--sudo-password <password>]
|
|
1150
|
+
卸载单个实例(停止 + 删除目录)
|
|
1151
|
+
uninstall --all [--sudo-password <password>] 卸载全部实例
|
|
1152
|
+
start <id> 启动实例
|
|
1153
|
+
stop <id> [--purge] 停止实例(--purge 同时清除 Nomad job)
|
|
1154
|
+
restart <id> 重启实例
|
|
1155
|
+
status <id> [--json] 查看实例状态
|
|
1125
1156
|
logs <id> [<task>] [--lines N] [--stdout] 查看日志(默认 stderr)
|
|
1126
|
-
exec <id> -- <cmd...>
|
|
1157
|
+
exec <id> -- <cmd...> 在实例内执行命令
|
|
1127
1158
|
help 显示此帮助
|
|
1128
1159
|
|
|
1129
1160
|
Examples:
|
|
1130
1161
|
jishushell app create my-openclaw --name MyOpenClaw
|
|
1131
|
-
jishushell app create my-hermes --name MyHermes --
|
|
1162
|
+
jishushell app create my-hermes --name MyHermes --builtin hermes-container
|
|
1163
|
+
jishushell app create my-ollama --name MyOllama --builtin ollama-with-hollama-binary
|
|
1132
1164
|
jishushell app create my-searxng-2 --name MySearxng2 --from my-searxng
|
|
1133
1165
|
jishushell app install ./apps/ollama-with-hollama-binary.yaml
|
|
1134
1166
|
jishushell app install ./apps/ollama-with-hollama-binary.yaml ollama-local
|
|
@@ -1141,7 +1173,6 @@ Examples:
|
|
|
1141
1173
|
jishushell app bind my-openclaw --slot search --provider searxng --capability search-searxng
|
|
1142
1174
|
jishushell app config get my-openclaw
|
|
1143
1175
|
jishushell app config set my-openclaw x-jishushell.proxy.upstream.providerId=ollama
|
|
1144
|
-
jishushell app copy ollama-1
|
|
1145
1176
|
jishushell app start searxng-container
|
|
1146
1177
|
jishushell app status ollama
|
|
1147
1178
|
jishushell app logs ollama --lines 100
|