@dsh-workbench/core 0.1.15 → 0.1.17

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 (74) hide show
  1. package/README.md +19 -0
  2. package/bin/dsh-workbench +5 -1
  3. package/client.js +660 -128
  4. package/cordis.patch.yml +22 -0
  5. package/dist/client/client.body.js +660 -128
  6. package/dist/client/index.js +660 -128
  7. package/dist/host/index.js +1733 -324
  8. package/dist/types/app/client.d.ts +124 -9
  9. package/dist/types/app/layouts/market/add-module-text.d.ts +2 -0
  10. package/dist/types/app/layouts/market/use-add-module.d.ts +4 -3
  11. package/dist/types/app/layouts/market/use-module-versions.d.ts +2 -0
  12. package/dist/types/app/layouts/rightbar/MarketView.d.ts +3 -1
  13. package/dist/types/app/layouts/rightbar/__tests__/market-rows-plugins.test.d.ts +1 -0
  14. package/dist/types/app/layouts/rightbar/market-mock.d.ts +9 -0
  15. package/dist/types/app/layouts/rightbar/market-plugin-rows.d.ts +8 -0
  16. package/dist/types/app/layouts/rightbar/market-rows.d.ts +14 -3
  17. package/dist/types/app/layouts/rightbar/registry.d.ts +0 -1
  18. package/dist/types/app/units/__tests__/manifests.test.d.ts +1 -0
  19. package/dist/types/app/units/fixture-unit-mock.d.ts +3 -3
  20. package/dist/types/app/units/host.d.ts +2 -2
  21. package/dist/types/app/units/manifests.d.ts +5 -0
  22. package/dist/types/app/units/registry.d.ts +10 -2
  23. package/dist/types/modules/panels/__tests__/market-env.test.d.ts +1 -0
  24. package/dist/types/modules/panels/__tests__/market-plugin.test.d.ts +1 -0
  25. package/dist/types/modules/panels/__tests__/market-route.test.d.ts +1 -0
  26. package/dist/types/modules/panels/__tests__/plugin-actions.test.d.ts +1 -0
  27. package/dist/types/modules/panels/__tests__/plugin-ledger.test.d.ts +1 -0
  28. package/dist/types/modules/panels/__tests__/plugin-section.test.d.ts +1 -0
  29. package/dist/types/modules/panels/__tests__/scope.test.d.ts +1 -0
  30. package/dist/types/modules/panels/__tests__/service-release.test.d.ts +1 -0
  31. package/dist/types/modules/panels/index.d.ts +2 -2
  32. package/dist/types/modules/panels/model/config.d.ts +27 -9
  33. package/dist/types/modules/panels/model/market-dispatch.d.ts +9 -0
  34. package/dist/types/modules/panels/model/market-env.d.ts +20 -0
  35. package/dist/types/modules/panels/model/market-route.d.ts +26 -0
  36. package/dist/types/modules/panels/model/market-types.d.ts +71 -0
  37. package/dist/types/modules/panels/model/market.d.ts +7 -66
  38. package/dist/types/modules/panels/model/plugin-actions.d.ts +50 -0
  39. package/dist/types/modules/panels/model/plugin-ledger.d.ts +22 -0
  40. package/dist/types/modules/panels/model/plugin-name.d.ts +8 -0
  41. package/dist/types/modules/panels/model/plugin-name.test.d.ts +1 -0
  42. package/dist/types/modules/panels/model/plugin-section.d.ts +13 -0
  43. package/dist/types/modules/panels/model/service.d.ts +8 -6
  44. package/dist/types/shared/api/bundle-install.d.ts +8 -1
  45. package/dist/types/shared/api/host/__tests__/registry-declaration.test.d.ts +1 -0
  46. package/dist/types/shared/api/host/__tests__/unit-roster-facts.test.d.ts +1 -0
  47. package/dist/types/shared/api/host/bundle-routes.d.ts +1 -0
  48. package/dist/types/shared/api/host/installed-module.d.ts +7 -0
  49. package/dist/types/shared/api/host/mount-units.d.ts +5 -3
  50. package/dist/types/shared/api/host/package-content.d.ts +6 -0
  51. package/dist/types/shared/api/host/package-content.test.d.ts +1 -0
  52. package/dist/types/shared/api/host/package-kind.d.ts +21 -0
  53. package/dist/types/shared/api/host/package-kind.test.d.ts +1 -0
  54. package/dist/types/shared/api/host/package-route.d.ts +23 -0
  55. package/dist/types/shared/api/host/package-route.test.d.ts +1 -0
  56. package/dist/types/shared/api/host/registry-declaration.d.ts +23 -0
  57. package/dist/types/shared/api/host/runtime-seed.d.ts +40 -0
  58. package/dist/types/shared/api/host/runtime-seed.test.d.ts +1 -0
  59. package/dist/types/shared/api/host/unit-registry.d.ts +33 -4
  60. package/dist/types/shared/api/host/unit-roster-facts.d.ts +5 -0
  61. package/dist/types/shared/api/installed-plugins.d.ts +12 -0
  62. package/dist/types/shared/api/unit-manifests.d.ts +5 -0
  63. package/dist/types/shared/api/unit-manifests.test.d.ts +1 -0
  64. package/dist/types/shared/hooks/bundle-queries.d.ts +2 -0
  65. package/dist/types/shared/hooks/use-facts.d.ts +1 -0
  66. package/docs/HANDOFF.md +82 -44
  67. package/docs/OPERATIONS.md +22 -1
  68. package/package.json +5 -4
  69. package/scripts/seed-workshop.sh +216 -0
  70. package/skills/workbench-module-diy/BUILD.md +5 -5
  71. package/skills/workbench-module-diy/DESIGN.md +7 -1
  72. package/skills/workbench-module-diy/REVIEW.md +3 -2
  73. package/skills/workbench-module-diy/TOOLING.md +2 -2
  74. package/skills/workbench-module-diy/TOOLS.md +9 -2
