@yugoo-design/companion 0.1.0-beta.4 → 0.1.0-beta.5
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 +44 -4
- package/bin/installer.mjs +4 -3
- package/bin/npm-installer-dsh.mjs +9 -3
- package/package.json +1 -1
- 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/release-manifest.json +10 -10
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.5`.
|
|
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,7 +11,7 @@ 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 Node.js `>=22.19.0 <23` and a durable npm installation directory. The current
|
|
14
|
+
Use Node.js `>=22.19.0 <23` and a durable npm or pnpm installation directory. The current
|
|
15
15
|
release uses the packaged native Git library for normal Design versioning without
|
|
16
16
|
system Git. It bundles Windows x64 MSVC and Linux x64 GNU runtimes; other platforms
|
|
17
17
|
are unsupported. System Git is separate and needed only for the explicit CLI
|
|
@@ -21,10 +21,50 @@ selected beta to the exact version and integrity before acquisition; keep the
|
|
|
21
21
|
previous installed version available during updates. Do not substitute `latest`.
|
|
22
22
|
|
|
23
23
|
```sh
|
|
24
|
-
ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install --ignore-scripts=false --save-exact @yugoo-design/companion@0.1.0-beta.
|
|
24
|
+
ONNXRUNTIME_NODE_INSTALL_CUDA=skip npm install --ignore-scripts=false --save-exact @yugoo-design/companion@0.1.0-beta.5 --registry=https://registry.npmjs.org
|
|
25
25
|
npx --no-install design-system --help
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
+
Alternatively, use an existing pnpm 11 installation (npm remains supported).
|
|
29
|
+
In the dedicated, empty version directory, create `pnpm-workspace.yaml` with
|
|
30
|
+
these local settings before acquisition:
|
|
31
|
+
|
|
32
|
+
```yaml
|
|
33
|
+
nodeLinker: hoisted
|
|
34
|
+
allowBuilds:
|
|
35
|
+
onnxruntime-node: true
|
|
36
|
+
sharp: true
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
```sh
|
|
40
|
+
ONNXRUNTIME_NODE_INSTALL_CUDA=skip pnpm add --save-exact @yugoo-design/companion@0.1.0-beta.5 --registry=https://registry.npmjs.org
|
|
41
|
+
pnpm exec design-system --help
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Run either acquisition in its own retained version directory, not the Design
|
|
45
|
+
Project or host profile. Do not mix npm and pnpm lockfiles in that directory.
|
|
46
|
+
The hoisted layout is the compatibility route for Companion's current native
|
|
47
|
+
dependency inspection; other pnpm layouts are not certified for every host.
|
|
48
|
+
pnpm's explicit build permissions above allow the current native dependencies'
|
|
49
|
+
installation scripts; do not disable all scripts or enable all future dependency
|
|
50
|
+
builds. Review any newly reported build requirement before allowing it. Retain
|
|
51
|
+
the complete pnpm installation layout; do not copy just a linked
|
|
52
|
+
package directory or invoke Node with `--preserve-symlinks` flags.
|
|
53
|
+
|
|
54
|
+
An explicitly selected HTTPS npm mirror is supported, for example
|
|
55
|
+
`--registry=https://registry.npmmirror.com`. Use it both when acquiring this
|
|
56
|
+
package and when invoking `design-system install --host dsh --registry=<url>`
|
|
57
|
+
with the required host inputs. The latter controls the official DSH CLI's
|
|
58
|
+
package download registry; it does not replace that CLI with npm or pnpm.
|
|
59
|
+
The exact aggregate version still comes from `release-hosts.json`, whose registry
|
|
60
|
+
remains the canonical release origin/default. The plan and receipt separately
|
|
61
|
+
record the effective mirror and bind it through apply and owned updates. There
|
|
62
|
+
is no automatic registry fallback or global registry edit. Verify the exact
|
|
63
|
+
mirror version and integrity against the selected release before installation;
|
|
64
|
+
missing or stale mirror packages are not permission to change version or source.
|
|
65
|
+
Registry selection does not redirect separate embedding-model or upstream
|
|
66
|
+
installation-script downloads to that mirror.
|
|
67
|
+
|
|
28
68
|
First-release local embedding runs on CPU. Set the supported
|
|
29
69
|
`ONNXRUNTIME_NODE_INSTALL_CUDA=skip` environment before acquisition to skip ONNX
|
|
30
70
|
Runtime's extra CUDA download while retaining normal dependency lifecycle
|
|
@@ -45,7 +85,7 @@ process value:
|
|
|
45
85
|
$previousOrtCuda = [Environment]::GetEnvironmentVariable('ONNXRUNTIME_NODE_INSTALL_CUDA', 'Process')
|
|
46
86
|
try {
|
|
47
87
|
$env:ONNXRUNTIME_NODE_INSTALL_CUDA = 'skip'
|
|
48
|
-
npm install --ignore-scripts=false --save-exact @yugoo-design/companion@0.1.0-beta.
|
|
88
|
+
npm install --ignore-scripts=false --save-exact @yugoo-design/companion@0.1.0-beta.5 --registry=https://registry.npmjs.org
|
|
49
89
|
} finally {
|
|
50
90
|
[Environment]::SetEnvironmentVariable('ONNXRUNTIME_NODE_INSTALL_CUDA', $previousOrtCuda, 'Process')
|
|
51
91
|
}
|
package/bin/installer.mjs
CHANGED
|
@@ -629,8 +629,9 @@ async function dshReleaseSelection(values,npmRoot) {
|
|
|
629
629
|
const mapped=bytes===null?null:validateReleaseHosts(JSON.parse(bytes))
|
|
630
630
|
if(mapped) {
|
|
631
631
|
if(Object.hasOwn(values,'aggregate-selector'))assert.equal(values['aggregate-selector'],mapped.aggregateSelector,'Aggregate override differs from product release')
|
|
632
|
-
|
|
633
|
-
|
|
632
|
+
// The release binds the package/version and default origin, not the user's
|
|
633
|
+
// explicit download mirror. The owning planner validates and pins transport.
|
|
634
|
+
return {...mapped,registry:values.registry ?? mapped.registry}
|
|
634
635
|
}
|
|
635
636
|
for(const key of ['aggregate-selector','registry'])assert.ok(typeof values[key]==='string' && values[key],`DSH release mapping is unbound or missing; explicit --${key} required for compatibility installation`)
|
|
636
637
|
return {aggregateSelector:values['aggregate-selector'],registry:values.registry}
|
|
@@ -830,7 +831,7 @@ export async function installerMain(args,{npmRoot,userRoot=homedir(),adapter=cod
|
|
|
830
831
|
'--dsh-config <file>':'DSH install only: absolute JSON with dshHome, official node/CLI/Loader file pins and host/Loader versions; desktopHostManifest selects the official Electron Desktop CLI. No scope or runner override.',
|
|
831
832
|
'--profile <name>':'DSH install only: explicitly selected existing profile; never initialized implicitly.',
|
|
832
833
|
'--aggregate-selector <name@version>':'DSH install only: optional exact aggregate override matching the product release mapping; required for old or unbound candidates.',
|
|
833
|
-
'--registry <https-url>':'DSH install only:
|
|
834
|
+
'--registry <https-url>':'DSH install only: explicit credential-free HTTPS download registry or mirror; defaults to the product mapping. Preserves the exact mapped aggregate and binds the saved plan/receipt; no automatic fallback. Required for old or unbound candidates.',
|
|
834
835
|
'--destination <directory>':'QwenWork/WorkBuddy direct install: exclusive external preparation directory, or the same owned directory with --previous-receipt.',
|
|
835
836
|
'--suite-version <version>':'QwenWork/WorkBuddy: exact native suite version, separate from the acquired npm version.',
|
|
836
837
|
'--node-executable <path>':'QwenWork/WorkBuddy: absolute Windows Node path used by the imported suite.',
|
|
@@ -194,8 +194,11 @@ async function readOwnedReceipt(path, state, profile, currentProduct) {
|
|
|
194
194
|
assert.ok(!beneath(old.product.npmRoot, path), 'Previous receipt overlaps its acquired product')
|
|
195
195
|
const selected = await selectorInput({ profile: old.profile, aggregateSelector: old.aggregateSelector, registry: old.registry })
|
|
196
196
|
assert.deepEqual(old.package, selected.package, 'Previous selected package differs')
|
|
197
|
-
|
|
198
|
-
|
|
197
|
+
// A receipt pins both the canonical release origin and the effective download
|
|
198
|
+
// registry. They may differ for an explicitly selected mirror, never in version.
|
|
199
|
+
assert.deepEqual(old.product.releaseSelection, validateReleaseHosts({ schemaVersion: 1, hosts: { dsh: {
|
|
200
|
+
aggregatePackage: selected.package.name, aggregateVersion: selected.package.version,
|
|
201
|
+
registry: old.product.releaseSelection.registry } } }), 'Previous product selection mismatch')
|
|
199
202
|
assert.deepEqual(receipt.source?.expected, expectedSource(old), 'Previous selected source differs')
|
|
200
203
|
assert.deepEqual(receipt.source?.observed, ownedState(receipt.readback), 'Previous installed source differs')
|
|
201
204
|
assert.equal(receipt.readback?.configurationParsed, true)
|
|
@@ -249,6 +252,8 @@ async function previousOwnership(path, state, input, product) {
|
|
|
249
252
|
assert.equal(selected.plan.product.name, product.name, 'Previous product name differs')
|
|
250
253
|
const oldInput = await selectorInput(selected.plan)
|
|
251
254
|
assert.equal(oldInput.package.name, input.package.name, 'Previous aggregate name differs')
|
|
255
|
+
assert.equal(selected.plan.product.releaseSelection.registry, product.releaseSelection.registry,
|
|
256
|
+
'Release registry migration requires a separate route')
|
|
252
257
|
assert.equal(oldInput.registry, input.registry, 'Registry migration requires a separate route')
|
|
253
258
|
assert.equal(Boolean(oldInput.aggregateDirectory), Boolean(input.aggregateDirectory), 'Source-kind migration requires a separate route')
|
|
254
259
|
if (oldInput.package.version === input.package.version)
|
|
@@ -390,7 +395,8 @@ export async function planDshInstallation(options) {
|
|
|
390
395
|
const product = await productIdentity(options.productRoot ?? options.product?.npmRoot)
|
|
391
396
|
if (product?.releaseSelection) {
|
|
392
397
|
assert.equal(input.aggregateSelector, product.releaseSelection.aggregateSelector, 'Selected aggregate differs from product release')
|
|
393
|
-
|
|
398
|
+
// selectorInput already admits only credential-free HTTPS transport. Keep
|
|
399
|
+
// this choice separate from the immutable release origin in product identity.
|
|
394
400
|
}
|
|
395
401
|
const previous = options.previousReceipt === undefined ? null
|
|
396
402
|
: await previousOwnership(options.previousReceipt, state, input, product)
|
package/package.json
CHANGED
package/release-manifest.json
CHANGED
|
@@ -3,25 +3,25 @@
|
|
|
3
3
|
"fixture": false,
|
|
4
4
|
"distribution": "beta",
|
|
5
5
|
"publishReady": false,
|
|
6
|
-
"version": "0.1.0-beta.
|
|
6
|
+
"version": "0.1.0-beta.5",
|
|
7
7
|
"readmeSource": {
|
|
8
8
|
"path": "packages/companion/README.md",
|
|
9
|
-
"sourceSha256": "
|
|
10
|
-
"sectionSha256": "
|
|
9
|
+
"sourceSha256": "3fa3f9a697ebca0997704f3ac741883238770c81ad3ef3c210fe04efa83d67b3",
|
|
10
|
+
"sectionSha256": "a403f2ca19e0dec36ce7932e36d6c6d3b749caf3e7c3989a63515b4836c9d905"
|
|
11
11
|
},
|
|
12
12
|
"assets": {
|
|
13
13
|
"LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
14
14
|
"NOTICE": "6119b21e1fa5d37ec3ab337ad43685970310aa5c97a0e90ecf6603d17091f371",
|
|
15
|
-
"README.md": "
|
|
15
|
+
"README.md": "e69af978c9d7962010477d9aca41a208fa05b4dd7bf80a73ab2b064c1a334f4b",
|
|
16
16
|
"THIRD_PARTY_NOTICES.md": "bfcab921c6c15ccc47f9b1a6cc5941675c95962de5ea5b0edc50fbfa2aef136a",
|
|
17
17
|
"bin/design-system.mjs": "2b9a0a610953dac800a7ee8d46fb05c193550bc57297985f42d076cec757a80f",
|
|
18
|
-
"bin/installer.mjs": "
|
|
18
|
+
"bin/installer.mjs": "2bb1fb22c386fafa13868e29a29c5ceebfe25819bee415faa7d9cf35cc06f143",
|
|
19
19
|
"bin/npm-agent-installation.mjs": "4851c6f7145ece1b4b0da7d56e10d73d4b47669328b77680c436cb0b6c3d4ca6",
|
|
20
20
|
"bin/npm-desktop-preparation.mjs": "d78bc2a529965011cc360d4bc731fc624114cd83bd634be71f34367d6fc424d0",
|
|
21
21
|
"bin/npm-installer-claude.mjs": "cf525ab6da00f4db0f5df0fa5f2af9d3c28db33bf94e2e94d8bda5fb444e29af",
|
|
22
22
|
"bin/npm-installer-codex.mjs": "ca18b3cc18d20aae66526797dedcf232322d027a7cf1251fd02943f1f2765d73",
|
|
23
23
|
"bin/npm-installer-dsh-desktop.mjs": "14ca4310e77f5544ce4a5d056eb22424ac6832afcb66e4c5548fe88c3f5feaf5",
|
|
24
|
-
"bin/npm-installer-dsh.mjs": "
|
|
24
|
+
"bin/npm-installer-dsh.mjs": "00c3b90ab7d643358756abce2f355cfff4fb6c082b92bb5ad789d80697946776",
|
|
25
25
|
"bin/npm-installer-paths.mjs": "50df1c47a5e3ada6da813e0b5475627fa6dd7d9e0834e8efa60f414bfbe289a0",
|
|
26
26
|
"bin/npm-installer-qoder.mjs": "2434ec9a8bd0943f0fd200395581c8bb8d9dd14086818117f6f12250d46f3e1e",
|
|
27
27
|
"bin/npm-runtime-check.mjs": "aa95a67bfd7e48a06a09b2a164e3f3e74471ebddf504d145e6d1a1bea87a0a0e",
|
|
@@ -423,7 +423,7 @@
|
|
|
423
423
|
"licenses/third-party/whiteboard-fonts/licenses/JetBrainsMono-OFL.txt": "30f0c136e3c88e422d0791acd97238870f9054a9729bc34cf2ff0d4ed8cac4ad",
|
|
424
424
|
"licenses/third-party/whiteboard-fonts/licenses/source-han-sans-LICENSE.txt": "fcac737e761ec63dbfbdce11030a1780161920d80315edba9c8beff1c2bac5a2",
|
|
425
425
|
"licenses/third-party/whiteboard-fonts/manifest.json": "c164438115a40cdead905085e95298f28a4ffa2a3947512b9a98509f33c26972",
|
|
426
|
-
"package.json": "
|
|
426
|
+
"package.json": "bf3562e4e0c3b115ec4bfcb9e4714ab33649f0e1c4d2ed179bf95caf856ef4f3",
|
|
427
427
|
"payload/desktop-preparation/LICENSE": "cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30",
|
|
428
428
|
"payload/desktop-preparation/NOTICE": "6b4eec391144fcbd96ec7b45a28764ab1932722a96325248377c3e28aac2c62d",
|
|
429
429
|
"payload/desktop-preparation/THIRD_PARTY_NOTICES.md": "bfcab921c6c15ccc47f9b1a6cc5941675c95962de5ea5b0edc50fbfa2aef136a",
|
|
@@ -460,7 +460,7 @@
|
|
|
460
460
|
"payload/desktop-preparation/src/workbuddy-relay-service.mjs": "44d60d6956250417507fb76c71c3030a01bc38e565e4572a761b46f255f8e669",
|
|
461
461
|
"payload/desktop-preparation/src/workbuddy-ui-probes.mjs": "a91d4651248125769254755bdf66a44bbc9e5a793dad0a137c35acbb10a89a88",
|
|
462
462
|
"payload/desktop-preparation/workbuddy-package.mjs": "56ff591047d83ec742f22b286a9574ab9e05d5850ebed6f002a6e0bebfcd89c9",
|
|
463
|
-
"payload/overlays/claude-code/.claude-plugin/plugin.json": "
|
|
463
|
+
"payload/overlays/claude-code/.claude-plugin/plugin.json": "e2f54af5347482a20a9787bf925cbef035d46b47c8bad23bb07725d3549fea60",
|
|
464
464
|
"payload/overlays/claude-code/.mcp.json": "1108847d27abd953a52cd7c3ea4cd416898d67dcfdb80a92255d889186b12b66",
|
|
465
465
|
"payload/overlays/claude-code/hooks/hooks.json": "e8bea6fdf13dce4023a2112dd4a31fd1a77e0f4ca2d4c506882ea80ef86b6482",
|
|
466
466
|
"payload/overlays/claude-code/scripts/claude-connection.mjs": "83a6a2de1b28d1b5dd230b1447abac6f2209a80d6681f08766a53e7b6f63200f",
|
|
@@ -474,7 +474,7 @@
|
|
|
474
474
|
"payload/overlays/claude-code/skills/design-component/SKILL.md": "85a1f2a016174787226eaa9e9e6675e86057212d322a65014edd71f3e4861b34",
|
|
475
475
|
"payload/overlays/claude-code/skills/yugoo/SKILL.md": "e1b2284a94c5d113ef0cd2e58fce4f3405a21905fef741296baeae3cd45adb33",
|
|
476
476
|
"payload/overlays/claude-code/skills/yugoo/native-execution.md": "8d27e523ddaad770e261300f7b74db5cff322d2342a838f87b253361a51404d3",
|
|
477
|
-
"payload/overlays/codex/.codex-plugin/plugin.json": "
|
|
477
|
+
"payload/overlays/codex/.codex-plugin/plugin.json": "11571780d1b17bb71dfe8bc1f8a8da7c8e2d12e1b0bab71d965fb95ba1aa423e",
|
|
478
478
|
"payload/overlays/codex/.mcp.json": "ee6450b4f9a5239ae9c173d07198d37041fad65f9f65ecf4ff88ccf8528a609a",
|
|
479
479
|
"payload/overlays/codex/README.md": "82f392681e120723fb90be5a8d2eb36c10113811f9eb355fcfc24167614b2373",
|
|
480
480
|
"payload/overlays/codex/scripts/design.mjs": "c116e3a9f60830923692a9f8785640d9a13a97320771bf9201de0e5089618a74",
|
|
@@ -483,7 +483,7 @@
|
|
|
483
483
|
"payload/overlays/codex/skills/design-panel/native-execution.md": "8d27e523ddaad770e261300f7b74db5cff322d2342a838f87b253361a51404d3",
|
|
484
484
|
"payload/overlays/codex/skills/yugoo/SKILL.md": "fdb035c4c9f43a2c1fbd1ceac6a2bd19e9cdec6cd5e068efa804b1c86bec513a",
|
|
485
485
|
"payload/overlays/qoder/.mcp.json": "7f86b52fffd552312441b9bd99dd39a3b80b2893dc4a85519614d906bdc6884e",
|
|
486
|
-
"payload/overlays/qoder/.qoder-plugin/plugin.json": "
|
|
486
|
+
"payload/overlays/qoder/.qoder-plugin/plugin.json": "c55ea7e3d2e512c27a5b34c25caddc2123e975117f863235027a59ac084b1d0e",
|
|
487
487
|
"payload/overlays/qoder/commands/yugoo.md": "4e9d0e4a3da232b44a3d2c8495c7d3dd40bbb9ba2dff4b389ab8ca587522793d",
|
|
488
488
|
"payload/overlays/qoder/hooks/hooks.json": "6452852583af61a7b4f0ed501a41d02a212a8487e5d920bcb0b2ee7e7e643d7d",
|
|
489
489
|
"payload/overlays/qoder/scripts/design.mjs": "c116e3a9f60830923692a9f8785640d9a13a97320771bf9201de0e5089618a74",
|