@yugoo-design/companion 0.1.0-beta.1 → 0.1.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/README.md +31 -9
  2. package/bin/design-system.mjs +14 -2
  3. package/bin/installer.mjs +38 -12
  4. package/bin/npm-agent-installation.mjs +141 -0
  5. package/bin/npm-desktop-preparation.mjs +51 -1
  6. package/bin/npm-installer-claude.mjs +2 -1
  7. package/bin/npm-installer-dsh-desktop.mjs +40 -10
  8. package/bin/npm-installer-dsh.mjs +98 -17
  9. package/bin/npm-runtime-check.mjs +75 -1
  10. package/bin/windows-native-platform.mjs +207 -0
  11. package/bin/windows-private-storage.mjs +110 -0
  12. package/licenses/third-party/index.json +14 -0
  13. package/licenses/third-party/pako-1.0.11/LICENSE +21 -0
  14. package/licenses/third-party/pako-1.0.11/SOURCE.md +17 -0
  15. package/licenses/third-party/pako-1.0.11/zlib-README +59 -0
  16. package/licenses/third-party/provenance.json +22 -0
  17. package/package.json +3 -2
  18. package/payload/overlays/claude-code/.claude-plugin/plugin.json +1 -1
  19. package/payload/overlays/codex/.codex-plugin/plugin.json +1 -1
  20. package/payload/overlays/qoder/.qoder-plugin/plugin.json +1 -1
  21. package/payload/shared/authoring/panel-components.json +40 -40
  22. package/payload/shared/bundles/business_rules/SKILL.md +1 -1
  23. package/payload/shared/bundles/flow_design/SKILL.md +2 -2
  24. package/payload/shared/bundles/flow_design/scripts/layout-metrics.mjs +5 -5
  25. package/payload/shared/bundles/flow_design/scripts/layout-search.mjs +5 -5
  26. package/payload/shared/bundles/flow_design/scripts/layout.mjs +6 -6
  27. package/payload/shared/bundles/notification_design/SKILL.md +1 -1
  28. package/payload/shared/bundles/quality_acceptance/SKILL.md +1 -1
  29. package/payload/shared/bundles/research/SKILL.md +3 -3
  30. package/payload/shared/bundles/role_access/SKILL.md +2 -2
  31. package/payload/shared/git-native/LICENSE +22 -0
  32. package/payload/shared/git-native/NOTICE +6 -0
  33. package/payload/shared/git-native/SOURCE.json +252 -0
  34. package/payload/shared/git-native/index.cjs +59 -0
  35. package/payload/shared/git-native/index.d.ts +2672 -0
  36. package/payload/shared/git-native/native/yugoo_git.linux-x64.node +0 -0
  37. package/payload/shared/git-native/native/yugoo_git.win32-x64.node +0 -0
  38. package/payload/shared/git-native/native-source/Cargo.lock +696 -0
  39. package/payload/shared/git-native/native-source/Cargo.toml +36 -0
  40. package/payload/shared/git-native/native-source/UPSTREAM.patch +162 -0
  41. package/payload/shared/git-native/native-source/build.rs +26 -0
  42. package/payload/shared/git-native/native-source/src/blame.rs +177 -0
  43. package/payload/shared/git-native/native-source/src/blob.rs +64 -0
  44. package/payload/shared/git-native/native-source/src/branch.rs +143 -0
  45. package/payload/shared/git-native/native-source/src/buffer_diff.rs +164 -0
  46. package/payload/shared/git-native/native-source/src/checkout.rs +58 -0
  47. package/payload/shared/git-native/native-source/src/commit.rs +339 -0
  48. package/payload/shared/git-native/native-source/src/config.rs +253 -0
  49. package/payload/shared/git-native/native-source/src/deltas.rs +292 -0
  50. package/payload/shared/git-native/native-source/src/diff.rs +94 -0
  51. package/payload/shared/git-native/native-source/src/error.rs +349 -0
  52. package/payload/shared/git-native/native-source/src/file_modification.rs +683 -0
  53. package/payload/shared/git-native/native-source/src/index.rs +114 -0
  54. package/payload/shared/git-native/native-source/src/lib.rs +37 -0
  55. package/payload/shared/git-native/native-source/src/object.rs +125 -0
  56. package/payload/shared/git-native/native-source/src/reference.rs +219 -0
  57. package/payload/shared/git-native/native-source/src/remote.rs +1393 -0
  58. package/payload/shared/git-native/native-source/src/repo.rs +2546 -0
  59. package/payload/shared/git-native/native-source/src/repo_builder.rs +158 -0
  60. package/payload/shared/git-native/native-source/src/rev_walk.rs +263 -0
  61. package/payload/shared/git-native/native-source/src/signature.rs +122 -0
  62. package/payload/shared/git-native/native-source/src/status.rs +114 -0
  63. package/payload/shared/git-native/native-source/src/tag.rs +78 -0
  64. package/payload/shared/git-native/native-source/src/tree.rs +298 -0
  65. package/payload/shared/git-native/native-source/src/tree_builder.rs +138 -0
  66. package/payload/shared/git-native/native-source/src/util.rs +20 -0
  67. package/payload/shared/git-native/package.json +27 -0
  68. package/payload/shared/git-native/runtime-manifest.json +1701 -0
  69. package/payload/shared/git-native/scripts/build.cjs +23 -0
  70. package/payload/shared/git-native/scripts/check-artifacts.cjs +20 -0
  71. package/payload/shared/git-native/third-party/CARGO-SOURCES.json +1651 -0
  72. package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/LICENSE +21 -0
  73. package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/README.md +98 -0
  74. package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/SOURCE.json +25 -0
  75. package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/package.json +97 -0
  76. package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/AUTHORS +21 -0
  77. package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/LICENSE +22 -0
  78. package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/README.md +177 -0
  79. package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/SOURCE.json +29 -0
  80. package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/package.json +48 -0
  81. package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/LICENSE +21 -0
  82. package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/README.md +55 -0
  83. package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/SOURCE.json +25 -0
  84. package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/package.json +93 -0
  85. package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/LICENSE +21 -0
  86. package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/README.md +34 -0
  87. package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/SOURCE.json +25 -0
  88. package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/package.json +47 -0
  89. package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/AUTHORS.md +73 -0
  90. package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/LICENSE +21 -0
  91. package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/README.md +410 -0
  92. package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/SOURCE.json +29 -0
  93. package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/package.json +93 -0
  94. package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/LICENSE +21 -0
  95. package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/README.md +62 -0
  96. package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/SOURCE.json +25 -0
  97. package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/package.json +85 -0
  98. package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/LICENSE +21 -0
  99. package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/README.md +64 -0
  100. package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/SOURCE.json +25 -0
  101. package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/package.json +93 -0
  102. package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/LICENSE +21 -0
  103. package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/README.md +53 -0
  104. package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/SOURCE.json +25 -0
  105. package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/package.json +99 -0
  106. package/payload/shared/git-native/third-party/javascript/clean-git-ref@2.0.1/README.md +22 -0
  107. package/payload/shared/git-native/third-party/javascript/clean-git-ref@2.0.1/SOURCE.json +21 -0
  108. package/payload/shared/git-native/third-party/javascript/clean-git-ref@2.0.1/package.json +33 -0
  109. package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/LICENSE +201 -0
  110. package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/README.md +200 -0
  111. package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/SOURCE.json +25 -0
  112. package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/package.json +43 -0
  113. package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/SOURCE.json +25 -0
  114. package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/license +9 -0
  115. package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/package.json +56 -0
  116. package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/readme.md +48 -0
  117. package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/LICENSE +21 -0
  118. package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/README.md +67 -0
  119. package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/SOURCE.json +25 -0
  120. package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/package.json +106 -0
  121. package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/README.md +28 -0
  122. package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/SOURCE.json +29 -0
  123. package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/diff3.js +271 -0
  124. package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/onp.js +178 -0
  125. package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/package.json +23 -0
  126. package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/LICENSE +21 -0
  127. package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/README.md +54 -0
  128. package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/SOURCE.json +25 -0
  129. package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/package.json +76 -0
  130. package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/LICENSE +21 -0
  131. package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/README.md +49 -0
  132. package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/SOURCE.json +25 -0
  133. package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/package.json +81 -0
  134. package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/LICENSE +21 -0
  135. package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/README.md +55 -0
  136. package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/SOURCE.json +25 -0
  137. package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/package.json +80 -0
  138. package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/LICENSE +21 -0
  139. package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/README.md +63 -0
  140. package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/SOURCE.json +25 -0
  141. package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/package.json +79 -0
  142. package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/LICENSE +22 -0
  143. package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/README.md +293 -0
  144. package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/SOURCE.json +25 -0
  145. package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/package.json +82 -0
  146. package/payload/shared/git-native/third-party/javascript/events@3.3.0/LICENSE +22 -0
  147. package/payload/shared/git-native/third-party/javascript/events@3.3.0/Readme.md +50 -0
  148. package/payload/shared/git-native/third-party/javascript/events@3.3.0/SOURCE.json +25 -0
  149. package/payload/shared/git-native/third-party/javascript/events@3.3.0/package.json +37 -0
  150. package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/LICENSE +22 -0
  151. package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/README.md +39 -0
  152. package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/SOURCE.json +25 -0
  153. package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/package.json +76 -0
  154. package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/LICENSE +20 -0
  155. package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/README.md +46 -0
  156. package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/SOURCE.json +25 -0
  157. package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/package.json +87 -0
  158. package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/LICENSE +21 -0
  159. package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/README.md +71 -0
  160. package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/SOURCE.json +25 -0
  161. package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/package.json +97 -0
  162. package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/LICENSE +21 -0
  163. package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/README.md +50 -0
  164. package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/SOURCE.json +25 -0
  165. package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/package.json +81 -0
  166. package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/LICENSE +21 -0
  167. package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/README.md +40 -0
  168. package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/SOURCE.json +25 -0
  169. package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/package.json +77 -0
  170. package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/LICENSE +21 -0
  171. package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/README.md +43 -0
  172. package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/SOURCE.json +25 -0
  173. package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/package.json +77 -0
  174. package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/LICENSE +21 -0
  175. package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/README.md +46 -0
  176. package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/SOURCE.json +25 -0
  177. package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/package.json +111 -0
  178. package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/LICENSE +21 -0
  179. package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/README.md +46 -0
  180. package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/SOURCE.json +25 -0
  181. package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/package.json +108 -0
  182. package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/LICENSE +21 -0
  183. package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/README.md +40 -0
  184. package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/SOURCE.json +25 -0
  185. package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/package.json +91 -0
  186. package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/LICENSE +21 -0
  187. package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/README.md +138 -0
  188. package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/SOURCE.json +25 -0
  189. package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/package.json +70 -0
  190. package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/LICENSE +11 -0
  191. package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/README.md +51 -0
  192. package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/SOURCE.json +25 -0
  193. package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/package.json +52 -0
  194. package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/LICENSE-MIT +21 -0
  195. package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/README.md +412 -0
  196. package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/SOURCE.json +25 -0
  197. package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/package.json +74 -0
  198. package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/LICENSE +16 -0
  199. package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/README.md +42 -0
  200. package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/SOURCE.json +25 -0
  201. package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/package.json +29 -0
  202. package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/LICENSE +22 -0
  203. package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/README.md +83 -0
  204. package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/SOURCE.json +25 -0
  205. package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/package.json +106 -0
  206. package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/LICENSE +22 -0
  207. package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/README.md +70 -0
  208. package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/SOURCE.json +25 -0
  209. package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/package.json +129 -0
  210. package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/LICENSE +21 -0
  211. package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/README.md +38 -0
  212. package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/SOURCE.json +25 -0
  213. package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/package.json +48 -0
  214. package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/LICENSE.md +7 -0
  215. package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/README.md +510 -0
  216. package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/SOURCE.json +25 -0
  217. package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/package.json +189 -0
  218. package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/LICENSE +21 -0
  219. package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/README.md +50 -0
  220. package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/SOURCE.json +25 -0
  221. package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/package.json +86 -0
  222. package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/SOURCE.json +25 -0
  223. package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/license +9 -0
  224. package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/package.json +42 -0
  225. package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/readme.md +78 -0
  226. package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/LICENSE +18 -0
  227. package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/README.md +121 -0
  228. package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/SOURCE.json +25 -0
  229. package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/package.json +75 -0
  230. package/payload/shared/git-native/third-party/javascript/minimisted@2.0.1/README.md +58 -0
  231. package/payload/shared/git-native/third-party/javascript/minimisted@2.0.1/SOURCE.json +21 -0
  232. package/payload/shared/git-native/third-party/javascript/minimisted@2.0.1/package.json +32 -0
  233. package/payload/shared/git-native/third-party/javascript/once@1.4.0/LICENSE +15 -0
  234. package/payload/shared/git-native/third-party/javascript/once@1.4.0/README.md +79 -0
  235. package/payload/shared/git-native/third-party/javascript/once@1.4.0/SOURCE.json +25 -0
  236. package/payload/shared/git-native/third-party/javascript/once@1.4.0/package.json +33 -0
  237. package/payload/shared/git-native/third-party/javascript/pako@1.0.11/LICENSE +21 -0
  238. package/payload/shared/git-native/third-party/javascript/pako@1.0.11/README.md +191 -0
  239. package/payload/shared/git-native/third-party/javascript/pako@1.0.11/SOURCE.json +25 -0
  240. package/payload/shared/git-native/third-party/javascript/pako@1.0.11/package.json +44 -0
  241. package/payload/shared/git-native/third-party/javascript/pify@4.0.1/SOURCE.json +25 -0
  242. package/payload/shared/git-native/third-party/javascript/pify@4.0.1/license +9 -0
  243. package/payload/shared/git-native/third-party/javascript/pify@4.0.1/package.json +51 -0
  244. package/payload/shared/git-native/third-party/javascript/pify@4.0.1/readme.md +145 -0
  245. package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/LICENSE +21 -0
  246. package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/README.md +50 -0
  247. package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/SOURCE.json +25 -0
  248. package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/package.json +84 -0
  249. package/payload/shared/git-native/third-party/javascript/process@0.11.10/LICENSE +22 -0
  250. package/payload/shared/git-native/third-party/javascript/process@0.11.10/README.md +26 -0
  251. package/payload/shared/git-native/third-party/javascript/process@0.11.10/SOURCE.json +25 -0
  252. package/payload/shared/git-native/third-party/javascript/process@0.11.10/package.json +27 -0
  253. package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/LICENSE +47 -0
  254. package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/README.md +116 -0
  255. package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/SOURCE.json +25 -0
  256. package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/package.json +89 -0
  257. package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/LICENSE +21 -0
  258. package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/README.md +584 -0
  259. package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/SOURCE.json +25 -0
  260. package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/package.json +51 -0
  261. package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/LICENSE +21 -0
  262. package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/Readme.md +156 -0
  263. package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/SOURCE.json +25 -0
  264. package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/package.json +34 -0
  265. package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/LICENSE +21 -0
  266. package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/README.md +56 -0
  267. package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/SOURCE.json +25 -0
  268. package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/package.json +102 -0
  269. package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/LICENSE +49 -0
  270. package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/README.md +44 -0
  271. package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/SOURCE.json +25 -0
  272. package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/package.json +58 -0
  273. package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/LICENSE +20 -0
  274. package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/README.md +44 -0
  275. package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/SOURCE.json +25 -0
  276. package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/package.json +47 -0
  277. package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/LICENSE +20 -0
  278. package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/README.md +333 -0
  279. package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/SOURCE.json +25 -0
  280. package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/package.json +67 -0
  281. package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/LICENSE +48 -0
  282. package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/README.md +47 -0
  283. package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/SOURCE.json +25 -0
  284. package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/package.json +34 -0
  285. package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/LICENSE +21 -0
  286. package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/README.md +44 -0
  287. package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/SOURCE.json +25 -0
  288. package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/package.json +62 -0
  289. package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/LICENSE +21 -0
  290. package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/README.md +42 -0
  291. package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/SOURCE.json +25 -0
  292. package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/package.json +82 -0
  293. package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/LICENSE +22 -0
  294. package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/README.md +68 -0
  295. package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/SOURCE.json +25 -0
  296. package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/package.json +131 -0
  297. package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/LICENSE +15 -0
  298. package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/README.md +36 -0
  299. package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/SOURCE.json +25 -0
  300. package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/package.json +29 -0
  301. package/payload/shared/git-native/third-party/licenses/android_system_properties-0.1.6/LICENSE-APACHE +13 -0
  302. package/payload/shared/git-native/third-party/licenses/android_system_properties-0.1.6/LICENSE-MIT +20 -0
  303. package/payload/shared/git-native/third-party/licenses/autocfg-1.5.1/LICENSE-APACHE +201 -0
  304. package/payload/shared/git-native/third-party/licenses/autocfg-1.5.1/LICENSE-MIT +25 -0
  305. package/payload/shared/git-native/third-party/licenses/bitflags-2.13.2/LICENSE-APACHE +201 -0
  306. package/payload/shared/git-native/third-party/licenses/bitflags-2.13.2/LICENSE-MIT +25 -0
  307. package/payload/shared/git-native/third-party/licenses/bumpalo-3.20.3/LICENSE-APACHE +201 -0
  308. package/payload/shared/git-native/third-party/licenses/bumpalo-3.20.3/LICENSE-MIT +25 -0
  309. package/payload/shared/git-native/third-party/licenses/cc-1.8.0/LICENSE-APACHE +201 -0
  310. package/payload/shared/git-native/third-party/licenses/cc-1.8.0/LICENSE-MIT +25 -0
  311. package/payload/shared/git-native/third-party/licenses/cfg-if-1.0.5/LICENSE-APACHE +201 -0
  312. package/payload/shared/git-native/third-party/licenses/cfg-if-1.0.5/LICENSE-MIT +25 -0
  313. package/payload/shared/git-native/third-party/licenses/chrono-0.4.45/LICENSE.txt +240 -0
  314. package/payload/shared/git-native/third-party/licenses/convert_case-0.12.0/LICENSE +21 -0
  315. package/payload/shared/git-native/third-party/licenses/core-foundation-sys-0.8.7/LICENSE-APACHE +201 -0
  316. package/payload/shared/git-native/third-party/licenses/core-foundation-sys-0.8.7/LICENSE-MIT +25 -0
  317. package/payload/shared/git-native/third-party/licenses/ctor-1.0.13/LICENSE-APACHE +201 -0
  318. package/payload/shared/git-native/third-party/licenses/ctor-1.0.13/LICENSE-MIT +5 -0
  319. package/payload/shared/git-native/third-party/licenses/dirs-6.0.0/LICENSE-APACHE +174 -0
  320. package/payload/shared/git-native/third-party/licenses/dirs-6.0.0/LICENSE-MIT +19 -0
  321. package/payload/shared/git-native/third-party/licenses/dirs-sys-0.5.0/LICENSE-APACHE +174 -0
  322. package/payload/shared/git-native/third-party/licenses/dirs-sys-0.5.0/LICENSE-MIT +19 -0
  323. package/payload/shared/git-native/third-party/licenses/find-msvc-tools-0.1.14/LICENSE-APACHE +201 -0
  324. package/payload/shared/git-native/third-party/licenses/find-msvc-tools-0.1.14/LICENSE-MIT +25 -0
  325. package/payload/shared/git-native/third-party/licenses/futures-0.3.34/LICENSE-APACHE +202 -0
  326. package/payload/shared/git-native/third-party/licenses/futures-0.3.34/LICENSE-MIT +26 -0
  327. package/payload/shared/git-native/third-party/licenses/futures-channel-0.3.34/LICENSE-APACHE +202 -0
  328. package/payload/shared/git-native/third-party/licenses/futures-channel-0.3.34/LICENSE-MIT +26 -0
  329. package/payload/shared/git-native/third-party/licenses/futures-core-0.3.34/LICENSE-APACHE +202 -0
  330. package/payload/shared/git-native/third-party/licenses/futures-core-0.3.34/LICENSE-MIT +26 -0
  331. package/payload/shared/git-native/third-party/licenses/futures-executor-0.3.34/LICENSE-APACHE +202 -0
  332. package/payload/shared/git-native/third-party/licenses/futures-executor-0.3.34/LICENSE-MIT +26 -0
  333. package/payload/shared/git-native/third-party/licenses/futures-io-0.3.34/LICENSE-APACHE +202 -0
  334. package/payload/shared/git-native/third-party/licenses/futures-io-0.3.34/LICENSE-MIT +26 -0
  335. package/payload/shared/git-native/third-party/licenses/futures-macro-0.3.34/LICENSE-APACHE +202 -0
  336. package/payload/shared/git-native/third-party/licenses/futures-macro-0.3.34/LICENSE-MIT +26 -0
  337. package/payload/shared/git-native/third-party/licenses/futures-sink-0.3.34/LICENSE-APACHE +202 -0
  338. package/payload/shared/git-native/third-party/licenses/futures-sink-0.3.34/LICENSE-MIT +26 -0
  339. package/payload/shared/git-native/third-party/licenses/futures-task-0.3.34/LICENSE-APACHE +202 -0
  340. package/payload/shared/git-native/third-party/licenses/futures-task-0.3.34/LICENSE-MIT +26 -0
  341. package/payload/shared/git-native/third-party/licenses/futures-util-0.3.34/LICENSE-APACHE +202 -0
  342. package/payload/shared/git-native/third-party/licenses/futures-util-0.3.34/LICENSE-MIT +26 -0
  343. package/payload/shared/git-native/third-party/licenses/getrandom-0.4.3/LICENSE-APACHE +201 -0
  344. package/payload/shared/git-native/third-party/licenses/getrandom-0.4.3/LICENSE-MIT +26 -0
  345. package/payload/shared/git-native/third-party/licenses/git2-0.21.0/LICENSE-APACHE +201 -0
  346. package/payload/shared/git-native/third-party/licenses/git2-0.21.0/LICENSE-MIT +25 -0
  347. package/payload/shared/git-native/third-party/licenses/home-0.5.12/LICENSE-APACHE +201 -0
  348. package/payload/shared/git-native/third-party/licenses/home-0.5.12/LICENSE-MIT +23 -0
  349. package/payload/shared/git-native/third-party/licenses/iana-time-zone-0.1.65/LICENSE-APACHE +201 -0
  350. package/payload/shared/git-native/third-party/licenses/iana-time-zone-0.1.65/LICENSE-MIT +25 -0
  351. package/payload/shared/git-native/third-party/licenses/iana-time-zone-haiku-0.1.2/LICENSE-APACHE +201 -0
  352. package/payload/shared/git-native/third-party/licenses/iana-time-zone-haiku-0.1.2/LICENSE-MIT +25 -0
  353. package/payload/shared/git-native/third-party/licenses/jobserver-0.1.35/LICENSE-APACHE +201 -0
  354. package/payload/shared/git-native/third-party/licenses/jobserver-0.1.35/LICENSE-MIT +25 -0
  355. package/payload/shared/git-native/third-party/licenses/js-sys-0.3.106/LICENSE-APACHE +201 -0
  356. package/payload/shared/git-native/third-party/licenses/js-sys-0.3.106/LICENSE-MIT +25 -0
  357. package/payload/shared/git-native/third-party/licenses/libc-0.2.190/LICENSE-APACHE +176 -0
  358. package/payload/shared/git-native/third-party/licenses/libc-0.2.190/LICENSE-MIT +25 -0
  359. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/LICENSE-APACHE +201 -0
  360. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/LICENSE-MIT +25 -0
  361. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/COPYING +1482 -0
  362. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/llhttp/LICENSE-MIT +22 -0
  363. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/pcre2/LICENCE.md +104 -0
  364. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/winhttp/COPYING.GPL +993 -0
  365. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/winhttp/COPYING.LGPL +502 -0
  366. package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/zlib/LICENSE +22 -0
  367. package/payload/shared/git-native/third-party/licenses/libloading-0.9.0/LICENSE +12 -0
  368. package/payload/shared/git-native/third-party/licenses/libredox-0.1.25/LICENSE +21 -0
  369. package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/LICENSE-APACHE +201 -0
  370. package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/LICENSE-MIT +26 -0
  371. package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib/LICENSE +22 -0
  372. package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  373. package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib/contrib/minizip/LICENSE.Info-Zip +58 -0
  374. package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib-ng/LICENSE.md +19 -0
  375. package/payload/shared/git-native/third-party/licenses/log-0.4.34/LICENSE-APACHE +201 -0
  376. package/payload/shared/git-native/third-party/licenses/log-0.4.34/LICENSE-MIT +25 -0
  377. package/payload/shared/git-native/third-party/licenses/memchr-2.8.3/COPYING +3 -0
  378. package/payload/shared/git-native/third-party/licenses/memchr-2.8.3/LICENSE-MIT +21 -0
  379. package/payload/shared/git-native/third-party/licenses/napi-3.14.2/LICENSE +43 -0
  380. package/payload/shared/git-native/third-party/licenses/napi-build-2.6.0/LICENSE +43 -0
  381. package/payload/shared/git-native/third-party/licenses/napi-derive-3.6.12/LICENSE +43 -0
  382. package/payload/shared/git-native/third-party/licenses/napi-derive-backend-6.1.5/LICENSE +43 -0
  383. package/payload/shared/git-native/third-party/licenses/napi-sys-3.4.0/LICENSE +43 -0
  384. package/payload/shared/git-native/third-party/licenses/nohash-hasher-0.2.0/LICENSE-APACHE +202 -0
  385. package/payload/shared/git-native/third-party/licenses/nohash-hasher-0.2.0/LICENSE-MIT +18 -0
  386. package/payload/shared/git-native/third-party/licenses/num-traits-0.2.19/LICENSE-APACHE +201 -0
  387. package/payload/shared/git-native/third-party/licenses/num-traits-0.2.19/LICENSE-MIT +25 -0
  388. package/payload/shared/git-native/third-party/licenses/once_cell-1.21.4/LICENSE-APACHE +201 -0
  389. package/payload/shared/git-native/third-party/licenses/once_cell-1.21.4/LICENSE-MIT +23 -0
  390. package/payload/shared/git-native/third-party/licenses/option-ext-0.2.0/LICENSE.txt +373 -0
  391. package/payload/shared/git-native/third-party/licenses/pin-project-lite-0.2.17/LICENSE-APACHE +177 -0
  392. package/payload/shared/git-native/third-party/licenses/pin-project-lite-0.2.17/LICENSE-MIT +23 -0
  393. package/payload/shared/git-native/third-party/licenses/pkg-config-0.3.34/LICENSE-APACHE +201 -0
  394. package/payload/shared/git-native/third-party/licenses/pkg-config-0.3.34/LICENSE-MIT +25 -0
  395. package/payload/shared/git-native/third-party/licenses/proc-macro2-1.0.107/LICENSE-APACHE +176 -0
  396. package/payload/shared/git-native/third-party/licenses/proc-macro2-1.0.107/LICENSE-MIT +23 -0
  397. package/payload/shared/git-native/third-party/licenses/quote-1.0.47/LICENSE-APACHE +176 -0
  398. package/payload/shared/git-native/third-party/licenses/quote-1.0.47/LICENSE-MIT +23 -0
  399. package/payload/shared/git-native/third-party/licenses/redox_users-0.5.3/LICENSE +22 -0
  400. package/payload/shared/git-native/third-party/licenses/rustc-hash-2.1.3/LICENSE-APACHE +176 -0
  401. package/payload/shared/git-native/third-party/licenses/rustc-hash-2.1.3/LICENSE-MIT +23 -0
  402. package/payload/shared/git-native/third-party/licenses/rustversion-1.0.23/LICENSE-APACHE +176 -0
  403. package/payload/shared/git-native/third-party/licenses/rustversion-1.0.23/LICENSE-MIT +23 -0
  404. package/payload/shared/git-native/third-party/licenses/semver-1.0.28/LICENSE-APACHE +176 -0
  405. package/payload/shared/git-native/third-party/licenses/semver-1.0.28/LICENSE-MIT +23 -0
  406. package/payload/shared/git-native/third-party/licenses/shlex-2.0.1/LICENSE-APACHE +13 -0
  407. package/payload/shared/git-native/third-party/licenses/shlex-2.0.1/LICENSE-MIT +21 -0
  408. package/payload/shared/git-native/third-party/licenses/slab-0.4.12/LICENSE +25 -0
  409. package/payload/shared/git-native/third-party/licenses/syn-2.0.119/LICENSE-APACHE +176 -0
  410. package/payload/shared/git-native/third-party/licenses/syn-2.0.119/LICENSE-MIT +23 -0
  411. package/payload/shared/git-native/third-party/licenses/syn-3.0.9/LICENSE-APACHE +176 -0
  412. package/payload/shared/git-native/third-party/licenses/syn-3.0.9/LICENSE-MIT +23 -0
  413. package/payload/shared/git-native/third-party/licenses/thiserror-2.0.21/LICENSE-APACHE +176 -0
  414. package/payload/shared/git-native/third-party/licenses/thiserror-2.0.21/LICENSE-MIT +23 -0
  415. package/payload/shared/git-native/third-party/licenses/thiserror-impl-2.0.21/LICENSE-APACHE +176 -0
  416. package/payload/shared/git-native/third-party/licenses/thiserror-impl-2.0.21/LICENSE-MIT +23 -0
  417. package/payload/shared/git-native/third-party/licenses/tokio-1.53.3/LICENSE +21 -0
  418. package/payload/shared/git-native/third-party/licenses/unicode-ident-1.0.27/LICENSE-APACHE +176 -0
  419. package/payload/shared/git-native/third-party/licenses/unicode-ident-1.0.27/LICENSE-MIT +23 -0
  420. package/payload/shared/git-native/third-party/licenses/unicode-ident-1.0.27/LICENSE-UNICODE +39 -0
  421. package/payload/shared/git-native/third-party/licenses/unicode-segmentation-1.13.3/COPYRIGHT +7 -0
  422. package/payload/shared/git-native/third-party/licenses/unicode-segmentation-1.13.3/LICENSE-APACHE +201 -0
  423. package/payload/shared/git-native/third-party/licenses/unicode-segmentation-1.13.3/LICENSE-MIT +25 -0
  424. package/payload/shared/git-native/third-party/licenses/vcpkg-0.2.15/LICENSE-APACHE +202 -0
  425. package/payload/shared/git-native/third-party/licenses/vcpkg-0.2.15/LICENSE-MIT +26 -0
  426. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-0.2.129/LICENSE-APACHE +201 -0
  427. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-0.2.129/LICENSE-MIT +25 -0
  428. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-0.2.129/LICENSE-APACHE +201 -0
  429. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-0.2.129/LICENSE-MIT +25 -0
  430. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-support-0.2.129/LICENSE-APACHE +201 -0
  431. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-support-0.2.129/LICENSE-MIT +25 -0
  432. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-shared-0.2.129/LICENSE-APACHE +201 -0
  433. package/payload/shared/git-native/third-party/licenses/wasm-bindgen-shared-0.2.129/LICENSE-MIT +25 -0
  434. package/payload/shared/git-native/third-party/licenses/windows-core-0.62.2/license-apache-2.0 +201 -0
  435. package/payload/shared/git-native/third-party/licenses/windows-core-0.62.2/license-mit +21 -0
  436. package/payload/shared/git-native/third-party/licenses/windows-implement-0.60.2/license-apache-2.0 +201 -0
  437. package/payload/shared/git-native/third-party/licenses/windows-implement-0.60.2/license-mit +21 -0
  438. package/payload/shared/git-native/third-party/licenses/windows-interface-0.59.3/license-apache-2.0 +201 -0
  439. package/payload/shared/git-native/third-party/licenses/windows-interface-0.59.3/license-mit +21 -0
  440. package/payload/shared/git-native/third-party/licenses/windows-link-0.2.1/license-apache-2.0 +201 -0
  441. package/payload/shared/git-native/third-party/licenses/windows-link-0.2.1/license-mit +21 -0
  442. package/payload/shared/git-native/third-party/licenses/windows-result-0.4.1/license-apache-2.0 +201 -0
  443. package/payload/shared/git-native/third-party/licenses/windows-result-0.4.1/license-mit +21 -0
  444. package/payload/shared/git-native/third-party/licenses/windows-strings-0.5.1/license-apache-2.0 +201 -0
  445. package/payload/shared/git-native/third-party/licenses/windows-strings-0.5.1/license-mit +21 -0
  446. package/payload/shared/git-native/third-party/licenses/windows-sys-0.61.2/license-apache-2.0 +201 -0
  447. package/payload/shared/git-native/third-party/licenses/windows-sys-0.61.2/license-mit +21 -0
  448. package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-pc-windows-msvc/COPYRIGHT +34 -0
  449. package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-pc-windows-msvc/LICENSE-APACHE +176 -0
  450. package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-pc-windows-msvc/LICENSE-MIT +25 -0
  451. package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-unknown-linux-gnu/COPYRIGHT +34 -0
  452. package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-unknown-linux-gnu/LICENSE-APACHE +176 -0
  453. package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-unknown-linux-gnu/LICENSE-MIT +25 -0
  454. package/payload/shared/kits/web_app/mindset.md +42 -9
  455. package/payload/shared/knowledge/cli-lifecycle.mjs +79 -0
  456. package/payload/shared/knowledge/runtime-manifest.json +2 -1
  457. package/payload/shared/knowledge/runtime.mjs +296 -83
  458. package/payload/shared/scripts/{content-archive-9pzDBpn3.mjs → content-archive-tfY3CMRf.mjs} +2 -2
  459. package/payload/shared/scripts/{core-entry-DH2wsFgg.mjs → core-entry-7m3FOWAS.mjs} +954 -209
  460. package/payload/shared/scripts/design-git-read-BUV0s4TT.mjs +192 -0
  461. package/payload/shared/scripts/design.mjs +184 -171
  462. package/payload/shared/scripts/git-index-library-08zOq52I.mjs +6868 -0
  463. package/payload/shared/scripts/git-index-library-C_wZ6wUq.mjs +2 -0
  464. package/payload/shared/scripts/git-native-CtqUG3yb.mjs +9472 -0
  465. package/payload/shared/scripts/git-native-executor-CqFIQhzz.mjs +205 -0
  466. package/payload/shared/scripts/git-native-executor-D8TkZYzk.mjs +2 -0
  467. package/payload/shared/scripts/git-native-operation-BsYNBbvH.mjs +91 -0
  468. package/payload/shared/scripts/git-native-worker.js +65 -0
  469. package/payload/shared/scripts/git-runtime-check.mjs +113 -0
  470. package/payload/shared/scripts/knowledge-snapshot-query.mjs +1 -1
  471. package/payload/shared/scripts/{load-B-XdiMTX.mjs → load-oEOTKuWY.mjs} +1 -1
  472. package/payload/shared/scripts/package.json +1 -0
  473. package/payload/shared/scripts/{panel-preview-HRISZ1HI.mjs → panel-preview-BPETTLp7.mjs} +2 -2
  474. package/payload/shared/scripts/{server-CydyvZvR.mjs → server-DRsO6JFn.mjs} +85 -233
  475. package/payload/shared/scripts/{studio-content-archive-C2mFLBuL.mjs → studio-content-archive-DKijj8ba.mjs} +2 -2
  476. package/payload/shared/scripts/{studio-instance-composition-C17CmAmZ.mjs → studio-instance-composition-COD3xWt-.mjs} +2 -2
  477. package/payload/shared/scripts/{studio-instances-CmNfOFil.mjs → studio-instances-a-4TZo0u.mjs} +2 -2
  478. package/payload/shared/scripts/{studio-panel-drafts-x3awqien.mjs → studio-panel-drafts-Bo_RuF8s.mjs} +3 -3
  479. package/payload/shared/scripts/workbuddy-panel-service.mjs +1 -1
  480. package/payload/shared/scripts/{wrapper-BMQX62IU.mjs → wrapper-BevFNS3q.mjs} +13 -13
  481. package/payload/shared/web/{3d-force-graph-Ctmjqo-Y.js → 3d-force-graph-BY_DwCer.js} +102 -102
  482. package/payload/shared/web/{OrbitControls-CQxxM5ji.js → OrbitControls-jwQpg0yB.js} +2 -2
  483. package/payload/shared/web/{_dsh-design-css_owned_f311e6c6d8e65aed0c9a7ee24ef653d3c38574a3505babc3e0cad2a40b94a188_diagram-js.css-C11OT7zU.js → _dsh-design-css_owned_9191d97dda6511133eb885428f9b1378cd2c1ef20f30746ea548820d5c25ccc0_diagram-js.css-DGizTF9A.js} +2 -2
  484. package/payload/shared/web/{_dsh-design-css_owned_cc41a10f41ce4c8219d75daefaa99c08ac76f04537f7ec1abc92622e819f5bba_bpmn-js.css-BMPB0-R-.js → _dsh-design-css_owned_ce0a48cf22c8ee3299142159a299608a2d18b8b7c11cd7f20cb6787bcc44a741_bpmn-js.css-7gC4jxUa.js} +2 -2
  485. package/payload/shared/web/{_dsh-design-css_owned_89a065927fa266797ef9ce977561ca0c4a3502195b0ba467350b7673cd701bdf_bpmn-embedded.css-CS3_MdFX.js → _dsh-design-css_owned_eebf5579ad466526fad2581aa1ba1b4ce051b5a075be5cd61bf13a945a1200ef_bpmn-embedded.css-42YWu5UP.js} +2 -2
  486. package/payload/shared/web/{abnfDiagram-VCTEODGH-BElHS-zE.js → abnfDiagram-VCTEODGH-CSzY0xMe.js} +8 -8
  487. package/payload/shared/web/{ar-SA-G6X2FPQ2-D7POWdFi.js → ar-SA-G6X2FPQ2-CaMvsngq.js} +1 -1
  488. package/payload/shared/web/{arc-Do8BUoj2.js → arc-B2PqyFty.js} +1 -1
  489. package/payload/shared/web/{architecture-7GRP2DOG-DdensYya.js → architecture-7GRP2DOG-Bu3isBb4.js} +2 -2
  490. package/payload/shared/web/{architectureDiagram-5GKGNRK7-BECL41Da.js → architectureDiagram-5GKGNRK7-0DhCY3B4.js} +14 -14
  491. package/payload/shared/web/{az-AZ-76LH7QW2-C5e-y-w3.js → az-AZ-76LH7QW2-DiRCow4L.js} +1 -1
  492. package/payload/shared/web/{bg-BG-XCXSNQG7-fVQUxYSL.js → bg-BG-XCXSNQG7-i0B_GQmM.js} +1 -1
  493. package/payload/shared/web/{blockDiagram-I7D4REHJ-BHdPKhvo.js → blockDiagram-I7D4REHJ-DKGVCGV7.js} +17 -17
  494. package/payload/shared/web/{bn-BD-2XOGV67Q-DSmymzRw.js → bn-BD-2XOGV67Q-xaM6Ctrt.js} +1 -1
  495. package/payload/shared/web/{c4Diagram-7LVT6UL2-CWIbzZY_.js → c4Diagram-7LVT6UL2-Bdm8xCH2.js} +11 -11
  496. package/payload/shared/web/{ca-ES-6MX7JW3Y-BDoNy_ee.js → ca-ES-6MX7JW3Y-xMfLGHjy.js} +1 -1
  497. package/payload/shared/web/channel-_Pngq7Gp.js +7 -0
  498. package/payload/shared/web/{chunk-2Q5K7J3B-fbXEjlJX.js → chunk-2Q5K7J3B-DimMSDxY.js} +2 -2
  499. package/payload/shared/web/{chunk-4HAMMTFA-b3a3G6vp.js → chunk-4HAMMTFA-CUdghhWW.js} +10 -10
  500. package/payload/shared/web/{chunk-5VM5RSS4-BK0NOjPp.js → chunk-5VM5RSS4-VXmOEE7Y.js} +2 -2
  501. package/payload/shared/web/{chunk-75Z2AOVW-CRrsMd7V.js → chunk-75Z2AOVW-CEV_bvCZ.js} +21 -21
  502. package/payload/shared/web/{chunk-DU6HZSFF-DQGKOvUD.js → chunk-DU6HZSFF-NKww2mnj.js} +27 -27
  503. package/payload/shared/web/{chunk-F27PBJKO-CKTDAMhD.js → chunk-F27PBJKO-BaYmsdQ6.js} +6 -6
  504. package/payload/shared/web/{chunk-FOHPRMQF-Cr2lbyG-.js → chunk-FOHPRMQF-CC1xO94M.js} +1 -1
  505. package/payload/shared/web/{chunk-GMAD6QVW-CR6pf1Wk.js → chunk-GMAD6QVW-DOafcECG.js} +11 -11
  506. package/payload/shared/web/{chunk-GVQU2GXP-Cuq0uwWc.js → chunk-GVQU2GXP-D-Wj1Xkb.js} +5 -5
  507. package/payload/shared/web/{chunk-IMKFNOWR-BIkawNBO.js → chunk-IMKFNOWR-C8rR-UUv.js} +10 -10
  508. package/payload/shared/web/{chunk-JWPE2WC7-CdZv-_qJ.js → chunk-JWPE2WC7-DpU0Dn_h.js} +2 -2
  509. package/payload/shared/web/{chunk-L3NEJ4N5-CuRR4sgK.js → chunk-L3NEJ4N5-BuxEyHrZ.js} +10 -10
  510. package/payload/shared/web/{chunk-OSK3NFVY-o5AaXVbW.js → chunk-OSK3NFVY-B5u6n-0C.js} +11 -11
  511. package/payload/shared/web/{chunk-P2QGCYS3-CQGN9yCW.js → chunk-P2QGCYS3-Ce_wPnuK.js} +3 -3
  512. package/payload/shared/web/{chunk-POPQ4Y6H-CoV8F_6L.js → chunk-POPQ4Y6H-4fYRb9kI.js} +4 -4
  513. package/payload/shared/web/{chunk-PWAF6VOD-DLPv7U5s.js → chunk-PWAF6VOD-DW3nnawj.js} +16 -16
  514. package/payload/shared/web/{chunk-SHT3W25Y-DAA9rzEQ.js → chunk-SHT3W25Y-rw4EifyI.js} +13 -13
  515. package/payload/shared/web/{chunk-SVP7TREG-CsNwZR-J.js → chunk-SVP7TREG-DB0u6j7t.js} +5 -5
  516. package/payload/shared/web/{chunk-TICWLB2K-BkUUbwgD.js → chunk-TICWLB2K-GYqAiTLR.js} +11 -11
  517. package/payload/shared/web/{chunk-XXDRQBXY-DuWXQH59.js → chunk-XXDRQBXY-BOMD6Zym.js} +4 -4
  518. package/payload/shared/web/{chunk-Y2CYZVJY-Dou7QIQD.js → chunk-Y2CYZVJY-mI7MaAQH.js} +1 -1
  519. package/payload/shared/web/classDiagram-ZZMXUADV-CcgFl9R2.js +31 -0
  520. package/payload/shared/web/classDiagram-v2-VYDZK3BY-C7RIez6z.js +31 -0
  521. package/payload/shared/web/client.js +1901 -1581
  522. package/payload/shared/web/{colors-CWuSpNaV.js → colors-B_fyVLyX.js} +1 -1
  523. package/payload/shared/web/{cose-bilkent-JH36ORCC-CtLBgNIX.js → cose-bilkent-JH36ORCC-CpMlHyO8.js} +7 -7
  524. package/payload/shared/web/{cs-CZ-2BRQDIVT-Dt87r7S-.js → cs-CZ-2BRQDIVT-K2CLVImR.js} +1 -1
  525. package/payload/shared/web/{cynefin-OW5HDTMX-PtMqCYqM.js → cynefin-OW5HDTMX-Chp-GO7y.js} +2 -2
  526. package/payload/shared/web/{cynefinDiagram-5FMLGOSQ-CP-tjXE5.js → cynefinDiagram-5FMLGOSQ-CksPRylz.js} +8 -8
  527. package/payload/shared/web/{cytoscape.esm-B-DS7tqX.js → cytoscape.esm-B13OtX3v.js} +1 -1
  528. package/payload/shared/web/{da-DK-5WZEPLOC--27XibzI.js → da-DK-5WZEPLOC-DGpLG22p.js} +1 -1
  529. package/payload/shared/web/{dagre-CEj7qy_c.js → dagre-Dfx2C4EB.js} +114 -114
  530. package/payload/shared/web/{dagre-GXQ25YYZ-GUxh673_.js → dagre-GXQ25YYZ-DO_yzZgN.js} +15 -15
  531. package/payload/shared/web/{de-DE-XR44H4JA-D1MX3nBF.js → de-DE-XR44H4JA-BdXhiBzP.js} +1 -1
  532. package/payload/shared/web/{diagram-S7CK7UJ4-BFDH1Gbu.js → diagram-S7CK7UJ4-DtPOTRMz.js} +10 -10
  533. package/payload/shared/web/{diagram-UQ7AKVKN-PHM6uSDT.js → diagram-UQ7AKVKN-BEU2kvqx.js} +8 -8
  534. package/payload/shared/web/{diagram-VSXAHHWV-C6m_LjuJ.js → diagram-VSXAHHWV-aQhlGEje.js} +9 -9
  535. package/payload/shared/web/{diagram-VX7I27RA-G0Og_1eB.js → diagram-VX7I27RA-1DX4uy0U.js} +32 -32
  536. package/payload/shared/web/{diagram-Z3DM3KII-DxLU0CyU.js → diagram-Z3DM3KII-CRHw7SSM.js} +8 -8
  537. package/payload/shared/web/{directory-open-01563666-DOF-LFZj.js → directory-open-01563666-CXjy6Drc.js} +1 -1
  538. package/payload/shared/web/{directory-open-4ed118d0-BhSg263d.js → directory-open-4ed118d0-Be4pjoQ_.js} +1 -1
  539. package/payload/shared/web/{dist-CpfF1Jph.js → dist-C0qVS_M8.js} +91 -91
  540. package/payload/shared/web/{dist-BYV9yYN_.js → dist-DjAbm1uK.js} +2 -2
  541. package/payload/shared/web/{ebnfDiagram-PWID7BFC-Dh7NgFDw.js → ebnfDiagram-PWID7BFC-C3dnprYZ.js} +8 -8
  542. package/payload/shared/web/{el-GR-BZB4AONW-B-2rmEpJ.js → el-GR-BZB4AONW-g7z69brF.js} +1 -1
  543. package/payload/shared/web/{elk.bundled-CoqjhytL.js → elk.bundled-CSVGWwmf.js} +1 -1
  544. package/payload/shared/web/{erDiagram-RLTQ6QDP-De1Ves_r.js → erDiagram-RLTQ6QDP-W6MWvijo.js} +17 -17
  545. package/payload/shared/web/{es-ES-U4NZUMDT-C5yEmbaZ.js → es-ES-U4NZUMDT-DFBzV9Yy.js} +1 -1
  546. package/payload/shared/web/{eu-ES-A7QVB2H4-BJR6dFFp.js → eu-ES-A7QVB2H4-0w6-moai.js} +1 -1
  547. package/payload/shared/web/{eventmodeling-NTZA5JFV-DI7fNQlO.js → eventmodeling-NTZA5JFV-XmOSL5zF.js} +2 -2
  548. package/payload/shared/web/{fa-IR-HGAKTJCU-BCz_Ftau.js → fa-IR-HGAKTJCU-DeL8iT-4.js} +1 -1
  549. package/payload/shared/web/{fi-FI-Z5N7JZ37-B-f17R2D.js → fi-FI-Z5N7JZ37-DId7nO78.js} +1 -1
  550. package/payload/shared/web/{file-open-002ab408-hyYj-YWQ.js → file-open-002ab408-iMOXy-UQ.js} +1 -1
  551. package/payload/shared/web/{file-open-7c801643-DypCtGbZ.js → file-open-7c801643-BXZrCgMT.js} +1 -1
  552. package/payload/shared/web/{file-save-3189631c-DP5vC6AA.js → file-save-3189631c-B85XjIhX.js} +1 -1
  553. package/payload/shared/web/{file-save-745eba88-DQC5H-1g.js → file-save-745eba88-Cx6851rX.js} +1 -1
  554. package/payload/shared/web/flowDiagram-HODETNUW-ZexYu0VW.js +16 -0
  555. package/payload/shared/web/{fr-FR-RHASNOE6-DmkeKeyA.js → fr-FR-RHASNOE6-C2SqDt2f.js} +1 -1
  556. package/payload/shared/web/{ganttDiagram-EL5Y4UJY-9UcawiqG.js → ganttDiagram-EL5Y4UJY-DA2nlOcA.js} +17 -17
  557. package/payload/shared/web/{gitGraph-4MIJSDKK-Brimk1PV.js → gitGraph-4MIJSDKK-B_2ylg-T.js} +2 -2
  558. package/payload/shared/web/{gitGraphDiagram-WWUBYQGX-BYFpRlq8.js → gitGraphDiagram-WWUBYQGX-BZjm5RcZ.js} +9 -9
  559. package/payload/shared/web/{gl-ES-HMX3MZ6V-D4X9brTj.js → gl-ES-HMX3MZ6V-EefQ7u9k.js} +1 -1
  560. package/payload/shared/web/{graphlib-i6IPrIm0.js → graphlib-IZvVIPU5.js} +144 -144
  561. package/payload/shared/web/{he-IL-6SHJWFNN-C_1Gs06a.js → he-IL-6SHJWFNN-DYkTYs94.js} +1 -1
  562. package/payload/shared/web/{hi-IN-IWLTKZ5I-n-1X_Yh_.js → hi-IN-IWLTKZ5I-CkfwgAJA.js} +1 -1
  563. package/payload/shared/web/{hu-HU-A5ZG7DT2-DZE5a3kU.js → hu-HU-A5ZG7DT2-ClBQ6lLF.js} +1 -1
  564. package/payload/shared/web/{id-ID-SAP4L64H-kyW1-Blg.js → id-ID-SAP4L64H-DvER4xvx.js} +1 -1
  565. package/payload/shared/web/info-A6RAGUB7-duLtohtn.js +3 -0
  566. package/payload/shared/web/{infoDiagram-27XIBGKW-B_sYOrDT.js → infoDiagram-27XIBGKW-CzDCycY7.js} +6 -6
  567. package/payload/shared/web/{isSymbol-C7nLo9aG.js → isSymbol-CEdps2r0.js} +9 -9
  568. package/payload/shared/web/{ishikawaDiagram-5VMMS53U-Dbq0pjSI.js → ishikawaDiagram-5VMMS53U-YM_nllCx.js} +7 -7
  569. package/payload/shared/web/{it-IT-JPQ66NNP-CYr0JsnF.js → it-IT-JPQ66NNP-BtgvuNqA.js} +1 -1
  570. package/payload/shared/web/{ja-JP-DBVTYXUO-C_IigVNV.js → ja-JP-DBVTYXUO-D9wiuFej.js} +1 -1
  571. package/payload/shared/web/{journeyDiagram-3NMN7TZE-CzWCm5-W.js → journeyDiagram-3NMN7TZE-CoWwDje6.js} +8 -8
  572. package/payload/shared/web/{kaa-6HZHGXH3-CfWQ1jHJ.js → kaa-6HZHGXH3-BHZSZXW-.js} +1 -1
  573. package/payload/shared/web/{kab-KAB-ZGHBKWFO-B3pHuBR-.js → kab-KAB-ZGHBKWFO-Dqo-geKe.js} +1 -1
  574. package/payload/shared/web/{kanban-definition-UXKFOSKX-BPt2iOge.js → kanban-definition-UXKFOSKX-3aLeRSiG.js} +13 -13
  575. package/payload/shared/web/{katex-DhTJdtYJ.js → katex-I2DwPdKI.js} +1 -1
  576. package/payload/shared/web/{kk-KZ-P5N5QNE5-CQpxXuIU.js → kk-KZ-P5N5QNE5-CSiLpDDm.js} +1 -1
  577. package/payload/shared/web/{km-KH-HSX4SM5Z-Dc7wato0.js → km-KH-HSX4SM5Z-D20dgcx_.js} +1 -1
  578. package/payload/shared/web/{ko-KR-MTYHY66A-DLW_Eenb.js → ko-KR-MTYHY66A-Cr3UWuN-.js} +1 -1
  579. package/payload/shared/web/{ku-TR-6OUDTVRD-DmL5F-rU.js → ku-TR-6OUDTVRD-xSKCnKwv.js} +1 -1
  580. package/payload/shared/web/{lt-LT-XHIRWOB4-BuHt1LRQ.js → lt-LT-XHIRWOB4-DoWNhw5g.js} +1 -1
  581. package/payload/shared/web/{lv-LV-5QDEKY6T-BR0l3jdi.js → lv-LV-5QDEKY6T-DZluM1Mm.js} +1 -1
  582. package/payload/shared/web/{mermaid-parser.core-CgDHe7WO.js → mermaid-parser.core-DnY1htet.js} +32 -32
  583. package/payload/shared/web/{mindmap-definition-YA3MSWOX--s-o7l9c.js → mindmap-definition-YA3MSWOX-DRNXCmO0.js} +18 -18
  584. package/payload/shared/web/{mr-IN-CRQNXWMA-ByPSg8_m.js → mr-IN-CRQNXWMA-B03V3swm.js} +1 -1
  585. package/payload/shared/web/{my-MM-5M5IBNSE-C1BGhC6H.js → my-MM-5M5IBNSE-BjQaoQW0.js} +1 -1
  586. package/payload/shared/web/{nb-NO-T6EIAALU-B3KhPAe1.js → nb-NO-T6EIAALU-DTdYYLUl.js} +1 -1
  587. package/payload/shared/web/{nl-NL-IS3SIHDZ-CtvOo1al.js → nl-NL-IS3SIHDZ-Vo9Yq_Wa.js} +1 -1
  588. package/payload/shared/web/{nn-NO-6E72VCQL-CerdLebG.js → nn-NO-6E72VCQL-Cl_lMD3g.js} +1 -1
  589. package/payload/shared/web/{oc-FR-POXYY2M6-lPXDyA40.js → oc-FR-POXYY2M6-Bv4EXtHS.js} +1 -1
  590. package/payload/shared/web/{pa-IN-N4M65BXN-CXY0SKG3.js → pa-IN-N4M65BXN-Ivq_kz4R.js} +1 -1
  591. package/payload/shared/web/{packet-AYTQ26CC-DXyLibyW.js → packet-AYTQ26CC-BeuKx6fy.js} +2 -2
  592. package/payload/shared/web/{pegDiagram-XKGWAZYB-BtVScKlh.js → pegDiagram-XKGWAZYB-CGLzYbaw.js} +8 -8
  593. package/payload/shared/web/pie-WAS4IAKB-DcI1RMZv.js +3 -0
  594. package/payload/shared/web/{pieDiagram-E7YTZNPT-BVRgxFzd.js → pieDiagram-E7YTZNPT-B6GVy0qH.js} +12 -12
  595. package/payload/shared/web/{pl-PL-T2D74RX3-BVmN6-gn.js → pl-PL-T2D74RX3-DqFHvkmp.js} +1 -1
  596. package/payload/shared/web/{pt-BR-5N22H2LF-VoMeGWv5.js → pt-BR-5N22H2LF-CO_8DmZd.js} +1 -1
  597. package/payload/shared/web/{pt-PT-UZXXM6DQ-BCeApATc.js → pt-PT-UZXXM6DQ-BMJuk4To.js} +1 -1
  598. package/payload/shared/web/{quadrantDiagram-AXDQQJYC-CoI_hWsn.js → quadrantDiagram-AXDQQJYC-DE5sXpKH.js} +5 -5
  599. package/payload/shared/web/{radar-RG4KPBEZ-ik5LQn3z.js → radar-RG4KPBEZ-BKY8elAK.js} +2 -2
  600. package/payload/shared/web/{railroad-74A4TZTK-yLJ9q3Fv.js → railroad-74A4TZTK-CW_nEJZz.js} +2 -2
  601. package/payload/shared/web/{railroad-abnf-HS5TGJTU-DrnMEW8S.js → railroad-abnf-HS5TGJTU-H1WoP0LB.js} +2 -2
  602. package/payload/shared/web/{railroad-ebnf-LZEXJU2U-C3E4zm5K.js → railroad-ebnf-LZEXJU2U-Bs-P8f_r.js} +2 -2
  603. package/payload/shared/web/{railroad-peg-WCYAUIDC-COIlHGKU.js → railroad-peg-WCYAUIDC-DTfoquCH.js} +2 -2
  604. package/payload/shared/web/{railroadDiagram-O6MQD6OU-CQvkXn2E.js → railroadDiagram-O6MQD6OU-Ca-PpPGk.js} +8 -8
  605. package/payload/shared/web/{requirementDiagram-BXWQKSXE-BeMX6Y3_.js → requirementDiagram-BXWQKSXE-DP4VOmR2.js} +15 -15
  606. package/payload/shared/web/{ro-RO-JPDTUUEW-BVI89rBX.js → ro-RO-JPDTUUEW-wub-ktCt.js} +1 -1
  607. package/payload/shared/web/{rough.esm-T_8Mwfec.js → rough.esm-xFpb4w-e.js} +1 -1
  608. package/payload/shared/web/{roundRect-BCKJUrpT.js → roundRect-CiUKrNBl.js} +1 -1
  609. package/payload/shared/web/{ru-RU-B4JR7IUQ-Bs2zkyCL.js → ru-RU-B4JR7IUQ-DXCR-i7O.js} +1 -1
  610. package/payload/shared/web/{sankeyDiagram-P5KCCOFB-DAW2tMQQ.js → sankeyDiagram-P5KCCOFB-BL3ojAdo.js} +19 -19
  611. package/payload/shared/web/{sequenceDiagram-WJ2MYXX4-CIyt6uFH.js → sequenceDiagram-WJ2MYXX4-ujcnLF_G.js} +10 -10
  612. package/payload/shared/web/{si-LK-N5RQ5JYF-W6ZZjLGV.js → si-LK-N5RQ5JYF-Ca3ZwwCL.js} +1 -1
  613. package/payload/shared/web/{sizeCapture-INFHLROL-BkZtG6WP.js → sizeCapture-INFHLROL-CZKSpazb.js} +2 -2
  614. package/payload/shared/web/{sk-SK-C5VTKIMK-DsS1TRNt.js → sk-SK-C5VTKIMK-DenC-fjy.js} +1 -1
  615. package/payload/shared/web/{sl-SI-NN7IZMDC-lOGyvagL.js → sl-SI-NN7IZMDC-DtM7BQc1.js} +1 -1
  616. package/payload/shared/web/{src-DBqTbpm9.js → src-24Xrayxx.js} +5 -5
  617. package/payload/shared/web/{src-DAzEjDkt.js → src-CcuvUowz.js} +48 -48
  618. package/payload/shared/web/{stateDiagram-D77RDMKH-Cl5YhtvO.js → stateDiagram-D77RDMKH-JJkfINEX.js} +20 -20
  619. package/payload/shared/web/stateDiagram-v2-MP3YSRHH-CZXyk75K.js +31 -0
  620. package/payload/shared/web/{sv-SE-XGPEYMSR-C133Fo29.js → sv-SE-XGPEYMSR-UNRNl1-1.js} +1 -1
  621. package/payload/shared/web/{swimlanes-42K2YHIH-DRkfAovZ.js → swimlanes-42K2YHIH-Dg-lOZb0.js} +13 -13
  622. package/payload/shared/web/swimlanesDiagram-VR7AAH4N-Dct9otyO.js +30 -0
  623. package/payload/shared/web/{ta-IN-2NMHFXQM-DEEVujwJ.js → ta-IN-2NMHFXQM-DO4YlBNo.js} +1 -1
  624. package/payload/shared/web/{th-TH-HPSO5L25-m4z4u_Rd.js → th-TH-HPSO5L25-BMinzLji.js} +1 -1
  625. package/payload/shared/web/{three.module-DsonTxjC.js → three.module-dXeXHe7o.js} +2 -2
  626. package/payload/shared/web/{timeline-definition-24CTP7MA-Bc0GefZe.js → timeline-definition-24CTP7MA-Bg8KjeCs.js} +8 -8
  627. package/payload/shared/web/{timer-DaJNeeTj.js → timer-BTgWScdY.js} +49 -49
  628. package/payload/shared/web/{toNumber-Dq0WEEGL.js → toNumber-CqUZsI1_.js} +5 -5
  629. package/payload/shared/web/{tr-TR-DEFEU3FU-oqObk9H8.js → tr-TR-DEFEU3FU-BLnQquCD.js} +1 -1
  630. package/payload/shared/web/{treeView-Q6P3EWNA-s6cJWvL2.js → treeView-Q6P3EWNA-Cd8VH-fF.js} +2 -2
  631. package/payload/shared/web/{treemap-WGGIJYW6-B39slRxY.js → treemap-WGGIJYW6-CW0KQiMg.js} +2 -2
  632. package/payload/shared/web/{uk-UA-QMV73CPH-DR5E21g2.js → uk-UA-QMV73CPH-CLj_T-Qw.js} +1 -1
  633. package/payload/shared/web/{vennDiagram-4TSXK5OY-CU3O6wRh.js → vennDiagram-4TSXK5OY-CIU-NiOB.js} +10 -10
  634. package/payload/shared/web/{vi-VN-M7AON7JQ-BTGcSenL.js → vi-VN-M7AON7JQ-CBq7g77v.js} +1 -1
  635. package/payload/shared/web/{wardley-WFR3VGLG-ROBWVVUd.js → wardley-WFR3VGLG-B5B-Yr-P.js} +2 -2
  636. package/payload/shared/web/{wardleyDiagram-VM6X3IG4-USaMhD8m.js → wardleyDiagram-VM6X3IG4-BTSHluSJ.js} +8 -8
  637. package/payload/shared/web/{xychartDiagram-S5SC5T6Z-C8IhDKnq.js → xychartDiagram-S5SC5T6Z-BBeoKAjy.js} +8 -8
  638. package/payload/shared/web/{zh-CN-LNUGB5OW-B8jdxL1j.js → zh-CN-LNUGB5OW-tBK6Iaq-.js} +1 -1
  639. package/payload/shared/web/{zh-HK-E62DVLB3-C01JMzt_.js → zh-HK-E62DVLB3-D5Zq_98f.js} +1 -1
  640. package/payload/shared/web/{zh-TW-RAJ6MFWO-Cdn1Kb1q.js → zh-TW-RAJ6MFWO-B6gAMaOs.js} +1 -1
  641. package/release-hosts.json +1 -1
  642. package/release-manifest.json +649 -206
  643. package/payload/shared/web/channel-CIc-uLOz.js +0 -7
  644. package/payload/shared/web/classDiagram-ZZMXUADV-HbaRZ3Nl.js +0 -31
  645. package/payload/shared/web/classDiagram-v2-VYDZK3BY-Bkk8o06s.js +0 -31
  646. package/payload/shared/web/flowDiagram-HODETNUW-DY-blVtj.js +0 -16
  647. package/payload/shared/web/info-A6RAGUB7-D5Cy9r2z.js +0 -3
  648. package/payload/shared/web/pie-WAS4IAKB-DsYWyNi3.js +0 -3
  649. package/payload/shared/web/stateDiagram-v2-MP3YSRHH-BsQEmOAZ.js +0 -31
  650. package/payload/shared/web/swimlanesDiagram-VR7AAH4N-CDtUk-LJ.js +0 -30
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Yugoo Design Companion — beta
2
2
 
