@massu/core 1.16.0 → 1.16.2

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.
@@ -4156,10 +4156,11 @@ function verifyEd25519SignedEnvelope(key, payload) {
4156
4156
  }
4157
4157
 
4158
4158
  // src/security/license-pubkey.generated.ts
4159
- var LICENSE_PUBKEY_ED25519 = new Uint8Array([39, 136, 108, 146, 85, 233, 119, 252, 223, 226, 123, 155, 234, 168, 200, 150, 36, 249, 174, 6, 130, 146, 125, 196, 136, 224, 202, 150, 53, 228, 114, 15]);
4160
- var LICENSE_PUBKEY_FINGERPRINT_HEX = "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475";
4159
+ var LICENSE_PUBKEY_ED25519 = new Uint8Array([254, 188, 221, 150, 111, 252, 154, 100, 253, 247, 113, 192, 144, 224, 127, 160, 202, 111, 75, 40, 35, 169, 108, 89, 252, 250, 255, 233, 250, 120, 47, 160]);
4160
+ var LICENSE_PUBKEY_FINGERPRINT_HEX = "18c0456789a70eeee28012719f04725f43f59e693f735227ff73f0475f2290e3";
4161
4161
  var KNOWN_LICENSE_PUBKEY_FINGERPRINTS = /* @__PURE__ */ new Set([
4162
- "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475"
4162
+ "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475",
4163
+ "18c0456789a70eeee28012719f04725f43f59e693f735227ff73f0475f2290e3"
4163
4164
  ]);
4164
4165
 
4165
4166
  // src/security/license-response-verifier.ts
@@ -4175,7 +4176,7 @@ function verifyLicenseResponse(payload) {
4175
4176
  );
4176
4177
  }
4177
4178
  function isLicenseSignatureRequired() {
4178
- return process.env.MASSU_REQUIRE_SIGNED_LICENSE === "true";
4179
+ return process.env.MASSU_REQUIRE_SIGNED_LICENSE !== "false";
4179
4180
  }
4180
4181
 
4181
4182
  // src/license.ts
@@ -4410,10 +4411,11 @@ async function pullTeamPromotions(db, opts = {}) {
4410
4411
  headers: { Authorization: `Bearer ${apiKey}` },
4411
4412
  signal: AbortSignal.timeout(timeoutMs)
4412
4413
  });
4413
- if (!res.ok) return { ...ZERO };
4414
+ if (!res.ok) return failSync(db, `http_${res.status}`);
4414
4415
  envelope = await res.json();
4415
- } catch {
4416
- return { ...ZERO };
4416
+ } catch (err) {
4417
+ const reason = err instanceof Error && err.name === "TimeoutError" ? "timeout" : "network";
4418
+ return failSync(db, reason);
4417
4419
  }
4418
4420
  const verdict = verifyPromotionEnvelope(envelope);
4419
4421
  if (verdict.kind !== "valid") {
@@ -4599,6 +4601,14 @@ function emitDropTelemetry(db, eventType, data) {
4599
4601
  `
4600
4602
  );
4601
4603
  }
4604
+ function failSync(db, reason) {
4605
+ recordTelemetry(db, "team_promotion_sync_failed", { reason });
4606
+ process.stderr.write(
4607
+ `[massu] team-shared promotion pull FAILED (${reason}). This is NOT "nothing to sync" \u2014 the cloud was unreachable or rejected the request; promotions were NOT refreshed this run.
4608
+ `
4609
+ );
4610
+ return { ...ZERO, sync_error: reason };
4611
+ }
4602
4612
 
4603
4613
  // src/hooks/session-end.ts
4604
4614
  init_config();
@@ -12799,10 +12799,11 @@ function verifyEd25519SignedEnvelope(key, payload) {
12799
12799
  }
12800
12800
 
12801
12801
  // src/security/license-pubkey.generated.ts
12802
- var LICENSE_PUBKEY_ED25519 = new Uint8Array([39, 136, 108, 146, 85, 233, 119, 252, 223, 226, 123, 155, 234, 168, 200, 150, 36, 249, 174, 6, 130, 146, 125, 196, 136, 224, 202, 150, 53, 228, 114, 15]);
12803
- var LICENSE_PUBKEY_FINGERPRINT_HEX = "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475";
12802
+ var LICENSE_PUBKEY_ED25519 = new Uint8Array([254, 188, 221, 150, 111, 252, 154, 100, 253, 247, 113, 192, 144, 224, 127, 160, 202, 111, 75, 40, 35, 169, 108, 89, 252, 250, 255, 233, 250, 120, 47, 160]);
12803
+ var LICENSE_PUBKEY_FINGERPRINT_HEX = "18c0456789a70eeee28012719f04725f43f59e693f735227ff73f0475f2290e3";
12804
12804
  var KNOWN_LICENSE_PUBKEY_FINGERPRINTS = /* @__PURE__ */ new Set([
12805
- "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475"
12805
+ "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475",
12806
+ "18c0456789a70eeee28012719f04725f43f59e693f735227ff73f0475f2290e3"
12806
12807
  ]);
12807
12808
 
12808
12809
  // src/security/license-response-verifier.ts
@@ -12818,7 +12819,7 @@ function verifyLicenseResponse(payload) {
12818
12819
  );
12819
12820
  }
12820
12821
  function isLicenseSignatureRequired() {
12821
- return process.env.MASSU_REQUIRE_SIGNED_LICENSE === "true";
12822
+ return process.env.MASSU_REQUIRE_SIGNED_LICENSE !== "false";
12822
12823
  }
12823
12824
 
12824
12825
  // src/license.ts
@@ -13076,10 +13077,11 @@ async function pullTeamPromotions(db, opts = {}) {
13076
13077
  headers: { Authorization: `Bearer ${apiKey}` },
13077
13078
  signal: AbortSignal.timeout(timeoutMs)
13078
13079
  });
13079
- if (!res.ok) return { ...ZERO };
13080
+ if (!res.ok) return failSync(db, `http_${res.status}`);
13080
13081
  envelope = await res.json();
13081
- } catch {
13082
- return { ...ZERO };
13082
+ } catch (err) {
13083
+ const reason = err instanceof Error && err.name === "TimeoutError" ? "timeout" : "network";
13084
+ return failSync(db, reason);
13083
13085
  }
13084
13086
  const verdict = verifyPromotionEnvelope(envelope);
13085
13087
  if (verdict.kind !== "valid") {
@@ -13265,6 +13267,14 @@ function emitDropTelemetry(db, eventType, data) {
13265
13267
  `
13266
13268
  );
13267
13269
  }
