@adhdev/mesh-shared 1.0.58-rc.6 → 1.0.58-rc.7

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/dist/index.mjs CHANGED
@@ -653,6 +653,7 @@ function interpolateString(template, ctx) {
653
653
  // src/mesh-tool-names.ts
654
654
  var CANONICAL_MESH_TOOL_NAMES = [
655
655
  "mesh_status",
656
+ "mesh_route_preview",
656
657
  "mesh_list_nodes",
657
658
  // GRAPH-ORCHESTRATION Phase F — batch before task, mirroring ALL_MESH_TOOLS.
658
659
  "mesh_enqueue_batch",
@@ -906,10 +907,87 @@ var MeshChunkAssembler = class {
906
907
  }
907
908
  }
908
909
  };
910
+
911
+ // src/semver-compare.ts
912
+ var SEMVER_PATTERN = /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/;
913
+ var NUMERIC_IDENTIFIER = /^\d+$/;
914
+ function parseSemver(version) {
915
+ if (typeof version !== "string") return null;
916
+ const match = version.trim().replace(/^v/, "").match(SEMVER_PATTERN);
917
+ if (!match) return null;
918
+ return {
919
+ major: Number(match[1]),
920
+ minor: Number(match[2]),
921
+ patch: Number(match[3]),
922
+ prerelease: match[4] ? match[4].split(".") : []
923
+ };
924
+ }
925
+ function comparePrerelease(a, b) {
926
+ if (a.length === 0 && b.length === 0) return 0;
927
+ if (a.length === 0) return 1;
928
+ if (b.length === 0) return -1;
929
+ for (let i = 0; i < Math.min(a.length, b.length); i += 1) {
930
+ const idA = a[i];
931
+ const idB = b[i];
932
+ if (idA === idB) continue;
933
+ const numA = NUMERIC_IDENTIFIER.test(idA);
934
+ const numB = NUMERIC_IDENTIFIER.test(idB);
935
+ if (numA && numB) return Number(idA) < Number(idB) ? -1 : 1;
936
+ if (numA) return -1;
937
+ if (numB) return 1;
938
+ return idA < idB ? -1 : 1;
939
+ }
940
+ return a.length === b.length ? 0 : a.length < b.length ? -1 : 1;
941
+ }
942
+ function compareSemver(a, b) {
943
+ const pa = parseSemver(a);
944
+ const pb = parseSemver(b);
945
+ if (!pa || !pb) return null;
946
+ if (pa.major !== pb.major) return pa.major < pb.major ? -1 : 1;
947
+ if (pa.minor !== pb.minor) return pa.minor < pb.minor ? -1 : 1;
948
+ if (pa.patch !== pb.patch) return pa.patch < pb.patch ? -1 : 1;
949
+ return comparePrerelease(pa.prerelease, pb.prerelease);
950
+ }
951
+ function isDowngrade(current, target) {
952
+ const direction = compareSemver(target, current);
953
+ if (direction === null) return false;
954
+ return direction < 0;
955
+ }
956
+
957
+ // src/ws-protocol.ts
958
+ var DAEMON_TO_SERVER_WS_MSGS = [
959
+ "auth",
960
+ "status_report",
961
+ "status_heartbeat",
962
+ "status_event",
963
+ "command_result",
964
+ "error",
965
+ "agent_event",
966
+ "log"
967
+ ];
968
+ var SERVER_TO_DAEMON_WS_MSGS = [
969
+ "auth_ok",
970
+ "auth_error",
971
+ "machine_evicted",
972
+ "force_disconnect",
973
+ "token_revoked",
974
+ "version_mismatch",
975
+ "force_update_required",
976
+ "command",
977
+ "agent_command",
978
+ "resolve_action"
979
+ ];
980
+ function isDaemonToServerWsMsg(value) {
981
+ return typeof value === "string" && DAEMON_TO_SERVER_WS_MSGS.includes(value);
982
+ }
983
+ function isServerToDaemonWsMsg(value) {
984
+ return typeof value === "string" && SERVER_TO_DAEMON_WS_MSGS.includes(value);
985
+ }
909
986
  export {
910
987
  CANONICAL_MESH_TOOL_COUNT,
911
988
  CANONICAL_MESH_TOOL_NAMES,
912
989
  CLI_SLOT_RECIPES,
990
+ DAEMON_TO_SERVER_WS_MSGS,
913
991
  DEFAULT_DIFFICULTY_BRAINS,
914
992
  MAGI_RAW_ANSWER_CAP,
915
993
  MESH_CHUNK_KIND,
@@ -921,12 +999,14 @@ export {
921
999
  MESH_TASK_DIFFICULTIES,
922
1000
  MeshChunkAssembler,
923
1001
  QUOTA_SUPPORTED_PROVIDERS,
1002
+ SERVER_TO_DAEMON_WS_MSGS,
924
1003
  STATUS_PROBE_ARG_KEY,
925
1004
  UNKNOWN_CLI_SLOT_RECIPE,
926
1005
  argsCarryStatusProbeMarker,
927
1006
  buildMagiPanelProposal,
928
1007
  buildSlotProposal,
929
1008
  canonicalDaemonId,
1009
+ compareSemver,
930
1010
  daemonIdsEquivalent,
931
1011
  deriveProviderPriorityFromSlots,
932
1012
  deriveSlotsFromLegacy,
@@ -935,9 +1015,12 @@ export {
935
1015
  hasGitStatusEvidence,
936
1016
  interpolateArgs,
937
1017
  interpolateString,
1018
+ isDaemonToServerWsMsg,
1019
+ isDowngrade,
938
1020
  isMeshTaskDifficulty,
939
1021
  isPhantomDaemonEntry,
940
1022
  isRawDaemonDoId,
1023
+ isServerToDaemonWsMsg,
941
1024
  joinRepoPath,
942
1025
  machineCoreFromDaemonId,
943
1026
  measureWorstCaseChunkEnvelopeBytes,
@@ -956,6 +1039,7 @@ export {
956
1039
  normalizeNodeCapabilitySlots,
957
1040
  normalizeThinkingLevel,
958
1041
  parseJsonRecord,
1042
+ parseSemver,
959
1043
  pickBestTransitGitStatus,
960
1044
  readBoolean,
961
1045
  readGitSubmodules,