3
- Package: `@yugoo-design/companion@0.1.0-beta.1`.
3
+ Package: `@yugoo-design/companion@0.1.0-beta.3`.
4
4
 
5
5
  Yugoo Design (语构设计系统) is an interactive design plugin for native Agent Hosts.
6
6
  It combines domain methods, Design Projects, versioned Design Files and shared
@@ -11,31 +11,53 @@ This beta is experimental. Native installation, tools, Panel saving, KAG and GRA
11
11
  must be verified for the actual host version and platform. A successful package
12
12
  installation or runtime-load check does not establish all of those capabilities.
13
13
 
14
- Use system Git, Node.js `>=22.19.0 <23` and a durable npm installation directory. Resolve the
14
+ Use Node.js `>=22.19.0 <23` and a durable npm installation directory. This source
15
+ candidate uses the packaged native Git library for runtime versioning; system Git
16
+ is needed only for the explicit CLI diagnostic backend and development fixtures.
17
+ The installed native binding must support the actual operating system and CPU;
18
+ missing support is reported rather than silently spawning system Git. Resolve the
15
19
  selected beta to the exact version and integrity before acquisition; keep the
16
20
  previous installed version available during updates. Do not substitute `latest`.
17
21
 
18
22
  ```sh
19
- npm install --ignore-scripts --save-exact @yugoo-design/companion@0.1.0-beta.1 --registry=https://registry.npmjs.org
23
+ npm install --ignore-scripts --save-exact @yugoo-design/companion@0.1.0-beta.3 --registry=https://registry.npmjs.org
20
24
  npx --no-install design-system --help
21
25
  ```
