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.
Files changed (998) hide show
  1. package/apps/anythingllm-container.yaml +15 -170
  2. package/apps/browserless-chromium-container.yaml +15 -10
  3. package/apps/filebrowser-container.yaml +14 -9
  4. package/apps/hermes-container.yaml +23 -2
  5. package/apps/jishu-kb-container.yaml +29 -161
  6. package/apps/ollama-binary.yaml +32 -28
  7. package/apps/ollama-cpu-container.yaml +5 -0
  8. package/apps/ollama-with-hollama-binary.yaml +33 -28
  9. package/apps/openclaw-binary.yaml +34 -10
  10. package/apps/openclaw-container.yaml +31 -7
  11. package/apps/openclaw-with-ollama-container.yaml +8 -2
  12. package/apps/openclaw-with-searxng-container.yaml +18 -6
  13. package/apps/searxng-container.yaml +11 -6
  14. package/apps/weknora-container.yaml +21 -21
  15. package/dependencies/jishushell-panel-0.6.18.tgz +0 -0
  16. package/dist/cli/app.js +244 -213
  17. package/dist/cli/app.js.map +1 -1
  18. package/dist/cli/backup.js +15 -12
  19. package/dist/cli/backup.js.map +1 -1
  20. package/dist/cli/core.d.ts +4 -3
  21. package/dist/cli/core.js +392 -227
  22. package/dist/cli/core.js.map +1 -1
  23. package/dist/cli/doctor.d.ts +1 -1
  24. package/dist/cli/doctor.js +17 -10
  25. package/dist/cli/doctor.js.map +1 -1
  26. package/dist/cli/job.js +62 -14
  27. package/dist/cli/job.js.map +1 -1
  28. package/dist/cli/llm.js +80 -11
  29. package/dist/cli/llm.js.map +1 -1
  30. package/dist/cli/managed-list.d.ts +1 -3
  31. package/dist/cli/managed-list.js +18 -16
  32. package/dist/cli/managed-list.js.map +1 -1
  33. package/dist/cli/migrate.d.ts +2 -0
  34. package/dist/cli/migrate.js +160 -0
  35. package/dist/cli/migrate.js.map +1 -0
  36. package/dist/cli.js +1 -0
  37. package/dist/cli.js.map +1 -1
  38. package/dist/config.d.ts +23 -19
  39. package/dist/config.js +60 -49
  40. package/dist/config.js.map +1 -1
  41. package/dist/control.d.ts +6 -6
  42. package/dist/control.js +31 -23
  43. package/dist/control.js.map +1 -1
  44. package/dist/core.d.ts +5 -5
  45. package/dist/core.js +5 -5
  46. package/dist/core.js.map +1 -1
  47. package/dist/install.d.ts +2 -2
  48. package/dist/install.js +18 -18
  49. package/dist/install.js.map +1 -1
  50. package/dist/routes/apps.d.ts +1 -1
  51. package/dist/routes/apps.js +101 -193
  52. package/dist/routes/apps.js.map +1 -1
  53. package/dist/routes/auth.js +1 -1
  54. package/dist/routes/auth.js.map +1 -1
  55. package/dist/routes/backup.js +1 -1
  56. package/dist/routes/backup.js.map +1 -1
  57. package/dist/routes/external-mounts.d.ts +1 -1
  58. package/dist/routes/external-mounts.js +1 -1
  59. package/dist/routes/external-mounts.js.map +1 -1
  60. package/dist/routes/file-mounts.d.ts +4 -3
  61. package/dist/routes/file-mounts.js +51 -30
  62. package/dist/routes/file-mounts.js.map +1 -1
  63. package/dist/routes/files-organize.d.ts +2 -2
  64. package/dist/routes/files-organize.js +5 -5
  65. package/dist/routes/files-organize.js.map +1 -1
  66. package/dist/routes/files.d.ts +1 -1
  67. package/dist/routes/files.js +1 -1
  68. package/dist/routes/files.js.map +1 -1
  69. package/dist/routes/instances.d.ts +10 -4
  70. package/dist/routes/instances.js +323 -541
  71. package/dist/routes/instances.js.map +1 -1
  72. package/dist/routes/integration-apps.d.ts +14 -0
  73. package/dist/routes/integration-apps.js +81 -0
  74. package/dist/routes/integration-apps.js.map +1 -0
  75. package/dist/routes/integrations.d.ts +9 -0
  76. package/dist/routes/integrations.js +12 -0
  77. package/dist/routes/integrations.js.map +1 -0
  78. package/dist/routes/llm-proxy.js +26 -3
  79. package/dist/routes/llm-proxy.js.map +1 -1
  80. package/dist/routes/setup.js +53 -38
  81. package/dist/routes/setup.js.map +1 -1
  82. package/dist/routes/system.js +108 -68
  83. package/dist/routes/system.js.map +1 -1
  84. package/dist/routes/webdav.d.ts +1 -1
  85. package/dist/routes/webdav.js +2 -2
  86. package/dist/routes/webdav.js.map +1 -1
  87. package/dist/server.js +315 -213
  88. package/dist/server.js.map +1 -1
  89. package/dist/services/app-common/app-compiler.js +186 -0
  90. package/dist/services/app-common/app-compiler.js.map +1 -0
  91. package/dist/services/app-common/app-shared.d.ts +15 -0
  92. package/dist/services/app-common/app-shared.js +64 -0
  93. package/dist/services/app-common/app-shared.js.map +1 -0
  94. package/dist/services/app-common/capability-service.d.ts +45 -0
  95. package/dist/services/app-common/capability-service.js +331 -0
  96. package/dist/services/app-common/capability-service.js.map +1 -0
  97. package/dist/services/app-common/catalog-service.d.ts +59 -0
  98. package/dist/services/app-common/catalog-service.js +308 -0
  99. package/dist/services/app-common/catalog-service.js.map +1 -0
  100. package/dist/services/app-common/create-pipeline.d.ts +26 -0
  101. package/dist/services/app-common/create-pipeline.js +298 -0
  102. package/dist/services/app-common/create-pipeline.js.map +1 -0
  103. package/dist/services/app-common/delete-service.d.ts +5 -0
  104. package/dist/services/app-common/delete-service.js +104 -0
  105. package/dist/services/app-common/delete-service.js.map +1 -0
  106. package/dist/services/app-common/execution-owner.d.ts +23 -0
  107. package/dist/services/app-common/execution-owner.js +124 -0
  108. package/dist/services/app-common/execution-owner.js.map +1 -0
  109. package/dist/services/app-common/execution-service.d.ts +23 -0
  110. package/dist/services/app-common/execution-service.js +105 -0
  111. package/dist/services/app-common/execution-service.js.map +1 -0
  112. package/dist/services/app-common/id-normalizer.d.ts +31 -0
  113. package/dist/services/app-common/id-normalizer.js +83 -0
  114. package/dist/services/app-common/id-normalizer.js.map +1 -0
  115. package/dist/services/app-common/install-store.d.ts +34 -0
  116. package/dist/services/app-common/install-store.js +261 -0
  117. package/dist/services/app-common/install-store.js.map +1 -0
  118. package/dist/services/app-common/instance-store.d.ts +78 -0
  119. package/dist/services/app-common/instance-store.js +495 -0
  120. package/dist/services/app-common/instance-store.js.map +1 -0
  121. package/dist/services/app-common/integration-refs.d.ts +17 -0
  122. package/dist/services/app-common/integration-refs.js +47 -0
  123. package/dist/services/app-common/integration-refs.js.map +1 -0
  124. package/dist/services/app-common/lifecycle-pipeline.d.ts +62 -0
  125. package/dist/services/app-common/lifecycle-pipeline.js +317 -0
  126. package/dist/services/app-common/lifecycle-pipeline.js.map +1 -0
  127. package/dist/services/app-common/lifecycle-scripts.d.ts +38 -0
  128. package/dist/services/app-common/lifecycle-scripts.js +935 -0
  129. package/dist/services/app-common/lifecycle-scripts.js.map +1 -0
  130. package/dist/services/app-common/lifecycle-service.d.ts +68 -0
  131. package/dist/services/app-common/lifecycle-service.js +467 -0
  132. package/dist/services/app-common/lifecycle-service.js.map +1 -0
  133. package/dist/services/app-common/paths.d.ts +29 -0
  134. package/dist/services/app-common/paths.js +34 -0
  135. package/dist/services/app-common/paths.js.map +1 -0
  136. package/dist/services/app-common/platform-transform.d.ts +32 -0
  137. package/dist/services/app-common/platform-transform.js +65 -0
  138. package/dist/services/app-common/platform-transform.js.map +1 -0
  139. package/dist/services/app-common/provide-resolver.d.ts +29 -0
  140. package/dist/services/app-common/provide-resolver.js +129 -0
  141. package/dist/services/app-common/provide-resolver.js.map +1 -0
  142. package/dist/services/app-common/remote-spec.d.ts +14 -0
  143. package/dist/services/app-common/remote-spec.js +58 -0
  144. package/dist/services/app-common/remote-spec.js.map +1 -0
  145. package/dist/services/app-common/runtime-builder.d.ts +1 -0
  146. package/dist/services/app-common/runtime-builder.js +2 -0
  147. package/dist/services/app-common/runtime-builder.js.map +1 -0
  148. package/dist/services/app-common/runtime-facts.d.ts +19 -0
  149. package/dist/services/app-common/runtime-facts.js +126 -0
  150. package/dist/services/app-common/runtime-facts.js.map +1 -0
  151. package/dist/services/app-common/service.d.ts +9 -0
  152. package/dist/services/app-common/service.js +10 -0
  153. package/dist/services/app-common/service.js.map +1 -0
  154. package/dist/services/app-common/spec-materializer.d.ts +9 -0
  155. package/dist/services/app-common/spec-materializer.js +361 -0
  156. package/dist/services/app-common/spec-materializer.js.map +1 -0
  157. package/dist/services/app-common/status-refresh.d.ts +33 -0
  158. package/dist/services/app-common/status-refresh.js +759 -0
  159. package/dist/services/app-common/status-refresh.js.map +1 -0
  160. package/dist/services/app-common/task-service.d.ts +29 -0
  161. package/dist/services/app-common/task-service.js +93 -0
  162. package/dist/services/app-common/task-service.js.map +1 -0
  163. package/dist/services/app-common/terminal-session-manager.js +157 -0
  164. package/dist/services/app-common/terminal-session-manager.js.map +1 -0
  165. package/dist/services/app-modules/browserless/routes.d.ts +9 -0
  166. package/dist/services/app-modules/browserless/routes.js +517 -0
  167. package/dist/services/app-modules/browserless/routes.js.map +1 -0
  168. package/dist/services/app-modules/routes.d.ts +2 -0
  169. package/dist/services/app-modules/routes.js +5 -0
  170. package/dist/services/app-modules/routes.js.map +1 -0
  171. package/dist/services/backup/backup-admin.d.ts +95 -0
  172. package/dist/services/backup/backup-admin.js +246 -0
  173. package/dist/services/backup/backup-admin.js.map +1 -0
  174. package/dist/services/backup/backup-manager.d.ts +264 -0
  175. package/dist/services/backup/backup-manager.js +2318 -0
  176. package/dist/services/backup/backup-manager.js.map +1 -0
  177. package/dist/services/backup/backup-verify.js +240 -0
  178. package/dist/services/backup/backup-verify.js.map +1 -0
  179. package/dist/services/capabilities/browser-policy.d.ts +14 -0
  180. package/dist/services/capabilities/browser-policy.js +141 -0
  181. package/dist/services/capabilities/browser-policy.js.map +1 -0
  182. package/dist/services/capabilities/contract.d.ts +50 -0
  183. package/dist/services/capabilities/contract.js +129 -0
  184. package/dist/services/capabilities/contract.js.map +1 -0
  185. package/dist/services/capabilities/endpoint-validator.d.ts +42 -0
  186. package/dist/services/capabilities/endpoint-validator.js +114 -0
  187. package/dist/services/capabilities/endpoint-validator.js.map +1 -0
  188. package/dist/services/capabilities/health.d.ts +16 -0
  189. package/dist/services/capabilities/health.js +121 -0
  190. package/dist/services/capabilities/health.js.map +1 -0
  191. package/dist/services/capabilities/registry.d.ts +56 -0
  192. package/dist/services/capabilities/registry.js +222 -0
  193. package/dist/services/capabilities/registry.js.map +1 -0
  194. package/dist/services/capabilities/sync.d.ts +7 -0
  195. package/dist/services/capabilities/sync.js +223 -0
  196. package/dist/services/capabilities/sync.js.map +1 -0
  197. package/dist/services/capability-proxy/html-rewriters/browserless.d.ts +1 -0
  198. package/dist/services/capability-proxy/html-rewriters/browserless.js +83 -0
  199. package/dist/services/capability-proxy/html-rewriters/browserless.js.map +1 -0
  200. package/dist/services/capability-proxy/html-rewriters/index.d.ts +12 -0
  201. package/dist/services/capability-proxy/html-rewriters/index.js +25 -0
  202. package/dist/services/capability-proxy/html-rewriters/index.js.map +1 -0
  203. package/dist/services/capability-proxy/html-rewriters/jishukb.d.ts +1 -0
  204. package/dist/services/capability-proxy/html-rewriters/jishukb.js +161 -0
  205. package/dist/services/capability-proxy/html-rewriters/jishukb.js.map +1 -0
  206. package/dist/services/connections/admin.d.ts +80 -0
  207. package/dist/services/connections/admin.js +327 -0
  208. package/dist/services/connections/admin.js.map +1 -0
  209. package/dist/services/connections/apply.d.ts +110 -0
  210. package/dist/services/connections/apply.js +444 -0
  211. package/dist/services/connections/apply.js.map +1 -0
  212. package/dist/services/connections/resolver.d.ts +82 -0
  213. package/dist/services/connections/resolver.js +289 -0
  214. package/dist/services/connections/resolver.js.map +1 -0
  215. package/dist/services/connections/suggestions.d.ts +27 -0
  216. package/dist/services/connections/suggestions.js +124 -0
  217. package/dist/services/connections/suggestions.js.map +1 -0
  218. package/dist/services/connections/transactor.d.ts +39 -0
  219. package/dist/services/connections/transactor.js +307 -0
  220. package/dist/services/connections/transactor.js.map +1 -0
  221. package/dist/services/files/external-mounts.js +187 -0
  222. package/dist/services/files/external-mounts.js.map +1 -0
  223. package/dist/services/files/files-manager.d.ts +265 -0
  224. package/dist/services/files/files-manager.js +1189 -0
  225. package/dist/services/files/files-manager.js.map +1 -0
  226. package/dist/services/files/files-mounts.d.ts +42 -0
  227. package/dist/services/files/files-mounts.js +207 -0
  228. package/dist/services/files/files-mounts.js.map +1 -0
  229. package/dist/services/files/organize/applier.js +218 -0
  230. package/dist/services/files/organize/applier.js.map +1 -0
  231. package/dist/services/files/organize/rules.js +286 -0
  232. package/dist/services/files/organize/rules.js.map +1 -0
  233. package/dist/services/files/organize/scanner.js +366 -0
  234. package/dist/services/files/organize/scanner.js.map +1 -0
  235. package/dist/services/files/organize/store.js +82 -0
  236. package/dist/services/files/organize/store.js.map +1 -0
  237. package/dist/services/files/webdav/server.d.ts +47 -0
  238. package/dist/services/files/webdav/server.js +329 -0
  239. package/dist/services/files/webdav/server.js.map +1 -0
  240. package/dist/services/files/webdav/xml-builder.js.map +1 -0
  241. package/dist/services/instances/admin.d.ts +23 -0
  242. package/dist/services/instances/admin.js +218 -0
  243. package/dist/services/instances/admin.js.map +1 -0
  244. package/dist/services/instances/clone.d.ts +26 -0
  245. package/dist/services/instances/clone.js +78 -0
  246. package/dist/services/instances/clone.js.map +1 -0
  247. package/dist/services/instances/config-admin.d.ts +17 -0
  248. package/dist/services/instances/config-admin.js +181 -0
  249. package/dist/services/instances/config-admin.js.map +1 -0
  250. package/dist/services/instances/manager.d.ts +231 -0
  251. package/dist/services/instances/manager.js +1348 -0
  252. package/dist/services/instances/manager.js.map +1 -0
  253. package/dist/services/instances/passwords.js +173 -0
  254. package/dist/services/instances/passwords.js.map +1 -0
  255. package/dist/services/instances/types.d.ts +21 -0
  256. package/dist/services/instances/types.js +2 -0
  257. package/dist/services/instances/types.js.map +1 -0
  258. package/dist/services/integrations/anythingllm/integration.d.ts +25 -0
  259. package/dist/services/integrations/anythingllm/integration.js +251 -0
  260. package/dist/services/integrations/anythingllm/integration.js.map +1 -0
  261. package/dist/services/integrations/catalog.d.ts +3 -0
  262. package/dist/services/integrations/catalog.js +73 -0
  263. package/dist/services/integrations/catalog.js.map +1 -0
  264. package/dist/services/integrations/custom/integration.d.ts +28 -0
  265. package/dist/services/integrations/custom/integration.js +179 -0
  266. package/dist/services/integrations/custom/integration.js.map +1 -0
  267. package/dist/services/integrations/hermes/integration.d.ts +194 -0
  268. package/dist/services/integrations/hermes/integration.js +1669 -0
  269. package/dist/services/integrations/hermes/integration.js.map +1 -0
  270. package/dist/services/integrations/index.d.ts +40 -0
  271. package/dist/services/integrations/index.js +59 -0
  272. package/dist/services/integrations/index.js.map +1 -0
  273. package/dist/services/integrations/installable/catalog.d.ts +33 -0
  274. package/dist/services/integrations/installable/catalog.js +88 -0
  275. package/dist/services/integrations/installable/catalog.js.map +1 -0
  276. package/dist/services/integrations/installable/index.d.ts +35 -0
  277. package/dist/services/integrations/installable/index.js +170 -0
  278. package/dist/services/integrations/installable/index.js.map +1 -0
  279. package/dist/services/integrations/installable/installers/integration-probes.d.ts +50 -0
  280. package/dist/services/integrations/installable/installers/integration-probes.js +231 -0
  281. package/dist/services/integrations/installable/installers/integration-probes.js.map +1 -0
  282. package/dist/services/integrations/installable/installers/integration.d.ts +30 -0
  283. package/dist/services/integrations/installable/installers/integration.js +177 -0
  284. package/dist/services/integrations/installable/installers/integration.js.map +1 -0
  285. package/dist/services/integrations/installable/installers/registry-probe.js.map +1 -0
  286. package/dist/services/integrations/installable/installers/shell-script.d.ts +46 -0
  287. package/dist/services/integrations/installable/installers/shell-script.js +487 -0
  288. package/dist/services/integrations/installable/installers/shell-script.js.map +1 -0
  289. package/dist/services/integrations/installable/types.d.ts +130 -0
  290. package/dist/services/integrations/installable/types.js +19 -0
  291. package/dist/services/integrations/installable/types.js.map +1 -0
  292. package/dist/services/integrations/jishukb/integration.d.ts +22 -0
  293. package/dist/services/integrations/jishukb/integration.js +189 -0
  294. package/dist/services/integrations/jishukb/integration.js.map +1 -0
  295. package/dist/services/integrations/openclaw/anythingllm-shim.d.ts +46 -0
  296. package/dist/services/integrations/openclaw/anythingllm-shim.js +281 -0
  297. package/dist/services/integrations/openclaw/anythingllm-shim.js.map +1 -0
  298. package/dist/services/integrations/openclaw/drive-shim.js +490 -0
  299. package/dist/services/integrations/openclaw/drive-shim.js.map +1 -0
  300. package/dist/services/integrations/openclaw/integration.d.ts +424 -0
  301. package/dist/services/integrations/openclaw/integration.js +4402 -0
  302. package/dist/services/integrations/openclaw/integration.js.map +1 -0
  303. package/dist/services/integrations/openclaw/jishukb-shim.d.ts +48 -0
  304. package/dist/services/integrations/openclaw/jishukb-shim.js +750 -0
  305. package/dist/services/integrations/openclaw/jishukb-shim.js.map +1 -0
  306. package/dist/services/integrations/openclaw/mcporter-lite.js +276 -0
  307. package/dist/services/integrations/openclaw/mcporter-lite.js.map +1 -0
  308. package/dist/services/integrations/openclaw/mcporter.d.ts +46 -0
  309. package/dist/services/integrations/openclaw/mcporter.js +112 -0
  310. package/dist/services/integrations/openclaw/mcporter.js.map +1 -0
  311. package/dist/services/integrations/openclaw/routes.d.ts +21 -0
  312. package/dist/services/integrations/openclaw/routes.js +1191 -0
  313. package/dist/services/integrations/openclaw/routes.js.map +1 -0
  314. package/dist/services/integrations/registry.d.ts +17 -0
  315. package/dist/services/integrations/registry.js +36 -0
  316. package/dist/services/integrations/registry.js.map +1 -0
  317. package/dist/services/integrations/routes.d.ts +2 -0
  318. package/dist/services/integrations/routes.js +9 -0
  319. package/dist/services/integrations/routes.js.map +1 -0
  320. package/dist/services/integrations/types.d.ts +469 -0
  321. package/dist/services/integrations/types.js +2 -0
  322. package/dist/services/integrations/types.js.map +1 -0
  323. package/dist/services/legacy-migrator/classifier.d.ts +44 -0
  324. package/dist/services/legacy-migrator/classifier.js +309 -0
  325. package/dist/services/legacy-migrator/classifier.js.map +1 -0
  326. package/dist/services/legacy-migrator/executor.d.ts +42 -0
  327. package/dist/services/legacy-migrator/executor.js +637 -0
  328. package/dist/services/legacy-migrator/executor.js.map +1 -0
  329. package/dist/services/legacy-migrator/index.d.ts +31 -0
  330. package/dist/services/legacy-migrator/index.js +34 -0
  331. package/dist/services/legacy-migrator/index.js.map +1 -0
  332. package/dist/services/legacy-migrator/planner.d.ts +8 -0
  333. package/dist/services/legacy-migrator/planner.js +154 -0
  334. package/dist/services/legacy-migrator/planner.js.map +1 -0
  335. package/dist/services/legacy-migrator/provider-settings.d.ts +6 -0
  336. package/dist/services/legacy-migrator/provider-settings.js +72 -0
  337. package/dist/services/legacy-migrator/provider-settings.js.map +1 -0
  338. package/dist/services/legacy-migrator/report.d.ts +9 -0
  339. package/dist/services/legacy-migrator/report.js +99 -0
  340. package/dist/services/legacy-migrator/report.js.map +1 -0
  341. package/dist/services/legacy-migrator/scanner.d.ts +13 -0
  342. package/dist/services/legacy-migrator/scanner.js +157 -0
  343. package/dist/services/legacy-migrator/scanner.js.map +1 -0
  344. package/dist/services/legacy-migrator/types.d.ts +97 -0
  345. package/dist/services/legacy-migrator/types.js +23 -0
  346. package/dist/services/legacy-migrator/types.js.map +1 -0
  347. package/dist/services/llm-proxy/instance-proxy.d.ts +17 -1
  348. package/dist/services/llm-proxy/instance-proxy.js +171 -44
  349. package/dist/services/llm-proxy/instance-proxy.js.map +1 -1
  350. package/dist/services/llm-proxy/probe.js +5 -14
  351. package/dist/services/llm-proxy/probe.js.map +1 -1
  352. package/dist/services/llm-proxy/providers.js +23 -31
  353. package/dist/services/llm-proxy/providers.js.map +1 -1
  354. package/dist/services/llm-proxy/ssrf.d.ts +11 -4
  355. package/dist/services/llm-proxy/ssrf.js +45 -7
  356. package/dist/services/llm-proxy/ssrf.js.map +1 -1
  357. package/dist/services/llm-proxy/validate-key.js +16 -37
  358. package/dist/services/llm-proxy/validate-key.js.map +1 -1
  359. package/dist/services/repair/runtime-repair.d.ts +22 -0
  360. package/dist/services/repair/runtime-repair.js +307 -0
  361. package/dist/services/repair/runtime-repair.js.map +1 -0
  362. package/dist/services/runtime/driver-registry.d.ts +21 -0
  363. package/dist/services/runtime/driver-registry.js +22 -0
  364. package/dist/services/runtime/driver-registry.js.map +1 -0
  365. package/dist/services/runtime/drivers/nomad.d.ts +260 -0
  366. package/dist/services/runtime/drivers/nomad.js +3092 -0
  367. package/dist/services/runtime/drivers/nomad.js.map +1 -0
  368. package/dist/services/runtime/errors.d.ts +3 -3
  369. package/dist/services/runtime/errors.js +3 -3
  370. package/dist/services/runtime/instance.d.ts +14 -16
  371. package/dist/services/runtime/instance.js +93 -123
  372. package/dist/services/runtime/instance.js.map +1 -1
  373. package/dist/services/runtime/job-id.d.ts +1 -1
  374. package/dist/services/runtime/job-id.js +1 -1
  375. package/dist/services/runtime/mcp-shims/firewall.d.ts +2 -2
  376. package/dist/services/runtime/mcp-shims/firewall.js +2 -2
  377. package/dist/services/runtime/mcp-shims/searxng-shim.d.ts +3 -5
  378. package/dist/services/runtime/mcp-shims/searxng-shim.js +3 -5
  379. package/dist/services/runtime/mcp-shims/searxng-shim.js.map +1 -1
  380. package/dist/services/runtime/mcp-shims/write-mcp-entry.d.ts +20 -20
  381. package/dist/services/runtime/mcp-shims/write-mcp-entry.js +16 -16
  382. package/dist/services/runtime/mcp-shims/write-mcp-entry.js.map +1 -1
  383. package/dist/services/runtime/ownership-marker.d.ts +83 -0
  384. package/dist/services/runtime/ownership-marker.js +109 -0
  385. package/dist/services/runtime/ownership-marker.js.map +1 -0
  386. package/dist/services/runtime/types.d.ts +22 -501
  387. package/dist/services/runtime/types.js +0 -12
  388. package/dist/services/runtime/types.js.map +1 -1
  389. package/dist/services/runtime/workload-compiler.d.ts +17 -0
  390. package/dist/services/runtime/workload-compiler.js +525 -0
  391. package/dist/services/runtime/workload-compiler.js.map +1 -0
  392. package/dist/services/runtime/workload-types.d.ts +11 -0
  393. package/dist/services/runtime/workload-types.js +2 -0
  394. package/dist/services/runtime/workload-types.js.map +1 -0
  395. package/dist/services/setup/core-manager.d.ts +50 -0
  396. package/dist/services/setup/core-manager.js +456 -0
  397. package/dist/services/setup/core-manager.js.map +1 -0
  398. package/dist/services/setup/plugin-installer.js +136 -0
  399. package/dist/services/setup/plugin-installer.js.map +1 -0
  400. package/dist/services/setup/setup-manager.d.ts +158 -0
  401. package/dist/services/setup/setup-manager.js +2768 -0
  402. package/dist/services/setup/setup-manager.js.map +1 -0
  403. package/dist/services/system/cli-command.d.ts +5 -0
  404. package/dist/services/system/cli-command.js +18 -0
  405. package/dist/services/system/cli-command.js.map +1 -0
  406. package/dist/services/system/macos-launchd.js +312 -0
  407. package/dist/services/system/macos-launchd.js.map +1 -0
  408. package/dist/services/system/repair-orchestrator.d.ts +71 -0
  409. package/dist/services/system/repair-orchestrator.js +412 -0
  410. package/dist/services/system/repair-orchestrator.js.map +1 -0
  411. package/dist/services/system/system-monitor.js +96 -0
  412. package/dist/services/system/system-monitor.js.map +1 -0
  413. package/dist/services/system/system-ollama-provider.d.ts +14 -0
  414. package/dist/services/system/system-ollama-provider.js +129 -0
  415. package/dist/services/system/system-ollama-provider.js.map +1 -0
  416. package/dist/services/system/system-reconciler.d.ts +59 -0
  417. package/dist/services/system/system-reconciler.js +710 -0
  418. package/dist/services/system/system-reconciler.js.map +1 -0
  419. package/dist/services/system/update-manager.d.ts +43 -0
  420. package/dist/services/system/update-manager.js +315 -0
  421. package/dist/services/system/update-manager.js.map +1 -0
  422. package/dist/services/system/upgrade-finalize.d.ts +80 -0
  423. package/dist/services/system/upgrade-finalize.js +507 -0
  424. package/dist/services/system/upgrade-finalize.js.map +1 -0
  425. package/dist/services/tasks/registry.d.ts +44 -0
  426. package/dist/services/tasks/registry.js +90 -0
  427. package/dist/services/tasks/registry.js.map +1 -0
  428. package/dist/services/telemetry/activation.d.ts +6 -2
  429. package/dist/services/telemetry/activation.js +6 -2
  430. package/dist/services/telemetry/activation.js.map +1 -1
  431. package/dist/services/telemetry/heartbeat.d.ts +6 -2
  432. package/dist/services/telemetry/heartbeat.js +6 -2
  433. package/dist/services/telemetry/heartbeat.js.map +1 -1
  434. package/dist/services/workspaces/builder.d.ts +29 -0
  435. package/dist/services/workspaces/builder.js +186 -0
  436. package/dist/services/workspaces/builder.js.map +1 -0
  437. package/dist/types.d.ts +331 -45
  438. package/dist/utils/instance-lock.d.ts +2 -2
  439. package/dist/utils/instance-lock.js +2 -2
  440. package/install/jishu-install.sh +107 -26
  441. package/install/jishu-uninstall.sh +8 -0
  442. package/install/post-install.sh +162 -185
  443. package/install/post-uninstall.sh +6 -0
  444. package/node_modules/@fastify/static/.github/workflows/ci.yml +1 -1
  445. package/node_modules/@fastify/static/.github/workflows/lock-threads.yml +19 -0
  446. package/node_modules/@fastify/static/LICENSE +1 -3
  447. package/node_modules/@fastify/static/example/server-benchmark.js +39 -0
  448. package/node_modules/@fastify/static/index.js +169 -23
  449. package/node_modules/@fastify/static/lib/dirList.js +20 -6
  450. package/node_modules/@fastify/static/package.json +10 -8
  451. package/node_modules/@fastify/static/test/dir-list.test.js +82 -0
  452. package/node_modules/@fastify/static/test/static.test.js +326 -4
  453. package/node_modules/@fastify/static/types/index.d.ts +0 -4
  454. package/node_modules/@fastify/static/types/index.test-d.ts +1 -1
  455. package/node_modules/content-disposition/README.md +21 -22
  456. package/node_modules/content-disposition/index.js +122 -44
  457. package/node_modules/content-disposition/package.json +16 -20
  458. package/node_modules/glob/README.md +39 -130
  459. package/node_modules/glob/dist/commonjs/glob.d.ts +8 -0
  460. package/node_modules/glob/dist/commonjs/glob.d.ts.map +1 -1
  461. package/node_modules/glob/dist/commonjs/glob.js +2 -1
  462. package/node_modules/glob/dist/commonjs/glob.js.map +1 -1
  463. package/node_modules/glob/dist/commonjs/index.min.js +4 -0
  464. package/node_modules/glob/dist/commonjs/index.min.js.map +7 -0
  465. package/node_modules/glob/dist/commonjs/pattern.d.ts +3 -0
  466. package/node_modules/glob/dist/commonjs/pattern.d.ts.map +1 -1
  467. package/node_modules/glob/dist/commonjs/pattern.js +4 -0
  468. package/node_modules/glob/dist/commonjs/pattern.js.map +1 -1
  469. package/node_modules/glob/dist/esm/glob.d.ts +8 -0
  470. package/node_modules/glob/dist/esm/glob.d.ts.map +1 -1
  471. package/node_modules/glob/dist/esm/glob.js +2 -1
  472. package/node_modules/glob/dist/esm/glob.js.map +1 -1
  473. package/node_modules/glob/dist/esm/index.min.js +4 -0
  474. package/node_modules/glob/dist/esm/index.min.js.map +7 -0
  475. package/node_modules/glob/dist/esm/pattern.d.ts +3 -0
  476. package/node_modules/glob/dist/esm/pattern.d.ts.map +1 -1
  477. package/node_modules/glob/dist/esm/pattern.js +4 -0
  478. package/node_modules/glob/dist/esm/pattern.js.map +1 -1
  479. package/node_modules/glob/package.json +38 -37
  480. package/node_modules/jishushell-panel/README.md +4 -4
  481. package/node_modules/jishushell-panel/output/dist/server.js +17 -6
  482. package/node_modules/jishushell-panel/output/dist/server.js.map +1 -1
  483. package/node_modules/jishushell-panel/output/public/assets/ApiKeyField-NKcbHjNz.js +1 -0
  484. package/node_modules/jishushell-panel/output/public/assets/Dashboard-Da1fL38t.js +1 -0
  485. package/node_modules/jishushell-panel/output/public/assets/HermesChatPanel-DZvmYsoh.js +1 -0
  486. package/node_modules/jishushell-panel/output/public/assets/HermesConfigForm-BLUWlKwm.js +4 -0
  487. package/node_modules/jishushell-panel/output/public/assets/InitPassword-BAKsshzk.js +1 -0
  488. package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-Dgyc_TX5.js +14 -0
  489. package/node_modules/jishushell-panel/output/public/assets/Login-DHeOmwI8.js +1 -0
  490. package/node_modules/jishushell-panel/output/public/assets/NewInstance-CIy0cYtp.js +1 -0
  491. package/node_modules/jishushell-panel/output/public/assets/ProviderRecommendations-H0ByEYF0.js +1 -0
  492. package/node_modules/jishushell-panel/output/public/assets/Settings-DAT-UMfP.js +1 -0
  493. package/node_modules/jishushell-panel/output/public/assets/Setup-g3uckFYR.js +1 -0
  494. package/node_modules/jishushell-panel/output/public/assets/WeixinLoginPanel-D-T6BxkQ.js +1 -0
  495. package/node_modules/jishushell-panel/output/public/assets/api-C70Gt678.js +4 -0
  496. package/node_modules/jishushell-panel/output/public/assets/index-DnnqTf7s.css +1 -0
  497. package/node_modules/jishushell-panel/output/public/assets/index-ERt6_ngA.js +23 -0
  498. package/node_modules/jishushell-panel/output/public/assets/registry-DF93EzIb.js +2 -0
  499. package/node_modules/jishushell-panel/output/public/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  500. package/node_modules/jishushell-panel/output/public/assets/setup-task-q21GnI0E.js +1 -0
  501. package/node_modules/jishushell-panel/output/public/assets/usePolling-DeoThIQn.js +1 -0
  502. package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-CS8DFbkQ.js +1 -0
  503. package/node_modules/jishushell-panel/output/public/assets/vendor-react-Cc84NArf.js +8 -0
  504. package/node_modules/jishushell-panel/output/public/index.html +6 -4
  505. package/node_modules/jishushell-panel/package.json +2 -2
  506. package/node_modules/semver/classes/range.js +11 -2
  507. package/node_modules/semver/package.json +2 -2
  508. package/package.json +12 -64
  509. package/scripts/check-app-path-boundaries.mjs +121 -0
  510. package/scripts/check-app-spec.mjs +127 -25
  511. package/scripts/check-colima-launchd.mjs +10 -8
  512. package/scripts/check-integration-isolation.ts +541 -0
  513. package/scripts/check-new-file-tests.mjs +11 -3
  514. package/scripts/check-open-core-boundaries.mjs +60 -10
  515. package/scripts/check-test-layering.sh +1 -1
  516. package/scripts/fixtures/instances/hermes-sample/instance.json +3 -2
  517. package/scripts/fixtures/instances/legacy-openclaw-sample/instance.json +1 -1
  518. package/scripts/local-web-upgrade-test.README +4 -3
  519. package/scripts/local-web-upgrade-test.example.env +2 -2
  520. package/scripts/local-web-upgrade-test.sh +14 -1
  521. package/scripts/pack-gui-and-send-pi.sh +41 -0
  522. package/scripts/perf/instances.js +1 -1
  523. package/scripts/prune-open-core-dist.mjs +89 -2
  524. package/scripts/smoke/hermes-bootstrap.sh +5 -5
  525. package/templates/hermes-entrypoint.sh +19 -29
  526. package/apps/openwebui-container.yaml +0 -97
  527. package/apps/playwright-container.yaml +0 -126
  528. package/dependencies/jishushell-panel-0.6.5.tgz +0 -0
  529. package/dist/crypto-shim.d.ts +0 -1
  530. package/dist/crypto-shim.js +0 -2
  531. package/dist/crypto-shim.js.map +0 -1
  532. package/dist/routes/agent-apps.d.ts +0 -14
  533. package/dist/routes/agent-apps.js +0 -77
  534. package/dist/routes/agent-apps.js.map +0 -1
  535. package/dist/routes/internal.d.ts +0 -2
  536. package/dist/routes/internal.js +0 -55
  537. package/dist/routes/internal.js.map +0 -1
  538. package/dist/routes/openclaw-routes.d.ts +0 -22
  539. package/dist/routes/openclaw-routes.js +0 -1020
  540. package/dist/routes/openclaw-routes.js.map +0 -1
  541. package/dist/routes/runtime.d.ts +0 -15
  542. package/dist/routes/runtime.js +0 -76
  543. package/dist/routes/runtime.js.map +0 -1
  544. package/dist/services/agent-apps/catalog.d.ts +0 -33
  545. package/dist/services/agent-apps/catalog.js +0 -88
  546. package/dist/services/agent-apps/catalog.js.map +0 -1
  547. package/dist/services/agent-apps/index.d.ts +0 -36
  548. package/dist/services/agent-apps/index.js +0 -171
  549. package/dist/services/agent-apps/index.js.map +0 -1
  550. package/dist/services/agent-apps/installers/adapter-probes.d.ts +0 -49
  551. package/dist/services/agent-apps/installers/adapter-probes.js +0 -230
  552. package/dist/services/agent-apps/installers/adapter-probes.js.map +0 -1
  553. package/dist/services/agent-apps/installers/adapter.d.ts +0 -30
  554. package/dist/services/agent-apps/installers/adapter.js +0 -171
  555. package/dist/services/agent-apps/installers/adapter.js.map +0 -1
  556. package/dist/services/agent-apps/installers/registry-probe.js.map +0 -1
  557. package/dist/services/agent-apps/installers/shell-script.d.ts +0 -47
  558. package/dist/services/agent-apps/installers/shell-script.js +0 -488
  559. package/dist/services/agent-apps/installers/shell-script.js.map +0 -1
  560. package/dist/services/agent-apps/types.d.ts +0 -128
  561. package/dist/services/agent-apps/types.js +0 -17
  562. package/dist/services/agent-apps/types.js.map +0 -1
  563. package/dist/services/app/app-compiler.js +0 -185
  564. package/dist/services/app/app-compiler.js.map +0 -1
  565. package/dist/services/app/app-manager.d.ts +0 -184
  566. package/dist/services/app/app-manager.js +0 -2933
  567. package/dist/services/app/app-manager.js.map +0 -1
  568. package/dist/services/app/custom-manager.d.ts +0 -27
  569. package/dist/services/app/custom-manager.js +0 -382
  570. package/dist/services/app/custom-manager.js.map +0 -1
  571. package/dist/services/app/hermes-agent-manager.d.ts +0 -20
  572. package/dist/services/app/hermes-agent-manager.js +0 -299
  573. package/dist/services/app/hermes-agent-manager.js.map +0 -1
  574. package/dist/services/app/id-normalizer.d.ts +0 -27
  575. package/dist/services/app/id-normalizer.js +0 -77
  576. package/dist/services/app/id-normalizer.js.map +0 -1
  577. package/dist/services/app/ollama-manager.d.ts +0 -18
  578. package/dist/services/app/ollama-manager.js +0 -224
  579. package/dist/services/app/ollama-manager.js.map +0 -1
  580. package/dist/services/app/openclaw-manager.d.ts +0 -63
  581. package/dist/services/app/openclaw-manager.js +0 -1215
  582. package/dist/services/app/openclaw-manager.js.map +0 -1
  583. package/dist/services/app/paths.d.ts +0 -27
  584. package/dist/services/app/paths.js +0 -40
  585. package/dist/services/app/paths.js.map +0 -1
  586. package/dist/services/app/platform-transform.d.ts +0 -32
  587. package/dist/services/app/platform-transform.js +0 -65
  588. package/dist/services/app/platform-transform.js.map +0 -1
  589. package/dist/services/app/provide-resolver.d.ts +0 -29
  590. package/dist/services/app/provide-resolver.js +0 -135
  591. package/dist/services/app/provide-resolver.js.map +0 -1
  592. package/dist/services/app/registry.d.ts +0 -17
  593. package/dist/services/app/registry.js +0 -31
  594. package/dist/services/app/registry.js.map +0 -1
  595. package/dist/services/app/remote-spec.d.ts +0 -14
  596. package/dist/services/app/remote-spec.js +0 -58
  597. package/dist/services/app/remote-spec.js.map +0 -1
  598. package/dist/services/app/terminal-session-manager.js +0 -157
  599. package/dist/services/app/terminal-session-manager.js.map +0 -1
  600. package/dist/services/app/types.d.ts +0 -74
  601. package/dist/services/app/types.js +0 -16
  602. package/dist/services/app/types.js.map +0 -1
  603. package/dist/services/app-config-admin.d.ts +0 -17
  604. package/dist/services/app-config-admin.js +0 -177
  605. package/dist/services/app-config-admin.js.map +0 -1
  606. package/dist/services/app-create-from-installed.d.ts +0 -23
  607. package/dist/services/app-create-from-installed.js +0 -75
  608. package/dist/services/app-create-from-installed.js.map +0 -1
  609. package/dist/services/app-passwords.js +0 -173
  610. package/dist/services/app-passwords.js.map +0 -1
  611. package/dist/services/backup-admin.d.ts +0 -101
  612. package/dist/services/backup-admin.js +0 -259
  613. package/dist/services/backup-admin.js.map +0 -1
  614. package/dist/services/backup-manager.d.ts +0 -264
  615. package/dist/services/backup-manager.js +0 -2263
  616. package/dist/services/backup-manager.js.map +0 -1
  617. package/dist/services/backup-verify.js +0 -240
  618. package/dist/services/backup-verify.js.map +0 -1
  619. package/dist/services/capability-endpoint-validator.d.ts +0 -41
  620. package/dist/services/capability-endpoint-validator.js +0 -114
  621. package/dist/services/capability-endpoint-validator.js.map +0 -1
  622. package/dist/services/capability-health.d.ts +0 -16
  623. package/dist/services/capability-health.js +0 -121
  624. package/dist/services/capability-health.js.map +0 -1
  625. package/dist/services/capability-registry.d.ts +0 -29
  626. package/dist/services/capability-registry.js +0 -176
  627. package/dist/services/capability-registry.js.map +0 -1
  628. package/dist/services/capability-sync.d.ts +0 -4
  629. package/dist/services/capability-sync.js +0 -220
  630. package/dist/services/capability-sync.js.map +0 -1
  631. package/dist/services/connection-admin.d.ts +0 -74
  632. package/dist/services/connection-admin.js +0 -287
  633. package/dist/services/connection-admin.js.map +0 -1
  634. package/dist/services/connection-apply.d.ts +0 -91
  635. package/dist/services/connection-apply.js +0 -471
  636. package/dist/services/connection-apply.js.map +0 -1
  637. package/dist/services/connection-resolver.d.ts +0 -65
  638. package/dist/services/connection-resolver.js +0 -281
  639. package/dist/services/connection-resolver.js.map +0 -1
  640. package/dist/services/connection-transactor.d.ts +0 -39
  641. package/dist/services/connection-transactor.js +0 -354
  642. package/dist/services/connection-transactor.js.map +0 -1
  643. package/dist/services/core-manager.d.ts +0 -50
  644. package/dist/services/core-manager.js +0 -411
  645. package/dist/services/core-manager.js.map +0 -1
  646. package/dist/services/external-mounts.js +0 -187
  647. package/dist/services/external-mounts.js.map +0 -1
  648. package/dist/services/files-manager.d.ts +0 -252
  649. package/dist/services/files-manager.js +0 -1156
  650. package/dist/services/files-manager.js.map +0 -1
  651. package/dist/services/files-mounts.d.ts +0 -42
  652. package/dist/services/files-mounts.js +0 -207
  653. package/dist/services/files-mounts.js.map +0 -1
  654. package/dist/services/instance-admin.d.ts +0 -26
  655. package/dist/services/instance-admin.js +0 -218
  656. package/dist/services/instance-admin.js.map +0 -1
  657. package/dist/services/instance-manager.d.ts +0 -192
  658. package/dist/services/instance-manager.js +0 -1289
  659. package/dist/services/instance-manager.js.map +0 -1
  660. package/dist/services/macos-launchd.js +0 -312
  661. package/dist/services/macos-launchd.js.map +0 -1
  662. package/dist/services/nomad-manager.d.ts +0 -307
  663. package/dist/services/nomad-manager.js +0 -3958
  664. package/dist/services/nomad-manager.js.map +0 -1
  665. package/dist/services/organize/applier.js +0 -218
  666. package/dist/services/organize/applier.js.map +0 -1
  667. package/dist/services/organize/rules.js +0 -286
  668. package/dist/services/organize/rules.js.map +0 -1
  669. package/dist/services/organize/scanner.js +0 -366
  670. package/dist/services/organize/scanner.js.map +0 -1
  671. package/dist/services/organize/store.js +0 -82
  672. package/dist/services/organize/store.js.map +0 -1
  673. package/dist/services/plugin-installer.js +0 -128
  674. package/dist/services/plugin-installer.js.map +0 -1
  675. package/dist/services/process-manager.d.ts +0 -25
  676. package/dist/services/process-manager.js +0 -568
  677. package/dist/services/process-manager.js.map +0 -1
  678. package/dist/services/runtime/adapters/custom.d.ts +0 -20
  679. package/dist/services/runtime/adapters/custom.js +0 -188
  680. package/dist/services/runtime/adapters/custom.js.map +0 -1
  681. package/dist/services/runtime/adapters/hermes.d.ts +0 -204
  682. package/dist/services/runtime/adapters/hermes.js +0 -1684
  683. package/dist/services/runtime/adapters/hermes.js.map +0 -1
  684. package/dist/services/runtime/adapters/openclaw-mcporter.d.ts +0 -45
  685. package/dist/services/runtime/adapters/openclaw-mcporter.js +0 -108
  686. package/dist/services/runtime/adapters/openclaw-mcporter.js.map +0 -1
  687. package/dist/services/runtime/adapters/openclaw.d.ts +0 -426
  688. package/dist/services/runtime/adapters/openclaw.js +0 -3975
  689. package/dist/services/runtime/adapters/openclaw.js.map +0 -1
  690. package/dist/services/runtime/index.d.ts +0 -34
  691. package/dist/services/runtime/index.js +0 -51
  692. package/dist/services/runtime/index.js.map +0 -1
  693. package/dist/services/runtime/mcp-shims/anythingllm-shim.d.ts +0 -46
  694. package/dist/services/runtime/mcp-shims/anythingllm-shim.js +0 -281
  695. package/dist/services/runtime/mcp-shims/anythingllm-shim.js.map +0 -1
  696. package/dist/services/runtime/mcp-shims/drive-shim.js +0 -490
  697. package/dist/services/runtime/mcp-shims/drive-shim.js.map +0 -1
  698. package/dist/services/runtime/mcp-shims/jishukb-shim.d.ts +0 -48
  699. package/dist/services/runtime/mcp-shims/jishukb-shim.js +0 -723
  700. package/dist/services/runtime/mcp-shims/jishukb-shim.js.map +0 -1
  701. package/dist/services/runtime/mcp-shims/mcporter-lite.js +0 -276
  702. package/dist/services/runtime/mcp-shims/mcporter-lite.js.map +0 -1
  703. package/dist/services/runtime/migrations.d.ts +0 -23
  704. package/dist/services/runtime/migrations.js +0 -125
  705. package/dist/services/runtime/migrations.js.map +0 -1
  706. package/dist/services/runtime/registry.d.ts +0 -13
  707. package/dist/services/runtime/registry.js +0 -32
  708. package/dist/services/runtime/registry.js.map +0 -1
  709. package/dist/services/runtime-identity.d.ts +0 -13
  710. package/dist/services/runtime-identity.js +0 -166
  711. package/dist/services/runtime-identity.js.map +0 -1
  712. package/dist/services/runtime-repair.d.ts +0 -52
  713. package/dist/services/runtime-repair.js +0 -352
  714. package/dist/services/runtime-repair.js.map +0 -1
  715. package/dist/services/setup-manager.d.ts +0 -158
  716. package/dist/services/setup-manager.js +0 -2740
  717. package/dist/services/setup-manager.js.map +0 -1
  718. package/dist/services/suggestions.d.ts +0 -27
  719. package/dist/services/suggestions.js +0 -133
  720. package/dist/services/suggestions.js.map +0 -1
  721. package/dist/services/system-monitor.js +0 -79
  722. package/dist/services/system-monitor.js.map +0 -1
  723. package/dist/services/system-ollama-provider.d.ts +0 -14
  724. package/dist/services/system-ollama-provider.js +0 -125
  725. package/dist/services/system-ollama-provider.js.map +0 -1
  726. package/dist/services/system-reconciler.d.ts +0 -72
  727. package/dist/services/system-reconciler.js +0 -600
  728. package/dist/services/system-reconciler.js.map +0 -1
  729. package/dist/services/task-registry.d.ts +0 -44
  730. package/dist/services/task-registry.js +0 -76
  731. package/dist/services/task-registry.js.map +0 -1
  732. package/dist/services/types-shim.d.ts +0 -16
  733. package/dist/services/types-shim.js +0 -2
  734. package/dist/services/types-shim.js.map +0 -1
  735. package/dist/services/update-manager.d.ts +0 -47
  736. package/dist/services/update-manager.js +0 -351
  737. package/dist/services/update-manager.js.map +0 -1
  738. package/dist/services/webdav/server.d.ts +0 -24
  739. package/dist/services/webdav/server.js +0 -420
  740. package/dist/services/webdav/server.js.map +0 -1
  741. package/dist/services/webdav/xml-builder.js.map +0 -1
  742. package/dist/services/workspace-builder.d.ts +0 -29
  743. package/dist/services/workspace-builder.js +0 -188
  744. package/dist/services/workspace-builder.js.map +0 -1
  745. package/node_modules/@fastify/static/.github/stale.yml +0 -21
  746. package/node_modules/@isaacs/cliui/LICENSE.md +0 -63
  747. package/node_modules/@isaacs/cliui/README.md +0 -151
  748. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.d.ts +0 -4
  749. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.d.ts.map +0 -1
  750. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.js +0 -16
  751. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-regex/index.js.map +0 -1
  752. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.d.ts +0 -34
  753. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.d.ts.map +0 -1
  754. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.js +0 -170
  755. package/node_modules/@isaacs/cliui/dist/commonjs/ansi-styles/index.js.map +0 -1
  756. package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.d.ts +0 -6
  757. package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.d.ts.map +0 -1
  758. package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.js +0 -307
  759. package/node_modules/@isaacs/cliui/dist/commonjs/eastasianwidth/index.js.map +0 -1
  760. package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.d.ts +0 -2
  761. package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.d.ts.map +0 -1
  762. package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.js +0 -7
  763. package/node_modules/@isaacs/cliui/dist/commonjs/emoji-regex/index.js.map +0 -1
  764. package/node_modules/@isaacs/cliui/dist/commonjs/index.d.ts +0 -41
  765. package/node_modules/@isaacs/cliui/dist/commonjs/index.d.ts.map +0 -1
  766. package/node_modules/@isaacs/cliui/dist/commonjs/index.js +0 -322
  767. package/node_modules/@isaacs/cliui/dist/commonjs/index.js.map +0 -1
  768. package/node_modules/@isaacs/cliui/dist/commonjs/index.min.js +0 -12
  769. package/node_modules/@isaacs/cliui/dist/commonjs/index.min.js.map +0 -7
  770. package/node_modules/@isaacs/cliui/dist/commonjs/package.json +0 -3
  771. package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.d.ts +0 -5
  772. package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.d.ts.map +0 -1
  773. package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.js +0 -49
  774. package/node_modules/@isaacs/cliui/dist/commonjs/string-width/index.js.map +0 -1
  775. package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.d.ts +0 -2
  776. package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.d.ts.map +0 -1
  777. package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.js +0 -8
  778. package/node_modules/@isaacs/cliui/dist/commonjs/strip-ansi/index.js.map +0 -1
  779. package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.d.ts +0 -7
  780. package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.d.ts.map +0 -1
  781. package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.js +0 -176
  782. package/node_modules/@isaacs/cliui/dist/commonjs/wrap-ansi/index.js.map +0 -1
  783. package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.d.ts +0 -4
  784. package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.d.ts.map +0 -1
  785. package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.js +0 -12
  786. package/node_modules/@isaacs/cliui/dist/esm/ansi-regex/index.js.map +0 -1
  787. package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.d.ts +0 -34
  788. package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.d.ts.map +0 -1
  789. package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.js +0 -167
  790. package/node_modules/@isaacs/cliui/dist/esm/ansi-styles/index.js.map +0 -1
  791. package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.d.ts +0 -6
  792. package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.d.ts.map +0 -1
  793. package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.js +0 -299
  794. package/node_modules/@isaacs/cliui/dist/esm/eastasianwidth/index.js.map +0 -1
  795. package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.d.ts +0 -2
  796. package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.d.ts.map +0 -1
  797. package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.js +0 -3
  798. package/node_modules/@isaacs/cliui/dist/esm/emoji-regex/index.js.map +0 -1
  799. package/node_modules/@isaacs/cliui/dist/esm/index.d.ts +0 -41
  800. package/node_modules/@isaacs/cliui/dist/esm/index.d.ts.map +0 -1
  801. package/node_modules/@isaacs/cliui/dist/esm/index.js +0 -317
  802. package/node_modules/@isaacs/cliui/dist/esm/index.js.map +0 -1
  803. package/node_modules/@isaacs/cliui/dist/esm/index.min.js +0 -12
  804. package/node_modules/@isaacs/cliui/dist/esm/index.min.js.map +0 -7
  805. package/node_modules/@isaacs/cliui/dist/esm/package.json +0 -3
  806. package/node_modules/@isaacs/cliui/dist/esm/string-width/index.d.ts +0 -5
  807. package/node_modules/@isaacs/cliui/dist/esm/string-width/index.d.ts.map +0 -1
  808. package/node_modules/@isaacs/cliui/dist/esm/string-width/index.js +0 -46
  809. package/node_modules/@isaacs/cliui/dist/esm/string-width/index.js.map +0 -1
  810. package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.d.ts +0 -2
  811. package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.d.ts.map +0 -1
  812. package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.js +0 -4
  813. package/node_modules/@isaacs/cliui/dist/esm/strip-ansi/index.js.map +0 -1
  814. package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.d.ts +0 -7
  815. package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.d.ts.map +0 -1
  816. package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.js +0 -172
  817. package/node_modules/@isaacs/cliui/dist/esm/wrap-ansi/index.js.map +0 -1
  818. package/node_modules/@isaacs/cliui/package.json +0 -163
  819. package/node_modules/content-disposition/HISTORY.md +0 -60
  820. package/node_modules/cross-spawn/LICENSE +0 -21
  821. package/node_modules/cross-spawn/README.md +0 -89
  822. package/node_modules/cross-spawn/index.js +0 -39
  823. package/node_modules/cross-spawn/lib/enoent.js +0 -59
  824. package/node_modules/cross-spawn/lib/parse.js +0 -91
  825. package/node_modules/cross-spawn/lib/util/escape.js +0 -47
  826. package/node_modules/cross-spawn/lib/util/readShebang.js +0 -23
  827. package/node_modules/cross-spawn/lib/util/resolveCommand.js +0 -52
  828. package/node_modules/cross-spawn/package.json +0 -73
  829. package/node_modules/foreground-child/LICENSE +0 -15
  830. package/node_modules/foreground-child/README.md +0 -128
  831. package/node_modules/foreground-child/dist/commonjs/all-signals.d.ts +0 -2
  832. package/node_modules/foreground-child/dist/commonjs/all-signals.d.ts.map +0 -1
  833. package/node_modules/foreground-child/dist/commonjs/all-signals.js +0 -58
  834. package/node_modules/foreground-child/dist/commonjs/all-signals.js.map +0 -1
  835. package/node_modules/foreground-child/dist/commonjs/index.d.ts +0 -58
  836. package/node_modules/foreground-child/dist/commonjs/index.d.ts.map +0 -1
  837. package/node_modules/foreground-child/dist/commonjs/index.js +0 -123
  838. package/node_modules/foreground-child/dist/commonjs/index.js.map +0 -1
  839. package/node_modules/foreground-child/dist/commonjs/package.json +0 -3
  840. package/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts +0 -6
  841. package/node_modules/foreground-child/dist/commonjs/proxy-signals.d.ts.map +0 -1
  842. package/node_modules/foreground-child/dist/commonjs/proxy-signals.js +0 -38
  843. package/node_modules/foreground-child/dist/commonjs/proxy-signals.js.map +0 -1
  844. package/node_modules/foreground-child/dist/commonjs/watchdog.d.ts +0 -10
  845. package/node_modules/foreground-child/dist/commonjs/watchdog.d.ts.map +0 -1
  846. package/node_modules/foreground-child/dist/commonjs/watchdog.js +0 -50
  847. package/node_modules/foreground-child/dist/commonjs/watchdog.js.map +0 -1
  848. package/node_modules/foreground-child/dist/esm/all-signals.d.ts +0 -2
  849. package/node_modules/foreground-child/dist/esm/all-signals.d.ts.map +0 -1
  850. package/node_modules/foreground-child/dist/esm/all-signals.js +0 -52
  851. package/node_modules/foreground-child/dist/esm/all-signals.js.map +0 -1
  852. package/node_modules/foreground-child/dist/esm/index.d.ts +0 -58
  853. package/node_modules/foreground-child/dist/esm/index.d.ts.map +0 -1
  854. package/node_modules/foreground-child/dist/esm/index.js +0 -115
  855. package/node_modules/foreground-child/dist/esm/index.js.map +0 -1
  856. package/node_modules/foreground-child/dist/esm/package.json +0 -3
  857. package/node_modules/foreground-child/dist/esm/proxy-signals.d.ts +0 -6
  858. package/node_modules/foreground-child/dist/esm/proxy-signals.d.ts.map +0 -1
  859. package/node_modules/foreground-child/dist/esm/proxy-signals.js +0 -34
  860. package/node_modules/foreground-child/dist/esm/proxy-signals.js.map +0 -1
  861. package/node_modules/foreground-child/dist/esm/watchdog.d.ts +0 -10
  862. package/node_modules/foreground-child/dist/esm/watchdog.d.ts.map +0 -1
  863. package/node_modules/foreground-child/dist/esm/watchdog.js +0 -46
  864. package/node_modules/foreground-child/dist/esm/watchdog.js.map +0 -1
  865. package/node_modules/foreground-child/package.json +0 -106
  866. package/node_modules/glob/dist/esm/bin.d.mts +0 -3
  867. package/node_modules/glob/dist/esm/bin.d.mts.map +0 -1
  868. package/node_modules/glob/dist/esm/bin.mjs +0 -346
  869. package/node_modules/glob/dist/esm/bin.mjs.map +0 -1
  870. package/node_modules/isexe/.npmignore +0 -2
  871. package/node_modules/isexe/LICENSE +0 -15
  872. package/node_modules/isexe/README.md +0 -51
  873. package/node_modules/isexe/index.js +0 -57
  874. package/node_modules/isexe/mode.js +0 -41
  875. package/node_modules/isexe/package.json +0 -31
  876. package/node_modules/isexe/test/basic.js +0 -221
  877. package/node_modules/isexe/windows.js +0 -42
  878. package/node_modules/jackspeak/LICENSE.md +0 -55
  879. package/node_modules/jackspeak/README.md +0 -394
  880. package/node_modules/jackspeak/dist/commonjs/index.d.ts +0 -323
  881. package/node_modules/jackspeak/dist/commonjs/index.d.ts.map +0 -1
  882. package/node_modules/jackspeak/dist/commonjs/index.js +0 -944
  883. package/node_modules/jackspeak/dist/commonjs/index.js.map +0 -1
  884. package/node_modules/jackspeak/dist/commonjs/index.min.js +0 -33
  885. package/node_modules/jackspeak/dist/commonjs/index.min.js.map +0 -7
  886. package/node_modules/jackspeak/dist/commonjs/package.json +0 -3
  887. package/node_modules/jackspeak/dist/esm/index.d.ts +0 -323
  888. package/node_modules/jackspeak/dist/esm/index.d.ts.map +0 -1
  889. package/node_modules/jackspeak/dist/esm/index.js +0 -936
  890. package/node_modules/jackspeak/dist/esm/index.js.map +0 -1
  891. package/node_modules/jackspeak/dist/esm/index.min.js +0 -33
  892. package/node_modules/jackspeak/dist/esm/index.min.js.map +0 -7
  893. package/node_modules/jackspeak/dist/esm/package.json +0 -3
  894. package/node_modules/jackspeak/package.json +0 -115
  895. package/node_modules/jishushell-panel/output/public/assets/ApiKeyField-D1i7zWXR.js +0 -1
  896. package/node_modules/jishushell-panel/output/public/assets/Dashboard-sWIvL43F.js +0 -1
  897. package/node_modules/jishushell-panel/output/public/assets/HermesChatPanel-DQ8RyvQY.js +0 -1
  898. package/node_modules/jishushell-panel/output/public/assets/HermesConfigForm-tIbPP1sB.js +0 -4
  899. package/node_modules/jishushell-panel/output/public/assets/InitPassword-C3Slq3Dd.js +0 -1
  900. package/node_modules/jishushell-panel/output/public/assets/InstanceDetail-7JqY9tq4.js +0 -92
  901. package/node_modules/jishushell-panel/output/public/assets/Login-BXLDJlQN.js +0 -1
  902. package/node_modules/jishushell-panel/output/public/assets/NewInstance-dLc5Xrpx.js +0 -1
  903. package/node_modules/jishushell-panel/output/public/assets/ProviderRecommendations-DIAXxesl.js +0 -1
  904. package/node_modules/jishushell-panel/output/public/assets/Settings-Bd5utbBh.js +0 -1
  905. package/node_modules/jishushell-panel/output/public/assets/Setup-Yn9_20FL.js +0 -1
  906. package/node_modules/jishushell-panel/output/public/assets/WeixinLoginPanel-C21doQTJ.js +0 -9
  907. package/node_modules/jishushell-panel/output/public/assets/index-CCkaIEjn.js +0 -20
  908. package/node_modules/jishushell-panel/output/public/assets/index-D7qxy-Vh.css +0 -1
  909. package/node_modules/jishushell-panel/output/public/assets/registry-B2ZQZXWL.js +0 -2
  910. package/node_modules/jishushell-panel/output/public/assets/usePolling-BFZm4do_.js +0 -1
  911. package/node_modules/jishushell-panel/output/public/assets/vendor-i18n-DqPtOicc.js +0 -9
  912. package/node_modules/jishushell-panel/output/public/assets/vendor-react-DW5juQin.js +0 -59
  913. package/node_modules/package-json-from-dist/LICENSE.md +0 -63
  914. package/node_modules/package-json-from-dist/README.md +0 -110
  915. package/node_modules/package-json-from-dist/dist/commonjs/index.d.ts +0 -89
  916. package/node_modules/package-json-from-dist/dist/commonjs/index.d.ts.map +0 -1
  917. package/node_modules/package-json-from-dist/dist/commonjs/index.js +0 -134
  918. package/node_modules/package-json-from-dist/dist/commonjs/index.js.map +0 -1
  919. package/node_modules/package-json-from-dist/dist/commonjs/package.json +0 -3
  920. package/node_modules/package-json-from-dist/dist/esm/index.d.ts +0 -89
  921. package/node_modules/package-json-from-dist/dist/esm/index.d.ts.map +0 -1
  922. package/node_modules/package-json-from-dist/dist/esm/index.js +0 -129
  923. package/node_modules/package-json-from-dist/dist/esm/index.js.map +0 -1
  924. package/node_modules/package-json-from-dist/dist/esm/package.json +0 -3
  925. package/node_modules/package-json-from-dist/package.json +0 -68
  926. package/node_modules/path-key/index.d.ts +0 -40
  927. package/node_modules/path-key/index.js +0 -16
  928. package/node_modules/path-key/license +0 -9
  929. package/node_modules/path-key/package.json +0 -39
  930. package/node_modules/path-key/readme.md +0 -61
  931. package/node_modules/safe-buffer/LICENSE +0 -21
  932. package/node_modules/safe-buffer/README.md +0 -584
  933. package/node_modules/safe-buffer/index.d.ts +0 -187
  934. package/node_modules/safe-buffer/index.js +0 -65
  935. package/node_modules/safe-buffer/package.json +0 -51
  936. package/node_modules/shebang-command/index.js +0 -19
  937. package/node_modules/shebang-command/license +0 -9
  938. package/node_modules/shebang-command/package.json +0 -34
  939. package/node_modules/shebang-command/readme.md +0 -34
  940. package/node_modules/shebang-regex/index.d.ts +0 -22
  941. package/node_modules/shebang-regex/index.js +0 -2
  942. package/node_modules/shebang-regex/license +0 -9
  943. package/node_modules/shebang-regex/package.json +0 -35
  944. package/node_modules/shebang-regex/readme.md +0 -33
  945. package/node_modules/signal-exit/LICENSE.txt +0 -16
  946. package/node_modules/signal-exit/README.md +0 -74
  947. package/node_modules/signal-exit/dist/cjs/browser.d.ts +0 -12
  948. package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +0 -1
  949. package/node_modules/signal-exit/dist/cjs/browser.js +0 -10
  950. package/node_modules/signal-exit/dist/cjs/browser.js.map +0 -1
  951. package/node_modules/signal-exit/dist/cjs/index.d.ts +0 -48
  952. package/node_modules/signal-exit/dist/cjs/index.d.ts.map +0 -1
  953. package/node_modules/signal-exit/dist/cjs/index.js +0 -279
  954. package/node_modules/signal-exit/dist/cjs/index.js.map +0 -1
  955. package/node_modules/signal-exit/dist/cjs/package.json +0 -3
  956. package/node_modules/signal-exit/dist/cjs/signals.d.ts +0 -29
  957. package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +0 -1
  958. package/node_modules/signal-exit/dist/cjs/signals.js +0 -42
  959. package/node_modules/signal-exit/dist/cjs/signals.js.map +0 -1
  960. package/node_modules/signal-exit/dist/mjs/browser.d.ts +0 -12
  961. package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +0 -1
  962. package/node_modules/signal-exit/dist/mjs/browser.js +0 -4
  963. package/node_modules/signal-exit/dist/mjs/browser.js.map +0 -1
  964. package/node_modules/signal-exit/dist/mjs/index.d.ts +0 -48
  965. package/node_modules/signal-exit/dist/mjs/index.d.ts.map +0 -1
  966. package/node_modules/signal-exit/dist/mjs/index.js +0 -275
  967. package/node_modules/signal-exit/dist/mjs/index.js.map +0 -1
  968. package/node_modules/signal-exit/dist/mjs/package.json +0 -3
  969. package/node_modules/signal-exit/dist/mjs/signals.d.ts +0 -29
  970. package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +0 -1
  971. package/node_modules/signal-exit/dist/mjs/signals.js +0 -39
  972. package/node_modules/signal-exit/dist/mjs/signals.js.map +0 -1
  973. package/node_modules/signal-exit/package.json +0 -106
  974. package/node_modules/which/CHANGELOG.md +0 -166
  975. package/node_modules/which/LICENSE +0 -15
  976. package/node_modules/which/README.md +0 -54
  977. package/node_modules/which/bin/node-which +0 -52
  978. package/node_modules/which/package.json +0 -43
  979. package/node_modules/which/which.js +0 -125
  980. package/scripts/check-adapter-isolation.ts +0 -293
  981. /package/dist/services/{app → app-common}/app-compiler.d.ts +0 -0
  982. /package/dist/services/{app → app-common}/terminal-session-manager.d.ts +0 -0
  983. /package/dist/services/{backup-verify.d.ts → backup/backup-verify.d.ts} +0 -0
  984. /package/dist/services/{external-mounts.d.ts → files/external-mounts.d.ts} +0 -0
  985. /package/dist/services/{organize → files/organize}/applier.d.ts +0 -0
  986. /package/dist/services/{organize → files/organize}/rules.d.ts +0 -0
  987. /package/dist/services/{organize → files/organize}/scanner.d.ts +0 -0
  988. /package/dist/services/{organize → files/organize}/store.d.ts +0 -0
  989. /package/dist/services/{webdav → files/webdav}/xml-builder.d.ts +0 -0
  990. /package/dist/services/{webdav → files/webdav}/xml-builder.js +0 -0
  991. /package/dist/services/{app-passwords.d.ts → instances/passwords.d.ts} +0 -0
  992. /package/dist/services/{agent-apps → integrations/installable}/installers/registry-probe.d.ts +0 -0
  993. /package/dist/services/{agent-apps → integrations/installable}/installers/registry-probe.js +0 -0
  994. /package/dist/services/{runtime/mcp-shims → integrations/openclaw}/drive-shim.d.ts +0 -0
  995. /package/dist/services/{runtime/mcp-shims → integrations/openclaw}/mcporter-lite.d.ts +0 -0
  996. /package/dist/services/{plugin-installer.d.ts → setup/plugin-installer.d.ts} +0 -0
  997. /package/dist/services/{macos-launchd.d.ts → system/macos-launchd.d.ts} +0 -0
  998. /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, restartNomadJobInstance, startNomadJobInstance, stopNomadJobInstance, } from "../services/nomad-manager.js";