13270
+ function failSync(db, reason) {
13271
+ recordTelemetry(db, "team_promotion_sync_failed", { reason });
13272
+ process.stderr.write(
13273
+ `[massu] team-shared promotion pull FAILED (${reason}). This is NOT "nothing to sync" \u2014 the cloud was unreachable or rejected the request; promotions were NOT refreshed this run.
13274
+ `
13275
+ );
13276
+ return { ...ZERO, sync_error: reason };
13277
+ }
13268
13278
 
13269
13279
  // src/hooks/session-start.ts
13270
13280
  init_memory_file_ingest();
@@ -3615,10 +3615,11 @@ function verifyEd25519SignedEnvelope(key, payload) {
3615
3615
  }
3616
3616
 
3617
3617
  // src/security/license-pubkey.generated.ts
3618
- var LICENSE_PUBKEY_ED25519 = new Uint8Array([39, 136, 108, 146, 85, 233, 119, 252, 223, 226, 123, 155, 234, 168, 200, 150, 36, 249, 174, 6, 130, 146, 125, 196, 136, 224, 202, 150, 53, 228, 114, 15]);
3619
- var LICENSE_PUBKEY_FINGERPRINT_HEX = "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475";
3618
+ var LICENSE_PUBKEY_ED25519 = new Uint8Array([254, 188, 221, 150, 111, 252, 154, 100, 253, 247, 113, 192, 144, 224, 127, 160, 202, 111, 75, 40, 35, 169, 108, 89, 252, 250, 255, 233, 250, 120, 47, 160]);
3619
+ var LICENSE_PUBKEY_FINGERPRINT_HEX = "18c0456789a70eeee28012719f04725f43f59e693f735227ff73f0475f2290e3";
3620
3620
  var KNOWN_LICENSE_PUBKEY_FINGERPRINTS = /* @__PURE__ */ new Set([
3621
- "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475"
3621
+ "18a63d64fdec9e5a368fc45feaa49bed6ced815967e582bc7b8af534f22a9475",
3622
+ "18c0456789a70eeee28012719f04725f43f59e693f735227ff73f0475f2290e3"
3622
3623
  ]);
3623
3624
 
3624
3625
  // src/security/license-response-verifier.ts
@@ -3634,7 +3635,7 @@ function verifyLicenseResponse(payload) {
3634
3635
  );
3635
3636
  }
3636
3637
  function isLicenseSignatureRequired() {
3637
- return process.env.MASSU_REQUIRE_SIGNED_LICENSE === "true";
3638
+ return process.env.MASSU_REQUIRE_SIGNED_LICENSE !== "false";
3638
3639
  }
3639
3640
 
3640
3641
  // src/license.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@massu/core",
3
- "version": "1.16.0",
3
+ "version": "1.16.2",
4
4
  "type": "module",
5
5
  "description": "AI Engineering Governance MCP Server - Session memory, knowledge system, feature registry, code intelligence, rule enforcement, tiered tooling (12 free / 73 total), 56 workflow commands, 11 agents, 20+ patterns",
6
6
  "main": "./dist/cli.js",