@mytegroupinc/myte-core 0.0.39 → 0.0.40

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 CHANGED
@@ -28,16 +28,17 @@ This package exists so the public wrapper can stay small and versioned cleanly.
28
28
  - Public package documentation is intentionally minimal. Internal rollout and design notes are not part of the npm package contract.
29
29
  - `mytecody` is a model-agnostic MyteCody team launcher. It supports `doctor`,
30
30
  `doctor --probe-gateway`, `update --dry-run`, and `update`. On first coding
31
- run, it installs the branded MyteCody engine from the Myte release manifest
32
- into a user-local Myte cache after signature/hash checks. Coding execution
33
- requires that engine, a reachable Myte AI Cody gateway, and `MYTEAI_API_KEY`.
31
+ run, it installs the branded MyteCody engine and signed client assets from
32
+ the Myte release manifest into a user-local Myte cache after signature/hash
33
+ checks. Coding execution requires those assets, a reachable Myte AI Cody
34
+ gateway, and `MYTEAI_API_KEY`.
34
35
  - `mytecody doctor` reports both the signed MyteCody engine state and this npm
35
36
  package version. `mytecody update` updates the engine only. Use
36
37
  `npm install -g myte@latest` to update the launcher and the Myte API CLI
37
38
  commands shipped by npm.
38
- - The package does not bundle the large MyteCody engine binary. See
39
- `THIRD_PARTY_NOTICES.md` and `TRADEMARKS.md` for Codex lineage and Myte brand
40
- notices.
39
+ - The package does not bundle the large MyteCody engine binary or the async
40
+ Responses bridge implementation. See `THIRD_PARTY_NOTICES.md` and
41
+ `TRADEMARKS.md` for Codex lineage and Myte brand notices.
41
42
 
42
43
  ## Agent Usage Contract
43
44
 
@@ -13,9 +13,9 @@ Source lineage tracked for this slice:
13
13
  - License: Apache-2.0
14
14
  - Upstream: https://github.com/openai/codex
15
15
 
16
- The MyteCody engine artifact is distributed separately from this npm package
17
- through a Myte release manifest. This package verifies the release artifact
18
- before installing it into the user's Myte-owned local cache.
16
+ The MyteCody engine and signed client assets are distributed separately from
17
+ this npm package through a Myte release manifest. This package verifies release
18
+ artifacts before installing them into the user's Myte-owned local cache.
19
19
 
20
20
  Myte names, marks, logos, terminal branding, and product design are not part of
21
21
  the OpenAI Codex project and remain Myte-owned brand assets.
package/mytecody-cli.js CHANGED
@@ -192,6 +192,10 @@ function installedClientCommand() {
192
192
  return { cmd: enginePath, args: [], source: "myte-installed-engine" };
193
193
  }
194
194
 
195
+ function installedClientUsable() {
196
+ return Boolean(installedClientCommand() && fs.existsSync(currentBridgePath()) && readCurrentClientManifest());
197
+ }
198
+
195
199
  function loadSignedBridge() {
196
200
  const bridgePath = currentBridgePath();
197
201
  if (!fs.existsSync(bridgePath)) {
@@ -1226,9 +1230,31 @@ async function ensureBrandedEngineInstalled(args = {}, envPath = null, { progres
1226
1230
  delete updateArgs.json;
1227
1231
 
1228
1232
  const source = manifestUrl(updateArgs);
1229
- const manifestResult = await readManifest(source, { fetchManifest: true, progress });
1233
+ let manifestResult;
1234
+ try {
1235
+ manifestResult = await readManifest(source, { fetchManifest: true, progress });
1236
+ } catch (error) {
1237
+ if (isUrl(source) && installedClientUsable()) {
1238
+ return {
1239
+ ok: true,
1240
+ installed: false,
1241
+ reason: "cached-engine-manifest-unavailable",
1242
+ manifest_status: "fetch-failed",
1243
+ error: error && error.message ? error.message : String(error),
1244
+ };
1245
+ }
1246
+ throw error;
1247
+ }
1230
1248
  const manifest = manifestResult.manifest;
1231
1249
  if (!manifest) {
1250
+ if (isUrl(source) && installedClientUsable()) {
1251
+ return {
1252
+ ok: true,
1253
+ installed: false,
1254
+ reason: "cached-engine-manifest-unavailable",
1255
+ manifest_status: manifestResult.status,
1256
+ };
1257
+ }
1232
1258
  return { ok: false, installed: false, reason: "manifest-unavailable", manifest_status: manifestResult.status };
1233
1259
  }
1234
1260
  const signature = signatureAccepted(manifest, updateArgs);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mytegroupinc/myte-core",
3
- "version": "0.0.39",
3
+ "version": "0.0.40",
4
4
  "description": "Myte CLI core implementation.",
5
5
  "type": "commonjs",
6
6
  "main": "cli.js",