6
- import { acknowledgeRuntimeRestartAdvisory } from "../services/system-reconciler.js";
7
- import { getTask, subscribeTask } from "../services/task-registry.js";
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 === "--runtime" || arg.startsWith("--runtime=")) {
230
- const result = readFlagValue(args, i, "--runtime");
231
- parsed.runtime = result.value;
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 === "--app-spec" || arg.startsWith("--app-spec=")) {
240
- const result = readFlagValue(args, i, "--app-spec");
241
- parsed.appSpecPath = result.value;
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 === "--app-spec-url" || arg.startsWith("--app-spec-url=")) {
245
- const result = readFlagValue(args, i, "--app-spec-url");
246
- parsed.appSpecUrl = result.value;
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 = resolveProvidePort(spec, provide);
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/app-manager.js");
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
- let resp;
417
- try {
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 { getApp, getInstance } = await import("../services/app/app-manager.js");
453
- const app = getApp(id);
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 requestedAppId;
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
- requestedAppId = value;
504
+ requestedInstanceId = value;
478
505
  break;
479
506
  }
480
507
  const yamlText = await loadInstallYaml(installSource);
481
- const { installApp } = await import("../services/app/app-manager.js");
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 installApp(yamlText, requestedAppId, installOptions)
488
- : await installApp(yamlText, requestedAppId);
489
- const installModeLabel = result.manifest.install_mode === "instance-dir" ? "instance" : "app";
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/app-manager.js");
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(" App Provides"));
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.appId) ?? [];
545
+ const items = grouped.get(provide.instanceId) ?? [];
520
546
  items.push(provide);