22
26
 
23
- Have the Agent in your intended host follow the installed CLI's parameters and
24
- that host's setup requirements:
27
+ Ask the Agent in your current host to install or update Yugoo Design as one
28
+ product. It should identify the host from its actual execution context or your
29
+ explicit choice, not from which CLIs happen to be installed. If identity is
30
+ unclear, ask only for the missing host choice. Follow this acquired version's
31
+ CLI parameters and host requirements; a newer source guide does not add commands
32
+ to an already published package. Users do not install DSH and Companion separately:
25
33
 
26
34
  | Host | Native installation route |
27
35
  | --- | --- |
28
- | Codex | `install --host codex`: matching runtime receipt and saved-plan route. |
36
+ | Codex | `install --host codex`: run the existing plan, runtime check and apply transaction, retaining each receipt. |
29
37
  | Claude Code | `install --host claude-code`: native user-scope registration. |
30
38
  | Qoder CLI | `install --host qoder`: native user-scope registration and independent readback. |
31
- | QwenWork | `prepare-desktop --target qwenwork`: prepare the expert suite and its MCP configuration; import through the host. |
32
- | WorkBuddy | `prepare-desktop --target workbuddy`: prepare the stable marketplace and plugin; import or update through the host. |
33
- | DSH | `install --host dsh`: use the bound aggregate, official CLI/Loader and an explicitly selected existing profile. |
39
+ | QwenWork | `install --host qwenwork`: prepare the expert suite and its MCP configuration; import and enable through the host. |
40
+ | WorkBuddy | `install --host workbuddy`: prepare the stable marketplace and plugin; import or update and enable through the host. |
41
+ | DSH | `install --host dsh`: run the existing plan/apply transaction with the bound aggregate, official CLI/Loader and an explicitly selected existing profile. |
42
+
43
+ Supply the required host inputs shown by `design-system --help`. Without a host,
44
+ the entry returns `host-selection-required`; missing inputs return
45
+ `inputs-required`, both with exit code 2 and no installation attempted. The
46
+ Agent should obtain supported native facts itself and ask only for missing
47
+ choices. Explicit saved-plan and `prepare-desktop` routes remain available.
48
+
49
+ The Agent completes executable steps and reports only the required human
50
+ authorization, import, enable, restart or new-session action. Report acquisition,
51
+ registration/import, activation and verified use separately; do not report an
52
+ untested phase as complete. DSH uses its native integration, not a second
53
+ Companion runtime inside the host.
34
54
 
