@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.
- package/README.md +31 -9
- package/bin/design-system.mjs +14 -2
- package/bin/installer.mjs +38 -12
- package/bin/npm-agent-installation.mjs +141 -0
- package/bin/npm-desktop-preparation.mjs +51 -1
- package/bin/npm-installer-claude.mjs +2 -1
- package/bin/npm-installer-dsh-desktop.mjs +40 -10
- package/bin/npm-installer-dsh.mjs +98 -17
- package/bin/npm-runtime-check.mjs +75 -1
- package/bin/windows-native-platform.mjs +207 -0
- package/bin/windows-private-storage.mjs +110 -0
- package/licenses/third-party/index.json +14 -0
- package/licenses/third-party/pako-1.0.11/LICENSE +21 -0
- package/licenses/third-party/pako-1.0.11/SOURCE.md +17 -0
- package/licenses/third-party/pako-1.0.11/zlib-README +59 -0
- package/licenses/third-party/provenance.json +22 -0
- package/package.json +3 -2
- package/payload/overlays/claude-code/.claude-plugin/plugin.json +1 -1
- package/payload/overlays/codex/.codex-plugin/plugin.json +1 -1
- package/payload/overlays/qoder/.qoder-plugin/plugin.json +1 -1
- package/payload/shared/authoring/panel-components.json +40 -40
- package/payload/shared/bundles/business_rules/SKILL.md +1 -1
- package/payload/shared/bundles/flow_design/SKILL.md +2 -2
- package/payload/shared/bundles/flow_design/scripts/layout-metrics.mjs +5 -5
- package/payload/shared/bundles/flow_design/scripts/layout-search.mjs +5 -5
- package/payload/shared/bundles/flow_design/scripts/layout.mjs +6 -6
- package/payload/shared/bundles/notification_design/SKILL.md +1 -1
- package/payload/shared/bundles/quality_acceptance/SKILL.md +1 -1
- package/payload/shared/bundles/research/SKILL.md +3 -3
- package/payload/shared/bundles/role_access/SKILL.md +2 -2
- package/payload/shared/git-native/LICENSE +22 -0
- package/payload/shared/git-native/NOTICE +6 -0
- package/payload/shared/git-native/SOURCE.json +252 -0
- package/payload/shared/git-native/index.cjs +59 -0
- package/payload/shared/git-native/index.d.ts +2672 -0
- package/payload/shared/git-native/native/yugoo_git.linux-x64.node +0 -0
- package/payload/shared/git-native/native/yugoo_git.win32-x64.node +0 -0
- package/payload/shared/git-native/native-source/Cargo.lock +696 -0
- package/payload/shared/git-native/native-source/Cargo.toml +36 -0
- package/payload/shared/git-native/native-source/UPSTREAM.patch +162 -0
- package/payload/shared/git-native/native-source/build.rs +26 -0
- package/payload/shared/git-native/native-source/src/blame.rs +177 -0
- package/payload/shared/git-native/native-source/src/blob.rs +64 -0
- package/payload/shared/git-native/native-source/src/branch.rs +143 -0
- package/payload/shared/git-native/native-source/src/buffer_diff.rs +164 -0
- package/payload/shared/git-native/native-source/src/checkout.rs +58 -0
- package/payload/shared/git-native/native-source/src/commit.rs +339 -0
- package/payload/shared/git-native/native-source/src/config.rs +253 -0
- package/payload/shared/git-native/native-source/src/deltas.rs +292 -0
- package/payload/shared/git-native/native-source/src/diff.rs +94 -0
- package/payload/shared/git-native/native-source/src/error.rs +349 -0
- package/payload/shared/git-native/native-source/src/file_modification.rs +683 -0
- package/payload/shared/git-native/native-source/src/index.rs +114 -0
- package/payload/shared/git-native/native-source/src/lib.rs +37 -0
- package/payload/shared/git-native/native-source/src/object.rs +125 -0
- package/payload/shared/git-native/native-source/src/reference.rs +219 -0
- package/payload/shared/git-native/native-source/src/remote.rs +1393 -0
- package/payload/shared/git-native/native-source/src/repo.rs +2546 -0
- package/payload/shared/git-native/native-source/src/repo_builder.rs +158 -0
- package/payload/shared/git-native/native-source/src/rev_walk.rs +263 -0
- package/payload/shared/git-native/native-source/src/signature.rs +122 -0
- package/payload/shared/git-native/native-source/src/status.rs +114 -0
- package/payload/shared/git-native/native-source/src/tag.rs +78 -0
- package/payload/shared/git-native/native-source/src/tree.rs +298 -0
- package/payload/shared/git-native/native-source/src/tree_builder.rs +138 -0
- package/payload/shared/git-native/native-source/src/util.rs +20 -0
- package/payload/shared/git-native/package.json +27 -0
- package/payload/shared/git-native/runtime-manifest.json +1701 -0
- package/payload/shared/git-native/scripts/build.cjs +23 -0
- package/payload/shared/git-native/scripts/check-artifacts.cjs +20 -0
- package/payload/shared/git-native/third-party/CARGO-SOURCES.json +1651 -0
- package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/README.md +98 -0
- package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/abort-controller@3.0.0/package.json +97 -0
- package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/AUTHORS +21 -0
- package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/README.md +177 -0
- package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/SOURCE.json +29 -0
- package/payload/shared/git-native/third-party/javascript/async-lock@1.4.1/package.json +48 -0
- package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/README.md +55 -0
- package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/available-typed-arrays@1.0.7/package.json +93 -0
- package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/README.md +34 -0
- package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/base64-js@1.5.1/package.json +47 -0
- package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/AUTHORS.md +73 -0
- package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/README.md +410 -0
- package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/SOURCE.json +29 -0
- package/payload/shared/git-native/third-party/javascript/buffer@6.0.3/package.json +93 -0
- package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/README.md +62 -0
- package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/call-bind-apply-helpers@1.0.2/package.json +85 -0
- package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/README.md +64 -0
- package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/call-bind@1.0.9/package.json +93 -0
- package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/README.md +53 -0
- package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/call-bound@1.0.4/package.json +99 -0
- package/payload/shared/git-native/third-party/javascript/clean-git-ref@2.0.1/README.md +22 -0
- package/payload/shared/git-native/third-party/javascript/clean-git-ref@2.0.1/SOURCE.json +21 -0
- package/payload/shared/git-native/third-party/javascript/clean-git-ref@2.0.1/package.json +33 -0
- package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/LICENSE +201 -0
- package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/README.md +200 -0
- package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/crc-32@1.2.2/package.json +43 -0
- package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/license +9 -0
- package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/package.json +56 -0
- package/payload/shared/git-native/third-party/javascript/decompress-response@6.0.0/readme.md +48 -0
- package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/README.md +67 -0
- package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/define-data-property@1.1.4/package.json +106 -0
- package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/README.md +28 -0
- package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/SOURCE.json +29 -0
- package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/diff3.js +271 -0
- package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/onp.js +178 -0
- package/payload/shared/git-native/third-party/javascript/diff3@0.0.3/package.json +23 -0
- package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/README.md +54 -0
- package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/dunder-proto@1.0.1/package.json +76 -0
- package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/README.md +49 -0
- package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/es-define-property@1.0.1/package.json +81 -0
- package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/README.md +55 -0
- package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/es-errors@1.3.0/package.json +80 -0
- package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/README.md +63 -0
- package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/es-object-atoms@1.1.2/package.json +79 -0
- package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/README.md +293 -0
- package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/event-target-shim@5.0.1/package.json +82 -0
- package/payload/shared/git-native/third-party/javascript/events@3.3.0/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/events@3.3.0/Readme.md +50 -0
- package/payload/shared/git-native/third-party/javascript/events@3.3.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/events@3.3.0/package.json +37 -0
- package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/README.md +39 -0
- package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/for-each@0.3.5/package.json +76 -0
- package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/LICENSE +20 -0
- package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/README.md +46 -0
- package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/function-bind@1.1.2/package.json +87 -0
- package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/README.md +71 -0
- package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/get-intrinsic@1.3.0/package.json +97 -0
- package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/README.md +50 -0
- package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/get-proto@1.0.1/package.json +81 -0
- package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/README.md +40 -0
- package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/gopd@1.2.0/package.json +77 -0
- package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/README.md +43 -0
- package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/has-property-descriptors@1.0.2/package.json +77 -0
- package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/README.md +46 -0
- package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/has-symbols@1.1.0/package.json +111 -0
- package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/README.md +46 -0
- package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/has-tostringtag@1.0.2/package.json +108 -0
- package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/README.md +40 -0
- package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/hasown@2.0.4/package.json +91 -0
- package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/README.md +138 -0
- package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/iconv-lite@0.7.3/package.json +70 -0
- package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/LICENSE +11 -0
- package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/README.md +51 -0
- package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/ieee754@1.2.1/package.json +52 -0
- package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/LICENSE-MIT +21 -0
- package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/README.md +412 -0
- package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/ignore@5.3.2/package.json +74 -0
- package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/LICENSE +16 -0
- package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/README.md +42 -0
- package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/inherits@2.0.4/package.json +29 -0
- package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/README.md +83 -0
- package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/is-callable@1.2.7/package.json +106 -0
- package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/README.md +70 -0
- package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/is-typed-array@1.1.15/package.json +129 -0
- package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/README.md +38 -0
- package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/isarray@2.0.5/package.json +48 -0
- package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/LICENSE.md +7 -0
- package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/README.md +510 -0
- package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/isomorphic-git@1.44.2/package.json +189 -0
- package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/README.md +50 -0
- package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/math-intrinsics@1.1.0/package.json +86 -0
- package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/license +9 -0
- package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/package.json +42 -0
- package/payload/shared/git-native/third-party/javascript/mimic-response@3.1.0/readme.md +78 -0
- package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/LICENSE +18 -0
- package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/README.md +121 -0
- package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/minimist@1.2.8/package.json +75 -0
- package/payload/shared/git-native/third-party/javascript/minimisted@2.0.1/README.md +58 -0
- package/payload/shared/git-native/third-party/javascript/minimisted@2.0.1/SOURCE.json +21 -0
- package/payload/shared/git-native/third-party/javascript/minimisted@2.0.1/package.json +32 -0
- package/payload/shared/git-native/third-party/javascript/once@1.4.0/LICENSE +15 -0
- package/payload/shared/git-native/third-party/javascript/once@1.4.0/README.md +79 -0
- package/payload/shared/git-native/third-party/javascript/once@1.4.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/once@1.4.0/package.json +33 -0
- package/payload/shared/git-native/third-party/javascript/pako@1.0.11/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/pako@1.0.11/README.md +191 -0
- package/payload/shared/git-native/third-party/javascript/pako@1.0.11/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/pako@1.0.11/package.json +44 -0
- package/payload/shared/git-native/third-party/javascript/pify@4.0.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/pify@4.0.1/license +9 -0
- package/payload/shared/git-native/third-party/javascript/pify@4.0.1/package.json +51 -0
- package/payload/shared/git-native/third-party/javascript/pify@4.0.1/readme.md +145 -0
- package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/README.md +50 -0
- package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/possible-typed-array-names@1.1.0/package.json +84 -0
- package/payload/shared/git-native/third-party/javascript/process@0.11.10/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/process@0.11.10/README.md +26 -0
- package/payload/shared/git-native/third-party/javascript/process@0.11.10/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/process@0.11.10/package.json +27 -0
- package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/LICENSE +47 -0
- package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/README.md +116 -0
- package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/readable-stream@4.8.0/package.json +89 -0
- package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/README.md +584 -0
- package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/safe-buffer@5.2.1/package.json +51 -0
- package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/Readme.md +156 -0
- package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/safer-buffer@2.1.2/package.json +34 -0
- package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/README.md +56 -0
- package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/set-function-length@1.2.2/package.json +102 -0
- package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/LICENSE +49 -0
- package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/README.md +44 -0
- package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/sha.js@2.4.12/package.json +58 -0
- package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/LICENSE +20 -0
- package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/README.md +44 -0
- package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/simple-concat@1.0.1/package.json +47 -0
- package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/LICENSE +20 -0
- package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/README.md +333 -0
- package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/simple-get@4.0.1/package.json +67 -0
- package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/LICENSE +48 -0
- package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/README.md +47 -0
- package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/string_decoder@1.3.0/package.json +34 -0
- package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/README.md +44 -0
- package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/to-buffer@1.2.2/package.json +62 -0
- package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/LICENSE +21 -0
- package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/README.md +42 -0
- package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/typed-array-buffer@1.0.3/package.json +82 -0
- package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/LICENSE +22 -0
- package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/README.md +68 -0
- package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/which-typed-array@1.1.24/package.json +131 -0
- package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/LICENSE +15 -0
- package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/README.md +36 -0
- package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/SOURCE.json +25 -0
- package/payload/shared/git-native/third-party/javascript/wrappy@1.0.2/package.json +29 -0
- package/payload/shared/git-native/third-party/licenses/android_system_properties-0.1.6/LICENSE-APACHE +13 -0
- package/payload/shared/git-native/third-party/licenses/android_system_properties-0.1.6/LICENSE-MIT +20 -0
- package/payload/shared/git-native/third-party/licenses/autocfg-1.5.1/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/autocfg-1.5.1/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/bitflags-2.13.2/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/bitflags-2.13.2/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/bumpalo-3.20.3/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/bumpalo-3.20.3/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/cc-1.8.0/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/cc-1.8.0/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/cfg-if-1.0.5/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/cfg-if-1.0.5/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/chrono-0.4.45/LICENSE.txt +240 -0
- package/payload/shared/git-native/third-party/licenses/convert_case-0.12.0/LICENSE +21 -0
- package/payload/shared/git-native/third-party/licenses/core-foundation-sys-0.8.7/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/core-foundation-sys-0.8.7/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/ctor-1.0.13/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/ctor-1.0.13/LICENSE-MIT +5 -0
- package/payload/shared/git-native/third-party/licenses/dirs-6.0.0/LICENSE-APACHE +174 -0
- package/payload/shared/git-native/third-party/licenses/dirs-6.0.0/LICENSE-MIT +19 -0
- package/payload/shared/git-native/third-party/licenses/dirs-sys-0.5.0/LICENSE-APACHE +174 -0
- package/payload/shared/git-native/third-party/licenses/dirs-sys-0.5.0/LICENSE-MIT +19 -0
- package/payload/shared/git-native/third-party/licenses/find-msvc-tools-0.1.14/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/find-msvc-tools-0.1.14/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/futures-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-channel-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-channel-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-core-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-core-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-executor-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-executor-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-io-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-io-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-macro-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-macro-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-sink-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-sink-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-task-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-task-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/futures-util-0.3.34/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/futures-util-0.3.34/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/getrandom-0.4.3/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/getrandom-0.4.3/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/git2-0.21.0/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/git2-0.21.0/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/home-0.5.12/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/home-0.5.12/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/iana-time-zone-0.1.65/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/iana-time-zone-0.1.65/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/iana-time-zone-haiku-0.1.2/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/iana-time-zone-haiku-0.1.2/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/jobserver-0.1.35/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/jobserver-0.1.35/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/js-sys-0.3.106/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/js-sys-0.3.106/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/libc-0.2.190/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/libc-0.2.190/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/COPYING +1482 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/pcre2/LICENCE.md +104 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/winhttp/COPYING.GPL +993 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/winhttp/COPYING.LGPL +502 -0
- package/payload/shared/git-native/third-party/licenses/libgit2-sys-0.18.8+1.9.7/libgit2/deps/zlib/LICENSE +22 -0
- package/payload/shared/git-native/third-party/licenses/libloading-0.9.0/LICENSE +12 -0
- package/payload/shared/git-native/third-party/licenses/libredox-0.1.25/LICENSE +21 -0
- package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib/LICENSE +22 -0
- package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib/contrib/dotzlib/LICENSE_1_0.txt +23 -0
- package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib/contrib/minizip/LICENSE.Info-Zip +58 -0
- package/payload/shared/git-native/third-party/licenses/libz-sys-1.1.30/src/zlib-ng/LICENSE.md +19 -0
- package/payload/shared/git-native/third-party/licenses/log-0.4.34/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/log-0.4.34/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/memchr-2.8.3/COPYING +3 -0
- package/payload/shared/git-native/third-party/licenses/memchr-2.8.3/LICENSE-MIT +21 -0
- package/payload/shared/git-native/third-party/licenses/napi-3.14.2/LICENSE +43 -0
- package/payload/shared/git-native/third-party/licenses/napi-build-2.6.0/LICENSE +43 -0
- package/payload/shared/git-native/third-party/licenses/napi-derive-3.6.12/LICENSE +43 -0
- package/payload/shared/git-native/third-party/licenses/napi-derive-backend-6.1.5/LICENSE +43 -0
- package/payload/shared/git-native/third-party/licenses/napi-sys-3.4.0/LICENSE +43 -0
- package/payload/shared/git-native/third-party/licenses/nohash-hasher-0.2.0/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/nohash-hasher-0.2.0/LICENSE-MIT +18 -0
- package/payload/shared/git-native/third-party/licenses/num-traits-0.2.19/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/num-traits-0.2.19/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/once_cell-1.21.4/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/once_cell-1.21.4/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/option-ext-0.2.0/LICENSE.txt +373 -0
- package/payload/shared/git-native/third-party/licenses/pin-project-lite-0.2.17/LICENSE-APACHE +177 -0
- package/payload/shared/git-native/third-party/licenses/pin-project-lite-0.2.17/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/pkg-config-0.3.34/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/pkg-config-0.3.34/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/proc-macro2-1.0.107/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/proc-macro2-1.0.107/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/quote-1.0.47/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/quote-1.0.47/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/redox_users-0.5.3/LICENSE +22 -0
- package/payload/shared/git-native/third-party/licenses/rustc-hash-2.1.3/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/rustc-hash-2.1.3/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/rustversion-1.0.23/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/rustversion-1.0.23/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/semver-1.0.28/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/semver-1.0.28/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/shlex-2.0.1/LICENSE-APACHE +13 -0
- package/payload/shared/git-native/third-party/licenses/shlex-2.0.1/LICENSE-MIT +21 -0
- package/payload/shared/git-native/third-party/licenses/slab-0.4.12/LICENSE +25 -0
- package/payload/shared/git-native/third-party/licenses/syn-2.0.119/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/syn-2.0.119/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/syn-3.0.9/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/syn-3.0.9/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/thiserror-2.0.21/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/thiserror-2.0.21/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/thiserror-impl-2.0.21/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/thiserror-impl-2.0.21/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/tokio-1.53.3/LICENSE +21 -0
- package/payload/shared/git-native/third-party/licenses/unicode-ident-1.0.27/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/licenses/unicode-ident-1.0.27/LICENSE-MIT +23 -0
- package/payload/shared/git-native/third-party/licenses/unicode-ident-1.0.27/LICENSE-UNICODE +39 -0
- package/payload/shared/git-native/third-party/licenses/unicode-segmentation-1.13.3/COPYRIGHT +7 -0
- package/payload/shared/git-native/third-party/licenses/unicode-segmentation-1.13.3/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/unicode-segmentation-1.13.3/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/vcpkg-0.2.15/LICENSE-APACHE +202 -0
- package/payload/shared/git-native/third-party/licenses/vcpkg-0.2.15/LICENSE-MIT +26 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-0.2.129/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-0.2.129/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-0.2.129/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-0.2.129/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-support-0.2.129/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-macro-support-0.2.129/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-shared-0.2.129/LICENSE-APACHE +201 -0
- package/payload/shared/git-native/third-party/licenses/wasm-bindgen-shared-0.2.129/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/licenses/windows-core-0.62.2/license-apache-2.0 +201 -0
- package/payload/shared/git-native/third-party/licenses/windows-core-0.62.2/license-mit +21 -0
- package/payload/shared/git-native/third-party/licenses/windows-implement-0.60.2/license-apache-2.0 +201 -0
- package/payload/shared/git-native/third-party/licenses/windows-implement-0.60.2/license-mit +21 -0
- package/payload/shared/git-native/third-party/licenses/windows-interface-0.59.3/license-apache-2.0 +201 -0
- package/payload/shared/git-native/third-party/licenses/windows-interface-0.59.3/license-mit +21 -0
- package/payload/shared/git-native/third-party/licenses/windows-link-0.2.1/license-apache-2.0 +201 -0
- package/payload/shared/git-native/third-party/licenses/windows-link-0.2.1/license-mit +21 -0
- package/payload/shared/git-native/third-party/licenses/windows-result-0.4.1/license-apache-2.0 +201 -0
- package/payload/shared/git-native/third-party/licenses/windows-result-0.4.1/license-mit +21 -0
- package/payload/shared/git-native/third-party/licenses/windows-strings-0.5.1/license-apache-2.0 +201 -0
- package/payload/shared/git-native/third-party/licenses/windows-strings-0.5.1/license-mit +21 -0
- package/payload/shared/git-native/third-party/licenses/windows-sys-0.61.2/license-apache-2.0 +201 -0
- package/payload/shared/git-native/third-party/licenses/windows-sys-0.61.2/license-mit +21 -0
- package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-pc-windows-msvc/COPYRIGHT +34 -0
- package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-pc-windows-msvc/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-pc-windows-msvc/LICENSE-MIT +25 -0
- package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-unknown-linux-gnu/COPYRIGHT +34 -0
- package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-unknown-linux-gnu/LICENSE-APACHE +176 -0
- package/payload/shared/git-native/third-party/rust-stdlib/rust-std-1.99.1-x86_64-unknown-linux-gnu/LICENSE-MIT +25 -0
- package/payload/shared/kits/web_app/mindset.md +42 -9
- package/payload/shared/knowledge/cli-lifecycle.mjs +79 -0
- package/payload/shared/knowledge/runtime-manifest.json +2 -1
- package/payload/shared/knowledge/runtime.mjs +296 -83
- package/payload/shared/scripts/{content-archive-9pzDBpn3.mjs → content-archive-tfY3CMRf.mjs} +2 -2
- package/payload/shared/scripts/{core-entry-DH2wsFgg.mjs → core-entry-7m3FOWAS.mjs} +954 -209
- package/payload/shared/scripts/design-git-read-BUV0s4TT.mjs +192 -0
- package/payload/shared/scripts/design.mjs +184 -171
- package/payload/shared/scripts/git-index-library-08zOq52I.mjs +6868 -0
- package/payload/shared/scripts/git-index-library-C_wZ6wUq.mjs +2 -0
- package/payload/shared/scripts/git-native-CtqUG3yb.mjs +9472 -0
- package/payload/shared/scripts/git-native-executor-CqFIQhzz.mjs +205 -0
- package/payload/shared/scripts/git-native-executor-D8TkZYzk.mjs +2 -0
- package/payload/shared/scripts/git-native-operation-BsYNBbvH.mjs +91 -0
- package/payload/shared/scripts/git-native-worker.js +65 -0
- package/payload/shared/scripts/git-runtime-check.mjs +113 -0
- package/payload/shared/scripts/knowledge-snapshot-query.mjs +1 -1
- package/payload/shared/scripts/{load-B-XdiMTX.mjs → load-oEOTKuWY.mjs} +1 -1
- package/payload/shared/scripts/package.json +1 -0
- package/payload/shared/scripts/{panel-preview-HRISZ1HI.mjs → panel-preview-BPETTLp7.mjs} +2 -2
- package/payload/shared/scripts/{server-CydyvZvR.mjs → server-DRsO6JFn.mjs} +85 -233
- package/payload/shared/scripts/{studio-content-archive-C2mFLBuL.mjs → studio-content-archive-DKijj8ba.mjs} +2 -2
- package/payload/shared/scripts/{studio-instance-composition-C17CmAmZ.mjs → studio-instance-composition-COD3xWt-.mjs} +2 -2
- package/payload/shared/scripts/{studio-instances-CmNfOFil.mjs → studio-instances-a-4TZo0u.mjs} +2 -2
- package/payload/shared/scripts/{studio-panel-drafts-x3awqien.mjs → studio-panel-drafts-Bo_RuF8s.mjs} +3 -3
- package/payload/shared/scripts/workbuddy-panel-service.mjs +1 -1
- package/payload/shared/scripts/{wrapper-BMQX62IU.mjs → wrapper-BevFNS3q.mjs} +13 -13
- package/payload/shared/web/{3d-force-graph-Ctmjqo-Y.js → 3d-force-graph-BY_DwCer.js} +102 -102
- package/payload/shared/web/{OrbitControls-CQxxM5ji.js → OrbitControls-jwQpg0yB.js} +2 -2
- 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
- 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
- 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
- package/payload/shared/web/{abnfDiagram-VCTEODGH-BElHS-zE.js → abnfDiagram-VCTEODGH-CSzY0xMe.js} +8 -8
- package/payload/shared/web/{ar-SA-G6X2FPQ2-D7POWdFi.js → ar-SA-G6X2FPQ2-CaMvsngq.js} +1 -1
- package/payload/shared/web/{arc-Do8BUoj2.js → arc-B2PqyFty.js} +1 -1
- package/payload/shared/web/{architecture-7GRP2DOG-DdensYya.js → architecture-7GRP2DOG-Bu3isBb4.js} +2 -2
- package/payload/shared/web/{architectureDiagram-5GKGNRK7-BECL41Da.js → architectureDiagram-5GKGNRK7-0DhCY3B4.js} +14 -14
- package/payload/shared/web/{az-AZ-76LH7QW2-C5e-y-w3.js → az-AZ-76LH7QW2-DiRCow4L.js} +1 -1
- package/payload/shared/web/{bg-BG-XCXSNQG7-fVQUxYSL.js → bg-BG-XCXSNQG7-i0B_GQmM.js} +1 -1
- package/payload/shared/web/{blockDiagram-I7D4REHJ-BHdPKhvo.js → blockDiagram-I7D4REHJ-DKGVCGV7.js} +17 -17
- package/payload/shared/web/{bn-BD-2XOGV67Q-DSmymzRw.js → bn-BD-2XOGV67Q-xaM6Ctrt.js} +1 -1
- package/payload/shared/web/{c4Diagram-7LVT6UL2-CWIbzZY_.js → c4Diagram-7LVT6UL2-Bdm8xCH2.js} +11 -11
- package/payload/shared/web/{ca-ES-6MX7JW3Y-BDoNy_ee.js → ca-ES-6MX7JW3Y-xMfLGHjy.js} +1 -1
- package/payload/shared/web/channel-_Pngq7Gp.js +7 -0
- package/payload/shared/web/{chunk-2Q5K7J3B-fbXEjlJX.js → chunk-2Q5K7J3B-DimMSDxY.js} +2 -2
- package/payload/shared/web/{chunk-4HAMMTFA-b3a3G6vp.js → chunk-4HAMMTFA-CUdghhWW.js} +10 -10
- package/payload/shared/web/{chunk-5VM5RSS4-BK0NOjPp.js → chunk-5VM5RSS4-VXmOEE7Y.js} +2 -2
- package/payload/shared/web/{chunk-75Z2AOVW-CRrsMd7V.js → chunk-75Z2AOVW-CEV_bvCZ.js} +21 -21
- package/payload/shared/web/{chunk-DU6HZSFF-DQGKOvUD.js → chunk-DU6HZSFF-NKww2mnj.js} +27 -27
- package/payload/shared/web/{chunk-F27PBJKO-CKTDAMhD.js → chunk-F27PBJKO-BaYmsdQ6.js} +6 -6
- package/payload/shared/web/{chunk-FOHPRMQF-Cr2lbyG-.js → chunk-FOHPRMQF-CC1xO94M.js} +1 -1
- package/payload/shared/web/{chunk-GMAD6QVW-CR6pf1Wk.js → chunk-GMAD6QVW-DOafcECG.js} +11 -11
- package/payload/shared/web/{chunk-GVQU2GXP-Cuq0uwWc.js → chunk-GVQU2GXP-D-Wj1Xkb.js} +5 -5
- package/payload/shared/web/{chunk-IMKFNOWR-BIkawNBO.js → chunk-IMKFNOWR-C8rR-UUv.js} +10 -10
- package/payload/shared/web/{chunk-JWPE2WC7-CdZv-_qJ.js → chunk-JWPE2WC7-DpU0Dn_h.js} +2 -2
- package/payload/shared/web/{chunk-L3NEJ4N5-CuRR4sgK.js → chunk-L3NEJ4N5-BuxEyHrZ.js} +10 -10
- package/payload/shared/web/{chunk-OSK3NFVY-o5AaXVbW.js → chunk-OSK3NFVY-B5u6n-0C.js} +11 -11
- package/payload/shared/web/{chunk-P2QGCYS3-CQGN9yCW.js → chunk-P2QGCYS3-Ce_wPnuK.js} +3 -3
- package/payload/shared/web/{chunk-POPQ4Y6H-CoV8F_6L.js → chunk-POPQ4Y6H-4fYRb9kI.js} +4 -4
- package/payload/shared/web/{chunk-PWAF6VOD-DLPv7U5s.js → chunk-PWAF6VOD-DW3nnawj.js} +16 -16
- package/payload/shared/web/{chunk-SHT3W25Y-DAA9rzEQ.js → chunk-SHT3W25Y-rw4EifyI.js} +13 -13
- package/payload/shared/web/{chunk-SVP7TREG-CsNwZR-J.js → chunk-SVP7TREG-DB0u6j7t.js} +5 -5
- package/payload/shared/web/{chunk-TICWLB2K-BkUUbwgD.js → chunk-TICWLB2K-GYqAiTLR.js} +11 -11
- package/payload/shared/web/{chunk-XXDRQBXY-DuWXQH59.js → chunk-XXDRQBXY-BOMD6Zym.js} +4 -4
- package/payload/shared/web/{chunk-Y2CYZVJY-Dou7QIQD.js → chunk-Y2CYZVJY-mI7MaAQH.js} +1 -1
- package/payload/shared/web/classDiagram-ZZMXUADV-CcgFl9R2.js +31 -0
- package/payload/shared/web/classDiagram-v2-VYDZK3BY-C7RIez6z.js +31 -0
- package/payload/shared/web/client.js +1901 -1581
- package/payload/shared/web/{colors-CWuSpNaV.js → colors-B_fyVLyX.js} +1 -1
- package/payload/shared/web/{cose-bilkent-JH36ORCC-CtLBgNIX.js → cose-bilkent-JH36ORCC-CpMlHyO8.js} +7 -7
- package/payload/shared/web/{cs-CZ-2BRQDIVT-Dt87r7S-.js → cs-CZ-2BRQDIVT-K2CLVImR.js} +1 -1
- package/payload/shared/web/{cynefin-OW5HDTMX-PtMqCYqM.js → cynefin-OW5HDTMX-Chp-GO7y.js} +2 -2
- package/payload/shared/web/{cynefinDiagram-5FMLGOSQ-CP-tjXE5.js → cynefinDiagram-5FMLGOSQ-CksPRylz.js} +8 -8
- package/payload/shared/web/{cytoscape.esm-B-DS7tqX.js → cytoscape.esm-B13OtX3v.js} +1 -1
- package/payload/shared/web/{da-DK-5WZEPLOC--27XibzI.js → da-DK-5WZEPLOC-DGpLG22p.js} +1 -1
- package/payload/shared/web/{dagre-CEj7qy_c.js → dagre-Dfx2C4EB.js} +114 -114
- package/payload/shared/web/{dagre-GXQ25YYZ-GUxh673_.js → dagre-GXQ25YYZ-DO_yzZgN.js} +15 -15
- package/payload/shared/web/{de-DE-XR44H4JA-D1MX3nBF.js → de-DE-XR44H4JA-BdXhiBzP.js} +1 -1
- package/payload/shared/web/{diagram-S7CK7UJ4-BFDH1Gbu.js → diagram-S7CK7UJ4-DtPOTRMz.js} +10 -10
- package/payload/shared/web/{diagram-UQ7AKVKN-PHM6uSDT.js → diagram-UQ7AKVKN-BEU2kvqx.js} +8 -8
- package/payload/shared/web/{diagram-VSXAHHWV-C6m_LjuJ.js → diagram-VSXAHHWV-aQhlGEje.js} +9 -9
- package/payload/shared/web/{diagram-VX7I27RA-G0Og_1eB.js → diagram-VX7I27RA-1DX4uy0U.js} +32 -32
- package/payload/shared/web/{diagram-Z3DM3KII-DxLU0CyU.js → diagram-Z3DM3KII-CRHw7SSM.js} +8 -8
- package/payload/shared/web/{directory-open-01563666-DOF-LFZj.js → directory-open-01563666-CXjy6Drc.js} +1 -1
- package/payload/shared/web/{directory-open-4ed118d0-BhSg263d.js → directory-open-4ed118d0-Be4pjoQ_.js} +1 -1
- package/payload/shared/web/{dist-CpfF1Jph.js → dist-C0qVS_M8.js} +91 -91
- package/payload/shared/web/{dist-BYV9yYN_.js → dist-DjAbm1uK.js} +2 -2
- package/payload/shared/web/{ebnfDiagram-PWID7BFC-Dh7NgFDw.js → ebnfDiagram-PWID7BFC-C3dnprYZ.js} +8 -8
- package/payload/shared/web/{el-GR-BZB4AONW-B-2rmEpJ.js → el-GR-BZB4AONW-g7z69brF.js} +1 -1
- package/payload/shared/web/{elk.bundled-CoqjhytL.js → elk.bundled-CSVGWwmf.js} +1 -1
- package/payload/shared/web/{erDiagram-RLTQ6QDP-De1Ves_r.js → erDiagram-RLTQ6QDP-W6MWvijo.js} +17 -17
- package/payload/shared/web/{es-ES-U4NZUMDT-C5yEmbaZ.js → es-ES-U4NZUMDT-DFBzV9Yy.js} +1 -1
- package/payload/shared/web/{eu-ES-A7QVB2H4-BJR6dFFp.js → eu-ES-A7QVB2H4-0w6-moai.js} +1 -1
- package/payload/shared/web/{eventmodeling-NTZA5JFV-DI7fNQlO.js → eventmodeling-NTZA5JFV-XmOSL5zF.js} +2 -2
- package/payload/shared/web/{fa-IR-HGAKTJCU-BCz_Ftau.js → fa-IR-HGAKTJCU-DeL8iT-4.js} +1 -1
- package/payload/shared/web/{fi-FI-Z5N7JZ37-B-f17R2D.js → fi-FI-Z5N7JZ37-DId7nO78.js} +1 -1
- package/payload/shared/web/{file-open-002ab408-hyYj-YWQ.js → file-open-002ab408-iMOXy-UQ.js} +1 -1
- package/payload/shared/web/{file-open-7c801643-DypCtGbZ.js → file-open-7c801643-BXZrCgMT.js} +1 -1
- package/payload/shared/web/{file-save-3189631c-DP5vC6AA.js → file-save-3189631c-B85XjIhX.js} +1 -1
- package/payload/shared/web/{file-save-745eba88-DQC5H-1g.js → file-save-745eba88-Cx6851rX.js} +1 -1
- package/payload/shared/web/flowDiagram-HODETNUW-ZexYu0VW.js +16 -0
- package/payload/shared/web/{fr-FR-RHASNOE6-DmkeKeyA.js → fr-FR-RHASNOE6-C2SqDt2f.js} +1 -1
- package/payload/shared/web/{ganttDiagram-EL5Y4UJY-9UcawiqG.js → ganttDiagram-EL5Y4UJY-DA2nlOcA.js} +17 -17
- package/payload/shared/web/{gitGraph-4MIJSDKK-Brimk1PV.js → gitGraph-4MIJSDKK-B_2ylg-T.js} +2 -2
- package/payload/shared/web/{gitGraphDiagram-WWUBYQGX-BYFpRlq8.js → gitGraphDiagram-WWUBYQGX-BZjm5RcZ.js} +9 -9
- package/payload/shared/web/{gl-ES-HMX3MZ6V-D4X9brTj.js → gl-ES-HMX3MZ6V-EefQ7u9k.js} +1 -1
- package/payload/shared/web/{graphlib-i6IPrIm0.js → graphlib-IZvVIPU5.js} +144 -144
- package/payload/shared/web/{he-IL-6SHJWFNN-C_1Gs06a.js → he-IL-6SHJWFNN-DYkTYs94.js} +1 -1
- package/payload/shared/web/{hi-IN-IWLTKZ5I-n-1X_Yh_.js → hi-IN-IWLTKZ5I-CkfwgAJA.js} +1 -1
- package/payload/shared/web/{hu-HU-A5ZG7DT2-DZE5a3kU.js → hu-HU-A5ZG7DT2-ClBQ6lLF.js} +1 -1
- package/payload/shared/web/{id-ID-SAP4L64H-kyW1-Blg.js → id-ID-SAP4L64H-DvER4xvx.js} +1 -1
- package/payload/shared/web/info-A6RAGUB7-duLtohtn.js +3 -0
- package/payload/shared/web/{infoDiagram-27XIBGKW-B_sYOrDT.js → infoDiagram-27XIBGKW-CzDCycY7.js} +6 -6
- package/payload/shared/web/{isSymbol-C7nLo9aG.js → isSymbol-CEdps2r0.js} +9 -9
- package/payload/shared/web/{ishikawaDiagram-5VMMS53U-Dbq0pjSI.js → ishikawaDiagram-5VMMS53U-YM_nllCx.js} +7 -7
- package/payload/shared/web/{it-IT-JPQ66NNP-CYr0JsnF.js → it-IT-JPQ66NNP-BtgvuNqA.js} +1 -1
- package/payload/shared/web/{ja-JP-DBVTYXUO-C_IigVNV.js → ja-JP-DBVTYXUO-D9wiuFej.js} +1 -1
- package/payload/shared/web/{journeyDiagram-3NMN7TZE-CzWCm5-W.js → journeyDiagram-3NMN7TZE-CoWwDje6.js} +8 -8
- package/payload/shared/web/{kaa-6HZHGXH3-CfWQ1jHJ.js → kaa-6HZHGXH3-BHZSZXW-.js} +1 -1
- package/payload/shared/web/{kab-KAB-ZGHBKWFO-B3pHuBR-.js → kab-KAB-ZGHBKWFO-Dqo-geKe.js} +1 -1
- package/payload/shared/web/{kanban-definition-UXKFOSKX-BPt2iOge.js → kanban-definition-UXKFOSKX-3aLeRSiG.js} +13 -13
- package/payload/shared/web/{katex-DhTJdtYJ.js → katex-I2DwPdKI.js} +1 -1
- package/payload/shared/web/{kk-KZ-P5N5QNE5-CQpxXuIU.js → kk-KZ-P5N5QNE5-CSiLpDDm.js} +1 -1
- package/payload/shared/web/{km-KH-HSX4SM5Z-Dc7wato0.js → km-KH-HSX4SM5Z-D20dgcx_.js} +1 -1
- package/payload/shared/web/{ko-KR-MTYHY66A-DLW_Eenb.js → ko-KR-MTYHY66A-Cr3UWuN-.js} +1 -1
- package/payload/shared/web/{ku-TR-6OUDTVRD-DmL5F-rU.js → ku-TR-6OUDTVRD-xSKCnKwv.js} +1 -1
- package/payload/shared/web/{lt-LT-XHIRWOB4-BuHt1LRQ.js → lt-LT-XHIRWOB4-DoWNhw5g.js} +1 -1
- package/payload/shared/web/{lv-LV-5QDEKY6T-BR0l3jdi.js → lv-LV-5QDEKY6T-DZluM1Mm.js} +1 -1
- package/payload/shared/web/{mermaid-parser.core-CgDHe7WO.js → mermaid-parser.core-DnY1htet.js} +32 -32
- package/payload/shared/web/{mindmap-definition-YA3MSWOX--s-o7l9c.js → mindmap-definition-YA3MSWOX-DRNXCmO0.js} +18 -18
- package/payload/shared/web/{mr-IN-CRQNXWMA-ByPSg8_m.js → mr-IN-CRQNXWMA-B03V3swm.js} +1 -1
- package/payload/shared/web/{my-MM-5M5IBNSE-C1BGhC6H.js → my-MM-5M5IBNSE-BjQaoQW0.js} +1 -1
- package/payload/shared/web/{nb-NO-T6EIAALU-B3KhPAe1.js → nb-NO-T6EIAALU-DTdYYLUl.js} +1 -1
- package/payload/shared/web/{nl-NL-IS3SIHDZ-CtvOo1al.js → nl-NL-IS3SIHDZ-Vo9Yq_Wa.js} +1 -1
- package/payload/shared/web/{nn-NO-6E72VCQL-CerdLebG.js → nn-NO-6E72VCQL-Cl_lMD3g.js} +1 -1
- package/payload/shared/web/{oc-FR-POXYY2M6-lPXDyA40.js → oc-FR-POXYY2M6-Bv4EXtHS.js} +1 -1
- package/payload/shared/web/{pa-IN-N4M65BXN-CXY0SKG3.js → pa-IN-N4M65BXN-Ivq_kz4R.js} +1 -1
- package/payload/shared/web/{packet-AYTQ26CC-DXyLibyW.js → packet-AYTQ26CC-BeuKx6fy.js} +2 -2
- package/payload/shared/web/{pegDiagram-XKGWAZYB-BtVScKlh.js → pegDiagram-XKGWAZYB-CGLzYbaw.js} +8 -8
- package/payload/shared/web/pie-WAS4IAKB-DcI1RMZv.js +3 -0
- package/payload/shared/web/{pieDiagram-E7YTZNPT-BVRgxFzd.js → pieDiagram-E7YTZNPT-B6GVy0qH.js} +12 -12
- package/payload/shared/web/{pl-PL-T2D74RX3-BVmN6-gn.js → pl-PL-T2D74RX3-DqFHvkmp.js} +1 -1
- package/payload/shared/web/{pt-BR-5N22H2LF-VoMeGWv5.js → pt-BR-5N22H2LF-CO_8DmZd.js} +1 -1
- package/payload/shared/web/{pt-PT-UZXXM6DQ-BCeApATc.js → pt-PT-UZXXM6DQ-BMJuk4To.js} +1 -1
- package/payload/shared/web/{quadrantDiagram-AXDQQJYC-CoI_hWsn.js → quadrantDiagram-AXDQQJYC-DE5sXpKH.js} +5 -5
- package/payload/shared/web/{radar-RG4KPBEZ-ik5LQn3z.js → radar-RG4KPBEZ-BKY8elAK.js} +2 -2
- package/payload/shared/web/{railroad-74A4TZTK-yLJ9q3Fv.js → railroad-74A4TZTK-CW_nEJZz.js} +2 -2
- package/payload/shared/web/{railroad-abnf-HS5TGJTU-DrnMEW8S.js → railroad-abnf-HS5TGJTU-H1WoP0LB.js} +2 -2
- package/payload/shared/web/{railroad-ebnf-LZEXJU2U-C3E4zm5K.js → railroad-ebnf-LZEXJU2U-Bs-P8f_r.js} +2 -2
- package/payload/shared/web/{railroad-peg-WCYAUIDC-COIlHGKU.js → railroad-peg-WCYAUIDC-DTfoquCH.js} +2 -2
- package/payload/shared/web/{railroadDiagram-O6MQD6OU-CQvkXn2E.js → railroadDiagram-O6MQD6OU-Ca-PpPGk.js} +8 -8
- package/payload/shared/web/{requirementDiagram-BXWQKSXE-BeMX6Y3_.js → requirementDiagram-BXWQKSXE-DP4VOmR2.js} +15 -15
- package/payload/shared/web/{ro-RO-JPDTUUEW-BVI89rBX.js → ro-RO-JPDTUUEW-wub-ktCt.js} +1 -1
- package/payload/shared/web/{rough.esm-T_8Mwfec.js → rough.esm-xFpb4w-e.js} +1 -1
- package/payload/shared/web/{roundRect-BCKJUrpT.js → roundRect-CiUKrNBl.js} +1 -1
- package/payload/shared/web/{ru-RU-B4JR7IUQ-Bs2zkyCL.js → ru-RU-B4JR7IUQ-DXCR-i7O.js} +1 -1
- package/payload/shared/web/{sankeyDiagram-P5KCCOFB-DAW2tMQQ.js → sankeyDiagram-P5KCCOFB-BL3ojAdo.js} +19 -19
- package/payload/shared/web/{sequenceDiagram-WJ2MYXX4-CIyt6uFH.js → sequenceDiagram-WJ2MYXX4-ujcnLF_G.js} +10 -10
- package/payload/shared/web/{si-LK-N5RQ5JYF-W6ZZjLGV.js → si-LK-N5RQ5JYF-Ca3ZwwCL.js} +1 -1
- package/payload/shared/web/{sizeCapture-INFHLROL-BkZtG6WP.js → sizeCapture-INFHLROL-CZKSpazb.js} +2 -2
- package/payload/shared/web/{sk-SK-C5VTKIMK-DsS1TRNt.js → sk-SK-C5VTKIMK-DenC-fjy.js} +1 -1
- package/payload/shared/web/{sl-SI-NN7IZMDC-lOGyvagL.js → sl-SI-NN7IZMDC-DtM7BQc1.js} +1 -1
- package/payload/shared/web/{src-DBqTbpm9.js → src-24Xrayxx.js} +5 -5
- package/payload/shared/web/{src-DAzEjDkt.js → src-CcuvUowz.js} +48 -48
- package/payload/shared/web/{stateDiagram-D77RDMKH-Cl5YhtvO.js → stateDiagram-D77RDMKH-JJkfINEX.js} +20 -20
- package/payload/shared/web/stateDiagram-v2-MP3YSRHH-CZXyk75K.js +31 -0
- package/payload/shared/web/{sv-SE-XGPEYMSR-C133Fo29.js → sv-SE-XGPEYMSR-UNRNl1-1.js} +1 -1
- package/payload/shared/web/{swimlanes-42K2YHIH-DRkfAovZ.js → swimlanes-42K2YHIH-Dg-lOZb0.js} +13 -13
- package/payload/shared/web/swimlanesDiagram-VR7AAH4N-Dct9otyO.js +30 -0
- package/payload/shared/web/{ta-IN-2NMHFXQM-DEEVujwJ.js → ta-IN-2NMHFXQM-DO4YlBNo.js} +1 -1
- package/payload/shared/web/{th-TH-HPSO5L25-m4z4u_Rd.js → th-TH-HPSO5L25-BMinzLji.js} +1 -1
- package/payload/shared/web/{three.module-DsonTxjC.js → three.module-dXeXHe7o.js} +2 -2
- package/payload/shared/web/{timeline-definition-24CTP7MA-Bc0GefZe.js → timeline-definition-24CTP7MA-Bg8KjeCs.js} +8 -8
- package/payload/shared/web/{timer-DaJNeeTj.js → timer-BTgWScdY.js} +49 -49
- package/payload/shared/web/{toNumber-Dq0WEEGL.js → toNumber-CqUZsI1_.js} +5 -5
- package/payload/shared/web/{tr-TR-DEFEU3FU-oqObk9H8.js → tr-TR-DEFEU3FU-BLnQquCD.js} +1 -1
- package/payload/shared/web/{treeView-Q6P3EWNA-s6cJWvL2.js → treeView-Q6P3EWNA-Cd8VH-fF.js} +2 -2
- package/payload/shared/web/{treemap-WGGIJYW6-B39slRxY.js → treemap-WGGIJYW6-CW0KQiMg.js} +2 -2
- package/payload/shared/web/{uk-UA-QMV73CPH-DR5E21g2.js → uk-UA-QMV73CPH-CLj_T-Qw.js} +1 -1
- package/payload/shared/web/{vennDiagram-4TSXK5OY-CU3O6wRh.js → vennDiagram-4TSXK5OY-CIU-NiOB.js} +10 -10
- package/payload/shared/web/{vi-VN-M7AON7JQ-BTGcSenL.js → vi-VN-M7AON7JQ-CBq7g77v.js} +1 -1
- package/payload/shared/web/{wardley-WFR3VGLG-ROBWVVUd.js → wardley-WFR3VGLG-B5B-Yr-P.js} +2 -2
- package/payload/shared/web/{wardleyDiagram-VM6X3IG4-USaMhD8m.js → wardleyDiagram-VM6X3IG4-BTSHluSJ.js} +8 -8
- package/payload/shared/web/{xychartDiagram-S5SC5T6Z-C8IhDKnq.js → xychartDiagram-S5SC5T6Z-BBeoKAjy.js} +8 -8
- package/payload/shared/web/{zh-CN-LNUGB5OW-B8jdxL1j.js → zh-CN-LNUGB5OW-tBK6Iaq-.js} +1 -1
- package/payload/shared/web/{zh-HK-E62DVLB3-C01JMzt_.js → zh-HK-E62DVLB3-D5Zq_98f.js} +1 -1
- package/payload/shared/web/{zh-TW-RAJ6MFWO-Cdn1Kb1q.js → zh-TW-RAJ6MFWO-B6gAMaOs.js} +1 -1
- package/release-hosts.json +1 -1
- package/release-manifest.json +649 -206
- package/payload/shared/web/channel-CIc-uLOz.js +0 -7
- package/payload/shared/web/classDiagram-ZZMXUADV-HbaRZ3Nl.js +0 -31
- package/payload/shared/web/classDiagram-v2-VYDZK3BY-Bkk8o06s.js +0 -31
- package/payload/shared/web/flowDiagram-HODETNUW-DY-blVtj.js +0 -16
- package/payload/shared/web/info-A6RAGUB7-D5Cy9r2z.js +0 -3
- package/payload/shared/web/pie-WAS4IAKB-DsYWyNi3.js +0 -3
- package/payload/shared/web/stateDiagram-v2-MP3YSRHH-BsQEmOAZ.js +0 -31
- 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.
|
|
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
|
|
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.
|
|
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
|
-
|
|
24
|
-
|
|
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`:
|
|
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 | `
|
|
32
|
-
| WorkBuddy | `
|
|
33
|
-
| DSH | `install --host dsh`:
|
|
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,
|
package/bin/design-system.mjs
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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)
|
|
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:'
|
|
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>':`
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
|
|
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
|