package/README.md CHANGED
@@ -36,6 +36,23 @@ npx @dsh-workbench/core # ② 起工作台,默认 :3081
36
36
 
37
37
  打开 <http://localhost:3081> 就是工作台。你原来那份 `dsh web` 继续用 `:3080`,两边互不影响。
38
38
 
39
+ ## 另一种装法:就在你那份 `dsh web` 里装(单 profile)
40
+
41
+ 不想多一个 profile、多一个端口、多一个进程?那就**在 `dsh web` 里装**——
42
+ 侧栏 **Plugins → Add plugin**,填 `@dsh-workbench/core`(包在公网 npm 上,默认源就能解析),
43
+ **Install → Enable now**,然后**刷新一次页面**。左栏换成工作台,右侧多出面板列。
44
+
45
+ - 装的是**你现在这个 profile**:会话、存储、附件接着用你原来的(**不分家**);
46
+ 面板与模块配置照旧落在 `~/.dsh/workbench/**`。
47
+ - 外壳会**自己把缺的那几件补齐**(建隔离 opencli 的入口、把 `dsh-wb-module` 挂上 PATH、
48
+ 后台把 DIY 工坊骨架建起来)—— 不需要跑 `setup`、也不需要启动器。后台脚本的输出在
49
+ `~/.dsh/workbench/seed.log`(DIY 工坊的依赖是几百 MB,第一次启动在后台下)。
50
+ - 第一次打开照旧走启动体检,自己装隔离 opencli 运行时;装不上时给一条能照抄到终端的命令。
51
+ - 与 `setup` 那条路的差别:**没有独立端口/进程**、**会话不隔离**、**改外壳源码不热重载**,
52
+ DIY 工坊的依赖是第一次启动在后台装的。取舍与理由见
53
+ [ADR-0037](https://github.com/code-farmer-i/dsh-workbench/blob/main/docs/adr/0037-workbench-installs-into-any-profile.md)。
54
+ - 想回到"两条实例并存",就删掉这个包(Plugins 页里卸载),再走上面的 `setup` 那条路 —— 数据都还在。
55
+
39
56
  ## 首次打开会自己做什么
40
57
 
41
58
  - **装 opencli 的隔离运行时**:启动体检自己装,落在 `~/.dsh/workbench/opencli/`,
@@ -61,6 +78,8 @@ npx @dsh-workbench/core # ② 起工作台,默认 :3081
61
78
 
62
79
  ## 和 `dsh web` 的关系
63
80
 
81
+ (下面说的是 `setup` 那条路;装在 web 自己的 profile 里那条见上一节。)
82
+
64
83
  - **另一个 profile、另一个端口、另一个进程**:`workbench` profile 在 `~/.dsh/profiles/workbench`;
65
84
  会话 / 存储 / 附件 / 模块配置全走 `~/.dsh/workbench/**`,与 web **数据分家**。只有一样有意共享:
66
85
  API 凭据(`~/.dsh/.credentials.yaml`,一机一把 key)。
package/bin/dsh-workbench CHANGED
@@ -258,8 +258,12 @@ fi
258
258
  # (症状:启动体检永远说"隔离运行时没装好",而它其实是没权限跑)。
259
259
  # 所以这里写一个**我们自己拥有**的转发脚本,x 位由 chmod 当场给。
260
260
  # ⚠️ 先 rm -f:旧版本留下的软链还在时,`>` 会顺着软链把真脚本覆盖掉。
261
+ # ⚠️ DSH_HOME 必须**钉在命令里**:执行缝不继承它,而 bin/opencli-isolated 用
262
+ # `${DSH_HOME:-$HOME/.dsh}` 推根 —— 不钉的话,DSH_HOME 不是默认值的机器上,
263
+ # 隔离运行时会被认成用户真家目录那一份(实测:同一条路上的 seed-workshop.sh
264
+ # 就是这样把入口写进了 ~/.dsh,见 ADR-0037 的"执行缝不继承 DSH_HOME")。
261
265
  rm -f "$OPENCLI_ROOT/bin/opencli"
262
- printf '#!/bin/sh\nexec bash %q "$@"\n' "$DSH_WORKBENCH_ROOT/bin/opencli-isolated" \
266
+ printf '#!/bin/sh\nexec env DSH_HOME=%q bash %q "$@"\n' "$DSH_HOME" "$DSH_WORKBENCH_ROOT/bin/opencli-isolated" \
263
267
  >"$OPENCLI_ROOT/bin/opencli"
264
268
  chmod +x "$OPENCLI_ROOT/bin/opencli"
265
269
  export DSH_WORKBENCH_OPENCLI="$OPENCLI_ROOT/bin/opencli"