35
55
  Desktop preparation alone does not register or activate a plugin. Native suite
36
56
  versions are separate from npm versions. Preserve unrelated registrations,
37
57
  models, credentials and Design Projects; do not overwrite an owned previous
38
58
  installation path or automatically repeat an uncertain operation.
59
+ Same-version retries and updates must follow the owning adapter's receipt rules;
60
+ this entry does not introduce a universal replacement or rollback mechanism.
39
61
 
40
62
  Start the host normally, then invoke Yugoo Design in the intended conversation.
41
63
  Confirm the actual loaded skill and tools, open a project, edit and save a Panel,
@@ -1,9 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import { fileURLToPath } from 'node:url'
3
3
  import { installerMain } from './installer.mjs'
4
+ const args=process.argv.slice(2)
5
+ const dshInstall=args[0]==='install'&&args.some((arg,index)=>arg==='--host=dsh'||arg==='--host'&&args[index+1]==='dsh')
6
+ const cancellation=new AbortController()
7
+ const cancel=()=>cancellation.abort()
8
+ if(dshInstall) { process.on('SIGINT',cancel);process.on('SIGTERM',cancel) }
4
9
  try {
5
- const result=await installerMain(process.argv.slice(2),{npmRoot:fileURLToPath(new URL('../',import.meta.url))})
10
+ const result=await installerMain(args,{npmRoot:fileURLToPath(new URL('../',import.meta.url)),signal:dshInstall?cancellation.signal:undefined})
6
11
  console.log(JSON.stringify(result))
7
12
  if(process.argv[2]==='check-runtime'&&!['load-verified','disabled','not-applicable'].includes(result.status))process.exitCode=1
8
13
  if(result.status==='failed-partial-state-retained')process.exitCode=1
9
- } catch(error) { console.error(error.message);process.exitCode=1 }
14
+ if(['runtime-not-ready','unsupported-host'].includes(result.status))process.exitCode=1
15
+ if(['host-selection-required','inputs-required'].includes(result.status))process.exitCode=2
16
+ } catch(error) {
17
+ console.error(error.installation ? JSON.stringify({error:error.message,installation:error.installation}) : error.message)
18
+ process.exitCode=1
19
+ } finally {
20
+ if(dshInstall) { process.off('SIGINT',cancel);process.off('SIGTERM',cancel) }
21
+ }
package/bin/installer.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  import { isPathWithin } from './npm-installer-paths.mjs'
2
+ import { assertWindowsPrivate, ensureWindowsPrivateDirectory } from './windows-private-storage.mjs'
2
3
  import assert from 'node:assert/strict'