521
- grouped.set(provide.appId, items);
547
+ grouped.set(provide.instanceId, items);
522
548
  }
523
- for (const [appId, items] of grouped.entries()) {
524
- log(` ${c.cyan(appId)}`);
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/connection-admin.js");
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}` : " App Providers"));
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(appId, args) {
587
- const { getConnectionSummary, getConnectionStatus } = await import("../services/connection-admin.js");
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(appId),
590
- getConnectionStatus(appId),
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("App:")} ${c.cyan(appId)}`);
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.appId = positional[0];
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.appId || !parsed.slot || !parsed.providerId || !parsed.capability) {
665
- throw new Error("Usage: jishushell app bind <app-id> --slot <slot> --provider <provider-app-id> --capability <capability>");
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/connection-admin.js");
693
+ const { bindConnection } = await import("../services/connections/admin.js");
668
694
  await bindConnection({
669
- appId: parsed.appId,
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.appId}:${parsed.slot} to ${parsed.providerId}/${parsed.capability}`));
701
+ log(c.green(` ✓ Bound ${parsed.instanceId}:${parsed.slot} to ${parsed.providerId}/${parsed.capability}`));
676
702
  }
677
- async function cmdUnbind(appId, args) {
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 <app-id> --slot <slot>");
706
+ throw new Error("Usage: jishushell app unbind <instance-id> --slot <slot>");
681
707
  }
682
- const { unbindConnection } = await import("../services/connection-admin.js");
683
- await unbindConnection({ appId, slot });
684
- log(c.green(` ✓ Unbound ${appId}:${slot}`));
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 appId = args[1];
689
- if (!subcmd || !appId) {
690
- throw new Error("Usage: jishushell app config <get|set|meta> <app-id> [key=value]");
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/app-config-admin.js");
694
- const config = await readAppConfig(appId);
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/app-config-admin.js");
700
- const meta = getAppConfigMeta(appId);
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 <app-id> <key=value>");
733
+ throw new Error("Usage: jishushell app config set <instance-id> <key=value>");
708
734
  }
709
- const { setAppConfigValue } = await import("../services/app-config-admin.js");
710
- await setAppConfigValue(appId, assignment);
711
- log(c.green(` ✓ Updated config for ${appId}`));
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> <app-id> [key=value]");
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 { uninstallAppTask, getApp, getInstance } = await import("../services/app/app-manager.js");
718
- if (getApp(id)) {
719
- await runManagedUninstallTask((exec) => exec ? uninstallAppTask(id, exec) : uninstallAppTask(id), `Uninstalled: ${id}`, getCliSudoState(args));
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/instance-manager.js");
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 { uninstallAppTask } = await import("../services/app/app-manager.js");
741
- const { deleteInstance } = await import("../services/instance-manager.js");
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.install_mode === "legacy-instance") {
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
- ? uninstallAppTask(item.id, { sudoPassword: sudoState.password })
755
- : uninstallAppTask(item.id);
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 = uninstallAppTask(item.id, { sudoPassword: sudoState.password });
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 = uninstallAppTask(item.id, { sudoPassword: sudoState.password });
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 cmdCreateFromInstalledApp(appId, instanceId, name, description = "") {
803
- const { createFromInstalledApp, isAppCreateFromInstalledError, } = await import("../services/app-create-from-installed.js");
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 createFromInstalledApp({
806
- appId,
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 (isAppCreateFromInstalledError(e)) {
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(` ✓ Created application "${instanceId}" from app "${appId}"`));
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.fromAppId) {
836
- if (parsed.runtime || parsed.appSpecPath || parsed.appSpecUrl) {
837
- throw new Error("app create --from cannot be combined with --runtime, --app-spec, or --app-spec-url");
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 cmdCreateFromInstalledApp(parsed.fromAppId, parsed.id, parsed.name, parsed.description || "");
867
+ await cmdCloneInstance(parsed.cloneFromInstanceId, parsed.id, parsed.name, parsed.description || "");
840
868
  return;
841
869
  }
842
- const { createInstance } = await import("../services/instance-admin.js");
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.runtime ? { agentType: parsed.runtime } : {}),
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 cmdCopy(sourceId) {
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 { getApp, startAppTask } = await import("../services/app/app-manager.js");
861
- const app = getApp(appId);
862
- if (app) {
863
- await runManagedAppTask(() => startAppTask(appId), `Started: ${app.spec.name || readInstanceMeta(appId)?.name || appId}`);
864
- await acknowledgeRuntimeRestartAdvisory(appId);
865
- return;
866
- }
867
- const result = await startNomadJobInstance(appId);
868
- if (result.ok) {
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
- log(c.red(` ✗ ${result.error || "Start failed"}`));
874
- process.exitCode = 1;
892
+ await runLegacyRawRuntimeStart(instanceId);
875
893
  }
876
- async function cmdStop(appId, purge) {
894
+ async function cmdStop(instanceId, purge) {
877
895
  ensureNomadToken();
878
- const { getApp, stopAppTask } = await import("../services/app/app-manager.js");
879
- const app = getApp(appId);
880
- if (app) {
881
- await runManagedAppTask(() => stopAppTask(appId, purge), `Stopped: ${app.spec.name || readInstanceMeta(appId)?.name || appId}${purge ? " (purged)" : ""}`);
882
- return;
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
- log(c.red(` ✗ ${result.error || "Stop failed"}`));
890
- process.exitCode = 1;
904
+ await runLegacyRawRuntimeStop(instanceId, purge);
891
905
  }
892
- async function cmdRestart(appId) {
906
+ async function cmdRestart(instanceId) {
893
907
  ensureNomadToken();
894
- const { getApp, restartAppTask } = await import("../services/app/app-manager.js");
895
- const app = getApp(appId);
896
- if (app) {
897
- await runManagedAppTask(() => restartAppTask(appId), `Restarted: ${app.spec.name || readInstanceMeta(appId)?.name || appId}`);
898
- await acknowledgeRuntimeRestartAdvisory(appId);
899
- return;
900
- }
901
- const result = await restartNomadJobInstance(appId);
902
- if (result.ok) {
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
- log(c.red(` ✗ ${result.error || "Restart failed"}`));
908
- process.exitCode = 1;
919
+ await runLegacyRawRuntimeRestart(instanceId);
909
920
  }
910
- async function cmdStatus(appId, json) {
921
+ async function cmdStatus(instanceId, json) {
911
922
  ensureNomadToken();
912
- const { getApp, getAppStatus, getInstance } = await import("../services/app/app-manager.js");
913
- const app = getApp(appId);
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(appId);
926
+ const instance = getInstance(instanceId);
916
927
  if (!instance) {
917
- log(c.red(` ✗ App/instance "${appId}" not found.`));
928
+ log(c.red(` ✗ Instance "${instanceId}" not found.`));
918
929
  process.exitCode = 1;
919
930
  return;
920
931
  }
921
- const status = await getInstanceStatus(appId);
932
+ const status = await getInstanceStatus(instanceId);
922
933
  if (json) {
923
- console.log(JSON.stringify({ id: appId, name: instance.name, ...status }, null, 2));
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 || appId)} ${c.dim(`(${appId})`)}`);
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 getAppStatus(appId);
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: appId, ...status, tasks: enriched.tasks, provides: enriched.provides }, null, 2));
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("App:")} ${c.cyan(appId)}`);
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(appId, args) {
991
+ async function cmdLogs(instanceId, args) {
981
992
  ensureNomadToken();
982
- const { getApp, getAppLogs } = await import("../services/app/app-manager.js");
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 = getApp(appId)
987
- ? await getAppLogs(appId, taskArg ?? "", lines, logType)
988
- : await getInstanceLogs(appId, lines, logType);
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
- async function cmdExec(appId, command) {
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 { getApp, execInApp } = await import("../services/app/app-manager.js");
998
- const result = getApp(appId)
999
- ? await execInApp(appId, command)
1000
- : await execInInstance(appId, command);
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 dashDash = rest.indexOf("--");
1068
- const execCmd = dashDash >= 0 ? rest.slice(dashDash + 1) : [];
1069
- if (execCmd.length === 0) {
1070
- console.error("Usage: jishushell app exec <app-id> -- <command...>");
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], execCmd);
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> App 统一管理";
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> [--runtime <runtime>] 创建 App(默认 runtime=openclaw)
1104
- create <id> --name <name> --from <app-id> 从已安装 App 派生新 App
1105
- list [--json] 列出统一受管列表(apps 下已安装应用 + instances 下遗留实例)
1106
- provides [--json] 列出已安装 App 声明/注册的能力
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 <app-id> [--json] 查看 App 依赖能力与绑定状态
1109
- bind <app-id> --slot <slot> --provider <id> --capability <capability>
1110
- 绑定 App 依赖能力到 provider
1111
- unbind <app-id> --slot <slot> 解除 App 能力绑定
1112
- config get <app-id> 查看 App 配置
1113
- config set <app-id> <key=value> 修改 App 配置字段
1114
- config meta <app-id> 查看 App 配置元信息
1115
- show <id> 查看 App 或实例详情(JSON)
1116
- install <yaml-file|https-url|builtin-id> [app-id] [--sudo-password <password>]
1117
- 从本地、HTTPS 或内置模板安装 App,可选指定安装 id
1118
- uninstall <app-id> [--sudo-password <password>] 卸载单个 App 或实例(停止 + 删除目录)
1119
- uninstall --all [--sudo-password <password>] 卸载全部 App 与实例
1120
- copy <app-id> 复制 App 实例(singleInstance 不可 copy)
1121
- start <id> 启动 App 或实例
1122
- stop <id> [--purge] 停止 App 或实例(--purge 同时清除 Nomad job)
1123
- restart <id> 重启 App 或实例
1124
- status <id> [--json] 查看 App 或实例状态
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...> 在 App 或实例内执行命令
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 --runtime hermes
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