3
4
  import { createHash, randomUUID } from 'node:crypto'
4
5
  import { cp, lstat, mkdir, readFile, readdir, realpath, rename, rm, rmdir, unlink, writeFile } from 'node:fs/promises'
@@ -10,9 +11,10 @@ import { parseArgs } from 'node:util'
10
11
  import { codexAdapter, assertCodexAdmission, createCodexNativeAdapter } from './npm-installer-codex.mjs'
11
12
  import { createClaudeNativeAdapter, planClaudeInstallation, applyClaudeInstallation, recoverClaudeInstallation } from './npm-installer-claude.mjs'
12
13
  import { installQoderPlugin } from './npm-installer-qoder.mjs'
13
- import { checkRuntime, inspectRuntime } from './npm-runtime-check.mjs'
14
+ import { checkRuntime, inspectRuntime, assertGitRuntimeReceipt } from './npm-runtime-check.mjs'
14
15
  import { runDesktopDshInstaller } from './npm-installer-dsh-desktop.mjs'
15
- import { desktopPreparationMain } from './npm-desktop-preparation.mjs'
16
+ import { desktopPreparationMain, desktopPreparationReuseMain } from './npm-desktop-preparation.mjs'
17
+ import { agentInstallation, AGENT_INSTALL_HOSTS, DESKTOP_INSTALL_OPTIONS } from './npm-agent-installation.mjs'
16
18
  import { createDshInstallerAdapter, planDshInstallation, applyDshInstallation } from './npm-installer-dsh.mjs'
17
19
 
18
20
  export const INSTALL_HOSTS = ['dsh','codex','claude-code','qoder','codex-desktop','qwenwork']
@@ -240,6 +242,7 @@ function testContract(adapter,userRoot) {
240
242
 
241
243
  function runtimeGate(plan,receipt,current,receiptSha256) {
242
244
  assert.ok(receipt&&typeof receipt==='object'&&!Array.isArray(receipt),'An explicit runtime-check receipt is required')
245
+ assertGitRuntimeReceipt(receipt,current)
243
246
  assert.ok(['installed-runtime-readonly','isolated-test-contract'].includes(receipt.scope),'Unknown runtime receipt scope')
244
247
  assert.equal(receipt.npmRoot,plan.npmRoot,'Runtime receipt npmRoot mismatch')
245
248
  assert.equal(receipt.identitySha256,current.identitySha256,'Runtime receipt identity drift')
@@ -682,16 +685,23 @@ async function dshOutputDirectory(path,{npmRoot,config,configPath,planPath}) {
682
685
  for(const root of roots)assert.ok(outside(root,output)&&outside(output,root),'DSH output overlaps a package, host or user configuration root')
683
686
  for(const file of [configPath,planPath].filter(Boolean))
684
687
  assert.ok(outside(output,resolve(file))&&outside(resolve(file),output),'DSH output overlaps config or saved plan')
688
+ if(process.platform==='win32') {
689
+ try { await lstat(output) } catch(error) { if(error.code==='ENOENT')return output; throw error }
690
+ await assertWindowsPrivate(output,{directory:true})
691
+ }
685
692
  return output
686
693
  }
687
694
  async function writeDshOutput(directory,name,value) {
688
- await safePath(directory);await mkdir(directory,{recursive:true});await safePath(directory)
695
+ await safePath(directory)
696
+ if(process.platform==='win32')await ensureWindowsPrivateDirectory(directory)
697
+ else await mkdir(directory,{recursive:true})
698
+ await safePath(directory)
689
699
  const path=join(directory,name)
690
700
  // Exclusive create, never overwrite even an unrelated file at a digest name.
691
701
  await safePath(path);await writeFile(path,encode(value),{flag:'wx',mode:0o600})
692
702
  return path
693
703
  }
694
- async function dshInstallerEntry(values,{npmRoot,dshAdapterFactory,args}) {
704
+ async function dshInstallerEntry(values,{npmRoot,dshAdapterFactory,args,signal,dshInstallTimeoutMs}) {
695
705
  assert.ok(values['dry-run']===true&&values.apply!==true||values.apply===true&&values['dry-run']!==true,'Choose exactly dry-run or apply')
696
706
  for(const key of ['codex-executable','user-root','runtime-receipt','disable-embedding','receipt'])
697
707
  assert.ok(!Object.hasOwn(values,key),`DSH install does not accept --${key}`)
@@ -700,7 +710,7 @@ async function dshInstallerEntry(values,{npmRoot,dshAdapterFactory,args}) {
700
710
  const selection=await dshReleaseSelection(values,npmRoot)
701
711
  const configPath=values['dsh-config'],config=await dshConfiguration(configPath)
702
712
  if (config.desktopHostManifest && !process.versions.electron)
703
- return runDesktopDshInstaller({ node:config.node, args, npmRoot })
713
+ return runDesktopDshInstaller({ node:config.node, args, npmRoot, signal, timeoutMs:dshInstallTimeoutMs })
704
714
  const output=await dshOutputDirectory(values['receipt-dir'],{npmRoot,config,configPath})
705
715
  const adapter=await dshAdapterFactory({...config,scope:'official-pinned'})
706
716
  let aggregateDirectory
@@ -725,7 +735,7 @@ async function dshInstallerEntry(values,{npmRoot,dshAdapterFactory,args}) {
725
735
  const fresh=await planDshInstallation(options)
726
736
  assert.deepEqual(plan.protocol,fresh.protocol,'Saved official pins/home/version mismatch')
727
737
  assert.equal(plan.planSha256,fresh.planSha256,'Saved DSH plan or profile drifted')
728
- const result=await applyDshInstallation(plan,{adapter})
738
+ const result=await applyDshInstallation(plan,{adapter,signal,timeoutMs:dshInstallTimeoutMs,logDirectory:output})
729
739
  const receipt={...result,host:'dsh',route:'official-dsh-bundle',planSha256:plan.planSha256}
730
740
  const receiptFile=await writeDshOutput(output,randomUUID()+'.dsh-result.json',receipt)
731
741
  return {...receipt,receiptFile}
@@ -786,18 +796,19 @@ export async function nativePluginDirectory({npmRoot,host}) {
786
796
  }
787
797
  }
788
798
 
789
- export async function installerMain(args,{npmRoot,userRoot=homedir(),adapter=codexAdapter,dshAdapterFactory=createDshInstallerAdapter,claudeAdapterFactory=createClaudeNativeAdapter,qoderInstaller=installQoderPlugin}={}) {
799
+ export async function installerMain(args,{npmRoot,userRoot=homedir(),adapter=codexAdapter,dshAdapterFactory=createDshInstallerAdapter,claudeAdapterFactory=createClaudeNativeAdapter,qoderInstaller=installQoderPlugin,agentDispatch=true,signal,dshInstallTimeoutMs}={}) {
790
800
  if(args[0]==='prepare-desktop')return desktopPreparationMain(args.slice(1),{npmRoot})
791
801
  const {values,positionals}=parseArgs({args,allowPositionals:true,options:{host:{type:'string'},'dry-run':{type:'boolean'},
792
802
  help:{type:'boolean',short:'h'},apply:{type:'boolean'},plan:{type:'string'},'receipt-dir':{type:'string'},receipt:{type:'string'},'runtime-receipt':{type:'string'},'codex-executable':{type:'string'},'claude-executable':{type:'string'},'user-root':{type:'string'},'disable-embedding':{type:'boolean'},
793
803
  'qoder-executable':{type:'string'},'qoder-config-dir':{type:'string'},
794
- 'dsh-config':{type:'string'},profile:{type:'string'},'aggregate-selector':{type:'string'},registry:{type:'string'}}})
804
+ 'dsh-config':{type:'string'},profile:{type:'string'},'aggregate-selector':{type:'string'},registry:{type:'string'},
805
+ ...Object.fromEntries(DESKTOP_INSTALL_OPTIONS.map(key=>[key,{type:key==='separate-mcp'?'boolean':'string'}]))}})
795
806
  if(values.help)return {
796
807
  schemaVersion:1,kind:'installer-help',status:'not-applicable',
797
808
  usage:'design-system <command> [options]',
798
809
  commands:{
799
810
  'prepare-desktop':'Prepare a small QwenWork suite or stable WorkBuddy market from this exact acquired npm package. Uses --target, --package-name/--package-version, --suite-version, --node-executable and an external --destination; does not register a host. Updates use the previous preparation receipt.',
800
- install:'Install persistently through the selected native host. Claude accepts a direct install with executable and receipt directory, or --dry-run / --apply. DSH/Codex use their existing saved-plan routes.',
811
+ install:'The current Agent selects --host from trusted context or one user choice. Direct install orchestrates the existing DSH/Codex saved-plan routes, native Claude/Qoder registration, or QwenWork/WorkBuddy import preparation. Missing inputs and pending activation are explicit. Existing --dry-run / --apply remain available.',
801
812
  'plugin-directory':'Inspect the optional Claude/Qoder session-only --plugin-dir entry; this is not persistent installation.',
802
813
  'check-runtime':'Check runtime prerequisites and write an external runtime receipt; does not install.',
803
814
  recover:'Recover an owned Codex or Claude installation transaction using --receipt.',
@@ -805,7 +816,7 @@ export async function installerMain(args,{npmRoot,userRoot=homedir(),adapter=cod
805
816
  },
806
817
  options:{
807
818
  '--help, -h':'Show this JSON usage without reading configuration or registering a host.',
808
- '--host <host>':`Explicit host: ${INSTALL_HOSTS.join(', ')}. Names do not imply verified registration.`,
819
+ '--host <host>':`Current host: ${AGENT_INSTALL_HOSTS.join(', ')}. Omission requests one choice; installed binaries are not active-host identity. Explicit legacy codex-desktop remains plan-only.`,
809
820
  '--dry-run':'Prepare an install plan; requires --receipt-dir and writes that plan.',
810
821
  '--apply':'Apply a saved plan. Codex and Claude require --runtime-receipt; DSH requires explicit pins and external --receipt-dir.',
811
822
  '--plan <file>':'Saved installation plan used by --apply.',
@@ -822,12 +833,27 @@ export async function installerMain(args,{npmRoot,userRoot=homedir(),adapter=cod
822
833
  '--profile <name>':'DSH install only: explicitly selected existing profile; never initialized implicitly.',
823
834
  '--aggregate-selector <name@version>':'DSH install only: optional exact aggregate override matching the product release mapping; required for old or unbound candidates.',
824
835
  '--registry <https-url>':'DSH install only: optional credential-free HTTPS registry override matching the product mapping; required for old or unbound candidates.',
836
+ '--destination <directory>':'QwenWork/WorkBuddy direct install: exclusive external preparation directory, or the same owned directory with --previous-receipt.',
837
+ '--suite-version <version>':'QwenWork/WorkBuddy: exact native suite version, separate from the acquired npm version.',
838
+ '--node-executable <path>':'QwenWork/WorkBuddy: absolute Windows Node path used by the imported suite.',
839
+ '--qwenwork-runtime <file>':'QwenWork: verified native executable/worker/Node paths and byte pins. Agent obtains these through supported native inspection; no credentials.',
840
+ '--separate-mcp':'QwenWork: emit one external connector instead of bundling it when organization policy requires this.',
841
+ '--previous-receipt <file>':'Desktop: verify and reuse this owned preparation for a same-version repeat, or prepare a strictly newer native suite/npm version using its update boundary.',
842
+ '--npm-root-windows, --destination-windows':'Desktop: explicit Windows path mappings required when preparing from another platform; native Windows paths must match actual roots.',
825
843
  },
826
- limitations:['plugin-directory is an optional session-only diagnostic, not installation. Persistent installation uses native host registration. Codex requires an admitted adapter; DSH requires pinned public CLI inputs; unimplemented hosts are plan-only.',
844
+ limitations:['plugin-directory is an optional session-only diagnostic, not installation. Codex requires an admitted adapter; DSH requires pinned public CLI inputs. Desktop preparation needs native import and activation. Exit 2 means host selection or inputs are required; exit 0 does not establish a usable native session.',
827
845
  'DSH failures retain partial state without rollback. Configuration parsing is not actual host runtime or release acceptance.',
828
846
  'Uninstall requires a successful owned receipt. Package installation is not Bundle/Panel/GRA/KAG acceptance.'],
829
847
  }
830
848
  assert.equal(positionals.length,1,'Exactly one installer command required')
849
+ if(agentDispatch&&positionals[0]==='install'&&!values['dry-run']&&!values.apply) {
850
+ const context={npmRoot,userRoot,adapter,dshAdapterFactory,claudeAdapterFactory,qoderInstaller,agentDispatch:false,signal,dshInstallTimeoutMs}
851
+ return agentInstallation(values,{npmRoot,admittedCodexAdapter:adapter!==codexAdapter,
852
+ invoke:nextArgs=>installerMain(nextArgs,context),
853
+ desktopPrepare:nextArgs=>desktopPreparationMain(nextArgs,{npmRoot}),
854
+ desktopReuse:nextArgs=>desktopPreparationReuseMain(nextArgs,{npmRoot})})
855
+ }
856
+ for(const key of DESKTOP_INSTALL_OPTIONS)assert.ok(!Object.hasOwn(values,key),`--${key} is only valid for direct desktop install`)
831
857
  if(positionals[0]==='plugin-directory'&&['claude-code','qoder'].includes(values.host)) {
832
858
  assert.deepEqual(Object.keys(values),['host'],'Native directory entry accepts only --host; transaction/runtime options must not be silently ignored')
833
859
  return nativePluginDirectory({npmRoot,host:values.host})
@@ -880,7 +906,7 @@ export async function installerMain(args,{npmRoot,userRoot=homedir(),adapter=cod
880
906
  }
881
907
  return {...plan,planFile:path}
882
908
  }
883
- if(values.host==='dsh'&&positionals[0]==='install')return dshInstallerEntry(values,{npmRoot,dshAdapterFactory,args})
909
+ if(values.host==='dsh'&&positionals[0]==='install')return dshInstallerEntry(values,{npmRoot,dshAdapterFactory,args,signal,dshInstallTimeoutMs})
884
910
  if(adapter===codexAdapter&&values['codex-executable']&&positionals[0]!=='check-runtime') {
885
911
  assert.equal(values.host,'codex','Native executable is only valid for the Codex host')
886
912
  const profile=resolve(values['user-root']??userRoot)
@@ -0,0 +1,141 @@
1
+ /** Agent-facing orchestration of the existing native installers, not a registration authority. */
2
+ import assert from 'node:assert/strict'
3
+ import { randomUUID } from 'node:crypto'
4
+ import { lstat, readFile } from 'node:fs/promises'
5
+ import { join } from 'node:path'
6
+
7
+ export const AGENT_INSTALL_HOSTS = ['dsh', 'codex', 'claude-code', 'qoder', 'qwenwork', 'workbuddy']
8
+ export const DESKTOP_INSTALL_OPTIONS = ['destination', 'node-executable', 'suite-version', 'npm-root-windows',
9
+ 'destination-windows', 'qwenwork-runtime', 'separate-mcp', 'previous-receipt']
10
+ const nativeOptions = {
11
+ dsh: ['host', 'receipt-dir', 'dsh-config', 'profile', 'aggregate-selector', 'registry'],
12
+ codex: ['host', 'receipt-dir', 'codex-executable', 'user-root', 'disable-embedding'],
13
+ 'claude-code': ['host', 'receipt-dir', 'claude-executable', 'user-root', 'disable-embedding'],
14
+ qoder: ['host', 'receipt-dir', 'qoder-executable', 'qoder-config-dir'],
15
+ }
16
+
17
+ function argv(command, values, keys) {
18
+ const args = [command]
19
+ for (const key of keys) if (Object.hasOwn(values, key)) {
20
+ args.push('--' + key)
21
+ if (typeof values[key] !== 'boolean') args.push(values[key])
22
+ else assert.equal(values[key], true, 'False CLI flags are not supported')
23
+ }
24
+ return args
25
+ }
26
+ function pending(host, status, missing, message) {
27
+ return { schemaVersion: 1, kind: 'agent-installation', status, host: host ?? null,
28
+ hostRegistered: false, usable: false, missing,
29
+ installation: { host: host ?? null, acquisition: 'unverified', registration: 'not-performed',
30
+ activation: 'not-performed', usability: 'unverified', nextActions: [{ action: 'supply-inputs', automatic: false, message }] } }
31
+ }
32
+ function activationActions(host, result) {
33
+ const verify = { action: 'verify-native-session', automatic: true,
34
+ message: 'In the intended native conversation, verify the actually loaded Yugoo Design version and tools; then open a project and verify Panel save/reopen and original-conversation receipt. Registration alone is not usability.' }
35
+ if (host === 'qwenwork') return [
36
+ { action: 'import-expert-suite', automatic: false, path: result.nativeImport?.archive,
37
+ message: 'Import this exact expert-suite ZIP through QwenWork. If bundled MCP is disabled by organization policy, use the emitted connector configuration and retain exactly one Yugoo Design connector.' },
38
+ { action: 'activate-native-suite', automatic: false,
39
+ message: 'Enable the imported suite; start a new native conversation if QwenWork requires it. Retain the acquired npm runtime and confirm the actually loaded suite version.' }, verify]
40
+ if (host === 'workbuddy') return [
41
+ { action: 'import-or-update-market', automatic: false, path: result.nativeImport?.market,
42
+ message: 'Import this stable marketplace through WorkBuddy, or refresh the same market and update its existing Yugoo Design plugin. Preparation has not registered or activated it.' },
43
+ { action: 'activate-native-plugin', automatic: false,
44
+ message: 'Enable the plugin and start a new native conversation if WorkBuddy requires it; confirm the actually loaded suite version.' }, verify]
45
+ return [{ action: 'activate-native-session', automatic: false,
46
+ message: host === 'dsh'
47
+ ? 'Use the selected existing DSH profile and the host-supported plugin activation/restart flow; verify runtime loading in a new native session.'
48
+ : host === 'codex'
49
+ ? 'Start a new Codex conversation normally in the intended workspace and invoke the installed yugoo Skill through the native Skill entry. Retain the registered npm runtime.'
50
+ : 'Start a new native host conversation normally in the intended workspace and invoke /yugoo-design:yugoo. Retain the registered npm runtime; no --plugin-dir is needed.' }, verify]
51
+ }
52
+
53
+ /** Project only verified facts from the owning native/preparation receipt. */
54
+ export function installationResult(host, result, packageIdentity) {
55
+ const failed = result.status === 'failed-partial-state-retained'
56
+ const desktop = host === 'qwenwork' || host === 'workbuddy'
57
+ const registered = !desktop && !failed && (result.hostRegistered === true
58
+ || host === 'dsh' && result.status === 'registered-config-parsed' && result.readback?.bundleRegistered === true)
59
+ const identity = result.package ?? packageIdentity
60
+ return { ...result, host, usable: false,
61
+ installation: { host, package: identity ?? null,
62
+ acquisition: identity?.name && identity?.version && (host !== 'dsh' || result.readback?.packageInstalled === true) ? 'available' : 'unverified',
63
+ // This entry consumes an acquired installation; it never verifies a registry download.
64
+ registryAcquisitionVerified: false,
65
+ registration: failed ? 'failed-partial-state-retained' : registered ? 'verified' : 'not-performed',
66
+ activation: failed ? 'not-performed' : 'required', usability: 'unverified',
67
+ nextActions: failed ? [{ action: 'inspect-retained-state', automatic: false, path: result.receiptFile,
68
+ message: 'Inspect the owning receipt and retained DSH state before another operation. No automatic rollback or retry was attempted.' }]
69
+ : activationActions(host, result) } }
70
+ }
71
+
72
+ export async function agentInstallation(values, { npmRoot, invoke, desktopPrepare, desktopReuse,
73
+ admittedCodexAdapter = false, platform = process.platform } = {}) {
74
+ const host = values.host
75
+ // Installed executables, PATH, host profiles and process names cannot identify this conversation.
76
+ if (!host) return { ...pending(null, 'host-selection-required', ['host'],
77
+ 'Select the host of this conversation. If trusted native context identifies it, the current Agent should supply --host; otherwise ask one host-selection question.'), hosts: AGENT_INSTALL_HOSTS }
78
+ if (host === 'codex-desktop') return pending(host, 'unsupported-host', [],
79
+ 'Codex Desktop native registration is not implemented by this entry. Select the actual supported host; do not substitute a CLI or infer usability from a prepared plan.')
80
+ assert.ok(AGENT_INSTALL_HOSTS.includes(host), 'Explicit supported host required')
81
+ const desktop = host === 'qwenwork' || host === 'workbuddy'
82
+ const allowed = desktop ? ['host', ...DESKTOP_INSTALL_OPTIONS] : nativeOptions[host]
83
+ for (const key of Object.keys(values)) assert.ok(allowed.includes(key), `${host} install accepts only ${allowed.map(k => '--' + k).join(', ')}; unsupported option --${key}`)
84
+ const required = desktop ? ['destination', 'node-executable', 'suite-version'] : ['receipt-dir']
85
+ if (host === 'dsh') required.push('dsh-config', 'profile')
86
+ if (host === 'codex' && !admittedCodexAdapter) required.push('codex-executable')
87
+ if (host === 'claude-code') required.push('claude-executable')
88
+ if (host === 'qwenwork') required.push('qwenwork-runtime')
89
+ if (host === 'workbuddy') for (const key of ['qwenwork-runtime', 'separate-mcp'])
90
+ assert.ok(!Object.hasOwn(values, key), `WorkBuddy install does not accept --${key}`)
91
+ if (desktop && platform !== 'win32') required.push('npm-root-windows', 'destination-windows')
92
+ const missing = required.filter(key => typeof values[key] !== 'string' || !values[key])
93
+ if (missing.length) return pending(host, 'inputs-required', missing,
94
+ `The current Agent should obtain verified values for ${missing.map(key => '--' + key).join(', ')}. Ask only for information or host actions it cannot obtain through supported native inspection. No installation was attempted.`)
95
+
96
+ let plan
97
+ try {
98
+ if (desktop) {
99
+ const path = join(npmRoot, 'package.json'), info = await lstat(path)
100
+ assert.ok(info.isFile() && info.size <= 1024 * 1024, 'Expected bounded regular acquired package manifest')
101
+ const manifest = JSON.parse(await readFile(path, 'utf8'))
102
+ const args = argv('prepare-desktop', values, DESKTOP_INSTALL_OPTIONS).slice(1)
103
+ args.push('--target', host, '--package-name', manifest.name, '--package-version', manifest.version)
104
+ const reused = values['previous-receipt'] && await desktopReuse(args)
105
+ return installationResult(host, reused || await desktopPrepare(args))
106
+ }
107
+ if (host === 'claude-code' || host === 'qoder')
108
+ return installationResult(host, await invoke(argv('install', values, allowed)))
109
+ // DSH's exclusive plan files are never overwritten. Each direct operation gets
110
+ // its own receipt subdirectory; Codex keeps the stable directory needed by upgrades.
111
+ const nativeValues = host === 'dsh' ? { ...values, 'receipt-dir': join(values['receipt-dir'], randomUUID()) } : values
112
+ const dryArgs = argv('install', nativeValues, allowed)
113
+ dryArgs.push('--dry-run')
114
+ plan = await invoke(dryArgs)
115
+ assert.ok(plan.planFile, 'The owning installer did not retain an installation plan')
116
+ if (host === 'codex') {
117
+ assert.equal(plan.applySupported, true, 'Codex native installation is not admitted by the owning adapter')
118
+ const runtime = await invoke(argv('check-runtime', values, ['host', 'receipt-dir', 'disable-embedding']))
119
+ if (!['load-verified', 'disabled'].includes(runtime.status)) return {
120
+ ...pending(host, 'runtime-not-ready', [], 'Inspect the runtime receipt. No native apply was attempted; repair the reported prerequisites before re-running install.'),
121
+ runtimeReceipt: runtime, planFile: plan.planFile }
122
+ assert.ok(runtime.receiptFile, 'The owning runtime checker did not retain its receipt')
123
+ const applyArgs = argv('install', values, allowed.filter(key => !['receipt-dir', 'disable-embedding'].includes(key)))
124
+ applyArgs.push('--apply', '--plan', plan.planFile, '--runtime-receipt', runtime.receiptFile)
125
+ return installationResult(host, await invoke(applyArgs), plan.package)
126
+ }
127
+ const applyArgs = argv('install', nativeValues, allowed)
128
+ applyArgs.push('--apply', '--plan', plan.planFile)
129
+ return installationResult(host, await invoke(applyArgs), plan.package)
130
+ } catch (error) {
131
+ const receipt = error.receiptFile ?? error.receiptPath ?? null
132
+ error.installation = { host, acquisition: 'unverified', registration: 'failed-or-unconfirmed',
133
+ activation: 'not-performed', usability: 'unverified', receiptFile: receipt,
134
+ planFile: plan?.planFile ?? null,
135
+ nextActions: [{ action: receipt ? 'inspect-owned-receipt' : 'inspect-failure', automatic: false,
136
+ message: host === 'codex' || host === 'claude-code'
137
+ ? 'Inspect the failure and matching owned receipt; use the existing recover --host route only when that receipt requires recovery. Do not delete profiles, projects or unrelated plugins.'
138
+ : 'Inspect retained state before retrying. This host has no general automatic rollback in this entry; use its supported update/recovery flow.' }] }
139
+ throw error
140
+ }
141
+ }
@@ -201,11 +201,61 @@ export async function prepareDesktopPackage({ npmRoot, packageName, packageVersi
201
201
  }
202
202
  }
203
203
 
204
- export async function desktopPreparationMain(args, { npmRoot } = {}) {
204
+ function preparationArguments(args) {
205
205
  const { values, positionals } = parseArgs({ args, options: { help: { type: 'boolean', short: 'h' }, target: { type: 'string' }, 'package-name': { type: 'string' }, 'package-version': { type: 'string' },
206
206
  destination: { type: 'string' }, 'node-executable': { type: 'string' }, 'suite-version': { type: 'string' }, 'npm-root-windows': { type: 'string' }, 'destination-windows': { type: 'string' },
207
207
  'qwenwork-runtime': { type: 'string' }, 'separate-mcp': { type: 'boolean' }, 'previous-receipt': { type: 'string' } }, allowPositionals: true })
208
208
  assert.equal(positionals.length, 0, 'No positional preparation arguments allowed')
209
+ return values
210
+ }
211
+
212
+ /** Same-version reuse under the owning preparation lease; no artifact or receipt rewrite. */
213
+ export async function desktopPreparationReuseMain(args, { npmRoot } = {}) {
214
+ const values = preparationArguments(args)
215
+ if (!values['previous-receipt']) return null
216
+ const output = resolve(values.destination), root = resolve(npmRoot)
217
+ await safe(root); await safe(output)
218
+ assert.equal(await realpath(root), root)
219
+ assert.ok(output !== root && !confined(root, output) && !confined(output, root), 'Preparation must be outside npm package')
220
+ assert.ok(outsideHostProfile(output), 'Do not prepare inside native host profiles')
221
+ const prior = await priorReceipt(resolve(values['previous-receipt'])), body = prior.body
222
+ const manifestBytes = await file(join(npmRoot, 'package.json')), manifest = JSON.parse(manifestBytes)
223
+ if (manifest.version !== body.package.version) return null // The existing preparer owns new-version updates.
224
+ assert.equal(manifest.name, values['package-name']); assert.equal(manifest.version, values['package-version'])
225
+ assert.equal(manifest['x-design-release-review']?.fixture, false, 'Fixture packages cannot reuse desktop imports')
226
+ assert.equal(body.package.npmRoot, resolve(npmRoot), 'Same-version reuse requires the same retained npm directory')
227
+ assert.equal(body.package.manifestSha256, sha(manifestBytes), 'Same-version acquired manifest changed')
228
+ assert.equal(body.target, values.target); assert.equal(body.destination, resolve(values.destination))
229
+ assert.equal(body.suiteVersion, values['suite-version'], 'Same npm version cannot change the native suite version')
230
+ const windowsNpm = windowsPath(values['npm-root-windows'] ?? (process.platform === 'win32' ? npmRoot : undefined))
231
+ const windowsOutput = windowsPath(values['destination-windows'] ?? (process.platform === 'win32' ? body.destination : undefined))
232
+ assert.ok(outsideHostProfile(windowsOutput), 'Do not prepare inside native host profiles')
233
+ if (process.platform === 'win32') { assert.equal(windowsNpm.toLowerCase(), win32.normalize(root).toLowerCase()); assert.equal(windowsOutput.toLowerCase(), win32.normalize(output).toLowerCase()) }
234
+ assert.equal(body.windows.npmRoot, windowsNpm); assert.equal(body.windows.destination, windowsOutput)
235
+ assert.equal(body.windows.nodeExecutable, windowsPath(values['node-executable']), 'Same-version Node path changed')
236
+ if (body.target === 'qwenwork') {
237
+ assert.equal(body.nativeImport.includeMcp, !values['separate-mcp'], 'Same-version connector policy changed')
238
+ const nativePins = JSON.parse(await file(resolve(values['qwenwork-runtime'])))
239
+ assert.deepEqual(nativePins, JSON.parse(await file(join(dirname(body.nativeImport.suite), 'runtime-pins.json'))), 'Same-version native pins changed')
240
+ if (process.platform === 'win32') for (const [path, expected] of [[nativePins.executable, nativePins.executableSha256], [nativePins.worker, nativePins.workerSha256]])
241
+ assert.equal(await streamHash(path), expected, 'QwenWork native bytes do not match provided pins')
242
+ }
243
+ const lock = join(output, '.preparation.lock'), owner = randomUUID()
244
+ // The inventory excludes this transient file, so bytes alone cannot admit a
245
+ // repeat while another preparation is active or interrupted. Reuse its exact
246
+ // exclusive boundary and recheck the snapshot under our own reservation.
247
+ await writeFile(lock, owner, { flag: 'wx', mode: 0o600 })
248
+ try {
249
+ assert.deepEqual(await priorReceipt(resolve(values['previous-receipt'])), prior, 'Preparation changed while acquiring its reuse lock')
250
+ return { ...body, receiptFile: resolve(values['previous-receipt']), receiptSha256: prior.sha256, idempotent: true }
251
+ } finally {
252
+ assert.equal((await file(lock)).toString(), owner, 'Preparation reuse lock ownership changed; retained for inspection')
253
+ await unlink(lock)
254
+ }
255
+ }
256
+
257
+ export async function desktopPreparationMain(args, { npmRoot } = {}) {
258
+ const values = preparationArguments(args)
209
259
  if (values.help) return { kind: 'desktop-preparation-help', status: 'not-applicable', usage: 'design-system prepare-desktop --target qwenwork|workbuddy --package-name EXACT_SCOPED_NAME --package-version EXACT_NPM_VERSION --suite-version NATIVE_RELEASE_VERSION --destination EXTERNAL_DIRECTORY --node-executable ABSOLUTE_WINDOWS_NODE',
210
260
  options: { '--qwenwork-runtime': 'Explicit JSON with existing QwenWork executable/worker/Node paths and exact executable/worker hashes.', '--separate-mcp': 'QwenWork only: omit the suite connector and emit one external connector JSON for organization policy.', '--previous-receipt': 'Verified successful preparation receipt for an owned new-version update; preserves the same WorkBuddy market.', '--npm-root-windows, --destination-windows': 'Explicit target path mapping required for cross-platform preparation; native Windows paths must match actual roots.' },
211
261
  limits: ['Preparation does not acquire from registry, register a host, grant native admission, verify loaded versions or alter a host profile.', 'Acquire the exact npm release first; retain its durable installation and old version until the native update is verified.'] }
@@ -7,7 +7,7 @@ import { homedir } from 'node:os'
7
7
  import { dirname, isAbsolute, join, relative, resolve } from 'node:path'
8
8
  import { pathToFileURL } from 'node:url'
9
9
  import { promisify } from 'node:util'
10
- import { assertRuntimePath, inspectRuntime } from './npm-runtime-check.mjs'
10
+ import { assertRuntimePath, inspectRuntime, assertGitRuntimeReceipt } from './npm-runtime-check.mjs'
11
11
 
12
12
  const execute = promisify(execFile), adapters = new WeakMap(), activeLocks = new Set()
13
13
  const PLUGIN = 'yugoo-design', LEGACY = 'design-system'
@@ -216,6 +216,7 @@ export async function planClaudeInstallation({npmRoot,userRoot,receiptDirectory,
216
216
  }
217
217
  function runtimeGate(plan,receipt,current,s) {
218
218
  assert.ok(receipt&&typeof receipt==='object'&&!Array.isArray(receipt),'Explicit Claude runtime receipt required')
219
+ assertGitRuntimeReceipt(receipt,current)
219
220
  assert.ok(['installed-runtime-readonly','isolated-test-contract'].includes(receipt.scope),'Unknown runtime receipt scope')
220
221
  if(!s.identity.scope.startsWith('isolated-'))assert.equal(receipt.scope,'installed-runtime-readonly','Production requires actual runtime receipt')
221
222
  assert.equal(receipt.npmRoot,plan.npmRoot);assert.equal(receipt.identitySha256,current.identitySha256,'Runtime receipt identity drift')
@@ -8,7 +8,7 @@ import { promisify } from 'node:util'
8
8
 
9
9
  // Electron owns ASAR resolution. Keep the existing installer and official
10
10
  // Loader together in its Node runtime instead of extracting the desktop tree.
11
- export async function runDesktopDshInstaller({ node, args, npmRoot }) {
11
+ export async function runDesktopDshInstaller({ node, args, npmRoot, signal, timeoutMs = 0 }) {
12
12
  assert.ok(node && isAbsolute(node.path), 'Explicit Desktop executable required')
13
13
  assert.match(node.sha256 ?? '', /^[a-f0-9]{64}$/u)
14
14
  assert.ok((await lstat(await realpath(node.path))).isFile(), 'Desktop executable must be a regular file')
@@ -16,13 +16,22 @@ export async function runDesktopDshInstaller({ node, args, npmRoot }) {
16
16
  assert.equal(hash, node.sha256, 'Desktop executable pin changed')
17
17
  assert.ok(Array.isArray(args) && args.every(arg => typeof arg === 'string' && !arg.includes('\0')), 'Installer argv required')
18
18
  assert.ok(typeof npmRoot === 'string' && isAbsolute(npmRoot), 'Retained npm installation must be absolute')
19
- const request = Buffer.from(JSON.stringify({ args, npmRoot })).toString('base64url')
20
- const { stdout } = await promisify(execFile)(node.path,
19
+ assert.ok(Number.isSafeInteger(timeoutMs) && timeoutMs >= 0 && timeoutMs <= 2147483647, 'Invalid install deadline')
20
+ signal?.throwIfAborted()
21
+ const request = Buffer.from(JSON.stringify({ args, npmRoot, timeoutMs })).toString('base64url')
22
+ const pending = promisify(execFile)(node.path,
21
23
  ['--expose-internals', fileURLToPath(import.meta.url), request], {
22
24
  env: { ...process.env, ELECTRON_RUN_AS_NODE: '1' },
23
25
  windowsHide: true, shell: false, maxBuffer: 1024 * 1024,
24
26
  })
25
- return JSON.parse(stdout)
27
+ // Use the pipe on Windows as well: killing the bridge would lose its partial
28
+ // state receipt and says nothing about the official pnpm descendants.
29
+ const cancel = () => { if (pending.child.stdin?.writable) pending.child.stdin.write('cancel\n') }
30
+ pending.child.stdin?.on('error', () => {}) // A closed bridge cannot accept a late cancellation.
31
+ signal?.addEventListener('abort', cancel, { once: true })
32
+ if (signal?.aborted) cancel()
33
+ try { return JSON.parse((await pending).stdout) }
34
+ finally { signal?.removeEventListener('abort', cancel); pending.child.stdin?.destroy() }
26
35
  }
27
36
 
28
37
  if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) {
@@ -32,15 +41,36 @@ if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.ur
32
41
  assert.ok(process.versions.electron, 'Desktop bridge requires Electron Node mode')
33
42
  assert.equal(process.argv.length, 3, 'One installer request required')
34
43
  const request = JSON.parse(Buffer.from(process.argv[2], 'base64url').toString('utf8'))
35
- assert.deepEqual(Object.keys(request).sort(), ['args', 'npmRoot'])
44
+ assert.deepEqual(Object.keys(request).sort(), ['args', 'npmRoot', 'timeoutMs'])
36
45
  assert.ok(Array.isArray(request.args) && request.args.every(arg => typeof arg === 'string' && !arg.includes('\0')), 'Installer argv required')
37
46
  assert.ok(typeof request.npmRoot === 'string' && isAbsolute(request.npmRoot), 'Retained npm installation must be absolute')
38
- const { installerMain } = await import('./npm-installer.mjs').catch(error => {
39
- if (error.code !== 'ERR_MODULE_NOT_FOUND' || !error.url?.endsWith('/npm-installer.mjs')) throw error
40
- // The published bin directory names the same module installer.mjs.
41
- return import('./installer.mjs')
47
+ assert.ok(Number.isSafeInteger(request.timeoutMs) && request.timeoutMs >= 0 && request.timeoutMs <= 2147483647, 'Invalid install deadline')
48
+ const cancellation = new AbortController()
49
+ const cancel = () => cancellation.abort()
50
+ // Terminal Ctrl-C can reach the bridge as well as the outer entry.
51
+ process.on('SIGINT', cancel)
52
+ process.on('SIGTERM', cancel)
53
+ // A partial or malformed control frame cannot authorize any installation.
54
+ let control = ''
55
+ process.stdin.setEncoding('utf8')
56
+ process.stdin.on('data', chunk => {
57
+ control = (control + chunk).slice(-64)
58
+ if (control.includes('cancel\n')) cancellation.abort()
42
59
  })
43
- process.stdout.write(JSON.stringify(await installerMain(request.args, { npmRoot: request.npmRoot })) + '\n')
60
+ try {
61
+ const { installerMain } = await import('./npm-installer.mjs').catch(error => {
62
+ if (error.code !== 'ERR_MODULE_NOT_FOUND' || !error.url?.endsWith('/npm-installer.mjs')) throw error
63
+ // The published bin directory names the same module installer.mjs.
64
+ return import('./installer.mjs')
65
+ })
66
+ process.stdout.write(JSON.stringify(await installerMain(request.args, {
67
+ npmRoot: request.npmRoot, signal: cancellation.signal, dshInstallTimeoutMs: request.timeoutMs,
68
+ })) + '\n')
69
+ } finally {
70
+ process.off('SIGINT', cancel)
71
+ process.off('SIGTERM', cancel)
72
+ process.stdin.destroy()
73
+ }
44
74
  } catch (error) {
45
75
  process.stderr.write(String(error.message) + '\n')
46
76
  process.exitCode = 1